@astryxdesign/core 0.4.7-canary.dd94f7f → 0.4.7-canary.dfdd778

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 (244) hide show
  1. package/CHANGELOG.md +1 -0
  2. package/dist/AppShell/AppShell.d.ts.map +1 -1
  3. package/dist/AppShell/AppShell.js +3 -2
  4. package/dist/AvatarGroup/AvatarGroup.d.ts.map +1 -1
  5. package/dist/AvatarGroup/AvatarGroup.js +3 -2
  6. package/dist/Banner/Banner.d.ts +40 -15
  7. package/dist/Banner/Banner.d.ts.map +1 -1
  8. package/dist/Banner/Banner.js +51 -18
  9. package/dist/BottomSheet/BottomSheetSwitcher.d.ts.map +1 -1
  10. package/dist/BottomSheet/BottomSheetSwitcher.js +3 -2
  11. package/dist/Breadcrumbs/BreadcrumbItem.d.ts.map +1 -1
  12. package/dist/Breadcrumbs/BreadcrumbItem.js +6 -5
  13. package/dist/ButtonGroup/ButtonGroup.d.ts +5 -1
  14. package/dist/ButtonGroup/ButtonGroup.d.ts.map +1 -1
  15. package/dist/ButtonGroup/ButtonGroup.js +17 -6
  16. package/dist/Carousel/Carousel.d.ts.map +1 -1
  17. package/dist/Carousel/Carousel.js +3 -3
  18. package/dist/Chat/ChatComposerInput.d.ts.map +1 -1
  19. package/dist/Chat/ChatComposerInput.js +2 -3
  20. package/dist/Chat/ChatLayout.d.ts.map +1 -1
  21. package/dist/Chat/ChatLayout.js +3 -3
  22. package/dist/Chat/ChatTokenizedText.d.ts +2 -0
  23. package/dist/Chat/ChatTokenizedText.d.ts.map +1 -1
  24. package/dist/Chat/ChatTokenizedText.js +11 -6
  25. package/dist/Chat/useChatComposerTokens.js +1 -1
  26. package/dist/CheckboxInput/CheckboxInput.d.ts.map +1 -1
  27. package/dist/CheckboxInput/CheckboxInput.js +3 -2
  28. package/dist/ClickableCard/ClickableCard.d.ts.map +1 -1
  29. package/dist/ClickableCard/ClickableCard.js +3 -3
  30. package/dist/CommandPalette/CommandPaletteInput.d.ts.map +1 -1
  31. package/dist/CommandPalette/CommandPaletteInput.js +3 -2
  32. package/dist/CommandPalette/CommandPaletteItem.d.ts.map +1 -1
  33. package/dist/CommandPalette/CommandPaletteItem.js +3 -2
  34. package/dist/ContextMenu/ContextMenu.d.ts.map +1 -1
  35. package/dist/ContextMenu/ContextMenu.js +4 -3
  36. package/dist/DateInput/DateInput.d.ts.map +1 -1
  37. package/dist/DateInput/DateInput.js +3 -2
  38. package/dist/DateTimeInput/DateTimeInput.d.ts +21 -1
  39. package/dist/DateTimeInput/DateTimeInput.d.ts.map +1 -1
  40. package/dist/DateTimeInput/DateTimeInput.js +406 -12
  41. package/dist/DateTimeInput/index.d.ts +1 -1
  42. package/dist/DateTimeInput/index.d.ts.map +1 -1
  43. package/dist/Dialog/Dialog.d.ts.map +1 -1
  44. package/dist/Dialog/Dialog.js +41 -36
  45. package/dist/DropdownMenu/DropdownMenuSubMenu.d.ts.map +1 -1
  46. package/dist/DropdownMenu/DropdownMenuSubMenu.js +6 -5
  47. package/dist/FileInput/FileInput.d.ts.map +1 -1
  48. package/dist/FileInput/FileInput.js +3 -2
  49. package/dist/HoverCard/HoverCard.d.ts +6 -0
  50. package/dist/HoverCard/HoverCard.d.ts.map +1 -1
  51. package/dist/HoverCard/useHoverCard.d.ts +5 -0
  52. package/dist/HoverCard/useHoverCard.d.ts.map +1 -1
  53. package/dist/HoverCard/useHoverCard.js +67 -25
  54. package/dist/Item/Item.d.ts.map +1 -1
  55. package/dist/Item/Item.js +4 -2
  56. package/dist/Layer/LayerDepthContext.d.ts +52 -0
  57. package/dist/Layer/LayerDepthContext.d.ts.map +1 -0
  58. package/dist/Layer/LayerDepthContext.js +66 -0
  59. package/dist/Layer/index.d.ts +3 -0
  60. package/dist/Layer/index.d.ts.map +1 -1
  61. package/dist/Layer/index.js +4 -0
  62. package/dist/Layer/layerStack.d.ts +98 -0
  63. package/dist/Layer/layerStack.d.ts.map +1 -0
  64. package/dist/Layer/layerStack.js +306 -0
  65. package/dist/Layer/useLayerDismissal.d.ts +93 -0
  66. package/dist/Layer/useLayerDismissal.d.ts.map +1 -0
  67. package/dist/Layer/useLayerDismissal.js +91 -0
  68. package/dist/Lightbox/Lightbox.d.ts +1 -0
  69. package/dist/Lightbox/Lightbox.d.ts.map +1 -1
  70. package/dist/Lightbox/Lightbox.js +103 -81
  71. package/dist/MobileNav/MobileNav.d.ts +6 -1
  72. package/dist/MobileNav/MobileNav.d.ts.map +1 -1
  73. package/dist/MobileNav/MobileNav.js +61 -36
  74. package/dist/NavMenu/NavHeadingMenu.d.ts.map +1 -1
  75. package/dist/NavMenu/NavHeadingMenu.js +3 -2
  76. package/dist/Outline/Outline.d.ts.map +1 -1
  77. package/dist/Outline/Outline.js +3 -2
  78. package/dist/OverflowList/OverflowList.d.ts.map +1 -1
  79. package/dist/OverflowList/OverflowList.js +3 -2
  80. package/dist/Overlay/Overlay.d.ts.map +1 -1
  81. package/dist/Overlay/Overlay.js +3 -2
  82. package/dist/Popover/usePopover.d.ts.map +1 -1
  83. package/dist/Popover/usePopover.js +20 -17
  84. package/dist/PowerSearch/PowerSearch.d.ts.map +1 -1
  85. package/dist/PowerSearch/PowerSearch.js +4 -5
  86. package/dist/PowerSearch/PowerSearchEditPopover.d.ts.map +1 -1
  87. package/dist/PowerSearch/PowerSearchEditPopover.js +20 -6
  88. package/dist/Resizable/ResizeHandle.d.ts.map +1 -1
  89. package/dist/Resizable/ResizeHandle.js +3 -2
  90. package/dist/SegmentedControl/SegmentedControl.d.ts.map +1 -1
  91. package/dist/SegmentedControl/SegmentedControl.js +3 -2
  92. package/dist/SelectableCard/SelectableCard.d.ts.map +1 -1
  93. package/dist/SelectableCard/SelectableCard.js +3 -3
  94. package/dist/SideNav/SideNav.d.ts.map +1 -1
  95. package/dist/SideNav/SideNav.js +4 -3
  96. package/dist/SideNav/SideNavItem.d.ts.map +1 -1
  97. package/dist/SideNav/SideNavItem.js +4 -3
  98. package/dist/Slider/Slider.d.ts.map +1 -1
  99. package/dist/Slider/Slider.js +3 -3
  100. package/dist/Switch/Switch.d.ts.map +1 -1
  101. package/dist/Switch/Switch.js +3 -2
  102. package/dist/TabList/Tab.d.ts +15 -2
  103. package/dist/TabList/Tab.d.ts.map +1 -1
  104. package/dist/TabList/Tab.js +32 -7
  105. package/dist/TabList/TabList.d.ts +46 -7
  106. package/dist/TabList/TabList.d.ts.map +1 -1
  107. package/dist/TabList/TabList.js +353 -23
  108. package/dist/TabList/TabListContext.d.ts +11 -1
  109. package/dist/TabList/TabListContext.d.ts.map +1 -1
  110. package/dist/TabList/TabListContext.js +11 -2
  111. package/dist/TabList/index.d.ts +2 -2
  112. package/dist/TabList/index.d.ts.map +1 -1
  113. package/dist/Table/plugins/rowExpansion/useTableRowExpansion.d.ts.map +1 -1
  114. package/dist/Table/plugins/rowExpansion/useTableRowExpansion.js +7 -2
  115. package/dist/TextArea/TextArea.d.ts.map +1 -1
  116. package/dist/TextArea/TextArea.js +3 -2
  117. package/dist/TextInput/TextInput.d.ts.map +1 -1
  118. package/dist/TextInput/TextInput.js +3 -2
  119. package/dist/TimeInput/TimeInput.d.ts.map +1 -1
  120. package/dist/TimeInput/TimeInput.js +3 -2
  121. package/dist/Timestamp/Timestamp.d.ts.map +1 -1
  122. package/dist/Timestamp/Timestamp.js +5 -3
  123. package/dist/Token/TokenLink.d.ts.map +1 -1
  124. package/dist/Token/TokenLink.js +2 -2
  125. package/dist/Tooltip/Tooltip.d.ts +5 -0
  126. package/dist/Tooltip/Tooltip.d.ts.map +1 -1
  127. package/dist/Tooltip/useTooltip.d.ts +5 -0
  128. package/dist/Tooltip/useTooltip.d.ts.map +1 -1
  129. package/dist/Tooltip/useTooltip.js +39 -24
  130. package/dist/TopNav/TopNavMegaMenu.d.ts.map +1 -1
  131. package/dist/TopNav/TopNavMegaMenu.js +3 -3
  132. package/dist/Typeahead/BaseTypeahead.d.ts.map +1 -1
  133. package/dist/Typeahead/BaseTypeahead.js +11 -3
  134. package/dist/Typeahead/Typeahead.d.ts.map +1 -1
  135. package/dist/Typeahead/Typeahead.js +3 -2
  136. package/dist/astryx.css +19 -1
  137. package/dist/hooks/useFocusTrap.d.ts +7 -4
  138. package/dist/hooks/useFocusTrap.d.ts.map +1 -1
  139. package/dist/hooks/useFocusTrap.js +60 -95
  140. package/dist/utils/sharedResizeObserver.d.ts.map +1 -1
  141. package/dist/utils/sharedResizeObserver.js +10 -1
  142. package/locales/en.json +8 -0
  143. package/locales/pseudo.json +6 -0
  144. package/package.json +2 -2
  145. package/src/AppShell/AppShell.tsx +3 -2
  146. package/src/AvatarGroup/AvatarGroup.tsx +3 -2
  147. package/src/Banner/Banner.doc.mjs +13 -11
  148. package/src/Banner/Banner.test.tsx +102 -15
  149. package/src/Banner/Banner.tsx +72 -25
  150. package/src/BottomSheet/BottomSheetSwitcher.tsx +3 -2
  151. package/src/Breadcrumbs/BreadcrumbItem.tsx +7 -4
  152. package/src/ButtonGroup/ButtonGroup.doc.mjs +3 -0
  153. package/src/ButtonGroup/ButtonGroup.test.tsx +206 -0
  154. package/src/ButtonGroup/ButtonGroup.tsx +15 -4
  155. package/src/Carousel/Carousel.tsx +3 -2
  156. package/src/Chat/ChatComposerInput.tsx +5 -1
  157. package/src/Chat/ChatLayout.tsx +3 -2
  158. package/src/Chat/ChatTokenizedText.tsx +17 -10
  159. package/src/Chat/useChatComposerTokens.ts +1 -1
  160. package/src/CheckboxInput/CheckboxInput.tsx +3 -2
  161. package/src/ClickableCard/ClickableCard.tsx +3 -2
  162. package/src/CommandPalette/CommandPaletteInput.tsx +3 -2
  163. package/src/CommandPalette/CommandPaletteItem.tsx +3 -2
  164. package/src/ContextMenu/ContextMenu.tsx +4 -3
  165. package/src/DateInput/DateInput.tsx +3 -2
  166. package/src/DateTimeInput/DateTimeInput.doc.mjs +18 -0
  167. package/src/DateTimeInput/DateTimeInput.test.tsx +1088 -0
  168. package/src/DateTimeInput/DateTimeInput.tsx +556 -24
  169. package/src/DateTimeInput/index.ts +1 -0
  170. package/src/Dialog/Dialog.test.tsx +190 -1
  171. package/src/Dialog/Dialog.tsx +37 -38
  172. package/src/DropdownMenu/DropdownMenu.doc.mjs +6 -0
  173. package/src/DropdownMenu/DropdownMenuSubMenu.test.tsx +8 -5
  174. package/src/DropdownMenu/DropdownMenuSubMenu.tsx +8 -11
  175. package/src/Field/Field.doc.mjs +2 -2
  176. package/src/FileInput/FileInput.tsx +3 -2
  177. package/src/HoverCard/HoverCard.doc.mjs +5 -0
  178. package/src/HoverCard/HoverCard.tsx +6 -0
  179. package/src/HoverCard/useHoverCard.tsx +81 -30
  180. package/src/Item/Item.tsx +5 -4
  181. package/src/Layer/LayerDepthContext.tsx +62 -0
  182. package/src/Layer/index.ts +9 -0
  183. package/src/Layer/layerDismissalFamilies.test.tsx +359 -0
  184. package/src/Layer/layerDismissalInvariants.test.tsx +417 -0
  185. package/src/Layer/layerStack.ts +362 -0
  186. package/src/Layer/useLayerDismissal.test.tsx +469 -0
  187. package/src/Layer/useLayerDismissal.ts +173 -0
  188. package/src/Layout/Layout.doc.mjs +2 -2
  189. package/src/Lightbox/Lightbox.doc.mjs +12 -0
  190. package/src/Lightbox/Lightbox.tsx +124 -102
  191. package/src/Link/Link.doc.mjs +28 -0
  192. package/src/Markdown/Markdown.doc.mjs +5 -0
  193. package/src/Markdown/parser.perf.test.ts +37 -5
  194. package/src/MobileNav/MobileNav.tsx +62 -36
  195. package/src/MultiSelector/MultiSelector.doc.mjs +17 -0
  196. package/src/MultiSelector/MultiSelector.test.tsx +1 -0
  197. package/src/NavMenu/NavHeadingMenu.tsx +3 -2
  198. package/src/Outline/Outline.tsx +3 -2
  199. package/src/OverflowList/OverflowList.tsx +3 -2
  200. package/src/Overlay/Overlay.tsx +3 -2
  201. package/src/Popover/usePopover.tsx +31 -28
  202. package/src/PowerSearch/PowerSearch.doc.mjs +16 -0
  203. package/src/PowerSearch/PowerSearch.tsx +11 -3
  204. package/src/PowerSearch/PowerSearchEditPopover.test.tsx +201 -0
  205. package/src/PowerSearch/PowerSearchEditPopover.tsx +17 -2
  206. package/src/Resizable/ResizeHandle.tsx +3 -2
  207. package/src/SegmentedControl/SegmentedControl.tsx +3 -2
  208. package/src/SelectableCard/SelectableCard.tsx +3 -2
  209. package/src/Selector/Selector.doc.mjs +1 -1
  210. package/src/Selector/Selector.test.tsx +24 -1
  211. package/src/SideNav/SideNav.doc.mjs +6 -6
  212. package/src/SideNav/SideNav.tsx +4 -2
  213. package/src/SideNav/SideNavItem.tsx +4 -2
  214. package/src/Slider/Slider.tsx +3 -2
  215. package/src/Switch/Switch.tsx +3 -2
  216. package/src/TabList/Tab.doc.mjs +13 -1
  217. package/src/TabList/Tab.tsx +67 -7
  218. package/src/TabList/TabList.doc.mjs +22 -6
  219. package/src/TabList/TabList.test.tsx +559 -0
  220. package/src/TabList/TabList.tsx +490 -22
  221. package/src/TabList/TabListContext.ts +13 -2
  222. package/src/TabList/index.ts +6 -2
  223. package/src/Table/plugins/rowExpansion/useTableRowExpansion.tsx +9 -2
  224. package/src/TextArea/TextArea.tsx +3 -2
  225. package/src/TextInput/TextInput.tsx +3 -2
  226. package/src/Thumbnail/Thumbnail.doc.mjs +1 -1
  227. package/src/TimeInput/TimeInput.tsx +2 -2
  228. package/src/Timestamp/Timestamp.tsx +4 -2
  229. package/src/Token/TokenLink.tsx +2 -2
  230. package/src/Tokenizer/Tokenizer.doc.mjs +6 -0
  231. package/src/Tooltip/Tooltip.doc.mjs +5 -0
  232. package/src/Tooltip/Tooltip.test.tsx +32 -0
  233. package/src/Tooltip/Tooltip.tsx +5 -0
  234. package/src/Tooltip/useTooltip.tsx +47 -24
  235. package/src/TopNav/TopNavMegaMenu.tsx +3 -2
  236. package/src/Typeahead/BaseTypeahead.tsx +11 -2
  237. package/src/Typeahead/Typeahead.doc.mjs +5 -0
  238. package/src/Typeahead/Typeahead.test.tsx +49 -0
  239. package/src/Typeahead/Typeahead.tsx +3 -2
  240. package/src/hooks/useContainerReveal.doc.mjs +2 -2
  241. package/src/hooks/useFocusTrap.test.tsx +14 -0
  242. package/src/hooks/useFocusTrap.ts +62 -111
  243. package/src/hooks/useFocusTrapEscapeShim.test.tsx +165 -0
  244. package/src/utils/sharedResizeObserver.ts +10 -2
