boreal-ui 0.0.50 → 0.0.54
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/{Card-YD4BgNEU.js → Card-BjLC4t0w.js} +20 -47
- package/dist/core/Card-BjLC4t0w.js.map +1 -0
- package/dist/core/{Card-C57chjAP.cjs → Card-DRM65kM-.cjs} +20 -47
- package/dist/core/Card-DRM65kM-.cjs.map +1 -0
- package/dist/core/Card.cjs.js +1 -1
- package/dist/core/Card.js +1 -1
- package/dist/core/{FileUpload-C0eHx1h8.js → FileUpload-9fIxslAo.js} +2 -2
- package/dist/core/{FileUpload-C0eHx1h8.js.map → FileUpload-9fIxslAo.js.map} +1 -1
- package/dist/core/{FileUpload-BJ3RJxT3.cjs → FileUpload-DbMxpH-U.cjs} +2 -2
- package/dist/core/{FileUpload-BJ3RJxT3.cjs.map → FileUpload-DbMxpH-U.cjs.map} +1 -1
- package/dist/core/FileUpload.cjs.js +1 -1
- package/dist/core/FileUpload.js +1 -1
- package/dist/core/{MessagePopup-B3lEfar7.js → MessagePopup-BMGIVKoJ.js} +4 -4
- package/dist/core/{MessagePopup-B3lEfar7.js.map → MessagePopup-BMGIVKoJ.js.map} +1 -1
- package/dist/core/{MessagePopup-CtdpuRFv.cjs → MessagePopup-DQQKRCGF.cjs} +4 -4
- package/dist/core/{MessagePopup-CtdpuRFv.cjs.map → MessagePopup-DQQKRCGF.cjs.map} +1 -1
- package/dist/core/MessagePopup.cjs.js +4 -0
- package/dist/core/MessagePopup.cjs.js.map +1 -0
- package/dist/core/MessagePopup.js +5 -0
- package/dist/core/MessagePopup.js.map +1 -0
- package/dist/core/{ProgressBar-DaA5vvnq.js → ProgressBar-BLcSyVgQ.js} +51 -21
- package/dist/core/ProgressBar-BLcSyVgQ.js.map +1 -0
- package/dist/core/{ProgressBar-BwjYOqoE.cjs → ProgressBar-BbIZLV1t.cjs} +50 -20
- package/dist/core/ProgressBar-BbIZLV1t.cjs.map +1 -0
- package/dist/core/ProgressBar.cjs.js +1 -1
- package/dist/core/ProgressBar.js +1 -1
- package/dist/core/{Taginput-BXCxdLf0.cjs → TagInput-BXCxdLf0.cjs} +1 -1
- package/dist/core/TagInput-BXCxdLf0.cjs.map +1 -0
- package/dist/core/{Taginput-CoxxwLXg.js → TagInput-CoxxwLXg.js} +1 -1
- package/dist/core/TagInput-CoxxwLXg.js.map +1 -0
- package/dist/core/TagInput.cjs.js +2 -2
- package/dist/core/TagInput.js +1 -1
- package/dist/core/boreal-ui.css +31 -0
- package/dist/core/index.cjs.js +7 -7
- package/dist/core/index.js +6 -6
- package/dist/next/{Avatar-B-Ws4Ueo.js → Avatar-B24bFFqY.js} +3 -3
- package/dist/next/{Avatar-B-Ws4Ueo.js.map → Avatar-B24bFFqY.js.map} +1 -1
- package/dist/next/{Avatar-B9sMyRWr.cjs → Avatar-CPaxiA0r.cjs} +3 -3
- package/dist/next/{Avatar-B9sMyRWr.cjs.map → Avatar-CPaxiA0r.cjs.map} +1 -1
- package/dist/next/Avatar.cjs.js +1 -1
- package/dist/next/Avatar.js +1 -1
- package/dist/next/{Breadcrumbs-CrKRsQf3.cjs → Breadcrumbs-BlFi63K8.cjs} +3 -3
- package/dist/next/{Breadcrumbs-CrKRsQf3.cjs.map → Breadcrumbs-BlFi63K8.cjs.map} +1 -1
- package/dist/next/{Breadcrumbs-ZK64MIGd.js → Breadcrumbs-D9BMYEZi.js} +3 -3
- package/dist/next/{Breadcrumbs-ZK64MIGd.js.map → Breadcrumbs-D9BMYEZi.js.map} +1 -1
- package/dist/next/Breadcrumbs.cjs.js +1 -1
- package/dist/next/Breadcrumbs.js +1 -1
- package/dist/next/{Button-BI0LErYM.cjs → Button-DPoX7ahh.cjs} +2 -2
- package/dist/next/{Button-BI0LErYM.cjs.map → Button-DPoX7ahh.cjs.map} +1 -1
- package/dist/next/{Button-qs4m4zx0.js → Button-DhH3Gy0J.js} +2 -2
- package/dist/next/{Button-qs4m4zx0.js.map → Button-DhH3Gy0J.js.map} +1 -1
- package/dist/next/Button.cjs.js +1 -1
- package/dist/next/Button.js +1 -1
- package/dist/next/{Card-CNwE1Mkt.js → Card-4SKxHmOQ.js} +23 -50
- package/dist/next/Card-4SKxHmOQ.js.map +1 -0
- package/dist/next/{Card-CddrG8Xx.cjs → Card-BdzmlYGf.cjs} +23 -50
- package/dist/next/Card-BdzmlYGf.cjs.map +1 -0
- package/dist/next/Card.cjs.js +1 -1
- package/dist/next/Card.js +1 -1
- package/dist/next/{Chip-D2mvW5L7.js → Chip-BqMZEDW_.js} +2 -2
- package/dist/next/{Chip-D2mvW5L7.js.map → Chip-BqMZEDW_.js.map} +1 -1
- package/dist/next/{Chip-BWTBVAIE.cjs → Chip-CqvlZI-K.cjs} +2 -2
- package/dist/next/{Chip-BWTBVAIE.cjs.map → Chip-CqvlZI-K.cjs.map} +1 -1
- package/dist/next/Chip.cjs.js +1 -1
- package/dist/next/Chip.js +1 -1
- package/dist/next/{CommandPalette-BO6R9zQs.cjs → CommandPalette-C0NN-NWE.cjs} +2 -2
- package/dist/next/{CommandPalette-BO6R9zQs.cjs.map → CommandPalette-C0NN-NWE.cjs.map} +1 -1
- package/dist/next/{CommandPalette-CN0BiN0R.js → CommandPalette-vklqlRV0.js} +2 -2
- package/dist/next/{CommandPalette-CN0BiN0R.js.map → CommandPalette-vklqlRV0.js.map} +1 -1
- package/dist/next/CommandPalette.cjs.js +1 -1
- package/dist/next/CommandPalette.js +1 -1
- package/dist/next/{Dropdown-Czc7qKPn.js → Dropdown-BjxT8ivq.js} +2 -2
- package/dist/next/{Dropdown-Czc7qKPn.js.map → Dropdown-BjxT8ivq.js.map} +1 -1
- package/dist/next/{Dropdown-BnuZW883.cjs → Dropdown-IW2Ph6-e.cjs} +2 -2
- package/dist/next/{Dropdown-BnuZW883.cjs.map → Dropdown-IW2Ph6-e.cjs.map} +1 -1
- package/dist/next/Dropdown.cjs.js +1 -1
- package/dist/next/Dropdown.js +1 -1
- package/dist/next/{EmptyState-Bb90F-ej.cjs → EmptyState-BS6-CuHp.cjs} +2 -2
- package/dist/next/{EmptyState-Bb90F-ej.cjs.map → EmptyState-BS6-CuHp.cjs.map} +1 -1
- package/dist/next/{EmptyState-Brd4N36F.js → EmptyState-D_Gcrj_3.js} +2 -2
- package/dist/next/{EmptyState-Brd4N36F.js.map → EmptyState-D_Gcrj_3.js.map} +1 -1
- package/dist/next/EmptyState.cjs.js +1 -1
- package/dist/next/EmptyState.js +1 -1
- package/dist/next/{FileUpload-Drm5_xEx.cjs → FileUpload-Cj99fQhe.cjs} +4 -4
- package/dist/next/{FileUpload-Drm5_xEx.cjs.map → FileUpload-Cj99fQhe.cjs.map} +1 -1
- package/dist/next/{FileUpload-BMMpH1El.js → FileUpload-St2eEaTn.js} +4 -4
- package/dist/next/{FileUpload-BMMpH1El.js.map → FileUpload-St2eEaTn.js.map} +1 -1
- package/dist/next/FileUpload.cjs.js +1 -1
- package/dist/next/FileUpload.js +1 -1
- package/dist/next/{Footer-EF2-ryvY.cjs → Footer-B3KTDWBR.cjs} +4 -4
- package/dist/next/{Footer-EF2-ryvY.cjs.map → Footer-B3KTDWBR.cjs.map} +1 -1
- package/dist/next/{Footer-B6_LG958.js → Footer-dtGtOPyR.js} +4 -4
- package/dist/next/{Footer-B6_LG958.js.map → Footer-dtGtOPyR.js.map} +1 -1
- package/dist/next/Footer.cjs.js +1 -1
- package/dist/next/Footer.js +1 -1
- package/dist/next/{IconButton-BTUFKRZt.js → IconButton-Ct3YtlG9.js} +2 -2
- package/dist/next/{IconButton-BTUFKRZt.js.map → IconButton-Ct3YtlG9.js.map} +1 -1
- package/dist/next/{IconButton-2l-_HOMB.cjs → IconButton-aF7cTy19.cjs} +2 -2
- package/dist/next/{IconButton-2l-_HOMB.cjs.map → IconButton-aF7cTy19.cjs.map} +1 -1
- package/dist/next/IconButton.cjs.js +1 -1
- package/dist/next/IconButton.js +1 -1
- package/dist/next/{MessagePopup-WUBGyJ_F.js → MessagePopup-C4n0Qw7n.js} +6 -6
- package/dist/next/{MessagePopup-WUBGyJ_F.js.map → MessagePopup-C4n0Qw7n.js.map} +1 -1
- package/dist/next/{MessagePopup-DsquzWSn.cjs → MessagePopup-CwOeZAAM.cjs} +6 -6
- package/dist/next/{MessagePopup-DsquzWSn.cjs.map → MessagePopup-CwOeZAAM.cjs.map} +1 -1
- package/dist/next/MessagePopup.cjs.js +4 -0
- package/dist/next/MessagePopup.cjs.js.map +1 -0
- package/dist/next/MessagePopup.js +5 -0
- package/dist/next/MessagePopup.js.map +1 -0
- package/dist/next/{Modal-B2ilLCoi.js → Modal-CIzoBs9H.js} +2 -2
- package/dist/next/{Modal-B2ilLCoi.js.map → Modal-CIzoBs9H.js.map} +1 -1
- package/dist/next/{Modal-CVKVAEdd.cjs → Modal-DCNGQN70.cjs} +2 -2
- package/dist/next/{Modal-CVKVAEdd.cjs.map → Modal-DCNGQN70.cjs.map} +1 -1
- package/dist/next/Modal.cjs.js +1 -1
- package/dist/next/Modal.js +1 -1
- package/dist/next/{NavBar-DVEf0iJH.cjs → NavBar-DDu46bCF.cjs} +3 -3
- package/dist/next/{NavBar-DVEf0iJH.cjs.map → NavBar-DDu46bCF.cjs.map} +1 -1
- package/dist/next/{NavBar-CmvgkEZt.js → NavBar-DyI3rKSN.js} +3 -3
- package/dist/next/{NavBar-CmvgkEZt.js.map → NavBar-DyI3rKSN.js.map} +1 -1
- package/dist/next/NavBar.cjs.js +1 -1
- package/dist/next/NavBar.js +1 -1
- package/dist/next/{NotificationCenter-CtM10CVj.js → NotificationCenter-BIuKaeXk.js} +3 -3
- package/dist/next/{NotificationCenter-CtM10CVj.js.map → NotificationCenter-BIuKaeXk.js.map} +1 -1
- package/dist/next/{NotificationCenter-CtL6rozQ.cjs → NotificationCenter-CzdOOnWg.cjs} +3 -3
- package/dist/next/{NotificationCenter-CtL6rozQ.cjs.map → NotificationCenter-CzdOOnWg.cjs.map} +1 -1
- package/dist/next/NotificationCenter.cjs.js +1 -1
- package/dist/next/NotificationCenter.js +1 -1
- package/dist/next/{Pager-Bxxewb8I.cjs → Pager-C6vww_Lf.cjs} +3 -3
- package/dist/next/{Pager-Bxxewb8I.cjs.map → Pager-C6vww_Lf.cjs.map} +1 -1
- package/dist/next/{Pager-D0Mw7o7v.js → Pager-DkXLe3dd.js} +3 -3
- package/dist/next/{Pager-D0Mw7o7v.js.map → Pager-DkXLe3dd.js.map} +1 -1
- package/dist/next/Pager.cjs.js +1 -1
- package/dist/next/Pager.js +1 -1
- package/dist/next/ProgressBar-BM0Rp63R.js +188 -0
- package/dist/next/ProgressBar-BM0Rp63R.js.map +1 -0
- package/dist/next/ProgressBar-CDhjp_gn.cjs +187 -0
- package/dist/next/ProgressBar-CDhjp_gn.cjs.map +1 -0
- package/dist/next/ProgressBar.cjs.js +1 -1
- package/dist/next/ProgressBar.js +1 -1
- package/dist/next/{Sidebar-DajVSn82.cjs → Sidebar-CBC-Gu5d.cjs} +3 -3
- package/dist/next/{Sidebar-DajVSn82.cjs.map → Sidebar-CBC-Gu5d.cjs.map} +1 -1
- package/dist/next/{Sidebar-CJ4VrQIW.js → Sidebar-oJzZMxwu.js} +3 -3
- package/dist/next/{Sidebar-CJ4VrQIW.js.map → Sidebar-oJzZMxwu.js.map} +1 -1
- package/dist/next/Sidebar.cjs.js +1 -1
- package/dist/next/Sidebar.js +1 -1
- package/dist/next/{Stepper-BvA_ZAho.js → Stepper-DBwramgz.js} +2 -2
- package/dist/next/{Stepper-BvA_ZAho.js.map → Stepper-DBwramgz.js.map} +1 -1
- package/dist/next/{Stepper-D6X70Sr6.cjs → Stepper-YQqjSOG0.cjs} +2 -2
- package/dist/next/{Stepper-D6X70Sr6.cjs.map → Stepper-YQqjSOG0.cjs.map} +1 -1
- package/dist/next/Stepper.cjs.js +1 -1
- package/dist/next/Stepper.js +1 -1
- package/dist/next/{TagInput-DfNJiPKh.cjs → TagInput-B38cJqaG.cjs} +3 -3
- package/dist/next/TagInput-B38cJqaG.cjs.map +1 -0
- package/dist/next/{TagInput-DKzxPiwU.js → TagInput-BDbDZ1W8.js} +3 -3
- package/dist/next/TagInput-BDbDZ1W8.js.map +1 -0
- package/dist/next/TagInput.cjs.js +1 -1
- package/dist/next/TagInput.js +1 -1
- package/dist/next/{TextInput-C1TUvbWx.cjs → TextInput-C3cLfd6E.cjs} +2 -2
- package/dist/next/{TextInput-C1TUvbWx.cjs.map → TextInput-C3cLfd6E.cjs.map} +1 -1
- package/dist/next/{TextInput-CyGkgvS3.js → TextInput-D68lumzk.js} +2 -2
- package/dist/next/{TextInput-CyGkgvS3.js.map → TextInput-D68lumzk.js.map} +1 -1
- package/dist/next/TextInput.cjs.js +1 -1
- package/dist/next/TextInput.js +1 -1
- package/dist/next/{Toolbar-PwnuYGDR.cjs → Toolbar-B-APlNjI.cjs} +2 -2
- package/dist/next/{Toolbar-PwnuYGDR.cjs.map → Toolbar-B-APlNjI.cjs.map} +1 -1
- package/dist/next/{Toolbar-wbusnAUV.js → Toolbar-DHyc9uqa.js} +2 -2
- package/dist/next/{Toolbar-wbusnAUV.js.map → Toolbar-DHyc9uqa.js.map} +1 -1
- package/dist/next/Toolbar.cjs.js +1 -1
- package/dist/next/Toolbar.js +1 -1
- package/dist/next/boreal-ui.css +122 -72
- package/dist/next/{image-BBS8QO15.js → image-B9PuwflE.js} +47 -3
- package/dist/next/image-B9PuwflE.js.map +1 -0
- package/dist/next/{image-A4nTeRaX.cjs → image-Bo_vHlt1.cjs} +47 -3
- package/dist/next/image-Bo_vHlt1.cjs.map +1 -0
- package/dist/next/index.cjs.js +23 -23
- package/dist/next/index.js +23 -23
- package/dist/next/{link-lNk_lOdS.cjs → link-B1N-q38H.cjs} +276 -49
- package/dist/next/link-B1N-q38H.cjs.map +1 -0
- package/dist/next/{link-CxWP3aXr.js → link-CyxHztrS.js} +276 -49
- package/dist/next/link-CyxHztrS.js.map +1 -0
- package/dist/next/{navigation-DxXFNXZM.js → navigation-C2hD8Jlk.js} +157 -199
- package/dist/next/navigation-C2hD8Jlk.js.map +1 -0
- package/dist/next/{navigation-CZU71Pmb.cjs → navigation-C3npGZmO.cjs} +157 -199
- package/dist/next/navigation-C3npGZmO.cjs.map +1 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/types/components/Card/Card.types.d.ts +4 -4
- package/dist/types/components/Card/Card.types.d.ts.map +1 -1
- package/dist/types/components/Card/CardBase.d.ts.map +1 -1
- package/dist/types/components/{MessagePopUp → MessagePopup}/MessagePopup.types.d.ts +2 -2
- package/dist/types/components/{MessagePopUp → MessagePopup}/MessagePopup.types.d.ts.map +1 -1
- package/dist/types/components/{MessagePopUp → MessagePopup}/MessagePopupBase.d.ts.map +1 -1
- package/dist/types/components/MessagePopup/core/MessagePopup.d.ts +6 -0
- package/dist/types/components/{MessagePopUp → MessagePopup}/core/MessagePopup.d.ts.map +1 -1
- package/dist/types/components/MessagePopup/next/MessagePopup.d.ts +5 -0
- package/dist/types/components/{MessagePopUp → MessagePopup}/next/MessagePopup.d.ts.map +1 -1
- package/dist/types/components/ProgressBar/ProgressBar.types.d.ts +10 -1
- package/dist/types/components/ProgressBar/ProgressBar.types.d.ts.map +1 -1
- package/dist/types/components/ProgressBar/ProgressBarBase.d.ts.map +1 -1
- package/dist/types/components/ProgressBar/core/ProgressBar.d.ts.map +1 -1
- package/dist/types/components/TagInput/{Taginput.types.d.ts → TagInput.types.d.ts} +1 -1
- package/dist/types/components/TagInput/{Taginput.types.d.ts.map → TagInput.types.d.ts.map} +1 -1
- package/dist/types/components/TagInput/TagInputBase.d.ts +1 -1
- package/dist/types/components/TagInput/core/TagInput.d.ts +6 -0
- package/dist/types/components/TagInput/core/{Taginput.d.ts.map → TagInput.d.ts.map} +1 -1
- package/dist/types/components/TagInput/next/TagInput.d.ts +1 -1
- package/dist/types/index.core.d.ts +2 -2
- package/dist/types/index.next.d.ts +1 -1
- package/dist/types/public.types.d.ts +2 -2
- package/package.json +8 -8
- package/dist/core/Card-C57chjAP.cjs.map +0 -1
- package/dist/core/Card-YD4BgNEU.js.map +0 -1
- package/dist/core/MessagePopUp.cjs.js +0 -4
- package/dist/core/MessagePopUp.cjs.js.map +0 -1
- package/dist/core/MessagePopUp.js +0 -5
- package/dist/core/MessagePopUp.js.map +0 -1
- package/dist/core/ProgressBar-BwjYOqoE.cjs.map +0 -1
- package/dist/core/ProgressBar-DaA5vvnq.js.map +0 -1
- package/dist/core/Taginput-BXCxdLf0.cjs.map +0 -1
- package/dist/core/Taginput-CoxxwLXg.js.map +0 -1
- package/dist/next/Card-CNwE1Mkt.js.map +0 -1
- package/dist/next/Card-CddrG8Xx.cjs.map +0 -1
- package/dist/next/MessagePopUp.cjs.js +0 -4
- package/dist/next/MessagePopUp.cjs.js.map +0 -1
- package/dist/next/MessagePopUp.js +0 -5
- package/dist/next/MessagePopUp.js.map +0 -1
- package/dist/next/ProgressBar-BMuv0kis.cjs +0 -151
- package/dist/next/ProgressBar-BMuv0kis.cjs.map +0 -1
- package/dist/next/ProgressBar-DuaWQouO.js +0 -152
- package/dist/next/ProgressBar-DuaWQouO.js.map +0 -1
- package/dist/next/TagInput-DKzxPiwU.js.map +0 -1
- package/dist/next/TagInput-DfNJiPKh.cjs.map +0 -1
- package/dist/next/image-A4nTeRaX.cjs.map +0 -1
- package/dist/next/image-BBS8QO15.js.map +0 -1
- package/dist/next/link-CxWP3aXr.js.map +0 -1
- package/dist/next/link-lNk_lOdS.cjs.map +0 -1
- package/dist/next/navigation-CZU71Pmb.cjs.map +0 -1
- package/dist/next/navigation-DxXFNXZM.js.map +0 -1
- package/dist/types/components/MessagePopUp/core/MessagePopup.d.ts +0 -6
- package/dist/types/components/MessagePopUp/next/MessagePopup.d.ts +0 -5
- package/dist/types/components/TagInput/core/Taginput.d.ts +0 -6
- /package/dist/types/components/{MessagePopUp → MessagePopup}/MessagePopupBase.d.ts +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button-
|
|
1
|
+
{"version":3,"file":"Button-DhH3Gy0J.js","sources":["../../src/components/Button/ButtonBase.tsx","../../src/components/Button/next/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 ariaLabel,\r\n href,\r\n isExternal = false,\r\n outline = false,\r\n size = getDefaultSize(),\r\n loading = false,\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 const computedAriaLabel = iconOnly ? ariaLabel : undefined;\r\n\r\n if (process.env.NODE_ENV === \"development\" && iconOnly && !ariaLabel) {\r\n console.warn(\"ButtonBase: icon-only buttons must provide `ariaLabel`.\");\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 className={classMap.icon} />\r\n </span>\r\n )}\r\n <span\r\n className={classMap.buttonLabel}\r\n aria-live={loading ? \"polite\" : undefined}\r\n aria-atomic={loading || 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\">Loading</span>\r\n </>\r\n ) : (\r\n <>\r\n {children}\r\n {href && (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 Comp = (LinkComponent ?? \"a\") as React.ElementType;\r\n const external = (isExternal ?? /^https?:\\/\\//i.test(href)) && !disabled;\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-disabled\": disabled || undefined,\r\n tabIndex: disabled ? -1 : undefined,\r\n ...(computedAriaLabel ? { \"aria-label\": computedAriaLabel } : {}),\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={external ? \"_blank\" : undefined}\r\n rel={external ? \"noopener noreferrer\" : undefined}\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 {...(rest as React.ComponentPropsWithoutRef<typeof Comp>)}\r\n >\r\n {content}\r\n </Comp>\r\n );\r\n }\r\n\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-busy={loading || undefined}\r\n {...(computedAriaLabel ? { \"aria-label\": computedAriaLabel } : {})}\r\n data-testid={testId}\r\n onClick={disabled ? 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\r\nButtonBase.displayName = \"ButtonBase\";\r\n\r\nexport default ButtonBase;\r\n","\"use client\";\r\n\r\nimport { forwardRef } from \"react\";\r\nimport Link from \"next/link\";\r\nimport styles from \"./Button.module.scss\";\r\nimport ButtonBase from \"../ButtonBase\";\r\nimport { ButtonProps } from \"../Button.types\";\r\n\r\nconst Button = forwardRef<HTMLButtonElement, ButtonProps>((props, ref) => (\r\n <ButtonBase {...props} classMap={styles} LinkComponent={Link} ref={ref} />\r\n));\r\nButton.displayName = \"Button\";\r\nexport default Button;\r\n"],"names":["disabled","outline","fullWidth"],"mappings":"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"}
|
package/dist/next/Button.cjs.js
CHANGED
package/dist/next/Button.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { jsx, jsxs, Fragment } from "react/jsx-runtime";
|
|
2
|
-
import { I as Image } from "./image-
|
|
2
|
+
import { I as Image } from "./image-B9PuwflE.js";
|
|
3
3
|
/* empty css */
|
|
4
|
-
import { B as Button } from "./Button-
|
|
5
|
-
import { I as IconButton } from "./IconButton-
|
|
4
|
+
import { B as Button } from "./Button-DhH3Gy0J.js";
|
|
5
|
+
import { I as IconButton } from "./IconButton-Ct3YtlG9.js";
|
|
6
6
|
import { S as SkeletonLoader } from "./Skeleton-DC4LJ059.js";
|
|
7
7
|
import React, { useId, useMemo } from "react";
|
|
8
8
|
import { c as combineClassNames } from "./classNames-AS8QjFq7.js";
|
|
@@ -164,66 +164,41 @@ const CardBase = ({
|
|
|
164
164
|
const descriptionId = `${autoId}-description`;
|
|
165
165
|
const derivedAriaLabel = ariaLabel || title2 || description2 || "Content card";
|
|
166
166
|
const FallbackImage = (props) => /* @__PURE__ */ jsx("img", { ...props });
|
|
167
|
+
function isStaticCardImage(value) {
|
|
168
|
+
return typeof value === "object" && value !== null && "src" in value && typeof value.src === "string";
|
|
169
|
+
}
|
|
167
170
|
function normalizeImageSource(srcInput, fallbackWidth, fallbackHeight) {
|
|
168
171
|
if (!srcInput) {
|
|
169
|
-
return {
|
|
170
|
-
src: void 0,
|
|
171
|
-
width: fallbackWidth,
|
|
172
|
-
height: fallbackHeight
|
|
173
|
-
};
|
|
172
|
+
return { src: void 0, width: fallbackWidth, height: fallbackHeight };
|
|
174
173
|
}
|
|
175
|
-
if (typeof srcInput === "
|
|
176
|
-
const
|
|
177
|
-
const trimmed = src.trim();
|
|
174
|
+
if (typeof srcInput === "string") {
|
|
175
|
+
const trimmed = srcInput.trim();
|
|
178
176
|
if (!trimmed) {
|
|
179
|
-
return {
|
|
180
|
-
src: void 0,
|
|
181
|
-
width: fallbackWidth,
|
|
182
|
-
height: fallbackHeight
|
|
183
|
-
};
|
|
177
|
+
return { src: void 0, width: fallbackWidth, height: fallbackHeight };
|
|
184
178
|
}
|
|
185
|
-
return {
|
|
186
|
-
src: trimmed,
|
|
187
|
-
width: typeof width === "number" ? width : fallbackWidth,
|
|
188
|
-
height: typeof height === "number" ? height : fallbackHeight
|
|
189
|
-
};
|
|
179
|
+
return { src: trimmed, width: fallbackWidth, height: fallbackHeight };
|
|
190
180
|
}
|
|
191
|
-
if (
|
|
192
|
-
const trimmed = srcInput.trim();
|
|
181
|
+
if (isStaticCardImage(srcInput)) {
|
|
182
|
+
const trimmed = srcInput.src.trim();
|
|
193
183
|
if (!trimmed) {
|
|
194
|
-
return {
|
|
195
|
-
src: void 0,
|
|
196
|
-
width: fallbackWidth,
|
|
197
|
-
height: fallbackHeight
|
|
198
|
-
};
|
|
184
|
+
return { src: void 0, width: fallbackWidth, height: fallbackHeight };
|
|
199
185
|
}
|
|
200
186
|
return {
|
|
201
187
|
src: trimmed,
|
|
202
|
-
width: fallbackWidth,
|
|
203
|
-
height: fallbackHeight
|
|
188
|
+
width: srcInput.width ?? fallbackWidth,
|
|
189
|
+
height: srcInput.height ?? fallbackHeight
|
|
204
190
|
};
|
|
205
191
|
}
|
|
206
|
-
return {
|
|
207
|
-
src: void 0,
|
|
208
|
-
width: fallbackWidth,
|
|
209
|
-
height: fallbackHeight
|
|
210
|
-
};
|
|
192
|
+
return { src: void 0, width: fallbackWidth, height: fallbackHeight };
|
|
211
193
|
}
|
|
212
|
-
const isStaticObj = typeof imageUrl === "object" && imageUrl !== null && "src" in imageUrl && typeof imageUrl.src === "string";
|
|
213
|
-
const isReactImage = imageUrl !== void 0 && !isStaticObj && typeof imageUrl !== "string";
|
|
214
194
|
const {
|
|
215
195
|
src: imgSrc,
|
|
216
196
|
width: resolvedWidth,
|
|
217
197
|
height: resolvedHeight
|
|
218
|
-
} = normalizeImageSource(
|
|
219
|
-
|
|
220
|
-
imageWidth,
|
|
221
|
-
imageHeight
|
|
222
|
-
);
|
|
223
|
-
const hasImage = isReactImage || !!imgSrc;
|
|
198
|
+
} = normalizeImageSource(imageUrl, imageWidth, imageHeight);
|
|
199
|
+
const hasImage = Boolean(imgSrc);
|
|
224
200
|
const imgAlt = imageAlt || `${title2 || "Card"} image`;
|
|
225
201
|
const ImageRenderer = ImageComponent || FallbackImage;
|
|
226
|
-
const isNextImage = typeof ImageRenderer !== "string";
|
|
227
202
|
const cardClassName = useMemo(
|
|
228
203
|
() => combineClassNames(
|
|
229
204
|
classMap.card,
|
|
@@ -269,14 +244,13 @@ const CardBase = ({
|
|
|
269
244
|
"data-testid": `${testId}-skeleton`
|
|
270
245
|
}
|
|
271
246
|
) : /* @__PURE__ */ jsxs("div", { className: classMap.content, children: [
|
|
272
|
-
hasImage &&
|
|
247
|
+
hasImage && imgSrc && (imageFill ? /* @__PURE__ */ jsx("div", { className: classMap.media, children: /* @__PURE__ */ jsx(
|
|
273
248
|
ImageRenderer,
|
|
274
249
|
{
|
|
275
250
|
src: imgSrc,
|
|
276
251
|
alt: imgAlt,
|
|
277
252
|
className: combineClassNames(classMap.image, imageClassName),
|
|
278
|
-
|
|
279
|
-
...!isNextImage ? { loading: "lazy" } : {}
|
|
253
|
+
fill: true
|
|
280
254
|
}
|
|
281
255
|
) }) : /* @__PURE__ */ jsx(
|
|
282
256
|
ImageRenderer,
|
|
@@ -285,8 +259,7 @@ const CardBase = ({
|
|
|
285
259
|
alt: imgAlt,
|
|
286
260
|
className: combineClassNames(classMap.image, imageClassName),
|
|
287
261
|
width: resolvedWidth ?? 640,
|
|
288
|
-
height: resolvedHeight ?? 360
|
|
289
|
-
...!isNextImage ? { loading: "lazy" } : {}
|
|
262
|
+
height: resolvedHeight ?? 360
|
|
290
263
|
}
|
|
291
264
|
)),
|
|
292
265
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
@@ -420,4 +393,4 @@ Card.displayName = "Card";
|
|
|
420
393
|
export {
|
|
421
394
|
Card as C
|
|
422
395
|
};
|
|
423
|
-
//# sourceMappingURL=Card-
|
|
396
|
+
//# sourceMappingURL=Card-4SKxHmOQ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Card-4SKxHmOQ.js","sources":["../../src/components/Card/CardBase.tsx","../../src/components/Card/next/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} 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 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 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 \"data-testid\": testId = \"card\",\r\n \"aria-labelledby\": ariaLabelledBy,\r\n \"aria-label\": ariaLabel,\r\n classMap,\r\n SkeletonComponent,\r\n ImageComponent,\r\n}) => {\r\n const autoId = useId();\r\n const headerId = ariaLabelledBy || `${autoId}-header`;\r\n const descriptionId = `${autoId}-description`;\r\n const derivedAriaLabel = ariaLabel || title || description || \"Content card\";\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\r\n const imgAlt = 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 outline && classMap.outline,\r\n loading && classMap.loading,\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 outline,\r\n loading,\r\n className,\r\n ]\r\n );\r\n\r\n return (\r\n <div\r\n data-testid={testId}\r\n className={cardClassName}\r\n role=\"region\"\r\n aria-labelledby={title ? headerId : undefined}\r\n aria-label={!title ? derivedAriaLabel : undefined}\r\n aria-busy={loading || undefined}\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 <div\r\n className={combineClassNames(classMap.header, headerClassName)}\r\n id={headerId}\r\n >\r\n {renderHeader ? (\r\n renderHeader()\r\n ) : title ? (\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 <div\r\n className={combineClassNames(classMap.body, bodyClassName)}\r\n role=\"group\"\r\n aria-describedby={description ? descriptionId : undefined}\r\n >\r\n {renderContent ? (\r\n renderContent()\r\n ) : (\r\n <>\r\n {description && (\r\n <p id={descriptionId} className={classMap.description}>\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.label}\r\n size={button.size || size}\r\n href={button.href}\r\n loading={button.loading}\r\n ariaLabel={button.ariaLabel}\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.ariaLabel}\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","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport Image, { StaticImageData } from \"next/image\";\r\nimport { Button, IconButton, Skeleton } from \"../../../index.next\";\r\nimport styles from \"./Card.module.scss\";\r\nimport CardBase from \"../CardBase\";\r\nimport { CardImageComponentProps, CardProps } from \"../Card.types\";\r\n\r\nconst NextImageWrapper: React.FC<CardImageComponentProps> = ({\r\n src,\r\n alt,\r\n className,\r\n width,\r\n height,\r\n fill,\r\n}) => {\r\n if (typeof src === \"string\" && src.toLowerCase().endsWith(\".svg\")) {\r\n return (\r\n <img\r\n src={src}\r\n alt={alt}\r\n className={className}\r\n width={width}\r\n height={height}\r\n loading=\"lazy\"\r\n />\r\n );\r\n }\r\n\r\n return (\r\n <Image\r\n src={src as StaticImageData | string}\r\n alt={alt}\r\n className={className}\r\n {...(fill\r\n ? { fill, sizes: \"100vw\" }\r\n : { width: width ?? 640, height: height ?? 360 })}\r\n />\r\n );\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={styles}\r\n SkeletonComponent={Skeleton}\r\n ImageComponent={NextImageWrapper}\r\n />\r\n );\r\n};\r\nCard.displayName = \"Card\";\r\nexport default Card;\r\n"],"names":["title","description","outline","loading","children","Skeleton"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWA,MAAM,WAAoC,CAAC;AAAA,EACzC,QAAQ,gBAAA;AAAA,EACR,QAAQ;AAAA,EACR;AAAA,EACA,OAAAA,SAAQ;AAAA,EACR,aAAAC,eAAc;AAAA,EACd,WAAW,mBAAA;AAAA,EACX,SAAS,iBAAA;AAAA,EACT;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,YAAY;AAAA,EACZ,iBAAiB;AAAA,EACjB,kBAAkB;AAAA,EAClB,gBAAgB;AAAA,EAChB,kBAAkB;AAAA,EAClB,SAAAC,WAAU;AAAA,EACV,OAAO,eAAA;AAAA,EACP,QAAQ;AAAA,EACR;AAAA,EACA;AAAA,EACA;AAAA,EACA,gBAAgB,CAAA;AAAA,EAChB,iBAAiB;AAAA,EACjB,SAAS;AAAA,EACT,SAAAC,WAAU;AAAA,EACV,UAAAC;AAAA,EACA,eAAe,SAAS;AAAA,EACxB,mBAAmB;AAAA,EACnB,cAAc;AAAA,EACd;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM,SAAS,MAAA;AACf,QAAM,WAAW,kBAAkB,GAAG,MAAM;AAC5C,QAAM,gBAAgB,GAAG,MAAM;AAC/B,QAAM,mBAAmB,aAAaJ,UAASC,gBAAe;AAE9D,QAAM,gBAAgB,CAAC,UACrB,oBAAC,OAAA,EAAK,GAAG,OAAO;AAGlB,WAAS,kBAAkB,OAA0C;AACnE,WACE,OAAO,UAAU,YACjB,UAAU,QACV,SAAS,SACT,OAAQ,MAA2B,QAAQ;AAAA,EAE/C;AAEA,WAAS,qBACP,UACA,eACA,gBACmD;AACnD,QAAI,CAAC,UAAU;AACb,aAAO,EAAE,KAAK,QAAW,OAAO,eAAe,QAAQ,eAAA;AAAA,IACzD;AAEA,QAAI,OAAO,aAAa,UAAU;AAChC,YAAM,UAAU,SAAS,KAAA;AACzB,UAAI,CAAC,SAAS;AACZ,eAAO,EAAE,KAAK,QAAW,OAAO,eAAe,QAAQ,eAAA;AAAA,MACzD;AACA,aAAO,EAAE,KAAK,SAAS,OAAO,eAAe,QAAQ,eAAA;AAAA,IACvD;AAEA,QAAI,kBAAkB,QAAQ,GAAG;AAC/B,YAAM,UAAU,SAAS,IAAI,KAAA;AAC7B,UAAI,CAAC,SAAS;AACZ,eAAO,EAAE,KAAK,QAAW,OAAO,eAAe,QAAQ,eAAA;AAAA,MACzD;AAEA,aAAO;AAAA,QACL,KAAK;AAAA,QACL,OAAO,SAAS,SAAS;AAAA,QACzB,QAAQ,SAAS,UAAU;AAAA,MAAA;AAAA,IAE/B;AAEA,WAAO,EAAE,KAAK,QAAW,OAAO,eAAe,QAAQ,eAAA;AAAA,EACzD;AAEA,QAAM;AAAA,IACJ,KAAK;AAAA,IACL,OAAO;AAAA,IACP,QAAQ;AAAA,EAAA,IACN,qBAAqB,UAAU,YAAY,WAAW;AAE1D,QAAM,WAAW,QAAQ,MAAM;AAE/B,QAAM,SAAS,YAAY,GAAGD,UAAS,MAAM;AAE7C,QAAM,gBAAgB,kBAAkB;AAExC,QAAM,gBAAgB;AAAA,IACpB,MACE;AAAA,MACE,SAAS;AAAA,MACT,SAAS,MAAM;AAAA,MACf,SAAS,SAAS,KAAK;AAAA,MACvB,SAAS,KAAK;AAAA,MACd,SAAS,KAAK;AAAA,MACd,SAAS,IAAI;AAAA,MACb,UAAU,SAAS,SAAS,WAAW,MAAM,CAAC,EAAE;AAAA,MAChD,YAAY,SAAS,QAAQ,WAAW,QAAQ,CAAC,EAAE;AAAA,MACnDE,YAAW,SAAS;AAAA,MACpBC,YAAW,SAAS;AAAA,MACpB;AAAA,IAAA;AAAA,IAEJ;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACAD;AAAA,MACAC;AAAA,MACA;AAAA,IAAA;AAAA,EACF;AAGF,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,eAAa;AAAA,MACb,WAAW;AAAA,MACX,MAAK;AAAA,MACL,mBAAiBH,SAAQ,WAAW;AAAA,MACpC,cAAY,CAACA,SAAQ,mBAAmB;AAAA,MACxC,aAAWG,YAAW;AAAA,MAErB,UAAAA,WACC;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,OAAM;AAAA,UACN,QAAO;AAAA,UACP,eAAa,GAAG,MAAM;AAAA,QAAA;AAAA,MAAA,IAGxB,qBAAC,OAAA,EAAI,WAAW,SAAS,SACtB,UAAA;AAAA,QAAA,YACC,WACC,YACC,oBAAC,OAAA,EAAI,WAAW,SAAS,OACvB,UAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,KAAK;AAAA,YACL,KAAK;AAAA,YACL,WAAW,kBAAkB,SAAS,OAAO,cAAc;AAAA,YAC3D,MAAI;AAAA,UAAA;AAAA,QAAA,GAER,IAEA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,KAAK;AAAA,YACL,KAAK;AAAA,YACL,WAAW,kBAAkB,SAAS,OAAO,cAAc;AAAA,YAC3D,OAAO,iBAAiB;AAAA,YACxB,QAAQ,kBAAkB;AAAA,UAAA;AAAA,QAAA;AAAA,6BAI/B,OAAA,EACC,UAAA;AAAA,UAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAW,kBAAkB,SAAS,QAAQ,eAAe;AAAA,cAC7D,IAAI;AAAA,cAEH,UAAA,eACC,iBACEH,8BACD,MAAA,EAAG,WAAW,SAAS,OACrB,UAAA;AAAA,gBAAA,YACC;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBACC,WAAW,SAAS;AAAA,oBACpB,eAAY;AAAA,oBACZ,eAAa,GAAG,MAAM;AAAA,oBAErB,UAAA,MAAM,cAAc,QAAQ;AAAA,kBAAA;AAAA,gBAAA;AAAA,gBAGhCA;AAAA,cAAA,EAAA,CACH,IACE;AAAA,YAAA;AAAA,UAAA;AAAA,UAGN;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAW,kBAAkB,SAAS,MAAM,aAAa;AAAA,cACzD,MAAK;AAAA,cACL,oBAAkBC,eAAc,gBAAgB;AAAA,cAE/C,UAAA,gBACC,cAAA,IAEA,qBAAA,UAAA,EACG,UAAA;AAAA,gBAAAA,oCACE,KAAA,EAAE,IAAI,eAAe,WAAW,SAAS,aACvC,UAAAA,aAAA,CACH;AAAA,gBAEDG,aACC,oBAAC,OAAA,EAAI,WAAW,SAAS,UAAW,UAAAA,UAAA,CAAS;AAAA,cAAA,EAAA,CAEjD;AAAA,YAAA;AAAA,UAAA;AAAA,WAIF,cAAc,SAAS,KAAK,iBAC5B;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAW,kBAAkB,SAAS,QAAQ,eAAe;AAAA,cAE5D,UAAA;AAAA,gBAAA,cAAc,SAAS,KACtB,oBAAC,SAAI,WAAW,SAAS,SACtB,UAAA,cAAc;AAAA,kBAAI,CAAC,QAAQ,UAC1B,kBAAkB,OAAO,OACvB;AAAA,oBAAC,OAAO;AAAA,oBAAP;AAAA,sBAEC,MAAM,OAAO;AAAA,sBACb,SAAS,OAAO;AAAA,sBAChB,WAAW,SAAS;AAAA,sBACpB,OAAO,OAAO,SAAS;AAAA,sBACvB,OAAO,OAAO,SAAS;AAAA,sBACvB,cAAY,OAAO;AAAA,sBACnB,MAAM,OAAO,QAAQ;AAAA,sBACrB,MAAM,OAAO;AAAA,sBACb,SAAS,OAAO;AAAA,sBAChB,WAAW,OAAO;AAAA,oBAAA;AAAA,oBAVb;AAAA,kBAAA,IAaP;AAAA,oBAAC,OAAO;AAAA,oBAAP;AAAA,sBAEC,SAAS,OAAO;AAAA,sBAChB,WAAW,SAAS;AAAA,sBACpB,OAAO,OAAO,SAAS;AAAA,sBACvB,OAAO,OAAO,SAAS;AAAA,sBACvB,MAAM,OAAO;AAAA,sBACb,SAAS,OAAO;AAAA,sBAChB,MAAM,OAAO,QAAQ;AAAA,sBACrB,WAAW,OAAO;AAAA,sBAEjB,UAAA,OAAO;AAAA,oBAAA;AAAA,oBAVH;AAAA,kBAAA;AAAA,gBAWP,GAGN;AAAA,gBAED,gBAAgB,aAAA;AAAA,cAAa;AAAA,YAAA;AAAA,UAAA;AAAA,QAChC,EAAA,CAEJ;AAAA,MAAA,EAAA,CACF;AAAA,IAAA;AAAA,EAAA;AAIR;AAEA,SAAS,cAAc;ACtQvB,MAAM,mBAAsD,CAAC;AAAA,EAC3D;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,MAAI,OAAO,QAAQ,YAAY,IAAI,cAAc,SAAS,MAAM,GAAG;AACjE,WACE;AAAA,MAAC;AAAA,MAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,SAAQ;AAAA,MAAA;AAAA,IAAA;AAAA,EAGd;AAEA,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACC,GAAI,OACD,EAAE,MAAM,OAAO,QAAA,IACf,EAAE,OAAO,SAAS,KAAK,QAAQ,UAAU,IAAA;AAAA,IAAI;AAAA,EAAA;AAGvD;AAEA,MAAM,OAA4B,CAAC,UAAU;AAC3C,QAAM,kBAAkB,MAAM,iBAAiB,CAAA,GAAI,IAAI,CAAC,OAAO;AAAA,IAC7D,GAAG;AAAA,IACH,iBAAiB;AAAA,IACjB,qBAAqB;AAAA,EAAA,EACrB;AAEF,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACE,GAAG;AAAA,MACJ,eAAe;AAAA,MACf,UAAU;AAAA,MACV,mBAAmBC;AAAAA,MACnB,gBAAgB;AAAA,IAAA;AAAA,EAAA;AAGtB;AACA,KAAK,cAAc;"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
const require$$2 = require("react/jsx-runtime");
|
|
3
|
-
const image$1 = require("./image-
|
|
3
|
+
const image$1 = require("./image-Bo_vHlt1.cjs");
|
|
4
4
|
;/* empty css */
|
|
5
|
-
const Button = require("./Button-
|
|
6
|
-
const IconButton = require("./IconButton-
|
|
5
|
+
const Button = require("./Button-DPoX7ahh.cjs");
|
|
6
|
+
const IconButton = require("./IconButton-aF7cTy19.cjs");
|
|
7
7
|
const Skeleton = require("./Skeleton-C6wW8eyR.cjs");
|
|
8
8
|
const React = require("react");
|
|
9
9
|
const classNames = require("./classNames-BcWMx052.cjs");
|
|
@@ -165,66 +165,41 @@ const CardBase = ({
|
|
|
165
165
|
const descriptionId = `${autoId}-description`;
|
|
166
166
|
const derivedAriaLabel = ariaLabel || title2 || description2 || "Content card";
|
|
167
167
|
const FallbackImage = (props) => /* @__PURE__ */ require$$2.jsx("img", { ...props });
|
|
168
|
+
function isStaticCardImage(value) {
|
|
169
|
+
return typeof value === "object" && value !== null && "src" in value && typeof value.src === "string";
|
|
170
|
+
}
|
|
168
171
|
function normalizeImageSource(srcInput, fallbackWidth, fallbackHeight) {
|
|
169
172
|
if (!srcInput) {
|
|
170
|
-
return {
|
|
171
|
-
src: void 0,
|
|
172
|
-
width: fallbackWidth,
|
|
173
|
-
height: fallbackHeight
|
|
174
|
-
};
|
|
173
|
+
return { src: void 0, width: fallbackWidth, height: fallbackHeight };
|
|
175
174
|
}
|
|
176
|
-
if (typeof srcInput === "
|
|
177
|
-
const
|
|
178
|
-
const trimmed = src.trim();
|
|
175
|
+
if (typeof srcInput === "string") {
|
|
176
|
+
const trimmed = srcInput.trim();
|
|
179
177
|
if (!trimmed) {
|
|
180
|
-
return {
|
|
181
|
-
src: void 0,
|
|
182
|
-
width: fallbackWidth,
|
|
183
|
-
height: fallbackHeight
|
|
184
|
-
};
|
|
178
|
+
return { src: void 0, width: fallbackWidth, height: fallbackHeight };
|
|
185
179
|
}
|
|
186
|
-
return {
|
|
187
|
-
src: trimmed,
|
|
188
|
-
width: typeof width === "number" ? width : fallbackWidth,
|
|
189
|
-
height: typeof height === "number" ? height : fallbackHeight
|
|
190
|
-
};
|
|
180
|
+
return { src: trimmed, width: fallbackWidth, height: fallbackHeight };
|
|
191
181
|
}
|
|
192
|
-
if (
|
|
193
|
-
const trimmed = srcInput.trim();
|
|
182
|
+
if (isStaticCardImage(srcInput)) {
|
|
183
|
+
const trimmed = srcInput.src.trim();
|
|
194
184
|
if (!trimmed) {
|
|
195
|
-
return {
|
|
196
|
-
src: void 0,
|
|
197
|
-
width: fallbackWidth,
|
|
198
|
-
height: fallbackHeight
|
|
199
|
-
};
|
|
185
|
+
return { src: void 0, width: fallbackWidth, height: fallbackHeight };
|
|
200
186
|
}
|
|
201
187
|
return {
|
|
202
188
|
src: trimmed,
|
|
203
|
-
width: fallbackWidth,
|
|
204
|
-
height: fallbackHeight
|
|
189
|
+
width: srcInput.width ?? fallbackWidth,
|
|
190
|
+
height: srcInput.height ?? fallbackHeight
|
|
205
191
|
};
|
|
206
192
|
}
|
|
207
|
-
return {
|
|
208
|
-
src: void 0,
|
|
209
|
-
width: fallbackWidth,
|
|
210
|
-
height: fallbackHeight
|
|
211
|
-
};
|
|
193
|
+
return { src: void 0, width: fallbackWidth, height: fallbackHeight };
|
|
212
194
|
}
|
|
213
|
-
const isStaticObj = typeof imageUrl === "object" && imageUrl !== null && "src" in imageUrl && typeof imageUrl.src === "string";
|
|
214
|
-
const isReactImage = imageUrl !== void 0 && !isStaticObj && typeof imageUrl !== "string";
|
|
215
195
|
const {
|
|
216
196
|
src: imgSrc,
|
|
217
197
|
width: resolvedWidth,
|
|
218
198
|
height: resolvedHeight
|
|
219
|
-
} = normalizeImageSource(
|
|
220
|
-
|
|
221
|
-
imageWidth,
|
|
222
|
-
imageHeight
|
|
223
|
-
);
|
|
224
|
-
const hasImage = isReactImage || !!imgSrc;
|
|
199
|
+
} = normalizeImageSource(imageUrl, imageWidth, imageHeight);
|
|
200
|
+
const hasImage = Boolean(imgSrc);
|
|
225
201
|
const imgAlt = imageAlt || `${title2 || "Card"} image`;
|
|
226
202
|
const ImageRenderer = ImageComponent || FallbackImage;
|
|
227
|
-
const isNextImage = typeof ImageRenderer !== "string";
|
|
228
203
|
const cardClassName = React.useMemo(
|
|
229
204
|
() => classNames.combineClassNames(
|
|
230
205
|
classMap.card,
|
|
@@ -270,14 +245,13 @@ const CardBase = ({
|
|
|
270
245
|
"data-testid": `${testId}-skeleton`
|
|
271
246
|
}
|
|
272
247
|
) : /* @__PURE__ */ require$$2.jsxs("div", { className: classMap.content, children: [
|
|
273
|
-
hasImage &&
|
|
248
|
+
hasImage && imgSrc && (imageFill ? /* @__PURE__ */ require$$2.jsx("div", { className: classMap.media, children: /* @__PURE__ */ require$$2.jsx(
|
|
274
249
|
ImageRenderer,
|
|
275
250
|
{
|
|
276
251
|
src: imgSrc,
|
|
277
252
|
alt: imgAlt,
|
|
278
253
|
className: classNames.combineClassNames(classMap.image, imageClassName),
|
|
279
|
-
|
|
280
|
-
...!isNextImage ? { loading: "lazy" } : {}
|
|
254
|
+
fill: true
|
|
281
255
|
}
|
|
282
256
|
) }) : /* @__PURE__ */ require$$2.jsx(
|
|
283
257
|
ImageRenderer,
|
|
@@ -286,8 +260,7 @@ const CardBase = ({
|
|
|
286
260
|
alt: imgAlt,
|
|
287
261
|
className: classNames.combineClassNames(classMap.image, imageClassName),
|
|
288
262
|
width: resolvedWidth ?? 640,
|
|
289
|
-
height: resolvedHeight ?? 360
|
|
290
|
-
...!isNextImage ? { loading: "lazy" } : {}
|
|
263
|
+
height: resolvedHeight ?? 360
|
|
291
264
|
}
|
|
292
265
|
)),
|
|
293
266
|
/* @__PURE__ */ require$$2.jsxs("div", { children: [
|
|
@@ -419,4 +392,4 @@ const Card = (props) => {
|
|
|
419
392
|
};
|
|
420
393
|
Card.displayName = "Card";
|
|
421
394
|
exports.Card = Card;
|
|
422
|
-
//# sourceMappingURL=Card-
|
|
395
|
+
//# sourceMappingURL=Card-BdzmlYGf.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Card-BdzmlYGf.cjs","sources":["../../src/components/Card/CardBase.tsx","../../src/components/Card/next/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} 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 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 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 \"data-testid\": testId = \"card\",\r\n \"aria-labelledby\": ariaLabelledBy,\r\n \"aria-label\": ariaLabel,\r\n classMap,\r\n SkeletonComponent,\r\n ImageComponent,\r\n}) => {\r\n const autoId = useId();\r\n const headerId = ariaLabelledBy || `${autoId}-header`;\r\n const descriptionId = `${autoId}-description`;\r\n const derivedAriaLabel = ariaLabel || title || description || \"Content card\";\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\r\n const imgAlt = 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 outline && classMap.outline,\r\n loading && classMap.loading,\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 outline,\r\n loading,\r\n className,\r\n ]\r\n );\r\n\r\n return (\r\n <div\r\n data-testid={testId}\r\n className={cardClassName}\r\n role=\"region\"\r\n aria-labelledby={title ? headerId : undefined}\r\n aria-label={!title ? derivedAriaLabel : undefined}\r\n aria-busy={loading || undefined}\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 <div\r\n className={combineClassNames(classMap.header, headerClassName)}\r\n id={headerId}\r\n >\r\n {renderHeader ? (\r\n renderHeader()\r\n ) : title ? (\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 <div\r\n className={combineClassNames(classMap.body, bodyClassName)}\r\n role=\"group\"\r\n aria-describedby={description ? descriptionId : undefined}\r\n >\r\n {renderContent ? (\r\n renderContent()\r\n ) : (\r\n <>\r\n {description && (\r\n <p id={descriptionId} className={classMap.description}>\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.label}\r\n size={button.size || size}\r\n href={button.href}\r\n loading={button.loading}\r\n ariaLabel={button.ariaLabel}\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.ariaLabel}\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","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport Image, { StaticImageData } from \"next/image\";\r\nimport { Button, IconButton, Skeleton } from \"../../../index.next\";\r\nimport styles from \"./Card.module.scss\";\r\nimport CardBase from \"../CardBase\";\r\nimport { CardImageComponentProps, CardProps } from \"../Card.types\";\r\n\r\nconst NextImageWrapper: React.FC<CardImageComponentProps> = ({\r\n src,\r\n alt,\r\n className,\r\n width,\r\n height,\r\n fill,\r\n}) => {\r\n if (typeof src === \"string\" && src.toLowerCase().endsWith(\".svg\")) {\r\n return (\r\n <img\r\n src={src}\r\n alt={alt}\r\n className={className}\r\n width={width}\r\n height={height}\r\n loading=\"lazy\"\r\n />\r\n );\r\n }\r\n\r\n return (\r\n <Image\r\n src={src as StaticImageData | string}\r\n alt={alt}\r\n className={className}\r\n {...(fill\r\n ? { fill, sizes: \"100vw\" }\r\n : { width: width ?? 640, height: height ?? 360 })}\r\n />\r\n );\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={styles}\r\n SkeletonComponent={Skeleton}\r\n ImageComponent={NextImageWrapper}\r\n />\r\n );\r\n};\r\nCard.displayName = \"Card\";\r\nexport default Card;\r\n"],"names":["getDefaultTheme","title","description","getDefaultRounding","getDefaultShadow","outline","getDefaultSize","loading","children","useId","jsx","useMemo","combineClassNames","capitalize","jsxs","Fragment","Image","Button","IconButton","Skeleton"],"mappings":"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"}
|
package/dist/next/Card.cjs.js
CHANGED
package/dist/next/Card.js
CHANGED
|
@@ -6,7 +6,7 @@ import { c as capitalize } from "./capitalize-C0TSQSPh.js";
|
|
|
6
6
|
import { a as getDefaultRounding, b as getDefaultShadow, c as getDefaultSize, d as getDefaultTheme } from "./boreal-style-config-BILmxkZG.js";
|
|
7
7
|
import { C as CloseIcon } from "./CloseIcon-C3eQm4EK.js";
|
|
8
8
|
/* empty css */
|
|
9
|
-
import { I as IconButton } from "./IconButton-
|
|
9
|
+
import { I as IconButton } from "./IconButton-Ct3YtlG9.js";
|
|
10
10
|
const ChipBase = ({
|
|
11
11
|
id,
|
|
12
12
|
message: message2,
|
|
@@ -215,4 +215,4 @@ Chip.displayName = "Chip";
|
|
|
215
215
|
export {
|
|
216
216
|
Chip as C
|
|
217
217
|
};
|
|
218
|
-
//# sourceMappingURL=Chip-
|
|
218
|
+
//# sourceMappingURL=Chip-BqMZEDW_.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chip-
|
|
1
|
+
{"version":3,"file":"Chip-BqMZEDW_.js","sources":["../../src/components/Chip/ChipBase.tsx","../../src/components/Chip/next/Chip.tsx"],"sourcesContent":["import { useCallback, useEffect, useState } from \"react\";\r\nimport { createPortal } from \"react-dom\";\r\nimport { ChipBaseProps } from \"./Chip.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 ChipBase: React.FC<ChipBaseProps> = ({\r\n id,\r\n message,\r\n visible,\r\n onClose,\r\n icon: Icon,\r\n size = getDefaultSize(),\r\n theme = getDefaultTheme(),\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n state = \"\",\r\n position = \"topCenter\",\r\n usePortal = true,\r\n className = \"\",\r\n autoClose = true,\r\n duration = 3000,\r\n closeIcon: CloseIcon,\r\n IconButtonComponent,\r\n classMap,\r\n stackIndex,\r\n \"data-testid\": testId = \"chip\",\r\n}) => {\r\n const [closing, setClosing] = useState(false);\r\n\r\n const handleClose = useCallback(() => {\r\n setClosing(true);\r\n setTimeout(() => onClose?.(), 300);\r\n }, [onClose]);\r\n\r\n useEffect(() => {\r\n if (autoClose && visible) {\r\n const timer = setTimeout(() => handleClose(), duration);\r\n return () => clearTimeout(timer);\r\n }\r\n }, [autoClose, duration, visible, handleClose]);\r\n\r\n useEffect(() => {\r\n if (visible) setClosing(false);\r\n }, [visible]);\r\n\r\n useEffect(() => {\r\n if (!visible) return;\r\n const onKey = (e: globalThis.KeyboardEvent) => {\r\n if (e.key === \"Escape\") handleClose();\r\n };\r\n window.addEventListener(\"keydown\", onKey);\r\n return () => window.removeEventListener(\"keydown\", onKey);\r\n }, [visible, handleClose]);\r\n\r\n if (!visible && !closing) return null;\r\n\r\n const chipClassName = combineClassNames(\r\n classMap.chip,\r\n classMap[theme],\r\n classMap[state],\r\n classMap[size],\r\n classMap[position],\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n closing && classMap.fadeout,\r\n usePortal && classMap.fixed,\r\n className\r\n );\r\n\r\n const portalEl =\r\n typeof window !== \"undefined\"\r\n ? document.getElementById(\"widget-portal\")\r\n : null;\r\n\r\n const chipElement = (\r\n <div\r\n key={id}\r\n className={chipClassName}\r\n role=\"alert\"\r\n aria-live=\"assertive\"\r\n aria-atomic=\"true\"\r\n data-testid={testId}\r\n style={stackIndex != null ? { zIndex: stackIndex } : undefined}\r\n >\r\n {Icon && (\r\n <span\r\n className={classMap.icon}\r\n aria-hidden=\"true\"\r\n data-testid={`${testId}-icon`}\r\n >\r\n <Icon className={classMap.inner_icon} />\r\n </span>\r\n )}\r\n <span className={classMap.message} id={`${testId}-message`}>\r\n {message}\r\n </span>\r\n\r\n <IconButtonComponent\r\n icon={CloseIcon}\r\n size={size}\r\n theme=\"clear\"\r\n ariaLabel=\"Close notification\"\r\n aria-controls={`${testId}-message`}\r\n className={classMap.close}\r\n onClick={handleClose}\r\n shadow=\"none\"\r\n data-testid={`${testId}-chip-close`}\r\n />\r\n </div>\r\n );\r\n\r\n if (usePortal && portalEl) {\r\n return createPortal(chipElement, portalEl);\r\n }\r\n\r\n return chipElement;\r\n};\r\n\r\nChipBase.displayName = \"ChipBase\";\r\nexport default ChipBase;\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport ChipBase from \"../ChipBase\";\r\nimport { CloseIcon } from \"@/Icons\";\r\nimport { IconButton } from \"@/index.next\";\r\nimport styles from \"./Chip.module.scss\";\r\nimport { ChipProps } from \"../Chip.types\";\r\n\r\nconst Chip: React.FC<ChipProps> = (props) => (\r\n <ChipBase\r\n {...props}\r\n classMap={styles}\r\n IconButtonComponent={IconButton}\r\n closeIcon={CloseIcon}\r\n />\r\n);\r\nChip.displayName = \"Chip\";\r\nexport default Chip;\r\n"],"names":["message","CloseIcon"],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ const capitalize = require("./capitalize-DoV-nOmN.cjs");
|
|
|
7
7
|
const borealStyleConfig = require("./boreal-style-config-Rr5d5Qts.cjs");
|
|
8
8
|
const CloseIcon = require("./CloseIcon-7hy4qJ9o.cjs");
|
|
9
9
|
;/* empty css */
|
|
10
|
-
const IconButton = require("./IconButton-
|
|
10
|
+
const IconButton = require("./IconButton-aF7cTy19.cjs");
|
|
11
11
|
const ChipBase = ({
|
|
12
12
|
id,
|
|
13
13
|
message: message2,
|
|
@@ -214,4 +214,4 @@ const Chip = (props) => /* @__PURE__ */ require$$2.jsx(
|
|
|
214
214
|
);
|
|
215
215
|
Chip.displayName = "Chip";
|
|
216
216
|
exports.Chip = Chip;
|
|
217
|
-
//# sourceMappingURL=Chip-
|
|
217
|
+
//# sourceMappingURL=Chip-CqvlZI-K.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chip-
|
|
1
|
+
{"version":3,"file":"Chip-CqvlZI-K.cjs","sources":["../../src/components/Chip/ChipBase.tsx","../../src/components/Chip/next/Chip.tsx"],"sourcesContent":["import { useCallback, useEffect, useState } from \"react\";\r\nimport { createPortal } from \"react-dom\";\r\nimport { ChipBaseProps } from \"./Chip.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 ChipBase: React.FC<ChipBaseProps> = ({\r\n id,\r\n message,\r\n visible,\r\n onClose,\r\n icon: Icon,\r\n size = getDefaultSize(),\r\n theme = getDefaultTheme(),\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n state = \"\",\r\n position = \"topCenter\",\r\n usePortal = true,\r\n className = \"\",\r\n autoClose = true,\r\n duration = 3000,\r\n closeIcon: CloseIcon,\r\n IconButtonComponent,\r\n classMap,\r\n stackIndex,\r\n \"data-testid\": testId = \"chip\",\r\n}) => {\r\n const [closing, setClosing] = useState(false);\r\n\r\n const handleClose = useCallback(() => {\r\n setClosing(true);\r\n setTimeout(() => onClose?.(), 300);\r\n }, [onClose]);\r\n\r\n useEffect(() => {\r\n if (autoClose && visible) {\r\n const timer = setTimeout(() => handleClose(), duration);\r\n return () => clearTimeout(timer);\r\n }\r\n }, [autoClose, duration, visible, handleClose]);\r\n\r\n useEffect(() => {\r\n if (visible) setClosing(false);\r\n }, [visible]);\r\n\r\n useEffect(() => {\r\n if (!visible) return;\r\n const onKey = (e: globalThis.KeyboardEvent) => {\r\n if (e.key === \"Escape\") handleClose();\r\n };\r\n window.addEventListener(\"keydown\", onKey);\r\n return () => window.removeEventListener(\"keydown\", onKey);\r\n }, [visible, handleClose]);\r\n\r\n if (!visible && !closing) return null;\r\n\r\n const chipClassName = combineClassNames(\r\n classMap.chip,\r\n classMap[theme],\r\n classMap[state],\r\n classMap[size],\r\n classMap[position],\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n closing && classMap.fadeout,\r\n usePortal && classMap.fixed,\r\n className\r\n );\r\n\r\n const portalEl =\r\n typeof window !== \"undefined\"\r\n ? document.getElementById(\"widget-portal\")\r\n : null;\r\n\r\n const chipElement = (\r\n <div\r\n key={id}\r\n className={chipClassName}\r\n role=\"alert\"\r\n aria-live=\"assertive\"\r\n aria-atomic=\"true\"\r\n data-testid={testId}\r\n style={stackIndex != null ? { zIndex: stackIndex } : undefined}\r\n >\r\n {Icon && (\r\n <span\r\n className={classMap.icon}\r\n aria-hidden=\"true\"\r\n data-testid={`${testId}-icon`}\r\n >\r\n <Icon className={classMap.inner_icon} />\r\n </span>\r\n )}\r\n <span className={classMap.message} id={`${testId}-message`}>\r\n {message}\r\n </span>\r\n\r\n <IconButtonComponent\r\n icon={CloseIcon}\r\n size={size}\r\n theme=\"clear\"\r\n ariaLabel=\"Close notification\"\r\n aria-controls={`${testId}-message`}\r\n className={classMap.close}\r\n onClick={handleClose}\r\n shadow=\"none\"\r\n data-testid={`${testId}-chip-close`}\r\n />\r\n </div>\r\n );\r\n\r\n if (usePortal && portalEl) {\r\n return createPortal(chipElement, portalEl);\r\n }\r\n\r\n return chipElement;\r\n};\r\n\r\nChipBase.displayName = \"ChipBase\";\r\nexport default ChipBase;\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport ChipBase from \"../ChipBase\";\r\nimport { CloseIcon } from \"@/Icons\";\r\nimport { IconButton } from \"@/index.next\";\r\nimport styles from \"./Chip.module.scss\";\r\nimport { ChipProps } from \"../Chip.types\";\r\n\r\nconst Chip: React.FC<ChipProps> = (props) => (\r\n <ChipBase\r\n {...props}\r\n classMap={styles}\r\n IconButtonComponent={IconButton}\r\n closeIcon={CloseIcon}\r\n />\r\n);\r\nChip.displayName = \"Chip\";\r\nexport default Chip;\r\n"],"names":["message","getDefaultSize","getDefaultTheme","getDefaultRounding","getDefaultShadow","CloseIcon","useState","useCallback","useEffect","combineClassNames","capitalize","jsxs","jsx","createPortal","IconButton"],"mappings":"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"}
|
package/dist/next/Chip.cjs.js
CHANGED
package/dist/next/Chip.js
CHANGED
|
@@ -6,7 +6,7 @@ const classNames = require("./classNames-BcWMx052.cjs");
|
|
|
6
6
|
const capitalize = require("./capitalize-DoV-nOmN.cjs");
|
|
7
7
|
const borealStyleConfig = require("./boreal-style-config-Rr5d5Qts.cjs");
|
|
8
8
|
;/* empty css */
|
|
9
|
-
const TextInput = require("./TextInput-
|
|
9
|
+
const TextInput = require("./TextInput-C3cLfd6E.cjs");
|
|
10
10
|
const CommandPaletteBase = ({
|
|
11
11
|
commands,
|
|
12
12
|
placeholder = "Search...",
|
|
@@ -312,4 +312,4 @@ const CommandPalette = (props) => /* @__PURE__ */ require$$2.jsx(
|
|
|
312
312
|
);
|
|
313
313
|
CommandPalette.displayName = "CommandPalette";
|
|
314
314
|
exports.CommandPalette = CommandPalette;
|
|
315
|
-
//# sourceMappingURL=CommandPalette-
|
|
315
|
+
//# sourceMappingURL=CommandPalette-C0NN-NWE.cjs.map
|