boreal-ui 0.0.10 → 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 (88) 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-bKgKgU6L.js → Footer-7ixaMvFc.js} +2 -2
  6. package/dist/core/{Footer-bKgKgU6L.js.map → Footer-7ixaMvFc.js.map} +1 -1
  7. package/dist/core/{Footer-B4Owy88y.cjs → Footer-Dc_CuIC1.cjs} +2 -2
  8. package/dist/core/{Footer-B4Owy88y.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-9F6p9ghR.cjs → Select-CitauzQm.cjs} +3 -24
  12. package/dist/core/Select-CitauzQm.cjs.map +1 -0
  13. package/dist/core/{Select-C4a_4B87.js → Select-_12yQ-yj.js} +3 -24
  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 -2
  26. package/dist/core/index.cjs.js.map +1 -1
  27. package/dist/core/index.js +4 -2
  28. package/dist/core/index.js.map +1 -1
  29. package/dist/core/style.css +713 -0
  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-D2veQTa-.cjs → Footer-J0Tb7-n4.cjs} +2 -2
  35. package/dist/next/{Footer-D2veQTa-.cjs.map → Footer-J0Tb7-n4.cjs.map} +1 -1
  36. package/dist/next/{Footer-CQAWg2tl.js → Footer-bb_8EH_R.js} +2 -2
  37. package/dist/next/{Footer-CQAWg2tl.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-_f1aZuKO.cjs → Select-Bln5-seQ.cjs} +3 -24
  47. package/dist/next/Select-Bln5-seQ.cjs.map +1 -0
  48. package/dist/next/{Select-DwWTQcCU.js → Select-CdWyrGrV.js} +3 -24
  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 +5 -3
  61. package/dist/next/index.cjs.js.map +1 -1
  62. package/dist/next/index.js +6 -4
  63. package/dist/next/index.js.map +1 -1
  64. package/dist/next/{NavBar-DzRWv8W0.js → navigation-DTwYCgCL.js} +4 -160
  65. package/dist/next/navigation-DTwYCgCL.js.map +1 -0
  66. package/dist/next/{NavBar-CZtNDAdX.cjs → navigation-m012syo9.cjs} +2 -158
  67. package/dist/next/navigation-m012syo9.cjs.map +1 -0
  68. package/dist/next/style.css +696 -0
  69. package/dist/tsconfig.build.tsbuildinfo +1 -1
  70. package/dist/types/components/Sidebar/Sidebar.types.d.ts +112 -0
  71. package/dist/types/components/Sidebar/Sidebar.types.d.ts.map +1 -0
  72. package/dist/types/components/Sidebar/SidebarBase.d.ts +5 -0
  73. package/dist/types/components/Sidebar/SidebarBase.d.ts.map +1 -0
  74. package/dist/types/components/Sidebar/core/Sidebar.d.ts +6 -0
  75. package/dist/types/components/Sidebar/core/Sidebar.d.ts.map +1 -0
  76. package/dist/types/components/Sidebar/next/Sidebar.d.ts +5 -0
  77. package/dist/types/components/Sidebar/next/Sidebar.d.ts.map +1 -0
  78. package/dist/types/index.core.d.ts +1 -0
  79. package/dist/types/index.core.d.ts.map +1 -1
  80. package/dist/types/index.next.d.ts +1 -0
  81. package/dist/types/index.next.d.ts.map +1 -1
  82. package/package.json +2 -2
  83. package/dist/core/Select-9F6p9ghR.cjs.map +0 -1
  84. package/dist/core/Select-C4a_4B87.js.map +0 -1
  85. package/dist/next/NavBar-CZtNDAdX.cjs.map +0 -1
  86. package/dist/next/NavBar-DzRWv8W0.js.map +0 -1
  87. package/dist/next/Select-DwWTQcCU.js.map +0 -1
  88. package/dist/next/Select-_f1aZuKO.cjs.map +0 -1
