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 @@
1
+ {"version":3,"file":"Sidebar-CqTJJULG.cjs","sources":["../../src/components/Sidebar/SidebarBase.tsx","../../src/components/Sidebar/core/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","import React from \"react\";\nimport SidebarBase from \"../SidebarBase\";\nimport \"./Sidebar.scss\";\nimport { SidebarProps } from \"../Sidebar.types\";\n\nconst classes = {\n wrapper: \"sidebar\",\n nav: \"sidebar_nav\",\n list: \"sidebar_list\",\n childList: \"sidebar_child-list\",\n item: \"sidebar_item\",\n link: \"sidebar_link\",\n childLink: \"sidebar_child-link\",\n active: \"sidebar_active\",\n\n footer: \"sidebar_footer\",\n footerLink: \"sidebar_footer-link\",\n footerVersion: \"sidebar_footer-version\",\n\n chevron: \"sidebar_chevron\",\n chevronOpen: \"sidebar_chevron_open\",\n\n submenu: \"sidebar_submenu\",\n submenuOpen: \"sidebar_submenu_open\",\n\n outline: \"sidebar_outline\",\n\n primary: \"sidebar_primary\",\n secondary: \"sidebar_secondary\",\n tertiary: \"sidebar_tertiary\",\n quaternary: \"sidebar_quaternary\",\n\n success: \"sidebar_success\",\n error: \"sidebar_error\",\n warning: \"sidebar_warning\",\n\n clear: \"sidebar_clear\",\n\n shadowNone: \"sidebar_shadow-None\",\n shadowLight: \"sidebar_shadow-Light\",\n shadowMedium: \"sidebar_shadow-Medium\",\n shadowStrong: \"sidebar_shadow-Strong\",\n shadowIntense: \"sidebar_shadow-Intense\",\n\n roundNone: \"sidebar_round-None\",\n roundSmall: \"sidebar_round-Small\",\n roundMedium: \"sidebar_round-Medium\",\n roundLarge: \"sidebar_round-Large\",\n};\n\nconst Sidebar: React.FC<SidebarProps> = ({ currentPath, ...props }) => (\n <SidebarBase {...props} currentPath={currentPath} classMap={classes} />\n);\n\nexport default Sidebar;\n"],"names":["getDefaultTheme","getDefaultRounding","getDefaultShadow","useState","useRef","useMemo","combineClassNames","capitalize","jsx","jsxs","Fragment","ChevronDownIcon"],"mappings":"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"}
@@ -0,0 +1,217 @@
1
+ import { jsxs, jsx, Fragment } from "react/jsx-runtime";
2
+ import { useState, useRef, useMemo } from "react";
3
+ import { c as combineClassNames } from "./classNames-AS8QjFq7.js";
4
+ import { a as getDefaultRounding, b as getDefaultShadow, d as getDefaultTheme } from "./boreal-style-config-BILmxkZG.js";
5
+ import { c as capitalize } from "./capitalize-C0TSQSPh.js";
6
+ import { C as ChevronDownIcon } from "./CheveronDownIcon-Cn9jj-ku.js";
7
+ const SidebarBase = ({
8
+ links,
9
+ classMap,
10
+ currentPath,
11
+ LinkComponent = "a",
12
+ theme = getDefaultTheme(),
13
+ rounding = getDefaultRounding(),
14
+ shadow = getDefaultShadow(),
15
+ state = "",
16
+ showFooter = false,
17
+ footerLinks,
18
+ footerVersion,
19
+ outline = false,
20
+ className = "",
21
+ "data-testid": testId = "sidebar",
22
+ ariaLabel = "Sidebar navigation",
23
+ ...rest
24
+ }) => {
25
+ const [openItems, setOpenItems] = useState({});
26
+ const toggleItem = (key) => {
27
+ setOpenItems((prev) => ({ ...prev, [key]: !prev[key] }));
28
+ };
29
+ const submenuRefs = useRef({});
30
+ const setSubmenuRef = (key, el) => {
31
+ submenuRefs.current[key] = el;
32
+ };
33
+ const getSubmenuHeight = (key) => {
34
+ const el = submenuRefs.current[key];
35
+ return el ? `${el.scrollHeight}px` : "0px";
36
+ };
37
+ const containerClasses = useMemo(
38
+ () => combineClassNames(
39
+ classMap.wrapper,
40
+ className,
41
+ classMap[theme],
42
+ classMap[state],
43
+ shadow && classMap[`shadow${capitalize(shadow)}`],
44
+ rounding && classMap[`round${capitalize(rounding)}`],
45
+ outline ? classMap.outline : ""
46
+ ),
47
+ [className, theme, state, outline, rounding, shadow]
48
+ );
49
+ const renderLinks = (items, isChild = false) => /* @__PURE__ */ jsx(
50
+ "ul",
51
+ {
52
+ className: combineClassNames(
53
+ classMap.list,
54
+ isChild ? classMap.childList : ""
55
+ ),
56
+ "data-testid": `${testId}-list`,
57
+ children: items.map(({ label, href, children, icon }) => {
58
+ const isActive = href && currentPath === href;
59
+ const isOpen = openItems[label] || false;
60
+ return /* @__PURE__ */ jsx(
61
+ "li",
62
+ {
63
+ className: classMap.item,
64
+ "data-testid": `${testId}-listItems`,
65
+ children: children && children.length > 0 ? /* @__PURE__ */ jsxs(Fragment, { children: [
66
+ /* @__PURE__ */ jsxs(
67
+ "button",
68
+ {
69
+ type: "button",
70
+ className: combineClassNames(
71
+ classMap.link,
72
+ isOpen ? classMap.active : ""
73
+ ),
74
+ onClick: () => toggleItem(label),
75
+ "aria-expanded": isOpen,
76
+ "data-testid": `${testId}-exapndItemButton`,
77
+ children: [
78
+ icon && /* @__PURE__ */ jsx("span", { className: classMap.icon, children: icon }),
79
+ /* @__PURE__ */ jsx("span", { "data-testid": `${testId}-exapndItemLabel`, children: label }),
80
+ /* @__PURE__ */ jsx(
81
+ ChevronDownIcon,
82
+ {
83
+ className: combineClassNames(
84
+ classMap.chevron,
85
+ isOpen ? classMap.chevronOpen : ""
86
+ ),
87
+ "data-testid": `${testId}-exapndIcon`
88
+ }
89
+ )
90
+ ]
91
+ }
92
+ ),
93
+ /* @__PURE__ */ jsx(
94
+ "div",
95
+ {
96
+ ref: (el) => setSubmenuRef(label, el),
97
+ className: combineClassNames(
98
+ classMap.submenu,
99
+ isOpen ? classMap.submenuOpen : ""
100
+ ),
101
+ style: {
102
+ maxHeight: isOpen ? getSubmenuHeight(label) : "0px"
103
+ },
104
+ "data-testid": `${testId}-subMenu`,
105
+ children: renderLinks(children, true)
106
+ }
107
+ )
108
+ ] }) : href ? /* @__PURE__ */ jsxs(
109
+ LinkComponent,
110
+ {
111
+ href,
112
+ className: combineClassNames(
113
+ classMap.link,
114
+ isChild ? classMap.childLink : "",
115
+ isActive ? classMap.active : ""
116
+ ),
117
+ "aria-current": isActive ? "page" : void 0,
118
+ "data-testid": `${testId}-sidebarLink`,
119
+ children: [
120
+ icon && /* @__PURE__ */ jsx("span", { className: classMap.icon, children: icon }),
121
+ label
122
+ ]
123
+ }
124
+ ) : /* @__PURE__ */ jsxs(
125
+ "span",
126
+ {
127
+ className: combineClassNames(
128
+ classMap.link,
129
+ isChild ? classMap.childLink : ""
130
+ ),
131
+ "data-testid": `${testId}-sidebarLabel`,
132
+ children: [
133
+ icon && /* @__PURE__ */ jsx("span", { className: classMap.icon, children: icon }),
134
+ label
135
+ ]
136
+ }
137
+ )
138
+ },
139
+ label
140
+ );
141
+ })
142
+ }
143
+ );
144
+ return /* @__PURE__ */ jsxs(
145
+ "nav",
146
+ {
147
+ className: containerClasses,
148
+ "aria-label": ariaLabel,
149
+ ...rest,
150
+ "data-testid": testId,
151
+ children: [
152
+ /* @__PURE__ */ jsx("nav", { className: classMap.nav, children: renderLinks(links) }),
153
+ showFooter && /* @__PURE__ */ jsxs("footer", { className: classMap.footer, "data-testid": `${testId}-footer`, children: [
154
+ footerLinks == null ? void 0 : footerLinks.map(({ label, href }) => /* @__PURE__ */ jsx(
155
+ LinkComponent,
156
+ {
157
+ href,
158
+ className: classMap.footerLink,
159
+ "data-testid": `${testId}-footerLink`,
160
+ children: label
161
+ },
162
+ label
163
+ )),
164
+ footerVersion && /* @__PURE__ */ jsx(
165
+ "span",
166
+ {
167
+ className: classMap.footerVersion,
168
+ "data-testid": `${testId}-footerVersion`,
169
+ children: footerVersion
170
+ }
171
+ )
172
+ ] })
173
+ ]
174
+ }
175
+ );
176
+ };
177
+ SidebarBase.displayName = "SidebarBase";
178
+ const classes = {
179
+ wrapper: "sidebar",
180
+ nav: "sidebar_nav",
181
+ list: "sidebar_list",
182
+ childList: "sidebar_child-list",
183
+ item: "sidebar_item",
184
+ link: "sidebar_link",
185
+ childLink: "sidebar_child-link",
186
+ active: "sidebar_active",
187
+ footer: "sidebar_footer",
188
+ footerLink: "sidebar_footer-link",
189
+ footerVersion: "sidebar_footer-version",
190
+ chevron: "sidebar_chevron",
191
+ chevronOpen: "sidebar_chevron_open",
192
+ submenu: "sidebar_submenu",
193
+ submenuOpen: "sidebar_submenu_open",
194
+ outline: "sidebar_outline",
195
+ primary: "sidebar_primary",
196
+ secondary: "sidebar_secondary",
197
+ tertiary: "sidebar_tertiary",
198
+ quaternary: "sidebar_quaternary",
199
+ success: "sidebar_success",
200
+ error: "sidebar_error",
201
+ warning: "sidebar_warning",
202
+ clear: "sidebar_clear",
203
+ shadowNone: "sidebar_shadow-None",
204
+ shadowLight: "sidebar_shadow-Light",
205
+ shadowMedium: "sidebar_shadow-Medium",
206
+ shadowStrong: "sidebar_shadow-Strong",
207
+ shadowIntense: "sidebar_shadow-Intense",
208
+ roundNone: "sidebar_round-None",
209
+ roundSmall: "sidebar_round-Small",
210
+ roundMedium: "sidebar_round-Medium",
211
+ roundLarge: "sidebar_round-Large"
212
+ };
213
+ const Sidebar = ({ currentPath, ...props }) => /* @__PURE__ */ jsx(SidebarBase, { ...props, currentPath, classMap: classes });
214
+ export {
215
+ Sidebar as S
216
+ };
217
+ //# sourceMappingURL=Sidebar-z0mG5nn_.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Sidebar-z0mG5nn_.js","sources":["../../src/components/Sidebar/SidebarBase.tsx","../../src/components/Sidebar/core/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","import React from \"react\";\nimport SidebarBase from \"../SidebarBase\";\nimport \"./Sidebar.scss\";\nimport { SidebarProps } from \"../Sidebar.types\";\n\nconst classes = {\n wrapper: \"sidebar\",\n nav: \"sidebar_nav\",\n list: \"sidebar_list\",\n childList: \"sidebar_child-list\",\n item: \"sidebar_item\",\n link: \"sidebar_link\",\n childLink: \"sidebar_child-link\",\n active: \"sidebar_active\",\n\n footer: \"sidebar_footer\",\n footerLink: \"sidebar_footer-link\",\n footerVersion: \"sidebar_footer-version\",\n\n chevron: \"sidebar_chevron\",\n chevronOpen: \"sidebar_chevron_open\",\n\n submenu: \"sidebar_submenu\",\n submenuOpen: \"sidebar_submenu_open\",\n\n outline: \"sidebar_outline\",\n\n primary: \"sidebar_primary\",\n secondary: \"sidebar_secondary\",\n tertiary: \"sidebar_tertiary\",\n quaternary: \"sidebar_quaternary\",\n\n success: \"sidebar_success\",\n error: \"sidebar_error\",\n warning: \"sidebar_warning\",\n\n clear: \"sidebar_clear\",\n\n shadowNone: \"sidebar_shadow-None\",\n shadowLight: \"sidebar_shadow-Light\",\n shadowMedium: \"sidebar_shadow-Medium\",\n shadowStrong: \"sidebar_shadow-Strong\",\n shadowIntense: \"sidebar_shadow-Intense\",\n\n roundNone: \"sidebar_round-None\",\n roundSmall: \"sidebar_round-Small\",\n roundMedium: \"sidebar_round-Medium\",\n roundLarge: \"sidebar_round-Large\",\n};\n\nconst Sidebar: React.FC<SidebarProps> = ({ currentPath, ...props }) => (\n <SidebarBase {...props} currentPath={currentPath} classMap={classes} />\n);\n\nexport default Sidebar;\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ const Sidebar = require("./Sidebar-CqTJJULG.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-z0mG5nn_.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":";"}
@@ -10,8 +10,8 @@ const IconButton = require("./IconButton-BxUXK-xn.cjs");
10
10
  const STT = require("./STT-D6L-amjZ.cjs");
