boreal-ui 0.0.10 → 0.0.11
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/{Footer-bKgKgU6L.js → Footer-D_-eBUqK.js} +2 -2
- package/dist/core/{Footer-bKgKgU6L.js.map → Footer-D_-eBUqK.js.map} +1 -1
- package/dist/core/{Footer-B4Owy88y.cjs → Footer-DxYjXCde.cjs} +2 -2
- package/dist/core/{Footer-B4Owy88y.cjs.map → Footer-DxYjXCde.cjs.map} +1 -1
- package/dist/core/Footer.cjs.js +1 -1
- package/dist/core/Footer.js +1 -1
- package/dist/core/{Select-C4a_4B87.js → Select-BDwB-XRV.js} +2 -1
- package/dist/core/{Select-C4a_4B87.js.map → Select-BDwB-XRV.js.map} +1 -1
- package/dist/core/{Select-9F6p9ghR.cjs → Select-DhUEQ4W_.cjs} +2 -1
- package/dist/core/{Select-9F6p9ghR.cjs.map → Select-DhUEQ4W_.cjs.map} +1 -1
- package/dist/core/Select.cjs.js +1 -1
- package/dist/core/Select.js +1 -1
- package/dist/core/index.cjs.js +211 -2
- package/dist/core/index.cjs.js.map +1 -1
- package/dist/core/index.js +215 -4
- package/dist/core/index.js.map +1 -1
- package/dist/core/style.css +713 -0
- package/dist/next/{Footer-CQAWg2tl.js → Footer-BPjfubyG.js} +2 -2
- package/dist/next/{Footer-CQAWg2tl.js.map → Footer-BPjfubyG.js.map} +1 -1
- package/dist/next/{Footer-D2veQTa-.cjs → Footer-C6gSCcdC.cjs} +2 -2
- package/dist/next/{Footer-D2veQTa-.cjs.map → Footer-C6gSCcdC.cjs.map} +1 -1
- package/dist/next/Footer.cjs.js +1 -1
- package/dist/next/Footer.js +1 -1
- package/dist/next/{NavBar-DzRWv8W0.js → NavBar-CLfsYv5E.js} +3 -2
- package/dist/next/{NavBar-DzRWv8W0.js.map → NavBar-CLfsYv5E.js.map} +1 -1
- package/dist/next/{NavBar-CZtNDAdX.cjs → NavBar-COPlmHzy.cjs} +2 -1
- package/dist/next/{NavBar-CZtNDAdX.cjs.map → NavBar-COPlmHzy.cjs.map} +1 -1
- package/dist/next/NavBar.cjs.js +1 -1
- package/dist/next/NavBar.js +1 -1
- package/dist/next/{Select-_f1aZuKO.cjs → Select-BKprqV3i.cjs} +2 -1
- package/dist/next/{Select-_f1aZuKO.cjs.map → Select-BKprqV3i.cjs.map} +1 -1
- package/dist/next/{Select-DwWTQcCU.js → Select-_C8mTVb1.js} +2 -1
- package/dist/next/{Select-DwWTQcCU.js.map → Select-_C8mTVb1.js.map} +1 -1
- package/dist/next/Select.cjs.js +1 -1
- package/dist/next/Select.js +1 -1
- package/dist/next/index.cjs.js +297 -21
- package/dist/next/index.cjs.js.map +1 -1
- package/dist/next/index.js +303 -24
- package/dist/next/index.js.map +1 -1
- package/dist/next/style.css +696 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/types/components/Sidebar/Sidebar.types.d.ts +112 -0
- package/dist/types/components/Sidebar/Sidebar.types.d.ts.map +1 -0
- package/dist/types/components/Sidebar/SidebarBase.d.ts +5 -0
- package/dist/types/components/Sidebar/SidebarBase.d.ts.map +1 -0
- package/dist/types/components/Sidebar/core/Sidebar.d.ts +6 -0
- package/dist/types/components/Sidebar/core/Sidebar.d.ts.map +1 -0
- package/dist/types/components/Sidebar/next/Sidebar.d.ts +5 -0
- package/dist/types/components/Sidebar/next/Sidebar.d.ts.map +1 -0
- package/dist/types/index.core.d.ts +1 -0
- package/dist/types/index.core.d.ts.map +1 -1
- package/dist/types/index.next.d.ts +1 -0
- package/dist/types/index.next.d.ts.map +1 -1
- package/package.json +2 -2
|
@@ -4,7 +4,7 @@ import { c as combineClassNames } from "./classNames-AS8QjFq7.js";
|
|
|
4
4
|
import { a as getDefaultRounding, b as getDefaultShadow, d as getDefaultTheme } from "./boreal-style-config-BILmxkZG.js";
|
|
5
5
|
import { c as capitalize } from "./capitalize-C0TSQSPh.js";
|
|
6
6
|
import { I as IconButton } from "./IconButton-B6cAP2hY.js";
|
|
7
|
-
import { S as Select } from "./Select-
|
|
7
|
+
import { S as Select } from "./Select-BDwB-XRV.js";
|
|
8
8
|
import { a as ThemeContext } from "./ThemeContext-Bo0vLczy.js";
|
|
9
9
|
import { g as getAllColorSchemes } from "./registerColorSheme-BPX0H7hl.js";
|
|
10
10
|
const UserThemeSettings = ({
|
|
@@ -206,4 +206,4 @@ export {
|
|
|
206
206
|
Footer as F,
|
|
207
207
|
UserThemeSettings as U
|
|
208
208
|
};
|
|
209
|
-
//# sourceMappingURL=Footer-
|
|
209
|
+
//# sourceMappingURL=Footer-D_-eBUqK.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Footer-bKgKgU6L.js","sources":["../../src/components/Select/ThemeSelect/core/ThemeSelect.tsx","../../src/components/Footer/FooterBase.tsx","../../src/components/Footer/core/Footer.tsx"],"sourcesContent":["import React, { useContext } from \"react\";\r\nimport Select from \"../../core/Select\";\r\nimport { ThemeContext } from \"../../../../context/ThemeContext\";\r\nimport { RoundingType, ShadowType, StateType, ThemeType } from \"@/types/types\";\r\nimport { getAllColorSchemes } from \"../../../../styles/colorSchemeRegistry\";\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 \"data-testid\": testId = \"theme-select\",\r\n state = \"\",\r\n}) => {\r\n const allSchemes = getAllColorSchemes();\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\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 shadow={shadow}\r\n rounding={rounding}\r\n state={state}\r\n data-testid={`${testId}-select`}\r\n options={options}\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","import React from \"react\";\r\nimport FooterBase from \"../FooterBase\";\r\nimport { FooterProps } from \"../Footer.types\";\r\nimport IconButton from \"../../IconButton/core/IconButton\";\r\nimport ThemeSelect from \"../../Select/ThemeSelect/core/ThemeSelect\";\r\nimport \"./Footer.scss\";\r\n\r\nconst classes = {\r\n footer: \"footer\",\r\n\r\n primary: \"footer_primary\",\r\n secondary: \"footer_secondary\",\r\n tertiary: \"footer_tertiary\",\r\n quaternary: \"footer_quaternary\",\r\n clear: \"footer_clear\",\r\n\r\n shadowNone: \"footer_shadow-None\",\r\n shadowLight: \"footer_shadow-Light\",\r\n shadowMedium: \"footer_shadow-Medium\",\r\n shadowStrong: \"footer_shadow-Strong\",\r\n shadowIntense: \"footer_shadow-Intense\",\r\n\r\n roundNone: \"footer_round-None\",\r\n roundSmall: \"footer_round-Small\",\r\n roundMedium: \"footer_round-Medium\",\r\n roundLarge: \"footer_round-Large\",\r\n\r\n attachmentStatic: \"footer_attachment-static\",\r\n attachmentFixed: \"footer_attachment-fixed\",\r\n attachmentSticky: \"footer_attachment-sticky\",\r\n\r\n content: \"footer_content\",\r\n logo: \"footer_logo\",\r\n left: \"footer_left\",\r\n links: \"footer_links\",\r\n link: \"footer_link\",\r\n social: \"footer_social\",\r\n\r\n themeToggle: \"footer_theme_toggle\",\r\n};\r\n\r\nconst Footer: React.FC<FooterProps> = (props) => {\r\n return (\r\n <FooterBase\r\n {...props}\r\n IconButton={IconButton}\r\n ThemeSelect={ThemeSelect}\r\n classMap={classes}\r\n />\r\n );\r\n};\r\n\r\nexport default Footer;\r\n"],"names":["IconButton","ThemeSelect"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Footer-D_-eBUqK.js","sources":["../../src/components/Select/ThemeSelect/core/ThemeSelect.tsx","../../src/components/Footer/FooterBase.tsx","../../src/components/Footer/core/Footer.tsx"],"sourcesContent":["import React, { useContext } from \"react\";\r\nimport Select from \"../../core/Select\";\r\nimport { ThemeContext } from \"../../../../context/ThemeContext\";\r\nimport { RoundingType, ShadowType, StateType, ThemeType } from \"@/types/types\";\r\nimport { getAllColorSchemes } from \"../../../../styles/colorSchemeRegistry\";\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 \"data-testid\": testId = \"theme-select\",\r\n state = \"\",\r\n}) => {\r\n const allSchemes = getAllColorSchemes();\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\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 shadow={shadow}\r\n rounding={rounding}\r\n state={state}\r\n data-testid={`${testId}-select`}\r\n options={options}\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","import React from \"react\";\r\nimport FooterBase from \"../FooterBase\";\r\nimport { FooterProps } from \"../Footer.types\";\r\nimport IconButton from \"../../IconButton/core/IconButton\";\r\nimport ThemeSelect from \"../../Select/ThemeSelect/core/ThemeSelect\";\r\nimport \"./Footer.scss\";\r\n\r\nconst classes = {\r\n footer: \"footer\",\r\n\r\n primary: \"footer_primary\",\r\n secondary: \"footer_secondary\",\r\n tertiary: \"footer_tertiary\",\r\n quaternary: \"footer_quaternary\",\r\n clear: \"footer_clear\",\r\n\r\n shadowNone: \"footer_shadow-None\",\r\n shadowLight: \"footer_shadow-Light\",\r\n shadowMedium: \"footer_shadow-Medium\",\r\n shadowStrong: \"footer_shadow-Strong\",\r\n shadowIntense: \"footer_shadow-Intense\",\r\n\r\n roundNone: \"footer_round-None\",\r\n roundSmall: \"footer_round-Small\",\r\n roundMedium: \"footer_round-Medium\",\r\n roundLarge: \"footer_round-Large\",\r\n\r\n attachmentStatic: \"footer_attachment-static\",\r\n attachmentFixed: \"footer_attachment-fixed\",\r\n attachmentSticky: \"footer_attachment-sticky\",\r\n\r\n content: \"footer_content\",\r\n logo: \"footer_logo\",\r\n left: \"footer_left\",\r\n links: \"footer_links\",\r\n link: \"footer_link\",\r\n social: \"footer_social\",\r\n\r\n themeToggle: \"footer_theme_toggle\",\r\n};\r\n\r\nconst Footer: React.FC<FooterProps> = (props) => {\r\n return (\r\n <FooterBase\r\n {...props}\r\n IconButton={IconButton}\r\n ThemeSelect={ThemeSelect}\r\n classMap={classes}\r\n />\r\n );\r\n};\r\n\r\nexport default Footer;\r\n"],"names":["IconButton","ThemeSelect"],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@ const classNames = require("./classNames-BcWMx052.cjs");
|
|
|
5
5
|
const borealStyleConfig = require("./boreal-style-config-Rr5d5Qts.cjs");
|
|
6
6
|
const capitalize = require("./capitalize-DoV-nOmN.cjs");
|
|
7
7
|
const IconButton = require("./IconButton-BxUXK-xn.cjs");
|
|
8
|
-
const Select = require("./Select-
|
|
8
|
+
const Select = require("./Select-DhUEQ4W_.cjs");
|
|
9
9
|
const ThemeContext = require("./ThemeContext-CtZXUeeU.cjs");
|
|
10
10
|
const registerColorSheme = require("./registerColorSheme-nhYu5hbY.cjs");
|
|
11
11
|
const UserThemeSettings = ({
|
|
@@ -205,4 +205,4 @@ const Footer = (props) => {
|
|
|
205
205
|
};
|
|
206
206
|
exports.Footer = Footer;
|
|
207
207
|
exports.UserThemeSettings = UserThemeSettings;
|
|
208
|
-
//# sourceMappingURL=Footer-
|
|
208
|
+
//# sourceMappingURL=Footer-DxYjXCde.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Footer-B4Owy88y.cjs","sources":["../../src/components/Select/ThemeSelect/core/ThemeSelect.tsx","../../src/components/Footer/FooterBase.tsx","../../src/components/Footer/core/Footer.tsx"],"sourcesContent":["import React, { useContext } from \"react\";\r\nimport Select from \"../../core/Select\";\r\nimport { ThemeContext } from \"../../../../context/ThemeContext\";\r\nimport { RoundingType, ShadowType, StateType, ThemeType } from \"@/types/types\";\r\nimport { getAllColorSchemes } from \"../../../../styles/colorSchemeRegistry\";\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 \"data-testid\": testId = \"theme-select\",\r\n state = \"\",\r\n}) => {\r\n const allSchemes = getAllColorSchemes();\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\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 shadow={shadow}\r\n rounding={rounding}\r\n state={state}\r\n data-testid={`${testId}-select`}\r\n options={options}\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","import React from \"react\";\r\nimport FooterBase from \"../FooterBase\";\r\nimport { FooterProps } from \"../Footer.types\";\r\nimport IconButton from \"../../IconButton/core/IconButton\";\r\nimport ThemeSelect from \"../../Select/ThemeSelect/core/ThemeSelect\";\r\nimport \"./Footer.scss\";\r\n\r\nconst classes = {\r\n footer: \"footer\",\r\n\r\n primary: \"footer_primary\",\r\n secondary: \"footer_secondary\",\r\n tertiary: \"footer_tertiary\",\r\n quaternary: \"footer_quaternary\",\r\n clear: \"footer_clear\",\r\n\r\n shadowNone: \"footer_shadow-None\",\r\n shadowLight: \"footer_shadow-Light\",\r\n shadowMedium: \"footer_shadow-Medium\",\r\n shadowStrong: \"footer_shadow-Strong\",\r\n shadowIntense: \"footer_shadow-Intense\",\r\n\r\n roundNone: \"footer_round-None\",\r\n roundSmall: \"footer_round-Small\",\r\n roundMedium: \"footer_round-Medium\",\r\n roundLarge: \"footer_round-Large\",\r\n\r\n attachmentStatic: \"footer_attachment-static\",\r\n attachmentFixed: \"footer_attachment-fixed\",\r\n attachmentSticky: \"footer_attachment-sticky\",\r\n\r\n content: \"footer_content\",\r\n logo: \"footer_logo\",\r\n left: \"footer_left\",\r\n links: \"footer_links\",\r\n link: \"footer_link\",\r\n social: \"footer_social\",\r\n\r\n themeToggle: \"footer_theme_toggle\",\r\n};\r\n\r\nconst Footer: React.FC<FooterProps> = (props) => {\r\n return (\r\n <FooterBase\r\n {...props}\r\n IconButton={IconButton}\r\n ThemeSelect={ThemeSelect}\r\n classMap={classes}\r\n />\r\n );\r\n};\r\n\r\nexport default Footer;\r\n"],"names":["getDefaultTheme","getDefaultShadow","getDefaultRounding","getAllColorSchemes","useContext","ThemeContext","jsx","Select","IconButton","useMemo","combineClassNames","capitalize","jsxs","ThemeSelect"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Footer-DxYjXCde.cjs","sources":["../../src/components/Select/ThemeSelect/core/ThemeSelect.tsx","../../src/components/Footer/FooterBase.tsx","../../src/components/Footer/core/Footer.tsx"],"sourcesContent":["import React, { useContext } from \"react\";\r\nimport Select from \"../../core/Select\";\r\nimport { ThemeContext } from \"../../../../context/ThemeContext\";\r\nimport { RoundingType, ShadowType, StateType, ThemeType } from \"@/types/types\";\r\nimport { getAllColorSchemes } from \"../../../../styles/colorSchemeRegistry\";\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 \"data-testid\": testId = \"theme-select\",\r\n state = \"\",\r\n}) => {\r\n const allSchemes = getAllColorSchemes();\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\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 shadow={shadow}\r\n rounding={rounding}\r\n state={state}\r\n data-testid={`${testId}-select`}\r\n options={options}\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","import React from \"react\";\r\nimport FooterBase from \"../FooterBase\";\r\nimport { FooterProps } from \"../Footer.types\";\r\nimport IconButton from \"../../IconButton/core/IconButton\";\r\nimport ThemeSelect from \"../../Select/ThemeSelect/core/ThemeSelect\";\r\nimport \"./Footer.scss\";\r\n\r\nconst classes = {\r\n footer: \"footer\",\r\n\r\n primary: \"footer_primary\",\r\n secondary: \"footer_secondary\",\r\n tertiary: \"footer_tertiary\",\r\n quaternary: \"footer_quaternary\",\r\n clear: \"footer_clear\",\r\n\r\n shadowNone: \"footer_shadow-None\",\r\n shadowLight: \"footer_shadow-Light\",\r\n shadowMedium: \"footer_shadow-Medium\",\r\n shadowStrong: \"footer_shadow-Strong\",\r\n shadowIntense: \"footer_shadow-Intense\",\r\n\r\n roundNone: \"footer_round-None\",\r\n roundSmall: \"footer_round-Small\",\r\n roundMedium: \"footer_round-Medium\",\r\n roundLarge: \"footer_round-Large\",\r\n\r\n attachmentStatic: \"footer_attachment-static\",\r\n attachmentFixed: \"footer_attachment-fixed\",\r\n attachmentSticky: \"footer_attachment-sticky\",\r\n\r\n content: \"footer_content\",\r\n logo: \"footer_logo\",\r\n left: \"footer_left\",\r\n links: \"footer_links\",\r\n link: \"footer_link\",\r\n social: \"footer_social\",\r\n\r\n themeToggle: \"footer_theme_toggle\",\r\n};\r\n\r\nconst Footer: React.FC<FooterProps> = (props) => {\r\n return (\r\n <FooterBase\r\n {...props}\r\n IconButton={IconButton}\r\n ThemeSelect={ThemeSelect}\r\n classMap={classes}\r\n />\r\n );\r\n};\r\n\r\nexport default Footer;\r\n"],"names":["getDefaultTheme","getDefaultShadow","getDefaultRounding","getAllColorSchemes","useContext","ThemeContext","jsx","Select","IconButton","useMemo","combineClassNames","capitalize","jsxs","ThemeSelect"],"mappings":"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"}
|
package/dist/core/Footer.cjs.js
CHANGED
package/dist/core/Footer.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Select-C4a_4B87.js","sources":["../../src/Icons/CheveronDownIcon.tsx","../../src/components/Select/SelectBase.tsx","../../src/components/Select/core/Select.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","import {\r\n forwardRef,\r\n ChangeEvent,\r\n useId,\r\n useMemo,\r\n useEffect,\r\n useState,\r\n} from \"react\";\r\nimport { SelectProps } from \"./Select.types\";\r\nimport { ChevronDownIcon } from \"../../Icons\";\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\ninterface BaseSelectProps extends SelectProps {\r\n classMap: Record<string, string>;\r\n}\r\n\r\nconst BaseSelect = forwardRef<HTMLSelectElement, BaseSelectProps>(\r\n (\r\n {\r\n theme = getDefaultTheme(),\r\n state = \"\",\r\n outline = false,\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n options,\r\n value,\r\n onChange,\r\n placeholder = \"Select an option\",\r\n ariaLabel,\r\n ariaDescription,\r\n disabled = false,\r\n className = \"\",\r\n classMap,\r\n asyncOptions,\r\n pollInterval = 0,\r\n \"data-testid\": testId = \"select\",\r\n },\r\n ref\r\n ) => {\r\n const id = useId();\r\n const selectId = `${id}-select`;\r\n const descId = ariaDescription ? `${id}-desc` : undefined;\r\n\r\n const [internalOptions, setInternalOptions] = useState(options);\r\n\r\n useEffect(() => {\r\n if (!asyncOptions) return;\r\n\r\n let isMounted = true;\r\n\r\n const load = async () => {\r\n try {\r\n const fetched = await asyncOptions(\"\");\r\n if (isMounted) setInternalOptions(fetched);\r\n } catch (err) {\r\n console.error(\"Failed to load options:\", err);\r\n }\r\n };\r\n\r\n load();\r\n\r\n if (pollInterval > 0) {\r\n const intervalId = setInterval(load, pollInterval);\r\n return () => {\r\n clearInterval(intervalId);\r\n isMounted = false;\r\n };\r\n }\r\n\r\n return () => {\r\n isMounted = false;\r\n };\r\n }, [asyncOptions, pollInterval]);\r\n\r\n const handleChange = (event: ChangeEvent<HTMLSelectElement>) => {\r\n onChange(event.target.value);\r\n };\r\n\r\n const wrapperClasses = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.wrapper,\r\n classMap[theme],\r\n classMap[state],\r\n className,\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n outline ? classMap.outline : \"\",\r\n disabled ? classMap.disabled : \"\"\r\n ),\r\n [classMap, theme, state, className, shadow, rounding, outline, disabled]\r\n );\r\n\r\n const selectClasses = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.select,\r\n classMap[theme],\r\n classMap[state],\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n outline ? classMap.outline : \"\"\r\n ),\r\n [classMap, theme, state, outline]\r\n );\r\n\r\n return (\r\n <div className={wrapperClasses} data-testid={testId}>\r\n <select\r\n ref={ref}\r\n id={selectId}\r\n value={value}\r\n onChange={handleChange}\r\n className={selectClasses}\r\n aria-label={ariaLabel || placeholder}\r\n aria-describedby={descId}\r\n aria-disabled={disabled}\r\n disabled={disabled}\r\n data-testid={`${testId}-input`}\r\n >\r\n <option value=\"\" disabled hidden>\r\n {placeholder}\r\n </option>\r\n {(asyncOptions ? internalOptions : options).map((option) => (\r\n <option\r\n key={option.value}\r\n value={option.value}\r\n data-testid={`${testId}-option-${option.value}`}\r\n >\r\n {option.label}\r\n </option>\r\n ))}\r\n </select>\r\n\r\n <div\r\n className={`${classMap.icon} ${classMap[theme]} ${\r\n disabled && classMap.disabled ? classMap.disabled : \"\"\r\n }`}\r\n aria-hidden=\"true\"\r\n data-testid={`${testId}-icon`}\r\n >\r\n <ChevronDownIcon />\r\n </div>\r\n\r\n {ariaDescription && (\r\n <span\r\n id={descId}\r\n className=\"sr-only\"\r\n data-testid={`${testId}-description`}\r\n >\r\n {ariaDescription}\r\n </span>\r\n )}\r\n </div>\r\n );\r\n }\r\n);\r\n\r\nBaseSelect.displayName = \"BaseSelect\";\r\nexport default BaseSelect;\r\n","import React from \"react\";\r\nimport BaseSelect from \"../SelectBase\";\r\nimport \"./Select.scss\";\r\nimport { SelectProps } from \"../Select.types\";\r\n\r\nconst classes = {\r\n wrapper: \"select_wrapper\",\r\n select: \"select\",\r\n outline: \"select_outline\",\r\n\r\n primary: \"select_primary\",\r\n secondary: \"select_secondary\",\r\n tertiary: \"select_tertiary\",\r\n quaternary: \"select_quaternary\",\r\n\r\n success: \"select_success\",\r\n error: \"select_error\",\r\n warning: \"select_warning\",\r\n\r\n clear: \"select_clear\",\r\n\r\n icon: \"select_icon\",\r\n disabled: \"select_disabled\",\r\n\r\n shadowNone: \"select_shadow-None\",\r\n shadowLight: \"select_shadow-Light\",\r\n shadowMedium: \"select_shadow-Medium\",\r\n shadowStrong: \"select_shadow-Strong\",\r\n shadowIntense: \"select_shadow-Intense\",\r\n\r\n roundNone: \"select_round-None\",\r\n roundSmall: \"select_round-Small\",\r\n roundMedium: \"select_round-Medium\",\r\n roundLarge: \"select_round-Large\",\r\n};\r\n\r\nconst Select = React.forwardRef<HTMLSelectElement, SelectProps>(\r\n (props, ref) => {\r\n return <BaseSelect {...props} ref={ref} classMap={classes} />;\r\n }\r\n);\r\n\r\nSelect.displayName = \"Select\";\r\nexport default Select;\r\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Select-BDwB-XRV.js","sources":["../../src/Icons/CheveronDownIcon.tsx","../../src/components/Select/SelectBase.tsx","../../src/components/Select/core/Select.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","import {\r\n forwardRef,\r\n ChangeEvent,\r\n useId,\r\n useMemo,\r\n useEffect,\r\n useState,\r\n} from \"react\";\r\nimport { SelectProps } from \"./Select.types\";\r\nimport { ChevronDownIcon } from \"../../Icons\";\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\ninterface BaseSelectProps extends SelectProps {\r\n classMap: Record<string, string>;\r\n}\r\n\r\nconst BaseSelect = forwardRef<HTMLSelectElement, BaseSelectProps>(\r\n (\r\n {\r\n theme = getDefaultTheme(),\r\n state = \"\",\r\n outline = false,\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n options,\r\n value,\r\n onChange,\r\n placeholder = \"Select an option\",\r\n ariaLabel,\r\n ariaDescription,\r\n disabled = false,\r\n className = \"\",\r\n classMap,\r\n asyncOptions,\r\n pollInterval = 0,\r\n \"data-testid\": testId = \"select\",\r\n },\r\n ref\r\n ) => {\r\n const id = useId();\r\n const selectId = `${id}-select`;\r\n const descId = ariaDescription ? `${id}-desc` : undefined;\r\n\r\n const [internalOptions, setInternalOptions] = useState(options);\r\n\r\n useEffect(() => {\r\n if (!asyncOptions) return;\r\n\r\n let isMounted = true;\r\n\r\n const load = async () => {\r\n try {\r\n const fetched = await asyncOptions(\"\");\r\n if (isMounted) setInternalOptions(fetched);\r\n } catch (err) {\r\n console.error(\"Failed to load options:\", err);\r\n }\r\n };\r\n\r\n load();\r\n\r\n if (pollInterval > 0) {\r\n const intervalId = setInterval(load, pollInterval);\r\n return () => {\r\n clearInterval(intervalId);\r\n isMounted = false;\r\n };\r\n }\r\n\r\n return () => {\r\n isMounted = false;\r\n };\r\n }, [asyncOptions, pollInterval]);\r\n\r\n const handleChange = (event: ChangeEvent<HTMLSelectElement>) => {\r\n onChange(event.target.value);\r\n };\r\n\r\n const wrapperClasses = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.wrapper,\r\n classMap[theme],\r\n classMap[state],\r\n className,\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n outline ? classMap.outline : \"\",\r\n disabled ? classMap.disabled : \"\"\r\n ),\r\n [classMap, theme, state, className, shadow, rounding, outline, disabled]\r\n );\r\n\r\n const selectClasses = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.select,\r\n classMap[theme],\r\n classMap[state],\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n outline ? classMap.outline : \"\"\r\n ),\r\n [classMap, theme, state, outline]\r\n );\r\n\r\n return (\r\n <div className={wrapperClasses} data-testid={testId}>\r\n <select\r\n ref={ref}\r\n id={selectId}\r\n value={value}\r\n onChange={handleChange}\r\n className={selectClasses}\r\n aria-label={ariaLabel || placeholder}\r\n aria-describedby={descId}\r\n aria-disabled={disabled}\r\n disabled={disabled}\r\n data-testid={`${testId}-input`}\r\n >\r\n <option value=\"\" disabled hidden>\r\n {placeholder}\r\n </option>\r\n {(asyncOptions ? internalOptions : options).map((option) => (\r\n <option\r\n key={option.value}\r\n value={option.value}\r\n data-testid={`${testId}-option-${option.value}`}\r\n >\r\n {option.label}\r\n </option>\r\n ))}\r\n </select>\r\n\r\n <div\r\n className={`${classMap.icon} ${classMap[theme]} ${\r\n disabled && classMap.disabled ? classMap.disabled : \"\"\r\n }`}\r\n aria-hidden=\"true\"\r\n data-testid={`${testId}-icon`}\r\n >\r\n <ChevronDownIcon />\r\n </div>\r\n\r\n {ariaDescription && (\r\n <span\r\n id={descId}\r\n className=\"sr-only\"\r\n data-testid={`${testId}-description`}\r\n >\r\n {ariaDescription}\r\n </span>\r\n )}\r\n </div>\r\n );\r\n }\r\n);\r\n\r\nBaseSelect.displayName = \"BaseSelect\";\r\nexport default BaseSelect;\r\n","import React from \"react\";\r\nimport BaseSelect from \"../SelectBase\";\r\nimport \"./Select.scss\";\r\nimport { SelectProps } from \"../Select.types\";\r\n\r\nconst classes = {\r\n wrapper: \"select_wrapper\",\r\n select: \"select\",\r\n outline: \"select_outline\",\r\n\r\n primary: \"select_primary\",\r\n secondary: \"select_secondary\",\r\n tertiary: \"select_tertiary\",\r\n quaternary: \"select_quaternary\",\r\n\r\n success: \"select_success\",\r\n error: \"select_error\",\r\n warning: \"select_warning\",\r\n\r\n clear: \"select_clear\",\r\n\r\n icon: \"select_icon\",\r\n disabled: \"select_disabled\",\r\n\r\n shadowNone: \"select_shadow-None\",\r\n shadowLight: \"select_shadow-Light\",\r\n shadowMedium: \"select_shadow-Medium\",\r\n shadowStrong: \"select_shadow-Strong\",\r\n shadowIntense: \"select_shadow-Intense\",\r\n\r\n roundNone: \"select_round-None\",\r\n roundSmall: \"select_round-Small\",\r\n roundMedium: \"select_round-Medium\",\r\n roundLarge: \"select_round-Large\",\r\n};\r\n\r\nconst Select = React.forwardRef<HTMLSelectElement, SelectProps>(\r\n (props, ref) => {\r\n return <BaseSelect {...props} ref={ref} classMap={classes} />;\r\n }\r\n);\r\n\r\nSelect.displayName = \"Select\";\r\nexport default Select;\r\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Select-9F6p9ghR.cjs","sources":["../../src/Icons/CheveronDownIcon.tsx","../../src/components/Select/SelectBase.tsx","../../src/components/Select/core/Select.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","import {\r\n forwardRef,\r\n ChangeEvent,\r\n useId,\r\n useMemo,\r\n useEffect,\r\n useState,\r\n} from \"react\";\r\nimport { SelectProps } from \"./Select.types\";\r\nimport { ChevronDownIcon } from \"../../Icons\";\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\ninterface BaseSelectProps extends SelectProps {\r\n classMap: Record<string, string>;\r\n}\r\n\r\nconst BaseSelect = forwardRef<HTMLSelectElement, BaseSelectProps>(\r\n (\r\n {\r\n theme = getDefaultTheme(),\r\n state = \"\",\r\n outline = false,\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n options,\r\n value,\r\n onChange,\r\n placeholder = \"Select an option\",\r\n ariaLabel,\r\n ariaDescription,\r\n disabled = false,\r\n className = \"\",\r\n classMap,\r\n asyncOptions,\r\n pollInterval = 0,\r\n \"data-testid\": testId = \"select\",\r\n },\r\n ref\r\n ) => {\r\n const id = useId();\r\n const selectId = `${id}-select`;\r\n const descId = ariaDescription ? `${id}-desc` : undefined;\r\n\r\n const [internalOptions, setInternalOptions] = useState(options);\r\n\r\n useEffect(() => {\r\n if (!asyncOptions) return;\r\n\r\n let isMounted = true;\r\n\r\n const load = async () => {\r\n try {\r\n const fetched = await asyncOptions(\"\");\r\n if (isMounted) setInternalOptions(fetched);\r\n } catch (err) {\r\n console.error(\"Failed to load options:\", err);\r\n }\r\n };\r\n\r\n load();\r\n\r\n if (pollInterval > 0) {\r\n const intervalId = setInterval(load, pollInterval);\r\n return () => {\r\n clearInterval(intervalId);\r\n isMounted = false;\r\n };\r\n }\r\n\r\n return () => {\r\n isMounted = false;\r\n };\r\n }, [asyncOptions, pollInterval]);\r\n\r\n const handleChange = (event: ChangeEvent<HTMLSelectElement>) => {\r\n onChange(event.target.value);\r\n };\r\n\r\n const wrapperClasses = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.wrapper,\r\n classMap[theme],\r\n classMap[state],\r\n className,\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n outline ? classMap.outline : \"\",\r\n disabled ? classMap.disabled : \"\"\r\n ),\r\n [classMap, theme, state, className, shadow, rounding, outline, disabled]\r\n );\r\n\r\n const selectClasses = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.select,\r\n classMap[theme],\r\n classMap[state],\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n outline ? classMap.outline : \"\"\r\n ),\r\n [classMap, theme, state, outline]\r\n );\r\n\r\n return (\r\n <div className={wrapperClasses} data-testid={testId}>\r\n <select\r\n ref={ref}\r\n id={selectId}\r\n value={value}\r\n onChange={handleChange}\r\n className={selectClasses}\r\n aria-label={ariaLabel || placeholder}\r\n aria-describedby={descId}\r\n aria-disabled={disabled}\r\n disabled={disabled}\r\n data-testid={`${testId}-input`}\r\n >\r\n <option value=\"\" disabled hidden>\r\n {placeholder}\r\n </option>\r\n {(asyncOptions ? internalOptions : options).map((option) => (\r\n <option\r\n key={option.value}\r\n value={option.value}\r\n data-testid={`${testId}-option-${option.value}`}\r\n >\r\n {option.label}\r\n </option>\r\n ))}\r\n </select>\r\n\r\n <div\r\n className={`${classMap.icon} ${classMap[theme]} ${\r\n disabled && classMap.disabled ? classMap.disabled : \"\"\r\n }`}\r\n aria-hidden=\"true\"\r\n data-testid={`${testId}-icon`}\r\n >\r\n <ChevronDownIcon />\r\n </div>\r\n\r\n {ariaDescription && (\r\n <span\r\n id={descId}\r\n className=\"sr-only\"\r\n data-testid={`${testId}-description`}\r\n >\r\n {ariaDescription}\r\n </span>\r\n )}\r\n </div>\r\n );\r\n }\r\n);\r\n\r\nBaseSelect.displayName = \"BaseSelect\";\r\nexport default BaseSelect;\r\n","import React from \"react\";\r\nimport BaseSelect from \"../SelectBase\";\r\nimport \"./Select.scss\";\r\nimport { SelectProps } from \"../Select.types\";\r\n\r\nconst classes = {\r\n wrapper: \"select_wrapper\",\r\n select: \"select\",\r\n outline: \"select_outline\",\r\n\r\n primary: \"select_primary\",\r\n secondary: \"select_secondary\",\r\n tertiary: \"select_tertiary\",\r\n quaternary: \"select_quaternary\",\r\n\r\n success: \"select_success\",\r\n error: \"select_error\",\r\n warning: \"select_warning\",\r\n\r\n clear: \"select_clear\",\r\n\r\n icon: \"select_icon\",\r\n disabled: \"select_disabled\",\r\n\r\n shadowNone: \"select_shadow-None\",\r\n shadowLight: \"select_shadow-Light\",\r\n shadowMedium: \"select_shadow-Medium\",\r\n shadowStrong: \"select_shadow-Strong\",\r\n shadowIntense: \"select_shadow-Intense\",\r\n\r\n roundNone: \"select_round-None\",\r\n roundSmall: \"select_round-Small\",\r\n roundMedium: \"select_round-Medium\",\r\n roundLarge: \"select_round-Large\",\r\n};\r\n\r\nconst Select = React.forwardRef<HTMLSelectElement, SelectProps>(\r\n (props, ref) => {\r\n return <BaseSelect {...props} ref={ref} classMap={classes} />;\r\n }\r\n);\r\n\r\nSelect.displayName = \"Select\";\r\nexport default Select;\r\n"],"names":["jsx","forwardRef","getDefaultTheme","getDefaultRounding","getDefaultShadow","useId","useState","useEffect","useMemo","combineClassNames","capitalize","jsxs"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Select-DhUEQ4W_.cjs","sources":["../../src/Icons/CheveronDownIcon.tsx","../../src/components/Select/SelectBase.tsx","../../src/components/Select/core/Select.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","import {\r\n forwardRef,\r\n ChangeEvent,\r\n useId,\r\n useMemo,\r\n useEffect,\r\n useState,\r\n} from \"react\";\r\nimport { SelectProps } from \"./Select.types\";\r\nimport { ChevronDownIcon } from \"../../Icons\";\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\ninterface BaseSelectProps extends SelectProps {\r\n classMap: Record<string, string>;\r\n}\r\n\r\nconst BaseSelect = forwardRef<HTMLSelectElement, BaseSelectProps>(\r\n (\r\n {\r\n theme = getDefaultTheme(),\r\n state = \"\",\r\n outline = false,\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n options,\r\n value,\r\n onChange,\r\n placeholder = \"Select an option\",\r\n ariaLabel,\r\n ariaDescription,\r\n disabled = false,\r\n className = \"\",\r\n classMap,\r\n asyncOptions,\r\n pollInterval = 0,\r\n \"data-testid\": testId = \"select\",\r\n },\r\n ref\r\n ) => {\r\n const id = useId();\r\n const selectId = `${id}-select`;\r\n const descId = ariaDescription ? `${id}-desc` : undefined;\r\n\r\n const [internalOptions, setInternalOptions] = useState(options);\r\n\r\n useEffect(() => {\r\n if (!asyncOptions) return;\r\n\r\n let isMounted = true;\r\n\r\n const load = async () => {\r\n try {\r\n const fetched = await asyncOptions(\"\");\r\n if (isMounted) setInternalOptions(fetched);\r\n } catch (err) {\r\n console.error(\"Failed to load options:\", err);\r\n }\r\n };\r\n\r\n load();\r\n\r\n if (pollInterval > 0) {\r\n const intervalId = setInterval(load, pollInterval);\r\n return () => {\r\n clearInterval(intervalId);\r\n isMounted = false;\r\n };\r\n }\r\n\r\n return () => {\r\n isMounted = false;\r\n };\r\n }, [asyncOptions, pollInterval]);\r\n\r\n const handleChange = (event: ChangeEvent<HTMLSelectElement>) => {\r\n onChange(event.target.value);\r\n };\r\n\r\n const wrapperClasses = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.wrapper,\r\n classMap[theme],\r\n classMap[state],\r\n className,\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n outline ? classMap.outline : \"\",\r\n disabled ? classMap.disabled : \"\"\r\n ),\r\n [classMap, theme, state, className, shadow, rounding, outline, disabled]\r\n );\r\n\r\n const selectClasses = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.select,\r\n classMap[theme],\r\n classMap[state],\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n outline ? classMap.outline : \"\"\r\n ),\r\n [classMap, theme, state, outline]\r\n );\r\n\r\n return (\r\n <div className={wrapperClasses} data-testid={testId}>\r\n <select\r\n ref={ref}\r\n id={selectId}\r\n value={value}\r\n onChange={handleChange}\r\n className={selectClasses}\r\n aria-label={ariaLabel || placeholder}\r\n aria-describedby={descId}\r\n aria-disabled={disabled}\r\n disabled={disabled}\r\n data-testid={`${testId}-input`}\r\n >\r\n <option value=\"\" disabled hidden>\r\n {placeholder}\r\n </option>\r\n {(asyncOptions ? internalOptions : options).map((option) => (\r\n <option\r\n key={option.value}\r\n value={option.value}\r\n data-testid={`${testId}-option-${option.value}`}\r\n >\r\n {option.label}\r\n </option>\r\n ))}\r\n </select>\r\n\r\n <div\r\n className={`${classMap.icon} ${classMap[theme]} ${\r\n disabled && classMap.disabled ? classMap.disabled : \"\"\r\n }`}\r\n aria-hidden=\"true\"\r\n data-testid={`${testId}-icon`}\r\n >\r\n <ChevronDownIcon />\r\n </div>\r\n\r\n {ariaDescription && (\r\n <span\r\n id={descId}\r\n className=\"sr-only\"\r\n data-testid={`${testId}-description`}\r\n >\r\n {ariaDescription}\r\n </span>\r\n )}\r\n </div>\r\n );\r\n }\r\n);\r\n\r\nBaseSelect.displayName = \"BaseSelect\";\r\nexport default BaseSelect;\r\n","import React from \"react\";\r\nimport BaseSelect from \"../SelectBase\";\r\nimport \"./Select.scss\";\r\nimport { SelectProps } from \"../Select.types\";\r\n\r\nconst classes = {\r\n wrapper: \"select_wrapper\",\r\n select: \"select\",\r\n outline: \"select_outline\",\r\n\r\n primary: \"select_primary\",\r\n secondary: \"select_secondary\",\r\n tertiary: \"select_tertiary\",\r\n quaternary: \"select_quaternary\",\r\n\r\n success: \"select_success\",\r\n error: \"select_error\",\r\n warning: \"select_warning\",\r\n\r\n clear: \"select_clear\",\r\n\r\n icon: \"select_icon\",\r\n disabled: \"select_disabled\",\r\n\r\n shadowNone: \"select_shadow-None\",\r\n shadowLight: \"select_shadow-Light\",\r\n shadowMedium: \"select_shadow-Medium\",\r\n shadowStrong: \"select_shadow-Strong\",\r\n shadowIntense: \"select_shadow-Intense\",\r\n\r\n roundNone: \"select_round-None\",\r\n roundSmall: \"select_round-Small\",\r\n roundMedium: \"select_round-Medium\",\r\n roundLarge: \"select_round-Large\",\r\n};\r\n\r\nconst Select = React.forwardRef<HTMLSelectElement, SelectProps>(\r\n (props, ref) => {\r\n return <BaseSelect {...props} ref={ref} classMap={classes} />;\r\n }\r\n);\r\n\r\nSelect.displayName = \"Select\";\r\nexport default Select;\r\n"],"names":["jsx","forwardRef","getDefaultTheme","getDefaultRounding","getDefaultShadow","useId","useState","useEffect","useMemo","combineClassNames","capitalize","jsxs"],"mappings":"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"}
|
package/dist/core/Select.cjs.js
CHANGED
package/dist/core/Select.js
CHANGED
package/dist/core/index.cjs.js
CHANGED
|
@@ -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-
|
|
14
|
-
const Footer = require("./Footer-
|
|
13
|
+
const Select = require("./Select-DhUEQ4W_.cjs");
|
|
14
|
+
const Footer = require("./Footer-DxYjXCde.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 capitalize = require("./capitalize-DoV-nOmN.cjs");
|
|
55
56
|
const Card = require("./Card-DCxLBwi0.cjs");
|
|
56
57
|
const Avatar = require("./Avatar-B5aqfDZX.cjs");
|
|
57
58
|
const ChipGroupBase = React.forwardRef(
|
|
@@ -153,6 +154,213 @@ const ChipGroup = React.forwardRef(
|
|
|
153
154
|
}
|
|
154
155
|
)
|
|
155
156
|
);
|
|
157
|
+
const SidebarBase = ({
|
|
158
|
+
links,
|
|
159
|
+
classMap: classMap2,
|
|
160
|
+
currentPath,
|
|
161
|
+
LinkComponent = "a",
|
|
162
|
+
theme = borealStyleConfig.getDefaultTheme(),
|
|
163
|
+
rounding = borealStyleConfig.getDefaultRounding(),
|
|
164
|
+
shadow = borealStyleConfig.getDefaultShadow(),
|
|
165
|
+
state = "",
|
|
166
|
+
showFooter = false,
|
|
167
|
+
footerLinks,
|
|
168
|
+
footerVersion,
|
|
169
|
+
outline = false,
|
|
170
|
+
className = "",
|
|
171
|
+
"data-testid": testId = "sidebar",
|
|
172
|
+
ariaLabel = "Sidebar navigation",
|
|
173
|
+
...rest
|
|
174
|
+
}) => {
|
|
175
|
+
const [openItems, setOpenItems] = React.useState({});
|
|
176
|
+
const toggleItem = (key) => {
|
|
177
|
+
setOpenItems((prev) => ({ ...prev, [key]: !prev[key] }));
|
|
178
|
+
};
|
|
179
|
+
const submenuRefs = React.useRef({});
|
|
180
|
+
const setSubmenuRef = (key, el) => {
|
|
181
|
+
submenuRefs.current[key] = el;
|
|
182
|
+
};
|
|
183
|
+
const getSubmenuHeight = (key) => {
|
|
184
|
+
const el = submenuRefs.current[key];
|
|
185
|
+
return el ? `${el.scrollHeight}px` : "0px";
|
|
186
|
+
};
|
|
187
|
+
const containerClasses = React.useMemo(
|
|
188
|
+
() => classNames.combineClassNames(
|
|
189
|
+
classMap2.wrapper,
|
|
190
|
+
className,
|
|
191
|
+
classMap2[theme],
|
|
192
|
+
classMap2[state],
|
|
193
|
+
shadow && classMap2[`shadow${capitalize.capitalize(shadow)}`],
|
|
194
|
+
rounding && classMap2[`round${capitalize.capitalize(rounding)}`],
|
|
195
|
+
outline ? classMap2.outline : ""
|
|
196
|
+
),
|
|
197
|
+
[className, theme, state, outline, rounding, shadow]
|
|
198
|
+
);
|
|
199
|
+
const renderLinks = (items, isChild = false) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
200
|
+
"ul",
|
|
201
|
+
{
|
|
202
|
+
className: classNames.combineClassNames(
|
|
203
|
+
classMap2.list,
|
|
204
|
+
isChild ? classMap2.childList : ""
|
|
205
|
+
),
|
|
206
|
+
"data-testid": `${testId}-list`,
|
|
207
|
+
children: items.map(({ label, href, children, icon }) => {
|
|
208
|
+
const isActive = href && currentPath === href;
|
|
209
|
+
const isOpen = openItems[label] || false;
|
|
210
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
211
|
+
"li",
|
|
212
|
+
{
|
|
213
|
+
className: classMap2.item,
|
|
214
|
+
"data-testid": `${testId}-listItems`,
|
|
215
|
+
children: children && children.length > 0 ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
216
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
217
|
+
"button",
|
|
218
|
+
{
|
|
219
|
+
type: "button",
|
|
220
|
+
className: classNames.combineClassNames(
|
|
221
|
+
classMap2.link,
|
|
222
|
+
isOpen ? classMap2.active : ""
|
|
223
|
+
),
|
|
224
|
+
onClick: () => toggleItem(label),
|
|
225
|
+
"aria-expanded": isOpen,
|
|
226
|
+
"data-testid": `${testId}-exapndItemButton`,
|
|
227
|
+
children: [
|
|
228
|
+
icon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: classMap2.icon, children: icon }),
|
|
229
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { "data-testid": `${testId}-exapndItemLabel`, children: label }),
|
|
230
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
231
|
+
Select.ChevronDownIcon,
|
|
232
|
+
{
|
|
233
|
+
className: classNames.combineClassNames(
|
|
234
|
+
classMap2.chevron,
|
|
235
|
+
isOpen ? classMap2.chevronOpen : ""
|
|
236
|
+
),
|
|
237
|
+
"data-testid": `${testId}-exapndIcon`
|
|
238
|
+
}
|
|
239
|
+
)
|
|
240
|
+
]
|
|
241
|
+
}
|
|
242
|
+
),
|
|
243
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
244
|
+
"div",
|
|
245
|
+
{
|
|
246
|
+
ref: (el) => setSubmenuRef(label, el),
|
|
247
|
+
className: classNames.combineClassNames(
|
|
248
|
+
classMap2.submenu,
|
|
249
|
+
isOpen ? classMap2.submenuOpen : ""
|
|
250
|
+
),
|
|
251
|
+
style: {
|
|
252
|
+
maxHeight: isOpen ? getSubmenuHeight(label) : "0px"
|
|
253
|
+
},
|
|
254
|
+
"data-testid": `${testId}-subMenu`,
|
|
255
|
+
children: renderLinks(children, true)
|
|
256
|
+
}
|
|
257
|
+
)
|
|
258
|
+
] }) : href ? /* @__PURE__ */ jsxRuntime.jsxs(
|
|
259
|
+
LinkComponent,
|
|
260
|
+
{
|
|
261
|
+
href,
|
|
262
|
+
className: classNames.combineClassNames(
|
|
263
|
+
classMap2.link,
|
|
264
|
+
isChild ? classMap2.childLink : "",
|
|
265
|
+
isActive ? classMap2.active : ""
|
|
266
|
+
),
|
|
267
|
+
"aria-current": isActive ? "page" : void 0,
|
|
268
|
+
"data-testid": `${testId}-sidebarLink`,
|
|
269
|
+
children: [
|
|
270
|
+
icon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: classMap2.icon, children: icon }),
|
|
271
|
+
label
|
|
272
|
+
]
|
|
273
|
+
}
|
|
274
|
+
) : /* @__PURE__ */ jsxRuntime.jsxs(
|
|
275
|
+
"span",
|
|
276
|
+
{
|
|
277
|
+
className: classNames.combineClassNames(
|
|
278
|
+
classMap2.link,
|
|
279
|
+
isChild ? classMap2.childLink : ""
|
|
280
|
+
),
|
|
281
|
+
"data-testid": `${testId}-sidebarLabel`,
|
|
282
|
+
children: [
|
|
283
|
+
icon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: classMap2.icon, children: icon }),
|
|
284
|
+
label
|
|
285
|
+
]
|
|
286
|
+
}
|
|
287
|
+
)
|
|
288
|
+
},
|
|
289
|
+
label
|
|
290
|
+
);
|
|
291
|
+
})
|
|
292
|
+
}
|
|
293
|
+
);
|
|
294
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
295
|
+
"nav",
|
|
296
|
+
{
|
|
297
|
+
className: containerClasses,
|
|
298
|
+
"aria-label": ariaLabel,
|
|
299
|
+
...rest,
|
|
300
|
+
"data-testid": testId,
|
|
301
|
+
children: [
|
|
302
|
+
/* @__PURE__ */ jsxRuntime.jsx("nav", { className: classMap2.nav, children: renderLinks(links) }),
|
|
303
|
+
showFooter && /* @__PURE__ */ jsxRuntime.jsxs("footer", { className: classMap2.footer, "data-testid": `${testId}-footer`, children: [
|
|
304
|
+
footerLinks == null ? void 0 : footerLinks.map(({ label, href }) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
305
|
+
LinkComponent,
|
|
306
|
+
{
|
|
307
|
+
href,
|
|
308
|
+
className: classMap2.footerLink,
|
|
309
|
+
"data-testid": `${testId}-footerLink`,
|
|
310
|
+
children: label
|
|
311
|
+
},
|
|
312
|
+
label
|
|
313
|
+
)),
|
|
314
|
+
footerVersion && /* @__PURE__ */ jsxRuntime.jsx(
|
|
315
|
+
"span",
|
|
316
|
+
{
|
|
317
|
+
className: classMap2.footerVersion,
|
|
318
|
+
"data-testid": `${testId}-footerVersion`,
|
|
319
|
+
children: footerVersion
|
|
320
|
+
}
|
|
321
|
+
)
|
|
322
|
+
] })
|
|
323
|
+
]
|
|
324
|
+
}
|
|
325
|
+
);
|
|
326
|
+
};
|
|
327
|
+
SidebarBase.displayName = "SidebarBase";
|
|
328
|
+
const classes = {
|
|
329
|
+
wrapper: "sidebar",
|
|
330
|
+
nav: "sidebar_nav",
|
|
331
|
+
list: "sidebar_list",
|
|
332
|
+
childList: "sidebar_child-list",
|
|
333
|
+
item: "sidebar_item",
|
|
334
|
+
link: "sidebar_link",
|
|
335
|
+
childLink: "sidebar_child-link",
|
|
336
|
+
active: "sidebar_active",
|
|
337
|
+
footer: "sidebar_footer",
|
|
338
|
+
footerLink: "sidebar_footer-link",
|
|
339
|
+
footerVersion: "sidebar_footer-version",
|
|
340
|
+
chevron: "sidebar_chevron",
|
|
341
|
+
chevronOpen: "sidebar_chevron_open",
|
|
342
|
+
submenu: "sidebar_submenu",
|
|
343
|
+
submenuOpen: "sidebar_submenu_open",
|
|
344
|
+
outline: "sidebar_outline",
|
|
345
|
+
primary: "sidebar_primary",
|
|
346
|
+
secondary: "sidebar_secondary",
|
|
347
|
+
tertiary: "sidebar_tertiary",
|
|
348
|
+
quaternary: "sidebar_quaternary",
|
|
349
|
+
success: "sidebar_success",
|
|
350
|
+
error: "sidebar_error",
|
|
351
|
+
warning: "sidebar_warning",
|
|
352
|
+
clear: "sidebar_clear",
|
|
353
|
+
shadowNone: "sidebar_shadow-None",
|
|
354
|
+
shadowLight: "sidebar_shadow-Light",
|
|
355
|
+
shadowMedium: "sidebar_shadow-Medium",
|
|
356
|
+
shadowStrong: "sidebar_shadow-Strong",
|
|
357
|
+
shadowIntense: "sidebar_shadow-Intense",
|
|
358
|
+
roundNone: "sidebar_round-None",
|
|
359
|
+
roundSmall: "sidebar_round-Small",
|
|
360
|
+
roundMedium: "sidebar_round-Medium",
|
|
361
|
+
roundLarge: "sidebar_round-Large"
|
|
362
|
+
};
|
|
363
|
+
const Sidebar = ({ currentPath, ...props }) => /* @__PURE__ */ jsxRuntime.jsx(SidebarBase, { ...props, currentPath, classMap: classes });
|
|
156
364
|
exports.ThemeContext = ThemeContext.ThemeContext;
|
|
157
365
|
exports.ThemeProvider = ThemeContext.ThemeProvider;
|
|
158
366
|
exports.registerColorScheme = registerColorSheme.registerColorScheme;
|
|
@@ -205,4 +413,5 @@ exports.NotificationCenter = NotificationCenter.NotificationCenter;
|
|
|
205
413
|
exports.Card = Card.Card;
|
|
206
414
|
exports.Avatar = Avatar.Avatar;
|
|
207
415
|
exports.ChipGroup = ChipGroup;
|
|
416
|
+
exports.Sidebar = Sidebar;
|
|
208
417
|
//# sourceMappingURL=index.cjs.js.map
|