@astryxdesign/core 0.1.4-canary.fd7ab46 → 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 (579) 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.js +15 -15
  175. package/dist/MobileNav/MobileNavToggle.js +5 -5
  176. package/dist/MoreMenu/MoreMenu.js +3 -3
  177. package/dist/MultiSelector/MultiSelector.js +56 -56
  178. package/dist/NavIcon/NavIcon.js +3 -3
  179. package/dist/NavMenu/NavHeadingMenu.js +5 -5
  180. package/dist/NavMenu/NavHeadingMenuItem.js +8 -8
  181. package/dist/NumberInput/NumberInput.d.ts.map +1 -1
  182. package/dist/NumberInput/NumberInput.js +32 -48
  183. package/dist/Outline/Outline.js +15 -15
  184. package/dist/OverflowList/OverflowList.js +8 -8
  185. package/dist/Overlay/Overlay.js +3 -3
  186. package/dist/Overlay/OverlayScrim.js +5 -5
  187. package/dist/Overlay/useOverlay.js +3 -3
  188. package/dist/Pagination/Pagination.d.ts +1 -1
  189. package/dist/Pagination/Pagination.d.ts.map +1 -1
  190. package/dist/Pagination/Pagination.js +72 -125
  191. package/dist/Popover/Popover.js +16 -16
  192. package/dist/Popover/usePopover.js +7 -7
  193. package/dist/PowerSearch/PowerSearch.d.ts.map +1 -1
  194. package/dist/PowerSearch/PowerSearch.js +92 -110
  195. package/dist/PowerSearch/PowerSearchEditPopover.js +84 -84
  196. package/dist/PowerSearch/PowerSearchFilterEditor.js +3 -3
  197. package/dist/PowerSearch/PowerSearchToken.js +5 -5
  198. package/dist/PowerSearch/PowerSearchValueEditor.js +54 -54
  199. package/dist/ProgressBar/ProgressBar.d.ts.map +1 -1
  200. package/dist/ProgressBar/ProgressBar.js +18 -25
  201. package/dist/RadioList/RadioList.js +7 -7
  202. package/dist/RadioList/RadioListItem.d.ts +1 -1
  203. package/dist/RadioList/RadioListItem.d.ts.map +1 -1
  204. package/dist/RadioList/RadioListItem.js +21 -24
  205. package/dist/Resizable/ResizeHandle.d.ts.map +1 -1
  206. package/dist/Resizable/ResizeHandle.js +10 -28
  207. package/dist/Section/Section.js +5 -5
  208. package/dist/SegmentedControl/SegmentedControl.d.ts +1 -1
  209. package/dist/SegmentedControl/SegmentedControl.d.ts.map +1 -1
  210. package/dist/SegmentedControl/SegmentedControl.js +10 -32
  211. package/dist/SegmentedControl/SegmentedControlItem.d.ts +1 -1
  212. package/dist/SegmentedControl/SegmentedControlItem.d.ts.map +1 -1
  213. package/dist/SegmentedControl/SegmentedControlItem.js +12 -18
  214. package/dist/SelectableCard/SelectableCard.js +5 -5
  215. package/dist/Selector/Selector.js +46 -46
  216. package/dist/Selector/SelectorOption.js +3 -3
  217. package/dist/SideNav/SideNav.d.ts.map +1 -1
  218. package/dist/SideNav/SideNav.js +34 -38
  219. package/dist/SideNav/SideNavCollapseButton.d.ts +1 -1
  220. package/dist/SideNav/SideNavCollapseButton.d.ts.map +1 -1
  221. package/dist/SideNav/SideNavCollapseButton.js +6 -8
  222. package/dist/SideNav/SideNavHeading.js +87 -87
  223. package/dist/SideNav/SideNavItem.js +42 -42
  224. package/dist/SideNav/SideNavSection.d.ts +1 -1
  225. package/dist/SideNav/SideNavSection.d.ts.map +1 -1
  226. package/dist/SideNav/SideNavSection.js +16 -18
  227. package/dist/Skeleton/Skeleton.js +3 -3
  228. package/dist/Slider/Slider.js +23 -23
  229. package/dist/Spinner/Spinner.js +9 -9
  230. package/dist/StatusDot/StatusDot.js +5 -5
  231. package/dist/Switch/Switch.d.ts +4 -8
  232. package/dist/Switch/Switch.d.ts.map +1 -1
  233. package/dist/Switch/Switch.js +29 -34
  234. package/dist/TabList/Tab.js +18 -18
  235. package/dist/TabList/TabList.js +5 -5
  236. package/dist/TabList/TabMenu.d.ts.map +1 -1
  237. package/dist/TabList/TabMenu.js +30 -57
  238. package/dist/TabList/tab.markers.stylex.d.ts +1 -1
  239. package/dist/Table/BaseTable.d.ts.map +1 -1
  240. package/dist/Table/BaseTable.js +39 -50
  241. package/dist/Table/Table.js +7 -7
  242. package/dist/Table/TableBody.d.ts +1 -1
  243. package/dist/Table/TableBody.d.ts.map +1 -1
  244. package/dist/Table/TableBody.js +5 -9
  245. package/dist/Table/TableCell.js +3 -3
  246. package/dist/Table/TableFooter.d.ts +1 -1
  247. package/dist/Table/TableFooter.d.ts.map +1 -1
  248. package/dist/Table/TableFooter.js +5 -9
  249. package/dist/Table/TableHeader.d.ts +1 -1
  250. package/dist/Table/TableHeader.d.ts.map +1 -1
  251. package/dist/Table/TableHeader.js +5 -9
  252. package/dist/Table/TableHeaderCell.js +3 -3
  253. package/dist/Table/TableRow.js +5 -5
  254. package/dist/Table/plugins/columnResize/useTableColumnResize.d.ts.map +1 -1
  255. package/dist/Table/plugins/columnResize/useTableColumnResize.js +11 -14
  256. package/dist/Table/plugins/filtering/useTableFiltering.js +71 -71
  257. package/dist/Table/plugins/pagination/paginateData.d.ts.map +1 -1
  258. package/dist/Table/plugins/pagination/paginateData.js +1 -5
  259. package/dist/Table/plugins/pagination/useTablePagination.js +7 -7
  260. package/dist/Table/plugins/rowExpansion/useTableRowExpansion.js +22 -22
  261. package/dist/Table/plugins/selection/useTableSelection.js +18 -18
  262. package/dist/Table/plugins/selection/useTableSelectionState.d.ts.map +1 -1
  263. package/dist/Table/plugins/selection/useTableSelectionState.js +1 -11
  264. package/dist/Table/plugins/sortable/useTableSortable.js +17 -17
  265. package/dist/Table/plugins/sortable/useTableSortableState.d.ts.map +1 -1
  266. package/dist/Table/plugins/sortable/useTableSortableState.js +4 -8
  267. package/dist/Table/tableContextMenu.js +9 -9
  268. package/dist/Text/Text.js +10 -10
  269. package/dist/TextArea/TextArea.js +14 -14
  270. package/dist/TextInput/TextInput.js +15 -15
  271. package/dist/Thumbnail/Thumbnail.d.ts +2 -3
  272. package/dist/Thumbnail/Thumbnail.d.ts.map +1 -1
  273. package/dist/Thumbnail/Thumbnail.js +29 -30
  274. package/dist/TimeInput/TimeInput.d.ts.map +1 -1
  275. package/dist/TimeInput/TimeInput.js +21 -26
  276. package/dist/Timestamp/Timestamp.d.ts +1 -1
  277. package/dist/Timestamp/Timestamp.d.ts.map +1 -1
  278. package/dist/Timestamp/Timestamp.js +26 -37
  279. package/dist/Toast/Toast.d.ts.map +1 -1
  280. package/dist/Toast/Toast.js +17 -25
  281. package/dist/Toast/ToastViewport.d.ts.map +1 -1
  282. package/dist/Toast/ToastViewport.js +11 -23
  283. package/dist/Toast/useToast.js +4 -4
  284. package/dist/ToggleButton/ToggleButton.js +12 -12
  285. package/dist/ToggleButton/ToggleButtonGroup.js +5 -5
  286. package/dist/Token/Token.js +21 -21
  287. package/dist/Tokenizer/Tokenizer.d.ts.map +1 -1
  288. package/dist/Tokenizer/Tokenizer.js +34 -36
  289. package/dist/Toolbar/Toolbar.js +18 -18
  290. package/dist/Tooltip/Tooltip.js +11 -11
  291. package/dist/Tooltip/useTooltip.d.ts +1 -5
  292. package/dist/Tooltip/useTooltip.d.ts.map +1 -1
  293. package/dist/Tooltip/useTooltip.js +3 -3
  294. package/dist/TopNav/TopNav.js +32 -32
  295. package/dist/TopNav/TopNavHeading.js +67 -67
  296. package/dist/TopNav/TopNavItem.js +5 -5
  297. package/dist/TopNav/TopNavMegaMenu.js +30 -30
  298. package/dist/TopNav/TopNavMegaMenuFeaturedCard.d.ts +1 -1
  299. package/dist/TopNav/TopNavMegaMenuFeaturedCard.d.ts.map +1 -1
  300. package/dist/TopNav/TopNavMegaMenuFeaturedCard.js +14 -25
  301. package/dist/TopNav/TopNavMegaMenuItem.js +16 -16
  302. package/dist/TopNav/TopNavMenu.js +32 -32
  303. package/dist/TreeList/TreeList.js +8 -8
  304. package/dist/TreeList/TreeListBranches.js +11 -11
  305. package/dist/TreeList/TreeListItem.js +30 -30
  306. package/dist/Typeahead/BaseTypeahead.d.ts.map +1 -1
  307. package/dist/Typeahead/BaseTypeahead.js +20 -23
  308. package/dist/Typeahead/Typeahead.js +12 -12
  309. package/dist/Typeahead/TypeaheadItem.js +10 -10
  310. package/dist/VStack/VStack.js +3 -3
  311. package/dist/astryx.css +0 -7
  312. package/dist/astryx.umd.js +60 -60
  313. package/dist/astryx.umd.js.map +4 -4
  314. package/dist/docs-types.d.ts +2 -8
  315. package/dist/docs-types.d.ts.map +1 -1
  316. package/dist/hooks/focusableSelector.d.ts +1 -1
  317. package/dist/hooks/focusableSelector.d.ts.map +1 -1
  318. package/dist/hooks/focusableSelector.js +1 -1
  319. package/dist/hooks/index.d.ts +0 -2
  320. package/dist/hooks/index.d.ts.map +1 -1
  321. package/dist/hooks/index.js +0 -1
  322. package/dist/hooks/useFocusTrap.d.ts +0 -3
  323. package/dist/hooks/useFocusTrap.d.ts.map +1 -1
  324. package/dist/hooks/useFocusTrap.js +1 -38
  325. package/dist/hooks/useInteractiveRole.d.ts +2 -6
  326. package/dist/hooks/useInteractiveRole.d.ts.map +1 -1
  327. package/dist/hooks/useInteractiveRole.js +2 -6
  328. package/dist/hooks/useKeyboardHint.js +9 -9
  329. package/dist/hooks/useStreamingText.d.ts +1 -3
  330. package/dist/hooks/useStreamingText.d.ts.map +1 -1
  331. package/dist/hooks/useStreamingText.js +5 -14
  332. package/dist/theme/MediaTheme.js +3 -3
  333. package/dist/theme/Theme.js +7 -7
  334. package/dist/theme/defineTheme.d.ts +1 -1
  335. package/dist/theme/defineTheme.d.ts.map +1 -1
  336. package/dist/theme/expandColorScale.d.ts.map +1 -1
  337. package/dist/theme/expandColorScale.js +3 -10
  338. package/dist/theme/hct.d.ts +15 -0
  339. package/dist/theme/hct.d.ts.map +1 -1
  340. package/dist/theme/hct.js +9 -9
  341. package/dist/theme/syntax/SyntaxTheme.js +5 -5
  342. package/dist/theme/tokens.d.ts +2 -10
  343. package/dist/theme/tokens.d.ts.map +1 -1
  344. package/dist/theme/tokens.js +4 -220
  345. package/dist/utils/index.d.ts +0 -3
  346. package/dist/utils/index.d.ts.map +1 -1
  347. package/dist/utils/index.js +1 -3
  348. package/dist/utils/timeParser.d.ts.map +1 -1
  349. package/dist/utils/timeParser.js +5 -8
  350. package/package.json +3 -3
  351. package/src/AlertDialog/AlertDialog.doc.mjs +0 -4
  352. package/src/AlertDialog/AlertDialog.tsx +0 -2
  353. package/src/AppShell/AppShell.tsx +0 -2
  354. package/src/AspectRatio/AspectRatio.doc.mjs +1 -28
  355. package/src/AspectRatio/AspectRatio.test.tsx +1 -142
  356. package/src/AspectRatio/AspectRatio.tsx +10 -70
  357. package/src/AspectRatio/index.ts +1 -5
  358. package/src/Avatar/Avatar.doc.mjs +0 -11
  359. package/src/Avatar/Avatar.test.tsx +1 -32
  360. package/src/Avatar/Avatar.tsx +20 -12
  361. package/src/Banner/Banner.doc.mjs +0 -8
  362. package/src/Banner/Banner.test.tsx +0 -38
  363. package/src/Banner/Banner.tsx +1 -8
  364. package/src/Calendar/Calendar.doc.mjs +1 -1
  365. package/src/Calendar/Calendar.test.tsx +17 -122
  366. package/src/Calendar/Calendar.tsx +5 -26
  367. package/src/Calendar/dayCellUtils.ts +1 -3
  368. package/src/Calendar/styles.ts +2 -12
  369. package/src/Card/Card.tsx +6 -16
  370. package/src/Carousel/Carousel.doc.mjs +12 -12
  371. package/src/Carousel/Carousel.test.tsx +0 -13
  372. package/src/Carousel/Carousel.tsx +2 -4
  373. package/src/Carousel/carousel.markers.stylex.ts +10 -0
  374. package/src/Chat/Chat.doc.mjs +1 -1
  375. package/src/Chat/ChatComposerInput.test.tsx +1 -27
  376. package/src/Chat/ChatComposerInput.tsx +15 -20
  377. package/src/Chat/ChatDictationButton.tsx +4 -4
  378. package/src/Chat/ChatLayoutScrollButton.tsx +1 -3
  379. package/src/Chat/ChatMessageMetadata.tsx +6 -4
  380. package/src/Chat/ChatSystemMessage.test.tsx +11 -26
  381. package/src/Chat/ChatSystemMessage.tsx +7 -7
  382. package/src/Chat/ChatTokenizedText.test.tsx +16 -29
  383. package/src/Chat/ChatTokenizedText.tsx +8 -15
  384. package/src/Chat/ChatToolCalls.test.tsx +0 -55
  385. package/src/Chat/ChatToolCalls.tsx +12 -10
  386. package/src/Chat/index.ts +4 -1
  387. package/src/Chat/useTriggerMenu.tsx +4 -1
  388. package/src/CheckboxInput/CheckboxInput.doc.mjs +3 -3
  389. package/src/CheckboxInput/CheckboxInput.test.tsx +4 -71
  390. package/src/CheckboxInput/CheckboxInput.tsx +0 -2
  391. package/src/CheckboxList/CheckboxList.test.tsx +0 -19
  392. package/src/CheckboxList/CheckboxListItem.tsx +2 -11
  393. package/src/Citation/Citation.doc.mjs +0 -5
  394. package/src/ClickableCard/ClickableCard.tsx +2 -45
  395. package/src/CodeBlock/CodeBlock.doc.mjs +2 -7
  396. package/src/CodeBlock/CodeBlock.test.tsx +3 -122
  397. package/src/CodeBlock/CodeBlock.tsx +4 -62
  398. package/src/Collapsible/Collapsible.doc.mjs +4 -8
  399. package/src/Collapsible/Collapsible.tsx +10 -86
  400. package/src/Collapsible/CollapsibleGroup.doc.mjs +3 -27
  401. package/src/Collapsible/CollapsibleGroup.test.tsx +0 -318
  402. package/src/Collapsible/CollapsibleGroup.tsx +9 -107
  403. package/src/Collapsible/CollapsibleGroupContext.tsx +2 -42
  404. package/src/Collapsible/index.ts +0 -4
  405. package/src/Collapsible/useCollapsible.ts +6 -20
  406. package/src/CommandPalette/CommandPalette.doc.mjs +0 -4
  407. package/src/CommandPalette/CommandPalette.tsx +3 -5
  408. package/src/CommandPalette/CommandPaletteEmpty.doc.mjs +0 -5
  409. package/src/CommandPalette/CommandPaletteGroup.doc.mjs +0 -10
  410. package/src/CommandPalette/CommandPaletteInput.doc.mjs +0 -6
  411. package/src/CommandPalette/CommandPaletteItem.doc.mjs +0 -6
  412. package/src/CommandPalette/CommandPaletteList.doc.mjs +0 -9
  413. package/src/ContextMenu/ContextMenu.doc.mjs +0 -15
  414. package/src/ContextMenu/ContextMenu.test.tsx +0 -87
  415. package/src/ContextMenu/ContextMenu.tsx +28 -87
  416. package/src/ContextMenu/ContextMenuItem.doc.mjs +0 -6
  417. package/src/DateInput/DateInput.test.tsx +20 -11
  418. package/src/DateRangeInput/DateRangeInput.test.tsx +44 -31
  419. package/src/DateTimeInput/DateTimeInput.doc.mjs +2 -3
  420. package/src/DateTimeInput/DateTimeInput.test.tsx +16 -118
  421. package/src/DateTimeInput/DateTimeInput.tsx +2 -8
  422. package/src/DateTimeInput/index.ts +0 -1
  423. package/src/Dialog/Dialog.doc.mjs +0 -4
  424. package/src/Dialog/DialogHeader.doc.mjs +0 -45
  425. package/src/DropdownMenu/DropdownMenu.doc.mjs +1 -1
  426. package/src/DropdownMenu/DropdownMenu.test.tsx +2 -22
  427. package/src/DropdownMenu/DropdownMenuItem.tsx +17 -5
  428. package/src/Field/Field.test.tsx +4 -1
  429. package/src/Field/FieldLabel.test.tsx +2 -2
  430. package/src/FormLayout/__snapshots__/FormLayout.test.tsx.snap +3 -0
  431. package/src/Grid/Grid.test.tsx +18 -43
  432. package/src/Grid/Grid.tsx +9 -26
  433. package/src/HoverCard/HoverCard.doc.mjs +6 -6
  434. package/src/HoverCard/useHoverCard.doc.mjs +5 -5
  435. package/src/HoverCard/useHoverCard.tsx +2 -9
  436. package/src/Icon/Icon.test.tsx +29 -41
  437. package/src/Icon/Icon.tsx +2 -6
  438. package/src/InputGroup/InputGroup.tsx +2 -2
  439. package/src/Item/Item.tsx +1 -1
  440. package/src/Layer/useLayer.doc.mjs +2 -2
  441. package/src/Layer/useLayer.test.tsx +2 -221
  442. package/src/Layer/useLayer.tsx +30 -69
  443. package/src/Layout/LayoutContent.doc.mjs +0 -12
  444. package/src/Layout/LayoutPanel.doc.mjs +0 -40
  445. package/src/Lightbox/Lightbox.doc.mjs +0 -5
  446. package/src/Lightbox/Lightbox.test.tsx +2 -123
  447. package/src/Lightbox/Lightbox.tsx +1 -29
  448. package/src/Markdown/Markdown.tsx +7 -9
  449. package/src/Markdown/parser.perf.test.ts +12 -34
  450. package/src/NavMenu/NavMenu.doc.mjs +0 -15
  451. package/src/NumberInput/NumberInput.test.tsx +3 -48
  452. package/src/NumberInput/NumberInput.tsx +15 -32
  453. package/src/Overlay/Overlay.doc.mjs +0 -6
  454. package/src/Pagination/Pagination.test.tsx +0 -162
  455. package/src/Pagination/Pagination.tsx +26 -80
  456. package/src/Popover/Popover.doc.mjs +6 -6
  457. package/src/Popover/Popover.test.tsx +0 -65
  458. package/src/Popover/usePopover.doc.mjs +1 -1
  459. package/src/PowerSearch/PowerSearch.doc.mjs +2 -2
  460. package/src/PowerSearch/PowerSearch.test.tsx +1 -109
  461. package/src/PowerSearch/PowerSearch.tsx +16 -37
  462. package/src/ProgressBar/ProgressBar.test.tsx +0 -30
  463. package/src/ProgressBar/ProgressBar.tsx +5 -12
  464. package/src/RadioList/RadioList.test.tsx +0 -19
  465. package/src/RadioList/RadioListItem.tsx +4 -9
  466. package/src/Resizable/ResizeHandle.tsx +4 -22
  467. package/src/SegmentedControl/SegmentedControl.doc.mjs +1 -1
  468. package/src/SegmentedControl/SegmentedControl.test.tsx +0 -192
  469. package/src/SegmentedControl/SegmentedControl.tsx +5 -27
  470. package/src/SegmentedControl/SegmentedControlItem.tsx +4 -9
  471. package/src/SelectableCard/SelectableCard.doc.mjs +1 -1
  472. package/src/Selector/Selector.test.tsx +1 -27
  473. package/src/SideNav/SideNav.doc.mjs +1 -7
  474. package/src/SideNav/SideNav.test.tsx +0 -66
  475. package/src/SideNav/SideNav.tsx +2 -6
  476. package/src/SideNav/SideNavCollapseButton.tsx +3 -4
  477. package/src/SideNav/SideNavSection.tsx +4 -6
  478. package/src/Switch/Switch.doc.mjs +7 -7
  479. package/src/Switch/Switch.test.tsx +3 -102
  480. package/src/Switch/Switch.tsx +7 -20
  481. package/src/TabList/TabList.test.tsx +1 -185
  482. package/src/TabList/TabMenu.tsx +9 -45
  483. package/src/Table/BaseTable.tsx +2 -13
  484. package/src/Table/Table.test.tsx +0 -87
  485. package/src/Table/TableBody.tsx +2 -15
  486. package/src/Table/TableFooter.tsx +2 -15
  487. package/src/Table/TableHeader.tsx +2 -15
  488. package/src/Table/plugins/columnResize/useTableColumnResize.test.tsx +0 -13
  489. package/src/Table/plugins/columnResize/useTableColumnResize.tsx +1 -3
  490. package/src/Table/plugins/pagination/paginateData.ts +1 -5
  491. package/src/Table/plugins/pagination/useTablePagination.test.tsx +0 -13
  492. package/src/Table/plugins/selection/useTableSelectionState.test.tsx +0 -23
  493. package/src/Table/plugins/selection/useTableSelectionState.tsx +6 -11
  494. package/src/Table/plugins/sortable/useTableSortableState.test.tsx +1 -35
  495. package/src/Table/plugins/sortable/useTableSortableState.tsx +4 -8
  496. package/src/TextArea/TextArea.test.tsx +3 -3
  497. package/src/TextInput/TextInput.test.tsx +3 -3
  498. package/src/Thumbnail/Thumbnail.test.tsx +2 -36
  499. package/src/Thumbnail/Thumbnail.tsx +2 -4
  500. package/src/TimeInput/TimeInput.test.tsx +0 -37
  501. package/src/TimeInput/TimeInput.tsx +1 -11
  502. package/src/Timestamp/Timestamp.doc.mjs +1 -1
  503. package/src/Timestamp/Timestamp.test.tsx +0 -52
  504. package/src/Timestamp/Timestamp.tsx +16 -30
  505. package/src/Toast/Toast.tsx +3 -11
  506. package/src/Toast/ToastViewport.test.tsx +0 -64
  507. package/src/Toast/ToastViewport.tsx +0 -12
  508. package/src/ToggleButton/ToggleButton.doc.mjs +0 -1
  509. package/src/Tokenizer/Tokenizer.doc.mjs +2 -2
  510. package/src/Tokenizer/Tokenizer.test.tsx +0 -54
  511. package/src/Tokenizer/Tokenizer.tsx +4 -5
  512. package/src/Tooltip/Tooltip.doc.mjs +6 -6
  513. package/src/Tooltip/useTooltip.doc.mjs +5 -5
  514. package/src/Tooltip/useTooltip.tsx +2 -12
  515. package/src/TopNav/TopNav.doc.mjs +1 -1
  516. package/src/TopNav/TopNav.test.tsx +7 -23
  517. package/src/TopNav/TopNavMegaMenuFeaturedCard.tsx +2 -9
  518. package/src/TreeList/TreeList.doc.mjs +2 -2
  519. package/src/Typeahead/BaseTypeahead.doc.mjs +0 -19
  520. package/src/Typeahead/BaseTypeahead.tsx +2 -5
  521. package/src/Typeahead/Typeahead.doc.mjs +1 -1
  522. package/src/Typeahead/Typeahead.test.tsx +1 -45
  523. package/src/docs-types.ts +1 -9
  524. package/src/hooks/focusableSelector.ts +1 -1
  525. package/src/hooks/index.ts +0 -3
  526. package/src/hooks/useFocusTrap.doc.mjs +2 -4
  527. package/src/hooks/useFocusTrap.test.tsx +1 -149
  528. package/src/hooks/useFocusTrap.ts +1 -50
  529. package/src/hooks/useInteractiveRole.ts +4 -12
  530. package/src/hooks/useStreamingText.test.ts +19 -54
  531. package/src/hooks/useStreamingText.ts +5 -16
  532. package/src/hooks/useTreeFocus.test.tsx +3 -1
  533. package/src/reset.css +0 -29
  534. package/src/theme/SyntaxTheme.doc.mjs +4 -4
  535. package/src/theme/defineTheme.ts +13 -4
  536. package/src/theme/derivedVarRegistry.test.ts +2 -2
  537. package/src/theme/expandColorScale.test.ts +0 -29
  538. package/src/theme/expandColorScale.ts +6 -11
  539. package/src/theme/hct.ts +17 -9
  540. package/src/theme/tokens.test.ts +9 -182
  541. package/src/theme/tokens.ts +4 -239
  542. package/src/theme/useTheme.test.tsx +0 -20
  543. package/src/utils/index.ts +0 -4
  544. package/src/utils/sharedResizeObserver.test.ts +2 -2
  545. package/src/utils/timeParser.test.ts +0 -13
  546. package/src/utils/timeParser.ts +5 -8
  547. package/dist/hooks/useHotkeys.d.ts +0 -51
  548. package/dist/hooks/useHotkeys.d.ts.map +0 -1
  549. package/dist/hooks/useHotkeys.js +0 -160
  550. package/dist/utils/color.d.ts +0 -42
  551. package/dist/utils/color.d.ts.map +0 -1
  552. package/dist/utils/color.js +0 -150
  553. package/dist/utils/composeEventHandlers.d.ts +0 -30
  554. package/dist/utils/composeEventHandlers.d.ts.map +0 -1
  555. package/dist/utils/composeEventHandlers.js +0 -40
  556. package/src/Chat/ChatDictationButton.test.tsx +0 -43
  557. package/src/Chat/ChatLayoutScrollButton.test.tsx +0 -33
  558. package/src/Chat/ChatMessageMetadata.test.tsx +0 -32
  559. package/src/Collapsible/Collapsible.test.tsx +0 -405
  560. package/src/FieldStatus/FieldStatus.test.tsx +0 -282
  561. package/src/InteractiveRoleContext/InteractiveRoleContext.test.tsx +0 -185
  562. package/src/Layout/Layout.test.tsx +0 -285
  563. package/src/Layout/LayoutSlots.test.tsx +0 -364
  564. package/src/Outline/parseOutlineFromMarkdown.test.ts +0 -80
  565. package/src/OverflowList/OverflowList.test.tsx +0 -416
  566. package/src/Overlay/Overlay.test.tsx +0 -356
  567. package/src/Resizable/ResizeHandle.test.tsx +0 -218
  568. package/src/SizeContext/SizeContext.test.tsx +0 -226
  569. package/src/__tests__/TestIcon.tsx +0 -26
  570. package/src/__tests__/fastRoleQueries.ts +0 -66
  571. package/src/docPropReferences.test.ts +0 -178
  572. package/src/hooks/useHotkeys.doc.mjs +0 -52
  573. package/src/hooks/useHotkeys.test.ts +0 -245
  574. package/src/hooks/useHotkeys.ts +0 -203
  575. package/src/utils/color.test.ts +0 -133
  576. package/src/utils/color.ts +0 -148
  577. package/src/utils/composeEventHandlers.test.ts +0 -71
  578. package/src/utils/composeEventHandlers.ts +0 -44
  579. package/src/utils/mergeProps.test.ts +0 -166
