@salt-ds/lab 1.0.0-alpha.93 → 1.0.0-alpha.95

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 (226) hide show
  1. package/CHANGELOG.md +214 -0
  2. package/css/salt-lab.css +190 -143
  3. package/dist-cjs/index.js +12 -58
  4. package/dist-cjs/index.js.map +1 -1
  5. package/dist-cjs/mega-menu/MegaMenuGroup.js +2 -5
  6. package/dist-cjs/mega-menu/MegaMenuGroup.js.map +1 -1
  7. package/dist-cjs/mega-menu/MegaMenuGroups.css.js +6 -0
  8. package/dist-cjs/mega-menu/MegaMenuGroups.css.js.map +1 -0
  9. package/dist-cjs/mega-menu/{MegaMenuSection.js → MegaMenuGroups.js} +8 -8
  10. package/dist-cjs/mega-menu/MegaMenuGroups.js.map +1 -0
  11. package/dist-cjs/mega-menu/MegaMenuHeader.js +0 -1
  12. package/dist-cjs/mega-menu/MegaMenuHeader.js.map +1 -1
  13. package/dist-cjs/mega-menu/MegaMenuItem.css.js +1 -1
  14. package/dist-cjs/mega-menu/MegaMenuItem.js +6 -5
  15. package/dist-cjs/mega-menu/MegaMenuItem.js.map +1 -1
  16. package/dist-cjs/mega-menu/MegaMenuSupportingActions.css.js +6 -0
  17. package/dist-cjs/mega-menu/MegaMenuSupportingActions.css.js.map +1 -0
  18. package/dist-cjs/mega-menu/MegaMenuSupportingActions.js +31 -0
  19. package/dist-cjs/mega-menu/MegaMenuSupportingActions.js.map +1 -0
  20. package/dist-cjs/mega-menu/MegaMenuSupportingContent.css.js +6 -0
  21. package/dist-cjs/mega-menu/MegaMenuSupportingContent.css.js.map +1 -0
  22. package/dist-cjs/mega-menu/MegaMenuSupportingContent.js +31 -0
  23. package/dist-cjs/mega-menu/MegaMenuSupportingContent.js.map +1 -0
  24. package/dist-cjs/mega-menu/useMegaMenuKeyboard.js +2 -2
  25. package/dist-cjs/mega-menu/useMegaMenuKeyboard.js.map +1 -1
  26. package/dist-cjs/toolbar-next/ToolbarContentNext.css.js +6 -0
  27. package/dist-cjs/toolbar-next/ToolbarContentNext.css.js.map +1 -0
  28. package/dist-cjs/toolbar-next/ToolbarContentNext.js +32 -0
  29. package/dist-cjs/toolbar-next/ToolbarContentNext.js.map +1 -0
  30. package/dist-cjs/toolbar-next/ToolbarNext.css.js +6 -0
  31. package/dist-cjs/toolbar-next/ToolbarNext.css.js.map +1 -0
  32. package/dist-cjs/toolbar-next/ToolbarNext.js +394 -0
  33. package/dist-cjs/toolbar-next/ToolbarNext.js.map +1 -0
  34. package/dist-cjs/toolbar-next/ToolbarNextOverflow.css.js +6 -0
  35. package/dist-cjs/toolbar-next/ToolbarNextOverflow.css.js.map +1 -0
  36. package/dist-cjs/toolbar-next/ToolbarNextOverflow.js +706 -0
  37. package/dist-cjs/toolbar-next/ToolbarNextOverflow.js.map +1 -0
  38. package/dist-cjs/toolbar-next/ToolbarNextOverflowFloatingBoundary.js +165 -0
  39. package/dist-cjs/toolbar-next/ToolbarNextOverflowFloatingBoundary.js.map +1 -0
  40. package/dist-cjs/toolbar-next/TooltrayNext.css.js +6 -0
  41. package/dist-cjs/toolbar-next/TooltrayNext.css.js.map +1 -0
  42. package/dist-cjs/toolbar-next/TooltrayNext.js +55 -0
  43. package/dist-cjs/toolbar-next/TooltrayNext.js.map +1 -0
  44. package/dist-cjs/toolbar-next/toolbarNextKeyboardUtils.js +409 -0
  45. package/dist-cjs/toolbar-next/toolbarNextKeyboardUtils.js.map +1 -0
  46. package/dist-cjs/toolbar-next/toolbarNextUtils.js +215 -0
  47. package/dist-cjs/toolbar-next/toolbarNextUtils.js.map +1 -0
  48. package/dist-cjs/toolbar-next/useToolbarNextKeyboardNavigation.js +312 -0
  49. package/dist-cjs/toolbar-next/useToolbarNextKeyboardNavigation.js.map +1 -0
  50. package/dist-cjs/toolbar-next/useToolbarNextOverflow.js +743 -0
  51. package/dist-cjs/toolbar-next/useToolbarNextOverflow.js.map +1 -0
  52. package/dist-es/index.js +6 -12
  53. package/dist-es/index.js.map +1 -1
  54. package/dist-es/mega-menu/MegaMenuGroup.js +2 -5
  55. package/dist-es/mega-menu/MegaMenuGroup.js.map +1 -1
  56. package/dist-es/mega-menu/MegaMenuGroups.css.js +4 -0
  57. package/dist-es/mega-menu/MegaMenuGroups.css.js.map +1 -0
  58. package/dist-es/mega-menu/{MegaMenuSection.js → MegaMenuGroups.js} +7 -7
  59. package/dist-es/mega-menu/MegaMenuGroups.js.map +1 -0
  60. package/dist-es/mega-menu/MegaMenuHeader.js +0 -1
  61. package/dist-es/mega-menu/MegaMenuHeader.js.map +1 -1
  62. package/dist-es/mega-menu/MegaMenuItem.css.js +1 -1
  63. package/dist-es/mega-menu/MegaMenuItem.js +7 -6
  64. package/dist-es/mega-menu/MegaMenuItem.js.map +1 -1
  65. package/dist-es/mega-menu/MegaMenuSupportingActions.css.js +4 -0
  66. package/dist-es/mega-menu/MegaMenuSupportingActions.css.js.map +1 -0
  67. package/dist-es/mega-menu/MegaMenuSupportingActions.js +29 -0
  68. package/dist-es/mega-menu/MegaMenuSupportingActions.js.map +1 -0
  69. package/dist-es/mega-menu/MegaMenuSupportingContent.css.js +4 -0
  70. package/dist-es/mega-menu/MegaMenuSupportingContent.css.js.map +1 -0
  71. package/dist-es/mega-menu/MegaMenuSupportingContent.js +29 -0
  72. package/dist-es/mega-menu/MegaMenuSupportingContent.js.map +1 -0
  73. package/dist-es/mega-menu/useMegaMenuKeyboard.js +2 -2
  74. package/dist-es/mega-menu/useMegaMenuKeyboard.js.map +1 -1
  75. package/dist-es/toolbar-next/ToolbarContentNext.css.js +4 -0
  76. package/dist-es/toolbar-next/ToolbarContentNext.css.js.map +1 -0
  77. package/dist-es/toolbar-next/ToolbarContentNext.js +30 -0
  78. package/dist-es/toolbar-next/ToolbarContentNext.js.map +1 -0
  79. package/dist-es/toolbar-next/ToolbarNext.css.js +4 -0
  80. package/dist-es/toolbar-next/ToolbarNext.css.js.map +1 -0
  81. package/dist-es/toolbar-next/ToolbarNext.js +392 -0
  82. package/dist-es/toolbar-next/ToolbarNext.js.map +1 -0
  83. package/dist-es/toolbar-next/ToolbarNextOverflow.css.js +4 -0
  84. package/dist-es/toolbar-next/ToolbarNextOverflow.css.js.map +1 -0
  85. package/dist-es/toolbar-next/ToolbarNextOverflow.js +701 -0
  86. package/dist-es/toolbar-next/ToolbarNextOverflow.js.map +1 -0
  87. package/dist-es/toolbar-next/ToolbarNextOverflowFloatingBoundary.js +159 -0
  88. package/dist-es/toolbar-next/ToolbarNextOverflowFloatingBoundary.js.map +1 -0
  89. package/dist-es/toolbar-next/TooltrayNext.css.js +4 -0
  90. package/dist-es/toolbar-next/TooltrayNext.css.js.map +1 -0
  91. package/dist-es/toolbar-next/TooltrayNext.js +53 -0
  92. package/dist-es/toolbar-next/TooltrayNext.js.map +1 -0
  93. package/dist-es/toolbar-next/toolbarNextKeyboardUtils.js +390 -0
  94. package/dist-es/toolbar-next/toolbarNextKeyboardUtils.js.map +1 -0
  95. package/dist-es/toolbar-next/toolbarNextUtils.js +211 -0
  96. package/dist-es/toolbar-next/toolbarNextUtils.js.map +1 -0
  97. package/dist-es/toolbar-next/useToolbarNextKeyboardNavigation.js +310 -0
  98. package/dist-es/toolbar-next/useToolbarNextKeyboardNavigation.js.map +1 -0
  99. package/dist-es/toolbar-next/useToolbarNextOverflow.js +741 -0
  100. package/dist-es/toolbar-next/useToolbarNextOverflow.js.map +1 -0
  101. package/dist-types/index.d.ts +1 -5
  102. package/dist-types/mega-menu/MegaMenuGroups.d.ts +8 -0
  103. package/dist-types/mega-menu/MegaMenuItem.d.ts +3 -2
  104. package/dist-types/mega-menu/MegaMenuSupportingActions.d.ts +8 -0
  105. package/dist-types/mega-menu/MegaMenuSupportingContent.d.ts +8 -0
  106. package/dist-types/mega-menu/index.d.ts +3 -3
  107. package/dist-types/toolbar-next/ToolbarContentNext.d.ts +11 -0
  108. package/dist-types/toolbar-next/ToolbarNext.d.ts +12 -0
  109. package/dist-types/toolbar-next/ToolbarNextOverflow.d.ts +34 -0
  110. package/dist-types/toolbar-next/ToolbarNextOverflowFloatingBoundary.d.ts +16 -0
  111. package/dist-types/toolbar-next/TooltrayNext.d.ts +37 -0
  112. package/dist-types/toolbar-next/index.d.ts +3 -0
  113. package/dist-types/toolbar-next/toolbarNextKeyboardUtils.d.ts +39 -0
  114. package/dist-types/toolbar-next/toolbarNextUtils.d.ts +42 -0
  115. package/dist-types/toolbar-next/useToolbarNextKeyboardNavigation.d.ts +42 -0
  116. package/dist-types/toolbar-next/useToolbarNextOverflow.d.ts +37 -0
  117. package/package.json +2 -4
  118. package/dist-cjs/calendar/index.js +0 -61
  119. package/dist-cjs/calendar/index.js.map +0 -1
  120. package/dist-cjs/date-input/index.js +0 -23
  121. package/dist-cjs/date-input/index.js.map +0 -1
  122. package/dist-cjs/date-picker/index.js +0 -106
  123. package/dist-cjs/date-picker/index.js.map +0 -1
  124. package/dist-cjs/localization-provider/index.js +0 -26
  125. package/dist-cjs/localization-provider/index.js.map +0 -1
  126. package/dist-cjs/mega-menu/MegaMenuContent.css.js +0 -6
  127. package/dist-cjs/mega-menu/MegaMenuContent.css.js.map +0 -1
  128. package/dist-cjs/mega-menu/MegaMenuContent.js +0 -33
  129. package/dist-cjs/mega-menu/MegaMenuContent.js.map +0 -1
  130. package/dist-cjs/mega-menu/MegaMenuItemContent.css.js +0 -6
  131. package/dist-cjs/mega-menu/MegaMenuItemContent.css.js.map +0 -1
  132. package/dist-cjs/mega-menu/MegaMenuItemContent.js +0 -23
  133. package/dist-cjs/mega-menu/MegaMenuItemContent.js.map +0 -1
  134. package/dist-cjs/mega-menu/MegaMenuSection.css.js +0 -6
  135. package/dist-cjs/mega-menu/MegaMenuSection.css.js.map +0 -1
  136. package/dist-cjs/mega-menu/MegaMenuSection.js.map +0 -1
  137. package/dist-cjs/tree/Tree.css.js +0 -6
  138. package/dist-cjs/tree/Tree.css.js.map +0 -1
  139. package/dist-cjs/tree/Tree.js +0 -303
  140. package/dist-cjs/tree/Tree.js.map +0 -1
  141. package/dist-cjs/tree/TreeContext.js +0 -31
  142. package/dist-cjs/tree/TreeContext.js.map +0 -1
  143. package/dist-cjs/tree/TreeNode.css.js +0 -6
  144. package/dist-cjs/tree/TreeNode.css.js.map +0 -1
  145. package/dist-cjs/tree/TreeNode.js +0 -103
  146. package/dist-cjs/tree/TreeNode.js.map +0 -1
  147. package/dist-cjs/tree/TreeNodeExpansionIcon.css.js +0 -6
  148. package/dist-cjs/tree/TreeNodeExpansionIcon.css.js.map +0 -1
  149. package/dist-cjs/tree/TreeNodeExpansionIcon.js +0 -62
  150. package/dist-cjs/tree/TreeNodeExpansionIcon.js.map +0 -1
  151. package/dist-cjs/tree/TreeNodeLabel.css.js +0 -6
  152. package/dist-cjs/tree/TreeNodeLabel.css.js.map +0 -1
  153. package/dist-cjs/tree/TreeNodeLabel.js +0 -26
  154. package/dist-cjs/tree/TreeNodeLabel.js.map +0 -1
  155. package/dist-cjs/tree/TreeNodeTrigger.css.js +0 -6
  156. package/dist-cjs/tree/TreeNodeTrigger.css.js.map +0 -1
  157. package/dist-cjs/tree/TreeNodeTrigger.js +0 -153
  158. package/dist-cjs/tree/TreeNodeTrigger.js.map +0 -1
  159. package/dist-cjs/tree/treeModel.js +0 -61
  160. package/dist-cjs/tree/treeModel.js.map +0 -1
  161. package/dist-cjs/tree/useTree.js +0 -337
  162. package/dist-cjs/tree/useTree.js.map +0 -1
  163. package/dist-cjs/utils/deprecatedExport.js +0 -30
  164. package/dist-cjs/utils/deprecatedExport.js.map +0 -1
  165. package/dist-es/calendar/index.js +0 -50
  166. package/dist-es/calendar/index.js.map +0 -1
  167. package/dist-es/date-input/index.js +0 -20
  168. package/dist-es/date-input/index.js.map +0 -1
  169. package/dist-es/date-picker/index.js +0 -85
  170. package/dist-es/date-picker/index.js.map +0 -1
  171. package/dist-es/localization-provider/index.js +0 -20
  172. package/dist-es/localization-provider/index.js.map +0 -1
  173. package/dist-es/mega-menu/MegaMenuContent.css.js +0 -4
  174. package/dist-es/mega-menu/MegaMenuContent.css.js.map +0 -1
  175. package/dist-es/mega-menu/MegaMenuContent.js +0 -31
  176. package/dist-es/mega-menu/MegaMenuContent.js.map +0 -1
  177. package/dist-es/mega-menu/MegaMenuItemContent.css.js +0 -4
  178. package/dist-es/mega-menu/MegaMenuItemContent.css.js.map +0 -1
  179. package/dist-es/mega-menu/MegaMenuItemContent.js +0 -21
  180. package/dist-es/mega-menu/MegaMenuItemContent.js.map +0 -1
  181. package/dist-es/mega-menu/MegaMenuSection.css.js +0 -4
  182. package/dist-es/mega-menu/MegaMenuSection.css.js.map +0 -1
  183. package/dist-es/mega-menu/MegaMenuSection.js.map +0 -1
  184. package/dist-es/tree/Tree.css.js +0 -4
  185. package/dist-es/tree/Tree.css.js.map +0 -1
  186. package/dist-es/tree/Tree.js +0 -301
  187. package/dist-es/tree/Tree.js.map +0 -1
  188. package/dist-es/tree/TreeContext.js +0 -26
  189. package/dist-es/tree/TreeContext.js.map +0 -1
  190. package/dist-es/tree/TreeNode.css.js +0 -4
  191. package/dist-es/tree/TreeNode.css.js.map +0 -1
  192. package/dist-es/tree/TreeNode.js +0 -101
  193. package/dist-es/tree/TreeNode.js.map +0 -1
  194. package/dist-es/tree/TreeNodeExpansionIcon.css.js +0 -4
  195. package/dist-es/tree/TreeNodeExpansionIcon.css.js.map +0 -1
  196. package/dist-es/tree/TreeNodeExpansionIcon.js +0 -60
  197. package/dist-es/tree/TreeNodeExpansionIcon.js.map +0 -1
  198. package/dist-es/tree/TreeNodeLabel.css.js +0 -4
  199. package/dist-es/tree/TreeNodeLabel.css.js.map +0 -1
  200. package/dist-es/tree/TreeNodeLabel.js +0 -24
  201. package/dist-es/tree/TreeNodeLabel.js.map +0 -1
  202. package/dist-es/tree/TreeNodeTrigger.css.js +0 -4
  203. package/dist-es/tree/TreeNodeTrigger.css.js.map +0 -1
  204. package/dist-es/tree/TreeNodeTrigger.js +0 -151
  205. package/dist-es/tree/TreeNodeTrigger.js.map +0 -1
  206. package/dist-es/tree/treeModel.js +0 -57
  207. package/dist-es/tree/treeModel.js.map +0 -1
  208. package/dist-es/tree/useTree.js +0 -335
  209. package/dist-es/tree/useTree.js.map +0 -1
  210. package/dist-es/utils/deprecatedExport.js +0 -27
  211. package/dist-es/utils/deprecatedExport.js.map +0 -1
  212. package/dist-types/calendar/index.d.ts +0 -13
  213. package/dist-types/date-input/index.d.ts +0 -3
  214. package/dist-types/localization-provider/index.d.ts +0 -9
  215. package/dist-types/mega-menu/MegaMenuContent.d.ts +0 -8
  216. package/dist-types/mega-menu/MegaMenuItemContent.d.ts +0 -8
  217. package/dist-types/mega-menu/MegaMenuSection.d.ts +0 -8
  218. package/dist-types/tree/Tree.d.ts +0 -36
  219. package/dist-types/tree/TreeContext.d.ts +0 -77
  220. package/dist-types/tree/TreeNode.d.ts +0 -25
  221. package/dist-types/tree/TreeNodeExpansionIcon.d.ts +0 -4
  222. package/dist-types/tree/TreeNodeLabel.d.ts +0 -4
  223. package/dist-types/tree/TreeNodeTrigger.d.ts +0 -8
  224. package/dist-types/tree/index.d.ts +0 -4
  225. package/dist-types/tree/treeModel.d.ts +0 -24
  226. package/dist-types/tree/useTree.d.ts +0 -68
