boreal-ui 0.0.11 → 0.0.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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-D_-eBUqK.js → Footer-7ixaMvFc.js} +2 -2
- package/dist/core/{Footer-D_-eBUqK.js.map → Footer-7ixaMvFc.js.map} +1 -1
- package/dist/core/{Footer-DxYjXCde.cjs → Footer-Dc_CuIC1.cjs} +2 -2
- package/dist/core/{Footer-DxYjXCde.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-DhUEQ4W_.cjs → Select-CitauzQm.cjs} +3 -25
- package/dist/core/Select-CitauzQm.cjs.map +1 -0
- package/dist/core/{Select-BDwB-XRV.js → Select-_12yQ-yj.js} +3 -25
- 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 -211
- package/dist/core/index.cjs.js.map +1 -1
- package/dist/core/index.js +6 -215
- package/dist/core/index.js.map +1 -1
- package/dist/core/style.css +2454 -2454
- 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-C6gSCcdC.cjs → Footer-J0Tb7-n4.cjs} +2 -2
- package/dist/next/{Footer-C6gSCcdC.cjs.map → Footer-J0Tb7-n4.cjs.map} +1 -1
- package/dist/next/{Footer-BPjfubyG.js → Footer-bb_8EH_R.js} +2 -2
- package/dist/next/{Footer-BPjfubyG.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-BKprqV3i.cjs → Select-Bln5-seQ.cjs} +3 -25
- package/dist/next/Select-Bln5-seQ.cjs.map +1 -0
- package/dist/next/{Select-_C8mTVb1.js → Select-CdWyrGrV.js} +3 -25
- 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 +23 -297
- package/dist/next/index.cjs.js.map +1 -1
- package/dist/next/index.js +26 -303
- package/dist/next/index.js.map +1 -1
- package/dist/next/{NavBar-CLfsYv5E.js → navigation-DTwYCgCL.js} +3 -160
- package/dist/next/navigation-DTwYCgCL.js.map +1 -0
- package/dist/next/{NavBar-COPlmHzy.cjs → navigation-m012syo9.cjs} +1 -158
- package/dist/next/navigation-m012syo9.cjs.map +1 -0
- package/dist/next/style.css +2642 -2642
- package/package.json +1 -1
- package/dist/core/Select-BDwB-XRV.js.map +0 -1
- package/dist/core/Select-DhUEQ4W_.cjs.map +0 -1
- package/dist/next/NavBar-CLfsYv5E.js.map +0 -1
- package/dist/next/NavBar-COPlmHzy.cjs.map +0 -1
- package/dist/next/Select-BKprqV3i.cjs.map +0 -1
- package/dist/next/Select-_C8mTVb1.js.map +0 -1
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
const ChevronDownIcon = (props) => /* @__PURE__ */ jsx(
|
|
3
|
+
"svg",
|
|
4
|
+
{
|
|
5
|
+
width: "24px",
|
|
6
|
+
height: "24px",
|
|
7
|
+
viewBox: "0 0 24 24",
|
|
8
|
+
strokeWidth: "1.5",
|
|
9
|
+
fill: "none",
|
|
10
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
11
|
+
color: "currentColor",
|
|
12
|
+
...props,
|
|
13
|
+
children: /* @__PURE__ */ jsx(
|
|
14
|
+
"path",
|
|
15
|
+
{
|
|
16
|
+
fillRule: "evenodd",
|
|
17
|
+
clipRule: "evenodd",
|
|
18
|
+
d: "M5.30711 8.71299C5.4232 8.43273 5.69668 8.25 6.00002 8.25H18C18.3034 8.25 18.5768 8.43273 18.6929 8.71299C18.809 8.99324 18.7449 9.31583 18.5304 9.53033L12.5304 15.5303C12.2375 15.8232 11.7626 15.8232 11.4697 15.5303L5.46969 9.53033C5.25519 9.31583 5.19103 8.99324 5.30711 8.71299Z",
|
|
19
|
+
fill: "currentColor"
|
|
20
|
+
}
|
|
21
|
+
)
|
|
22
|
+
}
|
|
23
|
+
);
|
|
24
|
+
export {
|
|
25
|
+
ChevronDownIcon as C
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=CheveronDownIcon-Cn9jj-ku.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CheveronDownIcon-Cn9jj-ku.js","sources":["../../src/Icons/CheveronDownIcon.tsx"],"sourcesContent":["const ChevronDownIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\r\n <svg\r\n width=\"24px\"\r\n height=\"24px\"\r\n viewBox=\"0 0 24 24\"\r\n strokeWidth=\"1.5\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n color=\"currentColor\"\r\n {...props}\r\n >\r\n <path\r\n fillRule=\"evenodd\"\r\n clipRule=\"evenodd\"\r\n d=\"M5.30711 8.71299C5.4232 8.43273 5.69668 8.25 6.00002 8.25H18C18.3034 8.25 18.5768 8.43273 18.6929 8.71299C18.809 8.99324 18.7449 9.31583 18.5304 9.53033L12.5304 15.5303C12.2375 15.8232 11.7626 15.8232 11.4697 15.5303L5.46969 9.53033C5.25519 9.31583 5.19103 8.99324 5.30711 8.71299Z\"\r\n fill=\"currentColor\"\r\n ></path>\r\n </svg>\r\n);\r\n\r\nexport default ChevronDownIcon;\r\n"],"names":[],"mappings":";AAAA,MAAM,kBAA2D,CAAC,UAChE;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,OAAM;AAAA,IACN,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,aAAY;AAAA,IACZ,MAAK;AAAA,IACL,OAAM;AAAA,IACN,OAAM;AAAA,IACL,GAAG;AAAA,IAEJ,UAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,UAAS;AAAA,QACT,UAAS;AAAA,QACT,GAAE;AAAA,QACF,MAAK;AAAA,MAAA;AAAA,IAAA;AAAA,EACN;AACH;"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
const require$$2 = require("react/jsx-runtime");
|
|
3
|
+
const ChevronDownIcon = (props) => /* @__PURE__ */ require$$2.jsx(
|
|
4
|
+
"svg",
|
|
5
|
+
{
|
|
6
|
+
width: "24px",
|
|
7
|
+
height: "24px",
|
|
8
|
+
viewBox: "0 0 24 24",
|
|
9
|
+
strokeWidth: "1.5",
|
|
10
|
+
fill: "none",
|
|
11
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
12
|
+
color: "currentColor",
|
|
13
|
+
...props,
|
|
14
|
+
children: /* @__PURE__ */ require$$2.jsx(
|
|
15
|
+
"path",
|
|
16
|
+
{
|
|
17
|
+
fillRule: "evenodd",
|
|
18
|
+
clipRule: "evenodd",
|
|
19
|
+
d: "M5.30711 8.71299C5.4232 8.43273 5.69668 8.25 6.00002 8.25H18C18.3034 8.25 18.5768 8.43273 18.6929 8.71299C18.809 8.99324 18.7449 9.31583 18.5304 9.53033L12.5304 15.5303C12.2375 15.8232 11.7626 15.8232 11.4697 15.5303L5.46969 9.53033C5.25519 9.31583 5.19103 8.99324 5.30711 8.71299Z",
|
|
20
|
+
fill: "currentColor"
|
|
21
|
+
}
|
|
22
|
+
)
|
|
23
|
+
}
|
|
24
|
+
);
|
|
25
|
+
exports.ChevronDownIcon = ChevronDownIcon;
|
|
26
|
+
//# sourceMappingURL=CheveronDownIcon-CyoOZUNY.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CheveronDownIcon-CyoOZUNY.cjs","sources":["../../src/Icons/CheveronDownIcon.tsx"],"sourcesContent":["const ChevronDownIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\r\n <svg\r\n width=\"24px\"\r\n height=\"24px\"\r\n viewBox=\"0 0 24 24\"\r\n strokeWidth=\"1.5\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n color=\"currentColor\"\r\n {...props}\r\n >\r\n <path\r\n fillRule=\"evenodd\"\r\n clipRule=\"evenodd\"\r\n d=\"M5.30711 8.71299C5.4232 8.43273 5.69668 8.25 6.00002 8.25H18C18.3034 8.25 18.5768 8.43273 18.6929 8.71299C18.809 8.99324 18.7449 9.31583 18.5304 9.53033L12.5304 15.5303C12.2375 15.8232 11.7626 15.8232 11.4697 15.5303L5.46969 9.53033C5.25519 9.31583 5.19103 8.99324 5.30711 8.71299Z\"\r\n fill=\"currentColor\"\r\n ></path>\r\n </svg>\r\n);\r\n\r\nexport default ChevronDownIcon;\r\n"],"names":["jsx"],"mappings":";;AAAA,MAAM,kBAA2D,CAAC,UAChEA,2BAAAA;AAAAA,EAAC;AAAA,EAAA;AAAA,IACC,OAAM;AAAA,IACN,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,aAAY;AAAA,IACZ,MAAK;AAAA,IACL,OAAM;AAAA,IACN,OAAM;AAAA,IACL,GAAG;AAAA,IAEJ,UAAAA,2BAAAA;AAAAA,MAAC;AAAA,MAAA;AAAA,QACC,UAAS;AAAA,QACT,UAAS;AAAA,QACT,GAAE;AAAA,QACF,MAAK;AAAA,MAAA;AAAA,IAAA;AAAA,EACN;AACH;;"}
|
|
@@ -7,7 +7,7 @@ const capitalize = require("./capitalize-DoV-nOmN.cjs");
|
|
|
7
7
|
const IconButton = require("./IconButton-CNzF48hu.cjs");
|
|
8
8
|
const registerColorSheme = require("./registerColorSheme-nhYu5hbY.cjs");
|
|
9
9
|
const ThemeContext = require("./ThemeContext-BNR3_OIq.cjs");
|
|
10
|
-
const Select = require("./Select-
|
|
10
|
+
const Select = require("./Select-Bln5-seQ.cjs");
|
|
11
11
|
const link = require("./link-hxAaLm0Q.cjs");
|
|
12
12
|
const image = require("./image-VX9Ty9NQ.cjs");
|
|
13
13
|
const UserThemeSettings = ({
|
|
@@ -255,4 +255,4 @@ const Footer = (props) => {
|
|
|
255
255
|
};
|
|
256
256
|
exports.Footer = Footer;
|
|
257
257
|
exports.UserThemeSettings = UserThemeSettings;
|
|
258
|
-
//# sourceMappingURL=Footer-
|
|
258
|
+
//# sourceMappingURL=Footer-J0Tb7-n4.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Footer-C6gSCcdC.cjs","sources":["../../src/components/Select/ThemeSelect/next/ThemeSelect.tsx","../../src/components/Footer/FooterBase.tsx","../../src/components/Footer/next/Footer.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport React, { useContext } from \"react\";\r\nimport { getAllColorSchemes } from \"../../../../styles/colorSchemeRegistry\";\r\nimport { Select } from \"@/index.next\";\r\nimport { ThemeContext } from \"../../../../context/ThemeContext\";\r\nimport { RoundingType, ShadowType, StateType, ThemeType } from \"@/types/types\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultTheme,\r\n} from \"@/config/boreal-style-config\";\r\n\r\ninterface ThemeSelectProps {\r\n theme?: ThemeType;\r\n shadow?: ShadowType;\r\n rounding?: RoundingType;\r\n \"data-testid\"?: string;\r\n state?: StateType;\r\n}\r\n\r\nconst UserThemeSettings: React.FC<ThemeSelectProps> = ({\r\n theme = getDefaultTheme(),\r\n shadow = getDefaultShadow(),\r\n rounding = getDefaultRounding(),\r\n state = \"\",\r\n \"data-testid\": testId = \"theme-select\",\r\n}) => {\r\n const themeContext = useContext(ThemeContext);\r\n\r\n if (!themeContext) {\r\n throw new Error(\r\n \"ThemeContext is undefined. Make sure to wrap this component with ThemeProvider.\"\r\n );\r\n }\r\n\r\n const { selectedScheme, setSelectedScheme } = themeContext;\r\n const allSchemes = getAllColorSchemes();\r\n\r\n const options = allSchemes.map((scheme, index) => ({\r\n value: index.toString(),\r\n label: scheme.name,\r\n }));\r\n\r\n return (\r\n <div className={`control-container`}>\r\n <Select\r\n theme={theme}\r\n state={state}\r\n shadow={shadow}\r\n rounding={rounding}\r\n options={options}\r\n data-testid={`${testId}-select`}\r\n value={selectedScheme.toString()}\r\n onChange={(value: string | number) =>\r\n setSelectedScheme(parseInt(value as string, 10))\r\n }\r\n ariaLabel=\"Select Theme\"\r\n />\r\n </div>\r\n );\r\n};\r\n\r\nexport default UserThemeSettings;\r\n","import React, { JSX, useMemo } from \"react\";\r\nimport { FooterProps } from \"./Footer.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { getDefaultTheme } from \"../../config/boreal-style-config\";\r\nimport { capitalize } from \"@/utils/capitalize\";\r\n\r\nexport interface BaseFooterProps extends FooterProps {\r\n IconButton: React.ComponentType<any>;\r\n ThemeSelect: React.ComponentType<any>;\r\n ImageComponent?: React.ElementType;\r\n classMap: Record<string, string>;\r\n LinkWrapper?: (props: {\r\n href: string;\r\n children: React.ReactNode;\r\n }) => JSX.Element;\r\n}\r\n\r\nconst FooterBase: React.FC<BaseFooterProps> = ({\r\n theme = getDefaultTheme(),\r\n attachment = \"static\",\r\n shadow = \"none\",\r\n rounding = \"none\",\r\n className = \"\",\r\n \"data-testid\": testId = \"footer\",\r\n copyright,\r\n links = [],\r\n logo,\r\n socialLinks = [],\r\n showThemeSelect = false,\r\n IconButton,\r\n ImageComponent = \"img\",\r\n ThemeSelect,\r\n classMap,\r\n LinkWrapper = ({ href, children }) => <a href={href}>{children}</a>,\r\n}) => {\r\n const footerClass = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.footer,\r\n classMap[theme],\r\n classMap[`shadow${capitalize(shadow)}`],\r\n classMap[`round${capitalize(rounding)}`],\r\n classMap[`attachment${capitalize(attachment)}`],\r\n className\r\n ),\r\n [classMap, theme, className]\r\n );\r\n return (\r\n <footer\r\n className={footerClass}\r\n role=\"contentinfo\"\r\n aria-label=\"Footer\"\r\n data-testid={testId}\r\n >\r\n <div className={classMap.content}>\r\n <div className={classMap.left} data-testid={`${testId}-left`}>\r\n {logo &&\r\n (typeof logo === \"string\" ||\r\n (typeof logo === \"object\" && \"src\" in logo)) ? (\r\n <ImageComponent\r\n className={classMap.logo}\r\n aria-label=\"Logo\"\r\n role=\"img\"\r\n data-testid={`${testId}-logo`}\r\n loading=\"lazy\"\r\n src={logo}\r\n alt=\"Logo\"\r\n height={20}\r\n width={20}\r\n />\r\n ) : (\r\n <span\r\n className={classMap.logo}\r\n aria-label=\"Logo\"\r\n role=\"img\"\r\n data-testid={`${testId}-logo`}\r\n >\r\n {logo}\r\n </span>\r\n )}\r\n\r\n {copyright && (\r\n <div className={classMap.left} data-testid={`${testId}-copyright`}>\r\n <p>{copyright}</p>\r\n </div>\r\n )}\r\n </div>\r\n\r\n {links.length > 0 && (\r\n <nav\r\n className={classMap.links}\r\n aria-label=\"Footer site links\"\r\n data-testid={`${testId}-nav`}\r\n >\r\n <ul role=\"list\">\r\n {links.map((link, i) => (\r\n <li key={i}>\r\n <LinkWrapper\r\n href={link.href}\r\n children={\r\n <span\r\n className={classMap.link}\r\n data-testid={`${testId}-link-${link.label.toLowerCase().replace(/\\s+/g, \"-\")}`}\r\n >\r\n {link.label}\r\n </span>\r\n }\r\n />\r\n </li>\r\n ))}\r\n </ul>\r\n </nav>\r\n )}\r\n\r\n {showThemeSelect && (\r\n <div\r\n className={classMap.themeToggle}\r\n data-testid={`${testId}-theme-select`}\r\n aria-label=\"Theme selector container\"\r\n >\r\n <ThemeSelect theme={\"clear\"} shadow={\"none\"} />\r\n </div>\r\n )}\r\n\r\n {socialLinks.length > 0 && (\r\n <div\r\n className={classMap.social}\r\n aria-label=\"Social media\"\r\n role=\"navigation\"\r\n data-testid={`${testId}-social`}\r\n >\r\n {socialLinks.map((social, index) => (\r\n <IconButton\r\n key={index}\r\n icon={social.icon}\r\n href={social.href}\r\n isExternal\r\n shadow=\"none\"\r\n target=\"_blank\"\r\n rel=\"noopener noreferrer\"\r\n ariaLabel={social.title}\r\n title={social.title}\r\n theme=\"clear\"\r\n data-testid={`${testId}-social-${social.title\r\n .toLowerCase()\r\n .replace(/\\s+/g, \"-\")}`}\r\n />\r\n ))}\r\n </div>\r\n )}\r\n </div>\r\n </footer>\r\n );\r\n};\r\n\r\nexport default FooterBase;\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport FooterBase from \"../FooterBase\";\r\nimport { FooterProps } from \"../Footer.types\";\r\nimport { IconButton, ThemeSelect } from \"@/index.next\";\r\nimport Link from \"next/link\";\r\nimport styles from \"./Footer.module.scss\";\r\nimport Image from \"next/image\";\r\n\r\nconst Footer: React.FC<FooterProps> = (props) => {\r\n return (\r\n <FooterBase\r\n {...props}\r\n IconButton={IconButton}\r\n ImageComponent={Image}\r\n ThemeSelect={ThemeSelect}\r\n LinkWrapper={({ href, children }) => (\r\n <Link href={href} passHref legacyBehavior>\r\n <a>{children}</a>\r\n </Link>\r\n )}\r\n classMap={styles}\r\n />\r\n );\r\n};\r\n\r\nexport default Footer;\r\n"],"names":["getDefaultTheme","getDefaultShadow","getDefaultRounding","useContext","ThemeContext","getAllColorSchemes","jsx","Select","links","logo","IconButton","useMemo","combineClassNames","capitalize","jsxs","link","social","Image","ThemeSelect","Link"],"mappings":";;;;;;;;;;;;AAqBA,MAAM,oBAAgD,CAAC;AAAA,EACrD,QAAQA,kBAAAA,gBAAA;AAAA,EACR,SAASC,kBAAAA,iBAAA;AAAA,EACT,WAAWC,kBAAAA,mBAAA;AAAA,EACX,QAAQ;AAAA,EACR,eAAe,SAAS;AAC1B,MAAM;AACJ,QAAM,eAAeC,MAAAA,WAAWC,yBAAY;AAE5C,MAAI,CAAC,cAAc;AACjB,UAAM,IAAI;AAAA,MACR;AAAA,IAAA;AAAA,EAEJ;AAEA,QAAM,EAAE,gBAAgB,kBAAA,IAAsB;AAC9C,QAAM,aAAaC,mBAAAA,mBAAA;AAEnB,QAAM,UAAU,WAAW,IAAI,CAAC,QAAQ,WAAW;AAAA,IACjD,OAAO,MAAM,SAAA;AAAA,IACb,OAAO,OAAO;AAAA,EAAA,EACd;AAEF,SACEC,2BAAAA,IAAC,OAAA,EAAI,WAAW,qBACd,UAAAA,2BAAAA;AAAAA,IAACC,OAAAA;AAAAA,IAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,eAAa,GAAG,MAAM;AAAA,MACtB,OAAO,eAAe,SAAA;AAAA,MACtB,UAAU,CAAC,UACT,kBAAkB,SAAS,OAAiB,EAAE,CAAC;AAAA,MAEjD,WAAU;AAAA,IAAA;AAAA,EAAA,GAEd;AAEJ;AC5CA,MAAM,aAAwC,CAAC;AAAA,EAC7C,QAAQP,kBAAAA,gBAAA;AAAA,EACR,aAAa;AAAA,EACb,SAAS;AAAA,EACT,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,eAAe,SAAS;AAAA,EACxB;AAAA,EACA,OAAAQ,SAAQ,CAAA;AAAA,EACR,MAAAC;AAAA,EACA,cAAc,CAAA;AAAA,EACd,kBAAkB;AAAA,EAClB,YAAAC;AAAA,EACA,iBAAiB;AAAA,EACjB;AAAA,EACA;AAAA,EACA,cAAc,CAAC,EAAE,MAAM,eAAeJ,2BAAAA,IAAC,KAAA,EAAE,MAAa,SAAA,CAAS;AACjE,MAAM;AACJ,QAAM,cAAcK,MAAAA;AAAAA,IAClB,MACEC,WAAAA;AAAAA,MACE,SAAS;AAAA,MACT,SAAS,KAAK;AAAA,MACd,SAAS,SAASC,WAAAA,WAAW,MAAM,CAAC,EAAE;AAAA,MACtC,SAAS,QAAQA,WAAAA,WAAW,QAAQ,CAAC,EAAE;AAAA,MACvC,SAAS,aAAaA,WAAAA,WAAW,UAAU,CAAC,EAAE;AAAA,MAC9C;AAAA,IAAA;AAAA,IAEJ,CAAC,UAAU,OAAO,SAAS;AAAA,EAAA;AAE7B,SACEP,2BAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW;AAAA,MACX,MAAK;AAAA,MACL,cAAW;AAAA,MACX,eAAa;AAAA,MAEb,UAAAQ,2BAAAA,KAAC,OAAA,EAAI,WAAW,SAAS,SACvB,UAAA;AAAA,QAAAA,2BAAAA,KAAC,SAAI,WAAW,SAAS,MAAM,eAAa,GAAG,MAAM,SAClD,UAAA;AAAA,UAAAL,UACA,OAAOA,UAAS,YACd,OAAOA,UAAS,YAAY,SAASA,SACtCH,2BAAAA;AAAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAW,SAAS;AAAA,cACpB,cAAW;AAAA,cACX,MAAK;AAAA,cACL,eAAa,GAAG,MAAM;AAAA,cACtB,SAAQ;AAAA,cACR,KAAKG;AAAA,cACL,KAAI;AAAA,cACJ,QAAQ;AAAA,cACR,OAAO;AAAA,YAAA;AAAA,UAAA,IAGTH,2BAAAA;AAAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAW,SAAS;AAAA,cACpB,cAAW;AAAA,cACX,MAAK;AAAA,cACL,eAAa,GAAG,MAAM;AAAA,cAErB,UAAAG;AAAA,YAAA;AAAA,UAAA;AAAA,UAIJ,aACCH,2BAAAA,IAAC,OAAA,EAAI,WAAW,SAAS,MAAM,eAAa,GAAG,MAAM,cACnD,UAAAA,2BAAAA,IAAC,KAAA,EAAG,qBAAU,EAAA,CAChB;AAAA,QAAA,GAEJ;AAAA,QAECE,OAAM,SAAS,KACdF,2BAAAA;AAAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAW,SAAS;AAAA,YACpB,cAAW;AAAA,YACX,eAAa,GAAG,MAAM;AAAA,YAEtB,UAAAA,2BAAAA,IAAC,MAAA,EAAG,MAAK,QACN,UAAAE,OAAM,IAAI,CAACO,OAAM,MAChBT,2BAAAA,IAAC,MAAA,EACC,UAAAA,2BAAAA;AAAAA,cAAC;AAAA,cAAA;AAAA,gBACC,MAAMS,MAAK;AAAA,gBACX,UACET,2BAAAA;AAAAA,kBAAC;AAAA,kBAAA;AAAA,oBACC,WAAW,SAAS;AAAA,oBACpB,eAAa,GAAG,MAAM,SAASS,MAAK,MAAM,YAAA,EAAc,QAAQ,QAAQ,GAAG,CAAC;AAAA,oBAE3E,UAAAA,MAAK;AAAA,kBAAA;AAAA,gBAAA;AAAA,cACR;AAAA,YAAA,EAEJ,GAXO,CAYT,CACD,EAAA,CACH;AAAA,UAAA;AAAA,QAAA;AAAA,QAIH,mBACCT,2BAAAA;AAAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAW,SAAS;AAAA,YACpB,eAAa,GAAG,MAAM;AAAA,YACtB,cAAW;AAAA,YAEX,UAAAA,2BAAAA,IAAC,aAAA,EAAY,OAAO,SAAS,QAAQ,OAAA,CAAQ;AAAA,UAAA;AAAA,QAAA;AAAA,QAIhD,YAAY,SAAS,KACpBA,2BAAAA;AAAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAW,SAAS;AAAA,YACpB,cAAW;AAAA,YACX,MAAK;AAAA,YACL,eAAa,GAAG,MAAM;AAAA,YAErB,UAAA,YAAY,IAAI,CAACU,SAAQ,UACxBV,2BAAAA;AAAAA,cAACI;AAAA,cAAA;AAAA,gBAEC,MAAMM,QAAO;AAAA,gBACb,MAAMA,QAAO;AAAA,gBACb,YAAU;AAAA,gBACV,QAAO;AAAA,gBACP,QAAO;AAAA,gBACP,KAAI;AAAA,gBACJ,WAAWA,QAAO;AAAA,gBAClB,OAAOA,QAAO;AAAA,gBACd,OAAM;AAAA,gBACN,eAAa,GAAG,MAAM,WAAWA,QAAO,MACrC,cACA,QAAQ,QAAQ,GAAG,CAAC;AAAA,cAAA;AAAA,cAZlB;AAAA,YAAA,CAcR;AAAA,UAAA;AAAA,QAAA;AAAA,MACH,EAAA,CAEJ;AAAA,IAAA;AAAA,EAAA;AAGN;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/IA,MAAM,SAAgC,CAAC,UAAU;AAC/C,SACEV,2BAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACE,GAAG;AAAA,MAAA,YACJI,WAAAA;AAAAA,MACA,gBAAgBO,MAAAA;AAAAA,MAAA,aAChBC;AAAAA,MACA,aAAa,CAAC,EAAE,MAAM,SAAA,MACpBZ,+BAACa,KAAAA,MAAA,EAAK,MAAY,UAAQ,MAAC,gBAAc,MACvC,UAAAb,2BAAAA,IAAC,KAAA,EAAG,UAAS,GACf;AAAA,MAEF,UAAU;AAAA,IAAA;AAAA,EAAA;AAGhB;;;"}
|
|
1
|
+
{"version":3,"file":"Footer-J0Tb7-n4.cjs","sources":["../../src/components/Select/ThemeSelect/next/ThemeSelect.tsx","../../src/components/Footer/FooterBase.tsx","../../src/components/Footer/next/Footer.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport React, { useContext } from \"react\";\r\nimport { getAllColorSchemes } from \"../../../../styles/colorSchemeRegistry\";\r\nimport { Select } from \"@/index.next\";\r\nimport { ThemeContext } from \"../../../../context/ThemeContext\";\r\nimport { RoundingType, ShadowType, StateType, ThemeType } from \"@/types/types\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultTheme,\r\n} from \"@/config/boreal-style-config\";\r\n\r\ninterface ThemeSelectProps {\r\n theme?: ThemeType;\r\n shadow?: ShadowType;\r\n rounding?: RoundingType;\r\n \"data-testid\"?: string;\r\n state?: StateType;\r\n}\r\n\r\nconst UserThemeSettings: React.FC<ThemeSelectProps> = ({\r\n theme = getDefaultTheme(),\r\n shadow = getDefaultShadow(),\r\n rounding = getDefaultRounding(),\r\n state = \"\",\r\n \"data-testid\": testId = \"theme-select\",\r\n}) => {\r\n const themeContext = useContext(ThemeContext);\r\n\r\n if (!themeContext) {\r\n throw new Error(\r\n \"ThemeContext is undefined. Make sure to wrap this component with ThemeProvider.\"\r\n );\r\n }\r\n\r\n const { selectedScheme, setSelectedScheme } = themeContext;\r\n const allSchemes = getAllColorSchemes();\r\n\r\n const options = allSchemes.map((scheme, index) => ({\r\n value: index.toString(),\r\n label: scheme.name,\r\n }));\r\n\r\n return (\r\n <div className={`control-container`}>\r\n <Select\r\n theme={theme}\r\n state={state}\r\n shadow={shadow}\r\n rounding={rounding}\r\n options={options}\r\n data-testid={`${testId}-select`}\r\n value={selectedScheme.toString()}\r\n onChange={(value: string | number) =>\r\n setSelectedScheme(parseInt(value as string, 10))\r\n }\r\n ariaLabel=\"Select Theme\"\r\n />\r\n </div>\r\n );\r\n};\r\n\r\nexport default UserThemeSettings;\r\n","import React, { JSX, useMemo } from \"react\";\r\nimport { FooterProps } from \"./Footer.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { getDefaultTheme } from \"../../config/boreal-style-config\";\r\nimport { capitalize } from \"@/utils/capitalize\";\r\n\r\nexport interface BaseFooterProps extends FooterProps {\r\n IconButton: React.ComponentType<any>;\r\n ThemeSelect: React.ComponentType<any>;\r\n ImageComponent?: React.ElementType;\r\n classMap: Record<string, string>;\r\n LinkWrapper?: (props: {\r\n href: string;\r\n children: React.ReactNode;\r\n }) => JSX.Element;\r\n}\r\n\r\nconst FooterBase: React.FC<BaseFooterProps> = ({\r\n theme = getDefaultTheme(),\r\n attachment = \"static\",\r\n shadow = \"none\",\r\n rounding = \"none\",\r\n className = \"\",\r\n \"data-testid\": testId = \"footer\",\r\n copyright,\r\n links = [],\r\n logo,\r\n socialLinks = [],\r\n showThemeSelect = false,\r\n IconButton,\r\n ImageComponent = \"img\",\r\n ThemeSelect,\r\n classMap,\r\n LinkWrapper = ({ href, children }) => <a href={href}>{children}</a>,\r\n}) => {\r\n const footerClass = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.footer,\r\n classMap[theme],\r\n classMap[`shadow${capitalize(shadow)}`],\r\n classMap[`round${capitalize(rounding)}`],\r\n classMap[`attachment${capitalize(attachment)}`],\r\n className\r\n ),\r\n [classMap, theme, className]\r\n );\r\n return (\r\n <footer\r\n className={footerClass}\r\n role=\"contentinfo\"\r\n aria-label=\"Footer\"\r\n data-testid={testId}\r\n >\r\n <div className={classMap.content}>\r\n <div className={classMap.left} data-testid={`${testId}-left`}>\r\n {logo &&\r\n (typeof logo === \"string\" ||\r\n (typeof logo === \"object\" && \"src\" in logo)) ? (\r\n <ImageComponent\r\n className={classMap.logo}\r\n aria-label=\"Logo\"\r\n role=\"img\"\r\n data-testid={`${testId}-logo`}\r\n loading=\"lazy\"\r\n src={logo}\r\n alt=\"Logo\"\r\n height={20}\r\n width={20}\r\n />\r\n ) : (\r\n <span\r\n className={classMap.logo}\r\n aria-label=\"Logo\"\r\n role=\"img\"\r\n data-testid={`${testId}-logo`}\r\n >\r\n {logo}\r\n </span>\r\n )}\r\n\r\n {copyright && (\r\n <div className={classMap.left} data-testid={`${testId}-copyright`}>\r\n <p>{copyright}</p>\r\n </div>\r\n )}\r\n </div>\r\n\r\n {links.length > 0 && (\r\n <nav\r\n className={classMap.links}\r\n aria-label=\"Footer site links\"\r\n data-testid={`${testId}-nav`}\r\n >\r\n <ul role=\"list\">\r\n {links.map((link, i) => (\r\n <li key={i}>\r\n <LinkWrapper\r\n href={link.href}\r\n children={\r\n <span\r\n className={classMap.link}\r\n data-testid={`${testId}-link-${link.label.toLowerCase().replace(/\\s+/g, \"-\")}`}\r\n >\r\n {link.label}\r\n </span>\r\n }\r\n />\r\n </li>\r\n ))}\r\n </ul>\r\n </nav>\r\n )}\r\n\r\n {showThemeSelect && (\r\n <div\r\n className={classMap.themeToggle}\r\n data-testid={`${testId}-theme-select`}\r\n aria-label=\"Theme selector container\"\r\n >\r\n <ThemeSelect theme={\"clear\"} shadow={\"none\"} />\r\n </div>\r\n )}\r\n\r\n {socialLinks.length > 0 && (\r\n <div\r\n className={classMap.social}\r\n aria-label=\"Social media\"\r\n role=\"navigation\"\r\n data-testid={`${testId}-social`}\r\n >\r\n {socialLinks.map((social, index) => (\r\n <IconButton\r\n key={index}\r\n icon={social.icon}\r\n href={social.href}\r\n isExternal\r\n shadow=\"none\"\r\n target=\"_blank\"\r\n rel=\"noopener noreferrer\"\r\n ariaLabel={social.title}\r\n title={social.title}\r\n theme=\"clear\"\r\n data-testid={`${testId}-social-${social.title\r\n .toLowerCase()\r\n .replace(/\\s+/g, \"-\")}`}\r\n />\r\n ))}\r\n </div>\r\n )}\r\n </div>\r\n </footer>\r\n );\r\n};\r\n\r\nexport default FooterBase;\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport FooterBase from \"../FooterBase\";\r\nimport { FooterProps } from \"../Footer.types\";\r\nimport { IconButton, ThemeSelect } from \"@/index.next\";\r\nimport Link from \"next/link\";\r\nimport styles from \"./Footer.module.scss\";\r\nimport Image from \"next/image\";\r\n\r\nconst Footer: React.FC<FooterProps> = (props) => {\r\n return (\r\n <FooterBase\r\n {...props}\r\n IconButton={IconButton}\r\n ImageComponent={Image}\r\n ThemeSelect={ThemeSelect}\r\n LinkWrapper={({ href, children }) => (\r\n <Link href={href} passHref legacyBehavior>\r\n <a>{children}</a>\r\n </Link>\r\n )}\r\n classMap={styles}\r\n />\r\n );\r\n};\r\n\r\nexport default Footer;\r\n"],"names":["getDefaultTheme","getDefaultShadow","getDefaultRounding","useContext","ThemeContext","getAllColorSchemes","jsx","Select","links","logo","IconButton","useMemo","combineClassNames","capitalize","jsxs","link","social","Image","ThemeSelect","Link"],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@ import { c as capitalize } from "./capitalize-C0TSQSPh.js";
|
|
|
6
6
|
import { I as IconButton } from "./IconButton-DFrFh0kg.js";
|
|
7
7
|
import { g as getAllColorSchemes } from "./registerColorSheme-BPX0H7hl.js";
|
|
8
8
|
import { a as ThemeContext } from "./ThemeContext-Bo0vLczy.js";
|
|
9
|
-
import { S as Select } from "./Select-
|
|
9
|
+
import { S as Select } from "./Select-CdWyrGrV.js";
|
|
10
10
|
import { L as Link } from "./link-Bik5xH00.js";
|
|
11
11
|
import { I as Image } from "./image-CEz9QtOW.js";
|
|
12
12
|
const UserThemeSettings = ({
|
|
@@ -256,4 +256,4 @@ export {
|
|
|
256
256
|
Footer as F,
|
|
257
257
|
UserThemeSettings as U
|
|
258
258
|
};
|
|
259
|
-
//# sourceMappingURL=Footer-
|
|
259
|
+
//# sourceMappingURL=Footer-bb_8EH_R.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Footer-BPjfubyG.js","sources":["../../src/components/Select/ThemeSelect/next/ThemeSelect.tsx","../../src/components/Footer/FooterBase.tsx","../../src/components/Footer/next/Footer.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport React, { useContext } from \"react\";\r\nimport { getAllColorSchemes } from \"../../../../styles/colorSchemeRegistry\";\r\nimport { Select } from \"@/index.next\";\r\nimport { ThemeContext } from \"../../../../context/ThemeContext\";\r\nimport { RoundingType, ShadowType, StateType, ThemeType } from \"@/types/types\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultTheme,\r\n} from \"@/config/boreal-style-config\";\r\n\r\ninterface ThemeSelectProps {\r\n theme?: ThemeType;\r\n shadow?: ShadowType;\r\n rounding?: RoundingType;\r\n \"data-testid\"?: string;\r\n state?: StateType;\r\n}\r\n\r\nconst UserThemeSettings: React.FC<ThemeSelectProps> = ({\r\n theme = getDefaultTheme(),\r\n shadow = getDefaultShadow(),\r\n rounding = getDefaultRounding(),\r\n state = \"\",\r\n \"data-testid\": testId = \"theme-select\",\r\n}) => {\r\n const themeContext = useContext(ThemeContext);\r\n\r\n if (!themeContext) {\r\n throw new Error(\r\n \"ThemeContext is undefined. Make sure to wrap this component with ThemeProvider.\"\r\n );\r\n }\r\n\r\n const { selectedScheme, setSelectedScheme } = themeContext;\r\n const allSchemes = getAllColorSchemes();\r\n\r\n const options = allSchemes.map((scheme, index) => ({\r\n value: index.toString(),\r\n label: scheme.name,\r\n }));\r\n\r\n return (\r\n <div className={`control-container`}>\r\n <Select\r\n theme={theme}\r\n state={state}\r\n shadow={shadow}\r\n rounding={rounding}\r\n options={options}\r\n data-testid={`${testId}-select`}\r\n value={selectedScheme.toString()}\r\n onChange={(value: string | number) =>\r\n setSelectedScheme(parseInt(value as string, 10))\r\n }\r\n ariaLabel=\"Select Theme\"\r\n />\r\n </div>\r\n );\r\n};\r\n\r\nexport default UserThemeSettings;\r\n","import React, { JSX, useMemo } from \"react\";\r\nimport { FooterProps } from \"./Footer.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { getDefaultTheme } from \"../../config/boreal-style-config\";\r\nimport { capitalize } from \"@/utils/capitalize\";\r\n\r\nexport interface BaseFooterProps extends FooterProps {\r\n IconButton: React.ComponentType<any>;\r\n ThemeSelect: React.ComponentType<any>;\r\n ImageComponent?: React.ElementType;\r\n classMap: Record<string, string>;\r\n LinkWrapper?: (props: {\r\n href: string;\r\n children: React.ReactNode;\r\n }) => JSX.Element;\r\n}\r\n\r\nconst FooterBase: React.FC<BaseFooterProps> = ({\r\n theme = getDefaultTheme(),\r\n attachment = \"static\",\r\n shadow = \"none\",\r\n rounding = \"none\",\r\n className = \"\",\r\n \"data-testid\": testId = \"footer\",\r\n copyright,\r\n links = [],\r\n logo,\r\n socialLinks = [],\r\n showThemeSelect = false,\r\n IconButton,\r\n ImageComponent = \"img\",\r\n ThemeSelect,\r\n classMap,\r\n LinkWrapper = ({ href, children }) => <a href={href}>{children}</a>,\r\n}) => {\r\n const footerClass = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.footer,\r\n classMap[theme],\r\n classMap[`shadow${capitalize(shadow)}`],\r\n classMap[`round${capitalize(rounding)}`],\r\n classMap[`attachment${capitalize(attachment)}`],\r\n className\r\n ),\r\n [classMap, theme, className]\r\n );\r\n return (\r\n <footer\r\n className={footerClass}\r\n role=\"contentinfo\"\r\n aria-label=\"Footer\"\r\n data-testid={testId}\r\n >\r\n <div className={classMap.content}>\r\n <div className={classMap.left} data-testid={`${testId}-left`}>\r\n {logo &&\r\n (typeof logo === \"string\" ||\r\n (typeof logo === \"object\" && \"src\" in logo)) ? (\r\n <ImageComponent\r\n className={classMap.logo}\r\n aria-label=\"Logo\"\r\n role=\"img\"\r\n data-testid={`${testId}-logo`}\r\n loading=\"lazy\"\r\n src={logo}\r\n alt=\"Logo\"\r\n height={20}\r\n width={20}\r\n />\r\n ) : (\r\n <span\r\n className={classMap.logo}\r\n aria-label=\"Logo\"\r\n role=\"img\"\r\n data-testid={`${testId}-logo`}\r\n >\r\n {logo}\r\n </span>\r\n )}\r\n\r\n {copyright && (\r\n <div className={classMap.left} data-testid={`${testId}-copyright`}>\r\n <p>{copyright}</p>\r\n </div>\r\n )}\r\n </div>\r\n\r\n {links.length > 0 && (\r\n <nav\r\n className={classMap.links}\r\n aria-label=\"Footer site links\"\r\n data-testid={`${testId}-nav`}\r\n >\r\n <ul role=\"list\">\r\n {links.map((link, i) => (\r\n <li key={i}>\r\n <LinkWrapper\r\n href={link.href}\r\n children={\r\n <span\r\n className={classMap.link}\r\n data-testid={`${testId}-link-${link.label.toLowerCase().replace(/\\s+/g, \"-\")}`}\r\n >\r\n {link.label}\r\n </span>\r\n }\r\n />\r\n </li>\r\n ))}\r\n </ul>\r\n </nav>\r\n )}\r\n\r\n {showThemeSelect && (\r\n <div\r\n className={classMap.themeToggle}\r\n data-testid={`${testId}-theme-select`}\r\n aria-label=\"Theme selector container\"\r\n >\r\n <ThemeSelect theme={\"clear\"} shadow={\"none\"} />\r\n </div>\r\n )}\r\n\r\n {socialLinks.length > 0 && (\r\n <div\r\n className={classMap.social}\r\n aria-label=\"Social media\"\r\n role=\"navigation\"\r\n data-testid={`${testId}-social`}\r\n >\r\n {socialLinks.map((social, index) => (\r\n <IconButton\r\n key={index}\r\n icon={social.icon}\r\n href={social.href}\r\n isExternal\r\n shadow=\"none\"\r\n target=\"_blank\"\r\n rel=\"noopener noreferrer\"\r\n ariaLabel={social.title}\r\n title={social.title}\r\n theme=\"clear\"\r\n data-testid={`${testId}-social-${social.title\r\n .toLowerCase()\r\n .replace(/\\s+/g, \"-\")}`}\r\n />\r\n ))}\r\n </div>\r\n )}\r\n </div>\r\n </footer>\r\n );\r\n};\r\n\r\nexport default FooterBase;\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport FooterBase from \"../FooterBase\";\r\nimport { FooterProps } from \"../Footer.types\";\r\nimport { IconButton, ThemeSelect } from \"@/index.next\";\r\nimport Link from \"next/link\";\r\nimport styles from \"./Footer.module.scss\";\r\nimport Image from \"next/image\";\r\n\r\nconst Footer: React.FC<FooterProps> = (props) => {\r\n return (\r\n <FooterBase\r\n {...props}\r\n IconButton={IconButton}\r\n ImageComponent={Image}\r\n ThemeSelect={ThemeSelect}\r\n LinkWrapper={({ href, children }) => (\r\n <Link href={href} passHref legacyBehavior>\r\n <a>{children}</a>\r\n </Link>\r\n )}\r\n classMap={styles}\r\n />\r\n );\r\n};\r\n\r\nexport default Footer;\r\n"],"names":["links","logo","IconButton","social","ThemeSelect"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Footer-bb_8EH_R.js","sources":["../../src/components/Select/ThemeSelect/next/ThemeSelect.tsx","../../src/components/Footer/FooterBase.tsx","../../src/components/Footer/next/Footer.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport React, { useContext } from \"react\";\r\nimport { getAllColorSchemes } from \"../../../../styles/colorSchemeRegistry\";\r\nimport { Select } from \"@/index.next\";\r\nimport { ThemeContext } from \"../../../../context/ThemeContext\";\r\nimport { RoundingType, ShadowType, StateType, ThemeType } from \"@/types/types\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultTheme,\r\n} from \"@/config/boreal-style-config\";\r\n\r\ninterface ThemeSelectProps {\r\n theme?: ThemeType;\r\n shadow?: ShadowType;\r\n rounding?: RoundingType;\r\n \"data-testid\"?: string;\r\n state?: StateType;\r\n}\r\n\r\nconst UserThemeSettings: React.FC<ThemeSelectProps> = ({\r\n theme = getDefaultTheme(),\r\n shadow = getDefaultShadow(),\r\n rounding = getDefaultRounding(),\r\n state = \"\",\r\n \"data-testid\": testId = \"theme-select\",\r\n}) => {\r\n const themeContext = useContext(ThemeContext);\r\n\r\n if (!themeContext) {\r\n throw new Error(\r\n \"ThemeContext is undefined. Make sure to wrap this component with ThemeProvider.\"\r\n );\r\n }\r\n\r\n const { selectedScheme, setSelectedScheme } = themeContext;\r\n const allSchemes = getAllColorSchemes();\r\n\r\n const options = allSchemes.map((scheme, index) => ({\r\n value: index.toString(),\r\n label: scheme.name,\r\n }));\r\n\r\n return (\r\n <div className={`control-container`}>\r\n <Select\r\n theme={theme}\r\n state={state}\r\n shadow={shadow}\r\n rounding={rounding}\r\n options={options}\r\n data-testid={`${testId}-select`}\r\n value={selectedScheme.toString()}\r\n onChange={(value: string | number) =>\r\n setSelectedScheme(parseInt(value as string, 10))\r\n }\r\n ariaLabel=\"Select Theme\"\r\n />\r\n </div>\r\n );\r\n};\r\n\r\nexport default UserThemeSettings;\r\n","import React, { JSX, useMemo } from \"react\";\r\nimport { FooterProps } from \"./Footer.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { getDefaultTheme } from \"../../config/boreal-style-config\";\r\nimport { capitalize } from \"@/utils/capitalize\";\r\n\r\nexport interface BaseFooterProps extends FooterProps {\r\n IconButton: React.ComponentType<any>;\r\n ThemeSelect: React.ComponentType<any>;\r\n ImageComponent?: React.ElementType;\r\n classMap: Record<string, string>;\r\n LinkWrapper?: (props: {\r\n href: string;\r\n children: React.ReactNode;\r\n }) => JSX.Element;\r\n}\r\n\r\nconst FooterBase: React.FC<BaseFooterProps> = ({\r\n theme = getDefaultTheme(),\r\n attachment = \"static\",\r\n shadow = \"none\",\r\n rounding = \"none\",\r\n className = \"\",\r\n \"data-testid\": testId = \"footer\",\r\n copyright,\r\n links = [],\r\n logo,\r\n socialLinks = [],\r\n showThemeSelect = false,\r\n IconButton,\r\n ImageComponent = \"img\",\r\n ThemeSelect,\r\n classMap,\r\n LinkWrapper = ({ href, children }) => <a href={href}>{children}</a>,\r\n}) => {\r\n const footerClass = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.footer,\r\n classMap[theme],\r\n classMap[`shadow${capitalize(shadow)}`],\r\n classMap[`round${capitalize(rounding)}`],\r\n classMap[`attachment${capitalize(attachment)}`],\r\n className\r\n ),\r\n [classMap, theme, className]\r\n );\r\n return (\r\n <footer\r\n className={footerClass}\r\n role=\"contentinfo\"\r\n aria-label=\"Footer\"\r\n data-testid={testId}\r\n >\r\n <div className={classMap.content}>\r\n <div className={classMap.left} data-testid={`${testId}-left`}>\r\n {logo &&\r\n (typeof logo === \"string\" ||\r\n (typeof logo === \"object\" && \"src\" in logo)) ? (\r\n <ImageComponent\r\n className={classMap.logo}\r\n aria-label=\"Logo\"\r\n role=\"img\"\r\n data-testid={`${testId}-logo`}\r\n loading=\"lazy\"\r\n src={logo}\r\n alt=\"Logo\"\r\n height={20}\r\n width={20}\r\n />\r\n ) : (\r\n <span\r\n className={classMap.logo}\r\n aria-label=\"Logo\"\r\n role=\"img\"\r\n data-testid={`${testId}-logo`}\r\n >\r\n {logo}\r\n </span>\r\n )}\r\n\r\n {copyright && (\r\n <div className={classMap.left} data-testid={`${testId}-copyright`}>\r\n <p>{copyright}</p>\r\n </div>\r\n )}\r\n </div>\r\n\r\n {links.length > 0 && (\r\n <nav\r\n className={classMap.links}\r\n aria-label=\"Footer site links\"\r\n data-testid={`${testId}-nav`}\r\n >\r\n <ul role=\"list\">\r\n {links.map((link, i) => (\r\n <li key={i}>\r\n <LinkWrapper\r\n href={link.href}\r\n children={\r\n <span\r\n className={classMap.link}\r\n data-testid={`${testId}-link-${link.label.toLowerCase().replace(/\\s+/g, \"-\")}`}\r\n >\r\n {link.label}\r\n </span>\r\n }\r\n />\r\n </li>\r\n ))}\r\n </ul>\r\n </nav>\r\n )}\r\n\r\n {showThemeSelect && (\r\n <div\r\n className={classMap.themeToggle}\r\n data-testid={`${testId}-theme-select`}\r\n aria-label=\"Theme selector container\"\r\n >\r\n <ThemeSelect theme={\"clear\"} shadow={\"none\"} />\r\n </div>\r\n )}\r\n\r\n {socialLinks.length > 0 && (\r\n <div\r\n className={classMap.social}\r\n aria-label=\"Social media\"\r\n role=\"navigation\"\r\n data-testid={`${testId}-social`}\r\n >\r\n {socialLinks.map((social, index) => (\r\n <IconButton\r\n key={index}\r\n icon={social.icon}\r\n href={social.href}\r\n isExternal\r\n shadow=\"none\"\r\n target=\"_blank\"\r\n rel=\"noopener noreferrer\"\r\n ariaLabel={social.title}\r\n title={social.title}\r\n theme=\"clear\"\r\n data-testid={`${testId}-social-${social.title\r\n .toLowerCase()\r\n .replace(/\\s+/g, \"-\")}`}\r\n />\r\n ))}\r\n </div>\r\n )}\r\n </div>\r\n </footer>\r\n );\r\n};\r\n\r\nexport default FooterBase;\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport FooterBase from \"../FooterBase\";\r\nimport { FooterProps } from \"../Footer.types\";\r\nimport { IconButton, ThemeSelect } from \"@/index.next\";\r\nimport Link from \"next/link\";\r\nimport styles from \"./Footer.module.scss\";\r\nimport Image from \"next/image\";\r\n\r\nconst Footer: React.FC<FooterProps> = (props) => {\r\n return (\r\n <FooterBase\r\n {...props}\r\n IconButton={IconButton}\r\n ImageComponent={Image}\r\n ThemeSelect={ThemeSelect}\r\n LinkWrapper={({ href, children }) => (\r\n <Link href={href} passHref legacyBehavior>\r\n <a>{children}</a>\r\n </Link>\r\n )}\r\n classMap={styles}\r\n />\r\n );\r\n};\r\n\r\nexport default Footer;\r\n"],"names":["links","logo","IconButton","social","ThemeSelect"],"mappings":";;;;;;;;;;;AAqBA,MAAM,oBAAgD,CAAC;AAAA,EACrD,QAAQ,gBAAA;AAAA,EACR,SAAS,iBAAA;AAAA,EACT,WAAW,mBAAA;AAAA,EACX,QAAQ;AAAA,EACR,eAAe,SAAS;AAC1B,MAAM;AACJ,QAAM,eAAe,WAAW,YAAY;AAE5C,MAAI,CAAC,cAAc;AACjB,UAAM,IAAI;AAAA,MACR;AAAA,IAAA;AAAA,EAEJ;AAEA,QAAM,EAAE,gBAAgB,kBAAA,IAAsB;AAC9C,QAAM,aAAa,mBAAA;AAEnB,QAAM,UAAU,WAAW,IAAI,CAAC,QAAQ,WAAW;AAAA,IACjD,OAAO,MAAM,SAAA;AAAA,IACb,OAAO,OAAO;AAAA,EAAA,EACd;AAEF,SACE,oBAAC,OAAA,EAAI,WAAW,qBACd,UAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,eAAa,GAAG,MAAM;AAAA,MACtB,OAAO,eAAe,SAAA;AAAA,MACtB,UAAU,CAAC,UACT,kBAAkB,SAAS,OAAiB,EAAE,CAAC;AAAA,MAEjD,WAAU;AAAA,IAAA;AAAA,EAAA,GAEd;AAEJ;AC5CA,MAAM,aAAwC,CAAC;AAAA,EAC7C,QAAQ,gBAAA;AAAA,EACR,aAAa;AAAA,EACb,SAAS;AAAA,EACT,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,eAAe,SAAS;AAAA,EACxB;AAAA,EACA,OAAAA,SAAQ,CAAA;AAAA,EACR,MAAAC;AAAA,EACA,cAAc,CAAA;AAAA,EACd,kBAAkB;AAAA,EAClB,YAAAC;AAAA,EACA,iBAAiB;AAAA,EACjB;AAAA,EACA;AAAA,EACA,cAAc,CAAC,EAAE,MAAM,eAAe,oBAAC,KAAA,EAAE,MAAa,SAAA,CAAS;AACjE,MAAM;AACJ,QAAM,cAAc;AAAA,IAClB,MACE;AAAA,MACE,SAAS;AAAA,MACT,SAAS,KAAK;AAAA,MACd,SAAS,SAAS,WAAW,MAAM,CAAC,EAAE;AAAA,MACtC,SAAS,QAAQ,WAAW,QAAQ,CAAC,EAAE;AAAA,MACvC,SAAS,aAAa,WAAW,UAAU,CAAC,EAAE;AAAA,MAC9C;AAAA,IAAA;AAAA,IAEJ,CAAC,UAAU,OAAO,SAAS;AAAA,EAAA;AAE7B,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW;AAAA,MACX,MAAK;AAAA,MACL,cAAW;AAAA,MACX,eAAa;AAAA,MAEb,UAAA,qBAAC,OAAA,EAAI,WAAW,SAAS,SACvB,UAAA;AAAA,QAAA,qBAAC,SAAI,WAAW,SAAS,MAAM,eAAa,GAAG,MAAM,SAClD,UAAA;AAAA,UAAAD,UACA,OAAOA,UAAS,YACd,OAAOA,UAAS,YAAY,SAASA,SACtC;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAW,SAAS;AAAA,cACpB,cAAW;AAAA,cACX,MAAK;AAAA,cACL,eAAa,GAAG,MAAM;AAAA,cACtB,SAAQ;AAAA,cACR,KAAKA;AAAA,cACL,KAAI;AAAA,cACJ,QAAQ;AAAA,cACR,OAAO;AAAA,YAAA;AAAA,UAAA,IAGT;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAW,SAAS;AAAA,cACpB,cAAW;AAAA,cACX,MAAK;AAAA,cACL,eAAa,GAAG,MAAM;AAAA,cAErB,UAAAA;AAAA,YAAA;AAAA,UAAA;AAAA,UAIJ,aACC,oBAAC,OAAA,EAAI,WAAW,SAAS,MAAM,eAAa,GAAG,MAAM,cACnD,UAAA,oBAAC,KAAA,EAAG,qBAAU,EAAA,CAChB;AAAA,QAAA,GAEJ;AAAA,QAECD,OAAM,SAAS,KACd;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAW,SAAS;AAAA,YACpB,cAAW;AAAA,YACX,eAAa,GAAG,MAAM;AAAA,YAEtB,UAAA,oBAAC,MAAA,EAAG,MAAK,QACN,UAAAA,OAAM,IAAI,CAAC,MAAM,MAChB,oBAAC,MAAA,EACC,UAAA;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,MAAM,KAAK;AAAA,gBACX,UACE;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBACC,WAAW,SAAS;AAAA,oBACpB,eAAa,GAAG,MAAM,SAAS,KAAK,MAAM,YAAA,EAAc,QAAQ,QAAQ,GAAG,CAAC;AAAA,oBAE3E,UAAA,KAAK;AAAA,kBAAA;AAAA,gBAAA;AAAA,cACR;AAAA,YAAA,EAEJ,GAXO,CAYT,CACD,EAAA,CACH;AAAA,UAAA;AAAA,QAAA;AAAA,QAIH,mBACC;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAW,SAAS;AAAA,YACpB,eAAa,GAAG,MAAM;AAAA,YACtB,cAAW;AAAA,YAEX,UAAA,oBAAC,aAAA,EAAY,OAAO,SAAS,QAAQ,OAAA,CAAQ;AAAA,UAAA;AAAA,QAAA;AAAA,QAIhD,YAAY,SAAS,KACpB;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAW,SAAS;AAAA,YACpB,cAAW;AAAA,YACX,MAAK;AAAA,YACL,eAAa,GAAG,MAAM;AAAA,YAErB,UAAA,YAAY,IAAI,CAACG,SAAQ,UACxB;AAAA,cAACD;AAAA,cAAA;AAAA,gBAEC,MAAMC,QAAO;AAAA,gBACb,MAAMA,QAAO;AAAA,gBACb,YAAU;AAAA,gBACV,QAAO;AAAA,gBACP,QAAO;AAAA,gBACP,KAAI;AAAA,gBACJ,WAAWA,QAAO;AAAA,gBAClB,OAAOA,QAAO;AAAA,gBACd,OAAM;AAAA,gBACN,eAAa,GAAG,MAAM,WAAWA,QAAO,MACrC,cACA,QAAQ,QAAQ,GAAG,CAAC;AAAA,cAAA;AAAA,cAZlB;AAAA,YAAA,CAcR;AAAA,UAAA;AAAA,QAAA;AAAA,MACH,EAAA,CAEJ;AAAA,IAAA;AAAA,EAAA;AAGN;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/IA,MAAM,SAAgC,CAAC,UAAU;AAC/C,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACE,GAAG;AAAA,MACJ;AAAA,MACA,gBAAgB;AAAA,MAAA,aAChBC;AAAAA,MACA,aAAa,CAAC,EAAE,MAAM,SAAA,MACpB,oBAAC,MAAA,EAAK,MAAY,UAAQ,MAAC,gBAAc,MACvC,UAAA,oBAAC,KAAA,EAAG,UAAS,GACf;AAAA,MAEF,UAAU;AAAA,IAAA;AAAA,EAAA;AAGhB;"}
|
package/dist/next/Footer.cjs.js
CHANGED
package/dist/next/Footer.js
CHANGED
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useMemo } from "react";
|
|
3
|
+
import { c as combineClassNames } from "./classNames-AS8QjFq7.js";
|
|
4
|
+
import { c as capitalize } from "./capitalize-C0TSQSPh.js";
|
|
5
|
+
import { d as getDefaultTheme, a as getDefaultRounding, b as getDefaultShadow } from "./boreal-style-config-BILmxkZG.js";
|
|
6
|
+
import { L as Link } from "./link-Bik5xH00.js";
|
|
7
|
+
import { n as navigation } from "./navigation-DTwYCgCL.js";
|
|
8
|
+
const BaseNavBar = ({
|
|
9
|
+
items,
|
|
10
|
+
currentPath,
|
|
11
|
+
LinkWrapper,
|
|
12
|
+
classMap,
|
|
13
|
+
theme = getDefaultTheme(),
|
|
14
|
+
rounding = getDefaultRounding(),
|
|
15
|
+
shadow = getDefaultShadow(),
|
|
16
|
+
"data-testid": testId = "empty-state"
|
|
17
|
+
}) => {
|
|
18
|
+
const wrapperClass = useMemo(
|
|
19
|
+
() => combineClassNames(classMap.container, classMap[theme]),
|
|
20
|
+
[classMap, theme]
|
|
21
|
+
);
|
|
22
|
+
const itemClass = useMemo(
|
|
23
|
+
() => combineClassNames(
|
|
24
|
+
classMap.item,
|
|
25
|
+
shadow && classMap[`shadow${capitalize(shadow)}`],
|
|
26
|
+
rounding && classMap[`round${capitalize(rounding)}`]
|
|
27
|
+
),
|
|
28
|
+
[classMap, shadow, rounding]
|
|
29
|
+
);
|
|
30
|
+
return /* @__PURE__ */ jsx(
|
|
31
|
+
"nav",
|
|
32
|
+
{
|
|
33
|
+
role: "navigation",
|
|
34
|
+
"aria-label": "Main navigation",
|
|
35
|
+
className: wrapperClass,
|
|
36
|
+
"data-testid": `${testId}-nav-bar`,
|
|
37
|
+
children: items.map((item2, index) => {
|
|
38
|
+
const isActive = currentPath === item2.path;
|
|
39
|
+
console.log(
|
|
40
|
+
"Nav item className:",
|
|
41
|
+
combineClassNames(classMap.item, isActive && classMap.active)
|
|
42
|
+
);
|
|
43
|
+
return /* @__PURE__ */ jsxs(
|
|
44
|
+
LinkWrapper,
|
|
45
|
+
{
|
|
46
|
+
href: item2.path,
|
|
47
|
+
isActive,
|
|
48
|
+
className: combineClassNames(
|
|
49
|
+
itemClass,
|
|
50
|
+
isActive && classMap["item--active"]
|
|
51
|
+
),
|
|
52
|
+
testId: `${testId}-nav-item-${item2.label.toLowerCase()}`,
|
|
53
|
+
"aria-current": isActive ? "page" : void 0,
|
|
54
|
+
children: [
|
|
55
|
+
/* @__PURE__ */ jsx(
|
|
56
|
+
"div",
|
|
57
|
+
{
|
|
58
|
+
className: classMap.icon,
|
|
59
|
+
"aria-hidden": "true",
|
|
60
|
+
"data-testid": `${testId}-nav-icon-${item2.label.toLowerCase()}`,
|
|
61
|
+
children: item2.icon
|
|
62
|
+
}
|
|
63
|
+
),
|
|
64
|
+
/* @__PURE__ */ jsx("span", { className: classMap.label, children: item2.label })
|
|
65
|
+
]
|
|
66
|
+
},
|
|
67
|
+
`${item2.label}-${index}`
|
|
68
|
+
);
|
|
69
|
+
})
|
|
70
|
+
}
|
|
71
|
+
);
|
|
72
|
+
};
|
|
73
|
+
const noScroll = "_noScroll_702gs_91";
|
|
74
|
+
const errorMessage = "_errorMessage_702gs_92";
|
|
75
|
+
const loadingContainer = "_loadingContainer_702gs_93";
|
|
76
|
+
const hideScrollbar = "_hideScrollbar_702gs_85";
|
|
77
|
+
const sr_only = "_sr_only_702gs_94";
|
|
78
|
+
const container = "_container_702gs_479";
|
|
79
|
+
const primary = "_primary_702gs_506";
|
|
80
|
+
const item = "_item_702gs_506";
|
|
81
|
+
const secondary = "_secondary_702gs_518";
|
|
82
|
+
const tertiary = "_tertiary_702gs_530";
|
|
83
|
+
const quaternary = "_quaternary_702gs_542";
|
|
84
|
+
const clear = "_clear_702gs_554";
|
|
85
|
+
const icon = "_icon_702gs_586";
|
|
86
|
+
const label = "_label_702gs_597";
|
|
87
|
+
const roundNone = "_roundNone_702gs_609";
|
|
88
|
+
const roundSmall = "_roundSmall_702gs_613";
|
|
89
|
+
const roundMedium = "_roundMedium_702gs_617";
|
|
90
|
+
const roundLarge = "_roundLarge_702gs_621";
|
|
91
|
+
const roundFull = "_roundFull_702gs_625";
|
|
92
|
+
const shadowNone = "_shadowNone_702gs_629";
|
|
93
|
+
const shadowLight = "_shadowLight_702gs_633";
|
|
94
|
+
const shadowMedium = "_shadowMedium_702gs_637";
|
|
95
|
+
const shadowStrong = "_shadowStrong_702gs_641";
|
|
96
|
+
const shadowIntense = "_shadowIntense_702gs_645";
|
|
97
|
+
const spin = "_spin_702gs_1";
|
|
98
|
+
const pulse = "_pulse_702gs_1";
|
|
99
|
+
const styles = {
|
|
100
|
+
noScroll,
|
|
101
|
+
errorMessage,
|
|
102
|
+
loadingContainer,
|
|
103
|
+
hideScrollbar,
|
|
104
|
+
sr_only,
|
|
105
|
+
container,
|
|
106
|
+
primary,
|
|
107
|
+
item,
|
|
108
|
+
"item--active": "_item--active_702gs_513",
|
|
109
|
+
secondary,
|
|
110
|
+
tertiary,
|
|
111
|
+
quaternary,
|
|
112
|
+
clear,
|
|
113
|
+
icon,
|
|
114
|
+
label,
|
|
115
|
+
roundNone,
|
|
116
|
+
roundSmall,
|
|
117
|
+
roundMedium,
|
|
118
|
+
roundLarge,
|
|
119
|
+
roundFull,
|
|
120
|
+
shadowNone,
|
|
121
|
+
shadowLight,
|
|
122
|
+
shadowMedium,
|
|
123
|
+
shadowStrong,
|
|
124
|
+
shadowIntense,
|
|
125
|
+
"fade-in": "_fade-in_702gs_1",
|
|
126
|
+
"slide-up": "_slide-up_702gs_1",
|
|
127
|
+
"spin-3d": "_spin-3d_702gs_1",
|
|
128
|
+
spin,
|
|
129
|
+
pulse,
|
|
130
|
+
"fade-in-up": "_fade-in-up_702gs_1",
|
|
131
|
+
"progress-grow": "_progress-grow_702gs_1",
|
|
132
|
+
"indeterminate-move": "_indeterminate-move_702gs_1",
|
|
133
|
+
"skeleton-loading": "_skeleton-loading_702gs_1"
|
|
134
|
+
};
|
|
135
|
+
const NavBar = ({
|
|
136
|
+
mockPath,
|
|
137
|
+
...props
|
|
138
|
+
}) => {
|
|
139
|
+
const pathname = navigation.usePathname();
|
|
140
|
+
const resolvedPath = mockPath ?? pathname;
|
|
141
|
+
return /* @__PURE__ */ jsx(
|
|
142
|
+
BaseNavBar,
|
|
143
|
+
{
|
|
144
|
+
...props,
|
|
145
|
+
currentPath: resolvedPath || "/",
|
|
146
|
+
LinkWrapper: ({ href, children, className, isActive, testId }) => /* @__PURE__ */ jsx(
|
|
147
|
+
Link,
|
|
148
|
+
{
|
|
149
|
+
href,
|
|
150
|
+
className,
|
|
151
|
+
"aria-current": isActive ? "page" : void 0,
|
|
152
|
+
"data-testid": testId,
|
|
153
|
+
children
|
|
154
|
+
}
|
|
155
|
+
),
|
|
156
|
+
classMap: styles
|
|
157
|
+
}
|
|
158
|
+
);
|
|
159
|
+
};
|
|
160
|
+
export {
|
|
161
|
+
NavBar as N
|
|
162
|
+
};
|
|
163
|
+
//# sourceMappingURL=NavBar-CRbRBzGq.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NavBar-CRbRBzGq.js","sources":["../../src/components/NavBar/NavBarBase.tsx","../../src/components/NavBar/next/NavBar.tsx"],"sourcesContent":["import React, { JSX, useMemo } from \"react\";\r\nimport { NavBarProps } from \"./NavBar.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultTheme,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nexport interface BaseNavBarProps extends NavBarProps {\r\n currentPath: string;\r\n LinkWrapper: (props: {\r\n href: string;\r\n children: React.ReactNode;\r\n className: string;\r\n isActive: boolean;\r\n testId: string;\r\n \"aria-current\"?: \"page\";\r\n }) => JSX.Element;\r\n classMap: Record<string, string>;\r\n}\r\n\r\nconst BaseNavBar: React.FC<BaseNavBarProps> = ({\r\n items,\r\n currentPath,\r\n LinkWrapper,\r\n classMap,\r\n theme = getDefaultTheme(),\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n \"data-testid\": testId = \"empty-state\",\r\n}) => {\r\n const wrapperClass = useMemo(\r\n () => combineClassNames(classMap.container, classMap[theme]),\r\n [classMap, theme]\r\n );\r\n\r\n const itemClass = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.item,\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`]\r\n ),\r\n [classMap, shadow, rounding]\r\n );\r\n\r\n return (\r\n <nav\r\n role=\"navigation\"\r\n aria-label=\"Main navigation\"\r\n className={wrapperClass}\r\n data-testid={`${testId}-nav-bar`}\r\n >\r\n {items.map((item, index) => {\r\n const isActive = currentPath === item.path;\r\n\r\n console.log(\r\n \"Nav item className:\",\r\n combineClassNames(classMap.item, isActive && classMap.active)\r\n );\r\n\r\n return (\r\n <LinkWrapper\r\n key={`${item.label}-${index}`}\r\n href={item.path}\r\n isActive={isActive}\r\n className={combineClassNames(\r\n itemClass,\r\n isActive && classMap[\"item--active\"]\r\n )}\r\n testId={`${testId}-nav-item-${item.label.toLowerCase()}`}\r\n aria-current={isActive ? \"page\" : undefined}\r\n >\r\n <div\r\n className={classMap.icon}\r\n aria-hidden=\"true\"\r\n data-testid={`${testId}-nav-icon-${item.label.toLowerCase()}`}\r\n >\r\n {item.icon}\r\n </div>\r\n <span className={classMap.label}>{item.label}</span>\r\n </LinkWrapper>\r\n );\r\n })}\r\n </nav>\r\n );\r\n};\r\n\r\nexport default BaseNavBar;\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport BaseNavBar from \"../NavBarBase\";\r\nimport Link from \"next/link\";\r\nimport { usePathname } from \"next/navigation\";\r\nimport styles from \"./NavBar.module.scss\";\r\nimport { NavBarProps } from \"../NavBar.types\";\r\n\r\nconst NavBar: React.FC<NavBarProps & { mockPath?: string }> = ({\r\n mockPath,\r\n ...props\r\n}) => {\r\n const pathname = usePathname();\r\n const resolvedPath = mockPath ?? pathname;\r\n\r\n return (\r\n <BaseNavBar\r\n {...props}\r\n currentPath={resolvedPath || \"/\"}\r\n LinkWrapper={({ href, children, className, isActive, testId }) => (\r\n <Link\r\n href={href}\r\n className={className}\r\n aria-current={isActive ? \"page\" : undefined}\r\n data-testid={testId}\r\n >\r\n {children}\r\n </Link>\r\n )}\r\n classMap={styles}\r\n />\r\n );\r\n};\r\n\r\nexport default NavBar;\r\n"],"names":["item","usePathname"],"mappings":";;;;;;;AAuBA,MAAM,aAAwC,CAAC;AAAA,EAC7C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,QAAQ,gBAAA;AAAA,EACR,WAAW,mBAAA;AAAA,EACX,SAAS,iBAAA;AAAA,EACT,eAAe,SAAS;AAC1B,MAAM;AACJ,QAAM,eAAe;AAAA,IACnB,MAAM,kBAAkB,SAAS,WAAW,SAAS,KAAK,CAAC;AAAA,IAC3D,CAAC,UAAU,KAAK;AAAA,EAAA;AAGlB,QAAM,YAAY;AAAA,IAChB,MACE;AAAA,MACE,SAAS;AAAA,MACT,UAAU,SAAS,SAAS,WAAW,MAAM,CAAC,EAAE;AAAA,MAChD,YAAY,SAAS,QAAQ,WAAW,QAAQ,CAAC,EAAE;AAAA,IAAA;AAAA,IAEvD,CAAC,UAAU,QAAQ,QAAQ;AAAA,EAAA;AAG7B,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL,cAAW;AAAA,MACX,WAAW;AAAA,MACX,eAAa,GAAG,MAAM;AAAA,MAErB,UAAA,MAAM,IAAI,CAACA,OAAM,UAAU;AAC1B,cAAM,WAAW,gBAAgBA,MAAK;AAEtC,gBAAQ;AAAA,UACN;AAAA,UACA,kBAAkB,SAAS,MAAM,YAAY,SAAS,MAAM;AAAA,QAAA;AAG9D,eACE;AAAA,UAAC;AAAA,UAAA;AAAA,YAEC,MAAMA,MAAK;AAAA,YACX;AAAA,YACA,WAAW;AAAA,cACT;AAAA,cACA,YAAY,SAAS,cAAc;AAAA,YAAA;AAAA,YAErC,QAAQ,GAAG,MAAM,aAAaA,MAAK,MAAM,aAAa;AAAA,YACtD,gBAAc,WAAW,SAAS;AAAA,YAElC,UAAA;AAAA,cAAA;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,WAAW,SAAS;AAAA,kBACpB,eAAY;AAAA,kBACZ,eAAa,GAAG,MAAM,aAAaA,MAAK,MAAM,aAAa;AAAA,kBAE1D,UAAAA,MAAK;AAAA,gBAAA;AAAA,cAAA;AAAA,kCAEP,QAAA,EAAK,WAAW,SAAS,OAAQ,gBAAK,MAAA,CAAM;AAAA,YAAA;AAAA,UAAA;AAAA,UAjBxC,GAAGA,MAAK,KAAK,IAAI,KAAK;AAAA,QAAA;AAAA,MAoBjC,CAAC;AAAA,IAAA;AAAA,EAAA;AAGP;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/EA,MAAM,SAAwD,CAAC;AAAA,EAC7D;AAAA,EACA,GAAG;AACL,MAAM;AACJ,QAAM,WAAWC,WAAAA,YAAA;AACjB,QAAM,eAAe,YAAY;AAEjC,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACE,GAAG;AAAA,MACJ,aAAa,gBAAgB;AAAA,MAC7B,aAAa,CAAC,EAAE,MAAM,UAAU,WAAW,UAAU,aACnD;AAAA,QAAC;AAAA,QAAA;AAAA,UACC;AAAA,UACA;AAAA,UACA,gBAAc,WAAW,SAAS;AAAA,UAClC,eAAa;AAAA,UAEZ;AAAA,QAAA;AAAA,MAAA;AAAA,MAGL,UAAU;AAAA,IAAA;AAAA,EAAA;AAGhB;"}
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
const require$$2 = require("react/jsx-runtime");
|
|
3
|
+
const React = require("react");
|
|
4
|
+
const classNames = require("./classNames-BcWMx052.cjs");
|
|
5
|
+
const capitalize = require("./capitalize-DoV-nOmN.cjs");
|
|
6
|
+
const borealStyleConfig = require("./boreal-style-config-Rr5d5Qts.cjs");
|
|
7
|
+
const link = require("./link-hxAaLm0Q.cjs");
|
|
8
|
+
const navigation = require("./navigation-m012syo9.cjs");
|
|
9
|
+
const BaseNavBar = ({
|
|
10
|
+
items,
|
|
11
|
+
currentPath,
|
|
12
|
+
LinkWrapper,
|
|
13
|
+
classMap,
|
|
14
|
+
theme = borealStyleConfig.getDefaultTheme(),
|
|
15
|
+
rounding = borealStyleConfig.getDefaultRounding(),
|
|
16
|
+
shadow = borealStyleConfig.getDefaultShadow(),
|
|
17
|
+
"data-testid": testId = "empty-state"
|
|
18
|
+
}) => {
|
|
19
|
+
const wrapperClass = React.useMemo(
|
|
20
|
+
() => classNames.combineClassNames(classMap.container, classMap[theme]),
|
|
21
|
+
[classMap, theme]
|
|
22
|
+
);
|
|
23
|
+
const itemClass = React.useMemo(
|
|
24
|
+
() => classNames.combineClassNames(
|
|
25
|
+
classMap.item,
|
|
26
|
+
shadow && classMap[`shadow${capitalize.capitalize(shadow)}`],
|
|
27
|
+
rounding && classMap[`round${capitalize.capitalize(rounding)}`]
|
|
28
|
+
),
|
|
29
|
+
[classMap, shadow, rounding]
|
|
30
|
+
);
|
|
31
|
+
return /* @__PURE__ */ require$$2.jsx(
|
|
32
|
+
"nav",
|
|
33
|
+
{
|
|
34
|
+
role: "navigation",
|
|
35
|
+
"aria-label": "Main navigation",
|
|
36
|
+
className: wrapperClass,
|
|
37
|
+
"data-testid": `${testId}-nav-bar`,
|
|
38
|
+
children: items.map((item2, index) => {
|
|
39
|
+
const isActive = currentPath === item2.path;
|
|
40
|
+
console.log(
|
|
41
|
+
"Nav item className:",
|
|
42
|
+
classNames.combineClassNames(classMap.item, isActive && classMap.active)
|
|
43
|
+
);
|
|
44
|
+
return /* @__PURE__ */ require$$2.jsxs(
|
|
45
|
+
LinkWrapper,
|
|
46
|
+
{
|
|
47
|
+
href: item2.path,
|
|
48
|
+
isActive,
|
|
49
|
+
className: classNames.combineClassNames(
|
|
50
|
+
itemClass,
|
|
51
|
+
isActive && classMap["item--active"]
|
|
52
|
+
),
|
|
53
|
+
testId: `${testId}-nav-item-${item2.label.toLowerCase()}`,
|
|
54
|
+
"aria-current": isActive ? "page" : void 0,
|
|
55
|
+
children: [
|
|
56
|
+
/* @__PURE__ */ require$$2.jsx(
|
|
57
|
+
"div",
|
|
58
|
+
{
|
|
59
|
+
className: classMap.icon,
|
|
60
|
+
"aria-hidden": "true",
|
|
61
|
+
"data-testid": `${testId}-nav-icon-${item2.label.toLowerCase()}`,
|
|
62
|
+
children: item2.icon
|
|
63
|
+
}
|
|
64
|
+
),
|
|
65
|
+
/* @__PURE__ */ require$$2.jsx("span", { className: classMap.label, children: item2.label })
|
|
66
|
+
]
|
|
67
|
+
},
|
|
68
|
+
`${item2.label}-${index}`
|
|
69
|
+
);
|
|
70
|
+
})
|
|
71
|
+
}
|
|
72
|
+
);
|
|
73
|
+
};
|
|
74
|
+
const noScroll = "_noScroll_702gs_91";
|
|
75
|
+
const errorMessage = "_errorMessage_702gs_92";
|
|
76
|
+
const loadingContainer = "_loadingContainer_702gs_93";
|
|
77
|
+
const hideScrollbar = "_hideScrollbar_702gs_85";
|
|
78
|
+
const sr_only = "_sr_only_702gs_94";
|
|
79
|
+
const container = "_container_702gs_479";
|
|
80
|
+
const primary = "_primary_702gs_506";
|
|
81
|
+
const item = "_item_702gs_506";
|
|
82
|
+
const secondary = "_secondary_702gs_518";
|
|
83
|
+
const tertiary = "_tertiary_702gs_530";
|
|
84
|
+
const quaternary = "_quaternary_702gs_542";
|
|
85
|
+
const clear = "_clear_702gs_554";
|
|
86
|
+
const icon = "_icon_702gs_586";
|
|
87
|
+
const label = "_label_702gs_597";
|
|
88
|
+
const roundNone = "_roundNone_702gs_609";
|
|
89
|
+
const roundSmall = "_roundSmall_702gs_613";
|
|
90
|
+
const roundMedium = "_roundMedium_702gs_617";
|
|
91
|
+
const roundLarge = "_roundLarge_702gs_621";
|
|
92
|
+
const roundFull = "_roundFull_702gs_625";
|
|
93
|
+
const shadowNone = "_shadowNone_702gs_629";
|
|
94
|
+
const shadowLight = "_shadowLight_702gs_633";
|
|
95
|
+
const shadowMedium = "_shadowMedium_702gs_637";
|
|
96
|
+
const shadowStrong = "_shadowStrong_702gs_641";
|
|
97
|
+
const shadowIntense = "_shadowIntense_702gs_645";
|
|
98
|
+
const spin = "_spin_702gs_1";
|
|
99
|
+
const pulse = "_pulse_702gs_1";
|
|
100
|
+
const styles = {
|
|
101
|
+
noScroll,
|
|
102
|
+
errorMessage,
|
|
103
|
+
loadingContainer,
|
|
104
|
+
hideScrollbar,
|
|
105
|
+
sr_only,
|
|
106
|
+
container,
|
|
107
|
+
primary,
|
|
108
|
+
item,
|
|
109
|
+
"item--active": "_item--active_702gs_513",
|
|
110
|
+
secondary,
|
|
111
|
+
tertiary,
|
|
112
|
+
quaternary,
|
|
113
|
+
clear,
|
|
114
|
+
icon,
|
|
115
|
+
label,
|
|
116
|
+
roundNone,
|
|
117
|
+
roundSmall,
|
|
118
|
+
roundMedium,
|
|
119
|
+
roundLarge,
|
|
120
|
+
roundFull,
|
|
121
|
+
shadowNone,
|
|
122
|
+
shadowLight,
|
|
123
|
+
shadowMedium,
|
|
124
|
+
shadowStrong,
|
|
125
|
+
shadowIntense,
|
|
126
|
+
"fade-in": "_fade-in_702gs_1",
|
|
127
|
+
"slide-up": "_slide-up_702gs_1",
|
|
128
|
+
"spin-3d": "_spin-3d_702gs_1",
|
|
129
|
+
spin,
|
|
130
|
+
pulse,
|
|
131
|
+
"fade-in-up": "_fade-in-up_702gs_1",
|
|
132
|
+
"progress-grow": "_progress-grow_702gs_1",
|
|
133
|
+
"indeterminate-move": "_indeterminate-move_702gs_1",
|
|
134
|
+
"skeleton-loading": "_skeleton-loading_702gs_1"
|
|
135
|
+
};
|
|
136
|
+
const NavBar = ({
|
|
137
|
+
mockPath,
|
|
138
|
+
...props
|
|
139
|
+
}) => {
|
|
140
|
+
const pathname = navigation.navigation.usePathname();
|
|
141
|
+
const resolvedPath = mockPath ?? pathname;
|
|
142
|
+
return /* @__PURE__ */ require$$2.jsx(
|
|
143
|
+
BaseNavBar,
|
|
144
|
+
{
|
|
145
|
+
...props,
|
|
146
|
+
currentPath: resolvedPath || "/",
|
|
147
|
+
LinkWrapper: ({ href, children, className, isActive, testId }) => /* @__PURE__ */ require$$2.jsx(
|
|
148
|
+
link.Link,
|
|
149
|
+
{
|
|
150
|
+
href,
|
|
151
|
+
className,
|
|
152
|
+
"aria-current": isActive ? "page" : void 0,
|
|
153
|
+
"data-testid": testId,
|
|
154
|
+
children
|
|
155
|
+
}
|
|
156
|
+
),
|
|
157
|
+
classMap: styles
|
|
158
|
+
}
|
|
159
|
+
);
|
|
160
|
+
};
|
|
161
|
+
exports.NavBar = NavBar;
|
|
162
|
+
//# sourceMappingURL=NavBar-JPkuek76.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NavBar-JPkuek76.cjs","sources":["../../src/components/NavBar/NavBarBase.tsx","../../src/components/NavBar/next/NavBar.tsx"],"sourcesContent":["import React, { JSX, useMemo } from \"react\";\r\nimport { NavBarProps } from \"./NavBar.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultTheme,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nexport interface BaseNavBarProps extends NavBarProps {\r\n currentPath: string;\r\n LinkWrapper: (props: {\r\n href: string;\r\n children: React.ReactNode;\r\n className: string;\r\n isActive: boolean;\r\n testId: string;\r\n \"aria-current\"?: \"page\";\r\n }) => JSX.Element;\r\n classMap: Record<string, string>;\r\n}\r\n\r\nconst BaseNavBar: React.FC<BaseNavBarProps> = ({\r\n items,\r\n currentPath,\r\n LinkWrapper,\r\n classMap,\r\n theme = getDefaultTheme(),\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n \"data-testid\": testId = \"empty-state\",\r\n}) => {\r\n const wrapperClass = useMemo(\r\n () => combineClassNames(classMap.container, classMap[theme]),\r\n [classMap, theme]\r\n );\r\n\r\n const itemClass = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.item,\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`]\r\n ),\r\n [classMap, shadow, rounding]\r\n );\r\n\r\n return (\r\n <nav\r\n role=\"navigation\"\r\n aria-label=\"Main navigation\"\r\n className={wrapperClass}\r\n data-testid={`${testId}-nav-bar`}\r\n >\r\n {items.map((item, index) => {\r\n const isActive = currentPath === item.path;\r\n\r\n console.log(\r\n \"Nav item className:\",\r\n combineClassNames(classMap.item, isActive && classMap.active)\r\n );\r\n\r\n return (\r\n <LinkWrapper\r\n key={`${item.label}-${index}`}\r\n href={item.path}\r\n isActive={isActive}\r\n className={combineClassNames(\r\n itemClass,\r\n isActive && classMap[\"item--active\"]\r\n )}\r\n testId={`${testId}-nav-item-${item.label.toLowerCase()}`}\r\n aria-current={isActive ? \"page\" : undefined}\r\n >\r\n <div\r\n className={classMap.icon}\r\n aria-hidden=\"true\"\r\n data-testid={`${testId}-nav-icon-${item.label.toLowerCase()}`}\r\n >\r\n {item.icon}\r\n </div>\r\n <span className={classMap.label}>{item.label}</span>\r\n </LinkWrapper>\r\n );\r\n })}\r\n </nav>\r\n );\r\n};\r\n\r\nexport default BaseNavBar;\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport BaseNavBar from \"../NavBarBase\";\r\nimport Link from \"next/link\";\r\nimport { usePathname } from \"next/navigation\";\r\nimport styles from \"./NavBar.module.scss\";\r\nimport { NavBarProps } from \"../NavBar.types\";\r\n\r\nconst NavBar: React.FC<NavBarProps & { mockPath?: string }> = ({\r\n mockPath,\r\n ...props\r\n}) => {\r\n const pathname = usePathname();\r\n const resolvedPath = mockPath ?? pathname;\r\n\r\n return (\r\n <BaseNavBar\r\n {...props}\r\n currentPath={resolvedPath || \"/\"}\r\n LinkWrapper={({ href, children, className, isActive, testId }) => (\r\n <Link\r\n href={href}\r\n className={className}\r\n aria-current={isActive ? \"page\" : undefined}\r\n data-testid={testId}\r\n >\r\n {children}\r\n </Link>\r\n )}\r\n classMap={styles}\r\n />\r\n );\r\n};\r\n\r\nexport default NavBar;\r\n"],"names":["getDefaultTheme","getDefaultRounding","getDefaultShadow","useMemo","combineClassNames","capitalize","jsx","item","jsxs","usePathname","Link"],"mappings":";;;;;;;;AAuBA,MAAM,aAAwC,CAAC;AAAA,EAC7C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,QAAQA,kBAAAA,gBAAA;AAAA,EACR,WAAWC,kBAAAA,mBAAA;AAAA,EACX,SAASC,kBAAAA,iBAAA;AAAA,EACT,eAAe,SAAS;AAC1B,MAAM;AACJ,QAAM,eAAeC,MAAAA;AAAAA,IACnB,MAAMC,WAAAA,kBAAkB,SAAS,WAAW,SAAS,KAAK,CAAC;AAAA,IAC3D,CAAC,UAAU,KAAK;AAAA,EAAA;AAGlB,QAAM,YAAYD,MAAAA;AAAAA,IAChB,MACEC,WAAAA;AAAAA,MACE,SAAS;AAAA,MACT,UAAU,SAAS,SAASC,WAAAA,WAAW,MAAM,CAAC,EAAE;AAAA,MAChD,YAAY,SAAS,QAAQA,WAAAA,WAAW,QAAQ,CAAC,EAAE;AAAA,IAAA;AAAA,IAEvD,CAAC,UAAU,QAAQ,QAAQ;AAAA,EAAA;AAG7B,SACEC,2BAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL,cAAW;AAAA,MACX,WAAW;AAAA,MACX,eAAa,GAAG,MAAM;AAAA,MAErB,UAAA,MAAM,IAAI,CAACC,OAAM,UAAU;AAC1B,cAAM,WAAW,gBAAgBA,MAAK;AAEtC,gBAAQ;AAAA,UACN;AAAA,UACAH,WAAAA,kBAAkB,SAAS,MAAM,YAAY,SAAS,MAAM;AAAA,QAAA;AAG9D,eACEI,2BAAAA;AAAAA,UAAC;AAAA,UAAA;AAAA,YAEC,MAAMD,MAAK;AAAA,YACX;AAAA,YACA,WAAWH,WAAAA;AAAAA,cACT;AAAA,cACA,YAAY,SAAS,cAAc;AAAA,YAAA;AAAA,YAErC,QAAQ,GAAG,MAAM,aAAaG,MAAK,MAAM,aAAa;AAAA,YACtD,gBAAc,WAAW,SAAS;AAAA,YAElC,UAAA;AAAA,cAAAD,2BAAAA;AAAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,WAAW,SAAS;AAAA,kBACpB,eAAY;AAAA,kBACZ,eAAa,GAAG,MAAM,aAAaC,MAAK,MAAM,aAAa;AAAA,kBAE1D,UAAAA,MAAK;AAAA,gBAAA;AAAA,cAAA;AAAA,6CAEP,QAAA,EAAK,WAAW,SAAS,OAAQ,gBAAK,MAAA,CAAM;AAAA,YAAA;AAAA,UAAA;AAAA,UAjBxC,GAAGA,MAAK,KAAK,IAAI,KAAK;AAAA,QAAA;AAAA,MAoBjC,CAAC;AAAA,IAAA;AAAA,EAAA;AAGP;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/EA,MAAM,SAAwD,CAAC;AAAA,EAC7D;AAAA,EACA,GAAG;AACL,MAAM;AACJ,QAAM,WAAWE,WAAAA,WAAAA,YAAA;AACjB,QAAM,eAAe,YAAY;AAEjC,SACEH,2BAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACE,GAAG;AAAA,MACJ,aAAa,gBAAgB;AAAA,MAC7B,aAAa,CAAC,EAAE,MAAM,UAAU,WAAW,UAAU,aACnDA,2BAAAA;AAAAA,QAACI,KAAAA;AAAAA,QAAA;AAAA,UACC;AAAA,UACA;AAAA,UACA,gBAAc,WAAW,SAAS;AAAA,UAClC,eAAa;AAAA,UAEZ;AAAA,QAAA;AAAA,MAAA;AAAA,MAGL,UAAU;AAAA,IAAA;AAAA,EAAA;AAGhB;;"}
|
package/dist/next/NavBar.cjs.js
CHANGED
package/dist/next/NavBar.js
CHANGED