@astryxdesign/core 0.1.4-canary.ff77e1c → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (598) 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 +18 -20
  4. package/dist/AlertDialog/useImperativeAlertDialog.js +3 -3
  5. package/dist/AppShell/AppShell.d.ts +1 -1
  6. package/dist/AppShell/AppShell.d.ts.map +1 -1
  7. package/dist/AppShell/AppShell.js +53 -55
  8. package/dist/AspectRatio/AspectRatio.d.ts +10 -48
  9. package/dist/AspectRatio/AspectRatio.d.ts.map +1 -1
  10. package/dist/AspectRatio/AspectRatio.js +12 -33
  11. package/dist/AspectRatio/index.d.ts +1 -1
  12. package/dist/AspectRatio/index.d.ts.map +1 -1
  13. package/dist/Avatar/Avatar.d.ts.map +1 -1
  14. package/dist/Avatar/Avatar.js +25 -27
  15. package/dist/Avatar/AvatarStatusDot.js +5 -5
  16. package/dist/AvatarGroup/AvatarGroup.js +5 -5
  17. package/dist/AvatarGroup/AvatarGroupOverflow.js +5 -5
  18. package/dist/Badge/Badge.js +3 -3
  19. package/dist/Banner/Banner.d.ts.map +1 -1
  20. package/dist/Banner/Banner.js +25 -32
  21. package/dist/Blockquote/Blockquote.js +7 -7
  22. package/dist/Breadcrumbs/BreadcrumbItem.js +17 -17
  23. package/dist/Breadcrumbs/Breadcrumbs.js +7 -7
  24. package/dist/Button/Button.js +19 -19
  25. package/dist/ButtonGroup/ButtonGroup.js +7 -7
  26. package/dist/Calendar/Calendar.d.ts.map +1 -1
  27. package/dist/Calendar/Calendar.js +48 -68
  28. package/dist/Calendar/dayCellUtils.d.ts.map +1 -1
  29. package/dist/Calendar/styles.d.ts +2 -2
  30. package/dist/Calendar/styles.d.ts.map +1 -1
  31. package/dist/Calendar/styles.js +2 -2
  32. package/dist/Card/Card.d.ts +2 -4
  33. package/dist/Card/Card.d.ts.map +1 -1
  34. package/dist/Card/Card.js +10 -18
  35. package/dist/Carousel/Carousel.d.ts.map +1 -1
  36. package/dist/Carousel/Carousel.js +21 -24
  37. package/dist/Carousel/carousel.markers.stylex.d.ts +7 -0
  38. package/dist/Carousel/carousel.markers.stylex.d.ts.map +1 -0
  39. package/dist/Carousel/carousel.markers.stylex.js +12 -0
  40. package/dist/Center/Center.js +3 -3
  41. package/dist/Chat/ChatComposer.js +23 -23
  42. package/dist/Chat/ChatComposerDrawer.js +14 -14
  43. package/dist/Chat/ChatComposerInput.d.ts +1 -1
  44. package/dist/Chat/ChatComposerInput.d.ts.map +1 -1
  45. package/dist/Chat/ChatComposerInput.js +15 -27
  46. package/dist/Chat/ChatDictationButton.d.ts +1 -1
  47. package/dist/Chat/ChatDictationButton.d.ts.map +1 -1
  48. package/dist/Chat/ChatDictationButton.js +11 -13
  49. package/dist/Chat/ChatLayout.js +17 -17
  50. package/dist/Chat/ChatLayoutScrollButton.d.ts +1 -1
  51. package/dist/Chat/ChatLayoutScrollButton.d.ts.map +1 -1
  52. package/dist/Chat/ChatLayoutScrollButton.js +10 -12
  53. package/dist/Chat/ChatMessage.js +12 -12
  54. package/dist/Chat/ChatMessageBubble.js +7 -7
  55. package/dist/Chat/ChatMessageList.js +14 -14
  56. package/dist/Chat/ChatMessageMetadata.d.ts +1 -1
  57. package/dist/Chat/ChatMessageMetadata.d.ts.map +1 -1
  58. package/dist/Chat/ChatMessageMetadata.js +12 -14
  59. package/dist/Chat/ChatPastedTextToken.js +13 -13
  60. package/dist/Chat/ChatSendButton.js +3 -3
  61. package/dist/Chat/ChatSystemMessage.d.ts +1 -1
  62. package/dist/Chat/ChatSystemMessage.d.ts.map +1 -1
  63. package/dist/Chat/ChatSystemMessage.js +17 -17
  64. package/dist/Chat/ChatTokenizedText.d.ts +1 -1
  65. package/dist/Chat/ChatTokenizedText.d.ts.map +1 -1
  66. package/dist/Chat/ChatTokenizedText.js +15 -24
  67. package/dist/Chat/ChatToolCalls.d.ts.map +1 -1
  68. package/dist/Chat/ChatToolCalls.js +74 -81
  69. package/dist/Chat/index.d.ts +1 -1
  70. package/dist/Chat/index.d.ts.map +1 -1
  71. package/dist/Chat/useTriggerMenu.d.ts.map +1 -1
  72. package/dist/Chat/useTriggerMenu.js +15 -15
  73. package/dist/CheckboxInput/CheckboxInput.d.ts +1 -1
  74. package/dist/CheckboxInput/CheckboxInput.d.ts.map +1 -1
  75. package/dist/CheckboxInput/CheckboxInput.js +23 -25
  76. package/dist/CheckboxList/CheckboxList.js +9 -9
  77. package/dist/CheckboxList/CheckboxListItem.d.ts +1 -1
  78. package/dist/CheckboxList/CheckboxListItem.d.ts.map +1 -1
  79. package/dist/CheckboxList/CheckboxListItem.js +6 -8
  80. package/dist/Citation/Citation.js +10 -10
  81. package/dist/ClickableCard/ClickableCard.d.ts.map +1 -1
  82. package/dist/ClickableCard/ClickableCard.js +9 -32
  83. package/dist/Code/Code.js +3 -3
  84. package/dist/CodeBlock/CodeBlock.d.ts +1 -10
  85. package/dist/CodeBlock/CodeBlock.d.ts.map +1 -1
  86. package/dist/CodeBlock/CodeBlock.js +52 -88
  87. package/dist/Collapsible/Collapsible.d.ts +3 -9
  88. package/dist/Collapsible/Collapsible.d.ts.map +1 -1
  89. package/dist/Collapsible/Collapsible.js +22 -110
  90. package/dist/Collapsible/CollapsibleGroup.d.ts +7 -39
  91. package/dist/Collapsible/CollapsibleGroup.d.ts.map +1 -1
  92. package/dist/Collapsible/CollapsibleGroup.js +12 -73
  93. package/dist/Collapsible/CollapsibleGroupContext.d.ts +0 -31
  94. package/dist/Collapsible/CollapsibleGroupContext.d.ts.map +1 -1
  95. package/dist/Collapsible/CollapsibleGroupContext.js +3 -33
  96. package/dist/Collapsible/index.d.ts +0 -1
  97. package/dist/Collapsible/index.d.ts.map +1 -1
  98. package/dist/Collapsible/useCollapsible.d.ts +1 -4
  99. package/dist/Collapsible/useCollapsible.d.ts.map +1 -1
  100. package/dist/Collapsible/useCollapsible.js +6 -20
  101. package/dist/CommandPalette/CommandPalette.d.ts.map +1 -1
  102. package/dist/CommandPalette/CommandPalette.js +34 -36
  103. package/dist/CommandPalette/CommandPaletteEmpty.js +3 -3
  104. package/dist/CommandPalette/CommandPaletteFooter.js +16 -16
  105. package/dist/CommandPalette/CommandPaletteGroup.js +5 -5
  106. package/dist/CommandPalette/CommandPaletteInput.js +13 -13
  107. package/dist/CommandPalette/CommandPaletteItem.js +3 -3
  108. package/dist/CommandPalette/CommandPaletteList.js +3 -3
  109. package/dist/ContextMenu/ContextMenu.d.ts +2 -7
  110. package/dist/ContextMenu/ContextMenu.d.ts.map +1 -1
  111. package/dist/ContextMenu/ContextMenu.js +43 -76
  112. package/dist/DateInput/DateInput.js +18 -18
  113. package/dist/DateRangeInput/DateRangeInput.js +21 -21
  114. package/dist/DateTimeInput/DateTimeInput.d.ts +2 -5
  115. package/dist/DateTimeInput/DateTimeInput.d.ts.map +1 -1
  116. package/dist/DateTimeInput/DateTimeInput.js +26 -30
  117. package/dist/DateTimeInput/index.d.ts +1 -1
  118. package/dist/DateTimeInput/index.d.ts.map +1 -1
  119. package/dist/Dialog/Dialog.js +9 -9
  120. package/dist/Dialog/DialogHeader.js +16 -16
  121. package/dist/Dialog/useImperativeDialog.js +3 -3
  122. package/dist/Divider/Divider.js +7 -7
  123. package/dist/DropdownMenu/DropdownMenu.js +10 -10
  124. package/dist/DropdownMenu/DropdownMenuItem.d.ts +17 -2
  125. package/dist/DropdownMenu/DropdownMenuItem.d.ts.map +1 -1
  126. package/dist/DropdownMenu/DropdownMenuItem.js +3 -3
  127. package/dist/DropdownMenu/renderDropdownItems.js +10 -10
  128. package/dist/EmptyState/EmptyState.js +9 -9
  129. package/dist/Field/Field.js +17 -17
  130. package/dist/Field/FieldLabel.js +15 -15
  131. package/dist/Field/InputClearButton.js +5 -5
  132. package/dist/FieldStatus/FieldStatus.js +3 -3
  133. package/dist/FileInput/FileInput.js +29 -29
  134. package/dist/FormLayout/FormLayout.js +5 -5
  135. package/dist/Grid/Grid.d.ts +3 -4
  136. package/dist/Grid/Grid.d.ts.map +1 -1
  137. package/dist/Grid/Grid.js +12 -29
  138. package/dist/Grid/GridSpan.js +3 -3
  139. package/dist/HStack/HStack.js +3 -3
  140. package/dist/Heading/Heading.js +10 -10
  141. package/dist/HoverCard/HoverCard.js +9 -9
  142. package/dist/HoverCard/useHoverCard.d.ts +1 -5
  143. package/dist/HoverCard/useHoverCard.d.ts.map +1 -1
  144. package/dist/HoverCard/useHoverCard.js +3 -3
  145. package/dist/Icon/Icon.d.ts.map +1 -1
  146. package/dist/Icon/Icon.js +12 -16
  147. package/dist/Icon/defaultIcons.js +116 -116
  148. package/dist/IconButton/IconButton.js +3 -3
  149. package/dist/InputGroup/InputGroup.js +11 -11
  150. package/dist/InputGroup/InputGroupText.js +3 -3
  151. package/dist/Item/Item.js +18 -18
  152. package/dist/Kbd/Kbd.js +5 -5
  153. package/dist/Layer/LayerProvider.js +7 -7
  154. package/dist/Layer/useLayer.d.ts +2 -29
  155. package/dist/Layer/useLayer.d.ts.map +1 -1
  156. package/dist/Layer/useLayer.js +31 -44
  157. package/dist/Layout/Layout.js +21 -21
  158. package/dist/Layout/LayoutContent.js +3 -3
  159. package/dist/Layout/LayoutFooter.js +5 -5
  160. package/dist/Layout/LayoutHeader.js +5 -5
  161. package/dist/Layout/LayoutPanel.js +3 -3
  162. package/dist/Lightbox/Lightbox.d.ts.map +1 -1
  163. package/dist/Lightbox/Lightbox.js +31 -55
  164. package/dist/Lightbox/useLightbox.js +3 -3
  165. package/dist/Link/Link.js +15 -15
  166. package/dist/Link/LinkProvider.js +3 -3
  167. package/dist/Link/useLinkify.js +3 -3
  168. package/dist/List/List.js +11 -11
  169. package/dist/List/ListItem.js +11 -11
  170. package/dist/Markdown/Markdown.d.ts.map +1 -1
  171. package/dist/Markdown/Markdown.js +102 -102
  172. package/dist/MetadataList/MetadataList.js +10 -10
  173. package/dist/MetadataList/MetadataListItem.js +15 -15
  174. package/dist/MobileNav/MobileNav.d.ts +1 -1
  175. package/dist/MobileNav/MobileNav.d.ts.map +1 -1
  176. package/dist/MobileNav/MobileNav.js +23 -26
  177. package/dist/MobileNav/MobileNavToggle.js +5 -5
  178. package/dist/MoreMenu/MoreMenu.js +3 -3
  179. package/dist/MultiSelector/MultiSelector.js +56 -56
  180. package/dist/NavIcon/NavIcon.js +3 -3
  181. package/dist/NavMenu/NavHeadingMenu.js +5 -5
  182. package/dist/NavMenu/NavHeadingMenuItem.js +8 -8
  183. package/dist/NumberInput/NumberInput.d.ts.map +1 -1
  184. package/dist/NumberInput/NumberInput.js +32 -48
  185. package/dist/Outline/Outline.js +15 -15
  186. package/dist/OverflowList/OverflowList.js +8 -8
  187. package/dist/Overlay/Overlay.js +3 -3
  188. package/dist/Overlay/OverlayScrim.js +5 -5
  189. package/dist/Overlay/useOverlay.js +3 -3
  190. package/dist/Pagination/Pagination.d.ts +1 -1
  191. package/dist/Pagination/Pagination.d.ts.map +1 -1
  192. package/dist/Pagination/Pagination.js +72 -125
  193. package/dist/Popover/Popover.js +16 -16
  194. package/dist/Popover/usePopover.js +7 -7
  195. package/dist/PowerSearch/PowerSearch.d.ts.map +1 -1
  196. package/dist/PowerSearch/PowerSearch.js +92 -110
  197. package/dist/PowerSearch/PowerSearchEditPopover.js +84 -84
  198. package/dist/PowerSearch/PowerSearchFilterEditor.js +3 -3
  199. package/dist/PowerSearch/PowerSearchToken.js +5 -5
  200. package/dist/PowerSearch/PowerSearchValueEditor.js +54 -54
  201. package/dist/ProgressBar/ProgressBar.d.ts.map +1 -1
  202. package/dist/ProgressBar/ProgressBar.js +18 -25
  203. package/dist/RadioList/RadioList.js +7 -7
  204. package/dist/RadioList/RadioListItem.d.ts +1 -1
  205. package/dist/RadioList/RadioListItem.d.ts.map +1 -1
  206. package/dist/RadioList/RadioListItem.js +21 -24
  207. package/dist/Resizable/ResizeHandle.d.ts.map +1 -1
  208. package/dist/Resizable/ResizeHandle.js +10 -28
  209. package/dist/Section/Section.js +5 -5
  210. package/dist/SegmentedControl/SegmentedControl.d.ts +1 -1
  211. package/dist/SegmentedControl/SegmentedControl.d.ts.map +1 -1
  212. package/dist/SegmentedControl/SegmentedControl.js +10 -32
  213. package/dist/SegmentedControl/SegmentedControlItem.d.ts +1 -1
  214. package/dist/SegmentedControl/SegmentedControlItem.d.ts.map +1 -1
  215. package/dist/SegmentedControl/SegmentedControlItem.js +12 -18
  216. package/dist/SelectableCard/SelectableCard.js +5 -5
  217. package/dist/Selector/Selector.js +46 -46
  218. package/dist/Selector/SelectorOption.js +3 -3
  219. package/dist/SideNav/SideNav.d.ts.map +1 -1
  220. package/dist/SideNav/SideNav.js +34 -38
  221. package/dist/SideNav/SideNavCollapseButton.d.ts +1 -1
  222. package/dist/SideNav/SideNavCollapseButton.d.ts.map +1 -1
  223. package/dist/SideNav/SideNavCollapseButton.js +6 -8
  224. package/dist/SideNav/SideNavHeading.js +87 -87
  225. package/dist/SideNav/SideNavItem.js +42 -42
  226. package/dist/SideNav/SideNavSection.d.ts +1 -1
  227. package/dist/SideNav/SideNavSection.d.ts.map +1 -1
  228. package/dist/SideNav/SideNavSection.js +16 -18
  229. package/dist/Skeleton/Skeleton.js +3 -3
  230. package/dist/Slider/Slider.js +23 -23
  231. package/dist/Spinner/Spinner.js +9 -9
  232. package/dist/StatusDot/StatusDot.js +5 -5
  233. package/dist/Switch/Switch.d.ts +4 -8
  234. package/dist/Switch/Switch.d.ts.map +1 -1
  235. package/dist/Switch/Switch.js +29 -34
  236. package/dist/TabList/Tab.js +18 -18
  237. package/dist/TabList/TabList.js +5 -5
  238. package/dist/TabList/TabMenu.d.ts.map +1 -1
  239. package/dist/TabList/TabMenu.js +30 -57
  240. package/dist/TabList/tab.markers.stylex.d.ts +1 -1
  241. package/dist/Table/BaseTable.d.ts.map +1 -1
  242. package/dist/Table/BaseTable.js +39 -50
  243. package/dist/Table/Table.js +7 -7
  244. package/dist/Table/TableBody.d.ts +1 -1
  245. package/dist/Table/TableBody.d.ts.map +1 -1
  246. package/dist/Table/TableBody.js +5 -9
  247. package/dist/Table/TableCell.js +3 -3
  248. package/dist/Table/TableFooter.d.ts +1 -1
  249. package/dist/Table/TableFooter.d.ts.map +1 -1
  250. package/dist/Table/TableFooter.js +5 -9
  251. package/dist/Table/TableHeader.d.ts +1 -1
  252. package/dist/Table/TableHeader.d.ts.map +1 -1
  253. package/dist/Table/TableHeader.js +5 -9
  254. package/dist/Table/TableHeaderCell.js +3 -3
  255. package/dist/Table/TableRow.js +5 -5
  256. package/dist/Table/plugins/columnResize/useTableColumnResize.d.ts.map +1 -1
  257. package/dist/Table/plugins/columnResize/useTableColumnResize.js +11 -14
  258. package/dist/Table/plugins/filtering/useTableFiltering.js +71 -71
  259. package/dist/Table/plugins/pagination/paginateData.d.ts.map +1 -1
  260. package/dist/Table/plugins/pagination/paginateData.js +1 -5
  261. package/dist/Table/plugins/pagination/useTablePagination.js +7 -7
  262. package/dist/Table/plugins/rowExpansion/useTableRowExpansion.js +22 -22
  263. package/dist/Table/plugins/selection/useTableSelection.js +18 -18
  264. package/dist/Table/plugins/selection/useTableSelectionState.d.ts.map +1 -1
  265. package/dist/Table/plugins/selection/useTableSelectionState.js +1 -11
  266. package/dist/Table/plugins/sortable/useTableSortable.js +17 -17
  267. package/dist/Table/plugins/sortable/useTableSortableState.d.ts.map +1 -1
  268. package/dist/Table/plugins/sortable/useTableSortableState.js +4 -8
  269. package/dist/Table/tableContextMenu.js +9 -9
  270. package/dist/Text/Text.js +10 -10
  271. package/dist/TextArea/TextArea.js +14 -14
  272. package/dist/TextInput/TextInput.js +15 -15
  273. package/dist/Thumbnail/Thumbnail.d.ts +2 -3
  274. package/dist/Thumbnail/Thumbnail.d.ts.map +1 -1
  275. package/dist/Thumbnail/Thumbnail.js +29 -30
  276. package/dist/TimeInput/TimeInput.d.ts.map +1 -1
  277. package/dist/TimeInput/TimeInput.js +21 -26
  278. package/dist/Timestamp/Timestamp.d.ts +1 -1
  279. package/dist/Timestamp/Timestamp.d.ts.map +1 -1
  280. package/dist/Timestamp/Timestamp.js +26 -37
  281. package/dist/Toast/Toast.d.ts.map +1 -1
  282. package/dist/Toast/Toast.js +17 -25
  283. package/dist/Toast/ToastViewport.d.ts.map +1 -1
  284. package/dist/Toast/ToastViewport.js +11 -23
  285. package/dist/Toast/useToast.d.ts.map +1 -1
  286. package/dist/Toast/useToast.js +4 -44
  287. package/dist/ToggleButton/ToggleButton.js +12 -12
  288. package/dist/ToggleButton/ToggleButtonGroup.js +5 -5
  289. package/dist/Token/Token.js +21 -21
  290. package/dist/Tokenizer/Tokenizer.d.ts.map +1 -1
  291. package/dist/Tokenizer/Tokenizer.js +34 -36
  292. package/dist/Toolbar/Toolbar.js +18 -18
  293. package/dist/Tooltip/Tooltip.js +11 -11
  294. package/dist/Tooltip/useTooltip.d.ts +1 -5
  295. package/dist/Tooltip/useTooltip.d.ts.map +1 -1
  296. package/dist/Tooltip/useTooltip.js +3 -3
  297. package/dist/TopNav/TopNav.js +32 -32
  298. package/dist/TopNav/TopNavHeading.js +67 -67
  299. package/dist/TopNav/TopNavItem.js +5 -5
  300. package/dist/TopNav/TopNavMegaMenu.js +30 -30
  301. package/dist/TopNav/TopNavMegaMenuFeaturedCard.d.ts +1 -1
  302. package/dist/TopNav/TopNavMegaMenuFeaturedCard.d.ts.map +1 -1
  303. package/dist/TopNav/TopNavMegaMenuFeaturedCard.js +14 -25
  304. package/dist/TopNav/TopNavMegaMenuItem.js +16 -16
  305. package/dist/TopNav/TopNavMenu.js +32 -32
  306. package/dist/TreeList/TreeList.js +8 -8
  307. package/dist/TreeList/TreeListBranches.js +11 -11
  308. package/dist/TreeList/TreeListItem.js +30 -30
  309. package/dist/Typeahead/BaseTypeahead.d.ts.map +1 -1
  310. package/dist/Typeahead/BaseTypeahead.js +20 -23
  311. package/dist/Typeahead/Typeahead.js +12 -12
  312. package/dist/Typeahead/TypeaheadItem.js +10 -10
  313. package/dist/VStack/VStack.js +3 -3
  314. package/dist/astryx.css +0 -7
  315. package/dist/astryx.umd.js +59 -59
  316. package/dist/astryx.umd.js.map +4 -4
  317. package/dist/docs-types.d.ts +2 -8
  318. package/dist/docs-types.d.ts.map +1 -1
  319. package/dist/hooks/focusableSelector.d.ts +1 -1
  320. package/dist/hooks/focusableSelector.d.ts.map +1 -1
  321. package/dist/hooks/focusableSelector.js +1 -1
  322. package/dist/hooks/index.d.ts +0 -2
  323. package/dist/hooks/index.d.ts.map +1 -1
  324. package/dist/hooks/index.js +0 -1
  325. package/dist/hooks/useFocusTrap.d.ts +0 -3
  326. package/dist/hooks/useFocusTrap.d.ts.map +1 -1
  327. package/dist/hooks/useFocusTrap.js +1 -38
  328. package/dist/hooks/useInteractiveRole.d.ts +2 -6
  329. package/dist/hooks/useInteractiveRole.d.ts.map +1 -1
  330. package/dist/hooks/useInteractiveRole.js +2 -6
  331. package/dist/hooks/useKeyboardHint.js +9 -9
  332. package/dist/hooks/useStreamingText.d.ts +1 -3
  333. package/dist/hooks/useStreamingText.d.ts.map +1 -1
  334. package/dist/hooks/useStreamingText.js +5 -14
  335. package/dist/theme/MediaTheme.js +3 -3
  336. package/dist/theme/Theme.js +7 -7
  337. package/dist/theme/defineTheme.d.ts +1 -1
  338. package/dist/theme/defineTheme.d.ts.map +1 -1
  339. package/dist/theme/expandColorScale.d.ts.map +1 -1
  340. package/dist/theme/expandColorScale.js +3 -10
  341. package/dist/theme/hct.d.ts +15 -0
  342. package/dist/theme/hct.d.ts.map +1 -1
  343. package/dist/theme/hct.js +9 -9
  344. package/dist/theme/syntax/SyntaxTheme.js +5 -5
  345. package/dist/theme/tokens.d.ts +2 -10
  346. package/dist/theme/tokens.d.ts.map +1 -1
  347. package/dist/theme/tokens.js +4 -220
  348. package/dist/theme/useTheme.d.ts +2 -3
  349. package/dist/theme/useTheme.d.ts.map +1 -1
  350. package/dist/theme/useTheme.js +6 -73
  351. package/dist/utils/index.d.ts +0 -3
  352. package/dist/utils/index.d.ts.map +1 -1
  353. package/dist/utils/index.js +1 -3
  354. package/dist/utils/timeParser.d.ts.map +1 -1
  355. package/dist/utils/timeParser.js +5 -8
  356. package/package.json +3 -3
  357. package/src/AlertDialog/AlertDialog.doc.mjs +0 -4
  358. package/src/AlertDialog/AlertDialog.tsx +0 -2
  359. package/src/AppShell/AppShell.tsx +0 -2
  360. package/src/AspectRatio/AspectRatio.doc.mjs +1 -28
  361. package/src/AspectRatio/AspectRatio.test.tsx +1 -142
  362. package/src/AspectRatio/AspectRatio.tsx +10 -70
  363. package/src/AspectRatio/index.ts +1 -5
  364. package/src/Avatar/Avatar.doc.mjs +0 -11
  365. package/src/Avatar/Avatar.test.tsx +1 -32
  366. package/src/Avatar/Avatar.tsx +20 -12
  367. package/src/AvatarGroup/AvatarGroup.doc.mjs +0 -1
  368. package/src/Banner/Banner.doc.mjs +0 -8
  369. package/src/Banner/Banner.test.tsx +0 -38
  370. package/src/Banner/Banner.tsx +1 -8
  371. package/src/Calendar/Calendar.doc.mjs +1 -1
  372. package/src/Calendar/Calendar.test.tsx +17 -122
  373. package/src/Calendar/Calendar.tsx +5 -26
  374. package/src/Calendar/dayCellUtils.ts +1 -3
  375. package/src/Calendar/styles.ts +2 -12
  376. package/src/Card/Card.doc.mjs +1 -1
  377. package/src/Card/Card.tsx +6 -16
  378. package/src/Carousel/Carousel.doc.mjs +12 -12
  379. package/src/Carousel/Carousel.test.tsx +0 -13
  380. package/src/Carousel/Carousel.tsx +2 -4
  381. package/src/Carousel/carousel.markers.stylex.ts +10 -0
  382. package/src/Chat/Chat.doc.mjs +1 -1
  383. package/src/Chat/ChatComposerInput.test.tsx +1 -27
  384. package/src/Chat/ChatComposerInput.tsx +15 -20
  385. package/src/Chat/ChatDictationButton.tsx +4 -4
  386. package/src/Chat/ChatLayoutScrollButton.tsx +1 -3
  387. package/src/Chat/ChatMessageMetadata.tsx +6 -4
  388. package/src/Chat/ChatSystemMessage.test.tsx +11 -26
  389. package/src/Chat/ChatSystemMessage.tsx +7 -7
  390. package/src/Chat/ChatTokenizedText.test.tsx +16 -29
  391. package/src/Chat/ChatTokenizedText.tsx +8 -15
  392. package/src/Chat/ChatToolCalls.test.tsx +0 -55
  393. package/src/Chat/ChatToolCalls.tsx +12 -10
  394. package/src/Chat/index.ts +4 -1
  395. package/src/Chat/useTriggerMenu.tsx +4 -1
  396. package/src/CheckboxInput/CheckboxInput.doc.mjs +3 -3
  397. package/src/CheckboxInput/CheckboxInput.test.tsx +4 -71
  398. package/src/CheckboxInput/CheckboxInput.tsx +0 -2
  399. package/src/CheckboxList/CheckboxList.test.tsx +0 -19
  400. package/src/CheckboxList/CheckboxListItem.tsx +2 -11
  401. package/src/Citation/Citation.doc.mjs +0 -5
  402. package/src/ClickableCard/ClickableCard.tsx +2 -45
  403. package/src/CodeBlock/CodeBlock.doc.mjs +2 -7
  404. package/src/CodeBlock/CodeBlock.test.tsx +3 -122
  405. package/src/CodeBlock/CodeBlock.tsx +4 -62
  406. package/src/Collapsible/Collapsible.doc.mjs +4 -8
  407. package/src/Collapsible/Collapsible.tsx +10 -86
  408. package/src/Collapsible/CollapsibleGroup.doc.mjs +3 -27
  409. package/src/Collapsible/CollapsibleGroup.test.tsx +0 -318
  410. package/src/Collapsible/CollapsibleGroup.tsx +9 -107
  411. package/src/Collapsible/CollapsibleGroupContext.tsx +2 -42
  412. package/src/Collapsible/index.ts +0 -4
  413. package/src/Collapsible/useCollapsible.ts +6 -20
  414. package/src/CommandPalette/CommandPalette.doc.mjs +0 -5
  415. package/src/CommandPalette/CommandPalette.tsx +3 -5
  416. package/src/CommandPalette/CommandPaletteEmpty.doc.mjs +0 -5
  417. package/src/CommandPalette/CommandPaletteGroup.doc.mjs +0 -10
  418. package/src/CommandPalette/CommandPaletteInput.doc.mjs +0 -6
  419. package/src/CommandPalette/CommandPaletteItem.doc.mjs +0 -6
  420. package/src/CommandPalette/CommandPaletteList.doc.mjs +0 -9
  421. package/src/ContextMenu/ContextMenu.doc.mjs +0 -15
  422. package/src/ContextMenu/ContextMenu.test.tsx +0 -87
  423. package/src/ContextMenu/ContextMenu.tsx +28 -87
  424. package/src/ContextMenu/ContextMenuItem.doc.mjs +0 -6
  425. package/src/DateInput/DateInput.test.tsx +20 -11
  426. package/src/DateRangeInput/DateRangeInput.test.tsx +44 -31
  427. package/src/DateTimeInput/DateTimeInput.doc.mjs +2 -3
  428. package/src/DateTimeInput/DateTimeInput.test.tsx +16 -118
  429. package/src/DateTimeInput/DateTimeInput.tsx +2 -8
  430. package/src/DateTimeInput/index.ts +0 -1
  431. package/src/Dialog/Dialog.doc.mjs +0 -4
  432. package/src/Dialog/DialogHeader.doc.mjs +0 -45
  433. package/src/DropdownMenu/DropdownMenu.doc.mjs +1 -1
  434. package/src/DropdownMenu/DropdownMenu.test.tsx +2 -22
  435. package/src/DropdownMenu/DropdownMenuItem.tsx +17 -5
  436. package/src/EmptyState/EmptyState.doc.mjs +1 -1
  437. package/src/Field/Field.test.tsx +4 -1
  438. package/src/Field/FieldLabel.test.tsx +2 -2
  439. package/src/FormLayout/__snapshots__/FormLayout.test.tsx.snap +3 -0
  440. package/src/Grid/Grid.test.tsx +18 -43
  441. package/src/Grid/Grid.tsx +9 -26
  442. package/src/HoverCard/HoverCard.doc.mjs +6 -6
  443. package/src/HoverCard/useHoverCard.doc.mjs +5 -5
  444. package/src/HoverCard/useHoverCard.tsx +2 -9
  445. package/src/Icon/Icon.test.tsx +29 -41
  446. package/src/Icon/Icon.tsx +2 -6
  447. package/src/InputGroup/InputGroup.doc.mjs +0 -1
  448. package/src/InputGroup/InputGroup.tsx +2 -2
  449. package/src/Item/Item.tsx +1 -1
  450. package/src/Layer/useLayer.doc.mjs +2 -2
  451. package/src/Layer/useLayer.test.tsx +2 -221
  452. package/src/Layer/useLayer.tsx +30 -69
  453. package/src/Layout/LayoutContent.doc.mjs +0 -12
  454. package/src/Layout/LayoutPanel.doc.mjs +0 -40
  455. package/src/Lightbox/Lightbox.doc.mjs +0 -5
  456. package/src/Lightbox/Lightbox.test.tsx +2 -123
  457. package/src/Lightbox/Lightbox.tsx +1 -29
  458. package/src/Markdown/Markdown.tsx +7 -9
  459. package/src/Markdown/parser.perf.test.ts +12 -34
  460. package/src/MobileNav/MobileNav.test.tsx +0 -56
  461. package/src/MobileNav/MobileNav.tsx +8 -13
  462. package/src/NavMenu/NavMenu.doc.mjs +0 -15
  463. package/src/NumberInput/NumberInput.test.tsx +3 -48
  464. package/src/NumberInput/NumberInput.tsx +15 -32
  465. package/src/Outline/Outline.doc.mjs +0 -2
  466. package/src/Overlay/Overlay.doc.mjs +0 -6
  467. package/src/Pagination/Pagination.test.tsx +0 -162
  468. package/src/Pagination/Pagination.tsx +26 -80
  469. package/src/Popover/Popover.doc.mjs +6 -6
  470. package/src/Popover/Popover.test.tsx +0 -65
  471. package/src/Popover/usePopover.doc.mjs +1 -1
  472. package/src/PowerSearch/PowerSearch.doc.mjs +2 -2
  473. package/src/PowerSearch/PowerSearch.test.tsx +1 -109
  474. package/src/PowerSearch/PowerSearch.tsx +16 -37
  475. package/src/ProgressBar/ProgressBar.doc.mjs +0 -2
  476. package/src/ProgressBar/ProgressBar.test.tsx +0 -30
  477. package/src/ProgressBar/ProgressBar.tsx +5 -12
  478. package/src/RadioList/RadioList.test.tsx +0 -19
  479. package/src/RadioList/RadioListItem.tsx +4 -9
  480. package/src/Resizable/ResizeHandle.tsx +4 -22
  481. package/src/SegmentedControl/SegmentedControl.doc.mjs +1 -1
  482. package/src/SegmentedControl/SegmentedControl.test.tsx +0 -192
  483. package/src/SegmentedControl/SegmentedControl.tsx +5 -27
  484. package/src/SegmentedControl/SegmentedControlItem.tsx +4 -9
  485. package/src/SelectableCard/SelectableCard.doc.mjs +1 -1
  486. package/src/Selector/Selector.test.tsx +1 -27
  487. package/src/SideNav/SideNav.doc.mjs +1 -7
  488. package/src/SideNav/SideNav.test.tsx +0 -66
  489. package/src/SideNav/SideNav.tsx +2 -6
  490. package/src/SideNav/SideNavCollapseButton.tsx +3 -4
  491. package/src/SideNav/SideNavSection.tsx +4 -6
  492. package/src/Switch/Switch.doc.mjs +7 -7
  493. package/src/Switch/Switch.test.tsx +3 -102
  494. package/src/Switch/Switch.tsx +7 -20
  495. package/src/TabList/TabList.test.tsx +1 -185
  496. package/src/TabList/TabMenu.tsx +9 -45
  497. package/src/Table/BaseTable.tsx +2 -13
  498. package/src/Table/Table.doc.mjs +0 -5
  499. package/src/Table/Table.test.tsx +0 -87
  500. package/src/Table/TableBody.tsx +2 -15
  501. package/src/Table/TableFooter.tsx +2 -15
  502. package/src/Table/TableHeader.tsx +2 -15
  503. package/src/Table/plugins/columnResize/useTableColumnResize.test.tsx +0 -13
  504. package/src/Table/plugins/columnResize/useTableColumnResize.tsx +1 -3
  505. package/src/Table/plugins/pagination/paginateData.ts +1 -5
  506. package/src/Table/plugins/pagination/useTablePagination.test.tsx +0 -13
  507. package/src/Table/plugins/selection/useTableSelectionState.test.tsx +0 -23
  508. package/src/Table/plugins/selection/useTableSelectionState.tsx +6 -11
  509. package/src/Table/plugins/sortable/useTableSortableState.test.tsx +1 -35
  510. package/src/Table/plugins/sortable/useTableSortableState.tsx +4 -8
  511. package/src/TextArea/TextArea.test.tsx +3 -3
  512. package/src/TextInput/TextInput.test.tsx +3 -3
  513. package/src/Thumbnail/Thumbnail.test.tsx +2 -36
  514. package/src/Thumbnail/Thumbnail.tsx +2 -4
  515. package/src/TimeInput/TimeInput.test.tsx +0 -37
  516. package/src/TimeInput/TimeInput.tsx +1 -11
  517. package/src/Timestamp/Timestamp.doc.mjs +1 -1
  518. package/src/Timestamp/Timestamp.test.tsx +0 -52
  519. package/src/Timestamp/Timestamp.tsx +16 -30
  520. package/src/Toast/Toast.tsx +3 -11
  521. package/src/Toast/ToastViewport.test.tsx +0 -64
  522. package/src/Toast/ToastViewport.tsx +0 -12
  523. package/src/Toast/useToast.tsx +0 -41
  524. package/src/ToggleButton/ToggleButton.doc.mjs +0 -1
  525. package/src/Tokenizer/Tokenizer.doc.mjs +2 -2
  526. package/src/Tokenizer/Tokenizer.test.tsx +0 -54
  527. package/src/Tokenizer/Tokenizer.tsx +4 -5
  528. package/src/Tooltip/Tooltip.doc.mjs +6 -6
  529. package/src/Tooltip/useTooltip.doc.mjs +5 -5
  530. package/src/Tooltip/useTooltip.tsx +2 -12
  531. package/src/TopNav/TopNav.doc.mjs +1 -1
  532. package/src/TopNav/TopNav.test.tsx +7 -23
  533. package/src/TopNav/TopNavMegaMenuFeaturedCard.tsx +2 -9
  534. package/src/TreeList/TreeList.doc.mjs +2 -2
  535. package/src/Typeahead/BaseTypeahead.doc.mjs +0 -19
  536. package/src/Typeahead/BaseTypeahead.tsx +2 -5
  537. package/src/Typeahead/Typeahead.doc.mjs +1 -1
  538. package/src/Typeahead/Typeahead.test.tsx +1 -45
  539. package/src/docs-types.ts +1 -9
  540. package/src/hooks/focusableSelector.ts +1 -1
  541. package/src/hooks/index.ts +0 -3
  542. package/src/hooks/useFocusTrap.doc.mjs +2 -4
  543. package/src/hooks/useFocusTrap.test.tsx +1 -149
  544. package/src/hooks/useFocusTrap.ts +1 -50
  545. package/src/hooks/useInteractiveRole.ts +4 -12
  546. package/src/hooks/useStreamingText.test.ts +19 -54
  547. package/src/hooks/useStreamingText.ts +5 -16
  548. package/src/hooks/useTreeFocus.test.tsx +3 -1
  549. package/src/reset.css +0 -29
  550. package/src/theme/SyntaxTheme.doc.mjs +4 -4
  551. package/src/theme/defineTheme.ts +13 -4
  552. package/src/theme/derivedVarRegistry.test.ts +2 -2
  553. package/src/theme/expandColorScale.test.ts +0 -29
  554. package/src/theme/expandColorScale.ts +6 -11
  555. package/src/theme/hct.ts +17 -9
  556. package/src/theme/tokens.test.ts +9 -182
  557. package/src/theme/tokens.ts +4 -239
  558. package/src/theme/useTheme.test.tsx +2 -126
  559. package/src/theme/useTheme.ts +6 -87
  560. package/src/utils/index.ts +0 -4
  561. package/src/utils/sharedResizeObserver.test.ts +2 -2
  562. package/src/utils/timeParser.test.ts +0 -13
  563. package/src/utils/timeParser.ts +5 -8
  564. package/dist/hooks/useHotkeys.d.ts +0 -51
  565. package/dist/hooks/useHotkeys.d.ts.map +0 -1
  566. package/dist/hooks/useHotkeys.js +0 -160
  567. package/dist/utils/color.d.ts +0 -42
  568. package/dist/utils/color.d.ts.map +0 -1
  569. package/dist/utils/color.js +0 -150
  570. package/dist/utils/composeEventHandlers.d.ts +0 -30
  571. package/dist/utils/composeEventHandlers.d.ts.map +0 -1
  572. package/dist/utils/composeEventHandlers.js +0 -40
  573. package/src/Chat/ChatDictationButton.test.tsx +0 -43
  574. package/src/Chat/ChatLayoutScrollButton.test.tsx +0 -33
  575. package/src/Chat/ChatMessageMetadata.test.tsx +0 -32
  576. package/src/Collapsible/Collapsible.test.tsx +0 -405
  577. package/src/FieldStatus/FieldStatus.test.tsx +0 -282
  578. package/src/InteractiveRoleContext/InteractiveRoleContext.test.tsx +0 -185
  579. package/src/Layout/Layout.test.tsx +0 -285
  580. package/src/Layout/LayoutSlots.test.tsx +0 -364
  581. package/src/Outline/parseOutlineFromMarkdown.test.ts +0 -80
  582. package/src/OverflowList/OverflowList.test.tsx +0 -416
  583. package/src/Overlay/Overlay.test.tsx +0 -356
  584. package/src/Resizable/ResizeHandle.test.tsx +0 -218
  585. package/src/SizeContext/SizeContext.test.tsx +0 -226
  586. package/src/Toast/useToast.test.tsx +0 -258
  587. package/src/__tests__/TestIcon.tsx +0 -26
  588. package/src/__tests__/fastRoleQueries.ts +0 -66
  589. package/src/docPropReferences.test.ts +0 -178
  590. package/src/hooks/useHotkeys.doc.mjs +0 -52
  591. package/src/hooks/useHotkeys.test.ts +0 -245
  592. package/src/hooks/useHotkeys.ts +0 -203
  593. package/src/theme/themingTargets.test.ts +0 -353
  594. package/src/utils/color.test.ts +0 -133
  595. package/src/utils/color.ts +0 -148
  596. package/src/utils/composeEventHandlers.test.ts +0 -71
  597. package/src/utils/composeEventHandlers.ts +0 -44
  598. package/src/utils/mergeProps.test.ts +0 -166
