@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
@@ -46,7 +46,7 @@ import {Button} from '../Button';
46
46
  import {Icon} from '../Icon';
47
47
  import {Heading} from '../Heading/Heading';
48
48
  import {useAppShellMobile} from '../AppShell/AppShellMobileContext';
49
- import {mergeProps, mergeRefs, composeEventHandlers} from '../utils';
49
+ import {mergeProps, mergeRefs} from '../utils';
50
50
  import type {BaseProps} from '../BaseProps';
51
51
  import {themeProps} from '../utils/themeProps';
52
52
 
@@ -284,11 +284,9 @@ export function MobileNav({
284
284
  label,
285
285
  'data-testid': testId,
286
286
  xstyle,
287
- className,
288
- style,
289
- onClick: onClickProp,
287
+ className: _className,
288
+ style: _style,
290
289
  ref,
291
- ...rest
292
290
  }: MobileNavProps) {
293
291
  // Read from AppShell context as fallback
294
292
  const appShellMobile = useAppShellMobile();
@@ -409,6 +407,10 @@ export function MobileNav({
409
407
  return (
410
408
  <dialog
411
409
  ref={mergeRefs(ref, dialogRef)}
410
+ data-testid={testId}
411
+ aria-label={label ?? (typeof header === 'string' ? header : 'Navigation')}
412
+ onClick={handleDialogClick}
413
+ onCancel={handleCancel}
412
414
  {...mergeProps(
413
415
  themeProps('mobile-nav', {side: resolvedSide}),
414
416
  stylex.props(
@@ -418,14 +420,7 @@ export function MobileNav({
418
420
  isOpen && styles.backdropOpen,
419
421
  xstyle,
420
422
  ),
421
- className,
422
- style,
423
- )}
424
- {...rest}
425
- data-testid={testId}
426
- aria-label={label ?? (typeof header === 'string' ? header : 'Navigation')}
427
- onClick={composeEventHandlers(onClickProp, handleDialogClick)}
428
- onCancel={handleCancel}>
423
+ )}>
429
424
  {/* Drawer panel — tabIndex so showModal() focuses the drawer, not the close button */}
430
425
  <div
431
426
  tabIndex={-1}
@@ -17,27 +17,12 @@ export const docs = {
17
17
  'NavHeadingMenuItem renders individual selectable items. ' +
18
18
  'Pass as the menu prop of SideNavHeading or TopNavHeading.',
19
19
  },
20
- playground: {
21
- defaults: {
22
- children: [
23
- {__element: 'NavHeadingMenuItem', props: {label: 'Dashboard', href: '#'}},
24
- {__element: 'NavHeadingMenuItem', props: {label: 'Analytics', href: '#'}},
25
- {__element: 'NavHeadingMenuItem', props: {label: 'Settings', href: '#'}},
26
- ],
27
- },
28
- },
29
20
  props: [
30
21
  {name: 'children', type: 'ReactNode', required: true, description: 'Menu items.'},
31
22
  {name: 'size', type: "'sm' | 'md' | 'lg'", default: "'md'", description: 'Controls min-width and item padding.'},
32
23
  {name: 'minWidth', type: 'number | string', description: 'Minimum width override.'},
33
24
  {name: 'xstyle', type: 'StyleXStyles', description: 'StyleX styles for layout customization (margins, positioning, sizing). Must be a stylex.create() value, not an inline style object like style={{}}.'},
34
25
  ],
35
- theming: {
36
- targets: [
37
- {className: 'astryx-nav-heading-menu', visualProps: ['size']},
38
- {className: 'astryx-nav-heading-menu-item', visualProps: ['size']},
39
- ],
40
- },
41
26
  };
42
27
 
43
28
  /** @type {import('../docs-types').TranslationDoc} */
@@ -12,7 +12,7 @@
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 {TestIcon} from '../__tests__/TestIcon';
15
+ import {HashtagIcon} from '@heroicons/react/24/outline';
16
16
  import {NumberInput} from './NumberInput';
17
17
 
18
18
  // Mock showPopover/hidePopover since jsdom does not implement them. Used by the
@@ -174,7 +174,7 @@ describe('NumberInput', () => {
174
174
  label="Count"
175
175
  value={null}
176
176
  onChange={() => {}}
177
- startIcon={TestIcon}
177
+ startIcon={HashtagIcon}
178
178
  />,
179
179
  );
180
180
  expect(screen.getByRole('spinbutton')).toBeInTheDocument();
@@ -707,7 +707,7 @@ describe('NumberInput', () => {
707
707
  label="Qty"
708
708
  value={0}
709
709
  onChange={() => {}}
710
- startIcon={<TestIcon />}
710
+ startIcon={<HashtagIcon />}
711
711
  />,
712
712
  );
713
713
 
@@ -867,48 +867,3 @@ describe('NumberInput', () => {
867
867
  });
868
868
  });
869
869
  });
870
-
871
- describe('keyboard clearing with hasClear (#3599)', () => {
872
- it('commits null when the input is emptied and blurred', () => {
873
- const onChange = vi.fn();
874
- render(
875
- <NumberInput label="Qty" hasClear value={42} onChange={onChange} />,
876
- );
877
- const input = screen.getByLabelText('Qty');
878
- fireEvent.change(input, {target: {value: ''}});
879
- fireEvent.blur(input);
880
- expect(onChange).toHaveBeenCalledWith(null);
881
- });
882
-
883
- it('commits null when the input is emptied and Enter is pressed', () => {
884
- const onChange = vi.fn();
885
- render(
886
- <NumberInput label="Qty" hasClear value={42} onChange={onChange} />,
887
- );
888
- const input = screen.getByLabelText('Qty');
889
- fireEvent.change(input, {target: {value: ''}});
890
- fireEvent.keyDown(input, {key: 'Enter'});
891
- expect(onChange).toHaveBeenCalledWith(null);
892
- });
893
-
894
- it('does not fire when emptied and blurred with no prior value', () => {
895
- const onChange = vi.fn();
896
- render(
897
- <NumberInput label="Qty" hasClear value={null} onChange={onChange} />,
898
- );
899
- const input = screen.getByLabelText('Qty');
900
- fireEvent.change(input, {target: {value: ''}});
901
- fireEvent.blur(input);
902
- expect(onChange).not.toHaveBeenCalled();
903
- });
904
-
905
- it('still reverts on blur when hasClear is not set', () => {
906
- const onChange = vi.fn();
907
- render(<NumberInput label="Qty" value={42} onChange={onChange} />);
908
- const input = screen.getByLabelText('Qty');
909
- fireEvent.change(input, {target: {value: ''}});
910
- fireEvent.blur(input);
911
- expect(onChange).not.toHaveBeenCalled();
912
- expect((input as HTMLInputElement).value).toBe('42');
913
- });
914
- });
@@ -503,21 +503,13 @@ export function NumberInput({
503
503
  const handleBlur = useCallback(
504
504
  (e: FocusEvent<HTMLInputElement>) => {
505
505
  if (pendingInput !== null) {
506
- if (hasClear && pendingInput.trim() === '') {
507
- // Keyboard clearing honors the clearable contract: an emptied
508
- // input commits null instead of silently reverting on blur.
509
- if (value != null) {
510
- onChange(null);
511
- }
512
- } else {
513
- const parsed = parseNumberInput(pendingInput, {
514
- min,
515
- max,
516
- isIntegerOnly,
517
- });
518
- if (parsed !== null && parsed !== value) {
519
- onChange(parsed);
520
- }
506
+ const parsed = parseNumberInput(pendingInput, {
507
+ min,
508
+ max,
509
+ isIntegerOnly,
510
+ });
511
+ if (parsed !== null && parsed !== value) {
512
+ onChange(parsed);
521
513
  }
522
514
  }
523
515
 
@@ -525,7 +517,7 @@ export function NumberInput({
525
517
  setPendingInput(null);
526
518
  onBlur?.(e);
527
519
  },
528
- [pendingInput, value, onChange, min, max, isIntegerOnly, onBlur, hasClear],
520
+ [pendingInput, value, onChange, min, max, isIntegerOnly, onBlur],
529
521
  );
530
522
 
531
523
  // Handle keyboard events
@@ -534,21 +526,13 @@ export function NumberInput({
534
526
  if (e.key === 'Enter') {
535
527
  // Validate and commit on Enter
536
528
  if (pendingInput !== null) {
537
- if (hasClear && pendingInput.trim() === '') {
538
- // Same clearable contract as blur: Enter on an emptied input
539
- // commits null instead of reverting.
540
- if (value != null) {
541
- onChange(null);
542
- }
543
- } else {
544
- const parsed = parseNumberInput(pendingInput, {
545
- min,
546
- max,
547
- isIntegerOnly,
548
- });
549
- if (parsed !== null && parsed !== value) {
550
- onChange(parsed);
551
- }
529
+ const parsed = parseNumberInput(pendingInput, {
530
+ min,
531
+ max,
532
+ isIntegerOnly,
533
+ });
534
+ if (parsed !== null && parsed !== value) {
535
+ onChange(parsed);
552
536
  }
553
537
  }
554
538
  onEnter?.();
@@ -564,7 +548,6 @@ export function NumberInput({
564
548
  isIntegerOnly,
565
549
  onEnter,
566
550
  onKeyDown,
567
- hasClear,
568
551
  ],
569
552
  );
570
553
 
@@ -30,7 +30,6 @@ export const docs = {
30
30
  theming: {
31
31
  targets: [
32
32
  {className: 'astryx-outline', visualProps: ['density']},
33
- {className: 'astryx-outline-indicator'},
34
33
  {className: 'astryx-outline-item', visualProps: ['level'], states: ['active']},
35
34
  ],
36
35
  },
@@ -164,7 +163,6 @@ export const docsZh = {
164
163
  theming: {
165
164
  targets: [
166
165
  {className: 'astryx-outline', visualProps: ['density']},
167
- {className: 'astryx-outline-indicator'},
168
166
  {className: 'astryx-outline-item', visualProps: ['level'], states: ['active']},
169
167
  ],
170
168
  },
@@ -180,12 +180,6 @@ export const docs = {
180
180
  description: 'Ref forwarded to the overlay root element.',
181
181
  },
182
182
  ],
183
- theming: {
184
- targets: [
185
- {className: 'astryx-overlay'},
186
- {className: 'astryx-overlay-scrim', visualProps: ['position']},
187
- ],
188
- },
189
183
  };
190
184
 
191
185
  /** @type {import('../docs-types').TranslationDoc} */
@@ -345,149 +345,6 @@ describe('Pagination', () => {
345
345
  const activeDot = screen.getByRole('button', {name: 'Go to page 3'});
346
346
  expect(activeDot).toHaveAttribute('aria-current', 'page');
347
347
  });
348
-
349
- // -------------------------------------------------------------------------
350
- // Keyboard navigation (roving tabindex + arrow keys via useListFocus).
351
- // Selection follows focus: arrow/Home/End move focus and select that page.
352
- // -------------------------------------------------------------------------
353
-
354
- it('uses roving tabindex — active dot has tabIndex 0, others -1', () => {
355
- render(
356
- <Pagination
357
- page={2}
358
- onChange={() => {}}
359
- totalPages={4}
360
- variant="dots"
361
- />,
362
- );
363
- expect(
364
- screen.getByRole('button', {name: 'Go to page 2'}),
365
- ).toHaveAttribute('tabindex', '0');
366
- expect(
367
- screen.getByRole('button', {name: 'Go to page 1'}),
368
- ).toHaveAttribute('tabindex', '-1');
369
- expect(
370
- screen.getByRole('button', {name: 'Go to page 3'}),
371
- ).toHaveAttribute('tabindex', '-1');
372
- });
373
-
374
- it('ArrowRight moves focus to the next dot and selects it', async () => {
375
- const user = userEvent.setup();
376
- const onChange = vi.fn();
377
- render(
378
- <Pagination
379
- page={2}
380
- onChange={onChange}
381
- totalPages={4}
382
- variant="dots"
383
- />,
384
- );
385
- screen.getByRole('button', {name: 'Go to page 2'}).focus();
386
- await user.keyboard('{ArrowRight}');
387
- expect(onChange).toHaveBeenCalledWith(3);
388
- expect(screen.getByRole('button', {name: 'Go to page 3'})).toHaveFocus();
389
- });
390
-
391
- it('ArrowLeft moves focus to the previous dot and selects it', async () => {
392
- const user = userEvent.setup();
393
- const onChange = vi.fn();
394
- render(
395
- <Pagination
396
- page={3}
397
- onChange={onChange}
398
- totalPages={4}
399
- variant="dots"
400
- />,
401
- );
402
- screen.getByRole('button', {name: 'Go to page 3'}).focus();
403
- await user.keyboard('{ArrowLeft}');
404
- expect(onChange).toHaveBeenCalledWith(2);
405
- expect(screen.getByRole('button', {name: 'Go to page 2'})).toHaveFocus();
406
- });
407
-
408
- it('Home selects the first page, End the last', async () => {
409
- const user = userEvent.setup();
410
- const onChange = vi.fn();
411
- const {rerender} = render(
412
- <Pagination
413
- page={3}
414
- onChange={onChange}
415
- totalPages={5}
416
- variant="dots"
417
- />,
418
- );
419
- screen.getByRole('button', {name: 'Go to page 3'}).focus();
420
- await user.keyboard('{Home}');
421
- expect(onChange).toHaveBeenCalledWith(1);
422
- expect(screen.getByRole('button', {name: 'Go to page 1'})).toHaveFocus();
423
-
424
- onChange.mockClear();
425
- rerender(
426
- <Pagination
427
- page={3}
428
- onChange={onChange}
429
- totalPages={5}
430
- variant="dots"
431
- />,
432
- );
433
- screen.getByRole('button', {name: 'Go to page 3'}).focus();
434
- await user.keyboard('{End}');
435
- expect(onChange).toHaveBeenCalledWith(5);
436
- expect(screen.getByRole('button', {name: 'Go to page 5'})).toHaveFocus();
437
- });
438
-
439
- it('wraps from the last dot to the first with ArrowRight', async () => {
440
- const user = userEvent.setup();
441
- const onChange = vi.fn();
442
- render(
443
- <Pagination
444
- page={4}
445
- onChange={onChange}
446
- totalPages={4}
447
- variant="dots"
448
- />,
449
- );
450
- screen.getByRole('button', {name: 'Go to page 4'}).focus();
451
- await user.keyboard('{ArrowRight}');
452
- expect(onChange).toHaveBeenCalledWith(1);
453
- expect(screen.getByRole('button', {name: 'Go to page 1'})).toHaveFocus();
454
- });
455
-
456
- it('wraps from the first dot to the last with ArrowLeft', async () => {
457
- const user = userEvent.setup();
458
- const onChange = vi.fn();
459
- render(
460
- <Pagination
461
- page={1}
462
- onChange={onChange}
463
- totalPages={4}
464
- variant="dots"
465
- />,
466
- );
467
- screen.getByRole('button', {name: 'Go to page 1'}).focus();
468
- await user.keyboard('{ArrowLeft}');
469
- expect(onChange).toHaveBeenCalledWith(4);
470
- expect(screen.getByRole('button', {name: 'Go to page 4'})).toHaveFocus();
471
- });
472
-
473
- it('does not navigate with arrow keys when disabled', async () => {
474
- const user = userEvent.setup();
475
- const onChange = vi.fn();
476
- render(
477
- <Pagination
478
- page={2}
479
- onChange={onChange}
480
- totalPages={4}
481
- variant="dots"
482
- isDisabled
483
- />,
484
- );
485
- const dot = screen.getByRole('button', {name: 'Go to page 2'});
486
- expect(dot).toBeDisabled();
487
- dot.focus();
488
- await user.keyboard('{ArrowRight}');
489
- expect(onChange).not.toHaveBeenCalled();
490
- });
491
348
  });
492
349
 
493
350
  // ---------------------------------------------------------------------------
@@ -903,23 +760,4 @@ describe('Pagination', () => {
903
760
  ).not.toBeInTheDocument();
904
761
  });
905
762
  });
906
-
907
- describe('rest forwarding', () => {
908
- it('forwards data-testid, id, and aria-* to the root nav', () => {
909
- const {container} = render(
910
- <Pagination
911
- page={1}
912
- onChange={() => {}}
913
- totalPages={3}
914
- data-testid="pager"
915
- id="pager-1"
916
- aria-describedby="hint"
917
- />,
918
- );
919
- const nav = container.querySelector('nav')!;
920
- expect(nav).toHaveAttribute('data-testid', 'pager');
921
- expect(nav).toHaveAttribute('id', 'pager-1');
922
- expect(nav).toHaveAttribute('aria-describedby', 'hint');
923
- });
924
- });
925
763
  });
@@ -35,7 +35,6 @@ import {Icon} from '../Icon';
35
35
  import {Selector} from '../Selector';
36
36
  import {Text} from '../Text';
37
37
  import {useAnnounce} from '../hooks/useAnnounce';
38
- import {useListFocus} from '../hooks/useListFocus';
39
38
  import {mergeProps} from '../utils';
40
39
  import type {BaseProps} from '../BaseProps';
41
40
  import {themeProps} from '../utils/themeProps';
@@ -350,7 +349,6 @@ export function Pagination({
350
349
  className,
351
350
  style,
352
351
  ref,
353
- ...rest
354
352
  }: PaginationProps) {
355
353
  const [, startTransition] = useTransition();
356
354
 
@@ -372,21 +370,6 @@ export function Pagination({
372
370
  // in-flight target instead of stalling on the last committed page.
373
371
  const [optimisticPage, setOptimisticPage] = useOptimistic(page);
374
372
 
375
- // Roving-tabindex + arrow/Home/End keyboard nav for the dots variant, owned
376
- // by the shared useListFocus primitive (mirrors SegmentedControl). It stamps a
377
- // single tab stop across the dots and moves focus horizontally; selection
378
- // follows focus via handleDotsFocus so arrow keys move the active page.
379
- const {
380
- listRef: dotsListRef,
381
- handleKeyDown: handleDotsKeyDown,
382
- handleFocus: handleDotsRovingFocus,
383
- } = useListFocus<HTMLDivElement>({
384
- itemSelector: 'button',
385
- hasRovingTabIndex: true,
386
- wrap: true,
387
- orientation: 'horizontal',
388
- });
389
-
390
373
  // Compute pagination state
391
374
  const computedTotalPages =
392
375
  totalPagesProp ??
@@ -427,28 +410,6 @@ export function Pagination({
427
410
  });
428
411
  };
429
412
 
430
- // Selection-follows-focus for the dots (APG radiogroup pattern): useListFocus
431
- // only *moves* focus, so when focus lands on a dot -- via arrow/Home/End, or a
432
- // click that focuses it -- we select that dot's page. handleDotsRovingFocus
433
- // keeps the roving tab stop in sync. The current page is skipped so tabbing
434
- // into the group is a no-op.
435
- const handleDotsFocus = (e: React.FocusEvent) => {
436
- handleDotsRovingFocus(e);
437
- if (isDisabled) {
438
- return;
439
- }
440
- const focused = (e.target as HTMLElement | null)?.closest<HTMLElement>(
441
- 'button[data-page]',
442
- );
443
- if (!focused) {
444
- return;
445
- }
446
- const nextPage = Number(focused.dataset.page);
447
- if (Number.isFinite(nextPage) && nextPage !== optimisticPage) {
448
- handlePageChange(nextPage);
449
- }
450
- };
451
-
452
413
  const handlePrevious = () => {
453
414
  if (hasPrevious) {
454
415
  handlePageChange(optimisticPage - 1);
@@ -557,47 +518,33 @@ export function Pagination({
557
518
  if (computedTotalPages == null) {
558
519
  return null;
559
520
  }
560
-
561
521
  return (
562
522
  <div
563
- ref={dotsListRef}
564
523
  {...stylex.props(styles.dotsContainer)}
565
524
  role="group"
566
- aria-label="Page indicators"
567
- onKeyDown={handleDotsKeyDown}
568
- onFocus={handleDotsFocus}>
569
- {Array.from({length: computedTotalPages}, (_, i) => {
570
- const isActive = i + 1 === optimisticPage;
571
- return (
572
- <button
573
- key={i + 1}
574
- type="button"
575
- data-page={i + 1}
576
- aria-label={`Go to page ${i + 1}`}
577
- aria-current={isActive ? 'page' : undefined}
578
- // The active dot is the single roving tab stop; useListFocus
579
- // maintains it as focus and the active page move.
580
- tabIndex={isActive ? 0 : -1}
581
- // Selection is driven by focus (handleDotsFocus); clicking only
582
- // needs to focus the dot, which some browsers (Safari) skip for
583
- // buttons, so focus it explicitly.
584
- onClick={e => e.currentTarget.focus()}
585
- disabled={isDisabled}
586
- {...mergeProps(
587
- themeProps('pagination-dot', {
588
- active: isActive ? 'active' : null,
589
- size,
590
- }),
591
- stylex.props(
592
- styles.dot,
593
- isSm && styles.dotSm,
594
- isActive && styles.dotActive,
595
- isDisabled && styles.dotDisabled,
596
- ),
597
- )}
598
- />
599
- );
600
- })}
525
+ aria-label="Page indicators">
526
+ {Array.from({length: computedTotalPages}, (_, i) => (
527
+ <button
528
+ key={i + 1}
529
+ type="button"
530
+ aria-label={`Go to page ${i + 1}`}
531
+ aria-current={i + 1 === optimisticPage ? 'page' : undefined}
532
+ onClick={() => handlePageChange(i + 1)}
533
+ disabled={isDisabled}
534
+ {...mergeProps(
535
+ themeProps('pagination-dot', {
536
+ active: i + 1 === optimisticPage ? 'active' : null,
537
+ size,
538
+ }),
539
+ stylex.props(
540
+ styles.dot,
541
+ isSm && styles.dotSm,
542
+ i + 1 === optimisticPage && styles.dotActive,
543
+ isDisabled && styles.dotDisabled,
544
+ ),
545
+ )}
546
+ />
547
+ ))}
601
548
  </div>
602
549
  );
603
550
  }
@@ -611,15 +558,14 @@ export function Pagination({
611
558
  return (
612
559
  <nav
613
560
  ref={ref}
561
+ aria-label={label}
562
+ data-testid={testId}
614
563
  {...mergeProps(
615
564
  themeProps('pagination', {variant, size}),
616
565
  stylex.props(styles.root, xstyle),
617
566
  className,
618
567
  style,
619
- )}
620
- {...rest}
621
- aria-label={label}
622
- data-testid={testId}>
568
+ )}>
623
569
  {pageSizeOptions != null && pageSizeOptions.length > 0 && (
624
570
  <div {...stylex.props(styles.pageSizeSelector)}>
625
571
  <div {...stylex.props(styles.pageSizeSelectorControl)}>
@@ -36,13 +36,13 @@ export const docs = {
36
36
  {
37
37
  name: 'placement',
38
38
  type: "'above' | 'below' | 'start' | 'end'",
39
- description: 'Position placement relative to the trigger. Logical: start/end resolve against the popover\'s own inherited direction, so RTL contexts mirror automatically in pure CSS.',
39
+ description: 'Position placement relative to the trigger.',
40
40
  default: "'below'",
41
41
  },
42
42
  {
43
43
  name: 'alignment',
44
44
  type: "'start' | 'center' | 'end'",
45
- description: 'Alignment along the placement axis. Logical: start/end follow the popover\'s own inherited direction (RTL mirrors).',
45
+ description: 'Alignment along the placement axis.',
46
46
  default: "'start'",
47
47
  },
48
48
  {
@@ -177,13 +177,13 @@ export const docsZh = {
177
177
  {
178
178
  name: 'placement',
179
179
  type: "'above' | 'below' | 'start' | 'end'",
180
- description: '相对于触发器的位置放置方式。逻辑值:start/end 根据弹出层自身继承的方向解析,RTL 环境通过纯 CSS 自动镜像。',
180
+ description: '相对于触发器的位置放置方式。',
181
181
  default: "'below'",
182
182
  },
183
183
  {
184
184
  name: 'alignment',
185
185
  type: "'start' | 'center' | 'end'",
186
- description: '沿放置轴的对齐方式。逻辑值:start/end 跟随弹出层自身继承的方向(RTL 镜像)。',
186
+ description: '沿放置轴的对齐方式。',
187
187
  default: "'start'",
188
188
  },
189
189
  {
@@ -305,8 +305,8 @@ export const docsDense = {
305
305
  children: 'Trigger element. Must contain <button> or [role="button"] element.',
306
306
  anchorRef: 'External ref for popover anchor in sibling mode.',
307
307
  content: 'Content displayed inside popover.',
308
- placement: 'Position relative to trigger. Logical: start/end resolve against the popover\'s inherited direction (RTL mirrors).',
309
- alignment: 'Alignment along placement axis. Logical: start/end follow the popover\'s inherited direction (RTL mirrors).',
308
+ placement: 'Position relative to trigger.',
309
+ alignment: 'Alignment along placement axis.',
310
310
  isOpen: 'Whether popover shown in controlled mode.',
311
311
  onOpenChange: 'Callback fired when popover visibility changes.',
312
312
  isEnabled: 'When false, trigger interactions ignored.',