@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
@@ -259,56 +259,6 @@ describe('SegmentedControl', () => {
259
259
  });
260
260
 
261
261
  describe('SegmentedControl keyboard navigation', () => {
262
- describe('tab-through is a pure focus move (#3597)', () => {
263
- it('does not fire onChange when tabbing in with an unmatched value', async () => {
264
- const user = userEvent.setup();
265
- const onChange = vi.fn();
266
- render(
267
- <>
268
- <button type="button">before</button>
269
- <SegmentedControl label="View" value="archived" onChange={onChange}>
270
- <SegmentedControlItem value="grid" label="Grid" />
271
- <SegmentedControlItem value="list" label="List" />
272
- </SegmentedControl>
273
- </>,
274
- );
275
- screen.getByText('before').focus();
276
- await user.tab();
277
- expect(onChange).not.toHaveBeenCalled();
278
- });
279
-
280
- it('does not fire onChange when tabbing in while the selected item is disabled', async () => {
281
- const user = userEvent.setup();
282
- const onChange = vi.fn();
283
- render(
284
- <>
285
- <button type="button">before</button>
286
- <SegmentedControl label="View" value="list" onChange={onChange}>
287
- <SegmentedControlItem value="grid" label="Grid" />
288
- <SegmentedControlItem value="list" label="List" isDisabled />
289
- </SegmentedControl>
290
- </>,
291
- );
292
- screen.getByText('before').focus();
293
- await user.tab();
294
- expect(onChange).not.toHaveBeenCalled();
295
- });
296
-
297
- it('still selects on arrow-key navigation within the group', async () => {
298
- const user = userEvent.setup();
299
- const onChange = vi.fn();
300
- render(
301
- <SegmentedControl label="View" value="grid" onChange={onChange}>
302
- <SegmentedControlItem value="grid" label="Grid" />
303
- <SegmentedControlItem value="list" label="List" />
304
- </SegmentedControl>,
305
- );
306
- screen.getByRole('radio', {name: 'Grid'}).focus();
307
- await user.keyboard('{ArrowRight}');
308
- expect(onChange).toHaveBeenCalledWith('list');
309
- });
310
- });
311
-
312
262
  it('navigates with ArrowRight and selects', async () => {
313
263
  const user = userEvent.setup();
314
264
  const handleChange = vi.fn();
@@ -638,145 +588,3 @@ describe('SegmentedControl disabled state', () => {
638
588
  });
639
589
  });
640
590
  });
