@astryxdesign/core 0.7.5 → 0.7.6-canary.0135af4

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 (1736) 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 +183 -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/useSheetGestures.d.ts +48 -6
  18. package/dist/BottomSheet/useSheetGestures.d.ts.map +1 -1
  19. package/dist/BottomSheet/useSheetGestures.js +97 -13
  20. package/dist/Breadcrumbs/BreadcrumbItem.js +4 -2
  21. package/dist/Button/Button.js +4 -4
  22. package/dist/Carousel/Carousel.d.ts +3 -1
  23. package/dist/Carousel/Carousel.d.ts.map +1 -1
  24. package/dist/Carousel/Carousel.js +12 -3
  25. package/dist/Chat/ChatComposer.d.ts.map +1 -1
  26. package/dist/Chat/ChatComposer.js +10 -5
  27. package/dist/Chat/ChatLayout.d.ts.map +1 -1
  28. package/dist/Chat/ChatLayout.js +1 -1
  29. package/dist/Chat/ChatMessageList.d.ts.map +1 -1
  30. package/dist/Chat/ChatMessageList.js +3 -1
  31. package/dist/Chat/ChatPastedTextToken.d.ts.map +1 -1
  32. package/dist/Chat/ChatPastedTextToken.js +15 -4
  33. package/dist/Chat/ChatSystemMessage.d.ts.map +1 -1
  34. package/dist/Chat/ChatSystemMessage.js +2 -1
  35. package/dist/Chat/ChatToolCalls.d.ts.map +1 -1
  36. package/dist/CheckboxInput/CheckboxInput.d.ts.map +1 -1
  37. package/dist/CheckboxInput/CheckboxInput.js +6 -5
  38. package/dist/CheckboxList/CheckboxList.d.ts.map +1 -1
  39. package/dist/CheckboxList/CheckboxList.js +5 -2
  40. package/dist/CheckboxList/CheckboxListContext.d.ts +8 -0
  41. package/dist/CheckboxList/CheckboxListContext.d.ts.map +1 -1
  42. package/dist/CheckboxList/CheckboxListItem.d.ts.map +1 -1
  43. package/dist/CheckboxList/CheckboxListItem.js +5 -2
  44. package/dist/ClickableCard/ClickableCard.d.ts.map +1 -1
  45. package/dist/ClickableCard/ClickableCard.js +37 -4
  46. package/dist/CommandPalette/CommandPaletteInput.d.ts.map +1 -1
  47. package/dist/CommandPalette/CommandPaletteInput.js +8 -5
  48. package/dist/ComplexSelector/ComplexSelector.d.ts +2 -2
  49. package/dist/ComplexSelector/ComplexSelector.d.ts.map +1 -1
  50. package/dist/ComplexSelector/ComplexSelector.js +48 -6
  51. package/dist/DateInput/DateInput.d.ts +3 -2
  52. package/dist/DateInput/DateInput.d.ts.map +1 -1
  53. package/dist/DateInput/DateInput.js +12 -4
  54. package/dist/DateInput/MonthScroller.d.ts.map +1 -1
  55. package/dist/DateInput/MonthScroller.js +108 -23
  56. package/dist/DateInput/TouchDateField.d.ts.map +1 -1
  57. package/dist/DateInput/TouchDateField.js +8 -3
  58. package/dist/DateInput/Wheel.d.ts.map +1 -1
  59. package/dist/DateInput/Wheel.js +11 -7
  60. package/dist/DateInput/usePointerDragScroll.d.ts +10 -1
  61. package/dist/DateInput/usePointerDragScroll.d.ts.map +1 -1
  62. package/dist/DateInput/usePointerDragScroll.js +25 -9
  63. package/dist/DateInput/useScrollSettle.d.ts +3 -1
  64. package/dist/DateInput/useScrollSettle.d.ts.map +1 -1
  65. package/dist/DateInput/useScrollSettle.js +37 -8
  66. package/dist/DateRangeInput/DateRangeInput.d.ts +3 -2
  67. package/dist/DateRangeInput/DateRangeInput.d.ts.map +1 -1
  68. package/dist/DateRangeInput/DateRangeInput.js +9 -5
  69. package/dist/DateTimeInput/DateTimeInput.d.ts +5 -2
  70. package/dist/DateTimeInput/DateTimeInput.d.ts.map +1 -1
  71. package/dist/DateTimeInput/DateTimeInput.js +23 -12
  72. package/dist/DateTimeInput/NativeTimeSegment.d.ts.map +1 -1
  73. package/dist/DateTimeInput/NativeTimeSegment.js +5 -4
  74. package/dist/DateTimeInput/TouchDateTimeField.d.ts.map +1 -1
  75. package/dist/DateTimeInput/TouchDateTimeField.js +4 -3
  76. package/dist/Dialog/Dialog.d.ts.map +1 -1
  77. package/dist/Dialog/Dialog.js +30 -10
  78. package/dist/Dialog/DialogHeader.d.ts.map +1 -1
  79. package/dist/Dialog/DialogHeader.js +5 -4
  80. package/dist/Divider/Divider.d.ts.map +1 -1
  81. package/dist/Divider/Divider.js +2 -1
  82. package/dist/Drawer/Drawer.d.ts +1 -0
  83. package/dist/Drawer/Drawer.d.ts.map +1 -1
  84. package/dist/Drawer/Drawer.js +7 -2
  85. package/dist/DropdownMenu/DropdownMenu.d.ts.map +1 -1
  86. package/dist/DropdownMenu/DropdownMenu.js +51 -27
  87. package/dist/DropdownMenu/DropdownMenuGroup.d.ts.map +1 -1
  88. package/dist/DropdownMenu/DropdownMenuGroup.js +2 -1
  89. package/dist/DropdownMenu/DropdownMenuSubMenu.d.ts.map +1 -1
  90. package/dist/DropdownMenu/DropdownMenuSubMenu.js +1 -1
  91. package/dist/DropdownMenu/MenuBottomSheetActionList.d.ts.map +1 -1
  92. package/dist/DropdownMenu/MenuBottomSheetActionList.js +15 -8
  93. package/dist/DropdownMenu/lazyMenuBottomSheet.d.ts +20 -2
  94. package/dist/DropdownMenu/lazyMenuBottomSheet.d.ts.map +1 -1
  95. package/dist/DropdownMenu/lazyMenuBottomSheet.js +31 -3
  96. package/dist/DropdownMenu/renderDropdownItems.d.ts.map +1 -1
  97. package/dist/DropdownMenu/renderDropdownItems.js +21 -16
  98. package/dist/EmptyState/EmptyState.d.ts.map +1 -1
  99. package/dist/EmptyState/EmptyState.js +2 -1
  100. package/dist/Field/Field.d.ts +2 -2
  101. package/dist/Field/Field.d.ts.map +1 -1
  102. package/dist/Field/FieldLabel.d.ts +1 -1
  103. package/dist/Field/FieldLabel.d.ts.map +1 -1
  104. package/dist/Field/FieldLabel.js +23 -6
  105. package/dist/Field/InputClearButton.js +3 -3
  106. package/dist/Field/PanelSearchInput.d.ts.map +1 -1
  107. package/dist/Field/PanelSearchInput.js +12 -7
  108. package/dist/Field/fieldStatusPlacement.d.ts +15 -0
  109. package/dist/Field/fieldStatusPlacement.d.ts.map +1 -0
  110. package/dist/Field/fieldStatusPlacement.js +1 -0
  111. package/dist/FieldStatus/FieldStatus.d.ts +16 -28
  112. package/dist/FieldStatus/FieldStatus.d.ts.map +1 -1
  113. package/dist/FieldStatus/FieldStatus.js +27 -5
  114. package/dist/FieldStatus/index.d.ts +7 -0
  115. package/dist/FieldStatus/index.d.ts.map +1 -1
  116. package/dist/FileInput/FileInput.d.ts +6 -2
  117. package/dist/FileInput/FileInput.d.ts.map +1 -1
  118. package/dist/FileInput/FileInput.js +93 -36
  119. package/dist/Heading/Heading.js +1 -1
  120. package/dist/Icon/Icon.js +1 -1
  121. package/dist/Indicator/CheckIndicator.d.ts.map +1 -1
  122. package/dist/Indicator/CheckIndicator.js +2 -1
  123. package/dist/Indicator/CheckboxIndicator.d.ts.map +1 -1
  124. package/dist/Indicator/CheckboxIndicator.js +3 -1
  125. package/dist/Indicator/RadioIndicator.d.ts.map +1 -1
  126. package/dist/Indicator/RadioIndicator.js +3 -1
  127. package/dist/Item/Item.d.ts.map +1 -1
  128. package/dist/Item/Item.js +26 -12
  129. package/dist/Item/ItemSwipeLayer.d.ts.map +1 -1
  130. package/dist/Item/ItemSwipeLayer.js +9 -3
  131. package/dist/Layer/popoverOperations.d.ts +27 -0
  132. package/dist/Layer/popoverOperations.d.ts.map +1 -0
  133. package/dist/Layer/popoverOperations.js +159 -0
  134. package/dist/Layer/useLayer.d.ts +1 -1
  135. package/dist/Layer/useLayer.d.ts.map +1 -1
  136. package/dist/Layer/useLayer.js +120 -65
  137. package/dist/Layer/useTouchTrigger.d.ts +35 -3
  138. package/dist/Layer/useTouchTrigger.d.ts.map +1 -1
  139. package/dist/Layer/useTouchTrigger.js +80 -11
  140. package/dist/Layout/Layout.js +1 -1
  141. package/dist/Layout/LayoutContent.js +1 -1
  142. package/dist/Layout/LayoutFooter.js +1 -1
  143. package/dist/Layout/LayoutHeader.js +1 -1
  144. package/dist/Lightbox/Lightbox.d.ts.map +1 -1
  145. package/dist/Lightbox/Lightbox.js +5 -0
  146. package/dist/Link/Link.d.ts.map +1 -1
  147. package/dist/Link/Link.js +18 -4
  148. package/dist/List/List.js +1 -1
  149. package/dist/List/ListItem.js +3 -3
  150. package/dist/Markdown/Markdown.d.ts.map +1 -1
  151. package/dist/Markdown/Markdown.js +1 -0
  152. package/dist/MetadataList/MetadataList.d.ts.map +1 -1
  153. package/dist/MetadataList/MetadataList.js +2 -1
  154. package/dist/MetadataList/MetadataListItem.d.ts.map +1 -1
  155. package/dist/MetadataList/MetadataListItem.js +2 -1
  156. package/dist/MobileNav/MobileNav.d.ts.map +1 -1
  157. package/dist/MobileNav/MobileNav.js +7 -2
  158. package/dist/MultiSelector/MultiSelector.d.ts +3 -3
  159. package/dist/MultiSelector/MultiSelector.d.ts.map +1 -1
  160. package/dist/MultiSelector/MultiSelector.js +61 -35
  161. package/dist/NavMenu/NavHeadingMenuItem.d.ts.map +1 -1
  162. package/dist/NavMenu/NavHeadingMenuItem.js +5 -29
  163. package/dist/NumberInput/NumberInput.d.ts +6 -3
  164. package/dist/NumberInput/NumberInput.d.ts.map +1 -1
  165. package/dist/NumberInput/NumberInput.js +21 -4
  166. package/dist/NumberInput/numberParser.d.ts +3 -0
  167. package/dist/NumberInput/numberParser.d.ts.map +1 -1
  168. package/dist/NumberInput/numberParser.js +7 -44
  169. package/dist/Outline/Outline.d.ts.map +1 -1
  170. package/dist/Outline/Outline.js +27 -0
  171. package/dist/OverflowList/OverflowList.d.ts.map +1 -1
  172. package/dist/OverflowList/OverflowList.js +2 -1
  173. package/dist/Pagination/Pagination.d.ts.map +1 -1
  174. package/dist/Popover/Popover.d.ts.map +1 -1
  175. package/dist/Popover/Popover.js +34 -14
  176. package/dist/Popover/usePopover.d.ts +7 -1
  177. package/dist/Popover/usePopover.d.ts.map +1 -1
  178. package/dist/Popover/usePopover.js +18 -5
  179. package/dist/PowerSearch/PowerSearch.d.ts +3 -2
  180. package/dist/PowerSearch/PowerSearch.d.ts.map +1 -1
  181. package/dist/PowerSearch/PowerSearch.js +41 -32
  182. package/dist/ProgressBar/ProgressBar.d.ts.map +1 -1
  183. package/dist/ProgressBar/ProgressBar.js +16 -12
  184. package/dist/RadioList/RadioList.d.ts.map +1 -1
  185. package/dist/RadioList/RadioList.js +7 -2
  186. package/dist/RadioList/RadioListItem.d.ts.map +1 -1
  187. package/dist/RadioList/RadioListItem.js +19 -5
  188. package/dist/RadioList/RadioListReasonContext.d.ts +2 -0
  189. package/dist/RadioList/RadioListReasonContext.d.ts.map +1 -0
  190. package/dist/RadioList/RadioListReasonContext.js +22 -0
  191. package/dist/Resizable/useResizable.d.ts.map +1 -1
  192. package/dist/Resizable/useResizable.js +81 -12
  193. package/dist/SegmentedControl/SegmentedControl.d.ts.map +1 -1
  194. package/dist/SegmentedControl/SegmentedControl.js +22 -5
  195. package/dist/SegmentedControl/SegmentedControlContext.d.ts +6 -0
  196. package/dist/SegmentedControl/SegmentedControlContext.d.ts.map +1 -1
  197. package/dist/SegmentedControl/SegmentedControlItem.d.ts +1 -1
  198. package/dist/SegmentedControl/SegmentedControlItem.d.ts.map +1 -1
  199. package/dist/SegmentedControl/SegmentedControlItem.js +20 -4
  200. package/dist/Selector/Selector.d.ts +2 -2
  201. package/dist/Selector/Selector.d.ts.map +1 -1
  202. package/dist/Selector/Selector.js +13 -7
  203. package/dist/Selector/hooks.js +2 -2
  204. package/dist/Selector/useSelectorPresentation.d.ts +14 -1
  205. package/dist/Selector/useSelectorPresentation.d.ts.map +1 -1
  206. package/dist/Selector/useSelectorPresentation.js +22 -5
  207. package/dist/SideNav/SideNavItem.d.ts +2 -2
  208. package/dist/SideNav/SideNavItem.d.ts.map +1 -1
  209. package/dist/SideNav/SideNavItem.js +18 -7
  210. package/dist/Skeleton/Skeleton.d.ts.map +1 -1
  211. package/dist/Skeleton/Skeleton.js +1 -1
  212. package/dist/Slider/Slider.d.ts.map +1 -1
  213. package/dist/Slider/Slider.js +110 -19
  214. package/dist/Spinner/Spinner.d.ts.map +1 -1
  215. package/dist/Spinner/Spinner.js +3 -3
  216. package/dist/Stack/Stack.js +1 -1
  217. package/dist/Stack/StackItem.js +1 -1
  218. package/dist/Stepper/Step.d.ts.map +1 -1
  219. package/dist/Stepper/Step.js +26 -6
  220. package/dist/Switch/Switch.d.ts.map +1 -1
  221. package/dist/Switch/Switch.js +10 -3
  222. package/dist/TabList/TabList.d.ts.map +1 -1
  223. package/dist/TabList/TabList.js +16 -1
  224. package/dist/Table/BaseTable.d.ts.map +1 -1
  225. package/dist/Table/BaseTable.js +2 -1
  226. package/dist/Table/Table.d.ts.map +1 -1
  227. package/dist/Table/Table.js +36 -10
  228. package/dist/Table/glidingDivider.d.ts +8 -1
  229. package/dist/Table/glidingDivider.d.ts.map +1 -1
  230. package/dist/Table/glidingDivider.js +8 -3
  231. package/dist/Table/plugins/columnResize/useTableColumnResize.d.ts.map +1 -1
  232. package/dist/Table/plugins/columnResize/useTableColumnResize.js +9 -1
  233. package/dist/Table/plugins/sortable/useTableSortable.d.ts.map +1 -1
  234. package/dist/Table/plugins/sortable/useTableSortable.js +46 -58
  235. package/dist/Table/plugins/stickyColumns/useTableStickyColumns.d.ts.map +1 -1
  236. package/dist/Table/plugins/stickyColumns/useTableStickyColumns.js +1 -2
  237. package/dist/Text/Text.js +1 -1
  238. package/dist/Text/useTruncation.d.ts.map +1 -1
  239. package/dist/Text/useTruncation.js +23 -5
  240. package/dist/TextArea/TextArea.d.ts +3 -3
  241. package/dist/TextArea/TextArea.d.ts.map +1 -1
  242. package/dist/TextArea/TextArea.js +13 -2
  243. package/dist/TextInput/TextInput.d.ts +3 -2
  244. package/dist/TextInput/TextInput.d.ts.map +1 -1
  245. package/dist/TextInput/TextInput.js +3 -3
  246. package/dist/TimeInput/TimeInput.d.ts +9 -4
  247. package/dist/TimeInput/TimeInput.d.ts.map +1 -1
  248. package/dist/TimeInput/TimeInput.js +21 -14
  249. package/dist/TimeInput/TouchTimeField.d.ts.map +1 -1
  250. package/dist/TimeInput/TouchTimeField.js +5 -4
  251. package/dist/Timestamp/Timestamp.d.ts.map +1 -1
  252. package/dist/Timestamp/Timestamp.js +2 -2
  253. package/dist/Timestamp/TimestampHoverCard.js +4 -4
  254. package/dist/Toast/Toast.d.ts.map +1 -1
  255. package/dist/Toast/Toast.js +60 -20
  256. package/dist/Toast/ToastViewport.d.ts.map +1 -1
  257. package/dist/Toast/ToastViewport.js +101 -54
  258. package/dist/Toast/useToast.d.ts.map +1 -1
  259. package/dist/Toast/useToast.js +8 -2
  260. package/dist/ToggleButton/ToggleButton.d.ts.map +1 -1
  261. package/dist/ToggleButton/ToggleButton.js +11 -3
  262. package/dist/ToggleButton/ToggleButtonGroup.d.ts +7 -1
  263. package/dist/ToggleButton/ToggleButtonGroup.d.ts.map +1 -1
  264. package/dist/ToggleButton/ToggleButtonGroup.js +16 -2
  265. package/dist/Token/Token.d.ts +1 -1
  266. package/dist/Token/Token.d.ts.map +1 -1
  267. package/dist/Token/Token.js +52 -5
  268. package/dist/Token/TokenLink.d.ts.map +1 -1
  269. package/dist/Token/TokenLink.js +14 -2
  270. package/dist/Tokenizer/Tokenizer.d.ts +3 -2
  271. package/dist/Tokenizer/Tokenizer.d.ts.map +1 -1
  272. package/dist/Tokenizer/Tokenizer.js +101 -56
  273. package/dist/Tokenizer/TokenizerBottomSheet.d.ts.map +1 -1
  274. package/dist/Tokenizer/TokenizerBottomSheet.js +11 -17
  275. package/dist/Tokenizer/TokenizerClearAllMessageContext.d.ts +2 -0
  276. package/dist/Tokenizer/TokenizerClearAllMessageContext.d.ts.map +1 -0
  277. package/dist/Tokenizer/TokenizerClearAllMessageContext.js +17 -0
  278. package/dist/Toolbar/Toolbar.d.ts.map +1 -1
  279. package/dist/Toolbar/Toolbar.js +2 -1
  280. package/dist/TopNav/TopNavMegaMenu.d.ts.map +1 -1
  281. package/dist/TopNav/TopNavMegaMenu.js +7 -3
  282. package/dist/TopNav/TopNavMenu.d.ts.map +1 -1
  283. package/dist/TopNav/TopNavMenu.js +1 -0
  284. package/dist/TreeList/TreeList.d.ts.map +1 -1
  285. package/dist/TreeList/TreeList.js +6 -3
  286. package/dist/TreeList/TreeListItem.d.ts.map +1 -1
  287. package/dist/TreeList/TreeListItem.js +31 -7
  288. package/dist/Typeahead/BaseTypeahead.d.ts +8 -5
  289. package/dist/Typeahead/BaseTypeahead.d.ts.map +1 -1
  290. package/dist/Typeahead/BaseTypeahead.js +303 -48
  291. package/dist/Typeahead/Typeahead.d.ts +4 -3
  292. package/dist/Typeahead/Typeahead.d.ts.map +1 -1
  293. package/dist/Typeahead/Typeahead.js +43 -9
  294. package/dist/Typeahead/index.d.ts +1 -1
  295. package/dist/Typeahead/index.d.ts.map +1 -1
  296. package/dist/Typeahead/types.d.ts +26 -3
  297. package/dist/Typeahead/types.d.ts.map +1 -1
  298. package/dist/astryx.css +26 -6
  299. package/dist/gestures/GestureArena.d.ts +32 -1
  300. package/dist/gestures/GestureArena.d.ts.map +1 -1
  301. package/dist/gestures/GestureArena.js +110 -9
  302. package/dist/gestures/GestureHost.d.ts +351 -0
  303. package/dist/gestures/GestureHost.d.ts.map +1 -0
  304. package/dist/gestures/GestureHost.js +1773 -0
  305. package/dist/gestures/GestureRecognizer.d.ts +13 -1
  306. package/dist/gestures/GestureRecognizer.d.ts.map +1 -1
  307. package/dist/gestures/GestureRecognizer.js +19 -1
  308. package/dist/gestures/LongPressGestureRecognizer.d.ts +1 -0
  309. package/dist/gestures/LongPressGestureRecognizer.d.ts.map +1 -1
  310. package/dist/gestures/LongPressGestureRecognizer.js +3 -0
  311. package/dist/gestures/PanGestureRecognizer.d.ts +1 -0
  312. package/dist/gestures/PanGestureRecognizer.d.ts.map +1 -1
  313. package/dist/gestures/PanGestureRecognizer.js +3 -0
  314. package/dist/gestures/PinchGestureRecognizer.d.ts +31 -0
  315. package/dist/gestures/PinchGestureRecognizer.d.ts.map +1 -0
  316. package/dist/gestures/PinchGestureRecognizer.js +128 -0
  317. package/dist/gestures/PressTracker.d.ts +112 -0
  318. package/dist/gestures/PressTracker.d.ts.map +1 -0
  319. package/dist/gestures/PressTracker.js +267 -0
  320. package/dist/gestures/ScreenEdgePanGestureRecognizer.d.ts +71 -0
  321. package/dist/gestures/ScreenEdgePanGestureRecognizer.d.ts.map +1 -0
  322. package/dist/gestures/ScreenEdgePanGestureRecognizer.js +223 -0
  323. package/dist/gestures/SwipeGestureRecognizer.d.ts +37 -0
  324. package/dist/gestures/SwipeGestureRecognizer.d.ts.map +1 -0
  325. package/dist/gestures/SwipeGestureRecognizer.js +148 -0
  326. package/dist/gestures/TapGestureRecognizer.d.ts +1 -0
  327. package/dist/gestures/TapGestureRecognizer.d.ts.map +1 -1
  328. package/dist/gestures/TapGestureRecognizer.js +3 -0
  329. package/dist/gestures/VelocityTracker.d.ts +6 -2
  330. package/dist/gestures/VelocityTracker.d.ts.map +1 -1
  331. package/dist/gestures/VelocityTracker.js +7 -3
  332. package/dist/gestures/haptics.d.ts +65 -0
  333. package/dist/gestures/haptics.d.ts.map +1 -0
  334. package/dist/gestures/haptics.js +178 -0
  335. package/dist/gestures/index.d.ts +37 -0
  336. package/dist/gestures/index.d.ts.map +1 -0
  337. package/dist/gestures/index.js +25 -0
  338. package/dist/gestures/nativeScroll.d.ts +42 -0
  339. package/dist/gestures/nativeScroll.d.ts.map +1 -0
  340. package/dist/gestures/nativeScroll.js +228 -0
  341. package/dist/gestures/touchAction.d.ts +60 -0
  342. package/dist/gestures/touchAction.d.ts.map +1 -0
  343. package/dist/gestures/touchAction.js +157 -0
  344. package/dist/gestures/touchActionRule.d.ts +34 -0
  345. package/dist/gestures/touchActionRule.d.ts.map +1 -0
  346. package/dist/gestures/touchActionRule.js +140 -0
  347. package/dist/gestures/types.d.ts +18 -7
  348. package/dist/gestures/types.d.ts.map +1 -1
  349. package/dist/gestures/types.js +22 -2
  350. package/dist/gestures/useGestureRecognizer.d.ts +56 -0
  351. package/dist/gestures/useGestureRecognizer.d.ts.map +1 -0
  352. package/dist/gestures/useGestureRecognizer.js +226 -0
  353. package/dist/hooks/index.d.ts +1 -1
  354. package/dist/hooks/index.d.ts.map +1 -1
  355. package/dist/hooks/menuPressMarker.d.ts +13 -0
  356. package/dist/hooks/menuPressMarker.d.ts.map +1 -0
  357. package/dist/hooks/menuPressMarker.js +15 -0
  358. package/dist/hooks/modalAnnounce.d.ts.map +1 -1
  359. package/dist/hooks/modalAnnounce.js +107 -61
  360. package/dist/hooks/scrollKeyboardDelegation.d.ts.map +1 -1
  361. package/dist/hooks/scrollKeyboardDelegation.js +7 -3
  362. package/dist/hooks/useAdaptivePresentation.d.ts.map +1 -1
  363. package/dist/hooks/useAdaptivePresentation.js +4 -1
  364. package/dist/hooks/useAnnounce.d.ts +101 -42
  365. package/dist/hooks/useAnnounce.d.ts.map +1 -1
  366. package/dist/hooks/useAnnounce.js +161 -75
  367. package/dist/hooks/useAnnounceRenderedText.d.ts +11 -3
  368. package/dist/hooks/useAnnounceRenderedText.d.ts.map +1 -1
  369. package/dist/hooks/useAnnounceRenderedText.js +5 -3
  370. package/dist/hooks/useBusyAnnouncement.d.ts.map +1 -1
  371. package/dist/hooks/useBusyAnnouncement.js +6 -12
  372. package/dist/hooks/useClickableContainer.d.ts +24 -4
  373. package/dist/hooks/useClickableContainer.d.ts.map +1 -1
  374. package/dist/hooks/useClickableContainer.js +41 -14
  375. package/dist/hooks/useFocusReturnVisibility.d.ts +8 -1
  376. package/dist/hooks/useFocusReturnVisibility.d.ts.map +1 -1
  377. package/dist/hooks/useFocusReturnVisibility.js +14 -8
  378. package/dist/hooks/useInputStatusIcon.d.ts +2 -2
  379. package/dist/hooks/useInputStatusIcon.d.ts.map +1 -1
  380. package/dist/hooks/useInputStatusIcon.js +1 -2
  381. package/dist/hooks/useListFocus.d.ts +19 -0
  382. package/dist/hooks/useListFocus.d.ts.map +1 -1
  383. package/dist/hooks/useListFocus.js +26 -1
  384. package/dist/hooks/useMenuHover.d.ts.map +1 -1
  385. package/dist/hooks/useMenuHover.js +12 -1
  386. package/dist/hooks/useMenuPress.d.ts +2 -2
  387. package/dist/hooks/useMenuPress.d.ts.map +1 -1
  388. package/dist/hooks/useMenuPress.js +5 -6
  389. package/dist/hooks/useScrollOverflow.d.ts +2 -1
  390. package/dist/hooks/useScrollOverflow.d.ts.map +1 -1
  391. package/dist/hooks/useScrollOverflow.js +56 -10
  392. package/dist/i18n/generated-locales/af-ZA.generated.d.ts.map +1 -1
  393. package/dist/i18n/generated-locales/af-ZA.generated.js +0 -5
  394. package/dist/i18n/generated-locales/ar-SA.generated.d.ts.map +1 -1
  395. package/dist/i18n/generated-locales/ar-SA.generated.js +0 -5
  396. package/dist/i18n/generated-locales/ca-ES.generated.d.ts.map +1 -1
  397. package/dist/i18n/generated-locales/ca-ES.generated.js +0 -5
  398. package/dist/i18n/generated-locales/cs-CZ.generated.d.ts.map +1 -1
  399. package/dist/i18n/generated-locales/cs-CZ.generated.js +0 -5
  400. package/dist/i18n/generated-locales/da-DK.generated.d.ts.map +1 -1
  401. package/dist/i18n/generated-locales/da-DK.generated.js +0 -5
  402. package/dist/i18n/generated-locales/de-DE.generated.d.ts.map +1 -1
  403. package/dist/i18n/generated-locales/de-DE.generated.js +0 -5
  404. package/dist/i18n/generated-locales/el-GR.generated.d.ts.map +1 -1
  405. package/dist/i18n/generated-locales/el-GR.generated.js +0 -5
  406. package/dist/i18n/generated-locales/en.generated.d.ts.map +1 -1
  407. package/dist/i18n/generated-locales/en.generated.js +8 -5
  408. package/dist/i18n/generated-locales/es-ES.generated.d.ts.map +1 -1
  409. package/dist/i18n/generated-locales/es-ES.generated.js +0 -5
  410. package/dist/i18n/generated-locales/fi-FI.generated.d.ts.map +1 -1
  411. package/dist/i18n/generated-locales/fi-FI.generated.js +0 -5
  412. package/dist/i18n/generated-locales/fr-FR.generated.d.ts.map +1 -1
  413. package/dist/i18n/generated-locales/fr-FR.generated.js +0 -5
  414. package/dist/i18n/generated-locales/he-IL.generated.d.ts.map +1 -1
  415. package/dist/i18n/generated-locales/he-IL.generated.js +0 -5
  416. package/dist/i18n/generated-locales/hu-HU.generated.d.ts.map +1 -1
  417. package/dist/i18n/generated-locales/hu-HU.generated.js +0 -5
  418. package/dist/i18n/generated-locales/it-IT.generated.d.ts.map +1 -1
  419. package/dist/i18n/generated-locales/it-IT.generated.js +0 -5
  420. package/dist/i18n/generated-locales/ja-JP.generated.d.ts.map +1 -1
  421. package/dist/i18n/generated-locales/ja-JP.generated.js +0 -5
  422. package/dist/i18n/generated-locales/ko-KR.generated.d.ts.map +1 -1
  423. package/dist/i18n/generated-locales/ko-KR.generated.js +0 -5
  424. package/dist/i18n/generated-locales/nl-NL.generated.d.ts.map +1 -1
  425. package/dist/i18n/generated-locales/nl-NL.generated.js +0 -5
  426. package/dist/i18n/generated-locales/no-NO.generated.d.ts.map +1 -1
  427. package/dist/i18n/generated-locales/no-NO.generated.js +0 -5
  428. package/dist/i18n/generated-locales/pl-PL.generated.d.ts.map +1 -1
  429. package/dist/i18n/generated-locales/pl-PL.generated.js +0 -5
  430. package/dist/i18n/generated-locales/pseudo.generated.d.ts.map +1 -1
  431. package/dist/i18n/generated-locales/pseudo.generated.js +8 -5
  432. package/dist/i18n/generated-locales/pt-BR.generated.d.ts.map +1 -1
  433. package/dist/i18n/generated-locales/pt-BR.generated.js +0 -5
  434. package/dist/i18n/generated-locales/pt-PT.generated.d.ts.map +1 -1
  435. package/dist/i18n/generated-locales/pt-PT.generated.js +0 -5
  436. package/dist/i18n/generated-locales/ro-RO.generated.d.ts.map +1 -1
  437. package/dist/i18n/generated-locales/ro-RO.generated.js +0 -5
  438. package/dist/i18n/generated-locales/ru-RU.generated.d.ts.map +1 -1
  439. package/dist/i18n/generated-locales/ru-RU.generated.js +0 -5
  440. package/dist/i18n/generated-locales/sr-SP.generated.d.ts.map +1 -1
  441. package/dist/i18n/generated-locales/sr-SP.generated.js +0 -5
  442. package/dist/i18n/generated-locales/sv-SE.generated.d.ts.map +1 -1
  443. package/dist/i18n/generated-locales/sv-SE.generated.js +0 -5
  444. package/dist/i18n/generated-locales/tr-TR.generated.d.ts.map +1 -1
  445. package/dist/i18n/generated-locales/tr-TR.generated.js +0 -5
  446. package/dist/i18n/generated-locales/uk-UA.generated.d.ts.map +1 -1
  447. package/dist/i18n/generated-locales/uk-UA.generated.js +0 -5
  448. package/dist/i18n/generated-locales/vi-VN.generated.d.ts.map +1 -1
  449. package/dist/i18n/generated-locales/vi-VN.generated.js +0 -5
  450. package/dist/i18n/generated-locales/zh-CN.generated.d.ts.map +1 -1
  451. package/dist/i18n/generated-locales/zh-CN.generated.js +0 -5
  452. package/dist/i18n/generated-locales/zh-TW.generated.d.ts.map +1 -1
  453. package/dist/i18n/generated-locales/zh-TW.generated.js +0 -5
  454. package/dist/i18n/useListFormatter.d.ts +9 -0
  455. package/dist/i18n/useListFormatter.d.ts.map +1 -0
  456. package/dist/i18n/useListFormatter.js +41 -0
  457. package/dist/motion/animator.d.ts +83 -8
  458. package/dist/motion/animator.d.ts.map +1 -1
  459. package/dist/motion/animator.js +739 -121
  460. package/dist/motion/coast.d.ts +4 -1
  461. package/dist/motion/coast.d.ts.map +1 -1
  462. package/dist/motion/coast.js +4 -2
  463. package/dist/motion/reducedMotion.d.ts.map +1 -1
  464. package/dist/motion/reducedMotion.js +6 -2
  465. package/dist/motion/reducedMotionPlan.d.ts +7 -0
  466. package/dist/motion/reducedMotionPlan.d.ts.map +1 -1
  467. package/dist/motion/reducedMotionPlan.js +14 -1
  468. package/dist/motion/resolveMotion.d.ts +42 -0
  469. package/dist/motion/resolveMotion.d.ts.map +1 -0
  470. package/dist/motion/resolveMotion.js +43 -0
  471. package/dist/motion/roleValue.d.ts +2 -1
  472. package/dist/motion/roleValue.d.ts.map +1 -1
  473. package/dist/motion/roleValue.js +2 -1
  474. package/dist/motion/uikit/timing.d.ts +7 -1
  475. package/dist/motion/uikit/timing.d.ts.map +1 -1
  476. package/dist/motion/uikit/timing.js +19 -1
  477. package/dist/privateAttributes/segmentDisabled.stylex.d.ts +5 -0
  478. package/dist/privateAttributes/segmentDisabled.stylex.d.ts.map +1 -0
  479. package/dist/privateAttributes/segmentDisabled.stylex.js +28 -0
  480. package/dist/theme/Theme.d.ts +10 -0
  481. package/dist/theme/Theme.d.ts.map +1 -1
  482. package/dist/theme/Theme.js +8 -4
  483. package/dist/theme/defineTheme.d.ts +19 -5
  484. package/dist/theme/defineTheme.d.ts.map +1 -1
  485. package/dist/theme/defineTheme.js +64 -4
  486. package/dist/theme/domainTokens/domainTokenDefaults.d.ts +3 -0
  487. package/dist/theme/domainTokens/domainTokenDefaults.d.ts.map +1 -0
  488. package/dist/theme/domainTokens/domainTokenDefaults.js +19 -0
  489. package/dist/theme/domainTokens/index.d.ts +5 -4
  490. package/dist/theme/domainTokens/index.d.ts.map +1 -1
  491. package/dist/theme/domainTokens/index.js +5 -9
  492. package/dist/theme/index.d.ts +1 -0
  493. package/dist/theme/index.d.ts.map +1 -1
  494. package/dist/theme/motionKnobs.d.ts +56 -0
  495. package/dist/theme/motionKnobs.d.ts.map +1 -0
  496. package/dist/theme/motionKnobs.js +48 -0
  497. package/dist/theme/resolveThemeValues.d.ts +11 -4
  498. package/dist/theme/resolveThemeValues.d.ts.map +1 -1
  499. package/dist/theme/resolveThemeValues.js +40 -4
  500. package/dist/theme/themeAdaptations.d.ts +7 -3
  501. package/dist/theme/themeAdaptations.d.ts.map +1 -1
  502. package/dist/theme/themeAdaptations.js +36 -7
  503. package/dist/theme/themeMotion.d.ts +96 -0
  504. package/dist/theme/themeMotion.d.ts.map +1 -0
  505. package/dist/theme/themeMotion.js +177 -0
  506. package/dist/theme/tokenReferences.d.ts +31 -0
  507. package/dist/theme/tokenReferences.d.ts.map +1 -0
  508. package/dist/theme/tokenReferences.js +132 -0
  509. package/dist/theme/tokens.d.ts +1 -0
  510. package/dist/theme/tokens.d.ts.map +1 -1
  511. package/dist/theme/tokens.js +9 -129
  512. package/dist/theme/tokens.stylex.d.ts +12 -0
  513. package/dist/theme/tokens.stylex.d.ts.map +1 -1
  514. package/dist/theme/tokens.stylex.js +12 -0
  515. package/dist/theme/useTheme.d.ts.map +1 -1
  516. package/dist/theme/useTheme.js +7 -1
  517. package/dist/utils/focusOutline.stylex.d.ts +6 -0
  518. package/dist/utils/focusOutline.stylex.d.ts.map +1 -1
  519. package/dist/utils/focusOutline.stylex.js +7 -0
  520. package/dist/utils/focusReturn.d.ts +19 -1
  521. package/dist/utils/focusReturn.d.ts.map +1 -1
  522. package/dist/utils/focusReturn.js +13 -4
  523. package/dist/utils/getNodeText.d.ts +8 -0
  524. package/dist/utils/getNodeText.d.ts.map +1 -0
  525. package/dist/utils/getNodeText.js +38 -0
  526. package/dist/utils/interactionModality.d.ts +84 -4
  527. package/dist/utils/interactionModality.d.ts.map +1 -1
  528. package/dist/utils/interactionModality.js +152 -16
  529. package/dist/utils/interactionOverlay.stylex.d.ts.map +1 -1
  530. package/dist/utils/interactionOverlay.stylex.js +17 -8
  531. package/dist/utils/plainDate.d.ts +2 -0
  532. package/dist/utils/plainDate.d.ts.map +1 -1
  533. package/dist/utils/plainDate.js +46 -3
  534. package/dist/utils/presentation.d.ts +50 -0
  535. package/dist/utils/presentation.d.ts.map +1 -0
  536. package/dist/utils/presentation.js +125 -0
  537. package/dist/utils/pressDisabled.d.ts +21 -0
  538. package/dist/utils/pressDisabled.d.ts.map +1 -0
  539. package/dist/utils/pressDisabled.js +32 -0
  540. package/dist/utils/pressFeedback.d.ts.map +1 -1
  541. package/dist/utils/pressFeedback.js +25 -4
  542. package/dist/utils/primaryClick.d.ts +11 -0
  543. package/dist/utils/primaryClick.d.ts.map +1 -0
  544. package/dist/utils/primaryClick.js +25 -0
  545. package/dist/utils/sharedMutationObserver.d.ts +19 -11
  546. package/dist/utils/sharedMutationObserver.d.ts.map +1 -1
  547. package/dist/utils/sharedMutationObserver.js +66 -26
  548. package/dist/utils/timeFormat.d.ts +47 -0
  549. package/dist/utils/timeFormat.d.ts.map +1 -0
  550. package/dist/utils/timeFormat.js +240 -0
  551. package/dist/utils/touchPresentation.d.ts +2 -2
  552. package/dist/utils/touchPresentation.d.ts.map +1 -1
  553. package/dist/utils/touchPresentation.js +13 -8
  554. package/dist/utils/touchPresentation.stylex.d.ts +15 -0
  555. package/dist/utils/touchPresentation.stylex.d.ts.map +1 -0
  556. package/dist/utils/touchPresentation.stylex.js +33 -0
  557. package/dist/utils/touchQueries.d.ts +13 -0
  558. package/dist/utils/touchQueries.d.ts.map +1 -0
  559. package/dist/utils/touchQueries.js +15 -0
  560. package/dist/utils/unicodeDigits.d.ts +20 -0
  561. package/dist/utils/unicodeDigits.d.ts.map +1 -0
  562. package/dist/utils/unicodeDigits.js +70 -0
  563. package/dist/utils/useFocusAcrossSwap.d.ts +19 -0
  564. package/dist/utils/useFocusAcrossSwap.d.ts.map +1 -0
  565. package/dist/utils/useFocusAcrossSwap.js +41 -0
  566. package/locales/af-ZA.json +0 -21
  567. package/locales/ar-SA.json +0 -21
  568. package/locales/ca-ES.json +0 -21
  569. package/locales/cs-CZ.json +0 -21
  570. package/locales/da-DK.json +0 -21
  571. package/locales/de-DE.json +0 -21
  572. package/locales/el-GR.json +0 -21
  573. package/locales/en.json +35 -23
  574. package/locales/es-ES.json +0 -21
  575. package/locales/fi-FI.json +0 -21
  576. package/locales/fr-FR.json +0 -21
  577. package/locales/he-IL.json +0 -21
  578. package/locales/hu-HU.json +0 -21
  579. package/locales/it-IT.json +0 -21
  580. package/locales/ja-JP.json +0 -21
  581. package/locales/ko-KR.json +0 -21
  582. package/locales/nl-NL.json +0 -21
  583. package/locales/no-NO.json +0 -21
  584. package/locales/pl-PL.json +0 -21
  585. package/locales/pseudo.json +23 -14
  586. package/locales/pt-BR.json +0 -21
  587. package/locales/pt-PT.json +0 -21
  588. package/locales/ro-RO.json +0 -21
  589. package/locales/ru-RU.json +0 -21
  590. package/locales/sr-SP.json +0 -21
  591. package/locales/sv-SE.json +0 -21
  592. package/locales/tr-TR.json +0 -21
  593. package/locales/uk-UA.json +0 -21
  594. package/locales/vi-VN.json +0 -21
  595. package/locales/zh-CN.json +0 -21
  596. package/locales/zh-TW.json +0 -21
  597. package/package.json +20 -5
  598. package/src/AlertDialog/AlertDialog.tsx +6 -5
  599. package/src/AppShell/AppShell.doc.mjs +1 -1
  600. package/src/AppShell/AppShell.spec.md +9 -12
  601. package/src/AppShell/AppShell.tsx +225 -5
  602. package/src/AppShell/observeMainOverflow.ts +143 -0
  603. package/src/Avatar/Avatar.spec.md +22 -22
  604. package/src/Avatar/Avatar.tsx +18 -1
  605. package/src/Badge/Badge.doc.mjs +1 -1
  606. package/src/Badge/Badge.tsx +20 -2
  607. package/src/BottomSheet/BottomSheet.tsx +5 -3
  608. package/src/BottomSheet/BottomSheetPanel.tsx +41 -9
  609. package/src/BottomSheet/useSheetGestures.ts +129 -21
  610. package/src/Breadcrumbs/BreadcrumbItem.tsx +2 -1
  611. package/src/Button/Button.tsx +4 -4
  612. package/src/Calendar/Calendar.spec.md +87 -48
  613. package/src/Carousel/Carousel.doc.mjs +1 -1
  614. package/src/Carousel/Carousel.spec.md +9 -9
  615. package/src/Carousel/Carousel.tsx +10 -2
  616. package/src/Chat/ChatComposer.spec.md +75 -59
  617. package/src/Chat/ChatComposer.tsx +7 -10
  618. package/src/Chat/ChatComposerTokenElement.spec.md +45 -33
  619. package/src/Chat/ChatDictationButton.spec.md +126 -81
  620. package/src/Chat/ChatLayout.spec.md +41 -36
  621. package/src/Chat/ChatLayout.tsx +1 -6
  622. package/src/Chat/ChatLayoutScrollButton.spec.md +87 -103
  623. package/src/Chat/ChatMessage.spec.md +64 -65
  624. package/src/Chat/ChatMessageList.tsx +1 -0
  625. package/src/Chat/ChatPastedTextToken.tsx +14 -4
  626. package/src/Chat/ChatSendButton.spec.md +78 -67
  627. package/src/Chat/ChatSystemMessage.tsx +4 -1
  628. package/src/Chat/ChatToolCalls.tsx +5 -0
  629. package/src/CheckboxInput/CheckboxInput.tsx +6 -5
  630. package/src/CheckboxList/CheckboxList.tsx +7 -1
  631. package/src/CheckboxList/CheckboxListContext.tsx +8 -0
  632. package/src/CheckboxList/CheckboxListItem.tsx +8 -2
  633. package/src/Citation/Citation.spec.md +60 -47
  634. package/src/ClickableCard/ClickableCard.tsx +48 -4
  635. package/src/Collapsible/Collapsible.spec.md +2 -0
  636. package/src/Collapsible/CollapsibleGroup.spec.md +57 -29
  637. package/src/CommandPalette/CommandPaletteInput.tsx +5 -8
  638. package/src/ComplexSelector/ComplexSelector.tsx +63 -8
  639. package/src/ContextMenu/ContextMenu.spec.md +84 -56
  640. package/src/ContextMenu/ContextMenuItem.spec.md +132 -0
  641. package/src/DateInput/DateInput.spec.md +74 -57
  642. package/src/DateInput/DateInput.tsx +31 -16
  643. package/src/DateInput/MonthScroller.tsx +108 -24
  644. package/src/DateInput/TouchDateField.tsx +14 -3
  645. package/src/DateInput/Wheel.tsx +9 -6
  646. package/src/DateInput/usePointerDragScroll.ts +34 -10
  647. package/src/DateInput/useScrollSettle.ts +38 -7
  648. package/src/DateRangeInput/DateRangeInput.tsx +36 -17
  649. package/src/DateTimeInput/DateTimeInput.doc.mjs +10 -8
  650. package/src/DateTimeInput/DateTimeInput.spec.md +75 -51
  651. package/src/DateTimeInput/DateTimeInput.tsx +46 -24
  652. package/src/DateTimeInput/NativeTimeSegment.tsx +4 -6
  653. package/src/DateTimeInput/TouchDateTimeField.tsx +3 -7
  654. package/src/Dialog/Dialog.tsx +28 -11
  655. package/src/Dialog/DialogHeader.tsx +5 -4
  656. package/src/Divider/Divider.tsx +2 -1
  657. package/src/Drawer/Drawer.spec.md +111 -80
  658. package/src/Drawer/Drawer.tsx +13 -2
  659. package/src/Drawer/DrawerHeader.spec.md +181 -0
  660. package/src/DropdownMenu/DropdownMenu.spec.md +198 -218
  661. package/src/DropdownMenu/DropdownMenu.tsx +63 -26
  662. package/src/DropdownMenu/DropdownMenuCheckboxItem.spec.md +192 -0
  663. package/src/DropdownMenu/DropdownMenuDivider.spec.md +25 -31
  664. package/src/DropdownMenu/DropdownMenuGroup.spec.md +145 -0
  665. package/src/DropdownMenu/DropdownMenuGroup.tsx +2 -1
  666. package/src/DropdownMenu/DropdownMenuItem.spec.md +48 -42
  667. package/src/DropdownMenu/DropdownMenuRadioGroup.spec.md +34 -37
  668. package/src/DropdownMenu/DropdownMenuRadioItem.spec.md +54 -53
  669. package/src/DropdownMenu/DropdownMenuSubMenu.spec.md +47 -41
  670. package/src/DropdownMenu/DropdownMenuSubMenu.tsx +3 -1
  671. package/src/DropdownMenu/MenuBottomSheetActionList.tsx +12 -8
  672. package/src/DropdownMenu/lazyMenuBottomSheet.ts +36 -7
  673. package/src/DropdownMenu/renderDropdownItems.tsx +24 -19
  674. package/src/EmptyState/EmptyState.spec.md +35 -29
  675. package/src/EmptyState/EmptyState.tsx +2 -1
  676. package/src/Field/Field.doc.mjs +2 -1
  677. package/src/Field/Field.tsx +2 -2
  678. package/src/Field/FieldLabel.doc.mjs +4 -2
  679. package/src/Field/FieldLabel.spec.md +72 -55
  680. package/src/Field/FieldLabel.tsx +23 -6
  681. package/src/Field/InputClearButton.tsx +3 -3
  682. package/src/Field/PanelSearchInput.tsx +9 -10
  683. package/src/Field/fieldStatusPlacement.ts +18 -0
  684. package/src/FieldStatus/FieldStatus.tsx +35 -5
  685. package/src/FieldStatus/index.ts +7 -0
  686. package/src/FileInput/FileInput.tsx +105 -37
  687. package/src/FormLayout/FormLayout.spec.md +11 -20
  688. package/src/Heading/Heading.tsx +1 -1
  689. package/src/HoverCard/HoverCard.doc.mjs +3 -3
  690. package/src/HoverCard/HoverCard.spec.md +98 -39
  691. package/src/HoverCard/useHoverCard.doc.mjs +1 -1
  692. package/src/Icon/Icon.tsx +1 -1
  693. package/src/Indicator/CheckIndicator.spec.md +47 -42
  694. package/src/Indicator/CheckIndicator.tsx +2 -1
  695. package/src/Indicator/CheckboxIndicator.spec.md +40 -37
  696. package/src/Indicator/CheckboxIndicator.tsx +3 -1
  697. package/src/Indicator/Indicator.spec.md +188 -0
  698. package/src/Indicator/RadioIndicator.tsx +3 -1
  699. package/src/InfoTip/InfoTip.spec.md +193 -0
  700. package/src/Item/Item.tsx +21 -13
  701. package/src/Item/ItemSwipeLayer.tsx +9 -2
  702. package/src/Kbd/Kbd.spec.md +81 -38
  703. package/src/Layer/popoverOperations.ts +172 -0
  704. package/src/Layer/useLayer.tsx +145 -77
  705. package/src/Layer/useTouchTrigger.ts +107 -18
  706. package/src/Layout/Layout.spec.md +127 -131
  707. package/src/Layout/Layout.tsx +1 -1
  708. package/src/Layout/LayoutContent.spec.md +205 -0
  709. package/src/Layout/LayoutContent.tsx +1 -1
  710. package/src/Layout/LayoutFooter.spec.md +190 -0
  711. package/src/Layout/LayoutFooter.tsx +1 -1
  712. package/src/Layout/LayoutHeader.spec.md +193 -0
  713. package/src/Layout/LayoutHeader.tsx +1 -1
  714. package/src/Layout/LayoutPanel.spec.md +216 -0
  715. package/src/Lightbox/Lightbox.spec.md +249 -61
  716. package/src/Lightbox/Lightbox.tsx +5 -0
  717. package/src/Link/Link.spec.md +3 -2
  718. package/src/Link/Link.tsx +20 -2
  719. package/src/List/List.tsx +1 -1
  720. package/src/List/ListItem.spec.md +205 -0
  721. package/src/List/ListItem.tsx +3 -3
  722. package/src/Markdown/Markdown.tsx +1 -0
  723. package/src/MetadataList/MetadataList.spec.md +187 -0
  724. package/src/MetadataList/MetadataList.tsx +4 -2
  725. package/src/MetadataList/MetadataListItem.spec.md +165 -0
  726. package/src/MetadataList/MetadataListItem.tsx +2 -1
  727. package/src/MobileNav/MobileNav.tsx +9 -1
  728. package/src/MultiSelector/MultiSelector.spec.md +124 -114
  729. package/src/MultiSelector/MultiSelector.tsx +82 -46
  730. package/src/NavMenu/NavHeadingMenu.spec.md +1 -5
  731. package/src/NavMenu/NavHeadingMenuItem.tsx +5 -39
  732. package/src/NumberInput/NumberInput.doc.mjs +13 -7
  733. package/src/NumberInput/NumberInput.spec.md +59 -37
  734. package/src/NumberInput/NumberInput.tsx +39 -6
  735. package/src/NumberInput/numberParser.ts +7 -45
  736. package/src/Outline/Outline.spec.md +165 -69
  737. package/src/Outline/Outline.tsx +23 -0
  738. package/src/Outline/modules/parseOutlineFromMarkdown.spec.md +3 -4
  739. package/src/OverflowList/OverflowList.spec.md +102 -55
  740. package/src/OverflowList/OverflowList.tsx +2 -1
  741. package/src/Pagination/Pagination.spec.md +158 -84
  742. package/src/Pagination/Pagination.tsx +1 -0
  743. package/src/Popover/Popover.tsx +36 -16
  744. package/src/Popover/usePopover.tsx +17 -5
  745. package/src/PowerSearch/PowerSearch.tsx +46 -33
  746. package/src/ProgressBar/ProgressBar.spec.md +143 -119
  747. package/src/ProgressBar/ProgressBar.tsx +58 -10
  748. package/src/RadioList/RadioList.spec.md +1 -1
  749. package/src/RadioList/RadioList.tsx +13 -2
  750. package/src/RadioList/RadioListItem.tsx +20 -3
  751. package/src/RadioList/RadioListReasonContext.ts +25 -0
  752. package/src/Resizable/Resizable.spec.md +152 -124
  753. package/src/Resizable/useResizable.ts +82 -16
  754. package/src/SegmentedControl/SegmentedControl.spec.md +36 -39
  755. package/src/SegmentedControl/SegmentedControl.tsx +43 -8
  756. package/src/SegmentedControl/SegmentedControlContext.ts +6 -0
  757. package/src/SegmentedControl/SegmentedControlItem.spec.md +1 -1
  758. package/src/SegmentedControl/SegmentedControlItem.tsx +23 -6
  759. package/src/Selector/Selector.tsx +22 -8
  760. package/src/Selector/hooks.ts +2 -2
  761. package/src/Selector/useSelectorPresentation.ts +39 -4
  762. package/src/SideNav/SideNav.spec.md +8 -8
  763. package/src/SideNav/SideNavItem.spec.md +14 -24
  764. package/src/SideNav/SideNavItem.tsx +27 -10
  765. package/src/Skeleton/Skeleton.tsx +3 -1
  766. package/src/Slider/Slider.spec.md +18 -16
  767. package/src/Slider/Slider.tsx +124 -22
  768. package/src/Spinner/Spinner.tsx +5 -3
  769. package/src/Stack/Stack.tsx +1 -1
  770. package/src/Stack/StackItem.tsx +1 -1
  771. package/src/StatusDot/StatusDot.spec.md +77 -54
  772. package/src/Stepper/Step.spec.md +36 -42
  773. package/src/Stepper/Step.tsx +33 -6
  774. package/src/Stepper/Stepper.doc.mjs +1 -1
  775. package/src/Switch/Switch.spec.md +1 -1
  776. package/src/Switch/Switch.tsx +11 -3
  777. package/src/TabList/TabList.tsx +16 -1
  778. package/src/Table/BaseTable.tsx +2 -1
  779. package/src/Table/Table.spec.md +1 -1
  780. package/src/Table/Table.tsx +43 -11
  781. package/src/Table/glidingDivider.ts +8 -3
  782. package/src/Table/plugins/columnResize/useTableColumnResize.tsx +8 -4
  783. package/src/Table/plugins/sortable/useTableSortable.tsx +46 -73
  784. package/src/Table/plugins/stickyColumns/useTableStickyColumns.tsx +1 -2
  785. package/src/Text/Text.tsx +1 -1
  786. package/src/Text/useTruncation.ts +23 -5
  787. package/src/TextArea/TextArea.spec.md +10 -13
  788. package/src/TextArea/TextArea.tsx +18 -3
  789. package/src/TextInput/TextInput.tsx +5 -3
  790. package/src/TimeInput/TimeInput.doc.mjs +8 -8
  791. package/src/TimeInput/TimeInput.spec.md +58 -61
  792. package/src/TimeInput/TimeInput.tsx +38 -20
  793. package/src/TimeInput/TouchTimeField.tsx +4 -6
  794. package/src/Timestamp/Timestamp.spec.md +6 -12
  795. package/src/Timestamp/Timestamp.tsx +6 -2
  796. package/src/Timestamp/TimestampHoverCard.tsx +4 -4
  797. package/src/Toast/Toast.spec.md +15 -24
  798. package/src/Toast/Toast.tsx +104 -36
  799. package/src/Toast/ToastViewport.tsx +121 -53
  800. package/src/Toast/useToast.tsx +8 -3
  801. package/src/ToggleButton/ToggleButton.tsx +10 -3
  802. package/src/ToggleButton/ToggleButtonGroup.tsx +20 -1
  803. package/src/Token/Token.doc.mjs +2 -2
  804. package/src/Token/Token.spec.md +52 -61
  805. package/src/Token/Token.tsx +75 -5
  806. package/src/Token/TokenLink.tsx +21 -7
  807. package/src/Tokenizer/Tokenizer.doc.mjs +12 -8
  808. package/src/Tokenizer/Tokenizer.spec.md +18 -4
  809. package/src/Tokenizer/Tokenizer.tsx +119 -65
  810. package/src/Tokenizer/TokenizerBottomSheet.tsx +11 -17
  811. package/src/Tokenizer/TokenizerClearAllMessageContext.ts +21 -0
  812. package/src/Toolbar/Toolbar.spec.md +5 -6
  813. package/src/Toolbar/Toolbar.tsx +2 -1
  814. package/src/Tooltip/Tooltip.doc.mjs +3 -3
  815. package/src/Tooltip/Tooltip.spec.md +139 -41
  816. package/src/Tooltip/useTooltip.doc.mjs +1 -1
  817. package/src/TopNav/TopNavMegaMenu.tsx +8 -4
  818. package/src/TopNav/TopNavMenu.tsx +1 -0
  819. package/src/TreeList/TreeList.tsx +6 -3
  820. package/src/TreeList/TreeListItem.tsx +31 -7
  821. package/src/Typeahead/BaseTypeahead.doc.mjs +10 -7
  822. package/src/Typeahead/BaseTypeahead.spec.md +45 -45
  823. package/src/Typeahead/BaseTypeahead.tsx +361 -48
  824. package/src/Typeahead/Typeahead.doc.mjs +21 -4
  825. package/src/Typeahead/Typeahead.tsx +53 -11
  826. package/src/Typeahead/TypeaheadItem.doc.mjs +6 -3
  827. package/src/Typeahead/index.ts +1 -1
  828. package/src/Typeahead/types.ts +27 -3
  829. package/src/gestures/GestureArena.ts +111 -11
  830. package/src/gestures/GestureHost.ts +2064 -0
  831. package/src/gestures/GestureRecognizer.ts +21 -1
  832. package/src/gestures/LongPressGestureRecognizer.ts +4 -0
  833. package/src/gestures/PanGestureRecognizer.ts +4 -0
  834. package/src/gestures/PinchGestureRecognizer.ts +148 -0
  835. package/src/gestures/PressTracker.ts +386 -0
  836. package/src/gestures/README.md +420 -0
  837. package/src/gestures/ScreenEdgePanGestureRecognizer.ts +256 -0
  838. package/src/gestures/SwipeGestureRecognizer.ts +197 -0
  839. package/src/gestures/TapGestureRecognizer.ts +4 -0
  840. package/src/gestures/VelocityTracker.ts +10 -3
  841. package/src/gestures/haptics.ts +196 -0
  842. package/src/gestures/index.ts +79 -0
  843. package/src/gestures/nativeScroll.ts +277 -0
  844. package/src/gestures/touchAction.ts +191 -0
  845. package/src/gestures/touchActionRule.ts +157 -0
  846. package/src/gestures/types.ts +30 -9
  847. package/src/gestures/useGestureRecognizer.ts +305 -0
  848. package/src/hooks/index.ts +5 -1
  849. package/src/hooks/menuPressMarker.ts +15 -0
  850. package/src/hooks/modalAnnounce.ts +129 -72
  851. package/src/hooks/scrollKeyboardDelegation.ts +9 -3
  852. package/src/hooks/useAdaptivePresentation.ts +4 -1
  853. package/src/hooks/useAnnounce.doc.mjs +35 -3
  854. package/src/hooks/useAnnounce.ts +209 -102
  855. package/src/hooks/useAnnounceRenderedText.ts +17 -3
  856. package/src/hooks/useBusyAnnouncement.ts +7 -10
  857. package/src/hooks/useClickableContainer.ts +48 -17
  858. package/src/hooks/useFocusReturnVisibility.ts +15 -12
  859. package/src/hooks/useInputStatusIcon.tsx +2 -2
  860. package/src/hooks/useListFocus.ts +38 -1
  861. package/src/hooks/useMenuHover.ts +15 -1
  862. package/src/hooks/useMenuPress.ts +5 -5
  863. package/src/hooks/useScrollOverflow.doc.mjs +1 -1
  864. package/src/hooks/useScrollOverflow.ts +59 -10
  865. package/src/i18n/generated-locales/af-ZA.generated.ts +0 -7
  866. package/src/i18n/generated-locales/ar-SA.generated.ts +0 -6
  867. package/src/i18n/generated-locales/ca-ES.generated.ts +0 -7
  868. package/src/i18n/generated-locales/cs-CZ.generated.ts +0 -6
  869. package/src/i18n/generated-locales/da-DK.generated.ts +0 -6
  870. package/src/i18n/generated-locales/de-DE.generated.ts +0 -6
  871. package/src/i18n/generated-locales/el-GR.generated.ts +0 -7
  872. package/src/i18n/generated-locales/en.generated.ts +9 -6
  873. package/src/i18n/generated-locales/es-ES.generated.ts +0 -7
  874. package/src/i18n/generated-locales/fi-FI.generated.ts +0 -6
  875. package/src/i18n/generated-locales/fr-FR.generated.ts +0 -7
  876. package/src/i18n/generated-locales/he-IL.generated.ts +0 -6
  877. package/src/i18n/generated-locales/hu-HU.generated.ts +0 -6
  878. package/src/i18n/generated-locales/it-IT.generated.ts +0 -7
  879. package/src/i18n/generated-locales/ja-JP.generated.ts +0 -6
  880. package/src/i18n/generated-locales/ko-KR.generated.ts +0 -6
  881. package/src/i18n/generated-locales/nl-NL.generated.ts +0 -6
  882. package/src/i18n/generated-locales/no-NO.generated.ts +0 -6
  883. package/src/i18n/generated-locales/pl-PL.generated.ts +0 -7
  884. package/src/i18n/generated-locales/pseudo.generated.ts +9 -6
  885. package/src/i18n/generated-locales/pt-BR.generated.ts +0 -7
  886. package/src/i18n/generated-locales/pt-PT.generated.ts +0 -7
  887. package/src/i18n/generated-locales/ro-RO.generated.ts +0 -6
  888. package/src/i18n/generated-locales/ru-RU.generated.ts +0 -7
  889. package/src/i18n/generated-locales/sr-SP.generated.ts +0 -6
  890. package/src/i18n/generated-locales/sv-SE.generated.ts +0 -6
  891. package/src/i18n/generated-locales/tr-TR.generated.ts +0 -7
  892. package/src/i18n/generated-locales/uk-UA.generated.ts +0 -7
  893. package/src/i18n/generated-locales/vi-VN.generated.ts +0 -6
  894. package/src/i18n/generated-locales/zh-CN.generated.ts +0 -6
  895. package/src/i18n/generated-locales/zh-TW.generated.ts +0 -6
  896. package/src/i18n/useListFormatter.ts +42 -0
  897. package/src/motion/MEASUREMENTS.md +2 -1
  898. package/src/motion/README.md +113 -33
  899. package/src/motion/animator.ts +987 -132
  900. package/src/motion/coast.ts +10 -3
  901. package/src/motion/reducedMotion.ts +12 -2
  902. package/src/motion/reducedMotionPlan.ts +20 -1
  903. package/src/motion/resolveMotion.ts +68 -0
  904. package/src/motion/roleValue.ts +2 -1
  905. package/src/motion/uikit/timing.ts +15 -1
  906. package/src/privateAttributes/segmentDisabled.stylex.ts +28 -0
  907. package/src/theme/Theme.doc.mjs +1 -1
  908. package/src/theme/Theme.tsx +8 -4
  909. package/src/theme/defineTheme.ts +117 -8
  910. package/src/theme/domainTokens/domainTokenDefaults.ts +19 -0
  911. package/src/theme/domainTokens/index.ts +6 -10
  912. package/src/theme/index.ts +5 -0
  913. package/src/theme/motionKnobs.ts +82 -0
  914. package/src/theme/resolveThemeValues.ts +68 -6
  915. package/src/theme/themeAdaptations.ts +52 -12
  916. package/src/theme/themeMotion.ts +221 -0
  917. package/src/theme/tokenReferences.ts +149 -0
  918. package/src/theme/tokens.stylex.ts +10 -0
  919. package/src/theme/tokens.ts +15 -158
  920. package/src/theme/useTheme.ts +6 -1
  921. package/src/utils/focusOutline.stylex.ts +28 -0
  922. package/src/utils/focusReturn.ts +19 -6
  923. package/src/utils/getNodeText.ts +38 -0
  924. package/src/utils/interactionModality.ts +197 -17
  925. package/src/utils/interactionOverlay.stylex.ts +12 -3
  926. package/src/utils/plainDate.ts +58 -3
  927. package/src/utils/presentation.ts +180 -0
  928. package/src/utils/pressDisabled.ts +32 -0
  929. package/src/utils/pressFeedback.ts +39 -14
  930. package/src/utils/primaryClick.ts +28 -0
  931. package/src/utils/sharedMutationObserver.ts +87 -29
  932. package/src/utils/timeFormat.ts +314 -0
  933. package/src/utils/touchPresentation.stylex.ts +43 -0
  934. package/src/utils/touchPresentation.ts +13 -8
  935. package/src/utils/touchQueries.ts +15 -0
  936. package/src/utils/unicodeDigits.ts +71 -0
  937. package/src/utils/useFocusAcrossSwap.ts +55 -0
  938. package/dist/Item/ItemMarkerColumns.a11y.chromium.spec.d.ts +0 -2
  939. package/dist/Item/ItemMarkerColumns.a11y.chromium.spec.js +0 -132
  940. package/dist/Lightbox/LightboxKeyboard.a11y.browser.spec.d.ts +0 -2
  941. package/dist/Lightbox/LightboxKeyboard.a11y.browser.spec.js +0 -78
  942. package/dist/Lightbox/LightboxViewport.a11y.browser.spec.d.ts +0 -2
  943. package/dist/Lightbox/LightboxViewport.a11y.browser.spec.js +0 -65
  944. package/dist/List/ListMarkers.a11y.chromium.spec.d.ts +0 -2
  945. package/dist/List/ListMarkers.a11y.chromium.spec.js +0 -677
  946. package/dist/Markdown/Markdown.fr23.bench.d.ts +0 -2
  947. package/dist/Markdown/Markdown.fr23.bench.d.ts.map +0 -1
  948. package/dist/Markdown/Markdown.fr23.bench.js +0 -152
  949. package/dist/Markdown/MarkdownTable.a11y.chromium.spec.d.ts +0 -2
  950. package/dist/Markdown/MarkdownTable.a11y.chromium.spec.js +0 -590
  951. package/dist/Markdown/plugins/headingLinks.a11y.chromium.spec.d.ts +0 -2
  952. package/dist/Markdown/plugins/headingLinks.a11y.chromium.spec.js +0 -657
  953. package/dist/MobileNav/MobileNavPinchZoom.a11y.chromium.spec.d.ts +0 -2
  954. package/dist/MobileNav/MobileNavPinchZoom.a11y.chromium.spec.js +0 -153
  955. package/dist/MultiSelector/CreateRow.a11y.chromium.spec.d.ts +0 -2
  956. package/dist/MultiSelector/CreateRow.a11y.chromium.spec.js +0 -116
  957. package/dist/MultiSelector/MultiSelector.disabledFocus.a11y.chromium.spec.d.ts +0 -2
  958. package/dist/MultiSelector/MultiSelector.disabledFocus.a11y.chromium.spec.js +0 -49
  959. package/dist/MultiSelector/OptionActions.a11y.chromium.spec.d.ts +0 -2
  960. package/dist/MultiSelector/OptionActions.a11y.chromium.spec.js +0 -273
  961. package/dist/Outline/OutlineFocus.a11y.chromium.spec.d.ts +0 -2
  962. package/dist/Outline/OutlineFocus.a11y.chromium.spec.js +0 -421
  963. package/dist/Typeahead/BaseTypeahead.emptyState.a11y.chromium.spec.d.ts +0 -2
  964. package/dist/Typeahead/BaseTypeahead.emptyState.a11y.chromium.spec.js +0 -118
  965. package/dist/reset.a11y.chromium.spec.d.ts +0 -2
  966. package/dist/reset.a11y.chromium.spec.js +0 -231
  967. package/dist/reset.until-found.a11y.browser.spec.d.ts +0 -2
  968. package/dist/reset.until-found.a11y.browser.spec.js +0 -72
  969. package/src/AlertDialog/AlertDialog.test.tsx +0 -519
  970. package/src/AlertDialog/__tests__/AlertDialog.a11y.chromium.spec.ts +0 -116
  971. package/src/AlertDialog/__tests__/AlertDialog.a11y.renders.tsx +0 -52
  972. package/src/AlertDialog/__tests__/AlertDialog.a11y.states.ts +0 -68
  973. package/src/AlertDialog/__tests__/AlertDialog.a11y.test.tsx +0 -144
  974. package/src/AlertDialog/useImperativeAlertDialog.test.tsx +0 -163
  975. package/src/AppShell/AppShell.test.tsx +0 -1148
  976. package/src/AspectRatio/AspectRatio.test.tsx +0 -398
  977. package/src/AspectRatio/__tests__/AspectRatioFitLayers.a11y.browser.spec.ts +0 -158
  978. package/src/Avatar/Avatar.test.tsx +0 -867
  979. package/src/Avatar/AvatarStatusDot.test.tsx +0 -306
  980. package/src/AvatarGroup/AvatarGroup.test.tsx +0 -313
  981. package/src/AvatarGroup/AvatarGroupOverflow.test.tsx +0 -263
  982. package/src/Badge/Badge.test.tsx +0 -125
  983. package/src/Banner/Banner.test.tsx +0 -879
  984. package/src/Blockquote/Blockquote.test.tsx +0 -121
  985. package/src/BottomSheet/BottomSheet.test.tsx +0 -3108
  986. package/src/BottomSheet/BottomSheetEdgeTint.test.tsx +0 -248
  987. package/src/BottomSheet/BottomSheetKeyboard.test.tsx +0 -195
  988. package/src/BottomSheet/BottomSheetPanel.test.tsx +0 -549
  989. package/src/BottomSheet/BottomSheetReplace.test.tsx +0 -1638
  990. package/src/BottomSheet/BottomSheetStacking.announce.test.tsx +0 -246
  991. package/src/BottomSheet/BottomSheetStacking.test.tsx +0 -3184
  992. package/src/BottomSheet/BottomSheetSwitcher.test.tsx +0 -2010
  993. package/src/BottomSheet/__tests__/BottomSheetDrag.a11y.chromium.spec.ts +0 -129
  994. package/src/BottomSheet/__tests__/BottomSheetFocusReturn.a11y.browser.spec.ts +0 -97
  995. package/src/BottomSheet/__tests__/BottomSheetKeyboard.a11y.browser.spec.ts +0 -415
  996. package/src/BottomSheet/__tests__/BottomSheetNativeModal.a11y.browser.spec.ts +0 -462
  997. package/src/BottomSheet/__tests__/BottomSheetPinchZoom.a11y.chromium.spec.ts +0 -247
  998. package/src/BottomSheet/__tests__/BottomSheetToastOutlet.a11y.chromium.spec.ts +0 -83
  999. package/src/BottomSheet/snapOffsets.test.ts +0 -254
  1000. package/src/BottomSheet/useSheetGestures.test.ts +0 -1638
  1001. package/src/Breadcrumbs/Breadcrumbs.test.tsx +0 -921
  1002. package/src/Breadcrumbs/__tests__/Breadcrumbs.a11y.chromium.spec.ts +0 -120
  1003. package/src/Breadcrumbs/__tests__/Breadcrumbs.a11y.renders.tsx +0 -45
  1004. package/src/Breadcrumbs/__tests__/Breadcrumbs.a11y.states.ts +0 -81
  1005. package/src/Breadcrumbs/__tests__/Breadcrumbs.a11y.test.tsx +0 -125
  1006. package/src/Button/Button.test.tsx +0 -864
  1007. package/src/Button/__tests__/Button.a11y.chromium.spec.ts +0 -355
  1008. package/src/Button/__tests__/Button.a11y.harnesses.tsx +0 -47
  1009. package/src/Button/__tests__/Button.a11y.known-failures.ts +0 -25
  1010. package/src/Button/__tests__/Button.a11y.renders.tsx +0 -139
  1011. package/src/Button/__tests__/Button.a11y.states.ts +0 -317
  1012. package/src/Button/__tests__/Button.a11y.test.tsx +0 -187
  1013. package/src/ButtonGroup/ButtonGroup.test.tsx +0 -1025
  1014. package/src/Calendar/Calendar.test.tsx +0 -2186
  1015. package/src/Calendar/__tests__/Calendar.a11y.chromium.spec.ts +0 -127
  1016. package/src/Calendar/__tests__/Calendar.a11y.known-failures.ts +0 -12
  1017. package/src/Calendar/__tests__/Calendar.a11y.renders.tsx +0 -57
  1018. package/src/Calendar/__tests__/Calendar.a11y.states.ts +0 -139
  1019. package/src/Calendar/__tests__/Calendar.a11y.test.tsx +0 -137
  1020. package/src/Calendar/dayCellUtils.test.ts +0 -520
  1021. package/src/Calendar/getInitialFocusDate.test.ts +0 -94
  1022. package/src/Calendar/getStandaloneShortWeekdayNames.test.ts +0 -54
  1023. package/src/Calendar/hooks/useCalendarConstraints.test.ts +0 -153
  1024. package/src/Calendar/hooks/useCalendarDays.test.ts +0 -265
  1025. package/src/Calendar/hooks/useCalendarNavigation.test.ts +0 -252
  1026. package/src/Card/Card.test.tsx +0 -202
  1027. package/src/Carousel/Carousel.test.tsx +0 -915
  1028. package/src/Carousel/__tests__/Carousel.a11y.chromium.spec.ts +0 -193
  1029. package/src/Carousel/__tests__/Carousel.a11y.known-failures.ts +0 -27
  1030. package/src/Carousel/__tests__/Carousel.a11y.renders.tsx +0 -39
  1031. package/src/Carousel/__tests__/Carousel.a11y.states.ts +0 -139
  1032. package/src/Carousel/__tests__/Carousel.a11y.test.tsx +0 -127
  1033. package/src/Center/Center.test.tsx +0 -406
  1034. package/src/Chat/ChatComposer.test.tsx +0 -364
  1035. package/src/Chat/ChatComposerDrawer.test.tsx +0 -130
  1036. package/src/Chat/ChatComposerInput.test.tsx +0 -2136
  1037. package/src/Chat/ChatComposerTokenElement.test.tsx +0 -85
  1038. package/src/Chat/ChatDictationButton.test.tsx +0 -108
  1039. package/src/Chat/ChatLayout.test.tsx +0 -311
  1040. package/src/Chat/ChatLayoutScrollButton.test.tsx +0 -99
  1041. package/src/Chat/ChatMessage.test.tsx +0 -344
  1042. package/src/Chat/ChatMessageBubble.test.tsx +0 -294
  1043. package/src/Chat/ChatMessageList.test.tsx +0 -198
  1044. package/src/Chat/ChatMessageMetadata.test.tsx +0 -66
  1045. package/src/Chat/ChatPastedTextToken.test.tsx +0 -71
  1046. package/src/Chat/ChatSendButton.test.tsx +0 -309
  1047. package/src/Chat/ChatSystemMessage.test.tsx +0 -189
  1048. package/src/Chat/ChatTokenizedText.test.tsx +0 -163
  1049. package/src/Chat/ChatToolCalls.test.tsx +0 -413
  1050. package/src/Chat/__tests__/ChatLayoutScrollButton.a11y.chromium.spec.ts +0 -577
  1051. package/src/Chat/__tests__/ChatLayoutScrollButtonSurface.a11y.chromium.spec.ts +0 -740
  1052. package/src/Chat/__tests__/ChatMessageBubble.a11y.chromium.spec.ts +0 -457
  1053. package/src/Chat/__tests__/ChatMessageBubble.auditProvenance.test.ts +0 -91
  1054. package/src/Chat/__tests__/ChatMessageBubble.auditProvenance.ts +0 -91
  1055. package/src/Chat/__tests__/ChatMessageList.a11y.chromium.spec.ts +0 -465
  1056. package/src/Chat/__tests__/ChatMessageMetadata.a11y.chromium.spec.ts +0 -416
  1057. package/src/Chat/__tests__/ChatSendButton.a11y.chromium.spec.ts +0 -1523
  1058. package/src/Chat/__tests__/ChatSystemMessage.a11y.chromium.spec.ts +0 -1004
  1059. package/src/Chat/__tests__/ChatTokenizedText.a11y.chromium.spec.ts +0 -574
  1060. package/src/Chat/__tests__/useChatStreamScroll.a11y.chromium.spec.ts +0 -263
  1061. package/src/Chat/__tests__/useChatStreamScroll.fixture.tsx +0 -61
  1062. package/src/Chat/useChatDictation.test.tsx +0 -369
  1063. package/src/Chat/useChatNewMessages.test.tsx +0 -209
  1064. package/src/Chat/useChatPasteAsToken.test.ts +0 -191
  1065. package/src/Chat/useChatStreamScroll.test.tsx +0 -381
  1066. package/src/Chat/useTriggerMenu.test.tsx +0 -994
  1067. package/src/CheckboxInput/CheckboxInput.test.tsx +0 -926
  1068. package/src/CheckboxInput/__tests__/Checkbox.a11y.chromium.spec.ts +0 -354
  1069. package/src/CheckboxInput/__tests__/Checkbox.a11y.known-failures.ts +0 -54
  1070. package/src/CheckboxInput/__tests__/Checkbox.a11y.renders.tsx +0 -310
  1071. package/src/CheckboxInput/__tests__/Checkbox.a11y.states.ts +0 -404
  1072. package/src/CheckboxInput/__tests__/Checkbox.a11y.test.tsx +0 -128
  1073. package/src/CheckboxList/CheckboxList.fr10.test.tsx +0 -51
  1074. package/src/CheckboxList/CheckboxList.test.tsx +0 -1159
  1075. package/src/CheckboxList/__tests__/CheckboxList.a11y.chromium.spec.ts +0 -1998
  1076. package/src/Citation/Citation.test.tsx +0 -361
  1077. package/src/ClickableCard/ClickableCard.test.tsx +0 -286
  1078. package/src/Code/Code.test.tsx +0 -75
  1079. package/src/CodeBlock/CodeBlock.highlightStyles.test.tsx +0 -87
  1080. package/src/CodeBlock/CodeBlock.test.tsx +0 -752
  1081. package/src/CodeBlock/CodeLanguage.test.tsx +0 -173
  1082. package/src/CodeBlock/__tests__/CodeBlockCopyClearance.a11y.chromium.spec.ts +0 -290
  1083. package/src/CodeBlock/__tests__/CodeBlockLanguages.a11y.chromium.spec.ts +0 -64
  1084. package/src/CodeBlock/__tests__/CodeBlockOverflowStop.a11y.chromium.spec.ts +0 -126
  1085. package/src/CodeBlock/__tests__/DiffRowPaint.a11y.chromium.spec.ts +0 -94
  1086. package/src/CodeBlock/highlightRanges.test.ts +0 -253
  1087. package/src/CodeBlock/languages.test.ts +0 -402
  1088. package/src/CodeBlock/tokenizer.test.ts +0 -280
  1089. package/src/CodeBlock/tokenizerBudget.test.ts +0 -112
  1090. package/src/Collapsible/Collapsible.test.tsx +0 -620
  1091. package/src/Collapsible/CollapsibleGroup.test.tsx +0 -656
  1092. package/src/Collapsible/__tests__/Collapsible.a11y.chromium.spec.ts +0 -183
  1093. package/src/Collapsible/__tests__/Collapsible.a11y.states.ts +0 -117
  1094. package/src/Collapsible/__tests__/Collapsible.a11y.test.tsx +0 -140
  1095. package/src/Collapsible/__tests__/CollapsibleGroup.a11y.chromium.spec.ts +0 -559
  1096. package/src/Collapsible/__tests__/CollapsibleGroup.a11y.renders.tsx +0 -45
  1097. package/src/Collapsible/__tests__/CollapsibleGroup.a11y.states.ts +0 -139
  1098. package/src/Collapsible/__tests__/CollapsibleGroup.a11y.test.tsx +0 -135
  1099. package/src/Collapsible/__tests__/CollapsibleGroupAccordion.a11y.chromium.spec.ts +0 -129
  1100. package/src/Collapsible/useCollapsible.test.tsx +0 -236
  1101. package/src/CommandPalette/CommandPalette.perf.test.ts +0 -100
  1102. package/src/CommandPalette/CommandPalette.test.tsx +0 -750
  1103. package/src/CommandPalette/CommandPaletteEmpty.test.tsx +0 -101
  1104. package/src/CommandPalette/CommandPaletteFooter.test.tsx +0 -122
  1105. package/src/CommandPalette/CommandPaletteGroup.test.tsx +0 -129
  1106. package/src/CommandPalette/CommandPaletteInput.test.tsx +0 -539
  1107. package/src/CommandPalette/CommandPaletteItem.test.tsx +0 -417
  1108. package/src/CommandPalette/CommandPaletteList.test.tsx +0 -184
  1109. package/src/CommandPalette/__tests__/CommandPalette.a11y.chromium.spec.ts +0 -600
  1110. package/src/CommandPalette/__tests__/CommandPaletteEmptyAudit.a11y.chromium.spec.ts +0 -715
  1111. package/src/CommandPalette/__tests__/CommandPaletteFooter.a11y.chromium.spec.ts +0 -582
  1112. package/src/CommandPalette/__tests__/CommandPaletteInputAudit.a11y.chromium.spec.ts +0 -336
  1113. package/src/CommandPalette/__tests__/CommandPaletteItemAudit.a11y.chromium.spec.ts +0 -523
  1114. package/src/ComplexSelector/ComplexSelector.focusableDisabled.test.tsx +0 -76
  1115. package/src/ComplexSelector/ComplexSelector.fr10.test.tsx +0 -262
  1116. package/src/ComplexSelector/ComplexSelector.test.tsx +0 -1023
  1117. package/src/ComplexSelector/__tests__/ComplexSelector.a11y.chromium.spec.ts +0 -965
  1118. package/src/ContextMenu/ContextMenu.test.tsx +0 -1582
  1119. package/src/ContextMenu/ContextMenu.triggerProps.test.tsx +0 -54
  1120. package/src/ContextMenu/__tests__/ContextMenuAudit.a11y.chromium.spec.ts +0 -439
  1121. package/src/ContextMenu/__tests__/ContextMenuCursorAnchor.a11y.browser.spec.ts +0 -154
  1122. package/src/ContextMenu/__tests__/ContextMenuLongPress.a11y.chromium.spec.ts +0 -117
  1123. package/src/DateInput/DateInput.fr10.test.tsx +0 -283
  1124. package/src/DateInput/DateInput.test.tsx +0 -1459
  1125. package/src/DateInput/DateInputTouch.test.tsx +0 -2828
  1126. package/src/DateInput/NativeDateField.test.tsx +0 -741
  1127. package/src/DateInput/Presentation.test.tsx +0 -121
  1128. package/src/DateInput/__tests__/DateInputAudit.a11y.chromium.spec.ts +0 -577
  1129. package/src/DateInput/__tests__/WheelPinchZoom.a11y.chromium.spec.ts +0 -171
  1130. package/src/DateRangeInput/DateRangeInput.fr10.test.tsx +0 -165
  1131. package/src/DateRangeInput/DateRangeInput.test.tsx +0 -1108
  1132. package/src/DateTimeInput/DateTimeInput.fr10.test.tsx +0 -319
  1133. package/src/DateTimeInput/DateTimeInput.test.tsx +0 -2575
  1134. package/src/DateTimeInput/DateTimeInputTouch.test.tsx +0 -1071
  1135. package/src/DateTimeInput/NativePickerSegments.test.tsx +0 -657
  1136. package/src/DateTimeInput/Presentation.test.tsx +0 -89
  1137. package/src/Dialog/Dialog.source-build.test.mjs +0 -43
  1138. package/src/Dialog/Dialog.test.tsx +0 -1385
  1139. package/src/Dialog/DialogHeader.test.tsx +0 -477
  1140. package/src/Dialog/__tests__/Dialog.a11y.browser.spec.ts +0 -111
  1141. package/src/Dialog/__tests__/Dialog.a11y.chromium.spec.ts +0 -218
  1142. package/src/Dialog/__tests__/Dialog.a11y.known-failures.ts +0 -28
  1143. package/src/Dialog/__tests__/Dialog.a11y.renders.tsx +0 -107
  1144. package/src/Dialog/__tests__/Dialog.a11y.states.ts +0 -104
  1145. package/src/Dialog/__tests__/Dialog.a11y.test.tsx +0 -102
  1146. package/src/Dialog/__tests__/Dialog.reduced-motion.a11y.browser.spec.ts +0 -252
  1147. package/src/Dialog/useImperativeDialog.test.tsx +0 -78
  1148. package/src/Divider/Divider.test.tsx +0 -155
  1149. package/src/Drawer/Drawer.test.tsx +0 -1300
  1150. package/src/Drawer/DrawerDirection.test.tsx +0 -127
  1151. package/src/Drawer/DrawerHeader.test.tsx +0 -102
  1152. package/src/Drawer/__tests__/DrawerAudit.a11y.chromium.spec.ts +0 -402
  1153. package/src/Drawer/__tests__/DrawerHeaderAudit.a11y.chromium.spec.ts +0 -298
  1154. package/src/DropdownMenu/DropdownMenu.ssr.test.tsx +0 -93
  1155. package/src/DropdownMenu/DropdownMenu.test.tsx +0 -4340
  1156. package/src/DropdownMenu/DropdownMenuContext.public.test.ts +0 -22
  1157. package/src/DropdownMenu/DropdownMenuLazySheet.test.tsx +0 -126
  1158. package/src/DropdownMenu/DropdownMenuSelectable.test.tsx +0 -635
  1159. package/src/DropdownMenu/DropdownMenuSheetFirstOpen.test.tsx +0 -72
  1160. package/src/DropdownMenu/DropdownMenuSubMenu.test.tsx +0 -2408
  1161. package/src/DropdownMenu/__tests__/DropdownMenuDividerAudit.a11y.chromium.spec.ts +0 -281
  1162. package/src/DropdownMenu/__tests__/DropdownMenuDrillIn.a11y.chromium.spec.ts +0 -175
  1163. package/src/DropdownMenu/__tests__/DropdownMenuFocusReturn.a11y.browser.spec.ts +0 -74
  1164. package/src/DropdownMenu/__tests__/DropdownMenuGroupAudit.a11y.chromium.spec.ts +0 -335
  1165. package/src/DropdownMenu/__tests__/DropdownMenuItemAudit.a11y.chromium.spec.ts +0 -367
  1166. package/src/DropdownMenu/__tests__/DropdownMenuRadioGroupAudit.a11y.chromium.spec.ts +0 -328
  1167. package/src/DropdownMenu/__tests__/DropdownMenuRadioItemAudit.a11y.chromium.spec.ts +0 -540
  1168. package/src/DropdownMenu/__tests__/DropdownMenuSubMenuAudit.a11y.chromium.spec.ts +0 -671
  1169. package/src/DropdownMenu/__tests__/Menu.a11y.chromium.spec.ts +0 -146
  1170. package/src/DropdownMenu/__tests__/Menu.a11y.known-failures.ts +0 -26
  1171. package/src/DropdownMenu/__tests__/Menu.a11y.renders.tsx +0 -65
  1172. package/src/DropdownMenu/__tests__/Menu.a11y.states.ts +0 -138
  1173. package/src/DropdownMenu/__tests__/Menu.a11y.test.tsx +0 -136
  1174. package/src/DropdownMenu/__tests__/MenuButton.a11y.chromium.spec.ts +0 -137
  1175. package/src/DropdownMenu/__tests__/MenuButton.a11y.known-failures.ts +0 -12
  1176. package/src/DropdownMenu/__tests__/MenuButton.a11y.renders.tsx +0 -67
  1177. package/src/DropdownMenu/__tests__/MenuButton.a11y.states.ts +0 -141
  1178. package/src/DropdownMenu/__tests__/MenuButton.a11y.test.tsx +0 -138
  1179. package/src/DropdownMenu/__tests__/MenuHeaderFooter.a11y.chromium.spec.ts +0 -231
  1180. package/src/DropdownMenu/__tests__/MenuHoverFocus.a11y.chromium.spec.ts +0 -238
  1181. package/src/DropdownMenu/__tests__/MenuPinchZoom.a11y.chromium.spec.ts +0 -173
  1182. package/src/DropdownMenu/__tests__/MenuPress.a11y.chromium.spec.ts +0 -503
  1183. package/src/DropdownMenu/__tests__/SubMenuHeaderFooter.a11y.chromium.spec.ts +0 -268
  1184. package/src/DropdownMenu/__tests__/warmMenuBottomSheet.tsx +0 -43
  1185. package/src/EmptyState/EmptyState.announce.test.tsx +0 -227
  1186. package/src/EmptyState/EmptyState.test.tsx +0 -284
  1187. package/src/Field/Field.test.tsx +0 -800
  1188. package/src/Field/FieldLabel.test.tsx +0 -244
  1189. package/src/Field/InputClearButton.test.tsx +0 -395
  1190. package/src/Field/__tests__/FieldLabelAudit.a11y.chromium.spec.ts +0 -297
  1191. package/src/Field/fieldInputFamily.test.tsx +0 -160
  1192. package/src/FieldStatus/FieldStatus.test.tsx +0 -482
  1193. package/src/FieldStatus/__tests__/StatusMessage.a11y.chromium.spec.ts +0 -206
  1194. package/src/FieldStatus/__tests__/StatusMessage.a11y.known-failures.ts +0 -13
  1195. package/src/FieldStatus/__tests__/StatusMessage.a11y.renders.tsx +0 -287
  1196. package/src/FieldStatus/__tests__/StatusMessage.a11y.states.ts +0 -302
  1197. package/src/FieldStatus/__tests__/StatusMessage.a11y.test.tsx +0 -154
  1198. package/src/FileInput/FileInput.fr10.test.tsx +0 -21
  1199. package/src/FileInput/FileInput.test.tsx +0 -1270
  1200. package/src/FormLayout/FormLayout.test.tsx +0 -444
  1201. package/src/FormLayout/__snapshots__/FormLayout.test.tsx.snap +0 -46
  1202. package/src/Grid/Grid.test.tsx +0 -509
  1203. package/src/HStack/HStack.test.tsx +0 -129
  1204. package/src/Heading/Heading.test.tsx +0 -328
  1205. package/src/HoverCard/HoverCard.test.tsx +0 -1339
  1206. package/src/Icon/Icon.test.tsx +0 -990
  1207. package/src/Icon/globalIconRegistry.test.tsx +0 -613
  1208. package/src/IconButton/IconButton.test.tsx +0 -156
  1209. package/src/Indicator/Indicator.test.tsx +0 -389
  1210. package/src/Indicator/indicatorRegistry.test.tsx +0 -106
  1211. package/src/InputGroup/InputGroup.test.tsx +0 -502
  1212. package/src/InteractiveRoleContext/InteractiveRoleContext.test.tsx +0 -185
  1213. package/src/Item/Item.source-build.test.mjs +0 -88
  1214. package/src/Item/Item.swipeLayer.test.tsx +0 -74
  1215. package/src/Item/Item.test.tsx +0 -1455
  1216. package/src/Item/ItemMarkerColumns.a11y.chromium.spec.ts +0 -211
  1217. package/src/Item/__tests__/ItemSwipeActions.a11y.chromium.spec.ts +0 -337
  1218. package/src/Item/__tests__/ItemSwipePinchZoom.a11y.chromium.spec.ts +0 -186
  1219. package/src/Kbd/Kbd.test.tsx +0 -299
  1220. package/src/Layer/LayerProvider.test.tsx +0 -143
  1221. package/src/Layer/__tests__/LayerReducedMotion.a11y.chromium.spec.ts +0 -176
  1222. package/src/Layer/__tests__/TouchTrigger.a11y.chromium.spec.ts +0 -200
  1223. package/src/Layer/anchorName.test.ts +0 -146
  1224. package/src/Layer/layerDismissalFamilies.test.tsx +0 -487
  1225. package/src/Layer/layerDismissalInvariants.test.tsx +0 -501
  1226. package/src/Layer/layerHost.test.ts +0 -117
  1227. package/src/Layer/layerScopedContext.test.tsx +0 -499
  1228. package/src/Layer/layerViewportInset.source-build.test.mjs +0 -90
  1229. package/src/Layer/layerViewportInset.test.ts +0 -120
  1230. package/src/Layer/useLayer.test.tsx +0 -2423
  1231. package/src/Layer/useLayerDismissal.test.tsx +0 -580
  1232. package/src/Layer/useTouchTrigger.test.ts +0 -70
  1233. package/src/Layout/Layout.test.tsx +0 -375
  1234. package/src/Layout/LayoutSlots.test.tsx +0 -376
  1235. package/src/Layout/__tests__/Layout.a11y.chromium.spec.ts +0 -122
  1236. package/src/Layout/__tests__/Layout.a11y.renders.tsx +0 -110
  1237. package/src/Layout/__tests__/Layout.a11y.states.ts +0 -93
  1238. package/src/Layout/__tests__/Layout.a11y.test.tsx +0 -142
  1239. package/src/Layout/__tests__/childrenAsContent.test.tsx +0 -59
  1240. package/src/Layout/__tests__/contentWidth.test.tsx +0 -303
  1241. package/src/Layout/__tests__/edgeCompensation.test.tsx +0 -191
  1242. package/src/Layout/__tests__/nestedPadding.test.tsx +0 -264
  1243. package/src/Layout/overlayPaddingReset.test.tsx +0 -224
  1244. package/src/Lightbox/Lightbox.test.tsx +0 -819
  1245. package/src/Lightbox/LightboxKeyboard.a11y.browser.spec.ts +0 -78
  1246. package/src/Lightbox/LightboxViewport.a11y.browser.spec.ts +0 -70
  1247. package/src/Lightbox/useLightbox.test.tsx +0 -263
  1248. package/src/Link/Link.test.tsx +0 -457
  1249. package/src/Link/__tests__/Link.a11y.chromium.spec.ts +0 -143
  1250. package/src/Link/__tests__/Link.a11y.renders.tsx +0 -97
  1251. package/src/Link/__tests__/Link.a11y.states.ts +0 -104
  1252. package/src/Link/__tests__/Link.a11y.test.tsx +0 -127
  1253. package/src/Link/__tests__/Link.navigation.a11y.chromium.spec.ts +0 -262
  1254. package/src/Link/useLinkComponent.test.tsx +0 -572
  1255. package/src/Link/useLinkify.test.tsx +0 -146
  1256. package/src/List/List.test.tsx +0 -1052
  1257. package/src/List/ListItem.source-build.test.mjs +0 -41
  1258. package/src/List/ListMarkers.a11y.chromium.spec.ts +0 -904
  1259. package/src/Markdown/Markdown.codeLanguages.test.tsx +0 -137
  1260. package/src/Markdown/Markdown.fr23.bench.ts +0 -176
  1261. package/src/Markdown/Markdown.fr23.perf.test.ts +0 -484
  1262. package/src/Markdown/Markdown.helpers.perf.test.ts +0 -495
  1263. package/src/Markdown/Markdown.public.test.ts +0 -309
  1264. package/src/Markdown/Markdown.renderBoundary.test.tsx +0 -72
  1265. package/src/Markdown/Markdown.rerender.test.tsx +0 -143
  1266. package/src/Markdown/Markdown.test.tsx +0 -1383
  1267. package/src/Markdown/MarkdownTable.a11y.chromium.spec.ts +0 -727
  1268. package/src/Markdown/__tests__/MarkdownNesting.a11y.chromium.spec.ts +0 -102
  1269. package/src/Markdown/angleDestinations.test.tsx +0 -104
  1270. package/src/Markdown/ast.test.ts +0 -374
  1271. package/src/Markdown/atxHeadingIndentation.test.tsx +0 -53
  1272. package/src/Markdown/blockNesting.test.tsx +0 -124
  1273. package/src/Markdown/blockquoteMarkers.test.tsx +0 -69
  1274. package/src/Markdown/characterReferences.test.ts +0 -47
  1275. package/src/Markdown/codeSpans.test.tsx +0 -65
  1276. package/src/Markdown/emphasis.test.tsx +0 -214
  1277. package/src/Markdown/fenceInfo.test.tsx +0 -47
  1278. package/src/Markdown/imageAlt.test.tsx +0 -84
  1279. package/src/Markdown/incremental.test.ts +0 -1198
  1280. package/src/Markdown/incrementalIndentation.test.tsx +0 -36
  1281. package/src/Markdown/indentedFences.test.tsx +0 -374
  1282. package/src/Markdown/indentedTables.test.tsx +0 -53
  1283. package/src/Markdown/linkBrackets.test.tsx +0 -116
  1284. package/src/Markdown/linkDestinationLinear.test.tsx +0 -54
  1285. package/src/Markdown/linkDestinations.test.tsx +0 -127
  1286. package/src/Markdown/linkTextCode.test.tsx +0 -65
  1287. package/src/Markdown/listBullets.test.tsx +0 -55
  1288. package/src/Markdown/listContinuation.test.tsx +0 -94
  1289. package/src/Markdown/listThematicBreak.test.tsx +0 -49
  1290. package/src/Markdown/longLinkLabels.test.tsx +0 -49
  1291. package/src/Markdown/openFenceFinalNewline.test.tsx +0 -85
  1292. package/src/Markdown/parser.perf.test.ts +0 -398
  1293. package/src/Markdown/parser.public.test.ts +0 -144
  1294. package/src/Markdown/parser.test.ts +0 -1925
  1295. package/src/Markdown/plugin-renderer/MarkdownPluginNodeRenderer.test.tsx +0 -300
  1296. package/src/Markdown/plugins/frontmatter.test.tsx +0 -150
  1297. package/src/Markdown/plugins/headingLinks.a11y.chromium.spec.ts +0 -856
  1298. package/src/Markdown/plugins/headingLinks.ssr.test.tsx +0 -143
  1299. package/src/Markdown/plugins/headingLinks.test.tsx +0 -637
  1300. package/src/Markdown/plugins/protocol.test.tsx +0 -1083
  1301. package/src/Markdown/plugins/semanticFence.test.tsx +0 -655
  1302. package/src/Markdown/plugins/softBreaks.test.tsx +0 -172
  1303. package/src/Markdown/plugins/sourceDecoration.test.tsx +0 -799
  1304. package/src/Markdown/plugins/sourceLines.test.tsx +0 -715
  1305. package/src/Markdown/plugins/textTransform.test.ts +0 -467
  1306. package/src/Markdown/remark.test.tsx +0 -1877
  1307. package/src/Markdown/streaming.test.ts +0 -148
  1308. package/src/Markdown/streamingListShapes.test.tsx +0 -93
  1309. package/src/Markdown/trailingSpaces.test.tsx +0 -45
  1310. package/src/MetadataList/MetadataList.test.tsx +0 -383
  1311. package/src/MobileNav/MobileNav.test.tsx +0 -281
  1312. package/src/MobileNav/MobileNavCloseEdgeCases.test.tsx +0 -584
  1313. package/src/MobileNav/MobileNavCloseTiming.test.ts +0 -58
  1314. package/src/MobileNav/MobileNavCloseVisibility.test.tsx +0 -172
  1315. package/src/MobileNav/MobileNavEntryAnimation.test.tsx +0 -212
  1316. package/src/MobileNav/MobileNavFocus.test.tsx +0 -553
  1317. package/src/MobileNav/MobileNavPinchZoom.a11y.chromium.spec.ts +0 -147
  1318. package/src/MobileNav/MobileNavReopen.test.tsx +0 -118
  1319. package/src/MobileNav/MobileNavScrollbarGutter.test.tsx +0 -109
  1320. package/src/MobileNav/MobileNavToggle.test.tsx +0 -179
  1321. package/src/MobileNav/__tests__/MobileNavWidth.a11y.chromium.spec.ts +0 -103
  1322. package/src/MoreMenu/MoreMenu.test.tsx +0 -356
  1323. package/src/MultiSelector/CreateRow.a11y.chromium.spec.ts +0 -149
  1324. package/src/MultiSelector/MultiSelector.disabledFocus.a11y.chromium.spec.ts +0 -72
  1325. package/src/MultiSelector/MultiSelector.focusableDisabled.test.tsx +0 -121
  1326. package/src/MultiSelector/MultiSelector.fr10.test.tsx +0 -221
  1327. package/src/MultiSelector/MultiSelector.test.tsx +0 -4702
  1328. package/src/MultiSelector/OptionActions.a11y.chromium.spec.ts +0 -310
  1329. package/src/MultiSelector/__tests__/MultiSelector.a11y.chromium.spec.ts +0 -46
  1330. package/src/MultiSelector/__tests__/MultiSelector.listbox.a11y.test.tsx +0 -128
  1331. package/src/NavIcon/NavIcon.test.tsx +0 -41
  1332. package/src/NavMenu/NavHeadingMenu.test.tsx +0 -714
  1333. package/src/NavMenu/__tests__/NavMenusSlideSelection.a11y.chromium.spec.ts +0 -137
  1334. package/src/NumberInput/NumberInput.fr10.test.tsx +0 -21
  1335. package/src/NumberInput/NumberInput.test.tsx +0 -2636
  1336. package/src/NumberInput/__tests__/NumberInput.a11y.chromium.spec.ts +0 -124
  1337. package/src/NumberInput/__tests__/NumberInput.a11y.known-failures.ts +0 -26
  1338. package/src/NumberInput/__tests__/NumberInput.a11y.renders.tsx +0 -77
  1339. package/src/NumberInput/__tests__/NumberInput.a11y.states.ts +0 -116
  1340. package/src/NumberInput/__tests__/NumberInput.a11y.test.tsx +0 -154
  1341. package/src/NumberInput/numberInputCommit.test.ts +0 -72
  1342. package/src/NumberInput/numberParser.docblock.test.ts +0 -234
  1343. package/src/NumberInput/numberParser.test.ts +0 -222
  1344. package/src/Outline/Outline.test.tsx +0 -1069
  1345. package/src/Outline/OutlineFocus.a11y.chromium.spec.ts +0 -551
  1346. package/src/Outline/parseOutlineFromMarkdown.test.ts +0 -104
  1347. package/src/OverflowList/OverflowList.test.tsx +0 -1073
  1348. package/src/Overlay/Overlay.test.tsx +0 -424
  1349. package/src/Pagination/Pagination.test.tsx +0 -1754
  1350. package/src/Popover/Popover.test.tsx +0 -1424
  1351. package/src/Popover/PopoverPresentation.test.tsx +0 -952
  1352. package/src/Popover/__tests__/PopoverSecondDocument.a11y.chromium.spec.ts +0 -205
  1353. package/src/PowerSearch/PowerSearch.test.tsx +0 -1003
  1354. package/src/PowerSearch/PowerSearchEditPopover.test.tsx +0 -1190
  1355. package/src/PowerSearch/PowerSearchFilterEditor.test.tsx +0 -377
  1356. package/src/PowerSearch/PowerSearchToken.test.tsx +0 -230
  1357. package/src/PowerSearch/PowerSearchValueEditor.test.tsx +0 -754
  1358. package/src/PowerSearch/formatFilterValue.test.ts +0 -339
  1359. package/src/PowerSearch/resolveDateTimeRangePart.test.ts +0 -40
  1360. package/src/PowerSearch/usePowerSearchConfig.test.ts +0 -832
  1361. package/src/PowerSearch/usePowerSearchSource.test.ts +0 -621
  1362. package/src/ProgressBar/ProgressBar.test.tsx +0 -852
  1363. package/src/ProgressBar/__tests__/ProgressBar.a11y.chromium.spec.ts +0 -115
  1364. package/src/ProgressBar/__tests__/ProgressBar.a11y.known-failures.ts +0 -12
  1365. package/src/ProgressBar/__tests__/ProgressBar.a11y.renders.tsx +0 -38
  1366. package/src/ProgressBar/__tests__/ProgressBar.a11y.states.ts +0 -123
  1367. package/src/ProgressBar/__tests__/ProgressBar.a11y.test.tsx +0 -107
  1368. package/src/RadioList/RadioList.fr10.test.tsx +0 -67
  1369. package/src/RadioList/RadioList.test.tsx +0 -967
  1370. package/src/RadioList/RadioListItem.press.source-build.test.mjs +0 -80
  1371. package/src/RadioList/__tests__/RadioGroup.a11y.chromium.spec.ts +0 -274
  1372. package/src/RadioList/__tests__/RadioGroup.a11y.known-failures.ts +0 -12
  1373. package/src/RadioList/__tests__/RadioGroup.a11y.renders.tsx +0 -232
  1374. package/src/RadioList/__tests__/RadioGroup.a11y.states.ts +0 -503
  1375. package/src/RadioList/__tests__/RadioGroup.a11y.test.tsx +0 -217
  1376. package/src/Resizable/ResizeHandle.test.tsx +0 -1067
  1377. package/src/Resizable/__tests__/ResizeHandle.a11y.chromium.spec.ts +0 -120
  1378. package/src/Resizable/__tests__/ResizeHandle.a11y.known-failures.ts +0 -39
  1379. package/src/Resizable/__tests__/ResizeHandle.a11y.renders.tsx +0 -80
  1380. package/src/Resizable/__tests__/ResizeHandle.a11y.states.ts +0 -197
  1381. package/src/Resizable/__tests__/ResizeHandle.a11y.test.tsx +0 -123
  1382. package/src/Resizable/shippedDirections.test.ts +0 -462
  1383. package/src/Resizable/useResizable.test.ts +0 -1682
  1384. package/src/Resizable/utils.test.ts +0 -74
  1385. package/src/ScrollableArea/ScrollableArea.test.tsx +0 -304
  1386. package/src/Section/Section.test.tsx +0 -376
  1387. package/src/SegmentedControl/SegmentedControl.test.tsx +0 -897
  1388. package/src/SelectableCard/SelectableCard.test.tsx +0 -216
  1389. package/src/Selector/Selector.focusableDisabled.test.tsx +0 -127
  1390. package/src/Selector/Selector.fr10.test.tsx +0 -149
  1391. package/src/Selector/Selector.sheetActiveDescendant.test.tsx +0 -95
  1392. package/src/Selector/Selector.source-build.test.mjs +0 -79
  1393. package/src/Selector/Selector.test.tsx +0 -5028
  1394. package/src/Selector/__tests__/Combobox.a11y.known-failures.ts +0 -27
  1395. package/src/Selector/__tests__/Combobox.a11y.states.ts +0 -145
  1396. package/src/Selector/__tests__/ComboboxField.a11y.chromium.spec.ts +0 -458
  1397. package/src/Selector/__tests__/EmptyStateAnnouncement.a11y.chromium.spec.ts +0 -91
  1398. package/src/Selector/__tests__/Listbox.a11y.chromium.spec.ts +0 -131
  1399. package/src/Selector/__tests__/Listbox.a11y.dom.ts +0 -38
  1400. package/src/Selector/__tests__/Listbox.a11y.inventory.test.ts +0 -63
  1401. package/src/Selector/__tests__/Listbox.a11y.known-failures.ts +0 -12
  1402. package/src/Selector/__tests__/Listbox.a11y.states.ts +0 -232
  1403. package/src/Selector/__tests__/Selector.a11y.chromium.spec.ts +0 -46
  1404. package/src/Selector/__tests__/Selector.combobox.a11y.chromium.spec.ts +0 -109
  1405. package/src/Selector/__tests__/Selector.combobox.a11y.test.tsx +0 -126
  1406. package/src/Selector/__tests__/Selector.listbox.a11y.test.tsx +0 -121
  1407. package/src/Selector/useCombobox.public.test.tsx +0 -89
  1408. package/src/Selector/useCombobox.test.tsx +0 -444
  1409. package/src/SideNav/SideNav.test.tsx +0 -4128
  1410. package/src/SideNav/SideNavRailMotion.test.tsx +0 -620
  1411. package/src/SideNav/__tests__/SideNavRailMotion.interaction.browser.spec.ts +0 -417
  1412. package/src/SizeContext/SizeContext.test.tsx +0 -226
  1413. package/src/Skeleton/Skeleton.test.tsx +0 -148
  1414. package/src/Slider/Slider.fr10.test.tsx +0 -93
  1415. package/src/Slider/Slider.test.tsx +0 -1630
  1416. package/src/Slider/__tests__/Slider.a11y.chromium.spec.ts +0 -113
  1417. package/src/Slider/__tests__/Slider.a11y.known-failures.ts +0 -12
  1418. package/src/Slider/__tests__/Slider.a11y.renders.tsx +0 -42
  1419. package/src/Slider/__tests__/Slider.a11y.states.ts +0 -106
  1420. package/src/Slider/__tests__/Slider.a11y.test.tsx +0 -105
  1421. package/src/Spinner/Spinner.test.tsx +0 -484
  1422. package/src/Stack/Stack.test.tsx +0 -473
  1423. package/src/Stack/StackItem.test.tsx +0 -105
  1424. package/src/StatusDot/StatusDot.test.tsx +0 -213
  1425. package/src/Stepper/Stepper.public.test.ts +0 -91
  1426. package/src/Stepper/Stepper.test.tsx +0 -2068
  1427. package/src/Switch/Switch.focusRing.source-build.test.mjs +0 -81
  1428. package/src/Switch/Switch.test.tsx +0 -1071
  1429. package/src/Switch/__tests__/Switch.a11y.chromium.spec.ts +0 -211
  1430. package/src/Switch/__tests__/Switch.a11y.known-failures.ts +0 -28
  1431. package/src/Switch/__tests__/Switch.a11y.states.ts +0 -275
  1432. package/src/Switch/__tests__/Switch.a11y.test.tsx +0 -144
  1433. package/src/TabList/TabList.test.tsx +0 -1701
  1434. package/src/TabList/__tests__/TabListOverflow.interaction.browser.spec.ts +0 -99
  1435. package/src/TabList/__tests__/Tabs.a11y.chromium.spec.ts +0 -199
  1436. package/src/TabList/__tests__/Tabs.a11y.known-failures.ts +0 -12
  1437. package/src/TabList/__tests__/Tabs.a11y.renders.tsx +0 -92
  1438. package/src/TabList/__tests__/Tabs.a11y.states.ts +0 -247
  1439. package/src/TabList/__tests__/Tabs.a11y.test.tsx +0 -153
  1440. package/src/Table/Table.perf.test.tsx +0 -569
  1441. package/src/Table/Table.test.tsx +0 -1851
  1442. package/src/Table/TableHeaderCell.test.tsx +0 -291
  1443. package/src/Table/TableSelectionToolbar.test.tsx +0 -109
  1444. package/src/Table/__tests__/Table.a11y.chromium.spec.ts +0 -129
  1445. package/src/Table/__tests__/Table.a11y.contracts.ts +0 -35
  1446. package/src/Table/__tests__/Table.a11y.renders.tsx +0 -112
  1447. package/src/Table/__tests__/Table.a11y.states.ts +0 -140
  1448. package/src/Table/__tests__/Table.a11y.test.tsx +0 -198
  1449. package/src/Table/__tests__/TableMinWidth.a11y.chromium.spec.ts +0 -75
  1450. package/src/Table/__tests__/TableRowGlide.a11y.browser.spec.ts +0 -382
  1451. package/src/Table/__tests__/TableScroll.a11y.chromium.spec.ts +0 -138
  1452. package/src/Table/__tests__/TableStickyDividers.a11y.browser.spec.ts +0 -560
  1453. package/src/Table/plugins/columnResize/useTableColumnResize.test.tsx +0 -919
  1454. package/src/Table/plugins/columnSettings/useTableColumnSettings.test.tsx +0 -175
  1455. package/src/Table/plugins/columnSettings/useTableColumnSettingsState.test.tsx +0 -296
  1456. package/src/Table/plugins/filtering/useTableFilterState.test.tsx +0 -143
  1457. package/src/Table/plugins/filtering/useTableFiltering.test.tsx +0 -357
  1458. package/src/Table/plugins/groupedRows/useTableGroupedRows-perf.test.tsx +0 -112
  1459. package/src/Table/plugins/groupedRows/useTableGroupedRows.test.tsx +0 -409
  1460. package/src/Table/plugins/pagination/useTablePagination-perf.test.tsx +0 -232
  1461. package/src/Table/plugins/pagination/useTablePagination.test.tsx +0 -666
  1462. package/src/Table/plugins/rowExpansion/useTableRowExpansion.glide.test.tsx +0 -280
  1463. package/src/Table/plugins/rowExpansion/useTableRowExpansion.test.tsx +0 -681
  1464. package/src/Table/plugins/rowIndex/useTableRowIndex.test.tsx +0 -132
  1465. package/src/Table/plugins/rowStatus/useTableRowStatus.public.test.ts +0 -92
  1466. package/src/Table/plugins/rowStatus/useTableRowStatus.test.tsx +0 -519
  1467. package/src/Table/plugins/selection/useTableSelection-perf.test.tsx +0 -258
  1468. package/src/Table/plugins/selection/useTableSelection.test.tsx +0 -424
  1469. package/src/Table/plugins/selection/useTableSelectionState.test.tsx +0 -451
  1470. package/src/Table/plugins/sortable/__tests__/useTableSortable.a11y.test.tsx +0 -174
  1471. package/src/Table/plugins/sortable/__tests__/useTableSortable.a11y.ts +0 -86
  1472. package/src/Table/plugins/sortable/useTableSortable.test.tsx +0 -857
  1473. package/src/Table/plugins/sortable/useTableSortableState.test.tsx +0 -592
  1474. package/src/Table/plugins/stickyColumns/useTableStickyColumns.test.tsx +0 -334
  1475. package/src/Table/plugins/tree/useTableTreeData-perf.test.tsx +0 -163
  1476. package/src/Table/plugins/tree/useTableTreeData.test.tsx +0 -992
  1477. package/src/Table/plugins/tree/useTableTreeState.test.tsx +0 -740
  1478. package/src/Table/tableContextMenu.test.tsx +0 -208
  1479. package/src/Text/Text.test.tsx +0 -405
  1480. package/src/Text/useTruncation.test.tsx +0 -69
  1481. package/src/TextArea/TextArea.fr10.test.tsx +0 -21
  1482. package/src/TextArea/TextArea.test.tsx +0 -1257
  1483. package/src/TextInput/TextInput.fr10.test.tsx +0 -21
  1484. package/src/TextInput/TextInput.test.tsx +0 -1259
  1485. package/src/TextInput/__tests__/TextInput.a11y.chromium.spec.ts +0 -214
  1486. package/src/TextInput/__tests__/TextInput.a11y.known-failures.ts +0 -40
  1487. package/src/TextInput/__tests__/TextInput.a11y.renders.tsx +0 -202
  1488. package/src/TextInput/__tests__/TextInput.a11y.states.ts +0 -384
  1489. package/src/TextInput/__tests__/TextInput.a11y.test.tsx +0 -130
  1490. package/src/Thumbnail/Thumbnail.test.tsx +0 -384
  1491. package/src/TimeInput/NativeTimeInput.test.tsx +0 -326
  1492. package/src/TimeInput/Presentation.test.tsx +0 -171
  1493. package/src/TimeInput/TimeInput.fr10.test.tsx +0 -312
  1494. package/src/TimeInput/TimeInput.test.tsx +0 -831
  1495. package/src/Timer/Timer.test.tsx +0 -302
  1496. package/src/Timestamp/Timestamp.test.tsx +0 -1636
  1497. package/src/Timestamp/tooltipEntries.test.ts +0 -566
  1498. package/src/Toast/ToastViewport.modalHost.test.tsx +0 -891
  1499. package/src/Toast/ToastViewport.test.tsx +0 -2333
  1500. package/src/Toast/useToast.test.tsx +0 -258
  1501. package/src/ToggleButton/ToggleButton.test.tsx +0 -973
  1502. package/src/ToggleButton/__tests__/ToggleButton.a11y.chromium.spec.ts +0 -177
  1503. package/src/ToggleButton/__tests__/ToggleButton.a11y.renders.tsx +0 -133
  1504. package/src/ToggleButton/__tests__/ToggleButton.a11y.states.ts +0 -167
  1505. package/src/ToggleButton/__tests__/ToggleButton.a11y.test.tsx +0 -103
  1506. package/src/Token/Token.test.tsx +0 -640
  1507. package/src/Token/__tests__/TokenRemoveTarget.a11y.chromium.spec.ts +0 -87
  1508. package/src/Tokenizer/Tokenizer.fr10.test.tsx +0 -28
  1509. package/src/Tokenizer/Tokenizer.props-type.test.tsx +0 -126
  1510. package/src/Tokenizer/Tokenizer.ssr.test.tsx +0 -196
  1511. package/src/Tokenizer/Tokenizer.test.tsx +0 -2121
  1512. package/src/Tokenizer/TokenizerBottomSheet.test.tsx +0 -2719
  1513. package/src/Tokenizer/__tests__/TokenizerEndLane.a11y.chromium.spec.ts +0 -505
  1514. package/src/Toolbar/Toolbar.test.tsx +0 -570
  1515. package/src/Toolbar/__tests__/Toolbar.a11y.chromium.spec.ts +0 -164
  1516. package/src/Toolbar/__tests__/Toolbar.a11y.renders.tsx +0 -63
  1517. package/src/Toolbar/__tests__/Toolbar.a11y.states.ts +0 -142
  1518. package/src/Toolbar/__tests__/Toolbar.a11y.test.tsx +0 -126
  1519. package/src/Tooltip/Tooltip.test.tsx +0 -819
  1520. package/src/Tooltip/__tests__/Tooltip.a11y.chromium.spec.ts +0 -130
  1521. package/src/Tooltip/__tests__/Tooltip.a11y.renders.tsx +0 -86
  1522. package/src/Tooltip/__tests__/Tooltip.a11y.states.ts +0 -132
  1523. package/src/Tooltip/__tests__/Tooltip.a11y.test.tsx +0 -126
  1524. package/src/Tooltip/__tests__/TooltipFocusReturn.a11y.chromium.spec.ts +0 -130
  1525. package/src/Tooltip/__tests__/TooltipHoverBridge.a11y.chromium.spec.ts +0 -75
  1526. package/src/Tooltip/__tests__/TooltipTallContent.a11y.browser.spec.ts +0 -673
  1527. package/src/Tooltip/__tests__/TooltipTallContentTracking.a11y.browser.spec.ts +0 -1162
  1528. package/src/Tooltip/useTooltip.test.tsx +0 -483
  1529. package/src/TopNav/TopNav.test.tsx +0 -836
  1530. package/src/TopNav/TopNavMegaMenu.reduced-motion.source-build.test.mjs +0 -83
  1531. package/src/TopNav/TopNavMegaMenu.test.tsx +0 -1132
  1532. package/src/TopNav/TopNavMenu.test.tsx +0 -485
  1533. package/src/TopNav/__tests__/TopNavMobileLongHeading.a11y.chromium.spec.ts +0 -75
  1534. package/src/TreeList/TreeList.test.tsx +0 -1711
  1535. package/src/TreeList/__tests__/TreeList.a11y.chromium.spec.ts +0 -138
  1536. package/src/TreeList/__tests__/TreeList.a11y.renders.tsx +0 -44
  1537. package/src/TreeList/__tests__/TreeList.a11y.states.ts +0 -164
  1538. package/src/TreeList/__tests__/TreeList.a11y.test.tsx +0 -138
  1539. package/src/TreeList/__tests__/TreeListGuideAlignment.interaction.browser.spec.ts +0 -127
  1540. package/src/TreeList/__tests__/TreeListRowNames.a11y.chromium.spec.ts +0 -83
  1541. package/src/Typeahead/BaseTypeahead.emptyState.a11y.chromium.spec.ts +0 -138
  1542. package/src/Typeahead/BaseTypeahead.test.tsx +0 -553
  1543. package/src/Typeahead/Typeahead.fr10.test.tsx +0 -28
  1544. package/src/Typeahead/Typeahead.test.tsx +0 -2824
  1545. package/src/Typeahead/TypeaheadItem.test.tsx +0 -134
  1546. package/src/VStack/VStack.test.tsx +0 -128
  1547. package/src/VisuallyHidden/VisuallyHidden.test.tsx +0 -115
  1548. package/src/__tests__/BusyOwnerAnnouncement.test.tsx +0 -853
  1549. package/src/__tests__/CardPress.a11y.chromium.spec.ts +0 -353
  1550. package/src/__tests__/DisabledTriggerFocus.a11y.chromium.spec.ts +0 -87
  1551. package/src/__tests__/PressModality.a11y.chromium.spec.ts +0 -392
  1552. package/src/__tests__/PressedState.a11y.chromium.spec.ts +0 -814
  1553. package/src/__tests__/TestIcon.tsx +0 -26
  1554. package/src/__tests__/babelPluginAddExtensions.test.ts +0 -190
  1555. package/src/__tests__/fastRoleQueries.ts +0 -66
  1556. package/src/__tests__/forcedColors.ts +0 -60
  1557. package/src/__tests__/pressState.ts +0 -212
  1558. package/src/__tests__/stubMatchMedia.test.ts +0 -79
  1559. package/src/__tests__/stubMatchMedia.ts +0 -95
  1560. package/src/__tests__/stylexDeclarations.ts +0 -51
  1561. package/src/__tests__/unthemedLength.ts +0 -34
  1562. package/src/docPropLiterals.test.ts +0 -964
  1563. package/src/docPropReferences.test.ts +0 -178
  1564. package/src/docs-script.test.mjs +0 -55
  1565. package/src/gestures/__tests__/LongPressGestureRecognizer.test.ts +0 -141
  1566. package/src/gestures/__tests__/PanGestureRecognizer.test.ts +0 -327
  1567. package/src/gestures/__tests__/TapGestureRecognizer.test.ts +0 -154
  1568. package/src/gestures/__tests__/VelocityTracker.streams.test.ts +0 -243
  1569. package/src/gestures/__tests__/VelocityTracker.test.ts +0 -261
  1570. package/src/gestures/__tests__/arena.test.ts +0 -824
  1571. package/src/gestures/__tests__/arenaContinuous.test.ts +0 -207
  1572. package/src/gestures/__tests__/arenaTapLongPress.test.ts +0 -211
  1573. package/src/gestures/__tests__/fixtures/pointer-streams/README.md +0 -82
  1574. package/src/gestures/__tests__/fixtures/pointer-streams/android-chromium-fling.json +0 -130
  1575. package/src/gestures/__tests__/fixtures/pointer-streams/android-chromium-slow.json +0 -860
  1576. package/src/gestures/__tests__/fixtures/pointer-streams/android-chromium-stop-release.json +0 -357
  1577. package/src/gestures/__tests__/fixtures/pointer-streams/android-firefox-fling.json +0 -66
  1578. package/src/gestures/__tests__/fixtures/pointer-streams/android-firefox-slow.json +0 -268
  1579. package/src/gestures/__tests__/fixtures/pointer-streams/android-firefox-stop-release.json +0 -128
  1580. package/src/gestures/__tests__/fixtures/pointer-streams/capture.html +0 -123
  1581. package/src/gestures/__tests__/fixtures/pointer-streams/desktop-chromium-mouse-fling.json +0 -64
  1582. package/src/gestures/__tests__/fixtures/pointer-streams/desktop-chromium-mouse-slow.json +0 -268
  1583. package/src/gestures/__tests__/fixtures/pointer-streams/desktop-chromium-mouse-stop-release.json +0 -124
  1584. package/src/gestures/__tests__/fixtures/pointer-streams/desktop-chromium-pen-fling.json +0 -64
  1585. package/src/gestures/__tests__/fixtures/pointer-streams/desktop-chromium-pen-slow.json +0 -268
  1586. package/src/gestures/__tests__/fixtures/pointer-streams/desktop-chromium-pen-stop-release.json +0 -124
  1587. package/src/gestures/__tests__/fixtures/pointer-streams/desktop-chromium-touch-fling.json +0 -84
  1588. package/src/gestures/__tests__/fixtures/pointer-streams/desktop-chromium-touch-slow.json +0 -381
  1589. package/src/gestures/__tests__/fixtures/pointer-streams/desktop-chromium-touch-stop-release.json +0 -171
  1590. package/src/gestures/__tests__/fixtures/pointer-streams/ios-safari-fling.json +0 -45
  1591. package/src/gestures/__tests__/fixtures/pointer-streams/ios-safari-slow.json +0 -101
  1592. package/src/gestures/__tests__/fixtures/pointer-streams/ios-safari-stop-release.json +0 -130
  1593. package/src/gestures/__tests__/harness.ts +0 -204
  1594. package/src/hooks/__tests__/MenuPressShadowRoot.a11y.chromium.spec.ts +0 -144
  1595. package/src/hooks/__tests__/menuLinkClicks.ts +0 -71
  1596. package/src/hooks/actionGroupTracker.exports.test.ts +0 -28
  1597. package/src/hooks/actionGroupTracker.test.ts +0 -510
  1598. package/src/hooks/computeOverflow.test.ts +0 -422
  1599. package/src/hooks/deprecatedApis.public.test.ts +0 -33
  1600. package/src/hooks/menuPressGesture.test.ts +0 -253
  1601. package/src/hooks/scrollKeyboardDelegation.test.ts +0 -155
  1602. package/src/hooks/scrollbarGutter.test.ts +0 -167
  1603. package/src/hooks/useAnnounce.modal.test.tsx +0 -1291
  1604. package/src/hooks/useAnnounce.test.tsx +0 -293
  1605. package/src/hooks/useAnnounceRenderedText.adopters.test.tsx +0 -226
  1606. package/src/hooks/useAutoMediaMode.test.ts +0 -109
  1607. package/src/hooks/useBusyAnnouncement.adopters.test.tsx +0 -69
  1608. package/src/hooks/useBusyAnnouncement.test.tsx +0 -112
  1609. package/src/hooks/useClickableContainer.test.tsx +0 -236
  1610. package/src/hooks/useClipboard.test.tsx +0 -151
  1611. package/src/hooks/useContainerReveal.test.tsx +0 -163
  1612. package/src/hooks/useDevWarning.test.tsx +0 -45
  1613. package/src/hooks/useEntryAnimation.ssr.test.tsx +0 -143
  1614. package/src/hooks/useFocusTrap.test.tsx +0 -635
  1615. package/src/hooks/useFocusTrapEscapeShim.test.tsx +0 -166
  1616. package/src/hooks/useGridFocus.test.tsx +0 -165
  1617. package/src/hooks/useHotkeys.test.ts +0 -265
  1618. package/src/hooks/useImageMode.test.ts +0 -133
  1619. package/src/hooks/useInputContainer.test.tsx +0 -180
  1620. package/src/hooks/useInputStatusIcon.test.tsx +0 -240
  1621. package/src/hooks/useIsHydrating.test.tsx +0 -70
  1622. package/src/hooks/useKeyboardHint.test.tsx +0 -92
  1623. package/src/hooks/useListFocus.test.tsx +0 -664
  1624. package/src/hooks/useLongPress.test.tsx +0 -152
  1625. package/src/hooks/useMediaQuery.test.ts +0 -165
  1626. package/src/hooks/useMenuHover.test.tsx +0 -536
  1627. package/src/hooks/useMenuPress.test.tsx +0 -565
  1628. package/src/hooks/useMergedRefs.test.tsx +0 -62
  1629. package/src/hooks/useOverflow.test.ts +0 -504
  1630. package/src/hooks/useRenamedProp.test.tsx +0 -95
  1631. package/src/hooks/useScrollLock.test.ts +0 -248
  1632. package/src/hooks/useScrollOverflow.test.tsx +0 -222
  1633. package/src/hooks/useScrollableArea.test.tsx +0 -836
  1634. package/src/hooks/useStreamingText.test.ts +0 -237
  1635. package/src/hooks/useTreeFocus.test.tsx +0 -351
  1636. package/src/hooks/useTypeahead.test.tsx +0 -351
  1637. package/src/i18n/__tests__/InternationalizationProvider.test.tsx +0 -128
  1638. package/src/i18n/__tests__/e2e-pagination.test.tsx +0 -172
  1639. package/src/i18n/__tests__/e2e-powersearch.test.tsx +0 -166
  1640. package/src/i18n/__tests__/getLocaleDirection.test.ts +0 -40
  1641. package/src/i18n/__tests__/resolve.test.ts +0 -325
  1642. package/src/i18n/__tests__/useCollator.test.tsx +0 -115
  1643. package/src/i18n/__tests__/useDirection.test.tsx +0 -66
  1644. package/src/i18n/__tests__/useLocale.test.tsx +0 -52
  1645. package/src/i18n/useTranslator.test.tsx +0 -267
  1646. package/src/inputFontFloor.test.ts +0 -106
  1647. package/src/internal/tokenizer-presentation.test.ts +0 -29
  1648. package/src/internal/touch.test.ts +0 -44
  1649. package/src/motion/__tests__/animatedLayout.interaction.browser.spec.ts +0 -1613
  1650. package/src/motion/__tests__/animatedLayoutAdopters.interaction.browser.spec.ts +0 -217
  1651. package/src/motion/__tests__/animatedLayoutBundle.ts +0 -17
  1652. package/src/motion/animatedLayout.boundary.test.ts +0 -155
  1653. package/src/motion/animatedLayout.swap.test.ts +0 -827
  1654. package/src/motion/animatedLayout.test.ts +0 -1154
  1655. package/src/motion/animatedLayoutAdopters.test.tsx +0 -500
  1656. package/src/motion/animator.test.ts +0 -2653
  1657. package/src/motion/bezier.test.ts +0 -52
  1658. package/src/motion/coast.test.ts +0 -99
  1659. package/src/motion/decay.test.ts +0 -120
  1660. package/src/motion/projection.test.ts +0 -107
  1661. package/src/motion/reducedMotion.test.ts +0 -129
  1662. package/src/motion/reducedMotionPlan.test.ts +0 -182
  1663. package/src/motion/resolveSnapPoint.test.ts +0 -189
  1664. package/src/motion/roles.test.ts +0 -256
  1665. package/src/motion/rubberBand.test.ts +0 -88
  1666. package/src/motion/selectPage.test.ts +0 -31
  1667. package/src/motion/spring.test.ts +0 -650
  1668. package/src/motion/uikit/gestures.test.ts +0 -89
  1669. package/src/motion/uikit/springRows.test.ts +0 -71
  1670. package/src/motion/uikit/uikit.test.ts +0 -364
  1671. package/src/motion/uikit/values.test.ts +0 -110
  1672. package/src/naming.test.ts +0 -44
  1673. package/src/postinstall.test.mjs +0 -216
  1674. package/src/reset.a11y.chromium.spec.ts +0 -238
  1675. package/src/reset.test.ts +0 -205
  1676. package/src/reset.until-found.a11y.browser.spec.ts +0 -76
  1677. package/src/reset.until-found.test.ts +0 -32
  1678. package/src/serverSafeComponents.test.ts +0 -675
  1679. package/src/stylexValidation.source-build.test.mjs +0 -42
  1680. package/src/tailwind-theme.test.ts +0 -153
  1681. package/src/theme/MediaTheme.dom.test.tsx +0 -97
  1682. package/src/theme/Theme.test.tsx +0 -337
  1683. package/src/theme/__tests__/SpacingRootFontSize.a11y.chromium.spec.ts +0 -199
  1684. package/src/theme/contrast.test.ts +0 -94
  1685. package/src/theme/declarationBoundary.test.ts +0 -126
  1686. package/src/theme/defineTheme.test.ts +0 -2028
  1687. package/src/theme/derivedVarRegistry.test.ts +0 -588
  1688. package/src/theme/expandColorScale.test.ts +0 -651
  1689. package/src/theme/expandMotionScale.test.ts +0 -145
  1690. package/src/theme/expandRadiusScale.test.ts +0 -59
  1691. package/src/theme/expandTypeScale.test.ts +0 -351
  1692. package/src/theme/extensibleAxes.test.ts +0 -432
  1693. package/src/theme/generateThemeRules.test.ts +0 -1870
  1694. package/src/theme/hct.test.ts +0 -93
  1695. package/src/theme/onMediaTokens.test.ts +0 -431
  1696. package/src/theme/publicThemeHelperContract.test.ts +0 -67
  1697. package/src/theme/syntax/defineSyntaxTheme.diff.test.ts +0 -91
  1698. package/src/theme/syntax/serverSafeSyntax.test.ts +0 -68
  1699. package/src/theme/syntax/useSyntaxTheme.diff.test.tsx +0 -40
  1700. package/src/theme/themeAdaptations.test.ts +0 -1795
  1701. package/src/theme/themeRegistry.test.ts +0 -59
  1702. package/src/theme/themingTargets.test.ts +0 -589
  1703. package/src/theme/tokenValueCompat.test.ts +0 -204
  1704. package/src/theme/tokens.test.ts +0 -441
  1705. package/src/theme/useTheme.test.tsx +0 -322
  1706. package/src/unicodePropertyEscapes.source-build.test.mjs +0 -69
  1707. package/src/utils/chainEventHandlers.test.ts +0 -39
  1708. package/src/utils/characters.test.ts +0 -141
  1709. package/src/utils/color.test.ts +0 -233
  1710. package/src/utils/composeEventHandlers.test.ts +0 -71
  1711. package/src/utils/customPropertyArmLayering.test.ts +0 -131
  1712. package/src/utils/dateParser.test.ts +0 -402
  1713. package/src/utils/dateTypes.test.ts +0 -40
  1714. package/src/utils/devWarning.test.ts +0 -56
  1715. package/src/utils/edgeAutoscroll.test.ts +0 -192
  1716. package/src/utils/focusReturn.test.ts +0 -119
  1717. package/src/utils/getKey.test.ts +0 -25
  1718. package/src/utils/hitArea.test.ts +0 -628
  1719. package/src/utils/ime.test.ts +0 -32
  1720. package/src/utils/inputAria.test.ts +0 -39
  1721. package/src/utils/interactionModality.test.ts +0 -100
  1722. package/src/utils/isApplePlatform.test.ts +0 -61
  1723. package/src/utils/mergeProps.test.ts +0 -166
  1724. package/src/utils/mergeRefs.test.ts +0 -48
  1725. package/src/utils/parseStyleKey.test.ts +0 -56
  1726. package/src/utils/plainDate.test.ts +0 -848
  1727. package/src/utils/pressFeedback.test.ts +0 -874
  1728. package/src/utils/pressGesture.test.ts +0 -323
  1729. package/src/utils/pressPaintSource.test.ts +0 -65
  1730. package/src/utils/pressableCoverage.test.ts +0 -192
  1731. package/src/utils/safeUrl.test.ts +0 -101
  1732. package/src/utils/sharedMutationObserver.test.ts +0 -53
  1733. package/src/utils/sharedResizeObserver.test.ts +0 -283
  1734. package/src/utils/themeProps.test.ts +0 -62
  1735. package/src/utils/timeParser.test.ts +0 -295
  1736. package/src/utils/touchPresentation.test.ts +0 -323
