@astryxdesign/core 0.7.5 → 0.7.6-canary.00146a7

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 (1898) hide show
  1. package/dist/AlertDialog/AlertDialog.d.ts +1 -1
  2. package/dist/AlertDialog/AlertDialog.d.ts.map +1 -1
  3. package/dist/AlertDialog/AlertDialog.js +5 -5
  4. package/dist/AppShell/AppShell.d.ts.map +1 -1
  5. package/dist/AppShell/AppShell.js +177 -5
  6. package/dist/AppShell/observeMainOverflow.d.ts +9 -0
  7. package/dist/AppShell/observeMainOverflow.d.ts.map +1 -0
  8. package/dist/AppShell/observeMainOverflow.js +125 -0
  9. package/dist/Avatar/Avatar.d.ts.map +1 -1
  10. package/dist/Avatar/Avatar.js +12 -3
  11. package/dist/Badge/Badge.d.ts.map +1 -1
  12. package/dist/Badge/Badge.js +8 -1
  13. package/dist/BottomSheet/BottomSheet.d.ts.map +1 -1
  14. package/dist/BottomSheet/BottomSheet.js +7 -3
  15. package/dist/BottomSheet/BottomSheetPanel.d.ts.map +1 -1
  16. package/dist/BottomSheet/BottomSheetPanel.js +38 -10
  17. package/dist/BottomSheet/BottomSheetSwitcher.d.ts +1 -1
  18. package/dist/BottomSheet/BottomSheetSwitcher.js +1 -1
  19. package/dist/BottomSheet/useMobileKeyboard.d.ts.map +1 -1
  20. package/dist/BottomSheet/useMobileKeyboard.js +44 -8
  21. package/dist/BottomSheet/useSheetGestures.d.ts +48 -6
  22. package/dist/BottomSheet/useSheetGestures.d.ts.map +1 -1
  23. package/dist/BottomSheet/useSheetGestures.js +97 -13
  24. package/dist/Breadcrumbs/BreadcrumbItem.js +4 -2
  25. package/dist/Button/Button.js +4 -4
  26. package/dist/Carousel/Carousel.d.ts +3 -1
  27. package/dist/Carousel/Carousel.d.ts.map +1 -1
  28. package/dist/Carousel/Carousel.js +12 -3
  29. package/dist/Center/Center.d.ts +1 -1
  30. package/dist/Center/Center.js +1 -1
  31. package/dist/Chat/ChatComposer.d.ts.map +1 -1
  32. package/dist/Chat/ChatComposer.js +10 -5
  33. package/dist/Chat/ChatComposerDrawer.d.ts +1 -1
  34. package/dist/Chat/ChatComposerDrawer.js +1 -1
  35. package/dist/Chat/ChatComposerInput.d.ts +1 -1
  36. package/dist/Chat/ChatComposerInput.js +1 -1
  37. package/dist/Chat/ChatLayout.d.ts.map +1 -1
  38. package/dist/Chat/ChatLayout.js +1 -1
  39. package/dist/Chat/ChatMessageList.d.ts.map +1 -1
  40. package/dist/Chat/ChatMessageList.js +3 -1
  41. package/dist/Chat/ChatPastedTextToken.d.ts.map +1 -1
  42. package/dist/Chat/ChatPastedTextToken.js +15 -4
  43. package/dist/Chat/ChatSystemMessage.d.ts.map +1 -1
  44. package/dist/Chat/ChatSystemMessage.js +2 -1
  45. package/dist/Chat/ChatToolCalls.d.ts.map +1 -1
  46. package/dist/CheckboxInput/CheckboxInput.d.ts.map +1 -1
  47. package/dist/CheckboxInput/CheckboxInput.js +6 -5
  48. package/dist/CheckboxList/CheckboxList.d.ts.map +1 -1
  49. package/dist/CheckboxList/CheckboxList.js +5 -2
  50. package/dist/CheckboxList/CheckboxListContext.d.ts +8 -0
  51. package/dist/CheckboxList/CheckboxListContext.d.ts.map +1 -1
  52. package/dist/CheckboxList/CheckboxListItem.d.ts.map +1 -1
  53. package/dist/CheckboxList/CheckboxListItem.js +5 -2
  54. package/dist/ClickableCard/ClickableCard.d.ts.map +1 -1
  55. package/dist/ClickableCard/ClickableCard.js +37 -4
  56. package/dist/Code/Code.d.ts +1 -1
  57. package/dist/Code/Code.js +1 -1
  58. package/dist/CommandPalette/CommandPaletteInput.d.ts.map +1 -1
  59. package/dist/CommandPalette/CommandPaletteInput.js +8 -5
  60. package/dist/ComplexSelector/ComplexSelector.d.ts +2 -2
  61. package/dist/ComplexSelector/ComplexSelector.d.ts.map +1 -1
  62. package/dist/ComplexSelector/ComplexSelector.js +48 -6
  63. package/dist/ContextMenu/ContextMenu.d.ts +6 -0
  64. package/dist/ContextMenu/ContextMenu.d.ts.map +1 -1
  65. package/dist/ContextMenu/ContextMenu.js +31 -7
  66. package/dist/DateInput/DateInput.d.ts +3 -2
  67. package/dist/DateInput/DateInput.d.ts.map +1 -1
  68. package/dist/DateInput/DateInput.js +12 -4
  69. package/dist/DateInput/MonthScroller.d.ts.map +1 -1
  70. package/dist/DateInput/MonthScroller.js +108 -23
  71. package/dist/DateInput/TouchDateField.d.ts.map +1 -1
  72. package/dist/DateInput/TouchDateField.js +8 -3
  73. package/dist/DateInput/Wheel.d.ts.map +1 -1
  74. package/dist/DateInput/Wheel.js +11 -7
  75. package/dist/DateInput/usePointerDragScroll.d.ts +10 -1
  76. package/dist/DateInput/usePointerDragScroll.d.ts.map +1 -1
  77. package/dist/DateInput/usePointerDragScroll.js +25 -9
  78. package/dist/DateInput/useScrollSettle.d.ts +3 -1
  79. package/dist/DateInput/useScrollSettle.d.ts.map +1 -1
  80. package/dist/DateInput/useScrollSettle.js +37 -8
  81. package/dist/DateRangeInput/DateRangeInput.d.ts +3 -2
  82. package/dist/DateRangeInput/DateRangeInput.d.ts.map +1 -1
  83. package/dist/DateRangeInput/DateRangeInput.js +9 -5
  84. package/dist/DateTimeInput/DateTimeInput.d.ts +5 -2
  85. package/dist/DateTimeInput/DateTimeInput.d.ts.map +1 -1
  86. package/dist/DateTimeInput/DateTimeInput.js +23 -12
  87. package/dist/DateTimeInput/NativeTimeSegment.d.ts.map +1 -1
  88. package/dist/DateTimeInput/NativeTimeSegment.js +5 -4
  89. package/dist/DateTimeInput/TouchDateTimeField.d.ts.map +1 -1
  90. package/dist/DateTimeInput/TouchDateTimeField.js +4 -3
  91. package/dist/Dialog/Dialog.d.ts.map +1 -1
  92. package/dist/Dialog/Dialog.js +30 -10
  93. package/dist/Dialog/DialogHeader.d.ts.map +1 -1
  94. package/dist/Dialog/DialogHeader.js +5 -4
  95. package/dist/Divider/Divider.d.ts.map +1 -1
  96. package/dist/Divider/Divider.js +2 -1
  97. package/dist/Drawer/Drawer.d.ts +2 -1
  98. package/dist/Drawer/Drawer.d.ts.map +1 -1
  99. package/dist/Drawer/Drawer.js +8 -3
  100. package/dist/DropdownMenu/DropdownMenu.d.ts +1 -1
  101. package/dist/DropdownMenu/DropdownMenu.d.ts.map +1 -1
  102. package/dist/DropdownMenu/DropdownMenu.js +56 -30
  103. package/dist/DropdownMenu/DropdownMenuCheckboxItem.d.ts +3 -2
  104. package/dist/DropdownMenu/DropdownMenuCheckboxItem.d.ts.map +1 -1
  105. package/dist/DropdownMenu/DropdownMenuCheckboxItem.js +4 -3
  106. package/dist/DropdownMenu/DropdownMenuGroup.d.ts.map +1 -1
  107. package/dist/DropdownMenu/DropdownMenuGroup.js +2 -1
  108. package/dist/DropdownMenu/DropdownMenuItem.d.ts.map +1 -1
  109. package/dist/DropdownMenu/DropdownMenuItem.js +4 -3
  110. package/dist/DropdownMenu/DropdownMenuRadioItem.d.ts +4 -3
  111. package/dist/DropdownMenu/DropdownMenuRadioItem.d.ts.map +1 -1
  112. package/dist/DropdownMenu/DropdownMenuRadioItem.js +4 -3
  113. package/dist/DropdownMenu/DropdownMenuSubMenu.d.ts.map +1 -1
  114. package/dist/DropdownMenu/DropdownMenuSubMenu.js +10 -6
  115. package/dist/DropdownMenu/MenuBottomSheetActionList.d.ts.map +1 -1
  116. package/dist/DropdownMenu/MenuBottomSheetActionList.js +15 -8
  117. package/dist/DropdownMenu/lazyMenuBottomSheet.d.ts +20 -2
  118. package/dist/DropdownMenu/lazyMenuBottomSheet.d.ts.map +1 -1
  119. package/dist/DropdownMenu/lazyMenuBottomSheet.js +31 -3
  120. package/dist/DropdownMenu/renderDropdownItems.d.ts.map +1 -1
  121. package/dist/DropdownMenu/renderDropdownItems.js +21 -16
  122. package/dist/EmptyState/EmptyState.d.ts.map +1 -1
  123. package/dist/EmptyState/EmptyState.js +2 -1
  124. package/dist/Field/Field.d.ts +2 -2
  125. package/dist/Field/Field.d.ts.map +1 -1
  126. package/dist/Field/FieldLabel.d.ts +1 -1
  127. package/dist/Field/FieldLabel.d.ts.map +1 -1
  128. package/dist/Field/FieldLabel.js +23 -6
  129. package/dist/Field/InputClearButton.js +3 -3
  130. package/dist/Field/PanelSearchInput.d.ts.map +1 -1
  131. package/dist/Field/PanelSearchInput.js +12 -7
  132. package/dist/Field/fieldStatusPlacement.d.ts +15 -0
  133. package/dist/Field/fieldStatusPlacement.d.ts.map +1 -0
  134. package/dist/Field/fieldStatusPlacement.js +1 -0
  135. package/dist/FieldStatus/FieldStatus.d.ts +16 -28
  136. package/dist/FieldStatus/FieldStatus.d.ts.map +1 -1
  137. package/dist/FieldStatus/FieldStatus.js +27 -5
  138. package/dist/FieldStatus/index.d.ts +7 -0
  139. package/dist/FieldStatus/index.d.ts.map +1 -1
  140. package/dist/FileInput/FileInput.d.ts +10 -2
  141. package/dist/FileInput/FileInput.d.ts.map +1 -1
  142. package/dist/FileInput/FileInput.js +93 -36
  143. package/dist/Heading/Heading.js +1 -1
  144. package/dist/Icon/Icon.js +1 -1
  145. package/dist/Indicator/CheckIndicator.d.ts.map +1 -1
  146. package/dist/Indicator/CheckIndicator.js +2 -1
  147. package/dist/Indicator/CheckboxIndicator.d.ts.map +1 -1
  148. package/dist/Indicator/CheckboxIndicator.js +3 -1
  149. package/dist/Indicator/RadioIndicator.d.ts.map +1 -1
  150. package/dist/Indicator/RadioIndicator.js +3 -1
  151. package/dist/Item/Item.d.ts.map +1 -1
  152. package/dist/Item/Item.js +26 -12
  153. package/dist/Item/ItemSwipeLayer.d.ts.map +1 -1
  154. package/dist/Item/ItemSwipeLayer.js +9 -3
  155. package/dist/Layer/popoverOperations.d.ts +27 -0
  156. package/dist/Layer/popoverOperations.d.ts.map +1 -0
  157. package/dist/Layer/popoverOperations.js +159 -0
  158. package/dist/Layer/useLayer.d.ts +9 -1
  159. package/dist/Layer/useLayer.d.ts.map +1 -1
  160. package/dist/Layer/useLayer.js +126 -69
  161. package/dist/Layer/useTouchTrigger.d.ts +35 -3
  162. package/dist/Layer/useTouchTrigger.d.ts.map +1 -1
  163. package/dist/Layer/useTouchTrigger.js +80 -11
  164. package/dist/Layout/Layout.js +1 -1
  165. package/dist/Layout/LayoutContent.js +1 -1
  166. package/dist/Layout/LayoutFooter.js +1 -1
  167. package/dist/Layout/LayoutHeader.js +1 -1
  168. package/dist/Lightbox/Lightbox.d.ts.map +1 -1
  169. package/dist/Lightbox/Lightbox.js +5 -0
  170. package/dist/Link/Link.d.ts.map +1 -1
  171. package/dist/Link/Link.js +18 -4
  172. package/dist/List/List.js +1 -1
  173. package/dist/List/ListItem.js +3 -3
  174. package/dist/Markdown/Markdown.d.ts.map +1 -1
  175. package/dist/Markdown/Markdown.js +1 -0
  176. package/dist/MetadataList/MetadataList.d.ts.map +1 -1
  177. package/dist/MetadataList/MetadataList.js +2 -1
  178. package/dist/MetadataList/MetadataListItem.d.ts.map +1 -1
  179. package/dist/MetadataList/MetadataListItem.js +2 -1
  180. package/dist/MobileNav/MobileNav.d.ts.map +1 -1
  181. package/dist/MobileNav/MobileNav.js +7 -2
  182. package/dist/MultiSelector/MultiSelector.d.ts +3 -3
  183. package/dist/MultiSelector/MultiSelector.d.ts.map +1 -1
  184. package/dist/MultiSelector/MultiSelector.js +61 -35
  185. package/dist/MultiSelector/hooks.d.ts.map +1 -1
  186. package/dist/MultiSelector/hooks.js +4 -2
  187. package/dist/NavMenu/NavHeadingMenuItem.d.ts.map +1 -1
  188. package/dist/NavMenu/NavHeadingMenuItem.js +5 -29
  189. package/dist/NumberInput/NumberInput.d.ts +6 -3
  190. package/dist/NumberInput/NumberInput.d.ts.map +1 -1
  191. package/dist/NumberInput/NumberInput.js +21 -4
  192. package/dist/NumberInput/numberParser.d.ts +3 -0
  193. package/dist/NumberInput/numberParser.d.ts.map +1 -1
  194. package/dist/NumberInput/numberParser.js +7 -44
  195. package/dist/Outline/Outline.d.ts.map +1 -1
  196. package/dist/Outline/Outline.js +27 -0
  197. package/dist/OverflowList/OverflowList.d.ts.map +1 -1
  198. package/dist/OverflowList/OverflowList.js +2 -1
  199. package/dist/Pagination/Pagination.d.ts.map +1 -1
  200. package/dist/Popover/Popover.d.ts.map +1 -1
  201. package/dist/Popover/Popover.js +34 -14
  202. package/dist/Popover/usePopover.d.ts +7 -1
  203. package/dist/Popover/usePopover.d.ts.map +1 -1
  204. package/dist/Popover/usePopover.js +18 -5
  205. package/dist/PowerSearch/PowerSearch.d.ts +3 -2
  206. package/dist/PowerSearch/PowerSearch.d.ts.map +1 -1
  207. package/dist/PowerSearch/PowerSearch.js +41 -32
  208. package/dist/ProgressBar/ProgressBar.d.ts.map +1 -1
  209. package/dist/ProgressBar/ProgressBar.js +16 -12
  210. package/dist/RadioList/RadioList.d.ts.map +1 -1
  211. package/dist/RadioList/RadioList.js +7 -2
  212. package/dist/RadioList/RadioListItem.d.ts.map +1 -1
  213. package/dist/RadioList/RadioListItem.js +19 -5
  214. package/dist/RadioList/RadioListReasonContext.d.ts +2 -0
  215. package/dist/RadioList/RadioListReasonContext.d.ts.map +1 -0
  216. package/dist/RadioList/RadioListReasonContext.js +22 -0
  217. package/dist/Resizable/resizableModel.d.ts +64 -0
  218. package/dist/Resizable/resizableModel.d.ts.map +1 -0
  219. package/dist/Resizable/resizableModel.js +287 -0
  220. package/dist/Resizable/useResizable.d.ts +2 -2
  221. package/dist/Resizable/useResizable.d.ts.map +1 -1
  222. package/dist/Resizable/useResizable.js +74 -288
  223. package/dist/SegmentedControl/SegmentedControl.d.ts.map +1 -1
  224. package/dist/SegmentedControl/SegmentedControl.js +22 -5
  225. package/dist/SegmentedControl/SegmentedControlContext.d.ts +6 -0
  226. package/dist/SegmentedControl/SegmentedControlContext.d.ts.map +1 -1
  227. package/dist/SegmentedControl/SegmentedControlItem.d.ts +1 -1
  228. package/dist/SegmentedControl/SegmentedControlItem.d.ts.map +1 -1
  229. package/dist/SegmentedControl/SegmentedControlItem.js +20 -4
  230. package/dist/Selector/Selector.d.ts +3 -3
  231. package/dist/Selector/Selector.d.ts.map +1 -1
  232. package/dist/Selector/Selector.js +14 -8
  233. package/dist/Selector/hooks.js +2 -2
  234. package/dist/Selector/useSelectorPresentation.d.ts +14 -1
  235. package/dist/Selector/useSelectorPresentation.d.ts.map +1 -1
  236. package/dist/Selector/useSelectorPresentation.js +22 -5
  237. package/dist/SideNav/SideNavItem.d.ts +2 -2
  238. package/dist/SideNav/SideNavItem.d.ts.map +1 -1
  239. package/dist/SideNav/SideNavItem.js +18 -7
  240. package/dist/SideNav/railMotion.d.ts +5 -5
  241. package/dist/SideNav/railMotion.d.ts.map +1 -1
  242. package/dist/SideNav/railMotion.js +69 -177
  243. package/dist/Skeleton/Skeleton.d.ts.map +1 -1
  244. package/dist/Skeleton/Skeleton.js +1 -1
  245. package/dist/Slider/Slider.d.ts.map +1 -1
  246. package/dist/Slider/Slider.js +110 -19
  247. package/dist/Spinner/Spinner.d.ts.map +1 -1
  248. package/dist/Spinner/Spinner.js +3 -3
  249. package/dist/Stack/Stack.js +1 -1
  250. package/dist/Stack/StackItem.js +1 -1
  251. package/dist/Stepper/Step.d.ts.map +1 -1
  252. package/dist/Stepper/Step.js +26 -6
  253. package/dist/Switch/Switch.d.ts.map +1 -1
  254. package/dist/Switch/Switch.js +10 -3
  255. package/dist/TabList/TabList.d.ts.map +1 -1
  256. package/dist/TabList/TabList.js +16 -1
  257. package/dist/Table/BaseTable.d.ts.map +1 -1
  258. package/dist/Table/BaseTable.js +7 -6
  259. package/dist/Table/Table.d.ts.map +1 -1
  260. package/dist/Table/Table.js +36 -10
  261. package/dist/Table/glidingDivider.d.ts +8 -1
  262. package/dist/Table/glidingDivider.d.ts.map +1 -1
  263. package/dist/Table/glidingDivider.js +8 -3
  264. package/dist/Table/plugins/columnResize/useTableColumnResize.d.ts.map +1 -1
  265. package/dist/Table/plugins/columnResize/useTableColumnResize.js +9 -1
  266. package/dist/Table/plugins/sortable/useTableSortable.d.ts.map +1 -1
  267. package/dist/Table/plugins/sortable/useTableSortable.js +46 -58
  268. package/dist/Table/plugins/stickyColumns/useTableStickyColumns.d.ts.map +1 -1
  269. package/dist/Table/plugins/stickyColumns/useTableStickyColumns.js +1 -2
  270. package/dist/Text/Text.js +1 -1
  271. package/dist/Text/useTruncation.d.ts.map +1 -1
  272. package/dist/Text/useTruncation.js +23 -5
  273. package/dist/TextArea/TextArea.d.ts +3 -3
  274. package/dist/TextArea/TextArea.d.ts.map +1 -1
  275. package/dist/TextArea/TextArea.js +13 -2
  276. package/dist/TextInput/TextInput.d.ts +3 -2
  277. package/dist/TextInput/TextInput.d.ts.map +1 -1
  278. package/dist/TextInput/TextInput.js +3 -3
  279. package/dist/TimeInput/TimeInput.d.ts +9 -4
  280. package/dist/TimeInput/TimeInput.d.ts.map +1 -1
  281. package/dist/TimeInput/TimeInput.js +21 -14
  282. package/dist/TimeInput/TouchTimeField.d.ts.map +1 -1
  283. package/dist/TimeInput/TouchTimeField.js +5 -4
  284. package/dist/Timer/Timer.js +1 -1
  285. package/dist/Timestamp/Timestamp.d.ts.map +1 -1
  286. package/dist/Timestamp/Timestamp.js +2 -2
  287. package/dist/Timestamp/TimestampHoverCard.js +4 -4
  288. package/dist/Toast/Toast.d.ts.map +1 -1
  289. package/dist/Toast/Toast.js +60 -20
  290. package/dist/Toast/ToastViewport.d.ts.map +1 -1
  291. package/dist/Toast/ToastViewport.js +101 -54
  292. package/dist/Toast/useToast.d.ts.map +1 -1
  293. package/dist/Toast/useToast.js +8 -2
  294. package/dist/ToggleButton/ToggleButton.d.ts.map +1 -1
  295. package/dist/ToggleButton/ToggleButton.js +11 -3
  296. package/dist/ToggleButton/ToggleButtonGroup.d.ts +7 -1
  297. package/dist/ToggleButton/ToggleButtonGroup.d.ts.map +1 -1
  298. package/dist/ToggleButton/ToggleButtonGroup.js +16 -2
  299. package/dist/Token/Token.d.ts +1 -1
  300. package/dist/Token/Token.d.ts.map +1 -1
  301. package/dist/Token/Token.js +52 -5
  302. package/dist/Token/TokenLink.d.ts.map +1 -1
  303. package/dist/Token/TokenLink.js +14 -2
  304. package/dist/Tokenizer/Tokenizer.d.ts +3 -2
  305. package/dist/Tokenizer/Tokenizer.d.ts.map +1 -1
  306. package/dist/Tokenizer/Tokenizer.js +101 -56
  307. package/dist/Tokenizer/TokenizerBottomSheet.d.ts +1 -1
  308. package/dist/Tokenizer/TokenizerBottomSheet.d.ts.map +1 -1
  309. package/dist/Tokenizer/TokenizerBottomSheet.js +12 -18
  310. package/dist/Tokenizer/TokenizerClearAllMessageContext.d.ts +2 -0
  311. package/dist/Tokenizer/TokenizerClearAllMessageContext.d.ts.map +1 -0
  312. package/dist/Tokenizer/TokenizerClearAllMessageContext.js +17 -0
  313. package/dist/Toolbar/Toolbar.d.ts.map +1 -1
  314. package/dist/Toolbar/Toolbar.js +2 -1
  315. package/dist/TopNav/TopNavMegaMenu.d.ts.map +1 -1
  316. package/dist/TopNav/TopNavMegaMenu.js +7 -3
  317. package/dist/TopNav/TopNavMenu.d.ts.map +1 -1
  318. package/dist/TopNav/TopNavMenu.js +1 -0
  319. package/dist/TreeList/TreeList.d.ts.map +1 -1
  320. package/dist/TreeList/TreeList.js +6 -3
  321. package/dist/TreeList/TreeListItem.d.ts.map +1 -1
  322. package/dist/TreeList/TreeListItem.js +31 -7
  323. package/dist/Typeahead/BaseTypeahead.d.ts +8 -5
  324. package/dist/Typeahead/BaseTypeahead.d.ts.map +1 -1
  325. package/dist/Typeahead/BaseTypeahead.js +303 -48
  326. package/dist/Typeahead/Typeahead.d.ts +4 -3
  327. package/dist/Typeahead/Typeahead.d.ts.map +1 -1
  328. package/dist/Typeahead/Typeahead.js +43 -9
  329. package/dist/Typeahead/index.d.ts +1 -1
  330. package/dist/Typeahead/index.d.ts.map +1 -1
  331. package/dist/Typeahead/types.d.ts +26 -3
  332. package/dist/Typeahead/types.d.ts.map +1 -1
  333. package/dist/astryx.css +27 -6
  334. package/dist/gestures/GestureArena.d.ts +32 -1
  335. package/dist/gestures/GestureArena.d.ts.map +1 -1
  336. package/dist/gestures/GestureArena.js +110 -9
  337. package/dist/gestures/GestureHost.d.ts +351 -0
  338. package/dist/gestures/GestureHost.d.ts.map +1 -0
  339. package/dist/gestures/GestureHost.js +1773 -0
  340. package/dist/gestures/GestureRecognizer.d.ts +13 -1
  341. package/dist/gestures/GestureRecognizer.d.ts.map +1 -1
  342. package/dist/gestures/GestureRecognizer.js +19 -1
  343. package/dist/gestures/LongPressGestureRecognizer.d.ts +1 -0
  344. package/dist/gestures/LongPressGestureRecognizer.d.ts.map +1 -1
  345. package/dist/gestures/LongPressGestureRecognizer.js +3 -0
  346. package/dist/gestures/PanGestureRecognizer.d.ts +1 -0
  347. package/dist/gestures/PanGestureRecognizer.d.ts.map +1 -1
  348. package/dist/gestures/PanGestureRecognizer.js +3 -0
  349. package/dist/gestures/PinchGestureRecognizer.d.ts +31 -0
  350. package/dist/gestures/PinchGestureRecognizer.d.ts.map +1 -0
  351. package/dist/gestures/PinchGestureRecognizer.js +128 -0
  352. package/dist/gestures/PressTracker.d.ts +112 -0
  353. package/dist/gestures/PressTracker.d.ts.map +1 -0
  354. package/dist/gestures/PressTracker.js +267 -0
  355. package/dist/gestures/ScreenEdgePanGestureRecognizer.d.ts +71 -0
  356. package/dist/gestures/ScreenEdgePanGestureRecognizer.d.ts.map +1 -0
  357. package/dist/gestures/ScreenEdgePanGestureRecognizer.js +223 -0
  358. package/dist/gestures/SwipeGestureRecognizer.d.ts +37 -0
  359. package/dist/gestures/SwipeGestureRecognizer.d.ts.map +1 -0
  360. package/dist/gestures/SwipeGestureRecognizer.js +148 -0
  361. package/dist/gestures/TapGestureRecognizer.d.ts +1 -0
  362. package/dist/gestures/TapGestureRecognizer.d.ts.map +1 -1
  363. package/dist/gestures/TapGestureRecognizer.js +3 -0
  364. package/dist/gestures/VelocityTracker.d.ts +6 -2
  365. package/dist/gestures/VelocityTracker.d.ts.map +1 -1
  366. package/dist/gestures/VelocityTracker.js +7 -3
  367. package/dist/gestures/haptics.d.ts +65 -0
  368. package/dist/gestures/haptics.d.ts.map +1 -0
  369. package/dist/gestures/haptics.js +178 -0
  370. package/dist/gestures/index.d.ts +37 -0
  371. package/dist/gestures/index.d.ts.map +1 -0
  372. package/dist/gestures/index.js +25 -0
  373. package/dist/gestures/nativeScroll.d.ts +42 -0
  374. package/dist/gestures/nativeScroll.d.ts.map +1 -0
  375. package/dist/gestures/nativeScroll.js +228 -0
  376. package/dist/gestures/touchAction.d.ts +60 -0
  377. package/dist/gestures/touchAction.d.ts.map +1 -0
  378. package/dist/gestures/touchAction.js +157 -0
  379. package/dist/gestures/touchActionRule.d.ts +34 -0
  380. package/dist/gestures/touchActionRule.d.ts.map +1 -0
  381. package/dist/gestures/touchActionRule.js +140 -0
  382. package/dist/gestures/types.d.ts +18 -7
  383. package/dist/gestures/types.d.ts.map +1 -1
  384. package/dist/gestures/types.js +22 -2
  385. package/dist/gestures/useGestureRecognizer.d.ts +56 -0
  386. package/dist/gestures/useGestureRecognizer.d.ts.map +1 -0
  387. package/dist/gestures/useGestureRecognizer.js +226 -0
  388. package/dist/hooks/index.d.ts +1 -1
  389. package/dist/hooks/index.d.ts.map +1 -1
  390. package/dist/hooks/menuPressMarker.d.ts +13 -0
  391. package/dist/hooks/menuPressMarker.d.ts.map +1 -0
  392. package/dist/hooks/menuPressMarker.js +15 -0
  393. package/dist/hooks/modalAnnounce.d.ts.map +1 -1
  394. package/dist/hooks/modalAnnounce.js +107 -61
  395. package/dist/hooks/scrollKeyboardDelegation.d.ts.map +1 -1
  396. package/dist/hooks/scrollKeyboardDelegation.js +7 -3
  397. package/dist/hooks/useAdaptivePresentation.d.ts.map +1 -1
  398. package/dist/hooks/useAdaptivePresentation.js +4 -1
  399. package/dist/hooks/useAnnounce.d.ts +101 -42
  400. package/dist/hooks/useAnnounce.d.ts.map +1 -1
  401. package/dist/hooks/useAnnounce.js +161 -75
  402. package/dist/hooks/useAnnounceRenderedText.d.ts +11 -3
  403. package/dist/hooks/useAnnounceRenderedText.d.ts.map +1 -1
  404. package/dist/hooks/useAnnounceRenderedText.js +5 -3
  405. package/dist/hooks/useBusyAnnouncement.d.ts.map +1 -1
  406. package/dist/hooks/useBusyAnnouncement.js +6 -12
  407. package/dist/hooks/useClickableContainer.d.ts +24 -4
  408. package/dist/hooks/useClickableContainer.d.ts.map +1 -1
  409. package/dist/hooks/useClickableContainer.js +41 -14
  410. package/dist/hooks/useFocusReturnVisibility.d.ts +8 -1
  411. package/dist/hooks/useFocusReturnVisibility.d.ts.map +1 -1
  412. package/dist/hooks/useFocusReturnVisibility.js +14 -8
  413. package/dist/hooks/useInputStatusIcon.d.ts +2 -2
  414. package/dist/hooks/useInputStatusIcon.d.ts.map +1 -1
  415. package/dist/hooks/useInputStatusIcon.js +1 -2
  416. package/dist/hooks/useListFocus.d.ts +27 -0
  417. package/dist/hooks/useListFocus.d.ts.map +1 -1
  418. package/dist/hooks/useListFocus.js +35 -4
  419. package/dist/hooks/useMenuHover.d.ts.map +1 -1
  420. package/dist/hooks/useMenuHover.js +12 -1
  421. package/dist/hooks/useMenuPress.d.ts +2 -2
  422. package/dist/hooks/useMenuPress.d.ts.map +1 -1
  423. package/dist/hooks/useMenuPress.js +5 -6
  424. package/dist/hooks/useScrollOverflow.d.ts +2 -1
  425. package/dist/hooks/useScrollOverflow.d.ts.map +1 -1
  426. package/dist/hooks/useScrollOverflow.js +56 -10
  427. package/dist/hooks/useTreeFocus.d.ts.map +1 -1
  428. package/dist/hooks/useTreeFocus.js +13 -5
  429. package/dist/hooks/useTypeahead.d.ts +3 -1
  430. package/dist/hooks/useTypeahead.d.ts.map +1 -1
  431. package/dist/hooks/useTypeahead.js +21 -15
  432. package/dist/i18n/generated-locales/af-ZA.generated.d.ts.map +1 -1
  433. package/dist/i18n/generated-locales/af-ZA.generated.js +0 -5
  434. package/dist/i18n/generated-locales/ar-SA.generated.d.ts.map +1 -1
  435. package/dist/i18n/generated-locales/ar-SA.generated.js +0 -5
  436. package/dist/i18n/generated-locales/ca-ES.generated.d.ts.map +1 -1
  437. package/dist/i18n/generated-locales/ca-ES.generated.js +0 -5
  438. package/dist/i18n/generated-locales/cs-CZ.generated.d.ts.map +1 -1
  439. package/dist/i18n/generated-locales/cs-CZ.generated.js +0 -5
  440. package/dist/i18n/generated-locales/da-DK.generated.d.ts.map +1 -1
  441. package/dist/i18n/generated-locales/da-DK.generated.js +0 -5
  442. package/dist/i18n/generated-locales/de-DE.generated.d.ts.map +1 -1
  443. package/dist/i18n/generated-locales/de-DE.generated.js +0 -5
  444. package/dist/i18n/generated-locales/el-GR.generated.d.ts.map +1 -1
  445. package/dist/i18n/generated-locales/el-GR.generated.js +0 -5
  446. package/dist/i18n/generated-locales/en.generated.d.ts.map +1 -1
  447. package/dist/i18n/generated-locales/en.generated.js +14 -5
  448. package/dist/i18n/generated-locales/es-ES.generated.d.ts.map +1 -1
  449. package/dist/i18n/generated-locales/es-ES.generated.js +0 -5
  450. package/dist/i18n/generated-locales/fi-FI.generated.d.ts.map +1 -1
  451. package/dist/i18n/generated-locales/fi-FI.generated.js +0 -5
  452. package/dist/i18n/generated-locales/fr-FR.generated.d.ts.map +1 -1
  453. package/dist/i18n/generated-locales/fr-FR.generated.js +0 -5
  454. package/dist/i18n/generated-locales/he-IL.generated.d.ts.map +1 -1
  455. package/dist/i18n/generated-locales/he-IL.generated.js +0 -5
  456. package/dist/i18n/generated-locales/hu-HU.generated.d.ts.map +1 -1
  457. package/dist/i18n/generated-locales/hu-HU.generated.js +0 -5
  458. package/dist/i18n/generated-locales/it-IT.generated.d.ts.map +1 -1
  459. package/dist/i18n/generated-locales/it-IT.generated.js +0 -5
  460. package/dist/i18n/generated-locales/ja-JP.generated.d.ts.map +1 -1
  461. package/dist/i18n/generated-locales/ja-JP.generated.js +0 -5
  462. package/dist/i18n/generated-locales/ko-KR.generated.d.ts.map +1 -1
  463. package/dist/i18n/generated-locales/ko-KR.generated.js +0 -5
  464. package/dist/i18n/generated-locales/nl-NL.generated.d.ts.map +1 -1
  465. package/dist/i18n/generated-locales/nl-NL.generated.js +0 -5
  466. package/dist/i18n/generated-locales/no-NO.generated.d.ts.map +1 -1
  467. package/dist/i18n/generated-locales/no-NO.generated.js +0 -5
  468. package/dist/i18n/generated-locales/pl-PL.generated.d.ts.map +1 -1
  469. package/dist/i18n/generated-locales/pl-PL.generated.js +0 -5
  470. package/dist/i18n/generated-locales/pseudo.generated.d.ts.map +1 -1
  471. package/dist/i18n/generated-locales/pseudo.generated.js +14 -5
  472. package/dist/i18n/generated-locales/pt-BR.generated.d.ts.map +1 -1
  473. package/dist/i18n/generated-locales/pt-BR.generated.js +0 -5
  474. package/dist/i18n/generated-locales/pt-PT.generated.d.ts.map +1 -1
  475. package/dist/i18n/generated-locales/pt-PT.generated.js +0 -5
  476. package/dist/i18n/generated-locales/ro-RO.generated.d.ts.map +1 -1
  477. package/dist/i18n/generated-locales/ro-RO.generated.js +0 -5
  478. package/dist/i18n/generated-locales/ru-RU.generated.d.ts.map +1 -1
  479. package/dist/i18n/generated-locales/ru-RU.generated.js +0 -5
  480. package/dist/i18n/generated-locales/sr-SP.generated.d.ts.map +1 -1
  481. package/dist/i18n/generated-locales/sr-SP.generated.js +0 -5
  482. package/dist/i18n/generated-locales/sv-SE.generated.d.ts.map +1 -1
  483. package/dist/i18n/generated-locales/sv-SE.generated.js +0 -5
  484. package/dist/i18n/generated-locales/tr-TR.generated.d.ts.map +1 -1
  485. package/dist/i18n/generated-locales/tr-TR.generated.js +0 -5
  486. package/dist/i18n/generated-locales/uk-UA.generated.d.ts.map +1 -1
  487. package/dist/i18n/generated-locales/uk-UA.generated.js +0 -5
  488. package/dist/i18n/generated-locales/vi-VN.generated.d.ts.map +1 -1
  489. package/dist/i18n/generated-locales/vi-VN.generated.js +0 -5
  490. package/dist/i18n/generated-locales/zh-CN.generated.d.ts.map +1 -1
  491. package/dist/i18n/generated-locales/zh-CN.generated.js +0 -5
  492. package/dist/i18n/generated-locales/zh-TW.generated.d.ts.map +1 -1
  493. package/dist/i18n/generated-locales/zh-TW.generated.js +0 -5
  494. package/dist/i18n/useListFormatter.d.ts +9 -0
  495. package/dist/i18n/useListFormatter.d.ts.map +1 -0
  496. package/dist/i18n/useListFormatter.js +41 -0
  497. package/dist/motion/animatedLayout.d.ts +130 -5
  498. package/dist/motion/animatedLayout.d.ts.map +1 -1
  499. package/dist/motion/animatedLayout.js +771 -44
  500. package/dist/motion/animator.d.ts +83 -8
  501. package/dist/motion/animator.d.ts.map +1 -1
  502. package/dist/motion/animator.js +739 -121
  503. package/dist/motion/coast.d.ts +4 -1
  504. package/dist/motion/coast.d.ts.map +1 -1
  505. package/dist/motion/coast.js +4 -2
  506. package/dist/motion/reducedMotion.d.ts.map +1 -1
  507. package/dist/motion/reducedMotion.js +6 -2
  508. package/dist/motion/reducedMotionPlan.d.ts +7 -0
  509. package/dist/motion/reducedMotionPlan.d.ts.map +1 -1
  510. package/dist/motion/reducedMotionPlan.js +14 -1
  511. package/dist/motion/resolveMotion.d.ts +42 -0
  512. package/dist/motion/resolveMotion.d.ts.map +1 -0
  513. package/dist/motion/resolveMotion.js +43 -0
  514. package/dist/motion/roleValue.d.ts +2 -1
  515. package/dist/motion/roleValue.d.ts.map +1 -1
  516. package/dist/motion/roleValue.js +2 -1
  517. package/dist/motion/uikit/timing.d.ts +7 -1
  518. package/dist/motion/uikit/timing.d.ts.map +1 -1
  519. package/dist/motion/uikit/timing.js +19 -1
  520. package/dist/privateAttributes/segmentDisabled.stylex.d.ts +5 -0
  521. package/dist/privateAttributes/segmentDisabled.stylex.d.ts.map +1 -0
  522. package/dist/privateAttributes/segmentDisabled.stylex.js +28 -0
  523. package/dist/theme/Theme.d.ts +10 -0
  524. package/dist/theme/Theme.d.ts.map +1 -1
  525. package/dist/theme/Theme.js +8 -4
  526. package/dist/theme/defineTheme.d.ts +19 -5
  527. package/dist/theme/defineTheme.d.ts.map +1 -1
  528. package/dist/theme/defineTheme.js +64 -4
  529. package/dist/theme/domainTokens/domainTokenDefaults.d.ts +3 -0
  530. package/dist/theme/domainTokens/domainTokenDefaults.d.ts.map +1 -0
  531. package/dist/theme/domainTokens/domainTokenDefaults.js +19 -0
  532. package/dist/theme/domainTokens/index.d.ts +5 -4
  533. package/dist/theme/domainTokens/index.d.ts.map +1 -1
  534. package/dist/theme/domainTokens/index.js +5 -9
  535. package/dist/theme/index.d.ts +1 -0
  536. package/dist/theme/index.d.ts.map +1 -1
  537. package/dist/theme/motionKnobs.d.ts +56 -0
  538. package/dist/theme/motionKnobs.d.ts.map +1 -0
  539. package/dist/theme/motionKnobs.js +48 -0
  540. package/dist/theme/resolveThemeValues.d.ts +11 -4
  541. package/dist/theme/resolveThemeValues.d.ts.map +1 -1
  542. package/dist/theme/resolveThemeValues.js +40 -4
  543. package/dist/theme/themeAdaptations.d.ts +7 -3
  544. package/dist/theme/themeAdaptations.d.ts.map +1 -1
  545. package/dist/theme/themeAdaptations.js +36 -7
  546. package/dist/theme/themeMotion.d.ts +96 -0
  547. package/dist/theme/themeMotion.d.ts.map +1 -0
  548. package/dist/theme/themeMotion.js +177 -0
  549. package/dist/theme/tokenReferences.d.ts +31 -0
  550. package/dist/theme/tokenReferences.d.ts.map +1 -0
  551. package/dist/theme/tokenReferences.js +132 -0
  552. package/dist/theme/tokens.d.ts +1 -0
  553. package/dist/theme/tokens.d.ts.map +1 -1
  554. package/dist/theme/tokens.js +9 -129
  555. package/dist/theme/tokens.stylex.d.ts +12 -0
  556. package/dist/theme/tokens.stylex.d.ts.map +1 -1
  557. package/dist/theme/tokens.stylex.js +12 -0
  558. package/dist/theme/useTheme.d.ts.map +1 -1
  559. package/dist/theme/useTheme.js +7 -1
  560. package/dist/utils/focusOutline.stylex.d.ts +6 -0
  561. package/dist/utils/focusOutline.stylex.d.ts.map +1 -1
  562. package/dist/utils/focusOutline.stylex.js +7 -0
  563. package/dist/utils/focusReturn.d.ts +19 -1
  564. package/dist/utils/focusReturn.d.ts.map +1 -1
  565. package/dist/utils/focusReturn.js +13 -4
  566. package/dist/utils/getNodeText.d.ts +8 -0
  567. package/dist/utils/getNodeText.d.ts.map +1 -0
  568. package/dist/utils/getNodeText.js +38 -0
  569. package/dist/utils/interactionModality.d.ts +84 -4
  570. package/dist/utils/interactionModality.d.ts.map +1 -1
  571. package/dist/utils/interactionModality.js +152 -16
  572. package/dist/utils/interactionOverlay.stylex.d.ts.map +1 -1
  573. package/dist/utils/interactionOverlay.stylex.js +17 -8
  574. package/dist/utils/plainDate.d.ts +2 -0
  575. package/dist/utils/plainDate.d.ts.map +1 -1
  576. package/dist/utils/plainDate.js +46 -3
  577. package/dist/utils/presentation.d.ts +50 -0
  578. package/dist/utils/presentation.d.ts.map +1 -0
  579. package/dist/utils/presentation.js +125 -0
  580. package/dist/utils/pressDisabled.d.ts +21 -0
  581. package/dist/utils/pressDisabled.d.ts.map +1 -0
  582. package/dist/utils/pressDisabled.js +32 -0
  583. package/dist/utils/pressFeedback.d.ts.map +1 -1
  584. package/dist/utils/pressFeedback.js +25 -4
  585. package/dist/utils/primaryClick.d.ts +11 -0
  586. package/dist/utils/primaryClick.d.ts.map +1 -0
  587. package/dist/utils/primaryClick.js +25 -0
  588. package/dist/utils/sharedMutationObserver.d.ts +19 -11
  589. package/dist/utils/sharedMutationObserver.d.ts.map +1 -1
  590. package/dist/utils/sharedMutationObserver.js +66 -26
  591. package/dist/utils/timeFormat.d.ts +47 -0
  592. package/dist/utils/timeFormat.d.ts.map +1 -0
  593. package/dist/utils/timeFormat.js +240 -0
  594. package/dist/utils/touchPresentation.d.ts +2 -2
  595. package/dist/utils/touchPresentation.d.ts.map +1 -1
  596. package/dist/utils/touchPresentation.js +13 -8
  597. package/dist/utils/touchPresentation.stylex.d.ts +15 -0
  598. package/dist/utils/touchPresentation.stylex.d.ts.map +1 -0
  599. package/dist/utils/touchPresentation.stylex.js +33 -0
  600. package/dist/utils/touchQueries.d.ts +13 -0
  601. package/dist/utils/touchQueries.d.ts.map +1 -0
  602. package/dist/utils/touchQueries.js +15 -0
  603. package/dist/utils/typeaheadMatch.d.ts +24 -0
  604. package/dist/utils/typeaheadMatch.d.ts.map +1 -0
  605. package/dist/utils/typeaheadMatch.js +112 -0
  606. package/dist/utils/unicodeDigits.d.ts +20 -0
  607. package/dist/utils/unicodeDigits.d.ts.map +1 -0
  608. package/dist/utils/unicodeDigits.js +70 -0
  609. package/dist/utils/useFocusAcrossSwap.d.ts +19 -0
  610. package/dist/utils/useFocusAcrossSwap.d.ts.map +1 -0
  611. package/dist/utils/useFocusAcrossSwap.js +41 -0
  612. package/locales/af-ZA.json +0 -21
  613. package/locales/ar-SA.json +0 -21
  614. package/locales/ca-ES.json +0 -21
  615. package/locales/cs-CZ.json +0 -21
  616. package/locales/da-DK.json +0 -21
  617. package/locales/de-DE.json +0 -21
  618. package/locales/el-GR.json +0 -21
  619. package/locales/en.json +60 -24
  620. package/locales/es-ES.json +0 -21
  621. package/locales/fi-FI.json +0 -21
  622. package/locales/fr-FR.json +0 -21
  623. package/locales/he-IL.json +0 -21
  624. package/locales/hu-HU.json +0 -21
  625. package/locales/it-IT.json +0 -21
  626. package/locales/ja-JP.json +0 -21
  627. package/locales/ko-KR.json +0 -21
  628. package/locales/nl-NL.json +0 -21
  629. package/locales/no-NO.json +0 -21
  630. package/locales/pl-PL.json +0 -21
  631. package/locales/pseudo.json +41 -14
  632. package/locales/pt-BR.json +0 -21
  633. package/locales/pt-PT.json +0 -21
  634. package/locales/ro-RO.json +0 -21
  635. package/locales/ru-RU.json +0 -21
  636. package/locales/sr-SP.json +0 -21
  637. package/locales/sv-SE.json +0 -21
  638. package/locales/tr-TR.json +0 -21
  639. package/locales/uk-UA.json +0 -21
  640. package/locales/vi-VN.json +0 -21
  641. package/locales/zh-CN.json +0 -21
  642. package/locales/zh-TW.json +0 -21
  643. package/package.json +20 -5
  644. package/src/AlertDialog/AlertDialog.tsx +6 -5
  645. package/src/AppShell/AppShell.doc.mjs +1 -1
  646. package/src/AppShell/AppShell.tsx +216 -5
  647. package/src/AppShell/observeMainOverflow.ts +143 -0
  648. package/src/Avatar/Avatar.tsx +18 -1
  649. package/src/Badge/Badge.doc.mjs +1 -1
  650. package/src/Badge/Badge.tsx +20 -2
  651. package/src/BottomSheet/BottomSheet.tsx +5 -3
  652. package/src/BottomSheet/BottomSheetPanel.tsx +41 -9
  653. package/src/BottomSheet/BottomSheetSwitcher.tsx +1 -1
  654. package/src/BottomSheet/useMobileKeyboard.ts +51 -10
  655. package/src/BottomSheet/useSheetGestures.ts +129 -21
  656. package/src/Breadcrumbs/BreadcrumbItem.tsx +2 -1
  657. package/src/Button/Button.tsx +4 -4
  658. package/src/Carousel/Carousel.doc.mjs +1 -1
  659. package/src/Carousel/Carousel.tsx +10 -2
  660. package/src/Center/Center.tsx +1 -1
  661. package/src/Chat/ChatComposer.tsx +7 -10
  662. package/src/Chat/ChatComposerDrawer.tsx +1 -1
  663. package/src/Chat/ChatComposerInput.tsx +1 -1
  664. package/src/Chat/ChatLayout.tsx +1 -6
  665. package/src/Chat/ChatMessageList.tsx +1 -0
  666. package/src/Chat/ChatPastedTextToken.tsx +14 -4
  667. package/src/Chat/ChatSystemMessage.tsx +4 -1
  668. package/src/Chat/ChatToolCalls.tsx +5 -0
  669. package/src/CheckboxInput/CheckboxInput.tsx +6 -5
  670. package/src/CheckboxList/CheckboxList.tsx +7 -1
  671. package/src/CheckboxList/CheckboxListContext.tsx +8 -0
  672. package/src/CheckboxList/CheckboxListItem.tsx +8 -2
  673. package/src/ClickableCard/ClickableCard.tsx +48 -4
  674. package/src/Code/Code.tsx +1 -1
  675. package/src/CommandPalette/CommandPaletteInput.tsx +5 -8
  676. package/src/ComplexSelector/ComplexSelector.tsx +63 -8
  677. package/src/ContextMenu/ContextMenu.tsx +30 -6
  678. package/src/DateInput/DateInput.tsx +31 -16
  679. package/src/DateInput/MonthScroller.tsx +108 -24
  680. package/src/DateInput/TouchDateField.tsx +14 -3
  681. package/src/DateInput/Wheel.tsx +9 -6
  682. package/src/DateInput/usePointerDragScroll.ts +34 -10
  683. package/src/DateInput/useScrollSettle.ts +38 -7
  684. package/src/DateRangeInput/DateRangeInput.tsx +36 -17
  685. package/src/DateTimeInput/DateTimeInput.doc.mjs +10 -8
  686. package/src/DateTimeInput/DateTimeInput.tsx +46 -24
  687. package/src/DateTimeInput/NativeTimeSegment.tsx +4 -6
  688. package/src/DateTimeInput/TouchDateTimeField.tsx +3 -7
  689. package/src/Dialog/Dialog.tsx +28 -11
  690. package/src/Dialog/DialogHeader.tsx +5 -4
  691. package/src/Divider/Divider.tsx +2 -1
  692. package/src/Drawer/Drawer.tsx +14 -3
  693. package/src/DropdownMenu/DropdownMenu.doc.mjs +2 -2
  694. package/src/DropdownMenu/DropdownMenu.tsx +67 -30
  695. package/src/DropdownMenu/DropdownMenuCheckboxItem.doc.mjs +2 -2
  696. package/src/DropdownMenu/DropdownMenuCheckboxItem.tsx +15 -5
  697. package/src/DropdownMenu/DropdownMenuGroup.tsx +2 -1
  698. package/src/DropdownMenu/DropdownMenuItem.tsx +7 -1
  699. package/src/DropdownMenu/DropdownMenuRadioItem.doc.mjs +2 -2
  700. package/src/DropdownMenu/DropdownMenuRadioItem.tsx +16 -6
  701. package/src/DropdownMenu/DropdownMenuSubMenu.tsx +11 -4
  702. package/src/DropdownMenu/MenuBottomSheetActionList.tsx +12 -8
  703. package/src/DropdownMenu/lazyMenuBottomSheet.ts +36 -7
  704. package/src/DropdownMenu/renderDropdownItems.tsx +24 -19
  705. package/src/EmptyState/EmptyState.tsx +2 -1
  706. package/src/Field/Field.doc.mjs +2 -1
  707. package/src/Field/Field.tsx +2 -2
  708. package/src/Field/FieldLabel.doc.mjs +4 -2
  709. package/src/Field/FieldLabel.tsx +23 -6
  710. package/src/Field/InputClearButton.tsx +3 -3
  711. package/src/Field/PanelSearchInput.tsx +9 -10
  712. package/src/Field/fieldStatusPlacement.ts +18 -0
  713. package/src/FieldStatus/FieldStatus.tsx +35 -5
  714. package/src/FieldStatus/index.ts +7 -0
  715. package/src/FileInput/FileInput.doc.mjs +3 -3
  716. package/src/FileInput/FileInput.tsx +107 -37
  717. package/src/Heading/Heading.tsx +1 -1
  718. package/src/HoverCard/HoverCard.doc.mjs +3 -3
  719. package/src/HoverCard/useHoverCard.doc.mjs +1 -1
  720. package/src/Icon/Icon.tsx +1 -1
  721. package/src/Indicator/CheckIndicator.tsx +2 -1
  722. package/src/Indicator/CheckboxIndicator.tsx +3 -1
  723. package/src/Indicator/RadioIndicator.tsx +3 -1
  724. package/src/Item/Item.tsx +21 -13
  725. package/src/Item/ItemSwipeLayer.tsx +9 -2
  726. package/src/Layer/popoverOperations.ts +172 -0
  727. package/src/Layer/useLayer.tsx +168 -81
  728. package/src/Layer/useTouchTrigger.ts +107 -18
  729. package/src/Layout/Layout.tsx +1 -1
  730. package/src/Layout/LayoutContent.tsx +1 -1
  731. package/src/Layout/LayoutFooter.tsx +1 -1
  732. package/src/Layout/LayoutHeader.tsx +1 -1
  733. package/src/Lightbox/Lightbox.tsx +5 -0
  734. package/src/Link/Link.tsx +20 -2
  735. package/src/List/List.tsx +1 -1
  736. package/src/List/ListItem.tsx +3 -3
  737. package/src/Markdown/Markdown.tsx +1 -0
  738. package/src/MetadataList/MetadataList.tsx +4 -2
  739. package/src/MetadataList/MetadataListItem.tsx +2 -1
  740. package/src/MobileNav/MobileNav.tsx +9 -1
  741. package/src/MultiSelector/MultiSelector.tsx +82 -46
  742. package/src/MultiSelector/hooks.ts +7 -5
  743. package/src/NavMenu/NavHeadingMenuItem.tsx +5 -39
  744. package/src/NumberInput/NumberInput.doc.mjs +13 -7
  745. package/src/NumberInput/NumberInput.tsx +39 -6
  746. package/src/NumberInput/numberParser.ts +7 -45
  747. package/src/Outline/Outline.tsx +23 -0
  748. package/src/OverflowList/OverflowList.tsx +2 -1
  749. package/src/Pagination/Pagination.tsx +1 -0
  750. package/src/Popover/Popover.tsx +36 -16
  751. package/src/Popover/usePopover.tsx +17 -5
  752. package/src/PowerSearch/PowerSearch.tsx +46 -33
  753. package/src/ProgressBar/ProgressBar.tsx +58 -10
  754. package/src/RadioList/RadioList.tsx +13 -2
  755. package/src/RadioList/RadioListItem.tsx +20 -3
  756. package/src/RadioList/RadioListReasonContext.ts +25 -0
  757. package/src/Resizable/resizableModel.ts +364 -0
  758. package/src/Resizable/useResizable.ts +88 -353
  759. package/src/SegmentedControl/SegmentedControl.tsx +43 -8
  760. package/src/SegmentedControl/SegmentedControlContext.ts +6 -0
  761. package/src/SegmentedControl/SegmentedControlItem.tsx +23 -6
  762. package/src/Selector/Selector.tsx +23 -9
  763. package/src/Selector/hooks.ts +2 -2
  764. package/src/Selector/useSelectorPresentation.ts +39 -4
  765. package/src/SideNav/SideNavItem.tsx +27 -10
  766. package/src/SideNav/railMotion.ts +73 -179
  767. package/src/Skeleton/Skeleton.tsx +3 -1
  768. package/src/Slider/Slider.tsx +124 -22
  769. package/src/Spinner/Spinner.tsx +5 -3
  770. package/src/Stack/Stack.tsx +1 -1
  771. package/src/Stack/StackItem.tsx +1 -1
  772. package/src/Stepper/Step.tsx +33 -6
  773. package/src/Stepper/Stepper.doc.mjs +1 -1
  774. package/src/Switch/Switch.tsx +11 -3
  775. package/src/TabList/TabList.tsx +16 -1
  776. package/src/Table/BaseTable.tsx +10 -6
  777. package/src/Table/Table.tsx +43 -11
  778. package/src/Table/glidingDivider.ts +8 -3
  779. package/src/Table/plugins/columnResize/useTableColumnResize.tsx +8 -4
  780. package/src/Table/plugins/sortable/useTableSortable.tsx +46 -73
  781. package/src/Table/plugins/stickyColumns/useTableStickyColumns.tsx +1 -2
  782. package/src/Text/Text.tsx +1 -1
  783. package/src/Text/useTruncation.ts +23 -5
  784. package/src/TextArea/TextArea.tsx +18 -3
  785. package/src/TextInput/TextInput.tsx +5 -3
  786. package/src/TimeInput/TimeInput.doc.mjs +8 -8
  787. package/src/TimeInput/TimeInput.tsx +38 -20
  788. package/src/TimeInput/TouchTimeField.tsx +4 -6
  789. package/src/Timer/Timer.tsx +1 -1
  790. package/src/Timestamp/Timestamp.tsx +6 -2
  791. package/src/Timestamp/TimestampHoverCard.tsx +4 -4
  792. package/src/Toast/Toast.tsx +104 -36
  793. package/src/Toast/ToastViewport.tsx +121 -53
  794. package/src/Toast/useToast.tsx +8 -3
  795. package/src/ToggleButton/ToggleButton.tsx +10 -3
  796. package/src/ToggleButton/ToggleButtonGroup.tsx +20 -1
  797. package/src/Token/Token.doc.mjs +2 -2
  798. package/src/Token/Token.tsx +75 -5
  799. package/src/Token/TokenLink.tsx +21 -7
  800. package/src/Tokenizer/Tokenizer.doc.mjs +12 -8
  801. package/src/Tokenizer/Tokenizer.tsx +119 -65
  802. package/src/Tokenizer/TokenizerBottomSheet.tsx +12 -18
  803. package/src/Tokenizer/TokenizerClearAllMessageContext.ts +21 -0
  804. package/src/Toolbar/Toolbar.tsx +2 -1
  805. package/src/Tooltip/Tooltip.doc.mjs +3 -3
  806. package/src/Tooltip/useTooltip.doc.mjs +1 -1
  807. package/src/TopNav/TopNavMegaMenu.tsx +8 -4
  808. package/src/TopNav/TopNavMenu.tsx +1 -0
  809. package/src/TreeList/TreeList.tsx +6 -3
  810. package/src/TreeList/TreeListItem.tsx +31 -7
  811. package/src/Typeahead/BaseTypeahead.doc.mjs +10 -7
  812. package/src/Typeahead/BaseTypeahead.tsx +361 -48
  813. package/src/Typeahead/Typeahead.doc.mjs +21 -4
  814. package/src/Typeahead/Typeahead.tsx +53 -11
  815. package/src/Typeahead/TypeaheadItem.doc.mjs +6 -3
  816. package/src/Typeahead/index.ts +1 -1
  817. package/src/Typeahead/types.ts +27 -3
  818. package/src/gestures/GestureArena.ts +111 -11
  819. package/src/gestures/GestureHost.ts +2064 -0
  820. package/src/gestures/GestureRecognizer.ts +21 -1
  821. package/src/gestures/LongPressGestureRecognizer.ts +4 -0
  822. package/src/gestures/PanGestureRecognizer.ts +4 -0
  823. package/src/gestures/PinchGestureRecognizer.ts +148 -0
  824. package/src/gestures/PressTracker.ts +386 -0
  825. package/src/gestures/README.md +420 -0
  826. package/src/gestures/ScreenEdgePanGestureRecognizer.ts +256 -0
  827. package/src/gestures/SwipeGestureRecognizer.ts +197 -0
  828. package/src/gestures/TapGestureRecognizer.ts +4 -0
  829. package/src/gestures/VelocityTracker.ts +10 -3
  830. package/src/gestures/haptics.ts +196 -0
  831. package/src/gestures/index.ts +79 -0
  832. package/src/gestures/nativeScroll.ts +277 -0
  833. package/src/gestures/touchAction.ts +191 -0
  834. package/src/gestures/touchActionRule.ts +157 -0
  835. package/src/gestures/types.ts +30 -9
  836. package/src/gestures/useGestureRecognizer.ts +305 -0
  837. package/src/hooks/index.ts +5 -1
  838. package/src/hooks/menuPressMarker.ts +15 -0
  839. package/src/hooks/modalAnnounce.ts +129 -72
  840. package/src/hooks/scrollKeyboardDelegation.ts +9 -3
  841. package/src/hooks/useAdaptivePresentation.ts +4 -1
  842. package/src/hooks/useAnnounce.doc.mjs +35 -3
  843. package/src/hooks/useAnnounce.ts +209 -102
  844. package/src/hooks/useAnnounceRenderedText.ts +17 -3
  845. package/src/hooks/useBusyAnnouncement.ts +7 -10
  846. package/src/hooks/useClickableContainer.ts +48 -17
  847. package/src/hooks/useFocusReturnVisibility.ts +15 -12
  848. package/src/hooks/useInputStatusIcon.tsx +2 -2
  849. package/src/hooks/useListFocus.ts +54 -3
  850. package/src/hooks/useMenuHover.ts +15 -1
  851. package/src/hooks/useMenuPress.ts +5 -5
  852. package/src/hooks/useScrollOverflow.doc.mjs +1 -1
  853. package/src/hooks/useScrollOverflow.ts +59 -10
  854. package/src/hooks/useTreeFocus.doc.mjs +2 -2
  855. package/src/hooks/useTreeFocus.ts +16 -10
  856. package/src/hooks/useTypeahead.doc.mjs +2 -2
  857. package/src/hooks/useTypeahead.ts +21 -20
  858. package/src/i18n/generated-locales/af-ZA.generated.ts +0 -7
  859. package/src/i18n/generated-locales/ar-SA.generated.ts +0 -6
  860. package/src/i18n/generated-locales/ca-ES.generated.ts +0 -7
  861. package/src/i18n/generated-locales/cs-CZ.generated.ts +0 -6
  862. package/src/i18n/generated-locales/da-DK.generated.ts +0 -6
  863. package/src/i18n/generated-locales/de-DE.generated.ts +0 -6
  864. package/src/i18n/generated-locales/el-GR.generated.ts +0 -7
  865. package/src/i18n/generated-locales/en.generated.ts +17 -6
  866. package/src/i18n/generated-locales/es-ES.generated.ts +0 -7
  867. package/src/i18n/generated-locales/fi-FI.generated.ts +0 -6
  868. package/src/i18n/generated-locales/fr-FR.generated.ts +0 -7
  869. package/src/i18n/generated-locales/he-IL.generated.ts +0 -6
  870. package/src/i18n/generated-locales/hu-HU.generated.ts +0 -6
  871. package/src/i18n/generated-locales/it-IT.generated.ts +0 -7
  872. package/src/i18n/generated-locales/ja-JP.generated.ts +0 -6
  873. package/src/i18n/generated-locales/ko-KR.generated.ts +0 -6
  874. package/src/i18n/generated-locales/nl-NL.generated.ts +0 -6
  875. package/src/i18n/generated-locales/no-NO.generated.ts +0 -6
  876. package/src/i18n/generated-locales/pl-PL.generated.ts +0 -7
  877. package/src/i18n/generated-locales/pseudo.generated.ts +17 -6
  878. package/src/i18n/generated-locales/pt-BR.generated.ts +0 -7
  879. package/src/i18n/generated-locales/pt-PT.generated.ts +0 -7
  880. package/src/i18n/generated-locales/ro-RO.generated.ts +0 -6
  881. package/src/i18n/generated-locales/ru-RU.generated.ts +0 -7
  882. package/src/i18n/generated-locales/sr-SP.generated.ts +0 -6
  883. package/src/i18n/generated-locales/sv-SE.generated.ts +0 -6
  884. package/src/i18n/generated-locales/tr-TR.generated.ts +0 -7
  885. package/src/i18n/generated-locales/uk-UA.generated.ts +0 -7
  886. package/src/i18n/generated-locales/vi-VN.generated.ts +0 -6
  887. package/src/i18n/generated-locales/zh-CN.generated.ts +0 -6
  888. package/src/i18n/generated-locales/zh-TW.generated.ts +0 -6
  889. package/src/i18n/useListFormatter.ts +42 -0
  890. package/src/motion/MEASUREMENTS.md +2 -1
  891. package/src/motion/README.md +113 -33
  892. package/src/motion/animatedLayout.ts +977 -45
  893. package/src/motion/animator.ts +987 -132
  894. package/src/motion/coast.ts +10 -3
  895. package/src/motion/reducedMotion.ts +12 -2
  896. package/src/motion/reducedMotionPlan.ts +20 -1
  897. package/src/motion/resolveMotion.ts +68 -0
  898. package/src/motion/roleValue.ts +2 -1
  899. package/src/motion/uikit/timing.ts +15 -1
  900. package/src/privateAttributes/segmentDisabled.stylex.ts +28 -0
  901. package/src/theme/Theme.doc.mjs +1 -1
  902. package/src/theme/Theme.tsx +8 -4
  903. package/src/theme/defineTheme.ts +117 -8
  904. package/src/theme/domainTokens/domainTokenDefaults.ts +19 -0
  905. package/src/theme/domainTokens/index.ts +6 -10
  906. package/src/theme/index.ts +5 -0
  907. package/src/theme/motionKnobs.ts +82 -0
  908. package/src/theme/resolveThemeValues.ts +68 -6
  909. package/src/theme/themeAdaptations.ts +52 -12
  910. package/src/theme/themeMotion.ts +221 -0
  911. package/src/theme/tokenReferences.ts +149 -0
  912. package/src/theme/tokens.stylex.ts +10 -0
  913. package/src/theme/tokens.ts +15 -158
  914. package/src/theme/useTheme.ts +6 -1
  915. package/src/utils/focusOutline.stylex.ts +28 -0
  916. package/src/utils/focusReturn.ts +19 -6
  917. package/src/utils/getNodeText.ts +38 -0
  918. package/src/utils/interactionModality.ts +197 -17
  919. package/src/utils/interactionOverlay.stylex.ts +12 -3
  920. package/src/utils/plainDate.ts +58 -3
  921. package/src/utils/presentation.ts +180 -0
  922. package/src/utils/pressDisabled.ts +32 -0
  923. package/src/utils/pressFeedback.ts +39 -14
  924. package/src/utils/primaryClick.ts +28 -0
  925. package/src/utils/sharedMutationObserver.ts +87 -29
  926. package/src/utils/timeFormat.ts +314 -0
  927. package/src/utils/touchPresentation.stylex.ts +43 -0
  928. package/src/utils/touchPresentation.ts +13 -8
  929. package/src/utils/touchQueries.ts +15 -0
  930. package/src/utils/typeaheadMatch.ts +141 -0
  931. package/src/utils/unicodeDigits.ts +71 -0
  932. package/src/utils/useFocusAcrossSwap.ts +55 -0
  933. package/dist/Item/ItemMarkerColumns.a11y.chromium.spec.d.ts +0 -2
  934. package/dist/Item/ItemMarkerColumns.a11y.chromium.spec.js +0 -132
  935. package/dist/Lightbox/LightboxKeyboard.a11y.browser.spec.d.ts +0 -2
  936. package/dist/Lightbox/LightboxKeyboard.a11y.browser.spec.js +0 -78
  937. package/dist/Lightbox/LightboxViewport.a11y.browser.spec.d.ts +0 -2
  938. package/dist/Lightbox/LightboxViewport.a11y.browser.spec.js +0 -65
  939. package/dist/List/ListMarkers.a11y.chromium.spec.d.ts +0 -2
  940. package/dist/List/ListMarkers.a11y.chromium.spec.js +0 -677
  941. package/dist/Markdown/Markdown.fr23.bench.d.ts +0 -2
  942. package/dist/Markdown/Markdown.fr23.bench.d.ts.map +0 -1
  943. package/dist/Markdown/Markdown.fr23.bench.js +0 -152
  944. package/dist/Markdown/MarkdownTable.a11y.chromium.spec.d.ts +0 -2
  945. package/dist/Markdown/MarkdownTable.a11y.chromium.spec.js +0 -590
  946. package/dist/Markdown/plugins/headingLinks.a11y.chromium.spec.d.ts +0 -2
  947. package/dist/Markdown/plugins/headingLinks.a11y.chromium.spec.js +0 -657
  948. package/dist/MobileNav/MobileNavPinchZoom.a11y.chromium.spec.d.ts +0 -2
  949. package/dist/MobileNav/MobileNavPinchZoom.a11y.chromium.spec.js +0 -153
  950. package/dist/MultiSelector/CreateRow.a11y.chromium.spec.d.ts +0 -2
  951. package/dist/MultiSelector/CreateRow.a11y.chromium.spec.js +0 -116
  952. package/dist/MultiSelector/MultiSelector.disabledFocus.a11y.chromium.spec.d.ts +0 -2
  953. package/dist/MultiSelector/MultiSelector.disabledFocus.a11y.chromium.spec.js +0 -49
  954. package/dist/MultiSelector/OptionActions.a11y.chromium.spec.d.ts +0 -2
  955. package/dist/MultiSelector/OptionActions.a11y.chromium.spec.js +0 -273
  956. package/dist/Outline/OutlineFocus.a11y.chromium.spec.d.ts +0 -2
  957. package/dist/Outline/OutlineFocus.a11y.chromium.spec.js +0 -421
  958. package/dist/Typeahead/BaseTypeahead.emptyState.a11y.chromium.spec.d.ts +0 -2
  959. package/dist/Typeahead/BaseTypeahead.emptyState.a11y.chromium.spec.js +0 -118
  960. package/dist/reset.a11y.chromium.spec.d.ts +0 -2
  961. package/dist/reset.a11y.chromium.spec.js +0 -231
  962. package/dist/reset.until-found.a11y.browser.spec.d.ts +0 -2
  963. package/dist/reset.until-found.a11y.browser.spec.js +0 -72
  964. package/src/AlertDialog/AlertDialog.spec.md +0 -259
  965. package/src/AlertDialog/AlertDialog.test.tsx +0 -519
  966. package/src/AlertDialog/__tests__/AlertDialog.a11y.chromium.spec.ts +0 -116
  967. package/src/AlertDialog/__tests__/AlertDialog.a11y.renders.tsx +0 -52
  968. package/src/AlertDialog/__tests__/AlertDialog.a11y.states.ts +0 -68
  969. package/src/AlertDialog/__tests__/AlertDialog.a11y.test.tsx +0 -144
  970. package/src/AlertDialog/useImperativeAlertDialog.test.tsx +0 -163
  971. package/src/AppShell/AppShell.spec.md +0 -334
  972. package/src/AppShell/AppShell.test.tsx +0 -1148
  973. package/src/AspectRatio/AspectRatio.spec.md +0 -179
  974. package/src/AspectRatio/AspectRatio.test.tsx +0 -398
  975. package/src/AspectRatio/__tests__/AspectRatioFitLayers.a11y.browser.spec.ts +0 -158
  976. package/src/Avatar/Avatar.spec.md +0 -253
  977. package/src/Avatar/Avatar.test.tsx +0 -867
  978. package/src/Avatar/AvatarStatusDot.spec.md +0 -208
  979. package/src/Avatar/AvatarStatusDot.test.tsx +0 -306
  980. package/src/AvatarGroup/AvatarGroup.spec.md +0 -205
  981. package/src/AvatarGroup/AvatarGroup.test.tsx +0 -313
  982. package/src/AvatarGroup/AvatarGroupOverflow.spec.md +0 -210
  983. package/src/AvatarGroup/AvatarGroupOverflow.test.tsx +0 -263
  984. package/src/Badge/Badge.spec.md +0 -207
  985. package/src/Badge/Badge.test.tsx +0 -125
  986. package/src/Banner/Banner.spec.md +0 -282
  987. package/src/Banner/Banner.test.tsx +0 -879
  988. package/src/Blockquote/Blockquote.spec.md +0 -171
  989. package/src/Blockquote/Blockquote.test.tsx +0 -121
  990. package/src/BottomSheet/BottomSheet.spec.md +0 -457
  991. package/src/BottomSheet/BottomSheet.test.tsx +0 -3108
  992. package/src/BottomSheet/BottomSheetEdgeTint.test.tsx +0 -248
  993. package/src/BottomSheet/BottomSheetKeyboard.test.tsx +0 -195
  994. package/src/BottomSheet/BottomSheetPanel.test.tsx +0 -549
  995. package/src/BottomSheet/BottomSheetReplace.test.tsx +0 -1638
  996. package/src/BottomSheet/BottomSheetStacking.announce.test.tsx +0 -246
  997. package/src/BottomSheet/BottomSheetStacking.test.tsx +0 -3184
  998. package/src/BottomSheet/BottomSheetSwitcher.spec.md +0 -367
  999. package/src/BottomSheet/BottomSheetSwitcher.test.tsx +0 -2010
  1000. package/src/BottomSheet/__tests__/BottomSheetDrag.a11y.chromium.spec.ts +0 -129
  1001. package/src/BottomSheet/__tests__/BottomSheetFocusReturn.a11y.browser.spec.ts +0 -97
  1002. package/src/BottomSheet/__tests__/BottomSheetKeyboard.a11y.browser.spec.ts +0 -415
  1003. package/src/BottomSheet/__tests__/BottomSheetNativeModal.a11y.browser.spec.ts +0 -462
  1004. package/src/BottomSheet/__tests__/BottomSheetPinchZoom.a11y.chromium.spec.ts +0 -247
  1005. package/src/BottomSheet/__tests__/BottomSheetToastOutlet.a11y.chromium.spec.ts +0 -83
  1006. package/src/BottomSheet/snapOffsets.test.ts +0 -254
  1007. package/src/BottomSheet/useSheetGestures.test.ts +0 -1638
  1008. package/src/Breadcrumbs/BreadcrumbItem.spec.md +0 -269
  1009. package/src/Breadcrumbs/Breadcrumbs.spec.md +0 -165
  1010. package/src/Breadcrumbs/Breadcrumbs.test.tsx +0 -921
  1011. package/src/Breadcrumbs/__tests__/Breadcrumbs.a11y.chromium.spec.ts +0 -120
  1012. package/src/Breadcrumbs/__tests__/Breadcrumbs.a11y.renders.tsx +0 -45
  1013. package/src/Breadcrumbs/__tests__/Breadcrumbs.a11y.states.ts +0 -81
  1014. package/src/Breadcrumbs/__tests__/Breadcrumbs.a11y.test.tsx +0 -125
  1015. package/src/Button/Button.spec.md +0 -322
  1016. package/src/Button/Button.test.tsx +0 -864
  1017. package/src/Button/__tests__/Button.a11y.chromium.spec.ts +0 -355
  1018. package/src/Button/__tests__/Button.a11y.harnesses.tsx +0 -47
  1019. package/src/Button/__tests__/Button.a11y.known-failures.ts +0 -25
  1020. package/src/Button/__tests__/Button.a11y.renders.tsx +0 -139
  1021. package/src/Button/__tests__/Button.a11y.states.ts +0 -317
  1022. package/src/Button/__tests__/Button.a11y.test.tsx +0 -187
  1023. package/src/ButtonGroup/ButtonGroup.spec.md +0 -220
  1024. package/src/ButtonGroup/ButtonGroup.test.tsx +0 -1025
  1025. package/src/Calendar/Calendar.spec.md +0 -209
  1026. package/src/Calendar/Calendar.test.tsx +0 -2186
  1027. package/src/Calendar/__tests__/Calendar.a11y.chromium.spec.ts +0 -127
  1028. package/src/Calendar/__tests__/Calendar.a11y.known-failures.ts +0 -12
  1029. package/src/Calendar/__tests__/Calendar.a11y.renders.tsx +0 -57
  1030. package/src/Calendar/__tests__/Calendar.a11y.states.ts +0 -139
  1031. package/src/Calendar/__tests__/Calendar.a11y.test.tsx +0 -137
  1032. package/src/Calendar/dayCellUtils.test.ts +0 -520
  1033. package/src/Calendar/getInitialFocusDate.test.ts +0 -94
  1034. package/src/Calendar/getStandaloneShortWeekdayNames.test.ts +0 -54
  1035. package/src/Calendar/hooks/useCalendarConstraints.test.ts +0 -153
  1036. package/src/Calendar/hooks/useCalendarDays.test.ts +0 -265
  1037. package/src/Calendar/hooks/useCalendarNavigation.test.ts +0 -252
  1038. package/src/Card/Card.spec.md +0 -205
  1039. package/src/Card/Card.test.tsx +0 -202
  1040. package/src/Carousel/Carousel.spec.md +0 -146
  1041. package/src/Carousel/Carousel.test.tsx +0 -915
  1042. package/src/Carousel/__tests__/Carousel.a11y.chromium.spec.ts +0 -193
  1043. package/src/Carousel/__tests__/Carousel.a11y.known-failures.ts +0 -27
  1044. package/src/Carousel/__tests__/Carousel.a11y.renders.tsx +0 -39
  1045. package/src/Carousel/__tests__/Carousel.a11y.states.ts +0 -139
  1046. package/src/Carousel/__tests__/Carousel.a11y.test.tsx +0 -127
  1047. package/src/Center/Center.spec.md +0 -205
  1048. package/src/Center/Center.test.tsx +0 -406
  1049. package/src/Chat/ChatComposer.spec.md +0 -230
  1050. package/src/Chat/ChatComposer.test.tsx +0 -364
  1051. package/src/Chat/ChatComposerDrawer.spec.md +0 -267
  1052. package/src/Chat/ChatComposerDrawer.test.tsx +0 -130
  1053. package/src/Chat/ChatComposerInput.spec.md +0 -224
  1054. package/src/Chat/ChatComposerInput.test.tsx +0 -2136
  1055. package/src/Chat/ChatComposerTokenElement.spec.md +0 -152
  1056. package/src/Chat/ChatComposerTokenElement.test.tsx +0 -85
  1057. package/src/Chat/ChatDictationButton.spec.md +0 -160
  1058. package/src/Chat/ChatDictationButton.test.tsx +0 -108
  1059. package/src/Chat/ChatLayout.spec.md +0 -271
  1060. package/src/Chat/ChatLayout.test.tsx +0 -311
  1061. package/src/Chat/ChatLayoutScrollButton.spec.md +0 -338
  1062. package/src/Chat/ChatLayoutScrollButton.test.tsx +0 -99
  1063. package/src/Chat/ChatMessage.spec.md +0 -265
  1064. package/src/Chat/ChatMessage.test.tsx +0 -344
  1065. package/src/Chat/ChatMessageBubble.spec.md +0 -263
  1066. package/src/Chat/ChatMessageBubble.test.tsx +0 -294
  1067. package/src/Chat/ChatMessageList.spec.md +0 -222
  1068. package/src/Chat/ChatMessageList.test.tsx +0 -198
  1069. package/src/Chat/ChatMessageMetadata.spec.md +0 -220
  1070. package/src/Chat/ChatMessageMetadata.test.tsx +0 -66
  1071. package/src/Chat/ChatPastedTextToken.test.tsx +0 -71
  1072. package/src/Chat/ChatSendButton.spec.md +0 -227
  1073. package/src/Chat/ChatSendButton.test.tsx +0 -309
  1074. package/src/Chat/ChatSystemMessage.spec.md +0 -224
  1075. package/src/Chat/ChatSystemMessage.test.tsx +0 -189
  1076. package/src/Chat/ChatTokenizedText.spec.md +0 -190
  1077. package/src/Chat/ChatTokenizedText.test.tsx +0 -163
  1078. package/src/Chat/ChatToolCalls.spec.md +0 -194
  1079. package/src/Chat/ChatToolCalls.test.tsx +0 -413
  1080. package/src/Chat/__tests__/ChatLayoutScrollButton.a11y.chromium.spec.ts +0 -577
  1081. package/src/Chat/__tests__/ChatLayoutScrollButtonSurface.a11y.chromium.spec.ts +0 -740
  1082. package/src/Chat/__tests__/ChatMessageBubble.a11y.chromium.spec.ts +0 -457
  1083. package/src/Chat/__tests__/ChatMessageBubble.auditProvenance.test.ts +0 -91
  1084. package/src/Chat/__tests__/ChatMessageBubble.auditProvenance.ts +0 -91
  1085. package/src/Chat/__tests__/ChatMessageList.a11y.chromium.spec.ts +0 -465
  1086. package/src/Chat/__tests__/ChatMessageMetadata.a11y.chromium.spec.ts +0 -416
  1087. package/src/Chat/__tests__/ChatSendButton.a11y.chromium.spec.ts +0 -1523
  1088. package/src/Chat/__tests__/ChatSystemMessage.a11y.chromium.spec.ts +0 -1004
  1089. package/src/Chat/__tests__/ChatTokenizedText.a11y.chromium.spec.ts +0 -574
  1090. package/src/Chat/__tests__/useChatStreamScroll.a11y.chromium.spec.ts +0 -263
  1091. package/src/Chat/__tests__/useChatStreamScroll.fixture.tsx +0 -61
  1092. package/src/Chat/useChatDictation.test.tsx +0 -369
  1093. package/src/Chat/useChatNewMessages.test.tsx +0 -209
  1094. package/src/Chat/useChatPasteAsToken.test.ts +0 -191
  1095. package/src/Chat/useChatStreamScroll.test.tsx +0 -381
  1096. package/src/Chat/useTriggerMenu.test.tsx +0 -994
  1097. package/src/CheckboxInput/CheckboxInput.spec.md +0 -218
  1098. package/src/CheckboxInput/CheckboxInput.test.tsx +0 -926
  1099. package/src/CheckboxInput/__tests__/Checkbox.a11y.chromium.spec.ts +0 -354
  1100. package/src/CheckboxInput/__tests__/Checkbox.a11y.known-failures.ts +0 -54
  1101. package/src/CheckboxInput/__tests__/Checkbox.a11y.renders.tsx +0 -310
  1102. package/src/CheckboxInput/__tests__/Checkbox.a11y.states.ts +0 -404
  1103. package/src/CheckboxInput/__tests__/Checkbox.a11y.test.tsx +0 -128
  1104. package/src/CheckboxList/CheckboxList.fr10.test.tsx +0 -51
  1105. package/src/CheckboxList/CheckboxList.spec.md +0 -332
  1106. package/src/CheckboxList/CheckboxList.test.tsx +0 -1159
  1107. package/src/CheckboxList/CheckboxListItem.spec.md +0 -302
  1108. package/src/CheckboxList/__tests__/CheckboxList.a11y.chromium.spec.ts +0 -1998
  1109. package/src/Citation/Citation.spec.md +0 -179
  1110. package/src/Citation/Citation.test.tsx +0 -361
  1111. package/src/ClickableCard/ClickableCard.spec.md +0 -241
  1112. package/src/ClickableCard/ClickableCard.test.tsx +0 -286
  1113. package/src/Code/Code.spec.md +0 -170
  1114. package/src/Code/Code.test.tsx +0 -75
  1115. package/src/CodeBlock/CodeBlock.highlightStyles.test.tsx +0 -87
  1116. package/src/CodeBlock/CodeBlock.spec.md +0 -243
  1117. package/src/CodeBlock/CodeBlock.test.tsx +0 -752
  1118. package/src/CodeBlock/CodeLanguage.test.tsx +0 -173
  1119. package/src/CodeBlock/__tests__/CodeBlockCopyClearance.a11y.chromium.spec.ts +0 -290
  1120. package/src/CodeBlock/__tests__/CodeBlockLanguages.a11y.chromium.spec.ts +0 -64
  1121. package/src/CodeBlock/__tests__/CodeBlockOverflowStop.a11y.chromium.spec.ts +0 -126
  1122. package/src/CodeBlock/__tests__/DiffRowPaint.a11y.chromium.spec.ts +0 -94
  1123. package/src/CodeBlock/highlightRanges.test.ts +0 -253
  1124. package/src/CodeBlock/languages.test.ts +0 -402
  1125. package/src/CodeBlock/tokenizer.test.ts +0 -280
  1126. package/src/CodeBlock/tokenizerBudget.test.ts +0 -112
  1127. package/src/Collapsible/Collapsible.spec.md +0 -245
  1128. package/src/Collapsible/Collapsible.test.tsx +0 -620
  1129. package/src/Collapsible/CollapsibleGroup.spec.md +0 -201
  1130. package/src/Collapsible/CollapsibleGroup.test.tsx +0 -656
  1131. package/src/Collapsible/__tests__/Collapsible.a11y.chromium.spec.ts +0 -183
  1132. package/src/Collapsible/__tests__/Collapsible.a11y.states.ts +0 -117
  1133. package/src/Collapsible/__tests__/Collapsible.a11y.test.tsx +0 -140
  1134. package/src/Collapsible/__tests__/CollapsibleGroup.a11y.chromium.spec.ts +0 -559
  1135. package/src/Collapsible/__tests__/CollapsibleGroup.a11y.renders.tsx +0 -45
  1136. package/src/Collapsible/__tests__/CollapsibleGroup.a11y.states.ts +0 -139
  1137. package/src/Collapsible/__tests__/CollapsibleGroup.a11y.test.tsx +0 -135
  1138. package/src/Collapsible/__tests__/CollapsibleGroupAccordion.a11y.chromium.spec.ts +0 -129
  1139. package/src/Collapsible/useCollapsible.test.tsx +0 -236
  1140. package/src/CommandPalette/CommandPalette.perf.test.ts +0 -100
  1141. package/src/CommandPalette/CommandPalette.spec.md +0 -278
  1142. package/src/CommandPalette/CommandPalette.test.tsx +0 -750
  1143. package/src/CommandPalette/CommandPaletteEmpty.spec.md +0 -190
  1144. package/src/CommandPalette/CommandPaletteEmpty.test.tsx +0 -101
  1145. package/src/CommandPalette/CommandPaletteFooter.test.tsx +0 -122
  1146. package/src/CommandPalette/CommandPaletteGroup.test.tsx +0 -129
  1147. package/src/CommandPalette/CommandPaletteInput.spec.md +0 -215
  1148. package/src/CommandPalette/CommandPaletteInput.test.tsx +0 -539
  1149. package/src/CommandPalette/CommandPaletteItem.spec.md +0 -223
  1150. package/src/CommandPalette/CommandPaletteItem.test.tsx +0 -417
  1151. package/src/CommandPalette/CommandPaletteList.spec.md +0 -194
  1152. package/src/CommandPalette/CommandPaletteList.test.tsx +0 -184
  1153. package/src/CommandPalette/__tests__/CommandPalette.a11y.chromium.spec.ts +0 -600
  1154. package/src/CommandPalette/__tests__/CommandPaletteEmptyAudit.a11y.chromium.spec.ts +0 -715
  1155. package/src/CommandPalette/__tests__/CommandPaletteFooter.a11y.chromium.spec.ts +0 -582
  1156. package/src/CommandPalette/__tests__/CommandPaletteInputAudit.a11y.chromium.spec.ts +0 -336
  1157. package/src/CommandPalette/__tests__/CommandPaletteItemAudit.a11y.chromium.spec.ts +0 -523
  1158. package/src/ComplexSelector/ComplexSelector.focusableDisabled.test.tsx +0 -76
  1159. package/src/ComplexSelector/ComplexSelector.fr10.test.tsx +0 -262
  1160. package/src/ComplexSelector/ComplexSelector.spec.md +0 -266
  1161. package/src/ComplexSelector/ComplexSelector.test.tsx +0 -1023
  1162. package/src/ComplexSelector/__tests__/ComplexSelector.a11y.chromium.spec.ts +0 -965
  1163. package/src/ContextMenu/ContextMenu.spec.md +0 -251
  1164. package/src/ContextMenu/ContextMenu.test.tsx +0 -1582
  1165. package/src/ContextMenu/ContextMenu.triggerProps.test.tsx +0 -54
  1166. package/src/ContextMenu/__tests__/ContextMenuAudit.a11y.chromium.spec.ts +0 -439
  1167. package/src/ContextMenu/__tests__/ContextMenuCursorAnchor.a11y.browser.spec.ts +0 -154
  1168. package/src/ContextMenu/__tests__/ContextMenuLongPress.a11y.chromium.spec.ts +0 -117
  1169. package/src/DateInput/DateInput.fr10.test.tsx +0 -283
  1170. package/src/DateInput/DateInput.spec.md +0 -319
  1171. package/src/DateInput/DateInput.test.tsx +0 -1459
  1172. package/src/DateInput/DateInputTouch.test.tsx +0 -2828
  1173. package/src/DateInput/NativeDateField.test.tsx +0 -741
  1174. package/src/DateInput/Presentation.test.tsx +0 -121
  1175. package/src/DateInput/__tests__/DateInputAudit.a11y.chromium.spec.ts +0 -577
  1176. package/src/DateInput/__tests__/WheelPinchZoom.a11y.chromium.spec.ts +0 -171
  1177. package/src/DateRangeInput/DateRangeInput.fr10.test.tsx +0 -165
  1178. package/src/DateRangeInput/DateRangeInput.spec.md +0 -203
  1179. package/src/DateRangeInput/DateRangeInput.test.tsx +0 -1108
  1180. package/src/DateTimeInput/DateTimeInput.fr10.test.tsx +0 -319
  1181. package/src/DateTimeInput/DateTimeInput.spec.md +0 -246
  1182. package/src/DateTimeInput/DateTimeInput.test.tsx +0 -2575
  1183. package/src/DateTimeInput/DateTimeInputTouch.test.tsx +0 -1071
  1184. package/src/DateTimeInput/NativePickerSegments.test.tsx +0 -657
  1185. package/src/DateTimeInput/Presentation.test.tsx +0 -89
  1186. package/src/Dialog/Dialog.source-build.test.mjs +0 -43
  1187. package/src/Dialog/Dialog.spec.md +0 -189
  1188. package/src/Dialog/Dialog.test.tsx +0 -1385
  1189. package/src/Dialog/DialogHeader.test.tsx +0 -477
  1190. package/src/Dialog/__tests__/Dialog.a11y.browser.spec.ts +0 -111
  1191. package/src/Dialog/__tests__/Dialog.a11y.chromium.spec.ts +0 -218
  1192. package/src/Dialog/__tests__/Dialog.a11y.known-failures.ts +0 -28
  1193. package/src/Dialog/__tests__/Dialog.a11y.renders.tsx +0 -107
  1194. package/src/Dialog/__tests__/Dialog.a11y.states.ts +0 -104
  1195. package/src/Dialog/__tests__/Dialog.a11y.test.tsx +0 -102
  1196. package/src/Dialog/__tests__/Dialog.reduced-motion.a11y.browser.spec.ts +0 -252
  1197. package/src/Dialog/modules/DialogHeader.spec.md +0 -211
  1198. package/src/Dialog/useImperativeDialog.test.tsx +0 -78
  1199. package/src/Divider/Divider.spec.md +0 -252
  1200. package/src/Divider/Divider.test.tsx +0 -155
  1201. package/src/Drawer/Drawer.spec.md +0 -357
  1202. package/src/Drawer/Drawer.test.tsx +0 -1300
  1203. package/src/Drawer/DrawerDirection.test.tsx +0 -127
  1204. package/src/Drawer/DrawerHeader.test.tsx +0 -102
  1205. package/src/Drawer/__tests__/DrawerAudit.a11y.chromium.spec.ts +0 -402
  1206. package/src/Drawer/__tests__/DrawerHeaderAudit.a11y.chromium.spec.ts +0 -298
  1207. package/src/DropdownMenu/DropdownMenu.spec.md +0 -582
  1208. package/src/DropdownMenu/DropdownMenu.ssr.test.tsx +0 -93
  1209. package/src/DropdownMenu/DropdownMenu.test.tsx +0 -4340
  1210. package/src/DropdownMenu/DropdownMenuContext.public.test.ts +0 -22
  1211. package/src/DropdownMenu/DropdownMenuDivider.spec.md +0 -192
  1212. package/src/DropdownMenu/DropdownMenuItem.spec.md +0 -209
  1213. package/src/DropdownMenu/DropdownMenuLazySheet.test.tsx +0 -126
  1214. package/src/DropdownMenu/DropdownMenuRadioGroup.spec.md +0 -190
  1215. package/src/DropdownMenu/DropdownMenuRadioItem.spec.md +0 -226
  1216. package/src/DropdownMenu/DropdownMenuSelectable.test.tsx +0 -635
  1217. package/src/DropdownMenu/DropdownMenuSheetFirstOpen.test.tsx +0 -72
  1218. package/src/DropdownMenu/DropdownMenuSubMenu.spec.md +0 -225
  1219. package/src/DropdownMenu/DropdownMenuSubMenu.test.tsx +0 -2408
  1220. package/src/DropdownMenu/__tests__/DropdownMenuDividerAudit.a11y.chromium.spec.ts +0 -281
  1221. package/src/DropdownMenu/__tests__/DropdownMenuDrillIn.a11y.chromium.spec.ts +0 -175
  1222. package/src/DropdownMenu/__tests__/DropdownMenuFocusReturn.a11y.browser.spec.ts +0 -74
  1223. package/src/DropdownMenu/__tests__/DropdownMenuGroupAudit.a11y.chromium.spec.ts +0 -335
  1224. package/src/DropdownMenu/__tests__/DropdownMenuItemAudit.a11y.chromium.spec.ts +0 -367
  1225. package/src/DropdownMenu/__tests__/DropdownMenuRadioGroupAudit.a11y.chromium.spec.ts +0 -328
  1226. package/src/DropdownMenu/__tests__/DropdownMenuRadioItemAudit.a11y.chromium.spec.ts +0 -540
  1227. package/src/DropdownMenu/__tests__/DropdownMenuSubMenuAudit.a11y.chromium.spec.ts +0 -671
  1228. package/src/DropdownMenu/__tests__/Menu.a11y.chromium.spec.ts +0 -146
  1229. package/src/DropdownMenu/__tests__/Menu.a11y.known-failures.ts +0 -26
  1230. package/src/DropdownMenu/__tests__/Menu.a11y.renders.tsx +0 -65
  1231. package/src/DropdownMenu/__tests__/Menu.a11y.states.ts +0 -138
  1232. package/src/DropdownMenu/__tests__/Menu.a11y.test.tsx +0 -136
  1233. package/src/DropdownMenu/__tests__/MenuButton.a11y.chromium.spec.ts +0 -137
  1234. package/src/DropdownMenu/__tests__/MenuButton.a11y.known-failures.ts +0 -12
  1235. package/src/DropdownMenu/__tests__/MenuButton.a11y.renders.tsx +0 -67
  1236. package/src/DropdownMenu/__tests__/MenuButton.a11y.states.ts +0 -141
  1237. package/src/DropdownMenu/__tests__/MenuButton.a11y.test.tsx +0 -138
  1238. package/src/DropdownMenu/__tests__/MenuHeaderFooter.a11y.chromium.spec.ts +0 -231
  1239. package/src/DropdownMenu/__tests__/MenuHoverFocus.a11y.chromium.spec.ts +0 -238
  1240. package/src/DropdownMenu/__tests__/MenuPinchZoom.a11y.chromium.spec.ts +0 -173
  1241. package/src/DropdownMenu/__tests__/MenuPress.a11y.chromium.spec.ts +0 -503
  1242. package/src/DropdownMenu/__tests__/SubMenuHeaderFooter.a11y.chromium.spec.ts +0 -268
  1243. package/src/DropdownMenu/__tests__/warmMenuBottomSheet.tsx +0 -43
  1244. package/src/DropdownMenu/modules/useMenuHover.spec.md +0 -283
  1245. package/src/DropdownMenu/modules/useMenuPress.spec.md +0 -348
  1246. package/src/EmptyState/EmptyState.announce.test.tsx +0 -227
  1247. package/src/EmptyState/EmptyState.spec.md +0 -197
  1248. package/src/EmptyState/EmptyState.test.tsx +0 -284
  1249. package/src/Field/Field.spec.md +0 -226
  1250. package/src/Field/Field.test.tsx +0 -800
  1251. package/src/Field/FieldLabel.spec.md +0 -183
  1252. package/src/Field/FieldLabel.test.tsx +0 -244
  1253. package/src/Field/InputClearButton.test.tsx +0 -395
  1254. package/src/Field/__tests__/FieldLabelAudit.a11y.chromium.spec.ts +0 -297
  1255. package/src/Field/fieldInputFamily.test.tsx +0 -160
  1256. package/src/FieldStatus/FieldStatus.spec.md +0 -224
  1257. package/src/FieldStatus/FieldStatus.test.tsx +0 -482
  1258. package/src/FieldStatus/__tests__/StatusMessage.a11y.chromium.spec.ts +0 -206
  1259. package/src/FieldStatus/__tests__/StatusMessage.a11y.known-failures.ts +0 -13
  1260. package/src/FieldStatus/__tests__/StatusMessage.a11y.renders.tsx +0 -287
  1261. package/src/FieldStatus/__tests__/StatusMessage.a11y.states.ts +0 -302
  1262. package/src/FieldStatus/__tests__/StatusMessage.a11y.test.tsx +0 -154
  1263. package/src/FileInput/FileInput.fr10.test.tsx +0 -21
  1264. package/src/FileInput/FileInput.spec.md +0 -199
  1265. package/src/FileInput/FileInput.test.tsx +0 -1270
  1266. package/src/FormLayout/FormLayout.spec.md +0 -210
  1267. package/src/FormLayout/FormLayout.test.tsx +0 -444
  1268. package/src/FormLayout/__snapshots__/FormLayout.test.tsx.snap +0 -46
  1269. package/src/Grid/Grid.spec.md +0 -193
  1270. package/src/Grid/Grid.test.tsx +0 -509
  1271. package/src/Grid/GridSpan.spec.md +0 -158
  1272. package/src/HStack/HStack.test.tsx +0 -129
  1273. package/src/Heading/Heading.spec.md +0 -198
  1274. package/src/Heading/Heading.test.tsx +0 -328
  1275. package/src/HoverCard/HoverCard.spec.md +0 -244
  1276. package/src/HoverCard/HoverCard.test.tsx +0 -1339
  1277. package/src/Icon/Icon.spec.md +0 -244
  1278. package/src/Icon/Icon.test.tsx +0 -990
  1279. package/src/Icon/globalIconRegistry.test.tsx +0 -613
  1280. package/src/IconButton/IconButton.spec.md +0 -197
  1281. package/src/IconButton/IconButton.test.tsx +0 -156
  1282. package/src/Indicator/CheckIndicator.spec.md +0 -159
  1283. package/src/Indicator/CheckboxIndicator.spec.md +0 -161
  1284. package/src/Indicator/Indicator.test.tsx +0 -389
  1285. package/src/Indicator/indicatorRegistry.test.tsx +0 -106
  1286. package/src/InputGroup/InputGroup.spec.md +0 -199
  1287. package/src/InputGroup/InputGroup.test.tsx +0 -502
  1288. package/src/InputGroup/InputGroupText.spec.md +0 -139
  1289. package/src/InteractiveRoleContext/InteractiveRoleContext.test.tsx +0 -185
  1290. package/src/Item/Item.source-build.test.mjs +0 -88
  1291. package/src/Item/Item.spec.md +0 -226
  1292. package/src/Item/Item.swipeLayer.test.tsx +0 -74
  1293. package/src/Item/Item.test.tsx +0 -1455
  1294. package/src/Item/ItemMarkerColumns.a11y.chromium.spec.ts +0 -211
  1295. package/src/Item/__tests__/ItemSwipeActions.a11y.chromium.spec.ts +0 -337
  1296. package/src/Item/__tests__/ItemSwipePinchZoom.a11y.chromium.spec.ts +0 -186
  1297. package/src/Kbd/Kbd.spec.md +0 -142
  1298. package/src/Kbd/Kbd.test.tsx +0 -299
  1299. package/src/Layer/LayerProvider.spec.md +0 -149
  1300. package/src/Layer/LayerProvider.test.tsx +0 -143
  1301. package/src/Layer/__tests__/LayerReducedMotion.a11y.chromium.spec.ts +0 -176
  1302. package/src/Layer/__tests__/TouchTrigger.a11y.chromium.spec.ts +0 -200
  1303. package/src/Layer/anchorName.test.ts +0 -146
  1304. package/src/Layer/layerDismissalFamilies.test.tsx +0 -487
  1305. package/src/Layer/layerDismissalInvariants.test.tsx +0 -501
  1306. package/src/Layer/layerHost.test.ts +0 -117
  1307. package/src/Layer/layerScopedContext.test.tsx +0 -499
  1308. package/src/Layer/layerViewportInset.source-build.test.mjs +0 -90
  1309. package/src/Layer/layerViewportInset.test.ts +0 -120
  1310. package/src/Layer/useLayer.test.tsx +0 -2423
  1311. package/src/Layer/useLayerDismissal.test.tsx +0 -580
  1312. package/src/Layer/useTouchTrigger.test.ts +0 -70
  1313. package/src/Layout/Layout.spec.md +0 -247
  1314. package/src/Layout/Layout.test.tsx +0 -375
  1315. package/src/Layout/LayoutSlots.test.tsx +0 -376
  1316. package/src/Layout/__tests__/Layout.a11y.chromium.spec.ts +0 -122
  1317. package/src/Layout/__tests__/Layout.a11y.renders.tsx +0 -110
  1318. package/src/Layout/__tests__/Layout.a11y.states.ts +0 -93
  1319. package/src/Layout/__tests__/Layout.a11y.test.tsx +0 -142
  1320. package/src/Layout/__tests__/childrenAsContent.test.tsx +0 -59
  1321. package/src/Layout/__tests__/contentWidth.test.tsx +0 -303
  1322. package/src/Layout/__tests__/edgeCompensation.test.tsx +0 -191
  1323. package/src/Layout/__tests__/nestedPadding.test.tsx +0 -264
  1324. package/src/Layout/overlayPaddingReset.test.tsx +0 -224
  1325. package/src/Lightbox/Lightbox.spec.md +0 -199
  1326. package/src/Lightbox/Lightbox.test.tsx +0 -819
  1327. package/src/Lightbox/LightboxKeyboard.a11y.browser.spec.ts +0 -78
  1328. package/src/Lightbox/LightboxViewport.a11y.browser.spec.ts +0 -70
  1329. package/src/Lightbox/useLightbox.test.tsx +0 -263
  1330. package/src/Link/Link.spec.md +0 -229
  1331. package/src/Link/Link.test.tsx +0 -457
  1332. package/src/Link/LinkProvider.spec.md +0 -167
  1333. package/src/Link/__tests__/Link.a11y.chromium.spec.ts +0 -143
  1334. package/src/Link/__tests__/Link.a11y.renders.tsx +0 -97
  1335. package/src/Link/__tests__/Link.a11y.states.ts +0 -104
  1336. package/src/Link/__tests__/Link.a11y.test.tsx +0 -127
  1337. package/src/Link/__tests__/Link.navigation.a11y.chromium.spec.ts +0 -262
  1338. package/src/Link/useLinkComponent.test.tsx +0 -572
  1339. package/src/Link/useLinkify.test.tsx +0 -146
  1340. package/src/List/List.spec.md +0 -336
  1341. package/src/List/List.test.tsx +0 -1052
  1342. package/src/List/ListItem.source-build.test.mjs +0 -41
  1343. package/src/List/ListMarkers.a11y.chromium.spec.ts +0 -904
  1344. package/src/Markdown/Markdown.codeLanguages.test.tsx +0 -137
  1345. package/src/Markdown/Markdown.fr23.bench.ts +0 -176
  1346. package/src/Markdown/Markdown.fr23.perf.test.ts +0 -484
  1347. package/src/Markdown/Markdown.helpers.perf.test.ts +0 -495
  1348. package/src/Markdown/Markdown.public.test.ts +0 -309
  1349. package/src/Markdown/Markdown.renderBoundary.test.tsx +0 -72
  1350. package/src/Markdown/Markdown.rerender.test.tsx +0 -143
  1351. package/src/Markdown/Markdown.spec.md +0 -595
  1352. package/src/Markdown/Markdown.test.tsx +0 -1383
  1353. package/src/Markdown/MarkdownTable.a11y.chromium.spec.ts +0 -727
  1354. package/src/Markdown/__tests__/MarkdownNesting.a11y.chromium.spec.ts +0 -102
  1355. package/src/Markdown/angleDestinations.test.tsx +0 -104
  1356. package/src/Markdown/ast.test.ts +0 -374
  1357. package/src/Markdown/atxHeadingIndentation.test.tsx +0 -53
  1358. package/src/Markdown/blockNesting.test.tsx +0 -124
  1359. package/src/Markdown/blockquoteMarkers.test.tsx +0 -69
  1360. package/src/Markdown/characterReferences.test.ts +0 -47
  1361. package/src/Markdown/codeSpans.test.tsx +0 -65
  1362. package/src/Markdown/emphasis.test.tsx +0 -214
  1363. package/src/Markdown/fenceInfo.test.tsx +0 -47
  1364. package/src/Markdown/imageAlt.test.tsx +0 -84
  1365. package/src/Markdown/incremental.test.ts +0 -1198
  1366. package/src/Markdown/incrementalIndentation.test.tsx +0 -36
  1367. package/src/Markdown/indentedFences.test.tsx +0 -374
  1368. package/src/Markdown/indentedTables.test.tsx +0 -53
  1369. package/src/Markdown/linkBrackets.test.tsx +0 -116
  1370. package/src/Markdown/linkDestinationLinear.test.tsx +0 -54
  1371. package/src/Markdown/linkDestinations.test.tsx +0 -127
  1372. package/src/Markdown/linkTextCode.test.tsx +0 -65
  1373. package/src/Markdown/listBullets.test.tsx +0 -55
  1374. package/src/Markdown/listContinuation.test.tsx +0 -94
  1375. package/src/Markdown/listThematicBreak.test.tsx +0 -49
  1376. package/src/Markdown/longLinkLabels.test.tsx +0 -49
  1377. package/src/Markdown/modules/headingLinks.spec.md +0 -262
  1378. package/src/Markdown/modules/remark.spec.md +0 -269
  1379. package/src/Markdown/modules/softBreaks.spec.md +0 -137
  1380. package/src/Markdown/modules/sourceLines.spec.md +0 -162
  1381. package/src/Markdown/openFenceFinalNewline.test.tsx +0 -85
  1382. package/src/Markdown/parser.perf.test.ts +0 -398
  1383. package/src/Markdown/parser.public.test.ts +0 -144
  1384. package/src/Markdown/parser.test.ts +0 -1925
  1385. package/src/Markdown/plugin-renderer/MarkdownPluginNodeRenderer.test.tsx +0 -300
  1386. package/src/Markdown/plugins/frontmatter.test.tsx +0 -150
  1387. package/src/Markdown/plugins/headingLinks.a11y.chromium.spec.ts +0 -856
  1388. package/src/Markdown/plugins/headingLinks.ssr.test.tsx +0 -143
  1389. package/src/Markdown/plugins/headingLinks.test.tsx +0 -637
  1390. package/src/Markdown/plugins/protocol.test.tsx +0 -1083
  1391. package/src/Markdown/plugins/semanticFence.test.tsx +0 -655
  1392. package/src/Markdown/plugins/softBreaks.test.tsx +0 -172
  1393. package/src/Markdown/plugins/sourceDecoration.test.tsx +0 -799
  1394. package/src/Markdown/plugins/sourceLines.test.tsx +0 -715
  1395. package/src/Markdown/plugins/textTransform.test.ts +0 -467
  1396. package/src/Markdown/remark.test.tsx +0 -1877
  1397. package/src/Markdown/streaming.test.ts +0 -148
  1398. package/src/Markdown/streamingListShapes.test.tsx +0 -93
  1399. package/src/Markdown/trailingSpaces.test.tsx +0 -45
  1400. package/src/MetadataList/MetadataList.test.tsx +0 -383
  1401. package/src/MobileNav/MobileNav.spec.md +0 -306
  1402. package/src/MobileNav/MobileNav.test.tsx +0 -281
  1403. package/src/MobileNav/MobileNavCloseEdgeCases.test.tsx +0 -584
  1404. package/src/MobileNav/MobileNavCloseTiming.test.ts +0 -58
  1405. package/src/MobileNav/MobileNavCloseVisibility.test.tsx +0 -172
  1406. package/src/MobileNav/MobileNavEntryAnimation.test.tsx +0 -212
  1407. package/src/MobileNav/MobileNavFocus.test.tsx +0 -553
  1408. package/src/MobileNav/MobileNavPinchZoom.a11y.chromium.spec.ts +0 -147
  1409. package/src/MobileNav/MobileNavReopen.test.tsx +0 -118
  1410. package/src/MobileNav/MobileNavScrollbarGutter.test.tsx +0 -109
  1411. package/src/MobileNav/MobileNavToggle.test.tsx +0 -179
  1412. package/src/MobileNav/__tests__/MobileNavWidth.a11y.chromium.spec.ts +0 -103
  1413. package/src/MoreMenu/MoreMenu.spec.md +0 -268
  1414. package/src/MoreMenu/MoreMenu.test.tsx +0 -356
  1415. package/src/MultiSelector/CreateRow.a11y.chromium.spec.ts +0 -149
  1416. package/src/MultiSelector/MultiSelector.disabledFocus.a11y.chromium.spec.ts +0 -72
  1417. package/src/MultiSelector/MultiSelector.focusableDisabled.test.tsx +0 -121
  1418. package/src/MultiSelector/MultiSelector.fr10.test.tsx +0 -221
  1419. package/src/MultiSelector/MultiSelector.spec.md +0 -354
  1420. package/src/MultiSelector/MultiSelector.test.tsx +0 -4702
  1421. package/src/MultiSelector/OptionActions.a11y.chromium.spec.ts +0 -310
  1422. package/src/MultiSelector/__tests__/MultiSelector.a11y.chromium.spec.ts +0 -46
  1423. package/src/MultiSelector/__tests__/MultiSelector.listbox.a11y.test.tsx +0 -128
  1424. package/src/NavIcon/NavIcon.spec.md +0 -158
  1425. package/src/NavIcon/NavIcon.test.tsx +0 -41
  1426. package/src/NavMenu/NavHeadingMenu.spec.md +0 -268
  1427. package/src/NavMenu/NavHeadingMenu.test.tsx +0 -714
  1428. package/src/NavMenu/__tests__/NavMenusSlideSelection.a11y.chromium.spec.ts +0 -137
  1429. package/src/NumberInput/NumberInput.fr10.test.tsx +0 -21
  1430. package/src/NumberInput/NumberInput.spec.md +0 -248
  1431. package/src/NumberInput/NumberInput.test.tsx +0 -2636
  1432. package/src/NumberInput/__tests__/NumberInput.a11y.chromium.spec.ts +0 -124
  1433. package/src/NumberInput/__tests__/NumberInput.a11y.known-failures.ts +0 -26
  1434. package/src/NumberInput/__tests__/NumberInput.a11y.renders.tsx +0 -77
  1435. package/src/NumberInput/__tests__/NumberInput.a11y.states.ts +0 -116
  1436. package/src/NumberInput/__tests__/NumberInput.a11y.test.tsx +0 -154
  1437. package/src/NumberInput/numberInputCommit.test.ts +0 -72
  1438. package/src/NumberInput/numberParser.docblock.test.ts +0 -234
  1439. package/src/NumberInput/numberParser.test.ts +0 -222
  1440. package/src/Outline/Outline.spec.md +0 -162
  1441. package/src/Outline/Outline.test.tsx +0 -1069
  1442. package/src/Outline/OutlineFocus.a11y.chromium.spec.ts +0 -551
  1443. package/src/Outline/modules/parseOutlineFromMarkdown.spec.md +0 -151
  1444. package/src/Outline/parseOutlineFromMarkdown.test.ts +0 -104
  1445. package/src/OverflowList/OverflowList.spec.md +0 -157
  1446. package/src/OverflowList/OverflowList.test.tsx +0 -1073
  1447. package/src/Overlay/Overlay.spec.md +0 -304
  1448. package/src/Overlay/Overlay.test.tsx +0 -424
  1449. package/src/Pagination/Pagination.spec.md +0 -226
  1450. package/src/Pagination/Pagination.test.tsx +0 -1754
  1451. package/src/Popover/Popover.spec.md +0 -525
  1452. package/src/Popover/Popover.test.tsx +0 -1424
  1453. package/src/Popover/PopoverPresentation.test.tsx +0 -952
  1454. package/src/Popover/__tests__/PopoverSecondDocument.a11y.chromium.spec.ts +0 -205
  1455. package/src/PowerSearch/PowerSearch.spec.md +0 -661
  1456. package/src/PowerSearch/PowerSearch.test.tsx +0 -1003
  1457. package/src/PowerSearch/PowerSearchEditPopover.test.tsx +0 -1190
  1458. package/src/PowerSearch/PowerSearchFilterEditor.test.tsx +0 -377
  1459. package/src/PowerSearch/PowerSearchToken.test.tsx +0 -230
  1460. package/src/PowerSearch/PowerSearchValueEditor.test.tsx +0 -754
  1461. package/src/PowerSearch/formatFilterValue.test.ts +0 -339
  1462. package/src/PowerSearch/resolveDateTimeRangePart.test.ts +0 -40
  1463. package/src/PowerSearch/usePowerSearchConfig.test.ts +0 -832
  1464. package/src/PowerSearch/usePowerSearchSource.test.ts +0 -621
  1465. package/src/ProgressBar/ProgressBar.spec.md +0 -261
  1466. package/src/ProgressBar/ProgressBar.test.tsx +0 -852
  1467. package/src/ProgressBar/__tests__/ProgressBar.a11y.chromium.spec.ts +0 -115
  1468. package/src/ProgressBar/__tests__/ProgressBar.a11y.known-failures.ts +0 -12
  1469. package/src/ProgressBar/__tests__/ProgressBar.a11y.renders.tsx +0 -38
  1470. package/src/ProgressBar/__tests__/ProgressBar.a11y.states.ts +0 -123
  1471. package/src/ProgressBar/__tests__/ProgressBar.a11y.test.tsx +0 -107
  1472. package/src/RadioList/RadioList.fr10.test.tsx +0 -67
  1473. package/src/RadioList/RadioList.spec.md +0 -227
  1474. package/src/RadioList/RadioList.test.tsx +0 -967
  1475. package/src/RadioList/RadioListItem.press.source-build.test.mjs +0 -80
  1476. package/src/RadioList/RadioListItem.spec.md +0 -223
  1477. package/src/RadioList/__tests__/RadioGroup.a11y.chromium.spec.ts +0 -274
  1478. package/src/RadioList/__tests__/RadioGroup.a11y.known-failures.ts +0 -12
  1479. package/src/RadioList/__tests__/RadioGroup.a11y.renders.tsx +0 -232
  1480. package/src/RadioList/__tests__/RadioGroup.a11y.states.ts +0 -503
  1481. package/src/RadioList/__tests__/RadioGroup.a11y.test.tsx +0 -217
  1482. package/src/Resizable/Resizable.spec.md +0 -278
  1483. package/src/Resizable/ResizeHandle.test.tsx +0 -1067
  1484. package/src/Resizable/__tests__/ResizeHandle.a11y.chromium.spec.ts +0 -120
  1485. package/src/Resizable/__tests__/ResizeHandle.a11y.known-failures.ts +0 -39
  1486. package/src/Resizable/__tests__/ResizeHandle.a11y.renders.tsx +0 -80
  1487. package/src/Resizable/__tests__/ResizeHandle.a11y.states.ts +0 -197
  1488. package/src/Resizable/__tests__/ResizeHandle.a11y.test.tsx +0 -123
  1489. package/src/Resizable/shippedDirections.test.ts +0 -462
  1490. package/src/Resizable/useResizable.test.ts +0 -1682
  1491. package/src/Resizable/utils.test.ts +0 -74
  1492. package/src/ScrollableArea/ScrollableArea.spec.md +0 -190
  1493. package/src/ScrollableArea/ScrollableArea.test.tsx +0 -304
  1494. package/src/ScrollableArea/modules/useScrollableArea.spec.md +0 -149
  1495. package/src/Section/Section.spec.md +0 -197
  1496. package/src/Section/Section.test.tsx +0 -376
  1497. package/src/SegmentedControl/SegmentedControl.spec.md +0 -261
  1498. package/src/SegmentedControl/SegmentedControl.test.tsx +0 -897
  1499. package/src/SegmentedControl/SegmentedControlItem.spec.md +0 -206
  1500. package/src/SelectableCard/SelectableCard.spec.md +0 -230
  1501. package/src/SelectableCard/SelectableCard.test.tsx +0 -216
  1502. package/src/Selector/Selector.focusableDisabled.test.tsx +0 -127
  1503. package/src/Selector/Selector.fr10.test.tsx +0 -149
  1504. package/src/Selector/Selector.sheetActiveDescendant.test.tsx +0 -95
  1505. package/src/Selector/Selector.source-build.test.mjs +0 -79
  1506. package/src/Selector/Selector.spec.md +0 -379
  1507. package/src/Selector/Selector.test.tsx +0 -5028
  1508. package/src/Selector/__tests__/Combobox.a11y.known-failures.ts +0 -27
  1509. package/src/Selector/__tests__/Combobox.a11y.states.ts +0 -145
  1510. package/src/Selector/__tests__/ComboboxField.a11y.chromium.spec.ts +0 -458
  1511. package/src/Selector/__tests__/EmptyStateAnnouncement.a11y.chromium.spec.ts +0 -91
  1512. package/src/Selector/__tests__/Listbox.a11y.chromium.spec.ts +0 -131
  1513. package/src/Selector/__tests__/Listbox.a11y.dom.ts +0 -38
  1514. package/src/Selector/__tests__/Listbox.a11y.inventory.test.ts +0 -63
  1515. package/src/Selector/__tests__/Listbox.a11y.known-failures.ts +0 -12
  1516. package/src/Selector/__tests__/Listbox.a11y.states.ts +0 -232
  1517. package/src/Selector/__tests__/Selector.a11y.chromium.spec.ts +0 -46
  1518. package/src/Selector/__tests__/Selector.combobox.a11y.chromium.spec.ts +0 -109
  1519. package/src/Selector/__tests__/Selector.combobox.a11y.test.tsx +0 -126
  1520. package/src/Selector/__tests__/Selector.listbox.a11y.test.tsx +0 -121
  1521. package/src/Selector/useCombobox.public.test.tsx +0 -89
  1522. package/src/Selector/useCombobox.test.tsx +0 -444
  1523. package/src/SideNav/SideNav.spec.md +0 -247
  1524. package/src/SideNav/SideNav.test.tsx +0 -4128
  1525. package/src/SideNav/SideNavCollapseButton.spec.md +0 -161
  1526. package/src/SideNav/SideNavHeading.spec.md +0 -226
  1527. package/src/SideNav/SideNavItem.spec.md +0 -246
  1528. package/src/SideNav/SideNavRailMotion.test.tsx +0 -620
  1529. package/src/SideNav/SideNavSection.spec.md +0 -153
  1530. package/src/SideNav/__tests__/SideNavRailMotion.interaction.browser.spec.ts +0 -417
  1531. package/src/SizeContext/SizeContext.test.tsx +0 -226
  1532. package/src/Skeleton/Skeleton.spec.md +0 -184
  1533. package/src/Skeleton/Skeleton.test.tsx +0 -148
  1534. package/src/Slider/Slider.fr10.test.tsx +0 -93
  1535. package/src/Slider/Slider.spec.md +0 -285
  1536. package/src/Slider/Slider.test.tsx +0 -1630
  1537. package/src/Slider/__tests__/Slider.a11y.chromium.spec.ts +0 -113
  1538. package/src/Slider/__tests__/Slider.a11y.known-failures.ts +0 -12
  1539. package/src/Slider/__tests__/Slider.a11y.renders.tsx +0 -42
  1540. package/src/Slider/__tests__/Slider.a11y.states.ts +0 -106
  1541. package/src/Slider/__tests__/Slider.a11y.test.tsx +0 -105
  1542. package/src/Spinner/Spinner.spec.md +0 -231
  1543. package/src/Spinner/Spinner.test.tsx +0 -484
  1544. package/src/Stack/Stack.spec.md +0 -203
  1545. package/src/Stack/Stack.test.tsx +0 -473
  1546. package/src/Stack/StackItem.test.tsx +0 -105
  1547. package/src/StatusDot/StatusDot.spec.md +0 -224
  1548. package/src/StatusDot/StatusDot.test.tsx +0 -213
  1549. package/src/Stepper/Step.spec.md +0 -206
  1550. package/src/Stepper/Stepper.public.test.ts +0 -91
  1551. package/src/Stepper/Stepper.spec.md +0 -327
  1552. package/src/Stepper/Stepper.test.tsx +0 -2068
  1553. package/src/Switch/Switch.focusRing.source-build.test.mjs +0 -81
  1554. package/src/Switch/Switch.spec.md +0 -277
  1555. package/src/Switch/Switch.test.tsx +0 -1071
  1556. package/src/Switch/__tests__/Switch.a11y.chromium.spec.ts +0 -211
  1557. package/src/Switch/__tests__/Switch.a11y.known-failures.ts +0 -28
  1558. package/src/Switch/__tests__/Switch.a11y.states.ts +0 -275
  1559. package/src/Switch/__tests__/Switch.a11y.test.tsx +0 -144
  1560. package/src/TabList/Tab.spec.md +0 -201
  1561. package/src/TabList/TabList.spec.md +0 -217
  1562. package/src/TabList/TabList.test.tsx +0 -1701
  1563. package/src/TabList/TabMenu.spec.md +0 -198
  1564. package/src/TabList/__tests__/TabListOverflow.interaction.browser.spec.ts +0 -99
  1565. package/src/TabList/__tests__/Tabs.a11y.chromium.spec.ts +0 -199
  1566. package/src/TabList/__tests__/Tabs.a11y.known-failures.ts +0 -12
  1567. package/src/TabList/__tests__/Tabs.a11y.renders.tsx +0 -92
  1568. package/src/TabList/__tests__/Tabs.a11y.states.ts +0 -247
  1569. package/src/TabList/__tests__/Tabs.a11y.test.tsx +0 -153
  1570. package/src/Table/Table.perf.test.tsx +0 -569
  1571. package/src/Table/Table.spec.md +0 -395
  1572. package/src/Table/Table.test.tsx +0 -1851
  1573. package/src/Table/TableHeaderCell.test.tsx +0 -291
  1574. package/src/Table/TableSelectionToolbar.test.tsx +0 -109
  1575. package/src/Table/__tests__/Table.a11y.chromium.spec.ts +0 -129
  1576. package/src/Table/__tests__/Table.a11y.contracts.ts +0 -35
  1577. package/src/Table/__tests__/Table.a11y.renders.tsx +0 -112
  1578. package/src/Table/__tests__/Table.a11y.states.ts +0 -140
  1579. package/src/Table/__tests__/Table.a11y.test.tsx +0 -198
  1580. package/src/Table/__tests__/TableMinWidth.a11y.chromium.spec.ts +0 -75
  1581. package/src/Table/__tests__/TableRowGlide.a11y.browser.spec.ts +0 -382
  1582. package/src/Table/__tests__/TableScroll.a11y.chromium.spec.ts +0 -138
  1583. package/src/Table/__tests__/TableStickyDividers.a11y.browser.spec.ts +0 -560
  1584. package/src/Table/plugins/activation/useTableActivation.spec.md +0 -254
  1585. package/src/Table/plugins/columnResize/useTableColumnResize.spec.md +0 -373
  1586. package/src/Table/plugins/columnResize/useTableColumnResize.test.tsx +0 -919
  1587. package/src/Table/plugins/columnSettings/useTableColumnSettings.test.tsx +0 -175
  1588. package/src/Table/plugins/columnSettings/useTableColumnSettingsState.test.tsx +0 -296
  1589. package/src/Table/plugins/filtering/useTableFilterState.test.tsx +0 -143
  1590. package/src/Table/plugins/filtering/useTableFiltering.test.tsx +0 -357
  1591. package/src/Table/plugins/groupedRows/useTableGroupedRows-perf.test.tsx +0 -112
  1592. package/src/Table/plugins/groupedRows/useTableGroupedRows.test.tsx +0 -409
  1593. package/src/Table/plugins/infiniteScroll/useTableInfiniteScroll.spec.md +0 -244
  1594. package/src/Table/plugins/pagination/useTablePagination-perf.test.tsx +0 -232
  1595. package/src/Table/plugins/pagination/useTablePagination.test.tsx +0 -666
  1596. package/src/Table/plugins/rowExpansion/useTableRowExpansion.glide.test.tsx +0 -280
  1597. package/src/Table/plugins/rowExpansion/useTableRowExpansion.test.tsx +0 -681
  1598. package/src/Table/plugins/rowIndex/useTableRowIndex.test.tsx +0 -132
  1599. package/src/Table/plugins/rowStatus/useTableRowStatus.public.test.ts +0 -92
  1600. package/src/Table/plugins/rowStatus/useTableRowStatus.spec.md +0 -355
  1601. package/src/Table/plugins/rowStatus/useTableRowStatus.test.tsx +0 -519
  1602. package/src/Table/plugins/selection/useTableSelection-perf.test.tsx +0 -258
  1603. package/src/Table/plugins/selection/useTableSelection.test.tsx +0 -424
  1604. package/src/Table/plugins/selection/useTableSelectionState.test.tsx +0 -451
  1605. package/src/Table/plugins/sortable/__tests__/useTableSortable.a11y.test.tsx +0 -174
  1606. package/src/Table/plugins/sortable/__tests__/useTableSortable.a11y.ts +0 -86
  1607. package/src/Table/plugins/sortable/useTableSortable.test.tsx +0 -857
  1608. package/src/Table/plugins/sortable/useTableSortableState.test.tsx +0 -592
  1609. package/src/Table/plugins/stickyColumns/useTableStickyColumns.test.tsx +0 -334
  1610. package/src/Table/plugins/tree/useTableTreeData-perf.test.tsx +0 -163
  1611. package/src/Table/plugins/tree/useTableTreeData.test.tsx +0 -992
  1612. package/src/Table/plugins/tree/useTableTreeState.test.tsx +0 -740
  1613. package/src/Table/plugins/virtualization/useTableVirtualization.spec.md +0 -266
  1614. package/src/Table/tableContextMenu.test.tsx +0 -208
  1615. package/src/Text/Text.spec.md +0 -193
  1616. package/src/Text/Text.test.tsx +0 -405
  1617. package/src/Text/useTruncation.test.tsx +0 -69
  1618. package/src/TextArea/TextArea.fr10.test.tsx +0 -21
  1619. package/src/TextArea/TextArea.spec.md +0 -303
  1620. package/src/TextArea/TextArea.test.tsx +0 -1257
  1621. package/src/TextInput/TextInput.fr10.test.tsx +0 -21
  1622. package/src/TextInput/TextInput.spec.md +0 -260
  1623. package/src/TextInput/TextInput.test.tsx +0 -1259
  1624. package/src/TextInput/__tests__/TextInput.a11y.chromium.spec.ts +0 -214
  1625. package/src/TextInput/__tests__/TextInput.a11y.known-failures.ts +0 -40
  1626. package/src/TextInput/__tests__/TextInput.a11y.renders.tsx +0 -202
  1627. package/src/TextInput/__tests__/TextInput.a11y.states.ts +0 -384
  1628. package/src/TextInput/__tests__/TextInput.a11y.test.tsx +0 -130
  1629. package/src/Thumbnail/Thumbnail.spec.md +0 -244
  1630. package/src/Thumbnail/Thumbnail.test.tsx +0 -384
  1631. package/src/TimeInput/NativeTimeInput.test.tsx +0 -326
  1632. package/src/TimeInput/Presentation.test.tsx +0 -171
  1633. package/src/TimeInput/TimeInput.fr10.test.tsx +0 -312
  1634. package/src/TimeInput/TimeInput.spec.md +0 -273
  1635. package/src/TimeInput/TimeInput.test.tsx +0 -831
  1636. package/src/Timer/Timer.spec.md +0 -215
  1637. package/src/Timer/Timer.test.tsx +0 -302
  1638. package/src/Timestamp/Timestamp.spec.md +0 -252
  1639. package/src/Timestamp/Timestamp.test.tsx +0 -1636
  1640. package/src/Timestamp/tooltipEntries.test.ts +0 -566
  1641. package/src/Toast/Toast.spec.md +0 -300
  1642. package/src/Toast/ToastViewport.modalHost.test.tsx +0 -891
  1643. package/src/Toast/ToastViewport.test.tsx +0 -2333
  1644. package/src/Toast/useToast.test.tsx +0 -258
  1645. package/src/ToggleButton/ToggleButton.spec.md +0 -256
  1646. package/src/ToggleButton/ToggleButton.test.tsx +0 -973
  1647. package/src/ToggleButton/ToggleButtonGroup.spec.md +0 -195
  1648. package/src/ToggleButton/__tests__/ToggleButton.a11y.chromium.spec.ts +0 -177
  1649. package/src/ToggleButton/__tests__/ToggleButton.a11y.renders.tsx +0 -133
  1650. package/src/ToggleButton/__tests__/ToggleButton.a11y.states.ts +0 -167
  1651. package/src/ToggleButton/__tests__/ToggleButton.a11y.test.tsx +0 -103
  1652. package/src/Token/Token.spec.md +0 -271
  1653. package/src/Token/Token.test.tsx +0 -640
  1654. package/src/Token/__tests__/TokenRemoveTarget.a11y.chromium.spec.ts +0 -87
  1655. package/src/Tokenizer/Tokenizer.fr10.test.tsx +0 -28
  1656. package/src/Tokenizer/Tokenizer.props-type.test.tsx +0 -126
  1657. package/src/Tokenizer/Tokenizer.spec.md +0 -601
  1658. package/src/Tokenizer/Tokenizer.ssr.test.tsx +0 -196
  1659. package/src/Tokenizer/Tokenizer.test.tsx +0 -2121
  1660. package/src/Tokenizer/TokenizerBottomSheet.test.tsx +0 -2719
  1661. package/src/Tokenizer/__tests__/TokenizerEndLane.a11y.chromium.spec.ts +0 -505
  1662. package/src/Toolbar/Toolbar.spec.md +0 -228
  1663. package/src/Toolbar/Toolbar.test.tsx +0 -570
  1664. package/src/Toolbar/__tests__/Toolbar.a11y.chromium.spec.ts +0 -164
  1665. package/src/Toolbar/__tests__/Toolbar.a11y.renders.tsx +0 -63
  1666. package/src/Toolbar/__tests__/Toolbar.a11y.states.ts +0 -142
  1667. package/src/Toolbar/__tests__/Toolbar.a11y.test.tsx +0 -126
  1668. package/src/Tooltip/Tooltip.spec.md +0 -267
  1669. package/src/Tooltip/Tooltip.test.tsx +0 -819
  1670. package/src/Tooltip/__tests__/Tooltip.a11y.chromium.spec.ts +0 -130
  1671. package/src/Tooltip/__tests__/Tooltip.a11y.renders.tsx +0 -86
  1672. package/src/Tooltip/__tests__/Tooltip.a11y.states.ts +0 -132
  1673. package/src/Tooltip/__tests__/Tooltip.a11y.test.tsx +0 -126
  1674. package/src/Tooltip/__tests__/TooltipFocusReturn.a11y.chromium.spec.ts +0 -130
  1675. package/src/Tooltip/__tests__/TooltipHoverBridge.a11y.chromium.spec.ts +0 -75
  1676. package/src/Tooltip/__tests__/TooltipTallContent.a11y.browser.spec.ts +0 -673
  1677. package/src/Tooltip/__tests__/TooltipTallContentTracking.a11y.browser.spec.ts +0 -1162
  1678. package/src/Tooltip/useTooltip.test.tsx +0 -483
  1679. package/src/TopNav/TopNav.spec.md +0 -190
  1680. package/src/TopNav/TopNav.test.tsx +0 -836
  1681. package/src/TopNav/TopNavHeading.spec.md +0 -211
  1682. package/src/TopNav/TopNavItem.spec.md +0 -189
  1683. package/src/TopNav/TopNavMegaMenu.reduced-motion.source-build.test.mjs +0 -83
  1684. package/src/TopNav/TopNavMegaMenu.spec.md +0 -190
  1685. package/src/TopNav/TopNavMegaMenu.test.tsx +0 -1132
  1686. package/src/TopNav/TopNavMegaMenuFeaturedCard.spec.md +0 -150
  1687. package/src/TopNav/TopNavMegaMenuItem.spec.md +0 -155
  1688. package/src/TopNav/TopNavMenu.spec.md +0 -202
  1689. package/src/TopNav/TopNavMenu.test.tsx +0 -485
  1690. package/src/TopNav/__tests__/TopNavMobileLongHeading.a11y.chromium.spec.ts +0 -75
  1691. package/src/TreeList/TreeList.spec.md +0 -328
  1692. package/src/TreeList/TreeList.test.tsx +0 -1711
  1693. package/src/TreeList/__tests__/TreeList.a11y.chromium.spec.ts +0 -138
  1694. package/src/TreeList/__tests__/TreeList.a11y.renders.tsx +0 -44
  1695. package/src/TreeList/__tests__/TreeList.a11y.states.ts +0 -164
  1696. package/src/TreeList/__tests__/TreeList.a11y.test.tsx +0 -138
  1697. package/src/TreeList/__tests__/TreeListGuideAlignment.interaction.browser.spec.ts +0 -127
  1698. package/src/TreeList/__tests__/TreeListRowNames.a11y.chromium.spec.ts +0 -83
  1699. package/src/Typeahead/BaseTypeahead.emptyState.a11y.chromium.spec.ts +0 -138
  1700. package/src/Typeahead/BaseTypeahead.spec.md +0 -270
  1701. package/src/Typeahead/BaseTypeahead.test.tsx +0 -553
  1702. package/src/Typeahead/Typeahead.fr10.test.tsx +0 -28
  1703. package/src/Typeahead/Typeahead.spec.md +0 -257
  1704. package/src/Typeahead/Typeahead.test.tsx +0 -2824
  1705. package/src/Typeahead/TypeaheadItem.test.tsx +0 -134
  1706. package/src/VStack/VStack.test.tsx +0 -128
  1707. package/src/VisuallyHidden/VisuallyHidden.spec.md +0 -170
  1708. package/src/VisuallyHidden/VisuallyHidden.test.tsx +0 -115
  1709. package/src/__tests__/BusyOwnerAnnouncement.test.tsx +0 -853
  1710. package/src/__tests__/CardPress.a11y.chromium.spec.ts +0 -353
  1711. package/src/__tests__/DisabledTriggerFocus.a11y.chromium.spec.ts +0 -87
  1712. package/src/__tests__/PressModality.a11y.chromium.spec.ts +0 -392
  1713. package/src/__tests__/PressedState.a11y.chromium.spec.ts +0 -814
  1714. package/src/__tests__/TestIcon.tsx +0 -26
  1715. package/src/__tests__/babelPluginAddExtensions.test.ts +0 -190
  1716. package/src/__tests__/fastRoleQueries.ts +0 -66
  1717. package/src/__tests__/forcedColors.ts +0 -60
  1718. package/src/__tests__/pressState.ts +0 -212
  1719. package/src/__tests__/stubMatchMedia.test.ts +0 -79
  1720. package/src/__tests__/stubMatchMedia.ts +0 -95
  1721. package/src/__tests__/stylexDeclarations.ts +0 -51
  1722. package/src/__tests__/unthemedLength.ts +0 -34
  1723. package/src/docPropLiterals.test.ts +0 -964
  1724. package/src/docPropReferences.test.ts +0 -178
  1725. package/src/docs-script.test.mjs +0 -55
  1726. package/src/gestures/__tests__/LongPressGestureRecognizer.test.ts +0 -141
  1727. package/src/gestures/__tests__/PanGestureRecognizer.test.ts +0 -327
  1728. package/src/gestures/__tests__/TapGestureRecognizer.test.ts +0 -154
  1729. package/src/gestures/__tests__/VelocityTracker.streams.test.ts +0 -243
  1730. package/src/gestures/__tests__/VelocityTracker.test.ts +0 -261
  1731. package/src/gestures/__tests__/arena.test.ts +0 -824
  1732. package/src/gestures/__tests__/arenaContinuous.test.ts +0 -207
  1733. package/src/gestures/__tests__/arenaTapLongPress.test.ts +0 -211
  1734. package/src/gestures/__tests__/fixtures/pointer-streams/README.md +0 -82
  1735. package/src/gestures/__tests__/fixtures/pointer-streams/android-chromium-fling.json +0 -130
  1736. package/src/gestures/__tests__/fixtures/pointer-streams/android-chromium-slow.json +0 -860
  1737. package/src/gestures/__tests__/fixtures/pointer-streams/android-chromium-stop-release.json +0 -357
  1738. package/src/gestures/__tests__/fixtures/pointer-streams/android-firefox-fling.json +0 -66
  1739. package/src/gestures/__tests__/fixtures/pointer-streams/android-firefox-slow.json +0 -268
  1740. package/src/gestures/__tests__/fixtures/pointer-streams/android-firefox-stop-release.json +0 -128
  1741. package/src/gestures/__tests__/fixtures/pointer-streams/capture.html +0 -123
  1742. package/src/gestures/__tests__/fixtures/pointer-streams/desktop-chromium-mouse-fling.json +0 -64
  1743. package/src/gestures/__tests__/fixtures/pointer-streams/desktop-chromium-mouse-slow.json +0 -268
  1744. package/src/gestures/__tests__/fixtures/pointer-streams/desktop-chromium-mouse-stop-release.json +0 -124
  1745. package/src/gestures/__tests__/fixtures/pointer-streams/desktop-chromium-pen-fling.json +0 -64
  1746. package/src/gestures/__tests__/fixtures/pointer-streams/desktop-chromium-pen-slow.json +0 -268
  1747. package/src/gestures/__tests__/fixtures/pointer-streams/desktop-chromium-pen-stop-release.json +0 -124
  1748. package/src/gestures/__tests__/fixtures/pointer-streams/desktop-chromium-touch-fling.json +0 -84
  1749. package/src/gestures/__tests__/fixtures/pointer-streams/desktop-chromium-touch-slow.json +0 -381
  1750. package/src/gestures/__tests__/fixtures/pointer-streams/desktop-chromium-touch-stop-release.json +0 -171
  1751. package/src/gestures/__tests__/fixtures/pointer-streams/ios-safari-fling.json +0 -45
  1752. package/src/gestures/__tests__/fixtures/pointer-streams/ios-safari-slow.json +0 -101
  1753. package/src/gestures/__tests__/fixtures/pointer-streams/ios-safari-stop-release.json +0 -130
  1754. package/src/gestures/__tests__/harness.ts +0 -204
  1755. package/src/hooks/__tests__/MenuPressShadowRoot.a11y.chromium.spec.ts +0 -144
  1756. package/src/hooks/__tests__/menuLinkClicks.ts +0 -71
  1757. package/src/hooks/actionGroupTracker.exports.test.ts +0 -28
  1758. package/src/hooks/actionGroupTracker.test.ts +0 -510
  1759. package/src/hooks/computeOverflow.test.ts +0 -422
  1760. package/src/hooks/deprecatedApis.public.test.ts +0 -33
  1761. package/src/hooks/menuPressGesture.test.ts +0 -253
  1762. package/src/hooks/scrollKeyboardDelegation.test.ts +0 -155
  1763. package/src/hooks/scrollbarGutter.test.ts +0 -167
  1764. package/src/hooks/useAnnounce.modal.test.tsx +0 -1291
  1765. package/src/hooks/useAnnounce.test.tsx +0 -293
  1766. package/src/hooks/useAnnounceRenderedText.adopters.test.tsx +0 -226
  1767. package/src/hooks/useAutoMediaMode.test.ts +0 -109
  1768. package/src/hooks/useBusyAnnouncement.adopters.test.tsx +0 -69
  1769. package/src/hooks/useBusyAnnouncement.test.tsx +0 -112
  1770. package/src/hooks/useClickableContainer.test.tsx +0 -236
  1771. package/src/hooks/useClipboard.test.tsx +0 -151
  1772. package/src/hooks/useContainerReveal.test.tsx +0 -163
  1773. package/src/hooks/useDevWarning.test.tsx +0 -45
  1774. package/src/hooks/useEntryAnimation.ssr.test.tsx +0 -143
  1775. package/src/hooks/useFocusTrap.test.tsx +0 -635
  1776. package/src/hooks/useFocusTrapEscapeShim.test.tsx +0 -166
  1777. package/src/hooks/useGridFocus.test.tsx +0 -165
  1778. package/src/hooks/useHotkeys.test.ts +0 -265
  1779. package/src/hooks/useImageMode.test.ts +0 -133
  1780. package/src/hooks/useInputContainer.test.tsx +0 -180
  1781. package/src/hooks/useInputStatusIcon.test.tsx +0 -240
  1782. package/src/hooks/useIsHydrating.test.tsx +0 -70
  1783. package/src/hooks/useKeyboardHint.test.tsx +0 -92
  1784. package/src/hooks/useListFocus.test.tsx +0 -664
  1785. package/src/hooks/useLongPress.test.tsx +0 -152
  1786. package/src/hooks/useMediaQuery.test.ts +0 -165
  1787. package/src/hooks/useMenuHover.test.tsx +0 -536
  1788. package/src/hooks/useMenuPress.test.tsx +0 -565
  1789. package/src/hooks/useMergedRefs.test.tsx +0 -62
  1790. package/src/hooks/useOverflow.test.ts +0 -504
  1791. package/src/hooks/useRenamedProp.test.tsx +0 -95
  1792. package/src/hooks/useScrollLock.test.ts +0 -248
  1793. package/src/hooks/useScrollOverflow.test.tsx +0 -222
  1794. package/src/hooks/useScrollableArea.test.tsx +0 -836
  1795. package/src/hooks/useStreamingText.test.ts +0 -237
  1796. package/src/hooks/useTreeFocus.test.tsx +0 -351
  1797. package/src/hooks/useTypeahead.test.tsx +0 -351
  1798. package/src/i18n/InternationalizationProvider.spec.md +0 -252
  1799. package/src/i18n/__tests__/InternationalizationProvider.test.tsx +0 -128
  1800. package/src/i18n/__tests__/e2e-pagination.test.tsx +0 -172
  1801. package/src/i18n/__tests__/e2e-powersearch.test.tsx +0 -166
  1802. package/src/i18n/__tests__/getLocaleDirection.test.ts +0 -40
  1803. package/src/i18n/__tests__/resolve.test.ts +0 -325
  1804. package/src/i18n/__tests__/useCollator.test.tsx +0 -115
  1805. package/src/i18n/__tests__/useDirection.test.tsx +0 -66
  1806. package/src/i18n/__tests__/useLocale.test.tsx +0 -52
  1807. package/src/i18n/useTranslator.test.tsx +0 -267
  1808. package/src/inputFontFloor.test.ts +0 -106
  1809. package/src/internal/tokenizer-presentation.test.ts +0 -29
  1810. package/src/internal/touch.test.ts +0 -44
  1811. package/src/motion/__tests__/animatedLayout.interaction.browser.spec.ts +0 -1613
  1812. package/src/motion/__tests__/animatedLayoutAdopters.interaction.browser.spec.ts +0 -217
  1813. package/src/motion/__tests__/animatedLayoutBundle.ts +0 -17
  1814. package/src/motion/animatedLayout.boundary.test.ts +0 -155
  1815. package/src/motion/animatedLayout.swap.test.ts +0 -827
  1816. package/src/motion/animatedLayout.test.ts +0 -1154
  1817. package/src/motion/animatedLayoutAdopters.test.tsx +0 -500
  1818. package/src/motion/animator.test.ts +0 -2653
  1819. package/src/motion/bezier.test.ts +0 -52
  1820. package/src/motion/coast.test.ts +0 -99
  1821. package/src/motion/decay.test.ts +0 -120
  1822. package/src/motion/projection.test.ts +0 -107
  1823. package/src/motion/reducedMotion.test.ts +0 -129
  1824. package/src/motion/reducedMotionPlan.test.ts +0 -182
  1825. package/src/motion/resolveSnapPoint.test.ts +0 -189
  1826. package/src/motion/roles.test.ts +0 -256
  1827. package/src/motion/rubberBand.test.ts +0 -88
  1828. package/src/motion/selectPage.test.ts +0 -31
  1829. package/src/motion/spring.test.ts +0 -650
  1830. package/src/motion/uikit/gestures.test.ts +0 -89
  1831. package/src/motion/uikit/springRows.test.ts +0 -71
  1832. package/src/motion/uikit/uikit.test.ts +0 -364
  1833. package/src/motion/uikit/values.test.ts +0 -110
  1834. package/src/naming.test.ts +0 -44
  1835. package/src/postinstall.test.mjs +0 -216
  1836. package/src/reset.a11y.chromium.spec.ts +0 -238
  1837. package/src/reset.test.ts +0 -205
  1838. package/src/reset.until-found.a11y.browser.spec.ts +0 -76
  1839. package/src/reset.until-found.test.ts +0 -32
  1840. package/src/serverSafeComponents.test.ts +0 -675
  1841. package/src/stylexValidation.source-build.test.mjs +0 -42
  1842. package/src/tailwind-theme.test.ts +0 -153
  1843. package/src/theme/MediaTheme.dom.test.tsx +0 -97
  1844. package/src/theme/Theme.test.tsx +0 -337
  1845. package/src/theme/__tests__/SpacingRootFontSize.a11y.chromium.spec.ts +0 -199
  1846. package/src/theme/contrast.test.ts +0 -94
  1847. package/src/theme/declarationBoundary.test.ts +0 -126
  1848. package/src/theme/defineTheme.test.ts +0 -2028
  1849. package/src/theme/derivedVarRegistry.test.ts +0 -588
  1850. package/src/theme/expandColorScale.test.ts +0 -651
  1851. package/src/theme/expandMotionScale.test.ts +0 -145
  1852. package/src/theme/expandRadiusScale.test.ts +0 -59
  1853. package/src/theme/expandTypeScale.test.ts +0 -351
  1854. package/src/theme/extensibleAxes.test.ts +0 -432
  1855. package/src/theme/generateThemeRules.test.ts +0 -1870
  1856. package/src/theme/hct.test.ts +0 -93
  1857. package/src/theme/onMediaTokens.test.ts +0 -431
  1858. package/src/theme/publicThemeHelperContract.test.ts +0 -67
  1859. package/src/theme/syntax/defineSyntaxTheme.diff.test.ts +0 -91
  1860. package/src/theme/syntax/serverSafeSyntax.test.ts +0 -68
  1861. package/src/theme/syntax/useSyntaxTheme.diff.test.tsx +0 -40
  1862. package/src/theme/themeAdaptations.test.ts +0 -1795
  1863. package/src/theme/themeRegistry.test.ts +0 -59
  1864. package/src/theme/themingTargets.test.ts +0 -589
  1865. package/src/theme/tokenValueCompat.test.ts +0 -204
  1866. package/src/theme/tokens.test.ts +0 -441
  1867. package/src/theme/useTheme.test.tsx +0 -322
  1868. package/src/unicodePropertyEscapes.source-build.test.mjs +0 -69
  1869. package/src/utils/chainEventHandlers.test.ts +0 -39
  1870. package/src/utils/characters.test.ts +0 -141
  1871. package/src/utils/color.test.ts +0 -233
  1872. package/src/utils/composeEventHandlers.test.ts +0 -71
  1873. package/src/utils/customPropertyArmLayering.test.ts +0 -131
  1874. package/src/utils/dateParser.test.ts +0 -402
  1875. package/src/utils/dateTypes.test.ts +0 -40
  1876. package/src/utils/devWarning.test.ts +0 -56
  1877. package/src/utils/edgeAutoscroll.test.ts +0 -192
  1878. package/src/utils/focusReturn.test.ts +0 -119
  1879. package/src/utils/getKey.test.ts +0 -25
  1880. package/src/utils/hitArea.test.ts +0 -628
  1881. package/src/utils/ime.test.ts +0 -32
  1882. package/src/utils/inputAria.test.ts +0 -39
  1883. package/src/utils/interactionModality.test.ts +0 -100
  1884. package/src/utils/isApplePlatform.test.ts +0 -61
  1885. package/src/utils/mergeProps.test.ts +0 -166
  1886. package/src/utils/mergeRefs.test.ts +0 -48
  1887. package/src/utils/parseStyleKey.test.ts +0 -56
  1888. package/src/utils/plainDate.test.ts +0 -848
  1889. package/src/utils/pressFeedback.test.ts +0 -874
  1890. package/src/utils/pressGesture.test.ts +0 -323
  1891. package/src/utils/pressPaintSource.test.ts +0 -65
  1892. package/src/utils/pressableCoverage.test.ts +0 -192
  1893. package/src/utils/safeUrl.test.ts +0 -101
  1894. package/src/utils/sharedMutationObserver.test.ts +0 -53
  1895. package/src/utils/sharedResizeObserver.test.ts +0 -283
  1896. package/src/utils/themeProps.test.ts +0 -62
  1897. package/src/utils/timeParser.test.ts +0 -295
  1898. package/src/utils/touchPresentation.test.ts +0 -323