@@ -3,21 +3,15 @@
3
3
  /**
4
4
  * @file CodeBlock.test.tsx
5
5
  * @input Uses vitest, @testing-library/react, CodeBlock component
6
- * @output Unit tests for CodeBlock (copy button, collapse, scroll region a11y, syntaxTheme)
6
+ * @output Unit tests for CodeBlock (copy button, collapse, scroll region a11y)
7
7
  * @position Testing; validates CodeBlock implementation
8
8
  *
9
9
  * SYNC: When CodeBlock.tsx changes, update tests to match new behavior
10
10
  */
11
11
 
12
- import {describe, it, expect, vi, beforeEach, afterEach} from 'vitest';
13
- import {act, render, screen, fireEvent, waitFor} from '@testing-library/react';
12
+ import {describe, it, expect, vi, beforeEach} from 'vitest';
13
+ import {render, screen, fireEvent} from '@testing-library/react';
14
14
  import {CodeBlock} from './CodeBlock';
15
- import {__resetLiveRegionsForTest} from '../hooks/useAnnounce';
16
- import {dracula} from '../theme/syntax';
17
-
18
- function politeRegion(): HTMLElement | null {
19
- return document.querySelector('[data-astryx-live-region="polite"]');
20
- }
21
15
 
22
16
  // A code sample long enough to exceed the default collapsible threshold (10).
