boreal-ui 0.0.78 → 0.0.80
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-B7hp9_u1.cjs → Breadcrumbs-B-I-UmIg.cjs} +1 -2
- package/dist/core/{Breadcrumbs-B7hp9_u1.cjs.map → Breadcrumbs-B-I-UmIg.cjs.map} +1 -1
- package/dist/core/{Breadcrumbs-kbOyaea6.js → Breadcrumbs-BwDAukNi.js} +1 -2
- package/dist/core/{Breadcrumbs-kbOyaea6.js.map → Breadcrumbs-BwDAukNi.js.map} +1 -1
- package/dist/core/Breadcrumbs.cjs.js +1 -1
- package/dist/core/Breadcrumbs.js +1 -1
- package/dist/core/{Card-C3kfPs8j.cjs → Card-B2gCUSuQ.cjs} +1 -2
- package/dist/core/{Card-C3kfPs8j.cjs.map → Card-B2gCUSuQ.cjs.map} +1 -1
- package/dist/core/{Card-CZY1qzwZ.js → Card-CnvOGnWI.js} +1 -2
- package/dist/core/{Card-CZY1qzwZ.js.map → Card-CnvOGnWI.js.map} +1 -1
- package/dist/core/Card.cjs.js +1 -1
- package/dist/core/Card.js +1 -1
- package/dist/core/{CommandPalette-BtpQ9cio.cjs → CommandPalette-BKd-BCUk.cjs} +2 -2
- package/dist/core/{CommandPalette-BtpQ9cio.cjs.map → CommandPalette-BKd-BCUk.cjs.map} +1 -1
- package/dist/core/{CommandPalette-0uVG4iR2.js → CommandPalette-C5XB2s4L.js} +2 -2
- package/dist/core/{CommandPalette-0uVG4iR2.js.map → CommandPalette-C5XB2s4L.js.map} +1 -1
- package/dist/core/CommandPalette.cjs.js +1 -1
- package/dist/core/CommandPalette.js +1 -1
- package/dist/core/{Dropdown-B7-_OH9p.cjs → Dropdown-DflOD92W.cjs} +1 -2
- package/dist/core/{Dropdown-B7-_OH9p.cjs.map → Dropdown-DflOD92W.cjs.map} +1 -1
- package/dist/core/{Dropdown-BEPGhf-i.js → Dropdown-fr7AR3nt.js} +1 -2
- package/dist/core/{Dropdown-BEPGhf-i.js.map → Dropdown-fr7AR3nt.js.map} +1 -1
- package/dist/core/Dropdown.cjs.js +1 -1
- package/dist/core/Dropdown.js +1 -1
- package/dist/core/{EmptyState-Du2xqi6G.cjs → EmptyState-BSVIrZHm.cjs} +1 -2
- package/dist/core/{EmptyState-Du2xqi6G.cjs.map → EmptyState-BSVIrZHm.cjs.map} +1 -1
- package/dist/core/{EmptyState-CM7nlKER.js → EmptyState-ClFhpjyo.js} +1 -2
- package/dist/core/{EmptyState-CM7nlKER.js.map → EmptyState-ClFhpjyo.js.map} +1 -1
- package/dist/core/EmptyState.cjs.js +1 -1
- package/dist/core/EmptyState.js +1 -1
- package/dist/core/{Footer-60sTURxB.cjs → Footer-CDcKfT68.cjs} +37 -37
- package/dist/core/Footer-CDcKfT68.cjs.map +1 -0
- package/dist/core/{Footer-Q_60pe6o.js → Footer-DaEqi5su.js} +38 -38
- package/dist/core/Footer-DaEqi5su.js.map +1 -0
- package/dist/core/Footer.cjs.js +1 -1
- package/dist/core/Footer.js +1 -1
- package/dist/core/{NotificationCenter-DA-WGPP9.js → NotificationCenter-B8e8mMb_.js} +1 -2
- package/dist/core/{NotificationCenter-DA-WGPP9.js.map → NotificationCenter-B8e8mMb_.js.map} +1 -1
- package/dist/core/{NotificationCenter-CsKJTZhk.cjs → NotificationCenter-Dg_F-nLl.cjs} +1 -2
- package/dist/core/{NotificationCenter-CsKJTZhk.cjs.map → NotificationCenter-Dg_F-nLl.cjs.map} +1 -1
- package/dist/core/NotificationCenter.cjs.js +1 -1
- package/dist/core/NotificationCenter.js +1 -1
- package/dist/core/{Pager-B4hyIUdo.js → Pager-BH8hdkMS.js} +1 -2
- package/dist/core/{Pager-B4hyIUdo.js.map → Pager-BH8hdkMS.js.map} +1 -1
- package/dist/core/{Pager-wl7_umU4.cjs → Pager-BXAAjmIk.cjs} +1 -2
- package/dist/core/{Pager-wl7_umU4.cjs.map → Pager-BXAAjmIk.cjs.map} +1 -1
- package/dist/core/Pager.cjs.js +1 -1
- package/dist/core/Pager.js +1 -1
- package/dist/core/{Stepper-CQRJID19.cjs → Stepper-BImUKM9h.cjs} +1 -2
- package/dist/core/{Stepper-CQRJID19.cjs.map → Stepper-BImUKM9h.cjs.map} +1 -1
- package/dist/core/{Stepper-CLfy0_gZ.js → Stepper-DRCnDvvv.js} +1 -2
- package/dist/core/{Stepper-CLfy0_gZ.js.map → Stepper-DRCnDvvv.js.map} +1 -1
- package/dist/core/Stepper.cjs.js +1 -1
- package/dist/core/Stepper.js +1 -1
- package/dist/core/{TagInput-YieWARAt.js → TagInput-BO0Br1nf.js} +2 -2
- package/dist/core/{TagInput-YieWARAt.js.map → TagInput-BO0Br1nf.js.map} +1 -1
- package/dist/core/{TagInput-pWRdhaP3.cjs → TagInput-CpJ--Wzp.cjs} +2 -2
- package/dist/core/{TagInput-pWRdhaP3.cjs.map → TagInput-CpJ--Wzp.cjs.map} +1 -1
- package/dist/core/TagInput.cjs.js +1 -1
- package/dist/core/TagInput.js +1 -1
- package/dist/core/{TextInput-Bc2YpcvM.js → TextInput-CXyzklAm.js} +1 -2
- package/dist/core/{TextInput-Bc2YpcvM.js.map → TextInput-CXyzklAm.js.map} +1 -1
- package/dist/core/{TextInput-DbAsQxjr.cjs → TextInput-xBrLtn_h.cjs} +1 -2
- package/dist/core/{TextInput-DbAsQxjr.cjs.map → TextInput-xBrLtn_h.cjs.map} +1 -1
- package/dist/core/TextInput.cjs.js +1 -1
- package/dist/core/TextInput.js +1 -1
- package/dist/core/boreal-ui.css +1137 -1137
- package/dist/core/index.cjs.js +11 -12
- package/dist/core/index.cjs.js.map +1 -1
- package/dist/core/index.js +11 -12
- package/dist/core/index.js.map +1 -1
- package/dist/next/{Breadcrumbs-eetAtAHU.js → Breadcrumbs-BEDmdhgu.js} +2 -3
- package/dist/next/{Breadcrumbs-eetAtAHU.js.map → Breadcrumbs-BEDmdhgu.js.map} +1 -1
- package/dist/next/{Breadcrumbs-33eZmvpJ.cjs → Breadcrumbs-CMOeEih6.cjs} +2 -3
- package/dist/next/{Breadcrumbs-33eZmvpJ.cjs.map → Breadcrumbs-CMOeEih6.cjs.map} +1 -1
- package/dist/next/Breadcrumbs.cjs.js +1 -1
- package/dist/next/Breadcrumbs.js +1 -1
- package/dist/next/{Card-CO--D_GK.js → Card-C4l2NTBd.js} +2 -3
- package/dist/next/{Card-CO--D_GK.js.map → Card-C4l2NTBd.js.map} +1 -1
- package/dist/next/{Card-o8DszZPj.cjs → Card-DcQ0V83P.cjs} +2 -3
- package/dist/next/{Card-o8DszZPj.cjs.map → Card-DcQ0V83P.cjs.map} +1 -1
- package/dist/next/Card.cjs.js +1 -1
- package/dist/next/Card.js +1 -1
- package/dist/next/CheckBox.cjs.js +1 -1
- package/dist/next/CheckBox.js +1 -1
- package/dist/next/{Checkbox-KIXViPTB.js → Checkbox-D6Msnkyl.js} +75 -75
- package/dist/next/{Checkbox-KIXViPTB.js.map → Checkbox-D6Msnkyl.js.map} +1 -1
- package/dist/next/{Checkbox-UqOL3aqk.cjs → Checkbox-IK6dY7ED.cjs} +74 -74
- package/dist/next/{Checkbox-UqOL3aqk.cjs.map → Checkbox-IK6dY7ED.cjs.map} +1 -1
- package/dist/next/{Chip-D-QH1huh.js → Chip-BweeZwb7.js} +84 -85
- package/dist/next/{Chip-D-QH1huh.js.map → Chip-BweeZwb7.js.map} +1 -1
- package/dist/next/{Chip-BQv3NoJL.cjs → Chip-DNyF7UUP.cjs} +85 -86
- package/dist/next/{Chip-BQv3NoJL.cjs.map → Chip-DNyF7UUP.cjs.map} +1 -1
- package/dist/next/Chip.cjs.js +1 -1
- package/dist/next/Chip.js +1 -1
- package/dist/next/{CircularProgress-BG83Q-uO.cjs → CircularProgress-0bh-uYuv.cjs} +58 -58
- package/dist/next/{CircularProgress-BG83Q-uO.cjs.map → CircularProgress-0bh-uYuv.cjs.map} +1 -1
- package/dist/next/{CircularProgress-Bfanw-2S.js → CircularProgress-BHOMzVmz.js} +59 -59
- package/dist/next/{CircularProgress-Bfanw-2S.js.map → CircularProgress-BHOMzVmz.js.map} +1 -1
- package/dist/next/CircularProgress.cjs.js +1 -1
- package/dist/next/CircularProgress.js +1 -1
- package/dist/next/{ColorPicker-BJfyM0Ay.js → ColorPicker-BhDo-h8k.js} +50 -50
- package/dist/next/{ColorPicker-BJfyM0Ay.js.map → ColorPicker-BhDo-h8k.js.map} +1 -1
- package/dist/next/{ColorPicker-DmubVH4p.cjs → ColorPicker-DlyqseYs.cjs} +49 -49
- package/dist/next/{ColorPicker-DmubVH4p.cjs.map → ColorPicker-DlyqseYs.cjs.map} +1 -1
- package/dist/next/ColorPicker.cjs.js +1 -1
- package/dist/next/ColorPicker.js +1 -1
- package/dist/next/{CommandPalette-CNaU5jTY.js → CommandPalette-BAgsEdVA.js} +67 -68
- package/dist/next/{CommandPalette-CNaU5jTY.js.map → CommandPalette-BAgsEdVA.js.map} +1 -1
- package/dist/next/{CommandPalette-_Lpb0UOI.cjs → CommandPalette-CNs6UpbZ.cjs} +68 -69
- package/dist/next/{CommandPalette-_Lpb0UOI.cjs.map → CommandPalette-CNs6UpbZ.cjs.map} +1 -1
- package/dist/next/CommandPalette.cjs.js +1 -1
- package/dist/next/CommandPalette.js +1 -1
- package/dist/next/{DateTimePicker-WVVLqcd9.js → DateTimePicker-D2thRuf1.js} +65 -65
- package/dist/next/{DateTimePicker-WVVLqcd9.js.map → DateTimePicker-D2thRuf1.js.map} +1 -1
- package/dist/next/{DateTimePicker-CU-b9irX.cjs → DateTimePicker-Dp0y3k4y.cjs} +65 -65
- package/dist/next/{DateTimePicker-CU-b9irX.cjs.map → DateTimePicker-Dp0y3k4y.cjs.map} +1 -1
- package/dist/next/DateTimePicker.cjs.js +1 -1
- package/dist/next/DateTimePicker.js +1 -1
- package/dist/next/{Divider-BXSDTRTU.js → Divider-C41EKGIw.js} +30 -30
- package/dist/next/{Divider-BXSDTRTU.js.map → Divider-C41EKGIw.js.map} +1 -1
- package/dist/next/{Divider-BGxUapmt.cjs → Divider-CVOkAhn6.cjs} +29 -29
- package/dist/next/{Divider-BGxUapmt.cjs.map → Divider-CVOkAhn6.cjs.map} +1 -1
- package/dist/next/Divider.cjs.js +1 -1
- package/dist/next/Divider.js +1 -1
- package/dist/next/{Dropdown-CUYItZDk.cjs → Dropdown-BYmta_HY.cjs} +42 -43
- package/dist/next/{Dropdown-CUYItZDk.cjs.map → Dropdown-BYmta_HY.cjs.map} +1 -1
- package/dist/next/{Dropdown-B7vrHg0z.js → Dropdown-DavPqfaS.js} +41 -42
- package/dist/next/{Dropdown-B7vrHg0z.js.map → Dropdown-DavPqfaS.js.map} +1 -1
- package/dist/next/Dropdown.cjs.js +1 -1
- package/dist/next/Dropdown.js +1 -1
- package/dist/next/{EmptyState-MT9_qwrB.js → EmptyState-CiTGvH-L.js} +72 -73
- package/dist/next/{EmptyState-MT9_qwrB.js.map → EmptyState-CiTGvH-L.js.map} +1 -1
- package/dist/next/{EmptyState-sh7Vn6eC.cjs → EmptyState-kAjC_DXY.cjs} +73 -74
- package/dist/next/{EmptyState-sh7Vn6eC.cjs.map → EmptyState-kAjC_DXY.cjs.map} +1 -1
- package/dist/next/EmptyState.cjs.js +1 -1
- package/dist/next/EmptyState.js +1 -1
- package/dist/next/{FileUpload-Bvj5JEBv.js → FileUpload-HiZuJjoA.js} +82 -83
- package/dist/next/{FileUpload-Bvj5JEBv.js.map → FileUpload-HiZuJjoA.js.map} +1 -1
- package/dist/next/{FileUpload-CD_i5Md2.cjs → FileUpload-qzSlXJzW.cjs} +82 -83
- package/dist/next/{FileUpload-CD_i5Md2.cjs.map → FileUpload-qzSlXJzW.cjs.map} +1 -1
- package/dist/next/FileUpload.cjs.js +1 -1
- package/dist/next/FileUpload.js +1 -1
- package/dist/next/{Footer-Bdu_9H3p.js → Footer-BVic2clD.js} +103 -103
- package/dist/next/Footer-BVic2clD.js.map +1 -0
- package/dist/next/{Footer-DJjzgwpc.cjs → Footer-lEKbmF3y.cjs} +103 -103
- package/dist/next/Footer-lEKbmF3y.cjs.map +1 -0
- package/dist/next/Footer.cjs.js +1 -1
- package/dist/next/Footer.js +1 -1
- package/dist/next/{MessagePopup-DLodDCIa.js → MessagePopup-BAvnVw84.js} +2 -3
- package/dist/next/{MessagePopup-DLodDCIa.js.map → MessagePopup-BAvnVw84.js.map} +1 -1
- package/dist/next/{MessagePopup-CizqwWmH.cjs → MessagePopup-CixIzgoc.cjs} +2 -3
- package/dist/next/{MessagePopup-CizqwWmH.cjs.map → MessagePopup-CixIzgoc.cjs.map} +1 -1
- package/dist/next/MessagePopup.cjs.js +1 -1
- package/dist/next/MessagePopup.js +1 -1
- package/dist/next/{Modal-BajWiIo7.js → Modal-5Reb9Rx-.js} +2 -3
- package/dist/next/{Modal-BajWiIo7.js.map → Modal-5Reb9Rx-.js.map} +1 -1
- package/dist/next/{Modal-j59Cj0t1.cjs → Modal-DfVyL8yk.cjs} +2 -3
- package/dist/next/{Modal-j59Cj0t1.cjs.map → Modal-DfVyL8yk.cjs.map} +1 -1
- package/dist/next/Modal.cjs.js +1 -1
- package/dist/next/Modal.js +1 -1
- package/dist/next/{NotificationCenter-obd1jF2n.cjs → NotificationCenter-BcEB_4HS.cjs} +2 -3
- package/dist/next/{NotificationCenter-obd1jF2n.cjs.map → NotificationCenter-BcEB_4HS.cjs.map} +1 -1
- package/dist/next/{NotificationCenter-BDd4Zr8Y.js → NotificationCenter-DvoC0SI9.js} +2 -3
- package/dist/next/{NotificationCenter-BDd4Zr8Y.js.map → NotificationCenter-DvoC0SI9.js.map} +1 -1
- package/dist/next/NotificationCenter.cjs.js +1 -1
- package/dist/next/NotificationCenter.js +1 -1
- package/dist/next/{Pager-8dIVqCGz.cjs → Pager-BZLZA8KD.cjs} +2 -3
- package/dist/next/{Pager-8dIVqCGz.cjs.map → Pager-BZLZA8KD.cjs.map} +1 -1
- package/dist/next/{Pager-C7n5x44P.js → Pager-D11plHRn.js} +2 -3
- package/dist/next/{Pager-C7n5x44P.js.map → Pager-D11plHRn.js.map} +1 -1
- package/dist/next/Pager.cjs.js +1 -1
- package/dist/next/Pager.js +1 -1
- package/dist/next/{Stepper-em6Gl32O.js → Stepper-B2X72Iir.js} +2 -3
- package/dist/next/{Stepper-em6Gl32O.js.map → Stepper-B2X72Iir.js.map} +1 -1
- package/dist/next/{Stepper-CpgJBKz7.cjs → Stepper-fE7prDWu.cjs} +2 -3
- package/dist/next/{Stepper-CpgJBKz7.cjs.map → Stepper-fE7prDWu.cjs.map} +1 -1
- package/dist/next/Stepper.cjs.js +1 -1
- package/dist/next/Stepper.js +1 -1
- package/dist/next/{TagInput-DVmBv7Mn.cjs → TagInput-BycAVBEu.cjs} +3 -4
- package/dist/next/{TagInput-DVmBv7Mn.cjs.map → TagInput-BycAVBEu.cjs.map} +1 -1
- package/dist/next/{TagInput-8nVGDluu.js → TagInput-CabR-drk.js} +3 -4
- package/dist/next/{TagInput-8nVGDluu.js.map → TagInput-CabR-drk.js.map} +1 -1
- package/dist/next/TagInput.cjs.js +1 -1
- package/dist/next/TagInput.js +1 -1
- package/dist/next/{TextInput-CKM34-yu.js → TextInput-B4s9TMoa.js} +2 -3
- package/dist/next/{TextInput-CKM34-yu.js.map → TextInput-B4s9TMoa.js.map} +1 -1
- package/dist/next/{TextInput-BRl37zMW.cjs → TextInput-SqTFFVZ8.cjs} +2 -3
- package/dist/next/{TextInput-BRl37zMW.cjs.map → TextInput-SqTFFVZ8.cjs.map} +1 -1
- package/dist/next/TextInput.cjs.js +1 -1
- package/dist/next/TextInput.js +1 -1
- package/dist/next/globals.cjs.js +2 -0
- package/dist/next/globals.cjs.js.map +1 -0
- package/dist/next/globals.js +2 -0
- package/dist/next/globals.js.map +1 -0
- package/dist/next/index.cjs.js +22 -22
- package/dist/next/index.js +22 -22
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/types/components/Card/core/Card.d.ts.map +1 -1
- package/dist/types/components/Card/next/Card.d.ts.map +1 -1
- package/dist/types/components/FileUpload/next/FileUpload.d.ts.map +1 -1
- package/dist/types/components/Footer/next/Footer.d.ts.map +1 -1
- package/dist/types/components/MessagePopup/next/MessagePopup.d.ts.map +1 -1
- package/dist/types/components/NotificationCenter/core/NotificationCenter.d.ts.map +1 -1
- package/dist/types/components/NotificationCenter/next/NotificationCenter.d.ts.map +1 -1
- package/dist/types/components/Pager/core/Pager.d.ts.map +1 -1
- package/dist/types/components/Pager/next/Pager.d.ts.map +1 -1
- package/dist/types/components/TagInput/next/TagInput.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/core/Footer-60sTURxB.cjs.map +0 -1
- package/dist/core/Footer-Q_60pe6o.js.map +0 -1
- package/dist/next/Footer-Bdu_9H3p.js.map +0 -1
- package/dist/next/Footer-DJjzgwpc.cjs.map +0 -1
|
@@ -5,7 +5,6 @@ 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
|
-
;/* empty css */
|
|
9
8
|
const Button = require("./Button-nxtJFOWD.cjs");
|
|
10
9
|
const ELLIPSIS_LABEL = "…";
|
|
11
10
|
const BreadcrumbsBase = ({
|
|
@@ -207,4 +206,4 @@ const Breadcrumbs = (props) => {
|
|
|
207
206
|
};
|
|
208
207
|
Breadcrumbs.displayName = "Breadcrumbs";
|
|
209
208
|
exports.Breadcrumbs = Breadcrumbs;
|
|
210
|
-
//# sourceMappingURL=Breadcrumbs-
|
|
209
|
+
//# sourceMappingURL=Breadcrumbs-B-I-UmIg.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Breadcrumbs-B7hp9_u1.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\nconst 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 \"../../../index.core\";\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-B-I-UmIg.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\nconst 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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"}
|
|
@@ -4,7 +4,6 @@ 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
|
-
/* empty css */
|
|
8
7
|
import { B as Button } from "./Button-CneoIlVV.js";
|
|
9
8
|
const ELLIPSIS_LABEL = "…";
|
|
10
9
|
const BreadcrumbsBase = ({
|
|
@@ -208,4 +207,4 @@ Breadcrumbs.displayName = "Breadcrumbs";
|
|
|
208
207
|
export {
|
|
209
208
|
Breadcrumbs as B
|
|
210
209
|
};
|
|
211
|
-
//# sourceMappingURL=Breadcrumbs-
|
|
210
|
+
//# sourceMappingURL=Breadcrumbs-BwDAukNi.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Breadcrumbs-kbOyaea6.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\nconst 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 \"../../../index.core\";\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-BwDAukNi.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\nconst 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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"}
|
package/dist/core/Breadcrumbs.js
CHANGED
|
@@ -4,7 +4,6 @@ const React = require("react");
|
|
|
4
4
|
const classNames = require("./classNames-BcWMx052.cjs");
|
|
5
5
|
const capitalize = require("./capitalize-DoV-nOmN.cjs");
|
|
6
6
|
const borealStyleConfig = require("./boreal-style-config-C1UIwOFN.cjs");
|
|
7
|
-
;/* empty css */
|
|
8
7
|
const Button = require("./Button-nxtJFOWD.cjs");
|
|
9
8
|
const IconButton = require("./IconButton-C_ktew-6.cjs");
|
|
10
9
|
const Skeleton = require("./Skeleton-BXeQBgX2.cjs");
|
|
@@ -346,4 +345,4 @@ const Card = (props) => {
|
|
|
346
345
|
};
|
|
347
346
|
Card.displayName = "Card";
|
|
348
347
|
exports.Card = Card;
|
|
349
|
-
//# sourceMappingURL=Card-
|
|
348
|
+
//# sourceMappingURL=Card-B2gCUSuQ.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Card-C3kfPs8j.cjs","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\r\n const hasTitle = Boolean(title);\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 <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 <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, IconButton, Skeleton } from \"../../../index.core\";\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":["getDefaultTheme","getDefaultBorder","getDefaultRounding","getDefaultShadow","getDefaultSize","useId","jsx","useMemo","combineClassNames","capitalize","jsxs","Fragment","Button","IconButton","Skeleton"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Card-B2gCUSuQ.cjs","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\r\n const hasTitle = Boolean(title);\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 <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 <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":["getDefaultTheme","getDefaultBorder","getDefaultRounding","getDefaultShadow","getDefaultSize","useId","jsx","useMemo","combineClassNames","capitalize","jsxs","Fragment","Button","IconButton","Skeleton"],"mappings":"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"}
|
|
@@ -3,7 +3,6 @@ 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
|
-
/* empty css */
|
|
7
6
|
import { B as Button } from "./Button-CneoIlVV.js";
|
|
8
7
|
import { I as IconButton } from "./IconButton-By8zuXrs.js";
|
|
9
8
|
import { S as SkeletonLoader } from "./Skeleton-C-L3OgVt.js";
|
|
@@ -347,4 +346,4 @@ Card.displayName = "Card";
|
|
|
347
346
|
export {
|
|
348
347
|
Card as C
|
|
349
348
|
};
|
|
350
|
-
//# sourceMappingURL=Card-
|
|
349
|
+
//# sourceMappingURL=Card-CnvOGnWI.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Card-CZY1qzwZ.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\r\n const hasTitle = Boolean(title);\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 <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 <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, IconButton, Skeleton } from \"../../../index.core\";\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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"}
|
|
1
|
+
{"version":3,"file":"Card-CnvOGnWI.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\r\n const hasTitle = Boolean(title);\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 <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 <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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"}
|
package/dist/core/Card.cjs.js
CHANGED
package/dist/core/Card.js
CHANGED
|
@@ -5,7 +5,7 @@ const ReactDOM = require("react-dom");
|
|
|
5
5
|
const classNames = require("./classNames-BcWMx052.cjs");
|
|
6
6
|
const capitalize = require("./capitalize-DoV-nOmN.cjs");
|
|
7
7
|
const borealStyleConfig = require("./boreal-style-config-C1UIwOFN.cjs");
|
|
8
|
-
const TextInput = require("./TextInput-
|
|
8
|
+
const TextInput = require("./TextInput-xBrLtn_h.cjs");
|
|
9
9
|
const CommandPaletteBase = ({
|
|
10
10
|
commands,
|
|
11
11
|
placeholder = "Search...",
|
|
@@ -443,4 +443,4 @@ const CommandPalette = (props) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
|
443
443
|
);
|
|
444
444
|
CommandPalette.displayName = "CommandPalette";
|
|
445
445
|
exports.CommandPalette = CommandPalette;
|
|
446
|
-
//# sourceMappingURL=CommandPalette-
|
|
446
|
+
//# sourceMappingURL=CommandPalette-BKd-BCUk.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CommandPalette-BtpQ9cio.cjs","sources":["../../src/components/CommandPalette/CommandPaletteBase.tsx","../../src/components/CommandPalette/core/CommandPalette.tsx"],"sourcesContent":["import React, {\r\n useEffect,\r\n useId,\r\n useRef,\r\n useState,\r\n useCallback,\r\n KeyboardEvent,\r\n} from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport type {\r\n CommandPaletteBaseProps,\r\n CommandItem,\r\n} from \"./CommandPalette.types\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultTheme,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nconst CommandPaletteBase: React.FC<CommandPaletteBaseProps> = ({\r\n commands,\r\n placeholder = \"Search...\",\r\n isOpen,\r\n onClose,\r\n asyncSearch,\r\n debounceMs = 300,\r\n theme = getDefaultTheme(),\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n state = \"\",\r\n classMap,\r\n TextInputComponent,\r\n inputAriaLabel,\r\n inputAriaLabelledBy,\r\n inputAriaDescribedBy,\r\n inputLabel,\r\n inputId,\r\n listboxId,\r\n paletteId,\r\n listAriaLabel = \"Command suggestions\",\r\n emptyMessage = \"No matching results\",\r\n resultsAnnouncement = \"results available\",\r\n modal = true,\r\n trapFocus = false,\r\n restoreFocusOnClose = true,\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-activedescendant\": ariaActiveDescendant,\r\n \"data-testid\": testId = \"command-palette\",\r\n className,\r\n ...rest\r\n}) => {\r\n const reactId = useId();\r\n const resolvedPaletteId = paletteId ?? `${testId}-${reactId}-dialog`;\r\n const resolvedInputId = inputId ?? `${testId}-${reactId}-input`;\r\n const resolvedListboxId = listboxId ?? `${testId}-${reactId}-listbox`;\r\n const resolvedLabelId = `${resolvedInputId}-label`;\r\n const resolvedStatusId = `${resolvedPaletteId}-status`;\r\n\r\n const [query, setQuery] = useState(\"\");\r\n const [activeIndex, setActiveIndex] = useState<number>(-1);\r\n const inputRef = useRef<HTMLInputElement>(null);\r\n const containerRef = useRef<HTMLDivElement>(null);\r\n const [mounted, setMounted] = useState(false);\r\n const [portalElement, setPortalElement] = useState<HTMLElement | null>(null);\r\n const [asyncResults, setAsyncResults] = useState<CommandItem[]>([]);\r\n const [isLoading, setIsLoading] = useState(false);\r\n const debounceRef = useRef<ReturnType<typeof setTimeout> | null>(null);\r\n const prevFocusRef = useRef<HTMLElement | null>(null);\r\n\r\n const filtered = asyncSearch\r\n ? asyncResults\r\n : commands.filter((cmd) => {\r\n const q = query.toLowerCase();\r\n if (!q) return true;\r\n\r\n const labelMatch = cmd.label.toLowerCase().includes(q);\r\n const keywordMatch = cmd.keywords?.some((keyword) =>\r\n keyword.toLowerCase().includes(q),\r\n );\r\n\r\n return labelMatch || Boolean(keywordMatch);\r\n });\r\n\r\n useEffect(() => {\r\n if (filtered.length === 0) {\r\n setActiveIndex(-1);\r\n } else if (\r\n activeIndex < 0 ||\r\n activeIndex >= filtered.length ||\r\n filtered[activeIndex]?.disabled\r\n ) {\r\n const firstEnabledIndex = filtered.findIndex((item) => !item.disabled);\r\n setActiveIndex(firstEnabledIndex);\r\n }\r\n }, [filtered, activeIndex]);\r\n\r\n useEffect(() => {\r\n if (!asyncSearch) return;\r\n\r\n if (debounceRef.current) clearTimeout(debounceRef.current);\r\n\r\n const q = query.trim();\r\n if (!q) {\r\n setAsyncResults([]);\r\n setIsLoading(false);\r\n return;\r\n }\r\n\r\n setIsLoading(true);\r\n debounceRef.current = setTimeout(() => {\r\n asyncSearch(q)\r\n .then((results) => {\r\n setAsyncResults(results);\r\n setIsLoading(false);\r\n })\r\n .catch(() => {\r\n setAsyncResults([]);\r\n setIsLoading(false);\r\n });\r\n }, debounceMs);\r\n\r\n return () => {\r\n if (debounceRef.current) clearTimeout(debounceRef.current);\r\n };\r\n }, [query, asyncSearch, debounceMs]);\r\n\r\n useEffect(() => {\r\n if (!isOpen) return;\r\n\r\n setMounted(true);\r\n prevFocusRef.current = document.activeElement as HTMLElement | null;\r\n\r\n const portal =\r\n document.getElementById(\"widget-portal\") ||\r\n (() => {\r\n const el = document.createElement(\"div\");\r\n el.id = \"widget-portal\";\r\n document.body.appendChild(el);\r\n return el;\r\n })();\r\n\r\n setPortalElement(portal);\r\n document.body.classList.add(\"noScroll\");\r\n\r\n return () => {\r\n document.body.classList.remove(\"noScroll\");\r\n setQuery(\"\");\r\n setActiveIndex(-1);\r\n setMounted(false);\r\n\r\n if (restoreFocusOnClose) {\r\n prevFocusRef.current?.focus?.();\r\n }\r\n };\r\n }, [isOpen, restoreFocusOnClose]);\r\n\r\n useEffect(() => {\r\n if (isOpen && mounted && portalElement && inputRef.current) {\r\n inputRef.current.focus();\r\n }\r\n }, [isOpen, mounted, portalElement]);\r\n\r\n const getItemId = useCallback(\r\n (cmd: CommandItem, index: number) =>\r\n cmd.id\r\n ? `${resolvedListboxId}-option-${cmd.id}`\r\n : `${resolvedListboxId}-option-${index}`,\r\n [resolvedListboxId],\r\n );\r\n\r\n const getNextEnabledIndex = useCallback(\r\n (startIndex: number, direction: 1 | -1) => {\r\n if (filtered.length === 0) return -1;\r\n\r\n let nextIndex = startIndex;\r\n\r\n for (let i = 0; i < filtered.length; i += 1) {\r\n nextIndex = (nextIndex + direction + filtered.length) % filtered.length;\r\n if (!filtered[nextIndex]?.disabled) {\r\n return nextIndex;\r\n }\r\n }\r\n\r\n return -1;\r\n },\r\n [filtered],\r\n );\r\n\r\n const activateCommand = useCallback(\r\n (cmd: CommandItem | undefined) => {\r\n if (!cmd || cmd.disabled) return;\r\n cmd.action();\r\n onClose();\r\n },\r\n [onClose],\r\n );\r\n\r\n const handleKeyDown = useCallback(\r\n (e: KeyboardEvent<HTMLInputElement>) => {\r\n if (e.key === \"ArrowDown\") {\r\n if (filtered.length === 0) return;\r\n e.preventDefault();\r\n setActiveIndex((prev) => getNextEnabledIndex(prev < 0 ? -1 : prev, 1));\r\n } else if (e.key === \"ArrowUp\") {\r\n if (filtered.length === 0) return;\r\n e.preventDefault();\r\n setActiveIndex((prev) => getNextEnabledIndex(prev < 0 ? 0 : prev, -1));\r\n } else if (e.key === \"Enter\") {\r\n if (activeIndex >= 0) {\r\n e.preventDefault();\r\n activateCommand(filtered[activeIndex]);\r\n }\r\n } else if (e.key === \"Escape\") {\r\n e.preventDefault();\r\n onClose();\r\n } else if (e.key === \"Home\") {\r\n e.preventDefault();\r\n const firstEnabledIndex = filtered.findIndex((item) => !item.disabled);\r\n setActiveIndex(firstEnabledIndex);\r\n } else if (e.key === \"End\") {\r\n e.preventDefault();\r\n const reversedIndex = [...filtered]\r\n .reverse()\r\n .findIndex((item) => !item.disabled);\r\n\r\n if (reversedIndex >= 0) {\r\n setActiveIndex(filtered.length - 1 - reversedIndex);\r\n }\r\n }\r\n },\r\n [filtered, activeIndex, getNextEnabledIndex, activateCommand, onClose],\r\n );\r\n\r\n const handleContainerKeyDown = useCallback(\r\n (e: KeyboardEvent<HTMLDivElement>) => {\r\n if (e.key === \"Escape\") {\r\n e.preventDefault();\r\n onClose();\r\n return;\r\n }\r\n\r\n if (trapFocus && e.key === \"Tab\") {\r\n const container = containerRef.current;\r\n if (!container) return;\r\n\r\n const focusable = container.querySelectorAll<HTMLElement>(\r\n [\r\n \"a[href]\",\r\n \"button:not([disabled])\",\r\n \"input:not([disabled])\",\r\n \"select:not([disabled])\",\r\n \"textarea:not([disabled])\",\r\n '[tabindex]:not([tabindex=\"-1\"])',\r\n ].join(\",\"),\r\n );\r\n\r\n if (focusable.length === 0) {\r\n e.preventDefault();\r\n return;\r\n }\r\n\r\n const first = focusable[0];\r\n const last = focusable[focusable.length - 1];\r\n const active = document.activeElement as HTMLElement | null;\r\n\r\n if (!e.shiftKey && active === last) {\r\n e.preventDefault();\r\n first.focus();\r\n } else if (e.shiftKey && active === first) {\r\n e.preventDefault();\r\n last.focus();\r\n }\r\n }\r\n },\r\n [onClose, trapFocus],\r\n );\r\n\r\n if (!isOpen || !mounted || !portalElement) return null;\r\n\r\n const activeItem =\r\n activeIndex >= 0 && filtered[activeIndex]\r\n ? filtered[activeIndex]\r\n : undefined;\r\n\r\n const computedActiveDescendant =\r\n ariaActiveDescendant ??\r\n (activeItem ? getItemId(activeItem, activeIndex) : undefined);\r\n\r\n const computedAriaExpanded =\r\n typeof ariaExpanded === \"boolean\" ? ariaExpanded : isOpen;\r\n\r\n const dialogRole = modal ? \"dialog\" : \"region\";\r\n\r\n const liveMessage = isLoading\r\n ? \"Searching commands\"\r\n : filtered.length === 0\r\n ? emptyMessage\r\n : `${filtered.length} ${resultsAnnouncement}`;\r\n\r\n return ReactDOM.createPortal(\r\n <div\r\n className={classMap.overlay}\r\n onClick={onClose}\r\n data-testid={`${testId}-overlay`}\r\n >\r\n <div\r\n {...rest}\r\n id={resolvedPaletteId}\r\n ref={containerRef}\r\n className={combineClassNames(\r\n classMap.command_palette,\r\n classMap[theme],\r\n classMap[state],\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n className,\r\n )}\r\n onClick={(e) => e.stopPropagation()}\r\n onKeyDown={handleContainerKeyDown}\r\n role={dialogRole}\r\n aria-modal={modal ? true : undefined}\r\n aria-label={ariaLabel}\r\n aria-labelledby={ariaLabelledBy}\r\n aria-describedby={ariaDescribedBy}\r\n aria-controls={ariaControls}\r\n data-testid={testId}\r\n >\r\n {inputLabel && (\r\n <label\r\n id={resolvedLabelId}\r\n htmlFor={resolvedInputId}\r\n className={classMap.label}\r\n data-testid={`${testId}-input-label`}\r\n >\r\n {inputLabel}\r\n </label>\r\n )}\r\n\r\n <TextInputComponent\r\n ref={inputRef}\r\n id={resolvedInputId}\r\n type=\"text\"\r\n value={query}\r\n onChange={(\r\n valueOrEvent: string | React.ChangeEvent<HTMLInputElement>,\r\n event?: React.ChangeEvent<HTMLInputElement>,\r\n ) => {\r\n if (typeof valueOrEvent === \"string\") {\r\n setQuery(valueOrEvent);\r\n return;\r\n }\r\n\r\n setQuery(valueOrEvent.target.value ?? event?.target.value ?? \"\");\r\n }}\r\n onKeyDown={handleKeyDown}\r\n placeholder={placeholder}\r\n theme={theme}\r\n state={state}\r\n shadow={\"none\"}\r\n rounding={rounding}\r\n className={classMap.input}\r\n data-testid={`${testId}-input`}\r\n role=\"combobox\"\r\n aria-label={inputAriaLabel}\r\n aria-labelledby={\r\n inputAriaLabelledBy ??\r\n (!inputAriaLabel && inputLabel ? resolvedLabelId : undefined)\r\n }\r\n aria-describedby={inputAriaDescribedBy}\r\n aria-autocomplete=\"list\"\r\n aria-haspopup=\"listbox\"\r\n aria-expanded={computedAriaExpanded}\r\n aria-controls={resolvedListboxId}\r\n aria-activedescendant={computedActiveDescendant}\r\n />\r\n\r\n <div\r\n id={resolvedStatusId}\r\n className={classMap.srOnly}\r\n aria-live=\"polite\"\r\n aria-atomic=\"true\"\r\n data-testid={`${testId}-live-region`}\r\n >\r\n {liveMessage}\r\n </div>\r\n\r\n <ul\r\n id={resolvedListboxId}\r\n className={classMap.list}\r\n role=\"listbox\"\r\n aria-label={!ariaLabelledBy ? listAriaLabel : undefined}\r\n aria-labelledby={ariaLabelledBy}\r\n aria-busy={isLoading || undefined}\r\n data-testid={`${testId}-listbox`}\r\n >\r\n {isLoading ? (\r\n <li\r\n className={combineClassNames(classMap.item, classMap.empty)}\r\n role=\"option\"\r\n aria-disabled=\"true\"\r\n aria-selected=\"false\"\r\n data-testid={`${testId}-loading`}\r\n >\r\n Searching…\r\n </li>\r\n ) : filtered.length > 0 ? (\r\n filtered.map((cmd, index) => {\r\n const isActive = index === activeIndex;\r\n const isDisabled = Boolean(cmd.disabled);\r\n const itemId = getItemId(cmd, index);\r\n const descriptionId = cmd[\"aria-description\"]\r\n ? `${itemId}-description`\r\n : undefined;\r\n\r\n return (\r\n <li\r\n key={cmd.id ?? `${cmd.label}-${index}`}\r\n id={itemId}\r\n role=\"option\"\r\n aria-label={cmd[\"aria-label\"]}\r\n aria-describedby={descriptionId}\r\n aria-disabled={isDisabled || undefined}\r\n aria-selected={isActive}\r\n className={combineClassNames(\r\n classMap.item,\r\n classMap[theme],\r\n isActive && classMap.active,\r\n isDisabled && classMap.disabled,\r\n )}\r\n onClick={() => activateCommand(cmd)}\r\n onMouseEnter={() => {\r\n if (!isDisabled) setActiveIndex(index);\r\n }}\r\n data-testid={`${testId}-option-${index}`}\r\n >\r\n {cmd.icon && (\r\n <span className={classMap.icon} aria-hidden=\"true\">\r\n {cmd.icon}\r\n </span>\r\n )}\r\n\r\n <span\r\n className={classMap.itemLabel}\r\n data-testid={`${testId}-option-label-${index}`}\r\n >\r\n {cmd.label}\r\n </span>\r\n\r\n {cmd[\"aria-description\"] && (\r\n <span\r\n id={descriptionId}\r\n className={classMap.srOnly}\r\n data-testid={`${testId}-option-description-${index}`}\r\n >\r\n {cmd[\"aria-description\"]}\r\n </span>\r\n )}\r\n </li>\r\n );\r\n })\r\n ) : (\r\n <li\r\n role=\"option\"\r\n aria-selected=\"false\"\r\n aria-disabled=\"true\"\r\n className={combineClassNames(classMap.item, classMap.empty)}\r\n data-testid={`${testId}-empty`}\r\n >\r\n {emptyMessage}\r\n </li>\r\n )}\r\n </ul>\r\n </div>\r\n </div>,\r\n portalElement,\r\n );\r\n};\r\n\r\nCommandPaletteBase.displayName = \"CommandPaletteBase\";\r\n\r\nexport default CommandPaletteBase;\r\n","import React from \"react\";\r\nimport CommandPaletteBase from \"../CommandPaletteBase\";\r\nimport \"./CommandPalette.scss\";\r\nimport TextInput from \"../../TextInput/core/TextInput\";\r\nimport { CommandPaletteProps } from \"../CommandPalette.types\";\r\n\r\nconst classes = {\r\n overlay: \"command_palette_overlay\",\r\n command_palette: \"command_palette\",\r\n input: \"command_palette_input\",\r\n list: \"command_palette_list\",\r\n item: \"command_palette_item\",\r\n icon: \"command_palette_icon\",\r\n active: \"command_palette_active\",\r\n empty: \"command_palette_empty\",\r\n\r\n primary: \"command_palette_primary\",\r\n secondary: \"command_palette_secondary\",\r\n tertiary: \"command_palette_tertiary\",\r\n quaternary: \"command_palette_quaternary\",\r\n\r\n success: \"command_palette_success\",\r\n error: \"command_palette_error\",\r\n warning: \"command_palette_warning\",\r\n\r\n clear: \"command_palette_clear\",\r\n\r\n shadowNone: \"command_palette_shadow-None\",\r\n shadowLight: \"command_palette_shadow-Light\",\r\n shadowMedium: \"command_palette_shadow-Medium\",\r\n shadowStrong: \"command_palette_shadow-Strong\",\r\n shadowIntense: \"command_palette_shadow-Intense\",\r\n\r\n roundNone: \"command_palette_round-None\",\r\n roundSmall: \"command_palette_round-Small\",\r\n roundMedium: \"command_palette_round-Medium\",\r\n roundLarge: \"command_palette_round-Large\",\r\n};\r\n\r\nconst CommandPalette: React.FC<CommandPaletteProps> = (props) => (\r\n <CommandPaletteBase\r\n {...props}\r\n classMap={classes}\r\n TextInputComponent={TextInput}\r\n />\r\n);\r\nCommandPalette.displayName = \"CommandPalette\";\r\nexport default CommandPalette;\r\n"],"names":["getDefaultTheme","getDefaultRounding","getDefaultShadow","useId","useState","useRef","useEffect","useCallback","jsx","jsxs","combineClassNames","capitalize","TextInput"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CommandPalette-BKd-BCUk.cjs","sources":["../../src/components/CommandPalette/CommandPaletteBase.tsx","../../src/components/CommandPalette/core/CommandPalette.tsx"],"sourcesContent":["import React, {\r\n useEffect,\r\n useId,\r\n useRef,\r\n useState,\r\n useCallback,\r\n KeyboardEvent,\r\n} from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport type {\r\n CommandPaletteBaseProps,\r\n CommandItem,\r\n} from \"./CommandPalette.types\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultTheme,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nconst CommandPaletteBase: React.FC<CommandPaletteBaseProps> = ({\r\n commands,\r\n placeholder = \"Search...\",\r\n isOpen,\r\n onClose,\r\n asyncSearch,\r\n debounceMs = 300,\r\n theme = getDefaultTheme(),\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n state = \"\",\r\n classMap,\r\n TextInputComponent,\r\n inputAriaLabel,\r\n inputAriaLabelledBy,\r\n inputAriaDescribedBy,\r\n inputLabel,\r\n inputId,\r\n listboxId,\r\n paletteId,\r\n listAriaLabel = \"Command suggestions\",\r\n emptyMessage = \"No matching results\",\r\n resultsAnnouncement = \"results available\",\r\n modal = true,\r\n trapFocus = false,\r\n restoreFocusOnClose = true,\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-activedescendant\": ariaActiveDescendant,\r\n \"data-testid\": testId = \"command-palette\",\r\n className,\r\n ...rest\r\n}) => {\r\n const reactId = useId();\r\n const resolvedPaletteId = paletteId ?? `${testId}-${reactId}-dialog`;\r\n const resolvedInputId = inputId ?? `${testId}-${reactId}-input`;\r\n const resolvedListboxId = listboxId ?? `${testId}-${reactId}-listbox`;\r\n const resolvedLabelId = `${resolvedInputId}-label`;\r\n const resolvedStatusId = `${resolvedPaletteId}-status`;\r\n\r\n const [query, setQuery] = useState(\"\");\r\n const [activeIndex, setActiveIndex] = useState<number>(-1);\r\n const inputRef = useRef<HTMLInputElement>(null);\r\n const containerRef = useRef<HTMLDivElement>(null);\r\n const [mounted, setMounted] = useState(false);\r\n const [portalElement, setPortalElement] = useState<HTMLElement | null>(null);\r\n const [asyncResults, setAsyncResults] = useState<CommandItem[]>([]);\r\n const [isLoading, setIsLoading] = useState(false);\r\n const debounceRef = useRef<ReturnType<typeof setTimeout> | null>(null);\r\n const prevFocusRef = useRef<HTMLElement | null>(null);\r\n\r\n const filtered = asyncSearch\r\n ? asyncResults\r\n : commands.filter((cmd) => {\r\n const q = query.toLowerCase();\r\n if (!q) return true;\r\n\r\n const labelMatch = cmd.label.toLowerCase().includes(q);\r\n const keywordMatch = cmd.keywords?.some((keyword) =>\r\n keyword.toLowerCase().includes(q),\r\n );\r\n\r\n return labelMatch || Boolean(keywordMatch);\r\n });\r\n\r\n useEffect(() => {\r\n if (filtered.length === 0) {\r\n setActiveIndex(-1);\r\n } else if (\r\n activeIndex < 0 ||\r\n activeIndex >= filtered.length ||\r\n filtered[activeIndex]?.disabled\r\n ) {\r\n const firstEnabledIndex = filtered.findIndex((item) => !item.disabled);\r\n setActiveIndex(firstEnabledIndex);\r\n }\r\n }, [filtered, activeIndex]);\r\n\r\n useEffect(() => {\r\n if (!asyncSearch) return;\r\n\r\n if (debounceRef.current) clearTimeout(debounceRef.current);\r\n\r\n const q = query.trim();\r\n if (!q) {\r\n setAsyncResults([]);\r\n setIsLoading(false);\r\n return;\r\n }\r\n\r\n setIsLoading(true);\r\n debounceRef.current = setTimeout(() => {\r\n asyncSearch(q)\r\n .then((results) => {\r\n setAsyncResults(results);\r\n setIsLoading(false);\r\n })\r\n .catch(() => {\r\n setAsyncResults([]);\r\n setIsLoading(false);\r\n });\r\n }, debounceMs);\r\n\r\n return () => {\r\n if (debounceRef.current) clearTimeout(debounceRef.current);\r\n };\r\n }, [query, asyncSearch, debounceMs]);\r\n\r\n useEffect(() => {\r\n if (!isOpen) return;\r\n\r\n setMounted(true);\r\n prevFocusRef.current = document.activeElement as HTMLElement | null;\r\n\r\n const portal =\r\n document.getElementById(\"widget-portal\") ||\r\n (() => {\r\n const el = document.createElement(\"div\");\r\n el.id = \"widget-portal\";\r\n document.body.appendChild(el);\r\n return el;\r\n })();\r\n\r\n setPortalElement(portal);\r\n document.body.classList.add(\"noScroll\");\r\n\r\n return () => {\r\n document.body.classList.remove(\"noScroll\");\r\n setQuery(\"\");\r\n setActiveIndex(-1);\r\n setMounted(false);\r\n\r\n if (restoreFocusOnClose) {\r\n prevFocusRef.current?.focus?.();\r\n }\r\n };\r\n }, [isOpen, restoreFocusOnClose]);\r\n\r\n useEffect(() => {\r\n if (isOpen && mounted && portalElement && inputRef.current) {\r\n inputRef.current.focus();\r\n }\r\n }, [isOpen, mounted, portalElement]);\r\n\r\n const getItemId = useCallback(\r\n (cmd: CommandItem, index: number) =>\r\n cmd.id\r\n ? `${resolvedListboxId}-option-${cmd.id}`\r\n : `${resolvedListboxId}-option-${index}`,\r\n [resolvedListboxId],\r\n );\r\n\r\n const getNextEnabledIndex = useCallback(\r\n (startIndex: number, direction: 1 | -1) => {\r\n if (filtered.length === 0) return -1;\r\n\r\n let nextIndex = startIndex;\r\n\r\n for (let i = 0; i < filtered.length; i += 1) {\r\n nextIndex = (nextIndex + direction + filtered.length) % filtered.length;\r\n if (!filtered[nextIndex]?.disabled) {\r\n return nextIndex;\r\n }\r\n }\r\n\r\n return -1;\r\n },\r\n [filtered],\r\n );\r\n\r\n const activateCommand = useCallback(\r\n (cmd: CommandItem | undefined) => {\r\n if (!cmd || cmd.disabled) return;\r\n cmd.action();\r\n onClose();\r\n },\r\n [onClose],\r\n );\r\n\r\n const handleKeyDown = useCallback(\r\n (e: KeyboardEvent<HTMLInputElement>) => {\r\n if (e.key === \"ArrowDown\") {\r\n if (filtered.length === 0) return;\r\n e.preventDefault();\r\n setActiveIndex((prev) => getNextEnabledIndex(prev < 0 ? -1 : prev, 1));\r\n } else if (e.key === \"ArrowUp\") {\r\n if (filtered.length === 0) return;\r\n e.preventDefault();\r\n setActiveIndex((prev) => getNextEnabledIndex(prev < 0 ? 0 : prev, -1));\r\n } else if (e.key === \"Enter\") {\r\n if (activeIndex >= 0) {\r\n e.preventDefault();\r\n activateCommand(filtered[activeIndex]);\r\n }\r\n } else if (e.key === \"Escape\") {\r\n e.preventDefault();\r\n onClose();\r\n } else if (e.key === \"Home\") {\r\n e.preventDefault();\r\n const firstEnabledIndex = filtered.findIndex((item) => !item.disabled);\r\n setActiveIndex(firstEnabledIndex);\r\n } else if (e.key === \"End\") {\r\n e.preventDefault();\r\n const reversedIndex = [...filtered]\r\n .reverse()\r\n .findIndex((item) => !item.disabled);\r\n\r\n if (reversedIndex >= 0) {\r\n setActiveIndex(filtered.length - 1 - reversedIndex);\r\n }\r\n }\r\n },\r\n [filtered, activeIndex, getNextEnabledIndex, activateCommand, onClose],\r\n );\r\n\r\n const handleContainerKeyDown = useCallback(\r\n (e: KeyboardEvent<HTMLDivElement>) => {\r\n if (e.key === \"Escape\") {\r\n e.preventDefault();\r\n onClose();\r\n return;\r\n }\r\n\r\n if (trapFocus && e.key === \"Tab\") {\r\n const container = containerRef.current;\r\n if (!container) return;\r\n\r\n const focusable = container.querySelectorAll<HTMLElement>(\r\n [\r\n \"a[href]\",\r\n \"button:not([disabled])\",\r\n \"input:not([disabled])\",\r\n \"select:not([disabled])\",\r\n \"textarea:not([disabled])\",\r\n '[tabindex]:not([tabindex=\"-1\"])',\r\n ].join(\",\"),\r\n );\r\n\r\n if (focusable.length === 0) {\r\n e.preventDefault();\r\n return;\r\n }\r\n\r\n const first = focusable[0];\r\n const last = focusable[focusable.length - 1];\r\n const active = document.activeElement as HTMLElement | null;\r\n\r\n if (!e.shiftKey && active === last) {\r\n e.preventDefault();\r\n first.focus();\r\n } else if (e.shiftKey && active === first) {\r\n e.preventDefault();\r\n last.focus();\r\n }\r\n }\r\n },\r\n [onClose, trapFocus],\r\n );\r\n\r\n if (!isOpen || !mounted || !portalElement) return null;\r\n\r\n const activeItem =\r\n activeIndex >= 0 && filtered[activeIndex]\r\n ? filtered[activeIndex]\r\n : undefined;\r\n\r\n const computedActiveDescendant =\r\n ariaActiveDescendant ??\r\n (activeItem ? getItemId(activeItem, activeIndex) : undefined);\r\n\r\n const computedAriaExpanded =\r\n typeof ariaExpanded === \"boolean\" ? ariaExpanded : isOpen;\r\n\r\n const dialogRole = modal ? \"dialog\" : \"region\";\r\n\r\n const liveMessage = isLoading\r\n ? \"Searching commands\"\r\n : filtered.length === 0\r\n ? emptyMessage\r\n : `${filtered.length} ${resultsAnnouncement}`;\r\n\r\n return ReactDOM.createPortal(\r\n <div\r\n className={classMap.overlay}\r\n onClick={onClose}\r\n data-testid={`${testId}-overlay`}\r\n >\r\n <div\r\n {...rest}\r\n id={resolvedPaletteId}\r\n ref={containerRef}\r\n className={combineClassNames(\r\n classMap.command_palette,\r\n classMap[theme],\r\n classMap[state],\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n className,\r\n )}\r\n onClick={(e) => e.stopPropagation()}\r\n onKeyDown={handleContainerKeyDown}\r\n role={dialogRole}\r\n aria-modal={modal ? true : undefined}\r\n aria-label={ariaLabel}\r\n aria-labelledby={ariaLabelledBy}\r\n aria-describedby={ariaDescribedBy}\r\n aria-controls={ariaControls}\r\n data-testid={testId}\r\n >\r\n {inputLabel && (\r\n <label\r\n id={resolvedLabelId}\r\n htmlFor={resolvedInputId}\r\n className={classMap.label}\r\n data-testid={`${testId}-input-label`}\r\n >\r\n {inputLabel}\r\n </label>\r\n )}\r\n\r\n <TextInputComponent\r\n ref={inputRef}\r\n id={resolvedInputId}\r\n type=\"text\"\r\n value={query}\r\n onChange={(\r\n valueOrEvent: string | React.ChangeEvent<HTMLInputElement>,\r\n event?: React.ChangeEvent<HTMLInputElement>,\r\n ) => {\r\n if (typeof valueOrEvent === \"string\") {\r\n setQuery(valueOrEvent);\r\n return;\r\n }\r\n\r\n setQuery(valueOrEvent.target.value ?? event?.target.value ?? \"\");\r\n }}\r\n onKeyDown={handleKeyDown}\r\n placeholder={placeholder}\r\n theme={theme}\r\n state={state}\r\n shadow={\"none\"}\r\n rounding={rounding}\r\n className={classMap.input}\r\n data-testid={`${testId}-input`}\r\n role=\"combobox\"\r\n aria-label={inputAriaLabel}\r\n aria-labelledby={\r\n inputAriaLabelledBy ??\r\n (!inputAriaLabel && inputLabel ? resolvedLabelId : undefined)\r\n }\r\n aria-describedby={inputAriaDescribedBy}\r\n aria-autocomplete=\"list\"\r\n aria-haspopup=\"listbox\"\r\n aria-expanded={computedAriaExpanded}\r\n aria-controls={resolvedListboxId}\r\n aria-activedescendant={computedActiveDescendant}\r\n />\r\n\r\n <div\r\n id={resolvedStatusId}\r\n className={classMap.srOnly}\r\n aria-live=\"polite\"\r\n aria-atomic=\"true\"\r\n data-testid={`${testId}-live-region`}\r\n >\r\n {liveMessage}\r\n </div>\r\n\r\n <ul\r\n id={resolvedListboxId}\r\n className={classMap.list}\r\n role=\"listbox\"\r\n aria-label={!ariaLabelledBy ? listAriaLabel : undefined}\r\n aria-labelledby={ariaLabelledBy}\r\n aria-busy={isLoading || undefined}\r\n data-testid={`${testId}-listbox`}\r\n >\r\n {isLoading ? (\r\n <li\r\n className={combineClassNames(classMap.item, classMap.empty)}\r\n role=\"option\"\r\n aria-disabled=\"true\"\r\n aria-selected=\"false\"\r\n data-testid={`${testId}-loading`}\r\n >\r\n Searching…\r\n </li>\r\n ) : filtered.length > 0 ? (\r\n filtered.map((cmd, index) => {\r\n const isActive = index === activeIndex;\r\n const isDisabled = Boolean(cmd.disabled);\r\n const itemId = getItemId(cmd, index);\r\n const descriptionId = cmd[\"aria-description\"]\r\n ? `${itemId}-description`\r\n : undefined;\r\n\r\n return (\r\n <li\r\n key={cmd.id ?? `${cmd.label}-${index}`}\r\n id={itemId}\r\n role=\"option\"\r\n aria-label={cmd[\"aria-label\"]}\r\n aria-describedby={descriptionId}\r\n aria-disabled={isDisabled || undefined}\r\n aria-selected={isActive}\r\n className={combineClassNames(\r\n classMap.item,\r\n classMap[theme],\r\n isActive && classMap.active,\r\n isDisabled && classMap.disabled,\r\n )}\r\n onClick={() => activateCommand(cmd)}\r\n onMouseEnter={() => {\r\n if (!isDisabled) setActiveIndex(index);\r\n }}\r\n data-testid={`${testId}-option-${index}`}\r\n >\r\n {cmd.icon && (\r\n <span className={classMap.icon} aria-hidden=\"true\">\r\n {cmd.icon}\r\n </span>\r\n )}\r\n\r\n <span\r\n className={classMap.itemLabel}\r\n data-testid={`${testId}-option-label-${index}`}\r\n >\r\n {cmd.label}\r\n </span>\r\n\r\n {cmd[\"aria-description\"] && (\r\n <span\r\n id={descriptionId}\r\n className={classMap.srOnly}\r\n data-testid={`${testId}-option-description-${index}`}\r\n >\r\n {cmd[\"aria-description\"]}\r\n </span>\r\n )}\r\n </li>\r\n );\r\n })\r\n ) : (\r\n <li\r\n role=\"option\"\r\n aria-selected=\"false\"\r\n aria-disabled=\"true\"\r\n className={combineClassNames(classMap.item, classMap.empty)}\r\n data-testid={`${testId}-empty`}\r\n >\r\n {emptyMessage}\r\n </li>\r\n )}\r\n </ul>\r\n </div>\r\n </div>,\r\n portalElement,\r\n );\r\n};\r\n\r\nCommandPaletteBase.displayName = \"CommandPaletteBase\";\r\n\r\nexport default CommandPaletteBase;\r\n","import React from \"react\";\r\nimport CommandPaletteBase from \"../CommandPaletteBase\";\r\nimport \"./CommandPalette.scss\";\r\nimport TextInput from \"../../TextInput/core/TextInput\";\r\nimport { CommandPaletteProps } from \"../CommandPalette.types\";\r\n\r\nconst classes = {\r\n overlay: \"command_palette_overlay\",\r\n command_palette: \"command_palette\",\r\n input: \"command_palette_input\",\r\n list: \"command_palette_list\",\r\n item: \"command_palette_item\",\r\n icon: \"command_palette_icon\",\r\n active: \"command_palette_active\",\r\n empty: \"command_palette_empty\",\r\n\r\n primary: \"command_palette_primary\",\r\n secondary: \"command_palette_secondary\",\r\n tertiary: \"command_palette_tertiary\",\r\n quaternary: \"command_palette_quaternary\",\r\n\r\n success: \"command_palette_success\",\r\n error: \"command_palette_error\",\r\n warning: \"command_palette_warning\",\r\n\r\n clear: \"command_palette_clear\",\r\n\r\n shadowNone: \"command_palette_shadow-None\",\r\n shadowLight: \"command_palette_shadow-Light\",\r\n shadowMedium: \"command_palette_shadow-Medium\",\r\n shadowStrong: \"command_palette_shadow-Strong\",\r\n shadowIntense: \"command_palette_shadow-Intense\",\r\n\r\n roundNone: \"command_palette_round-None\",\r\n roundSmall: \"command_palette_round-Small\",\r\n roundMedium: \"command_palette_round-Medium\",\r\n roundLarge: \"command_palette_round-Large\",\r\n};\r\n\r\nconst CommandPalette: React.FC<CommandPaletteProps> = (props) => (\r\n <CommandPaletteBase\r\n {...props}\r\n classMap={classes}\r\n TextInputComponent={TextInput}\r\n />\r\n);\r\nCommandPalette.displayName = \"CommandPalette\";\r\nexport default CommandPalette;\r\n"],"names":["getDefaultTheme","getDefaultRounding","getDefaultShadow","useId","useState","useRef","useEffect","useCallback","jsx","jsxs","combineClassNames","capitalize","TextInput"],"mappings":"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"}
|