641
-
642
- describe('SegmentedControl data-testid forwarding', () => {
643
- it('forwards data-testid to the radiogroup', () => {
644
- render(
645
- <SegmentedControl
646
- value="grid"
647
- onChange={() => {}}
648
- label="View mode"
649
- data-testid="view-toggle">
650
- <SegmentedControlItem value="grid" label="Grid" />
651
- <SegmentedControlItem value="list" label="List" />
652
- </SegmentedControl>,
653
- );
654
-
655
- expect(screen.getByTestId('view-toggle')).toBe(
656
- screen.getByRole('radiogroup'),
657
- );
658
- });
659
-
660
- it('forwards data-testid to an individual item button', () => {
661
- render(
662
- <SegmentedControl value="grid" onChange={() => {}} label="View mode">
663
- <SegmentedControlItem
664
- value="grid"
665
- label="Grid"
666
- data-testid="opt-grid"
667
- />
668
- <SegmentedControlItem
669
- value="list"
670
- label="List"
671
- data-testid="opt-list"
672
- />
673
- </SegmentedControl>,
674
- );
675
-
676
- expect(screen.getByTestId('opt-grid')).toBe(
677
- screen.getByRole('radio', {name: 'Grid'}),
678
- );
679
- expect(screen.getByTestId('opt-list')).toBe(
680
- screen.getByRole('radio', {name: 'List'}),
681
- );
682
- });
683
-
684
- it('does not let a forwarded prop override the computed role', () => {
685
- render(
686
- // A consumer-supplied role must not clobber the component's own
687
- // radiogroup role (the computed role is applied after {...rest}).
688
- <SegmentedControl
689
- value="grid"
690
- onChange={() => {}}
691
- label="View mode"
692
- role="tablist"
693
- data-testid="view-toggle">
694
- <SegmentedControlItem value="grid" label="Grid" />
695
- </SegmentedControl>,
696
- );
697
-
698
- expect(screen.getByTestId('view-toggle')).toHaveAttribute(
699
- 'role',
700
- 'radiogroup',
701
- );
702
- });
703
- });
704
-
705
- describe('SegmentedControlItem onClick composition', () => {
706
- it('calls a consumer onClick in addition to selecting the item', () => {
707
- const onChange = vi.fn();
708
- const onClick = vi.fn();
709
- render(
710
- <SegmentedControl value="grid" onChange={onChange} label="View mode">
711
- <SegmentedControlItem value="list" label="List" onClick={onClick} />
712
- </SegmentedControl>,
713
- );
714
-
715
- fireEvent.click(screen.getByRole('radio', {name: 'List'}));
716
-
717
- expect(onClick).toHaveBeenCalledTimes(1);
718
- expect(onChange).toHaveBeenCalledWith('list');
719
- });
720
-
721
- it('lets a consumer onClick opt out of selection via preventDefault', () => {
722
- const onChange = vi.fn();
723
- render(
724
- <SegmentedControl value="grid" onChange={onChange} label="View mode">
725
- <SegmentedControlItem
726
- value="list"
727
- label="List"
728
- onClick={e => e.preventDefault()}
729
- />
730
- </SegmentedControl>,
731
- );
732
-
733
- fireEvent.click(screen.getByRole('radio', {name: 'List'}));
734
-
735
- expect(onChange).not.toHaveBeenCalled();
736
- });
737
- });
738
-
739
- describe('SegmentedControl container handler forwarding', () => {
740
- it('forwards a consumer onKeyDown while keeping arrow-key navigation', async () => {
741
- const user = userEvent.setup();
742
- const onKeyDown = vi.fn();
743
- const onChange = vi.fn();
744
- render(
745
- <SegmentedControl
746
- value="grid"
747
- onChange={onChange}
748
- label="View mode"
749
- onKeyDown={onKeyDown}>
750
- <SegmentedControlItem value="grid" label="Grid" />
751
- <SegmentedControlItem value="list" label="List" />
752
- </SegmentedControl>,
753
- );
754
-
755
- screen.getByRole('radio', {name: 'Grid'}).focus();
756
- await user.keyboard('{ArrowRight}');
757
-
758
- expect(onKeyDown).toHaveBeenCalled();
759
- // Built-in navigation still ran.
760
- expect(onChange).toHaveBeenCalledWith('list');
761
- });
762
-
763
- it('lets a consumer onKeyDown opt out of built-in navigation via preventDefault', async () => {
764
- const user = userEvent.setup();
765
- const onChange = vi.fn();
766
- render(
767
- <SegmentedControl
768
- value="grid"
769
- onChange={onChange}
770
- label="View mode"
771
- onKeyDown={e => e.preventDefault()}>
772
- <SegmentedControlItem value="grid" label="Grid" />
773
- <SegmentedControlItem value="list" label="List" />
774
- </SegmentedControl>,
775
- );
776
-
777
- screen.getByRole('radio', {name: 'Grid'}).focus();
778
- await user.keyboard('{ArrowRight}');
779
-
780
- expect(onChange).not.toHaveBeenCalled();
781
- });
782
- });
@@ -26,7 +26,7 @@ import type {
26
26
  SegmentedControlSize,
27
27
  SegmentedControlLayout,
28
28
  } from './SegmentedControlContext';
29
- import {mergeProps, mergeRefs, composeEventHandlers} from '../utils';
29
+ import {mergeProps, mergeRefs} from '../utils';
30
30
  import {useSize} from '../SizeContext/SizeContext';
31
31
  import type {BaseProps} from '../BaseProps';
32
32
  import {themeProps} from '../utils/themeProps';
