{
  "id": "21st-018f1b504565",
  "sourceRevision": "c78bac5bbc7f1005ba5e6f8e659e9711b38db911",
  "demoIdentity": {
    "file": "baseline-example.tsx",
    "export": "LogosSlider",
    "source": "exact-public-demo"
  },
  "fidelity": {
    "preserved": "21st 공개 discovery의 고유 데모 ID와 미리보기 이미지가 가리키는 원래 데모 바이트 전체",
    "dependency_revision": "c78bac5bbc7f1005ba5e6f8e659e9711b38db911",
    "observed_differences": [
      "현재 최신 InfiniteSlider는 speed API로 바뀌어 원래 duration을 무시한다. 같은 작성자의 공개 Git history에서 실제 duration API를 가진 이전 revision을 고정했다.",
      "공식 현재 데모의 다른 로고 목록으로 바꾸지 않고 원래 CDN의 Figma/Next.js/Supabase/Vercel 네 개 URL과 className을 보존한다."
    ],
    "mapping": []
  },
  "acquisitionLimitations": [
    "CDN 데모는 SHA256으로, 작성자 원본과 의존 파일은 Git 커밋 및 blob SHA로 고정했다.",
    "현재 작성자 revision의 의존 파일이 과거 21st 내부 구현과 바이트 단위로 같다는 주장은 하지 않는다.",
    "다운로드한 코드를 실행하지 않았으며 브라우저·상호작용 검증은 별도 단계다."
  ],
  "files": [
    {
      "file": "baseline-example.tsx",
      "kind": "implementation",
      "sha256": "6528f92d0fbb88b68bffef1660998869971fd8b844595ebf9b440f71a47e3307",
      "sourceRevision": "sha256:6528f92d0fbb88b68bffef1660998869971fd8b844595ebf9b440f71a47e3307",
      "license": "MIT"
    },
    {
      "file": "LICENSE",
      "kind": "license",
      "sha256": "f668f5ef3635eb906f10b1eea9a32e449eb6e1a183ab6879ef6d56c0980dd2f3",
      "sourceRevision": "c78bac5bbc7f1005ba5e6f8e659e9711b38db911",
      "license": "MIT"
    },
    {
      "file": "upstream/app/docs/progressive-blur/progressive-blur-slider.tsx",
      "kind": "upstream-implementation",
      "sha256": "d19a01e3132b1717a612dfed492582d4fcdb14e66d0d46a85caf718eba1c1973",
      "sourceRevision": "c78bac5bbc7f1005ba5e6f8e659e9711b38db911",
      "license": "MIT"
    },
    {
      "file": "author/components/core/infinite-slider.tsx",
      "kind": "implementation-dependency",
      "sha256": "754a459205e3cfccdd95be83b366b1cbd4dad8aa1529999116ef962357f3563b",
      "sourceRevision": "c78bac5bbc7f1005ba5e6f8e659e9711b38db911",
      "license": "MIT"
    },
    {
      "file": "author/components/core/progressive-blur.tsx",
      "kind": "implementation-dependency",
      "sha256": "6b20da98cfa4db4e2e57bd649212f13d42fe7046ba727db2af27316dbc820502",
      "sourceRevision": "c78bac5bbc7f1005ba5e6f8e659e9711b38db911",
      "license": "MIT"
    },
    {
      "file": "author/lib/utils.ts",
      "kind": "implementation-dependency",
      "sha256": "9304a861c8673bee09e0f12de31773abbde503b02e59dfd74763ddec2e37cf05",
      "sourceRevision": "c78bac5bbc7f1005ba5e6f8e659e9711b38db911",
      "license": "MIT"
    },
    {
      "file": "author/app/globals.css",
      "kind": "theme-source",
      "sha256": "f950f824931eba81d32b879d1cb38a8a093a5c74d3775bdd3de39a46c36d3fe5",
      "sourceRevision": "c78bac5bbc7f1005ba5e6f8e659e9711b38db911",
      "license": "MIT"
    },
    {
      "file": "author/package.json",
      "kind": "dependency-manifest",
      "sha256": "f931b8f5eeaa793a817f4477041c6339e4964fd6247c30c84ce06315530dff29",
      "sourceRevision": "c78bac5bbc7f1005ba5e6f8e659e9711b38db911",
      "license": "MIT"
    },
    {
      "file": "assets/25a0515c472578f5dfcfeb765be5383f6893cda1f0f1560f69d3bcabdda71693.svg",
      "kind": "declared-demo-asset",
      "sha256": "25a0515c472578f5dfcfeb765be5383f6893cda1f0f1560f69d3bcabdda71693",
      "sourceRevision": "sha256:25a0515c472578f5dfcfeb765be5383f6893cda1f0f1560f69d3bcabdda71693",
      "license": "publisher-declaration-only; asset-specific-license-unspecified"
    },
    {
      "file": "assets/8f4aec13fdd1bf3b6b5566a6c4f5feade1c5e5b492fa81ba32f62f3aa155220e.svg",
      "kind": "declared-demo-asset",
      "sha256": "8f4aec13fdd1bf3b6b5566a6c4f5feade1c5e5b492fa81ba32f62f3aa155220e",
      "sourceRevision": "sha256:8f4aec13fdd1bf3b6b5566a6c4f5feade1c5e5b492fa81ba32f62f3aa155220e",
      "license": "publisher-declaration-only; asset-specific-license-unspecified"
    },
    {
      "file": "assets/5414744d341683260469fbaa9a518e0a4b3000ddd714ce5d0525f8e2cebcb064.svg",
      "kind": "declared-demo-asset",
      "sha256": "5414744d341683260469fbaa9a518e0a4b3000ddd714ce5d0525f8e2cebcb064",
      "sourceRevision": "sha256:5414744d341683260469fbaa9a518e0a4b3000ddd714ce5d0525f8e2cebcb064",
      "license": "publisher-declaration-only; asset-specific-license-unspecified"
    }
  ],
  "importMap": {
    "@/components/ui/infinite-slider": "author/components/core/infinite-slider.tsx",
    "@/components/ui/progressive-blur": "author/components/core/progressive-blur.tsx",
    "@/lib/utils": "author/lib/utils.ts"
  },
  "declaredDependencies": {
    "clsx": "^2.1.1",
    "motion": "^11.12.0",
    "react": "^18",
    "react-use-measure": "^2.1.1",
    "tailwind-merge": "^2.6.0"
  },
  "runtimeDependencies": {
    "clsx": "2.1.1",
    "tailwind-merge": "3.3.1",
    "motion-v11": "11.12.0",
    "react-v18": "18.3.1",
    "@emotion/memoize": "0.9.0",
    "@emotion/is-prop-valid": "1.4.0",
    "debounce": "1.2.1",
    "react-use-measure": "2.1.1",
    "scheduler": "0.23.2",
    "react-dom-v18": "18.3.1",
    "tailwindcss": "4.1.13"
  },
  "packageAliases": {
    "motion": "motion-v11",
    "react": "react-v18",
    "react-dom": "react-dom-v18"
  },
  "assets": [
    {
      "source_url": "https://cdn.21st.dev/assets/mirror/25/25a0515c472578f5dfcfeb765be5383f6893cda1f0f1560f69d3bcabdda71693.svg",
      "response": "artifacts/full-import/21st-author-sources/responses/asset-90ec011fb104a3691f4e.json.gz",
      "http_status": 200,
      "sha256": "25a0515c472578f5dfcfeb765be5383f6893cda1f0f1560f69d3bcabdda71693",
      "content_type": "image/svg+xml",
      "license_basis": "공개 데모 레코드의 MIT 선언; 이미지별 별도 라이선스 문구는 제공되지 않음",
      "file": "assets/25a0515c472578f5dfcfeb765be5383f6893cda1f0f1560f69d3bcabdda71693.svg"
    },
    {
      "source_url": "https://cdn.21st.dev/assets/mirror/8f/8f4aec13fdd1bf3b6b5566a6c4f5feade1c5e5b492fa81ba32f62f3aa155220e.svg",
      "response": "artifacts/full-import/21st-author-sources/responses/asset-6b9f4f91f17d836248fd.json.gz",
      "http_status": 200,
      "sha256": "8f4aec13fdd1bf3b6b5566a6c4f5feade1c5e5b492fa81ba32f62f3aa155220e",
      "content_type": "image/svg+xml",
      "license_basis": "공개 데모 레코드의 MIT 선언; 이미지별 별도 라이선스 문구는 제공되지 않음",
      "file": "assets/8f4aec13fdd1bf3b6b5566a6c4f5feade1c5e5b492fa81ba32f62f3aa155220e.svg"
    },
    {
      "source_url": "https://cdn.21st.dev/assets/mirror/54/5414744d341683260469fbaa9a518e0a4b3000ddd714ce5d0525f8e2cebcb064.svg",
      "response": "artifacts/full-import/21st-author-sources/responses/asset-63e46837d03b86790da6.json.gz",
      "http_status": 200,
      "sha256": "5414744d341683260469fbaa9a518e0a4b3000ddd714ce5d0525f8e2cebcb064",
      "content_type": "image/svg+xml",
      "license_basis": "공개 데모 레코드의 MIT 선언; 이미지별 별도 라이선스 문구는 제공되지 않음",
      "file": "assets/5414744d341683260469fbaa9a518e0a4b3000ddd714ce5d0525f8e2cebcb064.svg"
    },
    {
      "source_url": "https://www.shadcnblocks.com/images/block/logos/vercel.svg",
      "response": "artifacts/full-import/21st-author-sources/responses/asset-92b0cc93b0fdd0f7895e.json.gz",
      "http_status": 403,
      "sha256": "0e2a1c7b58c4fac2b853e30a2ee2be5e184e3230ee66c78b65d7c534e2bedb8d",
      "content_type": "application/xml",
      "license_basis": "공개 데모 레코드의 MIT 선언; 이미지별 별도 라이선스 문구는 제공되지 않음"
    }
  ],
  "assetAdaptations": [
    {
      "sourceUrl": "https://www.shadcnblocks.com/images/block/logos/vercel.svg",
      "file": "runtime/assets/design-engineering-loading-and-feedback.webp",
      "sha256": "2c1dfe0fe9fcccf7ee293d860f73a8c3141a82e7fea4063d2c94fada93c55997",
      "mediaType": "image/webp",
      "origin": "StyleGallery self-generated illustration, previously requested by the user",
      "generationRecord": "research/2026-09-21-research-previews.json",
      "reason": "Original Vercel SVG returned HTTP 403; this one preview image is explicitly adapted, not claimed to match the original.",
      "originalHttpStatus": 403,
      "originalSourceUnchanged": true
    }
  ],
  "adaptations": [
    "The exact baseline demo and the author revision that supports duration={30} are retained. Newer speed-based source is not substituted.",
    "Figma, Next.js, and Supabase asset bytes are preserved. Only the unavailable Vercel SVG slot uses the existing StyleGallery loading illustration in the bundled preview, with corresponding alternative text. Original source files remain byte-identical.",
    "Source image declaration and the separately generated host image are distinguished in media provenance. Both are embedded locally; no network request is needed."
  ],
  "runtime_verified": false
}