@@ -0,0 +1,284 @@
1
+ "use strict";
2
+ const require$$2 = require("react/jsx-runtime");
3
+ const link$1 = require("./link-hxAaLm0Q.cjs");
4
+ const navigation = require("./navigation-m012syo9.cjs");
5
+ const React = require("react");
6
+ const classNames = require("./classNames-BcWMx052.cjs");
7
+ const borealStyleConfig = require("./boreal-style-config-Rr5d5Qts.cjs");
8
+ const capitalize = require("./capitalize-DoV-nOmN.cjs");
9
+ const CheveronDownIcon = require("./CheveronDownIcon-CyoOZUNY.cjs");
10
+ const SidebarBase = ({
11
+ links,
12
+ classMap,
13
+ currentPath,
14
+ LinkComponent = "a",
15
+ theme = borealStyleConfig.getDefaultTheme(),
16
+ rounding = borealStyleConfig.getDefaultRounding(),
17
+ shadow = borealStyleConfig.getDefaultShadow(),
18
+ state = "",
19
+ showFooter = false,
20
+ footerLinks,
21
+ footerVersion: footerVersion2,
22
+ outline: outline2 = false,
23
+ className = "",
24
+ "data-testid": testId = "sidebar",
25
+ ariaLabel = "Sidebar navigation",
26
+ ...rest
27
+ }) => {
28
+ const [openItems, setOpenItems] = React.useState({});
29
+ const toggleItem = (key) => {
30
+ setOpenItems((prev) => ({ ...prev, [key]: !prev[key] }));
31
+ };
32
+ const submenuRefs = React.useRef({});
33
+ const setSubmenuRef = (key, el) => {
34
+ submenuRefs.current[key] = el;
35
+ };
36
+ const getSubmenuHeight = (key) => {
37
+ const el = submenuRefs.current[key];
38
+ return el ? `${el.scrollHeight}px` : "0px";
39
+ };
40
+ const containerClasses = React.useMemo(
41
+ () => classNames.combineClassNames(
42
+ classMap.wrapper,
43
+ className,
44
+ classMap[theme],
45
+ classMap[state],
46
+ shadow && classMap[`shadow${capitalize.capitalize(shadow)}`],
47
+ rounding && classMap[`round${capitalize.capitalize(rounding)}`],
48
+ outline2 ? classMap.outline : ""
49
+ ),
50
+ [className, theme, state, outline2, rounding, shadow]
51
+ );
52
+ const renderLinks = (items, isChild = false) => /* @__PURE__ */ require$$2.jsx(
53
+ "ul",
54
+ {
55
+ className: classNames.combineClassNames(
56
+ classMap.list,
57
+ isChild ? classMap.childList : ""
58
+ ),
59
+ "data-testid": `${testId}-list`,
60
+ children: items.map(({ label, href, children, icon }) => {
61
+ const isActive = href && currentPath === href;
62
+ const isOpen = openItems[label] || false;
63
+ return /* @__PURE__ */ require$$2.jsx(
64
+ "li",
65
+ {
66
+ className: classMap.item,
67
+ "data-testid": `${testId}-listItems`,
68
+ children: children && children.length > 0 ? /* @__PURE__ */ require$$2.jsxs(require$$2.Fragment, { children: [
69
+ /* @__PURE__ */ require$$2.jsxs(
70
+ "button",
71
+ {
72
+ type: "button",
73
+ className: classNames.combineClassNames(
74
+ classMap.link,
75
+ isOpen ? classMap.active : ""
76
+ ),
77
+ onClick: () => toggleItem(label),
78
+ "aria-expanded": isOpen,
79
+ "data-testid": `${testId}-exapndItemButton`,
80
+ children: [
81
+ icon && /* @__PURE__ */ require$$2.jsx("span", { className: classMap.icon, children: icon }),
82
+ /* @__PURE__ */ require$$2.jsx("span", { "data-testid": `${testId}-exapndItemLabel`, children: label }),
83
+ /* @__PURE__ */ require$$2.jsx(
84
+ CheveronDownIcon.ChevronDownIcon,
85
+ {
86
+ className: classNames.combineClassNames(
87
+ classMap.chevron,
88
+ isOpen ? classMap.chevronOpen : ""
89
+ ),
90
+ "data-testid": `${testId}-exapndIcon`
91
+ }
92
+ )
93
+ ]
94
+ }
95
+ ),
96
+ /* @__PURE__ */ require$$2.jsx(
97
+ "div",
98
+ {
99
+ ref: (el) => setSubmenuRef(label, el),
100
+ className: classNames.combineClassNames(
101
+ classMap.submenu,
102
+ isOpen ? classMap.submenuOpen : ""
103
+ ),
104
+ style: {
105
+ maxHeight: isOpen ? getSubmenuHeight(label) : "0px"
106
+ },
107
+ "data-testid": `${testId}-subMenu`,
108
+ children: renderLinks(children, true)
109
+ }
110
+ )
111
+ ] }) : href ? /* @__PURE__ */ require$$2.jsxs(
112
+ LinkComponent,
113
+ {
114
+ href,
115
+ className: classNames.combineClassNames(
116
+ classMap.link,
117
+ isChild ? classMap.childLink : "",
118
+ isActive ? classMap.active : ""
119
+ ),
120
+ "aria-current": isActive ? "page" : void 0,
121
+ "data-testid": `${testId}-sidebarLink`,
122
+ children: [
123
+ icon && /* @__PURE__ */ require$$2.jsx("span", { className: classMap.icon, children: icon }),
124
+ label
125
+ ]
126
+ }
127
+ ) : /* @__PURE__ */ require$$2.jsxs(
128
+ "span",
129
+ {
130
+ className: classNames.combineClassNames(
131
+ classMap.link,
132
+ isChild ? classMap.childLink : ""
133
+ ),
134
+ "data-testid": `${testId}-sidebarLabel`,
135
+ children: [
136
+ icon && /* @__PURE__ */ require$$2.jsx("span", { className: classMap.icon, children: icon }),
137
+ label
138
+ ]
139
+ }
140
+ )
141
+ },
142
+ label
143
+ );
144
+ })
145
+ }
146
+ );
147
+ return /* @__PURE__ */ require$$2.jsxs(
148
+ "nav",
149
+ {
150
+ className: containerClasses,
151
+ "aria-label": ariaLabel,
152
+ ...rest,
153
+ "data-testid": testId,
154
+ children: [
155
+ /* @__PURE__ */ require$$2.jsx("nav", { className: classMap.nav, children: renderLinks(links) }),
156
+ showFooter && /* @__PURE__ */ require$$2.jsxs("footer", { className: classMap.footer, "data-testid": `${testId}-footer`, children: [
157
+ footerLinks == null ? void 0 : footerLinks.map(({ label, href }) => /* @__PURE__ */ require$$2.jsx(
158
+ LinkComponent,
159
+ {
160
+ href,
161
+ className: classMap.footerLink,
162
+ "data-testid": `${testId}-footerLink`,
163
+ children: label
164
+ },
165
+ label
166
+ )),
167
+ footerVersion2 && /* @__PURE__ */ require$$2.jsx(
168
+ "span",
169
+ {
170
+ className: classMap.footerVersion,
171
+ "data-testid": `${testId}-footerVersion`,
172
+ children: footerVersion2
173
+ }
174
+ )
175
+ ] })
176
+ ]
177
+ }
178
+ );
179
+ };
180
+ SidebarBase.displayName = "SidebarBase";
181
+ const noScroll = "_noScroll_y1c07_91";
182
+ const errorMessage = "_errorMessage_y1c07_92";
183
+ const loadingContainer = "_loadingContainer_y1c07_93";
184
+ const hideScrollbar = "_hideScrollbar_y1c07_85";
185
+ const sr_only = "_sr_only_y1c07_94";
186
+ const wrapper = "_wrapper_y1c07_479";
187
+ const roundNone = "_roundNone_y1c07_490";
188
+ const roundSmall = "_roundSmall_y1c07_493";
189
+ const roundMedium = "_roundMedium_y1c07_496";
190
+ const roundLarge = "_roundLarge_y1c07_499";
191
+ const roundFull = "_roundFull_y1c07_502";
192
+ const shadowNone = "_shadowNone_y1c07_505";
193
+ const shadowLight = "_shadowLight_y1c07_508";
194
+ const shadowMedium = "_shadowMedium_y1c07_511";
195
+ const shadowStrong = "_shadowStrong_y1c07_514";
196
+ const shadowIntense = "_shadowIntense_y1c07_517";
197
+ const primary = "_primary_y1c07_521";
198
+ const active = "_active_y1c07_521";
199
+ const outline = "_outline_y1c07_525";
200
+ const clear = "_clear_y1c07_530";
201
+ const secondary = "_secondary_y1c07_534";
202
+ const tertiary = "_tertiary_y1c07_547";
203
+ const quaternary = "_quaternary_y1c07_560";
204
+ const success = "_success_y1c07_588";
205
+ const error = "_error_y1c07_92";
206
+ const warning = "_warning_y1c07_602";
207
+ const nav = "_nav_y1c07_609";
208
+ const list = "_list_y1c07_614";
209
+ const link = "_link_y1c07_620";
210
+ const childLink = "_childLink_y1c07_650";
211
+ const chevron = "_chevron_y1c07_654";
212
+ const chevronOpen = "_chevronOpen_y1c07_658";
213
+ const submenu = "_submenu_y1c07_662";
214
+ const childList = "_childList_y1c07_668";
215
+ const footer = "_footer_y1c07_673";
216
+ const footerLink = "_footerLink_y1c07_685";
217
+ const footerVersion = "_footerVersion_y1c07_693";
218
+ const spin = "_spin_y1c07_1";
219
+ const pulse = "_pulse_y1c07_1";
220
+ const styles = {
221
+ noScroll,
222
+ errorMessage,
223
+ loadingContainer,
224
+ hideScrollbar,
225
+ sr_only,
226
+ wrapper,
227
+ roundNone,
228
+ roundSmall,
229
+ roundMedium,
230
+ roundLarge,
231
+ roundFull,
232
+ shadowNone,
233
+ shadowLight,
234
+ shadowMedium,
235
+ shadowStrong,
236
+ shadowIntense,
237
+ primary,
238
+ active,
239
+ outline,
240
+ clear,
241
+ secondary,
242
+ tertiary,
243
+ quaternary,
244
+ success,
245
+ error,
246
+ warning,
247
+ nav,
248
+ list,
249
+ link,
250
+ childLink,
251
+ chevron,
252
+ chevronOpen,
253
+ submenu,
254
+ childList,
255
+ footer,
256
+ footerLink,
257
+ footerVersion,
258
+ "fade-in": "_fade-in_y1c07_1",
259
+ "slide-up": "_slide-up_y1c07_1",
260
+ "spin-3d": "_spin-3d_y1c07_1",
261
+ spin,
262
+ pulse,
263
+ "fade-in-up": "_fade-in-up_y1c07_1",
264
+ "progress-grow": "_progress-grow_y1c07_1",
265
+ "indeterminate-move": "_indeterminate-move_y1c07_1",
266
+ "skeleton-loading": "_skeleton-loading_y1c07_1"
267
+ };
268
+ const Sidebar = ({ links, ...rest }) => {
269
+ const currentPath = navigation.navigation.usePathname();
270
+ const { classMap, currentPath: _ignored, ...safeRest } = rest;
271
+ return /* @__PURE__ */ require$$2.jsx(
272
+ SidebarBase,
273
+ {
274
+ links,
275
+ classMap: styles,
276
+ currentPath,
277
+ LinkComponent: link$1.Link,
278
+ ...safeRest
279
+ },
280
+ currentPath
281
+ );
282
+ };
283
+ exports.Sidebar = Sidebar;
284
+ //# sourceMappingURL=Sidebar-Rl3o8_ya.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Sidebar-Rl3o8_ya.cjs","sources":["../../src/components/Sidebar/SidebarBase.tsx","../../src/components/Sidebar/next/Sidebar.tsx"],"sourcesContent":["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"],"names":["getDefaultTheme","getDefaultRounding","getDefaultShadow","footerVersion","outline","useState","useRef","useMemo","combineClassNames","capitalize","jsx","jsxs","Fragment","ChevronDownIcon","usePathname","Link"],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ const Sidebar = require("./Sidebar-Rl3o8_ya.cjs");
3
+ module.exports = Sidebar.Sidebar;
4
+ //# sourceMappingURL=Sidebar.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Sidebar.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
@@ -0,0 +1,5 @@
1
+ import { S } from "./Sidebar-DBmaTOMW.js";
2
+ export {
3
+ S as default
4
+ };
5
+ //# sourceMappingURL=Sidebar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Sidebar.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -9,8 +9,8 @@ const IconButton = require("./IconButton-CNzF48hu.cjs");
9
9
  const STT = require("./STT-C0q3yqiJ.cjs");