@@ -152,10 +152,6 @@ export function SegmentedControl({
152
152
  xstyle,
153
153
  className,
154
154
  style,
155
- onKeyDown: onKeyDownProp,
156
- onFocus: onFocusProp,
157
- onBlur: onBlurProp,
158
- ...rest
159
155
  }: SegmentedControlProps) {
160
156
  const size = useSize(sizeProp, 'md');
161
157
 
@@ -192,14 +188,10 @@ export function SegmentedControl({
192
188
 
193
189
  const handleContainerKeyDown = useCallback(
194
190
  (e: React.KeyboardEvent<HTMLDivElement>) => {
195
- onKeyDownProp?.(e);
196
- if (e.defaultPrevented) {
197
- return;
198
- }
199
191
  hint.onKeyDown(e);
200
192
  handleKeyDown(e);
201
193
  },
202
- [onKeyDownProp, hint, handleKeyDown],
194
+ [hint, handleKeyDown],
203
195
  );
204
196
 
205
197
  // Selection-follows-focus (APG radiogroup): useListFocus only *moves* focus,
@@ -210,25 +202,12 @@ export function SegmentedControl({
210
202
  // and the already-selected value is skipped so an initial Tab-in (or a click
211
203
  // on the current segment) is a no-op, matching click behavior.
212
204
  const handleContainerFocus = useCallback(
213
- (e: React.FocusEvent<HTMLDivElement>) => {
214
- onFocusProp?.(e);
215
- if (e.defaultPrevented) {
216
- return;
217
- }
205
+ (e: React.FocusEvent) => {
218
206
  hint.onFocus(e);
219
207
  handleFocus(e);
220
208
  if (isDisabled) {
221
209
  return;
222
210
  }
223
- // Only select when focus moved WITHIN the group (arrow/Home/End — APG
224
- // selection-follows-focus). When focus is entering from outside, Tab
225
- // must stay a pure focus move: with an unmatched or disabled-selected
226
- // value the roving tab stop falls back to the first enabled radio, and
227
- // selecting it here would rewrite the form value on mere traversal.
228
- // Clicks are unaffected: the item's own handleClick selects.
229
- if (!e.currentTarget.contains(e.relatedTarget)) {
230
- return;
231
- }
232
211
  const focused = (e.target as HTMLElement | null)?.closest<HTMLElement>(
233
212
  '[role="radio"][data-value]',
234
213
  );
@@ -240,7 +219,7 @@ export function SegmentedControl({
240
219
  onChange(nextValue);
241
220
  }
242
221
  },
243
- [onFocusProp, hint, handleFocus, isDisabled, onChange, value],
222
+ [hint, handleFocus, isDisabled, onChange, value],
244
223
  );
245
224
 
246
225
  const contextValue = useMemo(
@@ -259,7 +238,6 @@ export function SegmentedControl({
259
238
  <SegmentedControlContext value={contextValue}>
260
239
  <div
261
240
  ref={mergeRefs(ref, listRef, disabledMessageTooltip.ref)}
262
- {...rest}
263
241
  role="radiogroup"
264
242
  aria-label={label}
265
243
  aria-disabled={isDisabled || undefined}
@@ -268,7 +246,7 @@ export function SegmentedControl({
268
246
  }
269
247
  onKeyDown={handleContainerKeyDown}
270
248
  onFocus={handleContainerFocus}
271
- onBlur={composeEventHandlers(onBlurProp, hint.onBlur)}
249
+ onBlur={hint.onBlur}
272
250
  {...mergeProps(
273
251
  themeProps('segmented-control', {size}),
274
252
  stylex.props(
@@ -15,7 +15,7 @@
15
15
  * - /packages/cli/templates/blocks/components/SegmentedControl/ (showcase blocks)
16
16
  */
17
17
 
18
- import React, {type ReactNode} from 'react';
18
+ import React, {useCallback, type ReactNode} from 'react';
19
19
  import * as stylex from '@stylexjs/stylex';
20
20
  import {
21
21
  colorVars,
@@ -29,7 +29,7 @@ import {
29
29
  } from '../theme/tokens.stylex';
30
30
  import {useSegmentedControlContext} from './SegmentedControlContext';
31
31
  import type {SegmentedControlSize} from './SegmentedControlContext';
32
- import {mergeProps, composeEventHandlers} from '../utils';
32
+ import {mergeProps} from '../utils';
33
33
  import type {BaseProps} from '../BaseProps';
34
34
  import {themeProps} from '../utils/themeProps';
35
35
 
@@ -168,8 +168,6 @@ export function SegmentedControlItem({
168
168
  isLabelHidden = false,
169
169
  icon,
170
170
  isDisabled = false,
171
- onClick: onClickProp,
172
- ...rest
173
171
  }: SegmentedControlItemProps) {
174
172
  const ctx = useSegmentedControlContext();
175
173
 
@@ -184,13 +182,11 @@ export function SegmentedControlItem({
184
182
  const size: SegmentedControlSize = ctx.size;
185
183
  const isFill = ctx.layout === 'fill';
186
184
 
187
- // Consumer-first: a consumer onClick can call preventDefault() to opt out of
188
- // selection; otherwise selection proceeds when enabled and not selected.
189
- const handleClick = composeEventHandlers(onClickProp, () => {
185
+ const handleClick = useCallback(() => {
190
186
  if (!isItemDisabled && !isSelected) {
191
187
  ctx.onChange(value);
192
188
  }
193
- });
189
+ }, [ctx, value, isItemDisabled, isSelected]);
194
190
 
195
191
  const iconElement = icon ? (
196
192
  <span {...stylex.props(styles.icon, iconSizeStyles[size])}>{icon}</span>
@@ -199,7 +195,6 @@ export function SegmentedControlItem({
199
195
  return (
200
196
  <button
201
197
  ref={ref}
202
- {...rest}
203
198
  type="button"
204
199
  role="radio"
205
200
  aria-checked={isSelected}
@@ -34,7 +34,7 @@ export const docs = {
34
34
  ],
35
35
  theming: {
36
36
  container: true,
37
- targets: [{className: 'astryx-selectable-card', visualProps: ['selected', 'variant']}],
37
+ targets: [{className: 'astryx-selectable-card', visualProps: ['selected']}],
38
38
  },
39
39
  playground: {
40
40
  defaults: {
@@ -186,33 +186,7 @@ describe('Selector', () => {
186
186
  .getByRole('listbox', {hidden: true})
187
187
  .closest('[popover]');
188
188
  expect(popover?.getAttribute('style')).toContain(
189
- 'position-area: self-block-start span-self-inline-end',
190
- );
191
- });
192
-
193
- it('emits the direction-independent logical mapping under an RTL ancestor (#3389)', async () => {
194
- // The self-* position-area keywords resolve against the popover's own
195
- // inherited direction in the browser, so RTL emits the same string as
196
- // LTR and the mirroring is pure CSS — jsdom can only assert the string.
197
- const user = userEvent.setup();
198
- render(
199
- <div style={{direction: 'rtl'}}>
200
- <Selector
201
- label="Fruit"
202
- options={OPTIONS}
203
- value="Banana"
204
- onChange={() => {}}
205
- />
206
- </div>,
207
- );
208
-
209
- await user.click(screen.getByRole('combobox'));
210
-
211
- const popover = screen
212
- .getByRole('listbox', {hidden: true})
213
- .closest('[popover]');
214
- expect(popover?.getAttribute('style')).toContain(
215
- 'position-area: self-block-end span-self-inline-end',
189
+ 'position-area: top span-right',
216
190
  );
217
191
  });
218
192
 
@@ -21,7 +21,7 @@ export const docs = {
21
21
  targets: [
22
22
  {className: 'astryx-side-nav', visualProps: ['mode']},
23
23
  {className: 'astryx-side-nav-heading'},
24
- {className: 'astryx-side-nav-item', visualProps: ['size'], states: ['selected']},
24
+ {className: 'astryx-side-nav-item'},
25
25
  {className: 'astryx-side-nav-section'},
26
26
  ],
27
27
  },
@@ -102,12 +102,6 @@ export const docs = {
102
102
  description: 'Enables collapse behavior. true for uncontrolled with default toggle button, or an object for controlled mode and advanced config (defaultIsCollapsed, isCollapsed + onCollapsedChange, hasButton, buttonLabel).',
103
103
  default: 'false',
104
104
  },
105
- {
106
- name: 'resizable',
107
- type: 'boolean | { defaultWidth?: number; minWidth?: number; maxWidth?: number; autoSaveId?: string; onWidthChange?: (width: number) => void }',
108
- description: 'Enables a resize handle at the inline-end edge. true for defaults (260px initial, 180-480px range), or a ResizableConfig object (defaultWidth, minWidth, maxWidth, autoSaveId for localStorage persistence, onWidthChange). The handle is hidden while collapsed.',
109
- default: 'false',
110
- },
111
105
  {
112
106
  name: 'handleRef',
113
107
  type: 'Ref<SideNavImperativeCollapseHandle>',
@@ -162,61 +162,6 @@ describe('SideNav', () => {
162
162
  screen.getByRole('button', {name: 'Expand sidebar'}),
163
163
  ).toBeInTheDocument();
164
164
  });
165
-
166
- it('does not render an empty footer container when collapsible.hasButton is false', () => {
167
- render(
168
- <SideNav data-testid="nav" collapsible={{hasButton: false}}>
169
- Content
170
- </SideNav>,
171
- );
172
-
173
- // The built-in collapse button is opted out (consumers render their own
174
- // SideNavCollapseButton in the header), so it must not appear...
175
- expect(
176
- screen.queryByRole('button', {name: 'Collapse sidebar'}),
177
- ).not.toBeInTheDocument();
178
-
179
- // ...and no empty sticky-bottom container should be left behind. With no
180
- // footer/footerIcons and no built-in button, the scrollable content region
181
- // is the nav's only child.
182
- const nav = screen.getByTestId('nav');
183
- expect(nav.children).toHaveLength(1);
184
- });
185
-
186
- it('fires a consumer onClick on the collapse button in addition to toggling', async () => {
187
- const user = userEvent.setup();
188
- const onClick = vi.fn();
189
-
190
- function Example() {
191
- const [isCollapsed, setIsCollapsed] = useState(false);
192
- const handleRef = useRef<SideNavImperativeCollapseHandle>(null);
193
- return (
194
- <>
195
- <SideNavCollapseButton handleRef={handleRef} onClick={onClick} />
196
- <SideNav
197
- handleRef={handleRef}
198
- collapsible={{
199
- isCollapsed,
200
- onCollapsedChange: setIsCollapsed,
201
- hasButton: false,
202
- }}>
203
- <SideNavSection title="Main">
204
- <SideNavItem label="Dashboard" icon={StubIcon} />
205
- </SideNavSection>
206
- </SideNav>
207
- </>
208
- );
209
- }
210
-
211
- render(<Example />);
212
- await user.click(screen.getByRole('button', {name: 'Collapse sidebar'}));
213
-
214
- expect(onClick).toHaveBeenCalledTimes(1);
215
- // Toggle still ran: the label flipped to "Expand sidebar".
216
- expect(
217
- screen.getByRole('button', {name: 'Expand sidebar'}),
218
- ).toBeInTheDocument();
219
- });
220
165
  });
221
166
 
222
167
  // =============================================================================
@@ -789,17 +734,6 @@ describe('SideNavSection', () => {
789
734
  const group = screen.getByRole('group');
790
735
  expect(group.style.marginTop).toBe('16px');
791
736
  });
792
-
793
- it('forwards arbitrary pass-through attributes (id, aria-*) to root element', () => {
794
- render(
795
- <SideNavSection title="Main" id="section-1" aria-describedby="hint">
796
- <SideNavItem label="Dashboard" />
797
- </SideNavSection>,
798
- );
799
- const group = screen.getByRole('group');
800
- expect(group).toHaveAttribute('id', 'section-1');
801
- expect(group).toHaveAttribute('aria-describedby', 'hint');
802
- });
803
737
  });
804
738
 
805
739
  // =============================================================================
@@ -490,10 +490,6 @@ export function SideNav({
490
490
  // =========================================================================
491
491
  const hasStickyTop = !!(header || topContent);
492
492
  const hasStickyBottom = !!(footer || footerIcons);
493
- // The built-in collapse button only renders when collapse is enabled and it
494
- // hasn't been opted out via `collapsible.hasButton: false` (e.g. when the
495
- // consumer places a SideNavCollapseButton in the header instead).
496
- const showCollapseButton = isCollapsible && hasCollapseButton;
497
493
 
498
494
  // When resizable, override the nav width via inline style
499
495
  const resizableNavStyle: React.CSSProperties | undefined = isResizable
@@ -536,7 +532,7 @@ export function SideNav({
536
532
  )}>
537
533
  {children}
538
534
  </div>
539
- {(hasStickyBottom || showCollapseButton) && (
535
+ {(hasStickyBottom || isCollapsible) && (
540
536
  <div
541
537
  {...stylex.props(
542
538
  styles.stickyBottom,
@@ -548,7 +544,7 @@ export function SideNav({
548
544
  styles.footerRow,
549
545
  collapsed && styles.footerRowCollapsed,
550
546
  )}>
551
- {showCollapseButton && <SideNavCollapseButton />}
547
+ {isCollapsible && hasCollapseButton && <SideNavCollapseButton />}
552
548
  {footerIcons}
553
549
  </div>
554
550
  </div>
@@ -23,7 +23,6 @@ import {durationVars, easeVars} from '../theme/tokens.stylex';
23
23
  import {getIcon} from '../Icon/globalIconRegistry';
24
24
  import {Button} from '../Button';
25
25
  import type {BaseProps} from '../BaseProps';
26
- import {composeEventHandlers} from '../utils';
27
26
  import {
28
27
  useSideNavCollapse,
29
28
  type SideNavCollapseState,
@@ -102,7 +101,6 @@ export function SideNavCollapseButton({
102
101
  handleRef,
103
102
  label,
104
103
  children,
105
- onClick: onClickProp,
106
104
  ...props
107
105
  }: SideNavCollapseButtonProps) {
108
106
  const {isCollapsed, toggle, isCollapsible} =
@@ -121,7 +119,7 @@ export function SideNavCollapseButton({
121
119
  label={label ?? (isCollapsed ? 'Expand sidebar' : 'Collapse sidebar')}
122
120
  variant="ghost"
123
121
  {...props}
124
- onClick={composeEventHandlers(onClickProp, toggle)}
122
+ onClick={toggle}
125
123
  icon={
126
124
  children ?? (
127
125
  <span
@@ -142,7 +140,8 @@ SideNavCollapseButton.displayName = 'SideNavCollapseButton';
142
140
 
143
141
  function useSideNavCollapseState(
144
142
  handleRef:
145
- React.RefObject<SideNavImperativeCollapseHandle | null> | undefined,
143
+ | React.RefObject<SideNavImperativeCollapseHandle | null>
144
+ | undefined,
146
145
  ): SideNavCollapseState {
147
146
  const contextCollapseState = useSideNavCollapse();
148
147
 
@@ -145,7 +145,6 @@ export function SideNavSection({
145
145
  className,
146
146
  style,
147
147
  'data-testid': testId,
148
- ...rest
149
148
  }: SideNavSectionProps) {
150
149
  const {isCollapsed} = useSideNavCollapse();
151
150
  const id = useId();
@@ -184,16 +183,15 @@ export function SideNavSection({
184
183
  return (
185
184
  <div
186
185
  ref={ref}
186
+ role="group"
187
+ aria-labelledby={titleId}
188
+ data-testid={testId}
187
189
  {...mergeProps(
188
190
  themeProps('side-nav-section'),
189
191
  stylex.props(styles.root, xstyle),
190
192
  className,
191
193
  style,
192
- )}
193
- {...rest}
194
- role="group"
195
- aria-labelledby={titleId}
196
- data-testid={testId}>
194
+ )}>
197
195
  <div
198
196
  {...mergeProps(stylex.props(styles.header), {
199
197
  style: shouldHideHeader ? visuallyHiddenStyle : undefined,
@@ -124,10 +124,10 @@ export const docs = {
124
124
  },
125
125
  {
126
126
  name: 'labelSpacing',
127
- type: "'hug' | 'spread'",
127
+ type: "'default' | 'spread'",
128
128
  description:
129
- 'Spacing behavior between label and switch. "hug" places them next to each other; "spread" pushes them to opposite ends of the container (full width). "default" is a deprecated alias for "hug".',
130
- default: "'hug'",
129
+ 'Spacing behavior between label and switch. "spread" pushes them to opposite ends of the container (full width).',
130
+ default: "'default'",
131
131
  },
132
132
  ],
133
133
  theming: {
@@ -270,10 +270,10 @@ export const docsZh = {
270
270
  },
271
271
  {
272
272
  name: 'labelSpacing',
273
- type: "'hug' | 'spread'",
273
+ type: "'default' | 'spread'",
274
274
  description:
275
- '标签和开关之间的间距行为。"hug" 将它们并排放置;"spread" 将它们推到容器的两端(全宽)。"default" 是 "hug" 的已弃用别名。',
276
- default: "'hug'",
275
+ '标签和开关之间的间距行为。"spread" 将它们推到容器的两端(全宽)。',
276
+ default: "'default'",
277
277
  },
278
278
  ],
279
279
  theming: {
@@ -329,6 +329,6 @@ export const docsDense = {
329
329
  labelIcon: 'Icon before label text.',
330
330
  labelTooltip: 'Tooltip text in info icon at label end.',
331
331
  labelPosition: 'Which side label appears; "start" places before switch.',
332
- labelSpacing: 'Spacing behavior; "hug" places next to each other, "spread" pushes to opposite ends (full width). "default" is deprecated alias for "hug".',
332
+ labelSpacing: 'Spacing behavior; "spread" pushes to opposite ends (full width).',
333
333
  },
334
334
  };