boreal-ui 0.0.11 → 0.0.12

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 (75) hide show
  1. package/dist/core/CheveronDownIcon-B2codmaq.cjs +26 -0
  2. package/dist/core/CheveronDownIcon-B2codmaq.cjs.map +1 -0
  3. package/dist/core/CheveronDownIcon-Cn9jj-ku.js +27 -0
  4. package/dist/core/CheveronDownIcon-Cn9jj-ku.js.map +1 -0
  5. package/dist/core/{Footer-D_-eBUqK.js → Footer-7ixaMvFc.js} +2 -2
  6. package/dist/core/{Footer-D_-eBUqK.js.map → Footer-7ixaMvFc.js.map} +1 -1
  7. package/dist/core/{Footer-DxYjXCde.cjs → Footer-Dc_CuIC1.cjs} +2 -2
  8. package/dist/core/{Footer-DxYjXCde.cjs.map → Footer-Dc_CuIC1.cjs.map} +1 -1
  9. package/dist/core/Footer.cjs.js +1 -1
  10. package/dist/core/Footer.js +1 -1
  11. package/dist/core/{Select-DhUEQ4W_.cjs → Select-CitauzQm.cjs} +3 -25
  12. package/dist/core/Select-CitauzQm.cjs.map +1 -0
  13. package/dist/core/{Select-BDwB-XRV.js → Select-_12yQ-yj.js} +3 -25
  14. package/dist/core/Select-_12yQ-yj.js.map +1 -0
  15. package/dist/core/Select.cjs.js +1 -1
  16. package/dist/core/Select.js +1 -1
  17. package/dist/core/Sidebar-CqTJJULG.cjs +216 -0
  18. package/dist/core/Sidebar-CqTJJULG.cjs.map +1 -0
  19. package/dist/core/Sidebar-z0mG5nn_.js +217 -0
  20. package/dist/core/Sidebar-z0mG5nn_.js.map +1 -0
  21. package/dist/core/Sidebar.cjs.js +4 -0
  22. package/dist/core/Sidebar.cjs.js.map +1 -0
  23. package/dist/core/Sidebar.js +5 -0
  24. package/dist/core/Sidebar.js.map +1 -0
  25. package/dist/core/index.cjs.js +4 -211
  26. package/dist/core/index.cjs.js.map +1 -1
  27. package/dist/core/index.js +6 -215
  28. package/dist/core/index.js.map +1 -1
  29. package/dist/core/style.css +2454 -2454
  30. package/dist/next/CheveronDownIcon-Cn9jj-ku.js +27 -0
  31. package/dist/next/CheveronDownIcon-Cn9jj-ku.js.map +1 -0
  32. package/dist/next/CheveronDownIcon-CyoOZUNY.cjs +26 -0
  33. package/dist/next/CheveronDownIcon-CyoOZUNY.cjs.map +1 -0
  34. package/dist/next/{Footer-C6gSCcdC.cjs → Footer-J0Tb7-n4.cjs} +2 -2
  35. package/dist/next/{Footer-C6gSCcdC.cjs.map → Footer-J0Tb7-n4.cjs.map} +1 -1
  36. package/dist/next/{Footer-BPjfubyG.js → Footer-bb_8EH_R.js} +2 -2
  37. package/dist/next/{Footer-BPjfubyG.js.map → Footer-bb_8EH_R.js.map} +1 -1
  38. package/dist/next/Footer.cjs.js +1 -1
  39. package/dist/next/Footer.js +1 -1
  40. package/dist/next/NavBar-CRbRBzGq.js +163 -0
  41. package/dist/next/NavBar-CRbRBzGq.js.map +1 -0
  42. package/dist/next/NavBar-JPkuek76.cjs +162 -0
  43. package/dist/next/NavBar-JPkuek76.cjs.map +1 -0
  44. package/dist/next/NavBar.cjs.js +1 -1
  45. package/dist/next/NavBar.js +1 -1
  46. package/dist/next/{Select-BKprqV3i.cjs → Select-Bln5-seQ.cjs} +3 -25
  47. package/dist/next/Select-Bln5-seQ.cjs.map +1 -0
  48. package/dist/next/{Select-_C8mTVb1.js → Select-CdWyrGrV.js} +3 -25
  49. package/dist/next/Select-CdWyrGrV.js.map +1 -0
  50. package/dist/next/Select.cjs.js +1 -1
  51. package/dist/next/Select.js +1 -1
  52. package/dist/next/Sidebar-DBmaTOMW.js +285 -0
  53. package/dist/next/Sidebar-DBmaTOMW.js.map +1 -0
  54. package/dist/next/Sidebar-Rl3o8_ya.cjs +284 -0
  55. package/dist/next/Sidebar-Rl3o8_ya.cjs.map +1 -0
  56. package/dist/next/Sidebar.cjs.js +4 -0
  57. package/dist/next/Sidebar.cjs.js.map +1 -0
  58. package/dist/next/Sidebar.js +5 -0
  59. package/dist/next/Sidebar.js.map +1 -0
  60. package/dist/next/index.cjs.js +23 -297
  61. package/dist/next/index.cjs.js.map +1 -1
  62. package/dist/next/index.js +26 -303
  63. package/dist/next/index.js.map +1 -1
  64. package/dist/next/{NavBar-CLfsYv5E.js → navigation-DTwYCgCL.js} +3 -160
  65. package/dist/next/navigation-DTwYCgCL.js.map +1 -0
  66. package/dist/next/{NavBar-COPlmHzy.cjs → navigation-m012syo9.cjs} +1 -158
  67. package/dist/next/navigation-m012syo9.cjs.map +1 -0
  68. package/dist/next/style.css +2642 -2642
  69. package/package.json +1 -1
  70. package/dist/core/Select-BDwB-XRV.js.map +0 -1
  71. package/dist/core/Select-DhUEQ4W_.cjs.map +0 -1
  72. package/dist/next/NavBar-CLfsYv5E.js.map +0 -1
  73. package/dist/next/NavBar-COPlmHzy.cjs.map +0 -1
  74. package/dist/next/Select-BKprqV3i.cjs.map +0 -1
  75. package/dist/next/Select-_C8mTVb1.js.map +0 -1
@@ -1,17 +1,15 @@
1
1
  import { a, T } from "./ThemeContext-Bo0vLczy.js";
2
2
  import { r } from "./registerColorSheme-BPX0H7hl.js";
3
3
  import { colorSchemes } from "./colorSchemes.js";