11
11
  const TextInput = require("./TextInput-8AbKEfUH.cjs");
12
12
  const TextArea = require("./TextArea-Dn9aynnY.cjs");
13
- const Select = require("./Select-9F6p9ghR.cjs");
14
- const Footer = require("./Footer-B4Owy88y.cjs");
13
+ const Select = require("./Select-CitauzQm.cjs");
14
+ const Footer = require("./Footer-Dc_CuIC1.cjs");
15
15
  const FileUpload = require("./FileUpload-Dv2cvYI2.cjs");
16
16
  const Taginput = require("./Taginput-BMPHihSz.cjs");
17
17
  const RadioButton = require("./RadioButton-DP8HSNZD.cjs");
@@ -52,6 +52,7 @@ const MetricBox = require("./MetricBox-DjE-rdp0.cjs");
52
52
  const EmptyState = require("./EmptyState-BAaCfJzO.cjs");
53
53
  const CommandPalette = require("./CommandPalette-XTi50U_E.cjs");
54
54
  const NotificationCenter = require("./NotificationCenter-DxaqoUD1.cjs");
55
+ const Sidebar = require("./Sidebar-CqTJJULG.cjs");
55
56
  const Card = require("./Card-DCxLBwi0.cjs");
56
57
  const Avatar = require("./Avatar-B5aqfDZX.cjs");