10
10
  const TextInput = require("./TextInput-iQT-2lPj.cjs");
11
11
  const TextArea = require("./TextArea-BfVBd3wl.cjs");
12
- const Select = require("./Select-_f1aZuKO.cjs");
13
- const Footer = require("./Footer-D2veQTa-.cjs");
12
+ const Select = require("./Select-Bln5-seQ.cjs");
13
+ const Footer = require("./Footer-J0Tb7-n4.cjs");
14
14
  const FileUpload = require("./FileUpload-427ZyzCY.cjs");
15
15
  const Taginput = require("./Taginput-BcNgwFOj.cjs");
16
16
  const RadioButton = require("./RadioButton-cXdUfJD2.cjs");
@@ -35,7 +35,7 @@ const Spinner = require("./Spinner-Doh4Uft1.cjs");
35
35
  const Tooltip = require("./Tooltip-DHhLeygn.cjs");
36
36
  const MessagePopup = require("./MessagePopup-C-7N3vB0.cjs");
37
37
  const PopOver = require("./PopOver-CHs0s9rp.cjs");
38
- const NavBar = require("./NavBar-CZtNDAdX.cjs");
38
+ const NavBar = require("./NavBar-JPkuek76.cjs");
39
39
  const Breadcrumbs = require("./Breadcrumbs-0cJD4s9s.cjs");
