@salt-ds/lab 1.0.0-alpha.97 → 1.0.0-alpha.99

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 (169) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/css/salt-lab.css +147 -143
  3. package/dist-cjs/breadcrumbs-next/BreadcrumbNext.css.js +6 -0
  4. package/dist-cjs/breadcrumbs-next/BreadcrumbNext.css.js.map +1 -0
  5. package/dist-cjs/breadcrumbs-next/BreadcrumbNext.js +99 -0
  6. package/dist-cjs/breadcrumbs-next/BreadcrumbNext.js.map +1 -0
  7. package/dist-cjs/breadcrumbs-next/BreadcrumbNextLabel.js +21 -0
  8. package/dist-cjs/breadcrumbs-next/BreadcrumbNextLabel.js.map +1 -0
  9. package/dist-cjs/breadcrumbs-next/BreadcrumbNextTrigger.js +55 -0
  10. package/dist-cjs/breadcrumbs-next/BreadcrumbNextTrigger.js.map +1 -0
  11. package/dist-cjs/breadcrumbs-next/BreadcrumbsNext.css.js +6 -0
  12. package/dist-cjs/breadcrumbs-next/BreadcrumbsNext.css.js.map +1 -0
  13. package/dist-cjs/breadcrumbs-next/BreadcrumbsNext.js +146 -0
  14. package/dist-cjs/breadcrumbs-next/BreadcrumbsNext.js.map +1 -0
  15. package/dist-cjs/breadcrumbs-next/internal/BreadcrumbNextContext.js +12 -0
  16. package/dist-cjs/breadcrumbs-next/internal/BreadcrumbNextContext.js.map +1 -0
  17. package/dist-cjs/breadcrumbs-next/internal/BreadcrumbOverflowDisclosure.js +236 -0
  18. package/dist-cjs/breadcrumbs-next/internal/BreadcrumbOverflowDisclosure.js.map +1 -0
  19. package/dist-cjs/breadcrumbs-next/internal/breadcrumbItems.js +21 -0
  20. package/dist-cjs/breadcrumbs-next/internal/breadcrumbItems.js.map +1 -0
  21. package/dist-cjs/index.js +8 -22
  22. package/dist-cjs/index.js.map +1 -1
  23. package/dist-es/breadcrumbs-next/BreadcrumbNext.css.js +4 -0
  24. package/dist-es/breadcrumbs-next/BreadcrumbNext.css.js.map +1 -0
  25. package/dist-es/breadcrumbs-next/BreadcrumbNext.js +97 -0
  26. package/dist-es/breadcrumbs-next/BreadcrumbNext.js.map +1 -0
  27. package/dist-es/breadcrumbs-next/BreadcrumbNextLabel.js +19 -0
  28. package/dist-es/breadcrumbs-next/BreadcrumbNextLabel.js.map +1 -0
  29. package/dist-es/breadcrumbs-next/BreadcrumbNextTrigger.js +53 -0
  30. package/dist-es/breadcrumbs-next/BreadcrumbNextTrigger.js.map +1 -0
  31. package/dist-es/breadcrumbs-next/BreadcrumbsNext.css.js +4 -0
  32. package/dist-es/breadcrumbs-next/BreadcrumbsNext.css.js.map +1 -0
  33. package/dist-es/breadcrumbs-next/BreadcrumbsNext.js +144 -0
  34. package/dist-es/breadcrumbs-next/BreadcrumbsNext.js.map +1 -0
  35. package/dist-es/breadcrumbs-next/internal/BreadcrumbNextContext.js +9 -0
  36. package/dist-es/breadcrumbs-next/internal/BreadcrumbNextContext.js.map +1 -0
  37. package/dist-es/breadcrumbs-next/internal/BreadcrumbOverflowDisclosure.js +234 -0
  38. package/dist-es/breadcrumbs-next/internal/BreadcrumbOverflowDisclosure.js.map +1 -0
  39. package/dist-es/breadcrumbs-next/internal/breadcrumbItems.js +19 -0
  40. package/dist-es/breadcrumbs-next/internal/breadcrumbItems.js.map +1 -0
  41. package/dist-es/index.js +4 -11
  42. package/dist-es/index.js.map +1 -1
  43. package/dist-types/breadcrumbs-next/BreadcrumbNext.d.ts +23 -0
  44. package/dist-types/breadcrumbs-next/BreadcrumbNextLabel.d.ts +4 -0
  45. package/dist-types/breadcrumbs-next/BreadcrumbNextTrigger.d.ts +8 -0
  46. package/dist-types/breadcrumbs-next/BreadcrumbsNext.d.ts +32 -0
  47. package/dist-types/breadcrumbs-next/index.d.ts +4 -0
  48. package/dist-types/breadcrumbs-next/internal/BreadcrumbNextContext.d.ts +14 -0
  49. package/dist-types/breadcrumbs-next/internal/BreadcrumbOverflowDisclosure.d.ts +9 -0
  50. package/dist-types/breadcrumbs-next/internal/breadcrumbItems.d.ts +9 -0
  51. package/dist-types/index.d.ts +1 -1
  52. package/package.json +3 -3
  53. package/dist-cjs/mega-menu/MegaMenu.js +0 -76
  54. package/dist-cjs/mega-menu/MegaMenu.js.map +0 -1
  55. package/dist-cjs/mega-menu/MegaMenuActions.css.js +0 -6
  56. package/dist-cjs/mega-menu/MegaMenuActions.css.js.map +0 -1
  57. package/dist-cjs/mega-menu/MegaMenuActions.js +0 -33
  58. package/dist-cjs/mega-menu/MegaMenuActions.js.map +0 -1
  59. package/dist-cjs/mega-menu/MegaMenuAside.css.js +0 -6
  60. package/dist-cjs/mega-menu/MegaMenuAside.css.js.map +0 -1
  61. package/dist-cjs/mega-menu/MegaMenuAside.js +0 -33
  62. package/dist-cjs/mega-menu/MegaMenuAside.js.map +0 -1
  63. package/dist-cjs/mega-menu/MegaMenuContent.css.js +0 -6
  64. package/dist-cjs/mega-menu/MegaMenuContent.css.js.map +0 -1
  65. package/dist-cjs/mega-menu/MegaMenuContent.js +0 -25
  66. package/dist-cjs/mega-menu/MegaMenuContent.js.map +0 -1
  67. package/dist-cjs/mega-menu/MegaMenuContext.js +0 -11
  68. package/dist-cjs/mega-menu/MegaMenuContext.js.map +0 -1
  69. package/dist-cjs/mega-menu/MegaMenuGroup.css.js +0 -6
  70. package/dist-cjs/mega-menu/MegaMenuGroup.css.js.map +0 -1
  71. package/dist-cjs/mega-menu/MegaMenuGroup.js +0 -40
  72. package/dist-cjs/mega-menu/MegaMenuGroup.js.map +0 -1
  73. package/dist-cjs/mega-menu/MegaMenuGroupContext.js +0 -17
  74. package/dist-cjs/mega-menu/MegaMenuGroupContext.js.map +0 -1
  75. package/dist-cjs/mega-menu/MegaMenuGroupHeading.css.js +0 -6
  76. package/dist-cjs/mega-menu/MegaMenuGroupHeading.css.js.map +0 -1
  77. package/dist-cjs/mega-menu/MegaMenuGroupHeading.js +0 -39
  78. package/dist-cjs/mega-menu/MegaMenuGroupHeading.js.map +0 -1
  79. package/dist-cjs/mega-menu/MegaMenuGroups.css.js +0 -6
  80. package/dist-cjs/mega-menu/MegaMenuGroups.css.js.map +0 -1
  81. package/dist-cjs/mega-menu/MegaMenuGroups.js +0 -25
  82. package/dist-cjs/mega-menu/MegaMenuGroups.js.map +0 -1
  83. package/dist-cjs/mega-menu/MegaMenuList.css.js +0 -6
  84. package/dist-cjs/mega-menu/MegaMenuList.css.js.map +0 -1
  85. package/dist-cjs/mega-menu/MegaMenuList.js +0 -43
  86. package/dist-cjs/mega-menu/MegaMenuList.js.map +0 -1
  87. package/dist-cjs/mega-menu/MegaMenuListItem.css.js +0 -6
  88. package/dist-cjs/mega-menu/MegaMenuListItem.css.js.map +0 -1
  89. package/dist-cjs/mega-menu/MegaMenuListItem.js +0 -45
  90. package/dist-cjs/mega-menu/MegaMenuListItem.js.map +0 -1
  91. package/dist-cjs/mega-menu/MegaMenuPanel.css.js +0 -6
  92. package/dist-cjs/mega-menu/MegaMenuPanel.css.js.map +0 -1
  93. package/dist-cjs/mega-menu/MegaMenuPanel.js +0 -88
  94. package/dist-cjs/mega-menu/MegaMenuPanel.js.map +0 -1
  95. package/dist-cjs/mega-menu/MegaMenuTrigger.js +0 -90
  96. package/dist-cjs/mega-menu/MegaMenuTrigger.js.map +0 -1
  97. package/dist-cjs/mega-menu/useMegaMenu.js +0 -15
  98. package/dist-cjs/mega-menu/useMegaMenu.js.map +0 -1
  99. package/dist-cjs/mega-menu/useMegaMenuNavigation.js +0 -282
  100. package/dist-cjs/mega-menu/useMegaMenuNavigation.js.map +0 -1
  101. package/dist-cjs/mega-menu/usePageMargin.js +0 -22
  102. package/dist-cjs/mega-menu/usePageMargin.js.map +0 -1
  103. package/dist-es/mega-menu/MegaMenu.js +0 -74
  104. package/dist-es/mega-menu/MegaMenu.js.map +0 -1
  105. package/dist-es/mega-menu/MegaMenuActions.css.js +0 -4
  106. package/dist-es/mega-menu/MegaMenuActions.css.js.map +0 -1
  107. package/dist-es/mega-menu/MegaMenuActions.js +0 -31
  108. package/dist-es/mega-menu/MegaMenuActions.js.map +0 -1
  109. package/dist-es/mega-menu/MegaMenuAside.css.js +0 -4
  110. package/dist-es/mega-menu/MegaMenuAside.css.js.map +0 -1
  111. package/dist-es/mega-menu/MegaMenuAside.js +0 -31
  112. package/dist-es/mega-menu/MegaMenuAside.js.map +0 -1
  113. package/dist-es/mega-menu/MegaMenuContent.css.js +0 -4
  114. package/dist-es/mega-menu/MegaMenuContent.css.js.map +0 -1
  115. package/dist-es/mega-menu/MegaMenuContent.js +0 -23
  116. package/dist-es/mega-menu/MegaMenuContent.js.map +0 -1
  117. package/dist-es/mega-menu/MegaMenuContext.js +0 -9
  118. package/dist-es/mega-menu/MegaMenuContext.js.map +0 -1
  119. package/dist-es/mega-menu/MegaMenuGroup.css.js +0 -4
  120. package/dist-es/mega-menu/MegaMenuGroup.css.js.map +0 -1
  121. package/dist-es/mega-menu/MegaMenuGroup.js +0 -38
  122. package/dist-es/mega-menu/MegaMenuGroup.js.map +0 -1
  123. package/dist-es/mega-menu/MegaMenuGroupContext.js +0 -14
  124. package/dist-es/mega-menu/MegaMenuGroupContext.js.map +0 -1
  125. package/dist-es/mega-menu/MegaMenuGroupHeading.css.js +0 -4
  126. package/dist-es/mega-menu/MegaMenuGroupHeading.css.js.map +0 -1
  127. package/dist-es/mega-menu/MegaMenuGroupHeading.js +0 -37
  128. package/dist-es/mega-menu/MegaMenuGroupHeading.js.map +0 -1
  129. package/dist-es/mega-menu/MegaMenuGroups.css.js +0 -4
  130. package/dist-es/mega-menu/MegaMenuGroups.css.js.map +0 -1
  131. package/dist-es/mega-menu/MegaMenuGroups.js +0 -23
  132. package/dist-es/mega-menu/MegaMenuGroups.js.map +0 -1
  133. package/dist-es/mega-menu/MegaMenuList.css.js +0 -4
  134. package/dist-es/mega-menu/MegaMenuList.css.js.map +0 -1
  135. package/dist-es/mega-menu/MegaMenuList.js +0 -41
  136. package/dist-es/mega-menu/MegaMenuList.js.map +0 -1
  137. package/dist-es/mega-menu/MegaMenuListItem.css.js +0 -4
  138. package/dist-es/mega-menu/MegaMenuListItem.css.js.map +0 -1
  139. package/dist-es/mega-menu/MegaMenuListItem.js +0 -43
  140. package/dist-es/mega-menu/MegaMenuListItem.js.map +0 -1
  141. package/dist-es/mega-menu/MegaMenuPanel.css.js +0 -4
  142. package/dist-es/mega-menu/MegaMenuPanel.css.js.map +0 -1
  143. package/dist-es/mega-menu/MegaMenuPanel.js +0 -86
  144. package/dist-es/mega-menu/MegaMenuPanel.js.map +0 -1
  145. package/dist-es/mega-menu/MegaMenuTrigger.js +0 -88
  146. package/dist-es/mega-menu/MegaMenuTrigger.js.map +0 -1
  147. package/dist-es/mega-menu/useMegaMenu.js +0 -13
  148. package/dist-es/mega-menu/useMegaMenu.js.map +0 -1
  149. package/dist-es/mega-menu/useMegaMenuNavigation.js +0 -278
  150. package/dist-es/mega-menu/useMegaMenuNavigation.js.map +0 -1
  151. package/dist-es/mega-menu/usePageMargin.js +0 -20
  152. package/dist-es/mega-menu/usePageMargin.js.map +0 -1
  153. package/dist-types/mega-menu/MegaMenu.d.ts +0 -36
  154. package/dist-types/mega-menu/MegaMenuActions.d.ts +0 -10
  155. package/dist-types/mega-menu/MegaMenuAside.d.ts +0 -9
  156. package/dist-types/mega-menu/MegaMenuContent.d.ts +0 -9
  157. package/dist-types/mega-menu/MegaMenuContext.d.ts +0 -28
  158. package/dist-types/mega-menu/MegaMenuGroup.d.ts +0 -9
  159. package/dist-types/mega-menu/MegaMenuGroupContext.d.ts +0 -12
  160. package/dist-types/mega-menu/MegaMenuGroupHeading.d.ts +0 -13
  161. package/dist-types/mega-menu/MegaMenuGroups.d.ts +0 -8
  162. package/dist-types/mega-menu/MegaMenuList.d.ts +0 -16
  163. package/dist-types/mega-menu/MegaMenuListItem.d.ts +0 -25
  164. package/dist-types/mega-menu/MegaMenuPanel.d.ts +0 -8
  165. package/dist-types/mega-menu/MegaMenuTrigger.d.ts +0 -9
  166. package/dist-types/mega-menu/index.d.ts +0 -11
  167. package/dist-types/mega-menu/useMegaMenu.d.ts +0 -6
  168. package/dist-types/mega-menu/useMegaMenuNavigation.d.ts +0 -16
  169. package/dist-types/mega-menu/usePageMargin.d.ts +0 -6