@@ -12,7 +12,6 @@
12
12
  import {describe, it, expect, vi, beforeEach} from 'vitest';
13
13
  import {render, screen, fireEvent, waitFor} from '@testing-library/react';
14
14
  import userEvent from '@testing-library/user-event';
15
- import {getButton, queryButton} from '../__tests__/fastRoleQueries';
16
15
  import {DateTimeInput} from './DateTimeInput';
17
16
  import type {ISODateTimeString} from './DateTimeInput';
18
17
 
@@ -187,14 +186,14 @@ describe('DateTimeInput', () => {
187
186
 
188
187
  it('calendar button is focusable and clickable', () => {
189
188
  render(<DateTimeInput label="Meeting" onChange={() => {}} />);
190
- const button = getButton('Open calendar');
189
+ const button = screen.getByRole('button', {name: 'Open calendar'});
191
190
  expect(button).toBeInTheDocument();
192
191
  expect(button).not.toBeDisabled();
193
192
  });
194
193
 
195
194
  it('calendar button is disabled when isDisabled is true', () => {
196
195
  render(<DateTimeInput label="Meeting" isDisabled onChange={() => {}} />);
197
- const button = getButton('Open calendar');
196
+ const button = screen.getByRole('button', {name: 'Open calendar'});
198
197
  expect(button).toBeDisabled();
199
198
  });
200
199
 
@@ -202,7 +201,7 @@ describe('DateTimeInput', () => {
202
201
  render(<DateTimeInput label="Meeting" isLoading onChange={() => {}} />);
203
202
  expect(screen.getByRole('combobox')).toBeDisabled();
204
203
  expect(screen.getByLabelText('Meeting time')).toBeDisabled();
205
- expect(getButton('Open calendar')).toBeDisabled();
204
+ expect(screen.getByRole('button', {name: 'Open calendar'})).toBeDisabled();
206
205
  });
207
206
 
208
207
  it('sets aria-busy when isLoading is true', () => {
@@ -215,21 +214,6 @@ describe('DateTimeInput', () => {
215
214
  expect(screen.getByRole('combobox')).not.toHaveAttribute('aria-busy');
216
215
  });
217
216
 
218
- it('sets aria-busy on the time input when isLoading is true', () => {
219
- render(<DateTimeInput label="Meeting" isLoading onChange={() => {}} />);
220
- expect(screen.getByLabelText('Meeting time')).toHaveAttribute(
221
- 'aria-busy',
222
- 'true',
223
- );
224
- });
225
-
226
- it('does not set aria-busy on the time input when not loading', () => {
227
- render(<DateTimeInput label="Meeting" onChange={() => {}} />);
228
- expect(screen.getByLabelText('Meeting time')).not.toHaveAttribute(
229
- 'aria-busy',
230
- );
231
- });
232
-
233
217
  it('renders status icon for error status', () => {
234
218
  render(
235
219
  <DateTimeInput
@@ -286,61 +270,6 @@ describe('DateTimeInput', () => {
286
270
  expect(found).toBe(true);
287
271
  });
288
272
 
289
- it('links the description to the time input via aria-describedby', () => {
290
- render(
291
- <DateTimeInput
292
- label="Meeting"
293
- description="Pick the meeting datetime"
294
- onChange={() => {}}
295
- />,
296
- );
297
- // The description covers both halves of the field, so the time input must
298
- // carry it too — a screen-reader user tabbing into the time half should
299
- // not lose the field's description.
300
- const timeInput = screen.getByLabelText('Meeting time');
301
- const describedBy = timeInput.getAttribute('aria-describedby')!;
302
- const ids = describedBy.split(' ');
303
- const found = ids.some(id =>
304
- document
305
- .getElementById(id)
306
- ?.textContent?.includes('Pick the meeting datetime'),
307
- );
308
- expect(found).toBe(true);
309
- });
310
-
311
- it('links the status message to the time input via aria-describedby', () => {
312
- render(
313
- <DateTimeInput
314
- label="Meeting"
315
- onChange={() => {}}
316
- status={{type: 'error', message: 'Invalid datetime'}}
317
- />,
318
- );
319
- const timeInput = screen.getByLabelText('Meeting time');
320
- const describedBy = timeInput.getAttribute('aria-describedby')!;
321
- const ids = describedBy.split(' ');
322
- const found = ids.some(id =>
323
- document.getElementById(id)?.textContent?.includes('Invalid datetime'),
324
- );
325
- expect(found).toBe(true);
326
- });
327
-
328
- it('links the disabled reason to the time input via aria-describedby', () => {
329
- HTMLElement.prototype.showPopover = vi.fn();
330
- HTMLElement.prototype.hidePopover = vi.fn();
331
- render(
332
- <DateTimeInput
333
- label="When"
334
- onChange={() => {}}
335
- isDisabled
336
- disabledMessage="You need the Editor role"
337
- />,
338
- );
339
- const timeInput = screen.getByLabelText('When time');
340
- const tooltip = screen.getByRole('tooltip', {hidden: true});
341
- expect(timeInput.getAttribute('aria-describedby')).toContain(tooltip.id);
342
- });
343
-
344
273
  it('handles Escape keydown on date input without error', () => {
345
274
  render(<DateTimeInput label="Meeting" onChange={() => {}} />);
346
275
  const input = screen.getByRole('combobox');
@@ -434,12 +363,16 @@ describe('DateTimeInput', () => {
434
363
  hasClear
435
364
  />,
436
365
  );
437
- expect(getButton('Clear Meeting')).toBeInTheDocument();
366
+ expect(
367
+ screen.getByRole('button', {name: 'Clear Meeting'}),
368
+ ).toBeInTheDocument();
438
369
  });
439
370
 
440
371
  it('does not show clear button when value is undefined', () => {
441
372
  render(<DateTimeInput label="Meeting" onChange={() => {}} hasClear />);
442
- expect(queryButton('Clear Meeting')).not.toBeInTheDocument();
373
+ expect(
374
+ screen.queryByRole('button', {name: 'Clear Meeting'}),
375
+ ).not.toBeInTheDocument();
443
376
  });
444
377
 
445
378
  it('does not show clear button when hasClear is false', () => {
@@ -450,7 +383,9 @@ describe('DateTimeInput', () => {
450
383
  onChange={() => {}}
451
384
  />,
452
385
  );
453
- expect(queryButton('Clear Meeting')).not.toBeInTheDocument();
386
+ expect(
387
+ screen.queryByRole('button', {name: 'Clear Meeting'}),
388
+ ).not.toBeInTheDocument();
454
389
  });
455
390
 
456
391
  it('does not show clear button when disabled', () => {
@@ -463,7 +398,9 @@ describe('DateTimeInput', () => {
463
398
  isDisabled
464
399
  />,
465
400
  );
466
- expect(queryButton('Clear Meeting')).not.toBeInTheDocument();
401
+ expect(
402
+ screen.queryByRole('button', {name: 'Clear Meeting'}),
403
+ ).not.toBeInTheDocument();
467
404
  });
468
405
 
469
406
  it('calls onChange with undefined when clear is clicked', () => {
@@ -476,7 +413,7 @@ describe('DateTimeInput', () => {
476
413
  hasClear
477
414
  />,
478
415
  );
479
- fireEvent.click(getButton('Clear Meeting'));
416
+ fireEvent.click(screen.getByRole('button', {name: 'Clear Meeting'}));
480
417
  expect(onChange).toHaveBeenCalledWith(undefined);
481
418
  });
482
419
  });
@@ -740,43 +677,4 @@ describe('DateTimeInput', () => {
740
677
  expect(timeInput).toHaveAttribute('placeholder', 'Select a time');
741
678
  });
742
679
  });
743
-
744
- describe('timeIncrement', () => {
745
- it('steps the time by timeIncrement minutes on ArrowUp', () => {
746
- const onChange = vi.fn();
747
- render(
748
- <DateTimeInput
749
- label="Meeting"
750
- value={'2026-03-15T14:30' as ISODateTimeString}
751
- timeIncrement={15}
752
- onChange={onChange}
753
- />,
754
- );
755
-
756
- const timeInput = screen.getByLabelText('Meeting time');
757
- fireEvent.keyDown(timeInput, {key: 'ArrowUp'});
758
-
759
- // 14:30 + 15min increment = 14:45
760
- expect(onChange).toHaveBeenCalledTimes(1);
761
- expect(onChange.mock.calls[0][0]).toContain('14:45');
762
- });
763
-
764
- it('defaults to a 1-minute increment', () => {
765
- const onChange = vi.fn();
766
- render(
767
- <DateTimeInput
768
- label="Meeting"
769
- value={'2026-03-15T14:30' as ISODateTimeString}
770
- onChange={onChange}
771
- />,
772
- );
773
-
774
- const timeInput = screen.getByLabelText('Meeting time');
775
- fireEvent.keyDown(timeInput, {key: 'ArrowUp'});
776
-
777
- // 14:30 + default 1min = 14:31
778
- expect(onChange).toHaveBeenCalledTimes(1);
779
- expect(onChange.mock.calls[0][0]).toContain('14:31');
780
- });
781
- });
782
680
  });
@@ -86,9 +86,6 @@ export type DateTimeInputHourFormat = '12h' | '24h';
86
86
 
87
87
  export type DateTimeInputSize = 'sm' | 'md' | 'lg';
88
88
 
89
- /** Supported minute increments for arrow-key stepping of the time field. */
90
- export type DateTimeInputTimeIncrement = 1 | 5 | 10 | 15 | 30;
91
-
92
89
  export type {
93
90
  InputStatus as DateTimeInputStatus,
94
91
  InputStatusType as DateTimeInputStatusType,
@@ -290,11 +287,10 @@ export interface DateTimeInputProps extends Omit<
290
287
  hourFormat?: DateTimeInputHourFormat;
291
288
 
292
289
  /**
293
- * Minutes added or subtracted when stepping the time field with the arrow
294
- * keys. Constrained to a set of sensible increments.
290
+ * Time increment in minutes when using arrow keys in the time input.
295
291
  * @default 1
296
292
  */
297
- timeIncrement?: DateTimeInputTimeIncrement;
293
+ timeIncrement?: number;
298
294
 
299
295
  /**
300
296
  * Whether to show a clear button when a value is set.
@@ -991,12 +987,10 @@ export function DateTimeInput({
991
987
  aria-disabled={showsDisabledMessage ? 'true' : undefined}
992
988
  readOnly={showsDisabledMessage || undefined}
993
989
  aria-label={timeLabel ?? `${label} time`}
994
- aria-describedby={ariaDescribedBy}
995
990
  aria-required={isRequired === true ? 'true' : undefined}
996
991
  aria-invalid={
997
992
  status?.type === 'error' || !isTimeInputValid ? 'true' : undefined
998
993
  }
999
- aria-busy={isBusy || undefined}
1000
994
  {...stylex.props(
1001
995
  styles.input,
1002
996
  isEffectivelyDisabled && styles.inputDisabled,
@@ -14,7 +14,6 @@ export type {
14
14
  DateTimeInputProps,
15
15
  DateTimeInputSize,
16
16
  DateTimeInputHourFormat,
17
- DateTimeInputTimeIncrement,
18
17
  DateTimeInputStatus,
19
18
  DateTimeInputStatusType,
20
19
  ISODateTimeString,
@@ -8,10 +8,6 @@ export const docs = {
8
8
  group: 'Dialog',
9
9
  category: 'Overlay',
10
10
  keywords: ["dialog","modal","popup","overlay","lightbox","alert","confirm","prompt","backdrop","focus trap","imperative"],
11
- // Intentionally a contained isInline preview, not playground.overlay: the
12
- // component stays visible on load and knobs stay live, whereas a real
13
- // showModal() overlay makes the page inert — see PlaygroundConfig.overlay
14
- // in docs-types.ts (#3657).
15
11
  playground: {
16
12
  defaults: {
17
13
  isOpen: true,
@@ -65,51 +65,6 @@ export const docs = {
65
65
  default: 'true',
66
66
  },
67
67
  ],
68
- playground: {
69
- defaults: {
70
- title: 'Delete file?',
71
- subtitle: 'This action cannot be undone.',
72
- hasDivider: true,
73
- },
74
- },
75
- examples: [
76
- {
77
- label: 'Basic',
78
- code: `
79
- import {DialogHeader} from '@astryxdesign/core/Dialog';
80
-
81
- <DialogHeader title="Delete file?" subtitle="This action cannot be undone." />;
82
- `,
83
- },
84
- {
85
- label: 'With close button',
86
- code: `
87
- import {useState} from 'react';
88
- import {DialogHeader} from '@astryxdesign/core/Dialog';
89
-
90
- function Header() {
91
- const [, setIsOpen] = useState(true);
92
-
93
- // Passing onOpenChange renders a close button that calls it with false.
94
- return <DialogHeader title="Settings" onOpenChange={setIsOpen} />;
95
- }
96
- `,
97
- },
98
- {
99
- label: 'With start and end content',
100
- code: `
101
- import {DialogHeader} from '@astryxdesign/core/Dialog';
102
- import {Icon} from '@astryxdesign/core/Icon';
103
- import {Badge} from '@astryxdesign/core/Badge';
104
-
105
- <DialogHeader
106
- title="Notifications"
107
- startContent={<Icon icon="chevronLeft" size="sm" />}
108
- endContent={<Badge label="3" />}
109
- />;
110
- `,
111
- },
112
- ],
113
68
  };
114
69
 
115
70
  export const docsZh = {
@@ -11,7 +11,7 @@ export const docs = {
11
11
  theming: {
12
12
  targets: [
13
13
  {className: 'astryx-dropdown-menu'},
14
- {className: 'astryx-dropdown-menu-item', visualProps: ['size']},
14
+ {className: 'astryx-dropdown-menu-item'},
15
15
  ],
16
16
  vars: [
17
17
  {name: '--_dropdown-menu-radius', description: 'Border radius of the menu popup', default: 'var(--radius-element)', private: true},
@@ -89,7 +89,7 @@ describe('DropdownMenu', () => {
89
89
  .getByRole('menu', {hidden: true})
90
90
  .closest('[popover]');
91
91
  expect(popover?.getAttribute('style')).toContain(
92
- 'position-area: self-block-end span-self-inline-end',
92
+ 'position-area: bottom span-right',
93
93
  );
94
94
  });
95
95
 
@@ -105,27 +105,7 @@ describe('DropdownMenu', () => {
105
105
  .getByRole('menu', {hidden: true})
106
106
  .closest('[popover]');
107
107
  expect(popover?.getAttribute('style')).toContain(
108
- 'position-area: self-block-start span-self-inline-end',
109
- );
110
- });
111
-
112
- it('emits the direction-independent logical mapping under an RTL ancestor (#3389)', async () => {
113
- // The self-* position-area keywords resolve against the popover's own
114
- // inherited direction in the browser, so RTL emits the same string as
115
- // LTR and the mirroring is pure CSS. jsdom can't verify the geometry —
116
- // the DropdownMenu RTL Storybook story is the visual proof surface.
117
- const user = userEvent.setup();
118
- const {container} = render(
119
- <div style={{direction: 'rtl'}}>
120
- <DropdownMenu button={{label: 'Actions'}} items={[{label: 'Item 1'}]} />
121
- </div>,
122
- );
123
-
124
- await user.click(screen.getByRole('button', {name: /Actions/}));
125
-
126
- const popover = container.querySelector('[popover]');
127
- expect(popover?.getAttribute('style')).toContain(
128
- 'position-area: self-block-end span-self-inline-end',
108
+ 'position-area: top span-right',
129
109
  );
130
110
  });
131
111
 
@@ -25,6 +25,7 @@
25
25
 
26
26
  import {useCallback, type ReactNode} from 'react';
27
27
  import * as stylex from '@stylexjs/stylex';
28
+ import type {StyleXStyles} from '@stylexjs/stylex';
28
29
  import {renderIconSlot, type IconType} from '../Icon';
29
30
  import {Item} from '../Item';
30
31
  import {
@@ -34,7 +35,6 @@ import {
34
35
  typeScaleVars,
35
36
  } from '../theme/tokens.stylex';
36
37
  import {mergeProps} from '../utils';
37
- import type {BaseProps} from '../BaseProps';
38
38
  import {useDropdownMenuContext} from './DropdownMenuContext';
39
39
  import {themeProps} from '../utils/themeProps';
40
40
 
@@ -75,10 +75,7 @@ const itemSizeStyles = stylex.create({
75
75
  lg: {},
76
76
  });
77
77
 
78
- export interface DropdownMenuItemProps extends Pick<
79
- BaseProps,
80
- 'xstyle' | 'className' | 'style'
81
- > {
78
+ export interface DropdownMenuItemProps {
82
79
  /** Icon to display before the label. */
83
80
  icon?: ReactNode | IconType;
84
81
  /** Primary label text. */
@@ -91,6 +88,21 @@ export interface DropdownMenuItemProps extends Pick<
91
88
  isDisabled?: boolean;
92
89
  /** Additional content to render after the label/description. */
93
90
  endContent?: ReactNode;
91
+ /**
92
+ * StyleX styles for layout customization (margins, positioning, sizing).
93
+ * Must be a `stylex.create()` value — not an inline style object.
94
+ *
95
+ * @example
96
+ * ```
97
+ * const styles = stylex.create({ wrapper: { marginTop: 8 } });
98
+ * <DropdownMenuItem xstyle={styles.wrapper} />
99
+ * ```
100
+ */
101
+ xstyle?: StyleXStyles;
102
+ /** CSS class name(s) appended to the root element. */
103
+ className?: string;
104
+ /** Inline styles applied to the root element. */
105
+ style?: React.CSSProperties;
94
106
  }
95
107
 
96
108
  /**
@@ -140,7 +140,7 @@ export const docsZh = {
140
140
  ],
141
141
  theming: {
142
142
  targets: [
143
- {className: 'astryx-empty-state', visualProps: ['variant']},
143
+ {className: 'astryx-empty-state'},
144
144
  ],
145
145
  },
146
146
  usage: {
@@ -137,7 +137,10 @@ describe('Field', () => {
137
137
 
138
138
  it('renders description without ID attribute when descriptionID is not provided', () => {
139
139
  render(
140
- <Field label="Email" inputID="email-input" description="Description text">
140
+ <Field
141
+ label="Email"
142
+ inputID="email-input"
143
+ description="Description text">
141
144
  <input id="email-input" />
142
145
  </Field>,
143
146
  );
@@ -11,7 +11,7 @@
11
11
 
12
12
  import {describe, it, expect, vi} from 'vitest';
13
13
  import {render, screen} from '@testing-library/react';
14
- import {TestIcon} from '../__tests__/TestIcon';
14
+ import {StarIcon} from '@heroicons/react/24/outline';
15
15
  import {FieldLabel} from './FieldLabel';
16
16
 
17
17
  describe('FieldLabel', () => {
@@ -49,7 +49,7 @@ describe('FieldLabel', () => {
49
49
  <FieldLabel
50
50
  label="Starred"
51
51
  inputID="starred-input"
52
- labelIcon={TestIcon}
52
+ labelIcon={StarIcon}
53
53
  />,
54
54
  );
55
55
  const svg = document.querySelector('svg');
@@ -4,6 +4,7 @@ exports[`FormLayout > matches snapshot for horizontal direction 1`] = `
4
4
  <div
5
5
  class="astryx-form-layout horizontal FormLayout__styles.base xdt5ytf x18g69wz FormLayout__styles.horizontal xrvj5dj x1mt1orb xu6a5m6"
6
6
  data-direction="horizontal"
7
+ data-style-src="@astryxdesign/core:src/FormLayout/FormLayout.tsx:40; @astryxdesign/core:src/FormLayout/FormLayout.tsx:45"
7
8
  data-testid="layout"
8
9
  >
9
10
  <input
@@ -19,6 +20,7 @@ exports[`FormLayout > matches snapshot for horizontal-labels direction 1`] = `
19
20
  <div
20
21
  class="astryx-form-layout horizontal-labels FormLayout__styles.base xdt5ytf FormLayout__styles.horizontalLabels xrvj5dj x1pmbctz xlaq8a2 x7a106z xedohl4 x1rpgqan x1a1jff"
21
22
  data-direction="horizontal-labels"
23
+ data-style-src="@astryxdesign/core:src/FormLayout/FormLayout.tsx:40; @astryxdesign/core:src/FormLayout/FormLayout.tsx:50"
22
24
  data-testid="layout"
23
25
  >
24
26
  <label>
@@ -34,6 +36,7 @@ exports[`FormLayout > matches snapshot for vertical direction 1`] = `
34
36
  <div
35
37
  class="astryx-form-layout vertical FormLayout__styles.base x78zum5 xdt5ytf x18g69wz"
36
38
  data-direction="vertical"
39
+ data-style-src="@astryxdesign/core:src/FormLayout/FormLayout.tsx:40"
37
40
  data-testid="layout"
38
41
  >
39
42
  <input
@@ -65,7 +65,7 @@ describe('Grid', () => {
65
65
  expect(templateColumns(grid)).toBe('repeat(auto-fill, minmax(250px, 1fr))');
66
66
  });
67
67
 
68
- it('renders with columns object max (count capped, tracks still fill)', () => {
68
+ it('renders with columns object max (capped via track-max)', () => {
69
69
  render(
70
70
  <Grid columns={{minWidth: 250, max: 3}} gap={4} data-testid="grid">
71
71
  <div>Item 1</div>
@@ -74,37 +74,13 @@ describe('Grid', () => {
74
74
  </Grid>,
75
75
  );
76
76
  const grid = screen.getByTestId('grid');
77
- // Cap lives on the track MIN (min(100%, max(minWidth, perColumn))); the
78
- // track MAX stays 1fr so present columns fill the row (a lone column on
79
- // mobile stretches to 100% instead of leaving dead space).
77
+ // Track max caps at (100% - 2 * gap) / 3 — no maxWidth on container
80
78
  expect(templateColumns(grid)).toBe(
81
- 'repeat(auto-fill, minmax(min(100%, max(250px, calc((100% - 2 * var(--spacing-4)) / 3))), 1fr))',
79
+ 'repeat(auto-fill, minmax(250px, calc((100% - 2 * var(--spacing-4)) / 3)))',
82
80
  );
83
81
  expect(grid.style.maxWidth).toBe('');
84
82
  });
85
83
 
86
- it('keeps track max at 1fr with a max cap so a lone column can fill (#3391)', () => {
87
- // Regression: previously the cap was applied to the track MAX
88
- // (minmax(minWidth, 100%/max)), so when fewer than `max` columns fit —
89
- // e.g. a single column on mobile — the lone column was pinned to ~100%/max
90
- // and left dead space on the right. The cap now lives on the track MIN and
91
- // the track MAX stays 1fr, so present columns always stretch to fill.
92
- render(
93
- <Grid columns={{minWidth: 360, max: 2}} gap={4} data-testid="grid">
94
- <div>Left</div>
95
- <div>Right</div>
96
- </Grid>,
97
- );
98
- const grid = screen.getByTestId('grid');
99
- const template = templateColumns(grid);
100
- // Track max must be 1fr (fills), not a fraction-of-container cap.
101
- expect(template).toMatch(/, 1fr\)\)$/);
102
- expect(template).not.toMatch(/, calc\([^)]*\/ 2\)\)\)$/);
103
- expect(template).toBe(
104
- 'repeat(auto-fill, minmax(min(100%, max(360px, calc((100% - 1 * var(--spacing-4)) / 2))), 1fr))',
105
- );
106
- });
107
-
108
84
  it('renders with columns object max using columnGap', () => {
109
85
  render(
110
86
  <Grid columns={{minWidth: 200, max: 4}} columnGap={6} data-testid="grid">
@@ -113,9 +89,9 @@ describe('Grid', () => {
113
89
  </Grid>,
114
90
  );
115
91
  const grid = screen.getByTestId('grid');
116
- // columnGap takes precedence in the perColumn floor calculation
92
+ // columnGap takes precedence for track-max calculation
117
93
  expect(templateColumns(grid)).toBe(
118
- 'repeat(auto-fill, minmax(min(100%, max(200px, calc((100% - 3 * var(--spacing-6)) / 4))), 1fr))',
94
+ 'repeat(auto-fill, minmax(200px, calc((100% - 3 * var(--spacing-6)) / 4)))',
119
95
  );
120
96
  expect(grid.style.maxWidth).toBe('');
121
97
  });
@@ -189,7 +165,7 @@ describe('Grid', () => {
189
165
  expect(templateColumns(grid)).toBe('1fr');
190
166
  });
191
167
 
192
- it('uses auto-fill with a plain 1fr track when no max specified', () => {
168
+ it('uses auto-fill without track-max cap when no max specified', () => {
193
169
  render(
194
170
  <Grid columns={{minWidth: 200}} data-testid="grid">
195
171
  <div>Item</div>
@@ -244,7 +220,7 @@ describe('Grid', () => {
244
220
 
245
221
  // --- P2: columns object + columnGap interaction (hardening #719) ---
246
222
 
247
- it('uses columnGap var in the count-cap floor when both columnGap and gap are set', () => {
223
+ it('uses columnGap var in track-max when both columnGap and gap are set', () => {
248
224
  render(
249
225
  <Grid
250
226
  columns={{minWidth: 200, max: 3}}
@@ -255,14 +231,14 @@ describe('Grid', () => {
255
231
  </Grid>,
256
232
  );
257
233
  const grid = screen.getByTestId('grid');
258
- // columnGap takes precedence over gap in the perColumn floor
234
+ // columnGap takes precedence over gap in track-max
259
235
  expect(templateColumns(grid)).toBe(
260
- 'repeat(auto-fill, minmax(min(100%, max(200px, calc((100% - 2 * var(--spacing-6)) / 3))), 1fr))',
236
+ 'repeat(auto-fill, minmax(200px, calc((100% - 2 * var(--spacing-6)) / 3)))',
261
237
  );
262
238
  expect(grid.style.maxWidth).toBe('');
263
239
  });
264
240
 
265
- it('uses gap var in the count-cap floor when columnGap is not set', () => {
241
+ it('uses gap var in track-max when columnGap is not set', () => {
266
242
  render(
267
243
  <Grid columns={{minWidth: 150, max: 2}} gap={3} data-testid="grid">
268
244
  <div>Item</div>
@@ -270,12 +246,12 @@ describe('Grid', () => {
270
246
  );
271
247
  const grid = screen.getByTestId('grid');
272
248
  expect(templateColumns(grid)).toBe(
273
- 'repeat(auto-fill, minmax(min(100%, max(150px, calc((100% - 1 * var(--spacing-3)) / 2))), 1fr))',
249
+ 'repeat(auto-fill, minmax(150px, calc((100% - 1 * var(--spacing-3)) / 2)))',
274
250
  );
275
251
  expect(grid.style.maxWidth).toBe('');
276
252
  });
277
253
 
278
- it('uses simple fraction in the count-cap floor when no gap is set', () => {
254
+ it('uses simple fraction in track-max when no gap is set', () => {
279
255
  render(
280
256
  <Grid columns={{minWidth: 100, max: 3}} data-testid="grid">
281
257
  <div>Item</div>
@@ -283,7 +259,7 @@ describe('Grid', () => {
283
259
  );
284
260
  const grid = screen.getByTestId('grid');
285
261
  expect(templateColumns(grid)).toBe(
286
- 'repeat(auto-fill, minmax(min(100%, max(100px, calc(100% / 3))), 1fr))',
262
+ 'repeat(auto-fill, minmax(100px, calc(100% / 3)))',
287
263
  );
288
264
  expect(grid.style.maxWidth).toBe('');
289
265
  });
@@ -356,7 +332,7 @@ describe('Grid', () => {
356
332
  expect(templateColumns(grid)).toBe('repeat(auto-fill, minmax(280px, 1fr))');
357
333
  });
358
334
 
359
- it('renders with columns={{minWidth, max}} capping the count while filling', () => {
335
+ it('renders with columns={{minWidth, max}} capping via track-max', () => {
360
336
  render(
361
337
  <Grid columns={{minWidth: 280, max: 3}} gap={4} data-testid="grid">
362
338
  <div>Item 1</div>
@@ -364,15 +340,14 @@ describe('Grid', () => {
364
340
  </Grid>,
365
341
  );
366
342
  const grid = screen.getByTestId('grid');
367
- // Count is capped via the track MIN; track MAX stays 1fr so present
368
- // columns fill the row (grid stays full width).
343
+ // Track-max limits columns grid stays full width
369
344
  expect(templateColumns(grid)).toBe(
370
- 'repeat(auto-fill, minmax(min(100%, max(280px, calc((100% - 2 * var(--spacing-4)) / 3))), 1fr))',
345
+ 'repeat(auto-fill, minmax(280px, calc((100% - 2 * var(--spacing-4)) / 3)))',
371
346
  );
372
347
  expect(grid.style.maxWidth).toBe('');
373
348
  });
374
349
 
375
- it('renders with columns={{minWidth, max, repeat: "fit"}} using auto-fit + count cap', () => {
350
+ it('renders with columns={{minWidth, max, repeat: "fit"}} using auto-fit + track-max', () => {
376
351
  render(
377
352
  <Grid
378
353
  columns={{minWidth: 280, max: 3, repeat: 'fit'}}
@@ -384,7 +359,7 @@ describe('Grid', () => {
384
359
  );
385
360
  const grid = screen.getByTestId('grid');
386
361
  expect(templateColumns(grid)).toBe(
387
- 'repeat(auto-fit, minmax(min(100%, max(280px, calc((100% - 2 * var(--spacing-4)) / 3))), 1fr))',
362
+ 'repeat(auto-fit, minmax(280px, calc((100% - 2 * var(--spacing-4)) / 3)))',
388
363
  );
389
364
  expect(grid.style.maxWidth).toBe('');
390
365
  });