40
40
  const Tabs = require("./Tabs-DuZPFjen.cjs");
41
41
  const Stepper = require("./Stepper-D2UYDRwT.cjs");
@@ -51,6 +51,7 @@ const MetricBox = require("./MetricBox-Dtkrwrtw.cjs");
51
51
  const EmptyState = require("./EmptyState-DUZQ2Qmn.cjs");
52
52
  const CommandPalette = require("./CommandPalette-Dp2pT5ot.cjs");
53
53
  const NotificationCenter = require("./NotificationCenter-DmcHIkOp.cjs");
54
+ const Sidebar = require("./Sidebar-Rl3o8_ya.cjs");
54
55
  const Card = require("./Card-BCYMEFyT.cjs");
55
56
  const Avatar = require("./Avatar-DjuHvrMV.cjs");
56
57
  const ChipGroupBase = React.forwardRef(
@@ -235,6 +236,7 @@ exports.MetricBox = MetricBox.MetricBox;
235
236
  exports.EmptyState = EmptyState.EmptyState;
236
237
  exports.CommandPalette = CommandPalette.CommandPalette;
237
238
  exports.NotificationCenter = NotificationCenter.NotificationCenter;
239
+ exports.Sidebar = Sidebar.Sidebar;
238
240
  exports.Card = Card.Card;
239
241
  exports.Avatar = Avatar.Avatar;
240
242
  exports.ChipGroup = ChipGroup;
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs.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":["forwardRef","useState","useEffect","chip","uuidv4","useCallback","useImperativeHandle","jsx","combineClassNames","Chip","Footer"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs.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":["forwardRef","useState","useEffect","chip","uuidv4","useCallback","useImperativeHandle","jsx","combineClassNames","Chip","Footer"],"mappings":"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"}
@@ -7,9 +7,9 @@ import { I } from "./IconButton-DFrFh0kg.js";
7
7
  import { S } from "./STT-Br81yPXp.js";
