boreal-ui 0.0.875 → 0.0.876
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/{Breadcrumbs--l_brteX.js → Breadcrumbs-BdpRclbv.js} +2 -2
- package/dist/core/{Breadcrumbs--l_brteX.js.map → Breadcrumbs-BdpRclbv.js.map} +1 -1
- package/dist/core/{Breadcrumbs-DB8KX7sH.cjs → Breadcrumbs-XAGnbbnf.cjs} +2 -2
- package/dist/core/{Breadcrumbs-DB8KX7sH.cjs.map → Breadcrumbs-XAGnbbnf.cjs.map} +1 -1
- package/dist/core/Breadcrumbs.cjs.js +1 -1
- package/dist/core/Breadcrumbs.js +1 -1
- package/dist/core/{Button-BT0hAOju.js → Button-BaGwg7qF.js} +51 -14
- package/dist/core/Button-BaGwg7qF.js.map +1 -0
- package/dist/core/{Button-B2ucbkuX.cjs → Button-lYDI65B8.cjs} +51 -14
- package/dist/core/Button-lYDI65B8.cjs.map +1 -0
- package/dist/core/Button.cjs.js +1 -1
- package/dist/core/Button.js +1 -1
- package/dist/core/{Card-DtTW3W1D.js → Card-CFWSgMiw.js} +3 -3
- package/dist/core/Card-CFWSgMiw.js.map +1 -0
- package/dist/core/{Card-BTmfk5hP.cjs → Card-w8pRLaZt.cjs} +3 -3
- package/dist/core/Card-w8pRLaZt.cjs.map +1 -0
- package/dist/core/Card.cjs.js +1 -1
- package/dist/core/Card.js +1 -1
- package/dist/core/{EmptyState-DjjDtIWX.cjs → EmptyState-CCViRh9p.cjs} +2 -2
- package/dist/core/{EmptyState-DjjDtIWX.cjs.map → EmptyState-CCViRh9p.cjs.map} +1 -1
- package/dist/core/{EmptyState-hJ0Ah8VR.js → EmptyState-CznfcfEG.js} +2 -2
- package/dist/core/{EmptyState-hJ0Ah8VR.js.map → EmptyState-CznfcfEG.js.map} +1 -1
- package/dist/core/EmptyState.cjs.js +1 -1
- package/dist/core/EmptyState.js +1 -1
- package/dist/core/{FileUpload-DNt-frsZ.js → FileUpload-34dJBxR9.js} +2 -2
- package/dist/core/{FileUpload-DNt-frsZ.js.map → FileUpload-34dJBxR9.js.map} +1 -1
- package/dist/core/{FileUpload-CAApCmGC.cjs → FileUpload-DQcxMDwI.cjs} +2 -2
- package/dist/core/{FileUpload-CAApCmGC.cjs.map → FileUpload-DQcxMDwI.cjs.map} +1 -1
- package/dist/core/FileUpload.cjs.js +1 -1
- package/dist/core/FileUpload.js +1 -1
- package/dist/core/MessagePopUp.cjs.js +1 -1
- package/dist/core/MessagePopUp.js +1 -1
- package/dist/core/{MessagePopup-RG3zdtj5.js → MessagePopup-Dk7CjOr0.js} +2 -2
- package/dist/core/{MessagePopup-RG3zdtj5.js.map → MessagePopup-Dk7CjOr0.js.map} +1 -1
- package/dist/core/{MessagePopup-BUv50REp.cjs → MessagePopup-DqN_Y2_P.cjs} +2 -2
- package/dist/core/{MessagePopup-BUv50REp.cjs.map → MessagePopup-DqN_Y2_P.cjs.map} +1 -1
- package/dist/core/{NotificationCenter-LKIIfSiT.js → NotificationCenter-B2XFmxSy.js} +2 -2
- package/dist/core/{NotificationCenter-LKIIfSiT.js.map → NotificationCenter-B2XFmxSy.js.map} +1 -1
- package/dist/core/{NotificationCenter-CKTzBgOe.cjs → NotificationCenter-CVQre3sK.cjs} +2 -2
- package/dist/core/{NotificationCenter-CKTzBgOe.cjs.map → NotificationCenter-CVQre3sK.cjs.map} +1 -1
- package/dist/core/NotificationCenter.cjs.js +1 -1
- package/dist/core/NotificationCenter.js +1 -1
- package/dist/core/{Pager-CJg_Ii_h.cjs → Pager-BfZjH19n.cjs} +2 -2
- package/dist/core/{Pager-CJg_Ii_h.cjs.map → Pager-BfZjH19n.cjs.map} +1 -1
- package/dist/core/{Pager-C5iWqoD3.js → Pager-ab8rL0mL.js} +2 -2
- package/dist/core/{Pager-C5iWqoD3.js.map → Pager-ab8rL0mL.js.map} +1 -1
- package/dist/core/Pager.cjs.js +1 -1
- package/dist/core/Pager.js +1 -1
- package/dist/core/index.cjs.js +8 -8
- package/dist/core/index.js +8 -8
- package/dist/next/{Breadcrumbs-CxgPTBBM.js → Breadcrumbs-Cgk0z-9h.js} +2 -2
- package/dist/next/{Breadcrumbs-CxgPTBBM.js.map → Breadcrumbs-Cgk0z-9h.js.map} +1 -1
- package/dist/next/Breadcrumbs.js +1 -1
- package/dist/next/{Button-K2UelzjP.js → Button-BGME_58W.js} +51 -14
- package/dist/next/Button-BGME_58W.js.map +1 -0
- package/dist/next/Button.js +1 -1
- package/dist/next/{Card-DPdUGJNc.js → Card-Bxu8go5J.js} +3 -3
- package/dist/next/Card-Bxu8go5J.js.map +1 -0
- package/dist/next/Card.js +1 -1
- package/dist/next/{EmptyState-DM5giP1X.js → EmptyState-DdfgeBaq.js} +2 -2
- package/dist/next/{EmptyState-DM5giP1X.js.map → EmptyState-DdfgeBaq.js.map} +1 -1
- package/dist/next/EmptyState.js +1 -1
- package/dist/next/{FileUpload-CfAVPsf1.js → FileUpload-BmxLHgMN.js} +2 -2
- package/dist/next/{FileUpload-CfAVPsf1.js.map → FileUpload-BmxLHgMN.js.map} +1 -1
- package/dist/next/FileUpload.js +1 -1
- package/dist/next/MessagePopUp.js +1 -1
- package/dist/next/{MessagePopup-DyRX8q6g.js → MessagePopup-CDjb13uA.js} +2 -2
- package/dist/next/{MessagePopup-DyRX8q6g.js.map → MessagePopup-CDjb13uA.js.map} +1 -1
- package/dist/next/{NotificationCenter-C8-D4TEF.js → NotificationCenter-D4pUI-xL.js} +2 -2
- package/dist/next/{NotificationCenter-C8-D4TEF.js.map → NotificationCenter-D4pUI-xL.js.map} +1 -1
- package/dist/next/NotificationCenter.js +1 -1
- package/dist/next/{Pager-iGsdhDF6.js → Pager-BkUgaSsA.js} +2 -2
- package/dist/next/{Pager-iGsdhDF6.js.map → Pager-BkUgaSsA.js.map} +1 -1
- package/dist/next/Pager.js +1 -1
- package/dist/next/index.js +8 -8
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/types/components/Button/Button.types.d.ts +10 -0
- package/dist/types/components/Button/Button.types.d.ts.map +1 -1
- package/dist/types/components/Button/ButtonBase.d.ts.map +1 -1
- package/dist/types/components/Card/CardBase.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/core/Button-B2ucbkuX.cjs.map +0 -1
- package/dist/core/Button-BT0hAOju.js.map +0 -1
- package/dist/core/Card-BTmfk5hP.cjs.map +0 -1
- package/dist/core/Card-DtTW3W1D.js.map +0 -1
- package/dist/next/Button-K2UelzjP.js.map +0 -1
- package/dist/next/Card-DPdUGJNc.js.map +0 -1
|
@@ -4,7 +4,7 @@ import { c as combineClassNames } from "./classNames-AS8QjFq7.js";
|
|
|
4
4
|
import { A as ArrowRightIcon } from "./ArrowRightIcon-BYQv5XS8.js";
|
|
5
5
|
import { c as capitalize } from "./capitalize-C0TSQSPh.js";
|
|
6
6
|
import { d as getDefaultTheme, a as getDefaultRounding, b as getDefaultShadow, c as getDefaultSize } from "./boreal-style-config-DsaRlxmw.js";
|
|
7
|
-
import { B as Button } from "./Button-
|
|
7
|
+
import { B as Button } from "./Button-BaGwg7qF.js";
|
|
8
8
|
import './Breadcrumbs.css';const ELLIPSIS_LABEL = "…";
|
|
9
9
|
const BreadcrumbsBase = ({
|
|
10
10
|
items,
|
|
@@ -207,4 +207,4 @@ Breadcrumbs.displayName = "Breadcrumbs";
|
|
|
207
207
|
export {
|
|
208
208
|
Breadcrumbs as B
|
|
209
209
|
};
|
|
210
|
-
//# sourceMappingURL=Breadcrumbs
|
|
210
|
+
//# sourceMappingURL=Breadcrumbs-BdpRclbv.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Breadcrumbs--l_brteX.js","sources":["../../src/components/Breadcrumbs/BreadcrumbsBase.tsx","../../src/components/Breadcrumbs/core/Breadcrumbs.tsx"],"sourcesContent":["import React, { useMemo, useState } from \"react\";\r\nimport { Breadcrumb, BreadcrumbsBaseProps } from \"./Breadcrumbs.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { ArrowRightIcon } from \"../../Icons/index\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultSize,\r\n getDefaultTheme,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nexport const ELLIPSIS_LABEL = \"…\";\r\n\r\nexport const BreadcrumbsBase: React.FC<BreadcrumbsBaseProps> = ({\r\n items,\r\n \"aria-label\": ariaLabel = \"Breadcrumbs\",\r\n \"aria-labelledby\": ariaLabelledBy,\r\n \"aria-describedby\": ariaDescribedBy,\r\n theme = getDefaultTheme(),\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n state = \"\",\r\n separator,\r\n classMap,\r\n disabled = false,\r\n size = getDefaultSize(),\r\n outline = false,\r\n className = \"\",\r\n maxVisible,\r\n LinkComponent = \"a\",\r\n ButtonComponent = \"button\",\r\n \"data-testid\": testId = \"breadcrumbs\",\r\n ...rest\r\n}) => {\r\n const [isExpanded, setIsExpanded] = useState(false);\r\n\r\n const handleExpand = () => {\r\n setIsExpanded(true);\r\n };\r\n\r\n if (!items || items.length === 0) return null;\r\n\r\n const visibleItems: Breadcrumb[] = useMemo(() => {\r\n if (isExpanded || !maxVisible || items.length <= maxVisible) return items;\r\n\r\n const first = items[0];\r\n const lastItems = items.slice(items.length - (maxVisible - 2));\r\n\r\n return [first, { label: ELLIPSIS_LABEL }, ...lastItems];\r\n }, [items, isExpanded, maxVisible]);\r\n\r\n const breadcrumbsClass = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.breadcrumbs,\r\n classMap[theme],\r\n classMap[state],\r\n classMap[size],\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n disabled && classMap.disabled,\r\n outline && classMap.outline,\r\n className,\r\n ),\r\n [\r\n theme,\r\n state,\r\n size,\r\n shadow,\r\n rounding,\r\n disabled,\r\n outline,\r\n className,\r\n classMap,\r\n ],\r\n );\r\n\r\n return (\r\n <nav\r\n {...rest}\r\n aria-label={ariaLabelledBy ? undefined : ariaLabel}\r\n aria-labelledby={ariaLabelledBy}\r\n aria-describedby={ariaDescribedBy}\r\n data-testid={testId ? `${testId}-nav-container` : undefined}\r\n className={breadcrumbsClass}\r\n >\r\n <ol\r\n className={classMap.list}\r\n data-testid={testId ? `${testId}-nav-list` : undefined}\r\n itemScope\r\n itemType=\"https://schema.org/BreadcrumbList\"\r\n >\r\n {visibleItems.map((item, index) => {\r\n const isLast = index === visibleItems.length - 1;\r\n const isEllipsis = item.label === ELLIPSIS_LABEL;\r\n const isItemDisabled = disabled || item.disabled;\r\n\r\n const itemClassName = combineClassNames(\r\n classMap.item,\r\n isExpanded && !isEllipsis && classMap.item_animate,\r\n isLast && classMap.item_active,\r\n isItemDisabled && classMap.disabled,\r\n );\r\n\r\n const itemTitle = item.title ?? item.label;\r\n\r\n return (\r\n <li\r\n data-testid={testId ? `${testId}-nav-item` : undefined}\r\n key={`${item.label}-${item.href ?? index}`}\r\n className={itemClassName}\r\n itemProp=\"itemListElement\"\r\n itemScope\r\n itemType=\"https://schema.org/ListItem\"\r\n >\r\n {isEllipsis ? (\r\n <ButtonComponent\r\n theme=\"clear\"\r\n size=\"xs\"\r\n className={classMap.ellipsis}\r\n aria-label=\"Show all breadcrumbs\"\r\n aria-expanded={isExpanded}\r\n aria-disabled={isItemDisabled || undefined}\r\n onClick={isItemDisabled ? undefined : handleExpand}\r\n disabled={isItemDisabled}\r\n tabIndex={isItemDisabled ? -1 : 0}\r\n data-testid={testId ? `${testId}-ellipsis` : undefined}\r\n >\r\n {item.label}\r\n </ButtonComponent>\r\n ) : item.href && !isLast ? (\r\n isItemDisabled ? (\r\n <span\r\n className={combineClassNames(\r\n classMap.link_disabled,\r\n classMap.current,\r\n )}\r\n title={itemTitle}\r\n aria-label={item[\"aria-label\"]}\r\n aria-disabled=\"true\"\r\n itemProp=\"name\"\r\n data-testid={\r\n testId ? `${testId}-nav-item-label` : undefined\r\n }\r\n >\r\n {item.label}\r\n </span>\r\n ) : (\r\n <LinkComponent\r\n href={item.href}\r\n className={classMap.link}\r\n title={itemTitle}\r\n aria-label={item[\"aria-label\"]}\r\n itemProp=\"item\"\r\n data-testid={\r\n testId ? `${testId}-nav-item-label` : undefined\r\n }\r\n >\r\n <span itemProp=\"name\" className={classMap.link_label}>\r\n {item.label}\r\n </span>\r\n </LinkComponent>\r\n )\r\n ) : (\r\n <span\r\n className={classMap.current}\r\n itemProp=\"name\"\r\n aria-current=\"page\"\r\n aria-label={item[\"aria-label\"]}\r\n title={itemTitle}\r\n data-testid={\r\n testId ? `${testId}-nav-item-current` : undefined\r\n }\r\n >\r\n {item.label}\r\n </span>\r\n )}\r\n\r\n {!isLast && (\r\n <span className={classMap.separator} aria-hidden=\"true\">\r\n {separator ?? <ArrowRightIcon />}\r\n </span>\r\n )}\r\n\r\n <meta itemProp=\"position\" content={`${index + 1}`} />\r\n </li>\r\n );\r\n })}\r\n </ol>\r\n </nav>\r\n );\r\n};\r\n\r\nBreadcrumbsBase.displayName = \"BreadcrumbsBase\";\r\n","import React from \"react\";\r\nimport \"./Breadcrumbs.scss\";\r\nimport { BreadcrumbsBase } from \"../BreadcrumbsBase\";\r\nimport { BreadcrumbsProps } from \"../Breadcrumbs.types\";\r\nimport Button from \"../../Button/core/Button\";\r\n\r\nconst classes = {\r\n breadcrumbs: \"breadcrumbs\",\r\n\r\n primary: \"breadcrumbs_primary\",\r\n secondary: \"breadcrumbs_secondary\",\r\n tertiary: \"breadcrumbs_tertiary\",\r\n quaternary: \"breadcrumbs_quaternary\",\r\n\r\n success: \"breadcrumbs_success\",\r\n warning: \"breadcrumbs_warning\",\r\n error: \"breadcrumbs_error\",\r\n\r\n clear: \"breadcrumbs_clear\",\r\n\r\n outline: \"breadcrumbs_outline\",\r\n disabled: \"breadcrumbs_disabled\",\r\n\r\n shadowNone: \"breadcrumbs_shadow-None\",\r\n shadowLight: \"breadcrumbs_shadow-Light\",\r\n shadowMedium: \"breadcrumbs_shadow-Medium\",\r\n shadowStrong: \"breadcrumbs_shadow-Strong\",\r\n shadowIntense: \"breadcrumbs_shadow-Intense\",\r\n\r\n roundNone: \"breadcrumbs_round-None\",\r\n roundSmall: \"breadcrumbs_round-Small\",\r\n roundMedium: \"breadcrumbs_round-Medium\",\r\n roundLarge: \"breadcrumbs_round-Large\",\r\n\r\n xs: \"breadcrumbs_xs\",\r\n small: \"breadcrumbs_small\",\r\n medium: \"breadcrumbs_medium\",\r\n large: \"breadcrumbs_large\",\r\n xl: \"breadcrumbs_xl\",\r\n\r\n list: \"breadcrumbs_list\",\r\n item: \"breadcrumbs_item\",\r\n item_animate: \"breadcrumbs_item_animate\",\r\n item_active: \"breadcrumbs_item_active\",\r\n ellipsis: \"breadcrumbs_ellipsis\",\r\n link: \"breadcrumbs_link\",\r\n link_label: \"breadcrumbs_link_label\",\r\n current: \"breadcrumbs_current\",\r\n separator: \"breadcrumbs_separator\",\r\n separator_icon: \"breadcrumbs_separator_icon\",\r\n};\r\n\r\nconst Breadcrumbs: React.FC<BreadcrumbsProps> = (props) => {\r\n return (\r\n <BreadcrumbsBase {...props} classMap={classes} ButtonComponent={Button} />\r\n );\r\n};\r\nBreadcrumbs.displayName = \"Breadcrumbs\";\r\nexport default Breadcrumbs;\r\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Breadcrumbs-BdpRclbv.js","sources":["../../src/components/Breadcrumbs/BreadcrumbsBase.tsx","../../src/components/Breadcrumbs/core/Breadcrumbs.tsx"],"sourcesContent":["import React, { useMemo, useState } from \"react\";\r\nimport { Breadcrumb, BreadcrumbsBaseProps } from \"./Breadcrumbs.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { ArrowRightIcon } from \"../../Icons/index\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultSize,\r\n getDefaultTheme,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nexport const ELLIPSIS_LABEL = \"…\";\r\n\r\nexport const BreadcrumbsBase: React.FC<BreadcrumbsBaseProps> = ({\r\n items,\r\n \"aria-label\": ariaLabel = \"Breadcrumbs\",\r\n \"aria-labelledby\": ariaLabelledBy,\r\n \"aria-describedby\": ariaDescribedBy,\r\n theme = getDefaultTheme(),\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n state = \"\",\r\n separator,\r\n classMap,\r\n disabled = false,\r\n size = getDefaultSize(),\r\n outline = false,\r\n className = \"\",\r\n maxVisible,\r\n LinkComponent = \"a\",\r\n ButtonComponent = \"button\",\r\n \"data-testid\": testId = \"breadcrumbs\",\r\n ...rest\r\n}) => {\r\n const [isExpanded, setIsExpanded] = useState(false);\r\n\r\n const handleExpand = () => {\r\n setIsExpanded(true);\r\n };\r\n\r\n if (!items || items.length === 0) return null;\r\n\r\n const visibleItems: Breadcrumb[] = useMemo(() => {\r\n if (isExpanded || !maxVisible || items.length <= maxVisible) return items;\r\n\r\n const first = items[0];\r\n const lastItems = items.slice(items.length - (maxVisible - 2));\r\n\r\n return [first, { label: ELLIPSIS_LABEL }, ...lastItems];\r\n }, [items, isExpanded, maxVisible]);\r\n\r\n const breadcrumbsClass = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.breadcrumbs,\r\n classMap[theme],\r\n classMap[state],\r\n classMap[size],\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n disabled && classMap.disabled,\r\n outline && classMap.outline,\r\n className,\r\n ),\r\n [\r\n theme,\r\n state,\r\n size,\r\n shadow,\r\n rounding,\r\n disabled,\r\n outline,\r\n className,\r\n classMap,\r\n ],\r\n );\r\n\r\n return (\r\n <nav\r\n {...rest}\r\n aria-label={ariaLabelledBy ? undefined : ariaLabel}\r\n aria-labelledby={ariaLabelledBy}\r\n aria-describedby={ariaDescribedBy}\r\n data-testid={testId ? `${testId}-nav-container` : undefined}\r\n className={breadcrumbsClass}\r\n >\r\n <ol\r\n className={classMap.list}\r\n data-testid={testId ? `${testId}-nav-list` : undefined}\r\n itemScope\r\n itemType=\"https://schema.org/BreadcrumbList\"\r\n >\r\n {visibleItems.map((item, index) => {\r\n const isLast = index === visibleItems.length - 1;\r\n const isEllipsis = item.label === ELLIPSIS_LABEL;\r\n const isItemDisabled = disabled || item.disabled;\r\n\r\n const itemClassName = combineClassNames(\r\n classMap.item,\r\n isExpanded && !isEllipsis && classMap.item_animate,\r\n isLast && classMap.item_active,\r\n isItemDisabled && classMap.disabled,\r\n );\r\n\r\n const itemTitle = item.title ?? item.label;\r\n\r\n return (\r\n <li\r\n data-testid={testId ? `${testId}-nav-item` : undefined}\r\n key={`${item.label}-${item.href ?? index}`}\r\n className={itemClassName}\r\n itemProp=\"itemListElement\"\r\n itemScope\r\n itemType=\"https://schema.org/ListItem\"\r\n >\r\n {isEllipsis ? (\r\n <ButtonComponent\r\n theme=\"clear\"\r\n size=\"xs\"\r\n className={classMap.ellipsis}\r\n aria-label=\"Show all breadcrumbs\"\r\n aria-expanded={isExpanded}\r\n aria-disabled={isItemDisabled || undefined}\r\n onClick={isItemDisabled ? undefined : handleExpand}\r\n disabled={isItemDisabled}\r\n tabIndex={isItemDisabled ? -1 : 0}\r\n data-testid={testId ? `${testId}-ellipsis` : undefined}\r\n >\r\n {item.label}\r\n </ButtonComponent>\r\n ) : item.href && !isLast ? (\r\n isItemDisabled ? (\r\n <span\r\n className={combineClassNames(\r\n classMap.link_disabled,\r\n classMap.current,\r\n )}\r\n title={itemTitle}\r\n aria-label={item[\"aria-label\"]}\r\n aria-disabled=\"true\"\r\n itemProp=\"name\"\r\n data-testid={\r\n testId ? `${testId}-nav-item-label` : undefined\r\n }\r\n >\r\n {item.label}\r\n </span>\r\n ) : (\r\n <LinkComponent\r\n href={item.href}\r\n className={classMap.link}\r\n title={itemTitle}\r\n aria-label={item[\"aria-label\"]}\r\n itemProp=\"item\"\r\n data-testid={\r\n testId ? `${testId}-nav-item-label` : undefined\r\n }\r\n >\r\n <span itemProp=\"name\" className={classMap.link_label}>\r\n {item.label}\r\n </span>\r\n </LinkComponent>\r\n )\r\n ) : (\r\n <span\r\n className={classMap.current}\r\n itemProp=\"name\"\r\n aria-current=\"page\"\r\n aria-label={item[\"aria-label\"]}\r\n title={itemTitle}\r\n data-testid={\r\n testId ? `${testId}-nav-item-current` : undefined\r\n }\r\n >\r\n {item.label}\r\n </span>\r\n )}\r\n\r\n {!isLast && (\r\n <span className={classMap.separator} aria-hidden=\"true\">\r\n {separator ?? <ArrowRightIcon />}\r\n </span>\r\n )}\r\n\r\n <meta itemProp=\"position\" content={`${index + 1}`} />\r\n </li>\r\n );\r\n })}\r\n </ol>\r\n </nav>\r\n );\r\n};\r\n\r\nBreadcrumbsBase.displayName = \"BreadcrumbsBase\";\r\n","import React from \"react\";\r\nimport \"./Breadcrumbs.scss\";\r\nimport { BreadcrumbsBase } from \"../BreadcrumbsBase\";\r\nimport { BreadcrumbsProps } from \"../Breadcrumbs.types\";\r\nimport Button from \"../../Button/core/Button\";\r\n\r\nconst classes = {\r\n breadcrumbs: \"breadcrumbs\",\r\n\r\n primary: \"breadcrumbs_primary\",\r\n secondary: \"breadcrumbs_secondary\",\r\n tertiary: \"breadcrumbs_tertiary\",\r\n quaternary: \"breadcrumbs_quaternary\",\r\n\r\n success: \"breadcrumbs_success\",\r\n warning: \"breadcrumbs_warning\",\r\n error: \"breadcrumbs_error\",\r\n\r\n clear: \"breadcrumbs_clear\",\r\n\r\n outline: \"breadcrumbs_outline\",\r\n disabled: \"breadcrumbs_disabled\",\r\n\r\n shadowNone: \"breadcrumbs_shadow-None\",\r\n shadowLight: \"breadcrumbs_shadow-Light\",\r\n shadowMedium: \"breadcrumbs_shadow-Medium\",\r\n shadowStrong: \"breadcrumbs_shadow-Strong\",\r\n shadowIntense: \"breadcrumbs_shadow-Intense\",\r\n\r\n roundNone: \"breadcrumbs_round-None\",\r\n roundSmall: \"breadcrumbs_round-Small\",\r\n roundMedium: \"breadcrumbs_round-Medium\",\r\n roundLarge: \"breadcrumbs_round-Large\",\r\n\r\n xs: \"breadcrumbs_xs\",\r\n small: \"breadcrumbs_small\",\r\n medium: \"breadcrumbs_medium\",\r\n large: \"breadcrumbs_large\",\r\n xl: \"breadcrumbs_xl\",\r\n\r\n list: \"breadcrumbs_list\",\r\n item: \"breadcrumbs_item\",\r\n item_animate: \"breadcrumbs_item_animate\",\r\n item_active: \"breadcrumbs_item_active\",\r\n ellipsis: \"breadcrumbs_ellipsis\",\r\n link: \"breadcrumbs_link\",\r\n link_label: \"breadcrumbs_link_label\",\r\n current: \"breadcrumbs_current\",\r\n separator: \"breadcrumbs_separator\",\r\n separator_icon: \"breadcrumbs_separator_icon\",\r\n};\r\n\r\nconst Breadcrumbs: React.FC<BreadcrumbsProps> = (props) => {\r\n return (\r\n <BreadcrumbsBase {...props} classMap={classes} ButtonComponent={Button} />\r\n );\r\n};\r\nBreadcrumbs.displayName = \"Breadcrumbs\";\r\nexport default Breadcrumbs;\r\n"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@ const classNames = require("./classNames-BcWMx052.cjs");
|
|
|
5
5
|
const ArrowRightIcon = require("./ArrowRightIcon-ClXQHGAD.cjs");
|
|
6
6
|
const capitalize = require("./capitalize-DoV-nOmN.cjs");
|
|
7
7
|
const borealStyleConfig = require("./boreal-style-config-C1UIwOFN.cjs");
|
|
8
|
-
const Button = require("./Button-
|
|
8
|
+
const Button = require("./Button-lYDI65B8.cjs");
|
|
9
9
|
const ELLIPSIS_LABEL = "…";
|
|
10
10
|
const BreadcrumbsBase = ({
|
|
11
11
|
items,
|
|
@@ -206,4 +206,4 @@ const Breadcrumbs = (props) => {
|
|
|
206
206
|
};
|
|
207
207
|
Breadcrumbs.displayName = "Breadcrumbs";
|
|
208
208
|
exports.Breadcrumbs = Breadcrumbs;
|
|
209
|
-
//# sourceMappingURL=Breadcrumbs-
|
|
209
|
+
//# sourceMappingURL=Breadcrumbs-XAGnbbnf.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Breadcrumbs-DB8KX7sH.cjs","sources":["../../src/components/Breadcrumbs/BreadcrumbsBase.tsx","../../src/components/Breadcrumbs/core/Breadcrumbs.tsx"],"sourcesContent":["import React, { useMemo, useState } from \"react\";\r\nimport { Breadcrumb, BreadcrumbsBaseProps } from \"./Breadcrumbs.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { ArrowRightIcon } from \"../../Icons/index\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultSize,\r\n getDefaultTheme,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nexport const ELLIPSIS_LABEL = \"…\";\r\n\r\nexport const BreadcrumbsBase: React.FC<BreadcrumbsBaseProps> = ({\r\n items,\r\n \"aria-label\": ariaLabel = \"Breadcrumbs\",\r\n \"aria-labelledby\": ariaLabelledBy,\r\n \"aria-describedby\": ariaDescribedBy,\r\n theme = getDefaultTheme(),\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n state = \"\",\r\n separator,\r\n classMap,\r\n disabled = false,\r\n size = getDefaultSize(),\r\n outline = false,\r\n className = \"\",\r\n maxVisible,\r\n LinkComponent = \"a\",\r\n ButtonComponent = \"button\",\r\n \"data-testid\": testId = \"breadcrumbs\",\r\n ...rest\r\n}) => {\r\n const [isExpanded, setIsExpanded] = useState(false);\r\n\r\n const handleExpand = () => {\r\n setIsExpanded(true);\r\n };\r\n\r\n if (!items || items.length === 0) return null;\r\n\r\n const visibleItems: Breadcrumb[] = useMemo(() => {\r\n if (isExpanded || !maxVisible || items.length <= maxVisible) return items;\r\n\r\n const first = items[0];\r\n const lastItems = items.slice(items.length - (maxVisible - 2));\r\n\r\n return [first, { label: ELLIPSIS_LABEL }, ...lastItems];\r\n }, [items, isExpanded, maxVisible]);\r\n\r\n const breadcrumbsClass = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.breadcrumbs,\r\n classMap[theme],\r\n classMap[state],\r\n classMap[size],\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n disabled && classMap.disabled,\r\n outline && classMap.outline,\r\n className,\r\n ),\r\n [\r\n theme,\r\n state,\r\n size,\r\n shadow,\r\n rounding,\r\n disabled,\r\n outline,\r\n className,\r\n classMap,\r\n ],\r\n );\r\n\r\n return (\r\n <nav\r\n {...rest}\r\n aria-label={ariaLabelledBy ? undefined : ariaLabel}\r\n aria-labelledby={ariaLabelledBy}\r\n aria-describedby={ariaDescribedBy}\r\n data-testid={testId ? `${testId}-nav-container` : undefined}\r\n className={breadcrumbsClass}\r\n >\r\n <ol\r\n className={classMap.list}\r\n data-testid={testId ? `${testId}-nav-list` : undefined}\r\n itemScope\r\n itemType=\"https://schema.org/BreadcrumbList\"\r\n >\r\n {visibleItems.map((item, index) => {\r\n const isLast = index === visibleItems.length - 1;\r\n const isEllipsis = item.label === ELLIPSIS_LABEL;\r\n const isItemDisabled = disabled || item.disabled;\r\n\r\n const itemClassName = combineClassNames(\r\n classMap.item,\r\n isExpanded && !isEllipsis && classMap.item_animate,\r\n isLast && classMap.item_active,\r\n isItemDisabled && classMap.disabled,\r\n );\r\n\r\n const itemTitle = item.title ?? item.label;\r\n\r\n return (\r\n <li\r\n data-testid={testId ? `${testId}-nav-item` : undefined}\r\n key={`${item.label}-${item.href ?? index}`}\r\n className={itemClassName}\r\n itemProp=\"itemListElement\"\r\n itemScope\r\n itemType=\"https://schema.org/ListItem\"\r\n >\r\n {isEllipsis ? (\r\n <ButtonComponent\r\n theme=\"clear\"\r\n size=\"xs\"\r\n className={classMap.ellipsis}\r\n aria-label=\"Show all breadcrumbs\"\r\n aria-expanded={isExpanded}\r\n aria-disabled={isItemDisabled || undefined}\r\n onClick={isItemDisabled ? undefined : handleExpand}\r\n disabled={isItemDisabled}\r\n tabIndex={isItemDisabled ? -1 : 0}\r\n data-testid={testId ? `${testId}-ellipsis` : undefined}\r\n >\r\n {item.label}\r\n </ButtonComponent>\r\n ) : item.href && !isLast ? (\r\n isItemDisabled ? (\r\n <span\r\n className={combineClassNames(\r\n classMap.link_disabled,\r\n classMap.current,\r\n )}\r\n title={itemTitle}\r\n aria-label={item[\"aria-label\"]}\r\n aria-disabled=\"true\"\r\n itemProp=\"name\"\r\n data-testid={\r\n testId ? `${testId}-nav-item-label` : undefined\r\n }\r\n >\r\n {item.label}\r\n </span>\r\n ) : (\r\n <LinkComponent\r\n href={item.href}\r\n className={classMap.link}\r\n title={itemTitle}\r\n aria-label={item[\"aria-label\"]}\r\n itemProp=\"item\"\r\n data-testid={\r\n testId ? `${testId}-nav-item-label` : undefined\r\n }\r\n >\r\n <span itemProp=\"name\" className={classMap.link_label}>\r\n {item.label}\r\n </span>\r\n </LinkComponent>\r\n )\r\n ) : (\r\n <span\r\n className={classMap.current}\r\n itemProp=\"name\"\r\n aria-current=\"page\"\r\n aria-label={item[\"aria-label\"]}\r\n title={itemTitle}\r\n data-testid={\r\n testId ? `${testId}-nav-item-current` : undefined\r\n }\r\n >\r\n {item.label}\r\n </span>\r\n )}\r\n\r\n {!isLast && (\r\n <span className={classMap.separator} aria-hidden=\"true\">\r\n {separator ?? <ArrowRightIcon />}\r\n </span>\r\n )}\r\n\r\n <meta itemProp=\"position\" content={`${index + 1}`} />\r\n </li>\r\n );\r\n })}\r\n </ol>\r\n </nav>\r\n );\r\n};\r\n\r\nBreadcrumbsBase.displayName = \"BreadcrumbsBase\";\r\n","import React from \"react\";\r\nimport \"./Breadcrumbs.scss\";\r\nimport { BreadcrumbsBase } from \"../BreadcrumbsBase\";\r\nimport { BreadcrumbsProps } from \"../Breadcrumbs.types\";\r\nimport Button from \"../../Button/core/Button\";\r\n\r\nconst classes = {\r\n breadcrumbs: \"breadcrumbs\",\r\n\r\n primary: \"breadcrumbs_primary\",\r\n secondary: \"breadcrumbs_secondary\",\r\n tertiary: \"breadcrumbs_tertiary\",\r\n quaternary: \"breadcrumbs_quaternary\",\r\n\r\n success: \"breadcrumbs_success\",\r\n warning: \"breadcrumbs_warning\",\r\n error: \"breadcrumbs_error\",\r\n\r\n clear: \"breadcrumbs_clear\",\r\n\r\n outline: \"breadcrumbs_outline\",\r\n disabled: \"breadcrumbs_disabled\",\r\n\r\n shadowNone: \"breadcrumbs_shadow-None\",\r\n shadowLight: \"breadcrumbs_shadow-Light\",\r\n shadowMedium: \"breadcrumbs_shadow-Medium\",\r\n shadowStrong: \"breadcrumbs_shadow-Strong\",\r\n shadowIntense: \"breadcrumbs_shadow-Intense\",\r\n\r\n roundNone: \"breadcrumbs_round-None\",\r\n roundSmall: \"breadcrumbs_round-Small\",\r\n roundMedium: \"breadcrumbs_round-Medium\",\r\n roundLarge: \"breadcrumbs_round-Large\",\r\n\r\n xs: \"breadcrumbs_xs\",\r\n small: \"breadcrumbs_small\",\r\n medium: \"breadcrumbs_medium\",\r\n large: \"breadcrumbs_large\",\r\n xl: \"breadcrumbs_xl\",\r\n\r\n list: \"breadcrumbs_list\",\r\n item: \"breadcrumbs_item\",\r\n item_animate: \"breadcrumbs_item_animate\",\r\n item_active: \"breadcrumbs_item_active\",\r\n ellipsis: \"breadcrumbs_ellipsis\",\r\n link: \"breadcrumbs_link\",\r\n link_label: \"breadcrumbs_link_label\",\r\n current: \"breadcrumbs_current\",\r\n separator: \"breadcrumbs_separator\",\r\n separator_icon: \"breadcrumbs_separator_icon\",\r\n};\r\n\r\nconst Breadcrumbs: React.FC<BreadcrumbsProps> = (props) => {\r\n return (\r\n <BreadcrumbsBase {...props} classMap={classes} ButtonComponent={Button} />\r\n );\r\n};\r\nBreadcrumbs.displayName = \"Breadcrumbs\";\r\nexport default Breadcrumbs;\r\n"],"names":["getDefaultTheme","getDefaultRounding","getDefaultShadow","getDefaultSize","useState","useMemo","combineClassNames","capitalize","jsx","jsxs","ArrowRightIcon","Button"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Breadcrumbs-XAGnbbnf.cjs","sources":["../../src/components/Breadcrumbs/BreadcrumbsBase.tsx","../../src/components/Breadcrumbs/core/Breadcrumbs.tsx"],"sourcesContent":["import React, { useMemo, useState } from \"react\";\r\nimport { Breadcrumb, BreadcrumbsBaseProps } from \"./Breadcrumbs.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { ArrowRightIcon } from \"../../Icons/index\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultSize,\r\n getDefaultTheme,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nexport const ELLIPSIS_LABEL = \"…\";\r\n\r\nexport const BreadcrumbsBase: React.FC<BreadcrumbsBaseProps> = ({\r\n items,\r\n \"aria-label\": ariaLabel = \"Breadcrumbs\",\r\n \"aria-labelledby\": ariaLabelledBy,\r\n \"aria-describedby\": ariaDescribedBy,\r\n theme = getDefaultTheme(),\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n state = \"\",\r\n separator,\r\n classMap,\r\n disabled = false,\r\n size = getDefaultSize(),\r\n outline = false,\r\n className = \"\",\r\n maxVisible,\r\n LinkComponent = \"a\",\r\n ButtonComponent = \"button\",\r\n \"data-testid\": testId = \"breadcrumbs\",\r\n ...rest\r\n}) => {\r\n const [isExpanded, setIsExpanded] = useState(false);\r\n\r\n const handleExpand = () => {\r\n setIsExpanded(true);\r\n };\r\n\r\n if (!items || items.length === 0) return null;\r\n\r\n const visibleItems: Breadcrumb[] = useMemo(() => {\r\n if (isExpanded || !maxVisible || items.length <= maxVisible) return items;\r\n\r\n const first = items[0];\r\n const lastItems = items.slice(items.length - (maxVisible - 2));\r\n\r\n return [first, { label: ELLIPSIS_LABEL }, ...lastItems];\r\n }, [items, isExpanded, maxVisible]);\r\n\r\n const breadcrumbsClass = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.breadcrumbs,\r\n classMap[theme],\r\n classMap[state],\r\n classMap[size],\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n disabled && classMap.disabled,\r\n outline && classMap.outline,\r\n className,\r\n ),\r\n [\r\n theme,\r\n state,\r\n size,\r\n shadow,\r\n rounding,\r\n disabled,\r\n outline,\r\n className,\r\n classMap,\r\n ],\r\n );\r\n\r\n return (\r\n <nav\r\n {...rest}\r\n aria-label={ariaLabelledBy ? undefined : ariaLabel}\r\n aria-labelledby={ariaLabelledBy}\r\n aria-describedby={ariaDescribedBy}\r\n data-testid={testId ? `${testId}-nav-container` : undefined}\r\n className={breadcrumbsClass}\r\n >\r\n <ol\r\n className={classMap.list}\r\n data-testid={testId ? `${testId}-nav-list` : undefined}\r\n itemScope\r\n itemType=\"https://schema.org/BreadcrumbList\"\r\n >\r\n {visibleItems.map((item, index) => {\r\n const isLast = index === visibleItems.length - 1;\r\n const isEllipsis = item.label === ELLIPSIS_LABEL;\r\n const isItemDisabled = disabled || item.disabled;\r\n\r\n const itemClassName = combineClassNames(\r\n classMap.item,\r\n isExpanded && !isEllipsis && classMap.item_animate,\r\n isLast && classMap.item_active,\r\n isItemDisabled && classMap.disabled,\r\n );\r\n\r\n const itemTitle = item.title ?? item.label;\r\n\r\n return (\r\n <li\r\n data-testid={testId ? `${testId}-nav-item` : undefined}\r\n key={`${item.label}-${item.href ?? index}`}\r\n className={itemClassName}\r\n itemProp=\"itemListElement\"\r\n itemScope\r\n itemType=\"https://schema.org/ListItem\"\r\n >\r\n {isEllipsis ? (\r\n <ButtonComponent\r\n theme=\"clear\"\r\n size=\"xs\"\r\n className={classMap.ellipsis}\r\n aria-label=\"Show all breadcrumbs\"\r\n aria-expanded={isExpanded}\r\n aria-disabled={isItemDisabled || undefined}\r\n onClick={isItemDisabled ? undefined : handleExpand}\r\n disabled={isItemDisabled}\r\n tabIndex={isItemDisabled ? -1 : 0}\r\n data-testid={testId ? `${testId}-ellipsis` : undefined}\r\n >\r\n {item.label}\r\n </ButtonComponent>\r\n ) : item.href && !isLast ? (\r\n isItemDisabled ? (\r\n <span\r\n className={combineClassNames(\r\n classMap.link_disabled,\r\n classMap.current,\r\n )}\r\n title={itemTitle}\r\n aria-label={item[\"aria-label\"]}\r\n aria-disabled=\"true\"\r\n itemProp=\"name\"\r\n data-testid={\r\n testId ? `${testId}-nav-item-label` : undefined\r\n }\r\n >\r\n {item.label}\r\n </span>\r\n ) : (\r\n <LinkComponent\r\n href={item.href}\r\n className={classMap.link}\r\n title={itemTitle}\r\n aria-label={item[\"aria-label\"]}\r\n itemProp=\"item\"\r\n data-testid={\r\n testId ? `${testId}-nav-item-label` : undefined\r\n }\r\n >\r\n <span itemProp=\"name\" className={classMap.link_label}>\r\n {item.label}\r\n </span>\r\n </LinkComponent>\r\n )\r\n ) : (\r\n <span\r\n className={classMap.current}\r\n itemProp=\"name\"\r\n aria-current=\"page\"\r\n aria-label={item[\"aria-label\"]}\r\n title={itemTitle}\r\n data-testid={\r\n testId ? `${testId}-nav-item-current` : undefined\r\n }\r\n >\r\n {item.label}\r\n </span>\r\n )}\r\n\r\n {!isLast && (\r\n <span className={classMap.separator} aria-hidden=\"true\">\r\n {separator ?? <ArrowRightIcon />}\r\n </span>\r\n )}\r\n\r\n <meta itemProp=\"position\" content={`${index + 1}`} />\r\n </li>\r\n );\r\n })}\r\n </ol>\r\n </nav>\r\n );\r\n};\r\n\r\nBreadcrumbsBase.displayName = \"BreadcrumbsBase\";\r\n","import React from \"react\";\r\nimport \"./Breadcrumbs.scss\";\r\nimport { BreadcrumbsBase } from \"../BreadcrumbsBase\";\r\nimport { BreadcrumbsProps } from \"../Breadcrumbs.types\";\r\nimport Button from \"../../Button/core/Button\";\r\n\r\nconst classes = {\r\n breadcrumbs: \"breadcrumbs\",\r\n\r\n primary: \"breadcrumbs_primary\",\r\n secondary: \"breadcrumbs_secondary\",\r\n tertiary: \"breadcrumbs_tertiary\",\r\n quaternary: \"breadcrumbs_quaternary\",\r\n\r\n success: \"breadcrumbs_success\",\r\n warning: \"breadcrumbs_warning\",\r\n error: \"breadcrumbs_error\",\r\n\r\n clear: \"breadcrumbs_clear\",\r\n\r\n outline: \"breadcrumbs_outline\",\r\n disabled: \"breadcrumbs_disabled\",\r\n\r\n shadowNone: \"breadcrumbs_shadow-None\",\r\n shadowLight: \"breadcrumbs_shadow-Light\",\r\n shadowMedium: \"breadcrumbs_shadow-Medium\",\r\n shadowStrong: \"breadcrumbs_shadow-Strong\",\r\n shadowIntense: \"breadcrumbs_shadow-Intense\",\r\n\r\n roundNone: \"breadcrumbs_round-None\",\r\n roundSmall: \"breadcrumbs_round-Small\",\r\n roundMedium: \"breadcrumbs_round-Medium\",\r\n roundLarge: \"breadcrumbs_round-Large\",\r\n\r\n xs: \"breadcrumbs_xs\",\r\n small: \"breadcrumbs_small\",\r\n medium: \"breadcrumbs_medium\",\r\n large: \"breadcrumbs_large\",\r\n xl: \"breadcrumbs_xl\",\r\n\r\n list: \"breadcrumbs_list\",\r\n item: \"breadcrumbs_item\",\r\n item_animate: \"breadcrumbs_item_animate\",\r\n item_active: \"breadcrumbs_item_active\",\r\n ellipsis: \"breadcrumbs_ellipsis\",\r\n link: \"breadcrumbs_link\",\r\n link_label: \"breadcrumbs_link_label\",\r\n current: \"breadcrumbs_current\",\r\n separator: \"breadcrumbs_separator\",\r\n separator_icon: \"breadcrumbs_separator_icon\",\r\n};\r\n\r\nconst Breadcrumbs: React.FC<BreadcrumbsProps> = (props) => {\r\n return (\r\n <BreadcrumbsBase {...props} classMap={classes} ButtonComponent={Button} />\r\n );\r\n};\r\nBreadcrumbs.displayName = \"Breadcrumbs\";\r\nexport default Breadcrumbs;\r\n"],"names":["getDefaultTheme","getDefaultRounding","getDefaultShadow","getDefaultSize","useState","useMemo","combineClassNames","capitalize","jsx","jsxs","ArrowRightIcon","Button"],"mappings":"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"}
|
package/dist/core/Breadcrumbs.js
CHANGED
|
@@ -28,6 +28,8 @@ import './Button.css';const ButtonBase = forwardRef(
|
|
|
28
28
|
"aria-busy": ariaBusy,
|
|
29
29
|
"aria-disabled": ariaDisabled,
|
|
30
30
|
href,
|
|
31
|
+
_target,
|
|
32
|
+
as,
|
|
31
33
|
isExternal = false,
|
|
32
34
|
outline = false,
|
|
33
35
|
size = getDefaultSize(),
|
|
@@ -101,14 +103,16 @@ import './Button.css';const ButtonBase = forwardRef(
|
|
|
101
103
|
/* @__PURE__ */ jsx("span", { className: "sr_only", children: loadingLabel })
|
|
102
104
|
] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
103
105
|
children,
|
|
104
|
-
href && (isExternal ?? /^https?:\/\//i.test(href)) && /* @__PURE__ */ jsx("span", { className: "sr_only", children: " (opens in a new tab)" })
|
|
106
|
+
href && (_target === "_blank" || (isExternal ?? /^https?:\/\//i.test(href))) && /* @__PURE__ */ jsx("span", { className: "sr_only", children: " (opens in a new tab)" })
|
|
105
107
|
] })
|
|
106
108
|
}
|
|
107
109
|
)
|
|
108
110
|
] });
|
|
109
111
|
if (href) {
|
|
110
|
-
const
|
|
111
|
-
const
|
|
112
|
+
const external = (_target === "_blank" || isExternal || /^https?:\/\//i.test(href)) && !disabled;
|
|
113
|
+
const Comp2 = external ? "a" : as ?? LinkComponent ?? "a";
|
|
114
|
+
const target = disabled ? void 0 : _target ?? (external ? "_blank" : void 0);
|
|
115
|
+
const rel = target === "_blank" ? "noopener noreferrer" : void 0;
|
|
112
116
|
const linkCommon = {
|
|
113
117
|
ref,
|
|
114
118
|
className: combineClassNames(combinedClassName, classMap.link),
|
|
@@ -125,38 +129,64 @@ import './Button.css';const ButtonBase = forwardRef(
|
|
|
125
129
|
tabIndex: disabled ? -1 : void 0,
|
|
126
130
|
"data-testid": testId
|
|
127
131
|
};
|
|
128
|
-
if (
|
|
132
|
+
if (Comp2 === "a") {
|
|
129
133
|
return /* @__PURE__ */ jsx(
|
|
130
134
|
"a",
|
|
131
135
|
{
|
|
132
136
|
...linkCommon,
|
|
133
137
|
href: disabled ? void 0 : href,
|
|
134
|
-
target
|
|
135
|
-
rel
|
|
138
|
+
target,
|
|
139
|
+
rel,
|
|
136
140
|
...rest,
|
|
137
141
|
children: content
|
|
138
142
|
}
|
|
139
143
|
);
|
|
140
144
|
}
|
|
141
145
|
return /* @__PURE__ */ jsx(
|
|
142
|
-
|
|
146
|
+
Comp2,
|
|
143
147
|
{
|
|
144
148
|
...linkCommon,
|
|
145
149
|
href,
|
|
146
|
-
target
|
|
147
|
-
rel
|
|
150
|
+
target,
|
|
151
|
+
rel,
|
|
152
|
+
...rest,
|
|
153
|
+
children: content
|
|
154
|
+
}
|
|
155
|
+
);
|
|
156
|
+
}
|
|
157
|
+
const Comp = as ?? "button";
|
|
158
|
+
if (Comp === "button") {
|
|
159
|
+
return /* @__PURE__ */ jsx(
|
|
160
|
+
"button",
|
|
161
|
+
{
|
|
162
|
+
ref,
|
|
163
|
+
type,
|
|
164
|
+
className: combinedClassName,
|
|
165
|
+
disabled: disabled || loading,
|
|
166
|
+
"aria-label": computedAriaLabel,
|
|
167
|
+
"aria-labelledby": ariaLabelledBy,
|
|
168
|
+
"aria-describedby": ariaDescribedBy,
|
|
169
|
+
"aria-controls": ariaControls,
|
|
170
|
+
"aria-expanded": ariaExpanded,
|
|
171
|
+
"aria-pressed": ariaPressed,
|
|
172
|
+
"aria-current": ariaCurrent,
|
|
173
|
+
"aria-haspopup": ariaHasPopup,
|
|
174
|
+
"aria-busy": loading ? ariaBusy ?? true : ariaBusy,
|
|
175
|
+
"aria-disabled": ariaDisabled,
|
|
176
|
+
"data-testid": testId,
|
|
177
|
+
onClick: disabled || loading ? void 0 : onClick,
|
|
148
178
|
...rest,
|
|
149
179
|
children: content
|
|
150
180
|
}
|
|
151
181
|
);
|
|
152
182
|
}
|
|
153
183
|
return /* @__PURE__ */ jsx(
|
|
154
|
-
|
|
184
|
+
Comp,
|
|
155
185
|
{
|
|
156
186
|
ref,
|
|
157
|
-
type,
|
|
158
187
|
className: combinedClassName,
|
|
159
|
-
|
|
188
|
+
role: "button",
|
|
189
|
+
tabIndex: disabled || loading ? -1 : 0,
|
|
160
190
|
"aria-label": computedAriaLabel,
|
|
161
191
|
"aria-labelledby": ariaLabelledBy,
|
|
162
192
|
"aria-describedby": ariaDescribedBy,
|
|
@@ -166,9 +196,16 @@ import './Button.css';const ButtonBase = forwardRef(
|
|
|
166
196
|
"aria-current": ariaCurrent,
|
|
167
197
|
"aria-haspopup": ariaHasPopup,
|
|
168
198
|
"aria-busy": loading ? ariaBusy ?? true : ariaBusy,
|
|
169
|
-
"aria-disabled": ariaDisabled,
|
|
199
|
+
"aria-disabled": disabled || loading ? true : ariaDisabled,
|
|
170
200
|
"data-testid": testId,
|
|
171
201
|
onClick: disabled || loading ? void 0 : onClick,
|
|
202
|
+
onKeyDown: (e) => {
|
|
203
|
+
if (disabled || loading) return;
|
|
204
|
+
if (e.key === "Enter" || e.key === " ") {
|
|
205
|
+
e.preventDefault();
|
|
206
|
+
onClick == null ? void 0 : onClick(e);
|
|
207
|
+
}
|
|
208
|
+
},
|
|
172
209
|
...rest,
|
|
173
210
|
children: content
|
|
174
211
|
}
|
|
@@ -214,4 +251,4 @@ Button.displayName = "Button";
|
|
|
214
251
|
export {
|
|
215
252
|
Button as B
|
|
216
253
|
};
|
|
217
|
-
//# sourceMappingURL=Button-
|
|
254
|
+
//# sourceMappingURL=Button-BaGwg7qF.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Button-BaGwg7qF.js","sources":["../../src/components/Button/ButtonBase.tsx","../../src/components/Button/core/Button.tsx"],"sourcesContent":["import React, { forwardRef, useMemo } from \"react\";\r\nimport { ButtonBaseProps } from \"./Button.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultSize,\r\n getDefaultTheme,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nconst ButtonBase = forwardRef<\r\n HTMLButtonElement | HTMLAnchorElement,\r\n ButtonBaseProps\r\n>(\r\n (\r\n {\r\n icon: Icon,\r\n theme = getDefaultTheme(),\r\n state = \"\",\r\n onClick,\r\n type = \"button\",\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n children,\r\n className = \"\",\r\n disabled = false,\r\n\r\n \"aria-label\": ariaLabel,\r\n \"aria-labelledby\": ariaLabelledBy,\r\n \"aria-describedby\": ariaDescribedBy,\r\n \"aria-controls\": ariaControls,\r\n \"aria-expanded\": ariaExpanded,\r\n \"aria-pressed\": ariaPressed,\r\n \"aria-current\": ariaCurrent,\r\n \"aria-haspopup\": ariaHasPopup,\r\n \"aria-live\": ariaLive,\r\n \"aria-atomic\": ariaAtomic,\r\n \"aria-busy\": ariaBusy,\r\n \"aria-disabled\": ariaDisabled,\r\n\r\n href,\r\n _target,\r\n as,\r\n isExternal = false,\r\n outline = false,\r\n size = getDefaultSize(),\r\n loading = false,\r\n loadingLabel = \"Loading\",\r\n fullWidth = false,\r\n \"data-testid\": testId = \"button\",\r\n classMap,\r\n LinkComponent = \"a\",\r\n ...rest\r\n },\r\n ref,\r\n ) => {\r\n const iconOnly =\r\n !children ||\r\n (typeof children !== \"string\" && React.Children.count(children) === 0);\r\n\r\n const computedAriaLabel =\r\n iconOnly && !ariaLabelledBy ? ariaLabel : undefined;\r\n\r\n if (\r\n process.env.NODE_ENV === \"development\" &&\r\n iconOnly &&\r\n !ariaLabel &&\r\n !ariaLabelledBy\r\n ) {\r\n console.warn(\r\n \"ButtonBase: icon-only buttons must provide `aria-label` or `aria-labelledby`.\",\r\n );\r\n }\r\n\r\n const combinedClassName = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.button,\r\n classMap[theme],\r\n classMap[state],\r\n classMap[size],\r\n outline && classMap.outline,\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n fullWidth && classMap.fullWidth,\r\n disabled && classMap.disabled,\r\n className,\r\n ),\r\n [\r\n theme,\r\n state,\r\n outline,\r\n size,\r\n shadow,\r\n rounding,\r\n fullWidth,\r\n disabled,\r\n className,\r\n classMap,\r\n ],\r\n );\r\n\r\n const content = (\r\n <>\r\n {Icon && (\r\n <span\r\n className={classMap.buttonIcon}\r\n aria-hidden=\"true\"\r\n data-testid={testId ? `${testId}-icon` : undefined}\r\n >\r\n <Icon\r\n className={classMap.icon}\r\n aria-hidden={true}\r\n focusable={false}\r\n />\r\n </span>\r\n )}\r\n\r\n <span\r\n className={classMap.buttonLabel}\r\n aria-live={loading ? (ariaLive ?? \"polite\") : undefined}\r\n aria-atomic={loading ? (ariaAtomic ?? true) : undefined}\r\n data-testid={testId ? `${testId}-loading` : undefined}\r\n >\r\n {loading ? (\r\n <>\r\n <div className={classMap.loader} aria-hidden=\"true\" />\r\n <span className=\"sr_only\">{loadingLabel}</span>\r\n </>\r\n ) : (\r\n <>\r\n {children}\r\n {href &&\r\n (_target === \"_blank\" ||\r\n (isExternal ?? /^https?:\\/\\//i.test(href))) && (\r\n <span className=\"sr_only\"> (opens in a new tab)</span>\r\n )}\r\n </>\r\n )}\r\n </span>\r\n </>\r\n );\r\n\r\n if (href) {\r\n const external =\r\n (_target === \"_blank\" || isExternal || /^https?:\\/\\//i.test(href)) &&\r\n !disabled;\r\n\r\n const Comp = (\r\n external ? \"a\" : (as ?? LinkComponent ?? \"a\")\r\n ) as React.ElementType;\r\n\r\n const target = disabled\r\n ? undefined\r\n : (_target ?? (external ? \"_blank\" : undefined));\r\n\r\n const rel = target === \"_blank\" ? \"noopener noreferrer\" : undefined;\r\n\r\n const linkCommon = {\r\n ref: ref as React.Ref<HTMLAnchorElement>,\r\n className: combineClassNames(combinedClassName, classMap.link),\r\n onClick: disabled\r\n ? (e: React.MouseEvent) => e.preventDefault()\r\n : onClick,\r\n \"aria-label\": computedAriaLabel,\r\n \"aria-labelledby\": ariaLabelledBy,\r\n \"aria-describedby\": ariaDescribedBy,\r\n \"aria-controls\": ariaControls,\r\n \"aria-expanded\": ariaExpanded,\r\n \"aria-current\": ariaCurrent,\r\n \"aria-haspopup\": ariaHasPopup,\r\n \"aria-busy\": loading ? (ariaBusy ?? true) : ariaBusy,\r\n \"aria-disabled\": disabled ? (ariaDisabled ?? true) : ariaDisabled,\r\n tabIndex: disabled ? -1 : undefined,\r\n \"data-testid\": testId,\r\n } as const;\r\n\r\n if (Comp === \"a\") {\r\n return (\r\n <a\r\n {...linkCommon}\r\n href={disabled ? undefined : href}\r\n target={target}\r\n rel={rel}\r\n {...(rest as React.AnchorHTMLAttributes<HTMLAnchorElement>)}\r\n >\r\n {content}\r\n </a>\r\n );\r\n }\r\n\r\n return (\r\n <Comp\r\n {...(linkCommon as Omit<\r\n React.ComponentPropsWithoutRef<typeof Comp>,\r\n \"children\"\r\n >)}\r\n href={href as never}\r\n target={target}\r\n rel={rel}\r\n {...(rest as React.ComponentPropsWithoutRef<typeof Comp>)}\r\n >\r\n {content}\r\n </Comp>\r\n );\r\n }\r\n\r\n const Comp = (as ?? \"button\") as React.ElementType;\r\n\r\n if (Comp === \"button\") {\r\n return (\r\n <button\r\n ref={ref as React.Ref<HTMLButtonElement>}\r\n type={type}\r\n className={combinedClassName}\r\n disabled={disabled || loading}\r\n aria-label={computedAriaLabel}\r\n aria-labelledby={ariaLabelledBy}\r\n aria-describedby={ariaDescribedBy}\r\n aria-controls={ariaControls}\r\n aria-expanded={ariaExpanded}\r\n aria-pressed={ariaPressed}\r\n aria-current={ariaCurrent}\r\n aria-haspopup={ariaHasPopup}\r\n aria-busy={loading ? (ariaBusy ?? true) : ariaBusy}\r\n aria-disabled={ariaDisabled}\r\n data-testid={testId}\r\n onClick={disabled || loading ? undefined : onClick}\r\n {...(rest as React.ButtonHTMLAttributes<HTMLButtonElement>)}\r\n >\r\n {content}\r\n </button>\r\n );\r\n }\r\n\r\n return (\r\n <Comp\r\n ref={ref as React.Ref<HTMLElement>}\r\n className={combinedClassName}\r\n role=\"button\"\r\n tabIndex={disabled || loading ? -1 : 0}\r\n aria-label={computedAriaLabel}\r\n aria-labelledby={ariaLabelledBy}\r\n aria-describedby={ariaDescribedBy}\r\n aria-controls={ariaControls}\r\n aria-expanded={ariaExpanded}\r\n aria-pressed={ariaPressed}\r\n aria-current={ariaCurrent}\r\n aria-haspopup={ariaHasPopup}\r\n aria-busy={loading ? (ariaBusy ?? true) : ariaBusy}\r\n aria-disabled={disabled || loading ? true : ariaDisabled}\r\n data-testid={testId}\r\n onClick={disabled || loading ? undefined : onClick}\r\n onKeyDown={(e: React.KeyboardEvent<HTMLElement>) => {\r\n if (disabled || loading) return;\r\n\r\n if (e.key === \"Enter\" || e.key === \" \") {\r\n e.preventDefault();\r\n onClick?.(e as unknown as React.MouseEvent<HTMLElement>);\r\n }\r\n }}\r\n {...(rest as React.ComponentPropsWithoutRef<typeof Comp>)}\r\n >\r\n {content}\r\n </Comp>\r\n );\r\n },\r\n);\r\n\r\nButtonBase.displayName = \"ButtonBase\";\r\n\r\nexport default ButtonBase;\r\n","import { forwardRef } from \"react\";\r\nimport ButtonBase from \"../ButtonBase\";\r\nimport \"./Button.scss\";\r\nimport { ButtonProps } from \"../Button.types\";\r\n\r\nconst classes = {\r\n button: \"button\",\r\n icon: \"button_icon\",\r\n buttonIcon: \"button_button_icon\",\r\n buttonLabel: \"button_label\",\r\n loader: \"button_loader\",\r\n link: \"button_link\",\r\n\r\n fullWidth: \"button_full_width\",\r\n disabled: \"button_disabled\",\r\n outline: \"button_outline\",\r\n\r\n primary: \"button_primary\",\r\n secondary: \"button_secondary\",\r\n tertiary: \"button_tertiary\",\r\n quaternary: \"button_quaternary\",\r\n clear: \"button_clear\",\r\n\r\n success: \"button_success\",\r\n warning: \"button_warning\",\r\n error: \"button_error\",\r\n\r\n xs: \"button_xs\",\r\n small: \"button_small\",\r\n medium: \"button_medium\",\r\n large: \"button_large\",\r\n xl: \"button_xl\",\r\n\r\n shadowNone: \"button_shadow-None\",\r\n shadowLight: \"button_shadow-Light\",\r\n shadowMedium: \"button_shadow-Medium\",\r\n shadowStrong: \"button_shadow-Strong\",\r\n shadowIntense: \"button_shadow-Intense\",\r\n\r\n roundNone: \"button_round-None\",\r\n roundSmall: \"button_round-Small\",\r\n roundMedium: \"button_round-Medium\",\r\n roundLarge: \"button_round-Large\",\r\n};\r\n\r\nconst Button = forwardRef<HTMLButtonElement, ButtonProps>((props, ref) => (\r\n <ButtonBase {...props} classMap={classes} ref={ref} />\r\n));\r\nButton.displayName = \"Button\";\r\nexport default Button;\r\n"],"names":["Comp"],"mappings":"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"}
|
|
@@ -29,6 +29,8 @@ const ButtonBase = React.forwardRef(
|
|
|
29
29
|
"aria-busy": ariaBusy,
|
|
30
30
|
"aria-disabled": ariaDisabled,
|
|
31
31
|
href,
|
|
32
|
+
_target,
|
|
33
|
+
as,
|
|
32
34
|
isExternal = false,
|
|
33
35
|
outline = false,
|
|
34
36
|
size = borealStyleConfig.getDefaultSize(),
|
|
@@ -102,14 +104,16 @@ const ButtonBase = React.forwardRef(
|
|
|
102
104
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr_only", children: loadingLabel })
|
|
103
105
|
] }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
104
106
|
children,
|
|
105
|
-
href && (isExternal ?? /^https?:\/\//i.test(href)) && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr_only", children: " (opens in a new tab)" })
|
|
107
|
+
href && (_target === "_blank" || (isExternal ?? /^https?:\/\//i.test(href))) && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr_only", children: " (opens in a new tab)" })
|
|
106
108
|
] })
|
|
107
109
|
}
|
|
108
110
|
)
|
|
109
111
|
] });
|
|
110
112
|
if (href) {
|
|
111
|
-
const
|
|
112
|
-
const
|
|
113
|
+
const external = (_target === "_blank" || isExternal || /^https?:\/\//i.test(href)) && !disabled;
|
|
114
|
+
const Comp2 = external ? "a" : as ?? LinkComponent ?? "a";
|
|
115
|
+
const target = disabled ? void 0 : _target ?? (external ? "_blank" : void 0);
|
|
116
|
+
const rel = target === "_blank" ? "noopener noreferrer" : void 0;
|
|
113
117
|
const linkCommon = {
|
|
114
118
|
ref,
|
|
115
119
|
className: classNames.combineClassNames(combinedClassName, classMap.link),
|
|
@@ -126,38 +130,64 @@ const ButtonBase = React.forwardRef(
|
|
|
126
130
|
tabIndex: disabled ? -1 : void 0,
|
|
127
131
|
"data-testid": testId
|
|
128
132
|
};
|
|
129
|
-
if (
|
|
133
|
+
if (Comp2 === "a") {
|
|
130
134
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
131
135
|
"a",
|
|
132
136
|
{
|
|
133
137
|
...linkCommon,
|
|
134
138
|
href: disabled ? void 0 : href,
|
|
135
|
-
target
|
|
136
|
-
rel
|
|
139
|
+
target,
|
|
140
|
+
rel,
|
|
137
141
|
...rest,
|
|
138
142
|
children: content
|
|
139
143
|
}
|
|
140
144
|
);
|
|
141
145
|
}
|
|
142
146
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
143
|
-
|
|
147
|
+
Comp2,
|
|
144
148
|
{
|
|
145
149
|
...linkCommon,
|
|
146
150
|
href,
|
|
147
|
-
target
|
|
148
|
-
rel
|
|
151
|
+
target,
|
|
152
|
+
rel,
|
|
153
|
+
...rest,
|
|
154
|
+
children: content
|
|
155
|
+
}
|
|
156
|
+
);
|
|
157
|
+
}
|
|
158
|
+
const Comp = as ?? "button";
|
|
159
|
+
if (Comp === "button") {
|
|
160
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
161
|
+
"button",
|
|
162
|
+
{
|
|
163
|
+
ref,
|
|
164
|
+
type,
|
|
165
|
+
className: combinedClassName,
|
|
166
|
+
disabled: disabled || loading,
|
|
167
|
+
"aria-label": computedAriaLabel,
|
|
168
|
+
"aria-labelledby": ariaLabelledBy,
|
|
169
|
+
"aria-describedby": ariaDescribedBy,
|
|
170
|
+
"aria-controls": ariaControls,
|
|
171
|
+
"aria-expanded": ariaExpanded,
|
|
172
|
+
"aria-pressed": ariaPressed,
|
|
173
|
+
"aria-current": ariaCurrent,
|
|
174
|
+
"aria-haspopup": ariaHasPopup,
|
|
175
|
+
"aria-busy": loading ? ariaBusy ?? true : ariaBusy,
|
|
176
|
+
"aria-disabled": ariaDisabled,
|
|
177
|
+
"data-testid": testId,
|
|
178
|
+
onClick: disabled || loading ? void 0 : onClick,
|
|
149
179
|
...rest,
|
|
150
180
|
children: content
|
|
151
181
|
}
|
|
152
182
|
);
|
|
153
183
|
}
|
|
154
184
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
155
|
-
|
|
185
|
+
Comp,
|
|
156
186
|
{
|
|
157
187
|
ref,
|
|
158
|
-
type,
|
|
159
188
|
className: combinedClassName,
|
|
160
|
-
|
|
189
|
+
role: "button",
|
|
190
|
+
tabIndex: disabled || loading ? -1 : 0,
|
|
161
191
|
"aria-label": computedAriaLabel,
|
|
162
192
|
"aria-labelledby": ariaLabelledBy,
|
|
163
193
|
"aria-describedby": ariaDescribedBy,
|
|
@@ -167,9 +197,16 @@ const ButtonBase = React.forwardRef(
|
|
|
167
197
|
"aria-current": ariaCurrent,
|
|
168
198
|
"aria-haspopup": ariaHasPopup,
|
|
169
199
|
"aria-busy": loading ? ariaBusy ?? true : ariaBusy,
|
|
170
|
-
"aria-disabled": ariaDisabled,
|
|
200
|
+
"aria-disabled": disabled || loading ? true : ariaDisabled,
|
|
171
201
|
"data-testid": testId,
|
|
172
202
|
onClick: disabled || loading ? void 0 : onClick,
|
|
203
|
+
onKeyDown: (e) => {
|
|
204
|
+
if (disabled || loading) return;
|
|
205
|
+
if (e.key === "Enter" || e.key === " ") {
|
|
206
|
+
e.preventDefault();
|
|
207
|
+
onClick == null ? void 0 : onClick(e);
|
|
208
|
+
}
|
|
209
|
+
},
|
|
173
210
|
...rest,
|
|
174
211
|
children: content
|
|
175
212
|
}
|
|
@@ -213,4 +250,4 @@ const classes = {
|
|
|
213
250
|
const Button = React.forwardRef((props, ref) => /* @__PURE__ */ jsxRuntime.jsx(ButtonBase, { ...props, classMap: classes, ref }));
|
|
214
251
|
Button.displayName = "Button";
|
|
215
252
|
exports.Button = Button;
|
|
216
|
-
//# sourceMappingURL=Button-
|
|
253
|
+
//# sourceMappingURL=Button-lYDI65B8.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Button-lYDI65B8.cjs","sources":["../../src/components/Button/ButtonBase.tsx","../../src/components/Button/core/Button.tsx"],"sourcesContent":["import React, { forwardRef, useMemo } from \"react\";\r\nimport { ButtonBaseProps } from \"./Button.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultSize,\r\n getDefaultTheme,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nconst ButtonBase = forwardRef<\r\n HTMLButtonElement | HTMLAnchorElement,\r\n ButtonBaseProps\r\n>(\r\n (\r\n {\r\n icon: Icon,\r\n theme = getDefaultTheme(),\r\n state = \"\",\r\n onClick,\r\n type = \"button\",\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n children,\r\n className = \"\",\r\n disabled = false,\r\n\r\n \"aria-label\": ariaLabel,\r\n \"aria-labelledby\": ariaLabelledBy,\r\n \"aria-describedby\": ariaDescribedBy,\r\n \"aria-controls\": ariaControls,\r\n \"aria-expanded\": ariaExpanded,\r\n \"aria-pressed\": ariaPressed,\r\n \"aria-current\": ariaCurrent,\r\n \"aria-haspopup\": ariaHasPopup,\r\n \"aria-live\": ariaLive,\r\n \"aria-atomic\": ariaAtomic,\r\n \"aria-busy\": ariaBusy,\r\n \"aria-disabled\": ariaDisabled,\r\n\r\n href,\r\n _target,\r\n as,\r\n isExternal = false,\r\n outline = false,\r\n size = getDefaultSize(),\r\n loading = false,\r\n loadingLabel = \"Loading\",\r\n fullWidth = false,\r\n \"data-testid\": testId = \"button\",\r\n classMap,\r\n LinkComponent = \"a\",\r\n ...rest\r\n },\r\n ref,\r\n ) => {\r\n const iconOnly =\r\n !children ||\r\n (typeof children !== \"string\" && React.Children.count(children) === 0);\r\n\r\n const computedAriaLabel =\r\n iconOnly && !ariaLabelledBy ? ariaLabel : undefined;\r\n\r\n if (\r\n process.env.NODE_ENV === \"development\" &&\r\n iconOnly &&\r\n !ariaLabel &&\r\n !ariaLabelledBy\r\n ) {\r\n console.warn(\r\n \"ButtonBase: icon-only buttons must provide `aria-label` or `aria-labelledby`.\",\r\n );\r\n }\r\n\r\n const combinedClassName = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.button,\r\n classMap[theme],\r\n classMap[state],\r\n classMap[size],\r\n outline && classMap.outline,\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n fullWidth && classMap.fullWidth,\r\n disabled && classMap.disabled,\r\n className,\r\n ),\r\n [\r\n theme,\r\n state,\r\n outline,\r\n size,\r\n shadow,\r\n rounding,\r\n fullWidth,\r\n disabled,\r\n className,\r\n classMap,\r\n ],\r\n );\r\n\r\n const content = (\r\n <>\r\n {Icon && (\r\n <span\r\n className={classMap.buttonIcon}\r\n aria-hidden=\"true\"\r\n data-testid={testId ? `${testId}-icon` : undefined}\r\n >\r\n <Icon\r\n className={classMap.icon}\r\n aria-hidden={true}\r\n focusable={false}\r\n />\r\n </span>\r\n )}\r\n\r\n <span\r\n className={classMap.buttonLabel}\r\n aria-live={loading ? (ariaLive ?? \"polite\") : undefined}\r\n aria-atomic={loading ? (ariaAtomic ?? true) : undefined}\r\n data-testid={testId ? `${testId}-loading` : undefined}\r\n >\r\n {loading ? (\r\n <>\r\n <div className={classMap.loader} aria-hidden=\"true\" />\r\n <span className=\"sr_only\">{loadingLabel}</span>\r\n </>\r\n ) : (\r\n <>\r\n {children}\r\n {href &&\r\n (_target === \"_blank\" ||\r\n (isExternal ?? /^https?:\\/\\//i.test(href))) && (\r\n <span className=\"sr_only\"> (opens in a new tab)</span>\r\n )}\r\n </>\r\n )}\r\n </span>\r\n </>\r\n );\r\n\r\n if (href) {\r\n const external =\r\n (_target === \"_blank\" || isExternal || /^https?:\\/\\//i.test(href)) &&\r\n !disabled;\r\n\r\n const Comp = (\r\n external ? \"a\" : (as ?? LinkComponent ?? \"a\")\r\n ) as React.ElementType;\r\n\r\n const target = disabled\r\n ? undefined\r\n : (_target ?? (external ? \"_blank\" : undefined));\r\n\r\n const rel = target === \"_blank\" ? \"noopener noreferrer\" : undefined;\r\n\r\n const linkCommon = {\r\n ref: ref as React.Ref<HTMLAnchorElement>,\r\n className: combineClassNames(combinedClassName, classMap.link),\r\n onClick: disabled\r\n ? (e: React.MouseEvent) => e.preventDefault()\r\n : onClick,\r\n \"aria-label\": computedAriaLabel,\r\n \"aria-labelledby\": ariaLabelledBy,\r\n \"aria-describedby\": ariaDescribedBy,\r\n \"aria-controls\": ariaControls,\r\n \"aria-expanded\": ariaExpanded,\r\n \"aria-current\": ariaCurrent,\r\n \"aria-haspopup\": ariaHasPopup,\r\n \"aria-busy\": loading ? (ariaBusy ?? true) : ariaBusy,\r\n \"aria-disabled\": disabled ? (ariaDisabled ?? true) : ariaDisabled,\r\n tabIndex: disabled ? -1 : undefined,\r\n \"data-testid\": testId,\r\n } as const;\r\n\r\n if (Comp === \"a\") {\r\n return (\r\n <a\r\n {...linkCommon}\r\n href={disabled ? undefined : href}\r\n target={target}\r\n rel={rel}\r\n {...(rest as React.AnchorHTMLAttributes<HTMLAnchorElement>)}\r\n >\r\n {content}\r\n </a>\r\n );\r\n }\r\n\r\n return (\r\n <Comp\r\n {...(linkCommon as Omit<\r\n React.ComponentPropsWithoutRef<typeof Comp>,\r\n \"children\"\r\n >)}\r\n href={href as never}\r\n target={target}\r\n rel={rel}\r\n {...(rest as React.ComponentPropsWithoutRef<typeof Comp>)}\r\n >\r\n {content}\r\n </Comp>\r\n );\r\n }\r\n\r\n const Comp = (as ?? \"button\") as React.ElementType;\r\n\r\n if (Comp === \"button\") {\r\n return (\r\n <button\r\n ref={ref as React.Ref<HTMLButtonElement>}\r\n type={type}\r\n className={combinedClassName}\r\n disabled={disabled || loading}\r\n aria-label={computedAriaLabel}\r\n aria-labelledby={ariaLabelledBy}\r\n aria-describedby={ariaDescribedBy}\r\n aria-controls={ariaControls}\r\n aria-expanded={ariaExpanded}\r\n aria-pressed={ariaPressed}\r\n aria-current={ariaCurrent}\r\n aria-haspopup={ariaHasPopup}\r\n aria-busy={loading ? (ariaBusy ?? true) : ariaBusy}\r\n aria-disabled={ariaDisabled}\r\n data-testid={testId}\r\n onClick={disabled || loading ? undefined : onClick}\r\n {...(rest as React.ButtonHTMLAttributes<HTMLButtonElement>)}\r\n >\r\n {content}\r\n </button>\r\n );\r\n }\r\n\r\n return (\r\n <Comp\r\n ref={ref as React.Ref<HTMLElement>}\r\n className={combinedClassName}\r\n role=\"button\"\r\n tabIndex={disabled || loading ? -1 : 0}\r\n aria-label={computedAriaLabel}\r\n aria-labelledby={ariaLabelledBy}\r\n aria-describedby={ariaDescribedBy}\r\n aria-controls={ariaControls}\r\n aria-expanded={ariaExpanded}\r\n aria-pressed={ariaPressed}\r\n aria-current={ariaCurrent}\r\n aria-haspopup={ariaHasPopup}\r\n aria-busy={loading ? (ariaBusy ?? true) : ariaBusy}\r\n aria-disabled={disabled || loading ? true : ariaDisabled}\r\n data-testid={testId}\r\n onClick={disabled || loading ? undefined : onClick}\r\n onKeyDown={(e: React.KeyboardEvent<HTMLElement>) => {\r\n if (disabled || loading) return;\r\n\r\n if (e.key === \"Enter\" || e.key === \" \") {\r\n e.preventDefault();\r\n onClick?.(e as unknown as React.MouseEvent<HTMLElement>);\r\n }\r\n }}\r\n {...(rest as React.ComponentPropsWithoutRef<typeof Comp>)}\r\n >\r\n {content}\r\n </Comp>\r\n );\r\n },\r\n);\r\n\r\nButtonBase.displayName = \"ButtonBase\";\r\n\r\nexport default ButtonBase;\r\n","import { forwardRef } from \"react\";\r\nimport ButtonBase from \"../ButtonBase\";\r\nimport \"./Button.scss\";\r\nimport { ButtonProps } from \"../Button.types\";\r\n\r\nconst classes = {\r\n button: \"button\",\r\n icon: \"button_icon\",\r\n buttonIcon: \"button_button_icon\",\r\n buttonLabel: \"button_label\",\r\n loader: \"button_loader\",\r\n link: \"button_link\",\r\n\r\n fullWidth: \"button_full_width\",\r\n disabled: \"button_disabled\",\r\n outline: \"button_outline\",\r\n\r\n primary: \"button_primary\",\r\n secondary: \"button_secondary\",\r\n tertiary: \"button_tertiary\",\r\n quaternary: \"button_quaternary\",\r\n clear: \"button_clear\",\r\n\r\n success: \"button_success\",\r\n warning: \"button_warning\",\r\n error: \"button_error\",\r\n\r\n xs: \"button_xs\",\r\n small: \"button_small\",\r\n medium: \"button_medium\",\r\n large: \"button_large\",\r\n xl: \"button_xl\",\r\n\r\n shadowNone: \"button_shadow-None\",\r\n shadowLight: \"button_shadow-Light\",\r\n shadowMedium: \"button_shadow-Medium\",\r\n shadowStrong: \"button_shadow-Strong\",\r\n shadowIntense: \"button_shadow-Intense\",\r\n\r\n roundNone: \"button_round-None\",\r\n roundSmall: \"button_round-Small\",\r\n roundMedium: \"button_round-Medium\",\r\n roundLarge: \"button_round-Large\",\r\n};\r\n\r\nconst Button = forwardRef<HTMLButtonElement, ButtonProps>((props, ref) => (\r\n <ButtonBase {...props} classMap={classes} ref={ref} />\r\n));\r\nButton.displayName = \"Button\";\r\nexport default Button;\r\n"],"names":["forwardRef","getDefaultTheme","getDefaultRounding","getDefaultShadow","getDefaultSize","useMemo","combineClassNames","capitalize","jsxs","Fragment","jsx","Comp"],"mappings":"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"}
|
package/dist/core/Button.cjs.js
CHANGED
package/dist/core/Button.js
CHANGED
|
@@ -3,7 +3,7 @@ import React, { useId, useMemo } from "react";
|
|
|
3
3
|
import { c as combineClassNames } from "./classNames-AS8QjFq7.js";
|
|
4
4
|
import { c as capitalize } from "./capitalize-C0TSQSPh.js";
|
|
5
5
|
import { d as getDefaultTheme, e as getDefaultBorder, a as getDefaultRounding, b as getDefaultShadow, c as getDefaultSize } from "./boreal-style-config-DsaRlxmw.js";
|
|
6
|
-
import { B as Button } from "./Button-
|
|
6
|
+
import { B as Button } from "./Button-BaGwg7qF.js";
|
|
7
7
|
import { I as IconButton } from "./IconButton-LlILBbQv.js";
|
|
8
8
|
import { S as SkeletonLoader } from "./Skeleton-lR3mqQQ0.js";
|
|
9
9
|
import './Card.css';const CardBase = ({
|
|
@@ -183,7 +183,7 @@ import './Card.css';const CardBase = ({
|
|
|
183
183
|
}
|
|
184
184
|
)),
|
|
185
185
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
186
|
-
/* @__PURE__ */ jsx(
|
|
186
|
+
(renderHeader || hasTitle) && /* @__PURE__ */ jsx(
|
|
187
187
|
"div",
|
|
188
188
|
{
|
|
189
189
|
className: combineClassNames(classMap.header, headerClassName),
|
|
@@ -346,4 +346,4 @@ Card.displayName = "Card";
|
|
|
346
346
|
export {
|
|
347
347
|
Card as C
|
|
348
348
|
};
|
|
349
|
-
//# sourceMappingURL=Card-
|
|
349
|
+
//# sourceMappingURL=Card-CFWSgMiw.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Card-CFWSgMiw.js","sources":["../../src/components/Card/CardBase.tsx","../../src/components/Card/core/Card.tsx"],"sourcesContent":["import React, { useId, useMemo } from \"react\";\r\nimport { CardBaseProps, CardImageSource, StaticCardImage } from \"./Card.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultSize,\r\n getDefaultTheme,\r\n getDefaultBorder,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nconst CardBase: React.FC<CardBaseProps> = ({\r\n theme = getDefaultTheme(),\r\n state = \"\",\r\n cardIcon,\r\n title = \"\",\r\n border = getDefaultBorder(),\r\n description = \"\",\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n imageUrl,\r\n imageAlt,\r\n imageHeight,\r\n imageWidth,\r\n imageFill,\r\n imageDecorative = false,\r\n className = \"\",\r\n imageClassName = \"\",\r\n headerClassName = \"\",\r\n bodyClassName = \"\",\r\n footerClassName = \"\",\r\n outline = false,\r\n size = getDefaultSize(),\r\n align = \"center\",\r\n renderHeader,\r\n renderContent,\r\n renderFooter,\r\n actionButtons = [],\r\n useIconButtons = false,\r\n layout = \"vertical\",\r\n loading = false,\r\n children,\r\n id,\r\n role,\r\n tabIndex,\r\n selectable = false,\r\n selected = false,\r\n disabled = false,\r\n \"data-testid\": testId = \"card\",\r\n \"aria-labelledby\": ariaLabelledBy,\r\n \"aria-describedby\": ariaDescribedBy,\r\n \"aria-label\": ariaLabel,\r\n \"aria-expanded\": ariaExpanded,\r\n \"aria-controls\": ariaControls,\r\n \"aria-current\": ariaCurrent,\r\n \"aria-live\": ariaLive,\r\n \"aria-atomic\": ariaAtomic,\r\n headerId,\r\n descriptionId,\r\n classMap,\r\n SkeletonComponent,\r\n ImageComponent,\r\n}) => {\r\n const autoId = useId();\r\n const resolvedHeaderId = headerId || ariaLabelledBy || `${autoId}-header`;\r\n const resolvedDescriptionId = descriptionId || `${autoId}-description`;\r\n const hasTitle = Boolean(title);\r\n const hasHeader = Boolean(renderHeader || hasTitle);\r\n\r\n const hasDescription = Boolean(description);\r\n\r\n const derivedAriaLabel = ariaLabel || title || description || \"Content card\";\r\n\r\n const resolvedRole =\r\n role ||\r\n (selectable ? \"button\" : hasTitle || ariaLabel ? \"region\" : undefined);\r\n\r\n const FallbackImage = (props: React.ImgHTMLAttributes<HTMLImageElement>) => (\r\n <img {...props} />\r\n );\r\n\r\n function isStaticCardImage(value: unknown): value is StaticCardImage {\r\n return (\r\n typeof value === \"object\" &&\r\n value !== null &&\r\n \"src\" in value &&\r\n typeof (value as { src: unknown }).src === \"string\"\r\n );\r\n }\r\n\r\n function normalizeImageSource(\r\n srcInput: CardImageSource | undefined,\r\n fallbackWidth?: number,\r\n fallbackHeight?: number,\r\n ): { src?: string; width?: number; height?: number } {\r\n if (!srcInput) {\r\n return { src: undefined, width: fallbackWidth, height: fallbackHeight };\r\n }\r\n\r\n if (typeof srcInput === \"string\") {\r\n const trimmed = srcInput.trim();\r\n if (!trimmed) {\r\n return { src: undefined, width: fallbackWidth, height: fallbackHeight };\r\n }\r\n return { src: trimmed, width: fallbackWidth, height: fallbackHeight };\r\n }\r\n\r\n if (isStaticCardImage(srcInput)) {\r\n const trimmed = srcInput.src.trim();\r\n if (!trimmed) {\r\n return { src: undefined, width: fallbackWidth, height: fallbackHeight };\r\n }\r\n\r\n return {\r\n src: trimmed,\r\n width: srcInput.width ?? fallbackWidth,\r\n height: srcInput.height ?? fallbackHeight,\r\n };\r\n }\r\n\r\n return { src: undefined, width: fallbackWidth, height: fallbackHeight };\r\n }\r\n\r\n const {\r\n src: imgSrc,\r\n width: resolvedWidth,\r\n height: resolvedHeight,\r\n } = normalizeImageSource(imageUrl, imageWidth, imageHeight);\r\n\r\n const hasImage = Boolean(imgSrc);\r\n const imgAlt = imageDecorative ? \"\" : imageAlt || `${title || \"Card\"} image`;\r\n\r\n const ImageRenderer = ImageComponent || FallbackImage;\r\n\r\n const cardClassName = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.card,\r\n classMap[layout],\r\n align && classMap[align],\r\n classMap[theme],\r\n classMap[state],\r\n classMap[size],\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n border && classMap[`border${capitalize(border)}`],\r\n outline && classMap.outline,\r\n loading && classMap.loading,\r\n disabled && classMap.disabled,\r\n selected && classMap.selected,\r\n selectable && classMap.selectable,\r\n className,\r\n ),\r\n [\r\n classMap,\r\n layout,\r\n align,\r\n theme,\r\n state,\r\n size,\r\n shadow,\r\n rounding,\r\n border,\r\n outline,\r\n loading,\r\n disabled,\r\n selected,\r\n selectable,\r\n className,\r\n ],\r\n );\r\n\r\n return (\r\n <div\r\n id={id}\r\n data-testid={testId}\r\n className={cardClassName}\r\n role={resolvedRole}\r\n tabIndex={disabled ? -1 : tabIndex}\r\n aria-labelledby={\r\n hasTitle && !ariaLabel ? resolvedHeaderId : ariaLabelledBy\r\n }\r\n aria-describedby={\r\n ariaDescribedBy || (hasDescription ? resolvedDescriptionId : undefined)\r\n }\r\n aria-label={!hasTitle || ariaLabel ? derivedAriaLabel : undefined}\r\n aria-busy={loading || undefined}\r\n aria-disabled={disabled || undefined}\r\n aria-pressed={selectable ? selected : undefined}\r\n aria-expanded={ariaExpanded}\r\n aria-controls={ariaControls}\r\n aria-current={ariaCurrent}\r\n aria-live={ariaLive}\r\n aria-atomic={ariaAtomic}\r\n >\r\n {loading ? (\r\n <SkeletonComponent\r\n width=\"250px\"\r\n height=\"250px\"\r\n data-testid={`${testId}-skeleton`}\r\n />\r\n ) : (\r\n <div className={classMap.content}>\r\n {hasImage &&\r\n imgSrc &&\r\n (imageFill ? (\r\n <div className={classMap.media}>\r\n <ImageRenderer\r\n src={imgSrc}\r\n alt={imgAlt}\r\n className={combineClassNames(classMap.image, imageClassName)}\r\n fill\r\n />\r\n </div>\r\n ) : (\r\n <ImageRenderer\r\n src={imgSrc}\r\n alt={imgAlt}\r\n className={combineClassNames(classMap.image, imageClassName)}\r\n width={resolvedWidth ?? 640}\r\n height={resolvedHeight ?? 360}\r\n />\r\n ))}\r\n\r\n <div>\r\n {(renderHeader || hasTitle) && (\r\n <div\r\n className={combineClassNames(classMap.header, headerClassName)}\r\n id={resolvedHeaderId}\r\n >\r\n {renderHeader ? (\r\n renderHeader()\r\n ) : hasTitle ? (\r\n <h2 className={classMap.title}>\r\n {cardIcon && (\r\n <span\r\n className={classMap.icon}\r\n aria-hidden=\"true\"\r\n data-testid={`${testId}-icon`}\r\n >\r\n {React.createElement(cardIcon)}\r\n </span>\r\n )}\r\n {title}\r\n </h2>\r\n ) : null}\r\n </div>\r\n )}\r\n\r\n <div className={combineClassNames(classMap.body, bodyClassName)}>\r\n {renderContent ? (\r\n renderContent()\r\n ) : (\r\n <>\r\n {hasDescription && (\r\n <p\r\n id={resolvedDescriptionId}\r\n className={classMap.description}\r\n >\r\n {description}\r\n </p>\r\n )}\r\n {children && (\r\n <div className={classMap.children}>{children}</div>\r\n )}\r\n </>\r\n )}\r\n </div>\r\n\r\n {(actionButtons.length > 0 || renderFooter) && (\r\n <div\r\n className={combineClassNames(classMap.footer, footerClassName)}\r\n >\r\n {actionButtons.length > 0 && (\r\n <div className={classMap.actions}>\r\n {actionButtons.map((button, index) =>\r\n useIconButtons && button.icon ? (\r\n <button.iconButtonComponent\r\n key={index}\r\n icon={button.icon}\r\n onClick={button.onClick}\r\n className={classMap.action_button}\r\n theme={button.theme || \"clear\"}\r\n state={button.state || \"\"}\r\n aria-label={button[\"aria-label\"] || button.label}\r\n aria-describedby={button[\"aria-describedby\"]}\r\n aria-labelledby={button[\"aria-labelledby\"]}\r\n aria-pressed={button[\"aria-pressed\"]}\r\n aria-expanded={button[\"aria-expanded\"]}\r\n aria-controls={button[\"aria-controls\"]}\r\n aria-current={button[\"aria-current\"]}\r\n role={button.role}\r\n title={button.title}\r\n size={button.size || size}\r\n href={button.href}\r\n loading={button.loading}\r\n disabled={button.disabled}\r\n />\r\n ) : (\r\n <button.buttonComponent\r\n key={index}\r\n onClick={button.onClick}\r\n className={classMap.action_button}\r\n theme={button.theme || \"secondary\"}\r\n state={button.state || \"\"}\r\n href={button.href}\r\n loading={button.loading}\r\n size={button.size || size}\r\n ariaLabel={button[\"aria-label\"] || button.label}\r\n aria-describedby={button[\"aria-describedby\"]}\r\n aria-labelledby={button[\"aria-labelledby\"]}\r\n aria-pressed={button[\"aria-pressed\"]}\r\n aria-expanded={button[\"aria-expanded\"]}\r\n aria-controls={button[\"aria-controls\"]}\r\n aria-current={button[\"aria-current\"]}\r\n role={button.role}\r\n title={button.title}\r\n disabled={button.disabled}\r\n >\r\n {button.label}\r\n </button.buttonComponent>\r\n ),\r\n )}\r\n </div>\r\n )}\r\n {renderFooter && renderFooter()}\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n )}\r\n </div>\r\n );\r\n};\r\n\r\nCardBase.displayName = \"CardBase\";\r\n\r\nexport default CardBase;\r\n","import React from \"react\";\r\nimport CardBase from \"../CardBase\";\r\nimport \"./Card.scss\";\r\nimport Button from \"../../Button/core/Button\";\r\nimport IconButton from \"../../IconButton/core/IconButton\";\r\nimport Skeleton from \"../../Skeleton/core/Skeleton\";\r\nimport { CardProps } from \"../Card.types\";\r\n\r\nconst classes = {\r\n card: \"card\",\r\n\r\n left: \"card_left\",\r\n right: \"card_right\",\r\n center: \"card_center\",\r\n\r\n primary: \"card_primary\",\r\n secondary: \"card_secondary\",\r\n tertiary: \"card_tertiary\",\r\n quaternary: \"card_quaternary\",\r\n\r\n success: \"card_success\",\r\n warning: \"card_warning\",\r\n error: \"card_error\",\r\n\r\n clear: \"card_clear\",\r\n\r\n outline: \"card_outline\",\r\n loading: \"card_loading\",\r\n\r\n content: \"card_content\",\r\n\r\n xs: \"card_xs\",\r\n small: \"card_small\",\r\n medium: \"card_medium\",\r\n large: \"card_large\",\r\n xl: \"card_xl\",\r\n\r\n shadowNone: \"card_shadow-None\",\r\n shadowLight: \"card_shadow-Light\",\r\n shadowMedium: \"card_shadow-Medium\",\r\n shadowStrong: \"card_shadow-Strong\",\r\n shadowIntense: \"card_shadow-Intense\",\r\n\r\n roundNone: \"card_round-None\",\r\n roundSmall: \"card_round-Small\",\r\n roundMedium: \"card_round-Medium\",\r\n roundLarge: \"card_round-Large\",\r\n\r\n borderNone: \"card_border-None\",\r\n borderXs: \"card_border-Xs\",\r\n borderSmall: \"card_border-Small\",\r\n borderMedium: \"card_border-Medium\",\r\n borderLarge: \"card_border-Large\",\r\n borderXl: \"card_border-Xl\",\r\n\r\n vertical: \"card_vertical\",\r\n horizontal: \"card_horizontal\",\r\n\r\n image: \"card_image\",\r\n header: \"card_header\",\r\n title: \"card_title\",\r\n icon: \"card_icon\",\r\n body: \"card_body\",\r\n description: \"card_description\",\r\n children: \"card_children\",\r\n footer: \"card_footer\",\r\n actions: \"card_actions\",\r\n action_button: \"card_action_button\",\r\n};\r\n\r\nconst Card: React.FC<CardProps> = (props) => {\r\n const wrappedButtons = (props.actionButtons ?? []).map((b) => ({\r\n ...b,\r\n buttonComponent: Button,\r\n iconButtonComponent: IconButton,\r\n }));\r\n\r\n return (\r\n <CardBase\r\n {...props}\r\n actionButtons={wrappedButtons}\r\n classMap={classes}\r\n SkeletonComponent={Skeleton}\r\n />\r\n );\r\n};\r\nCard.displayName = \"Card\";\r\nexport default Card;\r\n"],"names":["Skeleton"],"mappings":"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"}
|