4
- import { a as getDefaultRounding, b as getDefaultShadow, d as getDefaultTheme } from "./boreal-style-config-BILmxkZG.js";
5
4
  import { s } from "./boreal-style-config-BILmxkZG.js";
6
5
  import { B } from "./Button-CbX-VlK_.js";
7
6
  import { I } from "./IconButton-DFrFh0kg.js";
8
7
  import { S } from "./STT-Br81yPXp.js";
9
8
  import { T as T2 } from "./TextInput-DkNxrV4X.js";
10
9
  import { T as T3 } from "./TextArea-CwR4vrML.js";
11
- import { C as ChevronDownIcon } from "./Select-_C8mTVb1.js";
12
- import { S as S2 } from "./Select-_C8mTVb1.js";
13
- import { F as Footer } from "./Footer-BPjfubyG.js";
14
- import { U } from "./Footer-BPjfubyG.js";
10
+ import { S as S2 } from "./Select-CdWyrGrV.js";
11
+ import { F as Footer } from "./Footer-bb_8EH_R.js";
12
+ import { U } from "./Footer-bb_8EH_R.js";
15
13
  import { F } from "./FileUpload-DQhKhtgc.js";
16
14
  import { T as T4 } from "./Taginput-CdYMgcYY.js";
17
15
  import { R } from "./RadioButton-BKS65jm9.js";
@@ -23,8 +21,8 @@ import { D } from "./DataTable-D5ffcx-L.js";
23
21
  import { D as D2 } from "./DateTimePicker-C2-or1uL.js";
24
22
  import { M } from "./MarkdownRenderer-CxJOetSp.js";
25
23
  import { C as Chip } from "./Chip-DtHYUkJ4.js";
26
- import { jsx, jsxs, Fragment } from "react/jsx-runtime";
27
- import React, { forwardRef, useState, useEffect, useCallback, useImperativeHandle, useRef, useMemo } from "react";
24
+ import { jsx } from "react/jsx-runtime";
25
+ import React, { forwardRef, useState, useEffect, useCallback, useImperativeHandle } from "react";
28
26
  import { v4 } from "uuid";
29
27
  import { c as combineClassNames } from "./classNames-AS8QjFq7.js";
30
28
  import { B as B2 } from "./Badge-WWxkzKOl.js";
@@ -36,8 +34,7 @@ import { S as S5 } from "./Spinner-BxvU43sx.js";
36
34
  import { T as T5 } from "./Tooltip-G3P0OyTP.js";
37
35
  import { M as M2 } from "./MessagePopup-ClfrvxKq.js";
38
36
  import { P as P2 } from "./PopOver-pllmYvp6.js";
39
- import { n as navigation } from "./NavBar-CLfsYv5E.js";
40
- import { N } from "./NavBar-CLfsYv5E.js";
37
+ import { N } from "./NavBar-CRbRBzGq.js";
41
38
  import { B as B3 } from "./Breadcrumbs-liNC5ZzY.js";
42
39
  import { T as T6 } from "./Tabs-CNU0A_YY.js";
43
40
  import { S as S6 } from "./Stepper-5FojeYPE.js";
@@ -53,8 +50,7 @@ import { M as M4 } from "./MetricBox-rxFYolH_.js";
53
50
  import { E } from "./EmptyState-CSEhZvTp.js";
54
51
  import { C as C4 } from "./CommandPalette-CEZwvLuu.js";
55
52
  import { N as N2 } from "./NotificationCenter-BCXpVjHd.js";
56
- import { L as Link } from "./link-Bik5xH00.js";
57
- import { c as capitalize } from "./capitalize-C0TSQSPh.js";
53
+ import { S as S7 } from "./Sidebar-DBmaTOMW.js";
58
54
  import { C as C5 } from "./Card-DhdZiqdl.js";
59
55
  import { A as A2 } from "./Avatar-B0vflpuy.js";
60
56
  const ChipGroupBase = forwardRef(
@@ -135,11 +131,11 @@ const ChipGroupBase = forwardRef(
135
131
  }
136
132
  );
137
133
  ChipGroupBase.displayName = "ChipGroupBase";
138
- const noScroll$1 = "_noScroll_vcv6u_91";
139
- const errorMessage$1 = "_errorMessage_vcv6u_92";
140
- const loadingContainer$1 = "_loadingContainer_vcv6u_93";
141
- const hideScrollbar$1 = "_hideScrollbar_vcv6u_85";
142
- const sr_only$1 = "_sr_only_vcv6u_94";
134
+ const noScroll = "_noScroll_vcv6u_91";
135
+ const errorMessage = "_errorMessage_vcv6u_92";
136
+ const loadingContainer = "_loadingContainer_vcv6u_93";
137
+ const hideScrollbar = "_hideScrollbar_vcv6u_85";
138
+ const sr_only = "_sr_only_vcv6u_94";
143
139
  const container = "_container_vcv6u_479";
144
140
  const topLeft = "_topLeft_vcv6u_488";
145
141
  const topCenter = "_topCenter_vcv6u_493";
@@ -147,16 +143,16 @@ const topRight = "_topRight_vcv6u_499";
147
143
  const bottomLeft = "_bottomLeft_vcv6u_504";
148
144
  const bottomCenter = "_bottomCenter_vcv6u_509";
149
145
  const bottomRight = "_bottomRight_vcv6u_515";
150
- const list$1 = "_list_vcv6u_521";
146
+ const list = "_list_vcv6u_521";
151
147
  const chip = "_chip_vcv6u_530";