8
8
  import { T as T2 } from "./TextInput-DkNxrV4X.js";
9
9
  import { T as T3 } from "./TextArea-CwR4vrML.js";
10
- import { S as S2 } from "./Select-DwWTQcCU.js";
11
- import { F as Footer } from "./Footer-CQAWg2tl.js";
12
- import { U } from "./Footer-CQAWg2tl.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";
13
13
  import { F } from "./FileUpload-DQhKhtgc.js";
14
14
  import { T as T4 } from "./Taginput-CdYMgcYY.js";
15
15
  import { R } from "./RadioButton-BKS65jm9.js";
@@ -34,7 +34,7 @@ import { S as S5 } from "./Spinner-BxvU43sx.js";
34
34
  import { T as T5 } from "./Tooltip-G3P0OyTP.js";
35
35
  import { M as M2 } from "./MessagePopup-ClfrvxKq.js";
36
36
  import { P as P2 } from "./PopOver-pllmYvp6.js";
37
- import { N } from "./NavBar-DzRWv8W0.js";
37
+ import { N } from "./NavBar-CRbRBzGq.js";
38
38
  import { B as B3 } from "./Breadcrumbs-liNC5ZzY.js";
39
39
  import { T as T6 } from "./Tabs-CNU0A_YY.js";
40
40
  import { S as S6 } from "./Stepper-5FojeYPE.js";
@@ -50,6 +50,7 @@ import { M as M4 } from "./MetricBox-rxFYolH_.js";
50
50
  import { E } from "./EmptyState-CSEhZvTp.js";
51
51
  import { C as C4 } from "./CommandPalette-CEZwvLuu.js";
52
52
  import { N as N2 } from "./NotificationCenter-BCXpVjHd.js";
53
+ import { S as S7 } from "./Sidebar-DBmaTOMW.js";
53
54
  import { C as C5 } from "./Card-DhdZiqdl.js";
54
55
  import { A as A2 } from "./Avatar-B0vflpuy.js";
55
56
  const ChipGroupBase = forwardRef(
@@ -221,6 +222,7 @@ export {
221
222
  R2 as Rating,
222
223
  S as ScrollToTop,
223
224
  S2 as Select,
225
+ S7 as Sidebar,
224
226
  S4 as Skeleton,
225
227
  S3 as Slider,
226
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/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
+ {"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,94 +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
1989
+ navigation as n
2146
1990
  };
2147
- //# sourceMappingURL=NavBar-DzRWv8W0.js.map
1991
+ //# sourceMappingURL=navigation-DTwYCgCL.js.map