package/CHANGELOG.md CHANGED
@@ -1,5 +1,34 @@
1
1
  # @salt-ds/lab
2
2
 
3
+ ## 1.0.0-alpha.99
4
+
5
+ ### Minor Changes
6
+
7
+ - 9c9b83e: Added `BreadcrumbsNext`, `BreadcrumbNext`, `BreadcrumbNextTrigger`, and `BreadcrumbNextLabel` for accessible breadcrumb navigation. Supports wrapping, disclosure collapse, and routing integration via `render` props.
8
+
9
+ ### Patch Changes
10
+
11
+ - d37a311: Updated Floating UI from `0.26.28` to `0.27.19`.
12
+ - Updated dependencies [747cb08]
13
+ - Updated dependencies [d84df88]
14
+ - Updated dependencies [56855cb]
15
+ - Updated dependencies [e226b17]
16
+ - Updated dependencies [9c9b83e]
17
+ - Updated dependencies [747cb08]
18
+ - Updated dependencies [d37a311]
19
+ - @salt-ds/core@1.67.0
20
+
21
+ ## 1.0.0-alpha.98
22
+
23
+ ### Minor Changes
24
+
25
+ - f9f9b8e: Removed `MegaMenu` and its related components (`MegaMenuActions`, `MegaMenuAside`, `MegaMenuContent`, `MegaMenuGroup`, `MegaMenuGroupHeading`, `MegaMenuGroups`, `MegaMenuList`, `MegaMenuListItem`, `MegaMenuPanel`, and `MegaMenuTrigger`) from lab and promoted to core.
26
+
27
+ ### Patch Changes
28
+
29
+ - Updated dependencies [f9f9b8e]
30
+ - @salt-ds/core@1.66.0
31
+
3
32
  ## 1.0.0-alpha.97
