@astryxdesign/core 0.7.6-canary.f73623d → 0.7.6-canary.f77aaf2

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 (1395) hide show
  1. package/dist/AppShell/AppShell.d.ts.map +1 -1
  2. package/dist/AppShell/AppShell.js +0 -6
  3. package/dist/Badge/Badge.d.ts.map +1 -1
  4. package/dist/Badge/Badge.js +2 -1
  5. package/dist/BottomSheet/BottomSheet.d.ts.map +1 -1
  6. package/dist/BottomSheet/BottomSheet.js +6 -2
  7. package/dist/BottomSheet/BottomSheetPanel.d.ts.map +1 -1
  8. package/dist/BottomSheet/BottomSheetPanel.js +36 -9
  9. package/dist/BottomSheet/BottomSheetSwitcher.d.ts +1 -1
  10. package/dist/BottomSheet/BottomSheetSwitcher.js +1 -1
  11. package/dist/BottomSheet/useMobileKeyboard.d.ts.map +1 -1
  12. package/dist/BottomSheet/useMobileKeyboard.js +44 -8
  13. package/dist/BottomSheet/useSheetGestures.d.ts +36 -6
  14. package/dist/BottomSheet/useSheetGestures.d.ts.map +1 -1
  15. package/dist/BottomSheet/useSheetGestures.js +67 -10
  16. package/dist/Breadcrumbs/BreadcrumbItem.js +4 -2
  17. package/dist/Center/Center.d.ts +1 -1
  18. package/dist/Center/Center.js +1 -1
  19. package/dist/Chat/ChatComposer.d.ts.map +1 -1
  20. package/dist/Chat/ChatComposer.js +10 -5
  21. package/dist/Chat/ChatComposerDrawer.d.ts +1 -1
  22. package/dist/Chat/ChatComposerDrawer.js +1 -1
  23. package/dist/Chat/ChatComposerInput.d.ts +1 -1
  24. package/dist/Chat/ChatComposerInput.js +1 -1
  25. package/dist/Chat/ChatLayout.d.ts.map +1 -1
  26. package/dist/Chat/ChatLayout.js +1 -1
  27. package/dist/Chat/ChatMessageList.d.ts.map +1 -1
  28. package/dist/Chat/ChatMessageList.js +3 -1
  29. package/dist/Chat/ChatPastedTextToken.d.ts.map +1 -1
  30. package/dist/Chat/ChatPastedTextToken.js +15 -4
  31. package/dist/Chat/ChatSystemMessage.d.ts.map +1 -1
  32. package/dist/Chat/ChatSystemMessage.js +2 -1
  33. package/dist/Chat/ChatToolCalls.d.ts.map +1 -1
  34. package/dist/CheckboxList/CheckboxList.d.ts.map +1 -1
  35. package/dist/CheckboxList/CheckboxList.js +5 -2
  36. package/dist/CheckboxList/CheckboxListContext.d.ts +8 -0
  37. package/dist/CheckboxList/CheckboxListContext.d.ts.map +1 -1
  38. package/dist/CheckboxList/CheckboxListItem.d.ts.map +1 -1
  39. package/dist/CheckboxList/CheckboxListItem.js +5 -2
  40. package/dist/Code/Code.d.ts +1 -1
  41. package/dist/Code/Code.js +1 -1
  42. package/dist/CommandPalette/CommandPaletteInput.d.ts.map +1 -1
  43. package/dist/CommandPalette/CommandPaletteInput.js +8 -5
  44. package/dist/ComplexSelector/ComplexSelector.d.ts +2 -2
  45. package/dist/ComplexSelector/ComplexSelector.d.ts.map +1 -1
  46. package/dist/ComplexSelector/ComplexSelector.js +7 -2
  47. package/dist/DateInput/DateInput.d.ts +3 -2
  48. package/dist/DateInput/DateInput.d.ts.map +1 -1
  49. package/dist/DateInput/MonthScroller.d.ts.map +1 -1
  50. package/dist/DateInput/MonthScroller.js +17 -18
  51. package/dist/DateRangeInput/DateRangeInput.d.ts +3 -2
  52. package/dist/DateRangeInput/DateRangeInput.d.ts.map +1 -1
  53. package/dist/DateRangeInput/DateRangeInput.js +8 -4
  54. package/dist/Dialog/Dialog.d.ts.map +1 -1
  55. package/dist/Dialog/Dialog.js +10 -15
  56. package/dist/Drawer/Drawer.d.ts +1 -1
  57. package/dist/Drawer/Drawer.js +1 -1
  58. package/dist/DropdownMenu/DropdownMenu.d.ts.map +1 -1
  59. package/dist/DropdownMenu/DropdownMenu.js +19 -8
  60. package/dist/DropdownMenu/DropdownMenuGroup.d.ts.map +1 -1
  61. package/dist/DropdownMenu/DropdownMenuGroup.js +2 -1
  62. package/dist/DropdownMenu/DropdownMenuSubMenu.d.ts.map +1 -1
  63. package/dist/DropdownMenu/DropdownMenuSubMenu.js +1 -1
  64. package/dist/DropdownMenu/MenuBottomSheetActionList.d.ts.map +1 -1
  65. package/dist/DropdownMenu/MenuBottomSheetActionList.js +9 -3
  66. package/dist/Field/Field.d.ts +2 -2
  67. package/dist/Field/Field.d.ts.map +1 -1
  68. package/dist/Field/FieldLabel.d.ts.map +1 -1
  69. package/dist/Field/FieldLabel.js +19 -2
  70. package/dist/Field/PanelSearchInput.d.ts.map +1 -1
  71. package/dist/Field/PanelSearchInput.js +10 -5
  72. package/dist/Field/fieldStatusPlacement.d.ts +15 -0
  73. package/dist/Field/fieldStatusPlacement.d.ts.map +1 -0
  74. package/dist/Field/fieldStatusPlacement.js +1 -0
  75. package/dist/FieldStatus/FieldStatus.d.ts +16 -28
  76. package/dist/FieldStatus/FieldStatus.d.ts.map +1 -1
  77. package/dist/FieldStatus/FieldStatus.js +25 -3
  78. package/dist/FieldStatus/index.d.ts +7 -0
  79. package/dist/FieldStatus/index.d.ts.map +1 -1
  80. package/dist/FileInput/FileInput.d.ts +10 -2
  81. package/dist/FileInput/FileInput.d.ts.map +1 -1
  82. package/dist/FileInput/FileInput.js +86 -35
  83. package/dist/Item/Item.js +5 -5
  84. package/dist/Item/ItemSwipeLayer.d.ts.map +1 -1
  85. package/dist/Item/ItemSwipeLayer.js +8 -2
  86. package/dist/Layer/useTouchTrigger.d.ts +35 -3
  87. package/dist/Layer/useTouchTrigger.d.ts.map +1 -1
  88. package/dist/Layer/useTouchTrigger.js +80 -11
  89. package/dist/Link/Link.d.ts.map +1 -1
  90. package/dist/Link/Link.js +10 -1
  91. package/dist/Markdown/Markdown.d.ts.map +1 -1
  92. package/dist/Markdown/Markdown.js +1 -0
  93. package/dist/MetadataList/MetadataList.d.ts.map +1 -1
  94. package/dist/MetadataList/MetadataList.js +2 -1
  95. package/dist/MetadataList/MetadataListItem.d.ts.map +1 -1
  96. package/dist/MetadataList/MetadataListItem.js +2 -1
  97. package/dist/MultiSelector/MultiSelector.d.ts +2 -2
  98. package/dist/MultiSelector/MultiSelector.d.ts.map +1 -1
  99. package/dist/MultiSelector/MultiSelector.js +35 -25
  100. package/dist/MultiSelector/hooks.d.ts.map +1 -1
  101. package/dist/MultiSelector/hooks.js +4 -2
  102. package/dist/NumberInput/NumberInput.d.ts +3 -2
  103. package/dist/NumberInput/NumberInput.d.ts.map +1 -1
  104. package/dist/NumberInput/NumberInput.js +11 -15
  105. package/dist/OverflowList/OverflowList.d.ts.map +1 -1
  106. package/dist/OverflowList/OverflowList.js +2 -1
  107. package/dist/Pagination/Pagination.d.ts.map +1 -1
  108. package/dist/Popover/Popover.js +2 -2
  109. package/dist/Popover/usePopover.d.ts +7 -1
  110. package/dist/Popover/usePopover.d.ts.map +1 -1
  111. package/dist/Popover/usePopover.js +8 -2
  112. package/dist/PowerSearch/PowerSearch.d.ts +3 -2
  113. package/dist/PowerSearch/PowerSearch.d.ts.map +1 -1
  114. package/dist/PowerSearch/PowerSearch.js +4 -2
  115. package/dist/RadioList/RadioList.d.ts.map +1 -1
  116. package/dist/RadioList/RadioList.js +7 -2
  117. package/dist/RadioList/RadioListItem.d.ts.map +1 -1
  118. package/dist/RadioList/RadioListItem.js +8 -2
  119. package/dist/RadioList/RadioListReasonContext.d.ts +2 -0
  120. package/dist/RadioList/RadioListReasonContext.d.ts.map +1 -0
  121. package/dist/RadioList/RadioListReasonContext.js +22 -0
  122. package/dist/Resizable/useResizable.d.ts.map +1 -1
  123. package/dist/Resizable/useResizable.js +53 -10
  124. package/dist/SegmentedControl/SegmentedControl.d.ts.map +1 -1
  125. package/dist/SegmentedControl/SegmentedControl.js +22 -5
  126. package/dist/SegmentedControl/SegmentedControlContext.d.ts +6 -0
  127. package/dist/SegmentedControl/SegmentedControlContext.d.ts.map +1 -1
  128. package/dist/SegmentedControl/SegmentedControlItem.d.ts +1 -1
  129. package/dist/SegmentedControl/SegmentedControlItem.d.ts.map +1 -1
  130. package/dist/SegmentedControl/SegmentedControlItem.js +16 -3
  131. package/dist/Selector/Selector.d.ts +3 -3
  132. package/dist/Selector/Selector.d.ts.map +1 -1
  133. package/dist/Selector/Selector.js +14 -8
  134. package/dist/Selector/hooks.js +2 -2
  135. package/dist/Selector/useSelectorPresentation.d.ts +7 -1
  136. package/dist/Selector/useSelectorPresentation.d.ts.map +1 -1
  137. package/dist/Selector/useSelectorPresentation.js +2 -1
  138. package/dist/SideNav/railMotion.d.ts +5 -5
  139. package/dist/SideNav/railMotion.d.ts.map +1 -1
  140. package/dist/SideNav/railMotion.js +69 -177
  141. package/dist/Slider/Slider.d.ts.map +1 -1
  142. package/dist/Slider/Slider.js +100 -17
  143. package/dist/Table/BaseTable.d.ts.map +1 -1
  144. package/dist/Table/BaseTable.js +7 -6
  145. package/dist/Table/glidingDivider.d.ts +8 -1
  146. package/dist/Table/glidingDivider.d.ts.map +1 -1
  147. package/dist/Table/glidingDivider.js +8 -3
  148. package/dist/Table/plugins/sortable/useTableSortable.d.ts.map +1 -1
  149. package/dist/Table/plugins/stickyColumns/useTableStickyColumns.d.ts.map +1 -1
  150. package/dist/Table/plugins/stickyColumns/useTableStickyColumns.js +1 -2
  151. package/dist/TextArea/TextArea.d.ts +2 -2
  152. package/dist/TextArea/TextArea.d.ts.map +1 -1
  153. package/dist/TextInput/TextInput.d.ts +3 -2
  154. package/dist/TextInput/TextInput.d.ts.map +1 -1
  155. package/dist/TimeInput/TimeInput.d.ts +3 -2
  156. package/dist/TimeInput/TimeInput.d.ts.map +1 -1
  157. package/dist/Timer/Timer.js +1 -1
  158. package/dist/Toast/useToast.d.ts.map +1 -1
  159. package/dist/Toast/useToast.js +8 -2
  160. package/dist/ToggleButton/ToggleButton.d.ts.map +1 -1
  161. package/dist/ToggleButton/ToggleButton.js +11 -3
  162. package/dist/Token/Token.d.ts +1 -1
  163. package/dist/Token/Token.d.ts.map +1 -1
  164. package/dist/Token/Token.js +15 -0
  165. package/dist/Tokenizer/Tokenizer.d.ts +3 -2
  166. package/dist/Tokenizer/Tokenizer.d.ts.map +1 -1
  167. package/dist/Tokenizer/Tokenizer.js +73 -50
  168. package/dist/Tokenizer/TokenizerBottomSheet.d.ts +1 -1
  169. package/dist/Tokenizer/TokenizerBottomSheet.d.ts.map +1 -1
  170. package/dist/Tokenizer/TokenizerBottomSheet.js +9 -15
  171. package/dist/TopNav/TopNavMegaMenu.d.ts.map +1 -1
  172. package/dist/TopNav/TopNavMegaMenu.js +4 -3
  173. package/dist/TreeList/TreeList.d.ts.map +1 -1
  174. package/dist/TreeList/TreeList.js +6 -3
  175. package/dist/TreeList/TreeListItem.d.ts.map +1 -1
  176. package/dist/TreeList/TreeListItem.js +4 -3
  177. package/dist/Typeahead/BaseTypeahead.d.ts +4 -1
  178. package/dist/Typeahead/BaseTypeahead.d.ts.map +1 -1
  179. package/dist/Typeahead/BaseTypeahead.js +262 -43
  180. package/dist/Typeahead/Typeahead.d.ts +3 -2
  181. package/dist/Typeahead/Typeahead.d.ts.map +1 -1
  182. package/dist/Typeahead/Typeahead.js +36 -10
  183. package/dist/Typeahead/index.d.ts +1 -1
  184. package/dist/Typeahead/index.d.ts.map +1 -1
  185. package/dist/Typeahead/types.d.ts +26 -3
  186. package/dist/Typeahead/types.d.ts.map +1 -1
  187. package/dist/astryx.css +1 -2
  188. package/dist/gestures/haptics.d.ts.map +1 -1
  189. package/dist/gestures/haptics.js +1 -5
  190. package/dist/hooks/menuPressMarker.d.ts +13 -0
  191. package/dist/hooks/menuPressMarker.d.ts.map +1 -0
  192. package/dist/hooks/menuPressMarker.js +15 -0
  193. package/dist/hooks/useClickableContainer.d.ts +24 -4
  194. package/dist/hooks/useClickableContainer.d.ts.map +1 -1
  195. package/dist/hooks/useClickableContainer.js +41 -14
  196. package/dist/hooks/useFocusReturnVisibility.d.ts +8 -1
  197. package/dist/hooks/useFocusReturnVisibility.d.ts.map +1 -1
  198. package/dist/hooks/useFocusReturnVisibility.js +14 -8
  199. package/dist/hooks/useInputStatusIcon.d.ts +2 -2
  200. package/dist/hooks/useInputStatusIcon.d.ts.map +1 -1
  201. package/dist/hooks/useInputStatusIcon.js +1 -2
  202. package/dist/hooks/useListFocus.d.ts +19 -0
  203. package/dist/hooks/useListFocus.d.ts.map +1 -1
  204. package/dist/hooks/useListFocus.js +26 -1
  205. package/dist/hooks/useMenuPress.d.ts +2 -2
  206. package/dist/hooks/useMenuPress.d.ts.map +1 -1
  207. package/dist/hooks/useMenuPress.js +5 -6
  208. package/dist/hooks/useTreeFocus.d.ts.map +1 -1
  209. package/dist/hooks/useTreeFocus.js +13 -5
  210. package/dist/hooks/useTypeahead.d.ts +3 -1
  211. package/dist/hooks/useTypeahead.d.ts.map +1 -1
  212. package/dist/hooks/useTypeahead.js +21 -15
  213. package/dist/i18n/generated-locales/en.generated.d.ts.map +1 -1
  214. package/dist/i18n/generated-locales/en.generated.js +6 -0
  215. package/dist/i18n/generated-locales/pseudo.generated.d.ts.map +1 -1
  216. package/dist/i18n/generated-locales/pseudo.generated.js +6 -0
  217. package/dist/i18n/useListFormatter.d.ts +9 -0
  218. package/dist/i18n/useListFormatter.d.ts.map +1 -0
  219. package/dist/i18n/useListFormatter.js +41 -0
  220. package/dist/motion/animatedLayout.d.ts +130 -5
  221. package/dist/motion/animatedLayout.d.ts.map +1 -1
  222. package/dist/motion/animatedLayout.js +771 -44
  223. package/dist/motion/animator.d.ts.map +1 -1
  224. package/dist/motion/animator.js +38 -2
  225. package/dist/privateAttributes/segmentDisabled.stylex.d.ts +5 -0
  226. package/dist/privateAttributes/segmentDisabled.stylex.d.ts.map +1 -0
  227. package/dist/privateAttributes/segmentDisabled.stylex.js +28 -0
  228. package/dist/theme/Theme.d.ts +10 -0
  229. package/dist/theme/Theme.d.ts.map +1 -1
  230. package/dist/theme/Theme.js +8 -4
  231. package/dist/theme/useTheme.d.ts.map +1 -1
  232. package/dist/theme/useTheme.js +7 -1
  233. package/dist/utils/focusReturn.d.ts +5 -3
  234. package/dist/utils/focusReturn.d.ts.map +1 -1
  235. package/dist/utils/focusReturn.js +6 -4
  236. package/dist/utils/getNodeText.d.ts.map +1 -1
  237. package/dist/utils/getNodeText.js +2 -1
  238. package/dist/utils/interactionModality.d.ts +78 -7
  239. package/dist/utils/interactionModality.d.ts.map +1 -1
  240. package/dist/utils/interactionModality.js +125 -42
  241. package/dist/utils/pressDisabled.d.ts +21 -0
  242. package/dist/utils/pressDisabled.d.ts.map +1 -0
  243. package/dist/utils/pressDisabled.js +32 -0
  244. package/dist/utils/pressFeedback.d.ts.map +1 -1
  245. package/dist/utils/pressFeedback.js +5 -3
  246. package/dist/utils/typeaheadMatch.d.ts +24 -0
  247. package/dist/utils/typeaheadMatch.d.ts.map +1 -0
  248. package/dist/utils/typeaheadMatch.js +112 -0
  249. package/locales/en.json +25 -1
  250. package/locales/pseudo.json +18 -0
  251. package/package.json +19 -5
  252. package/src/AppShell/AppShell.tsx +0 -9
  253. package/src/Badge/Badge.tsx +2 -1
  254. package/src/BottomSheet/BottomSheet.tsx +4 -2
  255. package/src/BottomSheet/BottomSheetPanel.tsx +39 -8
  256. package/src/BottomSheet/BottomSheetSwitcher.tsx +1 -1
  257. package/src/BottomSheet/useMobileKeyboard.ts +51 -10
  258. package/src/BottomSheet/useSheetGestures.ts +92 -15
  259. package/src/Breadcrumbs/BreadcrumbItem.tsx +2 -1
  260. package/src/Center/Center.tsx +1 -1
  261. package/src/Chat/ChatComposer.tsx +7 -10
  262. package/src/Chat/ChatComposerDrawer.tsx +1 -1
  263. package/src/Chat/ChatComposerInput.tsx +1 -1
  264. package/src/Chat/ChatLayout.tsx +1 -6
  265. package/src/Chat/ChatMessageList.tsx +1 -0
  266. package/src/Chat/ChatPastedTextToken.tsx +14 -4
  267. package/src/Chat/ChatSystemMessage.tsx +4 -1
  268. package/src/Chat/ChatToolCalls.tsx +5 -0
  269. package/src/CheckboxList/CheckboxList.tsx +7 -1
  270. package/src/CheckboxList/CheckboxListContext.tsx +8 -0
  271. package/src/CheckboxList/CheckboxListItem.tsx +8 -2
  272. package/src/Code/Code.tsx +1 -1
  273. package/src/CommandPalette/CommandPaletteInput.tsx +5 -8
  274. package/src/ComplexSelector/ComplexSelector.tsx +22 -4
  275. package/src/DateInput/DateInput.tsx +2 -2
  276. package/src/DateInput/MonthScroller.tsx +15 -17
  277. package/src/DateRangeInput/DateRangeInput.tsx +20 -5
  278. package/src/Dialog/Dialog.tsx +9 -25
  279. package/src/Drawer/Drawer.tsx +1 -1
  280. package/src/DropdownMenu/DropdownMenu.tsx +24 -9
  281. package/src/DropdownMenu/DropdownMenuGroup.tsx +2 -1
  282. package/src/DropdownMenu/DropdownMenuSubMenu.tsx +3 -1
  283. package/src/DropdownMenu/MenuBottomSheetActionList.tsx +6 -3
  284. package/src/Field/Field.doc.mjs +2 -1
  285. package/src/Field/Field.tsx +2 -2
  286. package/src/Field/FieldLabel.doc.mjs +4 -2
  287. package/src/Field/FieldLabel.tsx +18 -2
  288. package/src/Field/PanelSearchInput.tsx +7 -8
  289. package/src/Field/fieldStatusPlacement.ts +18 -0
  290. package/src/FieldStatus/FieldStatus.tsx +33 -3
  291. package/src/FieldStatus/index.ts +7 -0
  292. package/src/FileInput/FileInput.doc.mjs +3 -3
  293. package/src/FileInput/FileInput.tsx +103 -36
  294. package/src/HoverCard/HoverCard.doc.mjs +3 -3
  295. package/src/HoverCard/useHoverCard.doc.mjs +1 -1
  296. package/src/Item/Item.tsx +5 -5
  297. package/src/Item/ItemSwipeLayer.tsx +8 -1
  298. package/src/Layer/useTouchTrigger.ts +107 -18
  299. package/src/Link/Link.tsx +9 -2
  300. package/src/Markdown/Markdown.tsx +1 -0
  301. package/src/MetadataList/MetadataList.tsx +4 -2
  302. package/src/MetadataList/MetadataListItem.tsx +2 -1
  303. package/src/MultiSelector/MultiSelector.tsx +57 -36
  304. package/src/MultiSelector/hooks.ts +7 -5
  305. package/src/NumberInput/NumberInput.tsx +13 -20
  306. package/src/OverflowList/OverflowList.tsx +2 -1
  307. package/src/Pagination/Pagination.tsx +1 -0
  308. package/src/Popover/Popover.tsx +2 -2
  309. package/src/Popover/usePopover.tsx +7 -2
  310. package/src/PowerSearch/PowerSearch.tsx +4 -2
  311. package/src/RadioList/RadioList.tsx +13 -2
  312. package/src/RadioList/RadioListItem.tsx +9 -1
  313. package/src/RadioList/RadioListReasonContext.ts +25 -0
  314. package/src/Resizable/useResizable.ts +50 -7
  315. package/src/SegmentedControl/SegmentedControl.tsx +43 -8
  316. package/src/SegmentedControl/SegmentedControlContext.ts +6 -0
  317. package/src/SegmentedControl/SegmentedControlItem.tsx +12 -1
  318. package/src/Selector/Selector.tsx +23 -9
  319. package/src/Selector/hooks.ts +2 -2
  320. package/src/Selector/useSelectorPresentation.ts +8 -1
  321. package/src/SideNav/railMotion.ts +73 -179
  322. package/src/Slider/Slider.tsx +116 -19
  323. package/src/Table/BaseTable.tsx +10 -6
  324. package/src/Table/glidingDivider.ts +8 -3
  325. package/src/Table/plugins/sortable/useTableSortable.tsx +2 -0
  326. package/src/Table/plugins/stickyColumns/useTableStickyColumns.tsx +1 -2
  327. package/src/TextArea/TextArea.tsx +3 -2
  328. package/src/TextInput/TextInput.tsx +2 -2
  329. package/src/TimeInput/TimeInput.tsx +2 -2
  330. package/src/Timer/Timer.tsx +1 -1
  331. package/src/Toast/useToast.tsx +8 -3
  332. package/src/ToggleButton/ToggleButton.tsx +10 -3
  333. package/src/Token/Token.tsx +15 -0
  334. package/src/Tokenizer/Tokenizer.doc.mjs +12 -8
  335. package/src/Tokenizer/Tokenizer.tsx +81 -53
  336. package/src/Tokenizer/TokenizerBottomSheet.tsx +9 -15
  337. package/src/Tooltip/Tooltip.doc.mjs +3 -3
  338. package/src/Tooltip/useTooltip.doc.mjs +1 -1
  339. package/src/TopNav/TopNavMegaMenu.tsx +4 -3
  340. package/src/TreeList/TreeList.tsx +6 -3
  341. package/src/TreeList/TreeListItem.tsx +5 -3
  342. package/src/Typeahead/BaseTypeahead.doc.mjs +7 -4
  343. package/src/Typeahead/BaseTypeahead.tsx +314 -40
  344. package/src/Typeahead/Typeahead.doc.mjs +21 -4
  345. package/src/Typeahead/Typeahead.tsx +42 -11
  346. package/src/Typeahead/TypeaheadItem.doc.mjs +6 -3
  347. package/src/Typeahead/index.ts +1 -1
  348. package/src/Typeahead/types.ts +27 -3
  349. package/src/gestures/haptics.ts +1 -8
  350. package/src/hooks/menuPressMarker.ts +15 -0
  351. package/src/hooks/useClickableContainer.ts +48 -17
  352. package/src/hooks/useFocusReturnVisibility.ts +15 -12
  353. package/src/hooks/useInputStatusIcon.tsx +2 -2
  354. package/src/hooks/useListFocus.ts +38 -1
  355. package/src/hooks/useMenuPress.ts +5 -5
  356. package/src/hooks/useTreeFocus.doc.mjs +2 -2
  357. package/src/hooks/useTreeFocus.ts +16 -10
  358. package/src/hooks/useTypeahead.doc.mjs +2 -2
  359. package/src/hooks/useTypeahead.ts +21 -20
  360. package/src/i18n/generated-locales/en.generated.ts +8 -0
  361. package/src/i18n/generated-locales/pseudo.generated.ts +8 -0
  362. package/src/i18n/useListFormatter.ts +42 -0
  363. package/src/motion/animatedLayout.ts +977 -45
  364. package/src/motion/animator.ts +55 -2
  365. package/src/privateAttributes/segmentDisabled.stylex.ts +28 -0
  366. package/src/theme/Theme.tsx +8 -4
  367. package/src/theme/useTheme.ts +6 -1
  368. package/src/utils/focusReturn.ts +6 -4
  369. package/src/utils/getNodeText.ts +2 -1
  370. package/src/utils/interactionModality.ts +165 -44
  371. package/src/utils/pressDisabled.ts +32 -0
  372. package/src/utils/pressFeedback.ts +5 -3
  373. package/src/utils/typeaheadMatch.ts +141 -0
  374. package/dist/Item/ItemMarkerColumns.a11y.chromium.spec.d.ts +0 -2
  375. package/dist/Item/ItemMarkerColumns.a11y.chromium.spec.js +0 -132
  376. package/dist/Lightbox/LightboxKeyboard.a11y.browser.spec.d.ts +0 -2
  377. package/dist/Lightbox/LightboxKeyboard.a11y.browser.spec.js +0 -78
  378. package/dist/Lightbox/LightboxViewport.a11y.browser.spec.d.ts +0 -2
  379. package/dist/Lightbox/LightboxViewport.a11y.browser.spec.js +0 -66
  380. package/dist/List/ListMarkers.a11y.chromium.spec.d.ts +0 -2
  381. package/dist/List/ListMarkers.a11y.chromium.spec.js +0 -677
  382. package/dist/Markdown/Markdown.fr23.bench.d.ts +0 -2
  383. package/dist/Markdown/Markdown.fr23.bench.d.ts.map +0 -1
  384. package/dist/Markdown/Markdown.fr23.bench.js +0 -152
  385. package/dist/Markdown/MarkdownTable.a11y.chromium.spec.d.ts +0 -2
  386. package/dist/Markdown/MarkdownTable.a11y.chromium.spec.js +0 -590
  387. package/dist/Markdown/plugins/headingLinks.a11y.chromium.spec.d.ts +0 -2
  388. package/dist/Markdown/plugins/headingLinks.a11y.chromium.spec.js +0 -657
  389. package/dist/MobileNav/MobileNavPinchZoom.a11y.chromium.spec.d.ts +0 -2
  390. package/dist/MobileNav/MobileNavPinchZoom.a11y.chromium.spec.js +0 -153
  391. package/dist/MultiSelector/CreateRow.a11y.chromium.spec.d.ts +0 -2
  392. package/dist/MultiSelector/CreateRow.a11y.chromium.spec.js +0 -117
  393. package/dist/MultiSelector/MultiSelector.disabledFocus.a11y.chromium.spec.d.ts +0 -2
  394. package/dist/MultiSelector/MultiSelector.disabledFocus.a11y.chromium.spec.js +0 -49
  395. package/dist/MultiSelector/OptionActions.a11y.chromium.spec.d.ts +0 -2
  396. package/dist/MultiSelector/OptionActions.a11y.chromium.spec.js +0 -273
  397. package/dist/Outline/OutlineFocus.a11y.chromium.spec.d.ts +0 -2
  398. package/dist/Outline/OutlineFocus.a11y.chromium.spec.js +0 -421
  399. package/dist/Typeahead/BaseTypeahead.emptyState.a11y.chromium.spec.d.ts +0 -2
  400. package/dist/Typeahead/BaseTypeahead.emptyState.a11y.chromium.spec.js +0 -118
  401. package/dist/reset.a11y.chromium.spec.d.ts +0 -2
  402. package/dist/reset.a11y.chromium.spec.js +0 -231
  403. package/dist/reset.until-found.a11y.browser.spec.d.ts +0 -2
  404. package/dist/reset.until-found.a11y.browser.spec.js +0 -72
  405. package/src/AlertDialog/AlertDialog.spec.md +0 -259
  406. package/src/AlertDialog/AlertDialog.test.tsx +0 -519
  407. package/src/AlertDialog/__tests__/AlertDialog.a11y.chromium.spec.ts +0 -128
  408. package/src/AlertDialog/__tests__/AlertDialog.a11y.renders.tsx +0 -52
  409. package/src/AlertDialog/__tests__/AlertDialog.a11y.states.ts +0 -68
  410. package/src/AlertDialog/__tests__/AlertDialog.a11y.test.tsx +0 -144
  411. package/src/AlertDialog/useImperativeAlertDialog.test.tsx +0 -163
  412. package/src/AppShell/AppShell.spec.md +0 -331
  413. package/src/AppShell/AppShell.test.tsx +0 -1310
  414. package/src/AppShell/__tests__/AppShellMainKeyboard.a11y.browser.spec.ts +0 -534
  415. package/src/AppShell/observeMainOverflow.test.ts +0 -173
  416. package/src/AspectRatio/AspectRatio.spec.md +0 -179
  417. package/src/AspectRatio/AspectRatio.test.tsx +0 -398
  418. package/src/AspectRatio/__tests__/AspectRatioFitLayers.a11y.browser.spec.ts +0 -158
  419. package/src/Avatar/Avatar.spec.md +0 -253
  420. package/src/Avatar/Avatar.test.tsx +0 -867
  421. package/src/Avatar/AvatarStatusDot.spec.md +0 -208
  422. package/src/Avatar/AvatarStatusDot.test.tsx +0 -306
  423. package/src/Avatar/__tests__/AvatarForcedColors.a11y.chromium.spec.ts +0 -126
  424. package/src/AvatarGroup/AvatarGroup.spec.md +0 -205
  425. package/src/AvatarGroup/AvatarGroup.test.tsx +0 -313
  426. package/src/AvatarGroup/AvatarGroupOverflow.spec.md +0 -210
  427. package/src/AvatarGroup/AvatarGroupOverflow.test.tsx +0 -263
  428. package/src/Badge/Badge.spec.md +0 -207
  429. package/src/Badge/Badge.test.tsx +0 -125
  430. package/src/Badge/__tests__/BadgeLargerText.a11y.chromium.spec.ts +0 -260
  431. package/src/Banner/Banner.spec.md +0 -282
  432. package/src/Banner/Banner.test.tsx +0 -879
  433. package/src/Blockquote/Blockquote.spec.md +0 -171
  434. package/src/Blockquote/Blockquote.test.tsx +0 -121
  435. package/src/BottomSheet/BottomSheet.spec.md +0 -457
  436. package/src/BottomSheet/BottomSheet.test.tsx +0 -3154
  437. package/src/BottomSheet/BottomSheetEdgeTint.test.tsx +0 -248
  438. package/src/BottomSheet/BottomSheetKeyboard.test.tsx +0 -195
  439. package/src/BottomSheet/BottomSheetPanel.test.tsx +0 -549
  440. package/src/BottomSheet/BottomSheetReplace.test.tsx +0 -1638
  441. package/src/BottomSheet/BottomSheetStacking.announce.test.tsx +0 -246
  442. package/src/BottomSheet/BottomSheetStacking.test.tsx +0 -3184
  443. package/src/BottomSheet/BottomSheetSwitcher.spec.md +0 -367
  444. package/src/BottomSheet/BottomSheetSwitcher.test.tsx +0 -2010
  445. package/src/BottomSheet/__tests__/BottomSheetDrag.a11y.chromium.spec.ts +0 -129
  446. package/src/BottomSheet/__tests__/BottomSheetFocusReturn.a11y.browser.spec.ts +0 -97
  447. package/src/BottomSheet/__tests__/BottomSheetKeyboard.a11y.browser.spec.ts +0 -415
  448. package/src/BottomSheet/__tests__/BottomSheetNativeModal.a11y.browser.spec.ts +0 -462
  449. package/src/BottomSheet/__tests__/BottomSheetPinchZoom.a11y.chromium.spec.ts +0 -247
  450. package/src/BottomSheet/__tests__/BottomSheetToastOutlet.a11y.chromium.spec.ts +0 -83
  451. package/src/BottomSheet/snapOffsets.test.ts +0 -254
  452. package/src/BottomSheet/useSheetGestures.test.ts +0 -1690
  453. package/src/Breadcrumbs/BreadcrumbItem.spec.md +0 -269
  454. package/src/Breadcrumbs/Breadcrumbs.spec.md +0 -165
  455. package/src/Breadcrumbs/Breadcrumbs.test.tsx +0 -921
  456. package/src/Breadcrumbs/__tests__/Breadcrumbs.a11y.chromium.spec.ts +0 -132
  457. package/src/Breadcrumbs/__tests__/Breadcrumbs.a11y.renders.tsx +0 -45
  458. package/src/Breadcrumbs/__tests__/Breadcrumbs.a11y.states.ts +0 -81
  459. package/src/Breadcrumbs/__tests__/Breadcrumbs.a11y.test.tsx +0 -125
  460. package/src/Button/Button.spec.md +0 -322
  461. package/src/Button/Button.test.tsx +0 -864
  462. package/src/Button/__tests__/Button.a11y.chromium.spec.ts +0 -355
  463. package/src/Button/__tests__/Button.a11y.harnesses.tsx +0 -47
  464. package/src/Button/__tests__/Button.a11y.known-failures.ts +0 -25
  465. package/src/Button/__tests__/Button.a11y.renders.tsx +0 -139
  466. package/src/Button/__tests__/Button.a11y.states.ts +0 -317
  467. package/src/Button/__tests__/Button.a11y.test.tsx +0 -187
  468. package/src/ButtonGroup/ButtonGroup.spec.md +0 -220
  469. package/src/ButtonGroup/ButtonGroup.test.tsx +0 -1025
  470. package/src/Calendar/Calendar.spec.md +0 -248
  471. package/src/Calendar/Calendar.test.tsx +0 -2186
  472. package/src/Calendar/__tests__/Calendar.a11y.chromium.spec.ts +0 -141
  473. package/src/Calendar/__tests__/Calendar.a11y.known-failures.ts +0 -12
  474. package/src/Calendar/__tests__/Calendar.a11y.renders.tsx +0 -57
  475. package/src/Calendar/__tests__/Calendar.a11y.states.ts +0 -139
  476. package/src/Calendar/__tests__/Calendar.a11y.test.tsx +0 -137
  477. package/src/Calendar/dayCellUtils.test.ts +0 -520
  478. package/src/Calendar/getInitialFocusDate.test.ts +0 -94
  479. package/src/Calendar/getStandaloneShortWeekdayNames.test.ts +0 -54
  480. package/src/Calendar/hooks/useCalendarConstraints.test.ts +0 -153
  481. package/src/Calendar/hooks/useCalendarDays.test.ts +0 -265
  482. package/src/Calendar/hooks/useCalendarNavigation.test.ts +0 -252
  483. package/src/Card/Card.spec.md +0 -205
  484. package/src/Card/Card.test.tsx +0 -202
  485. package/src/Carousel/Carousel.spec.md +0 -146
  486. package/src/Carousel/Carousel.test.tsx +0 -1036
  487. package/src/Carousel/__tests__/Carousel.a11y.chromium.spec.ts +0 -207
  488. package/src/Carousel/__tests__/Carousel.a11y.known-failures.ts +0 -12
  489. package/src/Carousel/__tests__/Carousel.a11y.renders.tsx +0 -39
  490. package/src/Carousel/__tests__/Carousel.a11y.states.ts +0 -139
  491. package/src/Carousel/__tests__/Carousel.a11y.test.tsx +0 -127
  492. package/src/Center/Center.spec.md +0 -205
  493. package/src/Center/Center.test.tsx +0 -406
  494. package/src/Chat/ChatComposer.spec.md +0 -246
  495. package/src/Chat/ChatComposer.test.tsx +0 -364
  496. package/src/Chat/ChatComposerDrawer.spec.md +0 -267
  497. package/src/Chat/ChatComposerDrawer.test.tsx +0 -130
  498. package/src/Chat/ChatComposerInput.spec.md +0 -224
  499. package/src/Chat/ChatComposerInput.test.tsx +0 -2136
  500. package/src/Chat/ChatComposerTokenElement.spec.md +0 -164
  501. package/src/Chat/ChatComposerTokenElement.test.tsx +0 -85
  502. package/src/Chat/ChatDictationButton.spec.md +0 -205
  503. package/src/Chat/ChatDictationButton.test.tsx +0 -108
  504. package/src/Chat/ChatLayout.spec.md +0 -276
  505. package/src/Chat/ChatLayout.test.tsx +0 -311
  506. package/src/Chat/ChatLayoutScrollButton.spec.md +0 -322
  507. package/src/Chat/ChatLayoutScrollButton.test.tsx +0 -99
  508. package/src/Chat/ChatMessage.spec.md +0 -265
  509. package/src/Chat/ChatMessage.test.tsx +0 -344
  510. package/src/Chat/ChatMessageBubble.spec.md +0 -263
  511. package/src/Chat/ChatMessageBubble.test.tsx +0 -294
  512. package/src/Chat/ChatMessageList.spec.md +0 -222
  513. package/src/Chat/ChatMessageList.test.tsx +0 -198
  514. package/src/Chat/ChatMessageMetadata.spec.md +0 -220
  515. package/src/Chat/ChatMessageMetadata.test.tsx +0 -66
  516. package/src/Chat/ChatPastedTextToken.test.tsx +0 -71
  517. package/src/Chat/ChatSendButton.spec.md +0 -238
  518. package/src/Chat/ChatSendButton.test.tsx +0 -309
  519. package/src/Chat/ChatSystemMessage.spec.md +0 -224
  520. package/src/Chat/ChatSystemMessage.test.tsx +0 -189
  521. package/src/Chat/ChatTokenizedText.spec.md +0 -190
  522. package/src/Chat/ChatTokenizedText.test.tsx +0 -163
  523. package/src/Chat/ChatToolCalls.spec.md +0 -194
  524. package/src/Chat/ChatToolCalls.test.tsx +0 -413
  525. package/src/Chat/__tests__/ChatLayoutScrollButton.a11y.chromium.spec.ts +0 -577
  526. package/src/Chat/__tests__/ChatLayoutScrollButtonSurface.a11y.chromium.spec.ts +0 -740
  527. package/src/Chat/__tests__/ChatMessageBubble.a11y.chromium.spec.ts +0 -457
  528. package/src/Chat/__tests__/ChatMessageBubble.auditProvenance.test.ts +0 -91
  529. package/src/Chat/__tests__/ChatMessageBubble.auditProvenance.ts +0 -91
  530. package/src/Chat/__tests__/ChatMessageList.a11y.chromium.spec.ts +0 -465
  531. package/src/Chat/__tests__/ChatMessageMetadata.a11y.chromium.spec.ts +0 -416
  532. package/src/Chat/__tests__/ChatSendButton.a11y.chromium.spec.ts +0 -1523
  533. package/src/Chat/__tests__/ChatSystemMessage.a11y.chromium.spec.ts +0 -1004
  534. package/src/Chat/__tests__/ChatTokenizedText.a11y.chromium.spec.ts +0 -574
  535. package/src/Chat/__tests__/useChatStreamScroll.a11y.chromium.spec.ts +0 -263
  536. package/src/Chat/__tests__/useChatStreamScroll.fixture.tsx +0 -61
  537. package/src/Chat/useChatDictation.test.tsx +0 -369
  538. package/src/Chat/useChatNewMessages.test.tsx +0 -209
  539. package/src/Chat/useChatPasteAsToken.test.ts +0 -191
  540. package/src/Chat/useChatStreamScroll.test.tsx +0 -381
  541. package/src/Chat/useTriggerMenu.test.tsx +0 -994
  542. package/src/CheckboxInput/CheckboxInput.spec.md +0 -218
  543. package/src/CheckboxInput/CheckboxInput.test.tsx +0 -926
  544. package/src/CheckboxInput/__tests__/Checkbox.a11y.chromium.spec.ts +0 -354
  545. package/src/CheckboxInput/__tests__/Checkbox.a11y.known-failures.ts +0 -54
  546. package/src/CheckboxInput/__tests__/Checkbox.a11y.renders.tsx +0 -310
  547. package/src/CheckboxInput/__tests__/Checkbox.a11y.states.ts +0 -404
  548. package/src/CheckboxInput/__tests__/Checkbox.a11y.test.tsx +0 -128
  549. package/src/CheckboxList/CheckboxList.fr10.test.tsx +0 -51
  550. package/src/CheckboxList/CheckboxList.spec.md +0 -332
  551. package/src/CheckboxList/CheckboxList.test.tsx +0 -1159
  552. package/src/CheckboxList/CheckboxListItem.spec.md +0 -302
  553. package/src/CheckboxList/__tests__/CheckboxList.a11y.chromium.spec.ts +0 -1998
  554. package/src/Citation/Citation.spec.md +0 -179
  555. package/src/Citation/Citation.test.tsx +0 -361
  556. package/src/ClickableCard/ClickableCard.spec.md +0 -241
  557. package/src/ClickableCard/ClickableCard.test.tsx +0 -382
  558. package/src/Code/Code.spec.md +0 -170
  559. package/src/Code/Code.test.tsx +0 -75
  560. package/src/CodeBlock/CodeBlock.highlightStyles.test.tsx +0 -87
  561. package/src/CodeBlock/CodeBlock.spec.md +0 -243
  562. package/src/CodeBlock/CodeBlock.test.tsx +0 -752
  563. package/src/CodeBlock/CodeLanguage.test.tsx +0 -173
  564. package/src/CodeBlock/__tests__/CodeBlockCopyClearance.a11y.chromium.spec.ts +0 -325
  565. package/src/CodeBlock/__tests__/CodeBlockLanguages.a11y.chromium.spec.ts +0 -64
  566. package/src/CodeBlock/__tests__/CodeBlockOverflowStop.a11y.chromium.spec.ts +0 -126
  567. package/src/CodeBlock/__tests__/DiffRowPaint.a11y.chromium.spec.ts +0 -94
  568. package/src/CodeBlock/highlightRanges.test.ts +0 -253
  569. package/src/CodeBlock/languages.test.ts +0 -402
  570. package/src/CodeBlock/tokenizer.test.ts +0 -280
  571. package/src/CodeBlock/tokenizerBudget.test.ts +0 -112
  572. package/src/Collapsible/Collapsible.spec.md +0 -247
  573. package/src/Collapsible/Collapsible.test.tsx +0 -620
  574. package/src/Collapsible/CollapsibleGroup.spec.md +0 -229
  575. package/src/Collapsible/CollapsibleGroup.test.tsx +0 -656
  576. package/src/Collapsible/__tests__/Collapsible.a11y.chromium.spec.ts +0 -194
  577. package/src/Collapsible/__tests__/Collapsible.a11y.states.ts +0 -117
  578. package/src/Collapsible/__tests__/Collapsible.a11y.test.tsx +0 -140
  579. package/src/Collapsible/__tests__/CollapsibleGroup.a11y.chromium.spec.ts +0 -559
  580. package/src/Collapsible/__tests__/CollapsibleGroup.a11y.renders.tsx +0 -45
  581. package/src/Collapsible/__tests__/CollapsibleGroup.a11y.states.ts +0 -139
  582. package/src/Collapsible/__tests__/CollapsibleGroup.a11y.test.tsx +0 -135
  583. package/src/Collapsible/__tests__/CollapsibleGroupAccordion.a11y.chromium.spec.ts +0 -141
  584. package/src/Collapsible/useCollapsible.test.tsx +0 -236
  585. package/src/CommandPalette/CommandPalette.perf.test.ts +0 -100
  586. package/src/CommandPalette/CommandPalette.spec.md +0 -278
  587. package/src/CommandPalette/CommandPalette.test.tsx +0 -750
  588. package/src/CommandPalette/CommandPaletteEmpty.spec.md +0 -190
  589. package/src/CommandPalette/CommandPaletteEmpty.test.tsx +0 -101
  590. package/src/CommandPalette/CommandPaletteFooter.test.tsx +0 -122
  591. package/src/CommandPalette/CommandPaletteGroup.test.tsx +0 -129
  592. package/src/CommandPalette/CommandPaletteInput.spec.md +0 -215
  593. package/src/CommandPalette/CommandPaletteInput.test.tsx +0 -539
  594. package/src/CommandPalette/CommandPaletteItem.spec.md +0 -223
  595. package/src/CommandPalette/CommandPaletteItem.test.tsx +0 -417
  596. package/src/CommandPalette/CommandPaletteList.spec.md +0 -194
  597. package/src/CommandPalette/CommandPaletteList.test.tsx +0 -184
  598. package/src/CommandPalette/__tests__/CommandPalette.a11y.chromium.spec.ts +0 -600
  599. package/src/CommandPalette/__tests__/CommandPaletteEmptyAudit.a11y.chromium.spec.ts +0 -715
  600. package/src/CommandPalette/__tests__/CommandPaletteFooter.a11y.chromium.spec.ts +0 -582
  601. package/src/CommandPalette/__tests__/CommandPaletteInputAudit.a11y.chromium.spec.ts +0 -336
  602. package/src/CommandPalette/__tests__/CommandPaletteItemAudit.a11y.chromium.spec.ts +0 -523
  603. package/src/ComplexSelector/ComplexSelector.focusableDisabled.test.tsx +0 -76
  604. package/src/ComplexSelector/ComplexSelector.fr10.test.tsx +0 -262
  605. package/src/ComplexSelector/ComplexSelector.spec.md +0 -266
  606. package/src/ComplexSelector/ComplexSelector.test.tsx +0 -1171
  607. package/src/ComplexSelector/__tests__/ComplexSelector.a11y.chromium.spec.ts +0 -965
  608. package/src/ContextMenu/ContextMenu.spec.md +0 -279
  609. package/src/ContextMenu/ContextMenu.test.tsx +0 -1617
  610. package/src/ContextMenu/ContextMenu.triggerProps.test.tsx +0 -54
  611. package/src/ContextMenu/ContextMenuItem.spec.md +0 -132
  612. package/src/ContextMenu/__tests__/ContextMenuAudit.a11y.chromium.spec.ts +0 -439
  613. package/src/ContextMenu/__tests__/ContextMenuCursorAnchor.a11y.browser.spec.ts +0 -154
  614. package/src/ContextMenu/__tests__/ContextMenuLongPress.a11y.chromium.spec.ts +0 -117
  615. package/src/DateInput/DateInput.fr10.test.tsx +0 -283
  616. package/src/DateInput/DateInput.spec.md +0 -319
  617. package/src/DateInput/DateInput.test.tsx +0 -1571
  618. package/src/DateInput/DateInputTouch.test.tsx +0 -2948
  619. package/src/DateInput/MonthScrollerSettle.test.tsx +0 -165
  620. package/src/DateInput/NativeDateField.test.tsx +0 -741
  621. package/src/DateInput/Presentation.test.tsx +0 -121
  622. package/src/DateInput/__tests__/DateInputAudit.a11y.chromium.spec.ts +0 -577
  623. package/src/DateInput/__tests__/MonthScrollerSteps.interaction.browser.spec.ts +0 -312
  624. package/src/DateInput/__tests__/WheelPinchZoom.a11y.chromium.spec.ts +0 -171
  625. package/src/DateRangeInput/DateRangeInput.fr10.test.tsx +0 -165
  626. package/src/DateRangeInput/DateRangeInput.spec.md +0 -203
  627. package/src/DateRangeInput/DateRangeInput.test.tsx +0 -1151
  628. package/src/DateTimeInput/DateTimeInput.fr10.test.tsx +0 -319
  629. package/src/DateTimeInput/DateTimeInput.spec.md +0 -270
  630. package/src/DateTimeInput/DateTimeInput.test.tsx +0 -2656
  631. package/src/DateTimeInput/DateTimeInputTouch.test.tsx +0 -1071
  632. package/src/DateTimeInput/NativePickerSegments.test.tsx +0 -657
  633. package/src/DateTimeInput/Presentation.test.tsx +0 -89
  634. package/src/Dialog/Dialog.source-build.test.mjs +0 -43
  635. package/src/Dialog/Dialog.spec.md +0 -189
  636. package/src/Dialog/Dialog.test.tsx +0 -1599
  637. package/src/Dialog/DialogHeader.test.tsx +0 -477
  638. package/src/Dialog/__tests__/Dialog.a11y.browser.spec.ts +0 -111
  639. package/src/Dialog/__tests__/Dialog.a11y.chromium.spec.ts +0 -218
  640. package/src/Dialog/__tests__/Dialog.a11y.known-failures.ts +0 -28
  641. package/src/Dialog/__tests__/Dialog.a11y.renders.tsx +0 -107
  642. package/src/Dialog/__tests__/Dialog.a11y.states.ts +0 -104
  643. package/src/Dialog/__tests__/Dialog.a11y.test.tsx +0 -102
  644. package/src/Dialog/__tests__/Dialog.reduced-motion.a11y.browser.spec.ts +0 -252
  645. package/src/Dialog/__tests__/DialogSecondDocument.a11y.browser.spec.ts +0 -202
  646. package/src/Dialog/modules/DialogHeader.spec.md +0 -211
  647. package/src/Dialog/useImperativeDialog.test.tsx +0 -78
  648. package/src/Divider/Divider.spec.md +0 -252
  649. package/src/Divider/Divider.test.tsx +0 -155
  650. package/src/Drawer/Drawer.spec.md +0 -388
  651. package/src/Drawer/Drawer.test.tsx +0 -1335
  652. package/src/Drawer/DrawerDirection.test.tsx +0 -127
  653. package/src/Drawer/DrawerHeader.spec.md +0 -181
  654. package/src/Drawer/DrawerHeader.test.tsx +0 -102
  655. package/src/Drawer/__tests__/DrawerAudit.a11y.chromium.spec.ts +0 -402
  656. package/src/Drawer/__tests__/DrawerHeaderAudit.a11y.chromium.spec.ts +0 -298
  657. package/src/Drawer/__tests__/DrawerNonModalPageScroll.a11y.chromium.spec.ts +0 -267
  658. package/src/DropdownMenu/DropdownMenu.spec.md +0 -562
  659. package/src/DropdownMenu/DropdownMenu.ssr.test.tsx +0 -93
  660. package/src/DropdownMenu/DropdownMenu.test.tsx +0 -4498
  661. package/src/DropdownMenu/DropdownMenuCheckboxItem.spec.md +0 -192
  662. package/src/DropdownMenu/DropdownMenuContext.public.test.ts +0 -22
  663. package/src/DropdownMenu/DropdownMenuDivider.spec.md +0 -186
  664. package/src/DropdownMenu/DropdownMenuGroup.spec.md +0 -145
  665. package/src/DropdownMenu/DropdownMenuItem.spec.md +0 -215
  666. package/src/DropdownMenu/DropdownMenuLazySheet.test.tsx +0 -126
  667. package/src/DropdownMenu/DropdownMenuRadioGroup.spec.md +0 -187
  668. package/src/DropdownMenu/DropdownMenuRadioItem.spec.md +0 -227
  669. package/src/DropdownMenu/DropdownMenuSelectable.test.tsx +0 -635
  670. package/src/DropdownMenu/DropdownMenuSheetFirstOpen.test.tsx +0 -72
  671. package/src/DropdownMenu/DropdownMenuSubMenu.spec.md +0 -231
  672. package/src/DropdownMenu/DropdownMenuSubMenu.test.tsx +0 -2442
  673. package/src/DropdownMenu/__tests__/DropdownMenuDividerAudit.a11y.chromium.spec.ts +0 -281
  674. package/src/DropdownMenu/__tests__/DropdownMenuDrillIn.a11y.chromium.spec.ts +0 -175
  675. package/src/DropdownMenu/__tests__/DropdownMenuFocusReturn.a11y.browser.spec.ts +0 -74
  676. package/src/DropdownMenu/__tests__/DropdownMenuGroupAudit.a11y.chromium.spec.ts +0 -335
  677. package/src/DropdownMenu/__tests__/DropdownMenuItemAudit.a11y.chromium.spec.ts +0 -367
  678. package/src/DropdownMenu/__tests__/DropdownMenuRadioGroupAudit.a11y.chromium.spec.ts +0 -328
  679. package/src/DropdownMenu/__tests__/DropdownMenuRadioItemAudit.a11y.chromium.spec.ts +0 -540
  680. package/src/DropdownMenu/__tests__/DropdownMenuSubMenuAudit.a11y.chromium.spec.ts +0 -671
  681. package/src/DropdownMenu/__tests__/Menu.a11y.chromium.spec.ts +0 -158
  682. package/src/DropdownMenu/__tests__/Menu.a11y.known-failures.ts +0 -26
  683. package/src/DropdownMenu/__tests__/Menu.a11y.renders.tsx +0 -65
  684. package/src/DropdownMenu/__tests__/Menu.a11y.states.ts +0 -138
  685. package/src/DropdownMenu/__tests__/Menu.a11y.test.tsx +0 -136
  686. package/src/DropdownMenu/__tests__/MenuButton.a11y.chromium.spec.ts +0 -149
  687. package/src/DropdownMenu/__tests__/MenuButton.a11y.known-failures.ts +0 -12
  688. package/src/DropdownMenu/__tests__/MenuButton.a11y.renders.tsx +0 -67
  689. package/src/DropdownMenu/__tests__/MenuButton.a11y.states.ts +0 -141
  690. package/src/DropdownMenu/__tests__/MenuButton.a11y.test.tsx +0 -138
  691. package/src/DropdownMenu/__tests__/MenuHeaderFooter.a11y.chromium.spec.ts +0 -231
  692. package/src/DropdownMenu/__tests__/MenuHoverFocus.a11y.chromium.spec.ts +0 -238
  693. package/src/DropdownMenu/__tests__/MenuPinchZoom.a11y.chromium.spec.ts +0 -173
  694. package/src/DropdownMenu/__tests__/MenuPress.a11y.chromium.spec.ts +0 -503
  695. package/src/DropdownMenu/__tests__/SubMenuHeaderFooter.a11y.chromium.spec.ts +0 -268
  696. package/src/DropdownMenu/__tests__/warmMenuBottomSheet.tsx +0 -43
  697. package/src/DropdownMenu/lazyMenuBottomSheet.test.ts +0 -60
  698. package/src/DropdownMenu/modules/useMenuHover.spec.md +0 -283
  699. package/src/DropdownMenu/modules/useMenuPress.spec.md +0 -348
  700. package/src/EmptyState/EmptyState.announce.test.tsx +0 -227
  701. package/src/EmptyState/EmptyState.spec.md +0 -203
  702. package/src/EmptyState/EmptyState.test.tsx +0 -284
  703. package/src/Field/Field.spec.md +0 -226
  704. package/src/Field/Field.test.tsx +0 -800
  705. package/src/Field/FieldLabel.spec.md +0 -183
  706. package/src/Field/FieldLabel.test.tsx +0 -244
  707. package/src/Field/InputClearButton.test.tsx +0 -395
  708. package/src/Field/__tests__/FieldLabelAudit.a11y.chromium.spec.ts +0 -297
  709. package/src/Field/fieldInputFamily.test.tsx +0 -160
  710. package/src/FieldStatus/FieldStatus.spec.md +0 -224
  711. package/src/FieldStatus/FieldStatus.test.tsx +0 -482
  712. package/src/FieldStatus/__tests__/StatusMessage.a11y.chromium.spec.ts +0 -206
  713. package/src/FieldStatus/__tests__/StatusMessage.a11y.known-failures.ts +0 -13
  714. package/src/FieldStatus/__tests__/StatusMessage.a11y.renders.tsx +0 -287
  715. package/src/FieldStatus/__tests__/StatusMessage.a11y.states.ts +0 -302
  716. package/src/FieldStatus/__tests__/StatusMessage.a11y.test.tsx +0 -154
  717. package/src/FileInput/FileInput.fr10.test.tsx +0 -21
  718. package/src/FileInput/FileInput.spec.md +0 -199
  719. package/src/FileInput/FileInput.test.tsx +0 -1291
  720. package/src/FormLayout/FormLayout.spec.md +0 -209
  721. package/src/FormLayout/FormLayout.test.tsx +0 -444
  722. package/src/FormLayout/__snapshots__/FormLayout.test.tsx.snap +0 -46
  723. package/src/Grid/Grid.spec.md +0 -193
  724. package/src/Grid/Grid.test.tsx +0 -509
  725. package/src/Grid/GridSpan.spec.md +0 -158
  726. package/src/HStack/HStack.test.tsx +0 -129
  727. package/src/Heading/Heading.spec.md +0 -198
  728. package/src/Heading/Heading.test.tsx +0 -328
  729. package/src/HoverCard/HoverCard.spec.md +0 -244
  730. package/src/HoverCard/HoverCard.test.tsx +0 -1339
  731. package/src/Icon/Icon.spec.md +0 -244
  732. package/src/Icon/Icon.test.tsx +0 -990
  733. package/src/Icon/globalIconRegistry.test.tsx +0 -613
  734. package/src/IconButton/IconButton.spec.md +0 -197
  735. package/src/IconButton/IconButton.test.tsx +0 -156
  736. package/src/Indicator/CheckIndicator.spec.md +0 -164
  737. package/src/Indicator/CheckboxIndicator.spec.md +0 -164
  738. package/src/Indicator/Indicator.spec.md +0 -188
  739. package/src/Indicator/Indicator.test.tsx +0 -389
  740. package/src/Indicator/indicatorRegistry.test.tsx +0 -106
  741. package/src/InputGroup/InputGroup.spec.md +0 -199
  742. package/src/InputGroup/InputGroup.test.tsx +0 -502
  743. package/src/InputGroup/InputGroupText.spec.md +0 -139
  744. package/src/InteractiveRoleContext/InteractiveRoleContext.test.tsx +0 -185
  745. package/src/Item/Item.source-build.test.mjs +0 -88
  746. package/src/Item/Item.spec.md +0 -226
  747. package/src/Item/Item.swipeLayer.test.tsx +0 -74
  748. package/src/Item/Item.test.tsx +0 -1515
  749. package/src/Item/ItemMarkerColumns.a11y.chromium.spec.ts +0 -211
  750. package/src/Item/__tests__/ItemSwipeActions.a11y.chromium.spec.ts +0 -337
  751. package/src/Item/__tests__/ItemSwipePinchZoom.a11y.chromium.spec.ts +0 -186
  752. package/src/Kbd/Kbd.spec.md +0 -185
  753. package/src/Kbd/Kbd.test.tsx +0 -299
  754. package/src/Layer/LayerProvider.spec.md +0 -149
  755. package/src/Layer/LayerProvider.test.tsx +0 -143
  756. package/src/Layer/__tests__/LayerBrowserHide.a11y.chromium.spec.ts +0 -126
  757. package/src/Layer/__tests__/LayerReducedMotion.a11y.chromium.spec.ts +0 -176
  758. package/src/Layer/__tests__/TouchTrigger.a11y.chromium.spec.ts +0 -200
  759. package/src/Layer/anchorName.test.ts +0 -146
  760. package/src/Layer/layerDismissalFamilies.test.tsx +0 -487
  761. package/src/Layer/layerDismissalInvariants.test.tsx +0 -501
  762. package/src/Layer/layerHost.test.ts +0 -117
  763. package/src/Layer/layerScopedContext.test.tsx +0 -499
  764. package/src/Layer/layerViewportInset.source-build.test.mjs +0 -90
  765. package/src/Layer/layerViewportInset.test.ts +0 -120
  766. package/src/Layer/popoverOperations.test.ts +0 -205
  767. package/src/Layer/useLayer.test.tsx +0 -2845
  768. package/src/Layer/useLayerDismissal.test.tsx +0 -580
  769. package/src/Layer/useTouchTrigger.test.ts +0 -70
  770. package/src/Layout/Layout.spec.md +0 -243
  771. package/src/Layout/Layout.test.tsx +0 -375
  772. package/src/Layout/LayoutContent.spec.md +0 -205
  773. package/src/Layout/LayoutFooter.spec.md +0 -190
  774. package/src/Layout/LayoutHeader.spec.md +0 -193
  775. package/src/Layout/LayoutPanel.spec.md +0 -194
  776. package/src/Layout/LayoutSlots.test.tsx +0 -376
  777. package/src/Layout/__tests__/Layout.a11y.chromium.spec.ts +0 -134
  778. package/src/Layout/__tests__/Layout.a11y.renders.tsx +0 -110
  779. package/src/Layout/__tests__/Layout.a11y.states.ts +0 -93
  780. package/src/Layout/__tests__/Layout.a11y.test.tsx +0 -142
  781. package/src/Layout/__tests__/childrenAsContent.test.tsx +0 -59
  782. package/src/Layout/__tests__/contentWidth.test.tsx +0 -303
  783. package/src/Layout/__tests__/edgeCompensation.test.tsx +0 -191
  784. package/src/Layout/__tests__/nestedPadding.test.tsx +0 -264
  785. package/src/Layout/overlayPaddingReset.test.tsx +0 -224
  786. package/src/Lightbox/Lightbox.spec.md +0 -199
  787. package/src/Lightbox/Lightbox.test.tsx +0 -837
  788. package/src/Lightbox/LightboxKeyboard.a11y.browser.spec.ts +0 -78
  789. package/src/Lightbox/LightboxViewport.a11y.browser.spec.ts +0 -74
  790. package/src/Lightbox/useLightbox.test.tsx +0 -263
  791. package/src/Link/Link.spec.md +0 -230
  792. package/src/Link/Link.test.tsx +0 -457
  793. package/src/Link/LinkProvider.spec.md +0 -167
  794. package/src/Link/__tests__/Link.a11y.chromium.spec.ts +0 -153
  795. package/src/Link/__tests__/Link.a11y.renders.tsx +0 -97
  796. package/src/Link/__tests__/Link.a11y.states.ts +0 -104
  797. package/src/Link/__tests__/Link.a11y.test.tsx +0 -127
  798. package/src/Link/__tests__/Link.navigation.a11y.chromium.spec.ts +0 -262
  799. package/src/Link/__tests__/Link.truncation.a11y.chromium.spec.ts +0 -58
  800. package/src/Link/useLinkComponent.test.tsx +0 -572
  801. package/src/Link/useLinkify.test.tsx +0 -146
  802. package/src/List/List.spec.md +0 -336
  803. package/src/List/List.test.tsx +0 -1052
  804. package/src/List/ListItem.source-build.test.mjs +0 -41
  805. package/src/List/ListItem.spec.md +0 -205
  806. package/src/List/ListMarkers.a11y.chromium.spec.ts +0 -904
  807. package/src/Markdown/Markdown.codeLanguages.test.tsx +0 -137
  808. package/src/Markdown/Markdown.fr23.bench.ts +0 -176
  809. package/src/Markdown/Markdown.fr23.perf.test.ts +0 -484
  810. package/src/Markdown/Markdown.helpers.perf.test.ts +0 -495
  811. package/src/Markdown/Markdown.public.test.ts +0 -309
  812. package/src/Markdown/Markdown.renderBoundary.test.tsx +0 -72
  813. package/src/Markdown/Markdown.rerender.test.tsx +0 -143
  814. package/src/Markdown/Markdown.spec.md +0 -595
  815. package/src/Markdown/Markdown.test.tsx +0 -1383
  816. package/src/Markdown/MarkdownTable.a11y.chromium.spec.ts +0 -727
  817. package/src/Markdown/__tests__/MarkdownNesting.a11y.chromium.spec.ts +0 -102
  818. package/src/Markdown/angleDestinations.test.tsx +0 -104
  819. package/src/Markdown/ast.test.ts +0 -374
  820. package/src/Markdown/atxHeadingIndentation.test.tsx +0 -53
  821. package/src/Markdown/blockNesting.test.tsx +0 -124
  822. package/src/Markdown/blockquoteMarkers.test.tsx +0 -69
  823. package/src/Markdown/characterReferences.test.ts +0 -47
  824. package/src/Markdown/codeSpans.test.tsx +0 -65
  825. package/src/Markdown/emphasis.test.tsx +0 -214
  826. package/src/Markdown/fenceInfo.test.tsx +0 -47
  827. package/src/Markdown/imageAlt.test.tsx +0 -84
  828. package/src/Markdown/incremental.test.ts +0 -1198
  829. package/src/Markdown/incrementalIndentation.test.tsx +0 -36
  830. package/src/Markdown/indentedFences.test.tsx +0 -374
  831. package/src/Markdown/indentedTables.test.tsx +0 -53
  832. package/src/Markdown/linkBrackets.test.tsx +0 -116
  833. package/src/Markdown/linkDestinationLinear.test.tsx +0 -54
  834. package/src/Markdown/linkDestinations.test.tsx +0 -127
  835. package/src/Markdown/linkTextCode.test.tsx +0 -65
  836. package/src/Markdown/listBullets.test.tsx +0 -55
  837. package/src/Markdown/listContinuation.test.tsx +0 -94
  838. package/src/Markdown/listThematicBreak.test.tsx +0 -49
  839. package/src/Markdown/longLinkLabels.test.tsx +0 -49
  840. package/src/Markdown/modules/headingLinks.spec.md +0 -262
  841. package/src/Markdown/modules/remark.spec.md +0 -269
  842. package/src/Markdown/modules/softBreaks.spec.md +0 -137
  843. package/src/Markdown/modules/sourceLines.spec.md +0 -162
  844. package/src/Markdown/openFenceFinalNewline.test.tsx +0 -85
  845. package/src/Markdown/parser.perf.test.ts +0 -398
  846. package/src/Markdown/parser.public.test.ts +0 -144
  847. package/src/Markdown/parser.test.ts +0 -1925
  848. package/src/Markdown/plugin-renderer/MarkdownPluginNodeRenderer.test.tsx +0 -300
  849. package/src/Markdown/plugins/frontmatter.test.tsx +0 -150
  850. package/src/Markdown/plugins/headingLinks.a11y.chromium.spec.ts +0 -856
  851. package/src/Markdown/plugins/headingLinks.ssr.test.tsx +0 -143
  852. package/src/Markdown/plugins/headingLinks.test.tsx +0 -637
  853. package/src/Markdown/plugins/protocol.test.tsx +0 -1083
  854. package/src/Markdown/plugins/semanticFence.test.tsx +0 -655
  855. package/src/Markdown/plugins/softBreaks.test.tsx +0 -172
  856. package/src/Markdown/plugins/sourceDecoration.test.tsx +0 -799
  857. package/src/Markdown/plugins/sourceLines.test.tsx +0 -715
  858. package/src/Markdown/plugins/textTransform.test.ts +0 -467
  859. package/src/Markdown/remark.test.tsx +0 -1877
  860. package/src/Markdown/streaming.test.ts +0 -148
  861. package/src/Markdown/streamingListShapes.test.tsx +0 -93
  862. package/src/Markdown/trailingSpaces.test.tsx +0 -45
  863. package/src/MetadataList/MetadataList.spec.md +0 -187
  864. package/src/MetadataList/MetadataList.test.tsx +0 -383
  865. package/src/MetadataList/MetadataListItem.spec.md +0 -165
  866. package/src/MobileNav/MobileNav.spec.md +0 -306
  867. package/src/MobileNav/MobileNav.test.tsx +0 -296
  868. package/src/MobileNav/MobileNavCloseEdgeCases.test.tsx +0 -584
  869. package/src/MobileNav/MobileNavCloseTiming.test.ts +0 -58
  870. package/src/MobileNav/MobileNavCloseVisibility.test.tsx +0 -172
  871. package/src/MobileNav/MobileNavEntryAnimation.test.tsx +0 -212
  872. package/src/MobileNav/MobileNavFocus.test.tsx +0 -553
  873. package/src/MobileNav/MobileNavPinchZoom.a11y.chromium.spec.ts +0 -147
  874. package/src/MobileNav/MobileNavReopen.test.tsx +0 -118
  875. package/src/MobileNav/MobileNavScrollbarGutter.test.tsx +0 -109
  876. package/src/MobileNav/MobileNavToggle.test.tsx +0 -179
  877. package/src/MobileNav/__tests__/MobileNavHeader.a11y.chromium.spec.ts +0 -89
  878. package/src/MobileNav/__tests__/MobileNavWidth.a11y.chromium.spec.ts +0 -103
  879. package/src/MoreMenu/MoreMenu.spec.md +0 -268
  880. package/src/MoreMenu/MoreMenu.test.tsx +0 -367
  881. package/src/MultiSelector/CreateRow.a11y.chromium.spec.ts +0 -148
  882. package/src/MultiSelector/MultiSelector.disabledFocus.a11y.chromium.spec.ts +0 -72
  883. package/src/MultiSelector/MultiSelector.focusableDisabled.test.tsx +0 -121
  884. package/src/MultiSelector/MultiSelector.fr10.test.tsx +0 -221
  885. package/src/MultiSelector/MultiSelector.spec.md +0 -357
  886. package/src/MultiSelector/MultiSelector.test.tsx +0 -4971
  887. package/src/MultiSelector/OptionActions.a11y.chromium.spec.ts +0 -310
  888. package/src/MultiSelector/__tests__/MultiSelector.a11y.chromium.spec.ts +0 -46
  889. package/src/MultiSelector/__tests__/MultiSelector.listbox.a11y.test.tsx +0 -135
  890. package/src/NavIcon/NavIcon.spec.md +0 -158
  891. package/src/NavIcon/NavIcon.test.tsx +0 -41
  892. package/src/NavMenu/NavHeadingMenu.spec.md +0 -264
  893. package/src/NavMenu/NavHeadingMenu.test.tsx +0 -714
  894. package/src/NavMenu/__tests__/NavMenusSlideSelection.a11y.chromium.spec.ts +0 -137
  895. package/src/NumberInput/NumberInput.fr10.test.tsx +0 -21
  896. package/src/NumberInput/NumberInput.spec.md +0 -270
  897. package/src/NumberInput/NumberInput.test.tsx +0 -2697
  898. package/src/NumberInput/__tests__/NumberInput.a11y.chromium.spec.ts +0 -124
  899. package/src/NumberInput/__tests__/NumberInput.a11y.known-failures.ts +0 -26
  900. package/src/NumberInput/__tests__/NumberInput.a11y.renders.tsx +0 -77
  901. package/src/NumberInput/__tests__/NumberInput.a11y.states.ts +0 -116
  902. package/src/NumberInput/__tests__/NumberInput.a11y.test.tsx +0 -154
  903. package/src/NumberInput/__tests__/NumberInput.coarse-pointer.a11y.chromium.spec.ts +0 -102
  904. package/src/NumberInput/numberInputCommit.test.ts +0 -72
  905. package/src/NumberInput/numberParser.docblock.test.ts +0 -234
  906. package/src/NumberInput/numberParser.test.ts +0 -222
  907. package/src/Outline/Outline.spec.md +0 -258
  908. package/src/Outline/Outline.test.tsx +0 -1134
  909. package/src/Outline/OutlineFocus.a11y.chromium.spec.ts +0 -551
  910. package/src/Outline/modules/parseOutlineFromMarkdown.spec.md +0 -150
  911. package/src/Outline/parseOutlineFromMarkdown.test.ts +0 -104
  912. package/src/OverflowList/OverflowList.spec.md +0 -204
  913. package/src/OverflowList/OverflowList.test.tsx +0 -1073
  914. package/src/Overlay/Overlay.spec.md +0 -304
  915. package/src/Overlay/Overlay.test.tsx +0 -424
  916. package/src/Pagination/Pagination.spec.md +0 -300
  917. package/src/Pagination/Pagination.test.tsx +0 -1754
  918. package/src/Popover/Popover.spec.md +0 -525
  919. package/src/Popover/Popover.test.tsx +0 -1508
  920. package/src/Popover/PopoverPresentation.test.tsx +0 -952
  921. package/src/Popover/__tests__/PopoverSecondDocument.a11y.chromium.spec.ts +0 -267
  922. package/src/PowerSearch/PowerSearch.spec.md +0 -661
  923. package/src/PowerSearch/PowerSearch.test.tsx +0 -1027
  924. package/src/PowerSearch/PowerSearchEditPopover.test.tsx +0 -1190
  925. package/src/PowerSearch/PowerSearchFilterEditor.test.tsx +0 -377
  926. package/src/PowerSearch/PowerSearchToken.test.tsx +0 -230
  927. package/src/PowerSearch/PowerSearchValueEditor.test.tsx +0 -754
  928. package/src/PowerSearch/formatFilterValue.test.ts +0 -339
  929. package/src/PowerSearch/resolveDateTimeRangePart.test.ts +0 -40
  930. package/src/PowerSearch/usePowerSearchConfig.test.ts +0 -832
  931. package/src/PowerSearch/usePowerSearchSource.test.ts +0 -621
  932. package/src/ProgressBar/ProgressBar.spec.md +0 -261
  933. package/src/ProgressBar/ProgressBar.test.tsx +0 -928
  934. package/src/ProgressBar/__tests__/ProgressBar.a11y.chromium.spec.ts +0 -127
  935. package/src/ProgressBar/__tests__/ProgressBar.a11y.known-failures.ts +0 -12
  936. package/src/ProgressBar/__tests__/ProgressBar.a11y.renders.tsx +0 -38
  937. package/src/ProgressBar/__tests__/ProgressBar.a11y.states.ts +0 -123
  938. package/src/ProgressBar/__tests__/ProgressBar.a11y.test.tsx +0 -107
  939. package/src/ProgressBar/__tests__/ProgressBarMotion.a11y.chromium.spec.ts +0 -831
  940. package/src/RadioList/RadioList.fr10.test.tsx +0 -67
  941. package/src/RadioList/RadioList.spec.md +0 -227
  942. package/src/RadioList/RadioList.test.tsx +0 -1051
  943. package/src/RadioList/RadioListItem.press.source-build.test.mjs +0 -80
  944. package/src/RadioList/RadioListItem.spec.md +0 -223
  945. package/src/RadioList/__tests__/RadioGroup.a11y.chromium.spec.ts +0 -274
  946. package/src/RadioList/__tests__/RadioGroup.a11y.known-failures.ts +0 -12
  947. package/src/RadioList/__tests__/RadioGroup.a11y.renders.tsx +0 -232
  948. package/src/RadioList/__tests__/RadioGroup.a11y.states.ts +0 -503
  949. package/src/RadioList/__tests__/RadioGroup.a11y.test.tsx +0 -217
  950. package/src/Resizable/Resizable.spec.md +0 -298
  951. package/src/Resizable/ResizeHandle.test.tsx +0 -1067
  952. package/src/Resizable/__tests__/ResizeHandle.a11y.chromium.spec.ts +0 -127
  953. package/src/Resizable/__tests__/ResizeHandle.a11y.known-failures.ts +0 -39
  954. package/src/Resizable/__tests__/ResizeHandle.a11y.renders.tsx +0 -80
  955. package/src/Resizable/__tests__/ResizeHandle.a11y.states.ts +0 -197
  956. package/src/Resizable/__tests__/ResizeHandle.a11y.test.tsx +0 -123
  957. package/src/Resizable/shippedDirections.test.ts +0 -462
  958. package/src/Resizable/useResizable.test.ts +0 -1725
  959. package/src/Resizable/utils.test.ts +0 -74
  960. package/src/ScrollableArea/ScrollableArea.spec.md +0 -190
  961. package/src/ScrollableArea/ScrollableArea.test.tsx +0 -304
  962. package/src/ScrollableArea/modules/useScrollableArea.spec.md +0 -149
  963. package/src/Section/Section.spec.md +0 -197
  964. package/src/Section/Section.test.tsx +0 -376
  965. package/src/SegmentedControl/SegmentedControl.spec.md +0 -261
  966. package/src/SegmentedControl/SegmentedControl.test.tsx +0 -981
  967. package/src/SegmentedControl/SegmentedControlItem.spec.md +0 -206
  968. package/src/SelectableCard/SelectableCard.spec.md +0 -230
  969. package/src/SelectableCard/SelectableCard.test.tsx +0 -216
  970. package/src/Selector/Selector.focusableDisabled.test.tsx +0 -127
  971. package/src/Selector/Selector.fr10.test.tsx +0 -149
  972. package/src/Selector/Selector.sheetActiveDescendant.test.tsx +0 -95
  973. package/src/Selector/Selector.source-build.test.mjs +0 -79
  974. package/src/Selector/Selector.spec.md +0 -379
  975. package/src/Selector/Selector.test.tsx +0 -5117
  976. package/src/Selector/__tests__/Combobox.a11y.known-failures.ts +0 -27
  977. package/src/Selector/__tests__/Combobox.a11y.states.ts +0 -145
  978. package/src/Selector/__tests__/ComboboxField.a11y.chromium.spec.ts +0 -458
  979. package/src/Selector/__tests__/EmptyStateAnnouncement.a11y.chromium.spec.ts +0 -91
  980. package/src/Selector/__tests__/Listbox.a11y.chromium.spec.ts +0 -131
  981. package/src/Selector/__tests__/Listbox.a11y.dom.ts +0 -38
  982. package/src/Selector/__tests__/Listbox.a11y.inventory.test.ts +0 -63
  983. package/src/Selector/__tests__/Listbox.a11y.known-failures.ts +0 -12
  984. package/src/Selector/__tests__/Listbox.a11y.states.ts +0 -232
  985. package/src/Selector/__tests__/Selector.a11y.chromium.spec.ts +0 -46
  986. package/src/Selector/__tests__/Selector.combobox.a11y.chromium.spec.ts +0 -109
  987. package/src/Selector/__tests__/Selector.combobox.a11y.test.tsx +0 -133
  988. package/src/Selector/__tests__/Selector.listbox.a11y.test.tsx +0 -128
  989. package/src/Selector/useCombobox.public.test.tsx +0 -89
  990. package/src/Selector/useCombobox.test.tsx +0 -444
  991. package/src/SideNav/SideNav.spec.md +0 -247
  992. package/src/SideNav/SideNav.test.tsx +0 -4275
  993. package/src/SideNav/SideNavCollapseButton.spec.md +0 -161
  994. package/src/SideNav/SideNavHeading.spec.md +0 -226
  995. package/src/SideNav/SideNavItem.spec.md +0 -236
  996. package/src/SideNav/SideNavRailMotion.test.tsx +0 -620
  997. package/src/SideNav/SideNavSection.spec.md +0 -153
  998. package/src/SideNav/__tests__/SideNavRailMotion.interaction.browser.spec.ts +0 -542
  999. package/src/SizeContext/SizeContext.test.tsx +0 -226
  1000. package/src/Skeleton/Skeleton.spec.md +0 -184
  1001. package/src/Skeleton/Skeleton.test.tsx +0 -148
  1002. package/src/Slider/Slider.fr10.test.tsx +0 -93
  1003. package/src/Slider/Slider.spec.md +0 -285
  1004. package/src/Slider/Slider.test.tsx +0 -1661
  1005. package/src/Slider/__tests__/Slider.a11y.chromium.spec.ts +0 -125
  1006. package/src/Slider/__tests__/Slider.a11y.known-failures.ts +0 -12
  1007. package/src/Slider/__tests__/Slider.a11y.renders.tsx +0 -42
  1008. package/src/Slider/__tests__/Slider.a11y.states.ts +0 -106
  1009. package/src/Slider/__tests__/Slider.a11y.test.tsx +0 -105
  1010. package/src/Spinner/Spinner.spec.md +0 -231
  1011. package/src/Spinner/Spinner.test.tsx +0 -484
  1012. package/src/Stack/Stack.spec.md +0 -203
  1013. package/src/Stack/Stack.test.tsx +0 -473
  1014. package/src/Stack/StackItem.test.tsx +0 -105
  1015. package/src/StatusDot/StatusDot.spec.md +0 -224
  1016. package/src/StatusDot/StatusDot.test.tsx +0 -213
  1017. package/src/Stepper/Step.spec.md +0 -200
  1018. package/src/Stepper/Stepper.public.test.ts +0 -91
  1019. package/src/Stepper/Stepper.spec.md +0 -327
  1020. package/src/Stepper/Stepper.test.tsx +0 -2130
  1021. package/src/Switch/Switch.focusRing.source-build.test.mjs +0 -81
  1022. package/src/Switch/Switch.spec.md +0 -277
  1023. package/src/Switch/Switch.test.tsx +0 -1136
  1024. package/src/Switch/__tests__/Switch.a11y.chromium.spec.ts +0 -211
  1025. package/src/Switch/__tests__/Switch.a11y.known-failures.ts +0 -28
  1026. package/src/Switch/__tests__/Switch.a11y.states.ts +0 -275
  1027. package/src/Switch/__tests__/Switch.a11y.test.tsx +0 -144
  1028. package/src/TabList/Tab.spec.md +0 -201
  1029. package/src/TabList/TabList.spec.md +0 -217
  1030. package/src/TabList/TabList.test.tsx +0 -1755
  1031. package/src/TabList/TabMenu.spec.md +0 -198
  1032. package/src/TabList/__tests__/TabListOverflow.interaction.browser.spec.ts +0 -99
  1033. package/src/TabList/__tests__/TabPressPointer.interaction.browser.spec.ts +0 -163
  1034. package/src/TabList/__tests__/Tabs.a11y.chromium.spec.ts +0 -199
  1035. package/src/TabList/__tests__/Tabs.a11y.known-failures.ts +0 -12
  1036. package/src/TabList/__tests__/Tabs.a11y.renders.tsx +0 -92
  1037. package/src/TabList/__tests__/Tabs.a11y.states.ts +0 -247
  1038. package/src/TabList/__tests__/Tabs.a11y.test.tsx +0 -153
  1039. package/src/Table/Table.perf.test.tsx +0 -569
  1040. package/src/Table/Table.spec.md +0 -395
  1041. package/src/Table/Table.test.tsx +0 -1883
  1042. package/src/Table/TableHeaderCell.test.tsx +0 -291
  1043. package/src/Table/TableSelectionToolbar.test.tsx +0 -109
  1044. package/src/Table/__tests__/Table.a11y.chromium.spec.ts +0 -141
  1045. package/src/Table/__tests__/Table.a11y.contracts.ts +0 -35
  1046. package/src/Table/__tests__/Table.a11y.renders.tsx +0 -112
  1047. package/src/Table/__tests__/Table.a11y.states.ts +0 -136
  1048. package/src/Table/__tests__/Table.a11y.test.tsx +0 -198
  1049. package/src/Table/__tests__/TableMinWidth.a11y.chromium.spec.ts +0 -75
  1050. package/src/Table/__tests__/TableRowGlide.a11y.browser.spec.ts +0 -382
  1051. package/src/Table/__tests__/TableScroll.a11y.chromium.spec.ts +0 -138
  1052. package/src/Table/__tests__/TableStickyDividers.a11y.browser.spec.ts +0 -560
  1053. package/src/Table/plugins/activation/useTableActivation.spec.md +0 -254
  1054. package/src/Table/plugins/columnResize/useTableColumnResize.spec.md +0 -373
  1055. package/src/Table/plugins/columnResize/useTableColumnResize.test.tsx +0 -941
  1056. package/src/Table/plugins/columnSettings/useTableColumnSettings.test.tsx +0 -175
  1057. package/src/Table/plugins/columnSettings/useTableColumnSettingsState.test.tsx +0 -296
  1058. package/src/Table/plugins/filtering/useTableFilterState.test.tsx +0 -143
  1059. package/src/Table/plugins/filtering/useTableFiltering.test.tsx +0 -357
  1060. package/src/Table/plugins/groupedRows/useTableGroupedRows-perf.test.tsx +0 -112
  1061. package/src/Table/plugins/groupedRows/useTableGroupedRows.test.tsx +0 -409
  1062. package/src/Table/plugins/infiniteScroll/useTableInfiniteScroll.spec.md +0 -244
  1063. package/src/Table/plugins/pagination/useTablePagination-perf.test.tsx +0 -232
  1064. package/src/Table/plugins/pagination/useTablePagination.test.tsx +0 -666
  1065. package/src/Table/plugins/rowExpansion/useTableRowExpansion.glide.test.tsx +0 -280
  1066. package/src/Table/plugins/rowExpansion/useTableRowExpansion.test.tsx +0 -681
  1067. package/src/Table/plugins/rowIndex/useTableRowIndex.test.tsx +0 -132
  1068. package/src/Table/plugins/rowStatus/useTableRowStatus.public.test.ts +0 -92
  1069. package/src/Table/plugins/rowStatus/useTableRowStatus.spec.md +0 -355
  1070. package/src/Table/plugins/rowStatus/useTableRowStatus.test.tsx +0 -519
  1071. package/src/Table/plugins/selection/useTableSelection-perf.test.tsx +0 -258
  1072. package/src/Table/plugins/selection/useTableSelection.test.tsx +0 -424
  1073. package/src/Table/plugins/selection/useTableSelectionState.test.tsx +0 -451
  1074. package/src/Table/plugins/sortable/__tests__/useTableSortable.a11y.test.tsx +0 -174
  1075. package/src/Table/plugins/sortable/__tests__/useTableSortable.a11y.ts +0 -86
  1076. package/src/Table/plugins/sortable/useTableSortable.test.tsx +0 -786
  1077. package/src/Table/plugins/sortable/useTableSortableState.test.tsx +0 -580
  1078. package/src/Table/plugins/stickyColumns/useTableStickyColumns.test.tsx +0 -334
  1079. package/src/Table/plugins/tree/useTableTreeData-perf.test.tsx +0 -163
  1080. package/src/Table/plugins/tree/useTableTreeData.test.tsx +0 -992
  1081. package/src/Table/plugins/tree/useTableTreeState.test.tsx +0 -740
  1082. package/src/Table/plugins/virtualization/useTableVirtualization.spec.md +0 -266
  1083. package/src/Table/tableContextMenu.test.tsx +0 -208
  1084. package/src/Text/Text.spec.md +0 -193
  1085. package/src/Text/Text.test.tsx +0 -405
  1086. package/src/Text/useTruncation.test.tsx +0 -196
  1087. package/src/TextArea/TextArea.fr10.test.tsx +0 -21
  1088. package/src/TextArea/TextArea.spec.md +0 -300
  1089. package/src/TextArea/TextArea.test.tsx +0 -1317
  1090. package/src/TextInput/TextInput.fr10.test.tsx +0 -21
  1091. package/src/TextInput/TextInput.spec.md +0 -260
  1092. package/src/TextInput/TextInput.test.tsx +0 -1280
  1093. package/src/TextInput/__tests__/TextInput.a11y.chromium.spec.ts +0 -214
  1094. package/src/TextInput/__tests__/TextInput.a11y.known-failures.ts +0 -40
  1095. package/src/TextInput/__tests__/TextInput.a11y.renders.tsx +0 -202
  1096. package/src/TextInput/__tests__/TextInput.a11y.states.ts +0 -384
  1097. package/src/TextInput/__tests__/TextInput.a11y.test.tsx +0 -130
  1098. package/src/Thumbnail/Thumbnail.spec.md +0 -244
  1099. package/src/Thumbnail/Thumbnail.test.tsx +0 -384
  1100. package/src/TimeInput/NativeTimeInput.test.tsx +0 -343
  1101. package/src/TimeInput/Presentation.test.tsx +0 -192
  1102. package/src/TimeInput/TimeInput.fr10.test.tsx +0 -312
  1103. package/src/TimeInput/TimeInput.spec.md +0 -270
  1104. package/src/TimeInput/TimeInput.test.tsx +0 -907
  1105. package/src/Timer/Timer.spec.md +0 -215
  1106. package/src/Timer/Timer.test.tsx +0 -302
  1107. package/src/Timestamp/Timestamp.spec.md +0 -246
  1108. package/src/Timestamp/Timestamp.test.tsx +0 -1661
  1109. package/src/Timestamp/tooltipEntries.test.ts +0 -566
  1110. package/src/Toast/Toast.spec.md +0 -291
  1111. package/src/Toast/ToastViewport.modalHost.test.tsx +0 -891
  1112. package/src/Toast/ToastViewport.test.tsx +0 -3130
  1113. package/src/Toast/useToast.test.tsx +0 -258
  1114. package/src/ToggleButton/ToggleButton.spec.md +0 -256
  1115. package/src/ToggleButton/ToggleButton.test.tsx +0 -1000
  1116. package/src/ToggleButton/ToggleButtonGroup.spec.md +0 -195
  1117. package/src/ToggleButton/__tests__/ToggleButton.a11y.chromium.spec.ts +0 -177
  1118. package/src/ToggleButton/__tests__/ToggleButton.a11y.renders.tsx +0 -133
  1119. package/src/ToggleButton/__tests__/ToggleButton.a11y.states.ts +0 -167
  1120. package/src/ToggleButton/__tests__/ToggleButton.a11y.test.tsx +0 -103
  1121. package/src/Token/Token.spec.md +0 -261
  1122. package/src/Token/Token.test.tsx +0 -707
  1123. package/src/Token/__tests__/TokenRemoveTarget.a11y.chromium.spec.ts +0 -87
  1124. package/src/Tokenizer/Tokenizer.fr10.test.tsx +0 -28
  1125. package/src/Tokenizer/Tokenizer.props-type.test.tsx +0 -126
  1126. package/src/Tokenizer/Tokenizer.spec.md +0 -615
  1127. package/src/Tokenizer/Tokenizer.ssr.test.tsx +0 -196
  1128. package/src/Tokenizer/Tokenizer.test.tsx +0 -2216
  1129. package/src/Tokenizer/TokenizerBottomSheet.test.tsx +0 -2738
  1130. package/src/Tokenizer/__tests__/TokenizerEndLane.a11y.chromium.spec.ts +0 -505
  1131. package/src/Toolbar/Toolbar.spec.md +0 -227
  1132. package/src/Toolbar/Toolbar.test.tsx +0 -600
  1133. package/src/Toolbar/__tests__/Toolbar.a11y.chromium.spec.ts +0 -176
  1134. package/src/Toolbar/__tests__/Toolbar.a11y.renders.tsx +0 -63
  1135. package/src/Toolbar/__tests__/Toolbar.a11y.states.ts +0 -142
  1136. package/src/Toolbar/__tests__/Toolbar.a11y.test.tsx +0 -126
  1137. package/src/Tooltip/Tooltip.spec.md +0 -267
  1138. package/src/Tooltip/Tooltip.test.tsx +0 -819
  1139. package/src/Tooltip/__tests__/Tooltip.a11y.chromium.spec.ts +0 -141
  1140. package/src/Tooltip/__tests__/Tooltip.a11y.renders.tsx +0 -86
  1141. package/src/Tooltip/__tests__/Tooltip.a11y.states.ts +0 -132
  1142. package/src/Tooltip/__tests__/Tooltip.a11y.test.tsx +0 -126
  1143. package/src/Tooltip/__tests__/TooltipFocusReturn.a11y.chromium.spec.ts +0 -130
  1144. package/src/Tooltip/__tests__/TooltipHoverBridge.a11y.chromium.spec.ts +0 -75
  1145. package/src/Tooltip/__tests__/TooltipTallContent.a11y.browser.spec.ts +0 -673
  1146. package/src/Tooltip/__tests__/TooltipTallContentTracking.a11y.browser.spec.ts +0 -1162
  1147. package/src/Tooltip/useTooltip.test.tsx +0 -483
  1148. package/src/TopNav/TopNav.spec.md +0 -190
  1149. package/src/TopNav/TopNav.test.tsx +0 -863
  1150. package/src/TopNav/TopNavHeading.spec.md +0 -211
  1151. package/src/TopNav/TopNavItem.spec.md +0 -189
  1152. package/src/TopNav/TopNavMegaMenu.reduced-motion.source-build.test.mjs +0 -83
  1153. package/src/TopNav/TopNavMegaMenu.spec.md +0 -190
  1154. package/src/TopNav/TopNavMegaMenu.test.tsx +0 -1153
  1155. package/src/TopNav/TopNavMegaMenuFeaturedCard.spec.md +0 -150
  1156. package/src/TopNav/TopNavMegaMenuItem.spec.md +0 -155
  1157. package/src/TopNav/TopNavMenu.spec.md +0 -202
  1158. package/src/TopNav/TopNavMenu.test.tsx +0 -502
  1159. package/src/TopNav/__tests__/TopNavMobileLongHeading.a11y.chromium.spec.ts +0 -75
  1160. package/src/TreeList/TreeList.spec.md +0 -328
  1161. package/src/TreeList/TreeList.test.tsx +0 -1737
  1162. package/src/TreeList/__tests__/TreeList.a11y.chromium.spec.ts +0 -138
  1163. package/src/TreeList/__tests__/TreeList.a11y.renders.tsx +0 -44
  1164. package/src/TreeList/__tests__/TreeList.a11y.states.ts +0 -164
  1165. package/src/TreeList/__tests__/TreeList.a11y.test.tsx +0 -138
  1166. package/src/TreeList/__tests__/TreeListGuideAlignment.interaction.browser.spec.ts +0 -127
  1167. package/src/TreeList/__tests__/TreeListRowNames.a11y.chromium.spec.ts +0 -83
  1168. package/src/Typeahead/BaseTypeahead.emptyState.a11y.chromium.spec.ts +0 -138
  1169. package/src/Typeahead/BaseTypeahead.spec.md +0 -270
  1170. package/src/Typeahead/BaseTypeahead.test.tsx +0 -553
  1171. package/src/Typeahead/Typeahead.fr10.test.tsx +0 -28
  1172. package/src/Typeahead/Typeahead.spec.md +0 -257
  1173. package/src/Typeahead/Typeahead.test.tsx +0 -2984
  1174. package/src/Typeahead/TypeaheadItem.test.tsx +0 -134
  1175. package/src/VStack/VStack.test.tsx +0 -128
  1176. package/src/VisuallyHidden/VisuallyHidden.spec.md +0 -170
  1177. package/src/VisuallyHidden/VisuallyHidden.test.tsx +0 -115
  1178. package/src/__tests__/BusyOwnerAnnouncement.test.tsx +0 -853
  1179. package/src/__tests__/CardPress.a11y.chromium.spec.ts +0 -353
  1180. package/src/__tests__/DisabledTriggerFocus.a11y.chromium.spec.ts +0 -87
  1181. package/src/__tests__/PressModality.a11y.chromium.spec.ts +0 -392
  1182. package/src/__tests__/PressedState.a11y.chromium.spec.ts +0 -814
  1183. package/src/__tests__/TestIcon.tsx +0 -26
  1184. package/src/__tests__/babelPluginAddExtensions.test.ts +0 -190
  1185. package/src/__tests__/fastRoleQueries.ts +0 -66
  1186. package/src/__tests__/forcedColors.ts +0 -60
  1187. package/src/__tests__/internalModulesNotExperimental.test.ts +0 -88
  1188. package/src/__tests__/pressState.ts +0 -216
  1189. package/src/__tests__/stubMatchMedia.test.ts +0 -79
  1190. package/src/__tests__/stubMatchMedia.ts +0 -95
  1191. package/src/__tests__/stylexDeclarations.ts +0 -51
  1192. package/src/__tests__/unthemedLength.ts +0 -34
  1193. package/src/docPropLiterals.test.ts +0 -964
  1194. package/src/docPropReferences.test.ts +0 -178
  1195. package/src/docs-script.test.mjs +0 -55
  1196. package/src/gestures/__tests__/GestureHost.test.ts +0 -2136
  1197. package/src/gestures/__tests__/LongPressGestureRecognizer.test.ts +0 -141
  1198. package/src/gestures/__tests__/PanGestureRecognizer.test.ts +0 -327
  1199. package/src/gestures/__tests__/PinchGestureRecognizer.test.ts +0 -74
  1200. package/src/gestures/__tests__/PressTracker.test.ts +0 -275
  1201. package/src/gestures/__tests__/ScreenEdgePanGestureRecognizer.test.ts +0 -498
  1202. package/src/gestures/__tests__/SwipeGestureRecognizer.test.ts +0 -108
  1203. package/src/gestures/__tests__/TapGestureRecognizer.test.ts +0 -154
  1204. package/src/gestures/__tests__/VelocityTracker.streams.test.ts +0 -243
  1205. package/src/gestures/__tests__/VelocityTracker.test.ts +0 -261
  1206. package/src/gestures/__tests__/arena.test.ts +0 -864
  1207. package/src/gestures/__tests__/arenaContinuous.test.ts +0 -207
  1208. package/src/gestures/__tests__/arenaPinchSwipeEdge.test.ts +0 -193
  1209. package/src/gestures/__tests__/arenaTapLongPress.test.ts +0 -211
  1210. package/src/gestures/__tests__/browser/build-fixture.mjs +0 -46
  1211. package/src/gestures/__tests__/browser/fixture.ts +0 -307
  1212. package/src/gestures/__tests__/browser/gestures.interaction.browser.spec.ts +0 -1137
  1213. package/src/gestures/__tests__/browserNegotiation.test.ts +0 -293
  1214. package/src/gestures/__tests__/fixtures/pointer-streams/README.md +0 -82
  1215. package/src/gestures/__tests__/fixtures/pointer-streams/android-chromium-fling.json +0 -130
  1216. package/src/gestures/__tests__/fixtures/pointer-streams/android-chromium-slow.json +0 -860
  1217. package/src/gestures/__tests__/fixtures/pointer-streams/android-chromium-stop-release.json +0 -357
  1218. package/src/gestures/__tests__/fixtures/pointer-streams/android-firefox-fling.json +0 -66
  1219. package/src/gestures/__tests__/fixtures/pointer-streams/android-firefox-slow.json +0 -268
  1220. package/src/gestures/__tests__/fixtures/pointer-streams/android-firefox-stop-release.json +0 -128
  1221. package/src/gestures/__tests__/fixtures/pointer-streams/capture.html +0 -123
  1222. package/src/gestures/__tests__/fixtures/pointer-streams/desktop-chromium-mouse-fling.json +0 -64
  1223. package/src/gestures/__tests__/fixtures/pointer-streams/desktop-chromium-mouse-slow.json +0 -268
  1224. package/src/gestures/__tests__/fixtures/pointer-streams/desktop-chromium-mouse-stop-release.json +0 -124
  1225. package/src/gestures/__tests__/fixtures/pointer-streams/desktop-chromium-pen-fling.json +0 -64
  1226. package/src/gestures/__tests__/fixtures/pointer-streams/desktop-chromium-pen-slow.json +0 -268
  1227. package/src/gestures/__tests__/fixtures/pointer-streams/desktop-chromium-pen-stop-release.json +0 -124
  1228. package/src/gestures/__tests__/fixtures/pointer-streams/desktop-chromium-touch-fling.json +0 -84
  1229. package/src/gestures/__tests__/fixtures/pointer-streams/desktop-chromium-touch-slow.json +0 -381
  1230. package/src/gestures/__tests__/fixtures/pointer-streams/desktop-chromium-touch-stop-release.json +0 -171
  1231. package/src/gestures/__tests__/fixtures/pointer-streams/ios-safari-fling.json +0 -45
  1232. package/src/gestures/__tests__/fixtures/pointer-streams/ios-safari-slow.json +0 -101
  1233. package/src/gestures/__tests__/fixtures/pointer-streams/ios-safari-stop-release.json +0 -130
  1234. package/src/gestures/__tests__/haptics.test.ts +0 -187
  1235. package/src/gestures/__tests__/harness.ts +0 -252
  1236. package/src/gestures/__tests__/pressTrackerFactory.test.ts +0 -59
  1237. package/src/gestures/__tests__/recognizerKind.test.ts +0 -78
  1238. package/src/gestures/__tests__/touchActionRule.test.ts +0 -54
  1239. package/src/gestures/__tests__/useGestureRecognizer.test.tsx +0 -570
  1240. package/src/hooks/__tests__/MenuPressShadowRoot.a11y.chromium.spec.ts +0 -144
  1241. package/src/hooks/__tests__/menuLinkClicks.ts +0 -71
  1242. package/src/hooks/actionGroupTracker.exports.test.ts +0 -28
  1243. package/src/hooks/actionGroupTracker.test.ts +0 -510
  1244. package/src/hooks/computeOverflow.test.ts +0 -422
  1245. package/src/hooks/deprecatedApis.public.test.ts +0 -33
  1246. package/src/hooks/menuPressGesture.test.ts +0 -253
  1247. package/src/hooks/scrollKeyboardDelegation.test.ts +0 -188
  1248. package/src/hooks/scrollbarGutter.test.ts +0 -167
  1249. package/src/hooks/useAnnounce.modal.test.tsx +0 -1291
  1250. package/src/hooks/useAnnounce.replace.test.tsx +0 -516
  1251. package/src/hooks/useAnnounce.test.tsx +0 -293
  1252. package/src/hooks/useAnnounceRenderedText.adopters.test.tsx +0 -235
  1253. package/src/hooks/useAutoMediaMode.test.ts +0 -109
  1254. package/src/hooks/useBusyAnnouncement.adopters.test.tsx +0 -69
  1255. package/src/hooks/useBusyAnnouncement.test.tsx +0 -112
  1256. package/src/hooks/useClickableContainer.test.tsx +0 -236
  1257. package/src/hooks/useClipboard.test.tsx +0 -151
  1258. package/src/hooks/useContainerReveal.test.tsx +0 -163
  1259. package/src/hooks/useDevWarning.test.tsx +0 -45
  1260. package/src/hooks/useEntryAnimation.ssr.test.tsx +0 -143
  1261. package/src/hooks/useFocusTrap.test.tsx +0 -635
  1262. package/src/hooks/useFocusTrapEscapeShim.test.tsx +0 -166
  1263. package/src/hooks/useGridFocus.test.tsx +0 -165
  1264. package/src/hooks/useHotkeys.test.ts +0 -265
  1265. package/src/hooks/useImageMode.test.ts +0 -133
  1266. package/src/hooks/useInputContainer.test.tsx +0 -180
  1267. package/src/hooks/useInputStatusIcon.test.tsx +0 -240
  1268. package/src/hooks/useIsHydrating.test.tsx +0 -70
  1269. package/src/hooks/useKeyboardHint.test.tsx +0 -92
  1270. package/src/hooks/useListFocus.test.tsx +0 -664
  1271. package/src/hooks/useLongPress.test.tsx +0 -152
  1272. package/src/hooks/useMediaQuery.test.ts +0 -165
  1273. package/src/hooks/useMenuHover.test.tsx +0 -536
  1274. package/src/hooks/useMenuPress.test.tsx +0 -565
  1275. package/src/hooks/useMergedRefs.test.tsx +0 -62
  1276. package/src/hooks/useOverflow.test.ts +0 -504
  1277. package/src/hooks/useRenamedProp.test.tsx +0 -95
  1278. package/src/hooks/useScrollLock.test.ts +0 -248
  1279. package/src/hooks/useScrollOverflow.test.tsx +0 -323
  1280. package/src/hooks/useScrollableArea.test.tsx +0 -836
  1281. package/src/hooks/useStreamingText.test.ts +0 -237
  1282. package/src/hooks/useTreeFocus.test.tsx +0 -351
  1283. package/src/hooks/useTypeahead.test.tsx +0 -351
  1284. package/src/i18n/InternationalizationProvider.spec.md +0 -252
  1285. package/src/i18n/__tests__/InternationalizationProvider.test.tsx +0 -128
  1286. package/src/i18n/__tests__/e2e-pagination.test.tsx +0 -172
  1287. package/src/i18n/__tests__/e2e-powersearch.test.tsx +0 -166
  1288. package/src/i18n/__tests__/getLocaleDirection.test.ts +0 -40
  1289. package/src/i18n/__tests__/resolve.test.ts +0 -325
  1290. package/src/i18n/__tests__/useCollator.test.tsx +0 -115
  1291. package/src/i18n/__tests__/useDirection.test.tsx +0 -66
  1292. package/src/i18n/__tests__/useLocale.test.tsx +0 -52
  1293. package/src/i18n/useTranslator.test.tsx +0 -267
  1294. package/src/inputFontFloor.test.ts +0 -106
  1295. package/src/internal/tokenizer-presentation.test.ts +0 -29
  1296. package/src/internal/touch.test.ts +0 -44
  1297. package/src/motion/__tests__/animatedLayout.interaction.browser.spec.ts +0 -1613
  1298. package/src/motion/__tests__/animatedLayoutAdopters.interaction.browser.spec.ts +0 -217
  1299. package/src/motion/__tests__/animatedLayoutBundle.ts +0 -17
  1300. package/src/motion/__tests__/animator.interaction.browser.spec.ts +0 -843
  1301. package/src/motion/__tests__/motionBundle.ts +0 -14
  1302. package/src/motion/animatedLayout.boundary.test.ts +0 -155
  1303. package/src/motion/animatedLayout.swap.test.ts +0 -827
  1304. package/src/motion/animatedLayout.test.ts +0 -1154
  1305. package/src/motion/animatedLayoutAdopters.test.tsx +0 -500
  1306. package/src/motion/animator.test.ts +0 -3746
  1307. package/src/motion/bezier.test.ts +0 -52
  1308. package/src/motion/coast.test.ts +0 -99
  1309. package/src/motion/decay.test.ts +0 -120
  1310. package/src/motion/projection.test.ts +0 -107
  1311. package/src/motion/reducedMotion.test.ts +0 -129
  1312. package/src/motion/reducedMotionPlan.test.ts +0 -208
  1313. package/src/motion/resolveMotion.test.ts +0 -123
  1314. package/src/motion/resolveSnapPoint.test.ts +0 -189
  1315. package/src/motion/roles.test.ts +0 -273
  1316. package/src/motion/rubberBand.test.ts +0 -88
  1317. package/src/motion/selectPage.test.ts +0 -31
  1318. package/src/motion/spring.test.ts +0 -650
  1319. package/src/motion/uikit/gestures.test.ts +0 -89
  1320. package/src/motion/uikit/springRows.test.ts +0 -71
  1321. package/src/motion/uikit/tableImports.test.ts +0 -293
  1322. package/src/motion/uikit/uikit.test.ts +0 -364
  1323. package/src/motion/uikit/values.test.ts +0 -121
  1324. package/src/naming.test.ts +0 -44
  1325. package/src/postinstall.test.mjs +0 -216
  1326. package/src/reset.a11y.chromium.spec.ts +0 -238
  1327. package/src/reset.test.ts +0 -205
  1328. package/src/reset.until-found.a11y.browser.spec.ts +0 -76
  1329. package/src/reset.until-found.test.ts +0 -32
  1330. package/src/serverSafeComponents.test.ts +0 -675
  1331. package/src/stylexValidation.source-build.test.mjs +0 -42
  1332. package/src/tailwind-theme.test.ts +0 -153
  1333. package/src/theme/MediaTheme.dom.test.tsx +0 -97
  1334. package/src/theme/Theme.test.tsx +0 -337
  1335. package/src/theme/__tests__/SpacingRootFontSize.a11y.chromium.spec.ts +0 -199
  1336. package/src/theme/contrast.test.ts +0 -94
  1337. package/src/theme/declarationBoundary.test.ts +0 -126
  1338. package/src/theme/defineTheme.test.ts +0 -2028
  1339. package/src/theme/derivedVarRegistry.test.ts +0 -592
  1340. package/src/theme/expandColorScale.test.ts +0 -651
  1341. package/src/theme/expandMotionScale.test.ts +0 -145
  1342. package/src/theme/expandRadiusScale.test.ts +0 -59
  1343. package/src/theme/expandTypeScale.test.ts +0 -351
  1344. package/src/theme/extensibleAxes.test.ts +0 -432
  1345. package/src/theme/generateThemeRules.test.ts +0 -1870
  1346. package/src/theme/hct.test.ts +0 -93
  1347. package/src/theme/onMediaTokens.test.ts +0 -431
  1348. package/src/theme/publicThemeHelperContract.test.ts +0 -67
  1349. package/src/theme/syntax/defineSyntaxTheme.diff.test.ts +0 -91
  1350. package/src/theme/syntax/serverSafeSyntax.test.ts +0 -68
  1351. package/src/theme/syntax/useSyntaxTheme.diff.test.tsx +0 -40
  1352. package/src/theme/themeAdaptations.test.ts +0 -1795
  1353. package/src/theme/themeMotion.test.ts +0 -620
  1354. package/src/theme/themeRegistry.test.ts +0 -59
  1355. package/src/theme/themingTargets.test.ts +0 -589
  1356. package/src/theme/tokenValueCompat.test.ts +0 -204
  1357. package/src/theme/tokens.test.ts +0 -441
  1358. package/src/theme/useTheme.test.tsx +0 -322
  1359. package/src/unicodePropertyEscapes.source-build.test.mjs +0 -69
  1360. package/src/utils/chainEventHandlers.test.ts +0 -39
  1361. package/src/utils/characters.test.ts +0 -141
  1362. package/src/utils/color.test.ts +0 -233
  1363. package/src/utils/composeEventHandlers.test.ts +0 -71
  1364. package/src/utils/customPropertyArmLayering.test.ts +0 -131
  1365. package/src/utils/dateParser.test.ts +0 -402
  1366. package/src/utils/dateTypes.test.ts +0 -40
  1367. package/src/utils/devWarning.test.ts +0 -56
  1368. package/src/utils/edgeAutoscroll.test.ts +0 -192
  1369. package/src/utils/focusReturn.test.ts +0 -119
  1370. package/src/utils/getKey.test.ts +0 -25
  1371. package/src/utils/getNodeText.test.ts +0 -24
  1372. package/src/utils/hitArea.test.ts +0 -628
  1373. package/src/utils/ime.test.ts +0 -32
  1374. package/src/utils/inputAria.test.ts +0 -39
  1375. package/src/utils/interactionModality.test.ts +0 -144
  1376. package/src/utils/isApplePlatform.test.ts +0 -61
  1377. package/src/utils/mergeProps.test.ts +0 -166
  1378. package/src/utils/mergeRefs.test.ts +0 -48
  1379. package/src/utils/parseStyleKey.test.ts +0 -56
  1380. package/src/utils/plainDate.test.ts +0 -938
  1381. package/src/utils/presentation.test.ts +0 -380
  1382. package/src/utils/pressFeedback.test.ts +0 -1012
  1383. package/src/utils/pressGesture.test.ts +0 -332
  1384. package/src/utils/pressPaintPriority.test.ts +0 -80
  1385. package/src/utils/pressPaintSource.test.ts +0 -65
  1386. package/src/utils/pressableCoverage.test.ts +0 -192
  1387. package/src/utils/primaryClick.test.ts +0 -38
  1388. package/src/utils/safeUrl.test.ts +0 -101
  1389. package/src/utils/sharedMutationObserver.test.ts +0 -106
  1390. package/src/utils/sharedResizeObserver.test.ts +0 -283
  1391. package/src/utils/themeProps.test.ts +0 -62
  1392. package/src/utils/timeFormat.test.ts +0 -204
  1393. package/src/utils/timeParser.test.ts +0 -295
  1394. package/src/utils/touchPresentation.test.ts +0 -462
  1395. package/src/utils/unicodeDigits.test.ts +0 -44