57
58
  const ChipGroupBase = React.forwardRef(
@@ -202,6 +203,7 @@ exports.MetricBox = MetricBox.MetricBox;
202
203
  exports.EmptyState = EmptyState.EmptyState;
203
204
  exports.CommandPalette = CommandPalette.CommandPalette;
204
205
  exports.NotificationCenter = NotificationCenter.NotificationCenter;
206
+ exports.Sidebar = Sidebar.Sidebar;
205
207
  exports.Card = Card.Card;
206
208
  exports.Avatar = Avatar.Avatar;
207
209
  exports.ChipGroup = ChipGroup;
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs.js","sources":["../../src/components/Chip/ChipGroup/ChipGroupBase.tsx","../../src/components/Chip/ChipGroup/core/ChipGroup.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","import React from \"react\";\r\nimport ChipGroupBase from \"../ChipGroupBase\";\r\nimport Chip from \"../../core/Chip\";\r\nimport \"./ChipGroup.scss\";\r\nimport { ChipGroupProps, ChipGroupRef } from \"../ChipGroup.types\";\r\n\r\nconst classMap = {\r\n container: \"chip_group\",\r\n list: \"chip_group_list\",\r\n topCenter: \"chip_group_topCenter\",\r\n bottomCenter: \"chip_group_bottomCenter\",\r\n topLeft: \"chip_group_topLeft\",\r\n topRight: \"chip_group_topRight\",\r\n bottomLeft: \"chip_group_bottomLeft\",\r\n bottomRight: \"chip_group_bottomRight\",\r\n};\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={classMap}\r\n />\r\n )\r\n);\r\n\r\nexport default ChipGroup;\r\n"],"names":["forwardRef","classMap","useState","useEffect","uuidv4","useCallback","useImperativeHandle","jsx","combineClassNames","Chip"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiBA,MAAM,gBAAgBA,MAAAA;AAAAA,EACpB,CACE;AAAA,IACE;AAAA,IACA;AAAA,IACA,WAAW;AAAA,IACX,OAAO;AAAA,IACP,YAAY;AAAA,IACZ;AAAA,IACA,UAAAC;AAAA,EAAA,GAEF,QACG;AACH,UAAM,CAAC,cAAc,eAAe,IAAIC,MAAAA,SAAsB,CAAA,CAAE;AAEhEC,UAAAA,UAAU,MAAM;AACd,YAAM,cAAc,MAAM,IAAI,CAAC,UAAU;AAAA,QACvC,GAAG;AAAA,QACH,IAAI,KAAK,MAAMC,KAAAA,GAAA;AAAA,MAAO,EACtB;AACF,sBAAgB,WAAW;AAAA,IAC7B,GAAG,CAAC,KAAK,CAAC;AAEV,UAAM,cAAcC,MAAAA;AAAAA,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;AAGXC,UAAAA,oBAAoB,KAAK,OAAO;AAAA,MAC9B,eAAe,MAAM;AACnB,qBAAa,QAAQ,CAAC,SAAS,YAAY,KAAK,EAAG,CAAC;AAAA,MACtD;AAAA,IAAA,EACA;AAEF,UAAM,qBAAqB;AAAA,MACzBL,UAAS;AAAA,MACTA,UAAS,QAAQ;AAAA,MACjB;AAAA,IAAA,EAEC,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,WACEM,2BAAAA;AAAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAW;AAAA,QACX,MAAK;AAAA,QACL,cAAW;AAAA,QACX,aAAU;AAAA,QACV,eAAY;AAAA,QAEZ,UAAAA,2BAAAA,IAAC,MAAA,EAAG,MAAK,QAAO,WAAWN,UAAS,MACjC,UAAA,aAAa,IAAI,CAAC,MAAM,UAAU;AACjC,gBAAM,eAAe,KAAK,YAAY;AACtC,gBAAM,oBAAoBA,UAAS,YAAY;AAE/C,iBACEM,2BAAAA,IAAC,MAAA,EAAiB,MAAK,YACrB,UAAAA,2BAAAA;AAAAA,YAAC;AAAA,YAAA;AAAA,cACC,IAAI,KAAK;AAAA,cACT,SAAS,KAAK;AAAA,cACd,MAAM,KAAK;AAAA,cACX,OAAO,KAAK;AAAA,cACZ,OAAO,KAAK;AAAA,cACZ,MAAM,KAAK,QAAQ;AAAA,cACnB,UAAU,KAAK;AAAA,cACf,QAAQ,KAAK;AAAA,cACb,SAAS;AAAA,cACT,SAAS,MAAM,YAAY,KAAK,EAAG;AAAA,cACnC,WAAW,KAAK;AAAA,cAChB,UAAU,KAAK;AAAA,cACf,UAAU;AAAA,cACV,WAAW;AAAA,cACX,YAAY;AAAA,cACZ,WAAWC,WAAAA;AAAAA,gBACTP,UAAS;AAAA,gBACT,KAAK;AAAA,gBACL;AAAA,cAAA;AAAA,cAEF,eAAa,KAAK,aAAa;AAAA,YAAA;AAAA,UAAA,EACjC,GAvBO,KAAK,EAwBd;AAAA,QAEJ,CAAC,EAAA,CACH;AAAA,MAAA;AAAA,IAAA;AAAA,EAGN;AACF;AAEA,cAAc,cAAc;ACvG5B,MAAM,WAAW;AAAA,EACf,WAAW;AAAA,EACX,MAAM;AAAA,EACN,WAAW;AAAA,EACX,cAAc;AAAA,EACd,SAAS;AAAA,EACT,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,aAAa;AACf;AAEA,MAAM,YAAY,MAAM;AAAA,EACtB,CAAC,OAAO,QACNM,2BAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACE,GAAG;AAAA,MACJ;AAAA,MACA,eAAeE,KAAAA;AAAAA,MACf;AAAA,IAAA;AAAA,EAAA;AAGN;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.cjs.js","sources":["../../src/components/Chip/ChipGroup/ChipGroupBase.tsx","../../src/components/Chip/ChipGroup/core/ChipGroup.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","import React from \"react\";\r\nimport ChipGroupBase from \"../ChipGroupBase\";\r\nimport Chip from \"../../core/Chip\";\r\nimport \"./ChipGroup.scss\";\r\nimport { ChipGroupProps, ChipGroupRef } from \"../ChipGroup.types\";\r\n\r\nconst classMap = {\r\n container: \"chip_group\",\r\n list: \"chip_group_list\",\r\n topCenter: \"chip_group_topCenter\",\r\n bottomCenter: \"chip_group_bottomCenter\",\r\n topLeft: \"chip_group_topLeft\",\r\n topRight: \"chip_group_topRight\",\r\n bottomLeft: \"chip_group_bottomLeft\",\r\n bottomRight: \"chip_group_bottomRight\",\r\n};\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={classMap}\r\n />\r\n )\r\n);\r\n\r\nexport default ChipGroup;\r\n"],"names":["forwardRef","classMap","useState","useEffect","uuidv4","useCallback","useImperativeHandle","jsx","combineClassNames","Chip"],"mappings":"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"}
@@ -8,8 +8,8 @@ import { I } from "./IconButton-B6cAP2hY.js";
8
8
  import { S } from "./STT-aXWWubSC.js";