4
33
 
5
34
  ### Minor Changes
package/css/salt-lab.css CHANGED
@@ -174,6 +174,152 @@
174
174
  margin-bottom: var(--breadcrumbs-ol-wrap-li-marginBottom);
175
175
  }
176
176
 
177
+ /* src/breadcrumbs-next/BreadcrumbNext.css */
178
+ .saltBreadcrumbNext {
179
+ align-items: center;
180
+ display: inline-flex;
181
+ flex: 0 1 auto;
182
+ gap: var(--salt-spacing-100);
183
+ list-style: none;
184
+ min-width: 0;
185
+ }
186
+ .saltBreadcrumbNext-current,
187
+ .saltBreadcrumbNext-label,
188
+ .saltBreadcrumbNext-link,
189
+ .saltBreadcrumbNext-trigger {
190
+ min-width: 0;
191
+ }
192
+ .saltBreadcrumbNext-trigger {
193
+ align-items: center;
194
+ display: inline-flex;
195
+ gap: var(--salt-spacing-50);
196
+ max-width: 100%;
197
+ }
198
+ .saltBreadcrumbNext-link.saltLink {
199
+ --link-color-visited: var(--link-color);
200
+ --link-textDecoration-visited: var(--link-textDecoration);
201
+ }
202
+ .saltBreadcrumbNext-current.saltLink {
203
+ cursor: var(--salt-cursor-text);
204
+ }
205
+ .saltBreadcrumbNext-separator {
206
+ --saltIcon-color: var(--salt-content-secondary-foreground);
207
+ --saltIcon-size: var(--salt-size-icon);
208
+ flex: 0 0 auto;
209
+ }
210
+
211
+ /* src/breadcrumbs-next/BreadcrumbsNext.css */
212
+ .saltBreadcrumbsNext {
213
+ display: block;
214
+ margin-block: var(--salt-spacing-25);
215
+ }
216
+ .saltBreadcrumbsNext-ol {
217
+ display: flex;
218
+ align-items: center;
219
+ flex-wrap: nowrap;
220
+ gap: var(--salt-spacing-100);
221
+ justify-content: flex-start;
222
+ list-style: none;
223
+ margin: 0;
224
+ padding: 0;
225
+ }
226
+ .saltBreadcrumbsNext-ol-wrap {
227
+ flex-wrap: wrap;
228
+ }
229
+ .saltBreadcrumbsNext-collapseItem {
230
+ align-items: center;
231
+ display: inline-flex;
232
+ flex: 0 1 auto;
233
+ gap: var(--salt-spacing-100);
234
+ list-style: none;
235
+ min-width: 0;
236
+ }
237
+ .saltBreadcrumbsNext-collapseButton[aria-expanded=true] {
238
+ background: var(--saltButton-background-active, var(--button-background-active));
239
+ border-color: var(--saltButton-borderColor-active, var(--button-borderColor-active));
240
+ color: var(--saltButton-text-color-active, var(--button-text-color-active));
241
+ cursor: var(--salt-cursor-active);
242
+ }
243
+ .saltBreadcrumbsNext-disclosure {
244
+ background: var(--salt-container-primary-background);
245
+ border: var(--salt-size-fixed-100) var(--salt-borderStyle-solid) var(--salt-selectable-borderColor-selected);
246
+ overflow: hidden;
247
+ overflow-y: auto;
248
+ min-width: 10em;
249
+ position: relative;
250
+ z-index: var(--salt-zIndex-flyover);
251
+ box-shadow: var(--salt-overlayable-shadow-popout);
252
+ box-sizing: border-box;
253
+ border-radius: var(--salt-palette-corner, 0);
254
+ }
255
+ .saltBreadcrumbsNext-disclosureList {
256
+ list-style: none;
257
+ margin: 0;
258
+ padding: 0;
259
+ }
260
+ .saltBreadcrumbsNext-disclosureListItem {
261
+ list-style: none;
262
+ margin: 0;
263
+ padding: 0;
264
+ }
265
+ .saltBreadcrumbsNext-disclosureItem {
266
+ color: var(--salt-content-primary-foreground);
267
+ background: var(--salt-selectable-background);
268
+ font-size: var(--salt-text-fontSize);
269
+ font-weight: var(--salt-text-fontWeight);
270
+ font-family: var(--salt-text-fontFamily);
271
+ line-height: var(--salt-text-lineHeight);
272
+ letter-spacing: var(--salt-text-letterSpacing);
273
+ min-height: calc(var(--salt-size-base) + var(--salt-spacing-100));
274
+ padding: calc(var(--salt-spacing-100) + var(--salt-spacing-25)) var(--salt-spacing-100);
275
+ display: flex;
276
+ gap: var(--salt-spacing-100);
277
+ position: relative;
278
+ cursor: var(--salt-cursor-hover);
279
+ box-sizing: border-box;
280
+ flex-shrink: 0;
281
+ text-decoration: none;
282
+ width: 100%;
283
+ }
284
+ .saltBreadcrumbsNext-disclosureItem.saltLink {
285
+ --link-color: var(--salt-content-primary-foreground);
286
+ --link-color-hover: var(--salt-content-primary-foreground);
287
+ --link-color-active: var(--salt-content-primary-foreground);
288
+ --link-color-focus: var(--salt-content-primary-foreground);
289
+ --link-color-visited: var(--salt-content-primary-foreground);
290
+ --link-textDecoration: var(--salt-typography-textDecoration-none);
291
+ --link-textDecoration-hover: var(--salt-typography-textDecoration-none);
292
+ --link-textDecoration-active: var(--salt-typography-textDecoration-none);
293
+ --link-textDecoration-focus: var(--salt-typography-textDecoration-none);
294
+ --link-textDecoration-visited: var(--salt-typography-textDecoration-none);
295
+ }
296
+ .saltBreadcrumbsNext-disclosureItem.saltLink:focus:not(:focus-visible) {
297
+ outline: none;
298
+ }
299
+ .saltBreadcrumbsNext-disclosureItem:focus-visible,
300
+ .saltBreadcrumbsNext-disclosureItem.saltLink:focus-visible {
301
+ outline: var(--salt-focused-outline);
302
+ outline-offset: calc(var(--salt-size-fixed-100) * -2);
303
+ }
304
+ .saltBreadcrumbsNext-disclosureItem:hover {
305
+ outline: none;
306
+ }
307
+ .saltBreadcrumbsNext-disclosureItem:hover,
308
+ .saltBreadcrumbsNext-disclosureItem:focus-visible {
309
+ background: var(--salt-selectable-background-hover);
310
+ }
311
+ .saltBreadcrumbsNext-disclosureItem:active {
312
+ background: var(--salt-selectable-background-selected);
313
+ box-shadow: 0 calc(var(--salt-size-fixed-100) * -1) 0 0 var(--salt-selectable-borderColor-selected), 0 var(--salt-size-fixed-100) 0 0 var(--salt-selectable-borderColor-selected);
314
+ }
315
+ .saltBreadcrumbsNext-disclosureItem[aria-disabled=true],
316
+ .saltBreadcrumbsNext-disclosureItem[aria-disabled=true]:active {
317
+ background: var(--salt-selectable-background-disabled);
318
+ color: var(--salt-content-primary-foreground-disabled);
319
+ cursor: var(--salt-cursor-disabled);
320
+ box-shadow: none;
321
+ }
322
+
177
323
  /* src/button-bar/ButtonBar.css */
