@hjmds/design-contracts 1.1.1 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (194) hide show
  1. package/dist/agreement.d.ts +183 -0
  2. package/dist/agreement.d.ts.map +1 -0
  3. package/dist/agreement.js +137 -0
  4. package/dist/agreement.js.map +1 -0
  5. package/dist/anchor.d.ts +62 -0
  6. package/dist/anchor.d.ts.map +1 -0
  7. package/dist/anchor.js +43 -0
  8. package/dist/anchor.js.map +1 -0
  9. package/dist/asset.d.ts +94 -0
  10. package/dist/asset.d.ts.map +1 -0
  11. package/dist/asset.js +60 -0
  12. package/dist/asset.js.map +1 -0
  13. package/dist/base-recipes.d.ts +19 -0
  14. package/dist/base-recipes.d.ts.map +1 -1
  15. package/dist/base-recipes.js +17 -0
  16. package/dist/base-recipes.js.map +1 -1
  17. package/dist/behaviors.d.ts +346 -3
  18. package/dist/behaviors.d.ts.map +1 -1
  19. package/dist/behaviors.js +35 -1
  20. package/dist/behaviors.js.map +1 -1
  21. package/dist/bottom-info.d.ts +58 -0
  22. package/dist/bottom-info.d.ts.map +1 -0
  23. package/dist/bottom-info.js +48 -0
  24. package/dist/bottom-info.js.map +1 -0
  25. package/dist/carousel.d.ts +3 -3
  26. package/dist/carousel.js +1 -1
  27. package/dist/carousel.js.map +1 -1
  28. package/dist/catalog.d.ts +1250 -239
  29. package/dist/catalog.d.ts.map +1 -1
  30. package/dist/catalog.js +65 -25
  31. package/dist/catalog.js.map +1 -1
  32. package/dist/collapsible.d.ts +56 -0
  33. package/dist/collapsible.d.ts.map +1 -0
  34. package/dist/collapsible.js +37 -0
  35. package/dist/collapsible.js.map +1 -0
  36. package/dist/component-definitions.d.ts +16 -0
  37. package/dist/component-definitions.d.ts.map +1 -1
  38. package/dist/component-definitions.js +16 -0
  39. package/dist/component-definitions.js.map +1 -1
  40. package/dist/component-recipes.d.ts +20 -3
  41. package/dist/component-recipes.d.ts.map +1 -1
  42. package/dist/component-recipes.js +24 -1
  43. package/dist/component-recipes.js.map +1 -1
  44. package/dist/context-menu.d.ts +53 -0
  45. package/dist/context-menu.d.ts.map +1 -0
  46. package/dist/context-menu.js +44 -0
  47. package/dist/context-menu.js.map +1 -0
  48. package/dist/counter-badge-recipe.d.ts +5 -0
  49. package/dist/counter-badge-recipe.d.ts.map +1 -1
  50. package/dist/counter-badge-recipe.js +5 -0
  51. package/dist/counter-badge-recipe.js.map +1 -1
  52. package/dist/dataviz.d.ts +76 -0
  53. package/dist/dataviz.d.ts.map +1 -0
  54. package/dist/dataviz.js +58 -0
  55. package/dist/dataviz.js.map +1 -0
  56. package/dist/date-range.d.ts +56 -0
  57. package/dist/date-range.d.ts.map +1 -0
  58. package/dist/date-range.js +79 -0
  59. package/dist/date-range.js.map +1 -0
  60. package/dist/design-system-provider.d.ts +24 -0
  61. package/dist/design-system-provider.d.ts.map +1 -1
  62. package/dist/design-system-provider.js +21 -0
  63. package/dist/design-system-provider.js.map +1 -1
  64. package/dist/floating-action-button.d.ts +1 -1
  65. package/dist/floating-action-button.d.ts.map +1 -1
  66. package/dist/floating-action-button.js +3 -1
  67. package/dist/floating-action-button.js.map +1 -1
  68. package/dist/formatters.d.ts +37 -0
  69. package/dist/formatters.d.ts.map +1 -0
  70. package/dist/formatters.js +69 -0
  71. package/dist/formatters.js.map +1 -0
  72. package/dist/heading.d.ts +82 -0
  73. package/dist/heading.d.ts.map +1 -0
  74. package/dist/heading.js +48 -0
  75. package/dist/heading.js.map +1 -0
  76. package/dist/index.d.ts +19 -0
  77. package/dist/index.d.ts.map +1 -1
  78. package/dist/index.js +19 -0
  79. package/dist/index.js.map +1 -1
  80. package/dist/menubar.d.ts +133 -0
  81. package/dist/menubar.d.ts.map +1 -0
  82. package/dist/menubar.js +80 -0
  83. package/dist/menubar.js.map +1 -0
  84. package/dist/native-platform.d.ts +88 -0
  85. package/dist/native-platform.d.ts.map +1 -0
  86. package/dist/native-platform.js +70 -0
  87. package/dist/native-platform.js.map +1 -0
  88. package/dist/popover.d.ts +19 -4
  89. package/dist/popover.d.ts.map +1 -1
  90. package/dist/popover.js +3 -0
  91. package/dist/popover.js.map +1 -1
  92. package/dist/progress-recipe.d.ts +14 -0
  93. package/dist/progress-recipe.d.ts.map +1 -1
  94. package/dist/progress-recipe.js +14 -1
  95. package/dist/progress-recipe.js.map +1 -1
  96. package/dist/provider-button.d.ts +140 -0
  97. package/dist/provider-button.d.ts.map +1 -0
  98. package/dist/provider-button.js +83 -0
  99. package/dist/provider-button.js.map +1 -0
  100. package/dist/recipes.d.ts +15 -1
  101. package/dist/recipes.d.ts.map +1 -1
  102. package/dist/recipes.js +14 -0
  103. package/dist/recipes.js.map +1 -1
  104. package/dist/sheet.d.ts +16 -0
  105. package/dist/sheet.d.ts.map +1 -1
  106. package/dist/sheet.js +33 -0
  107. package/dist/sheet.js.map +1 -1
  108. package/dist/sidebar.d.ts +168 -0
  109. package/dist/sidebar.d.ts.map +1 -0
  110. package/dist/sidebar.js +98 -0
  111. package/dist/sidebar.js.map +1 -0
  112. package/dist/skip-nav.d.ts +67 -0
  113. package/dist/skip-nav.d.ts.map +1 -0
  114. package/dist/skip-nav.js +47 -0
  115. package/dist/skip-nav.js.map +1 -0
  116. package/dist/tags-input.d.ts +157 -0
  117. package/dist/tags-input.d.ts.map +1 -0
  118. package/dist/tags-input.js +108 -0
  119. package/dist/tags-input.js.map +1 -0
  120. package/dist/text-formats.d.ts +85 -0
  121. package/dist/text-formats.d.ts.map +1 -0
  122. package/dist/text-formats.js +43 -0
  123. package/dist/text-formats.js.map +1 -0
  124. package/dist/toggle-group.d.ts +111 -0
  125. package/dist/toggle-group.d.ts.map +1 -0
  126. package/dist/toggle-group.js +78 -0
  127. package/dist/toggle-group.js.map +1 -0
  128. package/dist/top.d.ts +113 -0
  129. package/dist/top.d.ts.map +1 -0
  130. package/dist/top.js +72 -0
  131. package/dist/top.js.map +1 -0
  132. package/dist/version.d.ts +1 -1
  133. package/dist/version.js +1 -1
  134. package/dist/version.js.map +1 -1
  135. package/docs/agreement.md +33 -0
  136. package/docs/anchor.md +59 -59
  137. package/docs/ant-design-coverage.md +5 -3
  138. package/docs/asset.md +26 -0
  139. package/docs/bottom-info.md +15 -0
  140. package/docs/breadcrumb.md +15 -15
  141. package/docs/button-label.md +20 -0
  142. package/docs/calendar.md +82 -154
  143. package/docs/carousel.md +27 -2
  144. package/docs/cascader.md +17 -0
  145. package/docs/chart.md +33 -0
  146. package/docs/clipboard.md +13 -0
  147. package/docs/collapsible.md +19 -0
  148. package/docs/command-palette.md +19 -0
  149. package/docs/confirm-popover.md +11 -1
  150. package/docs/context-menu.md +23 -0
  151. package/docs/data-table.md +22 -0
  152. package/docs/date-range.md +31 -0
  153. package/docs/density.md +23 -0
  154. package/docs/expansion-roadmap.md +16 -3
  155. package/docs/floating-action-button.md +35 -3
  156. package/docs/formatters.md +18 -0
  157. package/docs/generated/component-maturity.md +39 -23
  158. package/docs/generated/renderer-evidence.json +2921 -642
  159. package/docs/generated/renderer-evidence.md +53 -6
  160. package/docs/generated/showcase-manifest.json +1087 -64
  161. package/docs/heading.md +25 -0
  162. package/docs/identity.md +5 -0
  163. package/docs/layout.md +1 -1
  164. package/docs/library-gap-analysis.md +29 -9
  165. package/docs/list-row.md +14 -0
  166. package/docs/mentions.md +18 -0
  167. package/docs/menubar.md +22 -0
  168. package/docs/native-platform.md +36 -0
  169. package/docs/overlay-stack.md +24 -0
  170. package/docs/pagination.md +16 -8
  171. package/docs/popover.md +42 -13
  172. package/docs/product-audit-2026-09-15.md +88 -0
  173. package/docs/progress.md +16 -0
  174. package/docs/provider-button.md +33 -0
  175. package/docs/rating.md +19 -0
  176. package/docs/react-native-completion.md +347 -0
  177. package/docs/screen-chrome.md +52 -0
  178. package/docs/side-panel.md +23 -2
  179. package/docs/sidebar.md +30 -0
  180. package/docs/skip-nav.md +20 -0
  181. package/docs/splitter.md +22 -2
  182. package/docs/stable-promotion.md +51 -0
  183. package/docs/tags-input.md +25 -0
  184. package/docs/text-formats.md +15 -0
  185. package/docs/theming.md +84 -0
  186. package/docs/time-picker.md +22 -1
  187. package/docs/toast.md +18 -0
  188. package/docs/toggle-group.md +21 -0
  189. package/docs/top.md +32 -0
  190. package/docs/tour.md +23 -2
  191. package/docs/transfer-list.md +20 -0
  192. package/docs/tree-select.md +18 -0
  193. package/docs/tree.md +21 -0
  194. package/package.json +120 -6
package/dist/behaviors.js CHANGED
@@ -1,3 +1,20 @@
1
+ import { anchorBehavior } from "./anchor.js";
2
+ import { agreementBehavior } from "./agreement.js";
3
+ import { topBehavior } from "./top.js";
4
+ import { authProviderButtonBehavior } from "./provider-button.js";
5
+ import { headingBehavior } from "./heading.js";
6
+ import { toggleGroupBehavior } from "./toggle-group.js";
7
+ import { tagsInputBehavior } from "./tags-input.js";
8
+ import { skipNavBehavior } from "./skip-nav.js";
9
+ import { bottomInfoBehavior } from "./bottom-info.js";
10
+ import { sidebarBehavior } from "./sidebar.js";
11
+ import { nativePlatformBehavior } from "./native-platform.js";
12
+ import { dateRangeBehavior } from "./date-range.js";
13
+ import { textFormatBehavior } from "./text-formats.js";
14
+ import { collapsibleBehavior } from "./collapsible.js";
15
+ import { assetBehavior } from "./asset.js";
16
+ import { menubarBehavior } from "./menubar.js";
17
+ import { contextMenuBehavior } from "./context-menu.js";
1
18
  import { sheetBehaviorDefaults } from "./sheet.js";
2
19
  import { loadMoreBehaviorDefaults } from "./load-more.js";
3
20
  import { toastBehaviorDefaults } from "./toast.js";
@@ -841,6 +858,23 @@ export const behaviorRegistry = {
841
858
  "reduced-motion-exit-completes-exactly-once",
842
859
  ],
843
860
  },
861
+ anchor: anchorBehavior,
862
+ agreement: agreementBehavior,
863
+ top: topBehavior,
864
+ authProviderButton: authProviderButtonBehavior,
865
+ heading: headingBehavior,
866
+ toggleGroup: toggleGroupBehavior,
867
+ tagsInput: tagsInputBehavior,
868
+ skipNav: skipNavBehavior,
869
+ bottomInfo: bottomInfoBehavior,
870
+ sidebar: sidebarBehavior,
871
+ nativePlatform: nativePlatformBehavior,
872
+ dateRange: dateRangeBehavior,
873
+ textFormat: textFormatBehavior,
874
+ collapsible: collapsibleBehavior,
875
+ asset: assetBehavior,
876
+ menubar: menubarBehavior,
877
+ contextMenu: contextMenuBehavior,
844
878
  breadcrumb: breadcrumbBehaviorSpec,
845
879
  calendar: calendarBehavior,
846
880
  carousel: carouselBehavior,
