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.
- package/dist/core/CheveronDownIcon-B2codmaq.cjs +26 -0
- package/dist/core/CheveronDownIcon-B2codmaq.cjs.map +1 -0
- package/dist/core/CheveronDownIcon-Cn9jj-ku.js +27 -0
- package/dist/core/CheveronDownIcon-Cn9jj-ku.js.map +1 -0
- package/dist/core/{Footer-bKgKgU6L.js → Footer-7ixaMvFc.js} +2 -2
- package/dist/core/{Footer-bKgKgU6L.js.map → Footer-7ixaMvFc.js.map} +1 -1
- package/dist/core/{Footer-B4Owy88y.cjs → Footer-Dc_CuIC1.cjs} +2 -2
- package/dist/core/{Footer-B4Owy88y.cjs.map → Footer-Dc_CuIC1.cjs.map} +1 -1
- package/dist/core/Footer.cjs.js +1 -1
- package/dist/core/Footer.js +1 -1
- package/dist/core/{Select-9F6p9ghR.cjs → Select-CitauzQm.cjs} +3 -24
- package/dist/core/Select-CitauzQm.cjs.map +1 -0
- package/dist/core/{Select-C4a_4B87.js → Select-_12yQ-yj.js} +3 -24
- package/dist/core/Select-_12yQ-yj.js.map +1 -0
- package/dist/core/Select.cjs.js +1 -1
- package/dist/core/Select.js +1 -1
- package/dist/core/Sidebar-CqTJJULG.cjs +216 -0
- package/dist/core/Sidebar-CqTJJULG.cjs.map +1 -0
- package/dist/core/Sidebar-z0mG5nn_.js +217 -0
- package/dist/core/Sidebar-z0mG5nn_.js.map +1 -0
- package/dist/core/Sidebar.cjs.js +4 -0
- package/dist/core/Sidebar.cjs.js.map +1 -0
- package/dist/core/Sidebar.js +5 -0
- package/dist/core/Sidebar.js.map +1 -0
- package/dist/core/index.cjs.js +4 -2
- package/dist/core/index.cjs.js.map +1 -1
- package/dist/core/index.js +4 -2
- package/dist/core/index.js.map +1 -1
- package/dist/core/style.css +713 -0
- package/dist/next/CheveronDownIcon-Cn9jj-ku.js +27 -0
- package/dist/next/CheveronDownIcon-Cn9jj-ku.js.map +1 -0
- package/dist/next/CheveronDownIcon-CyoOZUNY.cjs +26 -0
- package/dist/next/CheveronDownIcon-CyoOZUNY.cjs.map +1 -0
- package/dist/next/{Footer-D2veQTa-.cjs → Footer-J0Tb7-n4.cjs} +2 -2
- package/dist/next/{Footer-D2veQTa-.cjs.map → Footer-J0Tb7-n4.cjs.map} +1 -1
- package/dist/next/{Footer-CQAWg2tl.js → Footer-bb_8EH_R.js} +2 -2
- package/dist/next/{Footer-CQAWg2tl.js.map → Footer-bb_8EH_R.js.map} +1 -1
- package/dist/next/Footer.cjs.js +1 -1
- package/dist/next/Footer.js +1 -1
- package/dist/next/NavBar-CRbRBzGq.js +163 -0
- package/dist/next/NavBar-CRbRBzGq.js.map +1 -0
- package/dist/next/NavBar-JPkuek76.cjs +162 -0
- package/dist/next/NavBar-JPkuek76.cjs.map +1 -0
- package/dist/next/NavBar.cjs.js +1 -1
- package/dist/next/NavBar.js +1 -1
- package/dist/next/{Select-_f1aZuKO.cjs → Select-Bln5-seQ.cjs} +3 -24
- package/dist/next/Select-Bln5-seQ.cjs.map +1 -0
- package/dist/next/{Select-DwWTQcCU.js → Select-CdWyrGrV.js} +3 -24
- package/dist/next/Select-CdWyrGrV.js.map +1 -0
- package/dist/next/Select.cjs.js +1 -1
- package/dist/next/Select.js +1 -1
- package/dist/next/Sidebar-DBmaTOMW.js +285 -0
- package/dist/next/Sidebar-DBmaTOMW.js.map +1 -0
- package/dist/next/Sidebar-Rl3o8_ya.cjs +284 -0
- package/dist/next/Sidebar-Rl3o8_ya.cjs.map +1 -0
- package/dist/next/Sidebar.cjs.js +4 -0
- package/dist/next/Sidebar.cjs.js.map +1 -0
- package/dist/next/Sidebar.js +5 -0
- package/dist/next/Sidebar.js.map +1 -0
- package/dist/next/index.cjs.js +5 -3
- package/dist/next/index.cjs.js.map +1 -1
- package/dist/next/index.js +6 -4
- package/dist/next/index.js.map +1 -1
- package/dist/next/{NavBar-DzRWv8W0.js → navigation-DTwYCgCL.js} +4 -160
- package/dist/next/navigation-DTwYCgCL.js.map +1 -0
- package/dist/next/{NavBar-CZtNDAdX.cjs → navigation-m012syo9.cjs} +2 -158
- package/dist/next/navigation-m012syo9.cjs.map +1 -0
- package/dist/next/style.css +696 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/types/components/Sidebar/Sidebar.types.d.ts +112 -0
- package/dist/types/components/Sidebar/Sidebar.types.d.ts.map +1 -0
- package/dist/types/components/Sidebar/SidebarBase.d.ts +5 -0
- package/dist/types/components/Sidebar/SidebarBase.d.ts.map +1 -0
- package/dist/types/components/Sidebar/core/Sidebar.d.ts +6 -0
- package/dist/types/components/Sidebar/core/Sidebar.d.ts.map +1 -0
- package/dist/types/components/Sidebar/next/Sidebar.d.ts +5 -0
- package/dist/types/components/Sidebar/next/Sidebar.d.ts.map +1 -0
- package/dist/types/index.core.d.ts +1 -0
- package/dist/types/index.core.d.ts.map +1 -1
- package/dist/types/index.next.d.ts +1 -0
- package/dist/types/index.next.d.ts.map +1 -1
- package/package.json +2 -2
- package/dist/core/Select-9F6p9ghR.cjs.map +0 -1
- package/dist/core/Select-C4a_4B87.js.map +0 -1
- package/dist/next/NavBar-CZtNDAdX.cjs.map +0 -1
- package/dist/next/NavBar-DzRWv8W0.js.map +0 -1
- package/dist/next/Select-DwWTQcCU.js.map +0 -1
- 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 @@
|
|
|
1
|
+
{"version":3,"file":"Sidebar.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Sidebar.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
package/dist/next/index.cjs.js
CHANGED
|
@@ -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-
|
|
13
|
-
const Footer = require("./Footer-
|
|
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-
|
|
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":"
|
|
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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"}
|
package/dist/next/index.js
CHANGED
|
@@ -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-
|
|
11
|
-
import { F as Footer } from "./Footer-
|
|
12
|
-
import { U } from "./Footer-
|
|
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-
|
|
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,
|
package/dist/next/index.js.map
CHANGED
|
@@ -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":"
|
|
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
|
|
2
|
-
import
|
|
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
|
-
|
|
1989
|
+
navigation as n
|
|
2146
1990
|
};
|
|
2147
|
-
//# sourceMappingURL=
|
|
1991
|
+
//# sourceMappingURL=navigation-DTwYCgCL.js.map
|