152
- const spin$1 = "_spin_vcv6u_1";
153
- const pulse$1 = "_pulse_vcv6u_1";
154
- const styles$1 = {
155
- noScroll: noScroll$1,
156
- errorMessage: errorMessage$1,
157
- loadingContainer: loadingContainer$1,
158
- hideScrollbar: hideScrollbar$1,
159
- sr_only: sr_only$1,
148
+ const spin = "_spin_vcv6u_1";
149
+ const pulse = "_pulse_vcv6u_1";
150
+ const styles = {
151
+ noScroll,
152
+ errorMessage,
153
+ loadingContainer,
154
+ hideScrollbar,
155
+ sr_only,
160
156
  container,
161
157
  topLeft,
162
158
  topCenter,
@@ -164,13 +160,13 @@ const styles$1 = {
164
160
  bottomLeft,
165
161
  bottomCenter,
166
162
  bottomRight,
167
- list: list$1,
163
+ list,
168
164
  chip,
169
165
  "fade-in": "_fade-in_vcv6u_1",
170
166
  "slide-up": "_slide-up_vcv6u_1",
171
167
  "spin-3d": "_spin-3d_vcv6u_1",
172
- spin: spin$1,
173
- pulse: pulse$1,
168
+ spin,
169
+ pulse,
174
170
  "fade-in-up": "_fade-in-up_vcv6u_1",
175
171
  "progress-grow": "_progress-grow_vcv6u_1",
176
172
  "indeterminate-move": "_indeterminate-move_vcv6u_1",
@@ -183,283 +179,10 @@ const ChipGroup = React.forwardRef(
183
179
  ...props,
184
180
  ref,
185
181
  ChipComponent: Chip,
186
- classMap: styles$1
182
+ classMap: styles
187
183
  }
188
184
  )
189
185
  );
190
- const SidebarBase = ({
191
- links,
192
- classMap,
193
- currentPath,
194
- LinkComponent = "a",
195
- theme = getDefaultTheme(),
196
- rounding = getDefaultRounding(),
197
- shadow = getDefaultShadow(),
198
- state = "",
199
- showFooter = false,
200
- footerLinks,
201
- footerVersion: footerVersion2,
202
- outline: outline2 = false,
203
- className = "",
204
- "data-testid": testId = "sidebar",
205
- ariaLabel = "Sidebar navigation",
206
- ...rest
207
- }) => {
208
- const [openItems, setOpenItems] = useState({});
209
- const toggleItem = (key) => {
210
- setOpenItems((prev) => ({ ...prev, [key]: !prev[key] }));
211
- };
212
- const submenuRefs = useRef({});
213
- const setSubmenuRef = (key, el) => {
214
- submenuRefs.current[key] = el;
215
- };
216
- const getSubmenuHeight = (key) => {
217
- const el = submenuRefs.current[key];
218
- return el ? `${el.scrollHeight}px` : "0px";
219
- };
220
- const containerClasses = useMemo(
221
- () => combineClassNames(
222
- classMap.wrapper,
223
- className,
224
- classMap[theme],
225
- classMap[state],
226
- shadow && classMap[`shadow${capitalize(shadow)}`],
227
- rounding && classMap[`round${capitalize(rounding)}`],
228
- outline2 ? classMap.outline : ""
229
- ),
230
- [className, theme, state, outline2, rounding, shadow]
231
- );
232
- const renderLinks = (items, isChild = false) => /* @__PURE__ */ jsx(
233
- "ul",
234
- {
235
- className: combineClassNames(
236
- classMap.list,
237
- isChild ? classMap.childList : ""
238
- ),
239
- "data-testid": `${testId}-list`,
240
- children: items.map(({ label, href, children, icon }) => {
241
- const isActive = href && currentPath === href;
242
- const isOpen = openItems[label] || false;
243
- return /* @__PURE__ */ jsx(
244
- "li",
245
- {
246
- className: classMap.item,
247
- "data-testid": `${testId}-listItems`,
248
- children: children && children.length > 0 ? /* @__PURE__ */ jsxs(Fragment, { children: [
249
- /* @__PURE__ */ jsxs(
250
- "button",
251
- {
252
- type: "button",
253
- className: combineClassNames(
254
- classMap.link,
255
- isOpen ? classMap.active : ""
256
- ),
257
- onClick: () => toggleItem(label),
258
- "aria-expanded": isOpen,
259
- "data-testid": `${testId}-exapndItemButton`,
260
- children: [
261
- icon && /* @__PURE__ */ jsx("span", { className: classMap.icon, children: icon }),
262
- /* @__PURE__ */ jsx("span", { "data-testid": `${testId}-exapndItemLabel`, children: label }),
263
- /* @__PURE__ */ jsx(
264
- ChevronDownIcon,
265
- {
266
- className: combineClassNames(
267
- classMap.chevron,
268
- isOpen ? classMap.chevronOpen : ""
269
- ),
270
- "data-testid": `${testId}-exapndIcon`
271
- }
272
- )
273
- ]
274
- }
275
- ),
276
- /* @__PURE__ */ jsx(
277
- "div",
278
- {
279
- ref: (el) => setSubmenuRef(label, el),
280
- className: combineClassNames(
281
- classMap.submenu,
282
- isOpen ? classMap.submenuOpen : ""
283
- ),
284
- style: {
285
- maxHeight: isOpen ? getSubmenuHeight(label) : "0px"
286
- },
287
- "data-testid": `${testId}-subMenu`,
288
- children: renderLinks(children, true)
289
- }
290
- )
291
- ] }) : href ? /* @__PURE__ */ jsxs(
292
- LinkComponent,
293
- {
294
- href,
295
- className: combineClassNames(
296
- classMap.link,
297
- isChild ? classMap.childLink : "",
298
- isActive ? classMap.active : ""
299
- ),
300
- "aria-current": isActive ? "page" : void 0,
301
- "data-testid": `${testId}-sidebarLink`,
302
- children: [
303
- icon && /* @__PURE__ */ jsx("span", { className: classMap.icon, children: icon }),
304
- label
305
- ]
306
- }
307
- ) : /* @__PURE__ */ jsxs(
308
- "span",
309
- {
310
- className: combineClassNames(
311
- classMap.link,
312
- isChild ? classMap.childLink : ""
313
- ),
314
- "data-testid": `${testId}-sidebarLabel`,
315
- children: [
316
- icon && /* @__PURE__ */ jsx("span", { className: classMap.icon, children: icon }),
317
- label
318
- ]
319
- }
320
- )
321
- },
322
- label
323
- );
324
- })
325
- }
326
- );
327
- return /* @__PURE__ */ jsxs(
328
- "nav",
329
- {
330
- className: containerClasses,
331
- "aria-label": ariaLabel,
332
- ...rest,
333
- "data-testid": testId,
334
- children: [
335
- /* @__PURE__ */ jsx("nav", { className: classMap.nav, children: renderLinks(links) }),
336
- showFooter && /* @__PURE__ */ jsxs("footer", { className: classMap.footer, "data-testid": `${testId}-footer`, children: [
337
- footerLinks == null ? void 0 : footerLinks.map(({ label, href }) => /* @__PURE__ */ jsx(
338
- LinkComponent,
339
- {
340
- href,
341
- className: classMap.footerLink,
342
- "data-testid": `${testId}-footerLink`,
343
- children: label
344
- },
345
- label
346
- )),
347
- footerVersion2 && /* @__PURE__ */ jsx(
348
- "span",
349
- {
350
- className: classMap.footerVersion,
351
- "data-testid": `${testId}-footerVersion`,
352
- children: footerVersion2
353
- }
354
- )
355
- ] })
356
- ]
357
- }
358
- );
359
- };
360
- SidebarBase.displayName = "SidebarBase";
361
- const noScroll = "_noScroll_y1c07_91";
362
- const errorMessage = "_errorMessage_y1c07_92";
363
- const loadingContainer = "_loadingContainer_y1c07_93";
364
- const hideScrollbar = "_hideScrollbar_y1c07_85";
365
- const sr_only = "_sr_only_y1c07_94";
366
- const wrapper = "_wrapper_y1c07_479";
367
- const roundNone = "_roundNone_y1c07_490";
368
- const roundSmall = "_roundSmall_y1c07_493";
369
- const roundMedium = "_roundMedium_y1c07_496";
370
- const roundLarge = "_roundLarge_y1c07_499";
371
- const roundFull = "_roundFull_y1c07_502";
372
- const shadowNone = "_shadowNone_y1c07_505";
373
- const shadowLight = "_shadowLight_y1c07_508";
374
- const shadowMedium = "_shadowMedium_y1c07_511";
375
- const shadowStrong = "_shadowStrong_y1c07_514";
376
- const shadowIntense = "_shadowIntense_y1c07_517";
377
- const primary = "_primary_y1c07_521";
378
- const active = "_active_y1c07_521";
379
- const outline = "_outline_y1c07_525";
380
- const clear = "_clear_y1c07_530";
381
- const secondary = "_secondary_y1c07_534";
382
- const tertiary = "_tertiary_y1c07_547";
383
- const quaternary = "_quaternary_y1c07_560";
384
- const success = "_success_y1c07_588";
385
- const error = "_error_y1c07_92";
386
- const warning = "_warning_y1c07_602";
387
- const nav = "_nav_y1c07_609";
388
- const list = "_list_y1c07_614";
389
- const link = "_link_y1c07_620";
390
- const childLink = "_childLink_y1c07_650";
391
- const chevron = "_chevron_y1c07_654";
392
- const chevronOpen = "_chevronOpen_y1c07_658";
393
- const submenu = "_submenu_y1c07_662";
394
- const childList = "_childList_y1c07_668";
395
- const footer = "_footer_y1c07_673";
396
- const footerLink = "_footerLink_y1c07_685";
397
- const footerVersion = "_footerVersion_y1c07_693";
398
- const spin = "_spin_y1c07_1";
399
- const pulse = "_pulse_y1c07_1";
400
- const styles = {
401
- noScroll,
402
- errorMessage,
403
- loadingContainer,
404
- hideScrollbar,
405
- sr_only,
406
- wrapper,
407
- roundNone,
408
- roundSmall,
409
- roundMedium,
410
- roundLarge,
411
- roundFull,
412
- shadowNone,
413
- shadowLight,
414
- shadowMedium,
415
- shadowStrong,
416
- shadowIntense,
417
- primary,
418
- active,
419
- outline,
420
- clear,
421
- secondary,
422
- tertiary,
423
- quaternary,
424
- success,
425
- error,
426
- warning,
427
- nav,
428
- list,
429
- link,
430
- childLink,
431
- chevron,
432
- chevronOpen,
433
- submenu,
434
- childList,
435
- footer,
436
- footerLink,
437
- footerVersion,
438
- "fade-in": "_fade-in_y1c07_1",
439
- "slide-up": "_slide-up_y1c07_1",
440
- "spin-3d": "_spin-3d_y1c07_1",
441
- spin,
442
- pulse,
443
- "fade-in-up": "_fade-in-up_y1c07_1",
444
- "progress-grow": "_progress-grow_y1c07_1",
445
- "indeterminate-move": "_indeterminate-move_y1c07_1",
446
- "skeleton-loading": "_skeleton-loading_y1c07_1"
447
- };
448
- const Sidebar = ({ links, ...rest }) => {
449
- const currentPath = navigation.usePathname();
450
- const { classMap, currentPath: _ignored, ...safeRest } = rest;
451
- return /* @__PURE__ */ jsx(
452
- SidebarBase,
453
- {
454
- links,
455
- classMap: styles,
456
- currentPath,
457
- LinkComponent: Link,
458
- ...safeRest
459
- },
460
- currentPath
461
- );
462
- };
463
186
  function ClientFooterWrapper(props) {
464
187
  return /* @__PURE__ */ jsx(Footer, { ...props });
465
188
  }
@@ -499,7 +222,7 @@ export {
499
222
  R2 as Rating,
500
223
  S as ScrollToTop,
501
224
  S2 as Select,
502
- Sidebar,
225
+ S7 as Sidebar,
503
226
  S4 as Skeleton,
504
227
  S3 as Slider,
505
228
  S5 as Spinner,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/components/Chip/ChipGroup/ChipGroupBase.tsx","../../src/components/Chip/ChipGroup/next/ChipGroup.tsx","../../src/components/Sidebar/SidebarBase.tsx","../../src/components/Sidebar/next/Sidebar.tsx","../../src/components/Footer/next/ClientFooterWrapper.tsx"],"sourcesContent":["import {\r\n forwardRef,\r\n useCallback,\r\n useEffect,\r\n useImperativeHandle,\r\n useState,\r\n} from \"react\";\r\nimport type { ChipGroupProps, ChipGroupRef } from \"./ChipGroup.types\";\r\nimport type { ChipProps } from \"../Chip.types\";\r\nimport { v4 as uuidv4 } from \"uuid\";\r\nimport { combineClassNames } from \"@/utils/classNames\";\r\n\r\nexport interface ChipGroupBaseProps extends ChipGroupProps {\r\n ChipComponent: React.ElementType;\r\n classMap: Record<string, string>;\r\n}\r\n\r\nconst ChipGroupBase = forwardRef<ChipGroupRef, ChipGroupBaseProps>(\r\n (\r\n {\r\n chips,\r\n onRemove,\r\n position = \"topCenter\",\r\n size = \"medium\",\r\n className = \"\",\r\n ChipComponent,\r\n classMap,\r\n },\r\n ref\r\n ) => {\r\n const [visibleChips, setVisibleChips] = useState<ChipProps[]>([]);\r\n\r\n useEffect(() => {\r\n const initialized = chips.map((chip) => ({\r\n ...chip,\r\n id: chip.id || uuidv4(),\r\n }));\r\n setVisibleChips(initialized);\r\n }, [chips]);\r\n\r\n const handleClose = useCallback(\r\n (id: string) => {\r\n setVisibleChips((prev) => prev.filter((c) => c.id !== id));\r\n onRemove?.(id);\r\n },\r\n [onRemove]\r\n );\r\n\r\n useImperativeHandle(ref, () => ({\r\n closeAllChips: () => {\r\n visibleChips.forEach((chip) => handleClose(chip.id!));\r\n },\r\n }));\r\n\r\n const containerClassName = [\r\n classMap.container,\r\n classMap[position],\r\n className,\r\n ]\r\n .filter(Boolean)\r\n .join(\" \");\r\n\r\n return (\r\n <div\r\n className={containerClassName}\r\n role=\"region\"\r\n aria-label=\"Notifications\"\r\n aria-live=\"polite\"\r\n data-testid=\"chip-group\"\r\n >\r\n <ul role=\"list\" className={classMap.list}>\r\n {visibleChips.map((chip, index) => {\r\n const chipPosition = chip.position || position;\r\n const chipPositionClass = classMap[chipPosition];\r\n\r\n return (\r\n <li key={chip.id} role=\"listitem\">\r\n <ChipComponent\r\n id={chip.id}\r\n message={chip.message}\r\n icon={chip.icon}\r\n theme={chip.theme}\r\n state={chip.state}\r\n size={chip.size || size}\r\n rounding={chip.rounding}\r\n shadow={chip.shadow}\r\n visible={true}\r\n onClose={() => handleClose(chip.id!)}\r\n autoClose={chip.autoClose}\r\n duration={chip.duration}\r\n position={chipPosition}\r\n usePortal={false}\r\n stackIndex={index}\r\n className={combineClassNames(\r\n classMap.chip,\r\n chip.className,\r\n chipPositionClass\r\n )}\r\n data-testid={chip[\"data-testid\"]}\r\n />\r\n </li>\r\n );\r\n })}\r\n </ul>\r\n </div>\r\n );\r\n }\r\n);\r\n\r\nChipGroupBase.displayName = \"ChipGroupBase\";\r\nexport default ChipGroupBase;\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport ChipGroupBase from \"../ChipGroupBase\";\r\nimport { Chip } from \"../../../../index.next\";\r\nimport styles from \"./ChipGroup.module.scss\";\r\nimport { ChipGroupProps, ChipGroupRef } from \"../ChipGroup.types\";\r\n\r\nconst ChipGroup = React.forwardRef<ChipGroupRef, ChipGroupProps>(\r\n (props, ref) => (\r\n <ChipGroupBase\r\n {...props}\r\n ref={ref}\r\n ChipComponent={Chip}\r\n classMap={styles}\r\n />\r\n )\r\n);\r\n\r\nexport default ChipGroup;\r\n","import React, { useState, useMemo, useRef, useEffect } from \"react\";\nimport { SidebarProps } from \"./Sidebar.types\";\nimport { combineClassNames } from \"@/utils/classNames\";\nimport {\n getDefaultRounding,\n getDefaultShadow,\n getDefaultTheme,\n} from \"@/config/boreal-style-config\";\nimport { capitalize } from \"@/utils/capitalize\";\nimport { ChevronDownIcon } from \"@/Icons\";\n\nconst SidebarBase: React.FC<SidebarProps> = ({\n links,\n classMap,\n currentPath,\n LinkComponent = \"a\",\n theme = getDefaultTheme(),\n rounding = getDefaultRounding(),\n shadow = getDefaultShadow(),\n state = \"\",\n showFooter = false,\n footerLinks,\n footerVersion,\n outline = false,\n className = \"\",\n \"data-testid\": testId = \"sidebar\",\n ariaLabel = \"Sidebar navigation\",\n ...rest\n}) => {\n const [openItems, setOpenItems] = useState<Record<string, boolean>>({});\n\n const toggleItem = (key: string) => {\n setOpenItems((prev) => ({ ...prev, [key]: !prev[key] }));\n };\n\n const submenuRefs = useRef<Record<string, HTMLDivElement | null>>({});\n\n const setSubmenuRef = (key: string, el: HTMLDivElement | null) => {\n submenuRefs.current[key] = el;\n };\n\n const getSubmenuHeight = (key: string) => {\n const el = submenuRefs.current[key];\n return el ? `${el.scrollHeight}px` : \"0px\";\n };\n\n const containerClasses = useMemo(\n () =>\n combineClassNames(\n classMap.wrapper,\n className,\n classMap[theme],\n classMap[state],\n shadow && classMap[`shadow${capitalize(shadow)}`],\n rounding && classMap[`round${capitalize(rounding)}`],\n outline ? classMap.outline : \"\"\n ),\n [className, theme, state, outline, rounding, shadow]\n );\n\n const renderLinks = (items: typeof links, isChild = false) => (\n <ul\n className={combineClassNames(\n classMap.list,\n isChild ? classMap.childList : \"\"\n )}\n data-testid={`${testId}-list`}\n >\n {items.map(({ label, href, children, icon }) => {\n const isActive = href && currentPath === href;\n const isOpen = openItems[label] || false;\n\n return (\n <li\n key={label}\n className={classMap.item}\n data-testid={`${testId}-listItems`}\n >\n {children && children.length > 0 ? (\n <>\n <button\n type=\"button\"\n className={combineClassNames(\n classMap.link,\n isOpen ? classMap.active : \"\"\n )}\n onClick={() => toggleItem(label)}\n aria-expanded={isOpen}\n data-testid={`${testId}-exapndItemButton`}\n >\n {icon && <span className={classMap.icon}>{icon}</span>}\n <span data-testid={`${testId}-exapndItemLabel`}>{label}</span>\n <ChevronDownIcon\n className={combineClassNames(\n classMap.chevron,\n isOpen ? classMap.chevronOpen : \"\"\n )}\n data-testid={`${testId}-exapndIcon`}\n />\n </button>\n <div\n ref={(el) => setSubmenuRef(label, el)}\n className={combineClassNames(\n classMap.submenu,\n isOpen ? classMap.submenuOpen : \"\"\n )}\n style={{\n maxHeight: isOpen ? getSubmenuHeight(label) : \"0px\",\n }}\n data-testid={`${testId}-subMenu`}\n >\n {renderLinks(children, true)}\n </div>\n </>\n ) : href ? (\n <LinkComponent\n href={href}\n className={combineClassNames(\n classMap.link,\n isChild ? classMap.childLink : \"\",\n isActive ? classMap.active : \"\"\n )}\n aria-current={isActive ? \"page\" : undefined}\n data-testid={`${testId}-sidebarLink`}\n >\n {icon && <span className={classMap.icon}>{icon}</span>}\n {label}\n </LinkComponent>\n ) : (\n <span\n className={combineClassNames(\n classMap.link,\n isChild ? classMap.childLink : \"\"\n )}\n data-testid={`${testId}-sidebarLabel`}\n >\n {icon && <span className={classMap.icon}>{icon}</span>}\n {label}\n </span>\n )}\n </li>\n );\n })}\n </ul>\n );\n\n return (\n <nav\n className={containerClasses}\n aria-label={ariaLabel}\n {...rest}\n data-testid={testId}\n >\n <nav className={classMap.nav}>{renderLinks(links)}</nav>\n {showFooter && (\n <footer className={classMap.footer} data-testid={`${testId}-footer`}>\n {footerLinks?.map(({ label, href }) => (\n <LinkComponent\n key={label}\n href={href}\n className={classMap.footerLink}\n data-testid={`${testId}-footerLink`}\n >\n {label}\n </LinkComponent>\n ))}\n\n {footerVersion && (\n <span\n className={classMap.footerVersion}\n data-testid={`${testId}-footerVersion`}\n >\n {footerVersion}\n </span>\n )}\n </footer>\n )}\n </nav>\n );\n};\n\nSidebarBase.displayName = \"SidebarBase\";\n\nexport default SidebarBase;\n","\"use client\";\n\nimport React from \"react\";\nimport Link from \"next/link\";\nimport { usePathname } from \"next/navigation\";\nimport SidebarBase from \"../SidebarBase\";\nimport styles from \"./Sidebar.module.scss\";\nimport { SidebarProps } from \"../Sidebar.types\";\n\nconst Sidebar: React.FC<SidebarProps> = ({ links, ...rest }) => {\n const currentPath = usePathname();\n\n const { classMap, currentPath: _ignored, ...safeRest } = rest;\n\n return (\n <SidebarBase\n links={links}\n classMap={styles}\n currentPath={currentPath}\n LinkComponent={Link}\n key={currentPath}\n {...safeRest}\n />\n );\n};\n\nexport default Sidebar;\n","/**\r\n * ---------------------------------------------------------------------\r\n * ClientFooterWrapper.tsx\r\n * ---------------------------------------------------------------------\r\n * A client-side wrapper for the `<Footer>` component to ensure\r\n * it renders only on the client (required when using dynamic content\r\n * or browser-specific APIs within the Footer).\r\n *\r\n * This is useful in Next.js when a server component cannot render\r\n * a client-only dependency.\r\n *\r\n * Props are directly passed through from `FooterProps`.\r\n *\r\n * Usage:\r\n * ```tsx\r\n * <ClientFooterWrapper\r\n * copyright=\"© 2025 Davin Chiupka\"\r\n * showThemeSelect\r\n * />\r\n * ```\r\n */\r\n\r\n\"use client\";\r\n\r\nimport Footer from \"./Footer\";\r\nimport type { FooterProps } from \"../Footer.types\";\r\n\r\nexport default function ClientFooterWrapper(props: FooterProps) {\r\n return <Footer {...props} />;\r\n}\r\n"],"names":["chip","uuidv4","styles","footerVersion","outline","usePathname"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../src/components/Chip/ChipGroup/ChipGroupBase.tsx","../../src/components/Chip/ChipGroup/next/ChipGroup.tsx","../../src/components/Footer/next/ClientFooterWrapper.tsx"],"sourcesContent":["import {\r\n forwardRef,\r\n useCallback,\r\n useEffect,\r\n useImperativeHandle,\r\n useState,\r\n} from \"react\";\r\nimport type { ChipGroupProps, ChipGroupRef } from \"./ChipGroup.types\";\r\nimport type { ChipProps } from \"../Chip.types\";\r\nimport { v4 as uuidv4 } from \"uuid\";\r\nimport { combineClassNames } from \"@/utils/classNames\";\r\n\r\nexport interface ChipGroupBaseProps extends ChipGroupProps {\r\n ChipComponent: React.ElementType;\r\n classMap: Record<string, string>;\r\n}\r\n\r\nconst ChipGroupBase = forwardRef<ChipGroupRef, ChipGroupBaseProps>(\r\n (\r\n {\r\n chips,\r\n onRemove,\r\n position = \"topCenter\",\r\n size = \"medium\",\r\n className = \"\",\r\n ChipComponent,\r\n classMap,\r\n },\r\n ref\r\n ) => {\r\n const [visibleChips, setVisibleChips] = useState<ChipProps[]>([]);\r\n\r\n useEffect(() => {\r\n const initialized = chips.map((chip) => ({\r\n ...chip,\r\n id: chip.id || uuidv4(),\r\n }));\r\n setVisibleChips(initialized);\r\n }, [chips]);\r\n\r\n const handleClose = useCallback(\r\n (id: string) => {\r\n setVisibleChips((prev) => prev.filter((c) => c.id !== id));\r\n onRemove?.(id);\r\n },\r\n [onRemove]\r\n );\r\n\r\n useImperativeHandle(ref, () => ({\r\n closeAllChips: () => {\r\n visibleChips.forEach((chip) => handleClose(chip.id!));\r\n },\r\n }));\r\n\r\n const containerClassName = [\r\n classMap.container,\r\n classMap[position],\r\n className,\r\n ]\r\n .filter(Boolean)\r\n .join(\" \");\r\n\r\n return (\r\n <div\r\n className={containerClassName}\r\n role=\"region\"\r\n aria-label=\"Notifications\"\r\n aria-live=\"polite\"\r\n data-testid=\"chip-group\"\r\n >\r\n <ul role=\"list\" className={classMap.list}>\r\n {visibleChips.map((chip, index) => {\r\n const chipPosition = chip.position || position;\r\n const chipPositionClass = classMap[chipPosition];\r\n\r\n return (\r\n <li key={chip.id} role=\"listitem\">\r\n <ChipComponent\r\n id={chip.id}\r\n message={chip.message}\r\n icon={chip.icon}\r\n theme={chip.theme}\r\n state={chip.state}\r\n size={chip.size || size}\r\n rounding={chip.rounding}\r\n shadow={chip.shadow}\r\n visible={true}\r\n onClose={() => handleClose(chip.id!)}\r\n autoClose={chip.autoClose}\r\n duration={chip.duration}\r\n position={chipPosition}\r\n usePortal={false}\r\n stackIndex={index}\r\n className={combineClassNames(\r\n classMap.chip,\r\n chip.className,\r\n chipPositionClass\r\n )}\r\n data-testid={chip[\"data-testid\"]}\r\n />\r\n </li>\r\n );\r\n })}\r\n </ul>\r\n </div>\r\n );\r\n }\r\n);\r\n\r\nChipGroupBase.displayName = \"ChipGroupBase\";\r\nexport default ChipGroupBase;\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport ChipGroupBase from \"../ChipGroupBase\";\r\nimport { Chip } from \"../../../../index.next\";\r\nimport styles from \"./ChipGroup.module.scss\";\r\nimport { ChipGroupProps, ChipGroupRef } from \"../ChipGroup.types\";\r\n\r\nconst ChipGroup = React.forwardRef<ChipGroupRef, ChipGroupProps>(\r\n (props, ref) => (\r\n <ChipGroupBase\r\n {...props}\r\n ref={ref}\r\n ChipComponent={Chip}\r\n classMap={styles}\r\n />\r\n )\r\n);\r\n\r\nexport default ChipGroup;\r\n","/**\r\n * ---------------------------------------------------------------------\r\n * ClientFooterWrapper.tsx\r\n * ---------------------------------------------------------------------\r\n * A client-side wrapper for the `<Footer>` component to ensure\r\n * it renders only on the client (required when using dynamic content\r\n * or browser-specific APIs within the Footer).\r\n *\r\n * This is useful in Next.js when a server component cannot render\r\n * a client-only dependency.\r\n *\r\n * Props are directly passed through from `FooterProps`.\r\n *\r\n * Usage:\r\n * ```tsx\r\n * <ClientFooterWrapper\r\n * copyright=\"© 2025 Davin Chiupka\"\r\n * showThemeSelect\r\n * />\r\n * ```\r\n */\r\n\r\n\"use client\";\r\n\r\nimport Footer from \"./Footer\";\r\nimport type { FooterProps } from \"../Footer.types\";\r\n\r\nexport default function ClientFooterWrapper(props: FooterProps) {\r\n return <Footer {...props} />;\r\n}\r\n"],"names":["chip","uuidv4"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiBA,MAAM,gBAAgB;AAAA,EACpB,CACE;AAAA,IACE;AAAA,IACA;AAAA,IACA,WAAW;AAAA,IACX,OAAO;AAAA,IACP,YAAY;AAAA,IACZ;AAAA,IACA;AAAA,EAAA,GAEF,QACG;AACH,UAAM,CAAC,cAAc,eAAe,IAAI,SAAsB,CAAA,CAAE;AAEhE,cAAU,MAAM;AACd,YAAM,cAAc,MAAM,IAAI,CAACA,WAAU;AAAA,QACvC,GAAGA;AAAA,QACH,IAAIA,MAAK,MAAMC,GAAA;AAAA,MAAO,EACtB;AACF,sBAAgB,WAAW;AAAA,IAC7B,GAAG,CAAC,KAAK,CAAC;AAEV,UAAM,cAAc;AAAA,MAClB,CAAC,OAAe;AACd,wBAAgB,CAAC,SAAS,KAAK,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;AACzD,6CAAW;AAAA,MACb;AAAA,MACA,CAAC,QAAQ;AAAA,IAAA;AAGX,wBAAoB,KAAK,OAAO;AAAA,MAC9B,eAAe,MAAM;AACnB,qBAAa,QAAQ,CAACD,UAAS,YAAYA,MAAK,EAAG,CAAC;AAAA,MACtD;AAAA,IAAA,EACA;AAEF,UAAM,qBAAqB;AAAA,MACzB,SAAS;AAAA,MACT,SAAS,QAAQ;AAAA,MACjB;AAAA,IAAA,EAEC,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,WACE;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAW;AAAA,QACX,MAAK;AAAA,QACL,cAAW;AAAA,QACX,aAAU;AAAA,QACV,eAAY;AAAA,QAEZ,UAAA,oBAAC,MAAA,EAAG,MAAK,QAAO,WAAW,SAAS,MACjC,UAAA,aAAa,IAAI,CAACA,OAAM,UAAU;AACjC,gBAAM,eAAeA,MAAK,YAAY;AACtC,gBAAM,oBAAoB,SAAS,YAAY;AAE/C,iBACE,oBAAC,MAAA,EAAiB,MAAK,YACrB,UAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,IAAIA,MAAK;AAAA,cACT,SAASA,MAAK;AAAA,cACd,MAAMA,MAAK;AAAA,cACX,OAAOA,MAAK;AAAA,cACZ,OAAOA,MAAK;AAAA,cACZ,MAAMA,MAAK,QAAQ;AAAA,cACnB,UAAUA,MAAK;AAAA,cACf,QAAQA,MAAK;AAAA,cACb,SAAS;AAAA,cACT,SAAS,MAAM,YAAYA,MAAK,EAAG;AAAA,cACnC,WAAWA,MAAK;AAAA,cAChB,UAAUA,MAAK;AAAA,cACf,UAAU;AAAA,cACV,WAAW;AAAA,cACX,YAAY;AAAA,cACZ,WAAW;AAAA,gBACT,SAAS;AAAA,gBACTA,MAAK;AAAA,gBACL;AAAA,cAAA;AAAA,cAEF,eAAaA,MAAK,aAAa;AAAA,YAAA;AAAA,UAAA,EACjC,GAvBOA,MAAK,EAwBd;AAAA,QAEJ,CAAC,EAAA,CACH;AAAA,MAAA;AAAA,IAAA;AAAA,EAGN;AACF;AAEA,cAAc,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrG5B,MAAM,YAAY,MAAM;AAAA,EACtB,CAAC,OAAO,QACN;AAAA,IAAC;AAAA,IAAA;AAAA,MACE,GAAG;AAAA,MACJ;AAAA,MACA,eAAe;AAAA,MACf,UAAU;AAAA,IAAA;AAAA,EAAA;AAGhB;ACUA,SAAwB,oBAAoB,OAAoB;AAC9D,SAAO,oBAAC,QAAA,EAAQ,GAAG,MAAA,CAAO;AAC5B;"}
@@ -1,74 +1,5 @@
1
- import { jsx, jsxs } from "react/jsx-runtime";
2
- import React, { useMemo } from "react";
3
- import { c as combineClassNames } from "./classNames-AS8QjFq7.js";
4
- import { c as capitalize } from "./capitalize-C0TSQSPh.js";
5
- import { d as getDefaultTheme, a as getDefaultRounding, b as getDefaultShadow } from "./boreal-style-config-BILmxkZG.js";
6
- import { _ as _interop_require_default, a as _interop_require_wildcard, s as segment, L as Link } from "./link-Bik5xH00.js";
7
- const BaseNavBar = ({
8
- items,
9
- currentPath,
10
- LinkWrapper,
11
- classMap,
12
- theme = getDefaultTheme(),
13
- rounding = getDefaultRounding(),
14
- shadow = getDefaultShadow(),
15
- "data-testid": testId = "empty-state"
16
- }) => {
17
- const wrapperClass = useMemo(
18
- () => combineClassNames(classMap.container, classMap[theme]),
19
- [classMap, theme]
20
- );
21
- const itemClass = useMemo(
22
- () => combineClassNames(
23
- classMap.item,
24
- shadow && classMap[`shadow${capitalize(shadow)}`],
25
- rounding && classMap[`round${capitalize(rounding)}`]
26
- ),
27
- [classMap, shadow, rounding]
28
- );
29
- return /* @__PURE__ */ jsx(
30
- "nav",
31
- {
32
- role: "navigation",
33
- "aria-label": "Main navigation",
34
- className: wrapperClass,
35
- "data-testid": `${testId}-nav-bar`,
36
- children: items.map((item2, index) => {
37
- const isActive = currentPath === item2.path;
38
- console.log(
39
- "Nav item className:",
40
- combineClassNames(classMap.item, isActive && classMap.active)
41
- );
42
- return /* @__PURE__ */ jsxs(
43
- LinkWrapper,
44
- {
45
- href: item2.path,
46
- isActive,
47
- className: combineClassNames(
48
- itemClass,
49
- isActive && classMap["item--active"]
50
- ),
51
- testId: `${testId}-nav-item-${item2.label.toLowerCase()}`,
52
- "aria-current": isActive ? "page" : void 0,
53
- children: [
54
- /* @__PURE__ */ jsx(
55
- "div",
56
- {
57
- className: classMap.icon,
58
- "aria-hidden": "true",
59
- "data-testid": `${testId}-nav-icon-${item2.label.toLowerCase()}`,
60
- children: item2.icon
61
- }
62
- ),
63
- /* @__PURE__ */ jsx("span", { className: classMap.label, children: item2.label })
64
- ]
65
- },
66
- `${item2.label}-${index}`
67
- );
68
- })
69
- }
70
- );
71
- };
1
+ import React from "react";
2
+ import { _ as _interop_require_default, a as _interop_require_wildcard, s as segment } from "./link-Bik5xH00.js";
72
3
  var navigation$1 = { exports: {} };
73
4
  var appRouterContext_sharedRuntime = {};
74
5
  (function(exports) {
@@ -2054,95 +1985,7 @@ function requireBailoutToClientRendering() {
2054
1985
  })(navigation$1, navigation$1.exports);
2055
1986
  var navigationExports = navigation$1.exports;
2056
1987
  var navigation = navigationExports;
2057
- const noScroll = "_noScroll_702gs_91";
2058
- const errorMessage = "_errorMessage_702gs_92";
2059
- const loadingContainer = "_loadingContainer_702gs_93";
2060
- const hideScrollbar = "_hideScrollbar_702gs_85";
2061
- const sr_only = "_sr_only_702gs_94";
2062
- const container = "_container_702gs_479";
2063
- const primary = "_primary_702gs_506";
2064
- const item = "_item_702gs_506";
2065
- const secondary = "_secondary_702gs_518";
2066
- const tertiary = "_tertiary_702gs_530";
2067
- const quaternary = "_quaternary_702gs_542";
2068
- const clear = "_clear_702gs_554";
2069
- const icon = "_icon_702gs_586";
2070
- const label = "_label_702gs_597";
2071
- const roundNone = "_roundNone_702gs_609";
2072
- const roundSmall = "_roundSmall_702gs_613";
2073
- const roundMedium = "_roundMedium_702gs_617";
2074
- const roundLarge = "_roundLarge_702gs_621";
2075
- const roundFull = "_roundFull_702gs_625";
2076
- const shadowNone = "_shadowNone_702gs_629";
2077
- const shadowLight = "_shadowLight_702gs_633";
2078
- const shadowMedium = "_shadowMedium_702gs_637";
2079
- const shadowStrong = "_shadowStrong_702gs_641";
2080
- const shadowIntense = "_shadowIntense_702gs_645";
2081
- const spin = "_spin_702gs_1";
2082
- const pulse = "_pulse_702gs_1";
2083
- const styles = {
2084
- noScroll,
2085
- errorMessage,
2086
- loadingContainer,
2087
- hideScrollbar,
2088
- sr_only,
2089
- container,
2090
- primary,
2091
- item,
2092
- "item--active": "_item--active_702gs_513",
2093
- secondary,
2094
- tertiary,
2095
- quaternary,
2096
- clear,
2097
- icon,
2098
- label,
2099
- roundNone,
2100
- roundSmall,
2101
- roundMedium,
2102
- roundLarge,
2103
- roundFull,
2104
- shadowNone,
2105
- shadowLight,
2106
- shadowMedium,
2107
- shadowStrong,
2108
- shadowIntense,
2109
- "fade-in": "_fade-in_702gs_1",
2110
- "slide-up": "_slide-up_702gs_1",
2111
- "spin-3d": "_spin-3d_702gs_1",
2112
- spin,
2113
- pulse,
2114
- "fade-in-up": "_fade-in-up_702gs_1",
2115
- "progress-grow": "_progress-grow_702gs_1",
2116
- "indeterminate-move": "_indeterminate-move_702gs_1",
2117
- "skeleton-loading": "_skeleton-loading_702gs_1"
2118
- };
2119
- const NavBar = ({
2120
- mockPath,
2121
- ...props
2122
- }) => {
2123
- const pathname = navigation.usePathname();
2124
- const resolvedPath = mockPath ?? pathname;
2125
- return /* @__PURE__ */ jsx(
2126
- BaseNavBar,
2127
- {
2128
- ...props,
2129
- currentPath: resolvedPath || "/",
2130
- LinkWrapper: ({ href, children, className, isActive, testId }) => /* @__PURE__ */ jsx(
2131
- Link,
2132
- {
2133
- href,
2134
- className,
2135
- "aria-current": isActive ? "page" : void 0,
2136
- "data-testid": testId,
2137
- children
2138
- }
2139
- ),
2140
- classMap: styles
2141
- }
2142
- );
2143
- };
2144
1988
  export {
2145
- NavBar as N,
2146
1989
  navigation as n
2147
1990
  };
2148
- //# sourceMappingURL=NavBar-CLfsYv5E.js.map
1991
+ //# sourceMappingURL=navigation-DTwYCgCL.js.map