@@ -951,7 +985,7 @@ export const behaviorRegistry = {
951
985
  /*
952
986
  `trap`이 아니라 `restore`다 — Dialog·Sheet·AlertDialog는 모달이라 포커스를 가두지만
953
987
  Popover는 비모달이라 Tab이 **정당하게 밖으로 나갈 수 있다.** 그래서 가두지 않고,
954
- 닫힐 때 트리거로 돌려보낸다. 같은 자리에 있는 것은 Menu다(역시 `restore`).
988
+ Escape/명시적 닫기는 트리거로 복귀하고, 바깥 클릭·Tab 이동은 새 초점을 보존한다.
955
989
  나가는 것 자체가 dismiss 신호이므로 `outside-focus`를 별도 reason으로 둔다.
956
990
  */
957
991
  web: {
@@ -1 +1 @@
1
- {"version":3,"file":"behaviors.js","sourceRoot":"","sources":["../src/behaviors.ts"],"names":[],"mappings":"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","sourcesContent":["import { sheetBehaviorDefaults } from \"./sheet.js\";\nimport { loadMoreBehaviorDefaults } from \"./load-more.js\";\nimport { toastBehaviorDefaults } from \"./toast.js\";\nimport { bottomNavigationBehaviorDefaults } from \"./bottom-navigation.js\";\nimport { tooltipBehaviorDefaults } from \"./tooltip.js\";\n/*\n Batch 2 저작 모듈의 행동 계약. 각 컴포넌트가 자기 모듈에 spec을 두고 레지스트리는\n 경로만 모은다 — 여러 저작자가 병렬로 이 파일을 고치면 서로의 변경을 덮어쓴다\n (`docs/authoring-brief.md`).\n*/\nimport { breadcrumbBehaviorSpec } from \"./breadcrumb.js\";\nimport { calendarBehavior } from \"./calendar.js\";\nimport { carouselBehavior } from \"./carousel.js\";\nimport { commandPaletteBehaviorScenarios } from \"./command-palette.js\";\nimport { floatingActionButtonBehaviorScenarios } from \"./floating-action-button.js\";\nimport { tourBehaviorScenarios } from \"./tour.js\";\nimport { dataTableBehavior } from \"./data-table.js\";\nimport { layoutBehavior } from \"./layout.js\";\nimport { otpFieldBehavior } from \"./otp-field.js\";\nimport { passwordFieldBehavior } from \"./password-field.js\";\nimport { splitterBehavior } from \"./splitter.js\";\nimport { datePickerBehavior } from \"./date-picker.js\";\nimport { sidePanelBehavior } from \"./side-panel.js\";\nimport { filePickerBehavior } from \"./file-picker.js\";\nimport { paginationBehaviorScenarios } from \"./pagination.js\";\nimport { popoverBehaviorDefaults, popoverBehaviorScenarios } from \"./popover.js\";\nimport { treeBehavior } from \"./tree.js\";\nimport { uploadItemBehavior } from \"./upload-item.js\";\nimport { formBehaviorSpec } from \"./form.js\";\nimport { numberFieldBehavior } from \"./number-field.js\";\nimport { sliderBehavior } from \"./slider.js\";\nimport type { DesignSystemDirection } from \"./design-system-provider.js\";\nimport {\n checkboxBehaviorDefaults,\n type CheckboxState,\n} from \"./selection-helpers.js\";\n\nexport {\n checkboxBehaviorDefaults,\n getCheckboxNextState,\n reconcileCheckboxSelection,\n toggleCheckboxSelection,\n type CheckboxState,\n type MixedCheckboxActivation,\n} from \"./selection-helpers.js\";\n\n/** Platform-neutral behavior vocabulary shared by renderer acceptance tests. */\nexport type InteractionState =\n | \"idle\"\n | \"hover\"\n | \"focusVisible\"\n | \"pressed\"\n | \"dragged\";\nexport type AvailabilityState = \"enabled\" | \"disabled\" | \"readOnly\" | \"busy\";\nexport type ValueState =\n | \"empty\"\n | \"filled\"\n | \"checked\"\n | \"mixed\"\n | \"selected\"\n | \"open\"\n | \"expanded\";\nexport type ValidationState = \"valid\" | \"invalid\";\nexport type ContentState =\n | \"idle\"\n | \"loading\"\n | \"loadingMore\"\n | \"empty\"\n | \"error\"\n | \"complete\";\nexport type TabsActivationMode = \"automatic\" | \"manual\";\nexport type TabsMountPolicy = \"active\" | \"visited\" | \"always\";\nexport type TabsPanelMode = \"keyed\" | \"dynamic\";\nexport type TabsOrientation = \"horizontal\" | \"vertical\";\nexport type TabsDirection = DesignSystemDirection;\n\nexport type SelectionOrientation = \"horizontal\" | \"vertical\";\nexport type SelectionDirection = DesignSystemDirection;\n\n/** Stable option anatomy shared by CheckboxGroup and RadioGroup renderers. */\nexport type SelectionItemDescriptor<Key extends string = string> = Readonly<{\n id: Key;\n label: string;\n description?: string;\n disabled?: boolean;\n}>;\n\n/** A group needs either visible copy or an explicit accessible name. */\nexport type SelectionGroupLabel =\n | Readonly<{ label: string; accessibilityLabel?: string }>\n | Readonly<{ label?: never; accessibilityLabel: string }>;\n\nexport type ControlledCheckboxState = Readonly<{\n checked: CheckboxState;\n defaultChecked?: never;\n onCheckedChange(checked: boolean): void;\n}>;\nexport type UncontrolledCheckboxState = Readonly<{\n checked?: never;\n defaultChecked?: CheckboxState;\n onCheckedChange?: (checked: boolean) => void;\n}>;\nexport type CheckboxSelection = ControlledCheckboxState | UncontrolledCheckboxState;\n\nexport type ControlledCheckboxGroupSelection<Key extends string = string> = Readonly<{\n value: ReadonlySet<Key>;\n defaultValue?: never;\n onValueChange(value: ReadonlySet<Key>): void;\n}>;\nexport type UncontrolledCheckboxGroupSelection<Key extends string = string> = Readonly<{\n value?: never;\n defaultValue?: ReadonlySet<Key>;\n onValueChange?: (value: ReadonlySet<Key>) => void;\n}>;\nexport type CheckboxGroupSelection<Key extends string = string> =\n | ControlledCheckboxGroupSelection<Key>\n | UncontrolledCheckboxGroupSelection<Key>;\n\nexport type ControlledRadioGroupSelection<Key extends string = string> = Readonly<{\n value: Key | null;\n defaultValue?: never;\n onValueChange(value: Key): void;\n}>;\nexport type UncontrolledRadioGroupSelection<Key extends string = string> = Readonly<{\n value?: never;\n defaultValue?: Key | null;\n onValueChange?: (value: Key) => void;\n}>;\nexport type RadioGroupSelection<Key extends string = string> =\n | ControlledRadioGroupSelection<Key>\n | UncontrolledRadioGroupSelection<Key>;\n\nexport type SelectionNavigationIntent = \"next\" | \"previous\" | \"first\" | \"last\";\n\n/** Resolves a renderer's required name while rejecting type-valid blank copy. */\nexport function resolveControlAccessibleName(\n label: string | undefined,\n accessibilityLabel: string | undefined,\n controlName = \"Control\",\n): string {\n if (label !== undefined && (typeof label !== \"string\" || !label.trim())) {\n throw new TypeError(`${controlName} label must not be empty`);\n }\n if (\n accessibilityLabel !== undefined &&\n (typeof accessibilityLabel !== \"string\" || !accessibilityLabel.trim())\n ) {\n throw new TypeError(`${controlName} accessibilityLabel must not be empty`);\n }\n const resolved = accessibilityLabel?.trim() || label?.trim();\n if (!resolved) {\n throw new TypeError(`${controlName} needs an accessible name`);\n }\n return resolved;\n}\n\nexport const selectionGroupBehaviorDefaults = {\n orientation: \"vertical\",\n direction: \"ltr\",\n} as const satisfies Readonly<{\n orientation: SelectionOrientation;\n direction: SelectionDirection;\n}>;\n\nexport const radioGroupBehaviorDefaults = {\n ...selectionGroupBehaviorDefaults,\n loop: true,\n} as const satisfies Readonly<{\n orientation: SelectionOrientation;\n direction: SelectionDirection;\n loop: boolean;\n}>;\n\nexport const selectBehaviorDefaults = {\n disallowEmptySelection: false,\n loop: false,\n} as const satisfies Readonly<{\n disallowEmptySelection: boolean;\n loop: boolean;\n}>;\n\nexport const comboboxBehaviorDefaults = {\n filtering: \"local\",\n loop: false,\n} as const satisfies Readonly<{\n filtering: ComboboxFiltering;\n loop: boolean;\n}>;\n\n/** Throws before a renderer can expose ambiguous or unreachable selection state. */\nexport function validateSelectionItems<Key extends string>(\n items: readonly SelectionItemDescriptor<Key>[],\n): void {\n const ids = new Set<Key>();\n for (const item of items) {\n if (typeof item.id !== \"string\" || item.id.trim().length === 0) {\n throw new TypeError(\"Selection item id must not be empty\");\n }\n if (typeof item.label !== \"string\" || item.label.trim().length === 0) {\n throw new TypeError(`Selection item ${item.id} label must not be empty`);\n }\n if (\n item.description !== undefined &&\n (typeof item.description !== \"string\" ||\n item.description.trim().length === 0)\n ) {\n throw new TypeError(\n `Selection item ${item.id} description must not be empty when provided`,\n );\n }\n if (ids.has(item.id)) {\n throw new TypeError(`Duplicate selection item id: ${item.id}`);\n }\n ids.add(item.id);\n }\n}\n\nexport function validateCheckboxSelection<Key extends string>(\n items: readonly SelectionItemDescriptor<Key>[],\n current: ReadonlySet<Key>,\n): void {\n validateSelectionItems(items);\n const knownIds = new Set(items.map((item) => item.id));\n for (const selectedId of current) {\n if (!knownIds.has(selectedId)) {\n throw new RangeError(`Selected checkbox must exist: ${selectedId}`);\n }\n }\n}\n\nexport function resolveInitialRadioValue<Key extends string>(\n items: readonly SelectionItemDescriptor<Key>[],\n requestedValue: Key | null | undefined,\n required = false,\n): Key | null {\n validateSelectionItems(items);\n if (requestedValue != null) {\n if (!items.some((item) => item.id === requestedValue)) {\n throw new RangeError(`Selected radio must exist: ${requestedValue}`);\n }\n return requestedValue;\n }\n return required ? (items.find((item) => !item.disabled)?.id ?? null) : null;\n}\n\nexport function validateRadioSelection<Key extends string>(\n items: readonly SelectionItemDescriptor<Key>[],\n current: Key | null,\n): void {\n validateSelectionItems(items);\n if (current != null && !items.some((item) => item.id === current)) {\n throw new RangeError(`Selected radio must exist: ${current}`);\n }\n}\n\n/** Returns the only enabled radio that may enter the Web tab order. */\nexport function resolveRadioTabStop<Key extends string>(\n items: readonly SelectionItemDescriptor<Key>[],\n selectedValue: Key | null,\n): Key | undefined {\n validateSelectionItems(items);\n const selected = items.find((item) => item.id === selectedValue);\n if (selected && !selected.disabled) return selected.id;\n return items.find((item) => !item.disabled)?.id;\n}\n\n/** Reconciles an uncontrolled radio when its selected item leaves the collection. */\nexport function reconcileRadioSelection<Key extends string>(\n items: readonly SelectionItemDescriptor<Key>[],\n current: Key | null,\n required = false,\n): Key | null {\n validateSelectionItems(items);\n if (current != null && items.some((item) => item.id === current)) return current;\n return required ? (items.find((item) => !item.disabled)?.id ?? null) : null;\n}\n\nexport function getSelectionNavigationIntent(\n key: WebKeyboardKey,\n orientation: SelectionOrientation,\n direction: SelectionDirection,\n): SelectionNavigationIntent | undefined {\n if (key === \"Home\") return \"first\";\n if (key === \"End\") return \"last\";\n if (orientation === \"vertical\") {\n if (key === \"ArrowDown\") return \"next\";\n if (key === \"ArrowUp\") return \"previous\";\n return undefined;\n }\n if (key === \"ArrowRight\") return direction === \"rtl\" ? \"previous\" : \"next\";\n if (key === \"ArrowLeft\") return direction === \"rtl\" ? \"next\" : \"previous\";\n return undefined;\n}\n\nexport function getRadioNavigationTarget<Key extends string>(\n items: readonly SelectionItemDescriptor<Key>[],\n currentId: Key | null | undefined,\n intent: SelectionNavigationIntent,\n loop = true,\n): Key | undefined {\n validateSelectionItems(items);\n const enabled = items.filter((item) => !item.disabled);\n if (enabled.length === 0) return undefined;\n if (intent === \"first\") return enabled[0]?.id;\n if (intent === \"last\") return enabled.at(-1)?.id;\n const currentIndex = enabled.findIndex((item) => item.id === currentId);\n if (currentIndex < 0) return enabled[0]?.id;\n const delta = intent === \"next\" ? 1 : -1;\n const nextIndex = currentIndex + delta;\n if (!loop && (nextIndex < 0 || nextIndex >= enabled.length)) return currentId ?? enabled[0]?.id;\n return enabled[(nextIndex + enabled.length) % enabled.length]?.id;\n}\n\n/** Platform-neutral item anatomy shared by Web and native Tabs renderers. */\nexport type TabDescriptor<Key extends string = string> = Readonly<{\n id: Key;\n label: string;\n disabled?: boolean;\n}>;\nexport type ControlledTabsSelection<Key extends string = string> = Readonly<{\n value: Key;\n defaultValue?: never;\n onValueChange(value: Key): void;\n}>;\nexport type UncontrolledTabsSelection<Key extends string = string> = Readonly<{\n value?: never;\n defaultValue?: Key;\n onValueChange?: (value: Key) => void;\n}>;\nexport type TabsSelection<Key extends string = string> =\n | ControlledTabsSelection<Key>\n | UncontrolledTabsSelection<Key>;\nexport type TabNavigationIntent = \"next\" | \"previous\" | \"first\" | \"last\";\n\nexport function getTabNavigationIntent(\n key: WebKeyboardKey,\n orientation: TabsOrientation,\n direction: TabsDirection,\n): TabNavigationIntent | undefined {\n if (key === \"Home\") return \"first\";\n if (key === \"End\") return \"last\";\n if (orientation === \"vertical\") {\n if (key === \"ArrowDown\") return \"next\";\n if (key === \"ArrowUp\") return \"previous\";\n return undefined;\n }\n if (key === \"ArrowRight\") return direction === \"rtl\" ? \"previous\" : \"next\";\n if (key === \"ArrowLeft\") return direction === \"rtl\" ? \"next\" : \"previous\";\n return undefined;\n}\n\n/** Validates collection identity and resolves the only safe initial selection. */\nexport function resolveInitialTabValue<Key extends string>(\n items: readonly TabDescriptor<Key>[],\n requestedValue?: Key,\n): Key | undefined {\n const ids = new Set<Key>();\n for (const item of items) {\n if (ids.has(item.id)) {\n throw new TypeError(`Duplicate tab id: ${item.id}`);\n }\n ids.add(item.id);\n }\n if (requestedValue !== undefined) {\n const requested = items.find((item) => item.id === requestedValue);\n if (!requested || requested.disabled) {\n throw new RangeError(`Selected tab must exist and be enabled: ${requestedValue}`);\n }\n return requestedValue;\n }\n return items.find((item) => !item.disabled)?.id;\n}\n\n/** Shared roving-focus math; renderers still own DOM/native focus APIs. */\nexport function getTabNavigationTarget<Key extends string>(\n items: readonly TabDescriptor<Key>[],\n currentId: Key,\n intent: TabNavigationIntent,\n loop = true,\n): Key | undefined {\n const enabled = items.filter((item) => !item.disabled);\n if (enabled.length === 0) return undefined;\n if (intent === \"first\") return enabled[0]?.id;\n if (intent === \"last\") return enabled.at(-1)?.id;\n const currentIndex = enabled.findIndex((item) => item.id === currentId);\n if (currentIndex < 0) return enabled[0]?.id;\n const delta = intent === \"next\" ? 1 : -1;\n const nextIndex = currentIndex + delta;\n if (!loop && (nextIndex < 0 || nextIndex >= enabled.length)) return currentId;\n return enabled[(nextIndex + enabled.length) % enabled.length]?.id;\n}\n\nexport type BehaviorStateAxis =\n | \"interaction\"\n | \"availability\"\n | \"value\"\n | \"validation\"\n | \"content\";\n\nexport type WebKeyboardKey =\n | \"Tab\"\n | \"Enter\"\n | \"Space\"\n | \"Escape\"\n | \"ArrowUp\"\n | \"ArrowDown\"\n | \"ArrowLeft\"\n | \"ArrowRight\"\n | \"Home\"\n | \"End\"\n | \"PageUp\"\n | \"PageDown\"\n | \"F8\"\n | \"Typeahead\";\n\nexport type NativeAccessibilityState =\n | \"disabled\"\n | \"selected\"\n | \"checked\"\n | \"busy\"\n | \"expanded\";\n\nexport type BehaviorContract = Readonly<{\n /** Controlled/uncontrolled state triplets only. */\n controlled: readonly string[];\n /** Read-only inputs which do not form a controlled state axis. */\n inputs?: readonly string[];\n /** Emitted events which do not themselves own state. */\n events?: readonly string[];\n configuration?: Readonly<Record<string, readonly string[]>>;\n defaults?: Readonly<Record<string, string | number | boolean>>;\n stateAxes: Readonly<Partial<Record<BehaviorStateAxis, readonly string[]>>>;\n web: Readonly<{\n roles: readonly string[];\n keyboard: readonly WebKeyboardKey[];\n focus:\n | \"native\"\n | \"roving\"\n | \"activeDescendant\"\n | \"trap\"\n | \"restore\"\n | \"none\";\n dismiss?: readonly (\n | \"escape\"\n | \"outside\"\n | \"selection\"\n | \"blur\"\n | \"timeout\"\n | \"action\"\n | \"close-action\"\n | \"swipe\"\n | \"programmatic\"\n )[];\n }>;\n native: Readonly<{\n roles: readonly string[];\n states: readonly NativeAccessibilityState[];\n actions: readonly string[];\n dismiss?: readonly (\n | \"back\"\n | \"swipe\"\n | \"outside\"\n | \"selection\"\n | \"timeout\"\n | \"action\"\n | \"close-action\"\n | \"programmatic\"\n )[];\n }>;\n scenarios: readonly string[];\n}>;\n\n/** Safe behavior defaults: automatic activation is opt-in for instant panels. */\nexport const tabsBehaviorDefaults = {\n activationMode: \"manual\",\n mountPolicy: \"active\",\n panelMode: \"keyed\",\n orientation: \"horizontal\",\n direction: \"ltr\",\n loop: true,\n} as const satisfies Readonly<{\n activationMode: TabsActivationMode;\n mountPolicy: TabsMountPolicy;\n panelMode: TabsPanelMode;\n orientation: TabsOrientation;\n direction: TabsDirection;\n loop: boolean;\n}>;\n\n/**\n * Behavior is data, not a React implementation. Web/RN renderers can use any\n * suitable primitive while running the same scenarios and exposing the same\n * controlled state names.\n */\nexport const behaviorRegistry = {\n link: {\n controlled: [],\n inputs: [\"destination\", \"label\"],\n stateAxes: {\n interaction: [\"idle\", \"hover\", \"focusVisible\", \"pressed\"],\n },\n web: {\n roles: [\"link\"],\n keyboard: [\"Tab\", \"Enter\"],\n focus: \"native\",\n },\n native: {\n roles: [\"link\"],\n states: [],\n actions: [\"activate\"],\n },\n scenarios: [\n \"href-is-the-destination-source-of-truth\",\n \"web-renders-a-real-anchor-and-preserves-modifier-context-navigation\",\n \"native-internal-destination-uses-router-link-semantics\",\n \"native-external-destination-uses-platform-linking-and-reports-failure\",\n \"link-never-exposes-disabled-action-or-visited-application-state\",\n \"download-remains-a-separate-platform-workflow\",\n \"visible-label-owns-one-accessible-name\",\n \"leading-and-trailing-icons-are-decorative-semantic-icons\",\n \"logical-icon-direction-follows-rtl\",\n \"inline-link-has-a-persistent-non-color-cue\",\n \"standalone-link-target-is-at-least-forty-four-units\",\n \"destination-link-never-contains-another-interactive-descendant\",\n ],\n },\n field: {\n controlled: [\"value\", \"defaultValue\", \"onValueChange\"],\n stateAxes: {\n availability: [\"enabled\", \"disabled\", \"readOnly\"],\n validation: [\"valid\", \"invalid\"],\n content: [\"idle\", \"loading\", \"error\"],\n },\n web: { roles: [\"textbox\"], keyboard: [\"Tab\"], focus: \"native\" },\n native: { roles: [\"text\"], states: [\"disabled\"], actions: [\"focus\", \"setText\"] },\n scenarios: [\"label-description-error-linkage\", \"invalid-plus-focus\", \"disabled-suppresses-edit\"],\n },\n searchField: {\n controlled: [\"value\", \"defaultValue\", \"onValueChange\", \"onClear\"],\n stateAxes: {\n availability: [\"enabled\", \"disabled\", \"busy\"],\n value: [\"empty\", \"filled\"],\n validation: [\"valid\", \"invalid\"],\n content: [\"idle\", \"loading\", \"error\"],\n },\n web: { roles: [\"searchbox\", \"button\"], keyboard: [\"Tab\", \"Enter\"], focus: \"native\" },\n native: { roles: [\"text\", \"button\"], states: [\"disabled\", \"busy\"], actions: [\"focus\", \"setText\", \"clear\"] },\n scenarios: [\"clear-has-name\", \"empty-hides-clear\", \"invalid-plus-focus\", \"busy-preserves-query\"],\n },\n checkbox: {\n controlled: [\"checked\", \"defaultChecked\", \"onCheckedChange\"],\n configuration: { mixedActivation: [\"check\", \"uncheck\"] },\n defaults: checkboxBehaviorDefaults,\n stateAxes: {\n availability: [\"enabled\", \"disabled\", \"readOnly\"],\n value: [\"checked\", \"mixed\"],\n validation: [\"valid\", \"invalid\"],\n },\n web: { roles: [\"checkbox\"], keyboard: [\"Tab\", \"Space\"], focus: \"native\" },\n native: {\n roles: [\"checkbox\"],\n states: [\"disabled\", \"checked\"],\n actions: [\"activate\"],\n },\n scenarios: [\n \"visible-label-is-accessible-name\",\n \"mixed-is-announced-and-activates-to-default\",\n \"disabled-and-read-only-suppress-change\",\n \"controlled-value-never-mutates-internally\",\n \"required-and-invalid-support-are-linked\",\n ],\n },\n checkboxGroup: {\n controlled: [\"value\", \"defaultValue\", \"onValueChange\"],\n configuration: {\n orientation: [\"horizontal\", \"vertical\"],\n direction: [\"ltr\", \"rtl\"],\n },\n defaults: selectionGroupBehaviorDefaults,\n stateAxes: {\n availability: [\"enabled\", \"disabled\", \"readOnly\"],\n value: [\"checked\"],\n validation: [\"valid\", \"invalid\"],\n },\n web: {\n roles: [\"group\", \"checkbox\"],\n keyboard: [\"Tab\", \"Space\"],\n focus: \"native\",\n },\n native: {\n roles: [\"checkbox\"],\n states: [\"disabled\", \"checked\"],\n actions: [\"activate\"],\n },\n scenarios: [\n \"each-enabled-checkbox-is-a-tab-stop\",\n \"space-toggles-only-focused-checkbox\",\n \"group-label-description-and-error-are-linked\",\n \"disabled-selected-item-is-retained-but-not-activated\",\n \"change-emits-a-fresh-set\",\n \"duplicate-and-unknown-ids-are-rejected\",\n \"uncontrolled-selection-reconciles-collection-mutation\",\n \"required-and-invalid-are-announced\",\n \"no-nested-interactive-descendants\",\n ],\n },\n radioGroup: {\n controlled: [\"value\", \"defaultValue\", \"onValueChange\"],\n configuration: {\n orientation: [\"horizontal\", \"vertical\"],\n direction: [\"ltr\", \"rtl\"],\n loop: [\"true\", \"false\"],\n },\n defaults: radioGroupBehaviorDefaults,\n stateAxes: {\n availability: [\"enabled\", \"disabled\", \"readOnly\"],\n value: [\"checked\", \"selected\"],\n validation: [\"valid\", \"invalid\"],\n },\n web: {\n roles: [\"radiogroup\", \"radio\"],\n keyboard: [\n \"Tab\",\n \"Space\",\n \"ArrowUp\",\n \"ArrowDown\",\n \"ArrowLeft\",\n \"ArrowRight\",\n \"Home\",\n \"End\",\n ],\n focus: \"roving\",\n },\n native: {\n roles: [\"radio\"],\n states: [\"disabled\", \"checked\"],\n actions: [\"activate\"],\n },\n scenarios: [\n \"at-most-one-selection-and-nullable-initial-value\",\n \"checked-or-first-enabled-is-the-only-tab-stop\",\n \"arrow-focuses-and-selects-while-skipping-disabled\",\n \"orientation-direction-and-loop-control-navigation\",\n \"space-selects-focused-radio\",\n \"group-label-description-and-error-are-linked\",\n \"disabled-selected-item-is-retained-with-enabled-tab-stop\",\n \"required-invalid-and-read-only-are-announced\",\n \"controlled-value-never-mutates-internally\",\n \"duplicate-and-unknown-ids-are-rejected\",\n ],\n },\n switch: {\n controlled: [\"checked\", \"defaultChecked\", \"onCheckedChange\"],\n stateAxes: { availability: [\"enabled\", \"disabled\"], value: [\"checked\"] },\n web: { roles: [\"switch\"], keyboard: [\"Tab\", \"Space\"], focus: \"native\" },\n native: { roles: [\"switch\"], states: [\"disabled\", \"checked\"], actions: [\"activate\"] },\n scenarios: [\"row-and-control-are-one-target\", \"checked-announced\", \"disabled-suppresses-change\"],\n },\n segmentedControl: {\n controlled: [\"value\", \"defaultValue\", \"onValueChange\"],\n stateAxes: { availability: [\"enabled\", \"disabled\"], value: [\"selected\"] },\n web: { roles: [\"radiogroup\", \"radio\"], keyboard: [\"Tab\", \"ArrowLeft\", \"ArrowRight\", \"ArrowUp\", \"ArrowDown\", \"Home\", \"End\"], focus: \"roving\" },\n native: { roles: [\"radio\"], states: [\"disabled\", \"checked\"], actions: [\"activate\"] },\n scenarios: [\"exactly-one-selected\", \"one-tab-stop\", \"arrow-selection\", \"selected-plus-focus\"],\n },\n chip: {\n controlled: [\"selected\", \"onPress\"],\n stateAxes: {\n availability: [\"enabled\", \"disabled\"],\n value: [\"selected\"],\n },\n web: {\n roles: [\"button\", \"radio\", \"checkbox\"],\n keyboard: [\"Tab\", \"Enter\", \"Space\"],\n focus: \"native\",\n },\n native: {\n roles: [\"button\", \"radio\", \"checkbox\"],\n states: [\"disabled\", \"checked\"],\n actions: [\"activate\"],\n },\n scenarios: [\n \"action-never-exposes-selection\",\n \"single-selection-uses-radio-checked\",\n \"multiple-selection-uses-checkbox-checked\",\n \"selected-plus-focus\",\n \"selection-indicator-is-not-color-only\",\n \"single-mode-composes-radio-group-behavior\",\n \"multiple-mode-composes-checkbox-group-behavior\",\n ],\n },\n tabs: {\n controlled: [\"value\", \"defaultValue\", \"onValueChange\"],\n configuration: {\n activationMode: [\"automatic\", \"manual\"],\n mountPolicy: [\"active\", \"visited\", \"always\"],\n panelMode: [\"keyed\", \"dynamic\"],\n orientation: [\"horizontal\", \"vertical\"],\n direction: [\"ltr\", \"rtl\"],\n loop: [\"true\", \"false\"],\n },\n defaults: tabsBehaviorDefaults,\n stateAxes: { availability: [\"enabled\", \"disabled\"], value: [\"selected\"] },\n web: { roles: [\"tablist\", \"tab\", \"tabpanel\"], keyboard: [\"Tab\", \"Enter\", \"Space\", \"ArrowUp\", \"ArrowDown\", \"ArrowLeft\", \"ArrowRight\", \"Home\", \"End\"], focus: \"roving\" },\n native: { roles: [\"tab\"], states: [\"disabled\", \"selected\"], actions: [\"activate\"] },\n scenarios: [\n \"tab-controls-panel\",\n \"one-tab-stop\",\n \"disabled-tab-skipped\",\n \"selected-plus-focus\",\n \"automatic-activation-only-for-instant-panels\",\n \"manual-activation-keeps-focus-and-selection-distinct\",\n \"active-mount-removes-inactive-panel\",\n \"always-mount-makes-inactive-panels-inert\",\n \"visited-mount-preserves-visited-panel-state\",\n \"horizontal-arrows-do-not-consume-up-down\",\n \"vertical-arrows-and-aria-orientation\",\n \"web-tablist-has-accessible-name\",\n \"every-tab-controls-an-existing-panel\",\n \"active-panel-labelled-by-selected-tab\",\n \"manual-focus-does-not-relabel-dynamic-panel\",\n \"dynamic-panel-preserves-host-instance\",\n \"dynamic-panel-requires-active-mount\",\n \"panel-enters-tab-order-when-content-has-no-focus-target\",\n \"rtl-navigation-follows-logical-direction\",\n \"first-enabled-tab-is-uncontrolled-default\",\n \"duplicate-and-disabled-selection-are-rejected\",\n \"controlled-selection-never-mutates-internally\",\n \"native-focus-does-not-select-without-activate\",\n \"inactive-mounted-panels-are-hidden-and-inert\",\n \"uncontrolled-selection-reconciles-collection-mutation\",\n ],\n },\n bottomNavigation: {\n controlled: [],\n inputs: [\"items\", \"selectedKey\", \"accessibilityLabel\"],\n events: [\"onActivate\", \"onLongPress\"],\n configuration: {\n direction: [\"ltr\", \"rtl\"],\n keyboardBehavior: [\"hide\", \"remain\"],\n },\n defaults: bottomNavigationBehaviorDefaults,\n stateAxes: {\n interaction: [\"idle\", \"hover\", \"focusVisible\", \"pressed\"],\n availability: [\"enabled\", \"disabled\"],\n value: [\"selected\"],\n },\n web: {\n roles: [\"navigation\", \"list\", \"link\"],\n keyboard: [\"Tab\", \"Enter\"],\n focus: \"native\",\n },\n native: {\n roles: [\"tab\", \"button\"],\n states: [\"disabled\", \"selected\"],\n actions: [\"activate\", \"longpress\"],\n },\n scenarios: [\n \"two-to-five-stable-top-level-destinations\",\n \"router-selected-key-is-read-only-input\",\n \"activation-does-not-select-before-router-commit\",\n \"prevented-or-failed-navigation-keeps-current-selection\",\n \"reselect-is-distinct-from-navigation\",\n \"navigator-preserves-each-destination-state\",\n \"disabled-destination-suppresses-activation\",\n \"visible-label-always-names-a-decorative-icon\",\n \"selected-state-uses-icon-emphasis-and-label-weight-not-color-alone\",\n \"selected-content-and-focus-indicator-remain-simultaneously-visible\",\n \"centered-sibling-action-is-excluded-from-destination-collection\",\n \"badge-zero-is-hidden-and-visible-count-is-bounded\",\n \"badge-subtree-is-hidden-and-item-uses-one-resolved-accessibility-name\",\n \"badge-update-does-not-change-focus-selection-or-live-announce\",\n \"web-uses-a-labelled-navigation-landmark-and-real-links\",\n \"web-current-link-uses-aria-current-page\",\n \"web-preserves-modifier-click-and-does-not-use-tab-roles-or-roving-focus\",\n \"native-emits-tab-press-and-respects-default-prevented-before-navigation\",\n \"native-forwards-tab-long-press\",\n \"native-ios-may-use-button-plus-selected-when-tab-role-is-not-reliably-supported\",\n \"safe-area-padding-is-additive\",\n \"software-keyboard-hides-instead-of-lifting-the-navigation\",\n \"two-hundred-percent-text-wraps-without-fixed-item-height\",\n \"rtl-order-and-badge-anchor-follow-logical-direction\",\n \"targets-are-at-least-forty-four-units\",\n \"reduced-motion-removes-transform-without-changing-state\",\n ],\n },\n disclosureGroup: {\n controlled: [\"expandedKeys\", \"defaultExpandedKeys\", \"onExpandedChange\"],\n stateAxes: { availability: [\"enabled\", \"disabled\"], value: [\"expanded\"] },\n web: { roles: [\"heading\", \"button\", \"region\"], keyboard: [\"Tab\", \"Enter\", \"Space\", \"ArrowUp\", \"ArrowDown\", \"Home\", \"End\"], focus: \"native\" },\n native: { roles: [\"button\"], states: [\"disabled\", \"expanded\"], actions: [\"activate\"] },\n scenarios: [\n \"single-and-multiple-invariants\",\n \"each-enabled-trigger-is-a-tab-stop\",\n \"toggle-keeps-trigger-focus\",\n \"panel-removed-when-collapsed\",\n \"disabled-trigger-suppresses-change\",\n \"reduced-motion\",\n ],\n },\n menu: {\n controlled: [\n \"open\",\n \"defaultOpen\",\n \"onOpenChange\",\n \"onAction\",\n \"onActionAfterDismiss\",\n \"selection\",\n \"asyncState\",\n ],\n stateAxes: { availability: [\"enabled\", \"disabled\"], value: [\"open\", \"selected\"], content: [\"idle\", \"loading\", \"loadingMore\", \"empty\", \"error\"] },\n web: { roles: [\"menu\", \"menuitem\", \"menuitemradio\", \"menuitemcheckbox\"], keyboard: [\"Enter\", \"Space\", \"Escape\", \"ArrowUp\", \"ArrowDown\", \"Home\", \"End\", \"Typeahead\"], focus: \"restore\", dismiss: [\"escape\", \"outside\", \"selection\"] },\n native: { roles: [\"menu\", \"menuitem\"], states: [\"disabled\", \"selected\", \"checked\"], actions: [\"activate\"], dismiss: [\"back\", \"outside\", \"selection\"] },\n scenarios: [\n \"action-and-single-close-after-selection\",\n \"on-action-does-not-depend-on-controlled-close\",\n \"after-dismiss-action-sequences-next-surface\",\n \"multiple-selection-keeps-menu-open\",\n \"disabled-item-skipped\",\n \"escape-or-back-restores-trigger\",\n \"danger-item-not-color-only\",\n \"loading-more-preserves-items-and-selection\",\n ],\n },\n dialog: {\n controlled: [\"open\", \"defaultOpen\", \"onOpenChange\"],\n stateAxes: { availability: [\"enabled\", \"busy\"], value: [\"open\"] },\n web: { roles: [\"dialog\"], keyboard: [\"Tab\", \"Escape\"], focus: \"trap\", dismiss: [\"escape\", \"outside\"] },\n native: { roles: [\"dialog\"], states: [\"busy\"], actions: [\"dismiss\"], dismiss: [\"back\", \"outside\"] },\n scenarios: [\"title-description-linkage\", \"focus-trap-and-restore\", \"modal-isolation\", \"single-dismiss-callback\"],\n },\n alertDialog: {\n controlled: [\"open\", \"defaultOpen\", \"onOpenChange\"],\n stateAxes: { availability: [\"enabled\", \"busy\"], value: [\"open\"], content: [\"idle\", \"loading\", \"error\"] },\n web: { roles: [\"alertdialog\"], keyboard: [\"Tab\", \"Escape\"], focus: \"trap\", dismiss: [\"escape\"] },\n native: { roles: [\"alertdialog\"], states: [\"busy\"], actions: [\"confirm\", \"cancel\"], dismiss: [\"back\"] },\n scenarios: [\n \"visible-title-and-description-are-announced\",\n \"modal-isolation-and-tab-trap\",\n \"confirm-mode-cancel-is-initial-focus\",\n \"alert-mode-confirm-is-initial-focus\",\n \"outside-attempt-is-ignored-without-callback\",\n \"escape-or-back-cancels-when-idle\",\n \"busy-blocks-every-dismiss-and-duplicate-confirm\",\n \"confirm-action-runs-once\",\n \"error-is-announced-and-dialog-stays-open\",\n \"controlled-close-settles-programmatic-cancel\",\n \"unmount-settles-interrupted\",\n \"result-settles-once-after-exit\",\n \"focus-restores-after-every-close-path\",\n \"reduced-motion-still-completes-exit\",\n ],\n },\n sheet: {\n controlled: [\"open\", \"defaultOpen\", \"onOpenChange\", \"dismissPolicy\"],\n defaults: sheetBehaviorDefaults,\n stateAxes: { availability: [\"enabled\", \"busy\"], value: [\"open\"] },\n web: { roles: [\"dialog\"], keyboard: [\"Tab\", \"Escape\"], focus: \"trap\", dismiss: [\"escape\", \"outside\"] },\n native: { roles: [\"dialog\"], states: [\"busy\"], actions: [\"dismiss\"], dismiss: [\"back\", \"outside\"] },\n scenarios: [\n \"focus-or-modal-isolation\",\n \"scroll-lock\",\n \"safe-area\",\n \"single-dismiss-callback\",\n \"busy-blocks-dismiss\",\n \"dismiss-reason-is-reported\",\n \"programmatic-owner-close-is-always-allowed\",\n \"swipe-requires-enabled-policy-and-gesture-capability\",\n \"successor-surface-opens-after-exit\",\n \"nested-modal-surfaces-are-forbidden\",\n \"reduced-motion-still-completes-dismiss\",\n ],\n },\n select: {\n controlled: [\n \"selectedKey\",\n \"defaultSelectedKey\",\n \"onSelectionChange\",\n \"open\",\n \"defaultOpen\",\n \"onOpenChange\",\n ],\n inputs: [\"asyncState\", \"selectedItem\"],\n configuration: {\n disallowEmptySelection: [\"true\", \"false\"],\n loop: [\"true\", \"false\"],\n },\n defaults: selectBehaviorDefaults,\n stateAxes: {\n availability: [\"enabled\", \"disabled\", \"readOnly\", \"busy\"],\n value: [\"empty\", \"selected\", \"open\"],\n validation: [\"valid\", \"invalid\"],\n content: [\"idle\", \"loading\", \"loadingMore\", \"empty\", \"error\"],\n },\n web: {\n roles: [\"combobox\", \"listbox\", \"option\"],\n keyboard: [\n \"Tab\",\n \"Enter\",\n \"Space\",\n \"Escape\",\n \"ArrowUp\",\n \"ArrowDown\",\n \"Home\",\n \"End\",\n \"Typeahead\",\n ],\n focus: \"activeDescendant\",\n dismiss: [\"selection\", \"escape\", \"outside\", \"blur\"],\n },\n native: {\n roles: [\"button\", \"dialog\", \"radio\"],\n states: [\"disabled\", \"checked\", \"busy\", \"expanded\"],\n actions: [\"activate\", \"dismiss\"],\n dismiss: [\"selection\", \"back\", \"outside\"],\n },\n scenarios: [\n \"visible-label-or-accessibility-label-names-trigger\",\n \"collection-ids-and-text-values-are-validated\",\n \"highlighted-option-is-distinct-from-committed-selection\",\n \"trigger-controls-the-mounted-listbox\",\n \"active-descendant-references-a-mounted-option\",\n \"active-option-scrolls-into-view\",\n \"disabled-options-are-skipped\",\n \"escape-closes-without-commit\",\n \"selection-requests-close-and-restores-trigger-focus\",\n \"controlled-owner-may-defer-a-selection-close-request\",\n \"removed-selection-is-reconciled\",\n \"loading-more-preserves-options-and-selection\",\n \"transient-async-pages-preserve-committed-key-and-copy\",\n \"empty-error-and-loading-are-announced\",\n \"options-have-no-nested-interactive-descendants\",\n ],\n },\n combobox: {\n controlled: [\n \"selectedKey\",\n \"defaultSelectedKey\",\n \"onSelectionChange\",\n \"inputValue\",\n \"defaultInputValue\",\n \"onInputValueChange\",\n \"open\",\n \"defaultOpen\",\n \"onOpenChange\",\n ],\n inputs: [\"asyncState\", \"queryValue\", \"resultQuery\", \"selectedItem\"],\n events: [\"onCommit\"],\n configuration: {\n filtering: [\"local\", \"external\"],\n loop: [\"true\", \"false\"],\n },\n defaults: comboboxBehaviorDefaults,\n stateAxes: {\n availability: [\"enabled\", \"disabled\", \"readOnly\", \"busy\"],\n value: [\"empty\", \"filled\", \"selected\", \"open\"],\n validation: [\"valid\", \"invalid\"],\n content: [\"idle\", \"loading\", \"loadingMore\", \"empty\", \"error\"],\n },\n web: {\n roles: [\"combobox\", \"listbox\", \"option\"],\n keyboard: [\n \"Tab\",\n \"Enter\",\n \"Escape\",\n \"ArrowUp\",\n \"ArrowDown\",\n \"Home\",\n \"End\",\n ],\n focus: \"activeDescendant\",\n dismiss: [\"selection\", \"escape\", \"outside\", \"blur\"],\n },\n native: {\n roles: [\"button\", \"text\", \"dialog\", \"radio\"],\n states: [\"disabled\", \"checked\", \"busy\", \"expanded\"],\n actions: [\"focus\", \"setText\", \"activate\", \"dismiss\"],\n dismiss: [\"selection\", \"back\", \"outside\"],\n },\n scenarios: [\n \"selected-key-and-input-value-are-independent\",\n \"input-focus-and-active-option-are-distinct\",\n \"input-controls-the-mounted-listbox\",\n \"active-descendant-references-a-mounted-option\",\n \"active-option-scrolls-into-view\",\n \"ime-composition-does-not-prematurely-filter-or-commit\",\n \"escape-restores-the-committed-label\",\n \"query-edit-never-commits-a-stale-selection\",\n \"external-results-do-not-implicitly-commit\",\n \"committed-item-survives-transient-result-pages\",\n \"stale-external-results-do-not-replace-current-query\",\n \"loading-more-preserves-options-and-active-descendant\",\n \"empty-error-and-loading-are-announced\",\n \"custom-values-are-rejected-without-an-explicit-policy\",\n \"selection-state-updates-before-commit-event-and-close-request\",\n \"options-have-no-nested-interactive-descendants\",\n ],\n },\n toast: {\n controlled: [],\n inputs: [\"descriptor\", \"queueSnapshot\", \"visibleSnapshot\"],\n events: [\"onAction\", \"onDismiss\"],\n configuration: {\n priority: [\"normal\", \"high\"],\n duplicatePolicy: [\"update\", \"ignore\"],\n timerUpdatePolicy: [\"preserve\", \"restart\"],\n overflowPolicy: [\"discard-oldest\", \"discard-newest\"],\n },\n defaults: toastBehaviorDefaults,\n stateAxes: {\n value: [\"open\"],\n content: [\"idle\"],\n },\n web: {\n roles: [\"region\", \"status\", \"alert\", \"button\"],\n keyboard: [\"Tab\", \"Enter\", \"Space\", \"Escape\", \"F8\"],\n focus: \"native\",\n dismiss: [\"timeout\", \"action\", \"close-action\", \"escape\", \"swipe\", \"programmatic\"],\n },\n native: {\n roles: [\"alert\", \"button\"],\n states: [],\n actions: [\"announce\", \"activate\", \"dismiss\"],\n dismiss: [\"timeout\", \"action\", \"close-action\", \"swipe\", \"programmatic\"],\n },\n scenarios: [\n \"stable-id-duplicate-updates-in-place-without-reordering\",\n \"bounded-queue-promotes-items-in-fifo-order\",\n \"queued-time-never-consumes-auto-dismiss-duration\",\n \"visible-timer-pauses-for-pointer-focus-window-and-gesture\",\n \"actionable-toast-is-persistent-unless-duration-is-explicit\",\n \"auto-dismiss-duration-is-never-shorter-than-five-seconds\",\n \"action-and-dismiss-callbacks-run-exactly-once\",\n \"programmatic-close-reports-its-own-dismiss-reason\",\n \"normal-and-high-announcements-use-the-visible-copy-or-explicit-override\",\n \"tone-is-always-paired-with-a-non-color-mark\",\n \"web-hotkey-focuses-the-labelled-viewport-and-last-close-restores-focus\",\n \"exit-completes-once-with-and-without-reduced-motion\",\n \"provider-teardown-interrupts-every-session-without-leaking-a-timer\",\n ],\n },\n loadMore: {\n controlled: [],\n inputs: [\"state\", \"labels\"],\n events: [\"onLoadMore\"],\n configuration: { mode: [\"automatic\", \"manual\"] },\n defaults: loadMoreBehaviorDefaults,\n stateAxes: {\n availability: [\"enabled\", \"busy\"],\n content: [\"idle\", \"loadingMore\", \"error\", \"complete\"],\n },\n web: {\n roles: [\"status\", \"alert\", \"button\"],\n keyboard: [\"Tab\", \"Enter\", \"Space\"],\n focus: \"native\",\n },\n native: {\n roles: [\"progressbar\", \"alert\", \"button\"],\n states: [\"busy\", \"disabled\"],\n actions: [\"activate\"],\n },\n scenarios: [\n \"existing-items-remain-mounted-in-every-footer-state\",\n \"automatic-viewport-request-has-an-accessible-manual-fallback\",\n \"one-request-is-in-flight-per-controller\",\n \"same-request-key-is-never-issued-twice-concurrently\",\n \"loading-and-complete-states-block-new-requests\",\n \"error-state-retries-only-with-retry-reason\",\n \"loading-status-and-error-alert-announce-once\",\n \"retry-and-manual-targets-are-at-least-forty-four-units\",\n ],\n },\n tooltip: {\n controlled: [\"open\", \"defaultOpen\", \"onOpenChange\"],\n inputs: [\"content\"],\n configuration: {\n placement: [\"top\", \"bottom\", \"start\", \"end\"],\n align: [\"start\", \"center\", \"end\"],\n },\n defaults: tooltipBehaviorDefaults,\n stateAxes: {\n interaction: [\"idle\", \"hover\", \"focusVisible\"],\n value: [\"open\"],\n },\n web: {\n roles: [\"tooltip\"],\n keyboard: [\"Tab\", \"Escape\"],\n focus: \"none\",\n dismiss: [\"escape\", \"blur\"],\n },\n native: { roles: [], states: [], actions: [] },\n scenarios: [\n \"plain-localized-copy-never-contains-interaction\",\n \"keyboard-focus-opens-immediately-and-pointer-respects-delay\",\n \"recent-sibling-tooltip-uses-skip-delay\",\n \"one-tooltip-is-visible-per-provider\",\n \"trigger-content-hover-and-pointer-corridor-keep-open\",\n \"escape-dismisses-and-suppresses-reopen-until-input-reset\",\n \"blur-or-pointer-leave-closes-only-after-all-active-inputs-end\",\n \"trigger-activation-closes-without-cancelling-trigger-action\",\n \"trigger-keeps-focus-and-tooltip-has-no-tab-stop\",\n \"existing-aria-describedby-is-preserved\",\n \"touch-pointer-hover-is-ignored\",\n \"controlled-close-rejection-never-exposes-two-tooltips\",\n \"timer-and-global-listener-cleanup-on-unmount\",\n \"reduced-motion-exit-completes-exactly-once\",\n ],\n },\n breadcrumb: breadcrumbBehaviorSpec,\n calendar: calendarBehavior,\n carousel: carouselBehavior,\n commandPalette: {\n controlled: [\n \"open\",\n \"defaultOpen\",\n \"onOpenChange\",\n \"inputValue\",\n \"defaultInputValue\",\n \"onInputValueChange\",\n ],\n inputs: [\"queryValue\", \"resultQuery\", \"asyncState\", \"accessibilityLabel\", \"searchPlaceholder\"],\n events: [\"onActivate\", \"onActivateAfterDismiss\"],\n stateAxes: { value: [\"open\"], content: [\"idle\", \"loading\", \"loadingMore\", \"empty\", \"error\"] },\n // 저작자 명세의 dismiss 사유 \"activation\"은 채택하지 않았다. 같은 뜻의 \"action\"이\n // 이미 유니언에 있고(Menu가 onAction으로 쓴다), 공용 어휘에 동의어를 하나 더 두면\n // 렌더러가 둘을 구별해야 하는지 매번 물어야 한다.\n web: { roles: [\"dialog\", \"listbox\", \"option\"], keyboard: [\"Tab\", \"Enter\", \"Escape\", \"ArrowUp\", \"ArrowDown\"], focus: \"trap\", dismiss: [\"escape\", \"outside\", \"action\"] },\n native: { roles: [], states: [], actions: [] },\n scenarios: [...commandPaletteBehaviorScenarios],\n },\n floatingActionButton: {\n controlled: [],\n inputs: [\"label\", \"icon\", \"layoutMode\", \"scrollSignal\", \"safeAreaInset\"],\n events: [\"onPress\"],\n stateAxes: { interaction: [\"idle\", \"hover\", \"pressed\", \"focusVisible\"] },\n web: { roles: [\"button\"], keyboard: [\"Tab\", \"Enter\", \"Space\"], focus: \"native\" },\n native: { roles: [\"button\"], states: [], actions: [\"activate\"] },\n scenarios: [...floatingActionButtonBehaviorScenarios],\n },\n // 이 항목은 `transfer-list.ts`에서 import하지 않고 여기에 직접 쓴다. 그 모듈은\n // 이 파일에서 **값**을(getCheckboxNextState 등) 가져오므로, 여기서 되받으면\n // 실제 순환이 닫혀 레지스트리가 undefined를 담는다(타입만 가져오는\n // data-table과 다른 점이다). 두 정의가 어긋나지 않는지는 테스트로 잠근다.\n transferList: {\n controlled: [\"targetKeys\", \"defaultTargetKeys\", \"onTargetKeysChange\"],\n inputs: [\"items\"],\n events: [\"onMove\"],\n stateAxes: {\n availability: [\"enabled\", \"disabled\"],\n value: [\"empty\", \"filled\", \"selected\", \"mixed\"],\n },\n web: {\n roles: [\"group\", \"listbox\", \"option\", \"checkbox\", \"button\"],\n keyboard: [\"Tab\", \"Space\", \"Enter\", \"ArrowUp\", \"ArrowDown\", \"Home\", \"End\"],\n focus: \"roving\",\n },\n native: {\n roles: [\"list\", \"checkbox\", \"button\"],\n states: [\"disabled\", \"selected\", \"checked\"],\n actions: [\"toggle\", \"toggleSelectAll\", \"moveSelection\", \"moveItem\"],\n },\n scenarios: [\n \"moving-is-reachable-entirely-by-keyboard-select-with-space-then-activate-the-move-button\",\n \"moving-a-single-focused-row-does-not-require-first-opening-multi-select\",\n \"focus-after-a-move-lands-on-the-item-that-slid-into-the-removed-rows-position\",\n \"focus-after-emptying-a-panel-falls-back-to-its-empty-state-never-lost-to-the-document\",\n \"every-move-emits-which-ids-moved-so-the-product-can-announce-a-formatted-sentence\",\n \"disabled-items-are-never-selectable-and-never-move\",\n \"moved-items-are-cleared-from-the-origin-panels-selection-and-left-unselected-at-the-destination\",\n \"select-all-in-a-panel-excludes-disabled-items-from-both-the-denominator-and-the-count\",\n \"an-item-with-nothing-selected-in-its-panel-still-supports-direct-single-item-move\",\n \"search-and-pagination-inside-a-panel-are-product-composition-not-this-contract\",\n ],\n },\n dataTable: dataTableBehavior,\n tour: {\n controlled: [\"open\", \"defaultOpen\", \"onOpenChange\", \"currentStepId\", \"defaultCurrentStepId\", \"onStepChange\"],\n inputs: [\"steps\", \"labels\", \"anchorId\"],\n events: [\"onClose\"],\n stateAxes: { value: [\"open\", \"currentStep\"] },\n // outside 닫힘이 없다. 실수로 워크스루가 끊기지 않게 하려는 고정 규칙이라\n // 저작자가 policy 객체조차 두지 않았고, 요약에도 그 사실을 그대로 옮긴다.\n web: { roles: [\"dialog\"], keyboard: [\"Tab\", \"Enter\", \"Escape\", \"ArrowLeft\", \"ArrowRight\"], focus: \"trap\", dismiss: [\"escape\", \"close-action\", \"programmatic\"] },\n native: { roles: [], states: [], actions: [] },\n scenarios: [...tourBehaviorScenarios],\n },\n layout: layoutBehavior,\n otpField: otpFieldBehavior,\n passwordField: passwordFieldBehavior,\n splitter: splitterBehavior,\n datePicker: datePickerBehavior,\n sidePanel: sidePanelBehavior,\n filePicker: filePickerBehavior,\n pagination: {\n controlled: [\"currentPage\", \"onPageChange\"],\n inputs: [\"totalCount\", \"totalPages\", \"pageSize\", \"labels\"],\n configuration: { window: [\"siblingCount\", \"boundaryCount\"] },\n stateAxes: {},\n web: {\n roles: [\"navigation\"],\n keyboard: [\"Tab\", \"Enter\", \"Space\"],\n focus: \"native\",\n },\n native: { roles: [], states: [], actions: [] },\n scenarios: [...paginationBehaviorScenarios],\n },\n /*\n 비모달이라 `busy` 축이 없다. Sheet/AlertDialog는 진행 중 dismiss를 막지만 Popover는\n 포커스가 정당하게 밖으로 나갈 수 있어 그 축이 성립하지 않는다 — 대신 나가는 것\n 자체가 dismiss 신호이므로 `outside-focus`를 별도 reason으로 둔다.\n */\n popover: {\n controlled: [\"open\", \"defaultOpen\", \"onOpenChange\"],\n defaults: popoverBehaviorDefaults,\n stateAxes: { value: [\"open\"] },\n /*\n `trap`이 아니라 `restore`다 — Dialog·Sheet·AlertDialog는 모달이라 포커스를 가두지만\n Popover는 비모달이라 Tab이 **정당하게 밖으로 나갈 수 있다.** 그래서 가두지 않고,\n 닫힐 때 트리거로 돌려보낸다. 같은 자리에 있는 것은 Menu다(역시 `restore`).\n 나가는 것 자체가 dismiss 신호이므로 `outside-focus`를 별도 reason으로 둔다.\n */\n web: {\n roles: [\"dialog\"],\n keyboard: [\"Tab\", \"Escape\"],\n focus: \"restore\",\n dismiss: [\"escape\", \"outside\"],\n },\n native: { roles: [], states: [], actions: [] },\n scenarios: [...popoverBehaviorScenarios],\n },\n tree: treeBehavior,\n uploadItem: uploadItemBehavior,\n form: formBehaviorSpec,\n numberField: numberFieldBehavior,\n slider: sliderBehavior,\n} as const satisfies Record<string, BehaviorContract>;\n\nexport type BehaviorName = keyof typeof behaviorRegistry;\n\nexport type CollectionKey = string;\nexport type CollectionItemTone = \"neutral\" | \"danger\";\n\nexport type CollectionItemDescriptor<Key extends CollectionKey = CollectionKey> = Readonly<{\n id: Key;\n label: string;\n textValue: string;\n description?: string;\n shortcut?: string;\n disabled?: boolean;\n tone?: CollectionItemTone;\n}>;\n\n/** Menu-only extension; danger tone and shortcut do not belong to Select. */\nexport type MenuItemDescriptor<\n Key extends CollectionKey = CollectionKey,\n> = CollectionItemDescriptor<Key>;\n\ntype CollectionSectionLabel =\n | Readonly<{ label: string; accessibilityLabel?: string }>\n | Readonly<{ label?: string; accessibilityLabel: string }>;\n\nexport type CollectionSectionDescriptor<\n Key extends CollectionKey = CollectionKey,\n SectionKey extends CollectionKey = CollectionKey,\n> = Readonly<{\n id: SectionKey;\n items: readonly CollectionItemDescriptor<Key>[];\n}> & CollectionSectionLabel;\n\nexport type MenuSectionDescriptor<\n Key extends CollectionKey = CollectionKey,\n SectionKey extends CollectionKey = CollectionKey,\n> = CollectionSectionDescriptor<Key, SectionKey>;\n\nexport type NoSelectionModel = Readonly<{ mode: \"none\" }>;\nexport type SingleSelectionModel<Key extends CollectionKey = CollectionKey> =\n | Readonly<{\n mode: \"single\";\n selectedKey: Key | null;\n defaultSelectedKey?: never;\n onSelectionChange(key: Key | null): void;\n disallowEmptySelection?: boolean;\n }>\n | Readonly<{\n mode: \"single\";\n selectedKey?: never;\n defaultSelectedKey?: Key | null;\n onSelectionChange?: (key: Key | null) => void;\n disallowEmptySelection?: boolean;\n }>;\nexport type MultipleSelectionModel<Key extends CollectionKey = CollectionKey> =\n | Readonly<{\n mode: \"multiple\";\n selectedKeys: ReadonlySet<Key>;\n defaultSelectedKeys?: never;\n onSelectionChange(keys: ReadonlySet<Key>): void;\n }>\n | Readonly<{\n mode: \"multiple\";\n selectedKeys?: never;\n defaultSelectedKeys?: ReadonlySet<Key>;\n onSelectionChange?: (keys: ReadonlySet<Key>) => void;\n }>;\nexport type CollectionSelectionModel<Key extends CollectionKey = CollectionKey> =\n | NoSelectionModel\n | SingleSelectionModel<Key>\n | MultipleSelectionModel<Key>;\n\nexport type AsyncCollectionState =\n | Readonly<{ status: \"idle\" }>\n | Readonly<{ status: \"loading\"; message: string }>\n | Readonly<{ status: \"loadingMore\"; message: string }>\n | Readonly<{ status: \"empty\"; message: string }>\n | Readonly<{ status: \"error\"; message: string }>;\n\n/**\n * Shared input semantics for future Select/Combobox renderers. Web may render a\n * popup while Native renders a sheet, but both consume the same stable keys.\n */\nexport type SelectItemDescriptor<\n Key extends CollectionKey = CollectionKey,\n> = Omit<CollectionItemDescriptor<Key>, \"shortcut\" | \"tone\"> &\n Readonly<{ shortcut?: never; tone?: never }>;\n\nexport type ControlledSelectSelection<\n Key extends CollectionKey = CollectionKey,\n> = Readonly<{\n selectedKey: Key | null;\n defaultSelectedKey?: never;\n onSelectionChange(key: Key | null): void;\n}>;\n\nexport type UncontrolledSelectSelection<\n Key extends CollectionKey = CollectionKey,\n> = Readonly<{\n selectedKey?: never;\n defaultSelectedKey?: Key | null;\n onSelectionChange?: (key: Key | null) => void;\n}>;\n\nexport type SelectSelection<Key extends CollectionKey = CollectionKey> =\n | ControlledSelectSelection<Key>\n | UncontrolledSelectSelection<Key>;\n\nexport type ControlledComboboxInput = Readonly<{\n inputValue: string;\n defaultInputValue?: never;\n onInputValueChange(value: string): void;\n}>;\n\nexport type UncontrolledComboboxInput = Readonly<{\n inputValue?: never;\n defaultInputValue?: string;\n onInputValueChange?: (value: string) => void;\n}>;\n\nexport type ComboboxInput = ControlledComboboxInput | UncontrolledComboboxInput;\n\nexport type ComboboxFiltering = \"local\" | \"external\";\nexport type ComboboxCommitReason =\n | \"selection\"\n | \"clear\";\n"]}
1
+ {"version":3,"file":"behaviors.js","sourceRoot":"","sources":["../src/behaviors.ts"],"names":[],"mappings":"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","sourcesContent":["import { anchorBehavior } from \"./anchor.js\";\nimport { agreementBehavior } from \"./agreement.js\";\nimport { topBehavior } from \"./top.js\";\nimport { authProviderButtonBehavior } from \"./provider-button.js\";\nimport { headingBehavior } from \"./heading.js\";\nimport { toggleGroupBehavior } from \"./toggle-group.js\";\nimport { tagsInputBehavior } from \"./tags-input.js\";\nimport { skipNavBehavior } from \"./skip-nav.js\";\nimport { bottomInfoBehavior } from \"./bottom-info.js\";\nimport { sidebarBehavior } from \"./sidebar.js\";\nimport { nativePlatformBehavior } from \"./native-platform.js\";\nimport { dateRangeBehavior } from \"./date-range.js\";\nimport { textFormatBehavior } from \"./text-formats.js\";\nimport { collapsibleBehavior } from \"./collapsible.js\";\nimport { assetBehavior } from \"./asset.js\";\nimport { menubarBehavior } from \"./menubar.js\";\nimport { contextMenuBehavior } from \"./context-menu.js\";\nimport { sheetBehaviorDefaults } from \"./sheet.js\";\nimport { loadMoreBehaviorDefaults } from \"./load-more.js\";\nimport { toastBehaviorDefaults } from \"./toast.js\";\nimport { bottomNavigationBehaviorDefaults } from \"./bottom-navigation.js\";\nimport { tooltipBehaviorDefaults } from \"./tooltip.js\";\n/*\n Batch 2 저작 모듈의 행동 계약. 각 컴포넌트가 자기 모듈에 spec을 두고 레지스트리는\n 경로만 모은다 — 여러 저작자가 병렬로 이 파일을 고치면 서로의 변경을 덮어쓴다\n (`docs/authoring-brief.md`).\n*/\nimport { breadcrumbBehaviorSpec } from \"./breadcrumb.js\";\nimport { calendarBehavior } from \"./calendar.js\";\nimport { carouselBehavior } from \"./carousel.js\";\nimport { commandPaletteBehaviorScenarios } from \"./command-palette.js\";\nimport { floatingActionButtonBehaviorScenarios } from \"./floating-action-button.js\";\nimport { tourBehaviorScenarios } from \"./tour.js\";\nimport { dataTableBehavior } from \"./data-table.js\";\nimport { layoutBehavior } from \"./layout.js\";\nimport { otpFieldBehavior } from \"./otp-field.js\";\nimport { passwordFieldBehavior } from \"./password-field.js\";\nimport { splitterBehavior } from \"./splitter.js\";\nimport { datePickerBehavior } from \"./date-picker.js\";\nimport { sidePanelBehavior } from \"./side-panel.js\";\nimport { filePickerBehavior } from \"./file-picker.js\";\nimport { paginationBehaviorScenarios } from \"./pagination.js\";\nimport { popoverBehaviorDefaults, popoverBehaviorScenarios } from \"./popover.js\";\nimport { treeBehavior } from \"./tree.js\";\nimport { uploadItemBehavior } from \"./upload-item.js\";\nimport { formBehaviorSpec } from \"./form.js\";\nimport { numberFieldBehavior } from \"./number-field.js\";\nimport { sliderBehavior } from \"./slider.js\";\nimport type { DesignSystemDirection } from \"./design-system-provider.js\";\nimport {\n checkboxBehaviorDefaults,\n type CheckboxState,\n} from \"./selection-helpers.js\";\n\nexport {\n checkboxBehaviorDefaults,\n getCheckboxNextState,\n reconcileCheckboxSelection,\n toggleCheckboxSelection,\n type CheckboxState,\n type MixedCheckboxActivation,\n} from \"./selection-helpers.js\";\n\n/** Platform-neutral behavior vocabulary shared by renderer acceptance tests. */\nexport type InteractionState =\n | \"idle\"\n | \"hover\"\n | \"focusVisible\"\n | \"pressed\"\n | \"dragged\";\nexport type AvailabilityState = \"enabled\" | \"disabled\" | \"readOnly\" | \"busy\";\nexport type ValueState =\n | \"empty\"\n | \"filled\"\n | \"checked\"\n | \"mixed\"\n | \"selected\"\n | \"open\"\n | \"expanded\";\nexport type ValidationState = \"valid\" | \"invalid\";\nexport type ContentState =\n | \"idle\"\n | \"loading\"\n | \"loadingMore\"\n | \"empty\"\n | \"error\"\n | \"complete\";\nexport type TabsActivationMode = \"automatic\" | \"manual\";\nexport type TabsMountPolicy = \"active\" | \"visited\" | \"always\";\nexport type TabsPanelMode = \"keyed\" | \"dynamic\";\nexport type TabsOrientation = \"horizontal\" | \"vertical\";\nexport type TabsDirection = DesignSystemDirection;\n\nexport type SelectionOrientation = \"horizontal\" | \"vertical\";\nexport type SelectionDirection = DesignSystemDirection;\n\n/** Stable option anatomy shared by CheckboxGroup and RadioGroup renderers. */\nexport type SelectionItemDescriptor<Key extends string = string> = Readonly<{\n id: Key;\n label: string;\n description?: string;\n disabled?: boolean;\n}>;\n\n/** A group needs either visible copy or an explicit accessible name. */\nexport type SelectionGroupLabel =\n | Readonly<{ label: string; accessibilityLabel?: string }>\n | Readonly<{ label?: never; accessibilityLabel: string }>;\n\nexport type ControlledCheckboxState = Readonly<{\n checked: CheckboxState;\n defaultChecked?: never;\n onCheckedChange(checked: boolean): void;\n}>;\nexport type UncontrolledCheckboxState = Readonly<{\n checked?: never;\n defaultChecked?: CheckboxState;\n onCheckedChange?: (checked: boolean) => void;\n}>;\nexport type CheckboxSelection = ControlledCheckboxState | UncontrolledCheckboxState;\n\nexport type ControlledCheckboxGroupSelection<Key extends string = string> = Readonly<{\n value: ReadonlySet<Key>;\n defaultValue?: never;\n onValueChange(value: ReadonlySet<Key>): void;\n}>;\nexport type UncontrolledCheckboxGroupSelection<Key extends string = string> = Readonly<{\n value?: never;\n defaultValue?: ReadonlySet<Key>;\n onValueChange?: (value: ReadonlySet<Key>) => void;\n}>;\nexport type CheckboxGroupSelection<Key extends string = string> =\n | ControlledCheckboxGroupSelection<Key>\n | UncontrolledCheckboxGroupSelection<Key>;\n\nexport type ControlledRadioGroupSelection<Key extends string = string> = Readonly<{\n value: Key | null;\n defaultValue?: never;\n onValueChange(value: Key): void;\n}>;\nexport type UncontrolledRadioGroupSelection<Key extends string = string> = Readonly<{\n value?: never;\n defaultValue?: Key | null;\n onValueChange?: (value: Key) => void;\n}>;\nexport type RadioGroupSelection<Key extends string = string> =\n | ControlledRadioGroupSelection<Key>\n | UncontrolledRadioGroupSelection<Key>;\n\nexport type SelectionNavigationIntent = \"next\" | \"previous\" | \"first\" | \"last\";\n\n/** Resolves a renderer's required name while rejecting type-valid blank copy. */\nexport function resolveControlAccessibleName(\n label: string | undefined,\n accessibilityLabel: string | undefined,\n controlName = \"Control\",\n): string {\n if (label !== undefined && (typeof label !== \"string\" || !label.trim())) {\n throw new TypeError(`${controlName} label must not be empty`);\n }\n if (\n accessibilityLabel !== undefined &&\n (typeof accessibilityLabel !== \"string\" || !accessibilityLabel.trim())\n ) {\n throw new TypeError(`${controlName} accessibilityLabel must not be empty`);\n }\n const resolved = accessibilityLabel?.trim() || label?.trim();\n if (!resolved) {\n throw new TypeError(`${controlName} needs an accessible name`);\n }\n return resolved;\n}\n\nexport const selectionGroupBehaviorDefaults = {\n orientation: \"vertical\",\n direction: \"ltr\",\n} as const satisfies Readonly<{\n orientation: SelectionOrientation;\n direction: SelectionDirection;\n}>;\n\nexport const radioGroupBehaviorDefaults = {\n ...selectionGroupBehaviorDefaults,\n loop: true,\n} as const satisfies Readonly<{\n orientation: SelectionOrientation;\n direction: SelectionDirection;\n loop: boolean;\n}>;\n\nexport const selectBehaviorDefaults = {\n disallowEmptySelection: false,\n loop: false,\n} as const satisfies Readonly<{\n disallowEmptySelection: boolean;\n loop: boolean;\n}>;\n\nexport const comboboxBehaviorDefaults = {\n filtering: \"local\",\n loop: false,\n} as const satisfies Readonly<{\n filtering: ComboboxFiltering;\n loop: boolean;\n}>;\n\n/** Throws before a renderer can expose ambiguous or unreachable selection state. */\nexport function validateSelectionItems<Key extends string>(\n items: readonly SelectionItemDescriptor<Key>[],\n): void {\n const ids = new Set<Key>();\n for (const item of items) {\n if (typeof item.id !== \"string\" || item.id.trim().length === 0) {\n throw new TypeError(\"Selection item id must not be empty\");\n }\n if (typeof item.label !== \"string\" || item.label.trim().length === 0) {\n throw new TypeError(`Selection item ${item.id} label must not be empty`);\n }\n if (\n item.description !== undefined &&\n (typeof item.description !== \"string\" ||\n item.description.trim().length === 0)\n ) {\n throw new TypeError(\n `Selection item ${item.id} description must not be empty when provided`,\n );\n }\n if (ids.has(item.id)) {\n throw new TypeError(`Duplicate selection item id: ${item.id}`);\n }\n ids.add(item.id);\n }\n}\n\nexport function validateCheckboxSelection<Key extends string>(\n items: readonly SelectionItemDescriptor<Key>[],\n current: ReadonlySet<Key>,\n): void {\n validateSelectionItems(items);\n const knownIds = new Set(items.map((item) => item.id));\n for (const selectedId of current) {\n if (!knownIds.has(selectedId)) {\n throw new RangeError(`Selected checkbox must exist: ${selectedId}`);\n }\n }\n}\n\nexport function resolveInitialRadioValue<Key extends string>(\n items: readonly SelectionItemDescriptor<Key>[],\n requestedValue: Key | null | undefined,\n required = false,\n): Key | null {\n validateSelectionItems(items);\n if (requestedValue != null) {\n if (!items.some((item) => item.id === requestedValue)) {\n throw new RangeError(`Selected radio must exist: ${requestedValue}`);\n }\n return requestedValue;\n }\n return required ? (items.find((item) => !item.disabled)?.id ?? null) : null;\n}\n\nexport function validateRadioSelection<Key extends string>(\n items: readonly SelectionItemDescriptor<Key>[],\n current: Key | null,\n): void {\n validateSelectionItems(items);\n if (current != null && !items.some((item) => item.id === current)) {\n throw new RangeError(`Selected radio must exist: ${current}`);\n }\n}\n\n/** Returns the only enabled radio that may enter the Web tab order. */\nexport function resolveRadioTabStop<Key extends string>(\n items: readonly SelectionItemDescriptor<Key>[],\n selectedValue: Key | null,\n): Key | undefined {\n validateSelectionItems(items);\n const selected = items.find((item) => item.id === selectedValue);\n if (selected && !selected.disabled) return selected.id;\n return items.find((item) => !item.disabled)?.id;\n}\n\n/** Reconciles an uncontrolled radio when its selected item leaves the collection. */\nexport function reconcileRadioSelection<Key extends string>(\n items: readonly SelectionItemDescriptor<Key>[],\n current: Key | null,\n required = false,\n): Key | null {\n validateSelectionItems(items);\n if (current != null && items.some((item) => item.id === current)) return current;\n return required ? (items.find((item) => !item.disabled)?.id ?? null) : null;\n}\n\nexport function getSelectionNavigationIntent(\n key: WebKeyboardKey,\n orientation: SelectionOrientation,\n direction: SelectionDirection,\n): SelectionNavigationIntent | undefined {\n if (key === \"Home\") return \"first\";\n if (key === \"End\") return \"last\";\n if (orientation === \"vertical\") {\n if (key === \"ArrowDown\") return \"next\";\n if (key === \"ArrowUp\") return \"previous\";\n return undefined;\n }\n if (key === \"ArrowRight\") return direction === \"rtl\" ? \"previous\" : \"next\";\n if (key === \"ArrowLeft\") return direction === \"rtl\" ? \"next\" : \"previous\";\n return undefined;\n}\n\nexport function getRadioNavigationTarget<Key extends string>(\n items: readonly SelectionItemDescriptor<Key>[],\n currentId: Key | null | undefined,\n intent: SelectionNavigationIntent,\n loop = true,\n): Key | undefined {\n validateSelectionItems(items);\n const enabled = items.filter((item) => !item.disabled);\n if (enabled.length === 0) return undefined;\n if (intent === \"first\") return enabled[0]?.id;\n if (intent === \"last\") return enabled.at(-1)?.id;\n const currentIndex = enabled.findIndex((item) => item.id === currentId);\n if (currentIndex < 0) return enabled[0]?.id;\n const delta = intent === \"next\" ? 1 : -1;\n const nextIndex = currentIndex + delta;\n if (!loop && (nextIndex < 0 || nextIndex >= enabled.length)) return currentId ?? enabled[0]?.id;\n return enabled[(nextIndex + enabled.length) % enabled.length]?.id;\n}\n\n/** Platform-neutral item anatomy shared by Web and native Tabs renderers. */\nexport type TabDescriptor<Key extends string = string> = Readonly<{\n id: Key;\n label: string;\n disabled?: boolean;\n}>;\nexport type ControlledTabsSelection<Key extends string = string> = Readonly<{\n value: Key;\n defaultValue?: never;\n onValueChange(value: Key): void;\n}>;\nexport type UncontrolledTabsSelection<Key extends string = string> = Readonly<{\n value?: never;\n defaultValue?: Key;\n onValueChange?: (value: Key) => void;\n}>;\nexport type TabsSelection<Key extends string = string> =\n | ControlledTabsSelection<Key>\n | UncontrolledTabsSelection<Key>;\nexport type TabNavigationIntent = \"next\" | \"previous\" | \"first\" | \"last\";\n\nexport function getTabNavigationIntent(\n key: WebKeyboardKey,\n orientation: TabsOrientation,\n direction: TabsDirection,\n): TabNavigationIntent | undefined {\n if (key === \"Home\") return \"first\";\n if (key === \"End\") return \"last\";\n if (orientation === \"vertical\") {\n if (key === \"ArrowDown\") return \"next\";\n if (key === \"ArrowUp\") return \"previous\";\n return undefined;\n }\n if (key === \"ArrowRight\") return direction === \"rtl\" ? \"previous\" : \"next\";\n if (key === \"ArrowLeft\") return direction === \"rtl\" ? \"next\" : \"previous\";\n return undefined;\n}\n\n/** Validates collection identity and resolves the only safe initial selection. */\nexport function resolveInitialTabValue<Key extends string>(\n items: readonly TabDescriptor<Key>[],\n requestedValue?: Key,\n): Key | undefined {\n const ids = new Set<Key>();\n for (const item of items) {\n if (ids.has(item.id)) {\n throw new TypeError(`Duplicate tab id: ${item.id}`);\n }\n ids.add(item.id);\n }\n if (requestedValue !== undefined) {\n const requested = items.find((item) => item.id === requestedValue);\n if (!requested || requested.disabled) {\n throw new RangeError(`Selected tab must exist and be enabled: ${requestedValue}`);\n }\n return requestedValue;\n }\n return items.find((item) => !item.disabled)?.id;\n}\n\n/** Shared roving-focus math; renderers still own DOM/native focus APIs. */\nexport function getTabNavigationTarget<Key extends string>(\n items: readonly TabDescriptor<Key>[],\n currentId: Key,\n intent: TabNavigationIntent,\n loop = true,\n): Key | undefined {\n const enabled = items.filter((item) => !item.disabled);\n if (enabled.length === 0) return undefined;\n if (intent === \"first\") return enabled[0]?.id;\n if (intent === \"last\") return enabled.at(-1)?.id;\n const currentIndex = enabled.findIndex((item) => item.id === currentId);\n if (currentIndex < 0) return enabled[0]?.id;\n const delta = intent === \"next\" ? 1 : -1;\n const nextIndex = currentIndex + delta;\n if (!loop && (nextIndex < 0 || nextIndex >= enabled.length)) return currentId;\n return enabled[(nextIndex + enabled.length) % enabled.length]?.id;\n}\n\nexport type BehaviorStateAxis =\n | \"interaction\"\n | \"availability\"\n | \"value\"\n | \"validation\"\n | \"content\";\n\nexport type WebKeyboardKey =\n | \"Tab\"\n | \"Enter\"\n | \"Space\"\n | \"Escape\"\n | \"ArrowUp\"\n | \"ArrowDown\"\n | \"ArrowLeft\"\n | \"ArrowRight\"\n | \"Home\"\n | \"End\"\n /** TagsInput removes the previous tag with it; no other contract needed it before. */\n | \"Backspace\"\n | \"PageUp\"\n | \"PageDown\"\n | \"F8\"\n | \"Typeahead\";\n\nexport type NativeAccessibilityState =\n | \"disabled\"\n | \"selected\"\n | \"checked\"\n | \"busy\"\n | \"expanded\";\n\nexport type BehaviorContract = Readonly<{\n /** Controlled/uncontrolled state triplets only. */\n controlled: readonly string[];\n /** Read-only inputs which do not form a controlled state axis. */\n inputs?: readonly string[];\n /** Emitted events which do not themselves own state. */\n events?: readonly string[];\n configuration?: Readonly<Record<string, readonly string[]>>;\n defaults?: Readonly<Record<string, string | number | boolean>>;\n stateAxes: Readonly<Partial<Record<BehaviorStateAxis, readonly string[]>>>;\n web: Readonly<{\n roles: readonly string[];\n keyboard: readonly WebKeyboardKey[];\n focus:\n | \"native\"\n | \"roving\"\n | \"activeDescendant\"\n | \"trap\"\n | \"restore\"\n | \"none\";\n dismiss?: readonly (\n | \"escape\"\n | \"outside\"\n | \"selection\"\n | \"blur\"\n | \"timeout\"\n | \"action\"\n | \"close-action\"\n | \"swipe\"\n | \"programmatic\"\n )[];\n }>;\n native: Readonly<{\n roles: readonly string[];\n states: readonly NativeAccessibilityState[];\n actions: readonly string[];\n dismiss?: readonly (\n | \"back\"\n | \"swipe\"\n | \"outside\"\n | \"selection\"\n | \"timeout\"\n | \"action\"\n | \"close-action\"\n | \"programmatic\"\n )[];\n }>;\n scenarios: readonly string[];\n}>;\n\n/** Safe behavior defaults: automatic activation is opt-in for instant panels. */\nexport const tabsBehaviorDefaults = {\n activationMode: \"manual\",\n mountPolicy: \"active\",\n panelMode: \"keyed\",\n orientation: \"horizontal\",\n direction: \"ltr\",\n loop: true,\n} as const satisfies Readonly<{\n activationMode: TabsActivationMode;\n mountPolicy: TabsMountPolicy;\n panelMode: TabsPanelMode;\n orientation: TabsOrientation;\n direction: TabsDirection;\n loop: boolean;\n}>;\n\n/**\n * Behavior is data, not a React implementation. Web/RN renderers can use any\n * suitable primitive while running the same scenarios and exposing the same\n * controlled state names.\n */\nexport const behaviorRegistry = {\n link: {\n controlled: [],\n inputs: [\"destination\", \"label\"],\n stateAxes: {\n interaction: [\"idle\", \"hover\", \"focusVisible\", \"pressed\"],\n },\n web: {\n roles: [\"link\"],\n keyboard: [\"Tab\", \"Enter\"],\n focus: \"native\",\n },\n native: {\n roles: [\"link\"],\n states: [],\n actions: [\"activate\"],\n },\n scenarios: [\n \"href-is-the-destination-source-of-truth\",\n \"web-renders-a-real-anchor-and-preserves-modifier-context-navigation\",\n \"native-internal-destination-uses-router-link-semantics\",\n \"native-external-destination-uses-platform-linking-and-reports-failure\",\n \"link-never-exposes-disabled-action-or-visited-application-state\",\n \"download-remains-a-separate-platform-workflow\",\n \"visible-label-owns-one-accessible-name\",\n \"leading-and-trailing-icons-are-decorative-semantic-icons\",\n \"logical-icon-direction-follows-rtl\",\n \"inline-link-has-a-persistent-non-color-cue\",\n \"standalone-link-target-is-at-least-forty-four-units\",\n \"destination-link-never-contains-another-interactive-descendant\",\n ],\n },\n field: {\n controlled: [\"value\", \"defaultValue\", \"onValueChange\"],\n stateAxes: {\n availability: [\"enabled\", \"disabled\", \"readOnly\"],\n validation: [\"valid\", \"invalid\"],\n content: [\"idle\", \"loading\", \"error\"],\n },\n web: { roles: [\"textbox\"], keyboard: [\"Tab\"], focus: \"native\" },\n native: { roles: [\"text\"], states: [\"disabled\"], actions: [\"focus\", \"setText\"] },\n scenarios: [\"label-description-error-linkage\", \"invalid-plus-focus\", \"disabled-suppresses-edit\"],\n },\n searchField: {\n controlled: [\"value\", \"defaultValue\", \"onValueChange\", \"onClear\"],\n stateAxes: {\n availability: [\"enabled\", \"disabled\", \"busy\"],\n value: [\"empty\", \"filled\"],\n validation: [\"valid\", \"invalid\"],\n content: [\"idle\", \"loading\", \"error\"],\n },\n web: { roles: [\"searchbox\", \"button\"], keyboard: [\"Tab\", \"Enter\"], focus: \"native\" },\n native: { roles: [\"text\", \"button\"], states: [\"disabled\", \"busy\"], actions: [\"focus\", \"setText\", \"clear\"] },\n scenarios: [\"clear-has-name\", \"empty-hides-clear\", \"invalid-plus-focus\", \"busy-preserves-query\"],\n },\n checkbox: {\n controlled: [\"checked\", \"defaultChecked\", \"onCheckedChange\"],\n configuration: { mixedActivation: [\"check\", \"uncheck\"] },\n defaults: checkboxBehaviorDefaults,\n stateAxes: {\n availability: [\"enabled\", \"disabled\", \"readOnly\"],\n value: [\"checked\", \"mixed\"],\n validation: [\"valid\", \"invalid\"],\n },\n web: { roles: [\"checkbox\"], keyboard: [\"Tab\", \"Space\"], focus: \"native\" },\n native: {\n roles: [\"checkbox\"],\n states: [\"disabled\", \"checked\"],\n actions: [\"activate\"],\n },\n scenarios: [\n \"visible-label-is-accessible-name\",\n \"mixed-is-announced-and-activates-to-default\",\n \"disabled-and-read-only-suppress-change\",\n \"controlled-value-never-mutates-internally\",\n \"required-and-invalid-support-are-linked\",\n ],\n },\n checkboxGroup: {\n controlled: [\"value\", \"defaultValue\", \"onValueChange\"],\n configuration: {\n orientation: [\"horizontal\", \"vertical\"],\n direction: [\"ltr\", \"rtl\"],\n },\n defaults: selectionGroupBehaviorDefaults,\n stateAxes: {\n availability: [\"enabled\", \"disabled\", \"readOnly\"],\n value: [\"checked\"],\n validation: [\"valid\", \"invalid\"],\n },\n web: {\n roles: [\"group\", \"checkbox\"],\n keyboard: [\"Tab\", \"Space\"],\n focus: \"native\",\n },\n native: {\n roles: [\"checkbox\"],\n states: [\"disabled\", \"checked\"],\n actions: [\"activate\"],\n },\n scenarios: [\n \"each-enabled-checkbox-is-a-tab-stop\",\n \"space-toggles-only-focused-checkbox\",\n \"group-label-description-and-error-are-linked\",\n \"disabled-selected-item-is-retained-but-not-activated\",\n \"change-emits-a-fresh-set\",\n \"duplicate-and-unknown-ids-are-rejected\",\n \"uncontrolled-selection-reconciles-collection-mutation\",\n \"required-and-invalid-are-announced\",\n \"no-nested-interactive-descendants\",\n ],\n },\n radioGroup: {\n controlled: [\"value\", \"defaultValue\", \"onValueChange\"],\n configuration: {\n orientation: [\"horizontal\", \"vertical\"],\n direction: [\"ltr\", \"rtl\"],\n loop: [\"true\", \"false\"],\n },\n defaults: radioGroupBehaviorDefaults,\n stateAxes: {\n availability: [\"enabled\", \"disabled\", \"readOnly\"],\n value: [\"checked\", \"selected\"],\n validation: [\"valid\", \"invalid\"],\n },\n web: {\n roles: [\"radiogroup\", \"radio\"],\n keyboard: [\n \"Tab\",\n \"Space\",\n \"ArrowUp\",\n \"ArrowDown\",\n \"ArrowLeft\",\n \"ArrowRight\",\n \"Home\",\n \"End\",\n ],\n focus: \"roving\",\n },\n native: {\n roles: [\"radio\"],\n states: [\"disabled\", \"checked\"],\n actions: [\"activate\"],\n },\n scenarios: [\n \"at-most-one-selection-and-nullable-initial-value\",\n \"checked-or-first-enabled-is-the-only-tab-stop\",\n \"arrow-focuses-and-selects-while-skipping-disabled\",\n \"orientation-direction-and-loop-control-navigation\",\n \"space-selects-focused-radio\",\n \"group-label-description-and-error-are-linked\",\n \"disabled-selected-item-is-retained-with-enabled-tab-stop\",\n \"required-invalid-and-read-only-are-announced\",\n \"controlled-value-never-mutates-internally\",\n \"duplicate-and-unknown-ids-are-rejected\",\n ],\n },\n switch: {\n controlled: [\"checked\", \"defaultChecked\", \"onCheckedChange\"],\n stateAxes: { availability: [\"enabled\", \"disabled\"], value: [\"checked\"] },\n web: { roles: [\"switch\"], keyboard: [\"Tab\", \"Space\"], focus: \"native\" },\n native: { roles: [\"switch\"], states: [\"disabled\", \"checked\"], actions: [\"activate\"] },\n scenarios: [\"row-and-control-are-one-target\", \"checked-announced\", \"disabled-suppresses-change\"],\n },\n segmentedControl: {\n controlled: [\"value\", \"defaultValue\", \"onValueChange\"],\n stateAxes: { availability: [\"enabled\", \"disabled\"], value: [\"selected\"] },\n web: { roles: [\"radiogroup\", \"radio\"], keyboard: [\"Tab\", \"ArrowLeft\", \"ArrowRight\", \"ArrowUp\", \"ArrowDown\", \"Home\", \"End\"], focus: \"roving\" },\n native: { roles: [\"radio\"], states: [\"disabled\", \"checked\"], actions: [\"activate\"] },\n scenarios: [\"exactly-one-selected\", \"one-tab-stop\", \"arrow-selection\", \"selected-plus-focus\"],\n },\n chip: {\n controlled: [\"selected\", \"onPress\"],\n stateAxes: {\n availability: [\"enabled\", \"disabled\"],\n value: [\"selected\"],\n },\n web: {\n roles: [\"button\", \"radio\", \"checkbox\"],\n keyboard: [\"Tab\", \"Enter\", \"Space\"],\n focus: \"native\",\n },\n native: {\n roles: [\"button\", \"radio\", \"checkbox\"],\n states: [\"disabled\", \"checked\"],\n actions: [\"activate\"],\n },\n scenarios: [\n \"action-never-exposes-selection\",\n \"single-selection-uses-radio-checked\",\n \"multiple-selection-uses-checkbox-checked\",\n \"selected-plus-focus\",\n \"selection-indicator-is-not-color-only\",\n \"single-mode-composes-radio-group-behavior\",\n \"multiple-mode-composes-checkbox-group-behavior\",\n ],\n },\n tabs: {\n controlled: [\"value\", \"defaultValue\", \"onValueChange\"],\n configuration: {\n activationMode: [\"automatic\", \"manual\"],\n mountPolicy: [\"active\", \"visited\", \"always\"],\n panelMode: [\"keyed\", \"dynamic\"],\n orientation: [\"horizontal\", \"vertical\"],\n direction: [\"ltr\", \"rtl\"],\n loop: [\"true\", \"false\"],\n },\n defaults: tabsBehaviorDefaults,\n stateAxes: { availability: [\"enabled\", \"disabled\"], value: [\"selected\"] },\n web: { roles: [\"tablist\", \"tab\", \"tabpanel\"], keyboard: [\"Tab\", \"Enter\", \"Space\", \"ArrowUp\", \"ArrowDown\", \"ArrowLeft\", \"ArrowRight\", \"Home\", \"End\"], focus: \"roving\" },\n native: { roles: [\"tab\"], states: [\"disabled\", \"selected\"], actions: [\"activate\"] },\n scenarios: [\n \"tab-controls-panel\",\n \"one-tab-stop\",\n \"disabled-tab-skipped\",\n \"selected-plus-focus\",\n \"automatic-activation-only-for-instant-panels\",\n \"manual-activation-keeps-focus-and-selection-distinct\",\n \"active-mount-removes-inactive-panel\",\n \"always-mount-makes-inactive-panels-inert\",\n \"visited-mount-preserves-visited-panel-state\",\n \"horizontal-arrows-do-not-consume-up-down\",\n \"vertical-arrows-and-aria-orientation\",\n \"web-tablist-has-accessible-name\",\n \"every-tab-controls-an-existing-panel\",\n \"active-panel-labelled-by-selected-tab\",\n \"manual-focus-does-not-relabel-dynamic-panel\",\n \"dynamic-panel-preserves-host-instance\",\n \"dynamic-panel-requires-active-mount\",\n \"panel-enters-tab-order-when-content-has-no-focus-target\",\n \"rtl-navigation-follows-logical-direction\",\n \"first-enabled-tab-is-uncontrolled-default\",\n \"duplicate-and-disabled-selection-are-rejected\",\n \"controlled-selection-never-mutates-internally\",\n \"native-focus-does-not-select-without-activate\",\n \"inactive-mounted-panels-are-hidden-and-inert\",\n \"uncontrolled-selection-reconciles-collection-mutation\",\n ],\n },\n bottomNavigation: {\n controlled: [],\n inputs: [\"items\", \"selectedKey\", \"accessibilityLabel\"],\n events: [\"onActivate\", \"onLongPress\"],\n configuration: {\n direction: [\"ltr\", \"rtl\"],\n keyboardBehavior: [\"hide\", \"remain\"],\n },\n defaults: bottomNavigationBehaviorDefaults,\n stateAxes: {\n interaction: [\"idle\", \"hover\", \"focusVisible\", \"pressed\"],\n availability: [\"enabled\", \"disabled\"],\n value: [\"selected\"],\n },\n web: {\n roles: [\"navigation\", \"list\", \"link\"],\n keyboard: [\"Tab\", \"Enter\"],\n focus: \"native\",\n },\n native: {\n roles: [\"tab\", \"button\"],\n states: [\"disabled\", \"selected\"],\n actions: [\"activate\", \"longpress\"],\n },\n scenarios: [\n \"two-to-five-stable-top-level-destinations\",\n \"router-selected-key-is-read-only-input\",\n \"activation-does-not-select-before-router-commit\",\n \"prevented-or-failed-navigation-keeps-current-selection\",\n \"reselect-is-distinct-from-navigation\",\n \"navigator-preserves-each-destination-state\",\n \"disabled-destination-suppresses-activation\",\n \"visible-label-always-names-a-decorative-icon\",\n \"selected-state-uses-icon-emphasis-and-label-weight-not-color-alone\",\n \"selected-content-and-focus-indicator-remain-simultaneously-visible\",\n \"centered-sibling-action-is-excluded-from-destination-collection\",\n \"badge-zero-is-hidden-and-visible-count-is-bounded\",\n \"badge-subtree-is-hidden-and-item-uses-one-resolved-accessibility-name\",\n \"badge-update-does-not-change-focus-selection-or-live-announce\",\n \"web-uses-a-labelled-navigation-landmark-and-real-links\",\n \"web-current-link-uses-aria-current-page\",\n \"web-preserves-modifier-click-and-does-not-use-tab-roles-or-roving-focus\",\n \"native-emits-tab-press-and-respects-default-prevented-before-navigation\",\n \"native-forwards-tab-long-press\",\n \"native-ios-may-use-button-plus-selected-when-tab-role-is-not-reliably-supported\",\n \"safe-area-padding-is-additive\",\n \"software-keyboard-hides-instead-of-lifting-the-navigation\",\n \"two-hundred-percent-text-wraps-without-fixed-item-height\",\n \"rtl-order-and-badge-anchor-follow-logical-direction\",\n \"targets-are-at-least-forty-four-units\",\n \"reduced-motion-removes-transform-without-changing-state\",\n ],\n },\n disclosureGroup: {\n controlled: [\"expandedKeys\", \"defaultExpandedKeys\", \"onExpandedChange\"],\n stateAxes: { availability: [\"enabled\", \"disabled\"], value: [\"expanded\"] },\n web: { roles: [\"heading\", \"button\", \"region\"], keyboard: [\"Tab\", \"Enter\", \"Space\", \"ArrowUp\", \"ArrowDown\", \"Home\", \"End\"], focus: \"native\" },\n native: { roles: [\"button\"], states: [\"disabled\", \"expanded\"], actions: [\"activate\"] },\n scenarios: [\n \"single-and-multiple-invariants\",\n \"each-enabled-trigger-is-a-tab-stop\",\n \"toggle-keeps-trigger-focus\",\n \"panel-removed-when-collapsed\",\n \"disabled-trigger-suppresses-change\",\n \"reduced-motion\",\n ],\n },\n menu: {\n controlled: [\n \"open\",\n \"defaultOpen\",\n \"onOpenChange\",\n \"onAction\",\n \"onActionAfterDismiss\",\n \"selection\",\n \"asyncState\",\n ],\n stateAxes: { availability: [\"enabled\", \"disabled\"], value: [\"open\", \"selected\"], content: [\"idle\", \"loading\", \"loadingMore\", \"empty\", \"error\"] },\n web: { roles: [\"menu\", \"menuitem\", \"menuitemradio\", \"menuitemcheckbox\"], keyboard: [\"Enter\", \"Space\", \"Escape\", \"ArrowUp\", \"ArrowDown\", \"Home\", \"End\", \"Typeahead\"], focus: \"restore\", dismiss: [\"escape\", \"outside\", \"selection\"] },\n native: { roles: [\"menu\", \"menuitem\"], states: [\"disabled\", \"selected\", \"checked\"], actions: [\"activate\"], dismiss: [\"back\", \"outside\", \"selection\"] },\n scenarios: [\n \"action-and-single-close-after-selection\",\n \"on-action-does-not-depend-on-controlled-close\",\n \"after-dismiss-action-sequences-next-surface\",\n \"multiple-selection-keeps-menu-open\",\n \"disabled-item-skipped\",\n \"escape-or-back-restores-trigger\",\n \"danger-item-not-color-only\",\n \"loading-more-preserves-items-and-selection\",\n ],\n },\n dialog: {\n controlled: [\"open\", \"defaultOpen\", \"onOpenChange\"],\n stateAxes: { availability: [\"enabled\", \"busy\"], value: [\"open\"] },\n web: { roles: [\"dialog\"], keyboard: [\"Tab\", \"Escape\"], focus: \"trap\", dismiss: [\"escape\", \"outside\"] },\n native: { roles: [\"dialog\"], states: [\"busy\"], actions: [\"dismiss\"], dismiss: [\"back\", \"outside\"] },\n scenarios: [\"title-description-linkage\", \"focus-trap-and-restore\", \"modal-isolation\", \"single-dismiss-callback\"],\n },\n alertDialog: {\n controlled: [\"open\", \"defaultOpen\", \"onOpenChange\"],\n stateAxes: { availability: [\"enabled\", \"busy\"], value: [\"open\"], content: [\"idle\", \"loading\", \"error\"] },\n web: { roles: [\"alertdialog\"], keyboard: [\"Tab\", \"Escape\"], focus: \"trap\", dismiss: [\"escape\"] },\n native: { roles: [\"alertdialog\"], states: [\"busy\"], actions: [\"confirm\", \"cancel\"], dismiss: [\"back\"] },\n scenarios: [\n \"visible-title-and-description-are-announced\",\n \"modal-isolation-and-tab-trap\",\n \"confirm-mode-cancel-is-initial-focus\",\n \"alert-mode-confirm-is-initial-focus\",\n \"outside-attempt-is-ignored-without-callback\",\n \"escape-or-back-cancels-when-idle\",\n \"busy-blocks-every-dismiss-and-duplicate-confirm\",\n \"confirm-action-runs-once\",\n \"error-is-announced-and-dialog-stays-open\",\n \"controlled-close-settles-programmatic-cancel\",\n \"unmount-settles-interrupted\",\n \"result-settles-once-after-exit\",\n \"focus-restores-after-every-close-path\",\n \"reduced-motion-still-completes-exit\",\n ],\n },\n sheet: {\n controlled: [\"open\", \"defaultOpen\", \"onOpenChange\", \"dismissPolicy\"],\n defaults: sheetBehaviorDefaults,\n stateAxes: { availability: [\"enabled\", \"busy\"], value: [\"open\"] },\n web: { roles: [\"dialog\"], keyboard: [\"Tab\", \"Escape\"], focus: \"trap\", dismiss: [\"escape\", \"outside\"] },\n native: { roles: [\"dialog\"], states: [\"busy\"], actions: [\"dismiss\"], dismiss: [\"back\", \"outside\"] },\n scenarios: [\n \"focus-or-modal-isolation\",\n \"scroll-lock\",\n \"safe-area\",\n \"single-dismiss-callback\",\n \"busy-blocks-dismiss\",\n \"dismiss-reason-is-reported\",\n \"programmatic-owner-close-is-always-allowed\",\n \"swipe-requires-enabled-policy-and-gesture-capability\",\n \"successor-surface-opens-after-exit\",\n \"nested-modal-surfaces-are-forbidden\",\n \"reduced-motion-still-completes-dismiss\",\n ],\n },\n select: {\n controlled: [\n \"selectedKey\",\n \"defaultSelectedKey\",\n \"onSelectionChange\",\n \"open\",\n \"defaultOpen\",\n \"onOpenChange\",\n ],\n inputs: [\"asyncState\", \"selectedItem\"],\n configuration: {\n disallowEmptySelection: [\"true\", \"false\"],\n loop: [\"true\", \"false\"],\n },\n defaults: selectBehaviorDefaults,\n stateAxes: {\n availability: [\"enabled\", \"disabled\", \"readOnly\", \"busy\"],\n value: [\"empty\", \"selected\", \"open\"],\n validation: [\"valid\", \"invalid\"],\n content: [\"idle\", \"loading\", \"loadingMore\", \"empty\", \"error\"],\n },\n web: {\n roles: [\"combobox\", \"listbox\", \"option\"],\n keyboard: [\n \"Tab\",\n \"Enter\",\n \"Space\",\n \"Escape\",\n \"ArrowUp\",\n \"ArrowDown\",\n \"Home\",\n \"End\",\n \"Typeahead\",\n ],\n focus: \"activeDescendant\",\n dismiss: [\"selection\", \"escape\", \"outside\", \"blur\"],\n },\n native: {\n roles: [\"button\", \"dialog\", \"radio\"],\n states: [\"disabled\", \"checked\", \"busy\", \"expanded\"],\n actions: [\"activate\", \"dismiss\"],\n dismiss: [\"selection\", \"back\", \"outside\"],\n },\n scenarios: [\n \"visible-label-or-accessibility-label-names-trigger\",\n \"collection-ids-and-text-values-are-validated\",\n \"highlighted-option-is-distinct-from-committed-selection\",\n \"trigger-controls-the-mounted-listbox\",\n \"active-descendant-references-a-mounted-option\",\n \"active-option-scrolls-into-view\",\n \"disabled-options-are-skipped\",\n \"escape-closes-without-commit\",\n \"selection-requests-close-and-restores-trigger-focus\",\n \"controlled-owner-may-defer-a-selection-close-request\",\n \"removed-selection-is-reconciled\",\n \"loading-more-preserves-options-and-selection\",\n \"transient-async-pages-preserve-committed-key-and-copy\",\n \"empty-error-and-loading-are-announced\",\n \"options-have-no-nested-interactive-descendants\",\n ],\n },\n combobox: {\n controlled: [\n \"selectedKey\",\n \"defaultSelectedKey\",\n \"onSelectionChange\",\n \"inputValue\",\n \"defaultInputValue\",\n \"onInputValueChange\",\n \"open\",\n \"defaultOpen\",\n \"onOpenChange\",\n ],\n inputs: [\"asyncState\", \"queryValue\", \"resultQuery\", \"selectedItem\"],\n events: [\"onCommit\"],\n configuration: {\n filtering: [\"local\", \"external\"],\n loop: [\"true\", \"false\"],\n },\n defaults: comboboxBehaviorDefaults,\n stateAxes: {\n availability: [\"enabled\", \"disabled\", \"readOnly\", \"busy\"],\n value: [\"empty\", \"filled\", \"selected\", \"open\"],\n validation: [\"valid\", \"invalid\"],\n content: [\"idle\", \"loading\", \"loadingMore\", \"empty\", \"error\"],\n },\n web: {\n roles: [\"combobox\", \"listbox\", \"option\"],\n keyboard: [\n \"Tab\",\n \"Enter\",\n \"Escape\",\n \"ArrowUp\",\n \"ArrowDown\",\n \"Home\",\n \"End\",\n ],\n focus: \"activeDescendant\",\n dismiss: [\"selection\", \"escape\", \"outside\", \"blur\"],\n },\n native: {\n roles: [\"button\", \"text\", \"dialog\", \"radio\"],\n states: [\"disabled\", \"checked\", \"busy\", \"expanded\"],\n actions: [\"focus\", \"setText\", \"activate\", \"dismiss\"],\n dismiss: [\"selection\", \"back\", \"outside\"],\n },\n scenarios: [\n \"selected-key-and-input-value-are-independent\",\n \"input-focus-and-active-option-are-distinct\",\n \"input-controls-the-mounted-listbox\",\n \"active-descendant-references-a-mounted-option\",\n \"active-option-scrolls-into-view\",\n \"ime-composition-does-not-prematurely-filter-or-commit\",\n \"escape-restores-the-committed-label\",\n \"query-edit-never-commits-a-stale-selection\",\n \"external-results-do-not-implicitly-commit\",\n \"committed-item-survives-transient-result-pages\",\n \"stale-external-results-do-not-replace-current-query\",\n \"loading-more-preserves-options-and-active-descendant\",\n \"empty-error-and-loading-are-announced\",\n \"custom-values-are-rejected-without-an-explicit-policy\",\n \"selection-state-updates-before-commit-event-and-close-request\",\n \"options-have-no-nested-interactive-descendants\",\n ],\n },\n toast: {\n controlled: [],\n inputs: [\"descriptor\", \"queueSnapshot\", \"visibleSnapshot\"],\n events: [\"onAction\", \"onDismiss\"],\n configuration: {\n priority: [\"normal\", \"high\"],\n duplicatePolicy: [\"update\", \"ignore\"],\n timerUpdatePolicy: [\"preserve\", \"restart\"],\n overflowPolicy: [\"discard-oldest\", \"discard-newest\"],\n },\n defaults: toastBehaviorDefaults,\n stateAxes: {\n value: [\"open\"],\n content: [\"idle\"],\n },\n web: {\n roles: [\"region\", \"status\", \"alert\", \"button\"],\n keyboard: [\"Tab\", \"Enter\", \"Space\", \"Escape\", \"F8\"],\n focus: \"native\",\n dismiss: [\"timeout\", \"action\", \"close-action\", \"escape\", \"swipe\", \"programmatic\"],\n },\n native: {\n roles: [\"alert\", \"button\"],\n states: [],\n actions: [\"announce\", \"activate\", \"dismiss\"],\n dismiss: [\"timeout\", \"action\", \"close-action\", \"swipe\", \"programmatic\"],\n },\n scenarios: [\n \"stable-id-duplicate-updates-in-place-without-reordering\",\n \"bounded-queue-promotes-items-in-fifo-order\",\n \"queued-time-never-consumes-auto-dismiss-duration\",\n \"visible-timer-pauses-for-pointer-focus-window-and-gesture\",\n \"actionable-toast-is-persistent-unless-duration-is-explicit\",\n \"auto-dismiss-duration-is-never-shorter-than-five-seconds\",\n \"action-and-dismiss-callbacks-run-exactly-once\",\n \"programmatic-close-reports-its-own-dismiss-reason\",\n \"normal-and-high-announcements-use-the-visible-copy-or-explicit-override\",\n \"tone-is-always-paired-with-a-non-color-mark\",\n \"web-hotkey-focuses-the-labelled-viewport-and-last-close-restores-focus\",\n \"exit-completes-once-with-and-without-reduced-motion\",\n \"provider-teardown-interrupts-every-session-without-leaking-a-timer\",\n ],\n },\n loadMore: {\n controlled: [],\n inputs: [\"state\", \"labels\"],\n events: [\"onLoadMore\"],\n configuration: { mode: [\"automatic\", \"manual\"] },\n defaults: loadMoreBehaviorDefaults,\n stateAxes: {\n availability: [\"enabled\", \"busy\"],\n content: [\"idle\", \"loadingMore\", \"error\", \"complete\"],\n },\n web: {\n roles: [\"status\", \"alert\", \"button\"],\n keyboard: [\"Tab\", \"Enter\", \"Space\"],\n focus: \"native\",\n },\n native: {\n roles: [\"progressbar\", \"alert\", \"button\"],\n states: [\"busy\", \"disabled\"],\n actions: [\"activate\"],\n },\n scenarios: [\n \"existing-items-remain-mounted-in-every-footer-state\",\n \"automatic-viewport-request-has-an-accessible-manual-fallback\",\n \"one-request-is-in-flight-per-controller\",\n \"same-request-key-is-never-issued-twice-concurrently\",\n \"loading-and-complete-states-block-new-requests\",\n \"error-state-retries-only-with-retry-reason\",\n \"loading-status-and-error-alert-announce-once\",\n \"retry-and-manual-targets-are-at-least-forty-four-units\",\n ],\n },\n tooltip: {\n controlled: [\"open\", \"defaultOpen\", \"onOpenChange\"],\n inputs: [\"content\"],\n configuration: {\n placement: [\"top\", \"bottom\", \"start\", \"end\"],\n align: [\"start\", \"center\", \"end\"],\n },\n defaults: tooltipBehaviorDefaults,\n stateAxes: {\n interaction: [\"idle\", \"hover\", \"focusVisible\"],\n value: [\"open\"],\n },\n web: {\n roles: [\"tooltip\"],\n keyboard: [\"Tab\", \"Escape\"],\n focus: \"none\",\n dismiss: [\"escape\", \"blur\"],\n },\n native: { roles: [], states: [], actions: [] },\n scenarios: [\n \"plain-localized-copy-never-contains-interaction\",\n \"keyboard-focus-opens-immediately-and-pointer-respects-delay\",\n \"recent-sibling-tooltip-uses-skip-delay\",\n \"one-tooltip-is-visible-per-provider\",\n \"trigger-content-hover-and-pointer-corridor-keep-open\",\n \"escape-dismisses-and-suppresses-reopen-until-input-reset\",\n \"blur-or-pointer-leave-closes-only-after-all-active-inputs-end\",\n \"trigger-activation-closes-without-cancelling-trigger-action\",\n \"trigger-keeps-focus-and-tooltip-has-no-tab-stop\",\n \"existing-aria-describedby-is-preserved\",\n \"touch-pointer-hover-is-ignored\",\n \"controlled-close-rejection-never-exposes-two-tooltips\",\n \"timer-and-global-listener-cleanup-on-unmount\",\n \"reduced-motion-exit-completes-exactly-once\",\n ],\n },\n anchor: anchorBehavior,\n agreement: agreementBehavior,\n top: topBehavior,\n authProviderButton: authProviderButtonBehavior,\n heading: headingBehavior,\n toggleGroup: toggleGroupBehavior,\n tagsInput: tagsInputBehavior,\n skipNav: skipNavBehavior,\n bottomInfo: bottomInfoBehavior,\n sidebar: sidebarBehavior,\n nativePlatform: nativePlatformBehavior,\n dateRange: dateRangeBehavior,\n textFormat: textFormatBehavior,\n collapsible: collapsibleBehavior,\n asset: assetBehavior,\n menubar: menubarBehavior,\n contextMenu: contextMenuBehavior,\n breadcrumb: breadcrumbBehaviorSpec,\n calendar: calendarBehavior,\n carousel: carouselBehavior,\n commandPalette: {\n controlled: [\n \"open\",\n \"defaultOpen\",\n \"onOpenChange\",\n \"inputValue\",\n \"defaultInputValue\",\n \"onInputValueChange\",\n ],\n inputs: [\"queryValue\", \"resultQuery\", \"asyncState\", \"accessibilityLabel\", \"searchPlaceholder\"],\n events: [\"onActivate\", \"onActivateAfterDismiss\"],\n stateAxes: { value: [\"open\"], content: [\"idle\", \"loading\", \"loadingMore\", \"empty\", \"error\"] },\n // 저작자 명세의 dismiss 사유 \"activation\"은 채택하지 않았다. 같은 뜻의 \"action\"이\n // 이미 유니언에 있고(Menu가 onAction으로 쓴다), 공용 어휘에 동의어를 하나 더 두면\n // 렌더러가 둘을 구별해야 하는지 매번 물어야 한다.\n web: { roles: [\"dialog\", \"listbox\", \"option\"], keyboard: [\"Tab\", \"Enter\", \"Escape\", \"ArrowUp\", \"ArrowDown\"], focus: \"trap\", dismiss: [\"escape\", \"outside\", \"action\"] },\n native: { roles: [], states: [], actions: [] },\n scenarios: [...commandPaletteBehaviorScenarios],\n },\n floatingActionButton: {\n controlled: [],\n inputs: [\"label\", \"icon\", \"layoutMode\", \"scrollSignal\", \"safeAreaInset\"],\n events: [\"onPress\"],\n stateAxes: { interaction: [\"idle\", \"hover\", \"pressed\", \"focusVisible\"] },\n web: { roles: [\"button\"], keyboard: [\"Tab\", \"Enter\", \"Space\"], focus: \"native\" },\n native: { roles: [\"button\"], states: [], actions: [\"activate\"] },\n scenarios: [...floatingActionButtonBehaviorScenarios],\n },\n // 이 항목은 `transfer-list.ts`에서 import하지 않고 여기에 직접 쓴다. 그 모듈은\n // 이 파일에서 **값**을(getCheckboxNextState 등) 가져오므로, 여기서 되받으면\n // 실제 순환이 닫혀 레지스트리가 undefined를 담는다(타입만 가져오는\n // data-table과 다른 점이다). 두 정의가 어긋나지 않는지는 테스트로 잠근다.\n transferList: {\n controlled: [\"targetKeys\", \"defaultTargetKeys\", \"onTargetKeysChange\"],\n inputs: [\"items\"],\n events: [\"onMove\"],\n stateAxes: {\n availability: [\"enabled\", \"disabled\"],\n value: [\"empty\", \"filled\", \"selected\", \"mixed\"],\n },\n web: {\n roles: [\"group\", \"listbox\", \"option\", \"checkbox\", \"button\"],\n keyboard: [\"Tab\", \"Space\", \"Enter\", \"ArrowUp\", \"ArrowDown\", \"Home\", \"End\"],\n focus: \"roving\",\n },\n native: {\n roles: [\"list\", \"checkbox\", \"button\"],\n states: [\"disabled\", \"selected\", \"checked\"],\n actions: [\"toggle\", \"toggleSelectAll\", \"moveSelection\", \"moveItem\"],\n },\n scenarios: [\n \"moving-is-reachable-entirely-by-keyboard-select-with-space-then-activate-the-move-button\",\n \"moving-a-single-focused-row-does-not-require-first-opening-multi-select\",\n \"focus-after-a-move-lands-on-the-item-that-slid-into-the-removed-rows-position\",\n \"focus-after-emptying-a-panel-falls-back-to-its-empty-state-never-lost-to-the-document\",\n \"every-move-emits-which-ids-moved-so-the-product-can-announce-a-formatted-sentence\",\n \"disabled-items-are-never-selectable-and-never-move\",\n \"moved-items-are-cleared-from-the-origin-panels-selection-and-left-unselected-at-the-destination\",\n \"select-all-in-a-panel-excludes-disabled-items-from-both-the-denominator-and-the-count\",\n \"an-item-with-nothing-selected-in-its-panel-still-supports-direct-single-item-move\",\n \"search-and-pagination-inside-a-panel-are-product-composition-not-this-contract\",\n ],\n },\n dataTable: dataTableBehavior,\n tour: {\n controlled: [\"open\", \"defaultOpen\", \"onOpenChange\", \"currentStepId\", \"defaultCurrentStepId\", \"onStepChange\"],\n inputs: [\"steps\", \"labels\", \"anchorId\"],\n events: [\"onClose\"],\n stateAxes: { value: [\"open\", \"currentStep\"] },\n // outside 닫힘이 없다. 실수로 워크스루가 끊기지 않게 하려는 고정 규칙이라\n // 저작자가 policy 객체조차 두지 않았고, 요약에도 그 사실을 그대로 옮긴다.\n web: { roles: [\"dialog\"], keyboard: [\"Tab\", \"Enter\", \"Escape\", \"ArrowLeft\", \"ArrowRight\"], focus: \"trap\", dismiss: [\"escape\", \"close-action\", \"programmatic\"] },\n native: { roles: [], states: [], actions: [] },\n scenarios: [...tourBehaviorScenarios],\n },\n layout: layoutBehavior,\n otpField: otpFieldBehavior,\n passwordField: passwordFieldBehavior,\n splitter: splitterBehavior,\n datePicker: datePickerBehavior,\n sidePanel: sidePanelBehavior,\n filePicker: filePickerBehavior,\n pagination: {\n controlled: [\"currentPage\", \"onPageChange\"],\n inputs: [\"totalCount\", \"totalPages\", \"pageSize\", \"labels\"],\n configuration: { window: [\"siblingCount\", \"boundaryCount\"] },\n stateAxes: {},\n web: {\n roles: [\"navigation\"],\n keyboard: [\"Tab\", \"Enter\", \"Space\"],\n focus: \"native\",\n },\n native: { roles: [], states: [], actions: [] },\n scenarios: [...paginationBehaviorScenarios],\n },\n /*\n 비모달이라 `busy` 축이 없다. Sheet/AlertDialog는 진행 중 dismiss를 막지만 Popover는\n 포커스가 정당하게 밖으로 나갈 수 있어 그 축이 성립하지 않는다 — 대신 나가는 것\n 자체가 dismiss 신호이므로 `outside-focus`를 별도 reason으로 둔다.\n */\n popover: {\n controlled: [\"open\", \"defaultOpen\", \"onOpenChange\"],\n defaults: popoverBehaviorDefaults,\n stateAxes: { value: [\"open\"] },\n /*\n `trap`이 아니라 `restore`다 — Dialog·Sheet·AlertDialog는 모달이라 포커스를 가두지만\n Popover는 비모달이라 Tab이 **정당하게 밖으로 나갈 수 있다.** 그래서 가두지 않고,\n Escape/명시적 닫기는 트리거로 복귀하고, 바깥 클릭·Tab 이동은 새 초점을 보존한다.\n 나가는 것 자체가 dismiss 신호이므로 `outside-focus`를 별도 reason으로 둔다.\n */\n web: {\n roles: [\"dialog\"],\n keyboard: [\"Tab\", \"Escape\"],\n focus: \"restore\",\n dismiss: [\"escape\", \"outside\"],\n },\n native: { roles: [], states: [], actions: [] },\n scenarios: [...popoverBehaviorScenarios],\n },\n tree: treeBehavior,\n uploadItem: uploadItemBehavior,\n form: formBehaviorSpec,\n numberField: numberFieldBehavior,\n slider: sliderBehavior,\n} as const satisfies Record<string, BehaviorContract>;\n\nexport type BehaviorName = keyof typeof behaviorRegistry;\n\nexport type CollectionKey = string;\nexport type CollectionItemTone = \"neutral\" | \"danger\";\n\nexport type CollectionItemDescriptor<Key extends CollectionKey = CollectionKey> = Readonly<{\n id: Key;\n label: string;\n textValue: string;\n description?: string;\n shortcut?: string;\n disabled?: boolean;\n tone?: CollectionItemTone;\n}>;\n\n/** Menu-only extension; danger tone and shortcut do not belong to Select. */\nexport type MenuItemDescriptor<\n Key extends CollectionKey = CollectionKey,\n> = CollectionItemDescriptor<Key>;\n\ntype CollectionSectionLabel =\n | Readonly<{ label: string; accessibilityLabel?: string }>\n | Readonly<{ label?: string; accessibilityLabel: string }>;\n\nexport type CollectionSectionDescriptor<\n Key extends CollectionKey = CollectionKey,\n SectionKey extends CollectionKey = CollectionKey,\n> = Readonly<{\n id: SectionKey;\n items: readonly CollectionItemDescriptor<Key>[];\n}> & CollectionSectionLabel;\n\nexport type MenuSectionDescriptor<\n Key extends CollectionKey = CollectionKey,\n SectionKey extends CollectionKey = CollectionKey,\n> = CollectionSectionDescriptor<Key, SectionKey>;\n\nexport type NoSelectionModel = Readonly<{ mode: \"none\" }>;\nexport type SingleSelectionModel<Key extends CollectionKey = CollectionKey> =\n | Readonly<{\n mode: \"single\";\n selectedKey: Key | null;\n defaultSelectedKey?: never;\n onSelectionChange(key: Key | null): void;\n disallowEmptySelection?: boolean;\n }>\n | Readonly<{\n mode: \"single\";\n selectedKey?: never;\n defaultSelectedKey?: Key | null;\n onSelectionChange?: (key: Key | null) => void;\n disallowEmptySelection?: boolean;\n }>;\nexport type MultipleSelectionModel<Key extends CollectionKey = CollectionKey> =\n | Readonly<{\n mode: \"multiple\";\n selectedKeys: ReadonlySet<Key>;\n defaultSelectedKeys?: never;\n onSelectionChange(keys: ReadonlySet<Key>): void;\n }>\n | Readonly<{\n mode: \"multiple\";\n selectedKeys?: never;\n defaultSelectedKeys?: ReadonlySet<Key>;\n onSelectionChange?: (keys: ReadonlySet<Key>) => void;\n }>;\nexport type CollectionSelectionModel<Key extends CollectionKey = CollectionKey> =\n | NoSelectionModel\n | SingleSelectionModel<Key>\n | MultipleSelectionModel<Key>;\n\nexport type AsyncCollectionState =\n | Readonly<{ status: \"idle\" }>\n | Readonly<{ status: \"loading\"; message: string }>\n | Readonly<{ status: \"loadingMore\"; message: string }>\n | Readonly<{ status: \"empty\"; message: string }>\n | Readonly<{ status: \"error\"; message: string }>;\n\n/**\n * Shared input semantics for future Select/Combobox renderers. Web may render a\n * popup while Native renders a sheet, but both consume the same stable keys.\n */\nexport type SelectItemDescriptor<\n Key extends CollectionKey = CollectionKey,\n> = Omit<CollectionItemDescriptor<Key>, \"shortcut\" | \"tone\"> &\n Readonly<{ shortcut?: never; tone?: never }>;\n\nexport type ControlledSelectSelection<\n Key extends CollectionKey = CollectionKey,\n> = Readonly<{\n selectedKey: Key | null;\n defaultSelectedKey?: never;\n onSelectionChange(key: Key | null): void;\n}>;\n\nexport type UncontrolledSelectSelection<\n Key extends CollectionKey = CollectionKey,\n> = Readonly<{\n selectedKey?: never;\n defaultSelectedKey?: Key | null;\n onSelectionChange?: (key: Key | null) => void;\n}>;\n\nexport type SelectSelection<Key extends CollectionKey = CollectionKey> =\n | ControlledSelectSelection<Key>\n | UncontrolledSelectSelection<Key>;\n\nexport type ControlledComboboxInput = Readonly<{\n inputValue: string;\n defaultInputValue?: never;\n onInputValueChange(value: string): void;\n}>;\n\nexport type UncontrolledComboboxInput = Readonly<{\n inputValue?: never;\n defaultInputValue?: string;\n onInputValueChange?: (value: string) => void;\n}>;\n\nexport type ComboboxInput = ControlledComboboxInput | UncontrolledComboboxInput;\n\nexport type ComboboxFiltering = \"local\" | \"external\";\nexport type ComboboxCommitReason =\n | \"selection\"\n | \"clear\";\n"]}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * 주 행동 **아래** 붙는 작은 안내 — "가입하면 약관에 동의하는 것으로 봅니다",
3
+ * "수수료는 결제 시점에 확정됩니다" 같은 문장. 토스 TDS의 BottomInfo와 같은 자리다.
4
+ *
5
+ * `Notice`와 다르다. Notice는 **지금 생긴 상태**를 알린다(오류·성공·경고). BottomInfo는
6
+ * 화면에 늘 있는 **조건**이라 tone도 아이콘도 없고 사라지지도 않는다. Notice로 쓰면
7
+ * 사용자가 매번 "무슨 문제가 생겼나" 하고 읽게 된다.
8
+ *
9
+ * 문단 하나 이상을 담을 수 있고, 각 문단 안의 링크(약관·자세히 보기)는 제품이 넣는다.
10
+ */
11
+ export type BottomInfoTone = "muted" | "emphasis";
12
+ export type BottomInfoDescriptor = Readonly<{
13
+ /** 목록으로 읽히는 여러 줄. 한 줄이면 배열 하나. */
14
+ items: readonly string[];
15
+ tone?: BottomInfoTone;
16
+ }>;
17
+ export declare function validateBottomInfoDescriptor(descriptor: BottomInfoDescriptor): void;
18
+ export declare const bottomInfoRecipe: {
19
+ readonly slots: readonly ["root", "item"];
20
+ readonly defaults: {
21
+ readonly tone: BottomInfoTone;
22
+ };
23
+ readonly tones: {
24
+ readonly muted: Readonly<{
25
+ source: "theme";
26
+ key: "textMuted";
27
+ alpha?: number;
28
+ }>;
29
+ /** 법적 고지처럼 놓치면 안 되는 문장. 여전히 상태가 아니라 조건이다. */
30
+ readonly emphasis: Readonly<{
31
+ source: "theme";
32
+ key: "textBody";
33
+ alpha?: number;
34
+ }>;
35
+ };
36
+ readonly textVariant: "caption";
37
+ readonly gap: 4;
38
+ readonly paddingTop: 12;
39
+ /** 여러 줄일 때만 목록 표식을 쓴다 — 한 줄에 점을 찍으면 오히려 시끄럽다. */
40
+ readonly listMarkerFrom: 2;
41
+ };
42
+ export declare const bottomInfoBehavior: {
43
+ readonly controlled: readonly [];
44
+ readonly inputs: readonly ["items", "tone"];
45
+ readonly stateAxes: {};
46
+ readonly web: {
47
+ readonly roles: readonly ["list", "listitem"];
48
+ readonly keyboard: readonly [];
49
+ readonly focus: "none";
50
+ };
51
+ readonly native: {
52
+ readonly roles: readonly [];
53
+ readonly states: readonly [];
54
+ readonly actions: readonly [];
55
+ };
56
+ readonly scenarios: readonly ["it-states-a-standing-condition-not-a-state-change-so-it-has-no-tone-of-alarm", "a-single-line-renders-without-a-list-marker-and-several-lines-render-as-a-list", "the-text-wraps-and-is-never-truncated-because-it-is-usually-a-legal-notice", "links-inside-the-copy-belong-to-the-product-not-to-this-contract"];
57
+ };
58
+ //# sourceMappingURL=bottom-info.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bottom-info.d.ts","sourceRoot":"","sources":["../src/bottom-info.ts"],"names":[],"mappings":"AAKA;;;;;;;;;GASG;AACH,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,UAAU,CAAC;AAElD,MAAM,MAAM,oBAAoB,GAAG,QAAQ,CAAC;IAC1C,kCAAkC;IAClC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB,IAAI,CAAC,EAAE,cAAc,CAAC;CACvB,CAAC,CAAC;AAEH,wBAAgB,4BAA4B,CAAC,UAAU,EAAE,oBAAoB,GAAG,IAAI,CAmBnF;AAED,eAAO,MAAM,gBAAgB;;;uBAEE,cAAc;;;;;;;;QAGzC,6CAA6C;;;;;;;;;;IAM/C,iDAAiD;;CAUlD,CAAC;AAEF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;CAYM,CAAC"}