{
  "id": "21st-c32723a426d0",
  "sourceRevision": "60b6b444e6dfb670fab47bfb0da9dd9da1f8150b",
  "demoIdentity": {
    "file": "author-example.tsx",
    "export": "default",
    "source": "author-official-example"
  },
  "fidelity": {
    "preserved": "정확히 식별한 작성자의 MIT 구현과 공식 예제; 원래 CDN demo의 license 표기는 별도 유지",
    "original_demo_license": "mit",
    "dependency_revision": "60b6b444e6dfb670fab47bfb0da9dd9da1f8150b",
    "observed_differences": [
      "원래 21st의 설치용 Alert(layout/icon/action/isNotification) 래퍼는 공개 source가 없어 사용하지 않는다. 정확히 대응하는 Origin author의 개별 컴포넌트 파일을 실행 entry로 쓴다.",
      "직접 DOM 원본은 wrapper의 row/complex 속성 대신 inline icon 또는 flex 행과 border/padding/shadow/max-width를 명시한다. 같은 변형의 현재 공개 원본이며 원래21st 비공개 래퍼 바이트 동일성을 주장하지 않는다."
    ],
    "mapping": [
      "Alert registry → apps/origin/registry/default/components/comp-269.tsx; 원래 demo와 문구·아이콘·버튼/목록 구성을 함께 확인"
    ]
  },
  "acquisitionLimitations": [
    "CDN 데모는 SHA256으로, 작성자 원본과 의존 파일은 Git 커밋 및 blob SHA로 고정했다.",
    "현재 작성자 revision의 의존 파일이 과거 21st 내부 구현과 바이트 단위로 같다는 주장은 하지 않는다.",
    "다운로드한 코드를 실행하지 않았으며 브라우저·상호작용 검증은 별도 단계다."
  ],
  "files": [
    {
      "file": "author-example.tsx",
      "kind": "implementation",
      "sha256": "b20ac756fa1ba47153edebe0238aaaa44f2bbbd4ba93b26f3f4c37058d45619d",
      "sourceRevision": "60b6b444e6dfb670fab47bfb0da9dd9da1f8150b",
      "license": "MIT"
    },
    {
      "file": "LICENSE",
      "kind": "license",
      "sha256": "4fe705509418993f1ad677f91108c2df676228d7b0a758b42ebe79e8b5ad5a4b",
      "sourceRevision": "60b6b444e6dfb670fab47bfb0da9dd9da1f8150b",
      "license": "MIT"
    },
    {
      "file": "upstream/apps/origin/config/components.ts",
      "kind": "upstream-implementation",
      "sha256": "f6818c506ed905f11c3dac09ffa389d02cc444c9de5012655e671c87ee4e8edd",
      "sourceRevision": "60b6b444e6dfb670fab47bfb0da9dd9da1f8150b",
      "license": "MIT"
    },
    {
      "file": "author/apps/origin/app/globals.css",
      "kind": "theme-source",
      "sha256": "32516eeb848422448834d25bbcdce735323f03f00914d7a9377f2e2e2f2f71a9",
      "sourceRevision": "60b6b444e6dfb670fab47bfb0da9dd9da1f8150b",
      "license": "MIT"
    },
    {
      "file": "author/apps/origin/package.json",
      "kind": "dependency-manifest",
      "sha256": "3972a2277166802b5a333210c761c9889e5dc2683c0f3d85b91a174e94ed313d",
      "sourceRevision": "60b6b444e6dfb670fab47bfb0da9dd9da1f8150b",
      "license": "MIT"
    }
  ],
  "importMap": {},
  "declaredDependencies": {
    "lucide-react": "^0.539.0"
  },
  "runtimeDependencies": {
    "react-origin": "19.2.6",
    "lucide-origin": "0.539.0",
    "scheduler": "0.27.0",
    "react-dom-origin": "19.2.6",
    "tailwindcss": "4.1.13"
  },
  "packageAliases": {
    "react": "react-origin",
    "react-dom": "react-dom-origin",
    "lucide-react": "lucide-origin",
    "tailwind-merge": "tailwind-merge-origin"
  },
  "assets": [],
  "assetAdaptations": [],
  "adaptations": [
    "The unchanged official Origin example apps/origin/registry/default/components/comp-269.tsx is the entry, pinned to cosscom/coss revision 60b6b444e6dfb670fab47bfb0da9dd9da1f8150b under the apps/origin MIT notice.",
    "The historical 21st Alert(layout/icon/action/isNotification) wrapper is not reused. The matching official variant uses explicit DOM; historical wrapper byte identity is not claimed.",
    "The original Origin theme is supplied by the host. The source implementation and its available Button/cn dependencies remain unchanged."
  ],
  "runtime_verified": false
}
