@hjmds/design-contracts 1.8.0 → 1.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/dist/affix.d.ts +8 -0
  2. package/dist/affix.d.ts.map +1 -0
  3. package/dist/affix.js +7 -0
  4. package/dist/affix.js.map +1 -0
  5. package/dist/catalog.d.ts +28 -90
  6. package/dist/catalog.d.ts.map +1 -1
  7. package/dist/catalog.js +11 -11
  8. package/dist/catalog.js.map +1 -1
  9. package/dist/color-picker.d.ts +11 -0
  10. package/dist/color-picker.d.ts.map +1 -0
  11. package/dist/color-picker.js +20 -0
  12. package/dist/color-picker.js.map +1 -0
  13. package/dist/component-definitions.d.ts +0 -5
  14. package/dist/component-definitions.d.ts.map +1 -1
  15. package/dist/component-definitions.js +0 -5
  16. package/dist/component-definitions.js.map +1 -1
  17. package/dist/component-references.d.ts +10 -10
  18. package/dist/component-references.js +5 -5
  19. package/dist/component-references.js.map +1 -1
  20. package/dist/interaction-adapters.d.ts +53 -0
  21. package/dist/interaction-adapters.d.ts.map +1 -0
  22. package/dist/interaction-adapters.js +45 -0
  23. package/dist/interaction-adapters.js.map +1 -0
  24. package/dist/showcase.d.ts.map +1 -1
  25. package/dist/showcase.js +3 -0
  26. package/dist/showcase.js.map +1 -1
  27. package/dist/toast-liquid.d.ts +1 -1
  28. package/dist/toast-liquid.d.ts.map +1 -1
  29. package/dist/toast-liquid.js +4 -1
  30. package/dist/toast-liquid.js.map +1 -1
  31. package/dist/version.d.ts +1 -1
  32. package/dist/version.js +1 -1
  33. package/dist/version.js.map +1 -1
  34. package/dist/watermark.d.ts +15 -0
  35. package/dist/watermark.d.ts.map +1 -0
  36. package/dist/watermark.js +11 -0
  37. package/dist/watermark.js.map +1 -0
  38. package/docs/affix.md +27 -63
  39. package/docs/ant-design-coverage.md +8 -12
  40. package/docs/cascader.md +5 -0
  41. package/docs/catalog-decision-status.md +5 -0
  42. package/docs/color-picker.md +30 -72
  43. package/docs/confirm-popover.md +5 -0
  44. package/docs/generated/component-maturity.md +7 -12
  45. package/docs/generated/renderer-evidence.json +165 -6
  46. package/docs/generated/renderer-evidence.md +5 -2
  47. package/docs/generated/showcase-manifest.json +44 -127
  48. package/docs/optional-adapters.md +20 -0
  49. package/docs/rating.md +5 -0
  50. package/docs/stable-core.md +21 -1
  51. package/docs/time-picker.md +5 -0
  52. package/docs/tree-select.md +5 -0
  53. package/docs/watermark.md +26 -58
  54. package/package.json +25 -1