9
9
  import { T as T2 } from "./TextInput-CtI8fsXR.js";
10
10
  import { T as T3 } from "./TextArea-B0it55lO.js";
11
- import { S as S2 } from "./Select-C4a_4B87.js";
12
- import { F, U } from "./Footer-bKgKgU6L.js";
11
+ import { S as S2 } from "./Select-_12yQ-yj.js";
12
+ import { F, U } from "./Footer-7ixaMvFc.js";
13
13
  import { F as F2 } from "./FileUpload-DxjQ2wnn.js";
14
14
  import { T as T4 } from "./Taginput-CrScreYL.js";
15
15
  import { R } from "./RadioButton-DTPBlw1t.js";
@@ -50,6 +50,7 @@ import { M as M4 } from "./MetricBox-D5Dl19d2.js";
50
50
  import { E } from "./EmptyState-Bd-es_rG.js";
51
51
  import { C as C4 } from "./CommandPalette-CHOC0Z2m.js";
52
52
  import { N as N2 } from "./NotificationCenter-Bp7AqnTg.js";
53
+ import { S as S7 } from "./Sidebar-z0mG5nn_.js";
53
54
  import { C as C5 } from "./Card-DKPk0zgQ.js";
54
55
  import { A as A2 } from "./Avatar-mhtrG5FT.js";