178
324
  .saltButtonBar {
179
325
  width: 100%;
@@ -1893,148 +2039,6 @@
1893
2039
  border-right: var(--salt-size-fixed-100) var(--salt-borderStyle-solid) var(--salt-separable-primary-borderColor);
1894
2040
  }
1895
2041
 
1896
- /* src/mega-menu/MegaMenuActions.css */
1897
- .saltMegaMenuActions {
1898
- display: flex;
1899
- flex-wrap: wrap;
1900
- margin-block-start: auto;
1901
- }
1902
-
1903
- /* src/mega-menu/MegaMenuAside.css */
1904
- .saltMegaMenuAside {
1905
- flex: 0 0 auto;
1906
- display: flex;
1907
- flex-direction: column;
1908
- padding: var(--salt-spacing-300);
1909
- }
1910
-
1911
- /* src/mega-menu/MegaMenuContent.css */
1912
- .saltMegaMenuContent {
1913
- display: flex;
1914
- flex-direction: column;
1915
- gap: var(--salt-spacing-300);
1916
- padding: var(--salt-spacing-300);
1917
- min-width: 0;
1918
- flex: 0 1 auto;
1919
- max-inline-size: var(--saltMegaMenuPanel-availableWidth);
1920
- box-sizing: border-box;
1921
- }
1922
-
1923
- /* src/mega-menu/MegaMenuGroup.css */
1924
- .saltMegaMenuGroup {
1925
- display: flex;
1926
- flex-direction: column;
1927
- }
1928
-
1929
- /* src/mega-menu/MegaMenuGroupHeading.css */
1930
- .saltMegaMenuGroupHeading {
1931
- display: flex;
1932
- align-items: center;
1933
- margin: 0 0 var(--salt-spacing-50);
1934
- padding: var(--salt-spacing-50) var(--salt-spacing-100);
1935
- border-bottom: var(--salt-size-fixed-100) var(--salt-borderStyle-solid) var(--salt-separable-tertiary-borderColor);
1936
- min-height: var(--salt-size-base);
1937
- font-family: var(--salt-text-label-fontFamily);
1938
- font-size: var(--salt-text-label-fontSize);
1939
- font-weight: var(--salt-text-fontWeight-strong);
1940
- line-height: var(--salt-text-label-lineHeight);
1941
- color: var(--salt-content-secondary-foreground);
1942
- }
1943
-
1944
- /* src/mega-menu/MegaMenuGroups.css */
1945
- .saltMegaMenuGroups {
1946
- align-self: start;
1947
- display: grid;
1948
- grid-template-columns: repeat(auto-fit, minmax(0, var(--saltMegaMenuGroups-columnWidth, 12rem)));
1949
- gap: var(--salt-spacing-300);
1950
- min-width: 0;
1951
- max-inline-size: var(--saltMegaMenuPanel-availableWidth);
1952
- }
1953
-
1954
- /* src/mega-menu/MegaMenuList.css */
1955
- .saltMegaMenuList {
1956
- list-style: none;
1957
- margin: 0;
1958
- padding: 0;
1959
- display: flex;
1960
- gap: var(--salt-spacing-fixed-100);
1961
- flex-direction: column;
1962
- }
1963
-
1964
- /* src/mega-menu/MegaMenuListItem.css */
1965
- .saltMegaMenuListItem {
1966
- list-style: none;
1967
- display: flex;
1968
- flex-direction: column;
1969
- }
1970
- .saltMegaMenuListItem-wrapper {
1971
- display: flex;
1972
- padding: var(--salt-spacing-50) var(--salt-spacing-100);
1973
- align-items: flex-start;
1974
- color: var(--salt-content-primary-foreground);
1975
- background: var(--salt-selectable-background);
1976
- cursor: var(--salt-cursor-hover);
1977
- min-height: calc(var(--salt-size-base) + var(--salt-spacing-100));
1978
- box-sizing: border-box;
1979
- gap: var(--salt-spacing-100);
1980
- position: relative;
1981
- border-radius: var(--salt-palette-corner-weak, 0);
1982
- text-decoration: none;
1983
- border: none;
1984
- font: inherit;
1985
- text-align: start;
1986
- }
1987
- .saltMegaMenuListItem-wrapper > .saltIcon {
1988
- display: flex;
1989
- height: var(--salt-size-base);
1990
- align-items: center;
1991
- }
1992
- .saltMegaMenuListItem-content {
1993
- flex: 1 0;
1994
- margin: var(--salt-spacing-75) 0;
1995
- font-family: var(--salt-text-fontFamily);
1996
- font-size: var(--salt-text-fontSize);
1997
- font-weight: var(--salt-text-fontWeight);
1998
- line-height: var(--salt-text-lineHeight);
1999
- }
2000
- .saltMegaMenuListItem-wrapper:focus-visible {
2001
- outline: var(--salt-focused-outline);
2002
- outline-offset: calc(var(--salt-size-fixed-100) * -2);
2003
- }
2004
- .saltMegaMenuListItem-wrapper:hover:not(:focus-visible) {
2005
- outline: none;
2006
- background: var(--salt-overlayable-background-hover);
2007
- }
2008
- .saltMegaMenuListItem-wrapper:active {
2009
- background: var(--salt-navigable-accent-background-active);
2010
- }
2011
- .saltMegaMenuListItem-wrapper:active::before {
2012
- content: "";
2013
- position: absolute;
2014
- inset: 0;
2015
- box-sizing: border-box;
2016
- border-radius: inherit;
2017
- border: var(--salt-size-fixed-100) var(--salt-borderStyle-solid) var(--salt-navigable-accent-borderColor-active);
2018
- pointer-events: none;
2019
- }
2020
-
2021
- /* src/mega-menu/MegaMenuPanel.css */
2022
- .saltMegaMenuPanel {
2023
- --saltMegaMenuPanel-availableWidth: calc(100vw - var(--salt-spacing-600));
2024
- display: flex;
2025
- align-items: stretch;
2026
- inline-size: var(--saltMegaMenuPanel-inlineSize, fit-content);
2027
- max-inline-size: var(--saltMegaMenuPanel-maxInlineSize, var(--saltMegaMenuPanel-availableWidth));
2028
- max-block-size: 90vh;
2029
- overflow-x: hidden;
2030
- overflow-y: auto;
2031
- box-sizing: border-box;
2032
- border-radius: var(--salt-palette-corner, 0);
2033
- border: var(--salt-size-fixed-100) var(--salt-borderStyle-solid) var(--salt-container-primary-borderColor);
2034
- background: var(--salt-container-primary-background);
2035
- box-shadow: var(--salt-overlayable-shadow-modal);
2036
- }
2037
-
2038
2042
  /* src/menu-button/MenuButton.css */