@@ -1,1795 +0,0 @@
1
- // Copyright (c) Meta Platforms, Inc. and affiliates.
2
-
3
- /**
4
- * @file themeAdaptations.test.ts
5
- * Tests AST-012's ordered, closed, CSS-first theme adaptation contract,
6
- * including normalization, root-dependent type-scale component writes, and final
7
- * reachable-cascade validation.
8
- */
9
-
10
- import {describe, expect, it} from 'vitest';
11
- import {
12
- DEFAULT_COMPACT_DEFINITION,
13
- DEFAULT_WIDTH_BREAKPOINTS,
14
- WIDTH_BREAKPOINT_NAMES,
15
- compactDefinition,
16
- defineTheme,
17
- generateAdaptationCSS,
18
- generateThemeCSS,
19
- generateThemeRules,
20
- type DefineThemeInput,
21
- type DefinedTheme,
22
- } from './index';
23
-
24
- function adaptationInput(
25
- rules: NonNullable<NonNullable<DefineThemeInput['adaptations']>['rules']>,
26
- ): DefineThemeInput {
27
- return {name: 'adaptive', adaptations: {rules}};
28
- }
29
-
30
- function mediaPreludes(css: string): string[] {
31
- return [...css.matchAll(/@media ([^{]+) \{/g)].map(match => match[1]);
32
- }
33
-
34
- function count(haystack: string, needle: string): number {
35
- return haystack.split(needle).length - 1;
36
- }
37
-
38
- describe('width breakpoint metadata', () => {
39
- it('provides the accepted fixed names and defaults', () => {
40
- const theme = defineTheme({name: 'defaults'});
41
-
42
- expect(WIDTH_BREAKPOINT_NAMES).toEqual(['sm', 'md', 'lg', 'xl', '2xl']);
43
- expect(DEFAULT_WIDTH_BREAKPOINTS).toEqual({
44
- sm: 640,
45
- md: 768,
46
- lg: 1024,
47
- xl: 1280,
48
- '2xl': 1536,
49
- });
50
- expect(theme.__adaptations).toEqual({
51
- widthBreakpoints: DEFAULT_WIDTH_BREAKPOINTS,
52
- rules: [],
53
- });
54
- });
55
-
56
- it('lets a theme override fixed points without emitting CSS', () => {
57
- const theme = defineTheme({
58
- name: 'points-only',
59
- adaptations: {widthBreakpoints: {md: 800, lg: 1100}},
60
- });
61
-
62
- expect(theme.__adaptations.widthBreakpoints).toEqual({
63
- ...DEFAULT_WIDTH_BREAKPOINTS,
64
- md: 800,
65
- lg: 1100,
66
- });
67
- expect(generateAdaptationCSS(theme)).toEqual({prose: '', component: ''});
68
- expect(generateThemeCSS(theme).component).not.toContain('@media');
69
- });
70
-
71
- it('validates built breakpoint metadata even when there are no rules to emit', () => {
72
- const built = {
73
- name: 'stale-built-points',
74
- __built: true,
75
- tokens: {},
76
- __adaptations: {
77
- widthBreakpoints: {
78
- sm: 640,
79
- md: 768,
80
- lg: 700,
81
- xl: 1280,
82
- '2xl': 1536,
83
- },
84
- rules: [],
85
- },
86
- __adaptationRules: [],
87
- __axes: {},
88
- } as unknown as DefinedTheme;
89
-
90
- expect(() => generateAdaptationCSS(built)).toThrow(/strictly increasing/);
91
- });
92
-
93
- it.each([
94
- [{phone: 500}, /phone is not supported/],
95
- [{md: 0}, /md must be a finite positive number/],
96
- [{md: Number.NaN}, /md must be a finite positive number/],
97
- [{md: 1100, lg: 1000}, /strictly increasing/],
98
- ])('rejects an invalid breakpoint map %#', (widthBreakpoints, message) => {
99
- expect(() =>
100
- defineTheme({
101
- name: 'bad-points',
102
- adaptations: {
103
- widthBreakpoints,
104
- } as unknown as DefineThemeInput['adaptations'],
105
- }),
106
- ).toThrow(message);
107
- });
108
- });
109
-
110
- describe('compact definition (spec:AST-012 FR9)', () => {
111
- it('is width below md or height below 500 at the default points', () => {
112
- expect(DEFAULT_COMPACT_DEFINITION).toEqual({
113
- widthBelow: 768,
114
- heightBelow: 500,
115
- query: '(width < 768px), (height < 500px)',
116
- coarsePointerQuery:
117
- '(width < 768px) and (pointer: coarse), (height < 500px) and (pointer: coarse)',
118
- });
119
- expect(compactDefinition()).toEqual(DEFAULT_COMPACT_DEFINITION);
120
- });
121
-
122
- it("follows a theme's effective md point and keeps the height edge", () => {
123
- const theme = defineTheme({
124
- name: 'wide-md',
125
- adaptations: {widthBreakpoints: {md: 800, lg: 1100}},
126
- });
127
- const points = theme.__adaptations?.widthBreakpoints;
128
- if (points == null) {
129
- throw new Error('theme has no effective width breakpoints');
130
- }
131
- expect(compactDefinition(points)).toEqual({
132
- widthBelow: 800,
133
- heightBelow: 500,
134
- query: '(width < 800px), (height < 500px)',
135
- coarsePointerQuery:
136
- '(width < 800px) and (pointer: coarse), (height < 500px) and (pointer: coarse)',
137
- });
138
- });
139
-
140
- it('is frozen, so no caller can change the shared definition', () => {
141
- expect(Object.isFrozen(DEFAULT_COMPACT_DEFINITION)).toBe(true);
142
- });
143
- });
144
-
145
- describe('closed conditions and media queries', () => {
146
- it('lowers inclusive from and exclusive below edges', () => {
147
- const theme = defineTheme(
148
- adaptationInput([
149
- {
150
- when: {width: {below: 'sm'}},
151
- value: {tokens: {'--spacing-4': '12px'}},
152
- },
153
- {
154
- when: {width: {from: 'lg', below: 'xl'}},
155
- value: {tokens: {'--spacing-4': '20px'}},
156
- },
157
- {
158
- when: {width: {from: '2xl'}},
159
- value: {tokens: {'--spacing-4': '24px'}},
160
- },
161
- ]),
162
- );
163
-
164
- expect(mediaPreludes(generateAdaptationCSS(theme).component)).toEqual([
165
- '(width < 640px)',
166
- '(width >= 1024px) and (width < 1280px)',
167
- '(width >= 1536px)',
168
- ]);
169
- });
170
-
171
- it('ANDs width, pointer, contrast, and motion in a stable order', () => {
172
- const theme = defineTheme(
173
- adaptationInput([
174
- {
175
- when: {
176
- motion: 'reduce',
177
- pointer: 'coarse',
178
- width: {from: 'md', below: 'xl'},
179
- contrast: 'more',
180
- },
181
- value: {tokens: {'--duration-fast': '0ms'}},
182
- },
183
- ]),
184
- );
185
-
186
- expect(mediaPreludes(generateAdaptationCSS(theme).component)).toEqual([
187
- '(width >= 768px) and (width < 1280px) and (pointer: coarse) and (prefers-contrast: more) and (prefers-reduced-motion: reduce)',
188
- ]);
189
- });
190
-
191
- it.each([
192
- [{}, /must contain at least one condition/],
193
- [{pointer: undefined}, /must contain at least one condition/],
194
- [{width: {}}, /must contain `from`, `below`, or both/],
195
- [{width: {from: 'lg', below: 'md'}}, /must resolve to `from < below`/],
196
- [{hover: true}, /hover is not supported/],
197
- [{pointer: 'any'}, /pointer must be 'coarse' or 'fine'/],
198
- ])('rejects an invalid condition %#', (when, message) => {
199
- expect(() =>
200
- defineTheme(
201
- adaptationInput([
202
- {
203
- when,
204
- value: {tokens: {'--spacing-4': '12px'}},
205
- } as never,
206
- ]),
207
- ),
208
- ).toThrow(message);
209
- });
210
-
211
- it('rejects positional rules and root-owned fields in a rule value', () => {
212
- expect(() =>
213
- defineTheme({
214
- name: 'tuple-rule',
215
- adaptations: {
216
- rules: [[{pointer: 'coarse'}, {tokens: {'--spacing-4': '12px'}}]],
217
- },
218
- } as unknown as DefineThemeInput),
219
- ).toThrow(/must be an object/);
220
-
221
- expect(() =>
222
- defineTheme({
223
- name: 'identity-in-rule',
224
- adaptations: {
225
- rules: [{when: {pointer: 'coarse'}, value: {icons: {}}}],
226
- },
227
- } as unknown as DefineThemeInput),
228
- ).toThrow(/value.icons is not supported/);
229
- });
230
-
231
- it('rejects sparse rule arrays during normalization', () => {
232
- const rules = new Array(1) as NonNullable<
233
- NonNullable<DefineThemeInput['adaptations']>['rules']
234
- >;
235
-
236
- expect(() => defineTheme(adaptationInput(rules))).toThrow(
237
- /adaptations\.rules\[0\].*must be present/i,
238
- );
239
- });
240
- });
241
-
242
- describe('rule order and writes', () => {
243
- it('preserves duplicate conditions and later root-restoring writes', () => {
244
- const theme = defineTheme({
245
- name: 'ordered',
246
- tokens: {'--spacing-4': '16px'},
247
- adaptations: {
248
- rules: [
249
- {
250
- when: {pointer: 'coarse'},
251
- value: {tokens: {'--spacing-4': '12px'}},
252
- },
253
- {
254
- when: {pointer: 'coarse'},
255
- value: {tokens: {'--spacing-4': '16px'}},
256
- },
257
- ],
258
- },
259
- });
260
- const css = generateAdaptationCSS(theme).component;
261
-
262
- expect(count(css, '@media (pointer: coarse)')).toBe(2);
263
- expect(css.indexOf('--spacing-4: 12px')).toBeLessThan(
264
- css.indexOf('--spacing-4: 16px'),
265
- );
266
- });
267
-
268
- it('uses declaration order rather than inferred condition specificity', () => {
269
- const theme = defineTheme(
270
- adaptationInput([
271
- {
272
- when: {width: {from: 'md', below: 'lg'}, pointer: 'coarse'},
273
- value: {tokens: {'--spacing-4': '12px'}},
274
- },
275
- {
276
- when: {pointer: 'coarse'},
277
- value: {tokens: {'--spacing-4': '20px'}},
278
- },
279
- ]),
280
- );
281
- const css = generateAdaptationCSS(theme).component;
282
-
283
- expect(css.indexOf('--spacing-4: 12px')).toBeLessThan(
284
- css.indexOf('--spacing-4: 20px'),
285
- );
286
- });
287
-
288
- it('emits no block for an empty value while retaining the normalized rule', () => {
289
- const theme = defineTheme(
290
- adaptationInput([
291
- {when: {pointer: 'coarse'}, value: {}},
292
- {
293
- when: {pointer: 'fine'},
294
- value: {tokens: {'--spacing-4': '18px'}},
295
- },
296
- ]),
297
- );
298
-
299
- expect(theme.__adaptations.rules).toHaveLength(2);
300
- expect(count(generateAdaptationCSS(theme).component, '@media')).toBe(1);
301
- });
302
-
303
- it('keeps status aliases at the root so conditional authored roles win', () => {
304
- const theme = defineTheme({
305
- name: 'conditional-status-role-precedence',
306
- tokens: {'--color-text-blue': '#0074e2'},
307
- adaptations: {
308
- rules: [
309
- {
310
- when: {contrast: 'more'},
311
- value: {tokens: {'--color-text-info': '#123456'}},
312
- },
313
- {
314
- when: {pointer: 'coarse'},
315
- value: {tokens: {'--color-text-blue': '#0055aa'}},
316
- },
317
- ],
318
- },
319
- onDark: {tokens: {'--color-text-blue': '#ffffff'}},
320
- });
321
- const {component} = generateThemeCSS(theme);
322
- const adaptationCss = generateAdaptationCSS(theme).component;
323
-
324
- // The root alias follows source-only adaptation writes through var(); the
325
- // dark media surface that sets the hue rebinds its own alias.
326
- expect(count(component, '--color-text-info: var(--color-text-blue);')).toBe(
327
- 2,
328
- );
329
- expect(component).toContain('--color-text-info: #123456;');
330
- expect(adaptationCss).toContain('--color-text-blue: #0055aa;');
331
- expect(adaptationCss).not.toContain(
332
- '--color-text-info: var(--color-text-blue);',
333
- );
334
- });
335
-
336
- it('replays authored status roles after overlapping adaptation and media aliases', () => {
337
- const theme = defineTheme({
338
- name: 'conditional-status-role-replay',
339
- adaptations: {
340
- rules: [
341
- {
342
- when: {contrast: 'more'},
343
- value: {tokens: {'--color-text-info': '#123456'}},
344
- },
345
- {
346
- when: {pointer: 'coarse'},
347
- value: {tokens: {'--color-text-blue': '#0055aa'}},
348
- },
349
- ],
350
- },
351
- onDark: {tokens: {'--color-text-blue': '#ffffff'}},
352
- });
353
- const css = generateThemeCSS(theme).component;
354
- const alias = '--color-text-info: var(--color-text-blue);';
355
- const authored = '--color-text-info: #123456;';
356
-
357
- // The adaptation-only source keeps its alias where that condition matches,
358
- // and the media surface that sets the hue gets its own.
359
- expect(count(css, alias)).toBe(2);
360
- // The authored role is emitted normally and replayed after adaptation aliases.
361
- expect(count(css, authored)).toBe(2);
362
- // The replay follows the adaptation alias; the media alias sits in its
363
- // own surface block.
364
- expect(css.lastIndexOf(authored)).toBeGreaterThan(css.indexOf(alias));
365
- });
366
-
367
- it('suppresses a root alias that an adaptation would turn into a cycle', () => {
368
- const theme = defineTheme({
369
- name: 'adaptation-closes-root-role-cycle',
370
- tokens: {'--color-text-blue': '#0074e2'},
371
- adaptations: {
372
- rules: [
373
- {
374
- when: {contrast: 'more'},
375
- value: {tokens: {'--color-text-blue': 'var(--color-text-info)'}},
376
- },
377
- ],
378
- },
379
- });
380
- const rootCss = generateThemeRules(theme).join('\n');
381
- const fullCss = generateThemeCSS(theme).component;
382
-
383
- expect(fullCss).toContain('--color-text-blue: var(--color-text-info);');
384
- expect(rootCss).not.toContain('--color-text-info: var(--color-text-blue);');
385
- });
386
-
387
- it('checks generated aliases across overlapping adaptation rules', () => {
388
- const theme = defineTheme({
389
- name: 'overlapping-generated-role-cycle',
390
- adaptations: {
391
- rules: [
392
- {
393
- when: {contrast: 'more'},
394
- value: {
395
- tokens: {
396
- '--color-text-blue': 'var(--color-text-success)',
397
- },
398
- },
399
- },
400
- {
401
- when: {pointer: 'coarse'},
402
- value: {
403
- tokens: {'--color-text-green': 'var(--color-text-info)'},
404
- },
405
- },
406
- ],
407
- },
408
- });
409
- const css = generateAdaptationCSS(theme).component;
410
-
411
- // Both rules can match together, so the second alias would close a loop
412
- // through the first and is not emitted.
413
- expect(css).toContain('--color-text-info: var(--color-text-blue);');
414
- expect(css).not.toContain('--color-text-success: var(--color-text-green);');
415
- });
416
-
417
- it('keeps aliases across mutually exclusive adaptation conditions', () => {
418
- const theme = defineTheme({
419
- name: 'mutually-exclusive-status-references',
420
- tokens: {'--color-text-blue': '#0066cc'},
421
- adaptations: {
422
- rules: [
423
- {
424
- when: {pointer: 'coarse'},
425
- value: {
426
- tokens: {'--color-text-blue': 'var(--color-text-success)'},
427
- },
428
- },
429
- {
430
- when: {pointer: 'fine'},
431
- value: {
432
- tokens: {'--color-text-green': 'var(--color-text-info)'},
433
- },
434
- },
435
- ],
436
- },
437
- });
438
-
439
- expect(generateThemeCSS(theme).component).toContain(
440
- '--color-text-info: var(--color-text-blue);',
441
- );
442
- });
443
-
444
- it('keeps an alias when a later matching rule repairs the cycle', () => {
445
- const theme = defineTheme({
446
- name: 'repaired-status-reference',
447
- tokens: {'--color-text-blue': '#0066cc'},
448
- adaptations: {
449
- rules: [
450
- {
451
- when: {pointer: 'coarse'},
452
- value: {tokens: {'--color-text-blue': 'var(--color-text-info)'}},
453
- },
454
- {
455
- when: {pointer: 'coarse'},
456
- value: {tokens: {'--color-text-blue': '#abcdef'}},
457
- },
458
- ],
459
- },
460
- });
461
-
462
- expect(generateThemeCSS(theme).component).toContain(
463
- '--color-text-info: var(--color-text-blue);',
464
- );
465
- });
466
-
467
- it('checks the final authored-role replay before emitting aliases', () => {
468
- const theme = defineTheme({
469
- name: 'adaptation-role-replay-cycle',
470
- adaptations: {
471
- rules: [
472
- {
473
- when: {pointer: 'coarse'},
474
- value: {
475
- tokens: {'--color-text-info': 'var(--color-text-success)'},
476
- },
477
- },
478
- {
479
- when: {pointer: 'coarse'},
480
- value: {
481
- tokens: {
482
- '--color-text-blue': '#123456',
483
- '--color-text-green': 'var(--color-text-info)',
484
- },
485
- },
486
- },
487
- ],
488
- },
489
- });
490
- const css = generateAdaptationCSS(theme).component;
491
-
492
- expect(css).not.toContain('--color-text-success: var(--color-text-green);');
493
- });
494
-
495
- it('preserves important declarations while modeling later repairs', () => {
496
- const theme = defineTheme({
497
- name: 'important-status-reference',
498
- tokens: {'--color-text-blue': '#0066cc'},
499
- adaptations: {
500
- rules: [
501
- {
502
- when: {pointer: 'coarse'},
503
- value: {
504
- tokens: {
505
- '--color-text-blue': 'var(--color-text-info) !important',
506
- },
507
- },
508
- },
509
- {
510
- when: {pointer: 'coarse'},
511
- value: {tokens: {'--color-text-blue': '#123456'}},
512
- },
513
- ],
514
- },
515
- });
516
- const rootCss = generateThemeRules(theme).join('\n');
517
-
518
- expect(rootCss).not.toContain('--color-text-info: var(--color-text-blue);');
519
- });
520
-
521
- it('does not treat an escaped bang as declaration priority', () => {
522
- const theme = defineTheme({
523
- name: 'escaped-bang-status-reference',
524
- tokens: {'--color-text-blue': '#0066cc'},
525
- adaptations: {
526
- rules: [
527
- {
528
- when: {pointer: 'coarse'},
529
- value: {
530
- tokens: {
531
- '--color-text-blue': 'var(--color-text-info) \\!important',
532
- },
533
- },
534
- },
535
- {
536
- when: {pointer: 'coarse'},
537
- value: {tokens: {'--color-text-blue': '#123456'}},
538
- },
539
- ],
540
- },
541
- });
542
- const rootCss = generateThemeRules(theme).join('\n');
543
-
544
- expect(rootCss).toContain('--color-text-info: var(--color-text-blue);');
545
- });
546
-
547
- it('does not treat an important() function as declaration priority', () => {
548
- const theme = defineTheme({
549
- name: 'important-function-status-reference',
550
- tokens: {'--color-text-blue': '#0066cc'},
551
- adaptations: {
552
- rules: [
553
- {
554
- when: {pointer: 'coarse'},
555
- value: {tokens: {'--color-text-blue': 'red !important()'}},
556
- },
557
- {
558
- when: {pointer: 'coarse'},
559
- value: {tokens: {'--color-text-blue': 'var(--color-text-info)'}},
560
- },
561
- ],
562
- },
563
- });
564
-
565
- expect(generateThemeRules(theme).join('\n')).not.toContain(
566
- '--color-text-info: var(--color-text-blue);',
567
- );
568
- });
569
-
570
- it('does not model a dropped declaration as a cycle repair', () => {
571
- const theme = defineTheme({
572
- name: 'dropped-status-repair',
573
- tokens: {'--color-text-blue': '#0066cc'},
574
- adaptations: {
575
- rules: [
576
- {
577
- when: {pointer: 'coarse'},
578
- value: {tokens: {'--color-text-blue': 'var(--color-text-info)'}},
579
- },
580
- {
581
- when: {pointer: 'coarse'},
582
- value: {tokens: {'--color-text-blue': '#abcdef;'}},
583
- },
584
- ],
585
- },
586
- });
587
- const warnings: string[] = [];
588
- const rootCss = generateThemeRules(theme, warnings).join('\n');
589
-
590
- expect(rootCss).not.toContain('--color-text-info: var(--color-text-blue);');
591
- expect(generateAdaptationCSS(theme, warnings).component).not.toContain(
592
- '--color-text-blue: #abcdef;',
593
- );
594
- expect(warnings.some(warning => warning.includes('dropped'))).toBe(true);
595
- });
596
-
597
- it('keeps a root alias when a matching rule overwrites that alias', () => {
598
- const theme = defineTheme({
599
- name: 'overwritten-root-status-alias',
600
- tokens: {'--color-text-blue': '#0066cc'},
601
- adaptations: {
602
- rules: [
603
- {
604
- when: {pointer: 'coarse'},
605
- value: {tokens: {'--color-text-info': '#123456'}},
606
- },
607
- ],
608
- },
609
- });
610
- theme.__adaptationRules![0].tokens['--color-text-info'] =
611
- 'var(--color-text-info)';
612
-
613
- expect(generateThemeRules(theme).join('\n')).toContain(
614
- '--color-text-info: var(--color-text-blue);',
615
- );
616
- });
617
-
618
- it('invalidates cached status aliases after legacy token mutation', () => {
619
- const theme = defineTheme({
620
- name: 'mutated-status-alias-cache',
621
- tokens: {'--color-text-blue': '#0074e2'},
622
- });
623
-
624
- expect(generateThemeCSS(theme).component).toContain(
625
- '--color-text-info: var(--color-text-blue);',
626
- );
627
- theme.tokens['--color-text-blue'] = 'var(--color-text-info)';
628
- expect(generateThemeCSS(theme).component).not.toContain(
629
- '--color-text-info: var(--color-text-blue);',
630
- );
631
- });
632
-
633
- it('invalidates cached rules after legacy adaptation component mutation', () => {
634
- const theme = defineTheme({
635
- name: 'mutated-adaptation-component-cache',
636
- adaptations: {
637
- rules: [
638
- {
639
- when: {contrast: 'more'},
640
- value: {
641
- components: {button: {base: {borderWidth: '1px'}}},
642
- },
643
- },
644
- ],
645
- },
646
- });
647
-
648
- expect(generateThemeCSS(theme).component).toContain('border-width: 1px');
649
- theme.__adaptationRules = theme.__adaptationRules!.map(rule => ({
650
- ...rule,
651
- components: {button: {base: {borderWidth: '9px'}}},
652
- }));
653
- const css = generateThemeCSS(theme).component;
654
- expect(css).toContain('border-width: 9px');
655
- expect(css).not.toContain('border-width: 1px');
656
- });
657
-
658
- it('emits a guarded alias when only an adaptation authors the source', () => {
659
- const theme = defineTheme({
660
- name: 'adaptation-only-status-source',
661
- adaptations: {
662
- rules: [
663
- {
664
- when: {contrast: 'more'},
665
- value: {tokens: {'--color-text-blue': '#0055aa'}},
666
- },
667
- ],
668
- },
669
- });
670
- const css = generateAdaptationCSS(theme).component;
671
-
672
- expect(css).toContain('--color-text-blue: #0055aa;');
673
- expect(css).toContain('--color-text-info: var(--color-text-blue);');
674
- });
675
-
676
- it('lets explicit values beat generated values within one rule', () => {
677
- const theme = defineTheme({
678
- name: 'rule-precedence',
679
- color: {accent: '#0064E0'},
680
- adaptations: {
681
- rules: [
682
- {
683
- when: {contrast: 'more'},
684
- value: {
685
- color: {accent: '#00AA00'},
686
- tokens: {'--color-accent': '#FF0000'},
687
- },
688
- },
689
- ],
690
- },
691
- });
692
-
693
- expect(theme.__adaptationRules?.[0].tokens['--color-accent']).toBe(
694
- '#FF0000',
695
- );
696
- });
697
-
698
- it('treats generated leaves as rule writes above root token pins', () => {
699
- const theme = defineTheme({
700
- name: 'generated-write',
701
- typography: {scale: {base: 14, ratio: 1.2}},
702
- tokens: {'--font-size-base': '2rem'},
703
- adaptations: {
704
- rules: [
705
- {
706
- when: {width: {below: 'sm'}},
707
- value: {typography: {scale: {base: 16}}},
708
- },
709
- ],
710
- },
711
- });
712
-
713
- expect(theme.tokens['--font-size-base']).toBe('2rem');
714
- expect(theme.__adaptationRules?.[0].tokens['--font-size-base']).toBe(
715
- '1rem',
716
- );
717
- });
718
-
719
- it('writes font families without re-expanding an untouched root scale', () => {
720
- const theme = defineTheme({
721
- name: 'family-only',
722
- typography: {scale: {base: 14, ratio: 1.2}},
723
- adaptations: {
724
- rules: [
725
- {
726
- when: {pointer: 'coarse'},
727
- value: {typography: {body: {family: 'Geist'}}},
728
- },
729
- ],
730
- },
731
- });
732
-
733
- const rule = theme.__adaptationRules?.[0];
734
- expect(rule?.tokens['--font-family-body']).toBe('Geist');
735
- expect(rule?.tokens['--font-size-base']).toBeUndefined();
736
- expect(rule?.components).toBeUndefined();
737
- });
738
-
739
- it('completes partial scales from root metadata and refuses approximations', () => {
740
- const complete = defineTheme({
741
- name: 'complete-scale',
742
- typography: {scale: {base: 14, ratio: 1.25}},
743
- radius: {base: 6, multiplier: 1},
744
- adaptations: {
745
- rules: [
746
- {
747
- when: {width: {below: 'md'}},
748
- value: {
749
- typography: {scale: {base: 16}},
750
- radius: {multiplier: 2},
751
- },
752
- },
753
- ],
754
- },
755
- });
756
-
757
- expect(complete.__adaptationRules?.[0].tokens['--font-size-lg']).toBe(
758
- '1.25rem',
759
- );
760
- expect(complete.__adaptationRules?.[0].tokens['--radius-element']).toBe(
761
- '24px',
762
- );
763
-
764
- expect(() =>
765
- defineTheme({
766
- name: 'missing-scale',
767
- adaptations: {
768
- rules: [
769
- {
770
- when: {pointer: 'coarse'},
771
- value: {motion: {fast: 100}},
772
- },
773
- ],
774
- },
775
- }),
776
- ).toThrow(/must supply `fast`, `medium`, and `ratio`/);
777
- });
778
-
779
- it('lowers component writes through the ordinary derived-variable path', () => {
780
- const theme = defineTheme(
781
- adaptationInput([
782
- {
783
- when: {pointer: 'coarse'},
784
- value: {components: {button: {base: {borderRadius: '20px'}}}},
785
- },
786
- ]),
787
- );
788
-
789
- const css = generateAdaptationCSS(theme).component;
790
- expect(css).toContain('--_button-radius: 20px');
791
- });
792
- });
793
-
794
- describe('adapted type-scale component defaults', () => {
795
- const displayFamily = 'Sarina, "Brush Script MT", "Snell Roundhand", cursive';
796
- const butterShapedInput: DefineThemeInput = {
797
- name: 'butter-shaped',
798
- typography: {
799
- scale: {base: 16, ratio: 1.25},
800
- body: {family: 'Outfit', fallbacks: 'sans-serif'},
801
- },
802
- components: {
803
- text: Object.fromEntries(
804
- ['display-1', 'display-2', 'display-3'].map(type => [
805
- `type:${type}`,
806
- {fontFamily: displayFamily},
807
- ]),
808
- ),
809
- button: {base: {borderRadius: '12px'}},
810
- },
811
- adaptations: {
812
- rules: [
813
- {
814
- when: {width: {below: 'md'}, pointer: 'coarse'},
815
- value: {typography: {scale: {base: 14, ratio: 1.2}}},
816
- },
817
- ],
818
- },
819
- };
820
-
821
- it('keeps butter-shaped display families while adapting scale tokens only', () => {
822
- const theme = defineTheme(butterShapedInput);
823
- const rule = theme.__adaptationRules![0];
824
- const css = generateThemeCSS(theme).component;
825
- const adaptiveCSS = generateAdaptationCSS(theme).component;
826
-
827
- expect(rule.query).toBe('(width < 768px) and (pointer: coarse)');
828
- expect(theme.tokens['--font-size-base']).toBe('1rem');
829
- expect(rule.tokens['--font-size-base']).toBe('0.875rem');
830
- expect(rule.tokens['--font-size-5xl']).not.toBe(
831
- theme.tokens['--font-size-5xl'],
832
- );
833
- expect(adaptiveCSS).toContain('--font-size-base: 0.875rem');
834
- // The root owns the var() wiring and its authored overrides. Re-emitting
835
- // either would turn an unrelated scale change into a component write.
836
- expect(rule.components).toBeUndefined();
837
- expect(adaptiveCSS).not.toContain('.astryx-text');
838
- expect(adaptiveCSS).not.toContain('.astryx-heading');
839
- expect(adaptiveCSS).not.toContain('.astryx-button');
840
- for (const type of ['display-1', 'display-2', 'display-3']) {
841
- expect(theme.components?.text[`type:${type}`].fontFamily).toBe(
842
- displayFamily,
843
- );
844
- expect(count(css, `.astryx-text[data-type="${type}"] {`)).toBe(1);
845
- }
846
- expect(count(css, `font-family: ${displayFamily};`)).toBe(3);
847
- // Built modules retain root components + intent, not resolved rule layers.
848
- expect(generateThemeCSS({...theme, __adaptationRules: undefined})).toEqual(
849
- generateThemeCSS(theme),
850
- );
851
- });
852
-
853
- it('fills only missing generated leaves when the root has no scale', () => {
854
- const components = {
855
- heading: {
856
- 'level:1': {fontFamily: 'serif', fontWeight: '900'},
857
- 'type:display-1': {fontSize: '5rem'},
858
- },
859
- text: {
860
- 'type:display-1': {fontFamily: displayFamily, lineHeight: '1.1'},
861
- 'type:body': {fontSize: '18px'},
862
- 'type:custom': {fontFamily: 'monospace'},
863
- },
864
- button: {base: {borderRadius: '12px'}},
865
- };
866
- const before = structuredClone(components);
867
- const theme = defineTheme({
868
- ...butterShapedInput,
869
- typography: undefined,
870
- components,
871
- });
872
- const generated = theme.__adaptationRules![0].components!;
873
-
874
- expect(generated.heading['level:1']).toEqual({
875
- fontSize: 'var(--text-heading-1-size)',
876
- lineHeight: 'var(--text-heading-1-leading)',
877
- });
878
- expect(generated.heading['type:display-1']).toEqual({
879
- fontFamily: 'var(--font-family-heading)',
880
- lineHeight: 'var(--text-display-1-leading)',
881
- });
882
- expect(generated.text['type:display-1']).toEqual({
883
- fontSize: 'var(--text-display-1-size)',
884
- });
885
- expect(generated.text['type:body']).toEqual({
886
- fontFamily: 'var(--font-family-body)',
887
- lineHeight: 'var(--text-body-leading)',
888
- });
889
- expect(generated.text['type:custom']).toBeUndefined();
890
- expect(generated.button).toBeUndefined();
891
- expect(components).toEqual(before);
892
- expect(theme.components).toEqual(before);
893
- });
894
-
895
- it('preserves explicit rule writes, including a later root-restoring value', () => {
896
- const theme = defineTheme({
897
- ...butterShapedInput,
898
- adaptations: {
899
- rules: [
900
- {
901
- when: {pointer: 'coarse'},
902
- value: {
903
- typography: {scale: {base: 15}},
904
- components: {
905
- text: {'type:display-1': {fontFamily: 'monospace'}},
906
- heading: {'level:1': {fontWeight: '300'}},
907
- },
908
- },
909
- },
910
- ...butterShapedInput.adaptations!.rules!,
911
- {
912
- when: {contrast: 'more'},
913
- value: {
914
- typography: {scale: {base: 14}},
915
- components: {
916
- text: {'type:display-1': {fontFamily: displayFamily}},
917
- },
918
- },
919
- },
920
- ],
921
- },
922
- });
923
- const [first, scaleOnly, restore] = theme.__adaptationRules!;
924
- expect(first.components).toEqual({
925
- text: {'type:display-1': {fontFamily: 'monospace'}},
926
- heading: {'level:1': {fontWeight: '300'}},
927
- });
928
- expect(scaleOnly.components).toBeUndefined();
929
- expect(restore.components).toEqual({
930
- text: {'type:display-1': {fontFamily: displayFamily}},
931
- });
932
- const css = generateAdaptationCSS(theme).component;
933
- expect(css.indexOf('font-family: monospace')).toBeLessThan(
934
- css.indexOf(`font-family: ${displayFamily}`),
935
- );
936
- // Explicit heading defaults still trigger the public weight-prop guard.
937
- expect(css).toContain(
938
- '.astryx-heading[data-weight="bold"] { font-weight: var(--font-weight-bold); }',
939
- );
940
- });
941
-
942
- it('lets a later generated component leaf win when its root path is absent', () => {
943
- const theme = defineTheme(
944
- adaptationInput([
945
- {
946
- when: {pointer: 'coarse'},
947
- value: {components: {text: {'type:body': {fontSize: '2rem'}}}},
948
- },
949
- {
950
- when: {pointer: 'coarse'},
951
- value: {typography: {scale: {base: 14, ratio: 1.2}}},
952
- },
953
- ]),
954
- );
955
- expect(theme.__axes.typography).toBeUndefined();
956
- expect(theme.components).toBeUndefined();
957
- const [authored, generated] = theme.__adaptationRules!;
958
- expect(authored.components?.text['type:body'].fontSize).toBe('2rem');
959
- expect(generated.components?.text['type:body'].fontSize).toBe(
960
- 'var(--text-body-size)',
961
- );
962
-
963
- // FR4/FR6: only existing root paths suppress generated defaults. Without
964
- // root wiring, the later scale produces a component write, so it beats the
965
- // earlier authored leaf when both conditions match (unlike the case above).
966
- const css = generateAdaptationCSS(theme).component;
967
- const bodyRules = [
968
- ...css.matchAll(/\.astryx-text\[data-type="body"\] \{([^}]+)\}/g),
969
- ].map(match => match[1]);
970
- expect(bodyRules).toHaveLength(2);
971
- expect(bodyRules[0]).toContain('font-size: 2rem;');
972
- expect(bodyRules[1]).toContain('font-size: var(--text-body-size);');
973
- expect(mediaPreludes(css)).toEqual([
974
- '(pointer: coarse)',
975
- '(pointer: coarse)',
976
- ]);
977
- expect(generateThemeCSS({...theme, __adaptationRules: undefined})).toEqual(
978
- generateThemeCSS(theme),
979
- );
980
- });
981
-
982
- it('uses the effective child root without mutating inherited components', () => {
983
- const base = defineTheme(butterShapedInput);
984
- const before = structuredClone(base.components);
985
- const child = defineTheme({
986
- name: 'child-display',
987
- extends: base,
988
- components: {
989
- text: {'type:display-2': {fontFamily: 'serif'}},
990
- heading: {'level:2': {fontFamily: 'monospace'}},
991
- },
992
- });
993
- expect(child.__adaptationRules![0].components).toBeUndefined();
994
- expect(child.components?.text['type:display-1'].fontFamily).toBe(
995
- displayFamily,
996
- );
997
- expect(child.components?.text['type:display-2'].fontFamily).toBe('serif');
998
- expect(child.components?.heading['level:2'].fontFamily).toBe('monospace');
999
- expect(base.components).toEqual(before);
1000
- });
1001
- });
1002
-
1003
- describe('theme-local adaptation values', () => {
1004
- const localName = '--astryx-theme-local-root-control-height';
1005
-
1006
- it('replaces an enrolled exact name and permits rule references to it', () => {
1007
- const theme = defineTheme({
1008
- name: 'local-root',
1009
- localTokens: {[localName]: '32px'},
1010
- adaptations: {
1011
- rules: [
1012
- {
1013
- when: {pointer: 'coarse'},
1014
- value: {
1015
- localTokens: {[localName]: '44px'},
1016
- components: {
1017
- button: {base: {minHeight: `var(${localName})`}},
1018
- },
1019
- },
1020
- },
1021
- ],
1022
- },
1023
- });
1024
-
1025
- expect(theme.__adaptationRules?.[0].localTokens).toEqual({
1026
- [localName]: '44px',
1027
- });
1028
- expect(generateAdaptationCSS(theme).component).toContain(
1029
- `${localName}: 44px`,
1030
- );
1031
- });
1032
-
1033
- it('does not let a rule enroll or misroute a local name', () => {
1034
- expect(() =>
1035
- defineTheme({
1036
- name: 'rule-enroll',
1037
- adaptations: {
1038
- rules: [
1039
- {
1040
- when: {pointer: 'coarse'},
1041
- value: {
1042
- localTokens: {
1043
- '--astryx-theme-rule-enroll-new-name': '44px',
1044
- },
1045
- },
1046
- },
1047
- ],
1048
- },
1049
- }),
1050
- ).toThrow(/cannot enroll a theme-local token/);
1051
-
1052
- expect(() =>
1053
- defineTheme({
1054
- name: 'local-root',
1055
- localTokens: {[localName]: '32px'},
1056
- adaptations: {
1057
- rules: [
1058
- {
1059
- when: {pointer: 'coarse'},
1060
- value: {tokens: {[localName]: '44px'}},
1061
- },
1062
- ],
1063
- },
1064
- } as unknown as DefineThemeInput),
1065
- ).toThrow(/write it through value.localTokens/);
1066
- });
1067
-
1068
- it('treats an unenrolled prefix-like adaptation token as portable', () => {
1069
- const name = '--astryx-theme-unrelated-owner-control-height';
1070
- const theme = defineTheme({
1071
- name: 'external-rule-token',
1072
- adaptations: {
1073
- rules: [
1074
- {
1075
- when: {pointer: 'coarse'},
1076
- value: {tokens: {[name]: '44px'}},
1077
- },
1078
- ],
1079
- },
1080
- } as unknown as DefineThemeInput);
1081
-
1082
- expect(theme.__adaptationRules?.[0].tokens[name]).toBe('44px');
1083
- });
1084
-
1085
- it('rejects conditional local-token cycles', () => {
1086
- const a = '--astryx-theme-cycle-local-a';
1087
- const b = '--astryx-theme-cycle-local-b';
1088
- expect(() =>
1089
- defineTheme({
1090
- name: 'cycle-local',
1091
- localTokens: {[a]: '1px', [b]: `var(${a})`},
1092
- adaptations: {
1093
- rules: [
1094
- {
1095
- when: {pointer: 'coarse'},
1096
- value: {localTokens: {[a]: `var(${b})`}},
1097
- },
1098
- ],
1099
- },
1100
- }),
1101
- ).toThrow(/Theme token cycle detected/);
1102
- });
1103
-
1104
- it('rejects a cycle formed only by simultaneously matching rules', () => {
1105
- const a = '--astryx-theme-overlap-cycle-a';
1106
- const b = '--astryx-theme-overlap-cycle-b';
1107
-
1108
- expect(() =>
1109
- defineTheme({
1110
- name: 'overlap-cycle',
1111
- localTokens: {[a]: '1px', [b]: '2px'},
1112
- adaptations: {
1113
- rules: [
1114
- {
1115
- when: {pointer: 'coarse'},
1116
- value: {localTokens: {[a]: `var(${b})`}},
1117
- },
1118
- {
1119
- when: {contrast: 'more'},
1120
- value: {localTokens: {[b]: `var(${a})`}},
1121
- },
1122
- ],
1123
- },
1124
- }),
1125
- ).toThrow(/overlapping rules \[0, 1\].*cycle detected/i);
1126
- });
1127
-
1128
- it('rejects cycles routed through portable adaptation tokens', () => {
1129
- const local = '--astryx-theme-portable-cycle-a';
1130
- expect(() =>
1131
- defineTheme({
1132
- name: 'portable-cycle',
1133
- localTokens: {[local]: '1px'},
1134
- tokens: {'--color-background-body': 'white'},
1135
- adaptations: {
1136
- rules: [
1137
- {
1138
- when: {pointer: 'coarse'},
1139
- value: {
1140
- tokens: {'--color-background-body': `var(${local})`},
1141
- },
1142
- },
1143
- {
1144
- when: {contrast: 'more'},
1145
- value: {
1146
- localTokens: {[local]: 'var(--color-background-body)'},
1147
- },
1148
- },
1149
- ],
1150
- },
1151
- }),
1152
- ).toThrow(/overlapping rules \[0, 1\].*cycle detected/i);
1153
-
1154
- const singleLocal = '--astryx-theme-single-portable-cycle-a';
1155
- expect(() =>
1156
- defineTheme({
1157
- name: 'single-portable-cycle',
1158
- localTokens: {[singleLocal]: '1px'},
1159
- tokens: {'--color-background-body': 'white'},
1160
- adaptations: {
1161
- rules: [
1162
- {
1163
- when: {pointer: 'coarse'},
1164
- value: {
1165
- tokens: {
1166
- '--color-background-body': `var(${singleLocal})`,
1167
- },
1168
- localTokens: {
1169
- [singleLocal]: 'var(--color-background-body)',
1170
- },
1171
- },
1172
- },
1173
- ],
1174
- },
1175
- }),
1176
- ).toThrow(/adaptations rule \[0\].*cycle detected/i);
1177
-
1178
- expect(() =>
1179
- defineTheme({
1180
- name: 'portable-only-cycle',
1181
- tokens: {
1182
- '--color-background-body': 'white',
1183
- '--color-background-surface': 'gray',
1184
- },
1185
- adaptations: {
1186
- rules: [
1187
- {
1188
- when: {pointer: 'coarse'},
1189
- value: {
1190
- tokens: {
1191
- '--color-background-body': 'var(--color-background-surface)',
1192
- },
1193
- },
1194
- },
1195
- {
1196
- when: {contrast: 'more'},
1197
- value: {
1198
- tokens: {
1199
- '--color-background-surface': 'var(--color-background-body)',
1200
- },
1201
- },
1202
- },
1203
- ],
1204
- },
1205
- }),
1206
- ).toThrow(/overlapping rules \[0, 1\].*cycle detected/i);
1207
- });
1208
-
1209
- it('does not attribute an unrelated pre-existing root cycle to a rule', () => {
1210
- expect(() =>
1211
- defineTheme({
1212
- name: 'unrelated-root-cycle',
1213
- tokens: {
1214
- '--color-background-body': 'var(--color-background-surface)',
1215
- '--color-background-surface': 'var(--color-background-body)',
1216
- },
1217
- adaptations: {
1218
- rules: [
1219
- {
1220
- when: {pointer: 'coarse'},
1221
- value: {tokens: {'--spacing-4': '12px'}},
1222
- },
1223
- ],
1224
- },
1225
- }),
1226
- ).not.toThrow();
1227
- });
1228
-
1229
- it('rejects a rule cycle that shares an edge with a root-only cycle', () => {
1230
- expect(() =>
1231
- defineTheme({
1232
- name: 'shared-cycle-edge',
1233
- tokens: {
1234
- '--color-background-body':
1235
- 'linear-gradient(var(--color-background-surface), var(--color-background-muted))',
1236
- '--color-background-surface': 'var(--color-background-card)',
1237
- '--color-background-card': 'var(--color-background-body)',
1238
- '--color-background-muted': 'white',
1239
- },
1240
- adaptations: {
1241
- rules: [
1242
- {
1243
- when: {pointer: 'coarse'},
1244
- value: {
1245
- tokens: {
1246
- '--color-background-muted': 'var(--color-background-card)',
1247
- },
1248
- },
1249
- },
1250
- ],
1251
- },
1252
- }),
1253
- ).toThrow(/adaptations rule \[0\].*cycle detected/i);
1254
- });
1255
-
1256
- it('rejects a three-rule cycle that no pair creates', () => {
1257
- const a = '--astryx-theme-three-way-cycle-a';
1258
- const b = '--astryx-theme-three-way-cycle-b';
1259
- const c = '--astryx-theme-three-way-cycle-c';
1260
-
1261
- expect(() =>
1262
- defineTheme({
1263
- name: 'three-way-cycle',
1264
- localTokens: {[a]: '1px', [b]: '2px', [c]: '3px'},
1265
- adaptations: {
1266
- rules: [
1267
- {
1268
- when: {pointer: 'coarse'},
1269
- value: {localTokens: {[a]: `var(${b})`}},
1270
- },
1271
- {
1272
- when: {contrast: 'more'},
1273
- value: {localTokens: {[b]: `var(${c})`}},
1274
- },
1275
- {
1276
- when: {motion: 'reduce'},
1277
- value: {localTokens: {[c]: `var(${a})`}},
1278
- },
1279
- ],
1280
- },
1281
- }),
1282
- ).toThrow(/overlapping rules \[0, 1, 2\].*cycle detected/i);
1283
- });
1284
-
1285
- it('allows mutually exclusive writes and a later matching cycle repair', () => {
1286
- const exclusiveA = '--astryx-theme-exclusive-cycle-a';
1287
- const exclusiveB = '--astryx-theme-exclusive-cycle-b';
1288
- expect(() =>
1289
- defineTheme({
1290
- name: 'exclusive-cycle',
1291
- localTokens: {[exclusiveA]: '1px', [exclusiveB]: '2px'},
1292
- adaptations: {
1293
- rules: [
1294
- {
1295
- when: {pointer: 'coarse'},
1296
- value: {localTokens: {[exclusiveA]: `var(${exclusiveB})`}},
1297
- },
1298
- {
1299
- when: {pointer: 'fine'},
1300
- value: {localTokens: {[exclusiveB]: `var(${exclusiveA})`}},
1301
- },
1302
- ],
1303
- },
1304
- }),
1305
- ).not.toThrow();
1306
-
1307
- const widthA = '--astryx-theme-width-exclusive-cycle-a';
1308
- const widthB = '--astryx-theme-width-exclusive-cycle-b';
1309
- expect(() =>
1310
- defineTheme({
1311
- name: 'width-exclusive-cycle',
1312
- localTokens: {[widthA]: '1px', [widthB]: '2px'},
1313
- adaptations: {
1314
- rules: [
1315
- {
1316
- when: {width: {below: 'md'}},
1317
- value: {localTokens: {[widthA]: `var(${widthB})`}},
1318
- },
1319
- {
1320
- when: {width: {from: 'md'}},
1321
- value: {localTokens: {[widthB]: `var(${widthA})`}},
1322
- },
1323
- ],
1324
- },
1325
- }),
1326
- ).not.toThrow();
1327
-
1328
- const repairedA = '--astryx-theme-repaired-cycle-a';
1329
- const repairedB = '--astryx-theme-repaired-cycle-b';
1330
- expect(() =>
1331
- defineTheme({
1332
- name: 'repaired-cycle',
1333
- localTokens: {[repairedA]: '1px', [repairedB]: '2px'},
1334
- adaptations: {
1335
- rules: [
1336
- {
1337
- when: {pointer: 'coarse'},
1338
- value: {localTokens: {[repairedA]: `var(${repairedB})`}},
1339
- },
1340
- {
1341
- when: {contrast: 'more'},
1342
- value: {localTokens: {[repairedB]: `var(${repairedA})`}},
1343
- },
1344
- {
1345
- when: {pointer: 'coarse', contrast: 'more'},
1346
- value: {localTokens: {[repairedB]: '4px'}},
1347
- },
1348
- ],
1349
- },
1350
- }),
1351
- ).not.toThrow();
1352
- });
1353
-
1354
- it('allows a later co-matching rule to repair a cycle from one rule', () => {
1355
- const a = '--astryx-theme-direct-repair-a';
1356
- const b = '--astryx-theme-direct-repair-b';
1357
-
1358
- expect(() =>
1359
- defineTheme({
1360
- name: 'direct-repair',
1361
- localTokens: {[a]: '1px', [b]: `var(${a})`},
1362
- adaptations: {
1363
- rules: [
1364
- {
1365
- when: {pointer: 'coarse'},
1366
- value: {localTokens: {[a]: `var(${b})`}},
1367
- },
1368
- {
1369
- when: {pointer: 'coarse'},
1370
- value: {localTokens: {[b]: '2px'}},
1371
- },
1372
- ],
1373
- },
1374
- }),
1375
- ).not.toThrow();
1376
- });
1377
-
1378
- it('checks inherited and child rules in the same reachable cascade', () => {
1379
- const a = '--astryx-theme-cycle-base-a';
1380
- const b = '--astryx-theme-cycle-base-b';
1381
- const base = defineTheme({
1382
- name: 'cycle-base',
1383
- localTokens: {[a]: '1px', [b]: '2px'},
1384
- adaptations: {
1385
- rules: [
1386
- {
1387
- when: {pointer: 'coarse'},
1388
- value: {localTokens: {[a]: `var(${b})`}},
1389
- },
1390
- ],
1391
- },
1392
- });
1393
-
1394
- expect(() =>
1395
- defineTheme({
1396
- name: 'cycle-child',
1397
- extends: base,
1398
- adaptations: {
1399
- rules: [
1400
- {
1401
- when: {contrast: 'more'},
1402
- value: {localTokens: {[b]: `var(${a})`}},
1403
- },
1404
- ],
1405
- },
1406
- }),
1407
- ).toThrow(
1408
- /overlapping rules \[0, 1\].*pointer: coarse.*prefers-contrast: more.*cycle detected/i,
1409
- );
1410
- });
1411
- });
1412
-
1413
- describe('extension semantics and built metadata', () => {
1414
- it('inherits breakpoint overrides and appends child rules', () => {
1415
- const base = defineTheme({
1416
- name: 'base-order',
1417
- adaptations: {
1418
- widthBreakpoints: {md: 800},
1419
- rules: [
1420
- {
1421
- when: {width: {from: 'md'}},
1422
- value: {tokens: {'--spacing-4': '18px'}},
1423
- },
1424
- ],
1425
- },
1426
- });
1427
- const child = defineTheme({
1428
- name: 'child-order',
1429
- extends: base,
1430
- adaptations: {
1431
- widthBreakpoints: {md: 820},
1432
- rules: [
1433
- {
1434
- when: {pointer: 'coarse'},
1435
- value: {tokens: {'--size-element-md': '44px'}},
1436
- },
1437
- ],
1438
- },
1439
- });
1440
-
1441
- expect(child.__adaptations.widthBreakpoints.md).toBe(820);
1442
- expect(child.__adaptations.rules).toHaveLength(2);
1443
- expect(mediaPreludes(generateAdaptationCSS(child).component)).toEqual([
1444
- '(width >= 820px)',
1445
- '(pointer: coarse)',
1446
- ]);
1447
- });
1448
-
1449
- it("re-resolves inherited rules against the child's effective root axis", () => {
1450
- const base = defineTheme({
1451
- name: 'base-axis',
1452
- typography: {scale: {base: 14, ratio: 1.2}},
1453
- adaptations: {
1454
- rules: [
1455
- {
1456
- when: {width: {below: 'sm'}},
1457
- value: {typography: {scale: {base: 16}}},
1458
- },
1459
- ],
1460
- },
1461
- });
1462
- const child = defineTheme({
1463
- name: 'child-axis',
1464
- extends: base,
1465
- typography: {scale: {base: 15, ratio: 1.25}},
1466
- });
1467
-
1468
- expect(child.__adaptationRules?.[0].tokens['--font-size-lg']).toBe(
1469
- '1.25rem',
1470
- );
1471
- });
1472
-
1473
- it("merges a child's partial typography axis before re-resolving inherited rules", () => {
1474
- const base = defineTheme({
1475
- name: 'partial-typography-base',
1476
- typography: {
1477
- scale: {base: 14, ratio: 1.25},
1478
- body: {family: 'Inter', fallbacks: 'sans-serif'},
1479
- heading: {family: 'Playfair', fallbacks: 'serif'},
1480
- },
1481
- adaptations: {
1482
- rules: [
1483
- {
1484
- when: {width: {from: 'lg'}},
1485
- value: {typography: {scale: {base: 18}}},
1486
- },
1487
- ],
1488
- },
1489
- });
1490
- const child = defineTheme({
1491
- name: 'partial-typography-child',
1492
- extends: base,
1493
- typography: {body: {family: 'Georgia'}},
1494
- });
1495
-
1496
- expect(child.__axes.typography?.scale).toEqual({base: 14, ratio: 1.25});
1497
- expect(child.__axes.typography?.body?.family).toBe('Georgia');
1498
- expect(child.__axes.typography?.body?.fallbacks).toBeUndefined();
1499
- expect(child.__axes.typography?.heading?.family).toBeUndefined();
1500
- expect(child.__axes.typography?.heading?.fallbacks).toBeUndefined();
1501
- expect(child.tokens['--font-family-heading']).toBe('Georgia');
1502
- expect(child.__adaptationRules?.[0].tokens['--font-family-body']).toBe(
1503
- 'Georgia',
1504
- );
1505
- expect(child.__adaptationRules?.[0].tokens['--font-family-heading']).toBe(
1506
- 'Georgia',
1507
- );
1508
- expect(child.__adaptationRules?.[0].tokens['--font-size-lg']).toBe(
1509
- '1.4375rem',
1510
- );
1511
- });
1512
-
1513
- it('keeps typography weights owned by the last config that declares a scale', () => {
1514
- const rule = {
1515
- when: {width: {from: 'lg' as const}},
1516
- value: {typography: {scale: {base: 18}}},
1517
- };
1518
- const weightedBase = defineTheme({
1519
- name: 'weight-owner-base',
1520
- typography: {
1521
- scale: {base: 14, ratio: 1.25},
1522
- body: {weight: 'medium'},
1523
- heading: {weight: 'bold'},
1524
- },
1525
- adaptations: {rules: [rule]},
1526
- });
1527
- const newScale = defineTheme({
1528
- name: 'weight-owner-new-scale',
1529
- extends: weightedBase,
1530
- typography: {scale: {base: 16, ratio: 1.2}},
1531
- });
1532
-
1533
- expect(newScale.__adaptationRules?.[0].tokens['--text-body-weight']).toBe(
1534
- newScale.tokens['--text-body-weight'],
1535
- );
1536
- expect(
1537
- newScale.__adaptationRules?.[0].tokens['--text-heading-1-weight'],
1538
- ).toBe(newScale.tokens['--text-heading-1-weight']);
1539
-
1540
- const defaultBase = defineTheme({
1541
- name: 'weight-owner-default-base',
1542
- typography: {scale: {base: 14, ratio: 1.25}},
1543
- adaptations: {rules: [rule]},
1544
- });
1545
- const weightWithoutScale = defineTheme({
1546
- name: 'weight-owner-no-scale',
1547
- extends: defaultBase,
1548
- typography: {heading: {weight: 'bold'}},
1549
- });
1550
-
1551
- expect(
1552
- weightWithoutScale.__adaptationRules?.[0].tokens[
1553
- '--text-heading-1-weight'
1554
- ],
1555
- ).toBe(weightWithoutScale.tokens['--text-heading-1-weight']);
1556
- });
1557
-
1558
- it('ignores a child fallback that has no family, matching root resolution', () => {
1559
- const base = defineTheme({
1560
- name: 'fallback-only-base',
1561
- typography: {
1562
- scale: {base: 14, ratio: 1.25},
1563
- heading: {family: 'Playfair', fallbacks: 'sans-serif'},
1564
- },
1565
- adaptations: {
1566
- rules: [
1567
- {
1568
- when: {width: {from: 'lg'}},
1569
- value: {typography: {scale: {base: 18}}},
1570
- },
1571
- ],
1572
- },
1573
- });
1574
- const child = defineTheme({
1575
- name: 'fallback-only-child',
1576
- extends: base,
1577
- typography: {heading: {fallbacks: 'serif'}},
1578
- });
1579
-
1580
- expect(child.tokens['--font-family-heading']).toBe('Playfair, sans-serif');
1581
- expect(child.__adaptationRules?.[0].tokens['--font-family-heading']).toBe(
1582
- child.tokens['--font-family-heading'],
1583
- );
1584
- });
1585
-
1586
- it("uses a child's own color axis when re-resolving inherited rules", () => {
1587
- const rule = {
1588
- when: {contrast: 'more' as const},
1589
- value: {color: {contrast: 'high' as const}},
1590
- };
1591
- const base = defineTheme({
1592
- name: 'partial-color-base',
1593
- color: {accent: '#B7410E'},
1594
- adaptations: {rules: [rule]},
1595
- });
1596
- const child = defineTheme({
1597
- name: 'partial-color-child',
1598
- extends: base,
1599
- color: {neutralStyle: 'warm'},
1600
- });
1601
- const expected = defineTheme({
1602
- name: 'partial-color-expected',
1603
- color: {neutralStyle: 'warm', contrast: 'high'},
1604
- });
1605
-
1606
- expect(child.__axes.color).toEqual({neutralStyle: 'warm'});
1607
- expect(child.__adaptationRules?.[0].tokens).toEqual(expected.tokens);
1608
- });
1609
-
1610
- it("keeps inherited rules above the child's root values", () => {
1611
- const base = defineTheme({
1612
- name: 'base-rule',
1613
- adaptations: {
1614
- rules: [
1615
- {
1616
- when: {pointer: 'coarse'},
1617
- value: {tokens: {'--spacing-4': '12px'}},
1618
- },
1619
- ],
1620
- },
1621
- });
1622
- const child = defineTheme({
1623
- name: 'child-root',
1624
- extends: base,
1625
- tokens: {'--spacing-4': '20px'},
1626
- });
1627
-
1628
- expect(child.tokens['--spacing-4']).toBe('20px');
1629
- expect(child.__adaptationRules?.[0].tokens['--spacing-4']).toBe('12px');
1630
- });
1631
-
1632
- it('recomputes inherited rules from built-theme metadata without CSS text', () => {
1633
- const live = defineTheme({
1634
- name: 'built-base',
1635
- typography: {scale: {base: 14, ratio: 1.25}},
1636
- adaptations: {
1637
- widthBreakpoints: {sm: 700},
1638
- rules: [
1639
- {
1640
- when: {width: {below: 'sm'}},
1641
- value: {typography: {scale: {base: 16}}},
1642
- },
1643
- ],
1644
- },
1645
- });
1646
- const built = {
1647
- name: live.name,
1648
- __built: true,
1649
- tokens: live.tokens,
1650
- components: live.components,
1651
- __adaptations: live.__adaptations,
1652
- __axes: live.__axes,
1653
- } as DefinedTheme;
1654
-
1655
- const child = defineTheme({name: 'built-child', extends: built});
1656
- expect(child.__adaptationRules?.[0].query).toBe('(width < 700px)');
1657
- expect(child.__adaptationRules?.[0].tokens['--font-size-lg']).toBe(
1658
- '1.25rem',
1659
- );
1660
- expect(JSON.stringify(built)).not.toContain('@media');
1661
- });
1662
- });
1663
-
1664
- describe('CSS cascade placement', () => {
1665
- it('emits root values, then adaptations, then media-surface overrides', () => {
1666
- const theme = defineTheme({
1667
- name: 'surface-order',
1668
- tokens: {'--color-background-body': '#ffffff'},
1669
- adaptations: {
1670
- rules: [
1671
- {
1672
- when: {contrast: 'more'},
1673
- value: {tokens: {'--color-background-body': '#eeeeee'}},
1674
- },
1675
- ],
1676
- },
1677
- onDark: {tokens: {'--color-background-body': '#111111'}},
1678
- });
1679
-
1680
- const css = generateThemeCSS(theme).component;
1681
- expect(css.indexOf('#ffffff')).toBeLessThan(css.indexOf('#eeeeee'));
1682
- expect(css.indexOf('#eeeeee')).toBeLessThan(css.lastIndexOf('#111111'));
1683
- });
1684
-
1685
- it('makes rule shorthand padding override root directional container padding', () => {
1686
- const theme = defineTheme({
1687
- name: 'conditional-container-padding',
1688
- components: {
1689
- card: {base: {paddingBlock: '8px', paddingInline: '16px'}},
1690
- section: {base: {paddingBlock: '10px', paddingInline: '18px'}},
1691
- },
1692
- adaptations: {
1693
- rules: [
1694
- {
1695
- when: {width: {from: 'lg'}},
1696
- value: {
1697
- components: {
1698
- card: {base: {padding: '32px'}},
1699
- section: {base: {padding: '32px'}},
1700
- },
1701
- },
1702
- },
1703
- ],
1704
- },
1705
- });
1706
-
1707
- const rootCss = generateThemeCSS(theme).component;
1708
- expect(rootCss).toContain('--astryx-card-padding-block-start: 8px');
1709
- expect(rootCss).toContain('--astryx-section-padding-inline: 18px');
1710
-
1711
- const ruleCss = generateAdaptationCSS(theme).component;
1712
- for (const component of ['card', 'section']) {
1713
- expect(ruleCss).toContain(`--astryx-${component}-padding: 32px`);
1714
- expect(ruleCss).toContain(
1715
- `--astryx-${component}-padding-inline: initial`,
1716
- );
1717
- expect(ruleCss).toContain(
1718
- `--astryx-${component}-padding-inline-start: initial`,
1719
- );
1720
- expect(ruleCss).toContain(
1721
- `--astryx-${component}-padding-inline-end: initial`,
1722
- );
1723
- expect(ruleCss).toContain(
1724
- `--astryx-${component}-padding-block-start: initial`,
1725
- );
1726
- expect(ruleCss).toContain(
1727
- `--astryx-${component}-padding-block-end: initial`,
1728
- );
1729
- }
1730
- });
1731
-
1732
- it('resets only the more-specific inline siblings for a rule paddingInline write', () => {
1733
- const theme = defineTheme({
1734
- name: 'conditional-inline-padding',
1735
- components: {card: {base: {padding: '16px'}}},
1736
- adaptations: {
1737
- rules: [
1738
- {
1739
- when: {width: {from: 'lg'}},
1740
- value: {components: {card: {base: {paddingInline: '32px'}}}},
1741
- },
1742
- ],
1743
- },
1744
- });
1745
-
1746
- const ruleCss = generateAdaptationCSS(theme).component;
1747
- expect(ruleCss).toContain('--astryx-card-padding-inline: 32px');
1748
- expect(ruleCss).toContain('--astryx-card-padding-inline-start: initial');
1749
- expect(ruleCss).toContain('--astryx-card-padding-inline-end: initial');
1750
- expect(ruleCss).not.toContain('--astryx-card-padding: initial');
1751
- expect(ruleCss).not.toContain('--astryx-card-padding-block-start: initial');
1752
- });
1753
-
1754
- it('keeps media-surface component writes above matching adaptations', () => {
1755
- const theme = defineTheme({
1756
- name: 'surface-component-order',
1757
- components: {button: {base: {borderWidth: '1px'}}},
1758
- adaptations: {
1759
- rules: [
1760
- {
1761
- when: {contrast: 'more'},
1762
- value: {components: {button: {base: {borderWidth: '2px'}}}},
1763
- },
1764
- ],
1765
- },
1766
- onDark: {components: {button: {base: {borderWidth: '3px'}}}},
1767
- });
1768
-
1769
- const css = generateThemeCSS(theme).component;
1770
- expect(css.indexOf('border-width: 1px')).toBeLessThan(
1771
- css.indexOf('border-width: 2px'),
1772
- );
1773
- expect(css.indexOf('border-width: 2px')).toBeLessThan(
1774
- css.lastIndexOf('border-width: 3px'),
1775
- );
1776
- });
1777
-
1778
- it('keeps JavaScript token reads on root values', () => {
1779
- const theme = defineTheme({
1780
- name: 'css-first',
1781
- tokens: {'--spacing-4': '16px'},
1782
- adaptations: {
1783
- rules: [
1784
- {
1785
- when: {pointer: 'coarse'},
1786
- value: {tokens: {'--spacing-4': '12px'}},
1787
- },
1788
- ],
1789
- },
1790
- });
1791
-
1792
- expect(theme.tokens['--spacing-4']).toBe('16px');
1793
- expect(theme.__adaptationRules?.[0].tokens['--spacing-4']).toBe('12px');
1794
- });
1795
- });