boreal-ui 0.0.882 → 0.0.883
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-Cwi11hLk.cjs → Footer-Dz2WLlmG.cjs} +221 -92
- package/dist/core/Footer-Dz2WLlmG.cjs.map +1 -0
- package/dist/core/{Footer-Dwh-2P5I.js → Footer-GVH6PVkB.js} +221 -92
- package/dist/core/Footer-GVH6PVkB.js.map +1 -0
- package/dist/core/Footer.cjs.js +1 -1
- package/dist/core/Footer.css +4 -1
- package/dist/core/Footer.js +1 -1
- package/dist/core/index.cjs.js +1 -1
- package/dist/core/index.js +1 -1
- package/dist/next/{Footer-Dzwh3OnQ.js → Footer-DLnIK3R3.js} +271 -142
- package/dist/next/Footer-DLnIK3R3.js.map +1 -0
- package/dist/next/Footer.css +98 -96
- package/dist/next/Footer.js +1 -1
- package/dist/next/index.js +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/types/components/Footer/Footer.types.d.ts +92 -0
- package/dist/types/components/Footer/Footer.types.d.ts.map +1 -1
- package/dist/types/components/Footer/FooterBase.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/core/Footer-Cwi11hLk.cjs.map +0 -1
- package/dist/core/Footer-Dwh-2P5I.js.map +0 -1
- package/dist/next/Footer-Dzwh3OnQ.js.map +0 -1
|
@@ -17,6 +17,22 @@ export interface FooterSection {
|
|
|
17
17
|
* Defaults to `${title} links` when title is a string.
|
|
18
18
|
*/
|
|
19
19
|
"aria-label"?: string;
|
|
20
|
+
/**
|
|
21
|
+
* Optional custom class name for this section nav.
|
|
22
|
+
*/
|
|
23
|
+
className?: string;
|
|
24
|
+
/**
|
|
25
|
+
* Optional custom class name for this section heading.
|
|
26
|
+
*/
|
|
27
|
+
titleClassName?: string;
|
|
28
|
+
/**
|
|
29
|
+
* Optional custom class name for this section link list.
|
|
30
|
+
*/
|
|
31
|
+
listClassName?: string;
|
|
32
|
+
/**
|
|
33
|
+
* Optional custom class name applied to links in this section.
|
|
34
|
+
*/
|
|
35
|
+
linkClassName?: string;
|
|
20
36
|
/**
|
|
21
37
|
* Optional test id suffix.
|
|
22
38
|
*/
|
|
@@ -116,6 +132,82 @@ export interface FooterProps extends Omit<React.HTMLAttributes<HTMLElement>, "ch
|
|
|
116
132
|
theme?: ThemeType;
|
|
117
133
|
/** Optional class name for custom styles. */
|
|
118
134
|
className?: string;
|
|
135
|
+
/**
|
|
136
|
+
* Optional custom class name for the main footer content wrapper.
|
|
137
|
+
*/
|
|
138
|
+
contentClassName?: string;
|
|
139
|
+
/**
|
|
140
|
+
* Optional custom class name for the inline layout left area.
|
|
141
|
+
*/
|
|
142
|
+
leftClassName?: string;
|
|
143
|
+
/**
|
|
144
|
+
* Optional custom class name for the inline layout links nav.
|
|
145
|
+
*/
|
|
146
|
+
linksClassName?: string;
|
|
147
|
+
/**
|
|
148
|
+
* Optional custom class name applied to inline footer links.
|
|
149
|
+
*/
|
|
150
|
+
linkClassName?: string;
|
|
151
|
+
/**
|
|
152
|
+
* Optional custom class name for the logo wrapper/image.
|
|
153
|
+
*/
|
|
154
|
+
logoClassName?: string;
|
|
155
|
+
/**
|
|
156
|
+
* Optional custom class name for the social links nav.
|
|
157
|
+
*/
|
|
158
|
+
socialClassName?: string;
|
|
159
|
+
/**
|
|
160
|
+
* Optional custom class name for the theme selector wrapper.
|
|
161
|
+
*/
|
|
162
|
+
themeToggleClassName?: string;
|
|
163
|
+
/**
|
|
164
|
+
* Optional custom class name for the columns layout brand area.
|
|
165
|
+
*/
|
|
166
|
+
brandClassName?: string;
|
|
167
|
+
/**
|
|
168
|
+
* Optional custom class name for the brand link/wrapper.
|
|
169
|
+
*/
|
|
170
|
+
brandLinkClassName?: string;
|
|
171
|
+
/**
|
|
172
|
+
* Optional custom class name for the brand title.
|
|
173
|
+
*/
|
|
174
|
+
brandTitleClassName?: string;
|
|
175
|
+
/**
|
|
176
|
+
* Optional custom class name for the brand description.
|
|
177
|
+
*/
|
|
178
|
+
brandDescriptionClassName?: string;
|
|
179
|
+
/**
|
|
180
|
+
* Optional custom class name for the grouped sections wrapper.
|
|
181
|
+
*/
|
|
182
|
+
sectionsClassName?: string;
|
|
183
|
+
/**
|
|
184
|
+
* Optional custom class name for section titles in the columns layout.
|
|
185
|
+
*/
|
|
186
|
+
sectionTitleClassName?: string;
|
|
187
|
+
/**
|
|
188
|
+
* Optional custom class name for the actions column.
|
|
189
|
+
*/
|
|
190
|
+
actionsClassName?: string;
|
|
191
|
+
/**
|
|
192
|
+
* Optional custom class name for action groups, such as the Connect group.
|
|
193
|
+
*/
|
|
194
|
+
actionGroupClassName?: string;
|
|
195
|
+
/**
|
|
196
|
+
* Optional custom class name for the bottom bar.
|
|
197
|
+
*/
|
|
198
|
+
bottomClassName?: string;
|
|
199
|
+
/**
|
|
200
|
+
* Optional custom class name for the bottom copyright text.
|
|
201
|
+
*/
|
|
202
|
+
bottomCopyrightClassName?: string;
|
|
203
|
+
/**
|
|
204
|
+
* Optional custom class name for the bottom-end content.
|
|
205
|
+
*/
|
|
206
|
+
bottomEndClassName?: string;
|
|
207
|
+
/**
|
|
208
|
+
* Optional custom class name for copyright when rendered outside the bottom bar.
|
|
209
|
+
*/
|
|
210
|
+
copyrightClassName?: string;
|
|
119
211
|
/**
|
|
120
212
|
* Attachment type for how the footer is positioned.
|
|
121
213
|
* ('static' | 'fixed' | 'sticky')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Footer.types.d.ts","sourceRoot":"","sources":["../../../../src/components/Footer/Footer.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EACL,cAAc,EACd,YAAY,EACZ,UAAU,EACV,SAAS,EACV,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEhD,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IAEvB;;OAEG;IACH,KAAK,EAAE,UAAU,EAAE,CAAC;IAEpB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,8BAA8B;IAC9B,KAAK,EAAE,MAAM,CAAC;IAEd,iCAAiC;IACjC,IAAI,EAAE,MAAM,CAAC;IAEb;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,mCAAmC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,cAAc,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;IAEtD;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,MAAM,CAAC,EAAE,KAAK,CAAC,yBAAyB,CAAC;IAEzC;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd,yCAAyC;IACzC,IAAI,EAAE,KAAK,CAAC,aAAa,CAAC;QACxB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB,CAAC,CAAC;IAEH,gCAAgC;IAChC,IAAI,EAAE,MAAM,CAAC;IAEb;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,mCAAmC;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,MAAM,CAAC,EAAE,KAAK,CAAC,yBAAyB,CAAC;IAEzC;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,MAAM,UAAU,GAClB,KAAK,CAAC,SAAS,GACf,MAAM,GACN;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAErD,MAAM,MAAM,SAAS,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzE;;GAEG;AACH,MAAM,WAAW,WAAY,SAAQ,IAAI,CACvC,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,EACjC,UAAU,GAAG,OAAO,CACrB;IACC;;;OAGG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAElB,6CAA6C;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,UAAU,CAAC,EAAE,cAAc,CAAC;IAE5B;;;OAGG;IACH,MAAM,CAAC,EAAE,UAAU,CAAC;IAEpB;;;OAGG;IACH,QAAQ,CAAC,EAAE,YAAY,CAAC;IAExB,sCAAsC;IACtC,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,+BAA+B;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,qDAAqD;IACrD,IAAI,CAAC,EAAE,UAAU,CAAC;IAElB,wCAAwC;IACxC,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC;IAErB,wCAAwC;IACxC,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC;IAE3B,mDAAmD;IACnD,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B;;;;OAIG;IACH,MAAM,CAAC,EAAE,YAAY,CAAC;IAEtB;;OAEG;IACH,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAE7B;;OAEG;IACH,gBAAgB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAEnC;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,QAAQ,CAAC,EAAE,aAAa,EAAE,CAAC;IAE3B;;;OAGG;IACH,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAE5B;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B;;OAEG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAE9B;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,gBAAgB,GAAG,IAAI,CACjC,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAC7C,MAAM,GAAG,UAAU,GAAG,WAAW,CAClC,GAAG;IACF,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,KAAK,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;AAEzE,MAAM,MAAM,cAAc,GAAG;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,KAAK,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;AAEjE,MAAM,WAAW,eAAgB,SAAQ,WAAW;IAClD,UAAU,EAAE,KAAK,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;IACjD,WAAW,EAAE,KAAK,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;IACnD,cAAc,CAAC,EAAE,cAAc,GAAG,KAAK,CAAC;IACxC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,WAAW,CAAC,EAAE,oBAAoB,CAAC;CACpC"}
|
|
1
|
+
{"version":3,"file":"Footer.types.d.ts","sourceRoot":"","sources":["../../../../src/components/Footer/Footer.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FooterBase.d.ts","sourceRoot":"","sources":["../../../../src/components/Footer/FooterBase.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AACvC,OAAO,EACL,eAAe,EAIhB,MAAM,gBAAgB,CAAC;AAQxB,QAAA,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,
|
|
1
|
+
{"version":3,"file":"FooterBase.d.ts","sourceRoot":"","sources":["../../../../src/components/Footer/FooterBase.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AACvC,OAAO,EACL,eAAe,EAIhB,MAAM,gBAAgB,CAAC;AAQxB,QAAA,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CA4gBzC,CAAC;AAGF,eAAe,UAAU,CAAC"}
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Footer-Cwi11hLk.cjs","sources":["../../src/components/Footer/FooterBase.tsx","../../src/components/Select/ThemeSelect/core/ThemeSelect.tsx","../../src/components/Footer/core/Footer.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\r\nimport {\r\n BaseFooterProps,\r\n FooterLink,\r\n FooterSection,\r\n LogoSource,\r\n} 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\nconst slugify = (value: string) =>\r\n value.toLowerCase().trim().replace(/\\s+/g, \"-\");\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 layout = \"inline\",\r\n className = \"\",\r\n \"data-testid\": testId = \"footer\",\r\n\r\n copyright,\r\n copyrightInBottom,\r\n links = [],\r\n sections,\r\n logo,\r\n brandTitle,\r\n brandDescription,\r\n brandHref,\r\n\r\n socialLinks = [],\r\n showThemeSelect = false,\r\n bottomEnd,\r\n\r\n IconButton,\r\n ImageComponent = \"img\",\r\n ThemeSelect,\r\n classMap,\r\n LinkWrapper = ({ href, children, ...rest }) => (\r\n <a href={href} {...rest}>\r\n {children}\r\n </a>\r\n ),\r\n\r\n \"aria-label\": ariaLabel,\r\n \"aria-labelledby\": ariaLabelledBy,\r\n \"aria-describedby\": ariaDescribedBy,\r\n navAriaLabel = \"Footer site links\",\r\n socialNavAriaLabel = \"Social media\",\r\n themeSelectAriaLabel = \"Theme selector\",\r\n logoAriaLabel = \"Logo\",\r\n logoDecorative = false,\r\n labelId,\r\n ...rest\r\n}) => {\r\n const footerClass = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.footer,\r\n classMap[theme],\r\n layout !== \"inline\" && classMap[`layout${capitalize(layout)}`],\r\n shadow !== \"none\" && classMap[`shadow${capitalize(shadow)}`],\r\n rounding !== \"none\" && classMap[`round${capitalize(rounding)}`],\r\n classMap[`attachment${capitalize(attachment)}`],\r\n className,\r\n ),\r\n [classMap, theme, layout, shadow, rounding, attachment, className],\r\n );\r\n\r\n const isLogoImage = (\r\n value: unknown,\r\n ): value is { src: string; width?: number; height?: number } =>\r\n typeof value === \"object\" &&\r\n value !== null &&\r\n \"src\" in (value as Record<string, unknown>);\r\n\r\n const isImgLike = typeof logo === \"string\" || isLogoImage(logo);\r\n\r\n const imgLogo = isImgLike\r\n ? typeof logo === \"string\"\r\n ? { src: logo }\r\n : logo\r\n : undefined;\r\n\r\n const logoSrc = imgLogo?.src;\r\n const logoW = imgLogo?.width ?? 20;\r\n const logoH = imgLogo?.height ?? 20;\r\n\r\n const normalizedSections: FooterSection[] =\r\n sections && sections.length > 0\r\n ? sections\r\n : links.length > 0\r\n ? [\r\n {\r\n title: \"Links\",\r\n links,\r\n \"aria-label\": navAriaLabel,\r\n testId: \"links\",\r\n },\r\n ]\r\n : [];\r\n\r\n const shouldRenderCopyrightInBottom =\r\n copyrightInBottom ?? layout === \"columns\";\r\n\r\n const renderLogo = () => {\r\n if (isImgLike && logoSrc) {\r\n if (typeof ImageComponent === \"string\") {\r\n return (\r\n <img\r\n className={classMap.logo}\r\n data-testid={`${testId}-logo`}\r\n loading=\"lazy\"\r\n src={logoSrc}\r\n alt={logoDecorative ? \"\" : logoAriaLabel}\r\n aria-hidden={logoDecorative ? true : undefined}\r\n height={logoH}\r\n width={logoW}\r\n />\r\n );\r\n }\r\n\r\n return (\r\n <ImageComponent\r\n className={classMap.logo}\r\n data-testid={`${testId}-logo`}\r\n src={logoSrc}\r\n alt={logoDecorative ? \"\" : logoAriaLabel}\r\n aria-hidden={logoDecorative ? true : undefined}\r\n height={logoH}\r\n width={logoW}\r\n />\r\n );\r\n }\r\n\r\n if (!logo) {\r\n return null;\r\n }\r\n\r\n return (\r\n <span\r\n className={classMap.logo}\r\n role={logoDecorative ? undefined : \"img\"}\r\n aria-label={logoDecorative ? undefined : logoAriaLabel}\r\n aria-hidden={logoDecorative ? true : undefined}\r\n data-testid={`${testId}-logo`}\r\n >\r\n {\r\n logo as Exclude<\r\n LogoSource,\r\n string | { src: string; width?: number; height?: number }\r\n >\r\n }\r\n </span>\r\n );\r\n };\r\n\r\n const renderFooterLink = (link: FooterLink, index: number) => {\r\n const slug = slugify(link.label || link.href || `link-${index}`);\r\n const key = `${link.href ?? slug}-${index}`;\r\n\r\n if (link.disabled) {\r\n return (\r\n <li key={key}>\r\n <span\r\n className={classMap.link}\r\n data-testid={`${testId}-link-${slug}`}\r\n aria-disabled=\"true\"\r\n title={link.title}\r\n >\r\n {link.label}\r\n </span>\r\n </li>\r\n );\r\n }\r\n\r\n return (\r\n <li key={key}>\r\n <LinkWrapper\r\n href={link.href}\r\n className={classMap.link}\r\n data-testid={`${testId}-link-${slug}`}\r\n aria-label={link[\"aria-label\"]}\r\n aria-current={link[\"aria-current\"]}\r\n title={link.title}\r\n rel={link.rel}\r\n target={link.target}\r\n >\r\n {link.label}\r\n </LinkWrapper>\r\n </li>\r\n );\r\n };\r\n\r\n const renderSocialLinks = () => {\r\n if (socialLinks.length === 0) {\r\n return null;\r\n }\r\n\r\n return (\r\n <nav\r\n className={classMap.social}\r\n aria-label={socialNavAriaLabel}\r\n data-testid={`${testId}-social`}\r\n >\r\n {socialLinks.map((social, index) => (\r\n <IconButton\r\n key={`${social.href ?? social.title}-${index}`}\r\n icon={social.icon}\r\n href={social.href}\r\n isExternal={social.isExternal ?? true}\r\n shadow=\"none\"\r\n aria-label={social[\"aria-label\"] ?? social.title}\r\n title={social.tooltip ?? social.title}\r\n theme=\"clear\"\r\n disabled={social.disabled}\r\n rel={social.rel}\r\n target={social.target}\r\n data-testid={`${testId}-social-${slugify(social.title)}`}\r\n />\r\n ))}\r\n </nav>\r\n );\r\n };\r\n\r\n const renderThemeSelect = () => {\r\n if (!showThemeSelect) {\r\n return null;\r\n }\r\n\r\n return (\r\n <div\r\n className={classMap.themeToggle}\r\n data-testid={`${testId}-theme-select`}\r\n aria-label={themeSelectAriaLabel}\r\n >\r\n <ThemeSelect\r\n theme=\"clear\"\r\n label={brandDescription}\r\n shadow=\"none\"\r\n aria-label={themeSelectAriaLabel}\r\n />\r\n </div>\r\n );\r\n };\r\n\r\n const renderBrand = () => {\r\n const brandContent = (\r\n <>\r\n {renderLogo()}\r\n\r\n {brandTitle && (\r\n <span\r\n className={classMap.brandTitle}\r\n data-testid={`${testId}-brand-title`}\r\n >\r\n {brandTitle}\r\n </span>\r\n )}\r\n </>\r\n );\r\n\r\n return (\r\n <div className={classMap.brand} data-testid={`${testId}-brand`}>\r\n {brandHref ? (\r\n <LinkWrapper\r\n href={brandHref}\r\n className={classMap.brandLink}\r\n aria-label={\r\n typeof brandTitle === \"string\" ? brandTitle : logoAriaLabel\r\n }\r\n >\r\n {brandContent}\r\n </LinkWrapper>\r\n ) : (\r\n <div className={classMap.brandLink}>{brandContent}</div>\r\n )}\r\n\r\n {brandDescription && (\r\n <p\r\n className={classMap.brandDescription}\r\n data-testid={`${testId}-brand-description`}\r\n >\r\n {brandDescription}\r\n </p>\r\n )}\r\n\r\n {copyright && !shouldRenderCopyrightInBottom && (\r\n <div\r\n className={classMap.copyright}\r\n data-testid={`${testId}-copyright`}\r\n >\r\n <p id={labelId}>{copyright}</p>\r\n </div>\r\n )}\r\n </div>\r\n );\r\n };\r\n\r\n const renderSections = () => {\r\n if (normalizedSections.length === 0) {\r\n return null;\r\n }\r\n\r\n return (\r\n <div className={classMap.sections} data-testid={`${testId}-sections`}>\r\n {normalizedSections.map((section, sectionIndex) => {\r\n const titleText =\r\n typeof section.title === \"string\"\r\n ? section.title\r\n : `section-${sectionIndex + 1}`;\r\n\r\n const sectionSlug = section.testId ?? slugify(titleText);\r\n\r\n return (\r\n <nav\r\n key={sectionSlug}\r\n className={classMap.section}\r\n aria-label={section[\"aria-label\"] ?? `${titleText} links`}\r\n data-testid={`${testId}-section-${sectionSlug}`}\r\n >\r\n <h2 className={classMap.sectionTitle}>{section.title}</h2>\r\n\r\n <ul className={classMap.sectionList}>\r\n {section.links.map(renderFooterLink)}\r\n </ul>\r\n </nav>\r\n );\r\n })}\r\n </div>\r\n );\r\n };\r\n\r\n if (layout === \"columns\") {\r\n return (\r\n <footer\r\n className={footerClass}\r\n data-testid={testId}\r\n role=\"contentinfo\"\r\n aria-label={ariaLabel}\r\n aria-labelledby={ariaLabelledBy ?? labelId}\r\n aria-describedby={ariaDescribedBy}\r\n {...rest}\r\n >\r\n <div className={classMap.content}>\r\n {renderBrand()}\r\n\r\n {renderSections()}\r\n\r\n {(socialLinks.length > 0 || showThemeSelect) && (\r\n <div className={classMap.actions} data-testid={`${testId}-actions`}>\r\n {socialLinks.length > 0 && (\r\n <div className={classMap.actionGroup}>\r\n <h2 className={classMap.sectionTitle}>Connect</h2>\r\n {renderSocialLinks()}\r\n </div>\r\n )}\r\n\r\n {renderThemeSelect()}\r\n </div>\r\n )}\r\n </div>\r\n\r\n {(copyright || bottomEnd) && (\r\n <div className={classMap.bottom} data-testid={`${testId}-bottom`}>\r\n {copyright && shouldRenderCopyrightInBottom && (\r\n <p\r\n id={labelId}\r\n className={classMap.bottomCopyright}\r\n data-testid={`${testId}-copyright`}\r\n >\r\n {copyright}\r\n </p>\r\n )}\r\n\r\n {bottomEnd && (\r\n <div\r\n className={classMap.bottomEnd}\r\n data-testid={`${testId}-bottom-end`}\r\n >\r\n {bottomEnd}\r\n </div>\r\n )}\r\n </div>\r\n )}\r\n </footer>\r\n );\r\n }\r\n\r\n return (\r\n <footer\r\n className={footerClass}\r\n data-testid={testId}\r\n role=\"contentinfo\"\r\n aria-label={ariaLabel}\r\n aria-labelledby={ariaLabelledBy ?? labelId}\r\n aria-describedby={ariaDescribedBy}\r\n {...rest}\r\n >\r\n <div className={classMap.content}>\r\n <div className={classMap.left} data-testid={`${testId}-left`}>\r\n {renderLogo()}\r\n\r\n {copyright && (\r\n <div\r\n className={classMap.copyright ?? classMap.left}\r\n data-testid={`${testId}-copyright`}\r\n >\r\n <p id={labelId}>{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={navAriaLabel}\r\n data-testid={`${testId}-nav`}\r\n >\r\n <ul>{links.map(renderFooterLink)}</ul>\r\n </nav>\r\n )}\r\n\r\n {renderThemeSelect()}\r\n {renderSocialLinks()}\r\n </div>\r\n </footer>\r\n );\r\n};\r\n\r\nFooterBase.displayName = \"FooterBase\";\r\nexport default FooterBase;\r\n","import { useContext, useMemo, forwardRef } from \"react\";\r\nimport Select from \"../../core/Select\";\r\nimport { ThemeContext } from \"../../../../context/ThemeContext\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultTheme,\r\n} from \"@/config/boreal-style-config\";\r\nimport { ThemeSelectProps } from \"../../Select.types\";\r\n\r\nconst UserThemeSettings = forwardRef<HTMLSelectElement, ThemeSelectProps>(\r\n (\r\n {\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 ref,\r\n ) => {\r\n const ctx = useContext(ThemeContext);\r\n if (!ctx)\r\n throw new Error(\"ThemeContext is undefined. Wrap with ThemeProvider.\");\r\n\r\n const { selectedScheme, setSelectedScheme, schemes } = ctx;\r\n\r\n const options = useMemo(\r\n () =>\r\n schemes.map((scheme, index) => ({\r\n value: String(index),\r\n label: scheme.name,\r\n })),\r\n [schemes],\r\n );\r\n\r\n return (\r\n <div className=\"control-container\">\r\n <Select\r\n ref={ref}\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}\r\n value={String(selectedScheme)}\r\n aria-label=\"Select Theme\"\r\n onChange={(value: string | number) =>\r\n setSelectedScheme(parseInt(String(value), 10))\r\n }\r\n />\r\n </div>\r\n );\r\n },\r\n);\r\nUserThemeSettings.displayName = \"UserThemeSettings\";\r\nexport default UserThemeSettings;\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 layoutColumns: \"footer_layout-columns\",\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\r\n // Existing inline layout\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 themeToggle: \"footer_theme-toggle\",\r\n copyright: \"footer_copyright\",\r\n\r\n // New column layout\r\n brand: \"footer_brand\",\r\n brandLink: \"footer_brand-link\",\r\n brandTitle: \"footer_brand-title\",\r\n brandDescription: \"footer_brand-description\",\r\n\r\n sections: \"footer_sections\",\r\n section: \"footer_section\",\r\n sectionTitle: \"footer_section-title\",\r\n sectionList: \"footer_section-list\",\r\n\r\n actions: \"footer_actions\",\r\n actionGroup: \"footer_action-group\",\r\n\r\n bottom: \"footer_bottom\",\r\n bottomCopyright: \"footer_bottom-copyright\",\r\n bottomEnd: \"footer_bottom-end\",\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\nFooter.displayName = \"Footer\";\r\n\r\nexport default Footer;\r\n"],"names":["getDefaultTheme","IconButton","rest","jsx","useMemo","combineClassNames","capitalize","jsxs","Fragment","forwardRef","getDefaultShadow","getDefaultRounding","useContext","ThemeContext","Select","ThemeSelect"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Footer-Dwh-2P5I.js","sources":["../../src/components/Footer/FooterBase.tsx","../../src/components/Select/ThemeSelect/core/ThemeSelect.tsx","../../src/components/Footer/core/Footer.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\r\nimport {\r\n BaseFooterProps,\r\n FooterLink,\r\n FooterSection,\r\n LogoSource,\r\n} 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\nconst slugify = (value: string) =>\r\n value.toLowerCase().trim().replace(/\\s+/g, \"-\");\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 layout = \"inline\",\r\n className = \"\",\r\n \"data-testid\": testId = \"footer\",\r\n\r\n copyright,\r\n copyrightInBottom,\r\n links = [],\r\n sections,\r\n logo,\r\n brandTitle,\r\n brandDescription,\r\n brandHref,\r\n\r\n socialLinks = [],\r\n showThemeSelect = false,\r\n bottomEnd,\r\n\r\n IconButton,\r\n ImageComponent = \"img\",\r\n ThemeSelect,\r\n classMap,\r\n LinkWrapper = ({ href, children, ...rest }) => (\r\n <a href={href} {...rest}>\r\n {children}\r\n </a>\r\n ),\r\n\r\n \"aria-label\": ariaLabel,\r\n \"aria-labelledby\": ariaLabelledBy,\r\n \"aria-describedby\": ariaDescribedBy,\r\n navAriaLabel = \"Footer site links\",\r\n socialNavAriaLabel = \"Social media\",\r\n themeSelectAriaLabel = \"Theme selector\",\r\n logoAriaLabel = \"Logo\",\r\n logoDecorative = false,\r\n labelId,\r\n ...rest\r\n}) => {\r\n const footerClass = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.footer,\r\n classMap[theme],\r\n layout !== \"inline\" && classMap[`layout${capitalize(layout)}`],\r\n shadow !== \"none\" && classMap[`shadow${capitalize(shadow)}`],\r\n rounding !== \"none\" && classMap[`round${capitalize(rounding)}`],\r\n classMap[`attachment${capitalize(attachment)}`],\r\n className,\r\n ),\r\n [classMap, theme, layout, shadow, rounding, attachment, className],\r\n );\r\n\r\n const isLogoImage = (\r\n value: unknown,\r\n ): value is { src: string; width?: number; height?: number } =>\r\n typeof value === \"object\" &&\r\n value !== null &&\r\n \"src\" in (value as Record<string, unknown>);\r\n\r\n const isImgLike = typeof logo === \"string\" || isLogoImage(logo);\r\n\r\n const imgLogo = isImgLike\r\n ? typeof logo === \"string\"\r\n ? { src: logo }\r\n : logo\r\n : undefined;\r\n\r\n const logoSrc = imgLogo?.src;\r\n const logoW = imgLogo?.width ?? 20;\r\n const logoH = imgLogo?.height ?? 20;\r\n\r\n const normalizedSections: FooterSection[] =\r\n sections && sections.length > 0\r\n ? sections\r\n : links.length > 0\r\n ? [\r\n {\r\n title: \"Links\",\r\n links,\r\n \"aria-label\": navAriaLabel,\r\n testId: \"links\",\r\n },\r\n ]\r\n : [];\r\n\r\n const shouldRenderCopyrightInBottom =\r\n copyrightInBottom ?? layout === \"columns\";\r\n\r\n const renderLogo = () => {\r\n if (isImgLike && logoSrc) {\r\n if (typeof ImageComponent === \"string\") {\r\n return (\r\n <img\r\n className={classMap.logo}\r\n data-testid={`${testId}-logo`}\r\n loading=\"lazy\"\r\n src={logoSrc}\r\n alt={logoDecorative ? \"\" : logoAriaLabel}\r\n aria-hidden={logoDecorative ? true : undefined}\r\n height={logoH}\r\n width={logoW}\r\n />\r\n );\r\n }\r\n\r\n return (\r\n <ImageComponent\r\n className={classMap.logo}\r\n data-testid={`${testId}-logo`}\r\n src={logoSrc}\r\n alt={logoDecorative ? \"\" : logoAriaLabel}\r\n aria-hidden={logoDecorative ? true : undefined}\r\n height={logoH}\r\n width={logoW}\r\n />\r\n );\r\n }\r\n\r\n if (!logo) {\r\n return null;\r\n }\r\n\r\n return (\r\n <span\r\n className={classMap.logo}\r\n role={logoDecorative ? undefined : \"img\"}\r\n aria-label={logoDecorative ? undefined : logoAriaLabel}\r\n aria-hidden={logoDecorative ? true : undefined}\r\n data-testid={`${testId}-logo`}\r\n >\r\n {\r\n logo as Exclude<\r\n LogoSource,\r\n string | { src: string; width?: number; height?: number }\r\n >\r\n }\r\n </span>\r\n );\r\n };\r\n\r\n const renderFooterLink = (link: FooterLink, index: number) => {\r\n const slug = slugify(link.label || link.href || `link-${index}`);\r\n const key = `${link.href ?? slug}-${index}`;\r\n\r\n if (link.disabled) {\r\n return (\r\n <li key={key}>\r\n <span\r\n className={classMap.link}\r\n data-testid={`${testId}-link-${slug}`}\r\n aria-disabled=\"true\"\r\n title={link.title}\r\n >\r\n {link.label}\r\n </span>\r\n </li>\r\n );\r\n }\r\n\r\n return (\r\n <li key={key}>\r\n <LinkWrapper\r\n href={link.href}\r\n className={classMap.link}\r\n data-testid={`${testId}-link-${slug}`}\r\n aria-label={link[\"aria-label\"]}\r\n aria-current={link[\"aria-current\"]}\r\n title={link.title}\r\n rel={link.rel}\r\n target={link.target}\r\n >\r\n {link.label}\r\n </LinkWrapper>\r\n </li>\r\n );\r\n };\r\n\r\n const renderSocialLinks = () => {\r\n if (socialLinks.length === 0) {\r\n return null;\r\n }\r\n\r\n return (\r\n <nav\r\n className={classMap.social}\r\n aria-label={socialNavAriaLabel}\r\n data-testid={`${testId}-social`}\r\n >\r\n {socialLinks.map((social, index) => (\r\n <IconButton\r\n key={`${social.href ?? social.title}-${index}`}\r\n icon={social.icon}\r\n href={social.href}\r\n isExternal={social.isExternal ?? true}\r\n shadow=\"none\"\r\n aria-label={social[\"aria-label\"] ?? social.title}\r\n title={social.tooltip ?? social.title}\r\n theme=\"clear\"\r\n disabled={social.disabled}\r\n rel={social.rel}\r\n target={social.target}\r\n data-testid={`${testId}-social-${slugify(social.title)}`}\r\n />\r\n ))}\r\n </nav>\r\n );\r\n };\r\n\r\n const renderThemeSelect = () => {\r\n if (!showThemeSelect) {\r\n return null;\r\n }\r\n\r\n return (\r\n <div\r\n className={classMap.themeToggle}\r\n data-testid={`${testId}-theme-select`}\r\n aria-label={themeSelectAriaLabel}\r\n >\r\n <ThemeSelect\r\n theme=\"clear\"\r\n label={brandDescription}\r\n shadow=\"none\"\r\n aria-label={themeSelectAriaLabel}\r\n />\r\n </div>\r\n );\r\n };\r\n\r\n const renderBrand = () => {\r\n const brandContent = (\r\n <>\r\n {renderLogo()}\r\n\r\n {brandTitle && (\r\n <span\r\n className={classMap.brandTitle}\r\n data-testid={`${testId}-brand-title`}\r\n >\r\n {brandTitle}\r\n </span>\r\n )}\r\n </>\r\n );\r\n\r\n return (\r\n <div className={classMap.brand} data-testid={`${testId}-brand`}>\r\n {brandHref ? (\r\n <LinkWrapper\r\n href={brandHref}\r\n className={classMap.brandLink}\r\n aria-label={\r\n typeof brandTitle === \"string\" ? brandTitle : logoAriaLabel\r\n }\r\n >\r\n {brandContent}\r\n </LinkWrapper>\r\n ) : (\r\n <div className={classMap.brandLink}>{brandContent}</div>\r\n )}\r\n\r\n {brandDescription && (\r\n <p\r\n className={classMap.brandDescription}\r\n data-testid={`${testId}-brand-description`}\r\n >\r\n {brandDescription}\r\n </p>\r\n )}\r\n\r\n {copyright && !shouldRenderCopyrightInBottom && (\r\n <div\r\n className={classMap.copyright}\r\n data-testid={`${testId}-copyright`}\r\n >\r\n <p id={labelId}>{copyright}</p>\r\n </div>\r\n )}\r\n </div>\r\n );\r\n };\r\n\r\n const renderSections = () => {\r\n if (normalizedSections.length === 0) {\r\n return null;\r\n }\r\n\r\n return (\r\n <div className={classMap.sections} data-testid={`${testId}-sections`}>\r\n {normalizedSections.map((section, sectionIndex) => {\r\n const titleText =\r\n typeof section.title === \"string\"\r\n ? section.title\r\n : `section-${sectionIndex + 1}`;\r\n\r\n const sectionSlug = section.testId ?? slugify(titleText);\r\n\r\n return (\r\n <nav\r\n key={sectionSlug}\r\n className={classMap.section}\r\n aria-label={section[\"aria-label\"] ?? `${titleText} links`}\r\n data-testid={`${testId}-section-${sectionSlug}`}\r\n >\r\n <h2 className={classMap.sectionTitle}>{section.title}</h2>\r\n\r\n <ul className={classMap.sectionList}>\r\n {section.links.map(renderFooterLink)}\r\n </ul>\r\n </nav>\r\n );\r\n })}\r\n </div>\r\n );\r\n };\r\n\r\n if (layout === \"columns\") {\r\n return (\r\n <footer\r\n className={footerClass}\r\n data-testid={testId}\r\n role=\"contentinfo\"\r\n aria-label={ariaLabel}\r\n aria-labelledby={ariaLabelledBy ?? labelId}\r\n aria-describedby={ariaDescribedBy}\r\n {...rest}\r\n >\r\n <div className={classMap.content}>\r\n {renderBrand()}\r\n\r\n {renderSections()}\r\n\r\n {(socialLinks.length > 0 || showThemeSelect) && (\r\n <div className={classMap.actions} data-testid={`${testId}-actions`}>\r\n {socialLinks.length > 0 && (\r\n <div className={classMap.actionGroup}>\r\n <h2 className={classMap.sectionTitle}>Connect</h2>\r\n {renderSocialLinks()}\r\n </div>\r\n )}\r\n\r\n {renderThemeSelect()}\r\n </div>\r\n )}\r\n </div>\r\n\r\n {(copyright || bottomEnd) && (\r\n <div className={classMap.bottom} data-testid={`${testId}-bottom`}>\r\n {copyright && shouldRenderCopyrightInBottom && (\r\n <p\r\n id={labelId}\r\n className={classMap.bottomCopyright}\r\n data-testid={`${testId}-copyright`}\r\n >\r\n {copyright}\r\n </p>\r\n )}\r\n\r\n {bottomEnd && (\r\n <div\r\n className={classMap.bottomEnd}\r\n data-testid={`${testId}-bottom-end`}\r\n >\r\n {bottomEnd}\r\n </div>\r\n )}\r\n </div>\r\n )}\r\n </footer>\r\n );\r\n }\r\n\r\n return (\r\n <footer\r\n className={footerClass}\r\n data-testid={testId}\r\n role=\"contentinfo\"\r\n aria-label={ariaLabel}\r\n aria-labelledby={ariaLabelledBy ?? labelId}\r\n aria-describedby={ariaDescribedBy}\r\n {...rest}\r\n >\r\n <div className={classMap.content}>\r\n <div className={classMap.left} data-testid={`${testId}-left`}>\r\n {renderLogo()}\r\n\r\n {copyright && (\r\n <div\r\n className={classMap.copyright ?? classMap.left}\r\n data-testid={`${testId}-copyright`}\r\n >\r\n <p id={labelId}>{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={navAriaLabel}\r\n data-testid={`${testId}-nav`}\r\n >\r\n <ul>{links.map(renderFooterLink)}</ul>\r\n </nav>\r\n )}\r\n\r\n {renderThemeSelect()}\r\n {renderSocialLinks()}\r\n </div>\r\n </footer>\r\n );\r\n};\r\n\r\nFooterBase.displayName = \"FooterBase\";\r\nexport default FooterBase;\r\n","import { useContext, useMemo, forwardRef } from \"react\";\r\nimport Select from \"../../core/Select\";\r\nimport { ThemeContext } from \"../../../../context/ThemeContext\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultTheme,\r\n} from \"@/config/boreal-style-config\";\r\nimport { ThemeSelectProps } from \"../../Select.types\";\r\n\r\nconst UserThemeSettings = forwardRef<HTMLSelectElement, ThemeSelectProps>(\r\n (\r\n {\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 ref,\r\n ) => {\r\n const ctx = useContext(ThemeContext);\r\n if (!ctx)\r\n throw new Error(\"ThemeContext is undefined. Wrap with ThemeProvider.\");\r\n\r\n const { selectedScheme, setSelectedScheme, schemes } = ctx;\r\n\r\n const options = useMemo(\r\n () =>\r\n schemes.map((scheme, index) => ({\r\n value: String(index),\r\n label: scheme.name,\r\n })),\r\n [schemes],\r\n );\r\n\r\n return (\r\n <div className=\"control-container\">\r\n <Select\r\n ref={ref}\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}\r\n value={String(selectedScheme)}\r\n aria-label=\"Select Theme\"\r\n onChange={(value: string | number) =>\r\n setSelectedScheme(parseInt(String(value), 10))\r\n }\r\n />\r\n </div>\r\n );\r\n },\r\n);\r\nUserThemeSettings.displayName = \"UserThemeSettings\";\r\nexport default UserThemeSettings;\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 layoutColumns: \"footer_layout-columns\",\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\r\n // Existing inline layout\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 themeToggle: \"footer_theme-toggle\",\r\n copyright: \"footer_copyright\",\r\n\r\n // New column layout\r\n brand: \"footer_brand\",\r\n brandLink: \"footer_brand-link\",\r\n brandTitle: \"footer_brand-title\",\r\n brandDescription: \"footer_brand-description\",\r\n\r\n sections: \"footer_sections\",\r\n section: \"footer_section\",\r\n sectionTitle: \"footer_section-title\",\r\n sectionList: \"footer_section-list\",\r\n\r\n actions: \"footer_actions\",\r\n actionGroup: \"footer_action-group\",\r\n\r\n bottom: \"footer_bottom\",\r\n bottomCopyright: \"footer_bottom-copyright\",\r\n bottomEnd: \"footer_bottom-end\",\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\nFooter.displayName = \"Footer\";\r\n\r\nexport default Footer;\r\n"],"names":["IconButton","rest","ThemeSelect"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Footer-Dzwh3OnQ.js","sources":["../../src/components/Footer/FooterBase.tsx","../../src/components/Select/ThemeSelect/next/ThemeSelect.tsx","../../src/components/Footer/next/Footer.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\r\nimport {\r\n BaseFooterProps,\r\n FooterLink,\r\n FooterSection,\r\n LogoSource,\r\n} 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\nconst slugify = (value: string) =>\r\n value.toLowerCase().trim().replace(/\\s+/g, \"-\");\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 layout = \"inline\",\r\n className = \"\",\r\n \"data-testid\": testId = \"footer\",\r\n\r\n copyright,\r\n copyrightInBottom,\r\n links = [],\r\n sections,\r\n logo,\r\n brandTitle,\r\n brandDescription,\r\n brandHref,\r\n\r\n socialLinks = [],\r\n showThemeSelect = false,\r\n bottomEnd,\r\n\r\n IconButton,\r\n ImageComponent = \"img\",\r\n ThemeSelect,\r\n classMap,\r\n LinkWrapper = ({ href, children, ...rest }) => (\r\n <a href={href} {...rest}>\r\n {children}\r\n </a>\r\n ),\r\n\r\n \"aria-label\": ariaLabel,\r\n \"aria-labelledby\": ariaLabelledBy,\r\n \"aria-describedby\": ariaDescribedBy,\r\n navAriaLabel = \"Footer site links\",\r\n socialNavAriaLabel = \"Social media\",\r\n themeSelectAriaLabel = \"Theme selector\",\r\n logoAriaLabel = \"Logo\",\r\n logoDecorative = false,\r\n labelId,\r\n ...rest\r\n}) => {\r\n const footerClass = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.footer,\r\n classMap[theme],\r\n layout !== \"inline\" && classMap[`layout${capitalize(layout)}`],\r\n shadow !== \"none\" && classMap[`shadow${capitalize(shadow)}`],\r\n rounding !== \"none\" && classMap[`round${capitalize(rounding)}`],\r\n classMap[`attachment${capitalize(attachment)}`],\r\n className,\r\n ),\r\n [classMap, theme, layout, shadow, rounding, attachment, className],\r\n );\r\n\r\n const isLogoImage = (\r\n value: unknown,\r\n ): value is { src: string; width?: number; height?: number } =>\r\n typeof value === \"object\" &&\r\n value !== null &&\r\n \"src\" in (value as Record<string, unknown>);\r\n\r\n const isImgLike = typeof logo === \"string\" || isLogoImage(logo);\r\n\r\n const imgLogo = isImgLike\r\n ? typeof logo === \"string\"\r\n ? { src: logo }\r\n : logo\r\n : undefined;\r\n\r\n const logoSrc = imgLogo?.src;\r\n const logoW = imgLogo?.width ?? 20;\r\n const logoH = imgLogo?.height ?? 20;\r\n\r\n const normalizedSections: FooterSection[] =\r\n sections && sections.length > 0\r\n ? sections\r\n : links.length > 0\r\n ? [\r\n {\r\n title: \"Links\",\r\n links,\r\n \"aria-label\": navAriaLabel,\r\n testId: \"links\",\r\n },\r\n ]\r\n : [];\r\n\r\n const shouldRenderCopyrightInBottom =\r\n copyrightInBottom ?? layout === \"columns\";\r\n\r\n const renderLogo = () => {\r\n if (isImgLike && logoSrc) {\r\n if (typeof ImageComponent === \"string\") {\r\n return (\r\n <img\r\n className={classMap.logo}\r\n data-testid={`${testId}-logo`}\r\n loading=\"lazy\"\r\n src={logoSrc}\r\n alt={logoDecorative ? \"\" : logoAriaLabel}\r\n aria-hidden={logoDecorative ? true : undefined}\r\n height={logoH}\r\n width={logoW}\r\n />\r\n );\r\n }\r\n\r\n return (\r\n <ImageComponent\r\n className={classMap.logo}\r\n data-testid={`${testId}-logo`}\r\n src={logoSrc}\r\n alt={logoDecorative ? \"\" : logoAriaLabel}\r\n aria-hidden={logoDecorative ? true : undefined}\r\n height={logoH}\r\n width={logoW}\r\n />\r\n );\r\n }\r\n\r\n if (!logo) {\r\n return null;\r\n }\r\n\r\n return (\r\n <span\r\n className={classMap.logo}\r\n role={logoDecorative ? undefined : \"img\"}\r\n aria-label={logoDecorative ? undefined : logoAriaLabel}\r\n aria-hidden={logoDecorative ? true : undefined}\r\n data-testid={`${testId}-logo`}\r\n >\r\n {\r\n logo as Exclude<\r\n LogoSource,\r\n string | { src: string; width?: number; height?: number }\r\n >\r\n }\r\n </span>\r\n );\r\n };\r\n\r\n const renderFooterLink = (link: FooterLink, index: number) => {\r\n const slug = slugify(link.label || link.href || `link-${index}`);\r\n const key = `${link.href ?? slug}-${index}`;\r\n\r\n if (link.disabled) {\r\n return (\r\n <li key={key}>\r\n <span\r\n className={classMap.link}\r\n data-testid={`${testId}-link-${slug}`}\r\n aria-disabled=\"true\"\r\n title={link.title}\r\n >\r\n {link.label}\r\n </span>\r\n </li>\r\n );\r\n }\r\n\r\n return (\r\n <li key={key}>\r\n <LinkWrapper\r\n href={link.href}\r\n className={classMap.link}\r\n data-testid={`${testId}-link-${slug}`}\r\n aria-label={link[\"aria-label\"]}\r\n aria-current={link[\"aria-current\"]}\r\n title={link.title}\r\n rel={link.rel}\r\n target={link.target}\r\n >\r\n {link.label}\r\n </LinkWrapper>\r\n </li>\r\n );\r\n };\r\n\r\n const renderSocialLinks = () => {\r\n if (socialLinks.length === 0) {\r\n return null;\r\n }\r\n\r\n return (\r\n <nav\r\n className={classMap.social}\r\n aria-label={socialNavAriaLabel}\r\n data-testid={`${testId}-social`}\r\n >\r\n {socialLinks.map((social, index) => (\r\n <IconButton\r\n key={`${social.href ?? social.title}-${index}`}\r\n icon={social.icon}\r\n href={social.href}\r\n isExternal={social.isExternal ?? true}\r\n shadow=\"none\"\r\n aria-label={social[\"aria-label\"] ?? social.title}\r\n title={social.tooltip ?? social.title}\r\n theme=\"clear\"\r\n disabled={social.disabled}\r\n rel={social.rel}\r\n target={social.target}\r\n data-testid={`${testId}-social-${slugify(social.title)}`}\r\n />\r\n ))}\r\n </nav>\r\n );\r\n };\r\n\r\n const renderThemeSelect = () => {\r\n if (!showThemeSelect) {\r\n return null;\r\n }\r\n\r\n return (\r\n <div\r\n className={classMap.themeToggle}\r\n data-testid={`${testId}-theme-select`}\r\n aria-label={themeSelectAriaLabel}\r\n >\r\n <ThemeSelect\r\n theme=\"clear\"\r\n label={brandDescription}\r\n shadow=\"none\"\r\n aria-label={themeSelectAriaLabel}\r\n />\r\n </div>\r\n );\r\n };\r\n\r\n const renderBrand = () => {\r\n const brandContent = (\r\n <>\r\n {renderLogo()}\r\n\r\n {brandTitle && (\r\n <span\r\n className={classMap.brandTitle}\r\n data-testid={`${testId}-brand-title`}\r\n >\r\n {brandTitle}\r\n </span>\r\n )}\r\n </>\r\n );\r\n\r\n return (\r\n <div className={classMap.brand} data-testid={`${testId}-brand`}>\r\n {brandHref ? (\r\n <LinkWrapper\r\n href={brandHref}\r\n className={classMap.brandLink}\r\n aria-label={\r\n typeof brandTitle === \"string\" ? brandTitle : logoAriaLabel\r\n }\r\n >\r\n {brandContent}\r\n </LinkWrapper>\r\n ) : (\r\n <div className={classMap.brandLink}>{brandContent}</div>\r\n )}\r\n\r\n {brandDescription && (\r\n <p\r\n className={classMap.brandDescription}\r\n data-testid={`${testId}-brand-description`}\r\n >\r\n {brandDescription}\r\n </p>\r\n )}\r\n\r\n {copyright && !shouldRenderCopyrightInBottom && (\r\n <div\r\n className={classMap.copyright}\r\n data-testid={`${testId}-copyright`}\r\n >\r\n <p id={labelId}>{copyright}</p>\r\n </div>\r\n )}\r\n </div>\r\n );\r\n };\r\n\r\n const renderSections = () => {\r\n if (normalizedSections.length === 0) {\r\n return null;\r\n }\r\n\r\n return (\r\n <div className={classMap.sections} data-testid={`${testId}-sections`}>\r\n {normalizedSections.map((section, sectionIndex) => {\r\n const titleText =\r\n typeof section.title === \"string\"\r\n ? section.title\r\n : `section-${sectionIndex + 1}`;\r\n\r\n const sectionSlug = section.testId ?? slugify(titleText);\r\n\r\n return (\r\n <nav\r\n key={sectionSlug}\r\n className={classMap.section}\r\n aria-label={section[\"aria-label\"] ?? `${titleText} links`}\r\n data-testid={`${testId}-section-${sectionSlug}`}\r\n >\r\n <h2 className={classMap.sectionTitle}>{section.title}</h2>\r\n\r\n <ul className={classMap.sectionList}>\r\n {section.links.map(renderFooterLink)}\r\n </ul>\r\n </nav>\r\n );\r\n })}\r\n </div>\r\n );\r\n };\r\n\r\n if (layout === \"columns\") {\r\n return (\r\n <footer\r\n className={footerClass}\r\n data-testid={testId}\r\n role=\"contentinfo\"\r\n aria-label={ariaLabel}\r\n aria-labelledby={ariaLabelledBy ?? labelId}\r\n aria-describedby={ariaDescribedBy}\r\n {...rest}\r\n >\r\n <div className={classMap.content}>\r\n {renderBrand()}\r\n\r\n {renderSections()}\r\n\r\n {(socialLinks.length > 0 || showThemeSelect) && (\r\n <div className={classMap.actions} data-testid={`${testId}-actions`}>\r\n {socialLinks.length > 0 && (\r\n <div className={classMap.actionGroup}>\r\n <h2 className={classMap.sectionTitle}>Connect</h2>\r\n {renderSocialLinks()}\r\n </div>\r\n )}\r\n\r\n {renderThemeSelect()}\r\n </div>\r\n )}\r\n </div>\r\n\r\n {(copyright || bottomEnd) && (\r\n <div className={classMap.bottom} data-testid={`${testId}-bottom`}>\r\n {copyright && shouldRenderCopyrightInBottom && (\r\n <p\r\n id={labelId}\r\n className={classMap.bottomCopyright}\r\n data-testid={`${testId}-copyright`}\r\n >\r\n {copyright}\r\n </p>\r\n )}\r\n\r\n {bottomEnd && (\r\n <div\r\n className={classMap.bottomEnd}\r\n data-testid={`${testId}-bottom-end`}\r\n >\r\n {bottomEnd}\r\n </div>\r\n )}\r\n </div>\r\n )}\r\n </footer>\r\n );\r\n }\r\n\r\n return (\r\n <footer\r\n className={footerClass}\r\n data-testid={testId}\r\n role=\"contentinfo\"\r\n aria-label={ariaLabel}\r\n aria-labelledby={ariaLabelledBy ?? labelId}\r\n aria-describedby={ariaDescribedBy}\r\n {...rest}\r\n >\r\n <div className={classMap.content}>\r\n <div className={classMap.left} data-testid={`${testId}-left`}>\r\n {renderLogo()}\r\n\r\n {copyright && (\r\n <div\r\n className={classMap.copyright ?? classMap.left}\r\n data-testid={`${testId}-copyright`}\r\n >\r\n <p id={labelId}>{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={navAriaLabel}\r\n data-testid={`${testId}-nav`}\r\n >\r\n <ul>{links.map(renderFooterLink)}</ul>\r\n </nav>\r\n )}\r\n\r\n {renderThemeSelect()}\r\n {renderSocialLinks()}\r\n </div>\r\n </footer>\r\n );\r\n};\r\n\r\nFooterBase.displayName = \"FooterBase\";\r\nexport default FooterBase;\r\n","\"use client\";\r\n\r\nimport { useContext, useMemo, forwardRef } from \"react\";\r\nimport { Select } from \"@/index.next\";\r\nimport { ThemeContext } from \"../../../../context/ThemeContext\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultTheme,\r\n} from \"@/config/boreal-style-config\";\r\nimport { ThemeSelectProps } from \"../../Select.types\";\r\n\r\nconst UserThemeSettings = forwardRef<HTMLSelectElement, ThemeSelectProps>(\r\n (\r\n {\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 ref,\r\n ) => {\r\n const ctx = useContext(ThemeContext);\r\n if (!ctx)\r\n throw new Error(\"ThemeContext is undefined. Wrap with ThemeProvider.\");\r\n\r\n const { selectedScheme, setSelectedScheme, schemes } = ctx;\r\n\r\n const options = useMemo(\r\n () =>\r\n schemes.map((scheme, index) => ({\r\n value: String(index),\r\n label: scheme.name,\r\n })),\r\n [schemes],\r\n );\r\n\r\n return (\r\n <div className={`control-container`}>\r\n <Select\r\n ref={ref}\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}\r\n value={String(selectedScheme)}\r\n aria-label=\"Select Theme\"\r\n onChange={(value: string | number) =>\r\n setSelectedScheme(parseInt(String(value), 10))\r\n }\r\n />\r\n </div>\r\n );\r\n },\r\n);\r\nUserThemeSettings.displayName = \"UserThemeSettings\";\r\nexport default UserThemeSettings;\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport Link from \"next/link\";\r\nimport Image from \"next/image\";\r\n\r\nimport FooterBase from \"../FooterBase\";\r\nimport { FooterProps } from \"../Footer.types\";\r\nimport IconButton from \"../../IconButton/next/IconButton\";\r\nimport ThemeSelect from \"../../Select/ThemeSelect/next/ThemeSelect\";\r\n\r\nimport styles from \"./Footer.module.scss\";\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, className, ...rest }) => (\r\n <Link href={href} className={className} {...rest}>\r\n {children}\r\n </Link>\r\n )}\r\n classMap={styles}\r\n />\r\n );\r\n};\r\n\r\nFooter.displayName = \"Footer\";\r\n\r\nexport default Footer;\r\n"],"names":["copyright","links","sections","logo","brandTitle","brandDescription","bottomEnd","IconButton","rest","link","social","section","ThemeSelect"],"mappings":"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"}
|