@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
@@ -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
  };
@@ -77,22 +77,6 @@ describe('Collapsible', () => {
77
77
  expect(screen.getByText('Hidden content')).not.toBeVisible();
78
78
  });
79
79
 
80
- it('links the trigger to its content region via aria-controls', () => {
81
- render(
82
- <Collapsible trigger="Details">
83
- <p>Region content</p>
84
- </Collapsible>,
85
- );
86
-
87
- const trigger = screen.getByRole('button', {name: /Details/});
88
- const controlsId = trigger.getAttribute('aria-controls');
89
- // aria-controls must be present and point at the real content region.
90
- expect(controlsId).toBeTruthy();
91
- const region = document.getElementById(controlsId as string);
92
- expect(region).not.toBeNull();
93
- expect(region).toContainElement(screen.getByText('Region content'));
94
- });
95
-
96
80
  it('respects controlled isOpen/onOpenChange', async () => {
97
81
  const onOpenChange = vi.fn();
98
82
  const user = userEvent.setup();
@@ -127,36 +111,6 @@ describe('Collapsible', () => {
127
111
  expect(screen.getByText('Controlled content')).not.toBeVisible();
128
112
  });
129
113
 
130
- it('self-toggles in uncontrolled mode even when onOpenChange is supplied', async () => {
131
- // Regression: passing onOpenChange without isOpen must NOT make the
132
- // component behave as controlled. Internal state should still drive
133
- // visibility, and the callback should fire in addition.
134
- const onOpenChange = vi.fn();
135
- const user = userEvent.setup();
136
- render(
137
- <Collapsible trigger="Uncontrolled" onOpenChange={onOpenChange}>
138
- <p>Uncontrolled content</p>
139
- </Collapsible>,
140
- );
141
-
142
- const trigger = screen.getByRole('button', {name: /Uncontrolled/});
143
- // Starts open (defaultIsOpen defaults to true).
144
- expect(trigger).toHaveAttribute('aria-expanded', 'true');
145
- expect(screen.getByText('Uncontrolled content')).toBeVisible();
146
-
147
- // Click collapses via internal state AND notifies.
148
- await user.click(trigger);
149
- expect(trigger).toHaveAttribute('aria-expanded', 'false');
150
- expect(screen.getByText('Uncontrolled content')).not.toBeVisible();
151
- expect(onOpenChange).toHaveBeenNthCalledWith(1, false);
152
-
153
- // Click again re-expands — proving the component isn't stuck.
154
- await user.click(trigger);
155
- expect(trigger).toHaveAttribute('aria-expanded', 'true');
156
- expect(screen.getByText('Uncontrolled content')).toBeVisible();
157
- expect(onOpenChange).toHaveBeenNthCalledWith(2, true);
158
- });
159
-
160
114
  it('renders chevron indicator', () => {
161
115
  render(
162
116
  <Collapsible trigger="With Chevron">
@@ -443,276 +397,4 @@ describe('CollapsibleGroup', () => {
443
397
  expect(trigger).toHaveAttribute('aria-expanded', 'true');
444
398
  });
445
399
  });
446
-
447
- describe('dividers', () => {
448
- function getItem(name: RegExp): HTMLElement {
449
- const root = screen
450
- .getByRole('button', {name})
451
- .closest('.astryx-collapsible');
452
- expect(root).not.toBeNull();
453
- return root as HTMLElement;
454
- }
455
-
456
- it('renders no wrapper DOM by default and with dividers="none"', () => {
457
- const {container, rerender} = render(
458
- <CollapsibleGroup>
459
- <Collapsible trigger="Item A" value="a">
460
- <p>Content A</p>
461
- </Collapsible>
462
- </CollapsibleGroup>,
463
- );
464
- expect(container.querySelector('.astryx-collapsible-group')).toBeNull();
465
-
466
- rerender(
467
- <CollapsibleGroup dividers="none">
468
- <Collapsible trigger="Item A" value="a">
469
- <p>Content A</p>
470
- </Collapsible>
471
- </CollapsibleGroup>,
472
- );
473
- expect(container.querySelector('.astryx-collapsible-group')).toBeNull();
474
- });
475
-
476
- it('renders a wrapper with data attributes when dividers are enabled', () => {
477
- const {container} = render(
478
- <CollapsibleGroup dividers="between">
479
- <Collapsible trigger="Item A" value="a">
480
- <p>Content A</p>
481
- </Collapsible>
482
- <Collapsible trigger="Item B" value="b">
483
- <p>Content B</p>
484
- </Collapsible>
485
- </CollapsibleGroup>,
486
- );
487
-
488
- const wrapper = container.querySelector('.astryx-collapsible-group');
489
- expect(wrapper).not.toBeNull();
490
- expect(wrapper).toHaveAttribute('data-dividers', 'between');
491
- // Divided groups default to balanced density
492
- expect(wrapper).toHaveAttribute('data-density', 'balanced');
493
- expect(wrapper).toContainElement(getItem(/Item A/));
494
- expect(wrapper).toContainElement(getItem(/Item B/));
495
- });
496
-
497
- it('reflects dividers and density on each item', () => {
498
- render(
499
- <CollapsibleGroup dividers="all" density="compact">
500
- <Collapsible trigger="Item A" value="a">
501
- <p>Content A</p>
502
- </Collapsible>
503
- </CollapsibleGroup>,
504
- );
505
-
506
- const item = getItem(/Item A/);
507
- expect(item).toHaveAttribute('data-dividers', 'all');
508
- expect(item).toHaveAttribute('data-density', 'compact');
509
- });
510
-
511
- it('does not reflect divider chrome on items without dividers', () => {
512
- render(
513
- <CollapsibleGroup>
514
- <Collapsible trigger="Item A" value="a">
515
- <p>Content A</p>
516
- </Collapsible>
517
- </CollapsibleGroup>,
518
- );
519
-
520
- const item = getItem(/Item A/);
521
- expect(item).not.toHaveAttribute('data-dividers');
522
- expect(item).not.toHaveAttribute('data-density');
523
- });
524
-
525
- it('applies density without dividers (and without a wrapper)', () => {
526
- const {container} = render(
527
- <CollapsibleGroup density="spacious">
528
- <Collapsible trigger="Item A" value="a">
529
- <p>Content A</p>
530
- </Collapsible>
531
- </CollapsibleGroup>,
532
- );
533
-
534
- expect(container.querySelector('.astryx-collapsible-group')).toBeNull();
535
- expect(getItem(/Item A/)).toHaveAttribute('data-density', 'spacious');
536
- });
537
-
538
- it('does not leak divider chrome into nested collapsibles', () => {
539
- render(
540
- <CollapsibleGroup dividers="between" defaultValue="outer">
541
- <Collapsible trigger="Outer" value="outer">
542
- <Collapsible trigger="Nested">
543
- <p>Nested content</p>
544
- </Collapsible>
545
- </Collapsible>
546
- </CollapsibleGroup>,
547
- );
548
-
549
- expect(getItem(/Outer/)).toHaveAttribute('data-dividers', 'between');
550
- expect(getItem(/Nested/)).not.toHaveAttribute('data-dividers');
551
- expect(getItem(/Nested/)).not.toHaveAttribute('data-density');
552
- });
553
-
554
- it('keeps group coordination working with dividers enabled', async () => {
555
- const user = userEvent.setup();
556
- render(
557
- <CollapsibleGroup type="single" dividers="between" defaultValue="a">
558
- <Collapsible trigger="Item A" value="a">
559
- <p>Content A</p>
560
- </Collapsible>
561
- <Collapsible trigger="Item B" value="b">
562
- <p>Content B</p>
563
- </Collapsible>
564
- </CollapsibleGroup>,
565
- );
566
-
567
- expect(screen.getByText('Content A')).toBeVisible();
568
- await user.click(screen.getByRole('button', {name: /Item B/}));
569
- expect(screen.getByText('Content A')).not.toBeVisible();
570
- expect(screen.getByText('Content B')).toBeVisible();
571
- });
572
-
573
- it('applies xstyle/className/style to the wrapper in divider mode', () => {
574
- const {container} = render(
575
- <CollapsibleGroup
576
- dividers="between"
577
- className="custom-class"
578
- data-testid="group">
579
- <Collapsible trigger="Item A" value="a">
580
- <p>Content A</p>
581
- </Collapsible>
582
- </CollapsibleGroup>,
583
- );
584
-
585
- const wrapper = container.querySelector('.astryx-collapsible-group');
586
- expect(wrapper).toHaveClass('custom-class');
587
- expect(wrapper).toHaveAttribute('data-testid', 'group');
588
- });
589
-
590
- it('forwards ref to the wrapper in divider mode', () => {
591
- const ref = {current: null as HTMLElement | null};
592
- const {container} = render(
593
- <CollapsibleGroup dividers="between" ref={ref}>
594
- <Collapsible trigger="Item A" value="a">
595
- <p>Content A</p>
596
- </Collapsible>
597
- </CollapsibleGroup>,
598
- );
599
-
600
- expect(ref.current).toBe(
601
- container.querySelector('.astryx-collapsible-group'),
602
- );
603
- });
604
-
605
- it('explicit density overrides the divider default', () => {
606
- const {container} = render(
607
- <CollapsibleGroup dividers="between" density="spacious">
608
- <Collapsible trigger="Item A" value="a">
609
- <p>Content A</p>
610
- </Collapsible>
611
- </CollapsibleGroup>,
612
- );
613
-
614
- const wrapper = container.querySelector('.astryx-collapsible-group');
615
- expect(wrapper).toHaveAttribute('data-density', 'spacious');
616
- expect(getItem(/Item A/)).toHaveAttribute('data-density', 'spacious');
617
- });
618
-
619
- it('tolerates interleaved non-Collapsible children', async () => {
620
- const user = userEvent.setup();
621
- render(
622
- <CollapsibleGroup type="single" dividers="between" defaultValue="a">
623
- <Collapsible trigger="Item A" value="a">
624
- <p>Content A</p>
625
- </Collapsible>
626
- <hr data-testid="separator" />
627
- <Collapsible trigger="Item B" value="b">
628
- <p>Content B</p>
629
- </Collapsible>
630
- </CollapsibleGroup>,
631
- );
632
-
633
- expect(screen.getByTestId('separator')).toBeInTheDocument();
634
- expect(getItem(/Item A/)).toHaveAttribute('data-dividers', 'between');
635
- expect(getItem(/Item B/)).toHaveAttribute('data-dividers', 'between');
636
- await user.click(screen.getByRole('button', {name: /Item B/}));
637
- expect(screen.getByText('Content A')).not.toBeVisible();
638
- expect(screen.getByText('Content B')).toBeVisible();
639
- });
640
-
641
- it('lets a nested group define its own chrome instead of inheriting', () => {
642
- render(
643
- <CollapsibleGroup dividers="between" defaultValue="outer">
644
- <Collapsible trigger="Outer" value="outer">
645
- <CollapsibleGroup type="multiple" dividers="all">
646
- <Collapsible trigger="Inner divided" value="in-a">
647
- <p>Inner content</p>
648
- </Collapsible>
649
- </CollapsibleGroup>
650
- <CollapsibleGroup type="multiple">
651
- <Collapsible trigger="Inner plain" value="in-b">
652
- <p>Inner content</p>
653
- </Collapsible>
654
- </CollapsibleGroup>
655
- </Collapsible>
656
- </CollapsibleGroup>,
657
- );
658
-
659
- expect(getItem(/Outer/)).toHaveAttribute('data-dividers', 'between');
660
- expect(getItem(/Inner divided/)).toHaveAttribute('data-dividers', 'all');
661
- expect(getItem(/Inner plain/)).not.toHaveAttribute('data-dividers');
662
- });
663
-
664
- it('keeps controlled coordination and onChange shape with dividers', async () => {
665
- const user = userEvent.setup();
666
- const onChange = vi.fn();
667
- const {rerender} = render(
668
- <CollapsibleGroup
669
- type="single"
670
- dividers="all"
671
- value="a"
672
- onChange={onChange}>
673
- <Collapsible trigger="Item A" value="a">
674
- <p>Content A</p>
675
- </Collapsible>
676
- <Collapsible trigger="Item B" value="b">
677
- <p>Content B</p>
678
- </Collapsible>
679
- </CollapsibleGroup>,
680
- );
681
-
682
- await user.click(screen.getByRole('button', {name: /Item B/}));
683
- expect(onChange).toHaveBeenCalledWith('b');
684
- // Controlled: nothing opens until the parent passes the new value
685
- expect(screen.getByText('Content B')).not.toBeVisible();
686
-
687
- rerender(
688
- <CollapsibleGroup
689
- type="single"
690
- dividers="all"
691
- value="b"
692
- onChange={onChange}>
693
- <Collapsible trigger="Item A" value="a">
694
- <p>Content A</p>
695
- </Collapsible>
696
- <Collapsible trigger="Item B" value="b">
697
- <p>Content B</p>
698
- </Collapsible>
699
- </CollapsibleGroup>,
700
- );
701
- expect(screen.getByText('Content A')).not.toBeVisible();
702
- expect(screen.getByText('Content B')).toBeVisible();
703
- });
704
-
705
- it('renders standalone Collapsible without any group chrome', () => {
706
- render(
707
- <Collapsible trigger="Alone">
708
- <p>Standalone content</p>
709
- </Collapsible>,
710
- );
711
-
712
- const item = getItem(/Alone/);
713
- expect(item).not.toHaveAttribute('data-dividers');
714
- expect(item).not.toHaveAttribute('data-density');
715
- expect(item.querySelector('.astryx-collapsible-group')).toBeNull();
716
- });
717
- });
718
400
  });