55
56
  const ChipGroupBase = forwardRef(
@@ -186,6 +187,7 @@ export {
186
187
  R2 as Rating,
187
188
  S as ScrollToTop,
188
189
  S2 as Select,
190
+ S7 as Sidebar,
189
191
  S4 as Skeleton,
190
192
  S3 as Slider,
191
193
  S5 as Spinner,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/components/Chip/ChipGroup/ChipGroupBase.tsx","../../src/components/Chip/ChipGroup/core/ChipGroup.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","import React from \"react\";\r\nimport ChipGroupBase from \"../ChipGroupBase\";\r\nimport Chip from \"../../core/Chip\";\r\nimport \"./ChipGroup.scss\";\r\nimport { ChipGroupProps, ChipGroupRef } from \"../ChipGroup.types\";\r\n\r\nconst classMap = {\r\n container: \"chip_group\",\r\n list: \"chip_group_list\",\r\n topCenter: \"chip_group_topCenter\",\r\n bottomCenter: \"chip_group_bottomCenter\",\r\n topLeft: \"chip_group_topLeft\",\r\n topRight: \"chip_group_topRight\",\r\n bottomLeft: \"chip_group_bottomLeft\",\r\n bottomRight: \"chip_group_bottomRight\",\r\n};\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={classMap}\r\n />\r\n )\r\n);\r\n\r\nexport default ChipGroup;\r\n"],"names":["classMap","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,UAAAA;AAAA,EAAA,GAEF,QACG;AACH,UAAM,CAAC,cAAc,eAAe,IAAI,SAAsB,CAAA,CAAE;AAEhE,cAAU,MAAM;AACd,YAAM,cAAc,MAAM,IAAI,CAAC,UAAU;AAAA,QACvC,GAAG;AAAA,QACH,IAAI,KAAK,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,CAAC,SAAS,YAAY,KAAK,EAAG,CAAC;AAAA,MACtD;AAAA,IAAA,EACA;AAEF,UAAM,qBAAqB;AAAA,MACzBD,UAAS;AAAA,MACTA,UAAS,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,WAAWA,UAAS,MACjC,UAAA,aAAa,IAAI,CAAC,MAAM,UAAU;AACjC,gBAAM,eAAe,KAAK,YAAY;AACtC,gBAAM,oBAAoBA,UAAS,YAAY;AAE/C,iBACE,oBAAC,MAAA,EAAiB,MAAK,YACrB,UAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,IAAI,KAAK;AAAA,cACT,SAAS,KAAK;AAAA,cACd,MAAM,KAAK;AAAA,cACX,OAAO,KAAK;AAAA,cACZ,OAAO,KAAK;AAAA,cACZ,MAAM,KAAK,QAAQ;AAAA,cACnB,UAAU,KAAK;AAAA,cACf,QAAQ,KAAK;AAAA,cACb,SAAS;AAAA,cACT,SAAS,MAAM,YAAY,KAAK,EAAG;AAAA,cACnC,WAAW,KAAK;AAAA,cAChB,UAAU,KAAK;AAAA,cACf,UAAU;AAAA,cACV,WAAW;AAAA,cACX,YAAY;AAAA,cACZ,WAAW;AAAA,gBACTA,UAAS;AAAA,gBACT,KAAK;AAAA,gBACL;AAAA,cAAA;AAAA,cAEF,eAAa,KAAK,aAAa;AAAA,YAAA;AAAA,UAAA,EACjC,GAvBO,KAAK,EAwBd;AAAA,QAEJ,CAAC,EAAA,CACH;AAAA,MAAA;AAAA,IAAA;AAAA,EAGN;AACF;AAEA,cAAc,cAAc;ACvG5B,MAAM,WAAW;AAAA,EACf,WAAW;AAAA,EACX,MAAM;AAAA,EACN,WAAW;AAAA,EACX,cAAc;AAAA,EACd,SAAS;AAAA,EACT,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,aAAa;AACf;AAEA,MAAM,YAAY,MAAM;AAAA,EACtB,CAAC,OAAO,QACN;AAAA,IAAC;AAAA,IAAA;AAAA,MACE,GAAG;AAAA,MACJ;AAAA,MACA,eAAe;AAAA,MACf;AAAA,IAAA;AAAA,EAAA;AAGN;"}
1
+ {"version":3,"file":"index.js","sources":["../../src/components/Chip/ChipGroup/ChipGroupBase.tsx","../../src/components/Chip/ChipGroup/core/ChipGroup.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","import React from \"react\";\r\nimport ChipGroupBase from \"../ChipGroupBase\";\r\nimport Chip from \"../../core/Chip\";\r\nimport \"./ChipGroup.scss\";\r\nimport { ChipGroupProps, ChipGroupRef } from \"../ChipGroup.types\";\r\n\r\nconst classMap = {\r\n container: \"chip_group\",\r\n list: \"chip_group_list\",\r\n topCenter: \"chip_group_topCenter\",\r\n bottomCenter: \"chip_group_bottomCenter\",\r\n topLeft: \"chip_group_topLeft\",\r\n topRight: \"chip_group_topRight\",\r\n bottomLeft: \"chip_group_bottomLeft\",\r\n bottomRight: \"chip_group_bottomRight\",\r\n};\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={classMap}\r\n />\r\n )\r\n);\r\n\r\nexport default ChipGroup;\r\n"],"names":["classMap","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,UAAAA;AAAA,EAAA,GAEF,QACG;AACH,UAAM,CAAC,cAAc,eAAe,IAAI,SAAsB,CAAA,CAAE;AAEhE,cAAU,MAAM;AACd,YAAM,cAAc,MAAM,IAAI,CAAC,UAAU;AAAA,QACvC,GAAG;AAAA,QACH,IAAI,KAAK,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,CAAC,SAAS,YAAY,KAAK,EAAG,CAAC;AAAA,MACtD;AAAA,IAAA,EACA;AAEF,UAAM,qBAAqB;AAAA,MACzBD,UAAS;AAAA,MACTA,UAAS,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,WAAWA,UAAS,MACjC,UAAA,aAAa,IAAI,CAAC,MAAM,UAAU;AACjC,gBAAM,eAAe,KAAK,YAAY;AACtC,gBAAM,oBAAoBA,UAAS,YAAY;AAE/C,iBACE,oBAAC,MAAA,EAAiB,MAAK,YACrB,UAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,IAAI,KAAK;AAAA,cACT,SAAS,KAAK;AAAA,cACd,MAAM,KAAK;AAAA,cACX,OAAO,KAAK;AAAA,cACZ,OAAO,KAAK;AAAA,cACZ,MAAM,KAAK,QAAQ;AAAA,cACnB,UAAU,KAAK;AAAA,cACf,QAAQ,KAAK;AAAA,cACb,SAAS;AAAA,cACT,SAAS,MAAM,YAAY,KAAK,EAAG;AAAA,cACnC,WAAW,KAAK;AAAA,cAChB,UAAU,KAAK;AAAA,cACf,UAAU;AAAA,cACV,WAAW;AAAA,cACX,YAAY;AAAA,cACZ,WAAW;AAAA,gBACTA,UAAS;AAAA,gBACT,KAAK;AAAA,gBACL;AAAA,cAAA;AAAA,cAEF,eAAa,KAAK,aAAa;AAAA,YAAA;AAAA,UAAA,EACjC,GAvBO,KAAK,EAwBd;AAAA,QAEJ,CAAC,EAAA,CACH;AAAA,MAAA;AAAA,IAAA;AAAA,EAGN;AACF;AAEA,cAAc,cAAc;ACvG5B,MAAM,WAAW;AAAA,EACf,WAAW;AAAA,EACX,MAAM;AAAA,EACN,WAAW;AAAA,EACX,cAAc;AAAA,EACd,SAAS;AAAA,EACT,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,aAAa;AACf;AAEA,MAAM,YAAY,MAAM;AAAA,EACtB,CAAC,OAAO,QACN;AAAA,IAAC;AAAA,IAAA;AAAA,MACE,GAAG;AAAA,MACJ;AAAA,MACA,eAAe;AAAA,MACf;AAAA,IAAA;AAAA,EAAA;AAGN;"}