package/CHANGELOG.md CHANGED
@@ -13,6 +13,7 @@
13
13
  **The exit ran on the entrance's curve.** `--ease-standard` is `cubic-bezier(0.24, 1, 0.4, 1)`, a decelerate curve: it spends its speed immediately and coasts. Right for an entrance, wrong for an exit. Measured on device (iPhone, real Safari), a scrim tap put the sheet half off-screen in 59ms of the 410ms transition and 90% off in 163ms, with the dim gone before it — so the close was over before the eye could follow it. The closing state now carries an accelerating curve of its own, `cubic-bezier(0.3, 0, 0.6, 0.6)`: away from rest, gathering speed, quickest as it leaves the screen, and moving within ~50ms so it reads as one departure rather than a hesitation and a snap. Only the curve changes — the exit keeps `--duration-medium`, the entrance's band, which is what keeps it legible under a theme that scales the motion scale down (neutral's medium is 300ms against the base 410ms).
14
14
 
15
15
  The scrim leaves with the sheet: while closing, the dim runs `linear` rather than the decelerate token. A fade covers no distance, so front-loading its progress just ends it early — the reasoning the touch date picker's surface swap already carries. `BottomSheetSwitcher` gets the same treatment when its flow closes; a handoff between two sheets is not a close and is unchanged.
16
+
16
17
  - `useListFocus` no longer swallows Escape when no `onEscape` was supplied. The hook called `preventDefault()` on every Escape — a habit inherited from the arrow keys, which share the handler and need it to suppress page scroll — so a list with nothing to dismiss still marked the key handled, and a surrounding layer that defers to `defaultPrevented` (a focus trap, a native popover) never got its turn. Escape is now consumed only when an `onEscape` is passed. Arrow, Home and End handling is unchanged (#5346).
17
18
  Behaviour change: `AvatarGroup`, `ButtonGroup`, `Outline`, `Pagination`, `SegmentedControl`, `TabList` and `Toolbar` pass no `onEscape`, so an Escape pressed inside one of them now reaches the surrounding layer and can dismiss it — the point of the fix, but a host that counted on the key stopping there will notice. `NavHeadingMenu` does the same when it renders without a menu close handler. Menus and flyouts that do pass `onEscape` are unaffected. `patch`, not `[breaking]`: the swallowing was never a contract — the hook documented Escape only as "custom callback", and no component advertised consuming the key.
18
19
  - TabList: the selected tab now carries `aria-current="true"` — ARIA's generic "current item within a set" — instead of `aria-current="page"`. The strip is a `<nav>` and stays one, but it is used to switch views in place at least as often as it is used to navigate, and on those uses `page` asserted a page change that never happened. Assistive tech announced the selected tab as the _current page_ even when nothing had navigated; it now announces it as the _current item_, which is true either way. A tab given an `href` still renders an anchor and still reads as a link — its current marker is just less specific than it was. No role changes and no new props. (#5347)
@@ -1 +1 @@
1
- {"version":3,"file":"AppShell.d.ts","sourceRoot":"","sources":["../../src/AppShell/AppShell.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAQL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAmBf,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAO5C,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,SAAS,CAAC;AA8BhD;;;;;;GAMG;AACH,MAAM,MAAM,kBAAkB,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC;AAE7D;;;;;;;GAOG;AAEH;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,MAAM,kBAAkB,CAAC;AAEvD;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB;;OAEG;IACH,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IAEzC;;;;OAIG;IACH,OAAO,CAAC,EAAE,SAAS,CAAC;IAEpB;;;OAGG;IACH,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAEhC;;;;;;;;;OASG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,aAAc,SAAQ,SAAS,CAAC,cAAc,CAAC;IAC9D,wCAAwC;IACxC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChC;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,eAAe,CAAC;IAE1B;;;OAGG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;IAEnB;;OAEG;IACH,QAAQ,EAAE,SAAS,CAAC;IAEpB;;;;;;;OAOG;IACH,cAAc,CAAC,EAAE,WAAW,CAAC;IAE7B;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAEzB;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,SAAS,CAAC,EAAE,KAAK,GAAG,eAAe,GAAG,SAAS,CAAC;IAEhD;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,OAAO,CAAC,EAAE,SAAS,CAAC;IAEpB;;;OAGG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;CACpB;AA2KD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,QAAQ,CAAC,EACvB,OAAoB,EACpB,MAAM,EACN,QAAQ,EACR,cAAc,EACd,aAAa,EAAE,UAAU,EACzB,MAAe,EACf,SAAS,EACT,OAAO,EACP,MAAM,EACN,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,EACH,GAAG,IAAI,EACR,EAAE,aAAa,qBA6Yf;yBA5Ze,QAAQ"}
1
+ {"version":3,"file":"AppShell.d.ts","sourceRoot":"","sources":["../../src/AppShell/AppShell.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAQL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAmBf,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAO5C,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,SAAS,CAAC;AA+BhD;;;;;;GAMG;AACH,MAAM,MAAM,kBAAkB,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC;AAE7D;;;;;;;GAOG;AAEH;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,MAAM,kBAAkB,CAAC;AAEvD;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB;;OAEG;IACH,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IAEzC;;;;OAIG;IACH,OAAO,CAAC,EAAE,SAAS,CAAC;IAEpB;;;OAGG;IACH,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAEhC;;;;;;;;;OASG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,aAAc,SAAQ,SAAS,CAAC,cAAc,CAAC;IAC9D,wCAAwC;IACxC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChC;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,eAAe,CAAC;IAE1B;;;OAGG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;IAEnB;;OAEG;IACH,QAAQ,EAAE,SAAS,CAAC;IAEpB;;;;;;;OAOG;IACH,cAAc,CAAC,EAAE,WAAW,CAAC;IAE7B;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAEzB;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,SAAS,CAAC,EAAE,KAAK,GAAG,eAAe,GAAG,SAAS,CAAC;IAEhD;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,OAAO,CAAC,EAAE,SAAS,CAAC;IAEpB;;;OAGG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;CACpB;AA2KD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,QAAQ,CAAC,EACvB,OAAoB,EACpB,MAAM,EACN,QAAQ,EACR,cAAc,EACd,aAAa,EAAE,UAAU,EACzB,MAAe,EACf,SAAS,EACT,OAAO,EACP,MAAM,EACN,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,EACH,GAAG,IAAI,EACR,EAAE,aAAa,qBA6Yf;yBA5Ze,QAAQ"}
@@ -33,12 +33,13 @@ import { SideNavRenderContext } from "../SideNav/SideNavRenderContext.js";
33
33
  import { TopNavRenderContext } from "../TopNav/TopNavRenderContext.js";
34
34
  import { TopNavMobileContentContext } from "../TopNav/TopNavMobileContentContext.js";
35
35
  import { AppShellMobileContext } from "./AppShellMobileContext.js";
36
- import { mergeProps, mergeRefs, isRenderable } from "../utils/index.js";
36
+ import { mergeProps, isRenderable } from "../utils/index.js";
37
37
  import { focusOutlineProps } from "../utils/focusOutline.stylex.js";
38
38
  import { useMediaQuery } from "../hooks/useMediaQuery.js";
39
39
  import { observeResize, unobserveResize } from "../utils/sharedResizeObserver.js";
40
40
  import { themeProps } from "../utils/themeProps.js";
41
41
  import { useTranslator } from "../i18n/index.js";
42
+ import { useMergedRefs } from "../hooks/useMergedRefs.js";
42
43
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
43
44
  const HasActivity = typeof React.Activity !== 'undefined';
44
45
  const ActivityWrapper = HasActivity ? ({
@@ -493,7 +494,7 @@ export function AppShell({
493
494
  value: mobileContextValue,
494
495
  children: /*#__PURE__*/_jsxs("div", {
495
496
  ...rest,
496
- ref: mergeRefs(ref, shellRef),
497
+ ref: useMergedRefs(ref, shellRef),
497
498
  "data-testid": dataTestId,
498
499
  ...mergeProps(themeProps('app-shell', {
499
500
  variant
@@ -1 +1 @@
1
- {"version":3,"file":"AvatarGroup.d.ts","sourceRoot":"","sources":["../../src/AvatarGroup/AvatarGroup.tsx"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAA2B,KAAK,SAAS,EAAC,MAAM,OAAO,CAAC;AAC/D,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAc,KAAK,UAAU,EAAC,MAAM,WAAW,CAAC;AAavD,MAAM,WAAW,gBAAiB,SAAQ,SAAS,CAAC,cAAc,CAAC;IACjE,yCAAyC;IACzC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChC;;;OAGG;IACH,QAAQ,EAAE,SAAS,CAAC;IACpB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AASD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,WAAW,CAAC,EAC1B,QAAQ,EACR,IAAW,EACX,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,kBAAkB,EAChC,kBAAkB,EAAE,wBAAwB,EAC5C,SAAS,EACT,OAAO,EACP,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,EACH,GAAG,KAAK,EACT,EAAE,gBAAgB,GAAG,SAAS,CAmE9B;yBAhFe,WAAW"}
1
+ {"version":3,"file":"AvatarGroup.d.ts","sourceRoot":"","sources":["../../src/AvatarGroup/AvatarGroup.tsx"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAA2B,KAAK,SAAS,EAAC,MAAM,OAAO,CAAC;AAC/D,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAc,KAAK,UAAU,EAAC,MAAM,WAAW,CAAC;AAcvD,MAAM,WAAW,gBAAiB,SAAQ,SAAS,CAAC,cAAc,CAAC;IACjE,yCAAyC;IACzC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChC;;;OAGG;IACH,QAAQ,EAAE,SAAS,CAAC;IACpB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AASD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,WAAW,CAAC,EAC1B,QAAQ,EACR,IAAW,EACX,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,kBAAkB,EAChC,kBAAkB,EAAE,wBAAwB,EAC5C,SAAS,EACT,OAAO,EACP,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,EACH,GAAG,KAAK,EACT,EAAE,gBAAgB,GAAG,SAAS,CAmE9B;yBAhFe,WAAW"}
@@ -26,7 +26,7 @@
26
26
  import { useId, useMemo, useState } from 'react';
27
27
  import { resolveSize } from "../Avatar/index.js";
28
28
  import * as stylex from '@stylexjs/stylex';
29
- import { mergeProps, mergeRefs } from "../utils/index.js";
29
+ import { mergeProps } from "../utils/index.js";
30
30
  import { composeEventHandlers } from "../utils/composeEventHandlers.js";
31
31
  import { AvatarGroupContext } from "./AvatarGroupContext.js";
32
32
  import { themeProps } from "../utils/themeProps.js";
@@ -34,6 +34,7 @@ import { useTranslator } from "../i18n/index.js";
34
34
  import { useListFocus } from "../hooks/useListFocus.js";
35
35
  import { useIsomorphicLayoutEffect } from "../hooks/useIsomorphicLayoutEffect.js";
36
36
  import { VisuallyHidden } from "../VisuallyHidden/index.js";
37
+ import { useMergedRefs } from "../hooks/useMergedRefs.js";
37
38
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
38
39
  const OVERLAP_RATIO = 0.25;
39
40
  const styles = {
@@ -118,7 +119,7 @@ export function AvatarGroup({
118
119
  value: contextValue,
119
120
  children: /*#__PURE__*/_jsxs("div", {
120
121
  ...props,
121
- ref: mergeRefs(ref, listRef),
122
+ ref: useMergedRefs(ref, listRef),
122
123
  role: "group",
123
124
  "aria-label": ariaLabel,
124
125
  "aria-describedby": describedBy,
@@ -1,19 +1,23 @@
1
1
  /**
2
2
  * @file Banner.tsx
3
- * @input Uses React useState/useRef/useId, Button, Icon (with registry string names), StyleX
3
+ * @input Uses React useState/useRef/useId, useCollapsible, Button, Icon (with registry string names), StyleX
4
4
  * @output Exports Banner component, BannerProps, BannerStatus, BannerContainer types
5
5
  * @position Core implementation; consumed by index.ts, tested by Banner.test.tsx
6
6
  *
7
7
  * Visual structure:
8
8
  * - Root container: layout-only wrapper (flex column), no visual styling, no theme target
9
9
  * - Header area (themeProps 'banner'): colored status background with icon, title, description, actions, dismiss
10
- * - Content area (themeProps 'banner-content'): collapsible card background for additional content (children)
10
+ * - Content area (themeProps 'banner-content'): card background for additional content (children)
11
11
  * - Status icon (themeProps 'banner-icon'): the target rides on the default
12
12
  * <Icon> itself — the element that paints — so 'status:X' overrides reach
13
13
  * the glyph (#4166); for a custom `icon` node it stays on the layout wrapper
14
14
  * - No left border accent — color is expressed through the full header background
15
15
  * - Each visual area owns its own border-radius (no overflow:clip on the container)
16
- * - When children are provided, a collapse/expand toggle button appears in the end area
16
+ * - Children are collapsible by default: a toggle appears in the header end
17
+ * area and the content starts closed. `collapsible={false}` opts out and
18
+ * pins the content open with no toggle. The whole collapse axis (enabled /
19
+ * default / controlled) lives on that one prop and is driven by the shared
20
+ * `useCollapsible` hook rather than local state.
17
21
  *
18
22
  * A status added through `BannerStatusMap` augmentation has no entry in the
19
23
  * status lookups, so it renders with no status fill, no default glyph and the
@@ -35,6 +39,7 @@
35
39
  */
36
40
  import { type ReactNode } from 'react';
37
41
  import type { BaseProps } from '../BaseProps';
42
+ import type { CollapsibleConfig } from '../Collapsible/useCollapsible';
38
43
  import type { Elevation } from '../utils/types';
39
44
  import type { BannerStatusMap, BannerContainerMap } from './index';
40
45
  /**
@@ -109,15 +114,29 @@ export interface BannerProps extends BaseProps<HTMLDivElement> {
109
114
  */
110
115
  elevation?: Elevation;
111
116
  /**
112
- * Whether the content area (children) starts expanded.
113
- * Only relevant when children are provided.
114
- * @default false
117
+ * Whether the content area (children) sits behind an expand/collapse toggle
118
+ * in the header. On by default, so a banner with children behaves as it
119
+ * always has.
120
+ *
121
+ * - omitted / `true` — collapsible, starts collapsed
122
+ * - `{defaultIsOpen: true}` — collapsible, starts open
123
+ * - `{isOpen, onOpenChange}` — controlled by the consumer
124
+ * - `false` — not collapsible: children are always visible, with no toggle,
125
+ * no `aria-expanded`, and a content region that stays mounted
126
+ *
127
+ * Takes the shared `CollapsibleConfig` so a banner's disclosure is
128
+ * configured exactly like `Collapsible`'s, rather than through a
129
+ * Banner-only vocabulary. Banner's default differs from the hook's on one
130
+ * point — it starts closed, not open — because a banner's message lives in
131
+ * its header and the content is supplementary.
132
+ *
133
+ * @default true
115
134
  */
116
- defaultIsExpanded?: boolean;
135
+ collapsible?: boolean | CollapsibleConfig;
117
136
  /**
118
- * Extra content rendered below the header in a collapsible card-background area.
137
+ * Extra content rendered below the header in a card-background area.
119
138
  * Use for rich content like lists, links, or detailed information.
120
- * When provided, a collapse/expand toggle button appears in the header.
139
+ * Collapsed behind a toggle unless `collapsible={false}`.
121
140
  */
122
141
  children?: ReactNode;
123
142
  }
@@ -126,11 +145,12 @@ export interface BannerProps extends BaseProps<HTMLDivElement> {
126
145
  *
127
146
  * Two-part visual structure:
128
147
  * - Header: colored status background with icon, title, description, and actions
129
- * - Content (optional): collapsible card background area for additional rich content
148
+ * - Content (optional): card background area for additional rich content
130
149
  *
131
- * When children are provided, a collapse/expand chevron button appears in the
132
- * header end area (to the left of the dismiss button if present). Clicking it
133
- * toggles the visibility of the content area.
150
+ * When children are provided, a chevron toggle appears in the header end area
151
+ * (to the left of the dismiss button if present) and the content starts
152
+ * collapsed. Pass `collapsible={false}` for content that is always visible,
153
+ * or a config object to change the initial state or control it.
134
154
  *
135
155
  * Manages its own dismissed state internally — the banner hides on dismiss
136
156
  * even if `onDismiss` is not provided, so product teams don't need to wire
@@ -161,12 +181,17 @@ export interface BannerProps extends BaseProps<HTMLDivElement> {
161
181
  * <Banner
162
182
  * status="warning"
163
183
  * title="Configuration changes"
164
- * defaultIsExpanded>
184
+ * collapsible={{defaultIsOpen: true}}>
165
185
  * <p>Details here...</p>
166
186
  * </Banner>
187
+ * <Banner status="error" title="3 fields need attention" collapsible={false}>
188
+ * <ul>
189
+ * <li>Email address is invalid</li>
190
+ * </ul>
191
+ * </Banner>
167
192
  * ```
168
193
  */
169
- export declare function Banner({ status, title, description, icon, isDismissable, onDismiss, endContent, container, elevation, defaultIsExpanded, children, xstyle, className, style, ref, onFocusCapture, onPointerDownCapture, ...rest }: BannerProps): import("react").JSX.Element | null;
194
+ export declare function Banner({ status, title, description, icon, isDismissable, onDismiss, endContent, container, elevation, collapsible, children, xstyle, className, style, ref, onFocusCapture, onPointerDownCapture, ...rest }: BannerProps): import("react").JSX.Element | null;
170
195
  export declare namespace Banner {
171
196
  var displayName: string;
172
197
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Banner.d.ts","sourceRoot":"","sources":["../../src/Banner/Banner.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,OAAO,EAA0B,KAAK,SAAS,EAAC,MAAM,OAAO,CAAC;AAE9D,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAgB5C,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,gBAAgB,CAAC;AAI9C,OAAO,KAAK,EAAC,eAAe,EAAE,kBAAkB,EAAC,MAAM,SAAS,CAAC;AAMjE;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,eAAe,CAAC;AAEjD;;;;;;GAMG;AACH,MAAM,MAAM,eAAe,GAAG,MAAM,kBAAkB,CAAC;AAEvD,MAAM,WAAW,WAAY,SAAQ,SAAS,CAAC,cAAc,CAAC;IAC5D,wCAAwC;IACxC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChC;;OAEG;IACH,MAAM,EAAE,YAAY,CAAC;IACrB;;OAEG;IACH,KAAK,EAAE,SAAS,CAAC;IACjB;;OAEG;IACH,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB;;OAEG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB;;;;;;;;;;;OAWG;IACH,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B;;;;;OAKG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAmND;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,wBAAgB,MAAM,CAAC,EACrB,MAAM,EACN,KAAK,EACL,WAAW,EACX,IAAI,EACJ,aAAqB,EACrB,SAAS,EACT,UAAU,EACV,SAAkB,EAClB,SAAkB,EAClB,iBAAyB,EACzB,QAAQ,EACR,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,EACH,cAAc,EACd,oBAAoB,EACpB,GAAG,IAAI,EACR,EAAE,WAAW,sCA+Mb;yBAlOe,MAAM"}
1
+ {"version":3,"file":"Banner.d.ts","sourceRoot":"","sources":["../../src/Banner/Banner.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAEH,OAAO,EAA0B,KAAK,SAAS,EAAC,MAAM,OAAO,CAAC;AAE9D,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAgB5C,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,+BAA+B,CAAC;AAErE,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,gBAAgB,CAAC;AAI9C,OAAO,KAAK,EAAC,eAAe,EAAE,kBAAkB,EAAC,MAAM,SAAS,CAAC;AAMjE;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,eAAe,CAAC;AAEjD;;;;;;GAMG;AACH,MAAM,MAAM,eAAe,GAAG,MAAM,kBAAkB,CAAC;AAEvD,MAAM,WAAW,WAAY,SAAQ,SAAS,CAAC,cAAc,CAAC;IAC5D,wCAAwC;IACxC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChC;;OAEG;IACH,MAAM,EAAE,YAAY,CAAC;IACrB;;OAEG;IACH,KAAK,EAAE,SAAS,CAAC;IACjB;;OAEG;IACH,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB;;OAEG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB;;;;;;;;;;;OAWG;IACH,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B;;;;;OAKG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;;;;;;;;;;;;;;;;;;OAkBG;IACH,WAAW,CAAC,EAAE,OAAO,GAAG,iBAAiB,CAAC;IAC1C;;;;OAIG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAmND;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AACH,wBAAgB,MAAM,CAAC,EACrB,MAAM,EACN,KAAK,EACL,WAAW,EACX,IAAI,EACJ,aAAqB,EACrB,SAAS,EACT,UAAU,EACV,SAAkB,EAClB,SAAkB,EAClB,WAAkB,EAClB,QAAQ,EACR,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,EACH,cAAc,EACd,oBAAoB,EACpB,GAAG,IAAI,EACR,EAAE,WAAW,sCAoOb;yBAvPe,MAAM"}
@@ -4,20 +4,24 @@
4
4
 
5
5
  /**
6
6
  * @file Banner.tsx
7
- * @input Uses React useState/useRef/useId, Button, Icon (with registry string names), StyleX
7
+ * @input Uses React useState/useRef/useId, useCollapsible, Button, Icon (with registry string names), StyleX
8
8
  * @output Exports Banner component, BannerProps, BannerStatus, BannerContainer types
9
9
  * @position Core implementation; consumed by index.ts, tested by Banner.test.tsx
10
10
  *
11
11
  * Visual structure:
12
12
  * - Root container: layout-only wrapper (flex column), no visual styling, no theme target
13
13
  * - Header area (themeProps 'banner'): colored status background with icon, title, description, actions, dismiss
14
- * - Content area (themeProps 'banner-content'): collapsible card background for additional content (children)
14
+ * - Content area (themeProps 'banner-content'): card background for additional content (children)
15
15
  * - Status icon (themeProps 'banner-icon'): the target rides on the default
16
16
  * <Icon> itself — the element that paints — so 'status:X' overrides reach
17
17
  * the glyph (#4166); for a custom `icon` node it stays on the layout wrapper
18
18
  * - No left border accent — color is expressed through the full header background
19
19
  * - Each visual area owns its own border-radius (no overflow:clip on the container)
20
- * - When children are provided, a collapse/expand toggle button appears in the end area
20
+ * - Children are collapsible by default: a toggle appears in the header end
21
+ * area and the content starts closed. `collapsible={false}` opts out and
22
+ * pins the content open with no toggle. The whole collapse axis (enabled /
23
+ * default / controlled) lives on that one prop and is driven by the shared
24
+ * `useCollapsible` hook rather than local state.
21
25
  *
22
26
  * A status added through `BannerStatusMap` augmentation has no entry in the
23
27
  * status lookups, so it renders with no status fill, no default glyph and the
@@ -43,6 +47,7 @@ import { Button } from "../Button/index.js";
43
47
  import { Icon } from "../Icon/index.js";
44
48
  import "../theme/tokens.stylex.js";
45
49
  import { colorVars, spacingVars, radiusVars, fontWeightVars, typeScaleVars, borderVars, durationVars, easeVars, shadowVars } from "../theme/tokens.stylex.js";
50
+ import { useCollapsible } from "../Collapsible/useCollapsible.js";
46
51
  import { composeEventHandlers, isRenderable, mergeProps } from "../utils/index.js";
47
52
  import { edgeCompSlot } from "../Layout/edgeCompensation.stylex.js";
48
53
  import { themeProps } from "../utils/themeProps.js";
@@ -221,11 +226,12 @@ const elevationStyles = {
221
226
  *
222
227
  * Two-part visual structure:
223
228
  * - Header: colored status background with icon, title, description, and actions
224
- * - Content (optional): collapsible card background area for additional rich content
229
+ * - Content (optional): card background area for additional rich content
225
230
  *
226
- * When children are provided, a collapse/expand chevron button appears in the
227
- * header end area (to the left of the dismiss button if present). Clicking it
228
- * toggles the visibility of the content area.
231
+ * When children are provided, a chevron toggle appears in the header end area
232
+ * (to the left of the dismiss button if present) and the content starts
233
+ * collapsed. Pass `collapsible={false}` for content that is always visible,
234
+ * or a config object to change the initial state or control it.
229
235
  *
230
236
  * Manages its own dismissed state internally — the banner hides on dismiss
231
237
  * even if `onDismiss` is not provided, so product teams don't need to wire
@@ -256,9 +262,14 @@ const elevationStyles = {
256
262
  * <Banner
257
263
  * status="warning"
258
264
  * title="Configuration changes"
259
- * defaultIsExpanded>
265
+ * collapsible={{defaultIsOpen: true}}>
260
266
  * <p>Details here...</p>
261
267
  * </Banner>
268
+ * <Banner status="error" title="3 fields need attention" collapsible={false}>
269
+ * <ul>
270
+ * <li>Email address is invalid</li>
271
+ * </ul>
272
+ * </Banner>
262
273
  * ```
263
274
  */
264
275
  export function Banner({
@@ -271,7 +282,7 @@ export function Banner({
271
282
  endContent,
272
283
  container = 'card',
273
284
  elevation = 'none',
274
- defaultIsExpanded = false,
285
+ collapsible = true,
275
286
  children,
276
287
  xstyle,
277
288
  className,
@@ -283,7 +294,25 @@ export function Banner({
283
294
  }) {
284
295
  const t = useTranslator();
285
296
  const [isDismissed, setIsDismissed] = useState(false);
286
- const [isExpanded, setIsExpanded] = useState(defaultIsExpanded);
297
+ // The disclosure state machine is the shared one — Banner owns no collapse
298
+ // state of its own. `collapsible={false}` disables it, and that is what
299
+ // makes the content permanently visible.
300
+ //
301
+ // The one place Banner departs from the hook's defaults: `useCollapsible`
302
+ // opens by default, a banner starts closed. Its header already carries the
303
+ // message, so the content is supplementary — and this is the behaviour
304
+ // Banner has always had.
305
+ const collapsibleConfig = collapsible != null && typeof collapsible === 'object' ? collapsible : {};
306
+ const {
307
+ isEnabled: isCollapsible,
308
+ isOpen: isExpanded,
309
+ toggle: handleToggleExpand
310
+ } = useCollapsible({
311
+ isCollapsible: collapsible !== false && {
312
+ ...collapsibleConfig,
313
+ defaultIsOpen: collapsibleConfig.defaultIsOpen ?? false
314
+ }
315
+ });
287
316
  // The element focus came from before it entered the banner. Dismissing
288
317
  // unmounts the whole banner, dismiss button included, so without a handoff
289
318
  // the browser drops focus to <body> and a keyboard user loses their place.
@@ -292,7 +321,8 @@ export function Banner({
292
321
  // Links the expand/collapse toggle to the content region it shows/hides so
293
322
  // assistive tech can move from the button to its controlled content
294
323
  // (disclosure pattern). The region is conditionally rendered, so aria-controls
295
- // below is set only while it's mounted to avoid a dangling reference.
324
+ // below is set only while it's mounted to avoid a dangling reference. A
325
+ // non-collapsible banner has no toggle, so neither end of the link is used.
296
326
  const contentId = useId();
297
327
  const defaultIconName = defaultIconNames[status];
298
328
  const role = statusRole[status] ?? FALLBACK_ROLE;
@@ -325,17 +355,20 @@ export function Banner({
325
355
  origin.focus();
326
356
  }
327
357
  };
328
- const handleToggleExpand = () => {
329
- setIsExpanded(prev => !prev);
330
- };
331
358
 
359
+ // The toggle exists only for a collapsible banner that actually has content
360
+ // to disclose.
361
+ const hasToggle = isCollapsible && hasChildren;
332
362
  // Show the end area if there are actions, dismiss, or a collapsible toggle
333
- const showEndArea = isRenderable(endContent) || isDismissable || hasChildren;
363
+ const showEndArea = isRenderable(endContent) || isDismissable || hasToggle;
334
364
  // Center items vertically when there's only a title (no description)
335
365
  // and the banner has action buttons
336
366
  const hasActions = isRenderable(endContent) || isDismissable;
337
367
  const isSingleLine = !isRenderable(description) && hasActions;
338
- const showContent = hasChildren && isExpanded;
368
+
369
+ // Non-collapsible children are always shown; collapsible ones follow the
370
+ // hook's open state.
371
+ const showContent = hasChildren && (!isCollapsible || isExpanded);
339
372
  const isCard = container === 'card';
340
373
  return /*#__PURE__*/_jsxs("div", {
341
374
  ref: ref,
@@ -394,7 +427,7 @@ export function Banner({
394
427
  })]
395
428
  }), showEndArea && /*#__PURE__*/_jsxs("div", {
396
429
  ...stylex.props(styles.endArea, edgeCompSlot.inset(spacingVars['--spacing-2'])),
397
- children: [endContent, hasChildren && /*#__PURE__*/_jsx(Button, {
430
+ children: [endContent, hasToggle && /*#__PURE__*/_jsx(Button, {
398
431
  variant: "ghost",
399
432
  size: "sm",
400
433
  label: isExpanded ? t('@astryx.banner.collapse') : t('@astryx.banner.expand'),
@@ -424,7 +457,7 @@ export function Banner({
424
457
  })]
425
458
  })]
426
459
  }), showContent && /*#__PURE__*/_jsx("div", {
427
- id: contentId,
460
+ id: hasToggle ? contentId : undefined,
428
461
  ...mergeProps(themeProps('banner-content', {
429
462
  container,
430
463
  status
@@ -1 +1 @@
1
- {"version":3,"file":"BottomSheetSwitcher.d.ts","sourceRoot":"","sources":["../../src/BottomSheet/BottomSheetSwitcher.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAQL,KAAK,SAAS,EACd,KAAK,cAAc,EACpB,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAoI5C,MAAM,WAAW,wBAAyB,SAAQ,SAAS,CAAC,iBAAiB,CAAC;IAC5E,iDAAiD;IACjD,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAEnC,oEAAoE;IACpE,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IAE9D;;;;;OAKG;IACH,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAE3B,iEAAiE;IACjE,mBAAmB,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAEtD;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,0DAA0D;IAC1D,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,WAAW,EACX,mBAAmB,EACnB,QAAe,EACf,QAAQ,EACR,GAAG,EACH,MAAM,EACN,SAAS,EACT,KAAK,EACL,QAAQ,EACR,OAAO,EACP,SAAS,EACT,GAAG,KAAK,EACT,EAAE,wBAAwB,+BA+Z1B;yBA5ae,mBAAmB"}
1
+ {"version":3,"file":"BottomSheetSwitcher.d.ts","sourceRoot":"","sources":["../../src/BottomSheet/BottomSheetSwitcher.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAQL,KAAK,SAAS,EACd,KAAK,cAAc,EACpB,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAqI5C,MAAM,WAAW,wBAAyB,SAAQ,SAAS,CAAC,iBAAiB,CAAC;IAC5E,iDAAiD;IACjD,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAEnC,oEAAoE;IACpE,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IAE9D;;;;;OAKG;IACH,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAE3B,iEAAiE;IACjE,mBAAmB,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAEtD;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,0DAA0D;IAC1D,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,WAAW,EACX,mBAAmB,EACnB,QAAe,EACf,QAAQ,EACR,GAAG,EACH,MAAM,EACN,SAAS,EACT,KAAK,EACL,QAAQ,EACR,OAAO,EACP,SAAS,EACT,GAAG,KAAK,EACT,EAAE,wBAAwB,+BA+Z1B;yBA5ae,mBAAmB"}
@@ -34,9 +34,10 @@ import * as stylex from '@stylexjs/stylex';
34
34
  import "../theme/tokens.stylex.js";
35
35
  import { colorVars, durationVars, easeVars } from "../theme/tokens.stylex.js";
36
36
  import { hasActiveFocusTrapEscape, isImeKeyEvent, useFocusTrap, useScrollLock } from "../hooks/index.js";
37
- import { composeEventHandlers, mergeProps, mergeRefs } from "../utils/index.js";
37
+ import { composeEventHandlers, mergeProps } from "../utils/index.js";
38
38
  import { BottomSheetEdgeTint } from "./BottomSheetEdgeTint.js";
39
39
  import { BottomSheetSwitcherContext } from "./BottomSheetSwitcherContext.js";
40
+ import { useMergedRefs } from "../hooks/useMergedRefs.js";
40
41
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
41
42
  const styles = {
42
43
  dialog: {
@@ -400,7 +401,7 @@ export function BottomSheetSwitcher({
400
401
  children: /*#__PURE__*/_jsxs("dialog", {
401
402
  ...props,
402
403
  ...dialogPresentationProps,
403
- ref: mergeRefs(ref, dialogRef, containerRef),
404
+ ref: useMergedRefs(ref, dialogRef, containerRef),
404
405
  "aria-label": ariaLabel,
405
406
  "aria-modal": isModal ? 'true' : undefined,
406
407
  onCancel: composeEventHandlers(onCancel, handleCancel),
@@ -1 +1 @@
1
- {"version":3,"file":"BreadcrumbItem.d.ts","sourceRoot":"","sources":["../../src/Breadcrumbs/BreadcrumbItem.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,EAOZ,KAAK,SAAS,EACd,KAAK,UAAU,EAChB,MAAM,OAAO,CAAC;AAWf,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,eAAe,CAAC;AAErD,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAS5C,OAAO,EAGL,KAAK,gBAAgB,EACtB,MAAM,qCAAqC,CAAC;AAM7C,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,8BAA8B,CAAC;AAMrE,MAAM,WAAW,mBAAoB,SAAQ,IAAI,CAC/C,SAAS,CAAC,aAAa,CAAC,EACxB,SAAS,CACV;IACC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAC/B;;;;OAIG;IACH,EAAE,CAAC,EAAE,iBAAiB,CAAC;IACvB;;OAEG;IACH,QAAQ,EAAE,SAAS,CAAC;IACpB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;IAC/C;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;;;;;;;;;;;;;OAaG;IACH,IAAI,CAAC,EAAE,kBAAkB,EAAE,GAAG,SAAS,CAAC;IACxC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,gBAAgB,CAAC;CAC7B;AAyHD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAAC,EAC7B,GAAG,EACH,EAAE,EACF,QAAQ,EACR,IAAI,EACJ,OAAO,EACP,SAAS,EAAE,aAAa,EACxB,SAAS,EACT,IAAI,EACJ,QAAQ,EACR,MAAM,EACN,SAAS,EACT,KAAK,EACL,aAAa,EAAE,MAAM,EACrB,GAAG,IAAI,EACR,EAAE,mBAAmB,qBAoMrB;yBAnNe,cAAc"}
1
+ {"version":3,"file":"BreadcrumbItem.d.ts","sourceRoot":"","sources":["../../src/Breadcrumbs/BreadcrumbItem.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,EAOZ,KAAK,SAAS,EACd,KAAK,UAAU,EAChB,MAAM,OAAO,CAAC;AAWf,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,eAAe,CAAC;AAErD,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAS5C,OAAO,EAGL,KAAK,gBAAgB,EACtB,MAAM,qCAAqC,CAAC;AAM7C,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,8BAA8B,CAAC;AAOrE,MAAM,WAAW,mBAAoB,SAAQ,IAAI,CAC/C,SAAS,CAAC,aAAa,CAAC,EACxB,SAAS,CACV;IACC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAC/B;;;;OAIG;IACH,EAAE,CAAC,EAAE,iBAAiB,CAAC;IACvB;;OAEG;IACH,QAAQ,EAAE,SAAS,CAAC;IACpB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;IAC/C;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;;;;;;;;;;;;;OAaG;IACH,IAAI,CAAC,EAAE,kBAAkB,EAAE,GAAG,SAAS,CAAC;IACxC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,gBAAgB,CAAC;CAC7B;AAyHD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAAC,EAC7B,GAAG,EACH,EAAE,EACF,QAAQ,EACR,IAAI,EACJ,OAAO,EACP,SAAS,EAAE,aAAa,EACxB,SAAS,EACT,IAAI,EACJ,QAAQ,EACR,MAAM,EACN,SAAS,EACT,KAAK,EACL,aAAa,EAAE,MAAM,EACrB,GAAG,IAAI,EACR,EAAE,mBAAmB,qBAsMrB;yBArNe,cAAc"}
@@ -27,7 +27,7 @@ import "../theme/tokens.stylex.js";
27
27
  import { colorVars, spacingVars, typeScaleVars, radiusVars, fontWeightVars } from "../theme/tokens.stylex.js";
28
28
  import { BreadcrumbContext } from "./Breadcrumbs.js";
29
29
  import { useLinkComponent } from "../Link/useLinkComponent.js";
30
- import { mergeProps, mergeRefs } from "../utils/index.js";
30
+ import { mergeProps } from "../utils/index.js";
31
31
  import { themeProps } from "../utils/themeProps.js";
32
32
  import { focusOutlineProps } from "../utils/focusOutline.stylex.js";
33
33
  import { Icon } from "../Icon/index.js";
@@ -38,7 +38,7 @@ import { layerAnimations } from "../Layer/layerAnimations.stylex.js";
38
38
  import { renderDropdownItems } from "../DropdownMenu/renderDropdownItems.js";
39
39
  import { DropdownMenuContext } from "../DropdownMenu/DropdownMenuContext.js";
40
40
  import { MENU_ITEM_ROLES, MENU_ITEM_SELECTOR, MENU_BOUNDARY_SELECTOR } from "../DropdownMenu/menuItemRoles.js";
41
-
41
+ import { useMergedRefs } from "../hooks/useMergedRefs.js";
42
42
  // =============================================================================
43
43
  // Props
44
44
  // =============================================================================
@@ -203,6 +203,7 @@ export function BreadcrumbItem({
203
203
  };
204
204
  }
205
205
  });
206
+ const mergedItemRef = useMergedRefs(ref, liRef);
206
207
  const content = /*#__PURE__*/_jsxs(_Fragment, {
207
208
  children: [startIcon && /*#__PURE__*/_jsx("span", {
208
209
  ...{
@@ -213,7 +214,7 @@ export function BreadcrumbItem({
213
214
  });
214
215
  if (isCurrent) {
215
216
  return /*#__PURE__*/_jsxs("li", {
216
- ref: mergeRefs(ref, liRef),
217
+ ref: mergedItemRef,
217
218
  ...mergeProps(themeProps('breadcrumb-item', {
218
219
  variant: ctx.variant
219
220
  }), stylex.props(itemStyles.root, isSupporting ? itemStyles.supportingSize : itemStyles.defaultSize, xstyle), className, style),
@@ -255,7 +256,7 @@ export function BreadcrumbItem({
255
256
  // Items without isCurrent set render as links (if href) or plain spans.
256
257
  // The effect handles adding aria-current for auto-last detection.
257
258
  return /*#__PURE__*/_jsxs("li", {
258
- ref: mergeRefs(ref, liRef),
259
+ ref: mergedItemRef,
259
260
  ...mergeProps(themeProps('breadcrumb-item', {
260
261
  variant: ctx.variant
261
262
  }), stylex.props(itemStyles.root, isSupporting ? itemStyles.supportingSize : itemStyles.defaultSize, xstyle), className, style),
@@ -408,7 +409,7 @@ function BreadcrumbMenuTrigger({
408
409
  const menuContent = Array.isArray(menu) ? renderDropdownItems(menu) : menu;
409
410
  return /*#__PURE__*/_jsxs(_Fragment, {
410
411
  children: [/*#__PURE__*/_jsxs("button", {
411
- ref: mergeRefs(ref, buttonRef, popover.triggerRef),
412
+ ref: useMergedRefs(ref, buttonRef, popover.triggerRef),
412
413
  type: "button",
413
414
  onClick: handleClick,
414
415
  onKeyDown: handleKeyDown,
@@ -67,6 +67,10 @@ export interface ButtonGroupProps extends BaseProps<HTMLDivElement> {
67
67
  * Children automatically detect the group via context and apply position-aware
68
68
  * styles in pure CSS.
69
69
  *
70
+ * The group is a single tab stop: arrow keys move between members along the
71
+ * orientation, Home/End jump to the ends, focus wraps, and disabled members are
72
+ * skipped (the APG roving tabindex technique, via `useListFocus`).
73
+ *
70
74
  * Members that render their own layer — a Button with a `tooltip`, or a
71
75
  * DropdownMenu — compose correctly, including as the trailing member.
72
76
  *
@@ -90,7 +94,7 @@ export interface ButtonGroupProps extends BaseProps<HTMLDivElement> {
90
94
  * </ButtonGroup>
91
95
  * ```
92
96
  */
93
- export declare function ButtonGroup({ children, label, orientation, size: sizeProp, isDisabled, elevation, xstyle, className, style, ref, 'data-testid': testId, onKeyDown, ...props }: ButtonGroupProps): ReactNode;
97
+ export declare function ButtonGroup({ children, label, orientation, size: sizeProp, isDisabled, elevation, xstyle, className, style, ref, 'data-testid': testId, onKeyDown, onFocus, ...props }: ButtonGroupProps): ReactNode;
94
98
  export declare namespace ButtonGroup {
95
99
  var displayName: string;
96
100
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ButtonGroup.d.ts","sourceRoot":"","sources":["../../src/ButtonGroup/ButtonGroup.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAU,KAAK,SAAS,EAAC,MAAM,OAAO,CAAC;AAE9C,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,WAAW,CAAC;AAE1C,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,gBAAgB,CAAC;AAI9C,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAE5C,OAAO,KAAK,EAAC,sBAAsB,EAAC,MAAM,sBAAsB,CAAC;AAOjE,MAAM,WAAW,gBAAiB,SAAQ,SAAS,CAAC,cAAc,CAAC;IACjE,yCAAyC;IACzC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAEhC;;OAEG;IACH,QAAQ,EAAE,SAAS,CAAC;IAEpB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,WAAW,CAAC,EAAE,sBAAsB,CAAC;IAErC;;;;OAIG;IACH,IAAI,CAAC,EAAE,UAAU,CAAC;IAElB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IAEtB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAwCD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,WAAW,CAAC,EAC1B,QAAQ,EACR,KAAK,EACL,WAA0B,EAC1B,IAAI,EAAE,QAAQ,EACd,UAAkB,EAClB,SAAkB,EAClB,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,EACH,aAAa,EAAE,MAAM,EACrB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,gBAAgB,GAAG,SAAS,CA+C9B;yBA7De,WAAW"}
1
+ {"version":3,"file":"ButtonGroup.d.ts","sourceRoot":"","sources":["../../src/ButtonGroup/ButtonGroup.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAU,KAAK,SAAS,EAAC,MAAM,OAAO,CAAC;AAE9C,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,WAAW,CAAC;AAE1C,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,gBAAgB,CAAC;AAI9C,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAE5C,OAAO,KAAK,EAAC,sBAAsB,EAAC,MAAM,sBAAsB,CAAC;AAQjE,MAAM,WAAW,gBAAiB,SAAQ,SAAS,CAAC,cAAc,CAAC;IACjE,yCAAyC;IACzC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAEhC;;OAEG;IACH,QAAQ,EAAE,SAAS,CAAC;IAEpB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,WAAW,CAAC,EAAE,sBAAsB,CAAC;IAErC;;;;OAIG;IACH,IAAI,CAAC,EAAE,UAAU,CAAC;IAElB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IAEtB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAwCD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,WAAW,CAAC,EAC1B,QAAQ,EACR,KAAK,EACL,WAA0B,EAC1B,IAAI,EAAE,QAAQ,EACd,UAAkB,EAClB,SAAkB,EAClB,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,EACH,aAAa,EAAE,MAAM,EACrB,SAAS,EACT,OAAO,EACP,GAAG,KAAK,EACT,EAAE,gBAAgB,GAAG,SAAS,CAoD9B;yBAnEe,WAAW"}
@@ -26,10 +26,10 @@ import "../theme/tokens.stylex.js";
26
26
  import { radiusVars, shadowVars } from "../theme/tokens.stylex.js";
27
27
  import { SizeProvider, useSize } from "../SizeContext/SizeContext.js";
28
28
  import { useListFocus } from "../hooks/useListFocus.js";
29
- import { mergeProps, mergeRefs, composeEventHandlers } from "../utils/index.js";
29
+ import { mergeProps, composeEventHandlers } from "../utils/index.js";
30
30
  import { ButtonGroupContext } from "./ButtonGroupContext.js";
31
31
  import { themeProps } from "../utils/themeProps.js";
32
-
32
+ import { useMergedRefs } from "../hooks/useMergedRefs.js";
33
33
  // =============================================================================
34
34
  // Props
35
35
  // =============================================================================
@@ -87,6 +87,10 @@ const elevationStyles = {
87
87
  * Children automatically detect the group via context and apply position-aware
88
88
  * styles in pure CSS.
89
89
  *
90
+ * The group is a single tab stop: arrow keys move between members along the
91
+ * orientation, Home/End jump to the ends, focus wraps, and disabled members are
92
+ * skipped (the APG roving tabindex technique, via `useListFocus`).
93
+ *
90
94
  * Members that render their own layer — a Button with a `tooltip`, or a
91
95
  * DropdownMenu — compose correctly, including as the trailing member.
92
96
  *
@@ -123,14 +127,19 @@ export function ButtonGroup({
123
127
  ref,
124
128
  'data-testid': testId,
125
129
  onKeyDown,
130
+ onFocus,
126
131
  ...props
127
132
  }) {
128
133
  const size = useSize(sizeProp, 'md');
129
134
  const {
130
135
  listRef,
131
- handleKeyDown
136
+ handleKeyDown,
137
+ handleFocus
132
138
  } = useListFocus({
133
- itemSelector: 'button, [tabindex="0"]',
139
+ // Roving rewrites `tabindex` on every item, so the selector cannot key off
140
+ // a value: `[tabindex="0"]` would drop each member the moment it is
141
+ // stamped -1. `a[href]` catches a Button rendered with `href`.
142
+ itemSelector: 'button, a[href], [tabindex]',
134
143
  // A member's layer renders inline inside the group (useLayer does not
135
144
  // portal it), so a key pressed in an open DropdownMenu bubbles here. The
136
145
  // boundary is the group's own root or any layer, whichever is nearer to
@@ -138,7 +147,8 @@ export function ButtonGroup({
138
147
  // inside a Popover or Toast working: bailing on any [popover] ancestor
139
148
  // instead would swallow every arrow key it owns.
140
149
  boundarySelector: '[role="group"], [popover]',
141
- orientation
150
+ orientation,
151
+ hasRovingTabIndex: true
142
152
  });
143
153
  const contextValue = useMemo(() => ({
144
154
  orientation,
@@ -149,7 +159,7 @@ export function ButtonGroup({
149
159
  children: /*#__PURE__*/_jsx(SizeProvider, {
150
160
  value: size,
151
161
  children: /*#__PURE__*/_jsx("div", {
152
- ref: mergeRefs(ref, listRef),
162
+ ref: useMergedRefs(ref, listRef),
153
163
  ...props,
154
164
  ...mergeProps(themeProps('button-group', {
155
165
  size,
@@ -159,6 +169,7 @@ export function ButtonGroup({
159
169
  role: "group",
160
170
  "aria-label": label,
161
171
  onKeyDown: composeEventHandlers(onKeyDown, handleKeyDown),
172
+ onFocus: composeEventHandlers(onFocus, handleFocus),
162
173
  "aria-disabled": isDisabled || undefined,
163
174
  "data-testid": testId,
164
175
  children: children
@@ -1 +1 @@
1
- {"version":3,"file":"Carousel.d.ts","sourceRoot":"","sources":["../../src/Carousel/Carousel.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EACL,KAAK,SAAS,EAOf,MAAM,OAAO,CAAC;AAef,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAE5C,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAIhD;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,UAAU,IAAI,IAAI,CAAC;IACnB;;;OAGG;IACH,UAAU,IAAI,IAAI,CAAC;IACnB;;;;OAIG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B;;;;OAIG;IACH,aAAa,IAAI,OAAO,CAAC;IACzB;;;OAGG;IACH,aAAa,IAAI,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,aAAc,SAAQ,SAAS,CAAC,cAAc,CAAC;IAC9D,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChC;;;OAGG;IACH,SAAS,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IACtC,kEAAkE;IAClE,QAAQ,EAAE,SAAS,CAAC;IACpB;;;OAGG;IACH,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACpC;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AA+JD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,QAAQ,CAAC,EACvB,GAAG,EACH,SAAS,EACT,QAAQ,EACR,GAAO,EACP,UAAiB,EACjB,WAAkB,EAClB,OAAe,EACf,OAAe,EACf,OAAO,EACP,YAAY,EAAE,kBAAkB,EAChC,MAAM,EACN,SAAS,EACT,KAAK,EACL,aAAa,EAAE,MAAM,EACrB,GAAG,SAAS,EACb,EAAE,aAAa,+BAqRf;yBArSe,QAAQ"}
1
+ {"version":3,"file":"Carousel.d.ts","sourceRoot":"","sources":["../../src/Carousel/Carousel.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EACL,KAAK,SAAS,EAOf,MAAM,OAAO,CAAC;AAef,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAE5C,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAKhD;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,UAAU,IAAI,IAAI,CAAC;IACnB;;;OAGG;IACH,UAAU,IAAI,IAAI,CAAC;IACnB;;;;OAIG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B;;;;OAIG;IACH,aAAa,IAAI,OAAO,CAAC;IACzB;;;OAGG;IACH,aAAa,IAAI,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,aAAc,SAAQ,SAAS,CAAC,cAAc,CAAC;IAC9D,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAChC;;;OAGG;IACH,SAAS,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IACtC,kEAAkE;IAClE,QAAQ,EAAE,SAAS,CAAC;IACpB;;;OAGG;IACH,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACpC;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AA+JD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,QAAQ,CAAC,EACvB,GAAG,EACH,SAAS,EACT,QAAQ,EACR,GAAO,EACP,UAAiB,EACjB,WAAkB,EAClB,OAAe,EACf,OAAe,EACf,OAAO,EACP,YAAY,EAAE,kBAAkB,EAChC,MAAM,EACN,SAAS,EACT,KAAK,EACL,aAAa,EAAE,MAAM,EACrB,GAAG,SAAS,EACb,EAAE,aAAa,+BAqRf;yBArSe,QAAQ"}
@@ -30,10 +30,10 @@ import { Icon } from "../Icon/index.js";
30
30
  import { useLayer } from "../Layer/index.js";
31
31
  import { useScrollOverflow } from "../hooks/useScrollOverflow.js";
32
32
  import { isRtlElement } from "../hooks/isRtlElement.js";
33
- import { mergeProps, mergeRefs, rtlStyles } from "../utils/index.js";
33
+ import { mergeProps, rtlStyles } from "../utils/index.js";
34
34
  import { themeProps } from "../utils/themeProps.js";
35
35
  import { useTranslator } from "../i18n/index.js";
36
-
36
+ import { useMergedRefs } from "../hooks/useMergedRefs.js";
37
37
  /**
38
38
  * Imperative control surface for the Carousel, accessed via the `handleRef`
39
39
  * prop. Methods drive the same native-scroll machinery as the built-in
@@ -369,7 +369,7 @@ export function Carousel({
369
369
  height: 'anchor-size(height)'
370
370
  };
371
371
  return /*#__PURE__*/_jsxs("div", {
372
- ref: mergeRefs(ref, layer.ref),
372
+ ref: useMergedRefs(ref, layer.ref),
373
373
  "data-testid": testId,
374
374
  ...htmlProps,
375
375
  ...mergeProps(themeProps('carousel'), stylex.props(styles.root, xstyle), className, style),
@@ -1 +1 @@
1
- {"version":3,"file":"ChatComposerInput.d.ts","sourceRoot":"","sources":["../../src/Chat/ChatComposerInput.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ChatComposerInput.d.ts","sourceRoot":"","sources":["../../src/Chat/ChatComposerInput.tsx"],"names":[],"mappings":"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"}
@@ -509,9 +509,8 @@ export function ChatComposerTokenElement({
509
509
  "data-astryx-token": "",
510
510
  "data-astryx-token-value": token.value,
511
511
  contentEditable: false,
512
- style: {
513
- display: 'inline-flex',
514
- verticalAlign: 'baseline'
512
+ ...{
513
+ className: "x3nfvp2 xxymvpz"
515
514
  },
516
515
  children: isCustomToken(token) ? token.render() : /*#__PURE__*/_jsx(Badge, {
517
516
  label: token.label,
@@ -1 +1 @@
1
- {"version":3,"file":"ChatLayout.d.ts","sourceRoot":"","sources":["../../src/Chat/ChatLayout.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAAC,KAAK,SAAS,EAAkB,MAAM,OAAO,CAAC;AAGtD,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAa5C,KAAK,OAAO,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,CAAC;AAEnD,MAAM,WAAW,eAAgB,SAAQ,SAAS,CAAC,cAAc,CAAC;IAChE,yCAAyC;IACzC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAEhC;;;OAGG;IACH,QAAQ,EAAE,SAAS,CAAC;IAEpB;;;OAGG;IACH,QAAQ,EAAE,SAAS,CAAC;IAEpB;;OAEG;IACH,UAAU,CAAC,EAAE,SAAS,CAAC;IAEvB;;;;OAIG;IACH,YAAY,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IAEhC;;;;;;;;;;;OAWG;IACH,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IAEhD;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AA4KD,wBAAgB,UAAU,CAAC,EACzB,QAAQ,EACR,QAAQ,EACR,OAAoB,EACpB,UAAU,EACV,YAAY,EACZ,SAAS,EAAE,iBAAiB,EAC5B,MAAM,EACN,SAAS,EACT,KAAK,EACL,aAAa,EAAE,MAAM,EACrB,GAAG,EACH,GAAG,IAAI,EACR,EAAE,eAAe,+BA4GjB;yBAzHe,UAAU"}
1
+ {"version":3,"file":"ChatLayout.d.ts","sourceRoot":"","sources":["../../src/Chat/ChatLayout.tsx"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAAC,KAAK,SAAS,EAAkB,MAAM,OAAO,CAAC;AAGtD,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAc5C,KAAK,OAAO,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,CAAC;AAEnD,MAAM,WAAW,eAAgB,SAAQ,SAAS,CAAC,cAAc,CAAC;IAChE,yCAAyC;IACzC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAEhC;;;OAGG;IACH,QAAQ,EAAE,SAAS,CAAC;IAEpB;;;OAGG;IACH,QAAQ,EAAE,SAAS,CAAC;IAEpB;;OAEG;IACH,UAAU,CAAC,EAAE,SAAS,CAAC;IAEvB;;;;OAIG;IACH,YAAY,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IAEhC;;;;;;;;;;;OAWG;IACH,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IAEhD;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AA4KD,wBAAgB,UAAU,CAAC,EACzB,QAAQ,EACR,QAAQ,EACR,OAAoB,EACpB,UAAU,EACV,YAAY,EACZ,SAAS,EAAE,iBAAiB,EAC5B,MAAM,EACN,SAAS,EACT,KAAK,EACL,aAAa,EAAE,MAAM,EACrB,GAAG,EACH,GAAG,IAAI,EACR,EAAE,eAAe,+BA4GjB;yBAzHe,UAAU"}