@@ -1,615 +0,0 @@
1
- ---
2
- schema_version: 3
3
- template_version: 3
4
- kind: component
5
- id: component:Tokenizer
6
- authority: current
7
- archive_reason: null
8
- superseded_by: null
9
- approved_by: imdreamrunner
10
- approved_at: 2026-10-23
11
- owners: [cixzhang]
12
- review_triggers: [public-api, behavior, layout, accessibility]
13
- verified_by:
14
- [
15
- packages/core/src/Tokenizer/Tokenizer.test.tsx,
16
- packages/core/src/Tokenizer/Tokenizer.ssr.test.tsx,
17
- packages/core/src/Tokenizer/TokenizerBottomSheet.test.tsx,
18
- packages/core/src/Tokenizer/Tokenizer.props-type.test.tsx,
19
- packages/core/src/PowerSearch/PowerSearch.test.tsx,
20
- packages/core/src/internal/tokenizer-presentation.test.ts,
21
- packages/core/src/Typeahead/Typeahead.test.tsx,
22
- packages/core/src/Layer/useLayer.test.tsx,
23
- scripts/check-knowledge.mjs,
24
- ]
25
- modules: []
26
- families: [family:input-fields, family:overlay-dismissal]
27
- design_specs: []
28
- architecture:
29
- [
30
- architecture:interaction-modality,
31
- architecture:layer-runtime,
32
- architecture:public-component-api,
33
- ]
34
- contributing: [contributing:api-conventions]
35
- system_specs:
36
- [
37
- spec:AST-002/DEC-1,
38
- spec:AST-003/FR18,
39
- spec:AST-009/FR8,
40
- spec:AST-012/FR9,
41
- spec:AST-017/FR21,
42
- spec:AST-017/FR60,
43
- spec:AST-020/FR1,
44
- spec:AST-056/FR3,
45
- spec:AST-058/FR9,
46
- spec:AST-085/FR1,
47
- spec:AST-085/FR4,
48
- spec:AST-085/FR5,
49
- spec:AST-086/FR14,
50
- spec:AST-094/FR13,
51
- ]
52
- ---
53
-
54
- # Tokenizer component contract
55
-
56
- | Area | Contract |
57
- | ----------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
58
- | Public contract | One optional `experimental` prop object whose `presentation` option selects the surface (DEC-3); the stable props, exports, and syntax are unchanged, and `TokenizerProps` stays an interface whose `ref` is `Ref<HTMLInputElement>`; only with `experimental` passed does the component accept a wider `ref`. The existing `hasEntriesOnFocus` mode has a defined post-selection lifecycle (DEC-2). |
59
- | Behavior | A committed empty-query bootstrap choice keeps remaining eligible loaded choices open, filters committed IDs, and advances the active option; terminal states close safely. The `bottom-sheet` presentation replaces the inline combobox with a trigger that opens one searchable modal sheet of checkbox rows (FR16–FR24). |
60
- | End-user impact | People selecting several loaded values can continue without reopening the menu, while disabled, loading, exhausted, and dismissed states remain non-interactive. On a compact touch screen, an opted-in field offers thumb-sized rows and a search field the keyboard does not cover. |
61
- | Builder impact | None for existing callers. A caller opts into the touch surface with `experimental={{presentation: 'adaptive'}}` or `'bottom-sheet'`, accepting that the option may change or be removed in a patch release. |
62
- | Compatibility/readiness | Omitting `experimental`, and the default `hasEntriesOnFocus={false}` path, keep today's inline combobox and direct single-select BaseTypeahead unchanged. DEC-2 is current and owner-approved with implementation and exact-head evidence pending; DEC-3 is current and implemented, with the implementation gap that the sheet presentation is not yet exposed: `TokenizerProps` offers no `experimental.presentation` while its user experience is being finished, and every field renders the popover presentation. |
63
- | Review checks | Reject implementations that filter by label instead of ID, reorder eligible choices, lose focus or a valid active descendant, refetch unnecessarily, or let disabled, exhausted, dismissed, or stale-loading states remain interactive or reopen. Reject a sheet presentation that switches without `experimental`, moves an existing row on toggle, or clears every token without confirmation. |
64
- | Governing rules | This canonical `component:Tokenizer` record: [FR13–FR24](#behavioral-and-layout-contract), [AR5–AR6](#accessibility-contract), [DEC-2](#dec-2--focus-bootstrap-supports-consecutive-committed-selections), and [DEC-3](#dec-3--the-touch-sheet-presentation-is-an-experimental-option). |
65
-
66
- ## Intent
67
-
68
- Tokenizer lets a person build and edit a set of searchable values as removable
69
- tokens around one stable combobox input. It owns the field surface, token/input
70
- layout, suggestion-menu relationship, and the package-internal identity needed to
71
- open a related surface from the control where the task began.
72
-
73
- This record preserves shipped Tokenizer facts and defines three component-owned
74
- contracts: one package-internal opening-control descriptor for Core peers, the
75
- post-selection lifecycle of an empty-query bootstrap menu, and an experimental
76
- touch presentation in which a trigger opens one searchable modal bottom sheet in
77
- place of the inline combobox. The descriptor lets Layer prepare placement without
78
- exposing DOM refs, pointer coordinates, or width policy to consumers. The
79
- dependent [PowerSearch draft](https://github.com/meta/astryx/pull/5804)
80
- remains evidence for the need, not authority for this record.
81
-
82
- ## Compatibility and migration
83
-
84
- - The stable public API and the default `hasEntriesOnFocus={false}` path are
85
- unchanged.
86
- - Compatibility class: intentional behavior correction for the existing opt-in
87
- `hasEntriesOnFocus` mode. A committed selection from its current empty-query
88
- bootstrap cohort keeps the remaining eligible loaded choices available instead
89
- of closing the menu after every choice.
90
- - Controlled/uncontrolled ownership is unchanged. Retention follows committed
91
- controlled values; a proposed value that the caller has not accepted remains
92
- available.
93
- - Experimental surface (DEC-3): the touch sheet presentation is the
94
- `presentation` option inside the optional `experimental` prop object, outside
95
- the stable compatibility promise (`spec:AST-017/FR21`). Omitting `experimental`,
96
- or omitting `presentation` inside it, keeps the inline combobox and its
97
- anchored suggestion menu on every device. Changes to the option ship as
98
- `[experimental]` patch releases (`spec:AST-017/FR22`).
99
- - Migration decision: none. Existing callers that omit `hasEntriesOnFocus`, typed
100
- search selection, explicit dismissal, disabled state, maximum-entry state, and
101
- source-loading behavior retain their prior boundaries.
102
-
103
- Consumer migration instructions belong in consumer docs and release notes.
104
-
105
- ## Ownership boundary
106
-
107
- **Owns**
108
-
109
- - The token collection, stable native search input, and painted outer field/control
110
- surface that contains them.
111
- - The lifecycle of Tokenizer's own focus-bootstrapped suggestion menu after a
112
- committed selection, including selected-value exclusion, next-option choice,
113
- focus continuity, and terminal close states.
114
- - The active opening control for a task initiated within Tokenizer: the inner input
115
- for add/search work or the actual activated token/control for edit work.
116
- - The identity, usability, lifetime, and safe fallback semantics of those elements
117
- in one package-internal descriptor.
118
- - Tokenizer's current suggestion-menu width and minimum-anchor-width behavior.
119
- - Token wrapping and the `none`, `unfocusedInline`, and `unfocusedLayer` overflow
120
- presentations.
121
- - The touch sheet presentation: its trigger, the single searchable sheet, the
122
- in-session row order, progressive long-list rendering, the create row, the
123
- confirmed Clear all, and which Tokenizer props the sheet honors.
124
-
125
- **Does not own / non-goals**
126
-
127
- - General BaseTypeahead selection policy. Direct single-select BaseTypeahead and
128
- Typeahead keep their select-clear-close-refocus lifecycle.
129
- - A new rule for typed-query selection or a requirement to refetch suggestions
130
- after each Tokenizer selection.
131
- - General anchor positioning, top-layer hosting, viewport collision, generated
132
- anchor names, or prepared-placement lifecycle — owned by
133
- `architecture:layer-runtime`.
134
- - PowerSearch editor sizing, including its proposed 400–720 CSS px range — owned
135
- by `component:PowerSearch` if that draft is approved.
136
- - A public input ref, opening-control ref, anchor descriptor, maximum menu width,
137
- coordinate, placement, or pointer-tracking API.
138
- - A change to released `menuWidth` semantics. It remains an exact preferred pixel
139
- width whose rendered menu does not shrink below the Tokenizer outer field.
140
- - Consumer-provided token content and visuals. Tokenizer owns only the capture
141
- boundary needed to identify the control that activated an internal open.
142
- - The compact-touch resolution rule behind `adaptive`, owned by
143
- `spec:AST-094/FR13` (a touch presentation applies under a coarse primary
144
- pointer, after hydration; compact is `spec:AST-012/FR9`). Tokenizer resolves
145
- `adaptive` with that one rule, as the selection controls do; it adds no
146
- query of its own.
147
- - The sheet's dialog, scrim, gestures, snap behavior, and dismissal paths —
148
- owned by `component:BottomSheet` and `family:overlay-dismissal`; its
149
- on-screen keyboard behavior — owned by `spec:AST-099`.
150
-
151
- ## Public concepts
152
-
153
- One public concept is introduced, as an experimental surface: the optional
154
- `experimental` prop object and its `presentation` option, `'popover' |
155
- 'bottom-sheet' | 'adaptive'` (DEC-3). The option type is inlined on the prop;
156
- no experimental hook or type is exported. Declarations carry `@experimental`
157
- and consumer docs carry `stability: 'experimental'` metadata. Implementation
158
- gap: the option is not yet exposed — `TokenizerProps` offers no `experimental`
159
- while the sheet's user experience is being finished, consumer docs carry no
160
- `experimental` entry, and the sheet-capable signature is reachable only
161
- through `@astryxdesign/core/internal/tokenizer-presentation`, an internal entry
162
- reserved for Astryx's own packages (`architecture:react-component-runtime`
163
- INV13). Existing consumer props and usage remain in `Tokenizer.doc.mjs`. The existing
164
- `hasEntriesOnFocus` mode includes the component-owned post-selection behavior
165
- in FR13–FR15.
166
-
167
- In the sheet presentation the trigger is the control: `ref`, `id`, `data-*`,
168
- `aria-*`, and the other base props reach it (`family:input-fields/FR10`,
169
- `architecture:public-component-api/INV8`), `handleRef.focus()` and `blur()`
170
- act on it, and `onFocus`, `onBlur`, and `onKeyDown` report its events. The
171
- `ref` type follows the opt-in. The exported `TokenizerProps` remains an
172
- interface and keeps `ref?: Ref<HTMLInputElement>` as released, so `interface
173
- X extends TokenizerProps<T>` and `Omit<TokenizerProps<T>, …>` wrappers keep
174
- compiling; the component's own parameter type is where the widening lives:
175
- with `experimental` passed, `ref` accepts `Ref<HTMLInputElement |
176
- HTMLButtonElement>` and receives the trigger button in the sheet presentation
177
- and the combobox input otherwise. The
178
- props that describe the inline combobox have no surface in the sheet
179
- presentation: `renderItem`, `renderToken`, `endContent`, `hasClear` (the
180
- sheet's own Clear all replaces it), `hasEntriesOnFocus` (the sheet always
181
- lists the bootstrap set), `menuWidth`, `tokenOverflowBehavior`, and
182
- `hasAutoFocus`. Passing one of them with the sheet presentation emits one
183
- development-mode warning naming the prop, so it is not silently dropped
184
- (`architecture:public-component-api/INV3`); every other prop keeps its
185
- meaning.
186
-
187
- The descriptor is package-internal. It must be absent from exported
188
- `TokenizerProps`, public barrels, generated declarations, consumer docs, CLI
189
- output, and Changesets. Current `handleRef` remains the public focus/blur handle;
190
- it does not become an element or geometry escape hatch.
191
-
192
- ## Behavioral and layout contract
193
-
194
- Each requirement identifies its basis. This current record defines the approved
195
- package-internal contract while implementation and focused verification remain
196
- pending. FR1–FR15 describe the `popover` presentation, the inline combobox;
197
- FR16–FR24 describe the `experimental.presentation` option and its sheet
198
- presentation, which has no inline combobox, suggestion menu, or end lane.
199
-
200
- | ID | Invariant | Basis | Status |
201
- | ---- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
202
- | FR1 | Tokenizer MUST keep one native combobox input mounted across token addition, removal, clear, ordinary wrapping, and maximum-entry states. Reaching `maxEntries` may make the input zero-width, transparent, and out of flow, but MUST NOT replace its identity. | Current source and tests | Verified current behavior |
203
- | FR2 | Tokenizer's suggestion menu MUST remain associated with the outer field/control surface. Existing `menuWidth` behavior remains an exact preferred pixel width plus the outer field's minimum width; it is not a maximum. | Current BaseTypeahead/Tokenizer source and docs | Verified current behavior; preserve |
204
- | FR3 | `unfocusedInline` MAY replace direct token layout with OverflowList while blurred. `unfocusedLayer` MAY keep the real wrapper/input mounted in a context layer while an ordinary-flow placeholder represents the collapsed field. | Current source, tests, and stories | Verified current behavior |
205
- | FR4 | Tokenizer MUST provide Core peers one package-internal descriptor with stable identities for its outer field/control surface and active opening control. Layer consumes the descriptor; public consumers cannot observe or configure it. | Approved package-internal contract; #5804 evidence; `spec:AST-002/DEC-1` | Current contract; implementation pending |
206
- | FR5 | Add/search opens MUST identify the stable inner input as the opening control before the result row disappears. Selection, query clearing, result removal, refocus, or later input collapse MUST NOT substitute the transient result row or a pointer coordinate. | Current selection order plus approved descriptor contract | Current contract; implementation pending |
207
- | FR6 | Edit opens MUST capture the actual activated token/control before state removes or replaces it. The Tokenizer-owned capture path MUST include custom `renderToken` output when activation originates from an identifiable descendant control; it MUST NOT require a new public ref contract. | Current owned wrapper plus approved capture contract | Current contract; implementation pending |
208
- | FR7 | A non-null element is usable only while connected, rendered, and geometrically meaningful for the open being prepared. A disconnected, stale, hidden-layer, zero-width, or otherwise unusable opening control MUST fall back safely to the outer field at logical start before show. | Current max/overflow states plus approved safety rule | Current contract; implementation pending |
209
- | FR8 | The descriptor MUST remain valid across focus movement, token add/remove/clear, wrapping, and `unfocusedLayer` reparenting. It MUST clear on unmount, perform no DOM work during SSR, and never retain an element beyond the open preparation that uses it. | Approved identity/lifetime contract | Current contract; implementation pending |
210
- | FR9 | A consuming surface MUST resolve its preferred width before choosing horizontal placement. A surface at least as wide as the outer field MUST use outer-field logical-start alignment. Only a surface narrower than the outer field may use opening-control geometry. | Approved conditional-placement contract | Current contract; implementation pending |
211
- | FR10 | For a narrower surface, Layer MUST compare the opening control with the outer field's physical start/end geometry, choose the nearer physical edge, map that result to logical start/end, and use logical start on a tie. Viewport collision runs last. | Approved Layer-consumer contract | Current contract; implementation pending |
212
- | FR11 | Opening placement MUST be modality-neutral and latched for one open lifetime. Pointer, keyboard, touch, and programmatic activation of the same control MUST produce the same preferred edge. Pointer movement, later focus movement, resize, or target collapse MUST NOT recompute it. | `architecture:interaction-modality` plus approved stability contract | Current contract; implementation pending |
213
- | FR12 | Placement state MUST commit while the surface is hidden, and Layer MUST show it on the next animation frame only after anchor, alignment, and width styles exist. A stale or invalid descriptor MUST never cause a visible wrong-position or first-frame flash. | Approved no-flash contract | Current contract; implementation pending |
214
- | FR13 | Tokenizer MUST exclude every choice whose `SearchableItem.id` is already present in its committed `value` from displayed bootstrap and search cohorts, including results that settle after the controlled value changes. A caller-rejected proposed value remains eligible because it was not committed. Distinct IDs remain eligible even when their labels match. | Approved Tokenizer multi-selection contract | Current contract; implementation and verification pending |
215
- | FR14 | With `hasEntriesOnFocus` enabled, committing a choice from the current settled empty-query bootstrap cohort MUST keep the input focused and the popup open when another eligible loaded choice remains. The active option advances to the next remaining choice in displayed order; when the committed choice was last, the nearest preceding choice becomes active. `aria-activedescendant` MUST reference that rendered option. | Approved rapid multi-select lifecycle | Current contract; implementation and verification pending |
216
- | FR15 | The retained popup MUST close and clear its active descendant when no eligible loaded choice remains, `maxEntries` is reached, the control becomes disabled, focus leaves, or the person dismisses it. Disabled Tokenizer remains non-interactive. Pending or stale source work MUST NOT reopen a terminal popup or expose stale choices; loading has no selectable placeholder and its busy state clears when work is cancelled or settles. | Approved terminal-state safety boundary | Current contract; implementation and verification pending |
217
- | FR16 | `experimental.presentation` selects the surface. `popover`, the value when `experimental` or the option is omitted, is the inline combobox with its anchored suggestion menu, unchanged. `bottom-sheet` is the trigger and modal sheet of FR17–FR24 on every device. `adaptive` resolves to `bottom-sheet` on compact coarse-pointer screens and to `popover` otherwise, through the one touch-presentation rule `spec:AST-094/FR13` owns, as the selection controls do. `adaptive` renders on the server, and hydrates, as the inline field, because the resolver answers `popover` where there is no `matchMedia` and in the hydrating render; on a compact coarse-pointer client the field swaps to the trigger in the first render after hydration; nothing is focused before interaction, so focus is undisturbed (`document.activeElement` stays the body), except with `hasAutoFocus`, whose server-rendered `autofocus` focuses the inline input on load: then the swap moves that focus to the trigger — the same element and visit for the caller, so no `onBlur`/`onFocus` pair is reported. The trigger keeps the field's box — the same width, top, label, and `size` block size — except the inline input's own row: when the tokens leave the input no room on their row, the inline field wraps the input onto a row of its own, and the trigger, which has no input, drops that row (one `md` row, 27px, on a 390 and a 414px phone with five tokens); with room for the input beside the tokens, nothing shifts. A resolution change while the sheet is open takes effect after it closes and focus has returned to the trigger — the presentation hold `architecture:layer-runtime/INV14` assigns to the layer runtime; INV14 gap: the runtime does not yet provide one (its record names INV14 as ownership not yet met), so until it does the field keeps its own hold, to be replaced by the runtime's when it exists. Whenever the presentation changes while its control holds focus — then, or while the sheet is closed — focus moves to the new presentation's control, the combobox input or the trigger, so it never lands on the page body (`spec:AST-085/FR4`). | DEC-3; touch-flow evidence from the Lab prototype | Verified current behavior through the internal entry. Implementation gap: the sheet presentation is implemented but not yet exposed; `TokenizerProps` offers no `experimental.presentation` while its user experience is being finished, and every field renders the popover presentation. |
218
- | FR17 | In the sheet presentation the control surface is one button, named by the field label, with `aria-haspopup="dialog"` and `aria-expanded`. It shows the selected tokens without remove controls, or the placeholder when empty, wraps tokens onto further lines, and keeps the inline field's block size for its `size` step. Activating it opens one tall modal BottomSheet named by the field label; the suggestion popover, inline input, and end lane do not render. While disabled the trigger stays focusable with `aria-disabled="true"`, does not open, and shows `disabledMessage` as the inline field does (`spec:AST-085/FR1`); a field that becomes disabled while its sheet is open closes the sheet and returns focus to the trigger (`spec:AST-085/FR2`). | DEC-3; Lab touch-flow evidence; `spec:AST-085` | Verified current behavior through the internal entry. Implementation gap: the sheet presentation is implemented but not yet exposed; `TokenizerProps` offers no `experimental.presentation` while its user experience is being finished, and every field renders the popover presentation. |
219
- | FR18 | The sheet is a single surface: a search row at the top using the panel search field the selection controls share, a scrolling list of rows, and, while the query is empty, a footer with Clear all and Done. There is no second sheet. On open, focus moves to the sheet's panel, not the search field, so the reading order starts at the top of the sheet and the on-screen keyboard rises only when the person reaches for the search (WCAG 2.2 SC 2.4.3 Focus Order and 3.2.1 On Focus through `spec:AST-020/FR1`). Done closes the sheet; swipe, scrim, and Escape dismissal follow BottomSheet `purpose="info"`; each of those closes clears the query and reports it through `onChangeQuery`, so the next open lists the bootstrap set, while a close the field forces (becoming disabled, FR17) keeps the query, since nothing the person did changed it; focus returns to the trigger after the sheet closes. | DEC-3; Lab touch-flow evidence; `component:BottomSheet` | Verified current behavior through the internal entry. Implementation gap: the sheet presentation is implemented but not yet exposed; `TokenizerProps` offers no `experimental.presentation` while its user experience is being finished, and every field renders the popover presentation. |
220
- | FR19 | Each row is a `checkbox` named by the item label whose `aria-checked` mirrors membership in `value`. Activating an unchecked row commits an `add` change; a checked row commits a `remove` change; both apply immediately and are announced with the inline field's words through the sheet's own live region (AR6). Row order is stable while the sheet is open: the items selected when it opened, in `value` order, then selected items absent from the results, then the results in source order; a toggle never moves an existing row. The next open takes a fresh snapshot. The query filters the selected rows by case-insensitive label substring. A row renders an item without its `action` and warns once in development that the sheet does not render it, as the inline panel does (`spec:AST-058/FR9`). | DEC-3; Lab touch-flow evidence | Verified current behavior through the internal entry. Implementation gap: the sheet presentation is implemented but not yet exposed; `TokenizerProps` offers no `experimental.presentation` while its user experience is being finished, and every field renders the popover presentation. |
221
- | FR20 | An empty query lists the source's bootstrap set, capped at `maxMenuItems` as the inline field caps its focus bootstrap (the prop keeps its meaning in the sheet), requested at once on open and on clearing the query, so an instant source shows no busy feedback and announces no busy start; a query shorter than `minQueryLength` is not searched: it lists only the selected rows it matches and, with `hasCreate`, the create row, with no busy feedback, no empty state, and no outcome announcement, as the inline field shows nothing for such a query; otherwise the source is searched `debounceMs` after the query change and the results are capped at `maxMenuItems`. `onChangeQuery` fires on every query change. From open, and from each query change, until that search settles, the list is pending: it shows named busy feedback above any rows still listed from the previous search, the list element carries the busy semantics (`aria-busy`), since the sheet has no combobox (`family:input-fields/FR7`, which places busy semantics on the list a presentation without a combobox updates), and no empty state shows; when the settled search removes the row that holds focus, focus moves to the search field (`spec:AST-085/FR4`). Once settled, the outcome is announced through the sheet's live region (AR6): the result count for a searched query, or the rendered text of the empty state when it shows (`spec:AST-056/FR3`). A source that rejects settles the search to no results, as the inline field does. With no rows and no create row, a searched query shows the `emptySearchText` empty state (its default message when omitted); an empty query shows no list, no message, and announces nothing — only the search field, above the footer — as the inline field opens no menu and reports nothing for a bootstrap set that is empty: nothing has failed, and typing is what finds items (a search-only source, `bootstrap: () => []`, is such a source). | DEC-3; Lab touch-flow evidence; `family:input-fields` | Verified current behavior through the internal entry. Implementation gap: the sheet presentation is implemented but not yet exposed; `TokenizerProps` offers no `experimental.presentation` while its user experience is being finished, and every field renders the popover presentation. |
222
- | FR21 | Long lists render progressively: 50 rows at a time, the next batch when the list scrolls within 200px of its end, with the window reset to the first batch on open and on each query change. The rendered and total counts are exposed as `data-rendered-count` and `data-total-count` on the list, and the rows sit in a `list` whose `listitem` wrappers carry `aria-setsize` with the total and `aria-posinset` with the row's position — the `checkbox` role itself admits neither — so a person moving through the rows can learn that more exist before the list has scrolled; whether a screen reader speaks the position ("n of total") from the focused checkbox depends on the screen reader (`spec:AST-009/FR8`), and the accessibility tree proves the `list`, `listitem`, `aria-setsize`, and `aria-posinset` exposure; focus reaching the last rendered row renders the next batch (WCAG 2.2 SC 1.3.1 Info and Relationships and 4.1.2 Name, Role, Value through `spec:AST-020/FR1`). | DEC-3; Lab touch-flow evidence | Verified current behavior through the internal entry. Implementation gap: the sheet presentation is implemented but not yet exposed; `TokenizerProps` offers no `experimental.presentation` while its user experience is being finished, and every field renders the popover presentation. |
223
- | FR22 | With `hasCreate`, a non-empty trimmed query that matches no selected id, no selected label, and no result label (case-insensitive) adds a create row above the list showing `Create "{text}"` with a trailing Add action named `Add {text}`. Activating it commits a `create` change whose item has the text as both id and label, clears the query, and moves focus to the sheet's search field, since the row it was on is gone. The create row is absent at `maxEntries`. | DEC-3; Lab touch-flow evidence; `hasCreate` contract of the inline field | Verified current behavior through the internal entry. Implementation gap: the sheet presentation is implemented but not yet exposed; `TokenizerProps` offers no `experimental.presentation` while its user experience is being finished, and every field renders the popover presentation. |
224
- | FR23 | At `maxEntries`, unchecked rows carry `aria-disabled="true"`, stay focusable, and ignore activation; checked rows remain toggleable so the person can make room (`spec:AST-085/FR1`). | DEC-3; Lab touch-flow evidence; `spec:AST-085` | Verified current behavior through the internal entry. Implementation gap: the sheet presentation is implemented but not yet exposed; `TokenizerProps` offers no `experimental.presentation` while its user experience is being finished, and every field renders the popover presentation. |
225
- | FR24 | Clear all is disabled while `value` is empty: `aria-disabled`, still in the focus order, with a tooltip saying nothing is selected, and a click opens nothing (`spec:AST-085/FR1`). Otherwise it opens an AlertDialog confirmation naming the field; confirming commits `[]` with a `remove` change naming the last selected item, closes the confirmation, and — once the confirmation has closed — moves focus to the sheet's search field, the destination this record names (`spec:AST-085/FR4`): the clear is spent, and the search field is where the next selection starts (WCAG 2.2 SC 2.4.3 through `spec:AST-020/FR1`), and announces "All items removed" inside the sheet (AR6); cancelling changes nothing and focus returns to Clear all. | DEC-3; Lab touch-flow evidence | Verified current behavior through the internal entry. Implementation gap: the sheet presentation is implemented but not yet exposed; `TokenizerProps` offers no `experimental.presentation` while its user experience is being finished, and every field renders the popover presentation. |
226
-
227
- ### Allowed variation
228
-
229
- - **AV1 — Token presentation.** Default Token controls and custom `renderToken`
230
- content may differ visually. The opening-control capture boundary remains
231
- Tokenizer-owned when an identifiable descendant control initiates activation.
232
- - **AV2 — Overflow presentation.** Tokens may wrap normally, truncate while
233
- unfocused, or move with the live input into `unfocusedLayer`. These modes may
234
- change element geometry but not descriptor identity or fallback order.
235
- - **AV3 — Internal representation.** The descriptor may use refs, elements,
236
- callback registration, or an equivalent Core-private representation. It must
237
- preserve FR4–FR8 and stay out of public declarations.
238
- - **AV4 — Layer mechanism.** Layer may realize the latched edge through a
239
- zero-size marker, separate size and position anchors, or another internal
240
- mechanism that satisfies FR9–FR12 and current Layer architecture.
241
- - **AV5 — Responsive movement.** CSS may follow outer-field movement, container
242
- resize, writing direction, and collision while open. JavaScript does not
243
- remeasure or select a new preferred edge until the next open.
244
- - **AV6 — Internal retention mechanism.** Tokenizer and BaseTypeahead may retain,
245
- project, or otherwise coordinate the settled cohort through a package-private
246
- mechanism. That mechanism must preserve FR13–FR15, must not become public API,
247
- and must not change direct single-select BaseTypeahead behavior.
248
- - **AV7 — Sheet surface composition.** The sheet presentation may compose
249
- BottomSheet, the shared panel search field, EmptyState, AlertDialog, and the
250
- checkbox indicator in any internal structure, and may load that surface on
251
- demand, provided FR16–FR24, AR6, and PR6 hold and the structure stays within
252
- `architecture:component-style-authoring` INV7 — minimal DOM, content
253
- rendered once; at rest, a pointer-specific presentation is a change of
254
- attributes and styles on the same elements; open, in INV7's words, "the
255
- open layer under a coarse pointer has at most as many elements as under a
256
- fine pointer (beyond that, only by the open-layer allowance `spec:AST-017`
257
- FR60 and DEC-29 set)". The closed `adaptive` trigger (a different element,
258
- which no allowance covers) and the open sheet (more than the five extra
259
- elements FR60 allows) are owner exceptions DEC-3 records, beyond that
260
- allowance, with their before and after counts.
261
-
262
- ### Representative states
263
-
264
- | State | Required invariant | Allowed variation |
265
- | ------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- |
266
- | Empty field | The mounted inner input is the opening control; a full-width menu stays aligned to the outer field. | Placeholder and bootstrap results may vary. |
267
- | Focus bootstrap, choices remain | A committed selection is removed from the displayed cohort; the input and popup remain active on the next valid remaining choice. | Internal cohort storage and projection may vary. |
268
- | Focus bootstrap, selected choice was last | The nearest preceding remaining choice becomes active without changing the displayed order. | Option identity representation may vary. |
269
- | Focus bootstrap, no choices or max reached | The popup closes and no active descendant remains; pending work cannot reopen it. | Source cancellation mechanism may vary. |
270
- | Source pending or replaced | Busy semantics identify pending work; stale work cannot add choices or reopen a terminal popup. | A settled current cohort may be retained internally. |
271
- | Disabled | No choice can be committed; an open popup closes and clears its active descendant while disabled-reason focusability remains available where configured. | The disabled representation follows `spec:AST-085`. |
272
- | One or many tokens | The same input remains after tokens and moves with wrapping; full-width placement does not follow that movement. | Token labels, wrapping rows, and custom content may vary. |
273
- | At `maxEntries` | The input identity remains mounted but its zero-width/hidden box is unusable as geometry; opening falls back to the outer field. | Search remains unavailable under current behavior. |
274
- | Token removal or clear | Input identity survives and current refocus behavior remains. | Token count and input position change. |
275
- | `unfocusedInline` | Blurred OverflowList and focused direct-token layouts resolve the same live input identity; a collapsed input is not used as geometry. | Visible token count may vary with width. |
276
- | `unfocusedLayer`, focused | The live wrapper/input may be reparented into the context layer without descriptor churn. | Corrective portal location may vary. |
277
- | `unfocusedLayer`, unfocused | The hidden-layer input is unusable for a new open; the ordinary-flow outer-field fallback is used. | Placeholder token count may vary. |
278
- | Default or custom token edit | The actual activated token/control is captured before edit state changes; if no usable descendant control exists, input then outer-field fallback applies. | Custom token markup may vary. |
279
- | LTR or RTL | Physical proximity selects an edge only for a narrower surface; logical start wins ties and full-width placement. | Collision may move the final rendered surface. |
280
- | SSR, hydration, or unmount | No server geometry read occurs; first client open prepares normally; unmount clears identities and pending show work. | Hydration timing may vary. |
281
- | Sheet presentation, closed | The trigger shows the tokens or placeholder at the inline field's height for its `size`, `aria-expanded="false"`; no sheet content is interactive. | Token wrapping and placeholder text may vary. |
282
- | Sheet presentation, open | One tall modal sheet named by the label: search on top, stable-order checkbox rows, Clear all and Done while the query is empty. Focus is on the sheet's panel, not the search field. | Row count, batches, and empty states may vary. |
283
- | Sheet presentation, searching | The footer is absent; the list is busy until the search settles; rows filter to the query; the create row leads when `hasCreate` applies; a dead end shows the no-results empty state. | Debounce and result cap follow the props. |
284
- | Sheet presentation, at `maxEntries` | Unchecked rows are `aria-disabled` and inert; checked rows toggle; no create row. | The disabled representation follows `spec:AST-085`. |
285
- | Sheet presentation, dismissed | After a swipe, scrim, Escape, or Done close the query is empty and reported, so the next open lists the bootstrap set; focus is back on the trigger. A close forced by disabling keeps the query. | A dismissal that keeps a typed query for the next open, or that leaves focus on the page body, fails. |
286
- | Sheet presentation, `adaptive` resolution | Server and hydrating renders are the inline field; a compact coarse-pointer client swaps to the trigger in the first render after hydration, focus undisturbed, the box kept except an inline input row the tokens had wrapped. While closed the surface follows the shared compact-touch query; an open surface keeps its presentation until it closes. | The query is shared, not Tokenizer-owned. |
287
-
288
- ### Transformation and precedence order
289
-
290
- - **ORD1 — Surface width.** Resolve the consuming component's preferred surface
291
- width. Tokenizer contributes no PowerSearch width value.
292
- - **ORD2 — Full-width decision.** If the preferred surface width is greater than
293
- or equal to the outer field width, use the outer field and logical start. Do not
294
- read or apply opening-control geometry to choose an edge.
295
- - **ORD3 — Opening control.** For a narrower surface, use the actual captured
296
- token/control when available; otherwise use the stable inner input; otherwise
297
- use the outer field at logical start.
298
- - **ORD4 — Edge selection.** Compare the usable control with the outer field's
299
- physical start and end, choose the nearer edge, and map it to logical
300
- start/end. A tie resolves to logical start.
301
- - **ORD5 — Hidden commit.** Commit width mode, anchor, and alignment while hidden;
302
- show on the next animation frame and latch the result until close.
303
- - **ORD6 — Collision.** Apply Layer's CSS-owned viewport and safe-area collision
304
- behavior last. Collision does not reopen the semantic edge decision.
305
-
306
- ### Performance and resources
307
-
308
- - **PR1 — No render-time measurement.** Neither Tokenizer nor a descriptor
309
- consumer may read geometry during React render.
310
- - **PR2 — One read batch per open.** Open preparation reads the outer field and,
311
- only when needed, the opening control in one batched read phase. Instrumented
312
- verification must fail on a second preparation batch for the same open.
313
- - **PR3 — Hidden preparation.** Anchor, width mode, and alignment commit while the
314
- surface is hidden; show occurs on the next animation frame. Close or unmount
315
- before that frame cancels the pending show.
316
- - **PR4 — No continuous tracking.** The contract adds no pointer tracking,
317
- always-on ResizeObserver, global resize listener, or repeated geometry read.
318
- - **PR5 — CSS owns ongoing geometry.** Container resize, outer-field movement,
319
- writing-direction layout, and final collision remain CSS/Layer work after the
320
- one-time semantic choice.
321
- - **PR6 — The sheet surface is opt-in cost.** A field in the `popover`
322
- presentation does not load the sheet surface's code; the surface loads on
323
- demand only while a field resolves to `bottom-sheet`, renders nothing on the
324
- server or during the hydrating render, and renders its long lists in batches
325
- (FR21).
326
-
327
- ## Accessibility contract
328
-
329
- AR1–AR5 and AR7 describe the `popover` presentation; AR6 describes the sheet
330
- presentation.
331
-
332
- - **AR1 — Modality equivalence.** The same input or token/control produces the
333
- same preferred placement for pointer, touch, keyboard, and programmatic
334
- activation. No pointer coordinate participates.
335
- - **AR2 — Semantic stability.** The descriptor and placement work MUST NOT change
336
- Tokenizer's field, group, combobox, listbox, option, token, announcement,
337
- disabled, focus, or dismissal semantics.
338
- - **AR3 — Focus stability.** Existing focus/refocus behavior survives add,
339
- remove, clear, overflow expansion/collapse, and related-surface open/close.
340
- - **AR4 — No visible placement error.** A person MUST NOT see a surface first
341
- paint at an outer-start or stale position and then jump to its resolved edge.
342
- Invalid identity falls back before show rather than flashing or showing wrong.
343
- - **AR5 — Retained combobox semantics.** While a focus-bootstrapped menu remains
344
- open after selection, DOM focus MUST stay on the combobox, `aria-expanded` MUST
345
- remain true, and `aria-activedescendant` MUST name the rendered next valid
346
- option. Closing for dismissal, disabled, maximum, or exhaustion MUST remove the
347
- active descendant. Selected and disabled options are never interactive.
348
- - **AR6 — Sheet semantics.** In the sheet presentation the trigger is a button
349
- named by the field label with `aria-haspopup="dialog"` and `aria-expanded`,
350
- and its accessible description is everything the inline input's is, in
351
- the inline input's order — the caller's `aria-describedby` ids, the field
352
- `description`, the status message, and the `disabledMessage` reason when
353
- disabled (a disabled control exposes its description and its reason on
354
- itself, `spec:AST-085/FR5`) — followed by the selected count and the
355
- selected token labels, so the selection the sighted person sees is exposed
356
- to assistive technology as the trigger's description; the labels are the
357
- rendered tokens themselves, each referenced by id from `aria-describedby`
358
- after a hidden count, so no label renders twice
359
- (`architecture:component-style-authoring` INV7); whether a screen reader
360
- reads a description with the button depends on the screen reader
361
- (`spec:AST-009/FR8`), and the DOM and accessibility tree prove the
362
- `aria-describedby` exposure (WCAG 2.2 SC 1.3.1 and 4.1.2 through
363
- `spec:AST-020/FR1`);
364
- the sheet is a modal dialog named by the field label; the search field is
365
- named `Search {label}` with a named clear action; each row is a `checkbox`
366
- named by its item label with `aria-checked`, toggled by tap or click and by
367
- Space and Enter, the activation keys of the native button it is rendered on
368
- (`spec:AST-020/FR15`; WCAG 2.2 SC 2.1.1 and 4.1.2); disabled rows and a
369
- disabled trigger use `aria-disabled` and keep their focus order; while the
370
- sheet is
371
- open, additions, removals, a confirmed Clear all ("All items removed", made
372
- once the confirmation has closed, since a message sent while the
373
- confirmation covers the sheet is not heard — `spec:AST-086/FR14`), the
374
- search's busy start, and how each search
375
- ended — the result count for a non-empty query, or the empty state's text when
376
- it shows, both from the search's own `useAnnounce({hasReplace: true})`
377
- instance (`spec:AST-086/FR9`, FR13), so a newer one replaces one not yet
378
- spoken — are announced once per occasion from inside the sheet through
379
- `useAnnounce`, which `spec:AST-086/FR14` routes into the persistent
380
- polite container of the sheet's own dialog while it is open, because the
381
- shared page-body channel is not exposed behind a native modal; the
382
- container follows FR3, FR5, and FR6 of that record (WCAG 2.2 SC 4.1.3
383
- through `spec:AST-020/FR1`). After the sheet closes focus returns to the
384
- trigger and the field's announcements follow the same FR14 route from
385
- wherever the field renders.
386
- - **AR7 — Clear all is announced.** In the `popover` presentation, the field's
387
- Clear all, which empties every token at once and moves focus to the input,
388
- announces "All items removed" (`@astryx.tokenizer.allRemoved`, the words of
389
- the sheet's Clear all in AR6) the same way the field announces a token added
390
- or removed: politely, through the shared channel (`spec:AST-086/FR2`, FR5).
391
- It is announced once per Clear all (`spec:AST-086/FR6`); a Clear all
392
- confirmed in the sheet is announced by the sheet alone (AR6), and the field
393
- stays silent for it (WCAG 2.2 SC 4.1.3 through `spec:AST-020/FR9`). A
394
- component that composes Tokenizer and words its own Clear all announces its
395
- own words instead (`component:PowerSearch`).
396
-
397
- ## Design relationships
398
-
399
- The first six rows describe the `popover` presentation; the sheet rows describe
400
- the sheet presentation.
401
-
402
- | Anatomy or state | Design requirement | Representation authority | Hierarchy role | Component contract |
403
- | --------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------- | -------------- | ------------------- |
404
- | Outer field/control surface | Contains tokens, input, and end controls; remains the full-width placement and safe fallback anchor. | Current Tokenizer source | Prominent | FR1–FR4, FR7, FR9 |
405
- | Token chips | Present selected values and removal; an activated token/control may become the per-open opening control. | Token component or custom renderer | Prominent | FR6, FR8, AR2–AR3 |
406
- | Search input | Remains one mounted combobox node and is the add/search opening control while geometrically usable. | Current Tokenizer/BaseTypeahead source | Prominent | FR1, FR5, FR7–FR8 |
407
- | Suggestion menu | Retains current outer-field anchoring and exact preferred `menuWidth`; focus bootstrap keeps only eligible choices and a valid active option. | Current BaseTypeahead source | Prominent | FR2, FR13–FR15, AR5 |
408
- | Overflow placeholder/layer | Preserves a usable outer-field fallback while live content may reparent or collapse. | Current Tokenizer/Layer composition | Supporting | FR3, FR7–FR8 |
409
- | Dependent narrower surface | Uses the descriptor only after its owning component resolves a width narrower than the field. | Consuming component plus Layer | Prominent | FR9–FR12 |
410
- | Sheet trigger | The field's control surface in the sheet presentation: tokens or placeholder, the inline field's size step, opens the sheet. | Tokenizer source; Token | Prominent | FR17, AR6 |
411
- | Sheet search row | The shared panel search field at the top of the sheet; filters rows and the create row. | Shared panel search field | Prominent | FR18, FR20, FR22 |
412
- | Sheet rows | Full-width checkbox rows with a trailing indicator; stable order while open; disabled at the limit. | Tokenizer source; checkbox indicator | Prominent | FR19, FR21, FR23 |
413
- | Sheet footer | Equal-width large Clear all and Done while the query is empty; Clear all confirms through an AlertDialog. | Button; AlertDialog | Supporting | FR18, FR24 |
414
-
415
- This contract adds no target, state, or visual styling contract. The sheet
416
- presentation exposes the field's existing `tokenizer` target on the trigger;
417
- the sheet's own parts carry no Tokenizer theming targets while the option is
418
- experimental (DEC-3), and are themed through the targets of the components
419
- they compose.
420
-
421
- ## Family and system relationships
422
-
423
- - `family:overlay-dismissal` continues to own shared Escape and platform-close
424
- ordering for Tokenizer's BaseTypeahead/Layer surfaces.
425
- - `architecture:layer-runtime` owns generated anchor names, anchor composition,
426
- prepared placement, top-layer hosting, viewport collision, visibility
427
- reconciliation, and cleanup. Tokenizer supplies identity, not Layer mechanics.
428
- - `architecture:interaction-modality` owns shared modality state. Opening
429
- placement deliberately does not branch on that state.
430
- - `architecture:public-component-api` and `spec:AST-002/DEC-1` keep derivable
431
- geometry and package-peer identity out of Tokenizer's public API.
432
- - The current Typeahead draft records BaseTypeahead's layer delegation but does
433
- not own Tokenizer's token/input identity or the approved descriptor.
434
- - `family:input-fields` owns family-wide state display, behavior, appearance,
435
- size, end-control, disabled-reason, and status-placement policy. Tokenizer
436
- keeps its component-local token/input and source-loading behavior inside that
437
- boundary.
438
- - The PowerSearch contract at
439
- [#5804](https://github.com/meta/astryx/pull/5804) depends on the approved
440
- descriptor and owns its own editor width policy. It is dependent draft evidence,
441
- not authority for Tokenizer.
442
-
443
- ### Required implementation and browser evidence
444
-
445
- The post-selection lifecycle must update the owning source, focused tests,
446
- consumer docs, and Changeset together. Exact-head browser evidence must exercise:
447
-
448
- 1. Pointer and keyboard selection from a settled focus-bootstrap cohort, with the
449
- committed value removed, the popup still open, input focus preserved, and the
450
- next remaining option active.
451
- 2. The fallback when the committed option was last, plus terminal closure for no
452
- remaining choice and `maxEntries`.
453
- 3. Escape, Tab or outside focus departure, transition to the disabled state,
454
- and pending or stale source settlement without a
455
- later reopen.
456
- 4. The unchanged path when `hasEntriesOnFocus` is off and direct single-select
457
- BaseTypeahead selection still closes.
458
-
459
- The separate opening-control descriptor remains pending. When that descriptor and
460
- its Layer consumer ship, they must add screenshotable full/equal/narrow-width,
461
- wrapped-token, overflow-layer, LTR/RTL, collision, stale-fallback, and first-paint
462
- evidence. Instrumented verification must prove one geometry-read batch per open.
463
- PowerSearch's separate evidence owns its editor dimensions; those dimensions never
464
- become Tokenizer policy.
465
-
466
- ## Verification map
467
-
468
- | Contract | Verification | Representative states | Mutation or failure expectation | Audit section |
469
- | ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------- |
470
- | FR1–FR3 | Existing Tokenizer/BaseTypeahead unit tests plus source inspection | empty, tokens, remove, clear, max, wrapping, both overflow modes | Input remounts, suggestion menu changes anchor/width semantics, or overflow ownership is misstated. | `audit:Tokenizer/current` |
471
- | FR4–FR8 | Focused descriptor identity/capture tests when implemented | add, default/custom token edit, max, hidden layer, reparent, stale node, unmount, SSR | Descriptor leaks publicly, captures a transient result/pointer, misses custom controls, or uses unusable geometry. | `audit:Tokenizer/opening-anchor` |
472
- | FR9–FR12 | Layer unit tests and real-Chromium geometry checks when implemented | full/equal/narrow surface, start/end/tie, LTR/RTL, collision, stale fallback | Full-width follows inner input, tie is physical, collision runs early, or stale identity flashes. | `audit:Tokenizer/placement` |
473
- | FR13–FR15, AR5 | Focused Tokenizer/BaseTypeahead tests and exact-head Chromium interaction evidence | pointer/keyboard commit, first/middle/last choice, rejected/deferred control, loading, disabled, max, exhaustion, Escape, Tab, outside focus | Selected values remain available, order changes, focus leaves the combobox, active descendant names no option, stale work reopens, or a terminal state stays interactive. | `audit:Tokenizer/multi-select` |
474
- | PR1–PR5 | Instrumented reads, pending-frame cleanup tests, and first-frame Chromium capture | open, close before frame, reopen opposite side, resize while open | Render-time/repeated reads, observer/pointer tracking, uncancelled frame, or first-frame jump occurs. | `audit:Tokenizer/performance` |
475
- | AR1–AR5 | Existing interaction suites plus focused pointer/keyboard/browser checks; native-disabled assertions pending conformance (`spec:AST-085`) | add/edit, focus/refocus, overflow, disabled, dismissal, retained bootstrap selection | Modality changes placement, semantics/focus regress, active descendant becomes invalid, or visible placement is wrong before fallback. | `audit:Tokenizer/accessibility` |
476
- | AR7 | Focused Tokenizer tests, inline and sheet, and the PowerSearch test | inline Clear all; a localized catalog; a Clear all confirmed in the sheet counted across every live region; PowerSearch's own words | The inline Clear all is silent, speaks words other than its catalog message, a sheet Clear all is announced twice, or PowerSearch speaks Tokenizer's words. | `audit:Tokenizer/accessibility` |
477
- | FR16–FR24, AR6, PR6 | Focused Tokenizer sheet tests with the compact-touch query stubbed both ways, a server-render-then-hydrate test, plus real-engine touch evidence | default popover, forced sheet, adaptive both ways, `adaptive` server-rendered as the combobox and hydrated without a recoverable error, then the trigger on a coarse-pointer client with the body still active, with `hasAutoFocus` the autofocused input's focus on the trigger after the swap and no `onBlur`/`onFocus` reported, the trigger's box against the hydrating field's at 390 and 414px, base props and ref on the trigger, the trigger's description in the inline input's order — a disabled trigger with `disabledMessage`, `description` and a status exposing the caller's ids, the description, the status message and the reason before the count and the tokens —, inert-prop warning, pending search, in-sheet announcements of toggles, busy start, result count and the rendered empty outcome, the confirmed Clear all announced once the confirmation has closed, a below-threshold query, a rejecting source, focus on the panel at open, the query cleared by a swipe, scrim, or Escape close, focus after a presentation change with the sheet closed, focus after the create row, focus after a confirmed Clear all, a spent Clear all focusable with `aria-disabled` and no action, focus after a settled search removes the focused row, no busy feedback or busy-start announcement on open with an instant source, only the search field — no list, no message, no announcement — for an empty query with nothing to list (a search-only source, nothing selected), and the list once a query finds items, element counts under a fine and a coarse pointer at rest and open (Chromium, Experimental stories: adaptive 154/120 at rest — the closed trigger in place of the inline field, a different element that stays under the fine count — and 157/165 open at the query "e" with no footer, the coarse total reconciled as rest − the re-hosted surfaces host + the dialog of 47 by part, forced sheet 114/114 and 165/165; the two owner exceptions DEC-3 records beyond the FR60 allowance, with before and after counts), no confirmation dialog in the DOM while none is pending, the query kept across a disabled-forced close, `aria-setsize`/`aria-posinset` on each row's `listitem` and the next batch on focus reaching the last rendered row, open/toggle/reopen order, create, batches, limit, Clear all, disabled while open, focus return | A field without `experimental` changes, a toggle moves a row, Clear all skips confirmation, the limit disables checked rows, or the popover bundle carries the sheet. | `audit:Tokenizer/sheet` |
478
- | Record structure | `scripts/check-knowledge.mjs` | Template-v3 current record and current-only frontmatter links | Invalid metadata, authority, or relationship references fail repository validation. | `audit:Tokenizer/knowledge` |
479
-
480
- ## Decision log
481
-
482
- ### DEC-1 — Opening control is package-internal and read once per open
483
-
484
- **Reference:** `component:Tokenizer/DEC-1`
485
- **Decider:** `cixzhang`, `2026-08-31`
486
-
487
- Tokenizer provides Core peers a package-internal descriptor for stable outer-field
488
- and active opening-control identities. A consuming surface resolves its preferred
489
- width first: a surface at least as wide as the field aligns to the outer field at
490
- logical start; only a narrower surface may choose the nearer outer physical edge
491
- from a usable opening control, with logical start as the tie and safe fallback.
492
- The choice is modality-neutral and latched for one open lifetime.
493
-
494
- Open preparation reads the outer field and, only when needed, the opening control
495
- in one batch, commits width mode, anchor, and alignment while hidden, shows on the
496
- next animation frame, and performs no continuous tracking. Tokenizer's public API
497
- remains unchanged. Implementation must provide real-Chromium open-state evidence
498
- for full-width and narrower placement, LTR and RTL, constrained collision, stale
499
- fallback, and the first paint without a visible jump.
500
-
501
- ### DEC-2 — Focus bootstrap supports consecutive committed selections
502
-
503
- **Reference:** `component:Tokenizer/DEC-2`
504
- **Decider:** `cixzhang`, `2026-09-19`
505
-
506
- When `hasEntriesOnFocus` is enabled, committing a choice from the current settled
507
- empty-query bootstrap cohort keeps the popup open with the remaining eligible
508
- loaded choices. Committed values are excluded by `SearchableItem.id`; distinct
509
- items with the same label remain eligible. The option after the committed choice
510
- in displayed order becomes active; when there is no following choice, the nearest preceding choice becomes active. Input focus and valid combobox/listbox
511
- ARIA relationships remain intact.
512
-
513
- The popup closes and clears its active descendant when no eligible loaded choice
514
- remains, `maxEntries` is reached, the control becomes disabled, focus leaves, or
515
- the person dismisses it. Pending or stale source work cannot reopen a terminal
516
- popup or make stale choices interactive. This decision adds no public API, does
517
- not require a refetch, and does not change typed-query selection or direct
518
- single-select BaseTypeahead behavior.
519
-
520
- ### DEC-3 — The touch sheet presentation is an experimental option
521
-
522
- **Reference:** `component:Tokenizer/DEC-3`
523
- **Decider:** `imdreamrunner`, `2026-10-23`
524
-
525
- Implementation gap: the sheet presentation is implemented but not yet
526
- exposed; `TokenizerProps` offers no `experimental.presentation` while its user
527
- experience is being finished, and every field renders the popover
528
- presentation. Astryx's own packages reach the implementation through the
529
- internal entry `@astryxdesign/core/internal/tokenizer-presentation`
530
- (`architecture:react-component-runtime` INV13); the rows below are verified
531
- through it.
532
-
533
- Tokenizer offers its touch surface through the `presentation` option of the
534
- optional `experimental` prop object, with the values `popover`, `bottom-sheet`,
535
- and `adaptive` that the selection controls use. The option is marked
536
- `@experimental` in declarations and `stability: 'experimental'` in authored
537
- docs, so it may change or be removed in a patch release (`spec:AST-017/FR21`).
538
- Omitting `experimental` keeps the inline combobox on every device. `adaptive`
539
- resolves through the shared compact coarse-pointer policy, so a Tokenizer and a
540
- Selector on the same page switch together. The value set is the selection
541
- controls' `AdaptivePresentation`, because Tokenizer picks several items from a
542
- searchable list as MultiSelector does. Rejected: the date and time fields'
543
- `PickerPresentation` value set with `adaptive-bottom-sheet` (its native-picker
544
- axis has no counterpart here). The sheet's parts expose no Tokenizer theming
545
- targets while the option is experimental (`spec:AST-017/FR27`); sheet targets
546
- follow the option's promotion.
547
-
548
- The sheet surface is one tall modal BottomSheet opened by a trigger that shows
549
- the selected tokens: a search row on top, checkbox rows whose order is fixed
550
- while the sheet is open and regrouped selected-first on the next open,
551
- progressive rendering of long lists, a create row with a trailing Add action,
552
- and a footer with a confirmed Clear all and Done. The sheet is a standalone
553
- BottomSheet driven by `isOpen`. Rejected: switching surfaces automatically on
554
- `pointer: coarse` without an opt-in (changes stable behavior). Rejected: a
555
- top-level stable `presentation` prop before the surface has consumer evidence.
556
- Rejected: separate manage and add sheets (two near-duplicate lists; the person
557
- loses their place). Rejected: hosting the one sheet in a BottomSheetSwitcher.
558
-
559
- **INV7 owner exception** (`architecture:component-style-authoring` INV7;
560
- `spec:AST-017/FR60`), in two parts, both beyond the FR60/DEC-29 allowance —
561
- which admits an open layer five extra elements and a closed control none —
562
- and recorded here with their measured counts as FR60 asks. _The closed field under `adaptive`._ INV7's
563
- surface budget says a pointer-specific presentation is a change of attributes
564
- and styles on the same elements; under `adaptive` on a compact coarse-pointer
565
- client the closed field instead renders a different element — the trigger
566
- button showing the selected tokens — in place of the inline combobox input,
567
- its token remove actions, and its overflow handling, because the touch surface
568
- is a sheet opened by a button, not a menu anchored to an input (DEC-3, FR16).
569
- The swap removes elements rather than adding them: at rest 154 elements under a
570
- fine pointer against 120 under a coarse one, measured as below, so the coarse
571
- pointer stays under the fine count at rest. _The open layer._ The open sheet
572
- has more elements than the open popover menu it replaces under a fine pointer,
573
- because it is a different surface, not the same one restyled: a full-height modal with a
574
- panel and handle, a search field with its clear action, a list whose rows are
575
- checkbox rows with an indicator and a position, a footer with Clear all and
576
- Done, and the sheet's own live region, in place of an anchored listbox of
577
- plain options; the Clear all confirmation is in the DOM only from the Clear
578
- all press until it closes. Measured in Chromium 149 on the
579
- Experimental: adaptive story (five tokens selected), elements under `body`,
580
- fine = desktop 1280×800 `pointer: fine`, coarse = iPhone 13 profile
581
- `pointer: coarse`. At rest: 154 fine / 120 coarse (the trigger with its tokens
582
- is smaller than the inline field with its token remove actions and input).
583
- Open, at the query "e" — a searching state, so the footer is not rendered
584
- (FR18): 157 fine — the inline field with its anchored menu open on the one
585
- story item matching "e", plus the two shared page live regions the first
586
- announcement creates — and 165 coarse. The coarse total reconciles exactly:
587
- 120 at rest, minus the 2 elements of the app-global surfaces host (the
588
- toast host the open modal re-hosts inside itself, `spec:AST-003/FR18`), plus
589
- the sheet's dialog of 47 — BottomSheet's dialog, panel, handle and edge tint
590
- 7; the sheet body 2; the search row with its clear action 19; the list 16
591
- (the list element, its scroll host, and two checkbox rows of 7 with indicator
592
- and position); the sheet's live region 1; the re-hosted surfaces host 2. A
593
- pending Clear all confirmation adds 20 while it is open; the footer, shown
594
- only while the query is empty, adds 9. The forced `bottom-sheet` presentation
595
- renders the same elements under either pointer (114 at rest, 165 open at "e",
596
- its dialog 53 with the story's create row of 6). At rest the coarse pointer
597
- never has more elements than the fine one: nothing of the sheet is in the DOM
598
- until a press. The exception covers the closed `adaptive` trigger and the open sheet; its
599
- counts are re-measured when either surface changes.
600
-
601
- ## Open questions
602
-
603
- - Should the sheet rows and trigger honor `renderItem` and `renderToken`, or
604
- stay with the default row and token rendering they have now? Today they stay
605
- with the defaults, as the Public concepts section records.
606
- - The opening-control descriptor implementation remains pending; the
607
- post-selection lifecycle has no unresolved decision.
608
-
609
- ## Content boundary
610
-
611
- This file does not duplicate consumer prop tables, usage examples, search
612
- algorithms, implementation code, current audit results, PowerSearch editor sizing,
613
- shared Layer mechanics, BottomSheet's own dialog and gesture contract, or the
614
- sheet's on-screen keyboard behavior (`spec:AST-099`). Consumer docs and release
615
- notes project only the approved component behavior.