@@ -1 +1 @@
1
- {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"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","sourcesContent":["import { masonryRecipe } from \"./masonry.js\";\nimport { virtualListRecipe } from \"./virtual-list.js\";\nimport { qrCodeRecipe } from \"./qr-code-recipe.js\";\nimport { thinkingOrbRecipe } from \"./thinking-orb-recipe.js\";\nimport type { BehaviorName } from \"./behaviors.js\";\n\nexport type ComponentCategory =\n | \"foundation\"\n | \"layout\"\n | \"action\"\n | \"input\"\n | \"navigation\"\n | \"data-display\"\n | \"feedback\"\n | \"overlay\"\n | \"provider\"\n | \"utility\";\n\nexport type ComponentPlatform = \"shared\" | \"adaptive\" | \"web\" | \"native\";\nexport type ComponentStatus = \"stable\" | \"beta\" | \"planned\" | \"deprecated\";\nexport type ComponentSurface = \"web\" | \"native\";\nexport type ComponentSurfaceStatus = ComponentStatus | \"unsupported\";\nexport type ComponentSurfaceMaturity = Readonly<\n Record<ComponentSurface, ComponentSurfaceStatus>\n>;\nexport type ComponentRoadmapState =\n | \"contract-ready\"\n | \"composed\"\n | \"evidence-needed\"\n | \"prerequisite\"\n | \"declined\";\n\nexport type ComponentRoadmap = Readonly<{\n state: ComponentRoadmapState;\n summary: string;\n /** Canonical components that solve this reference problem together. */\n targets?: readonly string[];\n}>;\n\nexport type ComponentNonVisualEvidence = \"provider-adapter\";\n\nexport type ComponentCatalogEntry = Readonly<{\n name: string;\n category: ComponentCategory;\n platform: ComponentPlatform;\n /** Contract maturity. Renderer maturity is tracked independently per surface. */\n status: ComponentStatus;\n /**\n * Renderer evidence for each surface. Built-in entries always provide this\n * matrix. It stays optional so catalog entries authored against the pre-0.6\n * shape can still be passed to public helpers during migration.\n */\n surfaceStatus?: ComponentSurfaceMaturity;\n /** Search terms and familiar ecosystem names; never an API compatibility promise. */\n aliases?: readonly string[];\n recipe?: RecipeName;\n behavior?: BehaviorName;\n /** Explicit evidence for a mature contract whose value is not a visual recipe. */\n nonVisualEvidence?: ComponentNonVisualEvidence;\n /** Why the row exists at its current maturity and what event moves it forward. */\n roadmap?: ComponentRoadmap;\n /**\n * 만들지 않기로 **확정한** 항목의 사유. `status`는 구현 성숙도 축이고 이것은\n * \"만들 것인가\"라는 다른 질문이라 직교 필드로 둔다.\n *\n * 이 필드가 필요한 이유: crosswalk의 `targets`가 이 항목들을 가리키고\n * `targets.length > 0`이 테스트로 강제되므로, 흡수할 다른 이름이 없으면 행을 지울 수\n * 없다. 그렇다고 `planned`로 두면 \"아직 안 만들었지만 만들 것\"이라는 거짓을 말한다.\n * 근거는 `docs/<id>.md`에 있고, 그 문서의 존재를 테스트가 강제한다.\n */\n declinedReason?: string;\n}>;\n\n/*\n 2026-09-18 현재 이 상태를 쓰는 행이 없다 — 계약만 준비돼 있던 항목이 모두 renderer나\n 조합으로 닫혔다. `prerequisite`와 같은 이유로 helper는 남긴다: 다음에 계약만 먼저\n 들어오는 컴포넌트가 생기면 바로 쓴다.\n*/\nexport const contractReady = (summary: string) => ({\n roadmap: { state: \"contract-ready\", summary },\n} as const);\nconst composed = (summary: string, targets: readonly string[]) => ({\n roadmap: { state: \"composed\", summary, targets },\n} as const);\n// Promotion uses renderer requirements; adoption notes are not gates (docs/stable-promotion.md).\nconst evidenceNeeded = (summary: string) => ({\n roadmap: { state: \"evidence-needed\", summary },\n} as const);\n/*\n 2026-09-18 현재 사용하는 행이 없다(Cascader가 마지막이었고 조합으로 풀렸다). 상태 값\n 자체는 타입과 문서에 남아 있으므로 helper도 함께 둔다 — 다음에 선행 조건이 실제로 생기면\n 다시 쓰고, 지금은 export로 미사용 오류만 피한다. 상태 값을 지우는 결정은 별도 판단이다.\n*/\nexport const prerequisite = (summary: string, targets: readonly string[]) => ({\n roadmap: { state: \"prerequisite\", summary, targets },\n} as const);\n\nconst surfaceMaturity = <\n const Web extends ComponentSurfaceStatus,\n const Native extends ComponentSurfaceStatus,\n>(web: Web, native: Native) => ({ surfaceStatus: { web, native } } as const);\n\n/**\n * Resolves renderer maturity without conflating it with contract maturity.\n * The fallback preserves custom catalog entries authored before\n * `surfaceStatus`; every built-in entry uses the explicit matrix.\n */\nexport function getComponentSurfaceStatus(\n entry: ComponentCatalogEntry,\n surface: ComponentSurface,\n): ComponentSurfaceStatus {\n if (entry.surfaceStatus) return entry.surfaceStatus[surface];\n if (entry.platform === \"shared\" || entry.platform === \"adaptive\") return entry.status;\n if (entry.platform === surface) return entry.status;\n return \"unsupported\";\n}\n\n/**\n * The catalog is a scope and maturity contract, not an implementation claim.\n * `shared` means API/visual parity. `adaptive` means shared intent with native\n * platform behavior. Web/native entries are intentionally platform-specific.\n */\nexport const componentCatalog = [\n { name: \"Text\", category: \"foundation\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"textRecipe\" },\n // Web semantic element is stable; React Native has no equivalent semantic elements.\n { name: \"TextFormat\", category: \"foundation\", platform: \"web\", status: \"stable\", ...surfaceMaturity(\"stable\", \"unsupported\"), aliases: [\"Kbd\", \"Code\", \"Blockquote\"], recipe: \"textFormatRecipe\", behavior: \"textFormat\" },\n { name: \"Heading\", category: \"foundation\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"headingRecipe\", behavior: \"heading\" },\n { name: \"Icon\", category: \"foundation\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"iconRecipe\" },\n { name: \"Surface\", category: \"layout\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"surfaceRecipe\" },\n // Display promotions use renderer evidence, not product adoption counts (docs/stable-core.md).\n { name: \"Divider\", category: \"layout\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"dividerRecipe\" },\n { name: \"Section\", category: \"layout\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"sectionRecipe\" },\n { name: \"Stack\", category: \"layout\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"stackRecipe\", aliases: [\"Flex\", \"Space\", \"Inline\"] },\n { name: \"Container\", category: \"layout\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"containerRecipe\" },\n // Both renderers now pass the required scenario matrix, including long child copy; the product keeps media semantics.\n { name: \"AspectRatio\", category: \"layout\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"aspectRatioRecipe\", ...evidenceNeeded(\"Radix·Chakra·Mantine·Carbon에서 반복되는 media geometry 문제를 shared primitive로 채택했습니다. 제품이 object-fit을 소유하고 renderer는 비율만 보장합니다.\") },\n // Both renderers now exercise long child content in addition to the responsive geometry contract.\n { name: \"Grid\", category: \"layout\", platform: \"adaptive\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"gridRecipe\", ...evidenceNeeded(\"공통 window class·responsive value·row-major geometry 계약과 공식 Web/RN default renderer 증거가 연결됐습니다. 남은 환경 증거는 generated 보고서에서 추적합니다.\") },\n // Interaction evidence belongs to its declared surface; inventing a Native skip-link only to mirror Web would add unsupported behavior.\n { name: \"Layout\", category: \"layout\", platform: \"adaptive\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), aliases: [\"AppShell\"], recipe: \"layoutRecipe\", behavior: \"layout\", ...evidenceNeeded(\"Web skip-link and renderer scenarios verified.\") },\n { name: \"Top\", category: \"layout\", platform: \"adaptive\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"topRecipe\", behavior: \"top\" },\n { name: \"Masonry\", category: \"layout\", platform: \"adaptive\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"masonryRecipe\" },\n // Stable after the real Web matrix and focused separator keyboard proof pass; collapse and N-pane stay out of the contract.\n { name: \"Splitter\", category: \"layout\", platform: \"web\", status: \"stable\", ...surfaceMaturity(\"stable\", \"unsupported\"), aliases: [\"SplitPane\"], recipe: \"splitterRecipe\", behavior: \"splitter\", ...evidenceNeeded(\"Web long-copy, environment, accessibility, drag and focused keyboard proofs pass.\") },\n { name: \"Button\", category: \"action\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"buttonRecipe\" },\n { name: \"IconButton\", category: \"action\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"iconButtonRecipe\" },\n // Web anchor Enter activation and Native router activation are now asserted at the renderer boundary.\n { name: \"Link\", category: \"action\", platform: \"adaptive\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"linkRecipe\", behavior: \"link\" },\n { name: \"BottomCTA\", category: \"action\", platform: \"adaptive\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"bottomCtaRecipe\" },\n { name: \"FloatingActionButton\", category: \"action\", platform: \"adaptive\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"floatingActionButtonRecipe\", behavior: \"floatingActionButton\", aliases: [\"FloatButton\", \"FAB\"], ...evidenceNeeded(\"Web/RN의 고정 생성 행동, 스크롤 방향 hook, 실제 높이·safe area 여백을 제공합니다. docs/floating-action-button.md에서 전체 이름·focus 유지와 목록 가림을 검증합니다.\") },\n // Product-owned auth copy stays in slots; both renderer matrices now exercise long hero text.\n { name: \"AuthScreenLayout\", category: \"layout\", platform: \"adaptive\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), aliases: [\"SignInLayout\"], recipe: \"authScreenRecipe\", behavior: \"authScreen\", ...evidenceNeeded(\"로그인 화면의 두 영역 골격입니다. 히어로와 주 행동을 세로 중앙에 한 덩어리로 두고 동의 고지·정책 링크를 바닥에 붙입니다. 문구·마크·제공자 목록·링크 목적지는 제품이 슬롯으로 넘기며, 인증 흐름은 이 계약에 없습니다.\") },\n // Enter/Space and Native host press now invoke the explicit product-owned action.\n { name: \"AuthProviderButton\", category: \"action\", platform: \"adaptive\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), aliases: [\"SocialLoginButton\"], recipe: \"authProviderButtonRecipe\", behavior: \"authProviderButton\", ...evidenceNeeded(\"Google·Kakao·Naver·Apple 로그인 버튼입니다. 색은 제공자 가이드라인 값이고 테마가 다시 칠하지 않으며, 로고 자산과 문구는 제품이 넘깁니다. 실제 제공자 심사 통과는 제품 소유입니다.\") },\n { name: \"Field\", category: \"input\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"fieldRecipe\", behavior: \"field\" },\n // Long labels wrap and Web typing/clear plus Native input/clear actions are covered.\n { name: \"SearchField\", category: \"input\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"searchFieldRecipe\", behavior: \"searchField\" },\n { name: \"TextArea\", category: \"input\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"fieldRecipe\" },\n // Web Enter/Space and Native host reveal actions are now verified on both renderers.\n { name: \"PasswordField\", category: \"input\", platform: \"adaptive\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), aliases: [\"Input.Password\"], recipe: \"passwordFieldRecipe\", behavior: \"passwordField\" },\n // One accessible text input, numeric sanitization, wrapping label, and input actions are covered per renderer.\n { name: \"OtpField\", category: \"input\", platform: \"adaptive\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), aliases: [\"Input.OTP\"], recipe: \"otpFieldRecipe\", behavior: \"otpField\" },\n // Web Space and Native host press now verify the single checkbox state transition.\n { name: \"Checkbox\", category: \"input\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"selectionControlRecipe\", behavior: \"checkbox\" },\n // Long option labels now have matrix coverage on both renderers.\n { name: \"Radio\", category: \"input\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"selectionControlRecipe\" },\n // Web Space and Native host press now prove the choice update on each renderer.\n { name: \"CheckboxGroup\", category: \"input\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"selectionGroupRecipe\", behavior: \"checkboxGroup\" },\n // Web Space and Native host press now verify the selected option transition.\n { name: \"RadioGroup\", category: \"input\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"selectionGroupRecipe\", behavior: \"radioGroup\" },\n // Web Space and Native host press now prove the checked state transition.\n { name: \"Switch\", category: \"input\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"switchRecipe\", behavior: \"switch\" },\n // Web Space and Native host press now verify selectable Chip state changes.\n { name: \"Chip\", category: \"input\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"chipRecipe\", behavior: \"chip\" },\n // Web arrow-key selection and Native host press now prove option changes.\n { name: \"SegmentedControl\", category: \"input\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"segmentedControlRecipe\", behavior: \"segmentedControl\" },\n // Web Space and Native host press now verify the pressed-id set transition.\n { name: \"ToggleGroup\", category: \"input\", platform: \"adaptive\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"toggleGroupRecipe\", behavior: \"toggleGroup\", ...evidenceNeeded(\"여러 개를 동시에 켜는 버튼 묶음입니다. 하나만 고르는 자리는 SegmentedControl이 그대로 갖습니다.\") },\n // Both renderer matrices and the surface-specific commit/remove regressions pass; Native intentionally commits on Return, not blur.\n { name: \"TagsInput\", category: \"input\", platform: \"adaptive\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), aliases: [\"TagField\", \"ChipsInput\"], recipe: \"tagsInputRecipe\", behavior: \"tagsInput\", ...evidenceNeeded(\"자유 입력 다중값 계약입니다. 정책 판정은 공통이며 Web Enter와 Native Return 확정, 위치 기반 삭제 action을 각 renderer에서 검증합니다. Web-only 후보 키 탐색과 2단계 Backspace는 Native 동등 동작으로 주장하지 않습니다.\") },\n // Web ArrowRight and Native adjustable increment now prove the same step transition.\n { name: \"Slider\", category: \"input\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"sliderRecipe\", behavior: \"slider\", ...evidenceNeeded(\"Web range input과 Native adjustable renderer가 같은 범위·step 계약을 실행합니다.\") },\n // Long labels, Web ArrowUp, and Native adjustable increment now have renderer proofs.\n { name: \"NumberField\", category: \"input\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"numberFieldRecipe\", behavior: \"numberField\" },\n // Long labels and Web arrow/Enter plus Native host option activation now have renderer proofs.\n { name: \"Select\", category: \"input\", platform: \"adaptive\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"selectRecipe\", behavior: \"select\" },\n // Long labels and Web filter/ArrowDown/Enter plus Native option/after-dismiss actions now have renderer proofs.\n { name: \"Combobox\", category: \"input\", platform: \"adaptive\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"comboboxRecipe\", behavior: \"combobox\", ...evidenceNeeded(\"Filtered collection selection is covered per renderer. Native commits the selected key after its host sheet dismisses; Web keyboard selection remains its own interaction contract.\") },\n // Product adoption and device QA follow the consumer release; both renderer contracts now have complete required proofs.\n { name: \"DatePicker\", category: \"input\", platform: \"adaptive\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"datePickerRecipe\", behavior: \"datePicker\" },\n { name: \"DateRangePicker\", category: \"input\", platform: \"adaptive\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), aliases: [\"DateRange\"], recipe: \"calendarRecipe\", behavior: \"dateRange\" },\n { name: \"TimePicker\", category: \"input\", platform: \"adaptive\", status: \"planned\", ...surfaceMaturity(\"planned\", \"planned\"), ...composed(\"시·분 Select와 확정·초기화를 조합한 Web/RN 예제를 제공합니다. docs/time-picker.md.\", [\"Select\"]) },\n { name: \"ColorPicker\", category: \"input\", platform: \"web\", status: \"planned\", ...surfaceMaturity(\"planned\", \"unsupported\"), ...evidenceNeeded(\"임의 색 선택이 실제 제품 요구로 확인될 때 색공간·키보드 계약을 엽니다.\") },\n { name: \"FilePicker\", category: \"input\", platform: \"adaptive\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"filePickerRecipe\", behavior: \"filePicker\", aliases: [\"Upload\"], ...evidenceNeeded(\"Web은 native file input과 dropzone 선택을, Native는 제품 소유 picker adapter 연결을 제공하고 양쪽이 같은 accept·size·count resolver를 사용합니다. 실제 OS picker 동작은 소비 앱 QA에서 확인합니다.\") },\n { name: \"Cascader\", category: \"input\", platform: \"adaptive\", status: \"planned\", ...surfaceMaturity(\"planned\", \"planned\"), ...composed(\"Tree renderer가 들어오면서 경로는 resolve 결과에서 파생되고 중간 단계 확정은 그 노드를 고르는 것으로 끝납니다. 열 방식 화면을 베끼는 대신 Patterns/Tree의 Cascader 조합 예제로 제공합니다.\", [\"Popover\", \"Tree\"]) },\n // Both renderers now focus the product-selected first invalid field; field ordering and validation stay product-owned (docs/form.md).\n { name: \"Form\", category: \"input\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"formRecipe\", behavior: \"form\" },\n { name: \"Agreement\", category: \"input\", platform: \"adaptive\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"agreementRecipe\", behavior: \"agreement\", ...evidenceNeeded(\"전체 동의는 항목의 합에서 파생하고 필수 항목만 제출 가능 여부를 정합니다. 전문 열기는 동의와 분리된 별도 tab stop입니다. 제품의 문구·링크·법적 검토와 동의 기록은 제품 소유입니다.\") },\n // Both renderer matrices now prove caret insertion, named candidate actions, and long-copy behavior; IME device certification stays consumer QA because this contract does not control composition.\n { name: \"Mentions\", category: \"input\", platform: \"adaptive\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"comboboxRecipe\", behavior: \"combobox\" },\n { name: \"Rating\", category: \"input\", platform: \"shared\", status: \"planned\", ...surfaceMaturity(\"planned\", \"planned\"), aliases: [\"Rate\"], ...composed(\"정수/반점 Slider 입력·저장과 Statistic 평균 표시의 Web/RN 예제를 제공합니다. docs/rating.md.\", [\"Slider\", \"Statistic\"]) },\n { name: \"TransferList\", category: \"input\", platform: \"adaptive\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), aliases: [\"Transfer\"], recipe: \"transferListRecipe\", behavior: \"transferList\" },\n { name: \"TreeSelect\", category: \"input\", platform: \"web\", status: \"planned\", ...surfaceMaturity(\"planned\", \"unsupported\"), ...composed(\"새 primitive가 아니라 Popover 표면·Tree collection·tri-state 판정 모듈의 조합입니다. 작동 예제는 Patterns/Tree의 TreeSelect 화면입니다. docs/tree-select.md.\", [\"Popover\", \"Tree\"]) },\n // Upload/network lifecycle belongs to consuming products; both renderers verify the caller-owned status/action contract.\n { name: \"UploadItem\", category: \"data-display\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"uploadItemRecipe\", behavior: \"uploadItem\" },\n { name: \"Tabs\", category: \"navigation\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"tabsRecipe\", behavior: \"tabs\", ...evidenceNeeded(\"Web Arrow-key roving focus skips disabled tabs, keeps manual selection until activation, and scrolls a focused tab into view; reduced motion uses instant scrolling. Native exposes a contract-named activate action and labelled panel.\") },\n // Public API/Web are stable; Native long-copy evidence remains open (docs/stable-core.md).\n // Native title text now passes the long-copy scenario matrix, completing its renderer maturity.\n { name: \"TopBar\", category: \"navigation\", platform: \"adaptive\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"topBarRecipe\" },\n // Web keyboard and long-copy renderer proofs now pass; Native remains unsupported because its navigation pattern is product-owned.\n { name: \"Sidebar\", category: \"navigation\", platform: \"web\", status: \"stable\", ...surfaceMaturity(\"stable\", \"unsupported\"), aliases: [\"NavigationRail\", \"SideNav\"], recipe: \"sidebarRecipe\", behavior: \"sidebar\" },\n { name: \"BottomNavigation\", category: \"navigation\", platform: \"adaptive\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"bottomNavigationRecipe\", behavior: \"bottomNavigation\", ...evidenceNeeded(\"Web Tab·Enter link와 Native route/reselect host action이 navigator 소유 선택 상태를 보존하고, 긴 목적지 label을 보이는 문구와 접근성 이름에 유지합니다.\") },\n // Product routes and device QA remain consumer-owned; the Web renderer and route-link proofs now pass.\n { name: \"Breadcrumb\", category: \"navigation\", platform: \"web\", status: \"stable\", ...surfaceMaturity(\"stable\", \"unsupported\"), recipe: \"breadcrumbRecipe\", behavior: \"breadcrumb\" },\n // Numeric-only rendering has no visible prose slot; four-digit page layout remains in the 320px/2x/RTL proof.\n { name: \"Pagination\", category: \"navigation\", platform: \"web\", status: \"stable\", ...surfaceMaturity(\"stable\", \"unsupported\"), recipe: \"paginationRecipe\", behavior: \"pagination\" },\n { name: \"LoadMore\", category: \"navigation\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"loadMoreRecipe\", behavior: \"loadMore\", ...evidenceNeeded(\"Web keyboard fallback·viewport observer와 Native onEndReached·retry action에서 requestKey 중복 방지, busy/error/complete 상태와 긴 현지화 문구를 검증했습니다. Native FlatList/device 통합은 소비 앱 QA입니다.\") },\n // This non-interactive progress summary now has long-label matrix coverage on both renderers.\n { name: \"Steps\", category: \"navigation\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"stepsRecipe\", ...evidenceNeeded(\"단일 cursor에서 상태를 파생하는 Web·Native renderer와 기본 실행 증거가 연결됐습니다. 실제 다단계 흐름과 보조기기 증거가 더 필요합니다.\") },\n // The Web interaction, disabled-item handling, long labels, and environment matrix have executable evidence; Native is unsupported by design.\n { name: \"Menubar\", category: \"navigation\", platform: \"web\", status: \"stable\", ...surfaceMaturity(\"stable\", \"unsupported\"), recipe: \"menubarRecipe\", behavior: \"menubar\" },\n { name: \"ContextMenu\", category: \"navigation\", platform: \"web\", status: \"stable\", ...surfaceMaturity(\"stable\", \"unsupported\"), recipe: \"menuRecipe\", behavior: \"contextMenu\" },\n { name: \"Menu\", category: \"navigation\", platform: \"adaptive\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"menuRecipe\", behavior: \"menu\", aliases: [\"Dropdown\"] },\n { name: \"Anchor\", category: \"navigation\", platform: \"web\", status: \"stable\", ...surfaceMaturity(\"stable\", \"unsupported\"), recipe: \"anchorRecipe\", behavior: \"anchor\" },\n // Visible content is initials or media; accessible names and fallback states have dedicated proofs.\n { name: \"Avatar\", category: \"data-display\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"avatarRecipe\" },\n { name: \"Asset\", category: \"data-display\", platform: \"adaptive\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), aliases: [\"Media\", \"Artwork\"], recipe: \"assetRecipe\", behavior: \"asset\", ...evidenceNeeded(\"아이콘·이미지·Lottie·비디오를 한 액자 규칙으로 묶습니다. 재생기는 슬롯으로 받아 이 패키지가 의존하지 않습니다.\") },\n { name: \"Badge\", category: \"data-display\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"badgeRecipe\" },\n // This component renders a bounded number or dot, not arbitrary visible prose.\n { name: \"CounterBadge\", category: \"data-display\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"counterBadgeRecipe\" },\n { name: \"Card\", category: \"data-display\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"cardRecipe\" },\n // The list's visible rows own variable-length titles, now covered by each renderer's matrix.\n { name: \"List\", category: \"data-display\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"listRecipe\" },\n { name: \"ListRow\", category: \"data-display\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"listRowRecipe\" },\n { name: \"VirtualList\", category: \"data-display\", platform: \"adaptive\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), aliases: [\"Listy\"], recipe: \"virtualListRecipe\" },\n { name: \"Collapsible\", category: \"data-display\", platform: \"adaptive\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), aliases: [\"Disclosure\"], recipe: \"collapsibleRecipe\", behavior: \"collapsible\" },\n { name: \"Accordion\", category: \"data-display\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"accordionRecipe\", behavior: \"disclosureGroup\", ...evidenceNeeded(\"그룹 내 disclosure 상태와 trigger·panel 접근성 관계를 Web 키보드와 Native press 회귀로 확인했습니다.\") },\n { name: \"Statistic\", category: \"data-display\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"statisticRecipe\" },\n // Timeline labels are visible prose and now have long-copy matrix coverage on both renderers.\n { name: \"Timeline\", category: \"data-display\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"timelineRecipe\", ...evidenceNeeded(\"두 제품의 이력 UI가 공통 descriptor와 Web/RN dot·connector renderer를 소비합니다. 남은 renderer 증거는 generated 보고서에서 추적합니다.\") },\n { name: \"DataTable\", category: \"data-display\", platform: \"web\", status: \"stable\", ...surfaceMaturity(\"stable\", \"unsupported\"), recipe: \"dataTableRecipe\", behavior: \"dataTable\" },\n { name: \"Tree\", category: \"data-display\", platform: \"web\", status: \"stable\", ...surfaceMaturity(\"stable\", \"unsupported\"), recipe: \"treeRecipe\", behavior: \"tree\" },\n { name: \"Calendar\", category: \"data-display\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"calendarRecipe\", behavior: \"calendar\" },\n { name: \"Carousel\", category: \"data-display\", platform: \"adaptive\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"carouselRecipe\", behavior: \"carousel\" },\n { name: \"DescriptionList\", category: \"data-display\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"descriptionListRecipe\", aliases: [\"Descriptions\"] },\n // Image alt is accessibility copy, not visible renderer text; load and fallback behavior remain covered.\n { name: \"Image\", category: \"data-display\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"imageRecipe\", ...evidenceNeeded(\"Web load/error/fallback·framework adapter와 Native fallback·optimized-host adapter가 기본 실행 증거를 제공합니다. 남은 renderer 증거는 generated 보고서에서 추적합니다.\") },\n { name: \"QRCode\", category: \"data-display\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"qrCodeRecipe\" },\n { name: \"Tag\", category: \"data-display\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"tagRecipe\" },\n { name: \"Tour\", category: \"overlay\", platform: \"web\", status: \"stable\", ...surfaceMaturity(\"stable\", \"unsupported\"), recipe: \"tourRecipe\", behavior: \"tour\", aliases: [\"CoachMark\"] },\n { name: \"EmptyState\", category: \"feedback\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"emptyStateRecipe\" },\n { name: \"Notice\", category: \"feedback\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"noticeRecipe\" },\n { name: \"Progress\", category: \"feedback\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"progressRecipe\" },\n // Both renderer matrices and installed iOS/Android Skia smoke pass; optional host linkage remains explicit (docs/thinking-orb.md).\n { name: \"ThinkingOrb\", category: \"feedback\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"thinkingOrbRecipe\" },\n { name: \"Spinner\", category: \"feedback\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"spinnerRecipe\" },\n { name: \"Skeleton\", category: \"feedback\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"skeletonRecipe\" },\n // Product adoption is tracked separately from the complete renderer matrix (docs/stable-core.md).\n { name: \"Result\", category: \"feedback\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"resultRecipe\" },\n // Product-owned notice copy is an intended visible text slot; both renderers now prove long-copy wrapping.\n { name: \"BottomInfo\", category: \"feedback\", platform: \"adaptive\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"bottomInfoRecipe\", behavior: \"bottomInfo\", ...evidenceNeeded(\"주 행동 아래의 상시 안내 문장입니다. 상태를 알리는 Notice와 달리 tone·아이콘이 없고 사라지지 않습니다.\") },\n // Liquid is an opt-in presentation; Web close/Escape and Native close actions are covered separately.\n { name: \"Toast\", category: \"feedback\", platform: \"adaptive\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"toastRecipe\", behavior: \"toast\", aliases: [\"Notification\"] },\n { name: \"Watermark\", category: \"feedback\", platform: \"web\", status: \"planned\", ...surfaceMaturity(\"planned\", \"unsupported\"), ...evidenceNeeded(\"화면 위 반복 표식이 필요한 제품 요구가 확인되면 의미·인쇄·접근성 경계를 엽니다.\") },\n { name: \"Dialog\", category: \"overlay\", platform: \"adaptive\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"dialogRecipe\", behavior: \"dialog\" },\n { name: \"AlertDialog\", category: \"overlay\", platform: \"adaptive\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"alertDialogRecipe\", behavior: \"alertDialog\" },\n { name: \"Sheet\", category: \"overlay\", platform: \"adaptive\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"sheetRecipe\", behavior: \"sheet\" },\n { name: \"SidePanel\", category: \"overlay\", platform: \"web\", status: \"stable\", ...surfaceMaturity(\"stable\", \"unsupported\"), recipe: \"sidePanelRecipe\", behavior: \"sidePanel\" },\n { name: \"Popover\", category: \"overlay\", platform: \"web\", status: \"stable\", ...surfaceMaturity(\"stable\", \"unsupported\"), recipe: \"popoverRecipe\", behavior: \"popover\" },\n { name: \"ConfirmPopover\", category: \"overlay\", platform: \"web\", status: \"planned\", ...surfaceMaturity(\"planned\", \"unsupported\"), aliases: [\"Popconfirm\"], ...composed(\"되돌릴 수 있는 보관은 Popover의 확인/취소 조합으로 제공합니다. 파괴적 동작은 AlertDialog를 사용합니다.\", [\"Popover\", \"AlertDialog\"]) },\n { name: \"Tooltip\", category: \"overlay\", platform: \"web\", status: \"stable\", ...surfaceMaturity(\"stable\", \"unsupported\"), recipe: \"tooltipRecipe\", behavior: \"tooltip\" },\n { name: \"CommandPalette\", category: \"overlay\", platform: \"web\", status: \"stable\", ...surfaceMaturity(\"stable\", \"unsupported\"), recipe: \"commandPaletteRecipe\", behavior: \"commandPalette\" },\n { name: \"Affix\", category: \"utility\", platform: \"web\", status: \"planned\", ...surfaceMaturity(\"planned\", \"unsupported\"), ...evidenceNeeded(\"임의 콘텐츠의 scroll threshold 고정 요구가 확인되면 Web 전용 계약을 엽니다.\") },\n { name: \"DesignSystemProvider\", category: \"provider\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), aliases: [\"ConfigProvider\"], nonVisualEvidence: \"provider-adapter\" },\n { name: \"SkipNav\", category: \"utility\", platform: \"web\", status: \"stable\", ...surfaceMaturity(\"stable\", \"unsupported\"), aliases: [\"SkipLink\"], recipe: \"skipNavRecipe\", behavior: \"skipNav\" },\n // Hidden copy is validated as an accessible node; visual long-copy overflow is inapplicable by design.\n { name: \"VisuallyHidden\", category: \"utility\", platform: \"web\", status: \"stable\", ...surfaceMaturity(\"stable\", \"unsupported\"), recipe: \"visuallyHiddenRecipe\", aliases: [\"ScreenReaderOnly\", \"SrOnly\"], ...evidenceNeeded(\"Chakra와 React Aria가 별도 접근성 primitive로 제공하는 문제를 Web에서 채택했습니다. Native는 중복 invisible node 대신 host accessibilityLabel/accessibilityHint를 사용하므로 의도적으로 지원하지 않습니다.\") },\n] as const satisfies readonly ComponentCatalogEntry[];\n\nexport type ComponentName = (typeof componentCatalog)[number][\"name\"];\n\nexport function summarizeComponentRoadmap(\n entries: readonly ComponentCatalogEntry[] = componentCatalog,\n): Readonly<Record<ComponentRoadmapState, number>> {\n return entries.reduce<Record<ComponentRoadmapState, number>>(\n (summary, entry) => {\n if (entry.roadmap) summary[entry.roadmap.state] += 1;\n return summary;\n },\n {\n \"contract-ready\": 0,\n composed: 0,\n \"evidence-needed\": 0,\n prerequisite: 0,\n declined: 0,\n },\n );\n}\nimport {\n accordionRecipe,\n alertDialogRecipe,\n avatarRecipe,\n badgeRecipe,\n bottomNavigationRecipe,\n bottomCtaRecipe,\n anchorRecipe,\n agreementRecipe,\n topRecipe,\n authProviderButtonRecipe,\n authScreenRecipe,\n headingRecipe,\n toggleGroupRecipe,\n tagsInputRecipe,\n skipNavRecipe,\n bottomInfoRecipe,\n sidebarRecipe,\n textFormatRecipe,\n collapsibleRecipe,\n menubarRecipe,\n assetRecipe,\n breadcrumbRecipe,\n aspectRatioRecipe,\n containerRecipe,\n calendarRecipe,\n cardRecipe,\n buttonRecipe,\n carouselRecipe,\n chipRecipe,\n comboboxRecipe,\n descriptionListRecipe,\n counterBadgeRecipe,\n dialogRecipe,\n dataTableRecipe,\n datePickerRecipe,\n dividerRecipe,\n formRecipe,\n emptyStateRecipe,\n fieldRecipe,\n filePickerRecipe,\n iconButtonRecipe,\n iconRecipe,\n imageRecipe,\n linkRecipe,\n listRecipe,\n listRowRecipe,\n loadMoreRecipe,\n menuRecipe,\n noticeRecipe,\n paginationRecipe,\n popoverRecipe,\n numberFieldRecipe,\n progressRecipe,\n resultRecipe,\n searchFieldRecipe,\n selectRecipe,\n selectionGroupRecipe,\n sectionRecipe,\n segmentedControlRecipe,\n selectionControlRecipe,\n sheetRecipe,\n sidePanelRecipe,\n commandPaletteRecipe,\n layoutRecipe,\n otpFieldRecipe,\n passwordFieldRecipe,\n splitterRecipe,\n tourRecipe,\n transferListRecipe,\n skeletonRecipe,\n sliderRecipe,\n spinnerRecipe,\n stackRecipe,\n statisticRecipe,\n stepsRecipe,\n surfaceRecipe,\n switchRecipe,\n tabsRecipe,\n tagRecipe,\n textRecipe,\n timelineRecipe,\n toastRecipe,\n tooltipRecipe,\n topBarRecipe,\n treeRecipe,\n uploadItemRecipe,\n visuallyHiddenRecipe,\n} from \"./recipes.js\";\nimport { floatingActionButtonRecipe } from \"./floating-action-button.js\";\nimport { gridRecipe } from \"./grid.js\";\n\n/** One typed registry prevents catalog recipe names from drifting into strings. */\nexport const recipeRegistry = {\n thinkingOrbRecipe,\n masonryRecipe,\n virtualListRecipe,\n qrCodeRecipe,\n accordionRecipe,\n alertDialogRecipe,\n avatarRecipe,\n badgeRecipe,\n bottomNavigationRecipe,\n bottomCtaRecipe,\n anchorRecipe,\n agreementRecipe,\n topRecipe,\n authProviderButtonRecipe,\n authScreenRecipe,\n headingRecipe,\n toggleGroupRecipe,\n tagsInputRecipe,\n skipNavRecipe,\n bottomInfoRecipe,\n sidebarRecipe,\n textFormatRecipe,\n collapsibleRecipe,\n menubarRecipe,\n assetRecipe,\n breadcrumbRecipe,\n aspectRatioRecipe,\n containerRecipe,\n calendarRecipe,\n cardRecipe,\n buttonRecipe,\n carouselRecipe,\n chipRecipe,\n comboboxRecipe,\n descriptionListRecipe,\n counterBadgeRecipe,\n dialogRecipe,\n dataTableRecipe,\n datePickerRecipe,\n dividerRecipe,\n formRecipe,\n gridRecipe,\n emptyStateRecipe,\n fieldRecipe,\n filePickerRecipe,\n iconButtonRecipe,\n iconRecipe,\n imageRecipe,\n linkRecipe,\n listRecipe,\n listRowRecipe,\n loadMoreRecipe,\n menuRecipe,\n noticeRecipe,\n paginationRecipe,\n popoverRecipe,\n numberFieldRecipe,\n progressRecipe,\n resultRecipe,\n searchFieldRecipe,\n selectRecipe,\n selectionGroupRecipe,\n sectionRecipe,\n segmentedControlRecipe,\n selectionControlRecipe,\n sheetRecipe,\n sidePanelRecipe,\n commandPaletteRecipe,\n layoutRecipe,\n otpFieldRecipe,\n passwordFieldRecipe,\n splitterRecipe,\n floatingActionButtonRecipe,\n tourRecipe,\n transferListRecipe,\n skeletonRecipe,\n sliderRecipe,\n spinnerRecipe,\n stackRecipe,\n statisticRecipe,\n stepsRecipe,\n surfaceRecipe,\n switchRecipe,\n tabsRecipe,\n tagRecipe,\n textRecipe,\n timelineRecipe,\n toastRecipe,\n tooltipRecipe,\n topBarRecipe,\n treeRecipe,\n uploadItemRecipe,\n visuallyHiddenRecipe,\n} as const;\n\nexport type RecipeName = keyof typeof recipeRegistry;\n"]}
1
+ {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"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","sourcesContent":["import { affixRecipe } from \"./affix.js\";\nimport { watermarkRecipe } from \"./watermark.js\";\nimport { colorPickerRecipe } from \"./color-picker.js\";\nimport { masonryRecipe } from \"./masonry.js\";\nimport { virtualListRecipe } from \"./virtual-list.js\";\nimport { qrCodeRecipe } from \"./qr-code-recipe.js\";\nimport { thinkingOrbRecipe } from \"./thinking-orb-recipe.js\";\nimport type { BehaviorName } from \"./behaviors.js\";\n\nexport type ComponentCategory =\n | \"foundation\"\n | \"layout\"\n | \"action\"\n | \"input\"\n | \"navigation\"\n | \"data-display\"\n | \"feedback\"\n | \"overlay\"\n | \"provider\"\n | \"utility\";\n\nexport type ComponentPlatform = \"shared\" | \"adaptive\" | \"web\" | \"native\";\nexport type ComponentStatus = \"stable\" | \"beta\" | \"planned\" | \"deprecated\";\nexport type ComponentSurface = \"web\" | \"native\";\nexport type ComponentSurfaceStatus = ComponentStatus | \"unsupported\";\nexport type ComponentSurfaceMaturity = Readonly<\n Record<ComponentSurface, ComponentSurfaceStatus>\n>;\nexport type ComponentRoadmapState =\n | \"contract-ready\"\n | \"composed\"\n | \"evidence-needed\"\n | \"prerequisite\"\n | \"declined\";\n\nexport type ComponentRoadmap = Readonly<{\n state: ComponentRoadmapState;\n summary: string;\n /** Canonical components that solve this reference problem together. */\n targets?: readonly string[];\n}>;\n\nexport type ComponentNonVisualEvidence = \"provider-adapter\";\n\nexport type ComponentCatalogEntry = Readonly<{\n name: string;\n category: ComponentCategory;\n platform: ComponentPlatform;\n /** Contract maturity. Renderer maturity is tracked independently per surface. */\n status: ComponentStatus;\n /**\n * Renderer evidence for each surface. Built-in entries always provide this\n * matrix. It stays optional so catalog entries authored against the pre-0.6\n * shape can still be passed to public helpers during migration.\n */\n surfaceStatus?: ComponentSurfaceMaturity;\n /** Search terms and familiar ecosystem names; never an API compatibility promise. */\n aliases?: readonly string[];\n recipe?: RecipeName;\n behavior?: BehaviorName;\n /** Explicit evidence for a mature contract whose value is not a visual recipe. */\n nonVisualEvidence?: ComponentNonVisualEvidence;\n /** Why the row exists at its current maturity and what event moves it forward. */\n roadmap?: ComponentRoadmap;\n /**\n * 만들지 않기로 **확정한** 항목의 사유. `status`는 구현 성숙도 축이고 이것은\n * \"만들 것인가\"라는 다른 질문이라 직교 필드로 둔다.\n *\n * 이 필드가 필요한 이유: crosswalk의 `targets`가 이 항목들을 가리키고\n * `targets.length > 0`이 테스트로 강제되므로, 흡수할 다른 이름이 없으면 행을 지울 수\n * 없다. 그렇다고 `planned`로 두면 \"아직 안 만들었지만 만들 것\"이라는 거짓을 말한다.\n * 근거는 `docs/<id>.md`에 있고, 그 문서의 존재를 테스트가 강제한다.\n */\n declinedReason?: string;\n}>;\n\n/*\n 2026-09-18 현재 이 상태를 쓰는 행이 없다 — 계약만 준비돼 있던 항목이 모두 renderer나\n 조합으로 닫혔다. `prerequisite`와 같은 이유로 helper는 남긴다: 다음에 계약만 먼저\n 들어오는 컴포넌트가 생기면 바로 쓴다.\n*/\nexport const contractReady = (summary: string) => ({\n roadmap: { state: \"contract-ready\", summary },\n} as const);\n// Compositions live in Showcase patterns and map to their implemented primitives in the\n// reference crosswalk; reserving Planned rows incorrectly counted them as missing work.\n// Promotion uses renderer requirements; adoption notes are not gates (docs/stable-promotion.md).\nconst evidenceNeeded = (summary: string) => ({\n roadmap: { state: \"evidence-needed\", summary },\n} as const);\n/*\n 2026-09-18 현재 사용하는 행이 없다(Cascader가 마지막이었고 조합으로 풀렸다). 상태 값\n 자체는 타입과 문서에 남아 있으므로 helper도 함께 둔다 — 다음에 선행 조건이 실제로 생기면\n 다시 쓰고, 지금은 export로 미사용 오류만 피한다. 상태 값을 지우는 결정은 별도 판단이다.\n*/\nexport const prerequisite = (summary: string, targets: readonly string[]) => ({\n roadmap: { state: \"prerequisite\", summary, targets },\n} as const);\n\nconst surfaceMaturity = <\n const Web extends ComponentSurfaceStatus,\n const Native extends ComponentSurfaceStatus,\n>(web: Web, native: Native) => ({ surfaceStatus: { web, native } } as const);\n\n/**\n * Resolves renderer maturity without conflating it with contract maturity.\n * The fallback preserves custom catalog entries authored before\n * `surfaceStatus`; every built-in entry uses the explicit matrix.\n */\nexport function getComponentSurfaceStatus(\n entry: ComponentCatalogEntry,\n surface: ComponentSurface,\n): ComponentSurfaceStatus {\n if (entry.surfaceStatus) return entry.surfaceStatus[surface];\n if (entry.platform === \"shared\" || entry.platform === \"adaptive\") return entry.status;\n if (entry.platform === surface) return entry.status;\n return \"unsupported\";\n}\n\n/**\n * The catalog is a scope and maturity contract, not an implementation claim.\n * `shared` means API/visual parity. `adaptive` means shared intent with native\n * platform behavior. Web/native entries are intentionally platform-specific.\n */\nexport const componentCatalog = [\n { name: \"Text\", category: \"foundation\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"textRecipe\" },\n // Web semantic element is stable; React Native has no equivalent semantic elements.\n { name: \"TextFormat\", category: \"foundation\", platform: \"web\", status: \"stable\", ...surfaceMaturity(\"stable\", \"unsupported\"), aliases: [\"Kbd\", \"Code\", \"Blockquote\"], recipe: \"textFormatRecipe\", behavior: \"textFormat\" },\n { name: \"Heading\", category: \"foundation\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"headingRecipe\", behavior: \"heading\" },\n { name: \"Icon\", category: \"foundation\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"iconRecipe\" },\n { name: \"Surface\", category: \"layout\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"surfaceRecipe\" },\n // Display promotions use renderer evidence, not product adoption counts (docs/stable-core.md).\n { name: \"Divider\", category: \"layout\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"dividerRecipe\" },\n { name: \"Section\", category: \"layout\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"sectionRecipe\" },\n { name: \"Stack\", category: \"layout\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"stackRecipe\", aliases: [\"Flex\", \"Space\", \"Inline\"] },\n { name: \"Container\", category: \"layout\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"containerRecipe\" },\n // Both renderers now pass the required scenario matrix, including long child copy; the product keeps media semantics.\n { name: \"AspectRatio\", category: \"layout\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"aspectRatioRecipe\", ...evidenceNeeded(\"Radix·Chakra·Mantine·Carbon에서 반복되는 media geometry 문제를 shared primitive로 채택했습니다. 제품이 object-fit을 소유하고 renderer는 비율만 보장합니다.\") },\n // Both renderers now exercise long child content in addition to the responsive geometry contract.\n { name: \"Grid\", category: \"layout\", platform: \"adaptive\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"gridRecipe\", ...evidenceNeeded(\"공통 window class·responsive value·row-major geometry 계약과 공식 Web/RN default renderer 증거가 연결됐습니다. 남은 환경 증거는 generated 보고서에서 추적합니다.\") },\n // Interaction evidence belongs to its declared surface; inventing a Native skip-link only to mirror Web would add unsupported behavior.\n { name: \"Layout\", category: \"layout\", platform: \"adaptive\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), aliases: [\"AppShell\"], recipe: \"layoutRecipe\", behavior: \"layout\", ...evidenceNeeded(\"Web skip-link and renderer scenarios verified.\") },\n { name: \"Top\", category: \"layout\", platform: \"adaptive\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"topRecipe\", behavior: \"top\" },\n { name: \"Masonry\", category: \"layout\", platform: \"adaptive\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"masonryRecipe\" },\n // Stable after the real Web matrix and focused separator keyboard proof pass; collapse and N-pane stay out of the contract.\n { name: \"Splitter\", category: \"layout\", platform: \"web\", status: \"stable\", ...surfaceMaturity(\"stable\", \"unsupported\"), aliases: [\"SplitPane\"], recipe: \"splitterRecipe\", behavior: \"splitter\", ...evidenceNeeded(\"Web long-copy, environment, accessibility, drag and focused keyboard proofs pass.\") },\n { name: \"Button\", category: \"action\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"buttonRecipe\" },\n { name: \"IconButton\", category: \"action\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"iconButtonRecipe\" },\n // Web anchor Enter activation and Native router activation are now asserted at the renderer boundary.\n { name: \"Link\", category: \"action\", platform: \"adaptive\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"linkRecipe\", behavior: \"link\" },\n { name: \"BottomCTA\", category: \"action\", platform: \"adaptive\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"bottomCtaRecipe\" },\n { name: \"FloatingActionButton\", category: \"action\", platform: \"adaptive\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"floatingActionButtonRecipe\", behavior: \"floatingActionButton\", aliases: [\"FloatButton\", \"FAB\"], ...evidenceNeeded(\"Web/RN의 고정 생성 행동, 스크롤 방향 hook, 실제 높이·safe area 여백을 제공합니다. docs/floating-action-button.md에서 전체 이름·focus 유지와 목록 가림을 검증합니다.\") },\n // Product-owned auth copy stays in slots; both renderer matrices now exercise long hero text.\n { name: \"AuthScreenLayout\", category: \"layout\", platform: \"adaptive\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), aliases: [\"SignInLayout\"], recipe: \"authScreenRecipe\", behavior: \"authScreen\", ...evidenceNeeded(\"로그인 화면의 두 영역 골격입니다. 히어로와 주 행동을 세로 중앙에 한 덩어리로 두고 동의 고지·정책 링크를 바닥에 붙입니다. 문구·마크·제공자 목록·링크 목적지는 제품이 슬롯으로 넘기며, 인증 흐름은 이 계약에 없습니다.\") },\n // Enter/Space and Native host press now invoke the explicit product-owned action.\n { name: \"AuthProviderButton\", category: \"action\", platform: \"adaptive\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), aliases: [\"SocialLoginButton\"], recipe: \"authProviderButtonRecipe\", behavior: \"authProviderButton\", ...evidenceNeeded(\"Google·Kakao·Naver·Apple 로그인 버튼입니다. 색은 제공자 가이드라인 값이고 테마가 다시 칠하지 않으며, 로고 자산과 문구는 제품이 넘깁니다. 실제 제공자 심사 통과는 제품 소유입니다.\") },\n { name: \"Field\", category: \"input\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"fieldRecipe\", behavior: \"field\" },\n // Long labels wrap and Web typing/clear plus Native input/clear actions are covered.\n { name: \"SearchField\", category: \"input\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"searchFieldRecipe\", behavior: \"searchField\" },\n { name: \"TextArea\", category: \"input\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"fieldRecipe\" },\n // Web Enter/Space and Native host reveal actions are now verified on both renderers.\n { name: \"PasswordField\", category: \"input\", platform: \"adaptive\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), aliases: [\"Input.Password\"], recipe: \"passwordFieldRecipe\", behavior: \"passwordField\" },\n // One accessible text input, numeric sanitization, wrapping label, and input actions are covered per renderer.\n { name: \"OtpField\", category: \"input\", platform: \"adaptive\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), aliases: [\"Input.OTP\"], recipe: \"otpFieldRecipe\", behavior: \"otpField\" },\n // Web Space and Native host press now verify the single checkbox state transition.\n { name: \"Checkbox\", category: \"input\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"selectionControlRecipe\", behavior: \"checkbox\" },\n // Long option labels now have matrix coverage on both renderers.\n { name: \"Radio\", category: \"input\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"selectionControlRecipe\" },\n // Web Space and Native host press now prove the choice update on each renderer.\n { name: \"CheckboxGroup\", category: \"input\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"selectionGroupRecipe\", behavior: \"checkboxGroup\" },\n // Web Space and Native host press now verify the selected option transition.\n { name: \"RadioGroup\", category: \"input\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"selectionGroupRecipe\", behavior: \"radioGroup\" },\n // Web Space and Native host press now prove the checked state transition.\n { name: \"Switch\", category: \"input\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"switchRecipe\", behavior: \"switch\" },\n // Web Space and Native host press now verify selectable Chip state changes.\n { name: \"Chip\", category: \"input\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"chipRecipe\", behavior: \"chip\" },\n // Web arrow-key selection and Native host press now prove option changes.\n { name: \"SegmentedControl\", category: \"input\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"segmentedControlRecipe\", behavior: \"segmentedControl\" },\n // Web Space and Native host press now verify the pressed-id set transition.\n { name: \"ToggleGroup\", category: \"input\", platform: \"adaptive\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"toggleGroupRecipe\", behavior: \"toggleGroup\", ...evidenceNeeded(\"여러 개를 동시에 켜는 버튼 묶음입니다. 하나만 고르는 자리는 SegmentedControl이 그대로 갖습니다.\") },\n // Both renderer matrices and the surface-specific commit/remove regressions pass; Native intentionally commits on Return, not blur.\n { name: \"TagsInput\", category: \"input\", platform: \"adaptive\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), aliases: [\"TagField\", \"ChipsInput\"], recipe: \"tagsInputRecipe\", behavior: \"tagsInput\", ...evidenceNeeded(\"자유 입력 다중값 계약입니다. 정책 판정은 공통이며 Web Enter와 Native Return 확정, 위치 기반 삭제 action을 각 renderer에서 검증합니다. Web-only 후보 키 탐색과 2단계 Backspace는 Native 동등 동작으로 주장하지 않습니다.\") },\n // Web ArrowRight and Native adjustable increment now prove the same step transition.\n { name: \"Slider\", category: \"input\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"sliderRecipe\", behavior: \"slider\", ...evidenceNeeded(\"Web range input과 Native adjustable renderer가 같은 범위·step 계약을 실행합니다.\") },\n // Long labels, Web ArrowUp, and Native adjustable increment now have renderer proofs.\n { name: \"NumberField\", category: \"input\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"numberFieldRecipe\", behavior: \"numberField\" },\n // Long labels and Web arrow/Enter plus Native host option activation now have renderer proofs.\n { name: \"Select\", category: \"input\", platform: \"adaptive\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"selectRecipe\", behavior: \"select\" },\n // Long labels and Web filter/ArrowDown/Enter plus Native option/after-dismiss actions now have renderer proofs.\n { name: \"Combobox\", category: \"input\", platform: \"adaptive\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"comboboxRecipe\", behavior: \"combobox\", ...evidenceNeeded(\"Filtered collection selection is covered per renderer. Native commits the selected key after its host sheet dismisses; Web keyboard selection remains its own interaction contract.\") },\n // Product adoption and device QA follow the consumer release; both renderer contracts now have complete required proofs.\n { name: \"DatePicker\", category: \"input\", platform: \"adaptive\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"datePickerRecipe\", behavior: \"datePicker\" },\n { name: \"DateRangePicker\", category: \"input\", platform: \"adaptive\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), aliases: [\"DateRange\"], recipe: \"calendarRecipe\", behavior: \"dateRange\" },\n { name: \"ColorPicker\", category: \"input\", platform: \"web\", status: \"stable\", ...surfaceMaturity(\"stable\", \"unsupported\"), recipe: \"colorPickerRecipe\" },\n { name: \"FilePicker\", category: \"input\", platform: \"adaptive\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"filePickerRecipe\", behavior: \"filePicker\", aliases: [\"Upload\"], ...evidenceNeeded(\"Web은 native file input과 dropzone 선택을, Native는 제품 소유 picker adapter 연결을 제공하고 양쪽이 같은 accept·size·count resolver를 사용합니다. 실제 OS picker 동작은 소비 앱 QA에서 확인합니다.\") },\n // Both renderers now focus the product-selected first invalid field; field ordering and validation stay product-owned (docs/form.md).\n { name: \"Form\", category: \"input\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"formRecipe\", behavior: \"form\" },\n { name: \"Agreement\", category: \"input\", platform: \"adaptive\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"agreementRecipe\", behavior: \"agreement\", ...evidenceNeeded(\"전체 동의는 항목의 합에서 파생하고 필수 항목만 제출 가능 여부를 정합니다. 전문 열기는 동의와 분리된 별도 tab stop입니다. 제품의 문구·링크·법적 검토와 동의 기록은 제품 소유입니다.\") },\n // Both renderer matrices now prove caret insertion, named candidate actions, and long-copy behavior; IME device certification stays consumer QA because this contract does not control composition.\n { name: \"Mentions\", category: \"input\", platform: \"adaptive\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"comboboxRecipe\", behavior: \"combobox\" },\n { name: \"TransferList\", category: \"input\", platform: \"adaptive\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), aliases: [\"Transfer\"], recipe: \"transferListRecipe\", behavior: \"transferList\" },\n // Upload/network lifecycle belongs to consuming products; both renderers verify the caller-owned status/action contract.\n { name: \"UploadItem\", category: \"data-display\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"uploadItemRecipe\", behavior: \"uploadItem\" },\n { name: \"Tabs\", category: \"navigation\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"tabsRecipe\", behavior: \"tabs\", ...evidenceNeeded(\"Web Arrow-key roving focus skips disabled tabs, keeps manual selection until activation, and scrolls a focused tab into view; reduced motion uses instant scrolling. Native exposes a contract-named activate action and labelled panel.\") },\n // Public API/Web are stable; Native long-copy evidence remains open (docs/stable-core.md).\n // Native title text now passes the long-copy scenario matrix, completing its renderer maturity.\n { name: \"TopBar\", category: \"navigation\", platform: \"adaptive\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"topBarRecipe\" },\n // Web keyboard and long-copy renderer proofs now pass; Native remains unsupported because its navigation pattern is product-owned.\n { name: \"Sidebar\", category: \"navigation\", platform: \"web\", status: \"stable\", ...surfaceMaturity(\"stable\", \"unsupported\"), aliases: [\"NavigationRail\", \"SideNav\"], recipe: \"sidebarRecipe\", behavior: \"sidebar\" },\n { name: \"BottomNavigation\", category: \"navigation\", platform: \"adaptive\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"bottomNavigationRecipe\", behavior: \"bottomNavigation\", ...evidenceNeeded(\"Web Tab·Enter link와 Native route/reselect host action이 navigator 소유 선택 상태를 보존하고, 긴 목적지 label을 보이는 문구와 접근성 이름에 유지합니다.\") },\n // Product routes and device QA remain consumer-owned; the Web renderer and route-link proofs now pass.\n { name: \"Breadcrumb\", category: \"navigation\", platform: \"web\", status: \"stable\", ...surfaceMaturity(\"stable\", \"unsupported\"), recipe: \"breadcrumbRecipe\", behavior: \"breadcrumb\" },\n // Numeric-only rendering has no visible prose slot; four-digit page layout remains in the 320px/2x/RTL proof.\n { name: \"Pagination\", category: \"navigation\", platform: \"web\", status: \"stable\", ...surfaceMaturity(\"stable\", \"unsupported\"), recipe: \"paginationRecipe\", behavior: \"pagination\" },\n { name: \"LoadMore\", category: \"navigation\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"loadMoreRecipe\", behavior: \"loadMore\", ...evidenceNeeded(\"Web keyboard fallback·viewport observer와 Native onEndReached·retry action에서 requestKey 중복 방지, busy/error/complete 상태와 긴 현지화 문구를 검증했습니다. Native FlatList/device 통합은 소비 앱 QA입니다.\") },\n // This non-interactive progress summary now has long-label matrix coverage on both renderers.\n { name: \"Steps\", category: \"navigation\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"stepsRecipe\", ...evidenceNeeded(\"단일 cursor에서 상태를 파생하는 Web·Native renderer와 기본 실행 증거가 연결됐습니다. 실제 다단계 흐름과 보조기기 증거가 더 필요합니다.\") },\n // The Web interaction, disabled-item handling, long labels, and environment matrix have executable evidence; Native is unsupported by design.\n { name: \"Menubar\", category: \"navigation\", platform: \"web\", status: \"stable\", ...surfaceMaturity(\"stable\", \"unsupported\"), recipe: \"menubarRecipe\", behavior: \"menubar\" },\n { name: \"ContextMenu\", category: \"navigation\", platform: \"web\", status: \"stable\", ...surfaceMaturity(\"stable\", \"unsupported\"), recipe: \"menuRecipe\", behavior: \"contextMenu\" },\n { name: \"Menu\", category: \"navigation\", platform: \"adaptive\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"menuRecipe\", behavior: \"menu\", aliases: [\"Dropdown\"] },\n { name: \"Anchor\", category: \"navigation\", platform: \"web\", status: \"stable\", ...surfaceMaturity(\"stable\", \"unsupported\"), recipe: \"anchorRecipe\", behavior: \"anchor\" },\n // Visible content is initials or media; accessible names and fallback states have dedicated proofs.\n { name: \"Avatar\", category: \"data-display\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"avatarRecipe\" },\n { name: \"Asset\", category: \"data-display\", platform: \"adaptive\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), aliases: [\"Media\", \"Artwork\"], recipe: \"assetRecipe\", behavior: \"asset\", ...evidenceNeeded(\"아이콘·이미지·Lottie·비디오를 한 액자 규칙으로 묶습니다. 재생기는 슬롯으로 받아 이 패키지가 의존하지 않습니다.\") },\n { name: \"Badge\", category: \"data-display\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"badgeRecipe\" },\n // This component renders a bounded number or dot, not arbitrary visible prose.\n { name: \"CounterBadge\", category: \"data-display\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"counterBadgeRecipe\" },\n { name: \"Card\", category: \"data-display\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"cardRecipe\" },\n // The list's visible rows own variable-length titles, now covered by each renderer's matrix.\n { name: \"List\", category: \"data-display\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"listRecipe\" },\n { name: \"ListRow\", category: \"data-display\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"listRowRecipe\" },\n { name: \"VirtualList\", category: \"data-display\", platform: \"adaptive\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), aliases: [\"Listy\"], recipe: \"virtualListRecipe\" },\n { name: \"Collapsible\", category: \"data-display\", platform: \"adaptive\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), aliases: [\"Disclosure\"], recipe: \"collapsibleRecipe\", behavior: \"collapsible\" },\n { name: \"Accordion\", category: \"data-display\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"accordionRecipe\", behavior: \"disclosureGroup\", ...evidenceNeeded(\"그룹 내 disclosure 상태와 trigger·panel 접근성 관계를 Web 키보드와 Native press 회귀로 확인했습니다.\") },\n { name: \"Statistic\", category: \"data-display\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"statisticRecipe\" },\n // Timeline labels are visible prose and now have long-copy matrix coverage on both renderers.\n { name: \"Timeline\", category: \"data-display\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"timelineRecipe\", ...evidenceNeeded(\"두 제품의 이력 UI가 공통 descriptor와 Web/RN dot·connector renderer를 소비합니다. 남은 renderer 증거는 generated 보고서에서 추적합니다.\") },\n { name: \"DataTable\", category: \"data-display\", platform: \"web\", status: \"stable\", ...surfaceMaturity(\"stable\", \"unsupported\"), recipe: \"dataTableRecipe\", behavior: \"dataTable\" },\n { name: \"Tree\", category: \"data-display\", platform: \"web\", status: \"stable\", ...surfaceMaturity(\"stable\", \"unsupported\"), recipe: \"treeRecipe\", behavior: \"tree\" },\n { name: \"Calendar\", category: \"data-display\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"calendarRecipe\", behavior: \"calendar\" },\n { name: \"Carousel\", category: \"data-display\", platform: \"adaptive\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"carouselRecipe\", behavior: \"carousel\" },\n { name: \"DescriptionList\", category: \"data-display\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"descriptionListRecipe\", aliases: [\"Descriptions\"] },\n // Image alt is accessibility copy, not visible renderer text; load and fallback behavior remain covered.\n { name: \"Image\", category: \"data-display\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"imageRecipe\", ...evidenceNeeded(\"Web load/error/fallback·framework adapter와 Native fallback·optimized-host adapter가 기본 실행 증거를 제공합니다. 남은 renderer 증거는 generated 보고서에서 추적합니다.\") },\n { name: \"QRCode\", category: \"data-display\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"qrCodeRecipe\" },\n { name: \"Tag\", category: \"data-display\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"tagRecipe\" },\n { name: \"Tour\", category: \"overlay\", platform: \"web\", status: \"stable\", ...surfaceMaturity(\"stable\", \"unsupported\"), recipe: \"tourRecipe\", behavior: \"tour\", aliases: [\"CoachMark\"] },\n { name: \"EmptyState\", category: \"feedback\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"emptyStateRecipe\" },\n { name: \"Notice\", category: \"feedback\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"noticeRecipe\" },\n { name: \"Progress\", category: \"feedback\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"progressRecipe\" },\n // Both renderer matrices and installed iOS/Android Skia smoke pass; optional host linkage remains explicit (docs/thinking-orb.md).\n { name: \"ThinkingOrb\", category: \"feedback\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"thinkingOrbRecipe\" },\n { name: \"Spinner\", category: \"feedback\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"spinnerRecipe\" },\n { name: \"Skeleton\", category: \"feedback\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"skeletonRecipe\" },\n // Product adoption is tracked separately from the complete renderer matrix (docs/stable-core.md).\n { name: \"Result\", category: \"feedback\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"resultRecipe\" },\n // Product-owned notice copy is an intended visible text slot; both renderers now prove long-copy wrapping.\n { name: \"BottomInfo\", category: \"feedback\", platform: \"adaptive\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"bottomInfoRecipe\", behavior: \"bottomInfo\", ...evidenceNeeded(\"주 행동 아래의 상시 안내 문장입니다. 상태를 알리는 Notice와 달리 tone·아이콘이 없고 사라지지 않습니다.\") },\n // Liquid is an opt-in presentation; Web close/Escape and Native close actions are covered separately.\n { name: \"Toast\", category: \"feedback\", platform: \"adaptive\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"toastRecipe\", behavior: \"toast\", aliases: [\"Notification\"] },\n { name: \"Watermark\", category: \"feedback\", platform: \"web\", status: \"stable\", ...surfaceMaturity(\"stable\", \"unsupported\"), recipe: \"watermarkRecipe\" },\n { name: \"Dialog\", category: \"overlay\", platform: \"adaptive\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"dialogRecipe\", behavior: \"dialog\" },\n { name: \"AlertDialog\", category: \"overlay\", platform: \"adaptive\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"alertDialogRecipe\", behavior: \"alertDialog\" },\n { name: \"Sheet\", category: \"overlay\", platform: \"adaptive\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"sheetRecipe\", behavior: \"sheet\" },\n { name: \"SidePanel\", category: \"overlay\", platform: \"web\", status: \"stable\", ...surfaceMaturity(\"stable\", \"unsupported\"), recipe: \"sidePanelRecipe\", behavior: \"sidePanel\" },\n { name: \"Popover\", category: \"overlay\", platform: \"web\", status: \"stable\", ...surfaceMaturity(\"stable\", \"unsupported\"), recipe: \"popoverRecipe\", behavior: \"popover\" },\n { name: \"Tooltip\", category: \"overlay\", platform: \"web\", status: \"stable\", ...surfaceMaturity(\"stable\", \"unsupported\"), recipe: \"tooltipRecipe\", behavior: \"tooltip\" },\n { name: \"CommandPalette\", category: \"overlay\", platform: \"web\", status: \"stable\", ...surfaceMaturity(\"stable\", \"unsupported\"), recipe: \"commandPaletteRecipe\", behavior: \"commandPalette\" },\n { name: \"Affix\", category: \"utility\", platform: \"web\", status: \"stable\", ...surfaceMaturity(\"stable\", \"unsupported\"), recipe: \"affixRecipe\" },\n { name: \"DesignSystemProvider\", category: \"provider\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), aliases: [\"ConfigProvider\"], nonVisualEvidence: \"provider-adapter\" },\n { name: \"SkipNav\", category: \"utility\", platform: \"web\", status: \"stable\", ...surfaceMaturity(\"stable\", \"unsupported\"), aliases: [\"SkipLink\"], recipe: \"skipNavRecipe\", behavior: \"skipNav\" },\n // Hidden copy is validated as an accessible node; visual long-copy overflow is inapplicable by design.\n { name: \"VisuallyHidden\", category: \"utility\", platform: \"web\", status: \"stable\", ...surfaceMaturity(\"stable\", \"unsupported\"), recipe: \"visuallyHiddenRecipe\", aliases: [\"ScreenReaderOnly\", \"SrOnly\"], ...evidenceNeeded(\"Chakra와 React Aria가 별도 접근성 primitive로 제공하는 문제를 Web에서 채택했습니다. Native는 중복 invisible node 대신 host accessibilityLabel/accessibilityHint를 사용하므로 의도적으로 지원하지 않습니다.\") },\n] as const satisfies readonly ComponentCatalogEntry[];\n\nexport type ComponentName = (typeof componentCatalog)[number][\"name\"];\n\nexport function summarizeComponentRoadmap(\n entries: readonly ComponentCatalogEntry[] = componentCatalog,\n): Readonly<Record<ComponentRoadmapState, number>> {\n return entries.reduce<Record<ComponentRoadmapState, number>>(\n (summary, entry) => {\n if (entry.roadmap) summary[entry.roadmap.state] += 1;\n return summary;\n },\n {\n \"contract-ready\": 0,\n composed: 0,\n \"evidence-needed\": 0,\n prerequisite: 0,\n declined: 0,\n },\n );\n}\nimport {\n accordionRecipe,\n alertDialogRecipe,\n avatarRecipe,\n badgeRecipe,\n bottomNavigationRecipe,\n bottomCtaRecipe,\n anchorRecipe,\n agreementRecipe,\n topRecipe,\n authProviderButtonRecipe,\n authScreenRecipe,\n headingRecipe,\n toggleGroupRecipe,\n tagsInputRecipe,\n skipNavRecipe,\n bottomInfoRecipe,\n sidebarRecipe,\n textFormatRecipe,\n collapsibleRecipe,\n menubarRecipe,\n assetRecipe,\n breadcrumbRecipe,\n aspectRatioRecipe,\n containerRecipe,\n calendarRecipe,\n cardRecipe,\n buttonRecipe,\n carouselRecipe,\n chipRecipe,\n comboboxRecipe,\n descriptionListRecipe,\n counterBadgeRecipe,\n dialogRecipe,\n dataTableRecipe,\n datePickerRecipe,\n dividerRecipe,\n formRecipe,\n emptyStateRecipe,\n fieldRecipe,\n filePickerRecipe,\n iconButtonRecipe,\n iconRecipe,\n imageRecipe,\n linkRecipe,\n listRecipe,\n listRowRecipe,\n loadMoreRecipe,\n menuRecipe,\n noticeRecipe,\n paginationRecipe,\n popoverRecipe,\n numberFieldRecipe,\n progressRecipe,\n resultRecipe,\n searchFieldRecipe,\n selectRecipe,\n selectionGroupRecipe,\n sectionRecipe,\n segmentedControlRecipe,\n selectionControlRecipe,\n sheetRecipe,\n sidePanelRecipe,\n commandPaletteRecipe,\n layoutRecipe,\n otpFieldRecipe,\n passwordFieldRecipe,\n splitterRecipe,\n tourRecipe,\n transferListRecipe,\n skeletonRecipe,\n sliderRecipe,\n spinnerRecipe,\n stackRecipe,\n statisticRecipe,\n stepsRecipe,\n surfaceRecipe,\n switchRecipe,\n tabsRecipe,\n tagRecipe,\n textRecipe,\n timelineRecipe,\n toastRecipe,\n tooltipRecipe,\n topBarRecipe,\n treeRecipe,\n uploadItemRecipe,\n visuallyHiddenRecipe,\n} from \"./recipes.js\";\nimport { floatingActionButtonRecipe } from \"./floating-action-button.js\";\nimport { gridRecipe } from \"./grid.js\";\n\n/** One typed registry prevents catalog recipe names from drifting into strings. */\nexport const recipeRegistry = {\n affixRecipe,\n watermarkRecipe,\n colorPickerRecipe,\n thinkingOrbRecipe,\n masonryRecipe,\n virtualListRecipe,\n qrCodeRecipe,\n accordionRecipe,\n alertDialogRecipe,\n avatarRecipe,\n badgeRecipe,\n bottomNavigationRecipe,\n bottomCtaRecipe,\n anchorRecipe,\n agreementRecipe,\n topRecipe,\n authProviderButtonRecipe,\n authScreenRecipe,\n headingRecipe,\n toggleGroupRecipe,\n tagsInputRecipe,\n skipNavRecipe,\n bottomInfoRecipe,\n sidebarRecipe,\n textFormatRecipe,\n collapsibleRecipe,\n menubarRecipe,\n assetRecipe,\n breadcrumbRecipe,\n aspectRatioRecipe,\n containerRecipe,\n calendarRecipe,\n cardRecipe,\n buttonRecipe,\n carouselRecipe,\n chipRecipe,\n comboboxRecipe,\n descriptionListRecipe,\n counterBadgeRecipe,\n dialogRecipe,\n dataTableRecipe,\n datePickerRecipe,\n dividerRecipe,\n formRecipe,\n gridRecipe,\n emptyStateRecipe,\n fieldRecipe,\n filePickerRecipe,\n iconButtonRecipe,\n iconRecipe,\n imageRecipe,\n linkRecipe,\n listRecipe,\n listRowRecipe,\n loadMoreRecipe,\n menuRecipe,\n noticeRecipe,\n paginationRecipe,\n popoverRecipe,\n numberFieldRecipe,\n progressRecipe,\n resultRecipe,\n searchFieldRecipe,\n selectRecipe,\n selectionGroupRecipe,\n sectionRecipe,\n segmentedControlRecipe,\n selectionControlRecipe,\n sheetRecipe,\n sidePanelRecipe,\n commandPaletteRecipe,\n layoutRecipe,\n otpFieldRecipe,\n passwordFieldRecipe,\n splitterRecipe,\n floatingActionButtonRecipe,\n tourRecipe,\n transferListRecipe,\n skeletonRecipe,\n sliderRecipe,\n spinnerRecipe,\n stackRecipe,\n statisticRecipe,\n stepsRecipe,\n surfaceRecipe,\n switchRecipe,\n tabsRecipe,\n tagRecipe,\n textRecipe,\n timelineRecipe,\n toastRecipe,\n tooltipRecipe,\n topBarRecipe,\n treeRecipe,\n uploadItemRecipe,\n visuallyHiddenRecipe,\n} as const;\n\nexport type RecipeName = keyof typeof recipeRegistry;\n"]}
@@ -0,0 +1,11 @@
1
+ /** sRGB hex is the interchange format; HSV/RGB editors can be added without changing stored values. */
2
+ export declare function normalizePickerColor(value: string, alpha?: boolean): string;
3
+ export declare function pickerOpacity(value: string): number;
4
+ export declare function withPickerOpacity(value: string, opacity: number): string;
5
+ export declare const colorPickerRecipe: {
6
+ readonly colorSpace: "srgb";
7
+ readonly background: "bg";
8
+ readonly border: "border";
9
+ readonly minTargetSize: 44;
10
+ };
11
+ //# sourceMappingURL=color-picker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"color-picker.d.ts","sourceRoot":"","sources":["../src/color-picker.ts"],"names":[],"mappings":"AAAA,uGAAuG;AACvG,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,UAAQ,GAAG,MAAM,CAMzE;AACD,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEnD;AACD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAGxE;AACD,eAAO,MAAM,iBAAiB;;;;;CAAyF,CAAC"}
@@ -0,0 +1,20 @@
1
+ /** sRGB hex is the interchange format; HSV/RGB editors can be added without changing stored values. */
2
+ export function normalizePickerColor(value, alpha = false) {
3
+ const hex = value.trim().replace(/^#/, "");
4
+ if (!/^(?:[\da-f]{3}|[\da-f]{4}|[\da-f]{6}|[\da-f]{8})$/i.test(hex))
5
+ throw new TypeError("ColorPicker needs an sRGB hex value");
6
+ const expanded = hex.length <= 4 ? [...hex].map(char => char + char).join("") : hex;
7
+ if (!alpha && expanded.length === 8 && expanded.slice(6).toLowerCase() !== "ff")
8
+ throw new TypeError("ColorPicker alpha is disabled");
9
+ return `#${expanded.slice(0, 6).toLowerCase()}${alpha ? (expanded.slice(6) || "ff").toLowerCase() : ""}`;
10
+ }
11
+ export function pickerOpacity(value) {
12
+ return Math.round(parseInt(normalizePickerColor(value, true).slice(7), 16) / 255 * 100);
13
+ }
14
+ export function withPickerOpacity(value, opacity) {
15
+ if (!Number.isFinite(opacity) || opacity < 0 || opacity > 100)
16
+ throw new TypeError("Opacity must be between 0 and 100");
17
+ return normalizePickerColor(value, true).slice(0, 7) + Math.round(opacity / 100 * 255).toString(16).padStart(2, "0");
18
+ }
19
+ export const colorPickerRecipe = { colorSpace: "srgb", background: "bg", border: "border", minTargetSize: 44 };
20
+ //# sourceMappingURL=color-picker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"color-picker.js","sourceRoot":"","sources":["../src/color-picker.ts"],"names":[],"mappings":"AAAA,uGAAuG;AACvG,MAAM,UAAU,oBAAoB,CAAC,KAAa,EAAE,KAAK,GAAG,KAAK;IAC/D,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAC3C,IAAI,CAAC,oDAAoD,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,MAAM,IAAI,SAAS,CAAC,qCAAqC,CAAC,CAAC;IAChI,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IACpF,IAAI,CAAC,KAAK,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,IAAI;QAAE,MAAM,IAAI,SAAS,CAAC,+BAA+B,CAAC,CAAC;IACtI,OAAO,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AAC3G,CAAC;AACD,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,oBAAoB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;AAC1F,CAAC;AACD,MAAM,UAAU,iBAAiB,CAAC,KAAa,EAAE,OAAe;IAC9D,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,GAAG,CAAC,IAAI,OAAO,GAAG,GAAG;QAAE,MAAM,IAAI,SAAS,CAAC,mCAAmC,CAAC,CAAC;IACxH,OAAO,oBAAoB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACvH,CAAC;AACD,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,EAAE,EAAW,CAAC","sourcesContent":["/** sRGB hex is the interchange format; HSV/RGB editors can be added without changing stored values. */\nexport function normalizePickerColor(value: string, alpha = false): string {\n const hex = value.trim().replace(/^#/, \"\");\n if (!/^(?:[\\da-f]{3}|[\\da-f]{4}|[\\da-f]{6}|[\\da-f]{8})$/i.test(hex)) throw new TypeError(\"ColorPicker needs an sRGB hex value\");\n const expanded = hex.length <= 4 ? [...hex].map(char => char + char).join(\"\") : hex;\n if (!alpha && expanded.length === 8 && expanded.slice(6).toLowerCase() !== \"ff\") throw new TypeError(\"ColorPicker alpha is disabled\");\n return `#${expanded.slice(0, 6).toLowerCase()}${alpha ? (expanded.slice(6) || \"ff\").toLowerCase() : \"\"}`;\n}\nexport function pickerOpacity(value: string): number {\n return Math.round(parseInt(normalizePickerColor(value, true).slice(7), 16) / 255 * 100);\n}\nexport function withPickerOpacity(value: string, opacity: number): string {\n if (!Number.isFinite(opacity) || opacity < 0 || opacity > 100) throw new TypeError(\"Opacity must be between 0 and 100\");\n return normalizePickerColor(value, true).slice(0, 7) + Math.round(opacity / 100 * 255).toString(16).padStart(2, \"0\");\n}\nexport const colorPickerRecipe = { colorSpace: \"srgb\", background: \"bg\", border: \"border\", minTargetSize: 44 } as const;\n"]}
@@ -48,16 +48,12 @@ export declare const componentIds: {
48
48
  readonly Combobox: "combobox";
49
49
  readonly DatePicker: "date-picker";
50
50
  readonly DateRangePicker: "date-range-picker";
51
- readonly TimePicker: "time-picker";
52
51
  readonly ColorPicker: "color-picker";
53
52
  readonly FilePicker: "file-picker";
54
- readonly Cascader: "cascader";
55
53
  readonly Form: "form";
56
54
  readonly Agreement: "agreement";
57
55
  readonly Mentions: "mentions";
58
- readonly Rating: "rating";
59
56
  readonly TransferList: "transfer-list";
60
- readonly TreeSelect: "tree-select";
61
57
  readonly UploadItem: "upload-item";
62
58
  readonly Tabs: "tabs";
63
59
  readonly TopBar: "top-bar";
@@ -107,7 +103,6 @@ export declare const componentIds: {
107
103
  readonly Sheet: "sheet";
108
104
  readonly SidePanel: "side-panel";
109
105
  readonly Popover: "popover";
110
- readonly ConfirmPopover: "confirm-popover";
111
106
  readonly Tooltip: "tooltip";
112
107
  readonly CommandPalette: "command-palette";
113
108
  readonly Affix: "affix";
@@ -1 +1 @@
1
- {"version":3,"file":"component-definitions.d.ts","sourceRoot":"","sources":["../src/component-definitions.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,gBAAgB,IAAI,uBAAuB,EAChD,KAAK,sBAAsB,IAAI,6BAA6B,EAC5D,KAAK,UAAU,EAChB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD,MAAM,MAAM,aAAa,GAAG,WAAW,GAAG,WAAW,GAAG,UAAU,GAAG,SAAS,CAAC;AAC/E,2EAA2E;AAC3E,MAAM,MAAM,gBAAgB,GAAG,uBAAuB,CAAC;AACvD,MAAM,MAAM,sBAAsB,GAAG,6BAA6B,CAAC;AAEnE,4DAA4D;AAC5D,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6GmC,CAAC;AAE7D,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,aAAa,CAAC,CAAC;AAE/D,MAAM,MAAM,mBAAmB,GAAG,QAAQ,CAAC;IACzC,EAAE,EAAE,WAAW,CAAC;IAChB,IAAI,EAAE,aAAa,CAAC;IACpB,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,IAAI,EAAE,aAAa,CAAC;IACpB,QAAQ,EAAE,QAAQ,CAAC;QACjB,MAAM,EAAE,eAAe,CAAC;QACxB,OAAO,EAAE,SAAS,UAAU,EAAE,CAAC;QAC/B,SAAS,EAAE,SAAS,YAAY,EAAE,CAAC;QACnC,OAAO,CAAC,EAAE,qBAAqB,CAAC,SAAS,CAAC,CAAC;KAC5C,CAAC,CAAC;IACH,QAAQ,EAAE,QAAQ,CAAC;QACjB,MAAM,EAAE,iBAAiB,CAAC;QAC1B,GAAG,EAAE,QAAQ,CAAC;YAAE,MAAM,EAAE,sBAAsB,CAAA;SAAE,CAAC,CAAC;QAClD,MAAM,EAAE,QAAQ,CAAC;YAAE,MAAM,EAAE,sBAAsB,CAAA;SAAE,CAAC,CAAC;KACtD,CAAC,CAAC;IACH,IAAI,EAAE,QAAQ,CAAC;QACb,2FAA2F;QAC3F,OAAO,EAAE,cAAc,WAAW,EAAE,CAAC;QACrC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;KAC5B,CAAC,CAAC;CACJ,CAAC,CAAC;AAeH;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,EAAE,SAAS,mBAAmB,EAyB7D,CAAC;AAEH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,WAAW,GAAG,aAAa,GACpC,mBAAmB,GAAG,SAAS,CAIjC"}
1
+ {"version":3,"file":"component-definitions.d.ts","sourceRoot":"","sources":["../src/component-definitions.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,gBAAgB,IAAI,uBAAuB,EAChD,KAAK,sBAAsB,IAAI,6BAA6B,EAC5D,KAAK,UAAU,EAChB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD,MAAM,MAAM,aAAa,GAAG,WAAW,GAAG,WAAW,GAAG,UAAU,GAAG,SAAS,CAAC;AAC/E,2EAA2E;AAC3E,MAAM,MAAM,gBAAgB,GAAG,uBAAuB,CAAC;AACvD,MAAM,MAAM,sBAAsB,GAAG,6BAA6B,CAAC;AAEnE,4DAA4D;AAC5D,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwGmC,CAAC;AAE7D,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,aAAa,CAAC,CAAC;AAE/D,MAAM,MAAM,mBAAmB,GAAG,QAAQ,CAAC;IACzC,EAAE,EAAE,WAAW,CAAC;IAChB,IAAI,EAAE,aAAa,CAAC;IACpB,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,IAAI,EAAE,aAAa,CAAC;IACpB,QAAQ,EAAE,QAAQ,CAAC;QACjB,MAAM,EAAE,eAAe,CAAC;QACxB,OAAO,EAAE,SAAS,UAAU,EAAE,CAAC;QAC/B,SAAS,EAAE,SAAS,YAAY,EAAE,CAAC;QACnC,OAAO,CAAC,EAAE,qBAAqB,CAAC,SAAS,CAAC,CAAC;KAC5C,CAAC,CAAC;IACH,QAAQ,EAAE,QAAQ,CAAC;QACjB,MAAM,EAAE,iBAAiB,CAAC;QAC1B,GAAG,EAAE,QAAQ,CAAC;YAAE,MAAM,EAAE,sBAAsB,CAAA;SAAE,CAAC,CAAC;QAClD,MAAM,EAAE,QAAQ,CAAC;YAAE,MAAM,EAAE,sBAAsB,CAAA;SAAE,CAAC,CAAC;KACtD,CAAC,CAAC;IACH,IAAI,EAAE,QAAQ,CAAC;QACb,2FAA2F;QAC3F,OAAO,EAAE,cAAc,WAAW,EAAE,CAAC;QACrC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;KAC5B,CAAC,CAAC;CACJ,CAAC,CAAC;AAeH;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,EAAE,SAAS,mBAAmB,EAyB7D,CAAC;AAEH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,WAAW,GAAG,aAAa,GACpC,mBAAmB,GAAG,SAAS,CAIjC"}
@@ -43,16 +43,12 @@ export const componentIds = {
43
43
  Combobox: "combobox",
44
44
  DatePicker: "date-picker",
45
45
  DateRangePicker: "date-range-picker",
46
- TimePicker: "time-picker",
47
46
  ColorPicker: "color-picker",
48
47
  FilePicker: "file-picker",
49
- Cascader: "cascader",
50
48
  Form: "form",
51
49
  Agreement: "agreement",
52
50
  Mentions: "mentions",
53
- Rating: "rating",
54
51
  TransferList: "transfer-list",
55
- TreeSelect: "tree-select",
56
52
  UploadItem: "upload-item",
57
53
  Tabs: "tabs",
58
54
  TopBar: "top-bar",
@@ -102,7 +98,6 @@ export const componentIds = {
102
98
  Sheet: "sheet",
103
99
  SidePanel: "side-panel",
104
100
  Popover: "popover",
105
- ConfirmPopover: "confirm-popover",
106
101
  Tooltip: "tooltip",
107
102
  CommandPalette: "command-palette",
108
103
  Affix: "affix",
@@ -1 +1 @@
1
- {"version":3,"file":"component-definitions.js","sourceRoot":"","sources":["../src/component-definitions.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,yBAAyB,GAS1B,MAAM,cAAc,CAAC;AAQtB,4DAA4D;AAC5D,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,IAAI,EAAE,MAAM;IACZ,UAAU,EAAE,aAAa;IACzB,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,OAAO;IACd,SAAS,EAAE,WAAW;IACtB,WAAW,EAAE,cAAc;IAC3B,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,QAAQ;IAChB,GAAG,EAAE,KAAK;IACV,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,UAAU;IACpB,MAAM,EAAE,QAAQ;IAChB,UAAU,EAAE,aAAa;IACzB,IAAI,EAAE,MAAM;IACZ,SAAS,EAAE,YAAY;IACvB,oBAAoB,EAAE,wBAAwB;IAC9C,kBAAkB,EAAE,sBAAsB;IAC1C,gBAAgB,EAAE,aAAa;IAC/B,KAAK,EAAE,OAAO;IACd,WAAW,EAAE,cAAc;IAC3B,QAAQ,EAAE,WAAW;IACrB,aAAa,EAAE,gBAAgB;IAC/B,QAAQ,EAAE,WAAW;IACrB,QAAQ,EAAE,UAAU;IACpB,KAAK,EAAE,OAAO;IACd,aAAa,EAAE,gBAAgB;IAC/B,UAAU,EAAE,aAAa;IACzB,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,MAAM;IACZ,gBAAgB,EAAE,mBAAmB;IACrC,WAAW,EAAE,cAAc;IAC3B,SAAS,EAAE,YAAY;IACvB,MAAM,EAAE,QAAQ;IAChB,WAAW,EAAE,cAAc;IAC3B,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,UAAU;IACpB,UAAU,EAAE,aAAa;IACzB,eAAe,EAAE,mBAAmB;IACpC,UAAU,EAAE,aAAa;IACzB,WAAW,EAAE,cAAc;IAC3B,UAAU,EAAE,aAAa;IACzB,QAAQ,EAAE,UAAU;IACpB,IAAI,EAAE,MAAM;IACZ,SAAS,EAAE,WAAW;IACtB,QAAQ,EAAE,UAAU;IACpB,MAAM,EAAE,QAAQ;IAChB,YAAY,EAAE,eAAe;IAC7B,UAAU,EAAE,aAAa;IACzB,UAAU,EAAE,aAAa;IACzB,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,SAAS;IACjB,OAAO,EAAE,SAAS;IAClB,gBAAgB,EAAE,mBAAmB;IACrC,UAAU,EAAE,YAAY;IACxB,UAAU,EAAE,YAAY;IACxB,QAAQ,EAAE,WAAW;IACrB,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,SAAS;IAClB,WAAW,EAAE,cAAc;IAC3B,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;IACd,YAAY,EAAE,eAAe;IAC7B,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,UAAU;IACnB,WAAW,EAAE,cAAc;IAC3B,WAAW,EAAE,aAAa;IAC1B,KAAK,EAAE,OAAO;IACd,SAAS,EAAE,WAAW;IACtB,SAAS,EAAE,WAAW;IACtB,QAAQ,EAAE,UAAU;IACpB,SAAS,EAAE,YAAY;IACvB,IAAI,EAAE,MAAM;IACZ,QAAQ,EAAE,UAAU;IACpB,QAAQ,EAAE,UAAU;IACpB,eAAe,EAAE,kBAAkB;IACnC,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,SAAS;IACjB,GAAG,EAAE,KAAK;IACV,IAAI,EAAE,MAAM;IACZ,UAAU,EAAE,aAAa;IACzB,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,UAAU;IACpB,WAAW,EAAE,cAAc;IAC3B,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,UAAU;IACpB,MAAM,EAAE,QAAQ;IAChB,UAAU,EAAE,aAAa;IACzB,KAAK,EAAE,OAAO;IACd,SAAS,EAAE,WAAW;IACtB,MAAM,EAAE,QAAQ;IAChB,WAAW,EAAE,cAAc;IAC3B,KAAK,EAAE,OAAO;IACd,SAAS,EAAE,YAAY;IACvB,OAAO,EAAE,SAAS;IAClB,cAAc,EAAE,iBAAiB;IACjC,OAAO,EAAE,SAAS;IAClB,cAAc,EAAE,iBAAiB;IACjC,KAAK,EAAE,OAAO;IACd,oBAAoB,EAAE,wBAAwB;IAC9C,OAAO,EAAE,UAAU;IACnB,cAAc,EAAE,iBAAiB;CACyB,CAAC;AA2B7D,MAAM,cAAc,GAAuD;IACzE,UAAU,EAAE,WAAW;IACvB,MAAM,EAAE,WAAW;IACnB,MAAM,EAAE,WAAW;IACnB,KAAK,EAAE,WAAW;IAClB,UAAU,EAAE,WAAW;IACvB,cAAc,EAAE,WAAW;IAC3B,QAAQ,EAAE,WAAW;IACrB,OAAO,EAAE,WAAW;IACpB,QAAQ,EAAE,UAAU;IACpB,OAAO,EAAE,SAAS;CACnB,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAmC,gBAAgB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;IACpG,MAAM,KAAK,GAA0B,QAAQ,CAAC;IAC9C,MAAM,IAAI,GAAG,KAAK,CAAC,IAAqB,CAAC;IACzC,MAAM,EAAE,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAC9B,OAAO;QACL,EAAE;QACF,IAAI;QACJ,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,IAAI,EAAE,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC;QACpC,QAAQ,EAAE;YACR,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;YAC3C,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE;YACjD,OAAO,EAAE,KAAK,CAAC,OAAO;SACvB;QACD,QAAQ,EAAE;YACR,MAAM,EAAE,KAAK,CAAC,QAAQ;YACtB,GAAG,EAAE,EAAE,MAAM,EAAE,yBAAyB,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE;YACxD,MAAM,EAAE,EAAE,MAAM,EAAE,yBAAyB,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE;SAC/D;QACD,IAAI,EAAE;YACJ,OAAO,EAAE,cAAc,EAAE,EAAE;YAC3B,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,EAAE;SAC7B;KACF,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,MAAM,UAAU,sBAAsB,CACpC,QAAqC;IAErC,OAAO,oBAAoB,CAAC,IAAI,CAC9B,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,KAAK,QAAQ,IAAI,UAAU,CAAC,IAAI,KAAK,QAAQ,CAC3E,CAAC;AACJ,CAAC","sourcesContent":["import {\n componentCatalog,\n getComponentSurfaceStatus,\n type ComponentCatalogEntry,\n type ComponentCategory,\n type ComponentName,\n type ComponentPlatform,\n type ComponentStatus,\n type ComponentSurface as CatalogComponentSurface,\n type ComponentSurfaceStatus as CatalogComponentSurfaceStatus,\n type RecipeName,\n} from \"./catalog.js\";\nimport type { BehaviorName } from \"./behaviors.js\";\n\nexport type ComponentKind = \"primitive\" | \"component\" | \"provider\" | \"utility\";\n/** Kept here as aliases for existing `component-definitions` consumers. */\nexport type ComponentSurface = CatalogComponentSurface;\nexport type ComponentSurfaceStatus = CatalogComponentSurfaceStatus;\n\n/** Stable IDs survive display-name and category changes. */\nexport const componentIds = {\n Text: \"text\",\n TextFormat: \"text-format\",\n Heading: \"heading\",\n Icon: \"icon\",\n Surface: \"surface\",\n Divider: \"divider\",\n Section: \"section\",\n Stack: \"stack\",\n Container: \"container\",\n AspectRatio: \"aspect-ratio\",\n Grid: \"grid\",\n Layout: \"layout\",\n Top: \"top\",\n Masonry: \"masonry\",\n Splitter: \"splitter\",\n Button: \"button\",\n IconButton: \"icon-button\",\n Link: \"link\",\n BottomCTA: \"bottom-cta\",\n FloatingActionButton: \"floating-action-button\",\n AuthProviderButton: \"auth-provider-button\",\n AuthScreenLayout: \"auth-screen\",\n Field: \"field\",\n SearchField: \"search-field\",\n TextArea: \"text-area\",\n PasswordField: \"password-field\",\n OtpField: \"otp-field\",\n Checkbox: \"checkbox\",\n Radio: \"radio\",\n CheckboxGroup: \"checkbox-group\",\n RadioGroup: \"radio-group\",\n Switch: \"switch\",\n Chip: \"chip\",\n SegmentedControl: \"segmented-control\",\n ToggleGroup: \"toggle-group\",\n TagsInput: \"tags-input\",\n Slider: \"slider\",\n NumberField: \"number-field\",\n Select: \"select\",\n Combobox: \"combobox\",\n DatePicker: \"date-picker\",\n DateRangePicker: \"date-range-picker\",\n TimePicker: \"time-picker\",\n ColorPicker: \"color-picker\",\n FilePicker: \"file-picker\",\n Cascader: \"cascader\",\n Form: \"form\",\n Agreement: \"agreement\",\n Mentions: \"mentions\",\n Rating: \"rating\",\n TransferList: \"transfer-list\",\n TreeSelect: \"tree-select\",\n UploadItem: \"upload-item\",\n Tabs: \"tabs\",\n TopBar: \"top-bar\",\n Sidebar: \"sidebar\",\n BottomNavigation: \"bottom-navigation\",\n Breadcrumb: \"breadcrumb\",\n Pagination: \"pagination\",\n LoadMore: \"load-more\",\n Steps: \"steps\",\n Menubar: \"menubar\",\n ContextMenu: \"context-menu\",\n Menu: \"menu\",\n Anchor: \"anchor\",\n Avatar: \"avatar\",\n Badge: \"badge\",\n CounterBadge: \"counter-badge\",\n Card: \"card\",\n List: \"list\",\n ListRow: \"list-row\",\n VirtualList: \"virtual-list\",\n Collapsible: \"collapsible\",\n Asset: \"asset\",\n Accordion: \"accordion\",\n Statistic: \"statistic\",\n Timeline: \"timeline\",\n DataTable: \"data-table\",\n Tree: \"tree\",\n Calendar: \"calendar\",\n Carousel: \"carousel\",\n DescriptionList: \"description-list\",\n Image: \"image\",\n QRCode: \"qr-code\",\n Tag: \"tag\",\n Tour: \"tour\",\n EmptyState: \"empty-state\",\n Notice: \"notice\",\n Progress: \"progress\",\n ThinkingOrb: \"thinking-orb\",\n Spinner: \"spinner\",\n Skeleton: \"skeleton\",\n Result: \"result\",\n BottomInfo: \"bottom-info\",\n Toast: \"toast\",\n Watermark: \"watermark\",\n Dialog: \"dialog\",\n AlertDialog: \"alert-dialog\",\n Sheet: \"sheet\",\n SidePanel: \"side-panel\",\n Popover: \"popover\",\n ConfirmPopover: \"confirm-popover\",\n Tooltip: \"tooltip\",\n CommandPalette: \"command-palette\",\n Affix: \"affix\",\n DesignSystemProvider: \"design-system-provider\",\n SkipNav: \"skip-nav\",\n VisuallyHidden: \"visually-hidden\",\n} as const satisfies Readonly<Record<ComponentName, string>>;\n\nexport type ComponentId = (typeof componentIds)[ComponentName];\n\nexport type ComponentDefinition = Readonly<{\n id: ComponentId;\n name: ComponentName;\n category: ComponentCategory;\n kind: ComponentKind;\n contract: Readonly<{\n status: ComponentStatus;\n recipes: readonly RecipeName[];\n behaviors: readonly BehaviorName[];\n roadmap?: ComponentCatalogEntry[\"roadmap\"];\n }>;\n surfaces: Readonly<{\n parity: ComponentPlatform;\n web: Readonly<{ status: ComponentSurfaceStatus }>;\n native: Readonly<{ status: ComponentSurfaceStatus }>;\n }>;\n docs: Readonly<{\n /** New stable documentation key. Legacy Showcase IDs remain supported during migration. */\n storyId: `components/${ComponentId}`;\n aliases: readonly string[];\n }>;\n}>;\n\nconst kindByCategory: Readonly<Record<ComponentCategory, ComponentKind>> = {\n foundation: \"primitive\",\n layout: \"primitive\",\n action: \"component\",\n input: \"component\",\n navigation: \"component\",\n \"data-display\": \"component\",\n feedback: \"component\",\n overlay: \"component\",\n provider: \"provider\",\n utility: \"utility\",\n};\n\n/**\n * Backward-compatible normalized view over the v0.2 catalog. New consumers\n * should prefer this shape so a component can evolve to multiple recipes,\n * behaviors, and different Web/Native maturity without another API rewrite.\n */\nexport const componentDefinitions: readonly ComponentDefinition[] = componentCatalog.map((rawEntry) => {\n const entry: ComponentCatalogEntry = rawEntry;\n const name = entry.name as ComponentName;\n const id = componentIds[name];\n return {\n id,\n name,\n category: entry.category,\n kind: kindByCategory[entry.category],\n contract: {\n status: entry.status,\n recipes: entry.recipe ? [entry.recipe] : [],\n behaviors: entry.behavior ? [entry.behavior] : [],\n roadmap: entry.roadmap,\n },\n surfaces: {\n parity: entry.platform,\n web: { status: getComponentSurfaceStatus(entry, \"web\") },\n native: { status: getComponentSurfaceStatus(entry, \"native\") },\n },\n docs: {\n storyId: `components/${id}`,\n aliases: entry.aliases ?? [],\n },\n };\n});\n\nexport function getComponentDefinition(\n idOrName: ComponentId | ComponentName,\n): ComponentDefinition | undefined {\n return componentDefinitions.find(\n (definition) => definition.id === idOrName || definition.name === idOrName,\n );\n}\n"]}
1
+ {"version":3,"file":"component-definitions.js","sourceRoot":"","sources":["../src/component-definitions.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n componentCatalog,\n getComponentSurfaceStatus,\n type ComponentCatalogEntry,\n type ComponentCategory,\n type ComponentName,\n type ComponentPlatform,\n type ComponentStatus,\n type ComponentSurface as CatalogComponentSurface,\n type ComponentSurfaceStatus as CatalogComponentSurfaceStatus,\n type RecipeName,\n} from \"./catalog.js\";\nimport type { BehaviorName } from \"./behaviors.js\";\n\nexport type ComponentKind = \"primitive\" | \"component\" | \"provider\" | \"utility\";\n/** Kept here as aliases for existing `component-definitions` consumers. */\nexport type ComponentSurface = CatalogComponentSurface;\nexport type ComponentSurfaceStatus = CatalogComponentSurfaceStatus;\n\n/** Stable IDs survive display-name and category changes. */\nexport const componentIds = {\n Text: \"text\",\n TextFormat: \"text-format\",\n Heading: \"heading\",\n Icon: \"icon\",\n Surface: \"surface\",\n Divider: \"divider\",\n Section: \"section\",\n Stack: \"stack\",\n Container: \"container\",\n AspectRatio: \"aspect-ratio\",\n Grid: \"grid\",\n Layout: \"layout\",\n Top: \"top\",\n Masonry: \"masonry\",\n Splitter: \"splitter\",\n Button: \"button\",\n IconButton: \"icon-button\",\n Link: \"link\",\n BottomCTA: \"bottom-cta\",\n FloatingActionButton: \"floating-action-button\",\n AuthProviderButton: \"auth-provider-button\",\n AuthScreenLayout: \"auth-screen\",\n Field: \"field\",\n SearchField: \"search-field\",\n TextArea: \"text-area\",\n PasswordField: \"password-field\",\n OtpField: \"otp-field\",\n Checkbox: \"checkbox\",\n Radio: \"radio\",\n CheckboxGroup: \"checkbox-group\",\n RadioGroup: \"radio-group\",\n Switch: \"switch\",\n Chip: \"chip\",\n SegmentedControl: \"segmented-control\",\n ToggleGroup: \"toggle-group\",\n TagsInput: \"tags-input\",\n Slider: \"slider\",\n NumberField: \"number-field\",\n Select: \"select\",\n Combobox: \"combobox\",\n DatePicker: \"date-picker\",\n DateRangePicker: \"date-range-picker\",\n ColorPicker: \"color-picker\",\n FilePicker: \"file-picker\",\n Form: \"form\",\n Agreement: \"agreement\",\n Mentions: \"mentions\",\n TransferList: \"transfer-list\",\n UploadItem: \"upload-item\",\n Tabs: \"tabs\",\n TopBar: \"top-bar\",\n Sidebar: \"sidebar\",\n BottomNavigation: \"bottom-navigation\",\n Breadcrumb: \"breadcrumb\",\n Pagination: \"pagination\",\n LoadMore: \"load-more\",\n Steps: \"steps\",\n Menubar: \"menubar\",\n ContextMenu: \"context-menu\",\n Menu: \"menu\",\n Anchor: \"anchor\",\n Avatar: \"avatar\",\n Badge: \"badge\",\n CounterBadge: \"counter-badge\",\n Card: \"card\",\n List: \"list\",\n ListRow: \"list-row\",\n VirtualList: \"virtual-list\",\n Collapsible: \"collapsible\",\n Asset: \"asset\",\n Accordion: \"accordion\",\n Statistic: \"statistic\",\n Timeline: \"timeline\",\n DataTable: \"data-table\",\n Tree: \"tree\",\n Calendar: \"calendar\",\n Carousel: \"carousel\",\n DescriptionList: \"description-list\",\n Image: \"image\",\n QRCode: \"qr-code\",\n Tag: \"tag\",\n Tour: \"tour\",\n EmptyState: \"empty-state\",\n Notice: \"notice\",\n Progress: \"progress\",\n ThinkingOrb: \"thinking-orb\",\n Spinner: \"spinner\",\n Skeleton: \"skeleton\",\n Result: \"result\",\n BottomInfo: \"bottom-info\",\n Toast: \"toast\",\n Watermark: \"watermark\",\n Dialog: \"dialog\",\n AlertDialog: \"alert-dialog\",\n Sheet: \"sheet\",\n SidePanel: \"side-panel\",\n Popover: \"popover\",\n Tooltip: \"tooltip\",\n CommandPalette: \"command-palette\",\n Affix: \"affix\",\n DesignSystemProvider: \"design-system-provider\",\n SkipNav: \"skip-nav\",\n VisuallyHidden: \"visually-hidden\",\n} as const satisfies Readonly<Record<ComponentName, string>>;\n\nexport type ComponentId = (typeof componentIds)[ComponentName];\n\nexport type ComponentDefinition = Readonly<{\n id: ComponentId;\n name: ComponentName;\n category: ComponentCategory;\n kind: ComponentKind;\n contract: Readonly<{\n status: ComponentStatus;\n recipes: readonly RecipeName[];\n behaviors: readonly BehaviorName[];\n roadmap?: ComponentCatalogEntry[\"roadmap\"];\n }>;\n surfaces: Readonly<{\n parity: ComponentPlatform;\n web: Readonly<{ status: ComponentSurfaceStatus }>;\n native: Readonly<{ status: ComponentSurfaceStatus }>;\n }>;\n docs: Readonly<{\n /** New stable documentation key. Legacy Showcase IDs remain supported during migration. */\n storyId: `components/${ComponentId}`;\n aliases: readonly string[];\n }>;\n}>;\n\nconst kindByCategory: Readonly<Record<ComponentCategory, ComponentKind>> = {\n foundation: \"primitive\",\n layout: \"primitive\",\n action: \"component\",\n input: \"component\",\n navigation: \"component\",\n \"data-display\": \"component\",\n feedback: \"component\",\n overlay: \"component\",\n provider: \"provider\",\n utility: \"utility\",\n};\n\n/**\n * Backward-compatible normalized view over the v0.2 catalog. New consumers\n * should prefer this shape so a component can evolve to multiple recipes,\n * behaviors, and different Web/Native maturity without another API rewrite.\n */\nexport const componentDefinitions: readonly ComponentDefinition[] = componentCatalog.map((rawEntry) => {\n const entry: ComponentCatalogEntry = rawEntry;\n const name = entry.name as ComponentName;\n const id = componentIds[name];\n return {\n id,\n name,\n category: entry.category,\n kind: kindByCategory[entry.category],\n contract: {\n status: entry.status,\n recipes: entry.recipe ? [entry.recipe] : [],\n behaviors: entry.behavior ? [entry.behavior] : [],\n roadmap: entry.roadmap,\n },\n surfaces: {\n parity: entry.platform,\n web: { status: getComponentSurfaceStatus(entry, \"web\") },\n native: { status: getComponentSurfaceStatus(entry, \"native\") },\n },\n docs: {\n storyId: `components/${id}`,\n aliases: entry.aliases ?? [],\n },\n };\n});\n\nexport function getComponentDefinition(\n idOrName: ComponentId | ComponentName,\n): ComponentDefinition | undefined {\n return componentDefinitions.find(\n (definition) => definition.id === idOrName || definition.name === idOrName,\n );\n}\n"]}
@@ -121,8 +121,8 @@ declare const antDesignReferenceSources: readonly [{
121
121
  }, {
122
122
  readonly name: "Cascader";
123
123
  readonly category: "data-entry";
124
- readonly targets: readonly ["Cascader"];
125
- readonly relationship: "direct";
124
+ readonly targets: readonly ["Popover", "Tree"];
125
+ readonly relationship: "decomposed";
126
126
  }, {
127
127
  readonly name: "Checkbox";
128
128
  readonly category: "data-entry";
@@ -166,8 +166,8 @@ declare const antDesignReferenceSources: readonly [{
166
166
  }, {
167
167
  readonly name: "Rate";
168
168
  readonly category: "data-entry";
169
- readonly targets: readonly ["Rating"];
170
- readonly relationship: "adapted";
169
+ readonly targets: readonly ["Slider", "Statistic"];
170
+ readonly relationship: "decomposed";
171
171
  }, {
172
172
  readonly name: "Select";
173
173
  readonly category: "data-entry";
@@ -186,8 +186,8 @@ declare const antDesignReferenceSources: readonly [{
186
186
  }, {
187
187
  readonly name: "TimePicker";
188
188
  readonly category: "data-entry";
189
- readonly targets: readonly ["TimePicker"];
190
- readonly relationship: "direct";
189
+ readonly targets: readonly ["Select"];
190
+ readonly relationship: "adapted";
191
191
  }, {
192
192
  readonly name: "Transfer";
193
193
  readonly category: "data-entry";
@@ -196,8 +196,8 @@ declare const antDesignReferenceSources: readonly [{
196
196
  }, {
197
197
  readonly name: "TreeSelect";
198
198
  readonly category: "data-entry";
199
- readonly targets: readonly ["TreeSelect"];
200
- readonly relationship: "direct";
199
+ readonly targets: readonly ["Popover", "Tree"];
200
+ readonly relationship: "decomposed";
201
201
  }, {
202
202
  readonly name: "Upload";
203
203
  readonly category: "data-entry";
@@ -338,8 +338,8 @@ declare const antDesignReferenceSources: readonly [{
338
338
  }, {
339
339
  readonly name: "Popconfirm";
340
340
  readonly category: "feedback";
341
- readonly targets: readonly ["ConfirmPopover"];
342
- readonly relationship: "adapted";
341
+ readonly targets: readonly ["Popover", "AlertDialog"];
342
+ readonly relationship: "decomposed";
343
343
  }, {
344
344
  readonly name: "Progress";
345
345
  readonly category: "feedback";
@@ -34,7 +34,7 @@ const antDesignReferenceSources = [
34
34
  { name: "Steps", category: "navigation", targets: ["Steps"], relationship: "direct" },
35
35
  { name: "Tabs", category: "navigation", targets: ["Tabs"], relationship: "direct" },
36
36
  { name: "AutoComplete", category: "data-entry", targets: ["Combobox"], relationship: "adapted" },
37
- { name: "Cascader", category: "data-entry", targets: ["Cascader"], relationship: "direct" },
37
+ { name: "Cascader", category: "data-entry", targets: ["Popover", "Tree"], relationship: "decomposed" },
38
38
  { name: "Checkbox", category: "data-entry", targets: ["Checkbox", "CheckboxGroup"], relationship: "decomposed" },
39
39
  { name: "ColorPicker", category: "data-entry", targets: ["ColorPicker"], relationship: "direct" },
40
40
  { name: "DatePicker", category: "data-entry", targets: ["DatePicker"], relationship: "direct" },
@@ -43,13 +43,13 @@ const antDesignReferenceSources = [
43
43
  { name: "InputNumber", category: "data-entry", targets: ["NumberField"], relationship: "adapted" },
44
44
  { name: "Mentions", category: "data-entry", targets: ["Mentions"], relationship: "direct" },
45
45
  { name: "Radio", category: "data-entry", targets: ["Radio", "RadioGroup"], relationship: "decomposed" },
46
- { name: "Rate", category: "data-entry", targets: ["Rating"], relationship: "adapted" },
46
+ { name: "Rate", category: "data-entry", targets: ["Slider", "Statistic"], relationship: "decomposed" },
47
47
  { name: "Select", category: "data-entry", targets: ["Select"], relationship: "direct" },
48
48
  { name: "Slider", category: "data-entry", targets: ["Slider"], relationship: "direct" },
49
49
  { name: "Switch", category: "data-entry", targets: ["Switch"], relationship: "direct" },
50
- { name: "TimePicker", category: "data-entry", targets: ["TimePicker"], relationship: "direct" },
50
+ { name: "TimePicker", category: "data-entry", targets: ["Select"], relationship: "adapted" },
51
51
  { name: "Transfer", category: "data-entry", targets: ["TransferList"], relationship: "adapted" },
52
- { name: "TreeSelect", category: "data-entry", targets: ["TreeSelect"], relationship: "direct" },
52
+ { name: "TreeSelect", category: "data-entry", targets: ["Popover", "Tree"], relationship: "decomposed" },
53
53
  { name: "Upload", category: "data-entry", targets: ["FilePicker", "UploadItem"], relationship: "decomposed" },
54
54
  { name: "Avatar", category: "data-display", targets: ["Avatar"], relationship: "direct" },
55
55
  { name: "Badge", category: "data-display", targets: ["Badge", "CounterBadge"], relationship: "decomposed" },
@@ -77,7 +77,7 @@ const antDesignReferenceSources = [
77
77
  { name: "Message", category: "feedback", targets: ["Toast"], relationship: "adapted" },
78
78
  { name: "Modal", category: "feedback", targets: ["Dialog", "AlertDialog"], relationship: "decomposed" },
79
79
  { name: "Notification", category: "feedback", targets: ["Toast"], relationship: "adapted" },
80
- { name: "Popconfirm", category: "feedback", targets: ["ConfirmPopover"], relationship: "adapted" },
80
+ { name: "Popconfirm", category: "feedback", targets: ["Popover", "AlertDialog"], relationship: "decomposed" },
81
81
  { name: "Progress", category: "feedback", targets: ["Progress"], relationship: "direct" },
82
82
  { name: "Result", category: "feedback", targets: ["Result"], relationship: "direct" },
83
83
  { name: "Skeleton", category: "feedback", targets: ["Skeleton"], relationship: "direct" },