@@ -0,0 +1,30 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { makePrefixer } from '@salt-ds/core';
3
+ import { useComponentCssInjection } from '@salt-ds/styles';
4
+ import { useWindow } from '@salt-ds/window';
5
+ import { clsx } from 'clsx';
6
+ import { forwardRef } from 'react';
7
+ import css_248z from './ToolbarContentNext.css.js';
8
+
9
+ const withBaseName = makePrefixer("saltToolbarContentNext");
10
+ const ToolbarContentNext = forwardRef(function ToolbarContentNext2({ children, className, position, ...rest }, ref) {
11
+ const targetWindow = useWindow();
12
+ useComponentCssInjection({
13
+ testId: "salt-toolbar-content-next",
14
+ css: css_248z,
15
+ window: targetWindow
16
+ });
17
+ return /* @__PURE__ */ jsx(
18
+ "div",
19
+ {
20
+ className: clsx(withBaseName(), className),
21
+ ...rest,
22
+ "data-position": position,
23
+ ref,
24
+ children
25
+ }
26
+ );
27
+ });
28
+
29
+ export { ToolbarContentNext };
30
+ //# sourceMappingURL=ToolbarContentNext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolbarContentNext.js","sources":["../src/toolbar-next/ToolbarContentNext.tsx"],"sourcesContent":["import { makePrefixer } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport { type ComponentPropsWithoutRef, forwardRef } from \"react\";\n\nimport toolbarContentNextCss from \"./ToolbarContentNext.css\";\n\nexport type ToolbarContentNextPosition = \"start\" | \"center\" | \"end\";\n\nexport interface ToolbarContentNextProps\n extends ComponentPropsWithoutRef<\"div\"> {\n /**\n * Controls where the content is placed across the full toolbar.\n * If any content uses `\"center\"`, `ToolbarNext` reserves symmetric side space\n * so the center band stays on the toolbar midpoint.\n */\n position: ToolbarContentNextPosition;\n}\n\nconst withBaseName = makePrefixer(\"saltToolbarContentNext\");\n\nexport const ToolbarContentNext = forwardRef<\n HTMLDivElement,\n ToolbarContentNextProps\n>(function ToolbarContentNext({ children, className, position, ...rest }, ref) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-toolbar-content-next\",\n css: toolbarContentNextCss,\n window: targetWindow,\n });\n\n return (\n <div\n className={clsx(withBaseName(), className)}\n {...rest}\n data-position={position}\n ref={ref}\n >\n {children}\n </div>\n );\n});\n"],"names":["ToolbarContentNext","toolbarContentNextCss"],"mappings":";;;;;;;;AAoBA,MAAM,YAAA,GAAe,aAAa,wBAAwB,CAAA;AAEnD,MAAM,kBAAA,GAAqB,UAAA,CAGhC,SAASA,mBAAAA,CAAmB,EAAE,QAAA,EAAU,SAAA,EAAW,QAAA,EAAU,GAAG,IAAA,EAAK,EAAG,GAAA,EAAK;AAC7E,EAAA,MAAM,eAAe,SAAA,EAAU;AAC/B,EAAA,wBAAA,CAAyB;AAAA,IACvB,MAAA,EAAQ,2BAAA;AAAA,IACR,GAAA,EAAKC,QAAA;AAAA,IACL,MAAA,EAAQ;AAAA,GACT,CAAA;AAED,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,IAAA,CAAK,YAAA,EAAa,EAAG,SAAS,CAAA;AAAA,MACxC,GAAG,IAAA;AAAA,MACJ,eAAA,EAAe,QAAA;AAAA,MACf,GAAA;AAAA,MAEC;AAAA;AAAA,GACH;AAEJ,CAAC;;;;"}
@@ -0,0 +1,4 @@
1
+ var css_248z = ".saltToolbarNext {\n box-sizing: border-box;\n inline-size: 100%;\n min-width: 0;\n position: relative;\n}\n\n.saltToolbarNext-layout {\n align-items: center;\n --saltToolbarNext-band-gap: var(--salt-spacing-100);\n}\n\n.saltToolbarNext-layout:not([data-centered]) {\n display: flex;\n column-gap: var(--saltToolbarNext-band-gap);\n}\n\n.saltToolbarNext-layout[data-centered] {\n display: grid;\n grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);\n}\n\n.saltToolbarNext-band {\n display: flex;\n align-items: center;\n gap: var(--saltToolbarNext-band-gap);\n min-width: 0;\n}\n\n.saltToolbarNext-layout:not([data-centered]) > .saltToolbarNext-band[data-band-position=\"end\"] {\n justify-content: flex-end;\n margin-inline-start: auto;\n}\n\n.saltToolbarNext-layout[data-centered] > .saltToolbarNext-band[data-band-position=\"start\"] {\n grid-column: 1;\n}\n\n.saltToolbarNext-layout[data-centered] > .saltToolbarNext-band[data-band-position=\"center\"] {\n grid-column: 2;\n justify-content: center;\n}\n\n.saltToolbarNext-layout[data-centered] > .saltToolbarNext-band[data-band-position=\"end\"] {\n grid-column: 3;\n justify-content: flex-end;\n}\n\n.saltToolbarNext-fallback {\n display: flex;\n align-items: center;\n gap: var(--salt-spacing-100);\n}\n\n.saltToolbarNext-layout > * {\n min-width: 0;\n}\n\n.saltToolbarNext-primary {\n --toolbarNext-background: var(--salt-container-primary-background);\n --toolbarNext-borderColor: var(--salt-container-primary-borderColor);\n}\n\n.saltToolbarNext-secondary {\n --toolbarNext-background: var(--salt-container-secondary-background);\n --toolbarNext-borderColor: var(--salt-container-secondary-borderColor);\n}\n\n.saltToolbarNext-tertiary {\n --toolbarNext-background: var(--salt-container-tertiary-background);\n --toolbarNext-borderColor: var(--salt-container-tertiary-borderColor);\n}\n\n.saltToolbarNext-bordered {\n background: var(--saltToolbarNext-background, var(--toolbarNext-background));\n border: var(--salt-size-fixed-100) var(--salt-borderStyle-solid) var(--saltToolbarNext-borderColor, var(--toolbarNext-borderColor));\n border-radius: var(--salt-palette-corner, 0);\n padding: var(--salt-spacing-100);\n}\n\n.saltToolbarNext-transparent {\n background: transparent;\n border: none;\n padding: 0;\n}\n\n.saltToolbarNext-measurements {\n display: flex;\n gap: var(--salt-spacing-100);\n position: absolute;\n visibility: hidden;\n pointer-events: none;\n inset: 0 auto auto 0;\n block-size: 0;\n overflow: hidden;\n}\n\n.saltToolbarNext-measureTrigger {\n white-space: nowrap;\n}\n";
2
+
3
+ export { css_248z as default };
4
+ //# sourceMappingURL=ToolbarNext.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolbarNext.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -0,0 +1,392 @@
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
2
+ import { makePrefixer, useForkRef, useIsomorphicLayoutEffect, Button } from '@salt-ds/core';
3
+ import { useComponentCssInjection } from '@salt-ds/styles';
4
+ import { useWindow } from '@salt-ds/window';
5
+ import { clsx } from 'clsx';
6
+ import { forwardRef, useMemo, useRef, useState, useCallback, useEffect, cloneElement } from 'react';
7
+ import css_248z from './ToolbarNext.css.js';
8
+ import { ToolbarNextOverflowOwners, ToolbarNextOverflowTriggerContent, ToolbarNextOverflowContent, ToolbarNextOverflowMenu } from './ToolbarNextOverflow.js';
9
+ import { ToolbarNextOverflowFloatingBoundaryProvider } from './ToolbarNextOverflowFloatingBoundary.js';
10
+ import { TOOLBAR_NEXT_SCOPE_ROOT_ATTR } from './toolbarNextKeyboardUtils.js';
11
+ import { normalizeToolbarChildren } from './toolbarNextUtils.js';
12
+ import { useToolbarNextKeyboardNavigation } from './useToolbarNextKeyboardNavigation.js';
13
+ import { useToolbarNextOverflow } from './useToolbarNextOverflow.js';
14
+
15
+ const withBaseName = makePrefixer("saltToolbarNext");
16
+ const withOverflowBaseName = makePrefixer("saltToolbarNextOverflow");
17
+ const bandPositions = ["start", "center", "end"];
18
+ function cloneMeasureDecorations(itemId, slot, decorations) {
19
+ return decorations.map((decoration, index) => {
20
+ return cloneElement(decoration, {
21
+ key: `${itemId}-${slot}-measurement-${String(decoration.key ?? index)}`
22
+ });
23
+ });
24
+ }
25
+ const ToolbarNext = forwardRef(
26
+ function ToolbarNext2({
27
+ children,
28
+ className,
29
+ onBlurCapture,
30
+ onFocusCapture,
31
+ onKeyDownCapture,
32
+ onPointerDownCapture,
33
+ appearance = "bordered",
34
+ variant = "primary",
35
+ ...rest
36
+ }, ref) {
37
+ const targetWindow = useWindow();
38
+ useComponentCssInjection({
39
+ testId: "salt-toolbar-next",
40
+ css: css_248z,
41
+ window: targetWindow
42
+ });
43
+ const { mode, content } = normalizeToolbarChildren(children);
44
+ const overflowContent = useMemo(
45
+ () => normalizeToolbarChildren(children).content,
46
+ [children]
47
+ );
48
+ const allItems = useMemo(
49
+ () => content.flatMap((contentArea) => contentArea.items),
50
+ [content]
51
+ );
52
+ const {
53
+ containerRef,
54
+ getBandRef,
55
+ getItemRef,
56
+ getNamedTriggerMeasureRef,
57
+ getNamedTriggerRef,
58
+ getContentRef,
59
+ getTriggerMeasureRef,
60
+ overflowGroups,
61
+ overflowTriggerGroups,
62
+ overflowedIds
63
+ } = useToolbarNextOverflow({ content: overflowContent });
64
+ const handleRef = useForkRef(ref, containerRef);
65
+ const invalidCompositionWarnedRef = useRef(false);
66
+ const itemHostRefCallbacks = useRef(
67
+ /* @__PURE__ */ new Map()
68
+ );
69
+ const [itemHostNodes, setItemHostNodes] = useState({});
70
+ const sharedOverflowGroups = useMemo(
71
+ () => overflowGroups.filter((group) => !group.named),
72
+ [overflowGroups]
73
+ );
74
+ const namedOverflowGroups = useMemo(
75
+ () => overflowGroups.filter((group) => group.named),
76
+ [overflowGroups]
77
+ );
78
+ const overflowTriggerGroupByKey = useMemo(
79
+ () => new Map(
80
+ overflowTriggerGroups.map((group) => [group.key, group])
81
+ ),
82
+ [overflowTriggerGroups]
83
+ );
84
+ const namedTriggerMeasureItems = useMemo(
85
+ () => allItems.filter((item) => {
86
+ return item.overflowMode !== "none" && item.overflowGroup !== "shared";
87
+ }),
88
+ [allItems]
89
+ );
90
+ const bandsByPosition = useMemo(() => {
91
+ return bandPositions.reduce(
92
+ (bands, position) => {
93
+ bands[position] = content.filter(
94
+ (contentArea) => contentArea.position === position
95
+ );
96
+ return bands;
97
+ },
98
+ {
99
+ start: [],
100
+ center: [],
101
+ end: []
102
+ }
103
+ );
104
+ }, [content]);
105
+ const hasCenteredLayout = bandsByPosition.center.length > 0;
106
+ const keyboardNavigation = useToolbarNextKeyboardNavigation({
107
+ items: allItems,
108
+ overflowedIds,
109
+ scopeRef: containerRef
110
+ });
111
+ const overflowedIdsKey = useMemo(
112
+ () => Array.from(overflowedIds).sort().join("\0"),
113
+ [overflowedIds]
114
+ );
115
+ const previousOverflowedIdsKeyRef = useRef(overflowedIdsKey);
116
+ const getItemHostRef = useCallback(
117
+ (id, kind) => {
118
+ const callbackKey = `${id}:${kind}`;
119
+ const existing = itemHostRefCallbacks.current.get(callbackKey);
120
+ if (existing) {
121
+ return existing;
122
+ }
123
+ const callback = (node) => {
124
+ setItemHostNodes((previous) => {
125
+ var _a;
126
+ if (((_a = previous[id]) == null ? void 0 : _a[kind]) === node) {
127
+ return previous;
128
+ }
129
+ return {
130
+ ...previous,
131
+ [id]: {
132
+ ...previous[id],
133
+ [kind]: node
134
+ }
135
+ };
136
+ });
137
+ };
138
+ itemHostRefCallbacks.current.set(callbackKey, callback);
139
+ return callback;
140
+ },
141
+ []
142
+ );
143
+ const itemOwnerHostNodes = useMemo(() => {
144
+ return allItems.reduce(
145
+ (hosts, item) => {
146
+ const nodes = itemHostNodes[item.id];
147
+ hosts[item.id] = (nodes == null ? void 0 : nodes.overflow) ?? (nodes == null ? void 0 : nodes.main) ?? (nodes == null ? void 0 : nodes.measurement) ?? null;
148
+ return hosts;
149
+ },
150
+ {}
151
+ );
152
+ }, [allItems, itemHostNodes]);
153
+ const overflowedMeasurementItems = useMemo(() => {
154
+ return allItems.filter((item) => {
155
+ var _a;
156
+ return overflowedIds.has(item.id) && !((_a = itemHostNodes[item.id]) == null ? void 0 : _a.overflow);
157
+ });
158
+ }, [allItems, itemHostNodes, overflowedIds]);
159
+ useIsomorphicLayoutEffect(() => {
160
+ const overflowChanged = previousOverflowedIdsKeyRef.current !== overflowedIdsKey;
161
+ previousOverflowedIdsKeyRef.current = overflowedIdsKey;
162
+ if (!overflowChanged) {
163
+ return;
164
+ }
165
+ const doc = targetWindow == null ? void 0 : targetWindow.document;
166
+ const rememberedFocus = keyboardNavigation.rememberedFocusRef.current;
167
+ if (!doc || !rememberedFocus) {
168
+ return;
169
+ }
170
+ const activeElement = doc.activeElement;
171
+ const focusWasLost = !activeElement || activeElement === doc.body || activeElement === doc.documentElement || !activeElement.isConnected;
172
+ const target = keyboardNavigation.getEntryFocusable();
173
+ if (!focusWasLost) {
174
+ return;
175
+ }
176
+ if (!target) {
177
+ return;
178
+ }
179
+ const focusTarget = () => {
180
+ if (target.isConnected) {
181
+ target.focus({ preventScroll: true });
182
+ }
183
+ };
184
+ if (targetWindow == null ? void 0 : targetWindow.requestAnimationFrame) {
185
+ const frame = targetWindow.requestAnimationFrame(focusTarget);
186
+ return () => {
187
+ targetWindow.cancelAnimationFrame(frame);
188
+ };
189
+ }
190
+ queueMicrotask(focusTarget);
191
+ }, [
192
+ keyboardNavigation.getEntryFocusable,
193
+ keyboardNavigation.rememberedFocusRef,
194
+ overflowedIdsKey,
195
+ targetWindow
196
+ ]);
197
+ useEffect(() => {
198
+ if (process.env.NODE_ENV !== "production") {
199
+ if (mode === "invalid" && !invalidCompositionWarnedRef.current) {
200
+ console.warn(
201
+ "ToolbarNext children must be authored in one composition model: either TooltrayNext/Divider children directly in ToolbarNext, or ToolbarContentNext children containing TooltrayNext/Divider items."
202
+ );
203
+ invalidCompositionWarnedRef.current = true;
204
+ }
205
+ if (mode !== "invalid") {
206
+ invalidCompositionWarnedRef.current = false;
207
+ }
208
+ }
209
+ }, [mode]);
210
+ return /* @__PURE__ */ jsx(
211
+ "div",
212
+ {
213
+ className: clsx(
214
+ withBaseName(),
215
+ {
216
+ [withBaseName("fallback")]: mode === "invalid",
217
+ [withBaseName("layout")]: mode !== "invalid"
218
+ },
219
+ withBaseName(variant),
220
+ withBaseName(appearance),
221
+ className
222
+ ),
223
+ ...rest,
224
+ "data-centered": mode !== "invalid" && hasCenteredLayout ? "" : void 0,
225
+ "data-mode": mode,
226
+ ...{ [TOOLBAR_NEXT_SCOPE_ROOT_ATTR]: "main" },
227
+ ref: handleRef,
228
+ onBlurCapture: (event) => {
229
+ keyboardNavigation.handleBlurCapture(event);
230
+ onBlurCapture == null ? void 0 : onBlurCapture(event);
231
+ },
232
+ onFocusCapture: (event) => {
233
+ keyboardNavigation.handleFocusCapture(event);
234
+ onFocusCapture == null ? void 0 : onFocusCapture(event);
235
+ },
236
+ onKeyDownCapture: (event) => {
237
+ keyboardNavigation.handleKeyDownCapture(event);
238
+ onKeyDownCapture == null ? void 0 : onKeyDownCapture(event);
239
+ },
240
+ onPointerDownCapture: (event) => {
241
+ keyboardNavigation.handlePointerDownCapture(event);
242
+ onPointerDownCapture == null ? void 0 : onPointerDownCapture(event);
243
+ },
244
+ role: "toolbar",
245
+ "aria-orientation": "horizontal",
246
+ children: mode === "invalid" ? children : /* @__PURE__ */ jsxs(ToolbarNextOverflowFloatingBoundaryProvider, { children: [
247
+ /* @__PURE__ */ jsx(
248
+ ToolbarNextOverflowOwners,
249
+ {
250
+ hostNodes: itemOwnerHostNodes,
251
+ items: allItems
252
+ }
253
+ ),
254
+ /* @__PURE__ */ jsxs("div", { "aria-hidden": true, className: withBaseName("measurements"), children: [
255
+ overflowTriggerGroups.filter((group) => !group.named).map((group) => /* @__PURE__ */ jsx(
256
+ Button,
257
+ {
258
+ appearance: "transparent",
259
+ className: withBaseName("measureTrigger"),
260
+ ref: getTriggerMeasureRef(group.key),
261
+ sentiment: "neutral",
262
+ tabIndex: -1,
263
+ children: /* @__PURE__ */ jsx(
264
+ ToolbarNextOverflowTriggerContent,
265
+ {
266
+ label: group.label,
267
+ named: group.named
268
+ }
269
+ )
270
+ },
271
+ group.id
272
+ )),
273
+ namedTriggerMeasureItems.map((item) => {
274
+ const group = overflowTriggerGroupByKey.get(
275
+ item.overflowGroupKey
276
+ );
277
+ if (!group) {
278
+ return null;
279
+ }
280
+ return /* @__PURE__ */ jsxs(
281
+ "div",
282
+ {
283
+ className: withOverflowBaseName("slot"),
284
+ ref: getNamedTriggerMeasureRef(item.id),
285
+ children: [
286
+ cloneMeasureDecorations(
287
+ item.id,
288
+ "leading",
289
+ item.leadingDecorations
290
+ ),
291
+ /* @__PURE__ */ jsx("div", { className: withOverflowBaseName("item"), children: /* @__PURE__ */ jsx(
292
+ Button,
293
+ {
294
+ appearance: "transparent",
295
+ className: withOverflowBaseName("trigger"),
296
+ sentiment: "neutral",
297
+ tabIndex: -1,
298
+ children: /* @__PURE__ */ jsx(
299
+ ToolbarNextOverflowTriggerContent,
300
+ {
301
+ label: group.label,
302
+ named: group.named
303
+ }
304
+ )
305
+ }
306
+ ) })
307
+ ]
308
+ },
309
+ `measure-${item.id}`
310
+ );
311
+ }),
312
+ overflowedMeasurementItems.map((item) => /* @__PURE__ */ jsxs(
313
+ "div",
314
+ {
315
+ className: withOverflowBaseName("slot"),
316
+ ref: getItemRef(item.id),
317
+ children: [
318
+ cloneMeasureDecorations(
319
+ item.id,
320
+ "leading",
321
+ item.leadingDecorations
322
+ ),
323
+ /* @__PURE__ */ jsx("div", { className: withOverflowBaseName("item"), children: /* @__PURE__ */ jsx(
324
+ "div",
325
+ {
326
+ className: withOverflowBaseName("itemHost"),
327
+ ref: getItemHostRef(item.id, "measurement")
328
+ }
329
+ ) }),
330
+ cloneMeasureDecorations(
331
+ item.id,
332
+ "trailing",
333
+ item.trailingDecorations
334
+ )
335
+ ]
336
+ },
337
+ `measure-item-${item.id}`
338
+ ))
339
+ ] }),
340
+ bandPositions.map((position) => {
341
+ const bandContent = bandsByPosition[position];
342
+ const shouldRenderBand = hasCenteredLayout ? true : position === "end" ? bandContent.length > 0 || sharedOverflowGroups.length > 0 : bandContent.length > 0;
343
+ if (!shouldRenderBand) {
344
+ return null;
345
+ }
346
+ return /* @__PURE__ */ jsxs(
347
+ "div",
348
+ {
349
+ className: withBaseName("band"),
350
+ "data-band-position": position,
351
+ ref: getBandRef(position),
352
+ children: [
353
+ bandContent.map((contentArea) => /* @__PURE__ */ jsx(
354
+ ToolbarNextOverflowContent,
355
+ {
356
+ focusMemoryRef: keyboardNavigation.rememberedFocusRef,
357
+ getItemHostRef,
358
+ getItemRef,
359
+ getNamedTriggerRef,
360
+ getContentRef,
361
+ onItemFocus: keyboardNavigation.rememberItemFocus,
362
+ overflowGroups: namedOverflowGroups.filter(
363
+ (group) => group.contentKey === contentArea.key
364
+ ),
365
+ overflowedIds,
366
+ content: contentArea
367
+ },
368
+ contentArea.key
369
+ )),
370
+ position === "end" ? sharedOverflowGroups.map((group) => /* @__PURE__ */ jsx(
371
+ ToolbarNextOverflowMenu,
372
+ {
373
+ focusMemoryRef: keyboardNavigation.rememberedFocusRef,
374
+ getItemHostRef,
375
+ group,
376
+ onItemFocus: keyboardNavigation.rememberItemFocus
377
+ },
378
+ group.id
379
+ )) : null
380
+ ]
381
+ },
382
+ position
383
+ );
384
+ })
385
+ ] })
386
+ }
387
+ );
388
+ }
389
+ );
390
+
391
+ export { ToolbarNext };
392
+ //# sourceMappingURL=ToolbarNext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolbarNext.js","sources":["../src/toolbar-next/ToolbarNext.tsx"],"sourcesContent":["import {\n Button,\n makePrefixer,\n useForkRef,\n useIsomorphicLayoutEffect,\n} from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport {\n type ComponentPropsWithoutRef,\n cloneElement,\n forwardRef,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport type { ToolbarContentNextPosition } from \"./ToolbarContentNext\";\nimport toolbarNextCss from \"./ToolbarNext.css\";\nimport {\n type ToolbarNextItemHostKind,\n ToolbarNextOverflowContent,\n ToolbarNextOverflowMenu,\n ToolbarNextOverflowOwners,\n ToolbarNextOverflowTriggerContent,\n} from \"./ToolbarNextOverflow\";\nimport { ToolbarNextOverflowFloatingBoundaryProvider } from \"./ToolbarNextOverflowFloatingBoundary\";\nimport { TOOLBAR_NEXT_SCOPE_ROOT_ATTR } from \"./toolbarNextKeyboardUtils\";\nimport {\n normalizeToolbarChildren,\n type ToolbarNextOverflowItem,\n} from \"./toolbarNextUtils\";\nimport { useToolbarNextKeyboardNavigation } from \"./useToolbarNextKeyboardNavigation\";\nimport { useToolbarNextOverflow } from \"./useToolbarNextOverflow\";\n\nexport interface ToolbarNextProps extends ComponentPropsWithoutRef<\"div\"> {\n /**\n * Visual treatment of the toolbar. Defaults to `\"bordered\"`.\n */\n appearance?: \"bordered\" | \"transparent\";\n /**\n * Styling variant. Defaults to `\"primary\"`.\n */\n variant?: \"primary\" | \"secondary\" | \"tertiary\";\n}\n\nconst withBaseName = makePrefixer(\"saltToolbarNext\");\nconst withOverflowBaseName = makePrefixer(\"saltToolbarNextOverflow\");\nconst bandPositions: ToolbarContentNextPosition[] = [\"start\", \"center\", \"end\"];\n\ntype ToolbarNextItemHostNodes = Partial<\n Record<ToolbarNextItemHostKind, HTMLDivElement | null>\n>;\n\nfunction cloneMeasureDecorations(\n itemId: string,\n slot: \"leading\" | \"trailing\",\n decorations: ToolbarNextOverflowItem[\"leadingDecorations\"],\n) {\n return decorations.map((decoration, index) => {\n return cloneElement(decoration, {\n key: `${itemId}-${slot}-measurement-${String(decoration.key ?? index)}`,\n });\n });\n}\n\nexport const ToolbarNext = forwardRef<HTMLDivElement, ToolbarNextProps>(\n function ToolbarNext(\n {\n children,\n className,\n onBlurCapture,\n onFocusCapture,\n onKeyDownCapture,\n onPointerDownCapture,\n appearance = \"bordered\",\n variant = \"primary\",\n ...rest\n },\n ref,\n ) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-toolbar-next\",\n css: toolbarNextCss,\n window: targetWindow,\n });\n\n const { mode, content } = normalizeToolbarChildren(children);\n const overflowContent = useMemo(\n () => normalizeToolbarChildren(children).content,\n [children],\n );\n\n const allItems = useMemo(\n () => content.flatMap((contentArea) => contentArea.items),\n [content],\n );\n\n const {\n containerRef,\n getBandRef,\n getItemRef,\n getNamedTriggerMeasureRef,\n getNamedTriggerRef,\n getContentRef,\n getTriggerMeasureRef,\n overflowGroups,\n overflowTriggerGroups,\n overflowedIds,\n } = useToolbarNextOverflow({ content: overflowContent });\n\n const handleRef = useForkRef(ref, containerRef);\n const invalidCompositionWarnedRef = useRef(false);\n const itemHostRefCallbacks = useRef(\n new Map<string, (node: HTMLDivElement | null) => void>(),\n );\n const [itemHostNodes, setItemHostNodes] = useState<\n Record<string, ToolbarNextItemHostNodes>\n >({});\n\n const sharedOverflowGroups = useMemo(\n () => overflowGroups.filter((group) => !group.named),\n [overflowGroups],\n );\n\n const namedOverflowGroups = useMemo(\n () => overflowGroups.filter((group) => group.named),\n [overflowGroups],\n );\n\n const overflowTriggerGroupByKey = useMemo(\n () =>\n new Map(\n overflowTriggerGroups.map((group) => [group.key, group] as const),\n ),\n [overflowTriggerGroups],\n );\n\n const namedTriggerMeasureItems = useMemo(\n () =>\n allItems.filter((item) => {\n return (\n item.overflowMode !== \"none\" && item.overflowGroup !== \"shared\"\n );\n }),\n [allItems],\n );\n\n const bandsByPosition = useMemo(() => {\n return bandPositions.reduce<\n Record<ToolbarContentNextPosition, typeof content>\n >(\n (bands, position) => {\n bands[position] = content.filter(\n (contentArea) => contentArea.position === position,\n );\n return bands;\n },\n {\n start: [],\n center: [],\n end: [],\n },\n );\n }, [content]);\n const hasCenteredLayout = bandsByPosition.center.length > 0;\n const keyboardNavigation = useToolbarNextKeyboardNavigation({\n items: allItems,\n overflowedIds,\n scopeRef: containerRef,\n });\n const overflowedIdsKey = useMemo(\n () => Array.from(overflowedIds).sort().join(\"\\0\"),\n [overflowedIds],\n );\n const previousOverflowedIdsKeyRef = useRef(overflowedIdsKey);\n\n const getItemHostRef = useCallback(\n (id: string, kind: ToolbarNextItemHostKind) => {\n const callbackKey = `${id}:${kind}`;\n const existing = itemHostRefCallbacks.current.get(callbackKey);\n\n if (existing) {\n return existing;\n }\n\n const callback = (node: HTMLDivElement | null) => {\n setItemHostNodes((previous) => {\n if (previous[id]?.[kind] === node) {\n return previous;\n }\n\n return {\n ...previous,\n [id]: {\n ...previous[id],\n [kind]: node,\n },\n };\n });\n };\n\n itemHostRefCallbacks.current.set(callbackKey, callback);\n return callback;\n },\n [],\n );\n\n const itemOwnerHostNodes = useMemo(() => {\n return allItems.reduce<Record<string, HTMLDivElement | null>>(\n (hosts, item) => {\n const nodes = itemHostNodes[item.id];\n\n hosts[item.id] =\n nodes?.overflow ?? nodes?.main ?? nodes?.measurement ?? null;\n return hosts;\n },\n {},\n );\n }, [allItems, itemHostNodes]);\n\n const overflowedMeasurementItems = useMemo(() => {\n return allItems.filter((item) => {\n return overflowedIds.has(item.id) && !itemHostNodes[item.id]?.overflow;\n });\n }, [allItems, itemHostNodes, overflowedIds]);\n\n useIsomorphicLayoutEffect(() => {\n const overflowChanged =\n previousOverflowedIdsKeyRef.current !== overflowedIdsKey;\n previousOverflowedIdsKeyRef.current = overflowedIdsKey;\n\n if (!overflowChanged) {\n return;\n }\n\n const doc = targetWindow?.document;\n const rememberedFocus = keyboardNavigation.rememberedFocusRef.current;\n\n if (!doc || !rememberedFocus) {\n return;\n }\n\n const activeElement = doc.activeElement;\n const focusWasLost =\n !activeElement ||\n activeElement === doc.body ||\n activeElement === doc.documentElement ||\n !activeElement.isConnected;\n const target = keyboardNavigation.getEntryFocusable();\n\n if (!focusWasLost) {\n return;\n }\n\n if (!target) {\n return;\n }\n\n const focusTarget = () => {\n if (target.isConnected) {\n target.focus({ preventScroll: true });\n }\n };\n\n if (targetWindow?.requestAnimationFrame) {\n const frame = targetWindow.requestAnimationFrame(focusTarget);\n\n return () => {\n targetWindow.cancelAnimationFrame(frame);\n };\n }\n\n queueMicrotask(focusTarget);\n }, [\n keyboardNavigation.getEntryFocusable,\n keyboardNavigation.rememberedFocusRef,\n overflowedIdsKey,\n targetWindow,\n ]);\n\n useEffect(() => {\n if (process.env.NODE_ENV !== \"production\") {\n if (mode === \"invalid\" && !invalidCompositionWarnedRef.current) {\n console.warn(\n \"ToolbarNext children must be authored in one composition model: either TooltrayNext/Divider children directly in ToolbarNext, or ToolbarContentNext children containing TooltrayNext/Divider items.\",\n );\n invalidCompositionWarnedRef.current = true;\n }\n\n if (mode !== \"invalid\") {\n invalidCompositionWarnedRef.current = false;\n }\n }\n }, [mode]);\n\n return (\n <div\n className={clsx(\n withBaseName(),\n {\n [withBaseName(\"fallback\")]: mode === \"invalid\",\n [withBaseName(\"layout\")]: mode !== \"invalid\",\n },\n withBaseName(variant),\n withBaseName(appearance),\n className,\n )}\n {...rest}\n data-centered={mode !== \"invalid\" && hasCenteredLayout ? \"\" : undefined}\n data-mode={mode}\n {...{ [TOOLBAR_NEXT_SCOPE_ROOT_ATTR]: \"main\" }}\n ref={handleRef}\n onBlurCapture={(event) => {\n keyboardNavigation.handleBlurCapture(event);\n onBlurCapture?.(event);\n }}\n onFocusCapture={(event) => {\n keyboardNavigation.handleFocusCapture(event);\n onFocusCapture?.(event);\n }}\n onKeyDownCapture={(event) => {\n keyboardNavigation.handleKeyDownCapture(event);\n onKeyDownCapture?.(event);\n }}\n onPointerDownCapture={(event) => {\n keyboardNavigation.handlePointerDownCapture(event);\n onPointerDownCapture?.(event);\n }}\n role=\"toolbar\"\n aria-orientation=\"horizontal\"\n >\n {mode === \"invalid\" ? (\n children\n ) : (\n <ToolbarNextOverflowFloatingBoundaryProvider>\n <ToolbarNextOverflowOwners\n hostNodes={itemOwnerHostNodes}\n items={allItems}\n />\n <div aria-hidden className={withBaseName(\"measurements\")}>\n {overflowTriggerGroups\n .filter((group) => !group.named)\n .map((group) => (\n <Button\n appearance=\"transparent\"\n className={withBaseName(\"measureTrigger\")}\n key={group.id}\n ref={getTriggerMeasureRef(group.key)}\n sentiment=\"neutral\"\n tabIndex={-1}\n >\n <ToolbarNextOverflowTriggerContent\n label={group.label}\n named={group.named}\n />\n </Button>\n ))}\n {namedTriggerMeasureItems.map((item) => {\n const group = overflowTriggerGroupByKey.get(\n item.overflowGroupKey,\n );\n\n if (!group) {\n return null;\n }\n\n return (\n <div\n className={withOverflowBaseName(\"slot\")}\n key={`measure-${item.id}`}\n ref={getNamedTriggerMeasureRef(item.id)}\n >\n {cloneMeasureDecorations(\n item.id,\n \"leading\",\n item.leadingDecorations,\n )}\n <div className={withOverflowBaseName(\"item\")}>\n <Button\n appearance=\"transparent\"\n className={withOverflowBaseName(\"trigger\")}\n sentiment=\"neutral\"\n tabIndex={-1}\n >\n <ToolbarNextOverflowTriggerContent\n label={group.label}\n named={group.named}\n />\n </Button>\n </div>\n </div>\n );\n })}\n {overflowedMeasurementItems.map((item) => (\n <div\n className={withOverflowBaseName(\"slot\")}\n key={`measure-item-${item.id}`}\n ref={getItemRef(item.id)}\n >\n {cloneMeasureDecorations(\n item.id,\n \"leading\",\n item.leadingDecorations,\n )}\n <div className={withOverflowBaseName(\"item\")}>\n <div\n className={withOverflowBaseName(\"itemHost\")}\n ref={getItemHostRef(item.id, \"measurement\")}\n />\n </div>\n {cloneMeasureDecorations(\n item.id,\n \"trailing\",\n item.trailingDecorations,\n )}\n </div>\n ))}\n </div>\n {bandPositions.map((position) => {\n const bandContent = bandsByPosition[position];\n const shouldRenderBand = hasCenteredLayout\n ? true\n : position === \"end\"\n ? bandContent.length > 0 || sharedOverflowGroups.length > 0\n : bandContent.length > 0;\n\n if (!shouldRenderBand) {\n return null;\n }\n\n return (\n <div\n className={withBaseName(\"band\")}\n data-band-position={position}\n key={position}\n ref={getBandRef(position)}\n >\n {bandContent.map((contentArea) => (\n <ToolbarNextOverflowContent\n focusMemoryRef={keyboardNavigation.rememberedFocusRef}\n getItemHostRef={getItemHostRef}\n getItemRef={getItemRef}\n getNamedTriggerRef={getNamedTriggerRef}\n getContentRef={getContentRef}\n key={contentArea.key}\n onItemFocus={keyboardNavigation.rememberItemFocus}\n overflowGroups={namedOverflowGroups.filter(\n (group) => group.contentKey === contentArea.key,\n )}\n overflowedIds={overflowedIds}\n content={contentArea}\n />\n ))}\n {position === \"end\"\n ? sharedOverflowGroups.map((group) => (\n <ToolbarNextOverflowMenu\n focusMemoryRef={keyboardNavigation.rememberedFocusRef}\n getItemHostRef={getItemHostRef}\n group={group}\n key={group.id}\n onItemFocus={keyboardNavigation.rememberItemFocus}\n />\n ))\n : null}\n </div>\n );\n })}\n </ToolbarNextOverflowFloatingBoundaryProvider>\n )}\n </div>\n );\n },\n);\n"],"names":["ToolbarNext","toolbarNextCss"],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ var css_248z = ".saltToolbarNextOverflow-content {\n position: relative;\n}\n\n.saltToolbarNextOverflow-slot,\n.saltToolbarNextOverflow-panelItem {\n align-items: center;\n display: flex;\n flex-shrink: 0;\n gap: var(--salt-spacing-100);\n min-width: 0;\n}\n\n.saltToolbarNextOverflow-slot[data-align=\"end\"] {\n margin-inline-start: auto;\n}\n\n.saltToolbarNextOverflow-slot[data-align=\"center\"] {\n margin-inline-start: auto;\n margin-inline-end: auto;\n}\n\n.saltToolbarNextOverflow-item {\n align-items: center;\n display: flex;\n flex-shrink: 0;\n min-width: 0;\n}\n\n.saltToolbarNextOverflow-menu {\n display: flex;\n flex-shrink: 0;\n}\n\n.saltToolbarNextOverflow-itemHost,\n.saltToolbarNextOverflow-contentHost {\n display: contents;\n}\n\n.saltToolbarNextOverflow-trigger {\n white-space: nowrap;\n}\n\n.saltToolbarNextOverflow-panel {\n background: var(--salt-container-primary-background);\n border: var(--salt-size-fixed-100) var(--salt-borderStyle-solid) var(--salt-selectable-borderColor-selected);\n border-radius: var(--salt-palette-corner, 0);\n box-shadow: var(--salt-overlayable-shadow-popout);\n box-sizing: border-box;\n max-width: min(32rem, calc(100vw - var(--salt-spacing-300)));\n overflow: auto;\n position: absolute;\n z-index: var(--salt-zIndex-flyover);\n}\n\n/* TODO: improve this as brittle */\n.saltToolbarNextOverflow-floatingDescendant.saltToolbarNextOverflow-floatingDescendant {\n z-index: calc(var(--salt-zIndex-flyover) + var(--salt-zIndex-default));\n}\n\n.saltToolbarNextOverflow-panelContent {\n align-items: center;\n display: flex;\n flex-wrap: wrap;\n gap: var(--salt-spacing-100);\n max-width: inherit;\n min-width: max-content;\n padding: var(--salt-spacing-100);\n}\n\n.saltToolbarNextOverflow-panel .saltTooltrayNext[data-align=\"center\"],\n.saltToolbarNextOverflow-panel .saltTooltrayNext[data-align=\"end\"] {\n margin-inline-start: 0;\n margin-inline-end: 0;\n}\n\n.saltToolbarNextOverflow-panel .saltTooltrayNext > * {\n inline-size: auto;\n}\n\n.saltToolbarNextOverflow-content > .saltToolbarNextOverflow-slot .saltTooltrayNext[data-align=\"center\"],\n.saltToolbarNextOverflow-content > .saltToolbarNextOverflow-slot .saltTooltrayNext[data-align=\"end\"] {\n margin-inline-start: 0;\n margin-inline-end: 0;\n}\n";
2
+
3
+ export { css_248z as default };
4
+ //# sourceMappingURL=ToolbarNextOverflow.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolbarNextOverflow.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}