@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
@@ -105,7 +105,6 @@ export function ChatDictationButton({
105
105
  xstyle,
106
106
  className,
107
107
  style,
108
- ...rest
109
108
  }: ChatDictationButtonProps) {
110
109
  if (isHiddenWhenUnsupported && !dictation.isSupported) {
111
110
  return null;
@@ -131,8 +130,7 @@ export function ChatDictationButton({
131
130
  return (
132
131
  <span
133
132
  ref={ref}
134
- {...mergeProps(stylex.props(styles.wrapper, xstyle), className, style)}
135
- {...rest}>
133
+ {...mergeProps(stylex.props(styles.wrapper, xstyle), className, style)}>
136
134
  {isListening && (
137
135
  <span
138
136
  aria-hidden
@@ -163,7 +161,9 @@ export function ChatDictationButton({
163
161
  aria-label={accessibleLabel}
164
162
  variant="ghost"
165
163
  size={size}
166
- icon={isListening ? undefined : <Icon icon="microphone" size={size} />}
164
+ icon={
165
+ isListening ? undefined : <Icon icon="microphone" size={size} />
166
+ }
167
167
  isIconOnly
168
168
  onClick={dictation.toggle}
169
169
  />
@@ -118,13 +118,11 @@ export function ChatLayoutScrollButton({
118
118
  xstyle,
119
119
  className,
120
120
  style,
121
- ...rest
122
121
  }: ChatLayoutScrollButtonProps) {
123
122
  return (
124
123
  <div
125
124
  ref={ref}
126
- {...mergeProps(stylex.props(styles.wrapper, xstyle), className, style)}
127
- {...rest}>
125
+ {...mergeProps(stylex.props(styles.wrapper, xstyle), className, style)}>
128
126
  <div
129
127
  {...stylex.props(
130
128
  styles.container,
@@ -28,7 +28,11 @@ import type {BaseProps} from '../BaseProps';
28
28
  import {themeProps} from '../utils/themeProps';
29
29
 
30
30
  export type ChatMessageStatus =
31
- 'sending' | 'sent' | 'delivered' | 'read' | 'error';
31
+ | 'sending'
32
+ | 'sent'
33
+ | 'delivered'
34
+ | 'read'
35
+ | 'error';
32
36
 
33
37
  const STATUS_CONFIG: Record<
34
38
  ChatMessageStatus,
@@ -114,7 +118,6 @@ export function ChatMessageMetadata({
114
118
  xstyle,
115
119
  className,
116
120
  style,
117
- ...rest
118
121
  }: ChatMessageMetadataProps) {
119
122
  const msgContext = useChatMessageContext();
120
123
  const sender = msgContext?.sender ?? 'assistant';
@@ -139,8 +142,7 @@ export function ChatMessageMetadata({
139
142
  ),
140
143
  className,
141
144
  style,
142
- )}
143
- {...rest}>
145
+ )}>
144
146
  {timestamp != null && <span>{timestamp}</span>}
145
147
  {timestamp != null && (footer != null || statusConfig != null) && (
146
148
  <span>·</span>
@@ -11,20 +11,26 @@ describe('ChatSystemMessage', () => {
11
11
  });
12
12
 
13
13
  it('has role="status"', () => {
14
- render(<ChatSystemMessage data-testid="sys">Notice</ChatSystemMessage>);
14
+ render(
15
+ <ChatSystemMessage data-testid="sys">Notice</ChatSystemMessage>,
16
+ );
15
17
  const el = screen.getByTestId('sys');
16
18
  expect(el.getAttribute('role')).toBe('status');
17
19
  });
18
20
 
19
21
  it('renders default variant without divider lines', () => {
20
- const {container} = render(<ChatSystemMessage>Hello</ChatSystemMessage>);
22
+ const {container} = render(
23
+ <ChatSystemMessage>Hello</ChatSystemMessage>,
24
+ );
21
25
  // Divider lines have aria-hidden, so check there are none
22
26
  const hiddenElements = container.querySelectorAll('[aria-hidden]');
23
27
  expect(hiddenElements.length).toBe(0);
24
28
  });
25
29
 
26
30
  it('renders divider variant with Divider', () => {
27
- render(<ChatSystemMessage variant="divider">Today</ChatSystemMessage>);
31
+ render(
32
+ <ChatSystemMessage variant="divider">Today</ChatSystemMessage>,
33
+ );
28
34
  expect(screen.getByText('Today')).toBeTruthy();
29
35
  });
30
36
 
@@ -48,30 +54,9 @@ describe('ChatSystemMessage', () => {
48
54
  });
49
55
 
50
56
  it('applies data-testid', () => {
51
- render(<ChatSystemMessage data-testid="my-sys">Hello</ChatSystemMessage>);
52
- expect(screen.getByTestId('my-sys')).toBeTruthy();
53
- });
54
-
55
- it('forwards rest props (data-*, id) while keeping its own role', () => {
56
- render(
57
- <ChatSystemMessage data-testid="sys" data-custom="x" id="sys-1">
58
- Hello
59
- </ChatSystemMessage>,
60
- );
61
- const el = screen.getByTestId('sys');
62
- expect(el).toHaveAttribute('data-custom', 'x');
63
- expect(el).toHaveAttribute('id', 'sys-1');
64
- expect(el.getAttribute('role')).toBe('status');
65
- });
66
-
67
- it('forwards rest props in the divider variant', () => {
68
57
  render(
69
- <ChatSystemMessage variant="divider" data-testid="sys" data-custom="x">
70
- Today
71
- </ChatSystemMessage>,
58
+ <ChatSystemMessage data-testid="my-sys">Hello</ChatSystemMessage>,
72
59
  );
73
- const el = screen.getByTestId('sys');
74
- expect(el).toHaveAttribute('data-custom', 'x');
75
- expect(el.getAttribute('role')).toBe('status');
60
+ expect(screen.getByTestId('my-sys')).toBeTruthy();
76
61
  });
77
62
  });
@@ -120,21 +120,21 @@ export function ChatSystemMessage({
120
120
  xstyle,
121
121
  className,
122
122
  style: styleProp,
123
+ 'data-testid': testId,
123
124
  ref,
124
- ...rest
125
125
  }: ChatSystemMessageProps) {
126
126
  if (variant === 'divider') {
127
127
  return (
128
128
  <div
129
129
  ref={ref}
130
+ role="status"
131
+ data-testid={testId}
130
132
  {...mergeProps(
131
133
  themeProps('chat-system-message', {variant}),
132
134
  stylex.props(styles.dividerWrap, xstyle),
133
135
  className,
134
136
  styleProp,
135
- )}
136
- {...rest}
137
- role="status">
137
+ )}>
138
138
  <Divider label={children} />
139
139
  </div>
140
140
  );
@@ -143,14 +143,14 @@ export function ChatSystemMessage({
143
143
  return (
144
144
  <div
145
145
  ref={ref}
146
+ role="status"
147
+ data-testid={testId}
146
148
  {...mergeProps(
147
149
  themeProps('chat-system-message', {variant}),
148
150
  stylex.props(styles.root, xstyle),
149
151
  className,
150
152
  styleProp,
151
- )}
152
- {...rest}
153
- role="status">
153
+ )}>
154
154
  <span {...stylex.props(styles.content)}>
155
155
  {icon != null && <span {...stylex.props(styles.icon)}>{icon}</span>}
156
156
  {children}
@@ -6,12 +6,18 @@ import {ChatTokenizedText} from './ChatTokenizedText';
6
6
 
7
7
  describe('ChatTokenizedText', () => {
8
8
  it('renders plain text when no tokens provided', () => {
9
- render(<ChatTokenizedText>Hello world</ChatTokenizedText>);
9
+ render(
10
+ <ChatTokenizedText>Hello world</ChatTokenizedText>,
11
+ );
10
12
  expect(screen.getByText('Hello world')).toBeInTheDocument();
11
13
  });
12
14
 
13
15
  it('renders plain text when tokens array is empty', () => {
14
- render(<ChatTokenizedText tokens={[]}>Hello world</ChatTokenizedText>);
16
+ render(
17
+ <ChatTokenizedText tokens={[]}>
18
+ Hello world
19
+ </ChatTokenizedText>,
20
+ );
15
21
  expect(screen.getByText('Hello world')).toBeInTheDocument();
16
22
  });
17
23
 
@@ -42,7 +48,8 @@ describe('ChatTokenizedText', () => {
42
48
 
43
49
  it('handles repeated occurrences of the same token', () => {
44
50
  render(
45
- <ChatTokenizedText tokens={[{value: '@cindy', label: '@Cindy Zhang'}]}>
51
+ <ChatTokenizedText
52
+ tokens={[{value: '@cindy', label: '@Cindy Zhang'}]}>
46
53
  @cindy and @cindy again
47
54
  </ChatTokenizedText>,
48
55
  );
@@ -51,7 +58,8 @@ describe('ChatTokenizedText', () => {
51
58
 
52
59
  it('renders text with no matching tokens as plain text', () => {
53
60
  render(
54
- <ChatTokenizedText tokens={[{value: '@cindy', label: '@Cindy Zhang'}]}>
61
+ <ChatTokenizedText
62
+ tokens={[{value: '@cindy', label: '@Cindy Zhang'}]}>
55
63
  Hello world
56
64
  </ChatTokenizedText>,
57
65
  );
@@ -60,7 +68,8 @@ describe('ChatTokenizedText', () => {
60
68
 
61
69
  it('handles tokens with special regex characters in pattern', () => {
62
70
  render(
63
- <ChatTokenizedText tokens={[{value: '/search', label: '/search'}]}>
71
+ <ChatTokenizedText
72
+ tokens={[{value: '/search', label: '/search'}]}>
64
73
  Run /search now
65
74
  </ChatTokenizedText>,
66
75
  );
@@ -70,7 +79,8 @@ describe('ChatTokenizedText', () => {
70
79
 
71
80
  it('preserves surrounding text', () => {
72
81
  const {container} = render(
73
- <ChatTokenizedText tokens={[{value: '@cindy', label: '@Cindy Zhang'}]}>
82
+ <ChatTokenizedText
83
+ tokens={[{value: '@cindy', label: '@Cindy Zhang'}]}>
74
84
  Before @cindy after
75
85
  </ChatTokenizedText>,
76
86
  );
@@ -78,27 +88,4 @@ describe('ChatTokenizedText', () => {
78
88
  expect(container.textContent).toContain('after');
79
89
  expect(container.textContent).toContain('@Cindy Zhang');
80
90
  });
81
-
82
- it('forwards rest props (data-*, id) to the root element', () => {
83
- render(
84
- <ChatTokenizedText data-testid="tokenized" data-custom="x" id="tok-1">
85
- Plain text
86
- </ChatTokenizedText>,
87
- );
88
- const root = screen.getByTestId('tokenized');
89
- expect(root).toHaveAttribute('data-custom', 'x');
90
- expect(root).toHaveAttribute('id', 'tok-1');
91
- });
92
-
93
- it('forwards rest props when rendering tokens', () => {
94
- render(
95
- <ChatTokenizedText
96
- tokens={[{value: '@cindy', label: '@Cindy Zhang'}]}
97
- data-testid="tokenized"
98
- data-custom="x">
99
- Hi @cindy
100
- </ChatTokenizedText>,
101
- );
102
- expect(screen.getByTestId('tokenized')).toHaveAttribute('data-custom', 'x');
103
- });
104
91
  });
@@ -91,10 +91,6 @@ export function ChatTokenizedText({
91
91
  ref,
92
92
  children,
93
93
  tokens,
94
- xstyle,
95
- className,
96
- style,
97
- ...rest
98
94
  }: ChatTokenizedTextProps) {
99
95
  if (!children || !tokens || tokens.length === 0) {
100
96
  return (
@@ -102,11 +98,8 @@ export function ChatTokenizedText({
102
98
  ref={ref}
103
99
  {...mergeProps(
104
100
  themeProps('chat-tokenized-text'),
105
- stylex.props(styles.root, xstyle),
106
- className,
107
- style,
108
- )}
109
- {...rest}>
101
+ stylex.props(styles.root),
102
+ )}>
110
103
  {children ?? ''}
111
104
  </span>
112
105
  );
@@ -118,11 +111,8 @@ export function ChatTokenizedText({
118
111
  ref={ref}
119
112
  {...mergeProps(
120
113
  themeProps('chat-tokenized-text'),
121
- stylex.props(styles.root, xstyle),
122
- className,
123
- style,
124
- )}
125
- {...rest}>
114
+ stylex.props(styles.root),
115
+ )}>
126
116
  {parts}
127
117
  </span>
128
118
  );
@@ -134,7 +124,10 @@ ChatTokenizedText.displayName = 'ChatTokenizedText';
134
124
  // Render
135
125
  // =============================================================================
136
126
 
137
- function renderTokens(text: string, tokens: ChatComposerToken[]): ReactNode[] {
127
+ function renderTokens(
128
+ text: string,
129
+ tokens: ChatComposerToken[],
130
+ ): ReactNode[] {
138
131
  const pattern = tokens.map(t => escapeRegExp(t.value)).join('|');
139
132
  const regex = new RegExp(`(${pattern})`, 'g');
140
133
 
@@ -97,59 +97,4 @@ describe('ChatToolCalls', () => {
97
97
  );
98
98
  expect(screen.getByText('git status')).toBeInTheDocument();
99
99
  });
100
-
101
- it('exposes no aria-expanded on a call row without resultDetail', () => {
102
- const {container} = render(
103
- <ChatToolCalls calls={[{name: 'bash', status: 'complete'}]} />,
104
- );
105
- expect(container.querySelector('[aria-expanded]')).toBeNull();
106
- });
107
-
108
- it('wires disclosure semantics on an expandable call row', () => {
109
- render(
110
- <ChatToolCalls
111
- calls={[
112
- {
113
- name: 'readFile',
114
- status: 'complete',
115
- resultDetail: <div>file contents here</div>,
116
- },
117
- ]}
118
- />,
119
- );
120
- const row = screen.getByRole('button');
121
- expect(row).toHaveAttribute('aria-expanded', 'false');
122
- // Detail panel is conditionally mounted, so no aria-controls while closed.
123
- expect(row).not.toHaveAttribute('aria-controls');
124
- expect(screen.queryByText('file contents here')).not.toBeInTheDocument();
125
-
126
- fireEvent.click(row);
127
-
128
- expect(row).toHaveAttribute('aria-expanded', 'true');
129
- const detailId = row.getAttribute('aria-controls');
130
- expect(detailId).toBeTruthy();
131
- const panel = document.getElementById(detailId as string);
132
- expect(panel).not.toBeNull();
133
- expect(panel).toHaveTextContent('file contents here');
134
- });
135
-
136
- it('points the group header aria-controls at the content region', () => {
137
- render(
138
- <ChatToolCalls
139
- defaultIsExpanded={true}
140
- calls={[
141
- {name: 'searchCode', status: 'complete'},
142
- {name: 'readFile', status: 'complete'},
143
- ]}
144
- />,
145
- );
146
- const header = screen.getByRole('button');
147
- expect(header).toHaveAttribute('aria-expanded', 'true');
148
- const regionId = header.getAttribute('aria-controls');
149
- expect(regionId).toBeTruthy();
150
- const region = document.getElementById(regionId as string);
151
- expect(region).not.toBeNull();
152
- expect(region).toHaveTextContent('searchCode');
153
- expect(region).toHaveTextContent('readFile');
154
- });
155
100
  });
@@ -18,7 +18,7 @@
18
18
  * for builders to wire up.
19
19
  */
20
20
 
21
- import React, {useState, useCallback, useId, type ReactNode} from 'react';
21
+ import React, {useState, useCallback, type ReactNode} from 'react';
22
22
  import type {BaseProps} from '../BaseProps';
23
23
  import * as stylex from '@stylexjs/stylex';
24
24
  import {
@@ -41,7 +41,11 @@ import {themeProps} from '../utils/themeProps';
41
41
  // Types
42
42
  // =============================================================================
43
43
 
44
- export type ChatToolCallStatus = 'pending' | 'running' | 'complete' | 'error';
44
+ export type ChatToolCallStatus =
45
+ | 'pending'
46
+ | 'running'
47
+ | 'complete'
48
+ | 'error';
45
49
 
46
50
  export interface ChatToolCallItem {
47
51
  /** Tool/function name. */
@@ -352,7 +356,6 @@ function CallRow({call}: {call: ChatToolCallItem}) {
352
356
  const status = call.status ?? 'complete';
353
357
  const hasDetail = call.resultDetail != null;
354
358
  const [isDetailOpen, setIsDetailOpen] = useState(false);
355
- const detailId = useId();
356
359
 
357
360
  const toggleDetail = hasDetail
358
361
  ? () => setIsDetailOpen(prev => !prev)
@@ -362,8 +365,6 @@ function CallRow({call}: {call: ChatToolCallItem}) {
362
365
  <div
363
366
  role={hasDetail ? 'button' : undefined}
364
367
  tabIndex={hasDetail ? 0 : undefined}
365
- aria-expanded={hasDetail ? isDetailOpen : undefined}
366
- aria-controls={hasDetail && isDetailOpen ? detailId : undefined}
367
368
  onClick={toggleDetail}
368
369
  onKeyDown={
369
370
  hasDetail
@@ -398,7 +399,11 @@ function CallRow({call}: {call: ChatToolCallItem}) {
398
399
  </span>
399
400
  <span {...stylex.props(styles.callName)}>{call.name}</span>
400
401
  {call.node != null && (
401
- <Badge label={call.node} variant="neutral" xstyle={styles.nodePill} />
402
+ <Badge
403
+ label={call.node}
404
+ variant="neutral"
405
+ xstyle={styles.nodePill}
406
+ />
402
407
  )}
403
408
  {call.target != null && (
404
409
  <span {...stylex.props(styles.callLabel)}>{call.target}</span>
@@ -443,7 +448,7 @@ function CallRow({call}: {call: ChatToolCallItem}) {
443
448
  <div>
444
449
  {row}
445
450
  {isDetailOpen && (
446
- <div id={detailId} {...stylex.props(styles.callDetailContent)}>
451
+ <div {...stylex.props(styles.callDetailContent)}>
447
452
  {call.resultDetail}
448
453
  </div>
449
454
  )}
@@ -492,7 +497,6 @@ export function ChatToolCalls(props: ChatToolCallsProps) {
492
497
 
493
498
  const autoDefault = defaultIsExpanded ?? false;
494
499
  const [internalExpanded, setInternalExpanded] = useState(autoDefault);
495
- const contentId = useId();
496
500
  const isControlled = controlledExpanded !== undefined;
497
501
  const isExpanded = isControlled ? controlledExpanded : internalExpanded;
498
502
 
@@ -544,7 +548,6 @@ export function ChatToolCalls(props: ChatToolCallsProps) {
544
548
  role="button"
545
549
  tabIndex={0}
546
550
  aria-expanded={isExpanded}
547
- aria-controls={contentId}
548
551
  onClick={toggle}
549
552
  onKeyDown={e => {
550
553
  if (e.key === 'Enter' || e.key === ' ') {
@@ -610,7 +613,6 @@ export function ChatToolCalls(props: ChatToolCallsProps) {
610
613
 
611
614
  {/* Expanded: all calls with full metadata */}
612
615
  <div
613
- id={contentId}
614
616
  {...stylex.props(
615
617
  styles.groupContent,
616
618
  isExpanded && styles.groupContentExpanded,
package/src/Chat/index.ts CHANGED
@@ -21,7 +21,10 @@ export type {ChatSendButtonProps} from './ChatSendButton';
21
21
  export {ChatComposerDrawer} from './ChatComposerDrawer';
22
22
  export type {ChatComposerDrawerProps} from './ChatComposerDrawer';
23
23
 
24
- export {ChatComposerInput, ChatComposerTokenElement} from './ChatComposerInput';
24
+ export {
25
+ ChatComposerInput,
26
+ ChatComposerTokenElement,
27
+ } from './ChatComposerInput';
25
28
  export type {
26
29
  ChatComposerInputProps,
27
30
  ChatComposerInputHandle,
@@ -40,7 +40,10 @@ import {
40
40
  import {mergeProps, groupItems} from '../utils';
41
41
  import type {SearchableItem} from '../Typeahead/types';
42
42
  import {themeProps} from '../utils/themeProps';
43
- import type {ChatComposerTrigger, ChatComposerToken} from './ChatComposerInput';
43
+ import type {
44
+ ChatComposerTrigger,
45
+ ChatComposerToken,
46
+ } from './ChatComposerInput';
44
47
 
45
48
  // =============================================================================
46
49
  // Types
@@ -125,7 +125,7 @@ export const docs = {
125
125
  theming: {
126
126
  targets: [
127
127
  {className: 'astryx-checkbox-input', visualProps: ['size']},
128
- {className: 'astryx-checkbox', visualProps: ['size'], states: ['checked', 'disabled']},
128
+ {className: 'astryx-checkbox'},
129
129
  ],
130
130
  },
131
131
  usage: {
@@ -178,7 +178,7 @@ export const docsZh = {
178
178
  {name: 'isLoading', type: 'boolean', description: '复选框是否处于加载状态。显示旋转器并阻止交互。', default: 'false'},
179
179
  {name: 'isDisabled', type: 'boolean', description: '复选框是否禁用。', default: 'false'},
180
180
  {name: 'htmlName', type: 'string', description: '底层复选框输入的 HTML name 属性,用于表单提交(勾选时提交 "on")。'},
181
- {name: 'disabledMessage', type: 'string', description: 'Explains why the checkbox is disabled. With isDisabled, shows a tooltip on hover/keyboard focus and keeps the checkbox focusable via aria-disabled (toggling stays blocked). Use this instead of wrapping a disabled CheckboxInput in Tooltip: disabled controls swallow the hover events an external Tooltip needs.'},
181
+ {name: 'disabledMessage', type: 'string', description: 'Explains why the checkbox is disabled. With isDisabled, shows a tooltip on hover/keyboard focus and keeps the checkbox focusable via aria-disabled (toggling stays blocked). Use this instead of wrapping a disabled CheckboxInput in Tooltip disabled controls swallow the hover events an external Tooltip needs.'},
182
182
  {name: 'isReadOnly', type: 'boolean', description: '复选框是否为只读。以完整不透明度显示当前状态但阻止交互。与 isDisabled 不同,只读复选框不会变暗。', default: 'false'},
183
183
  {name: 'isOptional', type: 'boolean', description: '字段是否可选。与 isRequired 互斥。', default: 'false'},
184
184
  {name: 'isRequired', type: 'boolean', description: '复选框是否必填。与 isOptional 互斥。', default: 'false'},
@@ -200,7 +200,7 @@ export const docsZh = {
200
200
  'size',
201
201
  ],
202
202
  },
203
- {className: 'astryx-checkbox', visualProps: ['size'], states: ['checked', 'disabled']},
203
+ {className: 'astryx-checkbox'},
204
204
  ],
205
205
  },
206
206
  };
@@ -167,59 +167,6 @@ describe('CheckboxInput', () => {
167
167
  expect(handleChange).not.toHaveBeenCalled();
168
168
  });
169
169
 
170
- it('forwards data-testid to the input', () => {
171
- render(
172
- <CheckboxInput
173
- label="Accept terms"
174
- value={false}
175
- onChange={() => {}}
176
- data-testid="accept-terms-checkbox"
177
- />,
178
- );
179
- expect(screen.getByTestId('accept-terms-checkbox')).toBe(
180
- screen.getByRole('checkbox'),
181
- );
182
- });
183
-
184
- it('forwards arbitrary data-* attributes to the input', () => {
185
- render(
186
- <CheckboxInput
187
- label="Accept terms"
188
- value={false}
189
- onChange={() => {}}
190
- data-tracking-id="checkbox-42"
191
- />,
192
- );
193
- expect(screen.getByRole('checkbox')).toHaveAttribute(
194
- 'data-tracking-id',
195
- 'checkbox-42',
196
- );
197
- });
198
-
199
- it('does not let rest props override checked, disabled, or type', () => {
200
- // Not part of CheckboxInputProps; spread (rather than named attributes)
201
- // to sidestep JSX excess-property checks the same way a real caller's
202
- // spread rest-props object would arrive untyped at runtime.
203
- const foreignAttrs: Record<string, unknown> = {
204
- checked: false,
205
- disabled: false,
206
- type: 'text',
207
- };
208
- render(
209
- <CheckboxInput
210
- {...foreignAttrs}
211
- label="Accept terms"
212
- value={true}
213
- onChange={() => {}}
214
- isDisabled
215
- />,
216
- );
217
- const checkbox = screen.getByRole('checkbox');
218
- expect(checkbox).toBeChecked();
219
- expect(checkbox).toBeDisabled();
220
- expect(checkbox).toHaveAttribute('type', 'checkbox');
221
- });
222
-
223
170
  it('forwards ref correctly', () => {
224
171
  const ref = vi.fn();
225
172
  render(
@@ -449,12 +396,7 @@ describe('CheckboxInput', () => {
449
396
  it('submits under htmlName when checked', () => {
450
397
  const {container} = render(
451
398
  <form>
452
- <CheckboxInput
453
- label="Terms"
454
- htmlName="terms"
455
- value={true}
456
- onChange={() => {}}
457
- />
399
+ <CheckboxInput label="Terms" htmlName="terms" value={true} onChange={() => {}} />
458
400
  </form>,
459
401
  );
460
402
  const data = new FormData(container.querySelector('form')!);
@@ -474,25 +416,16 @@ describe('CheckboxInput', () => {
474
416
  />
475
417
  </form>,
476
418
  );
477
- expect([
478
- ...new FormData(container.querySelector('form')!).keys(),
479
- ]).toEqual([]);
419
+ expect([...new FormData(container.querySelector('form')!).keys()]).toEqual([]);
480
420
  });
481
421
 
482
422
  it('submits nothing when unchecked', () => {
483
423
  const {container} = render(
484
424
  <form>
485
- <CheckboxInput
486
- label="Terms"
487
- htmlName="terms"
488
- value={false}
489
- onChange={() => {}}
490
- />
425
+ <CheckboxInput label="Terms" htmlName="terms" value={false} onChange={() => {}} />
491
426
  </form>,
492
427
  );
493
- expect([
494
- ...new FormData(container.querySelector('form')!).keys(),
495
- ]).toEqual([]);
428
+ expect([...new FormData(container.querySelector('form')!).keys()]).toEqual([]);
496
429
  });
497
430
  });
498
431
  });
@@ -395,7 +395,6 @@ export function CheckboxInput({
395
395
  className,
396
396
  style,
397
397
  ref,
398
- ...rest
399
398
  }: CheckboxInputProps) {
400
399
  const id = useId();
401
400
  const descriptionID = useId();
@@ -485,7 +484,6 @@ export function CheckboxInput({
485
484
  )}>
486
485
  <div {...stylex.props(styles.checkboxWrapper, wrapperSizeStyles[size])}>
487
486
  <input
488
- {...rest}
489
487
  ref={mergeRefs(
490
488
  ref,
491
489
  indeterminateRef,
@@ -135,25 +135,6 @@ describe('CheckboxList', () => {
135
135
  expect(handleChange).toHaveBeenCalledWith(['b']);
136
136
  });
137
137
 
138
- it('fires a consumer onClick on an item in addition to toggling', async () => {
139
- const user = userEvent.setup();
140
- const handleChange = vi.fn();
141
- const handleClick = vi.fn();
142
- render(
143
- <CheckboxList label="Preferences" value={['a']} onChange={handleChange}>
144
- <CheckboxListItem label="Option A" value="a" />
145
- <CheckboxListItem label="Option B" value="b" onClick={handleClick} />
146
- </CheckboxList>,
147
- );
148
-
149
- // Click the interactive row (invisible-button pattern), which is where the
150
- // composed onClick lives — not the inner checkbox.
151
- await user.click(screen.getByRole('button', {name: 'Option B'}));
152
-
153
- expect(handleClick).toHaveBeenCalledTimes(1);
154
- expect(handleChange).toHaveBeenCalledWith(['a', 'b']);
155
- });
156
-
157
138
  it('disables all checkboxes when group isDisabled is true', () => {
158
139
  render(
159
140
  <CheckboxList