@@ -1,1870 +0,0 @@
1
- // Copyright (c) Meta Platforms, Inc. and affiliates.
2
-
3
- /**
4
- * @file generateThemeRules.test.ts
5
- * Tests that shared root, adaptation, and media-surface lowering produces
6
- * correct, consistently ordered CSS for both runtime and build paths.
7
- */
8
-
9
- import {describe, it, expect, vi} from 'vitest';
10
- import {
11
- defineTheme,
12
- generateAdaptationCSS,
13
- generateThemeCSS,
14
- generateOnMediaCSS,
15
- generateThemeRules,
16
- type DefinedTheme,
17
- } from './index';
18
-
19
- function topLevelCSSBlocks(css: string): string[] {
20
- const blocks: string[] = [];
21
- let depth = 0;
22
- let start = -1;
23
-
24
- for (let index = 0; index < css.length; index++) {
25
- const character = css[index];
26
- if (start === -1) {
27
- if (/\s/.test(character)) {
28
- continue;
29
- }
30
- start = index;
31
- }
32
-
33
- if (character === '{') {
34
- depth++;
35
- } else if (character === '}') {
36
- depth--;
37
- if (depth === 0) {
38
- blocks.push(css.slice(start, index + 1));
39
- start = -1;
40
- }
41
- }
42
- }
43
-
44
- return blocks;
45
- }
46
-
47
- const defaultInput = {
48
- name: 'default',
49
- typography: {scale: {base: 14, ratio: 1.2}},
50
- tokens: {},
51
- components: {
52
- button: {
53
- 'variant:secondary': {
54
- backgroundColor:
55
- 'light-dark(rgba(5, 54, 89, 0.1), rgba(223, 226, 229, 0.2))',
56
- },
57
- },
58
- },
59
- };
60
-
61
- describe('focus outline tokens', () => {
62
- it('emits a focus ring override into the theme scope', () => {
63
- const theme = defineTheme({
64
- name: 'brand',
65
- tokens: {
66
- '--focus-outline-color': '#FF00FF',
67
- '--focus-outline-width': '4px',
68
- },
69
- });
70
-
71
- const {component} = generateThemeCSS(theme);
72
-
73
- expect(component).toContain('--focus-outline-color: #FF00FF;');
74
- expect(component).toContain('--focus-outline-width: 4px;');
75
- });
76
- });
77
-
78
- describe('generateThemeRules', () => {
79
- const theme = defineTheme(defaultInput);
80
- const rules = generateThemeRules(theme);
81
-
82
- it('produces an array of CSS rule strings', () => {
83
- expect(Array.isArray(rules)).toBe(true);
84
- expect(rules.length).toBeGreaterThan(0);
85
- rules.forEach(r => expect(typeof r).toBe('string'));
86
- });
87
-
88
- // --- Token block ---
89
-
90
- it('includes :scope token block with type scale tokens', () => {
91
- const scopeRule = rules.find(r => r.includes(':scope'));
92
- expect(scopeRule).toBeDefined();
93
- // Raw size tokens are rem values
94
- expect(scopeRule).toContain('--font-size-base: 0.875rem');
95
- expect(scopeRule).toContain('--font-size-2xl: 1.5rem');
96
- // Semantic tokens are var() refs
97
- expect(scopeRule).toContain('--text-heading-1-size: var(--font-size-2xl)');
98
- expect(scopeRule).toContain('--text-heading-4-size: var(--font-size-base)');
99
- expect(scopeRule).toContain('--text-body-size: var(--font-size-base)');
100
- expect(scopeRule).toContain('--text-supporting-size: var(--font-size-sm)');
101
- });
102
-
103
- it('emits raw size tokens in rem', () => {
104
- const scopeRule = rules.find(r => r.includes(':scope'))!;
105
- // Raw tokens (--font-size-4xs through --font-size-4xl) should be in rem
106
- const rawSizeTokens = [
107
- '--font-size-4xs',
108
- '--font-size-3xs',
109
- '--font-size-2xs',
110
- '--font-size-xs',
111
- '--font-size-sm',
112
- '--font-size-base',
113
- '--font-size-lg',
114
- '--font-size-xl',
115
- '--font-size-2xl',
116
- '--font-size-3xl',
117
- '--font-size-4xl',
118
- ];
119
- for (const token of rawSizeTokens) {
120
- const match = scopeRule.match(new RegExp(`${token}: ([^;]+)`));
121
- expect(match).not.toBeNull();
122
- expect(match![1]).toMatch(/rem$/);
123
- }
124
- });
125
-
126
- it('emits semantic size tokens as var() refs', () => {
127
- const scopeRule = rules.find(r => r.includes(':scope'))!;
128
- const semanticSizeTokens = scopeRule.match(
129
- /--(?:text-heading-\d|text-(?:body|large|label|code|supporting))-size: [^;]+/g,
130
- );
131
- expect(semanticSizeTokens).not.toBeNull();
132
- semanticSizeTokens!.forEach(m => {
133
- expect(m).toContain('var(--font-size-');
134
- });
135
- });
136
-
137
- it('emits line heights as unitless ratios', () => {
138
- const scopeRule = rules.find(r => r.includes(':scope'))!;
139
- const leadingMatches = scopeRule.match(
140
- /--(?:heading|text)-\w+-leading: [^;]+/g,
141
- );
142
- expect(leadingMatches).not.toBeNull();
143
- leadingMatches!.forEach(m => {
144
- expect(m).not.toContain('px');
145
- expect(m).not.toContain('rem');
146
- const val = parseFloat(m.split(': ')[1]);
147
- expect(val).toBeGreaterThan(1);
148
- expect(val).toBeLessThan(2);
149
- });
150
- });
151
-
152
- // --- Component overrides ---
153
-
154
- it('includes data-level rules on the stable heading target for all 6 levels', () => {
155
- for (let level = 1; level <= 6; level++) {
156
- const rule = rules.find(r =>
157
- r.includes(`.astryx-heading[data-level="${level}"]`),
158
- );
159
- expect(rule).toBeDefined();
160
- expect(rule).toContain('font-family');
161
- expect(rule).toContain(`var(--text-heading-${level}-size)`);
162
- expect(rule).toContain(`var(--text-heading-${level}-weight)`);
163
- expect(rule).toContain(`var(--text-heading-${level}-leading)`);
164
- }
165
- });
166
-
167
- it('includes .astryx-text.* rules for all 5 types', () => {
168
- for (const type of ['body', 'large', 'label', 'code', 'supporting']) {
169
- const rule = rules.find(r =>
170
- r.includes(`.astryx-text[data-type="${type}"]`),
171
- );
172
- expect(rule).toBeDefined();
173
- expect(rule).toContain(`var(--text-${type}-size)`);
174
- }
175
- });
176
-
177
- it('includes explicit component overrides', () => {
178
- const buttonRule = rules.find(r =>
179
- r.includes('.astryx-button[data-variant="secondary"]'),
180
- );
181
- expect(buttonRule).toBeDefined();
182
- expect(buttonRule).toContain('light-dark(rgba(5, 54, 89, 0.1)');
183
- });
184
-
185
- it('applies pseudo-class suffixes to the canonical selector', () => {
186
- const pseudoTheme = defineTheme({
187
- name: 'pseudo-canonical',
188
- components: {
189
- button: {
190
- base: {
191
- ':hover': {color: 'red'},
192
- },
193
- },
194
- },
195
- });
196
- const pseudoRules = generateThemeRules(pseudoTheme);
197
- expect(
198
- pseudoRules.some(rule => rule.includes('.astryx-button:hover')),
199
- ).toBe(true);
200
- });
201
-
202
- // A theme authoring `:hover` is describing the ENABLED control. Without a
203
- // guard the rule paints a disabled one too, because browsers suppress a
204
- // disabled control's events, not its hover styling — and a theme override
205
- // would then reintroduce, on every component at once, the defect the
206
- // components' own styles were fixed for.
207
- it('keeps a themed :hover off disabled elements', () => {
208
- const hoverTheme = defineTheme({
209
- name: 'hover-guard',
210
- components: {
211
- button: {
212
- base: {
213
- ':hover': {color: 'red'},
214
- ':focus-visible': {outline: '2px solid blue'},
215
- },
216
- },
217
- },
218
- });
219
- const hoverRules = generateThemeRules(hoverTheme);
220
- const hoverRule = hoverRules.find(rule => rule.includes(':hover'));
221
- expect(hoverRule).toBeDefined();
222
- expect(hoverRule).toContain(
223
- '.astryx-button:hover:where(:not(:disabled,[aria-disabled="true"]))',
224
- );
225
- // Every selector in a comma-separated list carries its own guard —
226
- // a trailing pseudo does not distribute over a selector list. (Counted,
227
- // not split: the guard contains a comma of its own.)
228
- const selectorText = String(hoverRule).split('{')[0];
229
- const hovers = selectorText.match(/:hover/g) || [];
230
- const guards = selectorText.match(/:where\(:not\(:disabled/g) || [];
231
- expect(hovers.length).toBeGreaterThan(0);
232
- expect(guards.length).toBe(hovers.length);
233
- // Other pseudo-classes are untouched: a disabled control can still be
234
- // focused (that is the point of aria-disabled), and :focus-visible on it
235
- // is correct.
236
- const focusRule = hoverRules.find(rule => rule.includes(':focus-visible'));
237
- expect(focusRule).toContain('.astryx-button:focus-visible {');
238
- expect(focusRule).not.toContain('aria-disabled');
239
- });
240
-
241
- // --- Prose rules ---
242
-
243
- it('includes prose heading rules linked to semantic tokens', () => {
244
- const h1Rule = rules.find(
245
- r => r.trimStart().startsWith(':where(h1)') || r.includes(':where(h1)'),
246
- );
247
- expect(h1Rule).toBeDefined();
248
- // Keep prose linked to semantic variables so conditional token writes apply
249
- // through CSS without duplicating these selectors inside every media rule.
250
- expect(h1Rule).toContain('var(--text-heading-1-size)');
251
- expect(h1Rule).toContain('var(--text-heading-1-weight)');
252
- // Prose defaults intentionally carry NO block margins: reset.css zeroes
253
- // raw element margins and the Markdown/Heading components own their spacing
254
- // via StyleX (@layer astryx-base). Emitting margins here would re-introduce
255
- // the regression where prose defaults fought component spacing.
256
- expect(h1Rule).not.toContain('margin-block-start');
257
- expect(h1Rule).not.toContain('margin-block-end');
258
- });
259
-
260
- it('includes prose p rule linked to semantic tokens', () => {
261
- const pRule = rules.find(
262
- r => r.trimStart().startsWith(':where(p)') || r.includes(':where(p)'),
263
- );
264
- expect(pRule).toBeDefined();
265
- expect(pRule).toContain('var(--text-body-size)');
266
- expect(pRule).toContain('font-family: var(--font-family-body)');
267
- expect(pRule).toContain('var(--color-text-primary)');
268
- // No margins on the prose paragraph default (see heading rule note).
269
- expect(pRule).not.toContain('margin-block-start');
270
- });
271
-
272
- it('includes prose small, code, hr rules', () => {
273
- expect(rules.some(r => r.includes(':where(small)'))).toBe(true);
274
- expect(rules.some(r => r.includes(':where(code, pre)'))).toBe(true);
275
- expect(rules.some(r => r.includes(':where(hr)'))).toBe(true);
276
- });
277
-
278
- it('applies the theme body font to the scope root', () => {
279
- // Components styled with `font-family: inherit` (SideNav items, Buttons)
280
- // resolve against this; without it they fall back to the browser default
281
- // serif since nothing else sets a page font.
282
- const fontTheme = defineTheme({
283
- name: 'with-body-font',
284
- typography: {body: {family: 'Figtree', fallbacks: 'sans-serif'}},
285
- tokens: {},
286
- components: {},
287
- });
288
- const fontRules = generateThemeRules(fontTheme);
289
- const fontRule = fontRules.find(
290
- r =>
291
- r.includes(':scope') &&
292
- r.includes('font-family: var(--font-family-body)'),
293
- );
294
- expect(fontRule).toBeDefined();
295
- expect(fontRule).toBe(
296
- ' :scope {\n font-family: var(--font-family-body);\n }',
297
- );
298
- });
299
-
300
- it('emits no scope font rule when the theme declares no body font', () => {
301
- // A bare theme contributes no scope rules of its own.
302
- const fontRule = rules.find(
303
- r =>
304
- r.includes(':scope') &&
305
- r.includes('font-family: var(--font-family-body)'),
306
- );
307
- expect(fontRule).toBeUndefined();
308
- });
309
-
310
- // --- Prop-level color overrides ---
311
-
312
- it('includes color prop overrides for text and heading', () => {
313
- expect(
314
- rules.some(r => r.includes('.astryx-text[data-color="primary"]')),
315
- ).toBe(true);
316
- expect(
317
- rules.some(r => r.includes('.astryx-text[data-color="secondary"]')),
318
- ).toBe(true);
319
- expect(
320
- rules.some(r => r.includes('.astryx-heading[data-color="primary"]')),
321
- ).toBe(true);
322
- expect(
323
- rules.some(r => r.includes('.astryx-heading[data-color="disabled"]')),
324
- ).toBe(true);
325
- expect(
326
- rules.some(r => r.includes('.astryx-text[data-color="active"]')),
327
- ).toBe(false);
328
- expect(
329
- rules.some(r => r.includes('.astryx-text[data-color="accent"]')),
330
- ).toBe(true);
331
- });
332
-
333
- // --- Size-prop overrides (so `size` beats a themed `type`) ---
334
-
335
- it('emits Text size-prop font-size overrides in the same layer as type rules', () => {
336
- // Digit-leading sizes are prefixed (size-2xs); word sizes stay bare.
337
- const sizeRule = rules.find(
338
- r =>
339
- r.includes('.astryx-text[data-size="2xs"]') && r.includes('font-size'),
340
- );
341
- expect(sizeRule).toBeDefined();
342
- expect(sizeRule).toContain('var(--font-size-2xs)');
343
-
344
- // `xsm` maps to the --font-size-xs token (matches sizeStyles).
345
- const xsmRule = rules.find(r =>
346
- r.includes('.astryx-text[data-size="xsm"]'),
347
- );
348
- expect(xsmRule).toBeDefined();
349
- expect(xsmRule).toContain('var(--font-size-xs)');
350
-
351
- // Overrides set only font-size — line-height/family come from `type`.
352
- expect(xsmRule).not.toContain('line-height');
353
- });
354
-
355
- it('emits a size override for every TextSize value', () => {
356
- const sizes = [
357
- 'size-4xs',
358
- 'size-3xs',
359
- 'size-2xs',
360
- 'xsm',
361
- 'sm',
362
- 'base',
363
- 'lg',
364
- 'xl',
365
- 'size-2xl',
366
- 'size-3xl',
367
- 'size-4xl',
368
- ];
369
- for (const cls of sizes) {
370
- expect(
371
- rules.some(
372
- r =>
373
- r.includes(
374
- `.astryx-text[data-size="${cls.replace(/^size-/, '')}"]`,
375
- ) && r.includes('font-size'),
376
- ),
377
- ).toBe(true);
378
- }
379
- });
380
-
381
- it('orders size overrides after the themed type font-size rules', () => {
382
- // Source order breaks specificity ties within a layer, so the size
383
- // override must come after the `.astryx-text.<type>` type rule.
384
- const typeIdx = rules.findIndex(
385
- r =>
386
- r.includes('.astryx-text[data-type="supporting"]') &&
387
- r.includes('font-size'),
388
- );
389
- const sizeIdx = rules.findIndex(
390
- r =>
391
- r.includes('.astryx-text[data-size="2xs"]') && r.includes('font-size'),
392
- );
393
- expect(typeIdx).toBeGreaterThanOrEqual(0);
394
- expect(sizeIdx).toBeGreaterThan(typeIdx);
395
- });
396
-
397
- // --- Consistency ---
398
-
399
- it('generateThemeCSS returns prose and component blocks with @scope', () => {
400
- const {prose, component} = generateThemeCSS(theme);
401
- const combined = prose + component;
402
- expect(combined).toContain('@scope ([data-astryx-theme="default"])');
403
- expect(combined).toContain('to ([data-astryx-theme])');
404
- // Every rule from generateThemeRules should appear in one of the blocks
405
- for (const rule of rules) {
406
- expect(combined).toContain(rule);
407
- }
408
- });
409
-
410
- it('routes Text size overrides into the component (astryx-theme) block', () => {
411
- // The size override only beats a themed type if it lands in the same
412
- // layer as the type rules (astryx-theme / component block), not the
413
- // reset-tier prose block.
414
- const {prose, component} = generateThemeCSS(theme);
415
- expect(component).toContain('.astryx-text[data-size="2xs"]');
416
- expect(component).toContain('.astryx-text[data-size="xsm"]');
417
- expect(prose).not.toContain('.astryx-text[data-size="2xs"]');
418
- });
419
- });
420
-
421
- describe('generateThemeRules with weight overrides', () => {
422
- const theme = defineTheme({
423
- name: 'custom-weights',
424
- typography: {
425
- scale: {base: 14, ratio: 1.2},
426
- heading: {weights: {3: 'bold'}},
427
- },
428
- tokens: {},
429
- components: {},
430
- });
431
- const rules = generateThemeRules(theme);
432
-
433
- it('reflects weight override in tokens', () => {
434
- const scopeRule = rules.find(r => r.includes(':scope'))!;
435
- expect(scopeRule).toContain(
436
- '--text-heading-3-weight: var(--font-weight-bold)',
437
- );
438
- // Other levels keep default
439
- expect(scopeRule).toContain(
440
- '--text-heading-1-weight: var(--font-weight-semibold)',
441
- );
442
- });
443
-
444
- it('keeps prose h3 linked to the semantic weight token', () => {
445
- const h3Rule = rules.find(
446
- r => r.trimStart().startsWith(':where(h3)') || r.includes(':where(h3)'),
447
- );
448
- expect(h3Rule).toBeDefined();
449
- expect(h3Rule).toContain('var(--text-heading-3-weight)');
450
- });
451
- });
452
-
453
- describe('generateThemeRules with an explicit Heading weight prop', () => {
454
- const theme = defineTheme({
455
- name: 'custom-heading-type',
456
- components: {
457
- heading: {
458
- 'type:hero': {
459
- fontSize: '4rem',
460
- fontWeight: 'var(--font-weight-normal)',
461
- },
462
- },
463
- },
464
- });
465
- const rules = generateThemeRules(theme);
466
-
467
- it('emits named weight rules after the custom type default', () => {
468
- const typeIndex = rules.findIndex(rule =>
469
- rule.includes('.astryx-heading[data-type="hero"]'),
470
- );
471
- const boldIndex = rules.findIndex(rule =>
472
- rule.includes('.astryx-heading[data-weight="bold"]'),
473
- );
474
-
475
- expect(typeIndex).toBeGreaterThanOrEqual(0);
476
- expect(boldIndex).toBeGreaterThan(typeIndex);
477
- expect(rules[boldIndex]).toContain('font-weight: var(--font-weight-bold)');
478
- });
479
-
480
- it('keeps explicit weight rules in the component theme layer', () => {
481
- const {component, prose} = generateThemeCSS(theme);
482
- expect(component).toContain('.astryx-heading[data-weight="bold"]');
483
- expect(prose).not.toContain('.astryx-heading[data-weight="bold"]');
484
- });
485
-
486
- it('keeps a targeted theme weight rule authoritative', () => {
487
- const authored = defineTheme({
488
- name: 'authored-heading-weight',
489
- components: {
490
- heading: {
491
- 'weight:bold': {fontWeight: '900'},
492
- 'type:hero': {fontWeight: 'var(--font-weight-normal)'},
493
- },
494
- },
495
- });
496
- const rules = generateThemeRules(authored);
497
- const typeIndex = rules.findIndex(rule =>
498
- rule.includes('.astryx-heading[data-type="hero"]'),
499
- );
500
- const boldRules = rules.filter(rule =>
501
- rule.includes('.astryx-heading[data-weight="bold"]'),
502
- );
503
- const lastBoldIndex = rules.lastIndexOf(boldRules.at(-1) ?? '');
504
-
505
- expect(boldRules.at(-1)).toContain('font-weight: 900');
506
- expect(boldRules.at(-1)).not.toContain('var(--font-weight-bold)');
507
- expect(lastBoldIndex).toBeGreaterThan(typeIndex);
508
- });
509
-
510
- it('does not let a combined selector suppress the generic weight override', () => {
511
- const authored = defineTheme({
512
- name: 'combined-heading-weight',
513
- components: {
514
- heading: {
515
- 'type:hero': {fontWeight: 'var(--font-weight-normal)'},
516
- 'type:hero+weight:bold': {fontWeight: '900'},
517
- },
518
- },
519
- });
520
- const rules = generateThemeRules(authored);
521
-
522
- expect(
523
- rules.some(
524
- rule =>
525
- rule.includes('.astryx-heading[data-weight="bold"]') &&
526
- rule.includes('font-weight: var(--font-weight-bold)'),
527
- ),
528
- ).toBe(true);
529
- });
530
-
531
- it('fills in font weight when a standalone weight rule only styles another property', () => {
532
- const authored = defineTheme({
533
- name: 'partial-heading-weight',
534
- components: {
535
- heading: {
536
- 'type:hero': {fontWeight: 'var(--font-weight-normal)'},
537
- 'weight:bold': {color: 'red'},
538
- },
539
- },
540
- });
541
- const rules = generateThemeRules(authored);
542
-
543
- expect(
544
- rules.some(
545
- rule =>
546
- rule.includes('.astryx-heading[data-weight="bold"]') &&
547
- rule.includes('font-weight: var(--font-weight-bold)'),
548
- ),
549
- ).toBe(true);
550
- });
551
-
552
- it('re-emits explicit weight overrides after media-specific type rules', () => {
553
- const themed = defineTheme({
554
- name: 'media-heading-weight',
555
- components: {
556
- heading: {
557
- 'weight:bold': {fontWeight: '900'},
558
- },
559
- },
560
- onDark: {
561
- components: {
562
- heading: {
563
- 'weight:bold': {fontWeight: '800'},
564
- 'type:hero': {fontWeight: '350'},
565
- },
566
- },
567
- },
568
- });
569
- const css = generateOnMediaCSS(themed);
570
- const typeIndex = css.indexOf('.astryx-heading[data-type="hero"]');
571
- const boldIndex = css.lastIndexOf('.astryx-heading[data-weight="bold"]');
572
-
573
- expect(typeIndex).toBeGreaterThanOrEqual(0);
574
- expect(boldIndex).toBeGreaterThan(typeIndex);
575
- expect(css.slice(boldIndex)).toContain('font-weight: 800');
576
- });
577
-
578
- it('carries an authored main weight past a media-specific type rule', () => {
579
- const themed = defineTheme({
580
- name: 'inherited-media-heading-weight',
581
- components: {
582
- heading: {
583
- 'weight:bold': {fontWeight: '900'},
584
- },
585
- },
586
- onDark: {
587
- components: {
588
- heading: {
589
- 'type:hero': {fontWeight: '350'},
590
- },
591
- },
592
- },
593
- });
594
- const css = generateOnMediaCSS(themed);
595
- const typeIndex = css.indexOf('.astryx-heading[data-type="hero"]');
596
- const boldIndex = css.lastIndexOf('.astryx-heading[data-weight="bold"]');
597
-
598
- expect(typeIndex).toBeGreaterThanOrEqual(0);
599
- expect(boldIndex).toBeGreaterThan(typeIndex);
600
- expect(css.slice(boldIndex)).toContain('font-weight: 900');
601
- });
602
-
603
- it('scopes Text color and size guards after each media-surface type rule', () => {
604
- const themed = defineTheme({
605
- name: 'media-text-prop-guards',
606
- onDark: {
607
- components: {
608
- text: {'type:large': {color: '#fff', fontSize: '4rem'}},
609
- },
610
- },
611
- onLight: {
612
- components: {
613
- text: {'type:body': {color: '#000', fontSize: '0.75rem'}},
614
- },
615
- },
616
- });
617
- const css = generateOnMediaCSS(themed);
618
-
619
- for (const [surface, type] of [
620
- ['dark', 'large'],
621
- ['light', 'body'],
622
- ] as const) {
623
- const surfacePrefix = `:is([data-astryx-media="${surface}"])`;
624
- const typeSelector = `${surfacePrefix} :is(.astryx-text[data-type="${type}"])`;
625
- const colorSelector = `${surfacePrefix} :is(.astryx-text[data-color="primary"])`;
626
- const sizeSelector = `${surfacePrefix} :is(.astryx-text[data-size="sm"])`;
627
- const typeIndex = css.indexOf(typeSelector);
628
-
629
- expect(typeIndex).toBeGreaterThanOrEqual(0);
630
- expect(css).toContain(
631
- `${colorSelector} { color: var(--color-text-primary); }`,
632
- );
633
- expect(css).toContain(
634
- `${sizeSelector} { font-size: var(--font-size-sm); }`,
635
- );
636
- expect(css.indexOf(colorSelector)).toBeGreaterThan(typeIndex);
637
- expect(css.indexOf(sizeSelector)).toBeGreaterThan(typeIndex);
638
- }
639
- });
640
-
641
- it('keeps a coarse-only weight out of a later fine-only level block', () => {
642
- const themed = defineTheme({
643
- name: 'exclusive-adapted-heading-weight',
644
- adaptations: {
645
- rules: [
646
- {
647
- when: {pointer: 'coarse'},
648
- value: {
649
- components: {
650
- heading: {'weight:bold': {fontWeight: '800'}},
651
- },
652
- },
653
- },
654
- {
655
- when: {pointer: 'fine'},
656
- value: {
657
- components: {
658
- heading: {'level:2': {fontWeight: '300'}},
659
- },
660
- },
661
- },
662
- ],
663
- },
664
- });
665
- const blocks = topLevelCSSBlocks(generateAdaptationCSS(themed).component);
666
- const fineBlock = blocks.find(block =>
667
- block.startsWith('@media (pointer: fine)'),
668
- );
669
- const rootGuard = blocks.find(block => block.startsWith('@scope '));
670
-
671
- expect(fineBlock).toContain('.astryx-heading[data-level="2"]');
672
- expect(fineBlock).not.toContain('font-weight: 800');
673
- expect(rootGuard).toContain(
674
- '.astryx-heading[data-weight="normal"] { font-weight: var(--font-weight-normal); }',
675
- );
676
- expect(rootGuard).toContain(
677
- '.astryx-heading[data-weight="medium"] { font-weight: var(--font-weight-medium); }',
678
- );
679
- expect(rootGuard).toContain(
680
- '.astryx-heading[data-weight="semibold"] { font-weight: var(--font-weight-semibold); }',
681
- );
682
- expect(rootGuard).toContain(
683
- '.astryx-heading[data-weight="bold"] { font-weight: var(--font-weight-bold); }',
684
- );
685
- expect(blocks.indexOf(rootGuard!)).toBeGreaterThan(
686
- blocks.indexOf(fineBlock!),
687
- );
688
-
689
- const weight800Blocks = blocks.filter(block =>
690
- block.includes('font-weight: 800'),
691
- );
692
- expect(weight800Blocks).toHaveLength(2);
693
- expect(
694
- weight800Blocks.every(block =>
695
- block.startsWith('@media (pointer: coarse)'),
696
- ),
697
- ).toBe(true);
698
- });
699
-
700
- it('keeps a coarse weight above a later broad level only when coarse matches', () => {
701
- const themed = defineTheme({
702
- name: 'broad-adapted-heading-level',
703
- adaptations: {
704
- rules: [
705
- {
706
- when: {pointer: 'coarse'},
707
- value: {
708
- components: {
709
- heading: {'weight:bold': {fontWeight: '800'}},
710
- },
711
- },
712
- },
713
- {
714
- when: {contrast: 'more'},
715
- value: {
716
- components: {
717
- heading: {'level:2': {fontWeight: '300'}},
718
- },
719
- },
720
- },
721
- ],
722
- },
723
- });
724
- const blocks = topLevelCSSBlocks(generateAdaptationCSS(themed).component);
725
- const broadLevelBlock = blocks.find(
726
- block =>
727
- block.startsWith('@media (prefers-contrast: more)') &&
728
- block.includes('.astryx-heading[data-level="2"]'),
729
- );
730
- const rootGuard = blocks.find(block => block.startsWith('@scope '));
731
- const coarseGuard = blocks
732
- .filter(block => block.startsWith('@media (pointer: coarse)'))
733
- .at(-1);
734
-
735
- expect(broadLevelBlock).not.toContain('font-weight: 800');
736
- expect(rootGuard).toContain(
737
- '.astryx-heading[data-weight="bold"] { font-weight: var(--font-weight-bold); }',
738
- );
739
- expect(coarseGuard).toContain(
740
- '.astryx-heading[data-weight="bold"] { font-weight: 800; }',
741
- );
742
- expect(blocks.indexOf(rootGuard!)).toBeGreaterThan(
743
- blocks.indexOf(broadLevelBlock!),
744
- );
745
- expect(blocks.indexOf(coarseGuard!)).toBeGreaterThan(
746
- blocks.indexOf(rootGuard!),
747
- );
748
- });
749
-
750
- it('keeps authored order for two co-matching weight writes', () => {
751
- const themed = defineTheme({
752
- name: 'ordered-adapted-heading-weight',
753
- adaptations: {
754
- rules: [
755
- {
756
- when: {pointer: 'coarse'},
757
- value: {
758
- components: {
759
- heading: {'weight:bold': {fontWeight: '800'}},
760
- },
761
- },
762
- },
763
- {
764
- when: {contrast: 'more'},
765
- value: {
766
- components: {
767
- heading: {'weight:bold': {fontWeight: '700'}},
768
- },
769
- },
770
- },
771
- ],
772
- },
773
- });
774
- const blocks = topLevelCSSBlocks(generateAdaptationCSS(themed).component);
775
- const rootGuard = blocks.find(block => block.startsWith('@scope '));
776
- const coarseGuard = blocks
777
- .filter(block => block.startsWith('@media (pointer: coarse)'))
778
- .at(-1);
779
- const contrastGuard = blocks
780
- .filter(block => block.startsWith('@media (prefers-contrast: more)'))
781
- .at(-1);
782
-
783
- expect(coarseGuard).toContain('font-weight: 800');
784
- expect(contrastGuard).toContain('font-weight: 700');
785
- expect(blocks.indexOf(coarseGuard!)).toBeGreaterThan(
786
- blocks.indexOf(rootGuard!),
787
- );
788
- expect(blocks.indexOf(contrastGuard!)).toBeGreaterThan(
789
- blocks.indexOf(coarseGuard!),
790
- );
791
- });
792
-
793
- it('uses a root-customized weight as the adaptation fallback', () => {
794
- const themed = defineTheme({
795
- name: 'root-customized-adapted-heading-weight',
796
- components: {
797
- heading: {'weight:bold': {fontWeight: '900'}},
798
- },
799
- adaptations: {
800
- rules: [
801
- {
802
- when: {pointer: 'fine'},
803
- value: {
804
- components: {
805
- heading: {'level:2': {fontWeight: '300'}},
806
- },
807
- },
808
- },
809
- ],
810
- },
811
- });
812
- const blocks = topLevelCSSBlocks(generateAdaptationCSS(themed).component);
813
- const fineBlock = blocks.find(block =>
814
- block.startsWith('@media (pointer: fine)'),
815
- );
816
- const rootGuard = blocks.find(block => block.startsWith('@scope '));
817
-
818
- expect(fineBlock).toContain('.astryx-heading[data-level="2"]');
819
- expect(rootGuard).toContain(
820
- '.astryx-heading[data-weight="bold"] { font-weight: 900; }',
821
- );
822
- expect(blocks.indexOf(rootGuard!)).toBeGreaterThan(
823
- blocks.indexOf(fineBlock!),
824
- );
825
- });
826
-
827
- it('keeps a single rule weight above its own later type write', () => {
828
- const themed = defineTheme({
829
- name: 'single-adapted-heading-weight',
830
- adaptations: {
831
- rules: [
832
- {
833
- when: {pointer: 'coarse'},
834
- value: {
835
- components: {
836
- heading: {
837
- 'weight:bold': {fontWeight: '800'},
838
- 'type:hero': {fontWeight: '300'},
839
- },
840
- },
841
- },
842
- },
843
- ],
844
- },
845
- });
846
- const blocks = topLevelCSSBlocks(generateAdaptationCSS(themed).component);
847
- const coarseBlocks = blocks.filter(block =>
848
- block.startsWith('@media (pointer: coarse)'),
849
- );
850
- const rootGuard = blocks.find(block => block.startsWith('@scope '));
851
-
852
- expect(coarseBlocks).toHaveLength(2);
853
- expect(coarseBlocks[0]).toContain('.astryx-heading[data-type="hero"]');
854
- expect(rootGuard).toContain(
855
- '.astryx-heading[data-weight="bold"] { font-weight: var(--font-weight-bold); }',
856
- );
857
- expect(coarseBlocks[1]).toContain(
858
- '.astryx-heading[data-weight="bold"] { font-weight: 800; }',
859
- );
860
- expect(blocks.at(-1)).toBe(coarseBlocks[1]);
861
- });
862
-
863
- it('keeps onDark and onLight weight guards after adaptation guards', () => {
864
- const themed = defineTheme({
865
- name: 'surface-adapted-heading-weight',
866
- adaptations: {
867
- rules: [
868
- {
869
- when: {pointer: 'coarse'},
870
- value: {
871
- components: {
872
- heading: {'weight:bold': {fontWeight: '800'}},
873
- },
874
- },
875
- },
876
- ],
877
- },
878
- onDark: {
879
- components: {
880
- heading: {'weight:bold': {fontWeight: '700'}},
881
- },
882
- },
883
- onLight: {
884
- components: {
885
- heading: {'weight:bold': {fontWeight: '600'}},
886
- },
887
- },
888
- });
889
- const css = generateThemeCSS(themed).component;
890
-
891
- expect(css.lastIndexOf('font-weight: 800')).toBeLessThan(
892
- css.lastIndexOf('font-weight: 700'),
893
- );
894
- expect(css.lastIndexOf('font-weight: 700')).toBeLessThan(
895
- css.lastIndexOf('font-weight: 600'),
896
- );
897
- expect(css.slice(css.lastIndexOf('font-weight: 700') - 200)).toContain(
898
- '[data-astryx-media="dark"]',
899
- );
900
- expect(css.slice(css.lastIndexOf('font-weight: 600') - 200)).toContain(
901
- '[data-astryx-media="light"]',
902
- );
903
- });
904
- });
905
-
906
- // =============================================================================
907
- // Derived var expansion
908
- // =============================================================================
909
-
910
- describe('derived var expansion', () => {
911
- it('emits borderRadius AND internal var for card', () => {
912
- const theme = defineTheme({
913
- name: 'test-derived',
914
- components: {
915
- card: {
916
- base: {borderRadius: '32px'},
917
- },
918
- },
919
- });
920
- const rules = generateThemeRules(theme);
921
- const cardRule = rules.find(r => r.includes('.astryx-card'));
922
- expect(cardRule).toBeDefined();
923
- expect(cardRule).toContain('border-radius: 32px');
924
- expect(cardRule).toContain('--_card-radius: 32px');
925
- });
926
-
927
- it('emits borderRadius AND internal var for dropdown-menu', () => {
928
- const theme = defineTheme({
929
- name: 'test-derived-dropdown',
930
- components: {
931
- 'dropdown-menu': {
932
- base: {borderRadius: '16px'},
933
- },
934
- },
935
- });
936
- const rules = generateThemeRules(theme);
937
- const rule = rules.find(r => r.includes('.astryx-dropdown-menu'));
938
- expect(rule).toBeDefined();
939
- expect(rule).toContain('border-radius: 16px');
940
- expect(rule).toContain('--_dropdown-menu-radius: 16px');
941
- });
942
-
943
- it('emits padding AND internal var for dropdown-menu', () => {
944
- const theme = defineTheme({
945
- name: 'test-derived-dropdown-pad',
946
- components: {
947
- 'dropdown-menu': {
948
- base: {padding: '8px'},
949
- },
950
- },
951
- });
952
- const rules = generateThemeRules(theme);
953
- const rule = rules.find(r => r.includes('.astryx-dropdown-menu'));
954
- expect(rule).toBeDefined();
955
- expect(rule).toContain('--_dropdown-menu-padding: 8px');
956
- });
957
-
958
- it('emits paddingInline AND internal inset var for item', () => {
959
- // The inset var is what keeps List's isFullBleed cancel in sync with a
960
- // themed row padding — the padding override alone would move the text
961
- // while the cancel keeps the default width.
962
- const theme = defineTheme({
963
- name: 'test-derived-item',
964
- components: {
965
- item: {
966
- base: {paddingInline: 'var(--spacing-3)'},
967
- 'density:spacious': {paddingInline: 'var(--spacing-4)'},
968
- },
969
- },
970
- });
971
- const rules = generateThemeRules(theme);
972
- const baseRule = rules.find(
973
- r => r.includes('.astryx-item ') || r.includes('.astryx-item {'),
974
- );
975
- expect(baseRule).toBeDefined();
976
- expect(baseRule).toContain('padding-inline: var(--spacing-3)');
977
- expect(baseRule).toContain('--_item-inset-inline: var(--spacing-3)');
978
- const spaciousRule = rules.find(r =>
979
- r.includes('.astryx-item[data-density="spacious"]'),
980
- );
981
- expect(spaciousRule).toBeDefined();
982
- expect(spaciousRule).toContain('--_item-inset-inline: var(--spacing-4)');
983
- });
984
-
985
- it('emits internal vars for chat composer', () => {
986
- const theme = defineTheme({
987
- name: 'test-derived-chat',
988
- components: {
989
- chat: {
990
- base: {borderRadius: '24px', padding: '12px'},
991
- },
992
- },
993
- });
994
- const rules = generateThemeRules(theme);
995
- const rule = rules.find(r => r.includes('.astryx-chat'));
996
- expect(rule).toBeDefined();
997
- expect(rule).toContain('--_chat-composer-radius: 24px');
998
- expect(rule).toContain('--_chat-composer-padding: 12px');
999
- });
1000
-
1001
- it('emits internal var for button borderRadius', () => {
1002
- const theme = defineTheme({
1003
- name: 'test-derived-button',
1004
- components: {
1005
- button: {
1006
- base: {borderRadius: '8px'},
1007
- },
1008
- },
1009
- });
1010
- const rules = generateThemeRules(theme);
1011
- const rule = rules.find(r => r.includes('.astryx-button'));
1012
- expect(rule).toBeDefined();
1013
- expect(rule).toContain('border-radius: 8px');
1014
- expect(rule).toContain('--_button-radius: 8px');
1015
- });
1016
-
1017
- it('emits direct rules for avatar fallback background, color, and weight', () => {
1018
- const theme = defineTheme({
1019
- name: 'test-avatar-fallback',
1020
- components: {
1021
- 'avatar-fallback': {
1022
- base: {
1023
- backgroundColor: 'var(--color-accent-muted)',
1024
- color: 'var(--color-text-secondary)',
1025
- fontWeight: 'var(--font-weight-normal)',
1026
- },
1027
- },
1028
- },
1029
- });
1030
- const rules = generateThemeRules(theme);
1031
- const rule = rules.find(r => r.includes('.astryx-avatar-fallback'));
1032
- expect(rule).toBeDefined();
1033
- expect(rule).toContain('background-color: var(--color-accent-muted)');
1034
- expect(rule).toContain('color: var(--color-text-secondary)');
1035
- expect(rule).toContain('font-weight: var(--font-weight-normal)');
1036
- // These are direct class targets now, not internal derived vars.
1037
- expect(rule).not.toContain('--_avatar-fallback-background');
1038
- expect(rule).not.toContain('--_avatar-fallback-color');
1039
- expect(rule).not.toContain('--_avatar-fallback-font-weight');
1040
- });
1041
-
1042
- it('emits a direct per-size font-size rule for the avatar fallback target', () => {
1043
- const theme = defineTheme({
1044
- name: 'test-avatar-fallback-size',
1045
- components: {
1046
- 'avatar-fallback': {
1047
- 'size:sm': {fontSize: '9px'},
1048
- },
1049
- },
1050
- });
1051
- const rules = generateThemeRules(theme);
1052
- const rule = rules.find(r =>
1053
- r.includes('.astryx-avatar-fallback[data-size="sm"]'),
1054
- );
1055
- expect(rule).toBeDefined();
1056
- expect(rule).toContain('font-size: 9px');
1057
- // Direct class target now — no internal derived var.
1058
- expect(rule).not.toContain('--_avatar-fallback-font-size');
1059
- });
1060
-
1061
- it('does not emit derived vars for components without registry entries', () => {
1062
- const theme = defineTheme({
1063
- name: 'test-no-derived',
1064
- components: {
1065
- badge: {
1066
- base: {borderRadius: '99px'},
1067
- },
1068
- },
1069
- });
1070
- const rules = generateThemeRules(theme);
1071
- const rule = rules.find(r => r.includes('.astryx-badge'));
1072
- expect(rule).toBeDefined();
1073
- expect(rule).toContain('border-radius: 99px');
1074
- // No internal var — badge has no derived registry entry
1075
- expect(rule).not.toContain('--');
1076
- });
1077
-
1078
- it('container expansion still works for card padding', () => {
1079
- const theme = defineTheme({
1080
- name: 'test-container',
1081
- components: {
1082
- card: {
1083
- base: {padding: '20px'},
1084
- },
1085
- },
1086
- });
1087
- const rules = generateThemeRules(theme);
1088
- const rule = rules.find(r => r.includes('.astryx-card'));
1089
- expect(rule).toBeDefined();
1090
- // Container expansion emits --astryx-card-padding token
1091
- expect(rule).toContain('--astryx-card-padding: 20px');
1092
- });
1093
-
1094
- it('handles variant-specific derived vars', () => {
1095
- const theme = defineTheme({
1096
- name: 'test-variant-derived',
1097
- components: {
1098
- card: {
1099
- 'variant:muted': {borderRadius: '16px'},
1100
- },
1101
- },
1102
- });
1103
- const rules = generateThemeRules(theme);
1104
- const rule = rules.find(r =>
1105
- r.includes('.astryx-card[data-variant="muted"]'),
1106
- );
1107
- expect(rule).toBeDefined();
1108
- expect(rule).toContain('border-radius: 16px');
1109
- expect(rule).toContain('--_card-radius: 16px');
1110
- });
1111
-
1112
- it('replaces paddingInline with the var for textarea (no raw property)', () => {
1113
- const theme = defineTheme({
1114
- name: 'test-derived-textarea',
1115
- components: {
1116
- 'text-area': {
1117
- base: {paddingInline: 'var(--app-input-padding-x)'},
1118
- },
1119
- },
1120
- });
1121
- const rules = generateThemeRules(theme);
1122
- const rule = rules.find(r => r.includes('.astryx-text-area'));
1123
- expect(rule).toBeDefined();
1124
- // Value flows to the inner <textarea> via the var…
1125
- expect(rule).toContain(
1126
- '--_textarea-inline-padding: var(--app-input-padding-x)',
1127
- );
1128
- // …and must NOT land on the flush wrapper, which would re-inset the
1129
- // full-bleed textarea and push the native resize grip off the corner.
1130
- expect(rule).not.toContain('padding-inline: var(--app-input-padding-x)');
1131
- });
1132
-
1133
- it('lowers onDark and onLight text-area paddingInline to the adaptation leaf', () => {
1134
- const theme = defineTheme({
1135
- name: 'test-media-derived-text-area',
1136
- adaptations: {
1137
- rules: [
1138
- {
1139
- when: {contrast: 'more'},
1140
- value: {
1141
- components: {
1142
- 'text-area': {base: {paddingInline: '12px'}},
1143
- },
1144
- },
1145
- },
1146
- ],
1147
- },
1148
- onDark: {
1149
- components: {
1150
- 'text-area': {base: {paddingInline: '24px'}},
1151
- },
1152
- },
1153
- onLight: {
1154
- components: {
1155
- 'text-area': {base: {paddingInline: '20px'}},
1156
- },
1157
- },
1158
- });
1159
-
1160
- const adaptationCss = generateAdaptationCSS(theme).component;
1161
- const surfaceCss = generateOnMediaCSS(theme);
1162
- expect(adaptationCss).toContain('--_textarea-inline-padding: 12px');
1163
- expect(surfaceCss).toContain('--_textarea-inline-padding: 24px');
1164
- expect(surfaceCss).toContain('--_textarea-inline-padding: 20px');
1165
- expect(surfaceCss).not.toContain('padding-inline: 24px');
1166
- expect(surfaceCss).not.toContain('padding-inline: 20px');
1167
-
1168
- const combinedCss = generateThemeCSS(theme).component;
1169
- expect(
1170
- combinedCss.indexOf('--_textarea-inline-padding: 12px'),
1171
- ).toBeLessThan(combinedCss.lastIndexOf('--_textarea-inline-padding: 24px'));
1172
- expect(
1173
- combinedCss.indexOf('--_textarea-inline-padding: 12px'),
1174
- ).toBeLessThan(combinedCss.lastIndexOf('--_textarea-inline-padding: 20px'));
1175
- });
1176
-
1177
- it('replaces progressbar-mark width/height with vars (no raw properties)', () => {
1178
- const theme = defineTheme({
1179
- name: 'test-derived-progressbar-mark',
1180
- components: {
1181
- 'progress-bar-mark': {
1182
- base: {width: '2px', height: '12px'},
1183
- },
1184
- },
1185
- });
1186
- const rules = generateThemeRules(theme);
1187
- const rule = rules.find(r => r.includes('.astryx-progress-bar-mark'));
1188
- expect(rule).toBeDefined();
1189
- expect(rule).toContain('--_progressbar-mark-width: 2px');
1190
- expect(rule).toContain('--_progressbar-mark-height: 12px');
1191
- // Raw dimensions would be a same-element fight with the mark's StyleX,
1192
- // which an unlayered consumer build wins — the vars have no competitor.
1193
- expect(rule).not.toMatch(/[{;]\s*width: 2px/);
1194
- expect(rule).not.toMatch(/[{;]\s*height: 12px/);
1195
- });
1196
- });
1197
-
1198
- describe('brutalist-style derived expansion', () => {
1199
- it('button borderRadius emits --_button-radius for pill shape', () => {
1200
- const theme = defineTheme({
1201
- name: 'test-brutalist',
1202
- radius: {base: 4, multiplier: 0},
1203
- components: {
1204
- button: {
1205
- base: {borderRadius: '9999px'},
1206
- },
1207
- },
1208
- });
1209
- const rules = generateThemeRules(theme);
1210
- const rule = rules.find(r => r.includes('.astryx-button'));
1211
- expect(rule).toContain('border-radius: 9999px');
1212
- expect(rule).toContain('--_button-radius: 9999px');
1213
- });
1214
-
1215
- it('card padding emits container tokens via derived expansion', () => {
1216
- const theme = defineTheme({
1217
- name: 'test-brutalist-card',
1218
- components: {
1219
- card: {
1220
- base: {padding: '24px'},
1221
- },
1222
- },
1223
- });
1224
- const rules = generateThemeRules(theme);
1225
- const rule = rules.find(r => r.includes('.astryx-card'));
1226
- expect(rule).toBeDefined();
1227
- expect(rule).toContain('--astryx-card-padding: 24px');
1228
- });
1229
-
1230
- it('dropdown-menu borderRadius + padding emit both derived vars', () => {
1231
- const theme = defineTheme({
1232
- name: 'test-brutalist-dropdown',
1233
- components: {
1234
- 'dropdown-menu': {
1235
- base: {borderRadius: '0px', padding: '4px'},
1236
- },
1237
- },
1238
- });
1239
- const rules = generateThemeRules(theme);
1240
- const rule = rules.find(r => r.includes('.astryx-dropdown-menu'));
1241
- expect(rule).toBeDefined();
1242
- expect(rule).toContain('border-radius: 0px');
1243
- expect(rule).toContain('--_dropdown-menu-radius: 0px');
1244
- expect(rule).toContain('--_dropdown-menu-padding: 4px');
1245
- });
1246
- });
1247
-
1248
- describe('physical padding longhands', () => {
1249
- const ruleFor = (
1250
- component: string,
1251
- base: Record<string, string>,
1252
- name = 'test-physical-padding',
1253
- ) =>
1254
- generateThemeRules(
1255
- defineTheme({name, components: {[component]: {base}}}),
1256
- ).find(r => r.includes(`.astryx-${component}`));
1257
-
1258
- // `padding-top`/`padding-bottom` ARE the block edges in every horizontal
1259
- // writing mode, so the expansion can normalize them with no direction
1260
- // assumption. Without that, the padding lands raw on the element and the
1261
- // component's internals — the NumberInput stepper column, container bleed —
1262
- // read the default instead of what the theme set.
1263
- it.each([
1264
- ['paddingTop', {paddingTop: '14px'}, 'block-start'],
1265
- ['paddingBottom', {paddingBottom: '14px'}, 'block-end'],
1266
- ])('routes %s through the container expansion', (_label, base, edge) => {
1267
- const rule = ruleFor('card', base);
1268
- expect(rule).toContain(`--astryx-card-padding-${edge}: 14px`);
1269
- expect(rule).not.toMatch(/[{;]\s*padding-(top|bottom):/);
1270
- });
1271
-
1272
- it('normalizes both block edges together, asymmetrically', () => {
1273
- const rule = ruleFor('number-input', {
1274
- paddingTop: '14px',
1275
- paddingBottom: '6px',
1276
- });
1277
- expect(rule).toContain('--astryx-number-input-padding-block-start: 14px');
1278
- expect(rule).toContain('--astryx-number-input-padding-block-end: 6px');
1279
- });
1280
-
1281
- it.each(['card', 'dialog', 'section', 'number-input'])(
1282
- 'reaches %s, which expands its padding',
1283
- component => {
1284
- expect(ruleFor(component, {paddingTop: '14px'})).toContain(
1285
- `--astryx-${component}-padding-block-start: 14px`,
1286
- );
1287
- },
1288
- );
1289
-
1290
- // THE RTL GUARD. `paddingLeft` is inline-start in LTR and inline-end in RTL,
1291
- // and the tokens are consumed by logical properties, so mapping it would
1292
- // silently move the padding to the other edge in RTL. It stays physical —
1293
- // which is what the author wrote — and does not reach the tokens.
1294
- it('leaves the direction-relative inline pair physical', () => {
1295
- const rule = ruleFor('card', {paddingLeft: '20px', paddingRight: '8px'});
1296
- expect(rule).toContain('padding-left: 20px');
1297
- expect(rule).toContain('padding-right: 8px');
1298
- expect(rule).not.toContain('--astryx-card-padding-inline');
1299
- });
1300
-
1301
- it('expands the block edges while leaving left physical', () => {
1302
- const rule = ruleFor('card', {paddingTop: '14px', paddingLeft: '20px'});
1303
- expect(rule).toContain('--astryx-card-padding-block-start: 14px');
1304
- expect(rule).toContain('padding-left: 20px');
1305
- });
1306
-
1307
- // The shorthand-plus-override case was the worst one: the tokens carried
1308
- // 10px while the element painted 14px on top, so every internal compensated
1309
- // by the wrong amount.
1310
- it('lets a physical longhand override the shorthand per edge', () => {
1311
- const rule = ruleFor('card', {padding: '10px', paddingTop: '14px'});
1312
- expect(rule).toContain('--astryx-card-padding-block-start: 14px');
1313
- expect(rule).toContain('--astryx-card-padding-block-end: 10px');
1314
- expect(rule).toContain('--astryx-card-padding-inline: 10px');
1315
- expect(rule).not.toMatch(/[{;]\s*padding(-top)?:/);
1316
- });
1317
-
1318
- // A `vars` entry carries one value for the whole box, so a single physical
1319
- // edge must not feed it — only the container expansion takes these.
1320
- it('does not feed a single edge to a whole-box derived var', () => {
1321
- const rule = ruleFor('dropdown-menu', {paddingTop: '14px'});
1322
- expect(rule).toContain('padding-top: 14px');
1323
- expect(rule).not.toContain('--_dropdown-menu-padding');
1324
- });
1325
- });
1326
-
1327
- describe('canonical theme targets', () => {
1328
- // Removed aliases still pass through the generic CSS generator, but they no
1329
- // longer receive canonical derived-variable expansion.
1330
- it('expands derived vars only for canonical target keys', () => {
1331
- const rules = (component: string, styles: Record<string, string>) =>
1332
- generateThemeRules(
1333
- defineTheme({
1334
- name: `test-target-${component}`,
1335
- components: {[component]: {base: styles}},
1336
- }),
1337
- ).join('\n');
1338
-
1339
- const hoverCard = rules('hover-card', {borderRadius: '9px'});
1340
- expect(hoverCard).toContain('.astryx-hover-card');
1341
- expect(hoverCard).toContain('--_hovercard-radius: 9px');
1342
- expect(rules('hovercard', {borderRadius: '9px'})).not.toContain(
1343
- '--_hovercard-radius: 9px',
1344
- );
1345
-
1346
- const textArea = rules('text-area', {paddingInline: '11px'});
1347
- expect(textArea).toContain('.astryx-text-area');
1348
- expect(textArea).toContain('--_textarea-inline-padding: 11px');
1349
- expect(rules('textarea', {paddingInline: '11px'})).not.toContain(
1350
- '--_textarea-inline-padding: 11px',
1351
- );
1352
-
1353
- const mark = rules('progress-bar-mark', {width: '3px'});
1354
- expect(mark).toContain('.astryx-progress-bar-mark');
1355
- expect(mark).toContain('--_progressbar-mark-width: 3px');
1356
- expect(rules('progressbar-mark', {width: '3px'})).not.toContain(
1357
- '--_progressbar-mark-width: 3px',
1358
- );
1359
- });
1360
- });
1361
-
1362
- describe('data visualization tokens', () => {
1363
- const scopeBlock = (theme: Parameters<typeof generateThemeRules>[0]) =>
1364
- generateThemeRules(theme).find(r => r.includes(':scope'));
1365
-
1366
- it('leaves canonical defaults out of a theme scope block', () => {
1367
- // A scope block that re-declared them would shadow a parent theme's
1368
- // override in every nested <Theme>, which no other token family does.
1369
- expect(scopeBlock(defineTheme({name: 'data-bare'}))).toBeUndefined();
1370
- });
1371
-
1372
- it("puts only the theme's own data token in its scope block", () => {
1373
- const block = scopeBlock(
1374
- defineTheme({
1375
- name: 'data-override',
1376
- tokens: {'--color-data-categorical-blue': ['#123456', '#654321']},
1377
- }),
1378
- )!;
1379
-
1380
- expect(block).toContain(
1381
- '--color-data-categorical-blue: light-dark(#123456, #654321);',
1382
- );
1383
- expect(block.match(/--color-data-/g)).toHaveLength(1);
1384
- expect(block).not.toContain('--color-data-categorical-orange');
1385
- });
1386
-
1387
- it('keeps canonical defaults out of the theme stylesheet', () => {
1388
- // The public StyleX dataVars group owns canonical CSS defaults; this
1389
- // generator serializes only values explicitly authored by the theme.
1390
- const {component, prose} = generateThemeCSS(
1391
- defineTheme({name: 'data-css'}),
1392
- );
1393
-
1394
- expect(component).not.toContain('--color-data-');
1395
- expect(prose).not.toContain('--color-data-');
1396
- });
1397
-
1398
- it('keeps generateThemeCSS to its two scoped blocks', () => {
1399
- // Canonical defaults come from public StyleX output, not a third theme
1400
- // generator block.
1401
- expect(
1402
- Object.keys(generateThemeCSS(defineTheme({name: 'data-shape'}))).sort(),
1403
- ).toEqual(['component', 'prose']);
1404
- });
1405
- });
1406
-
1407
- describe('declaration assembly keeps values as values', () => {
1408
- /** Run the full runtime generator, collecting every dropped declaration. */
1409
- function generate(theme: DefinedTheme) {
1410
- const diagnostics: string[] = [];
1411
- const {component, prose} = generateThemeCSS(theme, diagnostics);
1412
- return {css: component + prose, component, prose, diagnostics};
1413
- }
1414
-
1415
- /**
1416
- * Every path a consumer-supplied declaration can take into the stylesheet.
1417
- * `build` places `value` on that path; `emitted` is the exact declaration
1418
- * text the path writes for it; `property`/`location` are what a diagnostic
1419
- * for it must carry.
1420
- */
1421
- const paths: {
1422
- label: string;
1423
- property: string;
1424
- location: string;
1425
- build: (value: string) => DefinedTheme;
1426
- emitted: (value: string) => string;
1427
- }[] = [
1428
- {
1429
- label: 'root tokens',
1430
- property: '--color-accent',
1431
- location: 'tokens',
1432
- build: value =>
1433
- defineTheme({name: 'brand', tokens: {'--color-accent': value}}),
1434
- emitted: value => `--color-accent: ${value};`,
1435
- },
1436
- {
1437
- label: 'theme-local tokens',
1438
- property: '--brand-accent',
1439
- location: 'localTokens',
1440
- build: value =>
1441
- defineTheme({name: 'brand', localTokens: {'--brand-accent': value}}),
1442
- emitted: value => `--brand-accent: ${value};`,
1443
- },
1444
- {
1445
- label: 'tokens inherited from a base theme',
1446
- property: '--color-accent',
1447
- location: 'tokens',
1448
- build: value =>
1449
- defineTheme({
1450
- name: 'child',
1451
- extends: defineTheme({
1452
- name: 'base',
1453
- tokens: {'--color-accent': value},
1454
- }),
1455
- }),
1456
- emitted: value => `--color-accent: ${value};`,
1457
- },
1458
- {
1459
- label: 'component variant',
1460
- property: 'background-color',
1461
- location: 'components.button["variant:secondary"]',
1462
- build: value =>
1463
- defineTheme({
1464
- name: 'brand',
1465
- components: {
1466
- button: {'variant:secondary': {backgroundColor: value}},
1467
- },
1468
- }),
1469
- emitted: value => `background-color: ${value};`,
1470
- },
1471
- {
1472
- label: 'component variant inherited from a base theme',
1473
- property: 'background-color',
1474
- location: 'components.button["variant:secondary"]',
1475
- build: value =>
1476
- defineTheme({
1477
- name: 'child',
1478
- extends: defineTheme({
1479
- name: 'base',
1480
- components: {
1481
- button: {'variant:secondary': {backgroundColor: value}},
1482
- },
1483
- }),
1484
- }),
1485
- emitted: value => `background-color: ${value};`,
1486
- },
1487
- {
1488
- label: 'component pseudo block',
1489
- property: 'background-color',
1490
- location: 'components.button["variant:secondary"][":hover"]',
1491
- build: value =>
1492
- defineTheme({
1493
- name: 'brand',
1494
- components: {
1495
- button: {'variant:secondary': {':hover': {backgroundColor: value}}},
1496
- },
1497
- }),
1498
- emitted: value => `background-color: ${value};`,
1499
- },
1500
- {
1501
- label: 'onDark tokens',
1502
- property: '--color-accent',
1503
- location: 'onDark.tokens',
1504
- build: value =>
1505
- defineTheme({
1506
- name: 'brand',
1507
- onDark: {tokens: {'--color-accent': value}},
1508
- }),
1509
- emitted: value => `--color-accent: ${value};`,
1510
- },
1511
- {
1512
- label: 'onLight component variant',
1513
- property: 'background-color',
1514
- location: 'onLight.components.button["variant:secondary"]',
1515
- build: value =>
1516
- defineTheme({
1517
- name: 'brand',
1518
- onLight: {
1519
- components: {
1520
- button: {'variant:secondary': {backgroundColor: value}},
1521
- },
1522
- },
1523
- }),
1524
- emitted: value => `background-color: ${value};`,
1525
- },
1526
- {
1527
- label: 'onDark component pseudo block',
1528
- property: 'background-color',
1529
- location: 'onDark.components.button["variant:secondary"][":hover"]',
1530
- build: value =>
1531
- defineTheme({
1532
- name: 'brand',
1533
- onDark: {
1534
- components: {
1535
- button: {
1536
- 'variant:secondary': {':hover': {backgroundColor: value}},
1537
- },
1538
- },
1539
- },
1540
- }),
1541
- emitted: value => `background-color: ${value};`,
1542
- },
1543
- {
1544
- label: 'adaptation tokens',
1545
- property: '--color-accent',
1546
- location: 'adaptations[0].tokens',
1547
- build: value =>
1548
- defineTheme({
1549
- name: 'brand',
1550
- adaptations: {
1551
- rules: [
1552
- {
1553
- when: {pointer: 'coarse'},
1554
- value: {tokens: {'--color-accent': value}},
1555
- },
1556
- ],
1557
- },
1558
- }),
1559
- emitted: value => `--color-accent: ${value};`,
1560
- },
1561
- {
1562
- label: 'adaptation component variant',
1563
- property: 'background-color',
1564
- location: 'adaptations[1].components.button["variant:secondary"]',
1565
- build: value =>
1566
- defineTheme({
1567
- name: 'brand',
1568
- adaptations: {
1569
- rules: [
1570
- {
1571
- when: {pointer: 'fine'},
1572
- value: {tokens: {'--spacing-4': '12px'}},
1573
- },
1574
- {
1575
- when: {pointer: 'coarse'},
1576
- value: {
1577
- components: {
1578
- button: {'variant:secondary': {backgroundColor: value}},
1579
- },
1580
- },
1581
- },
1582
- ],
1583
- },
1584
- }),
1585
- emitted: value => `background-color: ${value};`,
1586
- },
1587
- ];
1588
-
1589
- /** Valid CSS a browser keeps inside one declaration. */
1590
- const preserved: [string, string][] = [
1591
- ['a color-mix()', 'color-mix(in oklch, #FF00FF 80%, white)'],
1592
- ['a gradient', 'linear-gradient(135deg, #FF00FF 0%, #00FFFF 100%)'],
1593
- ['calc()', 'calc(100% - 24px)'],
1594
- ['light-dark()', 'light-dark(#fff, #111)'],
1595
- ['a quoted font stack', "'Inter Var', ui-sans-serif, system-ui"],
1596
- [
1597
- 'a data: URI (semicolon inside url())',
1598
- 'url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUg==)',
1599
- ],
1600
- ['an uppercase URL()', 'URL(data:image/svg+xml;base64,PHN2Zz4=)'],
1601
- [
1602
- 'a quoted url() carrying a semicolon',
1603
- 'url("data:image/svg+xml;utf8,<svg/>")',
1604
- ],
1605
- ['an escaped identifier', 'Gill\\ Sans, serif'],
1606
- ['a closed comment with a semicolon inside', 'red /* ; } */'],
1607
- ['a semicolon inside a string', '"a;b"'],
1608
- ['an escaped quote inside a string', '"a\\" ; b"'],
1609
- ['quoted braces', '"} body { color: red }"'],
1610
- ['important', 'red !important'],
1611
- ['nested functions', 'var(--fallback, calc(1px + 2px))'],
1612
- ['CRLF string continuation', '"a\\\r\nb"'],
1613
- ['closed comment with a control character', 'red /* \u0001 ; } */'],
1614
- [
1615
- 'balanced brackets and parentheses',
1616
- '[full-start] minmax(0, 1fr) [full-end]',
1617
- ],
1618
- ];
1619
-
1620
- /** Values a browser reads as the end of the declaration or rule. */
1621
- const rejected: [string, string, string][] = [
1622
- [
1623
- 'an unquoted semicolon adds a declaration',
1624
- 'red; background-image: url(https://example.com/leak)',
1625
- ';',
1626
- ],
1627
- [
1628
- 'an unquoted brace closes the rule',
1629
- 'red } input[value^="a"] { background: url(https://example.com/leak?a) ',
1630
- '}',
1631
- ],
1632
- [
1633
- 'an unquoted brace opens a block',
1634
- 'red { background: url(https://example.com/leak) }',
1635
- '{',
1636
- ],
1637
- [
1638
- 'an escaped quote is not a string opener',
1639
- '\\"; background: url(https://example.com/leak); "',
1640
- ';',
1641
- ],
1642
- [
1643
- 'an unclosed comment swallows the rule',
1644
- 'red /* https://example.com/leak',
1645
- 'comment',
1646
- ],
1647
- [
1648
- 'an unclosed string swallows the rule',
1649
- '"https://example.com/leak',
1650
- 'string',
1651
- ],
1652
- [
1653
- 'an unclosed url() swallows the rule',
1654
- 'url(https://example.com/leak',
1655
- 'url(',
1656
- ],
1657
- [
1658
- 'an unclosed paren swallows the rule',
1659
- 'calc(1px + var(--example.com/leak)',
1660
- '(',
1661
- ],
1662
- [
1663
- 'an unbalanced closer',
1664
- 'red) ; background: url(https://example.com/leak)',
1665
- ')',
1666
- ],
1667
- ['a bad url', 'url(https://example.com/leak a)', 'bad url'],
1668
- [
1669
- 'a trailing backslash escapes the terminator',
1670
- 'https://example.com/leak\\',
1671
- 'backslash',
1672
- ],
1673
- ];
1674
-
1675
- describe.each(paths)('$label', path => {
1676
- it.each(preserved)('emits %s byte-identically', (_label, value) => {
1677
- const {css, diagnostics} = generate(path.build(value));
1678
- expect(css).toContain(path.emitted(value));
1679
- expect(diagnostics).toEqual([]);
1680
- });
1681
-
1682
- it.each(rejected)('drops a value where %s', (_label, value, reason) => {
1683
- const {css, diagnostics} = generate(path.build(value));
1684
- expect(css).not.toContain('example.com');
1685
- expect(css).not.toContain('leak');
1686
- expect(diagnostics).toHaveLength(1);
1687
- expect(diagnostics[0]).toContain(`"${path.property}"`);
1688
- expect(diagnostics[0]).toContain(path.location);
1689
- expect(diagnostics[0]).toContain(reason);
1690
- });
1691
- });
1692
-
1693
- it('keeps a vendor-prefixed property name', () => {
1694
- const {css, diagnostics} = generate(
1695
- defineTheme({
1696
- name: 'brand',
1697
- components: {
1698
- button: {
1699
- 'variant:secondary': {
1700
- WebkitLineClamp: '2',
1701
- MozOsxFontSmoothing: 'grayscale',
1702
- },
1703
- },
1704
- },
1705
- }),
1706
- );
1707
- expect(css).toContain('-webkit-line-clamp: 2;');
1708
- expect(css).toContain('-moz-osx-font-smoothing: grayscale;');
1709
- expect(diagnostics).toEqual([]);
1710
- });
1711
-
1712
- it('drops a property name that is not a property name', () => {
1713
- const {css, diagnostics} = generate(
1714
- defineTheme({
1715
- name: 'brand',
1716
- tokens: {
1717
- '--x:red} body{color:blue': 'red',
1718
- } as Record<string, string>,
1719
- }),
1720
- );
1721
- expect(css).not.toContain('body{color:blue');
1722
- expect(css).not.toContain('body {');
1723
- expect(diagnostics).toHaveLength(1);
1724
- expect(diagnostics[0]).toContain('"--x:red} body{color:blue" in tokens');
1725
- expect(diagnostics[0]).toContain('identifier');
1726
- });
1727
-
1728
- it('keeps prose rules intact when a typed token carries a payload', () => {
1729
- // Prose rules reference the token through var(), so the payload never
1730
- // reaches them; the token block drops it and the :where(p) rule stays.
1731
- const {css, prose, diagnostics} = generate(
1732
- defineTheme({
1733
- name: 'brand',
1734
- tokens: {
1735
- '--text-body-size': '1rem; } body { background: url(x) ',
1736
- },
1737
- }),
1738
- );
1739
- expect(css).not.toContain('background: url(x)');
1740
- expect(css).not.toContain('body {');
1741
- expect(prose).toContain('font-size: var(--text-body-size);');
1742
- expect(diagnostics).toHaveLength(1);
1743
- expect(diagnostics[0]).toContain('"--text-body-size" in tokens');
1744
- });
1745
-
1746
- it('falls back to the token weight when an authored Heading weight cannot stay a declaration', () => {
1747
- const payload = '700; } body { background: url(https://example.com/leak) ';
1748
- const {css, diagnostics} = generate(
1749
- defineTheme({
1750
- name: 'brand',
1751
- components: {heading: {'weight:bold': {fontWeight: payload}}},
1752
- }),
1753
- );
1754
- expect(css).not.toContain('example.com');
1755
- expect(css).toContain(
1756
- '.astryx-heading[data-weight="bold"] { font-weight: var(--font-weight-bold); }',
1757
- );
1758
- // Reported once, where the authored rule's own declarations are emitted.
1759
- expect(diagnostics).toHaveLength(1);
1760
- expect(diagnostics[0]).toContain(
1761
- '"font-weight" in components.heading["weight:bold"]',
1762
- );
1763
- });
1764
-
1765
- it('falls back to the token weight when an inherited Heading weight cannot stay a declaration', () => {
1766
- const payload = '700; } body { background: url(https://example.com/leak) ';
1767
- const {css} = generate(
1768
- defineTheme({
1769
- name: 'brand',
1770
- components: {heading: {'weight:bold': {fontWeight: payload}}},
1771
- onDark: {components: {heading: {'level:1': {fontSize: '2rem'}}}},
1772
- }),
1773
- );
1774
- expect(css).not.toContain('example.com');
1775
- expect(css).toContain(
1776
- ':is([data-astryx-media="dark"]) :is(.astryx-heading[data-weight="bold"]) { font-weight: var(--font-weight-bold); }',
1777
- );
1778
- });
1779
-
1780
- it('a dropped container padding still leaves the rest of the rule intact', () => {
1781
- const {css, diagnostics} = generate(
1782
- defineTheme({
1783
- name: 'brand',
1784
- components: {
1785
- card: {
1786
- base: {
1787
- padding:
1788
- '16px; } body { background: url(https://example.com/leak) ',
1789
- borderRadius: '8px',
1790
- },
1791
- },
1792
- },
1793
- }),
1794
- );
1795
- expect(css).not.toContain('example.com');
1796
- expect(css).toContain('border-radius: 8px;');
1797
- expect(diagnostics).toHaveLength(1);
1798
- expect(diagnostics[0]).toContain('"padding" in components.card["base"]');
1799
- expect(css).not.toContain('--astryx-card-padding');
1800
- });
1801
-
1802
- it('warns on the console only when no warning collector is given', () => {
1803
- const warn = vi.spyOn(console, 'warn').mockImplementation(() => {});
1804
- const theme = defineTheme({
1805
- name: 'brand',
1806
- tokens: {
1807
- '--color-accent': 'red; background: url(https://example.com/leak)',
1808
- },
1809
- });
1810
-
1811
- const plainCSS = generateThemeCSS(theme);
1812
- expect(warn).toHaveBeenCalledTimes(1);
1813
- expect(warn).toHaveBeenCalledWith(
1814
- expect.stringContaining(
1815
- '[astryx theme] dropped "--color-accent" in tokens',
1816
- ),
1817
- );
1818
-
1819
- warn.mockClear();
1820
- const diagnostics: string[] = ['earlier build warning'];
1821
- const before = JSON.stringify(theme);
1822
- expect(generateThemeCSS(theme, diagnostics)).toEqual(plainCSS);
1823
- expect(JSON.stringify(theme)).toBe(before);
1824
- expect(warn).not.toHaveBeenCalled();
1825
- expect(diagnostics).toHaveLength(2);
1826
- expect(diagnostics[0]).toBe('earlier build warning');
1827
- expect(diagnostics[1]).toContain('dropped "--color-accent" in tokens');
1828
- warn.mockRestore();
1829
- });
1830
-
1831
- it('every shipped generator entry point appends to the warning collector', () => {
1832
- const theme = defineTheme({
1833
- name: 'brand',
1834
- tokens: {
1835
- '--color-accent': 'red; background: url(https://example.com/leak)',
1836
- },
1837
- onDark: {
1838
- tokens: {
1839
- '--color-accent': 'red; background: url(https://example.com/dark)',
1840
- },
1841
- },
1842
- adaptations: {
1843
- rules: [
1844
- {
1845
- when: {pointer: 'coarse'},
1846
- value: {
1847
- tokens: {
1848
- '--color-accent':
1849
- 'red; background: url(https://example.com/coarse)',
1850
- },
1851
- },
1852
- },
1853
- ],
1854
- },
1855
- });
1856
- const seen: string[] = [];
1857
- expect(generateThemeRules(theme, seen).join('')).not.toContain(
1858
- 'example.com',
1859
- );
1860
- expect(generateOnMediaCSS(theme, seen)).not.toContain('example.com');
1861
- expect(generateAdaptationCSS(theme, seen).component).not.toContain(
1862
- 'example.com',
1863
- );
1864
- expect(seen).toEqual([
1865
- expect.stringContaining('in tokens:'),
1866
- expect.stringContaining('in onDark.tokens:'),
1867
- expect.stringContaining('in adaptations[0].tokens:'),
1868
- ]);
1869
- });
1870
- });