2039
2043
 
2040
2044
  /* src/menu-button/MenuButtonTrigger.css */
@@ -3258,4 +3262,4 @@
3258
3262
  margin: calc(var(--salt-size-unit) / 2) 0;
3259
3263
  }
3260
3264
 
3261
- /* src/8f16bdce-6a2c-43c5-bef1-c547bffcc9de.css */
3265
+ /* src/a1e4b79c-9deb-4780-be8e-e16a36fe360d.css */
@@ -0,0 +1,6 @@
1
+ 'use strict';
2
+
3
+ var css_248z = ".saltBreadcrumbNext {\n align-items: center;\n display: inline-flex;\n flex: 0 1 auto;\n gap: var(--salt-spacing-100);\n list-style: none;\n min-width: 0;\n}\n\n.saltBreadcrumbNext-current,\n.saltBreadcrumbNext-label,\n.saltBreadcrumbNext-link,\n.saltBreadcrumbNext-trigger {\n min-width: 0;\n}\n\n.saltBreadcrumbNext-trigger {\n align-items: center;\n display: inline-flex;\n gap: var(--salt-spacing-50);\n max-width: 100%;\n}\n\n.saltBreadcrumbNext-link.saltLink {\n --link-color-visited: var(--link-color);\n --link-textDecoration-visited: var(--link-textDecoration);\n}\n\n.saltBreadcrumbNext-current.saltLink {\n cursor: var(--salt-cursor-text);\n}\n\n.saltBreadcrumbNext-separator {\n --saltIcon-color: var(--salt-content-secondary-foreground);\n --saltIcon-size: var(--salt-size-icon);\n\n flex: 0 0 auto;\n}\n";
4
+
5
+ module.exports = css_248z;
6
+ //# sourceMappingURL=BreadcrumbNext.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BreadcrumbNext.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
@@ -0,0 +1,99 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var core = require('@salt-ds/core');
5
+ var styles = require('@salt-ds/styles');
6
+ var window = require('@salt-ds/window');
7
+ var clsx = require('clsx');
8
+ var react = require('react');
9
+ var BreadcrumbNext$1 = require('./BreadcrumbNext.css.js');
10
+ var BreadcrumbNextLabel = require('./BreadcrumbNextLabel.js');
11
+ var BreadcrumbNextTrigger = require('./BreadcrumbNextTrigger.js');
12
+ var BreadcrumbNextContext = require('./internal/BreadcrumbNextContext.js');
13
+
14
+ const withBaseName = core.makePrefixer("saltBreadcrumbNext");
15
+ const withBreadcrumbsBaseName = core.makePrefixer("saltBreadcrumbsNext");
16
+ function isPrimitiveBreadcrumbLabel(children) {
17
+ return typeof children === "string" && children.trim() !== "" || typeof children === "number";
18
+ }
19
+ function isMissingBreadcrumbContent(children) {
20
+ const childArray = react.Children.toArray(children);
21
+ return childArray.length === 0 || childArray.every(
22
+ (child) => typeof child === "string" && child.trim() === ""
23
+ );
24
+ }
25
+ let missingBreadcrumbContentWarningShown = false;
26
+ function warnIfMissingBreadcrumbContent() {
27
+ if (process.env.NODE_ENV === "production" || missingBreadcrumbContentWarningShown) {
28
+ return;
29
+ }
30
+ missingBreadcrumbContentWarningShown = true;
31
+ console.warn(
32
+ "BreadcrumbNext requires children to render a named breadcrumb item. Use text children for simple items or BreadcrumbNextTrigger with BreadcrumbNextLabel for composed items."
33
+ );
34
+ }
35
+ const BreadcrumbNext = react.forwardRef(
36
+ function BreadcrumbNext2(props, ref) {
37
+ const {
38
+ children,
39
+ className,
40
+ current: currentProp,
41
+ href,
42
+ render,
43
+ ...rest
44
+ } = props;
45
+ const targetWindow = window.useWindow();
46
+ styles.useComponentCssInjection({
47
+ testId: "salt-breadcrumb-next",
48
+ css: BreadcrumbNext$1,
49
+ window: targetWindow
50
+ });
51
+ const parentContext = BreadcrumbNextContext.useBreadcrumbNextContext();
52
+ const current = (parentContext == null ? void 0 : parentContext.current) ?? Boolean(currentProp);
53
+ const onNavigate = parentContext == null ? void 0 : parentContext.onNavigate;
54
+ const placement = (parentContext == null ? void 0 : parentContext.placement) ?? "trail";
55
+ const showSeparator = (parentContext == null ? void 0 : parentContext.showSeparator) ?? false;
56
+ const triggerRef = parentContext == null ? void 0 : parentContext.triggerRef;
57
+ const resolvedRender = render ?? (parentContext == null ? void 0 : parentContext.render);
58
+ const { LevelSeparatorIcon } = core.useIcon();
59
+ const missingContent = isMissingBreadcrumbContent(children);
60
+ if (missingContent) {
61
+ warnIfMissingBreadcrumbContent();
62
+ }
63
+ const primitiveChildren = isPrimitiveBreadcrumbLabel(children) ? children : void 0;
64
+ const content = missingContent ? null : primitiveChildren !== void 0 ? /* @__PURE__ */ jsxRuntime.jsx(BreadcrumbNextTrigger.BreadcrumbNextTrigger, { children: /* @__PURE__ */ jsxRuntime.jsx(BreadcrumbNextLabel.BreadcrumbNextLabel, { children: primitiveChildren }) }) : children;
65
+ const context = {
66
+ current,
67
+ href,
68
+ onNavigate,
69
+ placement,
70
+ render: resolvedRender,
71
+ showSeparator,
72
+ triggerRef
73
+ };
74
+ return /* @__PURE__ */ jsxRuntime.jsx(
75
+ "li",
76
+ {
77
+ ref,
78
+ className: clsx.clsx(
79
+ placement === "disclosure" ? withBreadcrumbsBaseName("disclosureListItem") : withBaseName(),
80
+ className
81
+ ),
82
+ ...rest,
83
+ children: /* @__PURE__ */ jsxRuntime.jsxs(BreadcrumbNextContext.BreadcrumbNextContext.Provider, { value: context, children: [
84
+ content,
85
+ placement === "trail" && showSeparator ? /* @__PURE__ */ jsxRuntime.jsx(
86
+ LevelSeparatorIcon,
87
+ {
88
+ "aria-hidden": true,
89
+ className: withBaseName("separator")
90
+ }
91
+ ) : null
92
+ ] })
93
+ }
94
+ );
95
+ }
96
+ );
97
+
98
+ exports.BreadcrumbNext = BreadcrumbNext;
99
+ //# sourceMappingURL=BreadcrumbNext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BreadcrumbNext.js","sources":["../src/breadcrumbs-next/BreadcrumbNext.tsx"],"sourcesContent":["import { makePrefixer, type RenderPropsType, useIcon } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport {\n Children,\n type ComponentPropsWithoutRef,\n forwardRef,\n type ReactNode,\n} from \"react\";\nimport breadcrumbNextCss from \"./BreadcrumbNext.css\";\nimport { BreadcrumbNextLabel } from \"./BreadcrumbNextLabel\";\nimport { BreadcrumbNextTrigger } from \"./BreadcrumbNextTrigger\";\nimport {\n BreadcrumbNextContext,\n useBreadcrumbNextContext,\n} from \"./internal/BreadcrumbNextContext\";\n\nconst withBaseName = makePrefixer(\"saltBreadcrumbNext\");\nconst withBreadcrumbsBaseName = makePrefixer(\"saltBreadcrumbsNext\");\n\nfunction isPrimitiveBreadcrumbLabel(children: ReactNode) {\n return (\n (typeof children === \"string\" && children.trim() !== \"\") ||\n typeof children === \"number\"\n );\n}\n\nfunction isMissingBreadcrumbContent(children: ReactNode) {\n const childArray = Children.toArray(children);\n\n return (\n childArray.length === 0 ||\n childArray.every(\n (child) => typeof child === \"string\" && child.trim() === \"\",\n )\n );\n}\n\nlet missingBreadcrumbContentWarningShown = false;\n\nfunction warnIfMissingBreadcrumbContent() {\n if (\n process.env.NODE_ENV === \"production\" ||\n missingBreadcrumbContentWarningShown\n ) {\n return;\n }\n\n missingBreadcrumbContentWarningShown = true;\n console.warn(\n \"BreadcrumbNext requires children to render a named breadcrumb item. Use text children for simple items or BreadcrumbNextTrigger with BreadcrumbNextLabel for composed items.\",\n );\n}\n\nexport interface BreadcrumbNextProps\n extends Omit<ComponentPropsWithoutRef<\"li\">, \"children\"> {\n /**\n * Custom breadcrumb content. Use this for advanced composition with\n * `BreadcrumbNextTrigger` and `BreadcrumbNextLabel`.\n */\n children?: ReactNode;\n /**\n * If `true`, the breadcrumb represents the current page.\n */\n current?: boolean;\n /**\n * The URL for the breadcrumb. Provide this for the current breadcrumb so it\n * renders as a focusable link with `aria-current=\"page\"`.\n */\n href?: string;\n /**\n * Render prop to enable customization of the underlying link element.\n */\n render?: RenderPropsType[\"render\"];\n}\n\nexport const BreadcrumbNext = forwardRef<HTMLLIElement, BreadcrumbNextProps>(\n function BreadcrumbNext(props, ref) {\n const {\n children,\n className,\n current: currentProp,\n href,\n render,\n ...rest\n } = props;\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-breadcrumb-next\",\n css: breadcrumbNextCss,\n window: targetWindow,\n });\n\n const parentContext = useBreadcrumbNextContext();\n const current = parentContext?.current ?? Boolean(currentProp);\n const onNavigate = parentContext?.onNavigate;\n const placement = parentContext?.placement ?? \"trail\";\n const showSeparator = parentContext?.showSeparator ?? false;\n const triggerRef = parentContext?.triggerRef;\n const resolvedRender = render ?? parentContext?.render;\n const { LevelSeparatorIcon } = useIcon();\n const missingContent = isMissingBreadcrumbContent(children);\n\n if (missingContent) {\n warnIfMissingBreadcrumbContent();\n }\n\n const primitiveChildren = isPrimitiveBreadcrumbLabel(children)\n ? children\n : undefined;\n const content = missingContent ? null : primitiveChildren !== undefined ? (\n <BreadcrumbNextTrigger>\n <BreadcrumbNextLabel>{primitiveChildren}</BreadcrumbNextLabel>\n </BreadcrumbNextTrigger>\n ) : (\n children\n );\n const context = {\n current,\n href,\n onNavigate,\n placement,\n render: resolvedRender,\n showSeparator,\n triggerRef,\n };\n\n return (\n <li\n ref={ref}\n className={clsx(\n placement === \"disclosure\"\n ? withBreadcrumbsBaseName(\"disclosureListItem\")\n : withBaseName(),\n className,\n )}\n {...rest}\n >\n <BreadcrumbNextContext.Provider value={context}>\n {content}\n {placement === \"trail\" && showSeparator ? (\n <LevelSeparatorIcon\n aria-hidden\n className={withBaseName(\"separator\")}\n />\n ) : null}\n </BreadcrumbNextContext.Provider>\n </li>\n );\n },\n);\n"],"names":["makePrefixer","Children","forwardRef","BreadcrumbNext","useWindow","useComponentCssInjection","breadcrumbNextCss","useBreadcrumbNextContext","useIcon","jsx","BreadcrumbNextTrigger","BreadcrumbNextLabel","clsx","jsxs","BreadcrumbNextContext"],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var core = require('@salt-ds/core');
5
+ var clsx = require('clsx');
6
+ var react = require('react');
7
+
8
+ const withBaseName = core.makePrefixer("saltBreadcrumbNext");
9
+ const BreadcrumbNextLabel = react.forwardRef(function BreadcrumbNextLabel2({ className, ...rest }, ref) {
10
+ return /* @__PURE__ */ jsxRuntime.jsx(
11
+ "span",
12
+ {
13
+ ref,
14
+ className: clsx.clsx(withBaseName("label"), className),
15
+ ...rest
16
+ }
17
+ );
18
+ });
19
+
20
+ exports.BreadcrumbNextLabel = BreadcrumbNextLabel;
21
+ //# sourceMappingURL=BreadcrumbNextLabel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BreadcrumbNextLabel.js","sources":["../src/breadcrumbs-next/BreadcrumbNextLabel.tsx"],"sourcesContent":["import { makePrefixer } from \"@salt-ds/core\";\nimport { clsx } from \"clsx\";\nimport { type ComponentPropsWithoutRef, forwardRef } from \"react\";\n\nconst withBaseName = makePrefixer(\"saltBreadcrumbNext\");\n\nexport interface BreadcrumbNextLabelProps\n extends ComponentPropsWithoutRef<\"span\"> {}\n\nexport const BreadcrumbNextLabel = forwardRef<\n HTMLSpanElement,\n BreadcrumbNextLabelProps\n>(function BreadcrumbNextLabel({ className, ...rest }, ref) {\n return (\n <span\n ref={ref}\n className={clsx(withBaseName(\"label\"), className)}\n {...rest}\n />\n );\n});\n"],"names":["makePrefixer","forwardRef","BreadcrumbNextLabel","jsx","clsx"],"mappings":";;;;;;;AAIA,MAAM,YAAA,GAAeA,kBAAa,oBAAoB,CAAA;AAK/C,MAAM,mBAAA,GAAsBC,iBAGjC,SAASC,oBAAAA,CAAoB,EAAE,SAAA,EAAW,GAAG,IAAA,EAAK,EAAG,GAAA,EAAK;AAC1D,EAAA,uBACEC,cAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAWC,SAAA,CAAK,YAAA,CAAa,OAAO,GAAG,SAAS,CAAA;AAAA,MAC/C,GAAG;AAAA;AAAA,GACN;AAEJ,CAAC;;;;"}
@@ -0,0 +1,55 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var core = require('@salt-ds/core');
5
+ var clsx = require('clsx');
6
+ var react = require('react');
7
+ var BreadcrumbNextContext = require('./internal/BreadcrumbNextContext.js');
8
+
9
+ const withBaseName = core.makePrefixer("saltBreadcrumbNext");
10
+ const withBreadcrumbsBaseName = core.makePrefixer("saltBreadcrumbsNext");
11
+ const BreadcrumbNextTrigger = react.forwardRef(function BreadcrumbNextTrigger2(props, ref) {
12
+ const { children, className, onClick, ...rest } = props;
13
+ const context = BreadcrumbNextContext.useBreadcrumbNextContext();
14
+ if (!context) {
15
+ throw new Error(
16
+ "BreadcrumbNextTrigger must be rendered inside BreadcrumbNext"
17
+ );
18
+ }
19
+ const { current, href, onNavigate, placement, render, triggerRef } = context;
20
+ const handleRef = core.useForkRef(ref, triggerRef);
21
+ const isDisclosure = placement === "disclosure";
22
+ const triggerClassName = clsx.clsx(
23
+ isDisclosure ? withBreadcrumbsBaseName("disclosureItem") : withBaseName("trigger"),
24
+ className
25
+ );
26
+ const isNavigable = href !== void 0;
27
+ const handleClick = (event) => {
28
+ onClick == null ? void 0 : onClick(event);
29
+ if (isDisclosure || !event.defaultPrevented) {
30
+ onNavigate == null ? void 0 : onNavigate();
31
+ }
32
+ };
33
+ return /* @__PURE__ */ jsxRuntime.jsx(
34
+ core.Link,
35
+ {
36
+ "aria-current": current ? "page" : void 0,
37
+ className: clsx.clsx(triggerClassName, {
38
+ [withBaseName("link")]: isNavigable,
39
+ [withBaseName("current")]: current
40
+ }),
41
+ color: isDisclosure ? "inherit" : void 0,
42
+ href,
43
+ onClick: isNavigable ? handleClick : onClick,
44
+ ref: handleRef,
45
+ render: isNavigable ? render : void 0,
46
+ styleAs: "label",
47
+ underline: current || !isNavigable || isDisclosure ? "never" : void 0,
48
+ ...rest,
49
+ children
50
+ }
51
+ );
52
+ });
53
+
54
+ exports.BreadcrumbNextTrigger = BreadcrumbNextTrigger;
55
+ //# sourceMappingURL=BreadcrumbNextTrigger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BreadcrumbNextTrigger.js","sources":["../src/breadcrumbs-next/BreadcrumbNextTrigger.tsx"],"sourcesContent":["import { Link, makePrefixer, useForkRef } from \"@salt-ds/core\";\nimport { clsx } from \"clsx\";\nimport {\n type ComponentPropsWithoutRef,\n forwardRef,\n type MouseEventHandler,\n type ReactNode,\n} from \"react\";\nimport { useBreadcrumbNextContext } from \"./internal/BreadcrumbNextContext\";\n\nconst withBaseName = makePrefixer(\"saltBreadcrumbNext\");\nconst withBreadcrumbsBaseName = makePrefixer(\"saltBreadcrumbsNext\");\n\nexport interface BreadcrumbNextTriggerProps\n extends Omit<ComponentPropsWithoutRef<\"a\">, \"children\" | \"color\" | \"href\"> {\n /**\n * Breadcrumb trigger content.\n */\n children?: ReactNode;\n}\n\nexport const BreadcrumbNextTrigger = forwardRef<\n HTMLAnchorElement,\n BreadcrumbNextTriggerProps\n>(function BreadcrumbNextTrigger(props, ref) {\n const { children, className, onClick, ...rest } = props;\n const context = useBreadcrumbNextContext();\n\n if (!context) {\n throw new Error(\n \"BreadcrumbNextTrigger must be rendered inside BreadcrumbNext\",\n );\n }\n\n const { current, href, onNavigate, placement, render, triggerRef } = context;\n const handleRef = useForkRef(ref, triggerRef);\n const isDisclosure = placement === \"disclosure\";\n const triggerClassName = clsx(\n isDisclosure\n ? withBreadcrumbsBaseName(\"disclosureItem\")\n : withBaseName(\"trigger\"),\n className,\n );\n const isNavigable = href !== undefined;\n const handleClick: MouseEventHandler<HTMLAnchorElement> = (event) => {\n onClick?.(event);\n\n if (isDisclosure || !event.defaultPrevented) {\n onNavigate?.();\n }\n };\n\n return (\n <Link\n aria-current={current ? \"page\" : undefined}\n className={clsx(triggerClassName, {\n [withBaseName(\"link\")]: isNavigable,\n [withBaseName(\"current\")]: current,\n })}\n color={isDisclosure ? \"inherit\" : undefined}\n href={href}\n onClick={isNavigable ? handleClick : onClick}\n ref={handleRef}\n render={isNavigable ? render : undefined}\n styleAs=\"label\"\n underline={current || !isNavigable || isDisclosure ? \"never\" : undefined}\n {...rest}\n >\n {children}\n </Link>\n );\n});\n"],"names":["makePrefixer","forwardRef","BreadcrumbNextTrigger","useBreadcrumbNextContext","useForkRef","clsx","jsx","Link"],"mappings":";;;;;;;;AAUA,MAAM,YAAA,GAAeA,kBAAa,oBAAoB,CAAA;AACtD,MAAM,uBAAA,GAA0BA,kBAAa,qBAAqB,CAAA;AAU3D,MAAM,qBAAA,GAAwBC,gBAAA,CAGnC,SAASC,sBAAAA,CAAsB,OAAO,GAAA,EAAK;AAC3C,EAAA,MAAM,EAAE,QAAA,EAAU,SAAA,EAAW,OAAA,EAAS,GAAG,MAAK,GAAI,KAAA;AAClD,EAAA,MAAM,UAAUC,8CAAA,EAAyB;AAEzC,EAAA,IAAI,CAAC,OAAA,EAAS;AACZ,IAAA,MAAM,IAAI,KAAA;AAAA,MACR;AAAA,KACF;AAAA,EACF;AAEA,EAAA,MAAM,EAAE,OAAA,EAAS,IAAA,EAAM,YAAY,SAAA,EAAW,MAAA,EAAQ,YAAW,GAAI,OAAA;AACrE,EAAA,MAAM,SAAA,GAAYC,eAAA,CAAW,GAAA,EAAK,UAAU,CAAA;AAC5C,EAAA,MAAM,eAAe,SAAA,KAAc,YAAA;AACnC,EAAA,MAAM,gBAAA,GAAmBC,SAAA;AAAA,IACvB,YAAA,GACI,uBAAA,CAAwB,gBAAgB,CAAA,GACxC,aAAa,SAAS,CAAA;AAAA,IAC1B;AAAA,GACF;AACA,EAAA,MAAM,cAAc,IAAA,KAAS,MAAA;AAC7B,EAAA,MAAM,WAAA,GAAoD,CAAC,KAAA,KAAU;AACnE,IAAA,OAAA,IAAA,IAAA,GAAA,MAAA,GAAA,OAAA,CAAU,KAAA,CAAA;AAEV,IAAA,IAAI,YAAA,IAAgB,CAAC,KAAA,CAAM,gBAAA,EAAkB;AAC3C,MAAA,UAAA,IAAA,IAAA,GAAA,MAAA,GAAA,UAAA,EAAA;AAAA,IACF;AAAA,EACF,CAAA;AAEA,EAAA,uBACEC,cAAA;AAAA,IAACC,SAAA;AAAA,IAAA;AAAA,MACC,cAAA,EAAc,UAAU,MAAA,GAAS,MAAA;AAAA,MACjC,SAAA,EAAWF,UAAK,gBAAA,EAAkB;AAAA,QAChC,CAAC,YAAA,CAAa,MAAM,CAAC,GAAG,WAAA;AAAA,QACxB,CAAC,YAAA,CAAa,SAAS,CAAC,GAAG;AAAA,OAC5B,CAAA;AAAA,MACD,KAAA,EAAO,eAAe,SAAA,GAAY,MAAA;AAAA,MAClC,IAAA;AAAA,MACA,OAAA,EAAS,cAAc,WAAA,GAAc,OAAA;AAAA,MACrC,GAAA,EAAK,SAAA;AAAA,MACL,MAAA,EAAQ,cAAc,MAAA,GAAS,MAAA;AAAA,MAC/B,OAAA,EAAQ,OAAA;AAAA,MACR,SAAA,EAAW,OAAA,IAAW,CAAC,WAAA,IAAe,eAAe,OAAA,GAAU,MAAA;AAAA,MAC9D,GAAG,IAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ,CAAC;;;;"}
@@ -0,0 +1,6 @@
1
+ 'use strict';
2
+
3
+ var css_248z = ".saltBreadcrumbsNext {\n display: block;\n margin-block: var(--salt-spacing-25);\n}\n\n.saltBreadcrumbsNext-ol {\n display: flex;\n align-items: center;\n flex-wrap: nowrap;\n gap: var(--salt-spacing-100);\n justify-content: flex-start;\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n.saltBreadcrumbsNext-ol-wrap {\n flex-wrap: wrap;\n}\n\n.saltBreadcrumbsNext-collapseItem {\n align-items: center;\n display: inline-flex;\n flex: 0 1 auto;\n gap: var(--salt-spacing-100);\n list-style: none;\n min-width: 0;\n}\n\n.saltBreadcrumbsNext-collapseButton[aria-expanded=\"true\"] {\n background: var(--saltButton-background-active, var(--button-background-active));\n border-color: var(--saltButton-borderColor-active, var(--button-borderColor-active));\n color: var(--saltButton-text-color-active, var(--button-text-color-active));\n cursor: var(--salt-cursor-active);\n}\n\n.saltBreadcrumbsNext-disclosure {\n background: var(--salt-container-primary-background);\n border: var(--salt-size-fixed-100) var(--salt-borderStyle-solid) var(--salt-selectable-borderColor-selected);\n overflow: hidden;\n overflow-y: auto;\n min-width: 10em;\n position: relative;\n z-index: var(--salt-zIndex-flyover);\n box-shadow: var(--salt-overlayable-shadow-popout);\n box-sizing: border-box;\n border-radius: var(--salt-palette-corner, 0);\n}\n\n.saltBreadcrumbsNext-disclosureList {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n.saltBreadcrumbsNext-disclosureListItem {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n.saltBreadcrumbsNext-disclosureItem {\n color: var(--salt-content-primary-foreground);\n background: var(--salt-selectable-background);\n font-size: var(--salt-text-fontSize);\n font-weight: var(--salt-text-fontWeight);\n font-family: var(--salt-text-fontFamily);\n line-height: var(--salt-text-lineHeight);\n letter-spacing: var(--salt-text-letterSpacing);\n min-height: calc(var(--salt-size-base) + var(--salt-spacing-100));\n padding: calc(var(--salt-spacing-100) + var(--salt-spacing-25)) var(--salt-spacing-100);\n display: flex;\n gap: var(--salt-spacing-100);\n position: relative;\n cursor: var(--salt-cursor-hover);\n box-sizing: border-box;\n flex-shrink: 0;\n text-decoration: none;\n width: 100%;\n}\n\n.saltBreadcrumbsNext-disclosureItem.saltLink {\n --link-color: var(--salt-content-primary-foreground);\n --link-color-hover: var(--salt-content-primary-foreground);\n --link-color-active: var(--salt-content-primary-foreground);\n --link-color-focus: var(--salt-content-primary-foreground);\n --link-color-visited: var(--salt-content-primary-foreground);\n --link-textDecoration: var(--salt-typography-textDecoration-none);\n --link-textDecoration-hover: var(--salt-typography-textDecoration-none);\n --link-textDecoration-active: var(--salt-typography-textDecoration-none);\n --link-textDecoration-focus: var(--salt-typography-textDecoration-none);\n --link-textDecoration-visited: var(--salt-typography-textDecoration-none);\n}\n\n.saltBreadcrumbsNext-disclosureItem.saltLink:focus:not(:focus-visible) {\n outline: none;\n}\n\n.saltBreadcrumbsNext-disclosureItem:focus-visible,\n.saltBreadcrumbsNext-disclosureItem.saltLink:focus-visible {\n outline: var(--salt-focused-outline);\n outline-offset: calc(var(--salt-size-fixed-100) * -2);\n}\n\n.saltBreadcrumbsNext-disclosureItem:hover {\n outline: none;\n}\n\n.saltBreadcrumbsNext-disclosureItem:hover,\n.saltBreadcrumbsNext-disclosureItem:focus-visible {\n background: var(--salt-selectable-background-hover);\n}\n\n.saltBreadcrumbsNext-disclosureItem:active {\n background: var(--salt-selectable-background-selected);\n box-shadow:\n 0 calc(var(--salt-size-fixed-100) * -1) 0 0 var(--salt-selectable-borderColor-selected),\n 0 var(--salt-size-fixed-100) 0 0 var(--salt-selectable-borderColor-selected);\n}\n\n.saltBreadcrumbsNext-disclosureItem[aria-disabled=\"true\"],\n.saltBreadcrumbsNext-disclosureItem[aria-disabled=\"true\"]:active {\n background: var(--salt-selectable-background-disabled);\n color: var(--salt-content-primary-foreground-disabled);\n cursor: var(--salt-cursor-disabled);\n box-shadow: none;\n}\n";
4
+
5
+ module.exports = css_248z;
6
+ //# sourceMappingURL=BreadcrumbsNext.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BreadcrumbsNext.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}