@hjmds/design-contracts 1.1.1 → 1.3.4
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.
- package/dist/agreement.d.ts +183 -0
- package/dist/agreement.d.ts.map +1 -0
- package/dist/agreement.js +137 -0
- package/dist/agreement.js.map +1 -0
- package/dist/anchor.d.ts +62 -0
- package/dist/anchor.d.ts.map +1 -0
- package/dist/anchor.js +43 -0
- package/dist/anchor.js.map +1 -0
- package/dist/asset.d.ts +94 -0
- package/dist/asset.d.ts.map +1 -0
- package/dist/asset.js +60 -0
- package/dist/asset.js.map +1 -0
- package/dist/auth-screen.d.ts +119 -0
- package/dist/auth-screen.d.ts.map +1 -0
- package/dist/auth-screen.js +87 -0
- package/dist/auth-screen.js.map +1 -0
- package/dist/base-recipes.d.ts +19 -0
- package/dist/base-recipes.d.ts.map +1 -1
- package/dist/base-recipes.js +17 -0
- package/dist/base-recipes.js.map +1 -1
- package/dist/behaviors.d.ts +363 -3
- package/dist/behaviors.d.ts.map +1 -1
- package/dist/behaviors.js +37 -1
- package/dist/behaviors.js.map +1 -1
- package/dist/bottom-info.d.ts +58 -0
- package/dist/bottom-info.d.ts.map +1 -0
- package/dist/bottom-info.js +48 -0
- package/dist/bottom-info.js.map +1 -0
- package/dist/carousel.d.ts +3 -3
- package/dist/carousel.js +1 -1
- package/dist/carousel.js.map +1 -1
- package/dist/catalog.d.ts +1315 -245
- package/dist/catalog.d.ts.map +1 -1
- package/dist/catalog.js +67 -25
- package/dist/catalog.js.map +1 -1
- package/dist/collapsible.d.ts +56 -0
- package/dist/collapsible.d.ts.map +1 -0
- package/dist/collapsible.js +37 -0
- package/dist/collapsible.js.map +1 -0
- package/dist/component-definitions.d.ts +17 -0
- package/dist/component-definitions.d.ts.map +1 -1
- package/dist/component-definitions.js +17 -0
- package/dist/component-definitions.js.map +1 -1
- package/dist/component-recipes.d.ts +20 -3
- package/dist/component-recipes.d.ts.map +1 -1
- package/dist/component-recipes.js +24 -1
- package/dist/component-recipes.js.map +1 -1
- package/dist/context-menu.d.ts +53 -0
- package/dist/context-menu.d.ts.map +1 -0
- package/dist/context-menu.js +44 -0
- package/dist/context-menu.js.map +1 -0
- package/dist/counter-badge-recipe.d.ts +5 -0
- package/dist/counter-badge-recipe.d.ts.map +1 -1
- package/dist/counter-badge-recipe.js +5 -0
- package/dist/counter-badge-recipe.js.map +1 -1
- package/dist/dataviz.d.ts +76 -0
- package/dist/dataviz.d.ts.map +1 -0
- package/dist/dataviz.js +58 -0
- package/dist/dataviz.js.map +1 -0
- package/dist/date-range.d.ts +56 -0
- package/dist/date-range.d.ts.map +1 -0
- package/dist/date-range.js +79 -0
- package/dist/date-range.js.map +1 -0
- package/dist/design-system-provider.d.ts +24 -0
- package/dist/design-system-provider.d.ts.map +1 -1
- package/dist/design-system-provider.js +21 -0
- package/dist/design-system-provider.js.map +1 -1
- package/dist/floating-action-button.d.ts +1 -1
- package/dist/floating-action-button.d.ts.map +1 -1
- package/dist/floating-action-button.js +3 -1
- package/dist/floating-action-button.js.map +1 -1
- package/dist/formatters.d.ts +37 -0
- package/dist/formatters.d.ts.map +1 -0
- package/dist/formatters.js +69 -0
- package/dist/formatters.js.map +1 -0
- package/dist/heading.d.ts +82 -0
- package/dist/heading.d.ts.map +1 -0
- package/dist/heading.js +48 -0
- package/dist/heading.js.map +1 -0
- package/dist/index.d.ts +20 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +20 -0
- package/dist/index.js.map +1 -1
- package/dist/menubar.d.ts +133 -0
- package/dist/menubar.d.ts.map +1 -0
- package/dist/menubar.js +80 -0
- package/dist/menubar.js.map +1 -0
- package/dist/native-platform.d.ts +88 -0
- package/dist/native-platform.d.ts.map +1 -0
- package/dist/native-platform.js +70 -0
- package/dist/native-platform.js.map +1 -0
- package/dist/popover.d.ts +19 -4
- package/dist/popover.d.ts.map +1 -1
- package/dist/popover.js +3 -0
- package/dist/popover.js.map +1 -1
- package/dist/progress-recipe.d.ts +14 -0
- package/dist/progress-recipe.d.ts.map +1 -1
- package/dist/progress-recipe.js +14 -1
- package/dist/progress-recipe.js.map +1 -1
- package/dist/provider-button.d.ts +140 -0
- package/dist/provider-button.d.ts.map +1 -0
- package/dist/provider-button.js +83 -0
- package/dist/provider-button.js.map +1 -0
- package/dist/recipes.d.ts +16 -1
- package/dist/recipes.d.ts.map +1 -1
- package/dist/recipes.js +15 -0
- package/dist/recipes.js.map +1 -1
- package/dist/sheet.d.ts +16 -0
- package/dist/sheet.d.ts.map +1 -1
- package/dist/sheet.js +33 -0
- package/dist/sheet.js.map +1 -1
- package/dist/sidebar.d.ts +168 -0
- package/dist/sidebar.d.ts.map +1 -0
- package/dist/sidebar.js +98 -0
- package/dist/sidebar.js.map +1 -0
- package/dist/skip-nav.d.ts +67 -0
- package/dist/skip-nav.d.ts.map +1 -0
- package/dist/skip-nav.js +47 -0
- package/dist/skip-nav.js.map +1 -0
- package/dist/tags-input.d.ts +157 -0
- package/dist/tags-input.d.ts.map +1 -0
- package/dist/tags-input.js +108 -0
- package/dist/tags-input.js.map +1 -0
- package/dist/text-formats.d.ts +85 -0
- package/dist/text-formats.d.ts.map +1 -0
- package/dist/text-formats.js +43 -0
- package/dist/text-formats.js.map +1 -0
- package/dist/toggle-group.d.ts +111 -0
- package/dist/toggle-group.d.ts.map +1 -0
- package/dist/toggle-group.js +78 -0
- package/dist/toggle-group.js.map +1 -0
- package/dist/top.d.ts +113 -0
- package/dist/top.d.ts.map +1 -0
- package/dist/top.js +72 -0
- package/dist/top.js.map +1 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/version.js.map +1 -1
- package/docs/agreement.md +33 -0
- package/docs/anchor.md +59 -59
- package/docs/ant-design-coverage.md +5 -3
- package/docs/asset.md +26 -0
- package/docs/auth-screen.md +65 -0
- package/docs/bottom-info.md +15 -0
- package/docs/breadcrumb.md +15 -15
- package/docs/button-label.md +20 -0
- package/docs/calendar.md +82 -154
- package/docs/carousel.md +27 -2
- package/docs/cascader.md +17 -0
- package/docs/chart.md +33 -0
- package/docs/clipboard.md +13 -0
- package/docs/collapsible.md +19 -0
- package/docs/command-palette.md +19 -0
- package/docs/confirm-popover.md +11 -1
- package/docs/context-menu.md +23 -0
- package/docs/data-table.md +22 -0
- package/docs/date-range.md +31 -0
- package/docs/density.md +52 -0
- package/docs/expansion-roadmap.md +16 -3
- package/docs/floating-action-button.md +35 -3
- package/docs/formatters.md +18 -0
- package/docs/generated/component-maturity.md +40 -23
- package/docs/generated/renderer-evidence.json +3029 -652
- package/docs/generated/renderer-evidence.md +55 -6
- package/docs/generated/showcase-manifest.json +1156 -81
- package/docs/heading.md +25 -0
- package/docs/identity.md +5 -0
- package/docs/layout.md +1 -1
- package/docs/library-gap-analysis.md +29 -9
- package/docs/list-row.md +14 -0
- package/docs/mentions.md +18 -0
- package/docs/menubar.md +22 -0
- package/docs/native-platform.md +36 -0
- package/docs/overlay-stack.md +24 -0
- package/docs/pagination.md +16 -8
- package/docs/popover.md +42 -13
- package/docs/product-audit-2026-09-15.md +88 -0
- package/docs/progress.md +16 -0
- package/docs/provider-button.md +33 -0
- package/docs/rating.md +19 -0
- package/docs/react-native-completion.md +347 -0
- package/docs/screen-chrome.md +52 -0
- package/docs/side-panel.md +23 -2
- package/docs/sidebar.md +30 -0
- package/docs/skip-nav.md +20 -0
- package/docs/splitter.md +22 -2
- package/docs/stable-promotion.md +51 -0
- package/docs/tags-input.md +25 -0
- package/docs/text-formats.md +15 -0
- package/docs/theming.md +84 -0
- package/docs/time-picker.md +22 -1
- package/docs/toast.md +18 -0
- package/docs/toggle-group.md +21 -0
- package/docs/top.md +32 -0
- package/docs/tour.md +23 -2
- package/docs/transfer-list.md +20 -0
- package/docs/tree-select.md +18 -0
- package/docs/tree.md +21 -0
- package/package.json +126 -6
package/dist/catalog.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catalog.js","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"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","sourcesContent":["import 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\nconst 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);\nconst evidenceNeeded = (summary: string) => ({\n roadmap: { state: \"evidence-needed\", summary },\n} as const);\nconst prerequisite = (summary: string, targets: readonly string[]) => ({\n roadmap: { state: \"prerequisite\", summary, targets },\n} as const);\nconst declined = (reason: string) => ({\n declinedReason: reason,\n roadmap: { state: \"declined\", summary: reason },\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: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"textRecipe\" },\n { name: \"Icon\", category: \"foundation\", platform: \"shared\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"iconRecipe\" },\n { name: \"Surface\", category: \"layout\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"surfaceRecipe\" },\n { name: \"Divider\", category: \"layout\", platform: \"shared\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"dividerRecipe\" },\n { name: \"Section\", category: \"layout\", platform: \"shared\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"sectionRecipe\" },\n { name: \"Stack\", category: \"layout\", platform: \"shared\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"stackRecipe\", aliases: [\"Flex\", \"Space\", \"Inline\"] },\n { name: \"Container\", category: \"layout\", platform: \"shared\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"containerRecipe\", ...evidenceNeeded(\"Radix·Chakra·MUI·Mantine의 layout inventory를 비교해 공통 content-width primitive로 채택했습니다. Web/RN renderer와 환경 행렬 증거를 연결했고 실제 제품의 넓은 화면 채택 뒤 stable을 검토합니다.\") },\n { name: \"AspectRatio\", category: \"layout\", platform: \"shared\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"aspectRatioRecipe\", ...evidenceNeeded(\"Radix·Chakra·Mantine·Carbon에서 반복되는 media geometry 문제를 shared primitive로 채택했습니다. 제품이 object-fit을 소유하고 renderer는 비율만 보장합니다.\") },\n { name: \"Grid\", category: \"layout\", platform: \"adaptive\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"gridRecipe\", ...evidenceNeeded(\"공통 window class·responsive value·row-major geometry 계약과 공식 Web/RN default renderer 증거가 연결됐습니다. 안정화에는 환경별·제품 사용 증거가 더 필요합니다.\") },\n { name: \"Layout\", category: \"layout\", platform: \"adaptive\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), aliases: [\"AppShell\"], recipe: \"layoutRecipe\", behavior: \"layout\", ...evidenceNeeded(\"공통 descriptor를 소비하는 Web landmark·skip-link renderer와 Native ordered-region renderer가 기본 실행 증거를 제공합니다. 실제 product shell·보조기기 증거가 쌓이면 stable을 검토합니다.\") },\n { name: \"Masonry\", category: \"layout\", platform: \"adaptive\", status: \"planned\", ...surfaceMaturity(\"planned\", \"planned\"), ...evidenceNeeded(\"실제 waterfall 피드가 생기면 측정·패킹의 renderer 경계를 검증합니다.\") },\n { name: \"Splitter\", category: \"layout\", platform: \"web\", status: \"planned\", ...surfaceMaturity(\"planned\", \"unsupported\"), aliases: [\"SplitPane\"], recipe: \"splitterRecipe\", behavior: \"splitter\", ...contractReady(\"분할 크기·키보드 조절 계약은 준비됐고 Web vertical slice를 기다립니다.\") },\n { name: \"Button\", category: \"action\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"buttonRecipe\" },\n { name: \"IconButton\", category: \"action\", platform: \"shared\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"iconButtonRecipe\" },\n { name: \"Link\", category: \"action\", platform: \"adaptive\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"linkRecipe\", behavior: \"link\" },\n { name: \"BottomCTA\", category: \"action\", platform: \"native\", status: \"beta\", ...surfaceMaturity(\"unsupported\", \"beta\"), recipe: \"bottomCtaRecipe\" },\n { name: \"FloatingActionButton\", category: \"action\", platform: \"adaptive\", status: \"planned\", ...surfaceMaturity(\"planned\", \"planned\"), recipe: \"floatingActionButtonRecipe\", behavior: \"floatingActionButton\", aliases: [\"FloatButton\", \"FAB\"], ...contractReady(\"배치·확장 action·안전 영역 계약은 준비됐고 제품 적용을 기다립니다.\") },\n { name: \"Field\", category: \"input\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"fieldRecipe\", behavior: \"field\" },\n { name: \"SearchField\", category: \"input\", platform: \"shared\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"searchFieldRecipe\", behavior: \"searchField\" },\n { name: \"TextArea\", category: \"input\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"fieldRecipe\" },\n { name: \"PasswordField\", category: \"input\", platform: \"adaptive\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), aliases: [\"Input.Password\"], recipe: \"passwordFieldRecipe\", behavior: \"passwordField\", ...evidenceNeeded(\"Web·Native renderer와 기본 실행·Storybook 증거가 연결됐습니다. 실제 로그인·가입 흐름과 암호 관리자 증거가 쌓이면 stable을 검토합니다.\") },\n { name: \"OtpField\", category: \"input\", platform: \"adaptive\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), aliases: [\"Input.OTP\"], recipe: \"otpFieldRecipe\", behavior: \"otpField\", ...evidenceNeeded(\"하나의 접근 가능한 입력을 유지하는 Web·Native renderer와 기본 실행·Storybook 증거가 연결됐습니다. 실제 인증 흐름과 보조기기 증거가 더 필요합니다.\") },\n { name: \"Checkbox\", category: \"input\", platform: \"shared\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"selectionControlRecipe\", behavior: \"checkbox\" },\n { name: \"Radio\", category: \"input\", platform: \"shared\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"selectionControlRecipe\" },\n { name: \"CheckboxGroup\", category: \"input\", platform: \"shared\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"selectionGroupRecipe\", behavior: \"checkboxGroup\" },\n { name: \"RadioGroup\", category: \"input\", platform: \"shared\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"selectionGroupRecipe\", behavior: \"radioGroup\" },\n { name: \"Switch\", category: \"input\", platform: \"shared\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"switchRecipe\", behavior: \"switch\" },\n { name: \"Chip\", category: \"input\", platform: \"shared\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"chipRecipe\", behavior: \"chip\" },\n { name: \"SegmentedControl\", category: \"input\", platform: \"shared\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"segmentedControlRecipe\", behavior: \"segmentedControl\" },\n { name: \"Slider\", category: \"input\", platform: \"shared\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"sliderRecipe\", behavior: \"slider\", ...evidenceNeeded(\"Web range input과 Native adjustable renderer가 같은 범위·step 계약을 실행합니다. 실제 제품 입력과 보조기기 증거가 쌓이면 stable을 검토합니다.\") },\n { name: \"NumberField\", category: \"input\", platform: \"shared\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"numberFieldRecipe\", behavior: \"numberField\", ...evidenceNeeded(\"Web·Native renderer가 동일한 파싱·clamp·증감 계약을 실행합니다. 실제 수량 입력 흐름과 보조기기 증거가 쌓이면 stable을 검토합니다.\") },\n { name: \"Select\", category: \"input\", platform: \"adaptive\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"selectRecipe\", behavior: \"select\" },\n { name: \"Combobox\", category: \"input\", platform: \"adaptive\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"comboboxRecipe\", behavior: \"combobox\" },\n { name: \"DatePicker\", category: \"input\", platform: \"adaptive\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"datePickerRecipe\", behavior: \"datePicker\", ...evidenceNeeded(\"공통 Calendar grid 계약을 사용하는 Web dialog·Native Sheet renderer와 기본 실행 증거가 연결됐습니다. 실제 날짜 입력 흐름과 보조기기 증거가 더 필요합니다.\") },\n { name: \"TimePicker\", category: \"input\", platform: \"adaptive\", status: \"planned\", ...surfaceMaturity(\"planned\", \"planned\"), ...composed(\"시 Select와 분 Select 조합으로 같은 문제를 완결합니다.\", [\"Select\"]) },\n { name: \"ColorPicker\", category: \"input\", platform: \"web\", status: \"planned\", ...surfaceMaturity(\"planned\", \"unsupported\"), ...evidenceNeeded(\"임의 색 선택이 실제 제품 요구로 확인될 때 색공간·키보드 계약을 엽니다.\") },\n { name: \"FilePicker\", category: \"input\", platform: \"adaptive\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"filePickerRecipe\", behavior: \"filePicker\", aliases: [\"Upload\"], ...evidenceNeeded(\"Web native input·dropzone과 Native picker adapter가 같은 accept·size·count 판정 계약을 사용합니다. 실제 업로드 흐름과 플랫폼 picker 증거가 더 필요합니다.\") },\n { name: \"Cascader\", category: \"input\", platform: \"adaptive\", status: \"planned\", ...surfaceMaturity(\"planned\", \"planned\"), ...prerequisite(\"TreeSelect에 path value와 중간 단계 commit 축을 먼저 추가해야 흡수할 수 있습니다.\", [\"TreeSelect\"]) },\n { name: \"Form\", category: \"input\", platform: \"shared\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"formRecipe\", behavior: \"form\", ...evidenceNeeded(\"Web·Native form session renderer와 canonical Storybook 증거가 연결됐습니다. 실제 제출·서버 오류 흐름이 더 쌓이면 stable을 검토합니다.\") },\n { name: \"Mentions\", category: \"input\", platform: \"adaptive\", status: \"planned\", ...surfaceMaturity(\"planned\", \"planned\"), recipe: \"comboboxRecipe\", behavior: \"combobox\", ...contractReady(\"trigger 탐색·삽입 범위 계약은 준비됐고 메시지 작성 화면을 기다립니다.\") },\n { name: \"Rating\", category: \"input\", platform: \"shared\", status: \"planned\", ...surfaceMaturity(\"planned\", \"planned\"), aliases: [\"Rate\"], ...composed(\"입력은 Slider, 읽기 전용 표시는 Statistic 조합으로 해결합니다.\", [\"Slider\", \"Statistic\"]) },\n { name: \"TransferList\", category: \"input\", platform: \"adaptive\", status: \"planned\", ...surfaceMaturity(\"planned\", \"planned\"), aliases: [\"Transfer\"], recipe: \"transferListRecipe\", behavior: \"transferList\", ...contractReady(\"양쪽 collection·이동·선택 보존 계약은 준비됐고 제품 흐름을 기다립니다.\") },\n { name: \"TreeSelect\", category: \"input\", platform: \"web\", status: \"planned\", ...surfaceMaturity(\"planned\", \"unsupported\"), ...contractReady(\"Select·Tree·Checkbox 계약을 합성한 tri-state selection 로직이 준비됐습니다.\") },\n { name: \"UploadItem\", category: \"data-display\", platform: \"shared\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"uploadItemRecipe\", behavior: \"uploadItem\", ...evidenceNeeded(\"Web·Native renderer가 동일한 진행·성공·오류·cancel/retry 계약을 실행합니다. 실제 전송 lifecycle 증거가 더 필요합니다.\") },\n { name: \"Tabs\", category: \"navigation\", platform: \"shared\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"tabsRecipe\", behavior: \"tabs\" },\n { name: \"TopBar\", category: \"navigation\", platform: \"native\", status: \"beta\", ...surfaceMaturity(\"unsupported\", \"beta\"), recipe: \"topBarRecipe\" },\n { name: \"BottomNavigation\", category: \"navigation\", platform: \"adaptive\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"bottomNavigationRecipe\", behavior: \"bottomNavigation\", ...evidenceNeeded(\"Web link landmark와 Native controlled-navigation renderer가 공통 route intent를 소비합니다. 실제 브라우저·기기 릴리스 증거가 쌓이면 stable을 검토합니다.\") },\n { name: \"Breadcrumb\", category: \"navigation\", platform: \"web\", status: \"planned\", ...surfaceMaturity(\"planned\", \"unsupported\"), recipe: \"breadcrumbRecipe\", behavior: \"breadcrumb\", ...contractReady(\"현재 위치·축약·링크 의미 계약은 준비됐고 Web 계층 탐색을 기다립니다.\") },\n { name: \"Pagination\", category: \"navigation\", platform: \"web\", status: \"planned\", ...surfaceMaturity(\"planned\", \"unsupported\"), recipe: \"paginationRecipe\", behavior: \"pagination\", ...contractReady(\"페이지 범위·현재 페이지·키보드 계약은 준비됐고 페이지 탐색 화면을 기다립니다.\") },\n { name: \"LoadMore\", category: \"navigation\", platform: \"shared\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"loadMoreRecipe\", behavior: \"loadMore\", ...evidenceNeeded(\"Web observer와 Native FlatList onEndReached adapter가 같은 requestKey gate를 소비합니다. 실제 장시간 목록·보조기기 릴리스 증거가 쌓이면 stable을 검토합니다.\") },\n { name: \"Steps\", category: \"navigation\", platform: \"shared\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"stepsRecipe\", ...evidenceNeeded(\"단일 cursor에서 상태를 파생하는 Web·Native renderer와 기본 실행 증거가 연결됐습니다. 실제 다단계 흐름과 보조기기 증거가 더 필요합니다.\") },\n { name: \"Menu\", category: \"navigation\", platform: \"adaptive\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"menuRecipe\", behavior: \"menu\", aliases: [\"Dropdown\"] },\n { name: \"Anchor\", category: \"navigation\", platform: \"web\", status: \"planned\", ...surfaceMaturity(\"planned\", \"unsupported\"), ...evidenceNeeded(\"긴 문서 목차와 scroll spy가 실제 제품에 생기면 Web 계약을 엽니다.\") },\n { name: \"Avatar\", category: \"data-display\", platform: \"shared\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"avatarRecipe\" },\n { name: \"Badge\", category: \"data-display\", platform: \"shared\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"badgeRecipe\" },\n { name: \"CounterBadge\", category: \"data-display\", platform: \"shared\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"counterBadgeRecipe\" },\n { name: \"Card\", category: \"data-display\", platform: \"shared\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"cardRecipe\" },\n { name: \"List\", category: \"data-display\", platform: \"shared\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"listRecipe\" },\n { name: \"ListRow\", category: \"data-display\", platform: \"shared\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"listRowRecipe\" },\n { name: \"VirtualList\", category: \"data-display\", platform: \"adaptive\", status: \"planned\", ...surfaceMaturity(\"planned\", \"planned\"), aliases: [\"Listy\"], ...evidenceNeeded(\"가상화는 renderer 최적화라 공개 semantic이 필요한 실측 사례를 기다립니다.\") },\n { name: \"Accordion\", category: \"data-display\", platform: \"shared\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"accordionRecipe\", behavior: \"disclosureGroup\" },\n { name: \"Statistic\", category: \"data-display\", platform: \"shared\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"statisticRecipe\" },\n { name: \"Timeline\", category: \"data-display\", platform: \"shared\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"timelineRecipe\", ...evidenceNeeded(\"두 제품의 이력 UI가 공통 descriptor와 Web/RN dot·connector renderer를 소비합니다. 실제 릴리스·보조기기 증거가 쌓이면 stable을 검토합니다.\") },\n { name: \"DataTable\", category: \"data-display\", platform: \"web\", status: \"planned\", ...surfaceMaturity(\"planned\", \"unsupported\"), recipe: \"dataTableRecipe\", behavior: \"dataTable\", ...contractReady(\"정렬·선택·grid semantics 계약은 준비됐고 상호작용 표를 기다립니다.\") },\n { name: \"Tree\", category: \"data-display\", platform: \"web\", status: \"planned\", ...surfaceMaturity(\"planned\", \"unsupported\"), recipe: \"treeRecipe\", behavior: \"tree\", ...contractReady(\"계층 flatten·확장·키보드 계약은 준비됐고 Web tree 화면을 기다립니다.\") },\n { name: \"Calendar\", category: \"data-display\", platform: \"shared\", status: \"planned\", ...surfaceMaturity(\"planned\", \"planned\"), recipe: \"calendarRecipe\", behavior: \"calendar\", ...contractReady(\"월 격자·날짜 의미·경계 계약은 준비됐고 실제 달력 화면을 기다립니다.\") },\n { name: \"Carousel\", category: \"data-display\", platform: \"adaptive\", status: \"planned\", ...surfaceMaturity(\"planned\", \"planned\"), recipe: \"carouselRecipe\", behavior: \"carousel\", ...contractReady(\"현재 slide·이전/다음·접근성 action 계약은 준비됐고 제품 renderer 보완을 기다립니다.\") },\n { name: \"DescriptionList\", category: \"data-display\", platform: \"shared\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"descriptionListRecipe\", aliases: [\"Descriptions\"], ...evidenceNeeded(\"Web/RN renderer가 공통 descriptor와 responsive column resolver를 소비하고 기본 실행 증거를 제공합니다. 200% text product·기기 증거가 쌓이면 stable을 검토합니다.\") },\n { name: \"Image\", category: \"data-display\", platform: \"shared\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"imageRecipe\", ...evidenceNeeded(\"Web load/error/fallback·framework adapter와 Native fallback·optimized-host adapter가 기본 실행 증거를 제공합니다. 실제 network asset·보조기기 증거가 쌓이면 stable을 검토합니다.\") },\n { name: \"QRCode\", category: \"data-display\", platform: \"shared\", status: \"planned\", ...surfaceMaturity(\"planned\", \"planned\"), ...evidenceNeeded(\"스캔 가능한 코드 생성 요구가 실제 제품에서 확인되면 전용 계약을 엽니다.\") },\n { name: \"Tag\", category: \"data-display\", platform: \"shared\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"tagRecipe\" },\n { name: \"Tour\", category: \"overlay\", platform: \"web\", status: \"planned\", ...surfaceMaturity(\"planned\", \"unsupported\"), recipe: \"tourRecipe\", behavior: \"tour\", aliases: [\"CoachMark\"], ...contractReady(\"단계·초점 복귀·건너뛰기 계약은 준비됐고 onboarding tour를 기다립니다.\") },\n { name: \"EmptyState\", category: \"feedback\", platform: \"shared\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"emptyStateRecipe\" },\n { name: \"Notice\", category: \"feedback\", platform: \"shared\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"noticeRecipe\" },\n { name: \"Progress\", category: \"feedback\", platform: \"shared\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"progressRecipe\" },\n { name: \"Spinner\", category: \"feedback\", platform: \"shared\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"spinnerRecipe\" },\n { name: \"Skeleton\", category: \"feedback\", platform: \"shared\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"skeletonRecipe\" },\n { name: \"Result\", category: \"feedback\", platform: \"shared\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"resultRecipe\", ...evidenceNeeded(\"두 제품의 terminal flow UI가 공통 descriptor와 Web/RN renderer를 소비합니다. 실제 릴리스·보조기기 증거가 쌓이면 stable을 검토합니다.\") },\n { name: \"Toast\", category: \"feedback\", platform: \"adaptive\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), 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: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"dialogRecipe\", behavior: \"dialog\" },\n { name: \"AlertDialog\", category: \"overlay\", platform: \"adaptive\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"alertDialogRecipe\", behavior: \"alertDialog\" },\n { name: \"Sheet\", category: \"overlay\", platform: \"adaptive\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"sheetRecipe\", behavior: \"sheet\" },\n { name: \"SidePanel\", category: \"overlay\", platform: \"web\", status: \"planned\", ...surfaceMaturity(\"planned\", \"unsupported\"), recipe: \"sidePanelRecipe\", behavior: \"sidePanel\", ...contractReady(\"비모달 보조 패널·폭·dismiss 계약은 준비됐고 데스크톱 화면을 기다립니다.\") },\n { name: \"Popover\", category: \"overlay\", platform: \"web\", status: \"planned\", ...surfaceMaturity(\"planned\", \"unsupported\"), recipe: \"popoverRecipe\", behavior: \"popover\", ...contractReady(\"비모달 contextual surface·초점·dismiss 계약은 준비됐고 제품 적용을 기다립니다.\") },\n { name: \"ConfirmPopover\", category: \"overlay\", platform: \"web\", status: \"planned\", ...surfaceMaturity(\"planned\", \"unsupported\"), aliases: [\"Popconfirm\"], ...composed(\"Popover 표면과 AlertDialog 확인 session 조합으로 해결합니다.\", [\"Popover\", \"AlertDialog\"]) },\n { name: \"Tooltip\", category: \"overlay\", platform: \"web\", status: \"beta\", ...surfaceMaturity(\"beta\", \"unsupported\"), recipe: \"tooltipRecipe\", behavior: \"tooltip\" },\n { name: \"CommandPalette\", category: \"overlay\", platform: \"web\", status: \"planned\", ...surfaceMaturity(\"planned\", \"unsupported\"), recipe: \"commandPaletteRecipe\", behavior: \"commandPalette\", ...contractReady(\"검색·action commit·초점 복귀 계약은 준비됐고 power-user 화면을 기다립니다.\") },\n { name: \"Affix\", category: \"utility\", platform: \"web\", status: \"planned\", ...surfaceMaturity(\"planned\", \"unsupported\"), ...evidenceNeeded(\"임의 콘텐츠의 scroll threshold 고정 요구가 확인되면 Web 전용 계약을 엽니다.\") },\n { name: \"AppProvider\", category: \"provider\", platform: \"adaptive\", status: \"planned\", ...surfaceMaturity(\"planned\", \"planned\"), aliases: [\"App\"], ...declined(\"message·notification·modal 세 표면이 이미 Toast·Dialog·AlertDialog에 있고, 남는 것은 Context 배선뿐이라 값 계약이 없다\") },\n { name: \"BorderBeam\", category: \"utility\", platform: \"web\", status: \"planned\", ...surfaceMaturity(\"planned\", \"unsupported\"), ...declined(\"장식으로 브랜드를 증명하지 않는다는 정체성과 충돌하고, reduced motion에서 남는 것이 없으며, 없어도 화면의 뜻이 같다\") },\n { name: \"DesignSystemProvider\", category: \"provider\", platform: \"shared\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), aliases: [\"ConfigProvider\"], nonVisualEvidence: \"provider-adapter\", ...evidenceNeeded(\"두 실제 제품의 Web/RN Context adapter가 environment+palette와 parent axis 상속을 소비합니다. 추가 제품 릴리스 증거가 쌓이면 stable을 검토합니다.\") },\n { name: \"Utility\", category: \"utility\", platform: \"web\", status: \"planned\", ...surfaceMaturity(\"planned\", \"unsupported\"), aliases: [\"Util\"], ...declined(\"antd Util은 theme.useToken()으로 토큰을 읽는 법을 설명하는 문서 페이지다. 이 패키지는 토큰을 정적 export로 주므로 그 문제가 발생하지 않는다\") },\n { name: \"VisuallyHidden\", category: \"utility\", platform: \"web\", status: \"beta\", ...surfaceMaturity(\"beta\", \"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 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 accordionRecipe,\n alertDialogRecipe,\n avatarRecipe,\n badgeRecipe,\n bottomNavigationRecipe,\n bottomCtaRecipe,\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 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);\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);\nconst declined = (reason: string) => ({\n declinedReason: reason,\n roadmap: { state: \"declined\", summary: reason },\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: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"textRecipe\" },\n { name: \"TextFormat\", category: \"foundation\", platform: \"web\", status: \"beta\", ...surfaceMaturity(\"beta\", \"unsupported\"), aliases: [\"Kbd\", \"Code\", \"Blockquote\"], recipe: \"textFormatRecipe\", behavior: \"textFormat\", ...evidenceNeeded(\"단축키·코드·인용처럼 의미를 가진 글자 조각입니다. 크기가 아니라 요소라서 Text variant로 두지 않았습니다. Native는 해당 요소 의미가 없어 미지원입니다.\") },\n { name: \"Heading\", category: \"foundation\", platform: \"shared\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"headingRecipe\", behavior: \"heading\", ...evidenceNeeded(\"이미 있던 heading 스케일(40/32/24/20/18)을 실제 heading 요소로 노출합니다. 시각 크기와 문서 단계를 분리해 지정할 수 있습니다. 제품 채택 증거는 남아 있습니다.\") },\n { name: \"Icon\", category: \"foundation\", platform: \"shared\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"iconRecipe\" },\n { name: \"Surface\", category: \"layout\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"surfaceRecipe\" },\n { name: \"Divider\", category: \"layout\", platform: \"shared\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"dividerRecipe\" },\n { name: \"Section\", category: \"layout\", platform: \"shared\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"sectionRecipe\" },\n { name: \"Stack\", category: \"layout\", platform: \"shared\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"stackRecipe\", aliases: [\"Flex\", \"Space\", \"Inline\"] },\n { name: \"Container\", category: \"layout\", platform: \"shared\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"containerRecipe\", ...evidenceNeeded(\"Radix·Chakra·MUI·Mantine의 layout inventory를 비교해 공통 content-width primitive로 채택했습니다. Web/RN renderer와 환경 행렬 증거를 연결했고 실제 제품의 넓은 화면 채택 뒤 stable을 검토합니다.\") },\n { name: \"AspectRatio\", category: \"layout\", platform: \"shared\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"aspectRatioRecipe\", ...evidenceNeeded(\"Radix·Chakra·Mantine·Carbon에서 반복되는 media geometry 문제를 shared primitive로 채택했습니다. 제품이 object-fit을 소유하고 renderer는 비율만 보장합니다.\") },\n { name: \"Grid\", category: \"layout\", platform: \"adaptive\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"gridRecipe\", ...evidenceNeeded(\"공통 window class·responsive value·row-major geometry 계약과 공식 Web/RN default renderer 증거가 연결됐습니다. 안정화에는 환경별·제품 사용 증거가 더 필요합니다.\") },\n { name: \"Layout\", category: \"layout\", platform: \"adaptive\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), aliases: [\"AppShell\"], recipe: \"layoutRecipe\", behavior: \"layout\", ...evidenceNeeded(\"공통 descriptor를 소비하는 Web landmark·skip-link renderer와 Native ordered-region renderer가 기본 실행 증거를 제공합니다. 실제 product shell·보조기기 증거가 쌓이면 stable을 검토합니다.\") },\n { name: \"Top\", category: \"layout\", platform: \"adaptive\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"topRecipe\", behavior: \"top\", ...evidenceNeeded(\"화면 본문의 첫 제목 블록입니다. 고정 크롬인 TopBar와 달리 스크롤과 함께 움직이고 실제 heading 요소를 냅니다. 제품 채택 증거는 남아 있습니다.\") },\n { name: \"Masonry\", category: \"layout\", platform: \"adaptive\", status: \"planned\", ...surfaceMaturity(\"planned\", \"planned\"), ...evidenceNeeded(\"실제 waterfall 피드가 생기면 측정·패킹의 renderer 경계를 검증합니다.\") },\n { name: \"Splitter\", category: \"layout\", platform: \"web\", status: \"beta\", ...surfaceMaturity(\"beta\", \"unsupported\"), aliases: [\"SplitPane\"], recipe: \"splitterRecipe\", behavior: \"splitter\", ...evidenceNeeded(\"Web separator의 드래그·키보드 조절이 같은 step 격자를 사용하고 RTL에서 논리 방향으로 뒤집힙니다. collapse·N-pane은 계약 밖이며 제품 채택·보조기기 증거는 남아 있습니다.\") },\n { name: \"Button\", category: \"action\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"buttonRecipe\" },\n { name: \"IconButton\", category: \"action\", platform: \"shared\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"iconButtonRecipe\" },\n { name: \"Link\", category: \"action\", platform: \"adaptive\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"linkRecipe\", behavior: \"link\" },\n { name: \"BottomCTA\", category: \"action\", platform: \"adaptive\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"bottomCtaRecipe\", ...evidenceNeeded(\"토스 UI 모티브의 주/보조 행동과 safe area를 Web/RN에서 제공합니다. Web은 본문을 가리지 않는 flow/sticky, Native는 제품 화면 배치를 사용합니다. docs/screen-chrome.md 참고.\") },\n { name: \"FloatingActionButton\", category: \"action\", platform: \"adaptive\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"floatingActionButtonRecipe\", behavior: \"floatingActionButton\", aliases: [\"FloatButton\", \"FAB\"], ...evidenceNeeded(\"Web/RN의 고정 생성 행동, 스크롤 방향 hook, 실제 높이·safe area 여백을 제공합니다. docs/floating-action-button.md에서 전체 이름·focus 유지와 목록 가림을 검증합니다.\") },\n { name: \"AuthScreenLayout\", category: \"layout\", platform: \"adaptive\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), aliases: [\"SignInLayout\"], recipe: \"authScreenRecipe\", behavior: \"authScreen\", ...evidenceNeeded(\"로그인 화면의 두 영역 골격입니다. 히어로와 주 행동을 세로 중앙에 한 덩어리로 두고 동의 고지·정책 링크를 바닥에 붙입니다. 문구·마크·제공자 목록·링크 목적지는 제품이 슬롯으로 넘기며, 인증 흐름은 이 계약에 없습니다.\") },\n { name: \"AuthProviderButton\", category: \"action\", platform: \"adaptive\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), 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 { name: \"SearchField\", category: \"input\", platform: \"shared\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"searchFieldRecipe\", behavior: \"searchField\" },\n { name: \"TextArea\", category: \"input\", platform: \"shared\", status: \"stable\", ...surfaceMaturity(\"stable\", \"stable\"), recipe: \"fieldRecipe\" },\n { name: \"PasswordField\", category: \"input\", platform: \"adaptive\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), aliases: [\"Input.Password\"], recipe: \"passwordFieldRecipe\", behavior: \"passwordField\", ...evidenceNeeded(\"Web·Native renderer와 기본 실행·Storybook 증거가 연결됐습니다. 실제 로그인·가입 흐름과 암호 관리자 증거가 쌓이면 stable을 검토합니다.\") },\n { name: \"OtpField\", category: \"input\", platform: \"adaptive\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), aliases: [\"Input.OTP\"], recipe: \"otpFieldRecipe\", behavior: \"otpField\", ...evidenceNeeded(\"하나의 접근 가능한 입력을 유지하는 Web·Native renderer와 기본 실행·Storybook 증거가 연결됐습니다. 실제 인증 흐름과 보조기기 증거가 더 필요합니다.\") },\n { name: \"Checkbox\", category: \"input\", platform: \"shared\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"selectionControlRecipe\", behavior: \"checkbox\" },\n { name: \"Radio\", category: \"input\", platform: \"shared\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"selectionControlRecipe\" },\n { name: \"CheckboxGroup\", category: \"input\", platform: \"shared\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"selectionGroupRecipe\", behavior: \"checkboxGroup\" },\n { name: \"RadioGroup\", category: \"input\", platform: \"shared\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"selectionGroupRecipe\", behavior: \"radioGroup\" },\n { name: \"Switch\", category: \"input\", platform: \"shared\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"switchRecipe\", behavior: \"switch\" },\n { name: \"Chip\", category: \"input\", platform: \"shared\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"chipRecipe\", behavior: \"chip\" },\n { name: \"SegmentedControl\", category: \"input\", platform: \"shared\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"segmentedControlRecipe\", behavior: \"segmentedControl\" },\n { name: \"ToggleGroup\", category: \"input\", platform: \"adaptive\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"toggleGroupRecipe\", behavior: \"toggleGroup\", ...evidenceNeeded(\"여러 개를 동시에 켜는 버튼 묶음입니다. 하나만 고르는 자리는 SegmentedControl이 그대로 갖습니다. 제품 채택 증거는 남아 있습니다.\") },\n { name: \"TagsInput\", category: \"input\", platform: \"adaptive\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), aliases: [\"TagField\", \"ChipsInput\"], recipe: \"tagsInputRecipe\", behavior: \"tagsInput\", ...evidenceNeeded(\"목록 밖의 값을 직접 만드는 다중 입력입니다. 중복·개수·글자 규칙은 제품 정책이고 계약은 확정 시점과 삭제 동작을 갖습니다. Native는 확정 키 어휘가 return 하나뿐이라 Comma/Space/Blur는 Web 전용입니다. 제품 채택은 남아 있습니다.\") },\n { name: \"Slider\", category: \"input\", platform: \"shared\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"sliderRecipe\", behavior: \"slider\", ...evidenceNeeded(\"Web range input과 Native adjustable renderer가 같은 범위·step 계약을 실행합니다. 실제 제품 입력과 보조기기 증거가 쌓이면 stable을 검토합니다.\") },\n { name: \"NumberField\", category: \"input\", platform: \"shared\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"numberFieldRecipe\", behavior: \"numberField\", ...evidenceNeeded(\"Web·Native renderer가 동일한 파싱·clamp·증감 계약을 실행합니다. 실제 수량 입력 흐름과 보조기기 증거가 쌓이면 stable을 검토합니다.\") },\n { name: \"Select\", category: \"input\", platform: \"adaptive\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"selectRecipe\", behavior: \"select\" },\n { name: \"Combobox\", category: \"input\", platform: \"adaptive\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"comboboxRecipe\", behavior: \"combobox\" },\n { name: \"DatePicker\", category: \"input\", platform: \"adaptive\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"datePickerRecipe\", behavior: \"datePicker\", ...evidenceNeeded(\"공통 Calendar grid 계약을 사용하는 Web dialog·Native Sheet renderer와 기본 실행 증거가 연결됐습니다. 실제 날짜 입력 흐름과 보조기기 증거가 더 필요합니다.\") },\n { name: \"DateRangePicker\", category: \"input\", platform: \"adaptive\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), aliases: [\"DateRange\"], recipe: \"calendarRecipe\", behavior: \"dateRange\", ...evidenceNeeded(\"Calendar 격자를 그대로 쓰는 구간 선택입니다. 값 모양이 달라 Calendar에 mode 축을 붙이지 않았습니다. Native에는 hover 미리보기가 없어 구간은 날짜 이름과 점으로만 드러납니다. 제품 채택은 남아 있습니다.\") },\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: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"filePickerRecipe\", behavior: \"filePicker\", aliases: [\"Upload\"], ...evidenceNeeded(\"Web native input·dropzone과 Native picker adapter가 같은 accept·size·count 판정 계약을 사용합니다. 실제 업로드 흐름과 플랫폼 picker 증거가 더 필요합니다.\") },\n { name: \"Cascader\", category: \"input\", platform: \"adaptive\", status: \"planned\", ...surfaceMaturity(\"planned\", \"planned\"), ...composed(\"Tree renderer가 들어오면서 경로는 resolve 결과에서 파생되고 중간 단계 확정은 그 노드를 고르는 것으로 끝납니다. 열 방식 화면을 베끼는 대신 Patterns/Tree의 Cascader 조합 예제로 제공합니다.\", [\"Popover\", \"Tree\"]) },\n { name: \"Form\", category: \"input\", platform: \"shared\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"formRecipe\", behavior: \"form\", ...evidenceNeeded(\"Web·Native form session renderer와 canonical Storybook 증거가 연결됐습니다. 실제 제출·서버 오류 흐름이 더 쌓이면 stable을 검토합니다.\") },\n { name: \"Agreement\", category: \"input\", platform: \"adaptive\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"agreementRecipe\", behavior: \"agreement\", ...evidenceNeeded(\"전체 동의는 항목의 합에서 파생하고 필수 항목만 제출 가능 여부를 정합니다. 전문 열기는 동의와 분리된 별도 tab stop입니다. 제품 채택·법적 문구 검토는 제품 소유입니다.\") },\n { name: \"Mentions\", category: \"input\", platform: \"adaptive\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"comboboxRecipe\", behavior: \"combobox\", ...evidenceNeeded(\"TextArea에 Combobox 목록 계약을 얹어 trigger 탐색·삽입 범위를 제공합니다. Native는 캐럿을 onSelectionChange로만 알 수 있어 그 값을 따로 추적합니다. 실제 IME·제품 채택 증거는 남아 있습니다.\") },\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: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), aliases: [\"Transfer\"], recipe: \"transferListRecipe\", behavior: \"transferList\", ...evidenceNeeded(\"Web 양쪽 패널 이동을 키보드만으로 끝낼 수 있고 이동 후 초점이 미끄러져 들어온 행에 남습니다. Native는 두 칸을 나란히 놓을 폭이 없어 세로로 쌓습니다. 제품 채택 증거는 남아 있습니다.\") },\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 { name: \"UploadItem\", category: \"data-display\", platform: \"shared\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"uploadItemRecipe\", behavior: \"uploadItem\", ...evidenceNeeded(\"Web·Native renderer가 동일한 진행·성공·오류·cancel/retry 계약을 실행합니다. 실제 전송 lifecycle 증거가 더 필요합니다.\") },\n { name: \"Tabs\", category: \"navigation\", platform: \"shared\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"tabsRecipe\", behavior: \"tabs\" },\n { name: \"TopBar\", category: \"navigation\", platform: \"adaptive\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"topBarRecipe\", ...evidenceNeeded(\"같은 leading/title/trailing 구조와 recipe를 Web/RN에서 제공합니다. Web heading/link와 Native 접근성 의미를 따로 검증합니다. docs/screen-chrome.md 참고.\") },\n { name: \"Sidebar\", category: \"navigation\", platform: \"web\", status: \"beta\", ...surfaceMaturity(\"beta\", \"unsupported\"), aliases: [\"NavigationRail\", \"SideNav\"], recipe: \"sidebarRecipe\", behavior: \"sidebar\", ...evidenceNeeded(\"그룹이 있는 데스크톱 세로 내비게이션입니다. 접으면 라벨만 숨고 항목과 접근성 이름은 남습니다. 3~5개 모바일 목적지는 BottomNavigation이 그대로 갖습니다.\") },\n { name: \"BottomNavigation\", category: \"navigation\", platform: \"adaptive\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"bottomNavigationRecipe\", behavior: \"bottomNavigation\", ...evidenceNeeded(\"Web link landmark와 Native controlled-navigation renderer가 공통 route intent를 소비합니다. 실제 브라우저·기기 릴리스 증거가 쌓이면 stable을 검토합니다.\") },\n { name: \"Breadcrumb\", category: \"navigation\", platform: \"web\", status: \"beta\", ...surfaceMaturity(\"beta\", \"unsupported\"), recipe: \"breadcrumbRecipe\", behavior: \"breadcrumb\", ...evidenceNeeded(\"Web 링크·현재 위치·RTL·큰 글자와 보관함 경로 예제를 제공합니다. 제품 채택·보조기기 검증은 아직입니다.\") },\n { name: \"Pagination\", category: \"navigation\", platform: \"web\", status: \"beta\", ...surfaceMaturity(\"beta\", \"unsupported\"), recipe: \"paginationRecipe\", behavior: \"pagination\", ...evidenceNeeded(\"Web 페이지 이동·경계 focus 유지와 실제 목록 교체 예제를 제공합니다. 제품 채택 증거가 더 필요합니다.\") },\n { name: \"LoadMore\", category: \"navigation\", platform: \"shared\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"loadMoreRecipe\", behavior: \"loadMore\", ...evidenceNeeded(\"Web observer와 Native FlatList onEndReached adapter가 같은 requestKey gate를 소비합니다. 실제 장시간 목록·보조기기 릴리스 증거가 쌓이면 stable을 검토합니다.\") },\n { name: \"Steps\", category: \"navigation\", platform: \"shared\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"stepsRecipe\", ...evidenceNeeded(\"단일 cursor에서 상태를 파생하는 Web·Native renderer와 기본 실행 증거가 연결됐습니다. 실제 다단계 흐름과 보조기기 증거가 더 필요합니다.\") },\n { name: \"Menubar\", category: \"navigation\", platform: \"web\", status: \"beta\", ...surfaceMaturity(\"beta\", \"unsupported\"), recipe: \"menubarRecipe\", behavior: \"menubar\", ...evidenceNeeded(\"데스크톱 가로 메뉴 막대입니다. 열린 상태에서 좌우로 메뉴를 넘기는 단일 키보드 단위라 Menu 여러 개로 대체되지 않습니다. 제품 채택 증거는 남아 있습니다.\") },\n { name: \"ContextMenu\", category: \"navigation\", platform: \"web\", status: \"beta\", ...surfaceMaturity(\"beta\", \"unsupported\"), recipe: \"menuRecipe\", behavior: \"contextMenu\", ...evidenceNeeded(\"포인터 좌표에서 열리는 메뉴입니다. 키보드로도 열 수 있어야 하고 그때는 초점 요소 상자를 앵커로 씁니다. 항목 어휘는 Menu 그대로입니다.\") },\n { name: \"Menu\", category: \"navigation\", platform: \"adaptive\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"menuRecipe\", behavior: \"menu\", aliases: [\"Dropdown\"] },\n { name: \"Anchor\", category: \"navigation\", platform: \"web\", status: \"beta\", ...surfaceMaturity(\"beta\", \"unsupported\"), recipe: \"anchorRecipe\", behavior: \"anchor\", ...evidenceNeeded(\"문서·별도 스크롤 영역의 목차 동기화, 제목 focus와 fragment 복구를 구현했습니다. 제품 문서 채택과 보조기기 증거가 더 필요합니다.\") },\n { name: \"Avatar\", category: \"data-display\", platform: \"shared\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"avatarRecipe\" },\n { name: \"Asset\", category: \"data-display\", platform: \"adaptive\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), aliases: [\"Media\", \"Artwork\"], recipe: \"assetRecipe\", behavior: \"asset\", ...evidenceNeeded(\"아이콘·이미지·Lottie·비디오를 한 액자 규칙으로 묶습니다. 재생기는 슬롯으로 받아 이 패키지가 의존하지 않습니다. 제품 채택 증거는 남아 있습니다.\") },\n { name: \"Chart\", category: \"data-display\", platform: \"shared\", status: \"planned\", ...surfaceMaturity(\"planned\", \"planned\"), aliases: [\"BarChart\", \"Dataviz\"], ...declined(\"그리는 일은 제품 라이브러리가 이미 더 잘하고, 실제로 어긋난 것은 색이었다. 계열 팔레트·축·격자·범례 토큰(dataviz)만 고정하고 렌더러는 만들지 않는다. docs/chart.md\") },\n { name: \"Badge\", category: \"data-display\", platform: \"shared\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"badgeRecipe\" },\n { name: \"CounterBadge\", category: \"data-display\", platform: \"shared\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"counterBadgeRecipe\" },\n { name: \"Card\", category: \"data-display\", platform: \"shared\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"cardRecipe\" },\n { name: \"List\", category: \"data-display\", platform: \"shared\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"listRecipe\" },\n { name: \"ListRow\", category: \"data-display\", platform: \"shared\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"listRowRecipe\" },\n { name: \"VirtualList\", category: \"data-display\", platform: \"adaptive\", status: \"planned\", ...surfaceMaturity(\"planned\", \"planned\"), aliases: [\"Listy\"], ...evidenceNeeded(\"가상화는 renderer 최적화라 공개 semantic이 필요한 실측 사례를 기다립니다.\") },\n { name: \"Collapsible\", category: \"data-display\", platform: \"adaptive\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), aliases: [\"Disclosure\"], recipe: \"collapsibleRecipe\", behavior: \"collapsible\", ...evidenceNeeded(\"이웃이 없는 단일 disclosure입니다. 여러 항목이 서로를 아는 경우는 Accordion이 그대로 갖습니다. 제품 채택 증거는 남아 있습니다.\") },\n { name: \"Accordion\", category: \"data-display\", platform: \"shared\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"accordionRecipe\", behavior: \"disclosureGroup\" },\n { name: \"Statistic\", category: \"data-display\", platform: \"shared\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"statisticRecipe\" },\n { name: \"Timeline\", category: \"data-display\", platform: \"shared\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"timelineRecipe\", ...evidenceNeeded(\"두 제품의 이력 UI가 공통 descriptor와 Web/RN dot·connector renderer를 소비합니다. 실제 릴리스·보조기기 증거가 쌓이면 stable을 검토합니다.\") },\n { name: \"DataTable\", category: \"data-display\", platform: \"web\", status: \"beta\", ...surfaceMaturity(\"beta\", \"unsupported\"), recipe: \"dataTableRecipe\", behavior: \"dataTable\", ...evidenceNeeded(\"Web 정렬 버튼·tri-state 선택·async 상태를 제공합니다. 값 정렬과 페이지네이션은 제품 소유이며, 단순 표시는 기존 Table이 그대로 담당합니다. 제품 채택 증거는 남아 있습니다.\") },\n { name: \"Tree\", category: \"data-display\", platform: \"web\", status: \"beta\", ...surfaceMaturity(\"beta\", \"unsupported\"), recipe: \"treeRecipe\", behavior: \"tree\", ...evidenceNeeded(\"Web 계층 탐색과 깊이·형제 위치 발표, 보이는 노드만의 이동·타이핑 검색, 노드 자체에 실리는 tri-state 체크를 제공합니다. 제품 채택·보조기기 증거는 남아 있습니다.\") },\n { name: \"Calendar\", category: \"data-display\", platform: \"shared\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"calendarRecipe\", behavior: \"calendar\", ...evidenceNeeded(\"Web/RN Calendar와 DatePicker가 동일한 격자를 사용합니다. 제품 소유 월 계산·경계 focus, disabled 활성화 방지와 큰 글자 검증은 docs/calendar.md에서 추적합니다.\") },\n { name: \"Carousel\", category: \"data-display\", platform: \"adaptive\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"carouselRecipe\", behavior: \"carousel\", ...evidenceNeeded(\"Web 키보드·숨긴 카드 격리와 Native swipe·adjustable 조작을 제공합니다. 유한 이동과 명시적 자동재생 정지 계약은 docs/carousel.md에서 추적합니다.\") },\n { name: \"DescriptionList\", category: \"data-display\", platform: \"shared\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"descriptionListRecipe\", aliases: [\"Descriptions\"], ...evidenceNeeded(\"Web/RN renderer가 공통 descriptor와 responsive column resolver를 소비하고 기본 실행 증거를 제공합니다. 200% text product·기기 증거가 쌓이면 stable을 검토합니다.\") },\n { name: \"Image\", category: \"data-display\", platform: \"shared\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"imageRecipe\", ...evidenceNeeded(\"Web load/error/fallback·framework adapter와 Native fallback·optimized-host adapter가 기본 실행 증거를 제공합니다. 실제 network asset·보조기기 증거가 쌓이면 stable을 검토합니다.\") },\n { name: \"QRCode\", category: \"data-display\", platform: \"shared\", status: \"planned\", ...surfaceMaturity(\"planned\", \"planned\"), ...evidenceNeeded(\"스캔 가능한 코드 생성 요구가 실제 제품에서 확인되면 전용 계약을 엽니다.\") },\n { name: \"Tag\", category: \"data-display\", platform: \"shared\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"tagRecipe\" },\n { name: \"Tour\", category: \"overlay\", platform: \"web\", status: \"beta\", ...surfaceMaturity(\"beta\", \"unsupported\"), recipe: \"tourRecipe\", behavior: \"tour\", aliases: [\"CoachMark\"], ...evidenceNeeded(\"Web 단계 카드가 제품 소유 anchor를 가리키고 단계마다 초점과 안내 문구를 옮깁니다. 바깥 pointer로는 끝나지 않으며 Escape·건너뛰기·중단 사유를 구분합니다. 제품 채택·보조기기 증거는 남아 있습니다.\") },\n { name: \"EmptyState\", category: \"feedback\", platform: \"shared\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"emptyStateRecipe\" },\n { name: \"Notice\", category: \"feedback\", platform: \"shared\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"noticeRecipe\" },\n { name: \"Progress\", category: \"feedback\", platform: \"shared\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"progressRecipe\" },\n { name: \"Spinner\", category: \"feedback\", platform: \"shared\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"spinnerRecipe\" },\n { name: \"Skeleton\", category: \"feedback\", platform: \"shared\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"skeletonRecipe\" },\n { name: \"Result\", category: \"feedback\", platform: \"shared\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"resultRecipe\", ...evidenceNeeded(\"두 제품의 terminal flow UI가 공통 descriptor와 Web/RN renderer를 소비합니다. 실제 릴리스·보조기기 증거가 쌓이면 stable을 검토합니다.\") },\n { name: \"BottomInfo\", category: \"feedback\", platform: \"adaptive\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"bottomInfoRecipe\", behavior: \"bottomInfo\", ...evidenceNeeded(\"주 행동 아래의 상시 안내 문장입니다. 상태를 알리는 Notice와 달리 tone·아이콘이 없고 사라지지 않습니다. 제품 채택 증거는 남아 있습니다.\") },\n { name: \"Toast\", category: \"feedback\", platform: \"adaptive\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), 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: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"dialogRecipe\", behavior: \"dialog\" },\n { name: \"AlertDialog\", category: \"overlay\", platform: \"adaptive\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"alertDialogRecipe\", behavior: \"alertDialog\" },\n { name: \"Sheet\", category: \"overlay\", platform: \"adaptive\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), recipe: \"sheetRecipe\", behavior: \"sheet\" },\n { name: \"SidePanel\", category: \"overlay\", platform: \"web\", status: \"beta\", ...surfaceMaturity(\"beta\", \"unsupported\"), recipe: \"sidePanelRecipe\", behavior: \"sidePanel\", ...evidenceNeeded(\"Web 모달/비모달 도킹 패널을 제공합니다. 모달만 초점을 가두고 스크롤을 잠그며 비모달은 페이지를 살려 둡니다. 논리 edge·크기·dismiss 사유는 docs/side-panel.md에서 추적하고 제품 채택·보조기기 증거는 남아 있습니다.\") },\n { name: \"Popover\", category: \"overlay\", platform: \"web\", status: \"beta\", ...surfaceMaturity(\"beta\", \"unsupported\"), recipe: \"popoverRecipe\", behavior: \"popover\", ...evidenceNeeded(\"Web contextual form과 중첩 portal·focus·dismiss·큰 글자 검증을 제공합니다. 제품 채택과 보조기기 증거는 남아 있습니다.\") },\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: \"beta\", ...surfaceMaturity(\"beta\", \"unsupported\"), recipe: \"tooltipRecipe\", behavior: \"tooltip\" },\n { name: \"CommandPalette\", category: \"overlay\", platform: \"web\", status: \"beta\", ...surfaceMaturity(\"beta\", \"unsupported\"), recipe: \"commandPaletteRecipe\", behavior: \"commandPalette\", ...evidenceNeeded(\"Web 모달 검색 표면과 결과 실행·초점 복귀를 제공합니다. 전역 단축키는 제품 소유로 남습니다. 제품 채택 증거는 남아 있습니다.\") },\n { name: \"Affix\", category: \"utility\", platform: \"web\", status: \"planned\", ...surfaceMaturity(\"planned\", \"unsupported\"), ...evidenceNeeded(\"임의 콘텐츠의 scroll threshold 고정 요구가 확인되면 Web 전용 계약을 엽니다.\") },\n { name: \"AppProvider\", category: \"provider\", platform: \"adaptive\", status: \"planned\", ...surfaceMaturity(\"planned\", \"planned\"), aliases: [\"App\"], ...declined(\"message·notification·modal 세 표면이 이미 Toast·Dialog·AlertDialog에 있고, 남는 것은 Context 배선뿐이라 값 계약이 없다\") },\n { name: \"BorderBeam\", category: \"utility\", platform: \"web\", status: \"planned\", ...surfaceMaturity(\"planned\", \"unsupported\"), ...declined(\"장식으로 브랜드를 증명하지 않는다는 정체성과 충돌하고, reduced motion에서 남는 것이 없으며, 없어도 화면의 뜻이 같다\") },\n { name: \"DesignSystemProvider\", category: \"provider\", platform: \"shared\", status: \"beta\", ...surfaceMaturity(\"beta\", \"beta\"), aliases: [\"ConfigProvider\"], nonVisualEvidence: \"provider-adapter\", ...evidenceNeeded(\"두 실제 제품의 Web/RN Context adapter가 environment+palette와 parent axis 상속을 소비합니다. 추가 제품 릴리스 증거가 쌓이면 stable을 검토합니다.\") },\n { name: \"Utility\", category: \"utility\", platform: \"web\", status: \"planned\", ...surfaceMaturity(\"planned\", \"unsupported\"), aliases: [\"Util\"], ...declined(\"antd Util은 theme.useToken()으로 토큰을 읽는 법을 설명하는 문서 페이지다. 이 패키지는 토큰을 정적 export로 주므로 그 문제가 발생하지 않는다\") },\n { name: \"SkipNav\", category: \"utility\", platform: \"web\", status: \"beta\", ...surfaceMaturity(\"beta\", \"unsupported\"), aliases: [\"SkipLink\"], recipe: \"skipNavRecipe\", behavior: \"skipNav\", ...evidenceNeeded(\"WCAG 2.4.1의 건너뛰기 링크입니다. 숨어 있다가 포커스를 받으면 반드시 보이고 활성화하면 본문으로 초점을 옮깁니다. 제품 채택 증거는 남아 있습니다.\") },\n { name: \"VisuallyHidden\", category: \"utility\", platform: \"web\", status: \"beta\", ...surfaceMaturity(\"beta\", \"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 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,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 접었다 펴는 **한 덩어리**. Accordion과 다른 것은 개수가 아니라 **관계**다.
|
|
3
|
+
*
|
|
4
|
+
* Accordion은 여러 항목이 서로를 안다 — 하나를 열면 다른 것이 닫히는 정책, 항목 사이의
|
|
5
|
+
* 구분선, 그룹 전체의 키보드 이동이 있다. Collapsible은 이웃이 없다. "더 보기",
|
|
6
|
+
* 필터 패널, 접히는 본문처럼 **혼자 있는 disclosure**다.
|
|
7
|
+
*
|
|
8
|
+
* Accordion에 `items.length === 1`로 대신하면 그룹 chrome(구분선·그룹 keyboard)이 따라오고,
|
|
9
|
+
* 그걸 다시 CSS로 지우게 된다. 그래서 별도로 둔다 — 대신 상태 어휘와 모션은 공유한다.
|
|
10
|
+
*/
|
|
11
|
+
export type CollapsibleOpenState = Readonly<{
|
|
12
|
+
open: boolean;
|
|
13
|
+
defaultOpen?: never;
|
|
14
|
+
onOpenChange(open: boolean): void;
|
|
15
|
+
}> | Readonly<{
|
|
16
|
+
open?: never;
|
|
17
|
+
defaultOpen?: boolean;
|
|
18
|
+
onOpenChange?: (open: boolean) => void;
|
|
19
|
+
}>;
|
|
20
|
+
export declare function validateCollapsibleOpenState(state: CollapsibleOpenState): void;
|
|
21
|
+
export declare const collapsibleRecipe: {
|
|
22
|
+
readonly slots: readonly ["root", "trigger", "content"];
|
|
23
|
+
readonly gap: 8;
|
|
24
|
+
/** 열고 닫는 것은 같은 자리의 작은 변화라 `enter`/`exit` tier를 쓴다. */
|
|
25
|
+
readonly transition: {
|
|
26
|
+
readonly enter: {
|
|
27
|
+
readonly duration: 200;
|
|
28
|
+
readonly easing: "enter";
|
|
29
|
+
readonly reducedMotion: "opacity";
|
|
30
|
+
};
|
|
31
|
+
readonly exit: {
|
|
32
|
+
readonly duration: 120;
|
|
33
|
+
readonly easing: "exit";
|
|
34
|
+
readonly reducedMotion: "instant";
|
|
35
|
+
};
|
|
36
|
+
};
|
|
37
|
+
};
|
|
38
|
+
export declare const collapsibleBehavior: {
|
|
39
|
+
readonly controlled: readonly ["open", "defaultOpen", "onOpenChange"];
|
|
40
|
+
readonly stateAxes: {
|
|
41
|
+
readonly availability: readonly ["enabled", "disabled"];
|
|
42
|
+
readonly value: readonly ["open", "closed"];
|
|
43
|
+
};
|
|
44
|
+
readonly web: {
|
|
45
|
+
readonly roles: readonly ["button", "region"];
|
|
46
|
+
readonly keyboard: readonly ["Enter", "Space"];
|
|
47
|
+
readonly focus: "native";
|
|
48
|
+
};
|
|
49
|
+
readonly native: {
|
|
50
|
+
readonly roles: readonly ["button"];
|
|
51
|
+
readonly states: readonly ["expanded", "disabled"];
|
|
52
|
+
readonly actions: readonly ["toggle"];
|
|
53
|
+
};
|
|
54
|
+
readonly scenarios: readonly ["the-trigger-reports-aria-expanded-and-points-at-the-region-it-controls", "closed-content-is-removed-from-the-accessibility-tree-not-only-hidden-visually", "one-disclosure-has-no-neighbours-so-there-is-no-group-keyboard-model-here", "accordion-keeps-the-multi-item-case-including-the-one-open-at-a-time-policy"];
|
|
55
|
+
};
|
|
56
|
+
//# sourceMappingURL=collapsible.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collapsible.d.ts","sourceRoot":"","sources":["../src/collapsible.ts"],"names":[],"mappings":"AAGA;;;;;;;;;GASG;AACH,MAAM,MAAM,oBAAoB,GAC5B,QAAQ,CAAC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,WAAW,CAAC,EAAE,KAAK,CAAC;IAAC,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAAA;CAAE,CAAC,GACnF,QAAQ,CAAC;IAAE,IAAI,CAAC,EAAE,KAAK,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAAC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;CAAE,CAAC,CAAC;AAE9F,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,oBAAoB,GAAG,IAAI,CAS9E;AAED,eAAO,MAAM,iBAAiB;;;IAG5B,sDAAsD;;;;;;;;;;;;;CAE9C,CAAC;AAEX,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;CAkBK,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { motionPreset, spacing } from "./foundations.js";
|
|
2
|
+
export function validateCollapsibleOpenState(state) {
|
|
3
|
+
const hasOpen = Object.prototype.hasOwnProperty.call(state, "open");
|
|
4
|
+
const hasDefault = Object.prototype.hasOwnProperty.call(state, "defaultOpen");
|
|
5
|
+
if (hasOpen && hasDefault) {
|
|
6
|
+
throw new TypeError("Collapsible must not provide both open and defaultOpen");
|
|
7
|
+
}
|
|
8
|
+
if (hasOpen && typeof state.onOpenChange !== "function") {
|
|
9
|
+
throw new TypeError("Controlled Collapsible must provide onOpenChange");
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
export const collapsibleRecipe = {
|
|
13
|
+
slots: ["root", "trigger", "content"],
|
|
14
|
+
gap: spacing.xs,
|
|
15
|
+
/** 열고 닫는 것은 같은 자리의 작은 변화라 `enter`/`exit` tier를 쓴다. */
|
|
16
|
+
transition: { enter: motionPreset.enter, exit: motionPreset.exit },
|
|
17
|
+
};
|
|
18
|
+
export const collapsibleBehavior = {
|
|
19
|
+
controlled: ["open", "defaultOpen", "onOpenChange"],
|
|
20
|
+
stateAxes: {
|
|
21
|
+
availability: ["enabled", "disabled"],
|
|
22
|
+
value: ["open", "closed"],
|
|
23
|
+
},
|
|
24
|
+
web: {
|
|
25
|
+
roles: ["button", "region"],
|
|
26
|
+
keyboard: ["Enter", "Space"],
|
|
27
|
+
focus: "native",
|
|
28
|
+
},
|
|
29
|
+
native: { roles: ["button"], states: ["expanded", "disabled"], actions: ["toggle"] },
|
|
30
|
+
scenarios: [
|
|
31
|
+
"the-trigger-reports-aria-expanded-and-points-at-the-region-it-controls",
|
|
32
|
+
"closed-content-is-removed-from-the-accessibility-tree-not-only-hidden-visually",
|
|
33
|
+
"one-disclosure-has-no-neighbours-so-there-is-no-group-keyboard-model-here",
|
|
34
|
+
"accordion-keeps-the-multi-item-case-including-the-one-open-at-a-time-policy",
|
|
35
|
+
],
|
|
36
|
+
};
|
|
37
|
+
//# sourceMappingURL=collapsible.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collapsible.js","sourceRoot":"","sources":["../src/collapsible.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAgBzD,MAAM,UAAU,4BAA4B,CAAC,KAA2B;IACtE,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACpE,MAAM,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;IAC9E,IAAI,OAAO,IAAI,UAAU,EAAE,CAAC;QAC1B,MAAM,IAAI,SAAS,CAAC,wDAAwD,CAAC,CAAC;IAChF,CAAC;IACD,IAAI,OAAO,IAAI,OAAQ,KAAoC,CAAC,YAAY,KAAK,UAAU,EAAE,CAAC;QACxF,MAAM,IAAI,SAAS,CAAC,kDAAkD,CAAC,CAAC;IAC1E,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,KAAK,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,CAAU;IAC9C,GAAG,EAAE,OAAO,CAAC,EAAE;IACf,sDAAsD;IACtD,UAAU,EAAE,EAAE,KAAK,EAAE,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,YAAY,CAAC,IAAI,EAAE;CAC1D,CAAC;AAEX,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,UAAU,EAAE,CAAC,MAAM,EAAE,aAAa,EAAE,cAAc,CAAC;IACnD,SAAS,EAAE;QACT,YAAY,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC;QACrC,KAAK,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC;KAC1B;IACD,GAAG,EAAE;QACH,KAAK,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;QAC3B,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;QAC5B,KAAK,EAAE,QAAQ;KAChB;IACD,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC,QAAQ,CAAC,EAAE;IACpF,SAAS,EAAE;QACT,wEAAwE;QACxE,gFAAgF;QAChF,2EAA2E;QAC3E,6EAA6E;KAC9E;CACkC,CAAC","sourcesContent":["import type { BehaviorContract } from \"./behaviors.js\";\nimport { motionPreset, spacing } from \"./foundations.js\";\n\n/**\n * 접었다 펴는 **한 덩어리**. Accordion과 다른 것은 개수가 아니라 **관계**다.\n *\n * Accordion은 여러 항목이 서로를 안다 — 하나를 열면 다른 것이 닫히는 정책, 항목 사이의\n * 구분선, 그룹 전체의 키보드 이동이 있다. Collapsible은 이웃이 없다. \"더 보기\",\n * 필터 패널, 접히는 본문처럼 **혼자 있는 disclosure**다.\n *\n * Accordion에 `items.length === 1`로 대신하면 그룹 chrome(구분선·그룹 keyboard)이 따라오고,\n * 그걸 다시 CSS로 지우게 된다. 그래서 별도로 둔다 — 대신 상태 어휘와 모션은 공유한다.\n */\nexport type CollapsibleOpenState =\n | Readonly<{ open: boolean; defaultOpen?: never; onOpenChange(open: boolean): void }>\n | Readonly<{ open?: never; defaultOpen?: boolean; onOpenChange?: (open: boolean) => void }>;\n\nexport function validateCollapsibleOpenState(state: CollapsibleOpenState): void {\n const hasOpen = Object.prototype.hasOwnProperty.call(state, \"open\");\n const hasDefault = Object.prototype.hasOwnProperty.call(state, \"defaultOpen\");\n if (hasOpen && hasDefault) {\n throw new TypeError(\"Collapsible must not provide both open and defaultOpen\");\n }\n if (hasOpen && typeof (state as { onOpenChange?: unknown }).onOpenChange !== \"function\") {\n throw new TypeError(\"Controlled Collapsible must provide onOpenChange\");\n }\n}\n\nexport const collapsibleRecipe = {\n slots: [\"root\", \"trigger\", \"content\"] as const,\n gap: spacing.xs,\n /** 열고 닫는 것은 같은 자리의 작은 변화라 `enter`/`exit` tier를 쓴다. */\n transition: { enter: motionPreset.enter, exit: motionPreset.exit },\n} as const;\n\nexport const collapsibleBehavior = {\n controlled: [\"open\", \"defaultOpen\", \"onOpenChange\"],\n stateAxes: {\n availability: [\"enabled\", \"disabled\"],\n value: [\"open\", \"closed\"],\n },\n web: {\n roles: [\"button\", \"region\"],\n keyboard: [\"Enter\", \"Space\"],\n focus: \"native\",\n },\n native: { roles: [\"button\"], states: [\"expanded\", \"disabled\"], actions: [\"toggle\"] },\n scenarios: [\n \"the-trigger-reports-aria-expanded-and-points-at-the-region-it-controls\",\n \"closed-content-is-removed-from-the-accessibility-tree-not-only-hidden-visually\",\n \"one-disclosure-has-no-neighbours-so-there-is-no-group-keyboard-model-here\",\n \"accordion-keeps-the-multi-item-case-including-the-one-open-at-a-time-policy\",\n ],\n} as const satisfies BehaviorContract;\n"]}
|
|
@@ -7,6 +7,8 @@ export type ComponentSurfaceStatus = CatalogComponentSurfaceStatus;
|
|
|
7
7
|
/** Stable IDs survive display-name and category changes. */
|
|
8
8
|
export declare const componentIds: {
|
|
9
9
|
readonly Text: "text";
|
|
10
|
+
readonly TextFormat: "text-format";
|
|
11
|
+
readonly Heading: "heading";
|
|
10
12
|
readonly Icon: "icon";
|
|
11
13
|
readonly Surface: "surface";
|
|
12
14
|
readonly Divider: "divider";
|
|
@@ -16,6 +18,7 @@ export declare const componentIds: {
|
|
|
16
18
|
readonly AspectRatio: "aspect-ratio";
|
|
17
19
|
readonly Grid: "grid";
|
|
18
20
|
readonly Layout: "layout";
|
|
21
|
+
readonly Top: "top";
|
|
19
22
|
readonly Masonry: "masonry";
|
|
20
23
|
readonly Splitter: "splitter";
|
|
21
24
|
readonly Button: "button";
|
|
@@ -23,6 +26,8 @@ export declare const componentIds: {
|
|
|
23
26
|
readonly Link: "link";
|
|
24
27
|
readonly BottomCTA: "bottom-cta";
|
|
25
28
|
readonly FloatingActionButton: "floating-action-button";
|
|
29
|
+
readonly AuthProviderButton: "auth-provider-button";
|
|
30
|
+
readonly AuthScreenLayout: "auth-screen";
|
|
26
31
|
readonly Field: "field";
|
|
27
32
|
readonly SearchField: "search-field";
|
|
28
33
|
readonly TextArea: "text-area";
|
|
@@ -35,16 +40,20 @@ export declare const componentIds: {
|
|
|
35
40
|
readonly Switch: "switch";
|
|
36
41
|
readonly Chip: "chip";
|
|
37
42
|
readonly SegmentedControl: "segmented-control";
|
|
43
|
+
readonly ToggleGroup: "toggle-group";
|
|
44
|
+
readonly TagsInput: "tags-input";
|
|
38
45
|
readonly Slider: "slider";
|
|
39
46
|
readonly NumberField: "number-field";
|
|
40
47
|
readonly Select: "select";
|
|
41
48
|
readonly Combobox: "combobox";
|
|
42
49
|
readonly DatePicker: "date-picker";
|
|
50
|
+
readonly DateRangePicker: "date-range-picker";
|
|
43
51
|
readonly TimePicker: "time-picker";
|
|
44
52
|
readonly ColorPicker: "color-picker";
|
|
45
53
|
readonly FilePicker: "file-picker";
|
|
46
54
|
readonly Cascader: "cascader";
|
|
47
55
|
readonly Form: "form";
|
|
56
|
+
readonly Agreement: "agreement";
|
|
48
57
|
readonly Mentions: "mentions";
|
|
49
58
|
readonly Rating: "rating";
|
|
50
59
|
readonly TransferList: "transfer-list";
|
|
@@ -52,11 +61,14 @@ export declare const componentIds: {
|
|
|
52
61
|
readonly UploadItem: "upload-item";
|
|
53
62
|
readonly Tabs: "tabs";
|
|
54
63
|
readonly TopBar: "top-bar";
|
|
64
|
+
readonly Sidebar: "sidebar";
|
|
55
65
|
readonly BottomNavigation: "bottom-navigation";
|
|
56
66
|
readonly Breadcrumb: "breadcrumb";
|
|
57
67
|
readonly Pagination: "pagination";
|
|
58
68
|
readonly LoadMore: "load-more";
|
|
59
69
|
readonly Steps: "steps";
|
|
70
|
+
readonly Menubar: "menubar";
|
|
71
|
+
readonly ContextMenu: "context-menu";
|
|
60
72
|
readonly Menu: "menu";
|
|
61
73
|
readonly Anchor: "anchor";
|
|
62
74
|
readonly Avatar: "avatar";
|
|
@@ -66,6 +78,9 @@ export declare const componentIds: {
|
|
|
66
78
|
readonly List: "list";
|
|
67
79
|
readonly ListRow: "list-row";
|
|
68
80
|
readonly VirtualList: "virtual-list";
|
|
81
|
+
readonly Collapsible: "collapsible";
|
|
82
|
+
readonly Asset: "asset";
|
|
83
|
+
readonly Chart: "chart";
|
|
69
84
|
readonly Accordion: "accordion";
|
|
70
85
|
readonly Statistic: "statistic";
|
|
71
86
|
readonly Timeline: "timeline";
|
|
@@ -84,6 +99,7 @@ export declare const componentIds: {
|
|
|
84
99
|
readonly Spinner: "spinner";
|
|
85
100
|
readonly Skeleton: "skeleton";
|
|
86
101
|
readonly Result: "result";
|
|
102
|
+
readonly BottomInfo: "bottom-info";
|
|
87
103
|
readonly Toast: "toast";
|
|
88
104
|
readonly Watermark: "watermark";
|
|
89
105
|
readonly Dialog: "dialog";
|
|
@@ -99,6 +115,7 @@ export declare const componentIds: {
|
|
|
99
115
|
readonly BorderBeam: "border-beam";
|
|
100
116
|
readonly DesignSystemProvider: "design-system-provider";
|
|
101
117
|
readonly Utility: "utility";
|
|
118
|
+
readonly SkipNav: "skip-nav";
|
|
102
119
|
readonly VisuallyHidden: "visually-hidden";
|
|
103
120
|
};
|
|
104
121
|
export type ComponentId = (typeof componentIds)[ComponentName];
|
|
@@ -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
|
|
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgHmC,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"}
|
|
@@ -2,6 +2,8 @@ import { componentCatalog, getComponentSurfaceStatus, } from "./catalog.js";
|
|
|
2
2
|
/** Stable IDs survive display-name and category changes. */
|
|
3
3
|
export const componentIds = {
|
|
4
4
|
Text: "text",
|
|
5
|
+
TextFormat: "text-format",
|
|
6
|
+
Heading: "heading",
|
|
5
7
|
Icon: "icon",
|
|
6
8
|
Surface: "surface",
|
|
7
9
|
Divider: "divider",
|
|
@@ -11,6 +13,7 @@ export const componentIds = {
|
|
|
11
13
|
AspectRatio: "aspect-ratio",
|
|
12
14
|
Grid: "grid",
|
|
13
15
|
Layout: "layout",
|
|
16
|
+
Top: "top",
|
|
14
17
|
Masonry: "masonry",
|
|
15
18
|
Splitter: "splitter",
|
|
16
19
|
Button: "button",
|
|
@@ -18,6 +21,8 @@ export const componentIds = {
|
|
|
18
21
|
Link: "link",
|
|
19
22
|
BottomCTA: "bottom-cta",
|
|
20
23
|
FloatingActionButton: "floating-action-button",
|
|
24
|
+
AuthProviderButton: "auth-provider-button",
|
|
25
|
+
AuthScreenLayout: "auth-screen",
|
|
21
26
|
Field: "field",
|
|
22
27
|
SearchField: "search-field",
|
|
23
28
|
TextArea: "text-area",
|
|
@@ -30,16 +35,20 @@ export const componentIds = {
|
|
|
30
35
|
Switch: "switch",
|
|
31
36
|
Chip: "chip",
|
|
32
37
|
SegmentedControl: "segmented-control",
|
|
38
|
+
ToggleGroup: "toggle-group",
|
|
39
|
+
TagsInput: "tags-input",
|
|
33
40
|
Slider: "slider",
|
|
34
41
|
NumberField: "number-field",
|
|
35
42
|
Select: "select",
|
|
36
43
|
Combobox: "combobox",
|
|
37
44
|
DatePicker: "date-picker",
|
|
45
|
+
DateRangePicker: "date-range-picker",
|
|
38
46
|
TimePicker: "time-picker",
|
|
39
47
|
ColorPicker: "color-picker",
|
|
40
48
|
FilePicker: "file-picker",
|
|
41
49
|
Cascader: "cascader",
|
|
42
50
|
Form: "form",
|
|
51
|
+
Agreement: "agreement",
|
|
43
52
|
Mentions: "mentions",
|
|
44
53
|
Rating: "rating",
|
|
45
54
|
TransferList: "transfer-list",
|
|
@@ -47,11 +56,14 @@ export const componentIds = {
|
|
|
47
56
|
UploadItem: "upload-item",
|
|
48
57
|
Tabs: "tabs",
|
|
49
58
|
TopBar: "top-bar",
|
|
59
|
+
Sidebar: "sidebar",
|
|
50
60
|
BottomNavigation: "bottom-navigation",
|
|
51
61
|
Breadcrumb: "breadcrumb",
|
|
52
62
|
Pagination: "pagination",
|
|
53
63
|
LoadMore: "load-more",
|
|
54
64
|
Steps: "steps",
|
|
65
|
+
Menubar: "menubar",
|
|
66
|
+
ContextMenu: "context-menu",
|
|
55
67
|
Menu: "menu",
|
|
56
68
|
Anchor: "anchor",
|
|
57
69
|
Avatar: "avatar",
|
|
@@ -61,6 +73,9 @@ export const componentIds = {
|
|
|
61
73
|
List: "list",
|
|
62
74
|
ListRow: "list-row",
|
|
63
75
|
VirtualList: "virtual-list",
|
|
76
|
+
Collapsible: "collapsible",
|
|
77
|
+
Asset: "asset",
|
|
78
|
+
Chart: "chart",
|
|
64
79
|
Accordion: "accordion",
|
|
65
80
|
Statistic: "statistic",
|
|
66
81
|
Timeline: "timeline",
|
|
@@ -79,6 +94,7 @@ export const componentIds = {
|
|
|
79
94
|
Spinner: "spinner",
|
|
80
95
|
Skeleton: "skeleton",
|
|
81
96
|
Result: "result",
|
|
97
|
+
BottomInfo: "bottom-info",
|
|
82
98
|
Toast: "toast",
|
|
83
99
|
Watermark: "watermark",
|
|
84
100
|
Dialog: "dialog",
|
|
@@ -94,6 +110,7 @@ export const componentIds = {
|
|
|
94
110
|
BorderBeam: "border-beam",
|
|
95
111
|
DesignSystemProvider: "design-system-provider",
|
|
96
112
|
Utility: "utility",
|
|
113
|
+
SkipNav: "skip-nav",
|
|
97
114
|
VisuallyHidden: "visually-hidden",
|
|
98
115
|
};
|
|
99
116
|
const kindByCategory = {
|