boreal-ui 0.0.34 → 0.0.36
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/{Accordion-D6hxjkE1.cjs → Accordion-Cb-MHkcx.cjs} +6 -2
- package/dist/core/Accordion-Cb-MHkcx.cjs.map +1 -0
- package/dist/core/{Accordion-CY5BCoA7.js → Accordion-DDu1TFaX.js} +6 -2
- package/dist/core/Accordion-DDu1TFaX.js.map +1 -0
- package/dist/core/Accordion.cjs.js +1 -1
- package/dist/core/Accordion.js +1 -1
- package/dist/core/Badge-C6qp0Eym.cjs.map +1 -1
- package/dist/core/Badge-MiX5w_Ui.js.map +1 -1
- package/dist/core/{Breadcrumbs-hKtLDMrC.cjs → Breadcrumbs-DeUAfwz-.cjs} +2 -2
- package/dist/core/Breadcrumbs-DeUAfwz-.cjs.map +1 -0
- package/dist/core/{Breadcrumbs-BulpkVaU.js → Breadcrumbs-KHd0Wr_l.js} +2 -2
- package/dist/core/Breadcrumbs-KHd0Wr_l.js.map +1 -0
- package/dist/core/Breadcrumbs.cjs.js +1 -1
- package/dist/core/Breadcrumbs.js +1 -1
- package/dist/core/{Button-CD1ETVvS.cjs → Button-CBmiAYTl.cjs} +20 -16
- package/dist/core/Button-CBmiAYTl.cjs.map +1 -0
- package/dist/core/{Button-sz60qyTn.js → Button-DxYuUx72.js} +20 -16
- package/dist/core/Button-DxYuUx72.js.map +1 -0
- package/dist/core/Button.cjs.js +1 -1
- package/dist/core/Button.js +1 -1
- package/dist/core/{Card-BRExeyNd.js → Card-C8Nn4k-D.js} +7 -7
- package/dist/core/Card-C8Nn4k-D.js.map +1 -0
- package/dist/core/{Card-jrGaJLdX.cjs → Card-v23IopXR.cjs} +7 -7
- package/dist/core/Card-v23IopXR.cjs.map +1 -0
- package/dist/core/Card.cjs.js +1 -1
- package/dist/core/Card.js +1 -1
- package/dist/core/{Chip-ByR2AKjl.js → Chip-CshyG7SS.js} +2 -2
- package/dist/core/Chip-CshyG7SS.js.map +1 -0
- package/dist/core/{Chip-C6sk2qAd.cjs → Chip-E--KGVgH.cjs} +2 -2
- package/dist/core/Chip-E--KGVgH.cjs.map +1 -0
- package/dist/core/Chip.cjs.js +1 -1
- package/dist/core/Chip.js +1 -1
- package/dist/core/{CommandPalette-IOV8q6GZ.cjs → CommandPalette-B8jOhfm2.cjs} +2 -2
- package/dist/core/{CommandPalette-IOV8q6GZ.cjs.map → CommandPalette-B8jOhfm2.cjs.map} +1 -1
- package/dist/core/{CommandPalette-KcMGDC0i.js → CommandPalette-BpRegx0J.js} +2 -2
- package/dist/core/{CommandPalette-KcMGDC0i.js.map → CommandPalette-BpRegx0J.js.map} +1 -1
- package/dist/core/CommandPalette.cjs.js +1 -1
- package/dist/core/CommandPalette.js +1 -1
- package/dist/core/{DateTimePicker-Cq_QZBV5.js → DateTimePicker-CK3I5Gxw.js} +2 -2
- package/dist/core/DateTimePicker-CK3I5Gxw.js.map +1 -0
- package/dist/core/{DateTimePicker-DU-vjgee.cjs → DateTimePicker-Dj8LEv5L.cjs} +2 -2
- package/dist/core/DateTimePicker-Dj8LEv5L.cjs.map +1 -0
- package/dist/core/DateTimePicker.cjs.js +1 -1
- package/dist/core/DateTimePicker.js +1 -1
- package/dist/core/{Dropdown-CJo6T9__.cjs → Dropdown-BpEtC6bv.cjs} +2 -2
- package/dist/core/Dropdown-BpEtC6bv.cjs.map +1 -0
- package/dist/core/{Dropdown-Dzjmt9gx.js → Dropdown-Drug9EGs.js} +2 -2
- package/dist/core/Dropdown-Drug9EGs.js.map +1 -0
- package/dist/core/Dropdown.cjs.js +1 -1
- package/dist/core/Dropdown.js +1 -1
- package/dist/core/{EmptyState-1ZbzRKLl.cjs → EmptyState-CknrkSpb.cjs} +2 -2
- package/dist/core/{EmptyState-1ZbzRKLl.cjs.map → EmptyState-CknrkSpb.cjs.map} +1 -1
- package/dist/core/{EmptyState-CSnwsLvV.js → EmptyState-HSMqh1Og.js} +2 -2
- package/dist/core/{EmptyState-CSnwsLvV.js.map → EmptyState-HSMqh1Og.js.map} +1 -1
- package/dist/core/EmptyState.cjs.js +1 -1
- package/dist/core/EmptyState.js +1 -1
- package/dist/core/{FileUpload-Bcu5v4TO.js → FileUpload-C6xeGLr8.js} +5 -5
- package/dist/core/FileUpload-C6xeGLr8.js.map +1 -0
- package/dist/core/{FileUpload-DrPV-Oiy.cjs → FileUpload-C_k2_dfF.cjs} +5 -5
- package/dist/core/FileUpload-C_k2_dfF.cjs.map +1 -0
- package/dist/core/FileUpload.cjs.js +1 -1
- package/dist/core/FileUpload.js +1 -1
- package/dist/core/{Footer-vLVfqKWf.js → Footer-D2DOWiIc.js} +22 -10
- package/dist/core/Footer-D2DOWiIc.js.map +1 -0
- package/dist/core/{Footer-DrYZJObN.cjs → Footer-lTLk-01g.cjs} +22 -10
- package/dist/core/Footer-lTLk-01g.cjs.map +1 -0
- package/dist/core/Footer.cjs.js +1 -1
- package/dist/core/Footer.js +1 -1
- package/dist/core/{IconButton-D_W4nsPZ.cjs → IconButton-Cs4PHptF.cjs} +5 -3
- package/dist/core/IconButton-Cs4PHptF.cjs.map +1 -0
- package/dist/core/{IconButton-B9WWbeSM.js → IconButton-DY1ppFX-.js} +5 -3
- package/dist/core/IconButton-DY1ppFX-.js.map +1 -0
- package/dist/core/IconButton.cjs.js +1 -1
- package/dist/core/IconButton.js +1 -1
- package/dist/core/{MarkdownRenderer-OUEnVOLG.cjs → MarkdownRenderer-3-S5hKVG.cjs} +2 -1
- package/dist/core/MarkdownRenderer-3-S5hKVG.cjs.map +1 -0
- package/dist/core/{MarkdownRenderer-COnLzf0t.js → MarkdownRenderer-CScdSBLx.js} +2 -1
- package/dist/core/MarkdownRenderer-CScdSBLx.js.map +1 -0
- package/dist/core/MarkdownRenderer.cjs.js +1 -1
- package/dist/core/MarkdownRenderer.js +1 -1
- package/dist/core/MessagePopUp.cjs.js +1 -1
- package/dist/core/MessagePopUp.js +1 -1
- package/dist/core/{MessagePopup-DiipcrNp.js → MessagePopup-CHCUOPLz.js} +5 -6
- package/dist/core/MessagePopup-CHCUOPLz.js.map +1 -0
- package/dist/core/{MessagePopup-CIsMNnVM.cjs → MessagePopup-CL_1uoVd.cjs} +5 -6
- package/dist/core/MessagePopup-CL_1uoVd.cjs.map +1 -0
- package/dist/core/{Modal-Bi8OdWKS.js → Modal-1d9Ivd05.js} +2 -2
- package/dist/core/Modal-1d9Ivd05.js.map +1 -0
- package/dist/core/{Modal-BdxvP-Ei.cjs → Modal-D8SK6y7Q.cjs} +2 -2
- package/dist/core/Modal-D8SK6y7Q.cjs.map +1 -0
- package/dist/core/Modal.cjs.js +1 -1
- package/dist/core/Modal.js +1 -1
- package/dist/core/{NavBar-CBC9YPkH.js → NavBar-CIImUvWA.js} +4 -4
- package/dist/core/NavBar-CIImUvWA.js.map +1 -0
- package/dist/core/{NavBar-DUNxiip6.cjs → NavBar-D03-pQsT.cjs} +4 -4
- package/dist/core/NavBar-D03-pQsT.cjs.map +1 -0
- package/dist/core/NavBar.cjs.js +1 -1
- package/dist/core/NavBar.js +1 -1
- package/dist/core/{NotificationCenter-DpdzdrPB.cjs → NotificationCenter-BjTSHg0M.cjs} +76 -66
- package/dist/{next/NotificationCenter-dkrHsIKr.cjs.map → core/NotificationCenter-BjTSHg0M.cjs.map} +1 -1
- package/dist/core/{NotificationCenter-BkoTAZCz.js → NotificationCenter-Ca_Gegaf.js} +76 -66
- package/dist/{next/NotificationCenter-DlbqVzzr.js.map → core/NotificationCenter-Ca_Gegaf.js.map} +1 -1
- package/dist/core/NotificationCenter.cjs.js +1 -1
- package/dist/core/NotificationCenter.js +1 -1
- package/dist/core/{Pager-De-awunI.js → Pager-B-mFsJVZ.js} +3 -3
- package/dist/core/{Pager-De-awunI.js.map → Pager-B-mFsJVZ.js.map} +1 -1
- package/dist/core/{Pager-CcIEdgIe.cjs → Pager-B3Hy6QIt.cjs} +3 -3
- package/dist/core/{Pager-CcIEdgIe.cjs.map → Pager-B3Hy6QIt.cjs.map} +1 -1
- package/dist/core/Pager.cjs.js +1 -1
- package/dist/core/Pager.js +1 -1
- package/dist/core/{Select-bMjOWXRX.js → Select-BLhAAtFa.js} +2 -9
- package/dist/core/Select-BLhAAtFa.js.map +1 -0
- package/dist/core/{Select-C65ai0xO.cjs → Select-CnX90XU7.cjs} +2 -9
- package/dist/core/Select-CnX90XU7.cjs.map +1 -0
- package/dist/core/Select.cjs.js +1 -1
- package/dist/core/Select.js +1 -1
- package/dist/core/Sidebar-BoMGJwqC.cjs.map +1 -1
- package/dist/core/Sidebar-CnGBAT2_.js.map +1 -1
- package/dist/core/{Stepper-DNSzwiZR.js → Stepper-0lxM6e2v.js} +2 -10
- package/dist/core/Stepper-0lxM6e2v.js.map +1 -0
- package/dist/core/{Stepper-Cphvkx0O.cjs → Stepper-BCjn0rYE.cjs} +2 -10
- package/dist/core/Stepper-BCjn0rYE.cjs.map +1 -0
- package/dist/core/Stepper.cjs.js +1 -1
- package/dist/core/Stepper.js +1 -1
- package/dist/core/{Tabs-gpyaJFUs.js → Tabs-BaKDr0uF.js} +84 -36
- package/dist/core/Tabs-BaKDr0uF.js.map +1 -0
- package/dist/core/{Tabs-DptKFvPK.cjs → Tabs-C6lDM19i.cjs} +83 -35
- package/dist/core/Tabs-C6lDM19i.cjs.map +1 -0
- package/dist/core/Tabs.cjs.js +1 -1
- package/dist/core/Tabs.js +1 -1
- package/dist/core/TagInput.cjs.js +1 -1
- package/dist/core/TagInput.js +1 -1
- package/dist/core/Taginput-C_JJRoDF.js +311 -0
- package/dist/core/Taginput-C_JJRoDF.js.map +1 -0
- package/dist/core/Taginput-kqeTeVJY.cjs +310 -0
- package/dist/core/Taginput-kqeTeVJY.cjs.map +1 -0
- package/dist/core/{TextArea-Nj-eO3Pv.cjs → TextArea-BJGUr6r_.cjs} +18 -7
- package/dist/core/TextArea-BJGUr6r_.cjs.map +1 -0
- package/dist/core/{TextArea-DrU4oCj0.js → TextArea-CIdsUIzt.js} +18 -7
- package/dist/core/TextArea-CIdsUIzt.js.map +1 -0
- package/dist/core/TextArea.cjs.js +1 -1
- package/dist/core/TextArea.js +1 -1
- package/dist/core/{TextInput-C8mNE1R4.js → TextInput-D38TZ4Pl.js} +28 -11
- package/dist/core/TextInput-D38TZ4Pl.js.map +1 -0
- package/dist/core/{TextInput-B03e-LMT.cjs → TextInput-WY4O9Zya.cjs} +28 -11
- package/dist/core/TextInput-WY4O9Zya.cjs.map +1 -0
- package/dist/core/TextInput.cjs.js +1 -1
- package/dist/core/TextInput.js +1 -1
- package/dist/core/{ThemeContext-D_SPnedS.cjs → ThemeContext-D1AV88GN.cjs} +2 -1
- package/dist/core/ThemeContext-D1AV88GN.cjs.map +1 -0
- package/dist/core/{ThemeContext-DJ18CFaV.js → ThemeContext-DSYDwr2m.js} +2 -1
- package/dist/core/ThemeContext-DSYDwr2m.js.map +1 -0
- package/dist/core/ThemeProvider.cjs.js +1 -1
- package/dist/core/ThemeProvider.js +1 -1
- package/dist/core/{Timeline-D7fd8-u_.js → Timeline-BfJd6flB.js} +22 -16
- package/dist/core/Timeline-BfJd6flB.js.map +1 -0
- package/dist/core/{Timeline-Dk0q-8BZ.cjs → Timeline-Bmnr7xnx.cjs} +22 -16
- package/dist/core/Timeline-Bmnr7xnx.cjs.map +1 -0
- package/dist/core/Timeline.cjs.js +1 -1
- package/dist/core/Timeline.js +1 -1
- package/dist/core/{Toggle-v31rt4Ya.cjs → Toggle-Dor7IEx3.cjs} +36 -15
- package/dist/core/Toggle-Dor7IEx3.cjs.map +1 -0
- package/dist/core/{Toggle-CZftIdc3.js → Toggle-sPyKNt4P.js} +38 -17
- package/dist/core/Toggle-sPyKNt4P.js.map +1 -0
- package/dist/core/Toggle.cjs.js +1 -1
- package/dist/core/Toggle.js +1 -1
- package/dist/core/{Toolbar-Tf01bUjT.js → Toolbar-CSDhcIPb.js} +15 -11
- package/dist/core/Toolbar-CSDhcIPb.js.map +1 -0
- package/dist/core/{Toolbar-zZrwUT66.cjs → Toolbar-xot4FSLU.cjs} +15 -11
- package/dist/core/Toolbar-xot4FSLU.cjs.map +1 -0
- package/dist/core/Toolbar.cjs.js +1 -1
- package/dist/core/Toolbar.js +1 -1
- package/dist/core/Tooltip-BzRqlOTz.js +119 -0
- package/dist/core/Tooltip-BzRqlOTz.js.map +1 -0
- package/dist/core/Tooltip-DS7DSyij.cjs +118 -0
- package/dist/core/Tooltip-DS7DSyij.cjs.map +1 -0
- package/dist/core/Tooltip.cjs.js +1 -1
- package/dist/core/Tooltip.js +1 -1
- package/dist/core/index.cjs.js +29 -29
- package/dist/core/index.js +29 -29
- package/dist/core/style.css +6710 -1912
- package/dist/next/{Accordion-CmbMyudL.cjs → Accordion-BCUMBFY6.cjs} +58 -52
- package/dist/next/Accordion-BCUMBFY6.cjs.map +1 -0
- package/dist/next/{Accordion-81qBJa4M.js → Accordion-yypKft_c.js} +58 -52
- package/dist/next/Accordion-yypKft_c.js.map +1 -0
- package/dist/next/Accordion.cjs.js +1 -1
- package/dist/next/Accordion.js +1 -1
- package/dist/next/{Avatar-96V7QHyt.js → Avatar-C227ps6T.js} +46 -46
- package/dist/next/{Avatar-96V7QHyt.js.map → Avatar-C227ps6T.js.map} +1 -1
- package/dist/next/{Avatar-hwM3F1Jw.cjs → Avatar-IjllaOdx.cjs} +46 -46
- package/dist/next/{Avatar-hwM3F1Jw.cjs.map → Avatar-IjllaOdx.cjs.map} +1 -1
- package/dist/next/Avatar.cjs.js +1 -1
- package/dist/next/Avatar.js +1 -1
- package/dist/next/{Badge-BG9cWEDv.js → Badge-C-JE6gYt.js} +31 -31
- package/dist/next/Badge-C-JE6gYt.js.map +1 -0
- package/dist/next/{Badge-DLSfi5vo.cjs → Badge-DdJsnD_G.cjs} +31 -31
- package/dist/next/Badge-DdJsnD_G.cjs.map +1 -0
- package/dist/next/Badge.cjs.js +1 -1
- package/dist/next/Badge.js +1 -1
- package/dist/next/{Breadcrumbs-IO2iNAjN.js → Breadcrumbs-_qTMSpvE.js} +38 -38
- package/dist/next/Breadcrumbs-_qTMSpvE.js.map +1 -0
- package/dist/next/{Breadcrumbs-veVO4yuY.cjs → Breadcrumbs-uPQIvIj-.cjs} +38 -38
- package/dist/next/Breadcrumbs-uPQIvIj-.cjs.map +1 -0
- package/dist/next/Breadcrumbs.cjs.js +1 -1
- package/dist/next/Breadcrumbs.js +1 -1
- package/dist/next/{Button-sIKQmn_c.cjs → Button-5qNmDKPi.cjs} +65 -63
- package/dist/next/Button-5qNmDKPi.cjs.map +1 -0
- package/dist/next/{Button-DN8rTQSp.js → Button-BF5Wp81D.js} +65 -63
- package/dist/next/Button-BF5Wp81D.js.map +1 -0
- package/dist/next/Button.cjs.js +1 -1
- package/dist/next/Button.js +1 -1
- package/dist/next/{Card-B9EjkoVy.js → Card-CFJnp6sf.js} +72 -68
- package/dist/next/Card-CFJnp6sf.js.map +1 -0
- package/dist/next/{Card-BQTJkNCL.cjs → Card-DdLlnwFq.cjs} +72 -68
- package/dist/next/Card-DdLlnwFq.cjs.map +1 -0
- 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-DXRmAtTt.cjs → Checkbox-BX2JIiMU.cjs} +44 -44
- package/dist/next/{Checkbox-DXRmAtTt.cjs.map → Checkbox-BX2JIiMU.cjs.map} +1 -1
- package/dist/next/{Checkbox-CU-XrZC7.js → Checkbox-CrK0JFu8.js} +44 -44
- package/dist/next/{Checkbox-CU-XrZC7.js.map → Checkbox-CrK0JFu8.js.map} +1 -1
- package/dist/next/{Chip-CekCQRke.js → Chip-3QqdBOHX.js} +51 -51
- package/dist/next/Chip-3QqdBOHX.js.map +1 -0
- package/dist/next/{Chip-CfJ473TI.cjs → Chip-BUVPtK2j.cjs} +51 -51
- package/dist/next/Chip-BUVPtK2j.cjs.map +1 -0
- package/dist/next/Chip.cjs.js +1 -1
- package/dist/next/Chip.js +1 -1
- package/dist/next/{CircularProgress-C3vHw9Vz.js → CircularProgress-C7Zr-dLf.js} +47 -47
- package/dist/next/{CircularProgress-C3vHw9Vz.js.map → CircularProgress-C7Zr-dLf.js.map} +1 -1
- package/dist/next/{CircularProgress-B0pzDdsh.cjs → CircularProgress-C7kuOtnG.cjs} +47 -47
- package/dist/next/{CircularProgress-B0pzDdsh.cjs.map → CircularProgress-C7kuOtnG.cjs.map} +1 -1
- package/dist/next/CircularProgress.cjs.js +1 -1
- package/dist/next/CircularProgress.js +1 -1
- package/dist/next/{ColorPicker-CDHrECBi.cjs → ColorPicker-C3dyO_vv.cjs} +42 -40
- package/dist/next/{ColorPicker-CDHrECBi.cjs.map → ColorPicker-C3dyO_vv.cjs.map} +1 -1
- package/dist/next/{ColorPicker-4Fw0fwbk.js → ColorPicker-DgLJQRJu.js} +42 -40
- package/dist/next/{ColorPicker-4Fw0fwbk.js.map → ColorPicker-DgLJQRJu.js.map} +1 -1
- package/dist/next/ColorPicker.cjs.js +1 -1
- package/dist/next/ColorPicker.js +1 -1
- package/dist/next/{CommandPalette-DhyChRCJ.cjs → CommandPalette-CzwGz-Py.cjs} +42 -42
- package/dist/next/{CommandPalette-DhyChRCJ.cjs.map → CommandPalette-CzwGz-Py.cjs.map} +1 -1
- package/dist/next/{CommandPalette-BEDyY7vY.js → CommandPalette-D-VgzCDu.js} +42 -42
- package/dist/next/{CommandPalette-BEDyY7vY.js.map → CommandPalette-D-VgzCDu.js.map} +1 -1
- package/dist/next/CommandPalette.cjs.js +1 -1
- package/dist/next/CommandPalette.js +1 -1
- package/dist/next/{DataTable-B0-pq0MG.cjs → DataTable-CEtAY0ni.cjs} +41 -41
- package/dist/next/{DataTable-B0-pq0MG.cjs.map → DataTable-CEtAY0ni.cjs.map} +1 -1
- package/dist/next/{DataTable-D17xbmiu.js → DataTable-mI4d3Caj.js} +41 -41
- package/dist/next/{DataTable-D17xbmiu.js.map → DataTable-mI4d3Caj.js.map} +1 -1
- package/dist/next/DataTable.cjs.js +1 -1
- package/dist/next/DataTable.js +1 -1
- package/dist/next/{DateTimePicker-BJnnZBgd.js → DateTimePicker-A94kVkvi.js} +54 -33
- package/dist/next/DateTimePicker-A94kVkvi.js.map +1 -0
- package/dist/next/{DateTimePicker-DivMR4Oe.cjs → DateTimePicker-D96GYbVW.cjs} +54 -33
- package/dist/next/DateTimePicker-D96GYbVW.cjs.map +1 -0
- package/dist/next/DateTimePicker.cjs.js +1 -1
- package/dist/next/DateTimePicker.js +1 -1
- package/dist/next/{Divider-Bew1Qx5f.cjs → Divider-BMuNHQ9J.cjs} +37 -16
- package/dist/next/{Divider-Bew1Qx5f.cjs.map → Divider-BMuNHQ9J.cjs.map} +1 -1
- package/dist/next/{Divider-BGf_EQkK.js → Divider-DjoDcCAu.js} +37 -16
- package/dist/next/{Divider-BGf_EQkK.js.map → Divider-DjoDcCAu.js.map} +1 -1
- package/dist/next/Divider.cjs.js +1 -1
- package/dist/next/Divider.js +1 -1
- package/dist/next/{Dropdown-DqYjIelJ.js → Dropdown-BrJnoyCw.js} +23 -21
- package/dist/next/Dropdown-BrJnoyCw.js.map +1 -0
- package/dist/next/{Dropdown-qvuelg8z.cjs → Dropdown-DU7oZ_ZP.cjs} +23 -21
- package/dist/next/Dropdown-DU7oZ_ZP.cjs.map +1 -0
- package/dist/next/Dropdown.cjs.js +1 -1
- package/dist/next/Dropdown.js +1 -1
- package/dist/next/{EmptyState-DMIL8ecB.cjs → EmptyState-DULVBTGn.cjs} +38 -38
- package/dist/next/{EmptyState-DMIL8ecB.cjs.map → EmptyState-DULVBTGn.cjs.map} +1 -1
- package/dist/next/{EmptyState-CNii02MI.js → EmptyState-JzLtobCN.js} +38 -38
- package/dist/next/{EmptyState-CNii02MI.js.map → EmptyState-JzLtobCN.js.map} +1 -1
- package/dist/next/EmptyState.cjs.js +1 -1
- package/dist/next/EmptyState.js +1 -1
- package/dist/next/{FileUpload-BSqFdKZD.js → FileUpload-Bp7Pbj8m.js} +55 -53
- package/dist/next/{FileUpload-BSqFdKZD.js.map → FileUpload-Bp7Pbj8m.js.map} +1 -1
- package/dist/next/{FileUpload-DpxmgS-B.cjs → FileUpload-CUFWjI06.cjs} +55 -53
- package/dist/next/{FileUpload-DpxmgS-B.cjs.map → FileUpload-CUFWjI06.cjs.map} +1 -1
- package/dist/next/FileUpload.cjs.js +1 -1
- package/dist/next/FileUpload.js +1 -1
- package/dist/next/{Footer-CD8eu471.js → Footer-BfzKhBAD.js} +61 -49
- package/dist/next/Footer-BfzKhBAD.js.map +1 -0
- package/dist/next/{Footer-CukKL1zM.cjs → Footer-Cd9jSPv8.cjs} +61 -49
- package/dist/next/Footer-Cd9jSPv8.cjs.map +1 -0
- package/dist/next/Footer.cjs.js +1 -1
- package/dist/next/Footer.js +1 -1
- package/dist/next/{FormGroup-DXvH4AmB.cjs → FormGroup-DNvdijpi.cjs} +39 -37
- package/dist/next/{FormGroup-DXvH4AmB.cjs.map → FormGroup-DNvdijpi.cjs.map} +1 -1
- package/dist/next/{FormGroup-DSDuqKWJ.js → FormGroup-DUVdekj1.js} +39 -37
- package/dist/next/{FormGroup-DSDuqKWJ.js.map → FormGroup-DUVdekj1.js.map} +1 -1
- package/dist/next/FormGroup.cjs.js +1 -1
- package/dist/next/FormGroup.js +1 -1
- package/dist/next/{IconButton--X_Bqn4g.cjs → IconButton-VSz8qAIg.cjs} +46 -52
- package/dist/next/IconButton-VSz8qAIg.cjs.map +1 -0
- package/dist/next/{IconButton-B1r838wY.js → IconButton-qQljwBB2.js} +46 -52
- package/dist/next/IconButton-qQljwBB2.js.map +1 -0
- package/dist/next/IconButton.cjs.js +1 -1
- package/dist/next/IconButton.js +1 -1
- package/dist/next/{MarkdownRenderer-ByOcqHm_.cjs → MarkdownRenderer-BrVUEjkX.cjs} +13 -12
- package/dist/next/MarkdownRenderer-BrVUEjkX.cjs.map +1 -0
- package/dist/next/{MarkdownRenderer-r0prlhyN.js → MarkdownRenderer-CTF0Vhf5.js} +13 -12
- package/dist/next/MarkdownRenderer-CTF0Vhf5.js.map +1 -0
- package/dist/next/MarkdownRenderer.cjs.js +1 -1
- package/dist/next/MarkdownRenderer.js +1 -1
- package/dist/next/MessagePopUp.cjs.js +1 -1
- package/dist/next/MessagePopUp.js +1 -1
- package/dist/next/{MessagePopup-BL7842Cu.cjs → MessagePopup-DB8VBIft.cjs} +20 -18
- package/dist/next/MessagePopup-DB8VBIft.cjs.map +1 -0
- package/dist/next/{MessagePopup-Bjgods-d.js → MessagePopup-DCN-w-NA.js} +20 -18
- package/dist/next/MessagePopup-DCN-w-NA.js.map +1 -0
- package/dist/next/{MetricBox-CM85hhlk.js → MetricBox-CN8cgCgr.js} +63 -63
- package/dist/next/{MetricBox-CM85hhlk.js.map → MetricBox-CN8cgCgr.js.map} +1 -1
- package/dist/next/{MetricBox-B9AG8u6p.cjs → MetricBox-CX3SSwgU.cjs} +63 -63
- package/dist/next/{MetricBox-B9AG8u6p.cjs.map → MetricBox-CX3SSwgU.cjs.map} +1 -1
- package/dist/next/MetricBox.cjs.js +1 -1
- package/dist/next/MetricBox.js +1 -1
- package/dist/next/{Modal-BddVxoXY.js → Modal-BD9sPXIX.js} +17 -17
- package/dist/next/Modal-BD9sPXIX.js.map +1 -0
- package/dist/next/{Modal-Bauehvf1.cjs → Modal-BVjarg0E.cjs} +17 -17
- package/dist/next/Modal-BVjarg0E.cjs.map +1 -0
- package/dist/next/Modal.cjs.js +1 -1
- package/dist/next/Modal.js +1 -1
- package/dist/next/{NavBar-yvxI6w8C.cjs → NavBar-DT_k688s.cjs} +40 -39
- package/dist/next/NavBar-DT_k688s.cjs.map +1 -0
- package/dist/next/{NavBar-kgNrVtKB.js → NavBar-Dfljduy2.js} +40 -39
- package/dist/next/NavBar-Dfljduy2.js.map +1 -0
- package/dist/next/NavBar.cjs.js +1 -1
- package/dist/next/NavBar.js +1 -1
- package/dist/next/{NotificationCenter-dkrHsIKr.cjs → NotificationCenter-B2y-QbtY.cjs} +126 -105
- package/dist/{core/NotificationCenter-DpdzdrPB.cjs.map → next/NotificationCenter-B2y-QbtY.cjs.map} +1 -1
- package/dist/next/{NotificationCenter-DlbqVzzr.js → NotificationCenter-C99EfjxX.js} +126 -105
- package/dist/{core/NotificationCenter-BkoTAZCz.js.map → next/NotificationCenter-C99EfjxX.js.map} +1 -1
- package/dist/next/NotificationCenter.cjs.js +1 -1
- package/dist/next/NotificationCenter.js +1 -1
- package/dist/next/{Pager-jPCTdMIg.cjs → Pager-CB55NJSy.cjs} +8 -8
- package/dist/next/{Pager-jPCTdMIg.cjs.map → Pager-CB55NJSy.cjs.map} +1 -1
- package/dist/next/{Pager-CGqvekhJ.js → Pager-SZIzesuj.js} +8 -8
- package/dist/next/{Pager-CGqvekhJ.js.map → Pager-SZIzesuj.js.map} +1 -1
- package/dist/next/Pager.cjs.js +1 -1
- package/dist/next/Pager.js +1 -1
- package/dist/next/{PopOver-BBFa0Sr0.js → PopOver-BbAFKptt.js} +40 -40
- package/dist/next/{PopOver-BBFa0Sr0.js.map → PopOver-BbAFKptt.js.map} +1 -1
- package/dist/next/{PopOver-DoS-aqXT.cjs → PopOver-iFFxszSk.cjs} +40 -40
- package/dist/next/{PopOver-DoS-aqXT.cjs.map → PopOver-iFFxszSk.cjs.map} +1 -1
- package/dist/next/PopOver.cjs.js +1 -1
- package/dist/next/PopOver.js +1 -1
- package/dist/next/{ProgressBar-BIojCvdG.js → ProgressBar-Csn4f4-c.js} +43 -43
- package/dist/next/{ProgressBar-BIojCvdG.js.map → ProgressBar-Csn4f4-c.js.map} +1 -1
- package/dist/next/{ProgressBar-DyyIhH1C.cjs → ProgressBar-nXC_4OnG.cjs} +43 -43
- package/dist/next/{ProgressBar-DyyIhH1C.cjs.map → ProgressBar-nXC_4OnG.cjs.map} +1 -1
- package/dist/next/ProgressBar.cjs.js +1 -1
- package/dist/next/ProgressBar.js +1 -1
- package/dist/next/{RadioButton-V4J4u58H.cjs → RadioButton-6cb-ZRjy.cjs} +41 -41
- package/dist/next/{RadioButton-V4J4u58H.cjs.map → RadioButton-6cb-ZRjy.cjs.map} +1 -1
- package/dist/next/{RadioButton-B2yQz2_q.js → RadioButton-8E5GjzZu.js} +41 -41
- package/dist/next/{RadioButton-B2yQz2_q.js.map → RadioButton-8E5GjzZu.js.map} +1 -1
- package/dist/next/RadioButton.cjs.js +1 -1
- package/dist/next/RadioButton.js +1 -1
- package/dist/next/{Rating-C1Lb-VqV.cjs → Rating-Cpu_QzeB.cjs} +35 -35
- package/dist/next/{Rating-C1Lb-VqV.cjs.map → Rating-Cpu_QzeB.cjs.map} +1 -1
- package/dist/next/{Rating-DQsfA43l.js → Rating-DTMNrx0D.js} +35 -35
- package/dist/next/{Rating-DQsfA43l.js.map → Rating-DTMNrx0D.js.map} +1 -1
- package/dist/next/Rating.cjs.js +1 -1
- package/dist/next/Rating.js +1 -1
- package/dist/next/{STT-BygzgjFx.cjs → STT-CGgFuLw2.cjs} +14 -14
- package/dist/next/{STT-BygzgjFx.cjs.map → STT-CGgFuLw2.cjs.map} +1 -1
- package/dist/next/{STT-DKdM1tbk.js → STT-D-gwtml7.js} +14 -14
- package/dist/next/{STT-DKdM1tbk.js.map → STT-D-gwtml7.js.map} +1 -1
- package/dist/next/ScrollToTop.cjs.js +1 -1
- package/dist/next/ScrollToTop.js +1 -1
- package/dist/next/{Select-D4QdlQ6W.cjs → Select-DcMXhPmp.cjs} +51 -63
- package/dist/next/Select-DcMXhPmp.cjs.map +1 -0
- package/dist/next/{Select-B3JaOW2f.js → Select-rZ9u_rNi.js} +51 -63
- package/dist/next/Select-rZ9u_rNi.js.map +1 -0
- package/dist/next/Select.cjs.js +1 -1
- package/dist/next/Select.js +1 -1
- package/dist/next/{Sidebar-CbQ4ssz-.cjs → Sidebar-D2kCGLTC.cjs} +54 -74
- package/dist/next/Sidebar-D2kCGLTC.cjs.map +1 -0
- package/dist/next/{Sidebar-C6NbdjWV.js → Sidebar-DAGCv1cb.js} +54 -74
- package/dist/next/Sidebar-DAGCv1cb.js.map +1 -0
- package/dist/next/Sidebar.cjs.js +1 -1
- package/dist/next/Sidebar.js +1 -1
- package/dist/next/{Skeleton-BCbvshNz.cjs → Skeleton-BfebLfbb.cjs} +26 -26
- package/dist/next/{Skeleton-BCbvshNz.cjs.map → Skeleton-BfebLfbb.cjs.map} +1 -1
- package/dist/next/{Skeleton-D8Jqmncm.js → Skeleton-cWCNDrrp.js} +26 -26
- package/dist/next/{Skeleton-D8Jqmncm.js.map → Skeleton-cWCNDrrp.js.map} +1 -1
- package/dist/next/Skeleton.cjs.js +1 -1
- package/dist/next/Skeleton.js +1 -1
- package/dist/next/{Slider-q_hjFuqb.js → Slider-Bk0a8gqL.js} +43 -43
- package/dist/next/{Slider-q_hjFuqb.js.map → Slider-Bk0a8gqL.js.map} +1 -1
- package/dist/next/{Slider-BLoEjvbT.cjs → Slider-CuzYVS0J.cjs} +43 -43
- package/dist/next/{Slider-BLoEjvbT.cjs.map → Slider-CuzYVS0J.cjs.map} +1 -1
- package/dist/next/Slider.cjs.js +1 -1
- package/dist/next/Slider.js +1 -1
- package/dist/next/{Spinner-CagtJg0l.js → Spinner-BntSsGWn.js} +44 -34
- package/dist/next/{Spinner-CagtJg0l.js.map → Spinner-BntSsGWn.js.map} +1 -1
- package/dist/next/{Spinner-Bk_yQWCK.cjs → Spinner-CFah_Wyg.cjs} +44 -34
- package/dist/next/{Spinner-Bk_yQWCK.cjs.map → Spinner-CFah_Wyg.cjs.map} +1 -1
- package/dist/next/Spinner.cjs.js +1 -1
- package/dist/next/Spinner.js +1 -1
- package/dist/next/{Stepper-BzItximd.js → Stepper-59931F6-.js} +46 -60
- package/dist/next/{Stepper-BzItximd.js.map → Stepper-59931F6-.js.map} +1 -1
- package/dist/next/{Stepper-kC6EOZ_b.cjs → Stepper-YxxnY0y2.cjs} +46 -60
- package/dist/next/{Stepper-kC6EOZ_b.cjs.map → Stepper-YxxnY0y2.cjs.map} +1 -1
- package/dist/next/Stepper.cjs.js +1 -1
- package/dist/next/Stepper.js +1 -1
- package/dist/next/Tabs-0GBOWBIt.cjs +262 -0
- package/dist/next/Tabs-0GBOWBIt.cjs.map +1 -0
- package/dist/next/Tabs-Dl389scs.js +263 -0
- package/dist/next/Tabs-Dl389scs.js.map +1 -0
- package/dist/next/Tabs.cjs.js +1 -1
- package/dist/next/Tabs.js +1 -1
- package/dist/next/TagInput-Bjt_zbHy.js +362 -0
- package/dist/next/TagInput-Bjt_zbHy.js.map +1 -0
- package/dist/next/TagInput-Jswp7Yn5.cjs +361 -0
- package/dist/next/TagInput-Jswp7Yn5.cjs.map +1 -0
- package/dist/next/TagInput.cjs.js +1 -1
- package/dist/next/TagInput.js +1 -1
- package/dist/next/{TextArea-OpFozktU.cjs → TextArea-9AvILSCY.cjs} +53 -42
- package/dist/next/TextArea-9AvILSCY.cjs.map +1 -0
- package/dist/next/{TextArea-Bmkg-d0v.js → TextArea-xg4t0Lzo.js} +53 -42
- package/dist/next/TextArea-xg4t0Lzo.js.map +1 -0
- package/dist/next/TextArea.cjs.js +1 -1
- package/dist/next/TextArea.js +1 -1
- package/dist/next/{TextInput-CpbTf99E.cjs → TextInput-Cr0WjibW.cjs} +63 -67
- package/dist/next/TextInput-Cr0WjibW.cjs.map +1 -0
- package/dist/next/{TextInput-G1Pvtebv.js → TextInput-D9dzooMU.js} +63 -67
- package/dist/next/TextInput-D9dzooMU.js.map +1 -0
- package/dist/next/TextInput.cjs.js +1 -1
- package/dist/next/TextInput.js +1 -1
- package/dist/next/{ThemeContext-DJ18CFaV.js → ThemeContext-DSYDwr2m.js} +2 -1
- package/dist/next/ThemeContext-DSYDwr2m.js.map +1 -0
- package/dist/next/{ThemeContext-Iy-HHefR.cjs → ThemeContext-npFEznyu.cjs} +2 -1
- package/dist/next/ThemeContext-npFEznyu.cjs.map +1 -0
- package/dist/next/ThemeProvider.cjs.js +1 -1
- package/dist/next/ThemeProvider.js +1 -1
- package/dist/next/{Timeline-jmKmKwxD.cjs → Timeline-Dju3pHLR.cjs} +53 -62
- package/dist/next/Timeline-Dju3pHLR.cjs.map +1 -0
- package/dist/next/{Timeline-WHRPqD31.js → Timeline-KozBssou.js} +53 -62
- package/dist/next/Timeline-KozBssou.js.map +1 -0
- package/dist/next/Timeline.cjs.js +1 -1
- package/dist/next/Timeline.js +1 -1
- package/dist/next/{Toggle-ei8CN3th.cjs → Toggle-BQG-5q5G.cjs} +67 -46
- package/dist/next/Toggle-BQG-5q5G.cjs.map +1 -0
- package/dist/next/Toggle-Bb5d1QLE.js +172 -0
- package/dist/next/Toggle-Bb5d1QLE.js.map +1 -0
- package/dist/next/Toggle.cjs.js +1 -1
- package/dist/next/Toggle.js +1 -1
- package/dist/next/{Toolbar-Dw__aR2C.js → Toolbar-CHnjBixI.js} +49 -45
- package/dist/next/Toolbar-CHnjBixI.js.map +1 -0
- package/dist/next/{Toolbar-Dv6focMM.cjs → Toolbar-Dxscfy5X.cjs} +49 -45
- package/dist/next/Toolbar-Dxscfy5X.cjs.map +1 -0
- package/dist/next/Toolbar.cjs.js +1 -1
- package/dist/next/Toolbar.js +1 -1
- package/dist/next/Tooltip-2XEuDIAw.js +164 -0
- package/dist/next/Tooltip-2XEuDIAw.js.map +1 -0
- package/dist/next/Tooltip-FCqrcC7D.cjs +163 -0
- package/dist/next/Tooltip-FCqrcC7D.cjs.map +1 -0
- package/dist/next/Tooltip.cjs.js +1 -1
- package/dist/next/Tooltip.js +1 -1
- package/dist/next/index.cjs.js +47 -47
- package/dist/next/index.js +47 -47
- package/dist/next/style.css +13029 -8285
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/types/components/Accordion/AccordionBase.d.ts.map +1 -1
- package/dist/types/components/Badge/BadgeBase.d.ts.map +1 -1
- package/dist/types/components/Breadcrumbs/BreadcrumbsBase.d.ts.map +1 -1
- package/dist/types/components/Button/ButtonBase.d.ts.map +1 -1
- package/dist/types/components/Button/core/Button.d.ts +1 -2
- package/dist/types/components/Button/core/Button.d.ts.map +1 -1
- package/dist/types/components/Button/next/Button.d.ts +1 -2
- package/dist/types/components/Button/next/Button.d.ts.map +1 -1
- package/dist/types/components/Card/Card.types.d.ts +27 -6
- package/dist/types/components/Card/Card.types.d.ts.map +1 -1
- package/dist/types/components/Card/CardBase.d.ts.map +1 -1
- package/dist/types/components/Chip/ChipBase.d.ts.map +1 -1
- package/dist/types/components/DateTimePicker/DateTimePickerBase.d.ts.map +1 -1
- package/dist/types/components/Divider/Divider.types.d.ts.map +1 -1
- package/dist/types/components/Dropdown/Dropdown.types.d.ts +4 -1
- package/dist/types/components/Dropdown/Dropdown.types.d.ts.map +1 -1
- package/dist/types/components/Dropdown/DropdownBase.d.ts.map +1 -1
- package/dist/types/components/EmptyState/EmptyState.types.d.ts +2 -1
- package/dist/types/components/EmptyState/EmptyState.types.d.ts.map +1 -1
- package/dist/types/components/FileUpload/FileUpload.types.d.ts +8 -4
- package/dist/types/components/FileUpload/FileUpload.types.d.ts.map +1 -1
- package/dist/types/components/Footer/Footer.types.d.ts +33 -11
- package/dist/types/components/Footer/Footer.types.d.ts.map +1 -1
- package/dist/types/components/Footer/FooterBase.d.ts.map +1 -1
- package/dist/types/components/IconButton/IconButton.types.d.ts +2 -0
- package/dist/types/components/IconButton/IconButton.types.d.ts.map +1 -1
- package/dist/types/components/IconButton/IconButtonBase.d.ts.map +1 -1
- package/dist/types/components/IconButton/core/IconButton.d.ts +1 -2
- package/dist/types/components/IconButton/core/IconButton.d.ts.map +1 -1
- package/dist/types/components/IconButton/next/IconButton.d.ts +2 -3
- package/dist/types/components/IconButton/next/IconButton.d.ts.map +1 -1
- package/dist/types/components/MarkdownRenderer/MarkdownRendererBase.d.ts.map +1 -1
- package/dist/types/components/MessagePopUp/MessagePopup.types.d.ts +8 -2
- package/dist/types/components/MessagePopUp/MessagePopup.types.d.ts.map +1 -1
- package/dist/types/components/MessagePopUp/core/MessagePopup.d.ts.map +1 -1
- package/dist/types/components/Modal/Modal.types.d.ts +4 -1
- package/dist/types/components/Modal/Modal.types.d.ts.map +1 -1
- package/dist/types/components/NotificationCenter/NotificationCenter.types.d.ts +4 -2
- package/dist/types/components/NotificationCenter/NotificationCenter.types.d.ts.map +1 -1
- package/dist/types/components/NotificationCenter/NotificationCenterBase.d.ts.map +1 -1
- package/dist/types/components/NotificationCenter/core/NotificationCenter.d.ts.map +1 -1
- package/dist/types/components/Pager/Pager.types.d.ts +4 -2
- package/dist/types/components/Pager/Pager.types.d.ts.map +1 -1
- package/dist/types/components/Select/Select.types.d.ts +7 -0
- package/dist/types/components/Select/Select.types.d.ts.map +1 -1
- package/dist/types/components/Select/SelectBase.d.ts.map +1 -1
- package/dist/types/components/Select/ThemeSelect/core/ThemeSelect.d.ts +1 -8
- package/dist/types/components/Select/ThemeSelect/core/ThemeSelect.d.ts.map +1 -1
- package/dist/types/components/Select/ThemeSelect/next/ThemeSelect.d.ts +1 -8
- package/dist/types/components/Select/ThemeSelect/next/ThemeSelect.d.ts.map +1 -1
- package/dist/types/components/Sidebar/SidebarBase.d.ts.map +1 -1
- package/dist/types/components/Sidebar/next/Sidebar.d.ts.map +1 -1
- package/dist/types/components/Stepper/Stepper.types.d.ts +2 -1
- package/dist/types/components/Stepper/Stepper.types.d.ts.map +1 -1
- package/dist/types/components/Stepper/StepperBase.d.ts.map +1 -1
- package/dist/types/components/Tabs/Tabs.types.d.ts +7 -0
- package/dist/types/components/Tabs/Tabs.types.d.ts.map +1 -1
- package/dist/types/components/Tabs/TabsBase.d.ts +2 -4
- package/dist/types/components/Tabs/TabsBase.d.ts.map +1 -1
- package/dist/types/components/TagInput/TagInputBase.d.ts +2 -6
- package/dist/types/components/TagInput/TagInputBase.d.ts.map +1 -1
- package/dist/types/components/TagInput/Taginput.types.d.ts +7 -0
- package/dist/types/components/TagInput/Taginput.types.d.ts.map +1 -1
- package/dist/types/components/TagInput/core/Taginput.d.ts.map +1 -1
- package/dist/types/components/TextArea/TextAreaBase.d.ts.map +1 -1
- package/dist/types/components/TextInput/TextInput.types.d.ts +5 -0
- package/dist/types/components/TextInput/TextInput.types.d.ts.map +1 -1
- package/dist/types/components/TextInput/TextInputBase.d.ts +2 -5
- package/dist/types/components/TextInput/TextInputBase.d.ts.map +1 -1
- package/dist/types/components/Timeline/TimelineBase.d.ts.map +1 -1
- package/dist/types/components/Toggle/Toggle.types.d.ts +3 -0
- package/dist/types/components/Toggle/Toggle.types.d.ts.map +1 -1
- package/dist/types/components/Toggle/ToggleBase.d.ts +1 -4
- package/dist/types/components/Toggle/ToggleBase.d.ts.map +1 -1
- package/dist/types/components/Toolbar/Toolbar.types.d.ts +2 -1
- package/dist/types/components/Toolbar/Toolbar.types.d.ts.map +1 -1
- package/dist/types/components/Toolbar/ToolbarBase.d.ts +2 -1
- package/dist/types/components/Toolbar/ToolbarBase.d.ts.map +1 -1
- package/dist/types/components/Tooltip/TooltipBase.d.ts +4 -2
- package/dist/types/components/Tooltip/TooltipBase.d.ts.map +1 -1
- package/dist/types/context/ThemeContext.d.ts.map +1 -1
- package/package.json +13 -4
- package/dist/core/Accordion-CY5BCoA7.js.map +0 -1
- package/dist/core/Accordion-D6hxjkE1.cjs.map +0 -1
- package/dist/core/Breadcrumbs-BulpkVaU.js.map +0 -1
- package/dist/core/Breadcrumbs-hKtLDMrC.cjs.map +0 -1
- package/dist/core/Button-CD1ETVvS.cjs.map +0 -1
- package/dist/core/Button-sz60qyTn.js.map +0 -1
- package/dist/core/Card-BRExeyNd.js.map +0 -1
- package/dist/core/Card-jrGaJLdX.cjs.map +0 -1
- package/dist/core/Chip-ByR2AKjl.js.map +0 -1
- package/dist/core/Chip-C6sk2qAd.cjs.map +0 -1
- package/dist/core/DateTimePicker-Cq_QZBV5.js.map +0 -1
- package/dist/core/DateTimePicker-DU-vjgee.cjs.map +0 -1
- package/dist/core/Dropdown-CJo6T9__.cjs.map +0 -1
- package/dist/core/Dropdown-Dzjmt9gx.js.map +0 -1
- package/dist/core/FileUpload-Bcu5v4TO.js.map +0 -1
- package/dist/core/FileUpload-DrPV-Oiy.cjs.map +0 -1
- package/dist/core/Footer-DrYZJObN.cjs.map +0 -1
- package/dist/core/Footer-vLVfqKWf.js.map +0 -1
- package/dist/core/IconButton-B9WWbeSM.js.map +0 -1
- package/dist/core/IconButton-D_W4nsPZ.cjs.map +0 -1
- package/dist/core/MarkdownRenderer-COnLzf0t.js.map +0 -1
- package/dist/core/MarkdownRenderer-OUEnVOLG.cjs.map +0 -1
- package/dist/core/MessagePopup-CIsMNnVM.cjs.map +0 -1
- package/dist/core/MessagePopup-DiipcrNp.js.map +0 -1
- package/dist/core/Modal-BdxvP-Ei.cjs.map +0 -1
- package/dist/core/Modal-Bi8OdWKS.js.map +0 -1
- package/dist/core/NavBar-CBC9YPkH.js.map +0 -1
- package/dist/core/NavBar-DUNxiip6.cjs.map +0 -1
- package/dist/core/Select-C65ai0xO.cjs.map +0 -1
- package/dist/core/Select-bMjOWXRX.js.map +0 -1
- package/dist/core/Stepper-Cphvkx0O.cjs.map +0 -1
- package/dist/core/Stepper-DNSzwiZR.js.map +0 -1
- package/dist/core/Tabs-DptKFvPK.cjs.map +0 -1
- package/dist/core/Tabs-gpyaJFUs.js.map +0 -1
- package/dist/core/Taginput-BNZg4SGI.cjs +0 -244
- package/dist/core/Taginput-BNZg4SGI.cjs.map +0 -1
- package/dist/core/Taginput-D0wKEzGh.js +0 -245
- package/dist/core/Taginput-D0wKEzGh.js.map +0 -1
- package/dist/core/TextArea-DrU4oCj0.js.map +0 -1
- package/dist/core/TextArea-Nj-eO3Pv.cjs.map +0 -1
- package/dist/core/TextInput-B03e-LMT.cjs.map +0 -1
- package/dist/core/TextInput-C8mNE1R4.js.map +0 -1
- package/dist/core/ThemeContext-DJ18CFaV.js.map +0 -1
- package/dist/core/ThemeContext-D_SPnedS.cjs.map +0 -1
- package/dist/core/Timeline-D7fd8-u_.js.map +0 -1
- package/dist/core/Timeline-Dk0q-8BZ.cjs.map +0 -1
- package/dist/core/Toggle-CZftIdc3.js.map +0 -1
- package/dist/core/Toggle-v31rt4Ya.cjs.map +0 -1
- package/dist/core/Toolbar-Tf01bUjT.js.map +0 -1
- package/dist/core/Toolbar-zZrwUT66.cjs.map +0 -1
- package/dist/core/Tooltip-5SfsTZvz.cjs +0 -105
- package/dist/core/Tooltip-5SfsTZvz.cjs.map +0 -1
- package/dist/core/Tooltip-XfsZnGgV.js +0 -106
- package/dist/core/Tooltip-XfsZnGgV.js.map +0 -1
- package/dist/next/Accordion-81qBJa4M.js.map +0 -1
- package/dist/next/Accordion-CmbMyudL.cjs.map +0 -1
- package/dist/next/Badge-BG9cWEDv.js.map +0 -1
- package/dist/next/Badge-DLSfi5vo.cjs.map +0 -1
- package/dist/next/Breadcrumbs-IO2iNAjN.js.map +0 -1
- package/dist/next/Breadcrumbs-veVO4yuY.cjs.map +0 -1
- package/dist/next/Button-DN8rTQSp.js.map +0 -1
- package/dist/next/Button-sIKQmn_c.cjs.map +0 -1
- package/dist/next/Card-B9EjkoVy.js.map +0 -1
- package/dist/next/Card-BQTJkNCL.cjs.map +0 -1
- package/dist/next/Chip-CekCQRke.js.map +0 -1
- package/dist/next/Chip-CfJ473TI.cjs.map +0 -1
- package/dist/next/DateTimePicker-BJnnZBgd.js.map +0 -1
- package/dist/next/DateTimePicker-DivMR4Oe.cjs.map +0 -1
- package/dist/next/Dropdown-DqYjIelJ.js.map +0 -1
- package/dist/next/Dropdown-qvuelg8z.cjs.map +0 -1
- package/dist/next/Footer-CD8eu471.js.map +0 -1
- package/dist/next/Footer-CukKL1zM.cjs.map +0 -1
- package/dist/next/IconButton--X_Bqn4g.cjs.map +0 -1
- package/dist/next/IconButton-B1r838wY.js.map +0 -1
- package/dist/next/MarkdownRenderer-ByOcqHm_.cjs.map +0 -1
- package/dist/next/MarkdownRenderer-r0prlhyN.js.map +0 -1
- package/dist/next/MessagePopup-BL7842Cu.cjs.map +0 -1
- package/dist/next/MessagePopup-Bjgods-d.js.map +0 -1
- package/dist/next/Modal-Bauehvf1.cjs.map +0 -1
- package/dist/next/Modal-BddVxoXY.js.map +0 -1
- package/dist/next/NavBar-kgNrVtKB.js.map +0 -1
- package/dist/next/NavBar-yvxI6w8C.cjs.map +0 -1
- package/dist/next/Select-B3JaOW2f.js.map +0 -1
- package/dist/next/Select-D4QdlQ6W.cjs.map +0 -1
- package/dist/next/Sidebar-C6NbdjWV.js.map +0 -1
- package/dist/next/Sidebar-CbQ4ssz-.cjs.map +0 -1
- package/dist/next/Tabs-CuF_JTan.js +0 -215
- package/dist/next/Tabs-CuF_JTan.js.map +0 -1
- package/dist/next/Tabs-DhQgzZKQ.cjs +0 -214
- package/dist/next/Tabs-DhQgzZKQ.cjs.map +0 -1
- package/dist/next/TagInput-CJ2XdMU0.js +0 -297
- package/dist/next/TagInput-CJ2XdMU0.js.map +0 -1
- package/dist/next/TagInput-DuvUD94J.cjs +0 -296
- package/dist/next/TagInput-DuvUD94J.cjs.map +0 -1
- package/dist/next/TextArea-Bmkg-d0v.js.map +0 -1
- package/dist/next/TextArea-OpFozktU.cjs.map +0 -1
- package/dist/next/TextInput-CpbTf99E.cjs.map +0 -1
- package/dist/next/TextInput-G1Pvtebv.js.map +0 -1
- package/dist/next/ThemeContext-DJ18CFaV.js.map +0 -1
- package/dist/next/ThemeContext-Iy-HHefR.cjs.map +0 -1
- package/dist/next/Timeline-WHRPqD31.js.map +0 -1
- package/dist/next/Timeline-jmKmKwxD.cjs.map +0 -1
- package/dist/next/Toggle-D1vM9KrI.js +0 -151
- package/dist/next/Toggle-D1vM9KrI.js.map +0 -1
- package/dist/next/Toggle-ei8CN3th.cjs.map +0 -1
- package/dist/next/Toolbar-Dv6focMM.cjs.map +0 -1
- package/dist/next/Toolbar-Dw__aR2C.js.map +0 -1
- package/dist/next/Tooltip-CnwS0tgW.cjs +0 -150
- package/dist/next/Tooltip-CnwS0tgW.cjs.map +0 -1
- package/dist/next/Tooltip-DhRckexD.js +0 -151
- package/dist/next/Tooltip-DhRckexD.js.map +0 -1
- package/dist/types/components/Footer/next/ClientFooterWrapper.d.ts +0 -24
- package/dist/types/components/Footer/next/ClientFooterWrapper.d.ts.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Card-BRExeyNd.js","sources":["../../src/components/Card/CardBase.tsx","../../src/components/Card/core/Card.tsx"],"sourcesContent":["import React, { useId, useMemo } from \"react\";\r\nimport { CardBaseProps } from \"./Card.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultSize,\r\n getDefaultTheme,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nconst CardBase: React.FC<CardBaseProps> = ({\r\n theme = getDefaultTheme(),\r\n state = \"\",\r\n cardIcon,\r\n title = \"\",\r\n description = \"\",\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n imageUrl,\r\n imageAlt,\r\n imageHeight,\r\n imageWidth,\r\n imageFill,\r\n className = \"\",\r\n imageClassName = \"\",\r\n headerClassName = \"\",\r\n bodyClassName = \"\",\r\n footerClassName = \"\",\r\n outline = false,\r\n size = getDefaultSize(),\r\n align = \"center\",\r\n renderHeader,\r\n renderContent,\r\n renderFooter,\r\n actionButtons = [],\r\n useIconButtons = false,\r\n layout = \"vertical\",\r\n loading = false,\r\n children,\r\n \"data-testid\": testId = \"card\",\r\n \"aria-labelledby\": ariaLabelledBy,\r\n \"aria-label\": ariaLabel,\r\n classMap,\r\n SkeletonComponent,\r\n ImageComponent,\r\n}) => {\r\n const autoId = useId();\r\n const headerId = ariaLabelledBy || `${autoId}-header`;\r\n const descriptionId = `${autoId}-description`;\r\n const hasImage = !!imageUrl;\r\n const derivedAriaLabel = ariaLabel || title || description || \"Content card\";\r\n\r\n const FallbackImage = (props: React.ImgHTMLAttributes<HTMLImageElement>) => (\r\n <img {...props} />\r\n );\r\n\r\n const hasImageObj =\r\n typeof imageUrl === \"object\" && imageUrl && \"src\" in imageUrl;\r\n const imgSrc = hasImageObj ? imageUrl.src : (imageUrl as string | undefined);\r\n\r\n const resolvedWidth =\r\n (hasImageObj ? (imageUrl as any).width : undefined) ?? imageWidth;\r\n const resolvedHeight =\r\n (hasImageObj ? (imageUrl as any).height : undefined) ?? imageHeight;\r\n\r\n const imgAlt = imageAlt || `${title || \"Card\"} image`;\r\n\r\n const ImageRenderer = ImageComponent || FallbackImage;\r\n const isNextImage = typeof ImageRenderer !== \"string\";\r\n\r\n const cardClassName = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.card,\r\n classMap[layout],\r\n align && classMap[align],\r\n classMap[theme],\r\n classMap[state],\r\n classMap[size],\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n outline && classMap.outline,\r\n loading && classMap.loading,\r\n className\r\n ),\r\n [\r\n classMap,\r\n layout,\r\n align,\r\n theme,\r\n state,\r\n size,\r\n shadow,\r\n rounding,\r\n outline,\r\n loading,\r\n className,\r\n ]\r\n );\r\n\r\n return (\r\n <div\r\n data-testid={testId}\r\n className={cardClassName}\r\n role=\"region\"\r\n aria-labelledby={title ? headerId : undefined}\r\n aria-label={!title ? derivedAriaLabel : undefined}\r\n aria-busy={loading || undefined}\r\n >\r\n {loading ? (\r\n <SkeletonComponent\r\n width=\"250px\"\r\n height=\"250px\"\r\n data-testid={`${testId}-skeleton`}\r\n />\r\n ) : (\r\n <div className={classMap.content}>\r\n {hasImage &&\r\n (imageFill ? (\r\n <div className={classMap.media}>\r\n <ImageRenderer\r\n src={imgSrc as any}\r\n alt={imgAlt}\r\n className={combineClassNames(classMap.image, imageClassName)}\r\n {...(isNextImage ? { fill: true } : {})}\r\n {...(!isNextImage ? { loading: \"lazy\" as const } : {})}\r\n />\r\n </div>\r\n ) : (\r\n <ImageRenderer\r\n src={imgSrc as any}\r\n alt={imgAlt}\r\n className={combineClassNames(classMap.image, imageClassName)}\r\n width={resolvedWidth ?? 640}\r\n height={resolvedHeight ?? 360}\r\n {...(!isNextImage ? { loading: \"lazy\" as const } : {})}\r\n />\r\n ))}\r\n\r\n <div>\r\n <div\r\n className={combineClassNames(classMap.header, headerClassName)}\r\n id={headerId}\r\n >\r\n {renderHeader ? (\r\n renderHeader()\r\n ) : title ? (\r\n <h2 className={classMap.title}>\r\n {cardIcon && (\r\n <span\r\n className={classMap.icon}\r\n aria-hidden=\"true\"\r\n data-testid={`${testId}-icon`}\r\n >\r\n {React.createElement(cardIcon)}\r\n </span>\r\n )}\r\n {title}\r\n </h2>\r\n ) : null}\r\n </div>\r\n\r\n <div\r\n className={combineClassNames(classMap.body, bodyClassName)}\r\n role=\"group\"\r\n aria-describedby={description ? descriptionId : undefined}\r\n >\r\n {renderContent ? (\r\n renderContent()\r\n ) : (\r\n <>\r\n {description && (\r\n <p id={descriptionId} className={classMap.description}>\r\n {description}\r\n </p>\r\n )}\r\n {children && (\r\n <div className={classMap.children}>{children}</div>\r\n )}\r\n </>\r\n )}\r\n </div>\r\n\r\n {(actionButtons.length > 0 || renderFooter) && (\r\n <div\r\n className={combineClassNames(classMap.footer, footerClassName)}\r\n >\r\n {actionButtons.length > 0 && (\r\n <div className={classMap.actions}>\r\n {actionButtons.map((button, index) =>\r\n useIconButtons && button.icon ? (\r\n <button.iconButtonComponent\r\n key={index}\r\n icon={button.icon}\r\n onClick={button.onClick}\r\n className={classMap.action_button}\r\n theme={button.theme || \"clear\"}\r\n state={button.state || \"\"}\r\n aria-label={button.label}\r\n size={button.size || size}\r\n href={button.href}\r\n loading={button.loading}\r\n />\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 >\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 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\n\r\nexport default Card;\r\n"],"names":["Skeleton"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Card-jrGaJLdX.cjs","sources":["../../src/components/Card/CardBase.tsx","../../src/components/Card/core/Card.tsx"],"sourcesContent":["import React, { useId, useMemo } from \"react\";\r\nimport { CardBaseProps } from \"./Card.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultSize,\r\n getDefaultTheme,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nconst CardBase: React.FC<CardBaseProps> = ({\r\n theme = getDefaultTheme(),\r\n state = \"\",\r\n cardIcon,\r\n title = \"\",\r\n description = \"\",\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n imageUrl,\r\n imageAlt,\r\n imageHeight,\r\n imageWidth,\r\n imageFill,\r\n className = \"\",\r\n imageClassName = \"\",\r\n headerClassName = \"\",\r\n bodyClassName = \"\",\r\n footerClassName = \"\",\r\n outline = false,\r\n size = getDefaultSize(),\r\n align = \"center\",\r\n renderHeader,\r\n renderContent,\r\n renderFooter,\r\n actionButtons = [],\r\n useIconButtons = false,\r\n layout = \"vertical\",\r\n loading = false,\r\n children,\r\n \"data-testid\": testId = \"card\",\r\n \"aria-labelledby\": ariaLabelledBy,\r\n \"aria-label\": ariaLabel,\r\n classMap,\r\n SkeletonComponent,\r\n ImageComponent,\r\n}) => {\r\n const autoId = useId();\r\n const headerId = ariaLabelledBy || `${autoId}-header`;\r\n const descriptionId = `${autoId}-description`;\r\n const hasImage = !!imageUrl;\r\n const derivedAriaLabel = ariaLabel || title || description || \"Content card\";\r\n\r\n const FallbackImage = (props: React.ImgHTMLAttributes<HTMLImageElement>) => (\r\n <img {...props} />\r\n );\r\n\r\n const hasImageObj =\r\n typeof imageUrl === \"object\" && imageUrl && \"src\" in imageUrl;\r\n const imgSrc = hasImageObj ? imageUrl.src : (imageUrl as string | undefined);\r\n\r\n const resolvedWidth =\r\n (hasImageObj ? (imageUrl as any).width : undefined) ?? imageWidth;\r\n const resolvedHeight =\r\n (hasImageObj ? (imageUrl as any).height : undefined) ?? imageHeight;\r\n\r\n const imgAlt = imageAlt || `${title || \"Card\"} image`;\r\n\r\n const ImageRenderer = ImageComponent || FallbackImage;\r\n const isNextImage = typeof ImageRenderer !== \"string\";\r\n\r\n const cardClassName = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.card,\r\n classMap[layout],\r\n align && classMap[align],\r\n classMap[theme],\r\n classMap[state],\r\n classMap[size],\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n outline && classMap.outline,\r\n loading && classMap.loading,\r\n className\r\n ),\r\n [\r\n classMap,\r\n layout,\r\n align,\r\n theme,\r\n state,\r\n size,\r\n shadow,\r\n rounding,\r\n outline,\r\n loading,\r\n className,\r\n ]\r\n );\r\n\r\n return (\r\n <div\r\n data-testid={testId}\r\n className={cardClassName}\r\n role=\"region\"\r\n aria-labelledby={title ? headerId : undefined}\r\n aria-label={!title ? derivedAriaLabel : undefined}\r\n aria-busy={loading || undefined}\r\n >\r\n {loading ? (\r\n <SkeletonComponent\r\n width=\"250px\"\r\n height=\"250px\"\r\n data-testid={`${testId}-skeleton`}\r\n />\r\n ) : (\r\n <div className={classMap.content}>\r\n {hasImage &&\r\n (imageFill ? (\r\n <div className={classMap.media}>\r\n <ImageRenderer\r\n src={imgSrc as any}\r\n alt={imgAlt}\r\n className={combineClassNames(classMap.image, imageClassName)}\r\n {...(isNextImage ? { fill: true } : {})}\r\n {...(!isNextImage ? { loading: \"lazy\" as const } : {})}\r\n />\r\n </div>\r\n ) : (\r\n <ImageRenderer\r\n src={imgSrc as any}\r\n alt={imgAlt}\r\n className={combineClassNames(classMap.image, imageClassName)}\r\n width={resolvedWidth ?? 640}\r\n height={resolvedHeight ?? 360}\r\n {...(!isNextImage ? { loading: \"lazy\" as const } : {})}\r\n />\r\n ))}\r\n\r\n <div>\r\n <div\r\n className={combineClassNames(classMap.header, headerClassName)}\r\n id={headerId}\r\n >\r\n {renderHeader ? (\r\n renderHeader()\r\n ) : title ? (\r\n <h2 className={classMap.title}>\r\n {cardIcon && (\r\n <span\r\n className={classMap.icon}\r\n aria-hidden=\"true\"\r\n data-testid={`${testId}-icon`}\r\n >\r\n {React.createElement(cardIcon)}\r\n </span>\r\n )}\r\n {title}\r\n </h2>\r\n ) : null}\r\n </div>\r\n\r\n <div\r\n className={combineClassNames(classMap.body, bodyClassName)}\r\n role=\"group\"\r\n aria-describedby={description ? descriptionId : undefined}\r\n >\r\n {renderContent ? (\r\n renderContent()\r\n ) : (\r\n <>\r\n {description && (\r\n <p id={descriptionId} className={classMap.description}>\r\n {description}\r\n </p>\r\n )}\r\n {children && (\r\n <div className={classMap.children}>{children}</div>\r\n )}\r\n </>\r\n )}\r\n </div>\r\n\r\n {(actionButtons.length > 0 || renderFooter) && (\r\n <div\r\n className={combineClassNames(classMap.footer, footerClassName)}\r\n >\r\n {actionButtons.length > 0 && (\r\n <div className={classMap.actions}>\r\n {actionButtons.map((button, index) =>\r\n useIconButtons && button.icon ? (\r\n <button.iconButtonComponent\r\n key={index}\r\n icon={button.icon}\r\n onClick={button.onClick}\r\n className={classMap.action_button}\r\n theme={button.theme || \"clear\"}\r\n state={button.state || \"\"}\r\n aria-label={button.label}\r\n size={button.size || size}\r\n href={button.href}\r\n loading={button.loading}\r\n />\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 >\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 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\n\r\nexport default Card;\r\n"],"names":["getDefaultTheme","getDefaultRounding","getDefaultShadow","getDefaultSize","useId","jsx","useMemo","combineClassNames","capitalize","jsxs","Fragment","Button","IconButton","Skeleton"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Chip-ByR2AKjl.js","sources":["../../src/components/Chip/ChipBase.tsx","../../src/components/Chip/core/Chip.tsx"],"sourcesContent":["import { useCallback, useEffect, useState, KeyboardEvent } from \"react\";\r\nimport { createPortal } from \"react-dom\";\r\nimport { ChipBaseProps } from \"./Chip.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultSize,\r\n getDefaultTheme,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nconst ChipBase: React.FC<ChipBaseProps> = ({\r\n id,\r\n message,\r\n visible,\r\n onClose,\r\n icon: Icon,\r\n size = getDefaultSize(),\r\n theme = getDefaultTheme(),\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n state = \"\",\r\n position = \"topCenter\",\r\n usePortal = true,\r\n className = \"\",\r\n autoClose = true,\r\n duration = 3000,\r\n closeIcon: CloseIcon,\r\n IconButtonComponent,\r\n classMap,\r\n stackIndex,\r\n \"data-testid\": testId = \"chip\",\r\n}) => {\r\n const [closing, setClosing] = useState(false);\r\n\r\n const handleClose = useCallback(() => {\r\n setClosing(true);\r\n setTimeout(() => onClose?.(), 300);\r\n }, [onClose]);\r\n\r\n useEffect(() => {\r\n if (autoClose && visible) {\r\n const timer = setTimeout(() => handleClose(), duration);\r\n return () => clearTimeout(timer);\r\n }\r\n }, [autoClose, duration, visible, handleClose]);\r\n\r\n useEffect(() => {\r\n if (visible) setClosing(false);\r\n }, [visible]);\r\n\r\n useEffect(() => {\r\n if (!visible) return;\r\n const onKey = (e: globalThis.KeyboardEvent) => {\r\n if (e.key === \"Escape\") handleClose();\r\n };\r\n window.addEventListener(\"keydown\", onKey);\r\n return () => window.removeEventListener(\"keydown\", onKey);\r\n }, [visible, handleClose]);\r\n\r\n if (!visible && !closing) return null;\r\n\r\n const chipClassName = combineClassNames(\r\n classMap.chip,\r\n classMap[theme],\r\n classMap[state],\r\n classMap[size],\r\n classMap[position],\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n closing && classMap.fadeout,\r\n usePortal && classMap.fixed,\r\n className\r\n );\r\n\r\n const isAssertive = state === \"error\" || state === \"warning\";\r\n\r\n const portalEl =\r\n typeof window !== \"undefined\"\r\n ? document.getElementById(\"widget-portal\")\r\n : null;\r\n\r\n const chipElement = (\r\n <div\r\n key={id}\r\n className={chipClassName}\r\n role=\"alert\"\r\n aria-live=\"assertive\"\r\n aria-atomic=\"true\"\r\n data-testid={testId}\r\n style={stackIndex != null ? { zIndex: stackIndex } : undefined}\r\n >\r\n {Icon && (\r\n <span\r\n className={classMap.icon}\r\n aria-hidden=\"true\"\r\n data-testid={`${testId}-icon`}\r\n >\r\n <Icon className={classMap.inner_icon} />\r\n </span>\r\n )}\r\n <span className={classMap.message} id={`${testId}-message`}>\r\n {message}\r\n </span>\r\n\r\n <IconButtonComponent\r\n icon={CloseIcon}\r\n size={size}\r\n theme=\"clear\"\r\n ariaLabel=\"Close notification\"\r\n aria-controls={`${testId}-message`}\r\n className={classMap.close}\r\n onClick={handleClose}\r\n shadow=\"none\"\r\n data-testid={`${testId}-chip-close`}\r\n />\r\n </div>\r\n );\r\n\r\n if (usePortal && portalEl) {\r\n return createPortal(chipElement, portalEl);\r\n }\r\n\r\n return chipElement;\r\n};\r\n\r\nChipBase.displayName = \"ChipBase\";\r\nexport default ChipBase;\r\n","import React from \"react\";\r\nimport ChipBase from \"../ChipBase\";\r\nimport { CloseIcon } from \"@/Icons\";\r\nimport \"./Chip.scss\";\r\nimport IconButton from \"../../IconButton/core/IconButton\";\r\nimport { ChipProps } from \"../Chip.types\";\r\n\r\nconst classes = {\r\n chip: \"chip\",\r\n icon: \"chip_icon\",\r\n inner_icon: \"chip_icon_inner\",\r\n message: \"chip_message\",\r\n close: \"chip_close\",\r\n relative: \"chip_relative\",\r\n fixed: \"chip_fixed\",\r\n fadeout: \"chip_fadeout\",\r\n\r\n topCenter: \"chip_top_center\",\r\n bottomCenter: \"chip_bottom_center\",\r\n topLeft: \"chip_top_left\",\r\n topRight: \"chip_top_right\",\r\n bottomLeft: \"chip_bottom_left\",\r\n bottomRight: \"chip_bottom_right\",\r\n\r\n primary: \"chip_primary\",\r\n secondary: \"chip_secondary\",\r\n tertiary: \"chip_tertiary\",\r\n quaternary: \"chip_quaternary\",\r\n\r\n success: \"chip_success\",\r\n error: \"chip_error\",\r\n warning: \"chip_warning\",\r\n\r\n clear: \"chip_clear\",\r\n\r\n xs: \"chip_xs\",\r\n small: \"chip_small\",\r\n medium: \"chip_medium\",\r\n large: \"chip_large\",\r\n xl: \"chip_xl\",\r\n\r\n shadowNone: \"chip_shadow-None\",\r\n shadowLight: \"chip_shadow-Light\",\r\n shadowMedium: \"chip_shadow-Medium\",\r\n shadowStrong: \"chip_shadow-Strong\",\r\n shadowIntense: \"chip_shadow-Intense\",\r\n\r\n roundNone: \"chip_round-None\",\r\n roundSmall: \"chip_round-Small\",\r\n roundMedium: \"chip_round-Medium\",\r\n roundLarge: \"chip_round-Large\",\r\n};\r\n\r\nconst Chip: React.FC<ChipProps> = (props) => (\r\n <ChipBase\r\n {...props}\r\n classMap={classes}\r\n IconButtonComponent={IconButton}\r\n closeIcon={CloseIcon}\r\n />\r\n);\r\n\r\nexport default Chip;\r\n"],"names":["CloseIcon"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Chip-C6sk2qAd.cjs","sources":["../../src/components/Chip/ChipBase.tsx","../../src/components/Chip/core/Chip.tsx"],"sourcesContent":["import { useCallback, useEffect, useState, KeyboardEvent } from \"react\";\r\nimport { createPortal } from \"react-dom\";\r\nimport { ChipBaseProps } from \"./Chip.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultSize,\r\n getDefaultTheme,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nconst ChipBase: React.FC<ChipBaseProps> = ({\r\n id,\r\n message,\r\n visible,\r\n onClose,\r\n icon: Icon,\r\n size = getDefaultSize(),\r\n theme = getDefaultTheme(),\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n state = \"\",\r\n position = \"topCenter\",\r\n usePortal = true,\r\n className = \"\",\r\n autoClose = true,\r\n duration = 3000,\r\n closeIcon: CloseIcon,\r\n IconButtonComponent,\r\n classMap,\r\n stackIndex,\r\n \"data-testid\": testId = \"chip\",\r\n}) => {\r\n const [closing, setClosing] = useState(false);\r\n\r\n const handleClose = useCallback(() => {\r\n setClosing(true);\r\n setTimeout(() => onClose?.(), 300);\r\n }, [onClose]);\r\n\r\n useEffect(() => {\r\n if (autoClose && visible) {\r\n const timer = setTimeout(() => handleClose(), duration);\r\n return () => clearTimeout(timer);\r\n }\r\n }, [autoClose, duration, visible, handleClose]);\r\n\r\n useEffect(() => {\r\n if (visible) setClosing(false);\r\n }, [visible]);\r\n\r\n useEffect(() => {\r\n if (!visible) return;\r\n const onKey = (e: globalThis.KeyboardEvent) => {\r\n if (e.key === \"Escape\") handleClose();\r\n };\r\n window.addEventListener(\"keydown\", onKey);\r\n return () => window.removeEventListener(\"keydown\", onKey);\r\n }, [visible, handleClose]);\r\n\r\n if (!visible && !closing) return null;\r\n\r\n const chipClassName = combineClassNames(\r\n classMap.chip,\r\n classMap[theme],\r\n classMap[state],\r\n classMap[size],\r\n classMap[position],\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n closing && classMap.fadeout,\r\n usePortal && classMap.fixed,\r\n className\r\n );\r\n\r\n const isAssertive = state === \"error\" || state === \"warning\";\r\n\r\n const portalEl =\r\n typeof window !== \"undefined\"\r\n ? document.getElementById(\"widget-portal\")\r\n : null;\r\n\r\n const chipElement = (\r\n <div\r\n key={id}\r\n className={chipClassName}\r\n role=\"alert\"\r\n aria-live=\"assertive\"\r\n aria-atomic=\"true\"\r\n data-testid={testId}\r\n style={stackIndex != null ? { zIndex: stackIndex } : undefined}\r\n >\r\n {Icon && (\r\n <span\r\n className={classMap.icon}\r\n aria-hidden=\"true\"\r\n data-testid={`${testId}-icon`}\r\n >\r\n <Icon className={classMap.inner_icon} />\r\n </span>\r\n )}\r\n <span className={classMap.message} id={`${testId}-message`}>\r\n {message}\r\n </span>\r\n\r\n <IconButtonComponent\r\n icon={CloseIcon}\r\n size={size}\r\n theme=\"clear\"\r\n ariaLabel=\"Close notification\"\r\n aria-controls={`${testId}-message`}\r\n className={classMap.close}\r\n onClick={handleClose}\r\n shadow=\"none\"\r\n data-testid={`${testId}-chip-close`}\r\n />\r\n </div>\r\n );\r\n\r\n if (usePortal && portalEl) {\r\n return createPortal(chipElement, portalEl);\r\n }\r\n\r\n return chipElement;\r\n};\r\n\r\nChipBase.displayName = \"ChipBase\";\r\nexport default ChipBase;\r\n","import React from \"react\";\r\nimport ChipBase from \"../ChipBase\";\r\nimport { CloseIcon } from \"@/Icons\";\r\nimport \"./Chip.scss\";\r\nimport IconButton from \"../../IconButton/core/IconButton\";\r\nimport { ChipProps } from \"../Chip.types\";\r\n\r\nconst classes = {\r\n chip: \"chip\",\r\n icon: \"chip_icon\",\r\n inner_icon: \"chip_icon_inner\",\r\n message: \"chip_message\",\r\n close: \"chip_close\",\r\n relative: \"chip_relative\",\r\n fixed: \"chip_fixed\",\r\n fadeout: \"chip_fadeout\",\r\n\r\n topCenter: \"chip_top_center\",\r\n bottomCenter: \"chip_bottom_center\",\r\n topLeft: \"chip_top_left\",\r\n topRight: \"chip_top_right\",\r\n bottomLeft: \"chip_bottom_left\",\r\n bottomRight: \"chip_bottom_right\",\r\n\r\n primary: \"chip_primary\",\r\n secondary: \"chip_secondary\",\r\n tertiary: \"chip_tertiary\",\r\n quaternary: \"chip_quaternary\",\r\n\r\n success: \"chip_success\",\r\n error: \"chip_error\",\r\n warning: \"chip_warning\",\r\n\r\n clear: \"chip_clear\",\r\n\r\n xs: \"chip_xs\",\r\n small: \"chip_small\",\r\n medium: \"chip_medium\",\r\n large: \"chip_large\",\r\n xl: \"chip_xl\",\r\n\r\n shadowNone: \"chip_shadow-None\",\r\n shadowLight: \"chip_shadow-Light\",\r\n shadowMedium: \"chip_shadow-Medium\",\r\n shadowStrong: \"chip_shadow-Strong\",\r\n shadowIntense: \"chip_shadow-Intense\",\r\n\r\n roundNone: \"chip_round-None\",\r\n roundSmall: \"chip_round-Small\",\r\n roundMedium: \"chip_round-Medium\",\r\n roundLarge: \"chip_round-Large\",\r\n};\r\n\r\nconst Chip: React.FC<ChipProps> = (props) => (\r\n <ChipBase\r\n {...props}\r\n classMap={classes}\r\n IconButtonComponent={IconButton}\r\n closeIcon={CloseIcon}\r\n />\r\n);\r\n\r\nexport default Chip;\r\n"],"names":["getDefaultSize","getDefaultTheme","getDefaultRounding","getDefaultShadow","CloseIcon","useState","useCallback","useEffect","combineClassNames","capitalize","jsxs","jsx","createPortal","IconButton"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DateTimePicker-Cq_QZBV5.js","sources":["../../src/Icons/CalendarIcon.tsx","../../src/components/DateTimePicker/DateTimePickerBase.tsx","../../src/components/DateTimePicker/core/DateTimePicker.tsx"],"sourcesContent":["const CalendarIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\r\n <svg\r\n width=\"24px\"\r\n height=\"24px\"\r\n strokeWidth=\"1.5\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n color=\"currentColor\"\r\n {...props}\r\n >\r\n <path\r\n d=\"M15 4V2M15 4V6M15 4H10.5M3 10V19C3 20.1046 3.89543 21 5 21H19C20.1046 21 21 20.1046 21 19V10H3Z\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"1.5\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n ></path>\r\n <path\r\n d=\"M3 10V6C3 4.89543 3.89543 4 5 4H7\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"1.5\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n ></path>\r\n <path\r\n d=\"M7 2V6\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"1.5\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n ></path>\r\n <path\r\n d=\"M21 10V6C21 4.89543 20.1046 4 19 4H18.5\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"1.5\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n ></path>\r\n </svg>\r\n);\r\n\r\nexport default CalendarIcon;\r\n","import React, { useId, useMemo, useRef } from \"react\";\r\nimport {\r\n DateTimePickerBaseProps,\r\n DateTimePickerProps,\r\n} from \"./DateTimePicker.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { CalendarIcon } from \"../../Icons\";\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 DateTimePickerBase: React.FC<DateTimePickerBaseProps> = ({\r\n label,\r\n value,\r\n onChange,\r\n min,\r\n max,\r\n name,\r\n required = false,\r\n disabled = false,\r\n size = getDefaultSize(),\r\n outline,\r\n theme = getDefaultTheme(),\r\n state = \"\",\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n className = \"\",\r\n \"data-testid\": testId = \"datetime-picker\",\r\n classMap,\r\n error,\r\n description,\r\n id,\r\n}) => {\r\n const generatedId = useId();\r\n const inputId = id || generatedId;\r\n const inputRef = useRef<HTMLInputElement>(null);\r\n\r\n const descriptionId = description ? `${inputId}-description` : undefined;\r\n const errorId = error ? `${inputId}-error` : undefined;\r\n\r\n const invalidRange = min && max ? min > max : false;\r\n const outOfBounds = value\r\n ? (min ? value < min : false) || (max ? value > max : false)\r\n : false;\r\n\r\n const openPicker = () => {\r\n const el = inputRef.current;\r\n if (!el) return;\r\n if (typeof el.showPicker === \"function\") el.showPicker();\r\n else el.focus();\r\n };\r\n\r\n const pickerClass = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.wrapper,\r\n classMap[theme],\r\n classMap[state],\r\n classMap[size],\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n outline && classMap.outline,\r\n disabled && classMap.disabled,\r\n className\r\n ),\r\n [\r\n classMap,\r\n theme,\r\n state,\r\n size,\r\n shadow,\r\n rounding,\r\n outline,\r\n disabled,\r\n className,\r\n ]\r\n );\r\n\r\n const describedBy =\r\n [descriptionId, errorId].filter(Boolean).join(\" \") || undefined;\r\n\r\n return (\r\n <div className={pickerClass} data-testid={testId}>\r\n {label && (\r\n <label htmlFor={inputId} className={classMap.label}>\r\n {label} {required && <span aria-hidden=\"true\">*</span>}\r\n </label>\r\n )}\r\n\r\n <div className={classMap.inputWrapper}>\r\n <input\r\n id={inputId}\r\n type=\"datetime-local\"\r\n className={classMap.input}\r\n value={value}\r\n onChange={(e) => onChange?.(e.target.value)}\r\n min={min}\r\n max={max}\r\n name={name}\r\n ref={inputRef}\r\n required={required}\r\n disabled={disabled}\r\n aria-invalid={\r\n Boolean(error) || invalidRange || outOfBounds || undefined\r\n }\r\n aria-describedby={describedBy}\r\n aria-errormessage={error ? errorId : undefined}\r\n aria-label={label || \"Date and time\"}\r\n data-testid={`${testId}-input`}\r\n autoComplete=\"off\"\r\n />\r\n\r\n <button\r\n type=\"button\"\r\n className={classMap.icon}\r\n onClick={openPicker}\r\n disabled={disabled}\r\n aria-label=\"Open date and time picker\"\r\n data-testid={`${testId}-button`}\r\n >\r\n <CalendarIcon />\r\n </button>\r\n </div>\r\n\r\n {description && !error && (\r\n <p id={descriptionId} className={classMap.description}>\r\n {description}\r\n </p>\r\n )}\r\n\r\n {error && (\r\n <p id={errorId} className={classMap.error} role=\"alert\">\r\n {error}\r\n </p>\r\n )}\r\n </div>\r\n );\r\n};\r\nDateTimePickerBase.displayName = \"DateTimePickerBase\";\r\nexport default DateTimePickerBase;\r\n","import React from \"react\";\r\nimport DateTimePickerBase from \"../DateTimePickerBase\";\r\nimport \"./DateTimePicker.scss\";\r\nimport type { DateTimePickerProps } from \"../DateTimePicker.types\";\r\n\r\nconst classes = {\r\n wrapper: \"datetime_picker_wrapper\",\r\n label: \"datetime_picker_label\",\r\n inputWrapper: \"datetime_picker_inputWrapper\",\r\n input: \"datetime_picker_input\",\r\n\r\n primary: \"datetime_picker_primary\",\r\n secondary: \"datetime_picker_secondary\",\r\n tertiary: \"datetime_picker_tertiary\",\r\n quaternary: \"datetime_picker_quaternary\",\r\n\r\n success: \"datetime_picker_success\",\r\n error: \"datetime_picker_error\",\r\n warning: \"datetime_picker_warning\",\r\n\r\n clear: \"datetime_picker_clear\",\r\n\r\n xs: \"datetime_picker_xs\",\r\n small: \"datetime_picker_small\",\r\n medium: \"datetime_picker_medium\",\r\n large: \"datetime_picker_large\",\r\n xl: \"datetime_picker_xl\",\r\n\r\n outline: \"datetime_picker_outline\",\r\n disabled: \"datetime_picker_disabled\",\r\n icon: \"datetime_picker_icon\",\r\n\r\n shadowNone: \"datetime_picker_shadow-None\",\r\n shadowLight: \"datetime_picker_shadow-Light\",\r\n shadowMedium: \"datetime_picker_shadow-Medium\",\r\n shadowStrong: \"datetime_picker_shadow-Strong\",\r\n shadowIntense: \"datetime_picker_shadow-Intense\",\r\n\r\n roundNone: \"datetime_picker_round-None\",\r\n roundSmall: \"datetime_picker_round-Small\",\r\n roundMedium: \"datetime_picker_round-Medium\",\r\n roundLarge: \"datetime_picker_round-Large\",\r\n};\r\n\r\nconst DateTimePicker: React.FC<DateTimePickerProps> = (props) => (\r\n <DateTimePickerBase {...props} classMap={classes} />\r\n);\r\n\r\nexport default DateTimePicker;\r\n"],"names":[],"mappings":";;;;;AAAA,MAAM,eAAwD,CAAC,UAC7D;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,OAAM;AAAA,IACN,QAAO;AAAA,IACP,aAAY;AAAA,IACZ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IACN,OAAM;AAAA,IACL,GAAG;AAAA,IAEJ,UAAA;AAAA,MAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA,QAAA;AAAA,MAAA;AAAA,MAEjB;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA,QAAA;AAAA,MAAA;AAAA,MAEjB;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA,QAAA;AAAA,MAAA;AAAA,MAEjB;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA,QAAA;AAAA,MAAA;AAAA,IAChB;AAAA,EAAA;AACH;ACxBF,MAAM,qBAAwD,CAAC;AAAA,EAC7D;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,WAAW;AAAA,EACX,WAAW;AAAA,EACX,OAAO,eAAA;AAAA,EACP;AAAA,EACA,QAAQ,gBAAA;AAAA,EACR,QAAQ;AAAA,EACR,WAAW,mBAAA;AAAA,EACX,SAAS,iBAAA;AAAA,EACT,YAAY;AAAA,EACZ,eAAe,SAAS;AAAA,EACxB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM,cAAc,MAAA;AACpB,QAAM,UAAU,MAAM;AACtB,QAAM,WAAW,OAAyB,IAAI;AAE9C,QAAM,gBAAgB,cAAc,GAAG,OAAO,iBAAiB;AAC/D,QAAM,UAAU,QAAQ,GAAG,OAAO,WAAW;AAE7C,QAAM,eAAe,OAAO,MAAM,MAAM,MAAM;AAC9C,QAAM,cAAc,SACf,MAAM,QAAQ,MAAM,WAAW,MAAM,QAAQ,MAAM,SACpD;AAEJ,QAAM,aAAa,MAAM;AACvB,UAAM,KAAK,SAAS;AACpB,QAAI,CAAC,GAAI;AACT,QAAI,OAAO,GAAG,eAAe,eAAe,WAAA;AAAA,YACpC,MAAA;AAAA,EACV;AAEA,QAAM,cAAc;AAAA,IAClB,MACE;AAAA,MACE,SAAS;AAAA,MACT,SAAS,KAAK;AAAA,MACd,SAAS,KAAK;AAAA,MACd,SAAS,IAAI;AAAA,MACb,UAAU,SAAS,SAAS,WAAW,MAAM,CAAC,EAAE;AAAA,MAChD,YAAY,SAAS,QAAQ,WAAW,QAAQ,CAAC,EAAE;AAAA,MACnD,WAAW,SAAS;AAAA,MACpB,YAAY,SAAS;AAAA,MACrB;AAAA,IAAA;AAAA,IAEJ;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,EACF;AAGF,QAAM,cACJ,CAAC,eAAe,OAAO,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG,KAAK;AAExD,SACE,qBAAC,OAAA,EAAI,WAAW,aAAa,eAAa,QACvC,UAAA;AAAA,IAAA,8BACE,SAAA,EAAM,SAAS,SAAS,WAAW,SAAS,OAC1C,UAAA;AAAA,MAAA;AAAA,MAAM;AAAA,MAAE,YAAY,oBAAC,QAAA,EAAK,eAAY,QAAO,UAAA,IAAA,CAAC;AAAA,IAAA,GACjD;AAAA,IAGF,qBAAC,OAAA,EAAI,WAAW,SAAS,cACvB,UAAA;AAAA,MAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,IAAI;AAAA,UACJ,MAAK;AAAA,UACL,WAAW,SAAS;AAAA,UACpB;AAAA,UACA,UAAU,CAAC,MAAM,qCAAW,EAAE,OAAO;AAAA,UACrC;AAAA,UACA;AAAA,UACA;AAAA,UACA,KAAK;AAAA,UACL;AAAA,UACA;AAAA,UACA,gBACE,QAAQ,KAAK,KAAK,gBAAgB,eAAe;AAAA,UAEnD,oBAAkB;AAAA,UAClB,qBAAmB,QAAQ,UAAU;AAAA,UACrC,cAAY,SAAS;AAAA,UACrB,eAAa,GAAG,MAAM;AAAA,UACtB,cAAa;AAAA,QAAA;AAAA,MAAA;AAAA,MAGf;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,MAAK;AAAA,UACL,WAAW,SAAS;AAAA,UACpB,SAAS;AAAA,UACT;AAAA,UACA,cAAW;AAAA,UACX,eAAa,GAAG,MAAM;AAAA,UAEtB,8BAAC,cAAA,CAAA,CAAa;AAAA,QAAA;AAAA,MAAA;AAAA,IAChB,GACF;AAAA,IAEC,eAAe,CAAC,SACf,oBAAC,KAAA,EAAE,IAAI,eAAe,WAAW,SAAS,aACvC,UAAA,YAAA,CACH;AAAA,IAGD,SACC,oBAAC,KAAA,EAAE,IAAI,SAAS,WAAW,SAAS,OAAO,MAAK,SAC7C,UAAA,MAAA,CACH;AAAA,EAAA,GAEJ;AAEJ;AACA,mBAAmB,cAAc;ACzIjC,MAAM,UAAU;AAAA,EACd,SAAS;AAAA,EACT,OAAO;AAAA,EACP,cAAc;AAAA,EACd,OAAO;AAAA,EAEP,SAAS;AAAA,EACT,WAAW;AAAA,EACX,UAAU;AAAA,EACV,YAAY;AAAA,EAEZ,SAAS;AAAA,EACT,OAAO;AAAA,EACP,SAAS;AAAA,EAET,OAAO;AAAA,EAEP,IAAI;AAAA,EACJ,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,IAAI;AAAA,EAEJ,SAAS;AAAA,EACT,UAAU;AAAA,EACV,MAAM;AAAA,EAEN,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,cAAc;AAAA,EACd,cAAc;AAAA,EACd,eAAe;AAAA,EAEf,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,YAAY;AACd;AAEA,MAAM,iBAAgD,CAAC,UACrD,oBAAC,sBAAoB,GAAG,OAAO,UAAU,QAAA,CAAS;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DateTimePicker-DU-vjgee.cjs","sources":["../../src/Icons/CalendarIcon.tsx","../../src/components/DateTimePicker/DateTimePickerBase.tsx","../../src/components/DateTimePicker/core/DateTimePicker.tsx"],"sourcesContent":["const CalendarIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\r\n <svg\r\n width=\"24px\"\r\n height=\"24px\"\r\n strokeWidth=\"1.5\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n color=\"currentColor\"\r\n {...props}\r\n >\r\n <path\r\n d=\"M15 4V2M15 4V6M15 4H10.5M3 10V19C3 20.1046 3.89543 21 5 21H19C20.1046 21 21 20.1046 21 19V10H3Z\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"1.5\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n ></path>\r\n <path\r\n d=\"M3 10V6C3 4.89543 3.89543 4 5 4H7\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"1.5\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n ></path>\r\n <path\r\n d=\"M7 2V6\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"1.5\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n ></path>\r\n <path\r\n d=\"M21 10V6C21 4.89543 20.1046 4 19 4H18.5\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"1.5\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n ></path>\r\n </svg>\r\n);\r\n\r\nexport default CalendarIcon;\r\n","import React, { useId, useMemo, useRef } from \"react\";\r\nimport {\r\n DateTimePickerBaseProps,\r\n DateTimePickerProps,\r\n} from \"./DateTimePicker.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { CalendarIcon } from \"../../Icons\";\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 DateTimePickerBase: React.FC<DateTimePickerBaseProps> = ({\r\n label,\r\n value,\r\n onChange,\r\n min,\r\n max,\r\n name,\r\n required = false,\r\n disabled = false,\r\n size = getDefaultSize(),\r\n outline,\r\n theme = getDefaultTheme(),\r\n state = \"\",\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n className = \"\",\r\n \"data-testid\": testId = \"datetime-picker\",\r\n classMap,\r\n error,\r\n description,\r\n id,\r\n}) => {\r\n const generatedId = useId();\r\n const inputId = id || generatedId;\r\n const inputRef = useRef<HTMLInputElement>(null);\r\n\r\n const descriptionId = description ? `${inputId}-description` : undefined;\r\n const errorId = error ? `${inputId}-error` : undefined;\r\n\r\n const invalidRange = min && max ? min > max : false;\r\n const outOfBounds = value\r\n ? (min ? value < min : false) || (max ? value > max : false)\r\n : false;\r\n\r\n const openPicker = () => {\r\n const el = inputRef.current;\r\n if (!el) return;\r\n if (typeof el.showPicker === \"function\") el.showPicker();\r\n else el.focus();\r\n };\r\n\r\n const pickerClass = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.wrapper,\r\n classMap[theme],\r\n classMap[state],\r\n classMap[size],\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n outline && classMap.outline,\r\n disabled && classMap.disabled,\r\n className\r\n ),\r\n [\r\n classMap,\r\n theme,\r\n state,\r\n size,\r\n shadow,\r\n rounding,\r\n outline,\r\n disabled,\r\n className,\r\n ]\r\n );\r\n\r\n const describedBy =\r\n [descriptionId, errorId].filter(Boolean).join(\" \") || undefined;\r\n\r\n return (\r\n <div className={pickerClass} data-testid={testId}>\r\n {label && (\r\n <label htmlFor={inputId} className={classMap.label}>\r\n {label} {required && <span aria-hidden=\"true\">*</span>}\r\n </label>\r\n )}\r\n\r\n <div className={classMap.inputWrapper}>\r\n <input\r\n id={inputId}\r\n type=\"datetime-local\"\r\n className={classMap.input}\r\n value={value}\r\n onChange={(e) => onChange?.(e.target.value)}\r\n min={min}\r\n max={max}\r\n name={name}\r\n ref={inputRef}\r\n required={required}\r\n disabled={disabled}\r\n aria-invalid={\r\n Boolean(error) || invalidRange || outOfBounds || undefined\r\n }\r\n aria-describedby={describedBy}\r\n aria-errormessage={error ? errorId : undefined}\r\n aria-label={label || \"Date and time\"}\r\n data-testid={`${testId}-input`}\r\n autoComplete=\"off\"\r\n />\r\n\r\n <button\r\n type=\"button\"\r\n className={classMap.icon}\r\n onClick={openPicker}\r\n disabled={disabled}\r\n aria-label=\"Open date and time picker\"\r\n data-testid={`${testId}-button`}\r\n >\r\n <CalendarIcon />\r\n </button>\r\n </div>\r\n\r\n {description && !error && (\r\n <p id={descriptionId} className={classMap.description}>\r\n {description}\r\n </p>\r\n )}\r\n\r\n {error && (\r\n <p id={errorId} className={classMap.error} role=\"alert\">\r\n {error}\r\n </p>\r\n )}\r\n </div>\r\n );\r\n};\r\nDateTimePickerBase.displayName = \"DateTimePickerBase\";\r\nexport default DateTimePickerBase;\r\n","import React from \"react\";\r\nimport DateTimePickerBase from \"../DateTimePickerBase\";\r\nimport \"./DateTimePicker.scss\";\r\nimport type { DateTimePickerProps } from \"../DateTimePicker.types\";\r\n\r\nconst classes = {\r\n wrapper: \"datetime_picker_wrapper\",\r\n label: \"datetime_picker_label\",\r\n inputWrapper: \"datetime_picker_inputWrapper\",\r\n input: \"datetime_picker_input\",\r\n\r\n primary: \"datetime_picker_primary\",\r\n secondary: \"datetime_picker_secondary\",\r\n tertiary: \"datetime_picker_tertiary\",\r\n quaternary: \"datetime_picker_quaternary\",\r\n\r\n success: \"datetime_picker_success\",\r\n error: \"datetime_picker_error\",\r\n warning: \"datetime_picker_warning\",\r\n\r\n clear: \"datetime_picker_clear\",\r\n\r\n xs: \"datetime_picker_xs\",\r\n small: \"datetime_picker_small\",\r\n medium: \"datetime_picker_medium\",\r\n large: \"datetime_picker_large\",\r\n xl: \"datetime_picker_xl\",\r\n\r\n outline: \"datetime_picker_outline\",\r\n disabled: \"datetime_picker_disabled\",\r\n icon: \"datetime_picker_icon\",\r\n\r\n shadowNone: \"datetime_picker_shadow-None\",\r\n shadowLight: \"datetime_picker_shadow-Light\",\r\n shadowMedium: \"datetime_picker_shadow-Medium\",\r\n shadowStrong: \"datetime_picker_shadow-Strong\",\r\n shadowIntense: \"datetime_picker_shadow-Intense\",\r\n\r\n roundNone: \"datetime_picker_round-None\",\r\n roundSmall: \"datetime_picker_round-Small\",\r\n roundMedium: \"datetime_picker_round-Medium\",\r\n roundLarge: \"datetime_picker_round-Large\",\r\n};\r\n\r\nconst DateTimePicker: React.FC<DateTimePickerProps> = (props) => (\r\n <DateTimePickerBase {...props} classMap={classes} />\r\n);\r\n\r\nexport default DateTimePicker;\r\n"],"names":["jsxs","jsx","getDefaultSize","getDefaultTheme","getDefaultRounding","getDefaultShadow","useId","useRef","useMemo","combineClassNames","capitalize"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Dropdown-CJo6T9__.cjs","sources":["../../src/Icons/MenuIcon.tsx","../../src/components/Dropdown/DropdownBase.tsx","../../src/components/Dropdown/core/Dropdown.tsx"],"sourcesContent":["const MenuIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\r\n <svg\r\n width=\"24px\"\r\n height=\"24px\"\r\n strokeWidth=\"1.5\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n color=\"currentColor\"\r\n {...props}\r\n >\r\n <path\r\n d=\"M3 5H21\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"1.5\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n ></path>\r\n <path\r\n d=\"M3 12H21\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"1.5\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n ></path>\r\n <path\r\n d=\"M3 19H21\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"1.5\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n ></path>\r\n </svg>\r\n);\r\n\r\nexport default MenuIcon;\r\n","import React, {\r\n useState,\r\n useRef,\r\n useEffect,\r\n useCallback,\r\n KeyboardEvent,\r\n useId,\r\n JSX,\r\n ComponentType,\r\n useMemo,\r\n} from \"react\";\r\nimport { BaseDropdownProps, DropdownProps } from \"./Dropdown.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport MenuIcon from \"../../Icons/MenuIcon\";\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 BaseDropdown: React.FC<BaseDropdownProps> = ({\r\n triggerIcon,\r\n items,\r\n align = \"right\",\r\n className = \"\",\r\n menuClassName = \"\",\r\n ariaLabel = \"Dropdown menu\",\r\n theme = getDefaultTheme(),\r\n toggleRounding = getDefaultRounding(),\r\n menuRounding = getDefaultRounding(),\r\n toggleShadow = getDefaultShadow(),\r\n menuShadow = getDefaultShadow(),\r\n toggleOutline = false,\r\n state = \"\",\r\n \"data-testid\": testId = \"dropdown\",\r\n IconButton,\r\n classMap,\r\n}: BaseDropdownProps): JSX.Element => {\r\n const [open, setOpen] = useState(false);\r\n const [activeIndex, setActiveIndex] = useState<number>(-1);\r\n const dropdownRef = useRef<HTMLDivElement>(null);\r\n const menuRef = useRef<HTMLDivElement>(null);\r\n const triggerRef = useRef<HTMLElement | null>(null);\r\n const menuId = useId();\r\n\r\n const Icon = triggerIcon ?? MenuIcon;\r\n\r\n const toggleDropdown = () => setOpen((prev) => !prev);\r\n const closeDropdown = () => {\r\n setOpen(false);\r\n setActiveIndex(-1);\r\n triggerRef.current?.focus?.();\r\n };\r\n\r\n useEffect(() => {\r\n if (!open) return;\r\n const menuItems =\r\n menuRef.current?.querySelectorAll<HTMLElement>('[role=\"menuitem\"]');\r\n if (menuItems && menuItems.length > 0) {\r\n setActiveIndex(0);\r\n } else {\r\n setActiveIndex(-1);\r\n }\r\n }, [open]);\r\n\r\n useEffect(() => {\r\n if (!open || activeIndex < 0) return;\r\n const menuItems =\r\n menuRef.current?.querySelectorAll<HTMLElement>('[role=\"menuitem\"]');\r\n menuItems?.[activeIndex]?.focus();\r\n }, [activeIndex, open]);\r\n\r\n useEffect(() => {\r\n const handleClickOutside = (e: MouseEvent) => {\r\n if (\r\n dropdownRef.current &&\r\n !dropdownRef.current.contains(e.target as Node)\r\n ) {\r\n closeDropdown();\r\n }\r\n };\r\n document.addEventListener(\"mousedown\", handleClickOutside);\r\n\r\n if (open && menuRef.current) {\r\n const rect = menuRef.current.getBoundingClientRect();\r\n const right = rect.right > window.innerWidth;\r\n const left = rect.left < 0;\r\n if (right) {\r\n menuRef.current.setAttribute(\"data-overflow-right\", \"true\");\r\n menuRef.current.removeAttribute(\"data-overflow-left\");\r\n } else if (left) {\r\n menuRef.current.setAttribute(\"data-overflow-left\", \"true\");\r\n menuRef.current.removeAttribute(\"data-overflow-right\");\r\n } else {\r\n menuRef.current.removeAttribute(\"data-overflow-right\");\r\n menuRef.current.removeAttribute(\"data-overflow-left\");\r\n }\r\n }\r\n\r\n return () => document.removeEventListener(\"mousedown\", handleClickOutside);\r\n }, [open]);\r\n\r\n const handleKeyDown = useCallback(\r\n (e: KeyboardEvent<HTMLDivElement>) => {\r\n if (!open) return;\r\n\r\n const len = items.length;\r\n const hasItems = len > 0;\r\n\r\n if (e.key === \"Escape\") {\r\n e.preventDefault();\r\n closeDropdown();\r\n return;\r\n }\r\n if (e.key === \"Tab\") {\r\n closeDropdown();\r\n return;\r\n }\r\n\r\n if (!hasItems) return;\r\n\r\n if (e.key === \"ArrowDown\") {\r\n e.preventDefault();\r\n setActiveIndex((prev) => (prev < 0 ? 0 : (prev + 1) % len));\r\n } else if (e.key === \"ArrowUp\") {\r\n e.preventDefault();\r\n setActiveIndex((prev) => (prev < 0 ? len - 1 : (prev - 1 + len) % len));\r\n } else if (e.key === \"Home\") {\r\n e.preventDefault();\r\n setActiveIndex(0);\r\n } else if (e.key === \"End\") {\r\n e.preventDefault();\r\n setActiveIndex(len - 1);\r\n } else if ((e.key === \"Enter\" || e.key === \" \") && activeIndex >= 0) {\r\n const item = items[activeIndex];\r\n if (item) {\r\n item.onClick?.();\r\n closeDropdown();\r\n }\r\n }\r\n },\r\n [open, items, activeIndex]\r\n );\r\n\r\n const menuClassNames = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.menu,\r\n align === \"right\" ? classMap.alignRight : classMap.alignLeft,\r\n menuShadow && classMap[`shadow${capitalize(menuShadow)}`],\r\n menuRounding && classMap[`round${capitalize(menuRounding)}`],\r\n menuClassName\r\n ),\r\n [classMap, align, menuShadow, menuRounding, menuClassName]\r\n );\r\n\r\n return (\r\n <div\r\n ref={dropdownRef}\r\n className={combineClassNames(classMap.wrapper, className)}\r\n onKeyDown={handleKeyDown}\r\n data-testid={testId}\r\n >\r\n <IconButton\r\n ref={triggerRef as any}\r\n icon={Icon}\r\n ariaLabel={ariaLabel}\r\n aria-haspopup=\"menu\"\r\n aria-expanded={open}\r\n aria-controls={menuId}\r\n rounding={toggleRounding}\r\n shadow={toggleShadow}\r\n outline={toggleOutline}\r\n theme={theme}\r\n state={state}\r\n onClick={toggleDropdown}\r\n data-testid={`${testId}-trigger`}\r\n />\r\n\r\n {open && (\r\n <div\r\n id={menuId}\r\n ref={menuRef}\r\n role=\"menu\"\r\n aria-label={ariaLabel}\r\n aria-orientation=\"vertical\"\r\n className={menuClassNames}\r\n data-testid={`${testId}-menu`}\r\n >\r\n {items.map((item, index) =>\r\n item.href ? (\r\n <a\r\n key={index}\r\n href={item.href}\r\n className={classMap.item}\r\n role=\"menuitem\"\r\n tabIndex={-1}\r\n onClick={() => {\r\n item.onClick?.();\r\n closeDropdown();\r\n }}\r\n data-testid={item[\"data-testid\"]}\r\n >\r\n {item.icon && (\r\n <span className={classMap.icon} aria-hidden=\"true\">\r\n {item.icon}\r\n </span>\r\n )}\r\n {item.label}\r\n </a>\r\n ) : (\r\n <button\r\n key={index}\r\n type=\"button\"\r\n role=\"menuitem\"\r\n tabIndex={-1}\r\n className={classMap.item}\r\n onClick={() => {\r\n item.onClick?.();\r\n closeDropdown();\r\n }}\r\n data-testid={item[\"data-testid\"]}\r\n >\r\n {item.icon && (\r\n <span className={classMap.icon} aria-hidden=\"true\">\r\n {item.icon}\r\n </span>\r\n )}\r\n {item.label}\r\n </button>\r\n )\r\n )}\r\n </div>\r\n )}\r\n </div>\r\n );\r\n};\r\nBaseDropdown.displayName = \"BaseDropdown\";\r\nexport default BaseDropdown;\r\n","import React from \"react\";\r\nimport BaseDropdown from \"../DropdownBase\";\r\nimport { DropdownProps } from \"../Dropdown.types\";\r\nimport { IconButton } from \"@/index.core\";\r\nimport \"./Dropdown.scss\";\r\n\r\nconst classes = {\r\n wrapper: \"dropdown\",\r\n menu: \"dropdown_menu\",\r\n item: \"dropdown_item\",\r\n icon: \"dropdown_icon\",\r\n\r\n alignRight: \"dropdown_menu_right\",\r\n alignLeft: \"dropdown_menu_left\",\r\n\r\n shadowNone: \"menu_shadow-None\",\r\n shadowLight: \"menu_shadow-Light\",\r\n shadowMedium: \"menu_shadow-Medium\",\r\n shadowStrong: \"menu_shadow-Strong\",\r\n shadowIntense: \"menu_shadow-Intense\",\r\n\r\n roundNone: \"menu_round-None\",\r\n roundSmall: \"menu_round-Small\",\r\n roundMedium: \"menu_round-Medium\",\r\n roundLarge: \"menu_round-Large\",\r\n};\r\n\r\nconst Dropdown: React.FC<DropdownProps> = (props) => {\r\n return <BaseDropdown {...props} IconButton={IconButton} classMap={classes} />;\r\n};\r\n\r\nexport default Dropdown;\r\n"],"names":["jsxs","jsx","getDefaultTheme","getDefaultRounding","getDefaultShadow","IconButton","useState","useRef","useId","useEffect","useCallback","useMemo","combineClassNames","capitalize"],"mappings":";;;;;;;;AAAA,MAAM,WAAoD,CAAC,UACzDA,2BAAAA;AAAAA,EAAC;AAAA,EAAA;AAAA,IACC,OAAM;AAAA,IACN,QAAO;AAAA,IACP,aAAY;AAAA,IACZ,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IACN,OAAM;AAAA,IACL,GAAG;AAAA,IAEJ,UAAA;AAAA,MAAAC,2BAAAA;AAAAA,QAAC;AAAA,QAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA,QAAA;AAAA,MAAA;AAAA,MAEjBA,2BAAAA;AAAAA,QAAC;AAAA,QAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA,QAAA;AAAA,MAAA;AAAA,MAEjBA,2BAAAA;AAAAA,QAAC;AAAA,QAAA;AAAA,UACC,GAAE;AAAA,UACF,QAAO;AAAA,UACP,aAAY;AAAA,UACZ,eAAc;AAAA,UACd,gBAAe;AAAA,QAAA;AAAA,MAAA;AAAA,IAChB;AAAA,EAAA;AACH;ACXF,MAAM,eAA4C,CAAC;AAAA,EACjD;AAAA,EACA;AAAA,EACA,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,gBAAgB;AAAA,EAChB,YAAY;AAAA,EACZ,QAAQC,kBAAAA,gBAAA;AAAA,EACR,iBAAiBC,kBAAAA,mBAAA;AAAA,EACjB,eAAeA,kBAAAA,mBAAA;AAAA,EACf,eAAeC,kBAAAA,iBAAA;AAAA,EACf,aAAaA,kBAAAA,iBAAA;AAAA,EACb,gBAAgB;AAAA,EAChB,QAAQ;AAAA,EACR,eAAe,SAAS;AAAA,EACxB,YAAAC;AAAA,EACA;AACF,MAAsC;AACpC,QAAM,CAAC,MAAM,OAAO,IAAIC,MAAAA,SAAS,KAAK;AACtC,QAAM,CAAC,aAAa,cAAc,IAAIA,MAAAA,SAAiB,EAAE;AACzD,QAAM,cAAcC,MAAAA,OAAuB,IAAI;AAC/C,QAAM,UAAUA,MAAAA,OAAuB,IAAI;AAC3C,QAAM,aAAaA,MAAAA,OAA2B,IAAI;AAClD,QAAM,SAASC,MAAAA,MAAA;AAEf,QAAM,OAAO,eAAe;AAE5B,QAAM,iBAAiB,MAAM,QAAQ,CAAC,SAAS,CAAC,IAAI;AACpD,QAAM,gBAAgB,MAAM;;AAC1B,YAAQ,KAAK;AACb,mBAAe,EAAE;AACjB,2BAAW,YAAX,mBAAoB,UAApB;AAAA,EACF;AAEAC,QAAAA,UAAU,MAAM;;AACd,QAAI,CAAC,KAAM;AACX,UAAM,aACJ,aAAQ,YAAR,mBAAiB,iBAA8B;AACjD,QAAI,aAAa,UAAU,SAAS,GAAG;AACrC,qBAAe,CAAC;AAAA,IAClB,OAAO;AACL,qBAAe,EAAE;AAAA,IACnB;AAAA,EACF,GAAG,CAAC,IAAI,CAAC;AAETA,QAAAA,UAAU,MAAM;;AACd,QAAI,CAAC,QAAQ,cAAc,EAAG;AAC9B,UAAM,aACJ,aAAQ,YAAR,mBAAiB,iBAA8B;AACjD,iDAAY,iBAAZ,mBAA0B;AAAA,EAC5B,GAAG,CAAC,aAAa,IAAI,CAAC;AAEtBA,QAAAA,UAAU,MAAM;AACd,UAAM,qBAAqB,CAAC,MAAkB;AAC5C,UACE,YAAY,WACZ,CAAC,YAAY,QAAQ,SAAS,EAAE,MAAc,GAC9C;AACA,sBAAA;AAAA,MACF;AAAA,IACF;AACA,aAAS,iBAAiB,aAAa,kBAAkB;AAEzD,QAAI,QAAQ,QAAQ,SAAS;AAC3B,YAAM,OAAO,QAAQ,QAAQ,sBAAA;AAC7B,YAAM,QAAQ,KAAK,QAAQ,OAAO;AAClC,YAAM,OAAO,KAAK,OAAO;AACzB,UAAI,OAAO;AACT,gBAAQ,QAAQ,aAAa,uBAAuB,MAAM;AAC1D,gBAAQ,QAAQ,gBAAgB,oBAAoB;AAAA,MACtD,WAAW,MAAM;AACf,gBAAQ,QAAQ,aAAa,sBAAsB,MAAM;AACzD,gBAAQ,QAAQ,gBAAgB,qBAAqB;AAAA,MACvD,OAAO;AACL,gBAAQ,QAAQ,gBAAgB,qBAAqB;AACrD,gBAAQ,QAAQ,gBAAgB,oBAAoB;AAAA,MACtD;AAAA,IACF;AAEA,WAAO,MAAM,SAAS,oBAAoB,aAAa,kBAAkB;AAAA,EAC3E,GAAG,CAAC,IAAI,CAAC;AAET,QAAM,gBAAgBC,MAAAA;AAAAA,IACpB,CAAC,MAAqC;;AACpC,UAAI,CAAC,KAAM;AAEX,YAAM,MAAM,MAAM;AAClB,YAAM,WAAW,MAAM;AAEvB,UAAI,EAAE,QAAQ,UAAU;AACtB,UAAE,eAAA;AACF,sBAAA;AACA;AAAA,MACF;AACA,UAAI,EAAE,QAAQ,OAAO;AACnB,sBAAA;AACA;AAAA,MACF;AAEA,UAAI,CAAC,SAAU;AAEf,UAAI,EAAE,QAAQ,aAAa;AACzB,UAAE,eAAA;AACF,uBAAe,CAAC,SAAU,OAAO,IAAI,KAAK,OAAO,KAAK,GAAI;AAAA,MAC5D,WAAW,EAAE,QAAQ,WAAW;AAC9B,UAAE,eAAA;AACF,uBAAe,CAAC,SAAU,OAAO,IAAI,MAAM,KAAK,OAAO,IAAI,OAAO,GAAI;AAAA,MACxE,WAAW,EAAE,QAAQ,QAAQ;AAC3B,UAAE,eAAA;AACF,uBAAe,CAAC;AAAA,MAClB,WAAW,EAAE,QAAQ,OAAO;AAC1B,UAAE,eAAA;AACF,uBAAe,MAAM,CAAC;AAAA,MACxB,YAAY,EAAE,QAAQ,WAAW,EAAE,QAAQ,QAAQ,eAAe,GAAG;AACnE,cAAM,OAAO,MAAM,WAAW;AAC9B,YAAI,MAAM;AACR,qBAAK,YAAL;AACA,wBAAA;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,IACA,CAAC,MAAM,OAAO,WAAW;AAAA,EAAA;AAG3B,QAAM,iBAAiBC,MAAAA;AAAAA,IACrB,MACEC,WAAAA;AAAAA,MACE,SAAS;AAAA,MACT,UAAU,UAAU,SAAS,aAAa,SAAS;AAAA,MACnD,cAAc,SAAS,SAASC,WAAAA,WAAW,UAAU,CAAC,EAAE;AAAA,MACxD,gBAAgB,SAAS,QAAQA,WAAAA,WAAW,YAAY,CAAC,EAAE;AAAA,MAC3D;AAAA,IAAA;AAAA,IAEJ,CAAC,UAAU,OAAO,YAAY,cAAc,aAAa;AAAA,EAAA;AAG3D,SACEb,2BAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAK;AAAA,MACL,WAAWY,WAAAA,kBAAkB,SAAS,SAAS,SAAS;AAAA,MACxD,WAAW;AAAA,MACX,eAAa;AAAA,MAEb,UAAA;AAAA,QAAAX,2BAAAA;AAAAA,UAACI;AAAA,UAAA;AAAA,YACC,KAAK;AAAA,YACL,MAAM;AAAA,YACN;AAAA,YACA,iBAAc;AAAA,YACd,iBAAe;AAAA,YACf,iBAAe;AAAA,YACf,UAAU;AAAA,YACV,QAAQ;AAAA,YACR,SAAS;AAAA,YACT;AAAA,YACA;AAAA,YACA,SAAS;AAAA,YACT,eAAa,GAAG,MAAM;AAAA,UAAA;AAAA,QAAA;AAAA,QAGvB,QACCJ,2BAAAA;AAAAA,UAAC;AAAA,UAAA;AAAA,YACC,IAAI;AAAA,YACJ,KAAK;AAAA,YACL,MAAK;AAAA,YACL,cAAY;AAAA,YACZ,oBAAiB;AAAA,YACjB,WAAW;AAAA,YACX,eAAa,GAAG,MAAM;AAAA,YAErB,UAAA,MAAM;AAAA,cAAI,CAAC,MAAM,UAChB,KAAK,OACHD,2BAAAA;AAAAA,gBAAC;AAAA,gBAAA;AAAA,kBAEC,MAAM,KAAK;AAAA,kBACX,WAAW,SAAS;AAAA,kBACpB,MAAK;AAAA,kBACL,UAAU;AAAA,kBACV,SAAS,MAAM;;AACb,+BAAK,YAAL;AACA,kCAAA;AAAA,kBACF;AAAA,kBACA,eAAa,KAAK,aAAa;AAAA,kBAE9B,UAAA;AAAA,oBAAA,KAAK,uCACH,QAAA,EAAK,WAAW,SAAS,MAAM,eAAY,QACzC,UAAA,KAAK,KAAA,CACR;AAAA,oBAED,KAAK;AAAA,kBAAA;AAAA,gBAAA;AAAA,gBAhBD;AAAA,cAAA,IAmBPA,2BAAAA;AAAAA,gBAAC;AAAA,gBAAA;AAAA,kBAEC,MAAK;AAAA,kBACL,MAAK;AAAA,kBACL,UAAU;AAAA,kBACV,WAAW,SAAS;AAAA,kBACpB,SAAS,MAAM;;AACb,+BAAK,YAAL;AACA,kCAAA;AAAA,kBACF;AAAA,kBACA,eAAa,KAAK,aAAa;AAAA,kBAE9B,UAAA;AAAA,oBAAA,KAAK,uCACH,QAAA,EAAK,WAAW,SAAS,MAAM,eAAY,QACzC,UAAA,KAAK,KAAA,CACR;AAAA,oBAED,KAAK;AAAA,kBAAA;AAAA,gBAAA;AAAA,gBAhBD;AAAA,cAAA;AAAA,YAiBP;AAAA,UAEJ;AAAA,QAAA;AAAA,MACF;AAAA,IAAA;AAAA,EAAA;AAIR;AACA,aAAa,cAAc;ACxO3B,MAAM,UAAU;AAAA,EACd,SAAS;AAAA,EACT,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EAEN,YAAY;AAAA,EACZ,WAAW;AAAA,EAEX,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,cAAc;AAAA,EACd,cAAc;AAAA,EACd,eAAe;AAAA,EAEf,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,YAAY;AACd;AAEA,MAAM,WAAoC,CAAC,UAAU;AACnD,wCAAQ,cAAA,EAAc,GAAG,OAAA,YAAOK,uBAAwB,UAAU,SAAS;AAC7E;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Dropdown-Dzjmt9gx.js","sources":["../../src/Icons/MenuIcon.tsx","../../src/components/Dropdown/DropdownBase.tsx","../../src/components/Dropdown/core/Dropdown.tsx"],"sourcesContent":["const MenuIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\r\n <svg\r\n width=\"24px\"\r\n height=\"24px\"\r\n strokeWidth=\"1.5\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n color=\"currentColor\"\r\n {...props}\r\n >\r\n <path\r\n d=\"M3 5H21\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"1.5\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n ></path>\r\n <path\r\n d=\"M3 12H21\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"1.5\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n ></path>\r\n <path\r\n d=\"M3 19H21\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"1.5\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n ></path>\r\n </svg>\r\n);\r\n\r\nexport default MenuIcon;\r\n","import React, {\r\n useState,\r\n useRef,\r\n useEffect,\r\n useCallback,\r\n KeyboardEvent,\r\n useId,\r\n JSX,\r\n ComponentType,\r\n useMemo,\r\n} from \"react\";\r\nimport { BaseDropdownProps, DropdownProps } from \"./Dropdown.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport MenuIcon from \"../../Icons/MenuIcon\";\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 BaseDropdown: React.FC<BaseDropdownProps> = ({\r\n triggerIcon,\r\n items,\r\n align = \"right\",\r\n className = \"\",\r\n menuClassName = \"\",\r\n ariaLabel = \"Dropdown menu\",\r\n theme = getDefaultTheme(),\r\n toggleRounding = getDefaultRounding(),\r\n menuRounding = getDefaultRounding(),\r\n toggleShadow = getDefaultShadow(),\r\n menuShadow = getDefaultShadow(),\r\n toggleOutline = false,\r\n state = \"\",\r\n \"data-testid\": testId = \"dropdown\",\r\n IconButton,\r\n classMap,\r\n}: BaseDropdownProps): JSX.Element => {\r\n const [open, setOpen] = useState(false);\r\n const [activeIndex, setActiveIndex] = useState<number>(-1);\r\n const dropdownRef = useRef<HTMLDivElement>(null);\r\n const menuRef = useRef<HTMLDivElement>(null);\r\n const triggerRef = useRef<HTMLElement | null>(null);\r\n const menuId = useId();\r\n\r\n const Icon = triggerIcon ?? MenuIcon;\r\n\r\n const toggleDropdown = () => setOpen((prev) => !prev);\r\n const closeDropdown = () => {\r\n setOpen(false);\r\n setActiveIndex(-1);\r\n triggerRef.current?.focus?.();\r\n };\r\n\r\n useEffect(() => {\r\n if (!open) return;\r\n const menuItems =\r\n menuRef.current?.querySelectorAll<HTMLElement>('[role=\"menuitem\"]');\r\n if (menuItems && menuItems.length > 0) {\r\n setActiveIndex(0);\r\n } else {\r\n setActiveIndex(-1);\r\n }\r\n }, [open]);\r\n\r\n useEffect(() => {\r\n if (!open || activeIndex < 0) return;\r\n const menuItems =\r\n menuRef.current?.querySelectorAll<HTMLElement>('[role=\"menuitem\"]');\r\n menuItems?.[activeIndex]?.focus();\r\n }, [activeIndex, open]);\r\n\r\n useEffect(() => {\r\n const handleClickOutside = (e: MouseEvent) => {\r\n if (\r\n dropdownRef.current &&\r\n !dropdownRef.current.contains(e.target as Node)\r\n ) {\r\n closeDropdown();\r\n }\r\n };\r\n document.addEventListener(\"mousedown\", handleClickOutside);\r\n\r\n if (open && menuRef.current) {\r\n const rect = menuRef.current.getBoundingClientRect();\r\n const right = rect.right > window.innerWidth;\r\n const left = rect.left < 0;\r\n if (right) {\r\n menuRef.current.setAttribute(\"data-overflow-right\", \"true\");\r\n menuRef.current.removeAttribute(\"data-overflow-left\");\r\n } else if (left) {\r\n menuRef.current.setAttribute(\"data-overflow-left\", \"true\");\r\n menuRef.current.removeAttribute(\"data-overflow-right\");\r\n } else {\r\n menuRef.current.removeAttribute(\"data-overflow-right\");\r\n menuRef.current.removeAttribute(\"data-overflow-left\");\r\n }\r\n }\r\n\r\n return () => document.removeEventListener(\"mousedown\", handleClickOutside);\r\n }, [open]);\r\n\r\n const handleKeyDown = useCallback(\r\n (e: KeyboardEvent<HTMLDivElement>) => {\r\n if (!open) return;\r\n\r\n const len = items.length;\r\n const hasItems = len > 0;\r\n\r\n if (e.key === \"Escape\") {\r\n e.preventDefault();\r\n closeDropdown();\r\n return;\r\n }\r\n if (e.key === \"Tab\") {\r\n closeDropdown();\r\n return;\r\n }\r\n\r\n if (!hasItems) return;\r\n\r\n if (e.key === \"ArrowDown\") {\r\n e.preventDefault();\r\n setActiveIndex((prev) => (prev < 0 ? 0 : (prev + 1) % len));\r\n } else if (e.key === \"ArrowUp\") {\r\n e.preventDefault();\r\n setActiveIndex((prev) => (prev < 0 ? len - 1 : (prev - 1 + len) % len));\r\n } else if (e.key === \"Home\") {\r\n e.preventDefault();\r\n setActiveIndex(0);\r\n } else if (e.key === \"End\") {\r\n e.preventDefault();\r\n setActiveIndex(len - 1);\r\n } else if ((e.key === \"Enter\" || e.key === \" \") && activeIndex >= 0) {\r\n const item = items[activeIndex];\r\n if (item) {\r\n item.onClick?.();\r\n closeDropdown();\r\n }\r\n }\r\n },\r\n [open, items, activeIndex]\r\n );\r\n\r\n const menuClassNames = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.menu,\r\n align === \"right\" ? classMap.alignRight : classMap.alignLeft,\r\n menuShadow && classMap[`shadow${capitalize(menuShadow)}`],\r\n menuRounding && classMap[`round${capitalize(menuRounding)}`],\r\n menuClassName\r\n ),\r\n [classMap, align, menuShadow, menuRounding, menuClassName]\r\n );\r\n\r\n return (\r\n <div\r\n ref={dropdownRef}\r\n className={combineClassNames(classMap.wrapper, className)}\r\n onKeyDown={handleKeyDown}\r\n data-testid={testId}\r\n >\r\n <IconButton\r\n ref={triggerRef as any}\r\n icon={Icon}\r\n ariaLabel={ariaLabel}\r\n aria-haspopup=\"menu\"\r\n aria-expanded={open}\r\n aria-controls={menuId}\r\n rounding={toggleRounding}\r\n shadow={toggleShadow}\r\n outline={toggleOutline}\r\n theme={theme}\r\n state={state}\r\n onClick={toggleDropdown}\r\n data-testid={`${testId}-trigger`}\r\n />\r\n\r\n {open && (\r\n <div\r\n id={menuId}\r\n ref={menuRef}\r\n role=\"menu\"\r\n aria-label={ariaLabel}\r\n aria-orientation=\"vertical\"\r\n className={menuClassNames}\r\n data-testid={`${testId}-menu`}\r\n >\r\n {items.map((item, index) =>\r\n item.href ? (\r\n <a\r\n key={index}\r\n href={item.href}\r\n className={classMap.item}\r\n role=\"menuitem\"\r\n tabIndex={-1}\r\n onClick={() => {\r\n item.onClick?.();\r\n closeDropdown();\r\n }}\r\n data-testid={item[\"data-testid\"]}\r\n >\r\n {item.icon && (\r\n <span className={classMap.icon} aria-hidden=\"true\">\r\n {item.icon}\r\n </span>\r\n )}\r\n {item.label}\r\n </a>\r\n ) : (\r\n <button\r\n key={index}\r\n type=\"button\"\r\n role=\"menuitem\"\r\n tabIndex={-1}\r\n className={classMap.item}\r\n onClick={() => {\r\n item.onClick?.();\r\n closeDropdown();\r\n }}\r\n data-testid={item[\"data-testid\"]}\r\n >\r\n {item.icon && (\r\n <span className={classMap.icon} aria-hidden=\"true\">\r\n {item.icon}\r\n </span>\r\n )}\r\n {item.label}\r\n </button>\r\n )\r\n )}\r\n </div>\r\n )}\r\n </div>\r\n );\r\n};\r\nBaseDropdown.displayName = \"BaseDropdown\";\r\nexport default BaseDropdown;\r\n","import React from \"react\";\r\nimport BaseDropdown from \"../DropdownBase\";\r\nimport { DropdownProps } from \"../Dropdown.types\";\r\nimport { IconButton } from \"@/index.core\";\r\nimport \"./Dropdown.scss\";\r\n\r\nconst classes = {\r\n wrapper: \"dropdown\",\r\n menu: \"dropdown_menu\",\r\n item: \"dropdown_item\",\r\n icon: \"dropdown_icon\",\r\n\r\n alignRight: \"dropdown_menu_right\",\r\n alignLeft: \"dropdown_menu_left\",\r\n\r\n shadowNone: \"menu_shadow-None\",\r\n shadowLight: \"menu_shadow-Light\",\r\n shadowMedium: \"menu_shadow-Medium\",\r\n shadowStrong: \"menu_shadow-Strong\",\r\n shadowIntense: \"menu_shadow-Intense\",\r\n\r\n roundNone: \"menu_round-None\",\r\n roundSmall: \"menu_round-Small\",\r\n roundMedium: \"menu_round-Medium\",\r\n roundLarge: \"menu_round-Large\",\r\n};\r\n\r\nconst Dropdown: React.FC<DropdownProps> = (props) => {\r\n return <BaseDropdown {...props} IconButton={IconButton} classMap={classes} />;\r\n};\r\n\r\nexport default Dropdown;\r\n"],"names":["IconButton"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FileUpload-Bcu5v4TO.js","sources":["../../src/Icons/FileIcon.tsx","../../src/Icons/TrashIcon.tsx","../../src/components/FileUpload/FileUploadBase.tsx","../../src/components/FileUpload/core/FileUpload.tsx"],"sourcesContent":["const FileIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\r\n <svg\r\n width=\"24px\"\r\n height=\"24px\"\r\n viewBox=\"0 0 24 24\"\r\n strokeWidth=\"1.5\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n color=\"currentColor\"\r\n {...props}\r\n >\r\n <path\r\n d=\"M3 20.5V6.5C3 5.67157 3.67157 5 4.5 5H14.2515C14.4106 5 14.5632 5.06321 14.6757 5.17574L17.8243 8.32426C17.9368 8.43679 18 8.5894 18 8.74853V20.5C18 21.3284 17.3284 22 16.5 22H4.5C3.67157 22 3 21.3284 3 20.5Z\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"1.5\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n ></path>\r\n <path\r\n d=\"M14 5V8.4C14 8.73137 14.2686 9 14.6 9H18\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"1.5\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n ></path>\r\n </svg>\r\n);\r\n\r\nexport default FileIcon;\r\n","const TrashIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\r\n <svg\r\n width=\"24px\"\r\n height=\"24px\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n color=\"currentColor\"\r\n stroke-width=\"1.5\"\r\n {...props}\r\n >\r\n <path\r\n d=\"M20 9L18.005 20.3463C17.8369 21.3026 17.0062 22 16.0353 22H7.96474C6.99379 22 6.1631 21.3026 5.99496 20.3463L4 9\"\r\n fill=\"currentColor\"\r\n ></path>\r\n <path\r\n d=\"M20 9L18.005 20.3463C17.8369 21.3026 17.0062 22 16.0353 22H7.96474C6.99379 22 6.1631 21.3026 5.99496 20.3463L4 9H20Z\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"1.5\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n ></path>\r\n <path\r\n d=\"M21 6H15.375M3 6H8.625M8.625 6V4C8.625 2.89543 9.52043 2 10.625 2H13.375C14.4796 2 15.375 2.89543 15.375 4V6M8.625 6H15.375\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"1.5\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n ></path>\r\n </svg>\r\n);\r\n\r\nexport default TrashIcon;\r\n","import React, { useMemo, useRef, useState, useEffect } from \"react\";\r\nimport { BaseFileUploadProps } from \"./FileUpload.types\";\r\nimport { FileIcon, TrashIcon } from \"../../Icons\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultTheme,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nconst BaseFileUpload: React.FC<BaseFileUploadProps> = ({\r\n label = \"Upload File\",\r\n description,\r\n error,\r\n required = false,\r\n theme = getDefaultTheme(),\r\n controlRounding = getDefaultRounding(),\r\n controlShadow = getDefaultShadow(),\r\n outline = false,\r\n outlineRounding = getDefaultRounding(),\r\n outlineShadow = getDefaultShadow(),\r\n state = \"\",\r\n multiple = false,\r\n maxFileSizeBytes = Infinity,\r\n allowedFileTypes = [],\r\n onSubmit,\r\n uploadProgress,\r\n \"data-testid\": testId = \"file-upload\",\r\n FormGroup,\r\n disabled = false,\r\n Button,\r\n IconButton,\r\n ProgressBar,\r\n classMap,\r\n}) => {\r\n const [fileNames, setFileNames] = useState<string[]>([]);\r\n const [files, setFiles] = useState<File[]>([]);\r\n const [rejectedFiles, setRejectedFiles] = useState<\r\n { name: string; reason: string }[]\r\n >([]);\r\n const [internalProgress, setInternalProgress] = useState<number>(0);\r\n const [uploading, setUploading] = useState(false);\r\n const [isDragging, setIsDragging] = useState(false);\r\n const [uploadMessage, setUploadMessage] = useState<string | null>(null);\r\n const fileInput = useRef<HTMLInputElement | null>(null);\r\n const intervalRef = useRef<ReturnType<typeof setInterval> | null>(null);\r\n\r\n const accept = useMemo(() => {\r\n if (!allowedFileTypes || allowedFileTypes.length === 0) return undefined;\r\n return allowedFileTypes.join(\",\");\r\n }, [allowedFileTypes]);\r\n\r\n const validateFiles = (newFiles: File[]) => {\r\n const valid: File[] = [];\r\n const rejected: { name: string; reason: string }[] = [];\r\n\r\n newFiles.forEach((file) => {\r\n const isSizeOk = file.size <= maxFileSizeBytes;\r\n const ext = file.name.includes(\".\")\r\n ? \".\" + file.name.split(\".\").pop()!.toLowerCase()\r\n : \"\";\r\n const typeAllowed =\r\n allowedFileTypes.length === 0 ||\r\n allowedFileTypes.includes(file.type) ||\r\n (ext && allowedFileTypes.map((t) => t.toLowerCase()).includes(ext));\r\n\r\n if (isSizeOk && typeAllowed) {\r\n valid.push(file);\r\n } else {\r\n rejected.push({\r\n name: file.name,\r\n reason: !isSizeOk\r\n ? `Exceeds size limit (${(file.size / 1024 / 1024).toFixed(2)}MB)`\r\n : `Invalid type (${file.type || ext || \"unknown\"})`,\r\n });\r\n }\r\n });\r\n\r\n return { valid, rejected };\r\n };\r\n\r\n const truncate = (s: string) => (s.length > 30 ? s.slice(0, 27) + \"...\" : s);\r\n\r\n const handleFileChange = (e: React.ChangeEvent<HTMLInputElement>) => {\r\n const selected = e.target.files;\r\n if (!selected || selected.length === 0) return;\r\n\r\n const { valid, rejected } = validateFiles(Array.from(selected));\r\n const updatedFiles = multiple ? [...files, ...valid] : valid;\r\n\r\n setFiles(updatedFiles);\r\n setFileNames(updatedFiles.map((f) => truncate(f.name)));\r\n setRejectedFiles(rejected);\r\n\r\n if (fileInput.current) fileInput.current.value = \"\";\r\n };\r\n\r\n const removeFile = (index: number) => {\r\n const updatedFiles = files.filter((_, i) => i !== index);\r\n setFiles(updatedFiles);\r\n setFileNames(updatedFiles.map((f) => truncate(f.name)));\r\n };\r\n\r\n const getButtonLabel = () => {\r\n if (fileNames.length > 0) return multiple ? \"Add Files\" : \"Select New\";\r\n return \"Choose File\";\r\n };\r\n\r\n const handleDragOver = (e: React.DragEvent) => {\r\n e.preventDefault();\r\n setIsDragging(true);\r\n };\r\n\r\n const handleDragLeave = () => {\r\n setIsDragging(false);\r\n };\r\n\r\n const handleDrop = (e: React.DragEvent) => {\r\n e.preventDefault();\r\n setIsDragging(false);\r\n const droppedFiles = e.dataTransfer.files;\r\n if (droppedFiles.length > 0) {\r\n handleFileChange({\r\n target: { files: droppedFiles },\r\n } as React.ChangeEvent<HTMLInputElement>);\r\n }\r\n };\r\n\r\n const handleUpload = async () => {\r\n if (!files.length || uploading) return;\r\n setUploading(true);\r\n setInternalProgress(0);\r\n setUploadMessage(null);\r\n\r\n try {\r\n if (uploadProgress === undefined) {\r\n intervalRef.current = setInterval(() => {\r\n setInternalProgress((prev) => {\r\n if (prev >= 100) {\r\n if (intervalRef.current) clearInterval(intervalRef.current);\r\n return 100;\r\n }\r\n return prev + 10;\r\n });\r\n }, 100);\r\n }\r\n\r\n await Promise.resolve(onSubmit?.(files));\r\n setUploadMessage(\"Upload successful.\");\r\n } catch {\r\n setUploadMessage(\"Upload failed. Please try again.\");\r\n } finally {\r\n if (intervalRef.current) {\r\n if (uploadProgress === undefined) setInternalProgress(100);\r\n clearInterval(intervalRef.current);\r\n intervalRef.current = null;\r\n }\r\n setTimeout(() => setUploading(false), 300);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n return () => {\r\n if (intervalRef.current) clearInterval(intervalRef.current);\r\n };\r\n }, []);\r\n\r\n const containerClassName = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.fileUpload,\r\n classMap[state],\r\n classMap[theme],\r\n outlineShadow && classMap[`shadow${capitalize(outlineShadow)}`],\r\n outlineRounding && classMap[`round${capitalize(outlineRounding)}`],\r\n error && classMap.error,\r\n isDragging && classMap.dragging,\r\n disabled && classMap.disabled\r\n ),\r\n [\r\n classMap,\r\n theme,\r\n state,\r\n outlineShadow,\r\n outlineRounding,\r\n error,\r\n isDragging,\r\n disabled,\r\n ]\r\n );\r\n\r\n const describedBy =\r\n [\r\n description ? `${testId}-description` : undefined,\r\n error ? `${testId}-error` : undefined,\r\n ]\r\n .filter(Boolean)\r\n .join(\" \") || undefined;\r\n\r\n return (\r\n <FormGroup\r\n label={label}\r\n description={description}\r\n error={error}\r\n required={required}\r\n data-testid={testId}\r\n >\r\n <div\r\n className={containerClassName}\r\n onDragOver={handleDragOver}\r\n onDragLeave={handleDragLeave}\r\n onDrop={handleDrop}\r\n aria-busy={uploading || undefined}\r\n data-testid={testId ? `${testId}-wrapper` : undefined}\r\n >\r\n <input\r\n ref={fileInput}\r\n id={`${testId}-input`}\r\n type=\"file\"\r\n multiple={multiple}\r\n accept={accept}\r\n onChange={handleFileChange}\r\n className={classMap.hiddenInput}\r\n required={required}\r\n aria-label={label}\r\n aria-describedby={describedBy}\r\n data-testid={testId ? `${testId}-input` : undefined}\r\n />\r\n\r\n <div className={classMap.uploadActions}>\r\n <Button\r\n icon={FileIcon}\r\n size=\"small\"\r\n theme={theme}\r\n state={error ? \"error\" : state}\r\n className={classMap.fileInput}\r\n disabled={uploading || disabled}\r\n outline={outline}\r\n rounding={controlRounding}\r\n shadow={controlShadow}\r\n onClick={() => fileInput.current?.click()}\r\n aria-label={\r\n fileNames.length > 0 ? fileNames.join(\", \") : \"Choose File\"\r\n }\r\n data-testid={testId ? `${testId}-file-button` : undefined}\r\n >\r\n {getButtonLabel()}\r\n </Button>\r\n </div>\r\n\r\n {rejectedFiles.length > 0 && (\r\n <div className={classMap.rejectedFiles}>\r\n <p className={classMap.rejectedLabel}>Rejected Files:</p>\r\n <ul className={classMap.rejectedList}>\r\n {rejectedFiles.map((file, index) => (\r\n <li key={index} className={classMap.rejectedItem}>\r\n <span>{file.name}</span>\r\n <span className={classMap.rejectedReason}>\r\n {\" \"}\r\n – {file.reason}\r\n </span>\r\n </li>\r\n ))}\r\n </ul>\r\n </div>\r\n )}\r\n\r\n {fileNames.length > 0 && (\r\n <div\r\n className={classMap.uploadControls}\r\n data-testid={testId ? `${testId}-controls` : undefined}\r\n >\r\n <ul className={classMap.fileList}>\r\n {fileNames.map((name, index) => (\r\n <li key={index} className={classMap.fileListItem}>\r\n <span>{name}</span>\r\n <IconButton\r\n icon={TrashIcon}\r\n theme=\"error\"\r\n size=\"xsmall\"\r\n type=\"button\"\r\n outline\r\n aria-label={`Remove ${name}`}\r\n onClick={() => removeFile(index)}\r\n className={classMap.removeButton}\r\n />\r\n </li>\r\n ))}\r\n </ul>\r\n {uploading && (\r\n <ProgressBar\r\n theme={theme}\r\n className={classMap.uploadProgress}\r\n progress={uploadProgress ?? internalProgress}\r\n indeterminate={uploadProgress === undefined}\r\n data-testid={testId ? `${testId}-progress` : undefined}\r\n />\r\n )}\r\n {!uploading && (\r\n <Button\r\n theme={theme}\r\n state={error ? \"error\" : state}\r\n disabled={disabled || files.length === 0}\r\n onClick={handleUpload}\r\n loading={uploading}\r\n size=\"small\"\r\n className={classMap.uploadButton}\r\n data-testid={testId ? `${testId}-upload-button` : undefined}\r\n >\r\n Upload\r\n </Button>\r\n )}\r\n </div>\r\n )}\r\n <div\r\n className=\"sr_only\"\r\n aria-live=\"polite\"\r\n aria-atomic=\"true\"\r\n data-testid={testId ? `${testId}-upload-message` : undefined}\r\n >\r\n {uploadMessage}\r\n </div>\r\n </div>\r\n </FormGroup>\r\n );\r\n};\r\nBaseFileUpload.displayName = \"BaseFileUpload\";\r\nexport default BaseFileUpload;\r\n","import React from \"react\";\r\nimport BaseFileUpload from \"../FileUploadBase\";\r\nimport { FileUploadProps } from \"../FileUpload.types\";\r\nimport Button from \"../../Button/core/Button\";\r\nimport IconButton from \"../../IconButton/core/IconButton\";\r\nimport ProgressBar from \"../../ProgressBar/core/ProgressBar\";\r\nimport FormGroup from \"../../FormGroup/core/FormGroup\";\r\nimport \"./FileUpload.scss\";\r\n\r\nconst classes = {\r\n fileUpload: \"file_upload\",\r\n hiddenInput: \"file_upload_hidden_input\",\r\n uploadActions: \"file_upload_upload_actions\",\r\n fileInput: \"file_upload_file_input\",\r\n removeButton: \"file_upload_remove_button\",\r\n uploadControls: \"file_upload_upload_controls\",\r\n uploadProgress: \"file_upload_upload_progress\",\r\n uploadButton: \"file_upload_upload_button\",\r\n fileList: \"file_upload_file_list\",\r\n fileListItem: \"file_upload_file_list_item\",\r\n fileListFileName: \"file_upload_file_list_file_name\",\r\n fileListRemoveButton: \"file_upload_file_list_remove_button\",\r\n\r\n primary: \"file_upload_primary\",\r\n secondary: \"file_upload_secondary\",\r\n tertiary: \"file_upload_tertiary\",\r\n quaternary: \"file_upload_quaternary\",\r\n clear: \"file_upload_clear\",\r\n\r\n disabled: \"file_upload_disabled\",\r\n error: \"file_upload_error\",\r\n success: \"file_upload_success\",\r\n warning: \"file_upload_warning\",\r\n\r\n shadowNone: \"file_upload_shadow-None\",\r\n shadowLight: \"file_upload_shadow-Light\",\r\n shadowMedium: \"file_upload_shadow-Medium\",\r\n shadowStrong: \"file_upload_shadow-Strong\",\r\n shadowIntense: \"file_upload_shadow-Intense\",\r\n\r\n roundNone: \"file_upload_round-None\",\r\n roundSmall: \"file_upload_round-Small\",\r\n roundMedium: \"file_upload_round-Medium\",\r\n roundLarge: \"file_upload_round-Large\",\r\n};\r\n\r\nconst FileUpload: React.FC<FileUploadProps> = (props) => {\r\n return (\r\n <BaseFileUpload\r\n {...props}\r\n FormGroup={FormGroup}\r\n Button={Button}\r\n IconButton={IconButton}\r\n ProgressBar={ProgressBar}\r\n classMap={classes}\r\n />\r\n );\r\n};\r\n\r\nexport default FileUpload;\r\n"],"names":["FormGroup","Button","IconButton","ProgressBar"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FileUpload-DrPV-Oiy.cjs","sources":["../../src/Icons/FileIcon.tsx","../../src/Icons/TrashIcon.tsx","../../src/components/FileUpload/FileUploadBase.tsx","../../src/components/FileUpload/core/FileUpload.tsx"],"sourcesContent":["const FileIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\r\n <svg\r\n width=\"24px\"\r\n height=\"24px\"\r\n viewBox=\"0 0 24 24\"\r\n strokeWidth=\"1.5\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n color=\"currentColor\"\r\n {...props}\r\n >\r\n <path\r\n d=\"M3 20.5V6.5C3 5.67157 3.67157 5 4.5 5H14.2515C14.4106 5 14.5632 5.06321 14.6757 5.17574L17.8243 8.32426C17.9368 8.43679 18 8.5894 18 8.74853V20.5C18 21.3284 17.3284 22 16.5 22H4.5C3.67157 22 3 21.3284 3 20.5Z\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"1.5\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n ></path>\r\n <path\r\n d=\"M14 5V8.4C14 8.73137 14.2686 9 14.6 9H18\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"1.5\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n ></path>\r\n </svg>\r\n);\r\n\r\nexport default FileIcon;\r\n","const TrashIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\r\n <svg\r\n width=\"24px\"\r\n height=\"24px\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n color=\"currentColor\"\r\n stroke-width=\"1.5\"\r\n {...props}\r\n >\r\n <path\r\n d=\"M20 9L18.005 20.3463C17.8369 21.3026 17.0062 22 16.0353 22H7.96474C6.99379 22 6.1631 21.3026 5.99496 20.3463L4 9\"\r\n fill=\"currentColor\"\r\n ></path>\r\n <path\r\n d=\"M20 9L18.005 20.3463C17.8369 21.3026 17.0062 22 16.0353 22H7.96474C6.99379 22 6.1631 21.3026 5.99496 20.3463L4 9H20Z\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"1.5\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n ></path>\r\n <path\r\n d=\"M21 6H15.375M3 6H8.625M8.625 6V4C8.625 2.89543 9.52043 2 10.625 2H13.375C14.4796 2 15.375 2.89543 15.375 4V6M8.625 6H15.375\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"1.5\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n ></path>\r\n </svg>\r\n);\r\n\r\nexport default TrashIcon;\r\n","import React, { useMemo, useRef, useState, useEffect } from \"react\";\r\nimport { BaseFileUploadProps } from \"./FileUpload.types\";\r\nimport { FileIcon, TrashIcon } from \"../../Icons\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultTheme,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nconst BaseFileUpload: React.FC<BaseFileUploadProps> = ({\r\n label = \"Upload File\",\r\n description,\r\n error,\r\n required = false,\r\n theme = getDefaultTheme(),\r\n controlRounding = getDefaultRounding(),\r\n controlShadow = getDefaultShadow(),\r\n outline = false,\r\n outlineRounding = getDefaultRounding(),\r\n outlineShadow = getDefaultShadow(),\r\n state = \"\",\r\n multiple = false,\r\n maxFileSizeBytes = Infinity,\r\n allowedFileTypes = [],\r\n onSubmit,\r\n uploadProgress,\r\n \"data-testid\": testId = \"file-upload\",\r\n FormGroup,\r\n disabled = false,\r\n Button,\r\n IconButton,\r\n ProgressBar,\r\n classMap,\r\n}) => {\r\n const [fileNames, setFileNames] = useState<string[]>([]);\r\n const [files, setFiles] = useState<File[]>([]);\r\n const [rejectedFiles, setRejectedFiles] = useState<\r\n { name: string; reason: string }[]\r\n >([]);\r\n const [internalProgress, setInternalProgress] = useState<number>(0);\r\n const [uploading, setUploading] = useState(false);\r\n const [isDragging, setIsDragging] = useState(false);\r\n const [uploadMessage, setUploadMessage] = useState<string | null>(null);\r\n const fileInput = useRef<HTMLInputElement | null>(null);\r\n const intervalRef = useRef<ReturnType<typeof setInterval> | null>(null);\r\n\r\n const accept = useMemo(() => {\r\n if (!allowedFileTypes || allowedFileTypes.length === 0) return undefined;\r\n return allowedFileTypes.join(\",\");\r\n }, [allowedFileTypes]);\r\n\r\n const validateFiles = (newFiles: File[]) => {\r\n const valid: File[] = [];\r\n const rejected: { name: string; reason: string }[] = [];\r\n\r\n newFiles.forEach((file) => {\r\n const isSizeOk = file.size <= maxFileSizeBytes;\r\n const ext = file.name.includes(\".\")\r\n ? \".\" + file.name.split(\".\").pop()!.toLowerCase()\r\n : \"\";\r\n const typeAllowed =\r\n allowedFileTypes.length === 0 ||\r\n allowedFileTypes.includes(file.type) ||\r\n (ext && allowedFileTypes.map((t) => t.toLowerCase()).includes(ext));\r\n\r\n if (isSizeOk && typeAllowed) {\r\n valid.push(file);\r\n } else {\r\n rejected.push({\r\n name: file.name,\r\n reason: !isSizeOk\r\n ? `Exceeds size limit (${(file.size / 1024 / 1024).toFixed(2)}MB)`\r\n : `Invalid type (${file.type || ext || \"unknown\"})`,\r\n });\r\n }\r\n });\r\n\r\n return { valid, rejected };\r\n };\r\n\r\n const truncate = (s: string) => (s.length > 30 ? s.slice(0, 27) + \"...\" : s);\r\n\r\n const handleFileChange = (e: React.ChangeEvent<HTMLInputElement>) => {\r\n const selected = e.target.files;\r\n if (!selected || selected.length === 0) return;\r\n\r\n const { valid, rejected } = validateFiles(Array.from(selected));\r\n const updatedFiles = multiple ? [...files, ...valid] : valid;\r\n\r\n setFiles(updatedFiles);\r\n setFileNames(updatedFiles.map((f) => truncate(f.name)));\r\n setRejectedFiles(rejected);\r\n\r\n if (fileInput.current) fileInput.current.value = \"\";\r\n };\r\n\r\n const removeFile = (index: number) => {\r\n const updatedFiles = files.filter((_, i) => i !== index);\r\n setFiles(updatedFiles);\r\n setFileNames(updatedFiles.map((f) => truncate(f.name)));\r\n };\r\n\r\n const getButtonLabel = () => {\r\n if (fileNames.length > 0) return multiple ? \"Add Files\" : \"Select New\";\r\n return \"Choose File\";\r\n };\r\n\r\n const handleDragOver = (e: React.DragEvent) => {\r\n e.preventDefault();\r\n setIsDragging(true);\r\n };\r\n\r\n const handleDragLeave = () => {\r\n setIsDragging(false);\r\n };\r\n\r\n const handleDrop = (e: React.DragEvent) => {\r\n e.preventDefault();\r\n setIsDragging(false);\r\n const droppedFiles = e.dataTransfer.files;\r\n if (droppedFiles.length > 0) {\r\n handleFileChange({\r\n target: { files: droppedFiles },\r\n } as React.ChangeEvent<HTMLInputElement>);\r\n }\r\n };\r\n\r\n const handleUpload = async () => {\r\n if (!files.length || uploading) return;\r\n setUploading(true);\r\n setInternalProgress(0);\r\n setUploadMessage(null);\r\n\r\n try {\r\n if (uploadProgress === undefined) {\r\n intervalRef.current = setInterval(() => {\r\n setInternalProgress((prev) => {\r\n if (prev >= 100) {\r\n if (intervalRef.current) clearInterval(intervalRef.current);\r\n return 100;\r\n }\r\n return prev + 10;\r\n });\r\n }, 100);\r\n }\r\n\r\n await Promise.resolve(onSubmit?.(files));\r\n setUploadMessage(\"Upload successful.\");\r\n } catch {\r\n setUploadMessage(\"Upload failed. Please try again.\");\r\n } finally {\r\n if (intervalRef.current) {\r\n if (uploadProgress === undefined) setInternalProgress(100);\r\n clearInterval(intervalRef.current);\r\n intervalRef.current = null;\r\n }\r\n setTimeout(() => setUploading(false), 300);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n return () => {\r\n if (intervalRef.current) clearInterval(intervalRef.current);\r\n };\r\n }, []);\r\n\r\n const containerClassName = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.fileUpload,\r\n classMap[state],\r\n classMap[theme],\r\n outlineShadow && classMap[`shadow${capitalize(outlineShadow)}`],\r\n outlineRounding && classMap[`round${capitalize(outlineRounding)}`],\r\n error && classMap.error,\r\n isDragging && classMap.dragging,\r\n disabled && classMap.disabled\r\n ),\r\n [\r\n classMap,\r\n theme,\r\n state,\r\n outlineShadow,\r\n outlineRounding,\r\n error,\r\n isDragging,\r\n disabled,\r\n ]\r\n );\r\n\r\n const describedBy =\r\n [\r\n description ? `${testId}-description` : undefined,\r\n error ? `${testId}-error` : undefined,\r\n ]\r\n .filter(Boolean)\r\n .join(\" \") || undefined;\r\n\r\n return (\r\n <FormGroup\r\n label={label}\r\n description={description}\r\n error={error}\r\n required={required}\r\n data-testid={testId}\r\n >\r\n <div\r\n className={containerClassName}\r\n onDragOver={handleDragOver}\r\n onDragLeave={handleDragLeave}\r\n onDrop={handleDrop}\r\n aria-busy={uploading || undefined}\r\n data-testid={testId ? `${testId}-wrapper` : undefined}\r\n >\r\n <input\r\n ref={fileInput}\r\n id={`${testId}-input`}\r\n type=\"file\"\r\n multiple={multiple}\r\n accept={accept}\r\n onChange={handleFileChange}\r\n className={classMap.hiddenInput}\r\n required={required}\r\n aria-label={label}\r\n aria-describedby={describedBy}\r\n data-testid={testId ? `${testId}-input` : undefined}\r\n />\r\n\r\n <div className={classMap.uploadActions}>\r\n <Button\r\n icon={FileIcon}\r\n size=\"small\"\r\n theme={theme}\r\n state={error ? \"error\" : state}\r\n className={classMap.fileInput}\r\n disabled={uploading || disabled}\r\n outline={outline}\r\n rounding={controlRounding}\r\n shadow={controlShadow}\r\n onClick={() => fileInput.current?.click()}\r\n aria-label={\r\n fileNames.length > 0 ? fileNames.join(\", \") : \"Choose File\"\r\n }\r\n data-testid={testId ? `${testId}-file-button` : undefined}\r\n >\r\n {getButtonLabel()}\r\n </Button>\r\n </div>\r\n\r\n {rejectedFiles.length > 0 && (\r\n <div className={classMap.rejectedFiles}>\r\n <p className={classMap.rejectedLabel}>Rejected Files:</p>\r\n <ul className={classMap.rejectedList}>\r\n {rejectedFiles.map((file, index) => (\r\n <li key={index} className={classMap.rejectedItem}>\r\n <span>{file.name}</span>\r\n <span className={classMap.rejectedReason}>\r\n {\" \"}\r\n – {file.reason}\r\n </span>\r\n </li>\r\n ))}\r\n </ul>\r\n </div>\r\n )}\r\n\r\n {fileNames.length > 0 && (\r\n <div\r\n className={classMap.uploadControls}\r\n data-testid={testId ? `${testId}-controls` : undefined}\r\n >\r\n <ul className={classMap.fileList}>\r\n {fileNames.map((name, index) => (\r\n <li key={index} className={classMap.fileListItem}>\r\n <span>{name}</span>\r\n <IconButton\r\n icon={TrashIcon}\r\n theme=\"error\"\r\n size=\"xsmall\"\r\n type=\"button\"\r\n outline\r\n aria-label={`Remove ${name}`}\r\n onClick={() => removeFile(index)}\r\n className={classMap.removeButton}\r\n />\r\n </li>\r\n ))}\r\n </ul>\r\n {uploading && (\r\n <ProgressBar\r\n theme={theme}\r\n className={classMap.uploadProgress}\r\n progress={uploadProgress ?? internalProgress}\r\n indeterminate={uploadProgress === undefined}\r\n data-testid={testId ? `${testId}-progress` : undefined}\r\n />\r\n )}\r\n {!uploading && (\r\n <Button\r\n theme={theme}\r\n state={error ? \"error\" : state}\r\n disabled={disabled || files.length === 0}\r\n onClick={handleUpload}\r\n loading={uploading}\r\n size=\"small\"\r\n className={classMap.uploadButton}\r\n data-testid={testId ? `${testId}-upload-button` : undefined}\r\n >\r\n Upload\r\n </Button>\r\n )}\r\n </div>\r\n )}\r\n <div\r\n className=\"sr_only\"\r\n aria-live=\"polite\"\r\n aria-atomic=\"true\"\r\n data-testid={testId ? `${testId}-upload-message` : undefined}\r\n >\r\n {uploadMessage}\r\n </div>\r\n </div>\r\n </FormGroup>\r\n );\r\n};\r\nBaseFileUpload.displayName = \"BaseFileUpload\";\r\nexport default BaseFileUpload;\r\n","import React from \"react\";\r\nimport BaseFileUpload from \"../FileUploadBase\";\r\nimport { FileUploadProps } from \"../FileUpload.types\";\r\nimport Button from \"../../Button/core/Button\";\r\nimport IconButton from \"../../IconButton/core/IconButton\";\r\nimport ProgressBar from \"../../ProgressBar/core/ProgressBar\";\r\nimport FormGroup from \"../../FormGroup/core/FormGroup\";\r\nimport \"./FileUpload.scss\";\r\n\r\nconst classes = {\r\n fileUpload: \"file_upload\",\r\n hiddenInput: \"file_upload_hidden_input\",\r\n uploadActions: \"file_upload_upload_actions\",\r\n fileInput: \"file_upload_file_input\",\r\n removeButton: \"file_upload_remove_button\",\r\n uploadControls: \"file_upload_upload_controls\",\r\n uploadProgress: \"file_upload_upload_progress\",\r\n uploadButton: \"file_upload_upload_button\",\r\n fileList: \"file_upload_file_list\",\r\n fileListItem: \"file_upload_file_list_item\",\r\n fileListFileName: \"file_upload_file_list_file_name\",\r\n fileListRemoveButton: \"file_upload_file_list_remove_button\",\r\n\r\n primary: \"file_upload_primary\",\r\n secondary: \"file_upload_secondary\",\r\n tertiary: \"file_upload_tertiary\",\r\n quaternary: \"file_upload_quaternary\",\r\n clear: \"file_upload_clear\",\r\n\r\n disabled: \"file_upload_disabled\",\r\n error: \"file_upload_error\",\r\n success: \"file_upload_success\",\r\n warning: \"file_upload_warning\",\r\n\r\n shadowNone: \"file_upload_shadow-None\",\r\n shadowLight: \"file_upload_shadow-Light\",\r\n shadowMedium: \"file_upload_shadow-Medium\",\r\n shadowStrong: \"file_upload_shadow-Strong\",\r\n shadowIntense: \"file_upload_shadow-Intense\",\r\n\r\n roundNone: \"file_upload_round-None\",\r\n roundSmall: \"file_upload_round-Small\",\r\n roundMedium: \"file_upload_round-Medium\",\r\n roundLarge: \"file_upload_round-Large\",\r\n};\r\n\r\nconst FileUpload: React.FC<FileUploadProps> = (props) => {\r\n return (\r\n <BaseFileUpload\r\n {...props}\r\n FormGroup={FormGroup}\r\n Button={Button}\r\n IconButton={IconButton}\r\n ProgressBar={ProgressBar}\r\n classMap={classes}\r\n />\r\n );\r\n};\r\n\r\nexport default FileUpload;\r\n"],"names":["jsxs","jsx","getDefaultTheme","getDefaultRounding","getDefaultShadow","FormGroup","Button","IconButton","ProgressBar","useState","useRef","useMemo","useEffect","combineClassNames","capitalize"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Footer-DrYZJObN.cjs","sources":["../../src/components/Select/ThemeSelect/core/ThemeSelect.tsx","../../src/components/Footer/FooterBase.tsx","../../src/components/Footer/core/Footer.tsx"],"sourcesContent":["import React, { useContext, useMemo } from \"react\";\r\nimport Select from \"../../core/Select\";\r\nimport { ThemeContext } from \"../../../../context/ThemeContext\";\r\nimport { RoundingType, ShadowType, StateType, ThemeType } from \"@/types/types\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultTheme,\r\n} from \"@/config/boreal-style-config\";\r\n\r\ninterface ThemeSelectProps {\r\n theme?: ThemeType;\r\n shadow?: ShadowType;\r\n rounding?: RoundingType;\r\n \"data-testid\"?: string;\r\n state?: StateType;\r\n}\r\n\r\nconst UserThemeSettings: React.FC<ThemeSelectProps> = ({\r\n theme = getDefaultTheme(),\r\n shadow = getDefaultShadow(),\r\n rounding = getDefaultRounding(),\r\n \"data-testid\": testId = \"theme-select\",\r\n state = \"\",\r\n}) => {\r\n const ctx = useContext(ThemeContext);\r\n if (!ctx)\r\n throw new Error(\"ThemeContext is undefined. Wrap with ThemeProvider.\");\r\n\r\n const { selectedScheme, setSelectedScheme, schemes } = ctx;\r\n\r\n const options = useMemo(\r\n () =>\r\n schemes.map((scheme, index) => ({\r\n value: String(index),\r\n label: scheme.name,\r\n })),\r\n [schemes]\r\n );\r\n\r\n return (\r\n <div className=\"control-container\">\r\n <Select\r\n theme={theme}\r\n state={state}\r\n shadow={shadow}\r\n rounding={rounding}\r\n options={options}\r\n data-testid={testId}\r\n value={String(selectedScheme)}\r\n ariaLabel=\"Select Theme\"\r\n onChange={(value: string | number) =>\r\n setSelectedScheme(parseInt(String(value), 10))\r\n }\r\n />\r\n </div>\r\n );\r\n};\r\n\r\nexport default UserThemeSettings;\r\n","import React, { useMemo } from \"react\";\r\nimport { BaseFooterProps } from \"./Footer.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { getDefaultTheme } from \"../../config/boreal-style-config\";\r\nimport { capitalize } from \"@/utils/capitalize\";\r\n\r\nconst FooterBase: React.FC<BaseFooterProps> = ({\r\n theme = getDefaultTheme(),\r\n attachment = \"static\",\r\n shadow = \"none\",\r\n rounding = \"none\",\r\n className = \"\",\r\n \"data-testid\": testId = \"footer\",\r\n copyright,\r\n links = [],\r\n logo,\r\n socialLinks = [],\r\n showThemeSelect = false,\r\n IconButton,\r\n ImageComponent = \"img\",\r\n ThemeSelect,\r\n classMap,\r\n LinkWrapper = ({ href, children, ...rest }) => (\r\n <a href={href} {...rest}>\r\n {children}\r\n </a>\r\n ),\r\n}) => {\r\n const footerClass = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.footer,\r\n classMap[theme],\r\n shadow !== \"none\" && classMap[`shadow${capitalize(shadow)}`],\r\n rounding !== \"none\" && classMap[`round${capitalize(rounding)}`],\r\n classMap[`attachment${capitalize(attachment)}`],\r\n className\r\n ),\r\n [classMap, theme, shadow, rounding, attachment, className]\r\n );\r\n\r\n const isImgLike =\r\n typeof logo === \"string\" ||\r\n (typeof logo === \"object\" && logo && \"src\" in logo);\r\n const logoSrc = isImgLike\r\n ? typeof logo === \"string\"\r\n ? logo\r\n : (logo as any).src\r\n : undefined;\r\n const logoW = isImgLike ? ((logo as any)?.width ?? 20) : undefined;\r\n const logoH = isImgLike ? ((logo as any)?.height ?? 20) : undefined;\r\n\r\n return (\r\n <footer className={footerClass} data-testid={testId}>\r\n <div className={classMap.content}>\r\n <div className={classMap.left} data-testid={`${testId}-left`}>\r\n {isImgLike ? (\r\n <ImageComponent\r\n className={classMap.logo}\r\n data-testid={`${testId}-logo`}\r\n loading=\"lazy\"\r\n src={logoSrc}\r\n alt=\"Logo\"\r\n height={logoH}\r\n width={logoW}\r\n />\r\n ) : (\r\n <span\r\n className={classMap.logo}\r\n role=\"img\"\r\n aria-label=\"Logo\"\r\n data-testid={`${testId}-logo`}\r\n >\r\n {logo}\r\n </span>\r\n )}\r\n\r\n {copyright && (\r\n <div\r\n className={classMap.copyright ?? classMap.left}\r\n data-testid={`${testId}-copyright`}\r\n >\r\n <p>{copyright}</p>\r\n </div>\r\n )}\r\n </div>\r\n\r\n {links.length > 0 && (\r\n <nav\r\n className={classMap.links}\r\n aria-label=\"Footer site links\"\r\n data-testid={`${testId}-nav`}\r\n >\r\n <ul>\r\n {links.map((link, i) => {\r\n const slug = (link.label || link.href || `link-${i}`)\r\n .toLowerCase()\r\n .replace(/\\s+/g, \"-\");\r\n return (\r\n <li key={`${link.href ?? slug}-${i}`}>\r\n <LinkWrapper\r\n href={link.href}\r\n className={classMap.link}\r\n data-testid={`${testId}-link-${slug}`}\r\n >\r\n {link.label}\r\n </LinkWrapper>\r\n </li>\r\n );\r\n })}\r\n </ul>\r\n </nav>\r\n )}\r\n\r\n {showThemeSelect && (\r\n <div\r\n className={classMap.themeToggle}\r\n data-testid={`${testId}-theme-select`}\r\n >\r\n <ThemeSelect theme=\"clear\" shadow=\"none\" aria-label=\"Theme\" />\r\n </div>\r\n )}\r\n\r\n {socialLinks.length > 0 && (\r\n <nav\r\n className={classMap.social}\r\n aria-label=\"Social media\"\r\n data-testid={`${testId}-social`}\r\n >\r\n {socialLinks.map((social, index) => (\r\n <IconButton\r\n key={`${social.href ?? social.title}-${index}`}\r\n icon={social.icon}\r\n href={social.href}\r\n isExternal\r\n shadow=\"none\"\r\n ariaLabel={social.title}\r\n title={social.title}\r\n theme=\"clear\"\r\n data-testid={`${testId}-social-${social.title.toLowerCase().replace(/\\s+/g, \"-\")}`}\r\n />\r\n ))}\r\n </nav>\r\n )}\r\n </div>\r\n </footer>\r\n );\r\n};\r\n\r\nFooterBase.displayName = \"FooterBase\";\r\nexport default FooterBase;\r\n","import React from \"react\";\r\nimport FooterBase from \"../FooterBase\";\r\nimport { FooterProps } from \"../Footer.types\";\r\nimport IconButton from \"../../IconButton/core/IconButton\";\r\nimport ThemeSelect from \"../../Select/ThemeSelect/core/ThemeSelect\";\r\nimport \"./Footer.scss\";\r\n\r\nconst classes = {\r\n footer: \"footer\",\r\n\r\n primary: \"footer_primary\",\r\n secondary: \"footer_secondary\",\r\n tertiary: \"footer_tertiary\",\r\n quaternary: \"footer_quaternary\",\r\n clear: \"footer_clear\",\r\n\r\n shadowNone: \"footer_shadow-None\",\r\n shadowLight: \"footer_shadow-Light\",\r\n shadowMedium: \"footer_shadow-Medium\",\r\n shadowStrong: \"footer_shadow-Strong\",\r\n shadowIntense: \"footer_shadow-Intense\",\r\n\r\n roundNone: \"footer_round-None\",\r\n roundSmall: \"footer_round-Small\",\r\n roundMedium: \"footer_round-Medium\",\r\n roundLarge: \"footer_round-Large\",\r\n\r\n attachmentStatic: \"footer_attachment-static\",\r\n attachmentFixed: \"footer_attachment-fixed\",\r\n attachmentSticky: \"footer_attachment-sticky\",\r\n\r\n content: \"footer_content\",\r\n logo: \"footer_logo\",\r\n left: \"footer_left\",\r\n links: \"footer_links\",\r\n link: \"footer_link\",\r\n social: \"footer_social\",\r\n\r\n themeToggle: \"footer_theme_toggle\",\r\n};\r\n\r\nconst Footer: React.FC<FooterProps> = (props) => {\r\n return (\r\n <FooterBase\r\n {...props}\r\n IconButton={IconButton}\r\n ThemeSelect={ThemeSelect}\r\n classMap={classes}\r\n />\r\n );\r\n};\r\n\r\nexport default Footer;\r\n"],"names":["getDefaultTheme","getDefaultShadow","getDefaultRounding","useContext","ThemeContext","useMemo","jsx","Select","IconButton","combineClassNames","capitalize","jsxs","ThemeSelect"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Footer-vLVfqKWf.js","sources":["../../src/components/Select/ThemeSelect/core/ThemeSelect.tsx","../../src/components/Footer/FooterBase.tsx","../../src/components/Footer/core/Footer.tsx"],"sourcesContent":["import React, { useContext, useMemo } from \"react\";\r\nimport Select from \"../../core/Select\";\r\nimport { ThemeContext } from \"../../../../context/ThemeContext\";\r\nimport { RoundingType, ShadowType, StateType, ThemeType } from \"@/types/types\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultTheme,\r\n} from \"@/config/boreal-style-config\";\r\n\r\ninterface ThemeSelectProps {\r\n theme?: ThemeType;\r\n shadow?: ShadowType;\r\n rounding?: RoundingType;\r\n \"data-testid\"?: string;\r\n state?: StateType;\r\n}\r\n\r\nconst UserThemeSettings: React.FC<ThemeSelectProps> = ({\r\n theme = getDefaultTheme(),\r\n shadow = getDefaultShadow(),\r\n rounding = getDefaultRounding(),\r\n \"data-testid\": testId = \"theme-select\",\r\n state = \"\",\r\n}) => {\r\n const ctx = useContext(ThemeContext);\r\n if (!ctx)\r\n throw new Error(\"ThemeContext is undefined. Wrap with ThemeProvider.\");\r\n\r\n const { selectedScheme, setSelectedScheme, schemes } = ctx;\r\n\r\n const options = useMemo(\r\n () =>\r\n schemes.map((scheme, index) => ({\r\n value: String(index),\r\n label: scheme.name,\r\n })),\r\n [schemes]\r\n );\r\n\r\n return (\r\n <div className=\"control-container\">\r\n <Select\r\n theme={theme}\r\n state={state}\r\n shadow={shadow}\r\n rounding={rounding}\r\n options={options}\r\n data-testid={testId}\r\n value={String(selectedScheme)}\r\n ariaLabel=\"Select Theme\"\r\n onChange={(value: string | number) =>\r\n setSelectedScheme(parseInt(String(value), 10))\r\n }\r\n />\r\n </div>\r\n );\r\n};\r\n\r\nexport default UserThemeSettings;\r\n","import React, { useMemo } from \"react\";\r\nimport { BaseFooterProps } from \"./Footer.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { getDefaultTheme } from \"../../config/boreal-style-config\";\r\nimport { capitalize } from \"@/utils/capitalize\";\r\n\r\nconst FooterBase: React.FC<BaseFooterProps> = ({\r\n theme = getDefaultTheme(),\r\n attachment = \"static\",\r\n shadow = \"none\",\r\n rounding = \"none\",\r\n className = \"\",\r\n \"data-testid\": testId = \"footer\",\r\n copyright,\r\n links = [],\r\n logo,\r\n socialLinks = [],\r\n showThemeSelect = false,\r\n IconButton,\r\n ImageComponent = \"img\",\r\n ThemeSelect,\r\n classMap,\r\n LinkWrapper = ({ href, children, ...rest }) => (\r\n <a href={href} {...rest}>\r\n {children}\r\n </a>\r\n ),\r\n}) => {\r\n const footerClass = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.footer,\r\n classMap[theme],\r\n shadow !== \"none\" && classMap[`shadow${capitalize(shadow)}`],\r\n rounding !== \"none\" && classMap[`round${capitalize(rounding)}`],\r\n classMap[`attachment${capitalize(attachment)}`],\r\n className\r\n ),\r\n [classMap, theme, shadow, rounding, attachment, className]\r\n );\r\n\r\n const isImgLike =\r\n typeof logo === \"string\" ||\r\n (typeof logo === \"object\" && logo && \"src\" in logo);\r\n const logoSrc = isImgLike\r\n ? typeof logo === \"string\"\r\n ? logo\r\n : (logo as any).src\r\n : undefined;\r\n const logoW = isImgLike ? ((logo as any)?.width ?? 20) : undefined;\r\n const logoH = isImgLike ? ((logo as any)?.height ?? 20) : undefined;\r\n\r\n return (\r\n <footer className={footerClass} data-testid={testId}>\r\n <div className={classMap.content}>\r\n <div className={classMap.left} data-testid={`${testId}-left`}>\r\n {isImgLike ? (\r\n <ImageComponent\r\n className={classMap.logo}\r\n data-testid={`${testId}-logo`}\r\n loading=\"lazy\"\r\n src={logoSrc}\r\n alt=\"Logo\"\r\n height={logoH}\r\n width={logoW}\r\n />\r\n ) : (\r\n <span\r\n className={classMap.logo}\r\n role=\"img\"\r\n aria-label=\"Logo\"\r\n data-testid={`${testId}-logo`}\r\n >\r\n {logo}\r\n </span>\r\n )}\r\n\r\n {copyright && (\r\n <div\r\n className={classMap.copyright ?? classMap.left}\r\n data-testid={`${testId}-copyright`}\r\n >\r\n <p>{copyright}</p>\r\n </div>\r\n )}\r\n </div>\r\n\r\n {links.length > 0 && (\r\n <nav\r\n className={classMap.links}\r\n aria-label=\"Footer site links\"\r\n data-testid={`${testId}-nav`}\r\n >\r\n <ul>\r\n {links.map((link, i) => {\r\n const slug = (link.label || link.href || `link-${i}`)\r\n .toLowerCase()\r\n .replace(/\\s+/g, \"-\");\r\n return (\r\n <li key={`${link.href ?? slug}-${i}`}>\r\n <LinkWrapper\r\n href={link.href}\r\n className={classMap.link}\r\n data-testid={`${testId}-link-${slug}`}\r\n >\r\n {link.label}\r\n </LinkWrapper>\r\n </li>\r\n );\r\n })}\r\n </ul>\r\n </nav>\r\n )}\r\n\r\n {showThemeSelect && (\r\n <div\r\n className={classMap.themeToggle}\r\n data-testid={`${testId}-theme-select`}\r\n >\r\n <ThemeSelect theme=\"clear\" shadow=\"none\" aria-label=\"Theme\" />\r\n </div>\r\n )}\r\n\r\n {socialLinks.length > 0 && (\r\n <nav\r\n className={classMap.social}\r\n aria-label=\"Social media\"\r\n data-testid={`${testId}-social`}\r\n >\r\n {socialLinks.map((social, index) => (\r\n <IconButton\r\n key={`${social.href ?? social.title}-${index}`}\r\n icon={social.icon}\r\n href={social.href}\r\n isExternal\r\n shadow=\"none\"\r\n ariaLabel={social.title}\r\n title={social.title}\r\n theme=\"clear\"\r\n data-testid={`${testId}-social-${social.title.toLowerCase().replace(/\\s+/g, \"-\")}`}\r\n />\r\n ))}\r\n </nav>\r\n )}\r\n </div>\r\n </footer>\r\n );\r\n};\r\n\r\nFooterBase.displayName = \"FooterBase\";\r\nexport default FooterBase;\r\n","import React from \"react\";\r\nimport FooterBase from \"../FooterBase\";\r\nimport { FooterProps } from \"../Footer.types\";\r\nimport IconButton from \"../../IconButton/core/IconButton\";\r\nimport ThemeSelect from \"../../Select/ThemeSelect/core/ThemeSelect\";\r\nimport \"./Footer.scss\";\r\n\r\nconst classes = {\r\n footer: \"footer\",\r\n\r\n primary: \"footer_primary\",\r\n secondary: \"footer_secondary\",\r\n tertiary: \"footer_tertiary\",\r\n quaternary: \"footer_quaternary\",\r\n clear: \"footer_clear\",\r\n\r\n shadowNone: \"footer_shadow-None\",\r\n shadowLight: \"footer_shadow-Light\",\r\n shadowMedium: \"footer_shadow-Medium\",\r\n shadowStrong: \"footer_shadow-Strong\",\r\n shadowIntense: \"footer_shadow-Intense\",\r\n\r\n roundNone: \"footer_round-None\",\r\n roundSmall: \"footer_round-Small\",\r\n roundMedium: \"footer_round-Medium\",\r\n roundLarge: \"footer_round-Large\",\r\n\r\n attachmentStatic: \"footer_attachment-static\",\r\n attachmentFixed: \"footer_attachment-fixed\",\r\n attachmentSticky: \"footer_attachment-sticky\",\r\n\r\n content: \"footer_content\",\r\n logo: \"footer_logo\",\r\n left: \"footer_left\",\r\n links: \"footer_links\",\r\n link: \"footer_link\",\r\n social: \"footer_social\",\r\n\r\n themeToggle: \"footer_theme_toggle\",\r\n};\r\n\r\nconst Footer: React.FC<FooterProps> = (props) => {\r\n return (\r\n <FooterBase\r\n {...props}\r\n IconButton={IconButton}\r\n ThemeSelect={ThemeSelect}\r\n classMap={classes}\r\n />\r\n );\r\n};\r\n\r\nexport default Footer;\r\n"],"names":["IconButton","ThemeSelect"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"IconButton-B9WWbeSM.js","sources":["../../src/components/IconButton/IconButtonBase.tsx","../../src/components/IconButton/core/IconButton.tsx"],"sourcesContent":["import React, { forwardRef, useMemo } from \"react\";\r\nimport { IconButtonBaseProps } from \"./IconButton.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultSize,\r\n getDefaultTheme,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nconst IconButtonBase = forwardRef<\r\n HTMLButtonElement | HTMLAnchorElement,\r\n IconButtonBaseProps\r\n>(function IconButtonBase(\r\n {\r\n icon: Icon,\r\n theme = getDefaultTheme(),\r\n state = \"\",\r\n href,\r\n isExternal = false,\r\n onClick,\r\n onKeyDown,\r\n className = \"\",\r\n disabled = false,\r\n ariaLabel,\r\n title,\r\n outline = false,\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n size = getDefaultSize(),\r\n loading = false,\r\n type = \"button\",\r\n classMap,\r\n LinkComponent = \"a\",\r\n \"data-testid\": testId = \"icon-button\",\r\n tabIndex,\r\n ...rest\r\n },\r\n ref\r\n) {\r\n const needsLabel = !ariaLabel && !title;\r\n if (process.env.NODE_ENV === \"development\" && needsLabel) {\r\n console.warn(\r\n \"IconButtonBase: provide `ariaLabel` or `title` for icon-only buttons.\"\r\n );\r\n }\r\n const label = ariaLabel || title || \"Icon button\";\r\n\r\n const classNames = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.iconButton,\r\n classMap[theme],\r\n classMap[state],\r\n size && classMap[size],\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n outline && classMap.outline,\r\n (disabled || loading) && classMap.disabled,\r\n className\r\n ),\r\n [\r\n classMap,\r\n theme,\r\n state,\r\n size,\r\n shadow,\r\n rounding,\r\n outline,\r\n disabled,\r\n loading,\r\n className,\r\n ]\r\n );\r\n\r\n const sharedAria = {\r\n \"aria-label\": label,\r\n \"aria-busy\": loading || undefined,\r\n title,\r\n \"data-testid\": testId,\r\n } as const;\r\n\r\n const iconContent = (\r\n <span\r\n className={classMap.buttonLabel}\r\n aria-live=\"polite\"\r\n aria-atomic=\"true\"\r\n >\r\n {loading ? (\r\n <>\r\n <div className={classMap.loader} aria-hidden=\"true\" />\r\n <span className=\"sr_only\">Loading</span>\r\n </>\r\n ) : Icon ? (\r\n <Icon\r\n data-testid=\"icon-button-icon\"\r\n aria-hidden={true}\r\n focusable={false}\r\n />\r\n ) : null}\r\n </span>\r\n );\r\n\r\n const renderAsLink = !!href;\r\n const inert = disabled || loading;\r\n\r\n if (renderAsLink) {\r\n const linkProps = {\r\n className: combineClassNames(classNames, classMap.link),\r\n ref: ref as React.Ref<HTMLAnchorElement>,\r\n onClick: inert ? (e: React.MouseEvent) => e.preventDefault() : onClick,\r\n onKeyDown,\r\n \"aria-disabled\": inert || undefined,\r\n tabIndex: inert ? -1 : tabIndex,\r\n ...sharedAria,\r\n ...rest,\r\n };\r\n\r\n if (isExternal) {\r\n return (\r\n <a\r\n {...linkProps}\r\n href={inert ? undefined : href}\r\n target=\"_blank\"\r\n rel=\"noopener noreferrer\"\r\n >\r\n {iconContent}\r\n </a>\r\n );\r\n }\r\n\r\n return (\r\n <LinkComponent {...linkProps} href={inert ? undefined : href}>\r\n {iconContent}\r\n </LinkComponent>\r\n );\r\n }\r\n\r\n return (\r\n <button\r\n type={type}\r\n disabled={disabled || loading}\r\n className={classNames}\r\n onClick={disabled ? (e) => e.preventDefault() : onClick}\r\n onKeyDown={onKeyDown}\r\n ref={ref as React.Ref<HTMLButtonElement>}\r\n tabIndex={tabIndex}\r\n {...sharedAria}\r\n {...rest}\r\n >\r\n {iconContent}\r\n </button>\r\n );\r\n});\r\n\r\nIconButtonBase.displayName = \"IconButtonBase\";\r\nexport default IconButtonBase;\r\n","import React from \"react\";\r\nimport IconButtonBase from \"../IconButtonBase\";\r\nimport \"./IconButton.scss\";\r\nimport { IconButtonProps } from \"../IconButton.types\";\r\n\r\nconst classes = {\r\n iconButton: \"icon_button\",\r\n buttonLabel: \"icon_button_button_label\",\r\n loader: \"icon_button_loader\",\r\n\r\n disabled: \"icon_button_disabled\",\r\n outline: \"icon_button_outline\",\r\n\r\n primary: \"icon_button_primary\",\r\n secondary: \"icon_button_secondary\",\r\n tertiary: \"icon_button_tertiary\",\r\n quaternary: \"icon_button_quaternary\",\r\n\r\n success: \"icon_button_success\",\r\n warning: \"icon_button_warning\",\r\n error: \"icon_button_error\",\r\n\r\n clear: \"icon_button_clear\",\r\n\r\n xs: \"icon_button_xs\",\r\n small: \"icon_button_small\",\r\n medium: \"icon_button_medium\",\r\n large: \"icon_button_large\",\r\n xl: \"icon_button_xl\",\r\n\r\n shadowNone: \"icon_button_shadow-None\",\r\n shadowLight: \"icon_button_shadow-Light\",\r\n shadowMedium: \"icon_button_shadow-Medium\",\r\n shadowStrong: \"icon_button_shadow-Strong\",\r\n shadowIntense: \"icon_button_shadow-Intense\",\r\n\r\n roundNone: \"icon_button_round-None\",\r\n roundSmall: \"icon_button_round-Small\",\r\n roundMedium: \"icon_button_round-Medium\",\r\n roundLarge: \"icon_button_round-Large\",\r\n roundFull: \"icon_button_round-Full\",\r\n};\r\n\r\nconst IconButton: React.FC<IconButtonProps> = (props) => (\r\n <IconButtonBase {...props} classMap={classes} />\r\n);\r\n\r\nexport default IconButton;\r\n"],"names":["IconButtonBase"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"IconButton-D_W4nsPZ.cjs","sources":["../../src/components/IconButton/IconButtonBase.tsx","../../src/components/IconButton/core/IconButton.tsx"],"sourcesContent":["import React, { forwardRef, useMemo } from \"react\";\r\nimport { IconButtonBaseProps } from \"./IconButton.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultSize,\r\n getDefaultTheme,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nconst IconButtonBase = forwardRef<\r\n HTMLButtonElement | HTMLAnchorElement,\r\n IconButtonBaseProps\r\n>(function IconButtonBase(\r\n {\r\n icon: Icon,\r\n theme = getDefaultTheme(),\r\n state = \"\",\r\n href,\r\n isExternal = false,\r\n onClick,\r\n onKeyDown,\r\n className = \"\",\r\n disabled = false,\r\n ariaLabel,\r\n title,\r\n outline = false,\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n size = getDefaultSize(),\r\n loading = false,\r\n type = \"button\",\r\n classMap,\r\n LinkComponent = \"a\",\r\n \"data-testid\": testId = \"icon-button\",\r\n tabIndex,\r\n ...rest\r\n },\r\n ref\r\n) {\r\n const needsLabel = !ariaLabel && !title;\r\n if (process.env.NODE_ENV === \"development\" && needsLabel) {\r\n console.warn(\r\n \"IconButtonBase: provide `ariaLabel` or `title` for icon-only buttons.\"\r\n );\r\n }\r\n const label = ariaLabel || title || \"Icon button\";\r\n\r\n const classNames = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.iconButton,\r\n classMap[theme],\r\n classMap[state],\r\n size && classMap[size],\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n outline && classMap.outline,\r\n (disabled || loading) && classMap.disabled,\r\n className\r\n ),\r\n [\r\n classMap,\r\n theme,\r\n state,\r\n size,\r\n shadow,\r\n rounding,\r\n outline,\r\n disabled,\r\n loading,\r\n className,\r\n ]\r\n );\r\n\r\n const sharedAria = {\r\n \"aria-label\": label,\r\n \"aria-busy\": loading || undefined,\r\n title,\r\n \"data-testid\": testId,\r\n } as const;\r\n\r\n const iconContent = (\r\n <span\r\n className={classMap.buttonLabel}\r\n aria-live=\"polite\"\r\n aria-atomic=\"true\"\r\n >\r\n {loading ? (\r\n <>\r\n <div className={classMap.loader} aria-hidden=\"true\" />\r\n <span className=\"sr_only\">Loading</span>\r\n </>\r\n ) : Icon ? (\r\n <Icon\r\n data-testid=\"icon-button-icon\"\r\n aria-hidden={true}\r\n focusable={false}\r\n />\r\n ) : null}\r\n </span>\r\n );\r\n\r\n const renderAsLink = !!href;\r\n const inert = disabled || loading;\r\n\r\n if (renderAsLink) {\r\n const linkProps = {\r\n className: combineClassNames(classNames, classMap.link),\r\n ref: ref as React.Ref<HTMLAnchorElement>,\r\n onClick: inert ? (e: React.MouseEvent) => e.preventDefault() : onClick,\r\n onKeyDown,\r\n \"aria-disabled\": inert || undefined,\r\n tabIndex: inert ? -1 : tabIndex,\r\n ...sharedAria,\r\n ...rest,\r\n };\r\n\r\n if (isExternal) {\r\n return (\r\n <a\r\n {...linkProps}\r\n href={inert ? undefined : href}\r\n target=\"_blank\"\r\n rel=\"noopener noreferrer\"\r\n >\r\n {iconContent}\r\n </a>\r\n );\r\n }\r\n\r\n return (\r\n <LinkComponent {...linkProps} href={inert ? undefined : href}>\r\n {iconContent}\r\n </LinkComponent>\r\n );\r\n }\r\n\r\n return (\r\n <button\r\n type={type}\r\n disabled={disabled || loading}\r\n className={classNames}\r\n onClick={disabled ? (e) => e.preventDefault() : onClick}\r\n onKeyDown={onKeyDown}\r\n ref={ref as React.Ref<HTMLButtonElement>}\r\n tabIndex={tabIndex}\r\n {...sharedAria}\r\n {...rest}\r\n >\r\n {iconContent}\r\n </button>\r\n );\r\n});\r\n\r\nIconButtonBase.displayName = \"IconButtonBase\";\r\nexport default IconButtonBase;\r\n","import React from \"react\";\r\nimport IconButtonBase from \"../IconButtonBase\";\r\nimport \"./IconButton.scss\";\r\nimport { IconButtonProps } from \"../IconButton.types\";\r\n\r\nconst classes = {\r\n iconButton: \"icon_button\",\r\n buttonLabel: \"icon_button_button_label\",\r\n loader: \"icon_button_loader\",\r\n\r\n disabled: \"icon_button_disabled\",\r\n outline: \"icon_button_outline\",\r\n\r\n primary: \"icon_button_primary\",\r\n secondary: \"icon_button_secondary\",\r\n tertiary: \"icon_button_tertiary\",\r\n quaternary: \"icon_button_quaternary\",\r\n\r\n success: \"icon_button_success\",\r\n warning: \"icon_button_warning\",\r\n error: \"icon_button_error\",\r\n\r\n clear: \"icon_button_clear\",\r\n\r\n xs: \"icon_button_xs\",\r\n small: \"icon_button_small\",\r\n medium: \"icon_button_medium\",\r\n large: \"icon_button_large\",\r\n xl: \"icon_button_xl\",\r\n\r\n shadowNone: \"icon_button_shadow-None\",\r\n shadowLight: \"icon_button_shadow-Light\",\r\n shadowMedium: \"icon_button_shadow-Medium\",\r\n shadowStrong: \"icon_button_shadow-Strong\",\r\n shadowIntense: \"icon_button_shadow-Intense\",\r\n\r\n roundNone: \"icon_button_round-None\",\r\n roundSmall: \"icon_button_round-Small\",\r\n roundMedium: \"icon_button_round-Medium\",\r\n roundLarge: \"icon_button_round-Large\",\r\n roundFull: \"icon_button_round-Full\",\r\n};\r\n\r\nconst IconButton: React.FC<IconButtonProps> = (props) => (\r\n <IconButtonBase {...props} classMap={classes} />\r\n);\r\n\r\nexport default IconButton;\r\n"],"names":["forwardRef","IconButtonBase","getDefaultTheme","getDefaultRounding","getDefaultShadow","getDefaultSize","classNames","useMemo","combineClassNames","capitalize","jsx","jsxs","Fragment"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MarkdownRenderer-COnLzf0t.js","sources":["../../src/components/MarkdownRenderer/MarkdownRendererBase.tsx","../../src/components/MarkdownRenderer/core/MarkdownRenderer.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\r\nimport { marked } from \"marked\";\r\nimport { BaseMarkdownRendererProps } from \"./MarkdownRenderer.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nfunction safeSanitize(html: string): string {\r\n try {\r\n if (typeof window !== \"undefined\" && \"DOMParser\" in window) {\r\n const doc = new DOMParser().parseFromString(html, \"text/html\");\r\n doc\r\n .querySelectorAll(\"script, iframe, object, embed, link, meta\")\r\n .forEach((el) => el.remove());\r\n\r\n doc.body.querySelectorAll<HTMLElement>(\"*\").forEach((el) => {\r\n [...el.attributes].forEach((attr) => {\r\n const name = attr.name.toLowerCase();\r\n const val = attr.value;\r\n if (name.startsWith(\"on\")) el.removeAttribute(attr.name);\r\n if (\r\n (name === \"href\" || name === \"src\") &&\r\n /^\\s*javascript:/i.test(val)\r\n ) {\r\n el.removeAttribute(attr.name);\r\n }\r\n });\r\n });\r\n\r\n return doc.body.innerHTML;\r\n }\r\n } catch {}\r\n\r\n return html\r\n .replace(/<\\/?(script|iframe|object|embed|meta|link)[^>]*>/gi, \"\")\r\n .replace(/\\son[a-z]+=\"[^\"]*\"/gi, \"\")\r\n .replace(/\\s(href|src)\\s*=\\s*\"(?:\\s*javascript:[^\"]*)\"/gi, \"\");\r\n}\r\n\r\nconst escapeHtml = (s: string) =>\r\n s\r\n .replace(/&/g, \"&\")\r\n .replace(/</g, \"<\")\r\n .replace(/>/g, \">\")\r\n .replace(/\"/g, \""\")\r\n .replace(/'/g, \"'\");\r\n\r\nconst BaseMarkdownRenderer: React.FC<BaseMarkdownRendererProps> = ({\r\n content,\r\n className = \"\",\r\n language = \"en\",\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n \"data-testid\": testId = \"markdown-renderer\",\r\n classMap,\r\n sanitizeHtml,\r\n}) => {\r\n const renderer = useMemo(() => {\r\n const r = new marked.Renderer();\r\n\r\n r.link = ({ href, title, text }) => {\r\n const url = href ?? \"#\";\r\n const isExternal = /^https?:\\/\\//i.test(url);\r\n const t = title ? ` title=\"${escapeHtml(title)}\"` : \"\";\r\n const target = isExternal ? ` target=\"_blank\"` : \"\";\r\n const rel = isExternal ? ` rel=\"noopener noreferrer\"` : \"\";\r\n return `<a href=\"${escapeHtml(url)}\"${t}${target}${rel}>${text}</a>`;\r\n };\r\n\r\n r.image = ({ href, title, text }) => {\r\n const url = href ?? \"\";\r\n const t = title ? ` title=\"${escapeHtml(title)}\"` : \"\";\r\n const alt = escapeHtml(text || \"\");\r\n return `<img src=\"${escapeHtml(url)}\"${t} alt=\"${alt}\" loading=\"lazy\" decoding=\"async\" />`;\r\n };\r\n\r\n return r;\r\n }, []);\r\n\r\n const html = useMemo(() => {\r\n const trimmed = (content ?? \"\").trim();\r\n if (!trimmed) return \"\";\r\n\r\n const raw = marked.parse(trimmed, {\r\n async: false,\r\n renderer,\r\n }) as string;\r\n\r\n const sanitize = sanitizeHtml ?? safeSanitize;\r\n return sanitize(raw);\r\n }, [content, renderer, sanitizeHtml]);\r\n\r\n const wrapperClass = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.wrapper,\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n className\r\n ),\r\n [classMap, rounding, shadow, className]\r\n );\r\n\r\n if (!html) {\r\n return (\r\n <div className={classMap.empty} data-testid={testId}>\r\n <p>No content available.</p>\r\n </div>\r\n );\r\n }\r\n\r\n return (\r\n <div\r\n className={wrapperClass}\r\n data-testid={testId}\r\n lang={language}\r\n dangerouslySetInnerHTML={{ __html: html }}\r\n />\r\n );\r\n};\r\n\r\nBaseMarkdownRenderer.displayName = \"BaseMarkdownRenderer\";\r\nexport default BaseMarkdownRenderer;\r\n","import React from \"react\";\r\nimport BaseMarkdownRenderer from \"../MarkdownRendererBase\";\r\nimport \"./MarkdownRenderer.scss\";\r\nimport { MarkdownRendererProps } from \"../MarkdownRenderer.types\";\r\n\r\nconst classes = {\r\n wrapper: \"markdown\",\r\n loading: \"markdown_loading\",\r\n\r\n shadowNone: \"markdown_shadow-None\",\r\n shadowLight: \"markdown_shadow-Light\",\r\n shadowMedium: \"markdown_shadow-Medium\",\r\n shadowStrong: \"markdown_shadow-Strong\",\r\n shadowIntense: \"markdown_shadow-Intense\",\r\n\r\n roundNone: \"markdown_round-None\",\r\n roundSmall: \"markdown_round-Small\",\r\n roundMedium: \"markdown_round-Medium\",\r\n roundLarge: \"markdown_round-Large\",\r\n};\r\n\r\nconst MarkdownRenderer: React.FC<MarkdownRendererProps> = (props) => {\r\n return <BaseMarkdownRenderer {...props} classMap={classes} />;\r\n};\r\n\r\nexport default MarkdownRenderer;\r\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MarkdownRenderer-OUEnVOLG.cjs","sources":["../../src/components/MarkdownRenderer/MarkdownRendererBase.tsx","../../src/components/MarkdownRenderer/core/MarkdownRenderer.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\r\nimport { marked } from \"marked\";\r\nimport { BaseMarkdownRendererProps } from \"./MarkdownRenderer.types\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nfunction safeSanitize(html: string): string {\r\n try {\r\n if (typeof window !== \"undefined\" && \"DOMParser\" in window) {\r\n const doc = new DOMParser().parseFromString(html, \"text/html\");\r\n doc\r\n .querySelectorAll(\"script, iframe, object, embed, link, meta\")\r\n .forEach((el) => el.remove());\r\n\r\n doc.body.querySelectorAll<HTMLElement>(\"*\").forEach((el) => {\r\n [...el.attributes].forEach((attr) => {\r\n const name = attr.name.toLowerCase();\r\n const val = attr.value;\r\n if (name.startsWith(\"on\")) el.removeAttribute(attr.name);\r\n if (\r\n (name === \"href\" || name === \"src\") &&\r\n /^\\s*javascript:/i.test(val)\r\n ) {\r\n el.removeAttribute(attr.name);\r\n }\r\n });\r\n });\r\n\r\n return doc.body.innerHTML;\r\n }\r\n } catch {}\r\n\r\n return html\r\n .replace(/<\\/?(script|iframe|object|embed|meta|link)[^>]*>/gi, \"\")\r\n .replace(/\\son[a-z]+=\"[^\"]*\"/gi, \"\")\r\n .replace(/\\s(href|src)\\s*=\\s*\"(?:\\s*javascript:[^\"]*)\"/gi, \"\");\r\n}\r\n\r\nconst escapeHtml = (s: string) =>\r\n s\r\n .replace(/&/g, \"&\")\r\n .replace(/</g, \"<\")\r\n .replace(/>/g, \">\")\r\n .replace(/\"/g, \""\")\r\n .replace(/'/g, \"'\");\r\n\r\nconst BaseMarkdownRenderer: React.FC<BaseMarkdownRendererProps> = ({\r\n content,\r\n className = \"\",\r\n language = \"en\",\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n \"data-testid\": testId = \"markdown-renderer\",\r\n classMap,\r\n sanitizeHtml,\r\n}) => {\r\n const renderer = useMemo(() => {\r\n const r = new marked.Renderer();\r\n\r\n r.link = ({ href, title, text }) => {\r\n const url = href ?? \"#\";\r\n const isExternal = /^https?:\\/\\//i.test(url);\r\n const t = title ? ` title=\"${escapeHtml(title)}\"` : \"\";\r\n const target = isExternal ? ` target=\"_blank\"` : \"\";\r\n const rel = isExternal ? ` rel=\"noopener noreferrer\"` : \"\";\r\n return `<a href=\"${escapeHtml(url)}\"${t}${target}${rel}>${text}</a>`;\r\n };\r\n\r\n r.image = ({ href, title, text }) => {\r\n const url = href ?? \"\";\r\n const t = title ? ` title=\"${escapeHtml(title)}\"` : \"\";\r\n const alt = escapeHtml(text || \"\");\r\n return `<img src=\"${escapeHtml(url)}\"${t} alt=\"${alt}\" loading=\"lazy\" decoding=\"async\" />`;\r\n };\r\n\r\n return r;\r\n }, []);\r\n\r\n const html = useMemo(() => {\r\n const trimmed = (content ?? \"\").trim();\r\n if (!trimmed) return \"\";\r\n\r\n const raw = marked.parse(trimmed, {\r\n async: false,\r\n renderer,\r\n }) as string;\r\n\r\n const sanitize = sanitizeHtml ?? safeSanitize;\r\n return sanitize(raw);\r\n }, [content, renderer, sanitizeHtml]);\r\n\r\n const wrapperClass = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.wrapper,\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n className\r\n ),\r\n [classMap, rounding, shadow, className]\r\n );\r\n\r\n if (!html) {\r\n return (\r\n <div className={classMap.empty} data-testid={testId}>\r\n <p>No content available.</p>\r\n </div>\r\n );\r\n }\r\n\r\n return (\r\n <div\r\n className={wrapperClass}\r\n data-testid={testId}\r\n lang={language}\r\n dangerouslySetInnerHTML={{ __html: html }}\r\n />\r\n );\r\n};\r\n\r\nBaseMarkdownRenderer.displayName = \"BaseMarkdownRenderer\";\r\nexport default BaseMarkdownRenderer;\r\n","import React from \"react\";\r\nimport BaseMarkdownRenderer from \"../MarkdownRendererBase\";\r\nimport \"./MarkdownRenderer.scss\";\r\nimport { MarkdownRendererProps } from \"../MarkdownRenderer.types\";\r\n\r\nconst classes = {\r\n wrapper: \"markdown\",\r\n loading: \"markdown_loading\",\r\n\r\n shadowNone: \"markdown_shadow-None\",\r\n shadowLight: \"markdown_shadow-Light\",\r\n shadowMedium: \"markdown_shadow-Medium\",\r\n shadowStrong: \"markdown_shadow-Strong\",\r\n shadowIntense: \"markdown_shadow-Intense\",\r\n\r\n roundNone: \"markdown_round-None\",\r\n roundSmall: \"markdown_round-Small\",\r\n roundMedium: \"markdown_round-Medium\",\r\n roundLarge: \"markdown_round-Large\",\r\n};\r\n\r\nconst MarkdownRenderer: React.FC<MarkdownRendererProps> = (props) => {\r\n return <BaseMarkdownRenderer {...props} classMap={classes} />;\r\n};\r\n\r\nexport default MarkdownRenderer;\r\n"],"names":["getDefaultRounding","getDefaultShadow","useMemo","marked","combineClassNames","capitalize","jsx"],"mappings":"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"}
|