23
17
  const LONG_CODE = Array.from(
@@ -33,10 +27,6 @@ describe('CodeBlock', () => {
33
27
  });
34
28
  });
35
29
 
36
- afterEach(() => {
37
- __resetLiveRegionsForTest();
38
- });
39
-
40
30
  it('renders the code', () => {
41
31
  render(<CodeBlock code="const x = 1;" language="javascript" />);
42
32
  expect(screen.getByText(/const/)).toBeInTheDocument();
@@ -63,50 +53,6 @@ describe('CodeBlock', () => {
63
53
  expect(navigator.clipboard.writeText).toHaveBeenCalledWith('const x = 1;');
64
54
  });
65
55
 
66
- it('announces "Copied" to a polite live region after copying', async () => {
67
- render(<CodeBlock code="const x = 1;" language="javascript" />);
68
- const copyButton = screen.getByRole('button', {name: 'Copy code'});
69
- fireEvent.click(copyButton);
70
- await waitFor(() => {
71
- expect(politeRegion()).toHaveTextContent('Copied');
72
- });
73
- });
74
-
75
- it('keeps the copied indicator a full 2s after a rapid re-copy', async () => {
76
- vi.useFakeTimers();
77
- try {
78
- render(<CodeBlock code="const x = 1;" language="javascript" />);
79
- fireEvent.click(screen.getByRole('button', {name: 'Copy code'}));
80
- // Flush the async clipboard write.
81
- await act(async () => {});
82
- expect(screen.getByRole('button', {name: 'Copied'})).toBeInTheDocument();
83
-
84
- // 1.5s later the user copies again.
85
- act(() => {
86
- vi.advanceTimersByTime(1500);
87
- });
88
- fireEvent.click(screen.getByRole('button', {name: 'Copied'}));
89
- await act(async () => {});
90
-
91
- // 600ms after the second copy (2.1s after the first): the first
92
- // click's timer must not have reverted the indicator early.
93
- act(() => {
94
- vi.advanceTimersByTime(600);
95
- });
96
- expect(screen.getByRole('button', {name: 'Copied'})).toBeInTheDocument();
97
-
98
- // It resets 2s after the most recent copy.
99
- act(() => {
100
- vi.advanceTimersByTime(1400);
101
- });
102
- expect(
103
- screen.getByRole('button', {name: 'Copy code'}),
104
- ).toBeInTheDocument();
105
- } finally {
106
- vi.useRealTimers();
107
- }
108
- });
109
-
110
56
  it('does NOT collapse the block when the copy button is clicked', () => {
111
57
  render(
112
58
  <CodeBlock
@@ -166,69 +112,4 @@ describe('CodeBlock', () => {
166
112
  fireEvent.click(header);
167
113
  expect(header).toHaveAttribute('aria-expanded', 'false');
168
114
  });
169
-
170
- it('links the collapsible header to its code region via aria-controls', () => {
171
- render(
172
- <CodeBlock
173
- code={LONG_CODE}
174
- language="javascript"
175
- title="example"
176
- isCollapsible
177
- />,
178
- );
179
- const header = screen
180
- .getAllByRole('button')
181
- .find(el => el.hasAttribute('aria-expanded'))!;
182
- const controlsId = header.getAttribute('aria-controls');
183
- // aria-controls must be present and point at the real code region.
184
- expect(controlsId).toBeTruthy();
185
- const region = document.getElementById(controlsId as string);
186
- expect(region).not.toBeNull();
187
- // The region contains the scrollable code body (role="group").
188
- expect(region).toContainElement(screen.getByRole('group'));
189
- });
190
-
191
- it('keeps aria-controls resolvable when collapsed (region stays mounted)', () => {
192
- render(
193
- <CodeBlock
194
- code={LONG_CODE}
195
- language="javascript"
196
- title="example"
197
- isCollapsible
198
- />,
199
- );
200
- const header = screen
201
- .getAllByRole('button')
202
- .find(el => el.hasAttribute('aria-expanded'))!;
203
- fireEvent.click(header);
204
- expect(header).toHaveAttribute('aria-expanded', 'false');
205
- // The code region uses a CSS grid animation to collapse, so it stays in
206
- // the DOM — aria-controls stays a valid, resolvable reference (unlike a
207
- // conditionally-mounted region, which would need a conditional attribute).
208
- const controlsId = header.getAttribute('aria-controls');
209
- expect(controlsId).toBeTruthy();
210
- expect(document.getElementById(controlsId as string)).not.toBeNull();
211
- });
212
-
213
- it('applies a per-instance syntax theme via the syntaxTheme prop', () => {
214
- const {container} = render(
215
- <CodeBlock
216
- code="const x = 1;"
217
- language="javascript"
218
- syntaxTheme={dracula}
219
- />,
220
- );
221
- const wrapper = container.querySelector('[data-astryx-syntax-theme]');
222
- expect(wrapper).not.toBeNull();
223
- expect(wrapper).toHaveAttribute('data-astryx-syntax-theme', 'dracula');
224
- expect(wrapper!.querySelector('pre')).not.toBeNull();
225
- });
226
-
227
- it('renders no syntax theme wrapper when syntaxTheme is not set', () => {
228
- const {container} = render(
229
- <CodeBlock code="const x = 1;" language="javascript" />,
230
- );
231
- expect(container.querySelector('[data-astryx-syntax-theme]')).toBeNull();
232
- expect(container.firstElementChild?.tagName).toBe('PRE');
233
- });
234
115
  });
@@ -3,7 +3,7 @@
3
3
  'use client';
4
4
  /**
5
5
  * @file CodeBlock.tsx
6
- * @input Uses React, StyleX, theme tokens, CSS Custom Highlight API, SyntaxTheme provider
6
+ * @input Uses React, StyleX, theme tokens, CSS Custom Highlight API
7
7
  * @output Exports CodeBlock component and CodeBlockProps
8
8
  * @position Core implementation; read-only syntax-highlighted code display
9
9
  */
@@ -11,7 +11,6 @@
11
11
  import {
12
12
  useInsertionEffect,
13
13
  useEffect,
14
- useId,
15
14
  useRef,
16
15
  useState,
17
16
  useCallback,
@@ -33,7 +32,6 @@ import {
33
32
  easeVars,
34
33
  } from '../theme/tokens.stylex';
35
34
  import {mergeProps} from '../utils';
36
- import {useAnnounce} from '../hooks/useAnnounce';
37
35
  import {Icon} from '../Icon';
38
36
  import {
39
37
  tokenize,
@@ -45,7 +43,6 @@ import type {SyntaxToken, TokenLine} from './tokenizer';
45
43
  import {ensureHighlightStyles} from './highlightStyles';
46
44
  import {applyHighlightRangesChunked} from './highlightRanges';
47
45
  import {themeProps} from '../utils/themeProps';
48
- import {SyntaxTheme, type SyntaxThemeDefinition} from '../theme/syntax';
49
46
 
50
47
  // ---------------------------------------------------------------------------
51
48
  // Styles
@@ -176,17 +173,6 @@ const styles = stylex.create({
176
173
  headerCollapsible: {
177
174
  cursor: 'pointer',
178
175
  userSelect: 'none',
179
- // Restore a keyboard-only focus ring with the standard token/offset so this
180
- // disclosure control matches the rest of the system (Collapsible, TabMenu);
181
- // otherwise it falls back to the inconsistent UA default outline.
182
- outline: {
183
- default: null,
184
- ':focus-visible': `2px solid ${colorVars['--color-accent']}`,
185
- },
186
- outlineOffset: {
187
- default: '0',
188
- ':focus-visible': '2px',
189
- },
190
176
  },
191
177
  gutter: {
192
178
  flexShrink: 0,
@@ -396,14 +382,6 @@ export interface CodeBlockProps extends BaseProps<HTMLPreElement> {
396
382
  language: string,
397
383
  ) => {type: string; start: number; end: number}[];
398
384
  highlightMode?: 'auto' | 'ranges' | 'spans';
399
- /**
400
- * Per-instance syntax theme override. Shorthand for wrapping this block in
401
- * `<SyntaxTheme theme={...}>` — accepts a preset from
402
- * `@astryxdesign/core/theme/syntax` or a theme created with
403
- * `defineSyntaxTheme()`. Without it, the block uses the theme-level syntax
404
- * colors from the nearest SyntaxTheme ancestor or `defineTheme({ syntax })`.
405
- */
406
- syntaxTheme?: SyntaxThemeDefinition;
407
385
  }
408
386
 
409
387
  // ---------------------------------------------------------------------------
@@ -655,7 +633,6 @@ export function CodeBlock({
655
633
  container = 'card',
656
634
  tokenizer: customTokenizer,
657
635
  highlightMode = 'auto',
658
- syntaxTheme,
659
636
  xstyle,
660
637
  className,
661
638
  style,
@@ -663,17 +640,6 @@ export function CodeBlock({
663
640
  ...props
664
641
  }: CodeBlockProps) {
665
642
  const [copied, setCopied] = useState(false);
666
- const copyResetTimerRef = useRef<ReturnType<typeof setTimeout> | null>(null);
667
- const announce = useAnnounce();
668
-
669
- // Clear a pending "copied" reset when the block unmounts.
670
- useEffect(() => {
671
- return () => {
672
- if (copyResetTimerRef.current != null) {
673
- clearTimeout(copyResetTimerRef.current);
674
- }
675
- };
676
- }, []);
677
643
 
678
644
  const useSpans =
679
645
  highlightMode === 'spans' ||
@@ -699,23 +665,12 @@ export function CodeBlock({
699
665
  try {
700
666
  await navigator.clipboard.writeText(code);
701
667
  setCopied(true);
702
- // Swapping the button's aria-label alone isn't reliably announced by
703
- // screen readers, so confirm the copy via a polite live region.
704
- announce('Copied');
705
668
  onCopy?.();
706
- // Restart the reset timer on every copy — otherwise a rapid re-copy
707
- // is reverted early by the previous click's timer.
708
- if (copyResetTimerRef.current != null) {
709
- clearTimeout(copyResetTimerRef.current);
710
- }
711
- copyResetTimerRef.current = setTimeout(() => {
712
- copyResetTimerRef.current = null;
713
- setCopied(false);
714
- }, 2000);
669
+ setTimeout(() => setCopied(false), 2000);
715
670
  } catch {
716
671
  // Clipboard failures leave the copied state unchanged.
717
672
  }
718
- }, [code, onCopy, announce]);
673
+ }, [code, onCopy]);
719
674
 
720
675
  const sizeStyle = size === 'sm' ? styles.sizeSm : styles.sizeMd;
721
676
  const gutterSizeStyle = size === 'sm' ? styles.gutterSm : styles.gutterMd;
@@ -725,11 +680,6 @@ export function CodeBlock({
725
680
 
726
681
  const canCollapse = isCollapsible && lines.length >= collapsibleThreshold;
727
682
  const [isCollapsed, setIsCollapsed] = useState(false);
728
- // Links the collapsible header to the code region it shows/hides so assistive
729
- // tech can move from the button to its controlled content (disclosure
730
- // pattern). The region stays mounted when collapsed (CSS grid animation), so
731
- // this is always a resolvable reference — aria-controls can be unconditional.
732
- const regionId = useId();
733
683
 
734
684
  const scrollContainerRef = useRef<HTMLDivElement>(null);
735
685
  const scrollStyle: CSSProperties | undefined = maxHeight
@@ -767,7 +717,6 @@ export function CodeBlock({
767
717
  role={canCollapse ? 'button' : undefined}
768
718
  tabIndex={canCollapse ? 0 : undefined}
769
719
  aria-expanded={canCollapse ? !isCollapsed : undefined}
770
- aria-controls={canCollapse ? regionId : undefined}
771
720
  onClick={canCollapse ? () => setIsCollapsed(prev => !prev) : undefined}
772
721
  onKeyDown={
773
722
  canCollapse
@@ -853,7 +802,7 @@ export function CodeBlock({
853
802
  </div>
854
803
  );
855
804
 
856
- const block = (
805
+ return (
857
806
  <pre
858
807
  ref={ref}
859
808
  {...mergeProps(
@@ -871,7 +820,6 @@ export function CodeBlock({
871
820
  {headerEl}
872
821
  {canCollapse ? (
873
822
  <div
874
- id={regionId}
875
823
  {...stylex.props(
876
824
  styles.collapseGrid,
877
825
  isCollapsed && styles.collapseGridCollapsed,
@@ -884,12 +832,6 @@ export function CodeBlock({
884
832
  {!showHeader && copyButtonEl}
885
833
  </pre>
886
834
  );
887
-
888
- return syntaxTheme ? (
889
- <SyntaxTheme theme={syntaxTheme}>{block}</SyntaxTheme>
890
- ) : (
891
- block
892
- );
893
835
  }
894
836
 
895
837
  CodeBlock.displayName = 'CodeBlock';
@@ -16,8 +16,7 @@ export const docs = {
16
16
  },
17
17
  theming: {
18
18
  targets: [
19
- {className: 'astryx-collapsible', visualProps: ['dividers', 'density']},
20
- {className: 'astryx-collapsible-group', visualProps: ['dividers', 'density']},
19
+ {className: 'astryx-collapsible'},
21
20
  ],
22
21
  },
23
22
  description: 'A primitive that makes any content collapsible: a trigger button toggles visibility of the content area, managing its own state or deferring to a parent CollapsibleGroup.',
@@ -70,8 +69,7 @@ export const docs = {
70
69
  usage: {
71
70
  description: 'Collapsible hides and reveals content behind a trigger button. Use it in settings panels, FAQ pages, or detail views to keep the page scannable while letting users drill into sections they care about. Wrap multiple collapsibles in CollapsibleGroup for accordion behavior. For custom collapsible components, use the `useCollapsible` hook directly (`astryx hook useCollapsible`).',
72
71
  bestPractices: [
73
- { guidance: true, description: 'Use dividers="between" on CollapsibleGroup for FAQ-style lists: built-in row hairlines with themed border tokens, no hand-rolled borders.' },
74
- { guidance: true, description: 'Wrap each Collapsible in an Card for visual separation in accordion layouts, or use CollapsibleGroup dividers for flat lists; don\'t combine both.' },
72
+ { guidance: true, description: 'Wrap each Collapsible in an Card for visual separation in accordion layouts.' },
75
73
  { guidance: true, description: 'Use CollapsibleGroup with type="single" for settings or FAQ pages where only one section should be open at a time.' },
76
74
  { guidance: true, description: 'Use type="multiple" when users need to compare content across sections, like feature lists or pricing tiers.' },
77
75
  { guidance: true, description: 'Start sections open (defaultIsOpen) when the content is likely needed on first view; don\'t make users click to see essential info.' },
@@ -92,8 +90,7 @@ export const docsZh = {
92
90
  usage: {
93
91
  description: 'Collapsible hides and reveals content behind a trigger button. Use it in settings panels, FAQ pages, or detail views to keep the page scannable while letting users drill into sections they care about. Wrap multiple collapsibles in CollapsibleGroup for accordion behavior.',
94
92
  bestPractices: [
95
- { guidance: true, description: 'Use dividers="between" on CollapsibleGroup for FAQ-style lists: built-in row hairlines with themed border tokens, no hand-rolled borders.' },
96
- { guidance: true, description: 'Wrap each Collapsible in an Card for visual separation in accordion layouts, or use CollapsibleGroup dividers for flat lists; don\'t combine both.' },
93
+ { guidance: true, description: 'Wrap each Collapsible in an Card for visual separation in accordion layouts.' },
97
94
  { guidance: true, description: 'Use CollapsibleGroup with type="single" for settings or FAQ pages where only one section should be open at a time.' },
98
95
  { guidance: true, description: 'Use type="multiple" when users need to compare content across sections, like feature lists or pricing tiers.' },
99
96
  { guidance: true, description: 'Start sections open (defaultIsOpen) when the content is likely needed on first view; don\'t make users click to see essential info.' },
@@ -110,8 +107,7 @@ export const docsDense = {
110
107
  usage: {
111
108
  description: 'Collapsible hides and reveals content behind a trigger button. Use in settings, FAQs, or detail views. Wrap in CollapsibleGroup for accordion behavior.',
112
109
  bestPractices: [
113
- { guidance: true, description: 'Use dividers="between" on CollapsibleGroup for FAQ-style lists: built-in row hairlines, no hand-rolled borders.' },
114
- { guidance: true, description: 'Wrap each Collapsible in an Card for visual separation, or use CollapsibleGroup dividers for flat lists; not both.' },
110
+ { guidance: true, description: 'Wrap each Collapsible in an Card for visual separation in accordion layouts.' },
115
111
  { guidance: true, description: 'Use CollapsibleGroup with type="single" for settings or FAQ pages where only one section should be open at a time.' },
116
112
  { guidance: true, description: 'Use type="multiple" when users need to compare across sections.' },
117
113
  { guidance: true, description: 'Start sections open (defaultIsOpen) when content is needed on first view.' },
@@ -4,21 +4,15 @@
4
4
 
5
5
  /**
6
6
  * @file Collapsible.tsx
7
- * @input Uses React, StyleX, useCollapsible hook, CollapsibleGroupPresentationContext, getIcon, theme tokens
7
+ * @input Uses React, StyleX, useCollapsible hook, getIcon, theme tokens
8
8
  * @output Exports Collapsible component and CollapsibleProps
9
9
  * @position Collapsible content primitive — trigger toggles visibility of children
10
10
  *
11
11
  * Collapsible is a standalone primitive that makes any content collapsible.
12
12
  * It renders a trigger area (always visible) and a content area that toggles.
13
- * Handles state management, accessibility (aria-expanded + aria-controls linking
14
- * the trigger to its content region), and chevron indicator.
13
+ * Handles state management, accessibility (aria-expanded), and chevron indicator.
15
14
  *
16
15
  * Works standalone or coordinated by CollapsibleGroup via the `value` prop.
17
- * When the surrounding CollapsibleGroup enables `dividers`, each Collapsible
18
- * draws its own row chrome (borderBlockStart suppressed on :first-child, plus
19
- * density padding) from CollapsibleGroupPresentationContext — StyleX has no
20
- * child selectors, so the group cannot draw it from outside. The presentation
21
- * context is reset around children so nested collapsibles stay chrome-free.
22
16
  *
23
17
  * SYNC: When modified, update these files to stay in sync:
24
18
  * - /packages/core/src/Collapsible/index.ts (exports)
@@ -27,10 +21,9 @@
27
21
  * - /packages/cli/templates/blocks/components/Collapsible/ (showcase blocks)
28
22
  */
29
23
 
30
- import {use, useId, type ReactNode} from 'react';
24
+ import type {ReactNode} from 'react';
31
25
  import * as stylex from '@stylexjs/stylex';
32
26
  import {
33
- borderVars,
34
27
  colorVars,
35
28
  typographyVars,
36
29
  fontWeightVars,
@@ -40,7 +33,6 @@ import {
40
33
  easeVars,
41
34
  } from '../theme/tokens.stylex';
42
35
  import {useCollapsible} from './useCollapsible';
43
- import {CollapsibleGroupPresentationContext} from './CollapsibleGroupContext';
44
36
  import {getIcon} from '../Icon/globalIconRegistry';
45
37
  import {mergeProps} from '../utils';
46
38
  import type {BaseProps} from '../BaseProps';
@@ -65,16 +57,6 @@ const styles = stylex.create({
65
57
  color: colorVars['--color-text-primary'],
66
58
  textAlign: 'start',
67
59
  paddingBlock: 0,
68
- // `all: unset` above wipes the UA focus outline; restore a keyboard-only
69
- // focus ring using the standard token/offset (WCAG 2.4.7).
70
- outline: {
71
- default: null,
72
- ':focus-visible': `2px solid ${colorVars['--color-accent']}`,
73
- },
74
- outlineOffset: {
75
- default: '0',
76
- ':focus-visible': '2px',
77
- },
78
60
  },
79
61
  // Capsize: trim leading from text triggers
80
62
  triggerLabel: {
@@ -105,42 +87,8 @@ const styles = stylex.create({
105
87
  content: {
106
88
  paddingBlockStart: spacingVars['--spacing-1'],
107
89
  },
108
- // Group divider chrome — a hairline above every item except the first.
109
- // The group's wrapper (or 'all' mode) owns the outer edges.
110
- divided: {
111
- borderBlockStartWidth: {
112
- default: borderVars['--border-width'],
113
- ':first-child': '0',
114
- },
115
- borderBlockStartStyle: 'solid',
116
- borderBlockStartColor: colorVars['--color-border'],
117
- },
118
- });
119
-
120
- // Density padding for divided/padded accordion rows. paddingBlock mapping
121
- // follows Table's density scale (spacing-1/2/3); content only pads its end
122
- // so text doesn't sit on the divider below (block-start stays spacing-1).
123
- const densityStyles = stylex.create({
124
- triggerCompact: {paddingBlock: spacingVars['--spacing-1']},
125
- triggerBalanced: {paddingBlock: spacingVars['--spacing-2']},
126
- triggerSpacious: {paddingBlock: spacingVars['--spacing-3']},
127
- contentCompact: {paddingBlockEnd: spacingVars['--spacing-1']},
128
- contentBalanced: {paddingBlockEnd: spacingVars['--spacing-2']},
129
- contentSpacious: {paddingBlockEnd: spacingVars['--spacing-3']},
130
90
  });
131
91
 
132
- const triggerDensity = {
133
- compact: densityStyles.triggerCompact,
134
- balanced: densityStyles.triggerBalanced,
135
- spacious: densityStyles.triggerSpacious,
136
- } as const;
137
-
138
- const contentDensity = {
139
- compact: densityStyles.contentCompact,
140
- balanced: densityStyles.contentBalanced,
141
- spacious: densityStyles.contentSpacious,
142
- } as const;
143
-
144
92
  export interface CollapsibleProps extends BaseProps {
145
93
  /** Ref forwarded to the root element */
146
94
  ref?: React.Ref<HTMLDivElement>;
@@ -244,25 +192,14 @@ export function Collapsible({
244
192
  value,
245
193
  });
246
194
 
247
- const presentation = use(CollapsibleGroupPresentationContext);
248
- const isDivided = presentation != null && presentation.dividers !== 'none';
249
- const density = presentation?.density ?? null;
250
-
251
195
  const chevronIcon = getIcon('chevronDown');
252
196
 
253
- // Links the trigger to the region it shows/hides so assistive tech can move
254
- // from the button to its controlled content (disclosure pattern).
255
- const contentId = useId();
256
-
257
197
  return (
258
198
  <div
259
199
  ref={ref}
260
200
  {...mergeProps(
261
- themeProps('collapsible', {
262
- dividers: isDivided ? presentation.dividers : undefined,
263
- density: density ?? undefined,
264
- }),
265
- stylex.props(styles.root, isDivided && styles.divided, xstyle),
201
+ themeProps('collapsible'),
202
+ stylex.props(styles.root, xstyle),
266
203
  className,
267
204
  style,
268
205
  )}
@@ -271,11 +208,7 @@ export function Collapsible({
271
208
  type="button"
272
209
  onClick={toggle}
273
210
  aria-expanded={isOpen}
274
- aria-controls={contentId}
275
- {...stylex.props(
276
- styles.trigger,
277
- density != null && triggerDensity[density],
278
- )}>
211
+ {...stylex.props(styles.trigger)}>
279
212
  <span {...stylex.props(styles.triggerLabel)}>{trigger}</span>
280
213
  <span
281
214
  {...stylex.props(
@@ -286,19 +219,10 @@ export function Collapsible({
286
219
  </span>
287
220
  </button>
288
221
  <div
289
- id={contentId}
290
- {...stylex.props(
291
- styles.content,
292
- density != null && contentDensity[density],
293
- !isOpen && styles.contentHidden,
294
- )}>
295
- {presentation != null ? (
296
- <CollapsibleGroupPresentationContext value={null}>
297
- {children}
298
- </CollapsibleGroupPresentationContext>
299
- ) : (
300
- children
301
- )}
222
+ {...(isOpen
223
+ ? stylex.props(styles.content)
224
+ : stylex.props(styles.content, styles.contentHidden))}>
225
+ {children}
302
226
  </div>
303
227
  </div>
304
228
  );
@@ -7,7 +7,7 @@ export const docs = {
7
7
  subComponentOf: 'Collapsible',
8
8
  displayName: 'Collapsible Group',
9
9
  isHiddenFromOverview: true,
10
- description: 'Coordinates multiple Collapsible instances so only one (single mode) or any number (multiple mode) can be open at a time. Renders no wrapper DOM element unless dividers are enabled.',
10
+ description: 'Coordinates multiple Collapsible instances so only one (single mode) or any number (multiple mode) can be open at a time. Renders no wrapper DOM element.',
11
11
  props: [
12
12
  {
13
13
  name: 'type',
@@ -30,17 +30,6 @@ export const docs = {
30
30
  type: '(value: string | string[]) => void',
31
31
  description: 'Callback invoked when the set of open items changes.',
32
32
  },
33
- {
34
- name: 'dividers',
35
- type: "'between' | 'all' | 'none'",
36
- description: "Divider style rendered around the group's items. 'between' draws hairlines between adjacent items; 'all' adds the group's top and bottom edges. When enabled, the group renders a wrapper div and items default to 'balanced' density. Pair with bare Collapsible children; Card-wrapped items provide their own separation.",
37
- default: "'none'",
38
- },
39
- {
40
- name: 'density',
41
- type: "'compact' | 'balanced' | 'spacious'",
42
- description: "Row density controlling trigger and content block padding on the group's items. Defaults to 'balanced' when dividers are shown; otherwise items keep their default unpadded look.",
43
- },
44
33
  {
45
34
  name: 'children',
46
35
  type: 'ReactNode',
@@ -63,7 +52,7 @@ export const docsZh = {
63
52
  name: 'CollapsibleGroup',
64
53
  isHiddenFromOverview: true,
65
54
  displayName: 'Collapsible Group',
66
- description: '协调多个 Collapsible 实例,使同一时间只有一个(single 模式)或任意数量(multiple 模式)可以展开。除非启用 dividers,否则不渲染包裹 DOM 元素。',
55
+ description: '协调多个 Collapsible 实例,使同一时间只有一个(single 模式)或任意数量(multiple 模式)可以展开。不渲染包裹 DOM 元素。',
67
56
  props: [
68
57
  {
69
58
  name: 'type',
@@ -86,17 +75,6 @@ export const docsZh = {
86
75
  type: '(value: string | string[]) => void',
87
76
  description: '展开项目集合变更时调用的回调。',
88
77
  },
89
- {
90
- name: 'dividers',
91
- type: "'between' | 'all' | 'none'",
92
- description: "渲染在组项目周围的分隔线样式。'between' 仅在相邻项目之间绘制细线;'all' 额外绘制组的顶部和底部边缘。启用后组会渲染一个包裹 div,且项目默认使用 'balanced' 密度。适合搭配裸 Collapsible 子项使用;用 Card 包裹的项目自带视觉分隔。",
93
- default: "'none'",
94
- },
95
- {
96
- name: 'density',
97
- type: "'compact' | 'balanced' | 'spacious'",
98
- description: "控制组内项目触发器和内容块内边距的行密度。显示分隔线时默认为 'balanced';否则项目保持默认的无内边距外观。",
99
- },
100
78
  {
101
79
  name: 'children',
102
80
  type: 'ReactNode',
@@ -110,14 +88,12 @@ export const docsDense = {
110
88
  name: 'CollapsibleGroup',
111
89
  isHiddenFromOverview: true,
112
90
  displayName: 'Collapsible Group',
113
- description: 'coordinates multiple Collapsible instances; single or multiple open. no wrapper DOM unless dividers enabled.',
91
+ description: 'coordinates multiple Collapsible instances; single or multiple open. no wrapper DOM.',
114
92
  propDescriptions: {
115
93
  type: 'one or many items open simultaneously',
116
94
  defaultValue: 'default open item(s) (uncontrolled); string for single, array for multiple',
117
95
  value: 'controlled open item(s)',
118
96
  onChange: 'callback on open items change',
119
- dividers: "row hairlines: 'between' items only, 'all' adds outer edges, 'none' (default); enables wrapper div + 'balanced' density; use bare Collapsible children",
120
- density: "row padding 'compact' | 'balanced' | 'spacious'; defaults 'balanced' with dividers, else unpadded",
121
97
  children: 'Collapsible instances to coordinate',
122
98
  },
123
99
  };