boreal-ui 0.0.35 → 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-Bagax-bx.js → Card-C8Nn4k-D.js} +7 -7
- package/dist/core/Card-C8Nn4k-D.js.map +1 -0
- package/dist/core/{Card-DtHJdWNq.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-DxwLK-G6.js → Chip-CshyG7SS.js} +2 -2
- package/dist/core/Chip-CshyG7SS.js.map +1 -0
- package/dist/core/{Chip-C8spwPgH.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-SxHF3-VM.cjs → CommandPalette-B8jOhfm2.cjs} +2 -2
- package/dist/core/{CommandPalette-SxHF3-VM.cjs.map → CommandPalette-B8jOhfm2.cjs.map} +1 -1
- package/dist/core/{CommandPalette-Dmy5lWzv.js → CommandPalette-BpRegx0J.js} +2 -2
- package/dist/core/{CommandPalette-Dmy5lWzv.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-Dlo--tIl.cjs → Dropdown-BpEtC6bv.cjs} +2 -2
- package/dist/core/Dropdown-BpEtC6bv.cjs.map +1 -0
- package/dist/core/{Dropdown-GA_yvFVS.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-DJ1wI_Bm.js → FileUpload-C6xeGLr8.js} +5 -5
- package/dist/core/FileUpload-C6xeGLr8.js.map +1 -0
- package/dist/core/{FileUpload-aqWEEHIW.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-9x3F5gZx.js → Footer-D2DOWiIc.js} +22 -10
- package/dist/core/Footer-D2DOWiIc.js.map +1 -0
- package/dist/core/{Footer-VpViLKN_.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-Bjjlbqiq.cjs → IconButton-Cs4PHptF.cjs} +2 -2
- package/dist/core/IconButton-Cs4PHptF.cjs.map +1 -0
- package/dist/core/{IconButton-DgfUCfo9.js → IconButton-DY1ppFX-.js} +2 -2
- 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-eNK7XvUn.js → MessagePopup-CHCUOPLz.js} +5 -6
- package/dist/core/MessagePopup-CHCUOPLz.js.map +1 -0
- package/dist/core/{MessagePopup-D2nlhTvG.cjs → MessagePopup-CL_1uoVd.cjs} +5 -6
- package/dist/core/MessagePopup-CL_1uoVd.cjs.map +1 -0
- package/dist/core/{Modal-Cy0AsPTV.js → Modal-1d9Ivd05.js} +2 -2
- package/dist/core/Modal-1d9Ivd05.js.map +1 -0
- package/dist/core/{Modal-B7IqleCB.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-c99_Xq4J.cjs → NotificationCenter-BjTSHg0M.cjs} +76 -66
- package/dist/{next/NotificationCenter-CLMiEWUG.cjs.map → core/NotificationCenter-BjTSHg0M.cjs.map} +1 -1
- package/dist/core/{NotificationCenter-DgSWWT0G.js → NotificationCenter-Ca_Gegaf.js} +76 -66
- package/dist/{next/NotificationCenter-D3Eucn9z.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-Dr2H_Q5L.js → Pager-B-mFsJVZ.js} +3 -3
- package/dist/core/{Pager-Dr2H_Q5L.js.map → Pager-B-mFsJVZ.js.map} +1 -1
- package/dist/core/{Pager-BWlXTFPR.cjs → Pager-B3Hy6QIt.cjs} +3 -3
- package/dist/core/{Pager-BWlXTFPR.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-CxZGa2CS.js → Stepper-0lxM6e2v.js} +2 -10
- package/dist/core/Stepper-0lxM6e2v.js.map +1 -0
- package/dist/core/{Stepper-gvaKLuno.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-BaKDr0uF.js.map +1 -1
- package/dist/core/Tabs-C6lDM19i.cjs.map +1 -1
- package/dist/core/TagInput.cjs.js +1 -1
- package/dist/core/TagInput.js +1 -1
- package/dist/core/{Taginput-5LKYwPzy.js → Taginput-C_JJRoDF.js} +3 -3
- package/dist/core/{Taginput-5LKYwPzy.js.map → Taginput-C_JJRoDF.js.map} +1 -1
- package/dist/core/{Taginput-RYBBGWLK.cjs → Taginput-kqeTeVJY.cjs} +3 -3
- package/dist/core/{Taginput-RYBBGWLK.cjs.map → Taginput-kqeTeVJY.cjs.map} +1 -1
- package/dist/core/{TextArea-BAFMXw6Y.cjs → TextArea-BJGUr6r_.cjs} +2 -2
- package/dist/core/{TextArea-BAFMXw6Y.cjs.map → TextArea-BJGUr6r_.cjs.map} +1 -1
- package/dist/core/{TextArea-C2S64tIN.js → TextArea-CIdsUIzt.js} +2 -2
- package/dist/core/{TextArea-C2S64tIN.js.map → TextArea-CIdsUIzt.js.map} +1 -1
- package/dist/core/TextArea.cjs.js +1 -1
- package/dist/core/TextArea.js +1 -1
- package/dist/core/{TextInput-DQPZXEA2.js → TextInput-D38TZ4Pl.js} +2 -2
- package/dist/core/TextInput-D38TZ4Pl.js.map +1 -0
- package/dist/core/{TextInput-5Bpg7Tdt.cjs → TextInput-WY4O9Zya.cjs} +2 -2
- 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/{Tooltip-iUp73wB4.js → Tooltip-BzRqlOTz.js} +3 -5
- package/dist/core/Tooltip-BzRqlOTz.js.map +1 -0
- package/dist/core/{Tooltip-BzmV7ztl.cjs → Tooltip-DS7DSyij.cjs} +2 -4
- 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 +25 -25
- package/dist/core/index.js +25 -25
- package/dist/core/style.css +6701 -1913
- 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-KFr31XTs.js → Card-CFJnp6sf.js} +72 -68
- package/dist/next/Card-CFJnp6sf.js.map +1 -0
- package/dist/next/{Card-CAH-CrbH.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-Qa_1km99.js → Chip-3QqdBOHX.js} +51 -51
- package/dist/next/Chip-3QqdBOHX.js.map +1 -0
- package/dist/next/{Chip-C7w9CTed.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-DHTJFymB.cjs → CommandPalette-CzwGz-Py.cjs} +42 -42
- package/dist/next/{CommandPalette-DHTJFymB.cjs.map → CommandPalette-CzwGz-Py.cjs.map} +1 -1
- package/dist/next/{CommandPalette-D6ZeGNWl.js → CommandPalette-D-VgzCDu.js} +42 -42
- package/dist/next/{CommandPalette-D6ZeGNWl.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-BvUfz8G7.js → Dropdown-BrJnoyCw.js} +23 -21
- package/dist/next/Dropdown-BrJnoyCw.js.map +1 -0
- package/dist/next/{Dropdown-BbdsK4H6.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-BxmKK5BE.js → FileUpload-Bp7Pbj8m.js} +55 -53
- package/dist/next/{FileUpload-BxmKK5BE.js.map → FileUpload-Bp7Pbj8m.js.map} +1 -1
- package/dist/next/{FileUpload-C95H9D4N.cjs → FileUpload-CUFWjI06.cjs} +55 -53
- package/dist/next/{FileUpload-C95H9D4N.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-DhBE3lNY.js → Footer-BfzKhBAD.js} +61 -49
- package/dist/next/Footer-BfzKhBAD.js.map +1 -0
- package/dist/next/{Footer-C98DQNB3.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-C3WpabtT.cjs → IconButton-VSz8qAIg.cjs} +43 -51
- package/dist/next/{IconButton-C3WpabtT.cjs.map → IconButton-VSz8qAIg.cjs.map} +1 -1
- package/dist/next/{IconButton-B_j-S10f.js → IconButton-qQljwBB2.js} +43 -51
- package/dist/next/{IconButton-B_j-S10f.js.map → IconButton-qQljwBB2.js.map} +1 -1
- 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-CcM5nRAG.cjs → MessagePopup-DB8VBIft.cjs} +20 -18
- package/dist/next/MessagePopup-DB8VBIft.cjs.map +1 -0
- package/dist/next/{MessagePopup-BFKRiymY.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-DIZf7sgL.js → Modal-BD9sPXIX.js} +17 -17
- package/dist/next/Modal-BD9sPXIX.js.map +1 -0
- package/dist/next/{Modal-hk84_P6s.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-CLMiEWUG.cjs → NotificationCenter-B2y-QbtY.cjs} +126 -105
- package/dist/{core/NotificationCenter-c99_Xq4J.cjs.map → next/NotificationCenter-B2y-QbtY.cjs.map} +1 -1
- package/dist/next/{NotificationCenter-D3Eucn9z.js → NotificationCenter-C99EfjxX.js} +126 -105
- package/dist/{core/NotificationCenter-DgSWWT0G.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-BpTg_723.cjs → Pager-CB55NJSy.cjs} +8 -8
- package/dist/next/{Pager-BpTg_723.cjs.map → Pager-CB55NJSy.cjs.map} +1 -1
- package/dist/next/{Pager-nKqhRoht.js → Pager-SZIzesuj.js} +8 -8
- package/dist/next/{Pager-nKqhRoht.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-b-0SYFcE.js → Stepper-59931F6-.js} +46 -60
- package/dist/next/{Stepper-b-0SYFcE.js.map → Stepper-59931F6-.js.map} +1 -1
- package/dist/next/{Stepper-CWXKcAae.cjs → Stepper-YxxnY0y2.cjs} +46 -60
- package/dist/next/{Stepper-CWXKcAae.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-Dom5sh_U.cjs → Tabs-0GBOWBIt.cjs} +44 -44
- package/dist/next/Tabs-0GBOWBIt.cjs.map +1 -0
- package/dist/next/{Tabs-B94nrX75.js → Tabs-Dl389scs.js} +44 -44
- 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-C8hyzJ7f.js → TagInput-Bjt_zbHy.js} +55 -55
- package/dist/next/{TagInput-C8hyzJ7f.js.map → TagInput-Bjt_zbHy.js.map} +1 -1
- package/dist/next/{TagInput-B6PAcCaw.cjs → TagInput-Jswp7Yn5.cjs} +55 -55
- package/dist/next/{TagInput-B6PAcCaw.cjs.map → TagInput-Jswp7Yn5.cjs.map} +1 -1
- package/dist/next/TagInput.cjs.js +1 -1
- package/dist/next/TagInput.js +1 -1
- package/dist/next/{TextArea-Cn2q5KhJ.cjs → TextArea-9AvILSCY.cjs} +37 -37
- package/dist/next/{TextArea-Cn2q5KhJ.cjs.map → TextArea-9AvILSCY.cjs.map} +1 -1
- package/dist/next/{TextArea-C9VGM6pu.js → TextArea-xg4t0Lzo.js} +37 -37
- package/dist/next/{TextArea-C9VGM6pu.js.map → TextArea-xg4t0Lzo.js.map} +1 -1
- package/dist/next/TextArea.cjs.js +1 -1
- package/dist/next/TextArea.js +1 -1
- package/dist/next/{TextInput-CUBY6wCB.cjs → TextInput-Cr0WjibW.cjs} +37 -58
- package/dist/next/TextInput-Cr0WjibW.cjs.map +1 -0
- package/dist/next/{TextInput-Zywm-WEW.js → TextInput-D9dzooMU.js} +37 -58
- 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-BWx1ROuN.cjs → Timeline-Dju3pHLR.cjs} +32 -47
- package/dist/next/{Timeline-BWx1ROuN.cjs.map → Timeline-Dju3pHLR.cjs.map} +1 -1
- package/dist/next/{Timeline-CQxYIXCz.js → Timeline-KozBssou.js} +32 -47
- package/dist/next/{Timeline-CQxYIXCz.js.map → Timeline-KozBssou.js.map} +1 -1
- package/dist/next/Timeline.cjs.js +1 -1
- package/dist/next/Timeline.js +1 -1
- package/dist/next/{Toggle-Cs4ail9L.cjs → Toggle-BQG-5q5G.cjs} +32 -32
- package/dist/next/{Toggle-Cs4ail9L.cjs.map → Toggle-BQG-5q5G.cjs.map} +1 -1
- package/dist/next/{Toggle-Br6GTHrq.js → Toggle-Bb5d1QLE.js} +32 -32
- package/dist/next/{Toggle-Br6GTHrq.js.map → Toggle-Bb5d1QLE.js.map} +1 -1
- package/dist/next/Toggle.cjs.js +1 -1
- package/dist/next/Toggle.js +1 -1
- package/dist/next/{Toolbar-DgiSHpuZ.js → Toolbar-CHnjBixI.js} +35 -35
- package/dist/next/{Toolbar-DgiSHpuZ.js.map → Toolbar-CHnjBixI.js.map} +1 -1
- package/dist/next/{Toolbar-CyjJbHtq.cjs → Toolbar-Dxscfy5X.cjs} +35 -35
- package/dist/next/{Toolbar-CyjJbHtq.cjs.map → Toolbar-Dxscfy5X.cjs.map} +1 -1
- package/dist/next/Toolbar.cjs.js +1 -1
- package/dist/next/Toolbar.js +1 -1
- package/dist/next/{Tooltip-D5_lSH1z.js → Tooltip-2XEuDIAw.js} +41 -43
- package/dist/next/Tooltip-2XEuDIAw.js.map +1 -0
- package/dist/next/{Tooltip-1m3gCuRE.cjs → Tooltip-FCqrcC7D.cjs} +40 -42
- 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 +13026 -8293
- 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.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 +2 -0
- package/dist/types/components/Tabs/Tabs.types.d.ts.map +1 -1
- package/dist/types/components/TagInput/Taginput.types.d.ts +4 -2
- package/dist/types/components/TagInput/Taginput.types.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/Toolbar/Toolbar.types.d.ts +2 -1
- package/dist/types/components/Toolbar/Toolbar.types.d.ts.map +1 -1
- 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-Bagax-bx.js.map +0 -1
- package/dist/core/Card-DtHJdWNq.cjs.map +0 -1
- package/dist/core/Chip-C8spwPgH.cjs.map +0 -1
- package/dist/core/Chip-DxwLK-G6.js.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-Dlo--tIl.cjs.map +0 -1
- package/dist/core/Dropdown-GA_yvFVS.js.map +0 -1
- package/dist/core/FileUpload-DJ1wI_Bm.js.map +0 -1
- package/dist/core/FileUpload-aqWEEHIW.cjs.map +0 -1
- package/dist/core/Footer-9x3F5gZx.js.map +0 -1
- package/dist/core/Footer-VpViLKN_.cjs.map +0 -1
- package/dist/core/IconButton-Bjjlbqiq.cjs.map +0 -1
- package/dist/core/IconButton-DgfUCfo9.js.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-D2nlhTvG.cjs.map +0 -1
- package/dist/core/MessagePopup-eNK7XvUn.js.map +0 -1
- package/dist/core/Modal-B7IqleCB.cjs.map +0 -1
- package/dist/core/Modal-Cy0AsPTV.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-CxZGa2CS.js.map +0 -1
- package/dist/core/Stepper-gvaKLuno.cjs.map +0 -1
- package/dist/core/TextInput-5Bpg7Tdt.cjs.map +0 -1
- package/dist/core/TextInput-DQPZXEA2.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/Tooltip-BzmV7ztl.cjs.map +0 -1
- package/dist/core/Tooltip-iUp73wB4.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-CAH-CrbH.cjs.map +0 -1
- package/dist/next/Card-KFr31XTs.js.map +0 -1
- package/dist/next/Chip-C7w9CTed.cjs.map +0 -1
- package/dist/next/Chip-Qa_1km99.js.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-BbdsK4H6.cjs.map +0 -1
- package/dist/next/Dropdown-BvUfz8G7.js.map +0 -1
- package/dist/next/Footer-C98DQNB3.cjs.map +0 -1
- package/dist/next/Footer-DhBE3lNY.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-BFKRiymY.js.map +0 -1
- package/dist/next/MessagePopup-CcM5nRAG.cjs.map +0 -1
- package/dist/next/Modal-DIZf7sgL.js.map +0 -1
- package/dist/next/Modal-hk84_P6s.cjs.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-B94nrX75.js.map +0 -1
- package/dist/next/Tabs-Dom5sh_U.cjs.map +0 -1
- package/dist/next/TextInput-CUBY6wCB.cjs.map +0 -1
- package/dist/next/TextInput-Zywm-WEW.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/Tooltip-1m3gCuRE.cjs.map +0 -1
- package/dist/next/Tooltip-D5_lSH1z.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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tabs-BaKDr0uF.js","sources":["../../src/components/Tabs/TabsBase.tsx","../../src/components/Tabs/core/Tabs.tsx"],"sourcesContent":["import React, { useEffect, useMemo, useRef, useState, useId } from \"react\";\r\nimport { BaseTabsProps } from \"./Tabs.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 TabsBase: React.FC<BaseTabsProps> = ({\r\n tabs,\r\n defaultIndex = 0,\r\n onChange,\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n className = \"\",\r\n theme = getDefaultTheme(),\r\n state = \"\",\r\n size = getDefaultSize(),\r\n orientation = \"horizontal\",\r\n activationMode = \"auto\",\r\n \"data-testid\": testId = \"tabs\",\r\n classMap,\r\n}) => {\r\n const uid = useId();\r\n const baseId = `${testId}-${uid}`;\r\n\r\n const [activeIndex, setActiveIndex] = useState(defaultIndex);\r\n const [focusIndex, setFocusIndex] = useState(defaultIndex);\r\n\r\n const tabRefs = useRef<(HTMLButtonElement | null)[]>([]);\r\n\r\n useEffect(() => {\r\n const current = activationMode === \"manual\" ? focusIndex : activeIndex;\r\n tabRefs.current.forEach((el, i) => {\r\n if (!el) return;\r\n el.setAttribute(\"tabindex\", i === current ? \"0\" : \"-1\");\r\n });\r\n tabRefs.current[current]?.focus();\r\n }, [activeIndex, focusIndex, activationMode]);\r\n\r\n const containerClassNames = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.container,\r\n classMap[theme],\r\n classMap[state],\r\n classMap[size],\r\n className\r\n ),\r\n [classMap, theme, state, size, className]\r\n );\r\n\r\n const tabClassNames = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.tab,\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`]\r\n ),\r\n [classMap, shadow, rounding]\r\n );\r\n\r\n const activate = (index: number) => {\r\n setActiveIndex(index);\r\n onChange?.(index);\r\n };\r\n\r\n const isDisabled = (index: number) => !!(tabs[index] as any)?.disabled;\r\n\r\n const nextEnabled = (start: number, dir: 1 | -1) => {\r\n const len = tabs.length;\r\n let i = start;\r\n for (let n = 0; n < len; n++) {\r\n i = (i + dir + len) % len;\r\n if (!isDisabled(i)) return i;\r\n }\r\n return start;\r\n };\r\n\r\n const onKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\r\n const horiz = orientation === \"horizontal\";\r\n const { key } = event;\r\n\r\n let newFocus = focusIndex;\r\n\r\n if (horiz && key === \"ArrowRight\") {\r\n event.preventDefault();\r\n newFocus = nextEnabled(focusIndex, 1);\r\n } else if (horiz && key === \"ArrowLeft\") {\r\n event.preventDefault();\r\n newFocus = nextEnabled(focusIndex, -1);\r\n } else if (!horiz && key === \"ArrowDown\") {\r\n event.preventDefault();\r\n newFocus = nextEnabled(focusIndex, 1);\r\n } else if (!horiz && key === \"ArrowUp\") {\r\n event.preventDefault();\r\n newFocus = nextEnabled(focusIndex, -1);\r\n } else if (key === \"Home\") {\r\n event.preventDefault();\r\n newFocus = nextEnabled(-1, 1);\r\n } else if (key === \"End\") {\r\n event.preventDefault();\r\n newFocus = nextEnabled(0, -1);\r\n } else if (\r\n activationMode === \"manual\" &&\r\n (key === \"Enter\" || key === \" \")\r\n ) {\r\n event.preventDefault();\r\n if (!isDisabled(focusIndex)) activate(focusIndex);\r\n return;\r\n } else {\r\n return;\r\n }\r\n\r\n setFocusIndex(newFocus);\r\n if (activationMode === \"auto\") activate(newFocus);\r\n };\r\n\r\n const currentPanelId = `${baseId}-panel-${activeIndex}`;\r\n const currentTabId = `${baseId}-tab-${activeIndex}`;\r\n\r\n return (\r\n <div className={containerClassNames} data-testid={testId}>\r\n <div\r\n className={classMap.tabs}\r\n role=\"tablist\"\r\n aria-label=\"Tabs\"\r\n aria-orientation={orientation}\r\n onKeyDown={onKeyDown}\r\n data-testid={`${testId}-tablist`}\r\n >\r\n {tabs.map((tab, index) => {\r\n const Icon = tab.icon;\r\n const isActive = index === activeIndex;\r\n const disabled = isDisabled(index);\r\n const tabId = `${baseId}-tab-${index}`;\r\n const panelId = `${baseId}-panel-${index}`;\r\n\r\n return (\r\n <button\r\n key={index}\r\n ref={(el) => {\r\n tabRefs.current[index] = el;\r\n }}\r\n className={combineClassNames(\r\n tabClassNames,\r\n isActive && classMap.active,\r\n disabled && classMap.disabled\r\n )}\r\n role=\"tab\"\r\n type=\"button\"\r\n aria-selected={isActive}\r\n aria-controls={panelId}\r\n id={tabId}\r\n aria-disabled={disabled || undefined}\r\n onClick={() => {\r\n if (disabled) return;\r\n setFocusIndex(index);\r\n activate(index);\r\n }}\r\n data-testid={`${testId}-tab-${index}`}\r\n >\r\n {Icon && (\r\n <div\r\n className={classMap.icon}\r\n aria-hidden=\"true\"\r\n data-testid={`${testId}-icon-${index}`}\r\n >\r\n <Icon />\r\n </div>\r\n )}\r\n {tab.label}\r\n </button>\r\n );\r\n })}\r\n </div>\r\n\r\n <div\r\n className={classMap.content}\r\n role=\"tabpanel\"\r\n id={currentPanelId}\r\n aria-labelledby={currentTabId}\r\n tabIndex={0}\r\n data-testid={`${testId}-panel`}\r\n >\r\n {tabs[activeIndex].content}\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nTabsBase.displayName = \"TabsBase\";\r\nexport default TabsBase;\r\n","import React from \"react\";\r\nimport \"./Tabs.scss\";\r\nimport TabsBase from \"../TabsBase\";\r\nimport { TabsProps } from \"../Tabs.types\";\r\n\r\nconst classes = {\r\n tabsContainer: \"tabs_container\",\r\n tabs: \"tabs\",\r\n tab: \"tabs_tab\",\r\n active: \"tabs_active\",\r\n content: \"tabs_content\",\r\n icon: \"tabs_icon\",\r\n\r\n primary: \"tabs_primary\",\r\n secondary: \"tabs_secondary\",\r\n tertiary: \"tabs_tertiary\",\r\n quaternary: \"tabs_quaternary\",\r\n\r\n success: \"tabs_success\",\r\n error: \"tabs_error\",\r\n warning: \"tabs_warning\",\r\n\r\n clear: \"tabs_clear\",\r\n\r\n xs: \"tabs_xs\",\r\n xl: \"tabs_xl\",\r\n small: \"tabs_small\",\r\n medium: \"tabs_medium\",\r\n large: \"tabs_large\",\r\n\r\n shadowNone: \"tabs_shadow-None\",\r\n shadowLight: \"tabs_shadow-Light\",\r\n shadowMedium: \"tabs_shadow-Medium\",\r\n shadowStrong: \"tabs_shadow-Strong\",\r\n shadowIntense: \"tabs_shadow-Intense\",\r\n\r\n roundNone: \"tabs_round-None\",\r\n roundSmall: \"tabs_round-Small\",\r\n roundMedium: \"tabs_round-Medium\",\r\n roundLarge: \"tabs_round-Large\",\r\n};\r\n\r\nconst Tabs: React.FC<TabsProps> = (props) => {\r\n return <TabsBase {...props} classMap={classes} />;\r\n};\r\n\r\nexport default Tabs;\r\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Tabs-BaKDr0uF.js","sources":["../../src/components/Tabs/TabsBase.tsx","../../src/components/Tabs/core/Tabs.tsx"],"sourcesContent":["import React, { useEffect, useMemo, useRef, useState, useId } from \"react\";\r\nimport { BaseTabsProps } from \"./Tabs.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 TabsBase: React.FC<BaseTabsProps> = ({\r\n tabs,\r\n defaultIndex = 0,\r\n onChange,\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n className = \"\",\r\n theme = getDefaultTheme(),\r\n state = \"\",\r\n size = getDefaultSize(),\r\n orientation = \"horizontal\",\r\n activationMode = \"auto\",\r\n \"data-testid\": testId = \"tabs\",\r\n classMap,\r\n}) => {\r\n const uid = useId();\r\n const baseId = `${testId}-${uid}`;\r\n\r\n const [activeIndex, setActiveIndex] = useState(defaultIndex);\r\n const [focusIndex, setFocusIndex] = useState(defaultIndex);\r\n\r\n const tabRefs = useRef<(HTMLButtonElement | null)[]>([]);\r\n\r\n useEffect(() => {\r\n const current = activationMode === \"manual\" ? focusIndex : activeIndex;\r\n tabRefs.current.forEach((el, i) => {\r\n if (!el) return;\r\n el.setAttribute(\"tabindex\", i === current ? \"0\" : \"-1\");\r\n });\r\n tabRefs.current[current]?.focus();\r\n }, [activeIndex, focusIndex, activationMode]);\r\n\r\n const containerClassNames = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.container,\r\n classMap[theme],\r\n classMap[state],\r\n classMap[size],\r\n className\r\n ),\r\n [classMap, theme, state, size, className]\r\n );\r\n\r\n const tabClassNames = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.tab,\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`]\r\n ),\r\n [classMap, shadow, rounding]\r\n );\r\n\r\n const activate = (index: number) => {\r\n setActiveIndex(index);\r\n onChange?.(index);\r\n };\r\n\r\n const isDisabled = (index: number) => !!tabs[index]?.disabled;\r\n\r\n const nextEnabled = (start: number, dir: 1 | -1) => {\r\n const len = tabs.length;\r\n let i = start;\r\n for (let n = 0; n < len; n++) {\r\n i = (i + dir + len) % len;\r\n if (!isDisabled(i)) return i;\r\n }\r\n return start;\r\n };\r\n\r\n const onKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\r\n const horiz = orientation === \"horizontal\";\r\n const { key } = event;\r\n\r\n let newFocus = focusIndex;\r\n\r\n if (horiz && key === \"ArrowRight\") {\r\n event.preventDefault();\r\n newFocus = nextEnabled(focusIndex, 1);\r\n } else if (horiz && key === \"ArrowLeft\") {\r\n event.preventDefault();\r\n newFocus = nextEnabled(focusIndex, -1);\r\n } else if (!horiz && key === \"ArrowDown\") {\r\n event.preventDefault();\r\n newFocus = nextEnabled(focusIndex, 1);\r\n } else if (!horiz && key === \"ArrowUp\") {\r\n event.preventDefault();\r\n newFocus = nextEnabled(focusIndex, -1);\r\n } else if (key === \"Home\") {\r\n event.preventDefault();\r\n newFocus = nextEnabled(-1, 1);\r\n } else if (key === \"End\") {\r\n event.preventDefault();\r\n newFocus = nextEnabled(0, -1);\r\n } else if (\r\n activationMode === \"manual\" &&\r\n (key === \"Enter\" || key === \" \")\r\n ) {\r\n event.preventDefault();\r\n if (!isDisabled(focusIndex)) activate(focusIndex);\r\n return;\r\n } else {\r\n return;\r\n }\r\n\r\n setFocusIndex(newFocus);\r\n if (activationMode === \"auto\") activate(newFocus);\r\n };\r\n\r\n const currentPanelId = `${baseId}-panel-${activeIndex}`;\r\n const currentTabId = `${baseId}-tab-${activeIndex}`;\r\n\r\n return (\r\n <div className={containerClassNames} data-testid={testId}>\r\n <div\r\n className={classMap.tabs}\r\n role=\"tablist\"\r\n aria-label=\"Tabs\"\r\n aria-orientation={orientation}\r\n onKeyDown={onKeyDown}\r\n data-testid={`${testId}-tablist`}\r\n >\r\n {tabs.map((tab, index) => {\r\n const Icon = tab.icon;\r\n const isActive = index === activeIndex;\r\n const disabled = isDisabled(index);\r\n const tabId = `${baseId}-tab-${index}`;\r\n const panelId = `${baseId}-panel-${index}`;\r\n\r\n return (\r\n <button\r\n key={index}\r\n ref={(el) => {\r\n tabRefs.current[index] = el;\r\n }}\r\n className={combineClassNames(\r\n tabClassNames,\r\n isActive && classMap.active,\r\n disabled && classMap.disabled\r\n )}\r\n role=\"tab\"\r\n type=\"button\"\r\n aria-selected={isActive}\r\n aria-controls={panelId}\r\n id={tabId}\r\n aria-disabled={disabled || undefined}\r\n onClick={() => {\r\n if (disabled) return;\r\n setFocusIndex(index);\r\n activate(index);\r\n }}\r\n data-testid={`${testId}-tab-${index}`}\r\n >\r\n {Icon && (\r\n <div\r\n className={classMap.icon}\r\n aria-hidden=\"true\"\r\n data-testid={`${testId}-icon-${index}`}\r\n >\r\n <Icon />\r\n </div>\r\n )}\r\n {tab.label}\r\n </button>\r\n );\r\n })}\r\n </div>\r\n\r\n <div\r\n className={classMap.content}\r\n role=\"tabpanel\"\r\n id={currentPanelId}\r\n aria-labelledby={currentTabId}\r\n tabIndex={0}\r\n data-testid={`${testId}-panel`}\r\n >\r\n {tabs[activeIndex].content}\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nTabsBase.displayName = \"TabsBase\";\r\nexport default TabsBase;\r\n","import React from \"react\";\r\nimport \"./Tabs.scss\";\r\nimport TabsBase from \"../TabsBase\";\r\nimport { TabsProps } from \"../Tabs.types\";\r\n\r\nconst classes = {\r\n tabsContainer: \"tabs_container\",\r\n tabs: \"tabs\",\r\n tab: \"tabs_tab\",\r\n active: \"tabs_active\",\r\n content: \"tabs_content\",\r\n icon: \"tabs_icon\",\r\n\r\n primary: \"tabs_primary\",\r\n secondary: \"tabs_secondary\",\r\n tertiary: \"tabs_tertiary\",\r\n quaternary: \"tabs_quaternary\",\r\n\r\n success: \"tabs_success\",\r\n error: \"tabs_error\",\r\n warning: \"tabs_warning\",\r\n\r\n clear: \"tabs_clear\",\r\n\r\n xs: \"tabs_xs\",\r\n xl: \"tabs_xl\",\r\n small: \"tabs_small\",\r\n medium: \"tabs_medium\",\r\n large: \"tabs_large\",\r\n\r\n shadowNone: \"tabs_shadow-None\",\r\n shadowLight: \"tabs_shadow-Light\",\r\n shadowMedium: \"tabs_shadow-Medium\",\r\n shadowStrong: \"tabs_shadow-Strong\",\r\n shadowIntense: \"tabs_shadow-Intense\",\r\n\r\n roundNone: \"tabs_round-None\",\r\n roundSmall: \"tabs_round-Small\",\r\n roundMedium: \"tabs_round-Medium\",\r\n roundLarge: \"tabs_round-Large\",\r\n};\r\n\r\nconst Tabs: React.FC<TabsProps> = (props) => {\r\n return <TabsBase {...props} classMap={classes} />;\r\n};\r\n\r\nexport default Tabs;\r\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tabs-C6lDM19i.cjs","sources":["../../src/components/Tabs/TabsBase.tsx","../../src/components/Tabs/core/Tabs.tsx"],"sourcesContent":["import React, { useEffect, useMemo, useRef, useState, useId } from \"react\";\r\nimport { BaseTabsProps } from \"./Tabs.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 TabsBase: React.FC<BaseTabsProps> = ({\r\n tabs,\r\n defaultIndex = 0,\r\n onChange,\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n className = \"\",\r\n theme = getDefaultTheme(),\r\n state = \"\",\r\n size = getDefaultSize(),\r\n orientation = \"horizontal\",\r\n activationMode = \"auto\",\r\n \"data-testid\": testId = \"tabs\",\r\n classMap,\r\n}) => {\r\n const uid = useId();\r\n const baseId = `${testId}-${uid}`;\r\n\r\n const [activeIndex, setActiveIndex] = useState(defaultIndex);\r\n const [focusIndex, setFocusIndex] = useState(defaultIndex);\r\n\r\n const tabRefs = useRef<(HTMLButtonElement | null)[]>([]);\r\n\r\n useEffect(() => {\r\n const current = activationMode === \"manual\" ? focusIndex : activeIndex;\r\n tabRefs.current.forEach((el, i) => {\r\n if (!el) return;\r\n el.setAttribute(\"tabindex\", i === current ? \"0\" : \"-1\");\r\n });\r\n tabRefs.current[current]?.focus();\r\n }, [activeIndex, focusIndex, activationMode]);\r\n\r\n const containerClassNames = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.container,\r\n classMap[theme],\r\n classMap[state],\r\n classMap[size],\r\n className\r\n ),\r\n [classMap, theme, state, size, className]\r\n );\r\n\r\n const tabClassNames = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.tab,\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`]\r\n ),\r\n [classMap, shadow, rounding]\r\n );\r\n\r\n const activate = (index: number) => {\r\n setActiveIndex(index);\r\n onChange?.(index);\r\n };\r\n\r\n const isDisabled = (index: number) => !!(tabs[index] as any)?.disabled;\r\n\r\n const nextEnabled = (start: number, dir: 1 | -1) => {\r\n const len = tabs.length;\r\n let i = start;\r\n for (let n = 0; n < len; n++) {\r\n i = (i + dir + len) % len;\r\n if (!isDisabled(i)) return i;\r\n }\r\n return start;\r\n };\r\n\r\n const onKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\r\n const horiz = orientation === \"horizontal\";\r\n const { key } = event;\r\n\r\n let newFocus = focusIndex;\r\n\r\n if (horiz && key === \"ArrowRight\") {\r\n event.preventDefault();\r\n newFocus = nextEnabled(focusIndex, 1);\r\n } else if (horiz && key === \"ArrowLeft\") {\r\n event.preventDefault();\r\n newFocus = nextEnabled(focusIndex, -1);\r\n } else if (!horiz && key === \"ArrowDown\") {\r\n event.preventDefault();\r\n newFocus = nextEnabled(focusIndex, 1);\r\n } else if (!horiz && key === \"ArrowUp\") {\r\n event.preventDefault();\r\n newFocus = nextEnabled(focusIndex, -1);\r\n } else if (key === \"Home\") {\r\n event.preventDefault();\r\n newFocus = nextEnabled(-1, 1);\r\n } else if (key === \"End\") {\r\n event.preventDefault();\r\n newFocus = nextEnabled(0, -1);\r\n } else if (\r\n activationMode === \"manual\" &&\r\n (key === \"Enter\" || key === \" \")\r\n ) {\r\n event.preventDefault();\r\n if (!isDisabled(focusIndex)) activate(focusIndex);\r\n return;\r\n } else {\r\n return;\r\n }\r\n\r\n setFocusIndex(newFocus);\r\n if (activationMode === \"auto\") activate(newFocus);\r\n };\r\n\r\n const currentPanelId = `${baseId}-panel-${activeIndex}`;\r\n const currentTabId = `${baseId}-tab-${activeIndex}`;\r\n\r\n return (\r\n <div className={containerClassNames} data-testid={testId}>\r\n <div\r\n className={classMap.tabs}\r\n role=\"tablist\"\r\n aria-label=\"Tabs\"\r\n aria-orientation={orientation}\r\n onKeyDown={onKeyDown}\r\n data-testid={`${testId}-tablist`}\r\n >\r\n {tabs.map((tab, index) => {\r\n const Icon = tab.icon;\r\n const isActive = index === activeIndex;\r\n const disabled = isDisabled(index);\r\n const tabId = `${baseId}-tab-${index}`;\r\n const panelId = `${baseId}-panel-${index}`;\r\n\r\n return (\r\n <button\r\n key={index}\r\n ref={(el) => {\r\n tabRefs.current[index] = el;\r\n }}\r\n className={combineClassNames(\r\n tabClassNames,\r\n isActive && classMap.active,\r\n disabled && classMap.disabled\r\n )}\r\n role=\"tab\"\r\n type=\"button\"\r\n aria-selected={isActive}\r\n aria-controls={panelId}\r\n id={tabId}\r\n aria-disabled={disabled || undefined}\r\n onClick={() => {\r\n if (disabled) return;\r\n setFocusIndex(index);\r\n activate(index);\r\n }}\r\n data-testid={`${testId}-tab-${index}`}\r\n >\r\n {Icon && (\r\n <div\r\n className={classMap.icon}\r\n aria-hidden=\"true\"\r\n data-testid={`${testId}-icon-${index}`}\r\n >\r\n <Icon />\r\n </div>\r\n )}\r\n {tab.label}\r\n </button>\r\n );\r\n })}\r\n </div>\r\n\r\n <div\r\n className={classMap.content}\r\n role=\"tabpanel\"\r\n id={currentPanelId}\r\n aria-labelledby={currentTabId}\r\n tabIndex={0}\r\n data-testid={`${testId}-panel`}\r\n >\r\n {tabs[activeIndex].content}\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nTabsBase.displayName = \"TabsBase\";\r\nexport default TabsBase;\r\n","import React from \"react\";\r\nimport \"./Tabs.scss\";\r\nimport TabsBase from \"../TabsBase\";\r\nimport { TabsProps } from \"../Tabs.types\";\r\n\r\nconst classes = {\r\n tabsContainer: \"tabs_container\",\r\n tabs: \"tabs\",\r\n tab: \"tabs_tab\",\r\n active: \"tabs_active\",\r\n content: \"tabs_content\",\r\n icon: \"tabs_icon\",\r\n\r\n primary: \"tabs_primary\",\r\n secondary: \"tabs_secondary\",\r\n tertiary: \"tabs_tertiary\",\r\n quaternary: \"tabs_quaternary\",\r\n\r\n success: \"tabs_success\",\r\n error: \"tabs_error\",\r\n warning: \"tabs_warning\",\r\n\r\n clear: \"tabs_clear\",\r\n\r\n xs: \"tabs_xs\",\r\n xl: \"tabs_xl\",\r\n small: \"tabs_small\",\r\n medium: \"tabs_medium\",\r\n large: \"tabs_large\",\r\n\r\n shadowNone: \"tabs_shadow-None\",\r\n shadowLight: \"tabs_shadow-Light\",\r\n shadowMedium: \"tabs_shadow-Medium\",\r\n shadowStrong: \"tabs_shadow-Strong\",\r\n shadowIntense: \"tabs_shadow-Intense\",\r\n\r\n roundNone: \"tabs_round-None\",\r\n roundSmall: \"tabs_round-Small\",\r\n roundMedium: \"tabs_round-Medium\",\r\n roundLarge: \"tabs_round-Large\",\r\n};\r\n\r\nconst Tabs: React.FC<TabsProps> = (props) => {\r\n return <TabsBase {...props} classMap={classes} />;\r\n};\r\n\r\nexport default Tabs;\r\n"],"names":["getDefaultRounding","getDefaultShadow","getDefaultTheme","getDefaultSize","useId","useState","useRef","useEffect","useMemo","combineClassNames","capitalize","jsxs","jsx"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Tabs-C6lDM19i.cjs","sources":["../../src/components/Tabs/TabsBase.tsx","../../src/components/Tabs/core/Tabs.tsx"],"sourcesContent":["import React, { useEffect, useMemo, useRef, useState, useId } from \"react\";\r\nimport { BaseTabsProps } from \"./Tabs.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 TabsBase: React.FC<BaseTabsProps> = ({\r\n tabs,\r\n defaultIndex = 0,\r\n onChange,\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n className = \"\",\r\n theme = getDefaultTheme(),\r\n state = \"\",\r\n size = getDefaultSize(),\r\n orientation = \"horizontal\",\r\n activationMode = \"auto\",\r\n \"data-testid\": testId = \"tabs\",\r\n classMap,\r\n}) => {\r\n const uid = useId();\r\n const baseId = `${testId}-${uid}`;\r\n\r\n const [activeIndex, setActiveIndex] = useState(defaultIndex);\r\n const [focusIndex, setFocusIndex] = useState(defaultIndex);\r\n\r\n const tabRefs = useRef<(HTMLButtonElement | null)[]>([]);\r\n\r\n useEffect(() => {\r\n const current = activationMode === \"manual\" ? focusIndex : activeIndex;\r\n tabRefs.current.forEach((el, i) => {\r\n if (!el) return;\r\n el.setAttribute(\"tabindex\", i === current ? \"0\" : \"-1\");\r\n });\r\n tabRefs.current[current]?.focus();\r\n }, [activeIndex, focusIndex, activationMode]);\r\n\r\n const containerClassNames = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.container,\r\n classMap[theme],\r\n classMap[state],\r\n classMap[size],\r\n className\r\n ),\r\n [classMap, theme, state, size, className]\r\n );\r\n\r\n const tabClassNames = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.tab,\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`]\r\n ),\r\n [classMap, shadow, rounding]\r\n );\r\n\r\n const activate = (index: number) => {\r\n setActiveIndex(index);\r\n onChange?.(index);\r\n };\r\n\r\n const isDisabled = (index: number) => !!tabs[index]?.disabled;\r\n\r\n const nextEnabled = (start: number, dir: 1 | -1) => {\r\n const len = tabs.length;\r\n let i = start;\r\n for (let n = 0; n < len; n++) {\r\n i = (i + dir + len) % len;\r\n if (!isDisabled(i)) return i;\r\n }\r\n return start;\r\n };\r\n\r\n const onKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\r\n const horiz = orientation === \"horizontal\";\r\n const { key } = event;\r\n\r\n let newFocus = focusIndex;\r\n\r\n if (horiz && key === \"ArrowRight\") {\r\n event.preventDefault();\r\n newFocus = nextEnabled(focusIndex, 1);\r\n } else if (horiz && key === \"ArrowLeft\") {\r\n event.preventDefault();\r\n newFocus = nextEnabled(focusIndex, -1);\r\n } else if (!horiz && key === \"ArrowDown\") {\r\n event.preventDefault();\r\n newFocus = nextEnabled(focusIndex, 1);\r\n } else if (!horiz && key === \"ArrowUp\") {\r\n event.preventDefault();\r\n newFocus = nextEnabled(focusIndex, -1);\r\n } else if (key === \"Home\") {\r\n event.preventDefault();\r\n newFocus = nextEnabled(-1, 1);\r\n } else if (key === \"End\") {\r\n event.preventDefault();\r\n newFocus = nextEnabled(0, -1);\r\n } else if (\r\n activationMode === \"manual\" &&\r\n (key === \"Enter\" || key === \" \")\r\n ) {\r\n event.preventDefault();\r\n if (!isDisabled(focusIndex)) activate(focusIndex);\r\n return;\r\n } else {\r\n return;\r\n }\r\n\r\n setFocusIndex(newFocus);\r\n if (activationMode === \"auto\") activate(newFocus);\r\n };\r\n\r\n const currentPanelId = `${baseId}-panel-${activeIndex}`;\r\n const currentTabId = `${baseId}-tab-${activeIndex}`;\r\n\r\n return (\r\n <div className={containerClassNames} data-testid={testId}>\r\n <div\r\n className={classMap.tabs}\r\n role=\"tablist\"\r\n aria-label=\"Tabs\"\r\n aria-orientation={orientation}\r\n onKeyDown={onKeyDown}\r\n data-testid={`${testId}-tablist`}\r\n >\r\n {tabs.map((tab, index) => {\r\n const Icon = tab.icon;\r\n const isActive = index === activeIndex;\r\n const disabled = isDisabled(index);\r\n const tabId = `${baseId}-tab-${index}`;\r\n const panelId = `${baseId}-panel-${index}`;\r\n\r\n return (\r\n <button\r\n key={index}\r\n ref={(el) => {\r\n tabRefs.current[index] = el;\r\n }}\r\n className={combineClassNames(\r\n tabClassNames,\r\n isActive && classMap.active,\r\n disabled && classMap.disabled\r\n )}\r\n role=\"tab\"\r\n type=\"button\"\r\n aria-selected={isActive}\r\n aria-controls={panelId}\r\n id={tabId}\r\n aria-disabled={disabled || undefined}\r\n onClick={() => {\r\n if (disabled) return;\r\n setFocusIndex(index);\r\n activate(index);\r\n }}\r\n data-testid={`${testId}-tab-${index}`}\r\n >\r\n {Icon && (\r\n <div\r\n className={classMap.icon}\r\n aria-hidden=\"true\"\r\n data-testid={`${testId}-icon-${index}`}\r\n >\r\n <Icon />\r\n </div>\r\n )}\r\n {tab.label}\r\n </button>\r\n );\r\n })}\r\n </div>\r\n\r\n <div\r\n className={classMap.content}\r\n role=\"tabpanel\"\r\n id={currentPanelId}\r\n aria-labelledby={currentTabId}\r\n tabIndex={0}\r\n data-testid={`${testId}-panel`}\r\n >\r\n {tabs[activeIndex].content}\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nTabsBase.displayName = \"TabsBase\";\r\nexport default TabsBase;\r\n","import React from \"react\";\r\nimport \"./Tabs.scss\";\r\nimport TabsBase from \"../TabsBase\";\r\nimport { TabsProps } from \"../Tabs.types\";\r\n\r\nconst classes = {\r\n tabsContainer: \"tabs_container\",\r\n tabs: \"tabs\",\r\n tab: \"tabs_tab\",\r\n active: \"tabs_active\",\r\n content: \"tabs_content\",\r\n icon: \"tabs_icon\",\r\n\r\n primary: \"tabs_primary\",\r\n secondary: \"tabs_secondary\",\r\n tertiary: \"tabs_tertiary\",\r\n quaternary: \"tabs_quaternary\",\r\n\r\n success: \"tabs_success\",\r\n error: \"tabs_error\",\r\n warning: \"tabs_warning\",\r\n\r\n clear: \"tabs_clear\",\r\n\r\n xs: \"tabs_xs\",\r\n xl: \"tabs_xl\",\r\n small: \"tabs_small\",\r\n medium: \"tabs_medium\",\r\n large: \"tabs_large\",\r\n\r\n shadowNone: \"tabs_shadow-None\",\r\n shadowLight: \"tabs_shadow-Light\",\r\n shadowMedium: \"tabs_shadow-Medium\",\r\n shadowStrong: \"tabs_shadow-Strong\",\r\n shadowIntense: \"tabs_shadow-Intense\",\r\n\r\n roundNone: \"tabs_round-None\",\r\n roundSmall: \"tabs_round-Small\",\r\n roundMedium: \"tabs_round-Medium\",\r\n roundLarge: \"tabs_round-Large\",\r\n};\r\n\r\nconst Tabs: React.FC<TabsProps> = (props) => {\r\n return <TabsBase {...props} classMap={classes} />;\r\n};\r\n\r\nexport default Tabs;\r\n"],"names":["getDefaultRounding","getDefaultShadow","getDefaultTheme","getDefaultSize","useId","useState","useRef","useEffect","useMemo","combineClassNames","capitalize","jsxs","jsx"],"mappings":"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"}
|
package/dist/core/TagInput.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsxs, jsx } from "react/jsx-runtime";
|
|
2
|
-
import { I as IconButton } from "./IconButton-
|
|
3
|
-
import { T as TextInput } from "./TextInput-
|
|
2
|
+
import { I as IconButton } from "./IconButton-DY1ppFX-.js";
|
|
3
|
+
import { T as TextInput } from "./TextInput-D38TZ4Pl.js";
|
|
4
4
|
import { useId, useState, useRef, useEffect, useMemo } from "react";
|
|
5
5
|
import { C as CloseIcon } from "./CloseIcon-C3eQm4EK.js";
|
|
6
6
|
import { c as combineClassNames } from "./classNames-AS8QjFq7.js";
|
|
@@ -308,4 +308,4 @@ const TagInput = (props) => {
|
|
|
308
308
|
export {
|
|
309
309
|
TagInput as T
|
|
310
310
|
};
|
|
311
|
-
//# sourceMappingURL=Taginput-
|
|
311
|
+
//# sourceMappingURL=Taginput-C_JJRoDF.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Taginput-5LKYwPzy.js","sources":["../../src/components/TagInput/TagInputBase.tsx","../../src/components/TagInput/core/Taginput.tsx"],"sourcesContent":["import React, {\r\n useId,\r\n useState,\r\n KeyboardEvent,\r\n useMemo,\r\n useEffect,\r\n useRef,\r\n} from \"react\";\r\nimport { TagInputBaseProps } from \"./Taginput.types\";\r\nimport { CloseIcon } from \"../../Icons\";\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 TagInputBase: React.FC<TagInputBaseProps> = ({\r\n tags = [],\r\n onChange,\r\n fetchSuggestions,\r\n debounceMs = 300,\r\n placeholder = \"Add a tag...\",\r\n theme = getDefaultTheme(),\r\n state = \"\",\r\n size = getDefaultSize(),\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n \"data-testid\": testId = \"tag-input\",\r\n ariaDescription = \"Type a tag and press Enter or comma to add. Use arrow keys to navigate suggestions; Enter to select; Escape to close. Backspace removes the last tag when the field is empty.\",\r\n classMap,\r\n IconButton,\r\n TextInput,\r\n}) => {\r\n const uid = useId();\r\n const inputId = `${testId}-input-${uid}`;\r\n const descId = `${testId}-desc-${uid}`;\r\n const labelId = `${testId}-label-${uid}`;\r\n const listboxId = `${testId}-listbox-${uid}`;\r\n const statusId = `${testId}-status-${uid}`;\r\n\r\n const [inputValue, setInputValue] = useState(\"\");\r\n const [tagList, setTagList] = useState<string[]>(tags);\r\n const [lastAction, setLastAction] = useState<string>(\"\");\r\n const [suggestions, setSuggestions] = useState<string[]>([]);\r\n const [open, setOpen] = useState(false);\r\n const [activeIndex, setActiveIndex] = useState<number>(-1);\r\n\r\n const debounceRef = useRef<ReturnType<typeof setTimeout> | null>(null);\r\n\r\n const hasTag = (val: string) =>\r\n tagList.some((t) => t.toLowerCase() === val.toLowerCase());\r\n\r\n useEffect(() => {\r\n if (!fetchSuggestions) {\r\n setSuggestions([]);\r\n setOpen(false);\r\n return;\r\n }\r\n if (debounceRef.current) clearTimeout(debounceRef.current);\r\n\r\n const query = inputValue.trim();\r\n if (!query) {\r\n setSuggestions([]);\r\n setOpen(false);\r\n setActiveIndex(-1);\r\n return;\r\n }\r\n\r\n debounceRef.current = setTimeout(async () => {\r\n try {\r\n const result = await fetchSuggestions(query);\r\n setSuggestions(result || []);\r\n setOpen((result?.length ?? 0) > 0);\r\n setActiveIndex((result?.length ?? 0) > 0 ? 0 : -1);\r\n } catch {\r\n setSuggestions([]);\r\n setOpen(false);\r\n setActiveIndex(-1);\r\n }\r\n }, debounceMs);\r\n\r\n return () => {\r\n if (debounceRef.current) clearTimeout(debounceRef.current);\r\n };\r\n }, [inputValue, fetchSuggestions, debounceMs]);\r\n\r\n const addTag = (raw: string) => {\r\n const newTag = raw.trim();\r\n if (!newTag || hasTag(newTag)) return false;\r\n const updated = [...tagList, newTag];\r\n setTagList(updated);\r\n onChange?.(updated);\r\n setLastAction(`Added tag ${newTag}.`);\r\n return true;\r\n };\r\n\r\n const removeTag = (tag: string) => {\r\n const updated = tagList.filter((t) => t !== tag);\r\n setTagList(updated);\r\n onChange?.(updated);\r\n setLastAction(`Removed tag ${tag}.`);\r\n };\r\n\r\n const handleKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {\r\n const { key } = event;\r\n\r\n if (open && suggestions.length > 0) {\r\n if (key === \"ArrowDown\") {\r\n event.preventDefault();\r\n setActiveIndex((i) => (i + 1) % suggestions.length);\r\n return;\r\n }\r\n if (key === \"ArrowUp\") {\r\n event.preventDefault();\r\n setActiveIndex(\r\n (i) => (i - 1 + suggestions.length) % suggestions.length\r\n );\r\n return;\r\n }\r\n if (key === \"Enter\") {\r\n event.preventDefault();\r\n const choice = suggestions[activeIndex];\r\n if (choice && addTag(choice)) {\r\n setInputValue(\"\");\r\n }\r\n setSuggestions([]);\r\n setOpen(false);\r\n setActiveIndex(-1);\r\n return;\r\n }\r\n if (key === \"Escape\") {\r\n event.preventDefault();\r\n setSuggestions([]);\r\n setOpen(false);\r\n setActiveIndex(-1);\r\n return;\r\n }\r\n }\r\n\r\n if (key === \"Enter\" || key === \",\") {\r\n event.preventDefault();\r\n if (addTag(inputValue)) setInputValue(\"\");\r\n setSuggestions([]);\r\n setOpen(false);\r\n setActiveIndex(-1);\r\n return;\r\n }\r\n\r\n if (key === \"Backspace\" && inputValue === \"\" && tagList.length > 0) {\r\n const last = tagList[tagList.length - 1];\r\n removeTag(last);\r\n }\r\n };\r\n\r\n const wrapperClass = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.tagInput,\r\n classMap[theme],\r\n classMap[state],\r\n classMap[size]\r\n ),\r\n [classMap, theme, state, size]\r\n );\r\n\r\n const tagClass = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.tag,\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`]\r\n ),\r\n [classMap, shadow, rounding]\r\n );\r\n\r\n const handleSuggestionClick = (suggestion: string) => {\r\n if (addTag(suggestion)) setInputValue(\"\");\r\n setSuggestions([]);\r\n setOpen(false);\r\n setActiveIndex(-1);\r\n };\r\n\r\n const activeOptionId =\r\n open && activeIndex >= 0 ? `${listboxId}-opt-${activeIndex}` : undefined;\r\n\r\n return (\r\n <div\r\n className={wrapperClass}\r\n role=\"group\"\r\n aria-labelledby={labelId}\r\n aria-describedby={`${descId} ${statusId}`}\r\n data-testid={testId}\r\n >\r\n <label id={labelId} className=\"sr_only\">\r\n Tag Input\r\n </label>\r\n <div\r\n id={descId}\r\n className=\"sr_only\"\r\n data-testid={`${testId}-description`}\r\n >\r\n {ariaDescription}\r\n </div>\r\n\r\n <ul className={classMap.tagContainer} data-testid={`${testId}-list`}>\r\n {tagList.map((tag, index) => (\r\n <li\r\n key={`${tag}-${index}`}\r\n className={tagClass}\r\n role=\"listitem\"\r\n data-testid={`${testId}-tag-${index}`}\r\n >\r\n <span className={classMap.tagLabel}>{tag}</span>\r\n <IconButton\r\n type=\"button\"\r\n aria-label={`Remove tag ${tag}`}\r\n className={classMap.removeButton}\r\n onClick={() => removeTag(tag)}\r\n data-testid={`${testId}-remove-${index}`}\r\n icon={CloseIcon}\r\n size=\"small\"\r\n theme=\"clear\"\r\n shadow=\"none\"\r\n iconClassName={classMap.removeButtonIcon}\r\n />\r\n </li>\r\n ))}\r\n </ul>\r\n\r\n <div className={classMap.inputWrapper}>\r\n <TextInput\r\n id={inputId}\r\n type=\"text\"\r\n theme={theme}\r\n state={state}\r\n rounding={rounding}\r\n shadow={shadow}\r\n className={classMap.input}\r\n value={inputValue}\r\n placeholder={tagList.length === 0 ? placeholder : \"\"}\r\n onChange={(e: { target: { value: string } }) =>\r\n setInputValue(e.target.value)\r\n }\r\n onKeyDown={handleKeyDown}\r\n autoComplete=\"off\"\r\n role=\"combobox\"\r\n aria-autocomplete=\"list\"\r\n aria-expanded={open}\r\n aria-controls={listboxId}\r\n aria-activedescendant={activeOptionId}\r\n aria-label=\"Add new tag\"\r\n aria-describedby={`${descId} ${statusId}`}\r\n data-testid={`${testId}-input`}\r\n />\r\n </div>\r\n\r\n {open && suggestions.length > 0 && (\r\n <ul\r\n className={classMap.suggestionList}\r\n role=\"listbox\"\r\n id={listboxId}\r\n aria-label=\"Tag suggestions\"\r\n data-testid={`${testId}-suggestions`}\r\n >\r\n {suggestions.map((suggestion, index) => (\r\n <li\r\n key={`${suggestion}-${index}`}\r\n id={`${listboxId}-opt-${index}`}\r\n className={combineClassNames(\r\n classMap.suggestionItem,\r\n index === activeIndex && (classMap.active || \"\")\r\n )}\r\n role=\"option\"\r\n aria-selected={index === activeIndex}\r\n onMouseDown={(e) => e.preventDefault()}\r\n onClick={() => handleSuggestionClick(suggestion)}\r\n data-testid={`${testId}-suggestion-${index}`}\r\n >\r\n {suggestion}\r\n </li>\r\n ))}\r\n </ul>\r\n )}\r\n\r\n <div id={statusId} aria-live=\"polite\" className=\"sr_only\">\r\n {open && suggestions.length > 0\r\n ? `${suggestions.length} suggestion${suggestions.length === 1 ? \"\" : \"s\"} available.`\r\n : \"\"}\r\n {lastAction}\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nTagInputBase.displayName = \"TagInputBase\";\r\nexport default TagInputBase;\r\n","import React from \"react\";\r\nimport \"./Taginput.scss\";\r\nimport IconButton from \"../../IconButton/core/IconButton\";\r\nimport TextInput from \"../../TextInput/core/TextInput\";\r\nimport TagInputBase from \"../TagInputBase\";\r\nimport { TagInputProps } from \"../Taginput.types\";\r\n\r\nconst classes = {\r\n tagInput: \"tag_input\",\r\n tagContainer: \"tag_input_tag_container\",\r\n tag: \"tag_input_tag\",\r\n tagLabel: \"tag_input_tag_label\",\r\n removeButton: \"tag_input_remove_button\",\r\n removeButtonIcon: \"tag_input_remove_button_icon\",\r\n inputWrapper: \"tag_input_input_wrapper\",\r\n input: \"tag_input_input\",\r\n suggestionList: \"tag_input_suggestion_list\",\r\n suggestionItem: \"tag_input_suggestion_item\",\r\n\r\n primary: \"tag_input_primary\",\r\n secondary: \"tag_input_secondary\",\r\n tertiary: \"tag_input_tertiary\",\r\n quaternary: \"tag_input_quaternary\",\r\n\r\n success: \"tag_input_success\",\r\n warning: \"tag_input_warning\",\r\n error: \"tag_input_error\",\r\n\r\n clear: \"tag_input_clear\",\r\n\r\n xs: \"tag_input_xs\",\r\n small: \"tag_input_small\",\r\n medium: \"tag_input_medium\",\r\n large: \"tag_input_large\",\r\n xl: \"tag_input_xl\",\r\n\r\n shadowNone: \"tag_shadow-None\",\r\n shadowLight: \"tag_shadow-Light\",\r\n shadowMedium: \"tag_shadow-Medium\",\r\n shadowStrong: \"tag_shadow-Strong\",\r\n shadowIntense: \"tag_shadow-Intense\",\r\n\r\n roundNone: \"tag_round-None\",\r\n roundSmall: \"tag_round-Small\",\r\n roundMedium: \"tag_round-Medium\",\r\n roundLarge: \"tag_round-Large\",\r\n};\r\n\r\nconst TagInput: React.FC<TagInputProps> = (props) => {\r\n return (\r\n <TagInputBase\r\n {...props}\r\n classMap={classes}\r\n IconButton={IconButton}\r\n TextInput={TextInput}\r\n />\r\n );\r\n};\r\n\r\nexport default TagInput;\r\n"],"names":["IconButton","TextInput"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Taginput-C_JJRoDF.js","sources":["../../src/components/TagInput/TagInputBase.tsx","../../src/components/TagInput/core/Taginput.tsx"],"sourcesContent":["import React, {\r\n useId,\r\n useState,\r\n KeyboardEvent,\r\n useMemo,\r\n useEffect,\r\n useRef,\r\n} from \"react\";\r\nimport { TagInputBaseProps } from \"./Taginput.types\";\r\nimport { CloseIcon } from \"../../Icons\";\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 TagInputBase: React.FC<TagInputBaseProps> = ({\r\n tags = [],\r\n onChange,\r\n fetchSuggestions,\r\n debounceMs = 300,\r\n placeholder = \"Add a tag...\",\r\n theme = getDefaultTheme(),\r\n state = \"\",\r\n size = getDefaultSize(),\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n \"data-testid\": testId = \"tag-input\",\r\n ariaDescription = \"Type a tag and press Enter or comma to add. Use arrow keys to navigate suggestions; Enter to select; Escape to close. Backspace removes the last tag when the field is empty.\",\r\n classMap,\r\n IconButton,\r\n TextInput,\r\n}) => {\r\n const uid = useId();\r\n const inputId = `${testId}-input-${uid}`;\r\n const descId = `${testId}-desc-${uid}`;\r\n const labelId = `${testId}-label-${uid}`;\r\n const listboxId = `${testId}-listbox-${uid}`;\r\n const statusId = `${testId}-status-${uid}`;\r\n\r\n const [inputValue, setInputValue] = useState(\"\");\r\n const [tagList, setTagList] = useState<string[]>(tags);\r\n const [lastAction, setLastAction] = useState<string>(\"\");\r\n const [suggestions, setSuggestions] = useState<string[]>([]);\r\n const [open, setOpen] = useState(false);\r\n const [activeIndex, setActiveIndex] = useState<number>(-1);\r\n\r\n const debounceRef = useRef<ReturnType<typeof setTimeout> | null>(null);\r\n\r\n const hasTag = (val: string) =>\r\n tagList.some((t) => t.toLowerCase() === val.toLowerCase());\r\n\r\n useEffect(() => {\r\n if (!fetchSuggestions) {\r\n setSuggestions([]);\r\n setOpen(false);\r\n return;\r\n }\r\n if (debounceRef.current) clearTimeout(debounceRef.current);\r\n\r\n const query = inputValue.trim();\r\n if (!query) {\r\n setSuggestions([]);\r\n setOpen(false);\r\n setActiveIndex(-1);\r\n return;\r\n }\r\n\r\n debounceRef.current = setTimeout(async () => {\r\n try {\r\n const result = await fetchSuggestions(query);\r\n setSuggestions(result || []);\r\n setOpen((result?.length ?? 0) > 0);\r\n setActiveIndex((result?.length ?? 0) > 0 ? 0 : -1);\r\n } catch {\r\n setSuggestions([]);\r\n setOpen(false);\r\n setActiveIndex(-1);\r\n }\r\n }, debounceMs);\r\n\r\n return () => {\r\n if (debounceRef.current) clearTimeout(debounceRef.current);\r\n };\r\n }, [inputValue, fetchSuggestions, debounceMs]);\r\n\r\n const addTag = (raw: string) => {\r\n const newTag = raw.trim();\r\n if (!newTag || hasTag(newTag)) return false;\r\n const updated = [...tagList, newTag];\r\n setTagList(updated);\r\n onChange?.(updated);\r\n setLastAction(`Added tag ${newTag}.`);\r\n return true;\r\n };\r\n\r\n const removeTag = (tag: string) => {\r\n const updated = tagList.filter((t) => t !== tag);\r\n setTagList(updated);\r\n onChange?.(updated);\r\n setLastAction(`Removed tag ${tag}.`);\r\n };\r\n\r\n const handleKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {\r\n const { key } = event;\r\n\r\n if (open && suggestions.length > 0) {\r\n if (key === \"ArrowDown\") {\r\n event.preventDefault();\r\n setActiveIndex((i) => (i + 1) % suggestions.length);\r\n return;\r\n }\r\n if (key === \"ArrowUp\") {\r\n event.preventDefault();\r\n setActiveIndex(\r\n (i) => (i - 1 + suggestions.length) % suggestions.length\r\n );\r\n return;\r\n }\r\n if (key === \"Enter\") {\r\n event.preventDefault();\r\n const choice = suggestions[activeIndex];\r\n if (choice && addTag(choice)) {\r\n setInputValue(\"\");\r\n }\r\n setSuggestions([]);\r\n setOpen(false);\r\n setActiveIndex(-1);\r\n return;\r\n }\r\n if (key === \"Escape\") {\r\n event.preventDefault();\r\n setSuggestions([]);\r\n setOpen(false);\r\n setActiveIndex(-1);\r\n return;\r\n }\r\n }\r\n\r\n if (key === \"Enter\" || key === \",\") {\r\n event.preventDefault();\r\n if (addTag(inputValue)) setInputValue(\"\");\r\n setSuggestions([]);\r\n setOpen(false);\r\n setActiveIndex(-1);\r\n return;\r\n }\r\n\r\n if (key === \"Backspace\" && inputValue === \"\" && tagList.length > 0) {\r\n const last = tagList[tagList.length - 1];\r\n removeTag(last);\r\n }\r\n };\r\n\r\n const wrapperClass = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.tagInput,\r\n classMap[theme],\r\n classMap[state],\r\n classMap[size]\r\n ),\r\n [classMap, theme, state, size]\r\n );\r\n\r\n const tagClass = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.tag,\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`]\r\n ),\r\n [classMap, shadow, rounding]\r\n );\r\n\r\n const handleSuggestionClick = (suggestion: string) => {\r\n if (addTag(suggestion)) setInputValue(\"\");\r\n setSuggestions([]);\r\n setOpen(false);\r\n setActiveIndex(-1);\r\n };\r\n\r\n const activeOptionId =\r\n open && activeIndex >= 0 ? `${listboxId}-opt-${activeIndex}` : undefined;\r\n\r\n return (\r\n <div\r\n className={wrapperClass}\r\n role=\"group\"\r\n aria-labelledby={labelId}\r\n aria-describedby={`${descId} ${statusId}`}\r\n data-testid={testId}\r\n >\r\n <label id={labelId} className=\"sr_only\">\r\n Tag Input\r\n </label>\r\n <div\r\n id={descId}\r\n className=\"sr_only\"\r\n data-testid={`${testId}-description`}\r\n >\r\n {ariaDescription}\r\n </div>\r\n\r\n <ul className={classMap.tagContainer} data-testid={`${testId}-list`}>\r\n {tagList.map((tag, index) => (\r\n <li\r\n key={`${tag}-${index}`}\r\n className={tagClass}\r\n role=\"listitem\"\r\n data-testid={`${testId}-tag-${index}`}\r\n >\r\n <span className={classMap.tagLabel}>{tag}</span>\r\n <IconButton\r\n type=\"button\"\r\n aria-label={`Remove tag ${tag}`}\r\n className={classMap.removeButton}\r\n onClick={() => removeTag(tag)}\r\n data-testid={`${testId}-remove-${index}`}\r\n icon={CloseIcon}\r\n size=\"small\"\r\n theme=\"clear\"\r\n shadow=\"none\"\r\n iconClassName={classMap.removeButtonIcon}\r\n />\r\n </li>\r\n ))}\r\n </ul>\r\n\r\n <div className={classMap.inputWrapper}>\r\n <TextInput\r\n id={inputId}\r\n type=\"text\"\r\n theme={theme}\r\n state={state}\r\n rounding={rounding}\r\n shadow={shadow}\r\n className={classMap.input}\r\n value={inputValue}\r\n placeholder={tagList.length === 0 ? placeholder : \"\"}\r\n onChange={(e: { target: { value: string } }) =>\r\n setInputValue(e.target.value)\r\n }\r\n onKeyDown={handleKeyDown}\r\n autoComplete=\"off\"\r\n role=\"combobox\"\r\n aria-autocomplete=\"list\"\r\n aria-expanded={open}\r\n aria-controls={listboxId}\r\n aria-activedescendant={activeOptionId}\r\n aria-label=\"Add new tag\"\r\n aria-describedby={`${descId} ${statusId}`}\r\n data-testid={`${testId}-input`}\r\n />\r\n </div>\r\n\r\n {open && suggestions.length > 0 && (\r\n <ul\r\n className={classMap.suggestionList}\r\n role=\"listbox\"\r\n id={listboxId}\r\n aria-label=\"Tag suggestions\"\r\n data-testid={`${testId}-suggestions`}\r\n >\r\n {suggestions.map((suggestion, index) => (\r\n <li\r\n key={`${suggestion}-${index}`}\r\n id={`${listboxId}-opt-${index}`}\r\n className={combineClassNames(\r\n classMap.suggestionItem,\r\n index === activeIndex && (classMap.active || \"\")\r\n )}\r\n role=\"option\"\r\n aria-selected={index === activeIndex}\r\n onMouseDown={(e) => e.preventDefault()}\r\n onClick={() => handleSuggestionClick(suggestion)}\r\n data-testid={`${testId}-suggestion-${index}`}\r\n >\r\n {suggestion}\r\n </li>\r\n ))}\r\n </ul>\r\n )}\r\n\r\n <div id={statusId} aria-live=\"polite\" className=\"sr_only\">\r\n {open && suggestions.length > 0\r\n ? `${suggestions.length} suggestion${suggestions.length === 1 ? \"\" : \"s\"} available.`\r\n : \"\"}\r\n {lastAction}\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nTagInputBase.displayName = \"TagInputBase\";\r\nexport default TagInputBase;\r\n","import React from \"react\";\r\nimport \"./Taginput.scss\";\r\nimport IconButton from \"../../IconButton/core/IconButton\";\r\nimport TextInput from \"../../TextInput/core/TextInput\";\r\nimport TagInputBase from \"../TagInputBase\";\r\nimport { TagInputProps } from \"../Taginput.types\";\r\n\r\nconst classes = {\r\n tagInput: \"tag_input\",\r\n tagContainer: \"tag_input_tag_container\",\r\n tag: \"tag_input_tag\",\r\n tagLabel: \"tag_input_tag_label\",\r\n removeButton: \"tag_input_remove_button\",\r\n removeButtonIcon: \"tag_input_remove_button_icon\",\r\n inputWrapper: \"tag_input_input_wrapper\",\r\n input: \"tag_input_input\",\r\n suggestionList: \"tag_input_suggestion_list\",\r\n suggestionItem: \"tag_input_suggestion_item\",\r\n\r\n primary: \"tag_input_primary\",\r\n secondary: \"tag_input_secondary\",\r\n tertiary: \"tag_input_tertiary\",\r\n quaternary: \"tag_input_quaternary\",\r\n\r\n success: \"tag_input_success\",\r\n warning: \"tag_input_warning\",\r\n error: \"tag_input_error\",\r\n\r\n clear: \"tag_input_clear\",\r\n\r\n xs: \"tag_input_xs\",\r\n small: \"tag_input_small\",\r\n medium: \"tag_input_medium\",\r\n large: \"tag_input_large\",\r\n xl: \"tag_input_xl\",\r\n\r\n shadowNone: \"tag_shadow-None\",\r\n shadowLight: \"tag_shadow-Light\",\r\n shadowMedium: \"tag_shadow-Medium\",\r\n shadowStrong: \"tag_shadow-Strong\",\r\n shadowIntense: \"tag_shadow-Intense\",\r\n\r\n roundNone: \"tag_round-None\",\r\n roundSmall: \"tag_round-Small\",\r\n roundMedium: \"tag_round-Medium\",\r\n roundLarge: \"tag_round-Large\",\r\n};\r\n\r\nconst TagInput: React.FC<TagInputProps> = (props) => {\r\n return (\r\n <TagInputBase\r\n {...props}\r\n classMap={classes}\r\n IconButton={IconButton}\r\n TextInput={TextInput}\r\n />\r\n );\r\n};\r\n\r\nexport default TagInput;\r\n"],"names":["IconButton","TextInput"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
const jsxRuntime = require("react/jsx-runtime");
|
|
3
|
-
const IconButton = require("./IconButton-
|
|
4
|
-
const TextInput = require("./TextInput-
|
|
3
|
+
const IconButton = require("./IconButton-Cs4PHptF.cjs");
|
|
4
|
+
const TextInput = require("./TextInput-WY4O9Zya.cjs");
|
|
5
5
|
const React = require("react");
|
|
6
6
|
const CloseIcon = require("./CloseIcon-DSnN6ggf.cjs");
|
|
7
7
|
const classNames = require("./classNames-BcWMx052.cjs");
|
|
@@ -307,4 +307,4 @@ const TagInput = (props) => {
|
|
|
307
307
|
);
|
|
308
308
|
};
|
|
309
309
|
exports.TagInput = TagInput;
|
|
310
|
-
//# sourceMappingURL=Taginput-
|
|
310
|
+
//# sourceMappingURL=Taginput-kqeTeVJY.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Taginput-RYBBGWLK.cjs","sources":["../../src/components/TagInput/TagInputBase.tsx","../../src/components/TagInput/core/Taginput.tsx"],"sourcesContent":["import React, {\r\n useId,\r\n useState,\r\n KeyboardEvent,\r\n useMemo,\r\n useEffect,\r\n useRef,\r\n} from \"react\";\r\nimport { TagInputBaseProps } from \"./Taginput.types\";\r\nimport { CloseIcon } from \"../../Icons\";\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 TagInputBase: React.FC<TagInputBaseProps> = ({\r\n tags = [],\r\n onChange,\r\n fetchSuggestions,\r\n debounceMs = 300,\r\n placeholder = \"Add a tag...\",\r\n theme = getDefaultTheme(),\r\n state = \"\",\r\n size = getDefaultSize(),\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n \"data-testid\": testId = \"tag-input\",\r\n ariaDescription = \"Type a tag and press Enter or comma to add. Use arrow keys to navigate suggestions; Enter to select; Escape to close. Backspace removes the last tag when the field is empty.\",\r\n classMap,\r\n IconButton,\r\n TextInput,\r\n}) => {\r\n const uid = useId();\r\n const inputId = `${testId}-input-${uid}`;\r\n const descId = `${testId}-desc-${uid}`;\r\n const labelId = `${testId}-label-${uid}`;\r\n const listboxId = `${testId}-listbox-${uid}`;\r\n const statusId = `${testId}-status-${uid}`;\r\n\r\n const [inputValue, setInputValue] = useState(\"\");\r\n const [tagList, setTagList] = useState<string[]>(tags);\r\n const [lastAction, setLastAction] = useState<string>(\"\");\r\n const [suggestions, setSuggestions] = useState<string[]>([]);\r\n const [open, setOpen] = useState(false);\r\n const [activeIndex, setActiveIndex] = useState<number>(-1);\r\n\r\n const debounceRef = useRef<ReturnType<typeof setTimeout> | null>(null);\r\n\r\n const hasTag = (val: string) =>\r\n tagList.some((t) => t.toLowerCase() === val.toLowerCase());\r\n\r\n useEffect(() => {\r\n if (!fetchSuggestions) {\r\n setSuggestions([]);\r\n setOpen(false);\r\n return;\r\n }\r\n if (debounceRef.current) clearTimeout(debounceRef.current);\r\n\r\n const query = inputValue.trim();\r\n if (!query) {\r\n setSuggestions([]);\r\n setOpen(false);\r\n setActiveIndex(-1);\r\n return;\r\n }\r\n\r\n debounceRef.current = setTimeout(async () => {\r\n try {\r\n const result = await fetchSuggestions(query);\r\n setSuggestions(result || []);\r\n setOpen((result?.length ?? 0) > 0);\r\n setActiveIndex((result?.length ?? 0) > 0 ? 0 : -1);\r\n } catch {\r\n setSuggestions([]);\r\n setOpen(false);\r\n setActiveIndex(-1);\r\n }\r\n }, debounceMs);\r\n\r\n return () => {\r\n if (debounceRef.current) clearTimeout(debounceRef.current);\r\n };\r\n }, [inputValue, fetchSuggestions, debounceMs]);\r\n\r\n const addTag = (raw: string) => {\r\n const newTag = raw.trim();\r\n if (!newTag || hasTag(newTag)) return false;\r\n const updated = [...tagList, newTag];\r\n setTagList(updated);\r\n onChange?.(updated);\r\n setLastAction(`Added tag ${newTag}.`);\r\n return true;\r\n };\r\n\r\n const removeTag = (tag: string) => {\r\n const updated = tagList.filter((t) => t !== tag);\r\n setTagList(updated);\r\n onChange?.(updated);\r\n setLastAction(`Removed tag ${tag}.`);\r\n };\r\n\r\n const handleKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {\r\n const { key } = event;\r\n\r\n if (open && suggestions.length > 0) {\r\n if (key === \"ArrowDown\") {\r\n event.preventDefault();\r\n setActiveIndex((i) => (i + 1) % suggestions.length);\r\n return;\r\n }\r\n if (key === \"ArrowUp\") {\r\n event.preventDefault();\r\n setActiveIndex(\r\n (i) => (i - 1 + suggestions.length) % suggestions.length\r\n );\r\n return;\r\n }\r\n if (key === \"Enter\") {\r\n event.preventDefault();\r\n const choice = suggestions[activeIndex];\r\n if (choice && addTag(choice)) {\r\n setInputValue(\"\");\r\n }\r\n setSuggestions([]);\r\n setOpen(false);\r\n setActiveIndex(-1);\r\n return;\r\n }\r\n if (key === \"Escape\") {\r\n event.preventDefault();\r\n setSuggestions([]);\r\n setOpen(false);\r\n setActiveIndex(-1);\r\n return;\r\n }\r\n }\r\n\r\n if (key === \"Enter\" || key === \",\") {\r\n event.preventDefault();\r\n if (addTag(inputValue)) setInputValue(\"\");\r\n setSuggestions([]);\r\n setOpen(false);\r\n setActiveIndex(-1);\r\n return;\r\n }\r\n\r\n if (key === \"Backspace\" && inputValue === \"\" && tagList.length > 0) {\r\n const last = tagList[tagList.length - 1];\r\n removeTag(last);\r\n }\r\n };\r\n\r\n const wrapperClass = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.tagInput,\r\n classMap[theme],\r\n classMap[state],\r\n classMap[size]\r\n ),\r\n [classMap, theme, state, size]\r\n );\r\n\r\n const tagClass = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.tag,\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`]\r\n ),\r\n [classMap, shadow, rounding]\r\n );\r\n\r\n const handleSuggestionClick = (suggestion: string) => {\r\n if (addTag(suggestion)) setInputValue(\"\");\r\n setSuggestions([]);\r\n setOpen(false);\r\n setActiveIndex(-1);\r\n };\r\n\r\n const activeOptionId =\r\n open && activeIndex >= 0 ? `${listboxId}-opt-${activeIndex}` : undefined;\r\n\r\n return (\r\n <div\r\n className={wrapperClass}\r\n role=\"group\"\r\n aria-labelledby={labelId}\r\n aria-describedby={`${descId} ${statusId}`}\r\n data-testid={testId}\r\n >\r\n <label id={labelId} className=\"sr_only\">\r\n Tag Input\r\n </label>\r\n <div\r\n id={descId}\r\n className=\"sr_only\"\r\n data-testid={`${testId}-description`}\r\n >\r\n {ariaDescription}\r\n </div>\r\n\r\n <ul className={classMap.tagContainer} data-testid={`${testId}-list`}>\r\n {tagList.map((tag, index) => (\r\n <li\r\n key={`${tag}-${index}`}\r\n className={tagClass}\r\n role=\"listitem\"\r\n data-testid={`${testId}-tag-${index}`}\r\n >\r\n <span className={classMap.tagLabel}>{tag}</span>\r\n <IconButton\r\n type=\"button\"\r\n aria-label={`Remove tag ${tag}`}\r\n className={classMap.removeButton}\r\n onClick={() => removeTag(tag)}\r\n data-testid={`${testId}-remove-${index}`}\r\n icon={CloseIcon}\r\n size=\"small\"\r\n theme=\"clear\"\r\n shadow=\"none\"\r\n iconClassName={classMap.removeButtonIcon}\r\n />\r\n </li>\r\n ))}\r\n </ul>\r\n\r\n <div className={classMap.inputWrapper}>\r\n <TextInput\r\n id={inputId}\r\n type=\"text\"\r\n theme={theme}\r\n state={state}\r\n rounding={rounding}\r\n shadow={shadow}\r\n className={classMap.input}\r\n value={inputValue}\r\n placeholder={tagList.length === 0 ? placeholder : \"\"}\r\n onChange={(e: { target: { value: string } }) =>\r\n setInputValue(e.target.value)\r\n }\r\n onKeyDown={handleKeyDown}\r\n autoComplete=\"off\"\r\n role=\"combobox\"\r\n aria-autocomplete=\"list\"\r\n aria-expanded={open}\r\n aria-controls={listboxId}\r\n aria-activedescendant={activeOptionId}\r\n aria-label=\"Add new tag\"\r\n aria-describedby={`${descId} ${statusId}`}\r\n data-testid={`${testId}-input`}\r\n />\r\n </div>\r\n\r\n {open && suggestions.length > 0 && (\r\n <ul\r\n className={classMap.suggestionList}\r\n role=\"listbox\"\r\n id={listboxId}\r\n aria-label=\"Tag suggestions\"\r\n data-testid={`${testId}-suggestions`}\r\n >\r\n {suggestions.map((suggestion, index) => (\r\n <li\r\n key={`${suggestion}-${index}`}\r\n id={`${listboxId}-opt-${index}`}\r\n className={combineClassNames(\r\n classMap.suggestionItem,\r\n index === activeIndex && (classMap.active || \"\")\r\n )}\r\n role=\"option\"\r\n aria-selected={index === activeIndex}\r\n onMouseDown={(e) => e.preventDefault()}\r\n onClick={() => handleSuggestionClick(suggestion)}\r\n data-testid={`${testId}-suggestion-${index}`}\r\n >\r\n {suggestion}\r\n </li>\r\n ))}\r\n </ul>\r\n )}\r\n\r\n <div id={statusId} aria-live=\"polite\" className=\"sr_only\">\r\n {open && suggestions.length > 0\r\n ? `${suggestions.length} suggestion${suggestions.length === 1 ? \"\" : \"s\"} available.`\r\n : \"\"}\r\n {lastAction}\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nTagInputBase.displayName = \"TagInputBase\";\r\nexport default TagInputBase;\r\n","import React from \"react\";\r\nimport \"./Taginput.scss\";\r\nimport IconButton from \"../../IconButton/core/IconButton\";\r\nimport TextInput from \"../../TextInput/core/TextInput\";\r\nimport TagInputBase from \"../TagInputBase\";\r\nimport { TagInputProps } from \"../Taginput.types\";\r\n\r\nconst classes = {\r\n tagInput: \"tag_input\",\r\n tagContainer: \"tag_input_tag_container\",\r\n tag: \"tag_input_tag\",\r\n tagLabel: \"tag_input_tag_label\",\r\n removeButton: \"tag_input_remove_button\",\r\n removeButtonIcon: \"tag_input_remove_button_icon\",\r\n inputWrapper: \"tag_input_input_wrapper\",\r\n input: \"tag_input_input\",\r\n suggestionList: \"tag_input_suggestion_list\",\r\n suggestionItem: \"tag_input_suggestion_item\",\r\n\r\n primary: \"tag_input_primary\",\r\n secondary: \"tag_input_secondary\",\r\n tertiary: \"tag_input_tertiary\",\r\n quaternary: \"tag_input_quaternary\",\r\n\r\n success: \"tag_input_success\",\r\n warning: \"tag_input_warning\",\r\n error: \"tag_input_error\",\r\n\r\n clear: \"tag_input_clear\",\r\n\r\n xs: \"tag_input_xs\",\r\n small: \"tag_input_small\",\r\n medium: \"tag_input_medium\",\r\n large: \"tag_input_large\",\r\n xl: \"tag_input_xl\",\r\n\r\n shadowNone: \"tag_shadow-None\",\r\n shadowLight: \"tag_shadow-Light\",\r\n shadowMedium: \"tag_shadow-Medium\",\r\n shadowStrong: \"tag_shadow-Strong\",\r\n shadowIntense: \"tag_shadow-Intense\",\r\n\r\n roundNone: \"tag_round-None\",\r\n roundSmall: \"tag_round-Small\",\r\n roundMedium: \"tag_round-Medium\",\r\n roundLarge: \"tag_round-Large\",\r\n};\r\n\r\nconst TagInput: React.FC<TagInputProps> = (props) => {\r\n return (\r\n <TagInputBase\r\n {...props}\r\n classMap={classes}\r\n IconButton={IconButton}\r\n TextInput={TextInput}\r\n />\r\n );\r\n};\r\n\r\nexport default TagInput;\r\n"],"names":["getDefaultTheme","getDefaultSize","getDefaultRounding","getDefaultShadow","IconButton","TextInput","useId","useState","useRef","useEffect","useMemo","combineClassNames","capitalize","jsxs","jsx","CloseIcon"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Taginput-kqeTeVJY.cjs","sources":["../../src/components/TagInput/TagInputBase.tsx","../../src/components/TagInput/core/Taginput.tsx"],"sourcesContent":["import React, {\r\n useId,\r\n useState,\r\n KeyboardEvent,\r\n useMemo,\r\n useEffect,\r\n useRef,\r\n} from \"react\";\r\nimport { TagInputBaseProps } from \"./Taginput.types\";\r\nimport { CloseIcon } from \"../../Icons\";\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 TagInputBase: React.FC<TagInputBaseProps> = ({\r\n tags = [],\r\n onChange,\r\n fetchSuggestions,\r\n debounceMs = 300,\r\n placeholder = \"Add a tag...\",\r\n theme = getDefaultTheme(),\r\n state = \"\",\r\n size = getDefaultSize(),\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n \"data-testid\": testId = \"tag-input\",\r\n ariaDescription = \"Type a tag and press Enter or comma to add. Use arrow keys to navigate suggestions; Enter to select; Escape to close. Backspace removes the last tag when the field is empty.\",\r\n classMap,\r\n IconButton,\r\n TextInput,\r\n}) => {\r\n const uid = useId();\r\n const inputId = `${testId}-input-${uid}`;\r\n const descId = `${testId}-desc-${uid}`;\r\n const labelId = `${testId}-label-${uid}`;\r\n const listboxId = `${testId}-listbox-${uid}`;\r\n const statusId = `${testId}-status-${uid}`;\r\n\r\n const [inputValue, setInputValue] = useState(\"\");\r\n const [tagList, setTagList] = useState<string[]>(tags);\r\n const [lastAction, setLastAction] = useState<string>(\"\");\r\n const [suggestions, setSuggestions] = useState<string[]>([]);\r\n const [open, setOpen] = useState(false);\r\n const [activeIndex, setActiveIndex] = useState<number>(-1);\r\n\r\n const debounceRef = useRef<ReturnType<typeof setTimeout> | null>(null);\r\n\r\n const hasTag = (val: string) =>\r\n tagList.some((t) => t.toLowerCase() === val.toLowerCase());\r\n\r\n useEffect(() => {\r\n if (!fetchSuggestions) {\r\n setSuggestions([]);\r\n setOpen(false);\r\n return;\r\n }\r\n if (debounceRef.current) clearTimeout(debounceRef.current);\r\n\r\n const query = inputValue.trim();\r\n if (!query) {\r\n setSuggestions([]);\r\n setOpen(false);\r\n setActiveIndex(-1);\r\n return;\r\n }\r\n\r\n debounceRef.current = setTimeout(async () => {\r\n try {\r\n const result = await fetchSuggestions(query);\r\n setSuggestions(result || []);\r\n setOpen((result?.length ?? 0) > 0);\r\n setActiveIndex((result?.length ?? 0) > 0 ? 0 : -1);\r\n } catch {\r\n setSuggestions([]);\r\n setOpen(false);\r\n setActiveIndex(-1);\r\n }\r\n }, debounceMs);\r\n\r\n return () => {\r\n if (debounceRef.current) clearTimeout(debounceRef.current);\r\n };\r\n }, [inputValue, fetchSuggestions, debounceMs]);\r\n\r\n const addTag = (raw: string) => {\r\n const newTag = raw.trim();\r\n if (!newTag || hasTag(newTag)) return false;\r\n const updated = [...tagList, newTag];\r\n setTagList(updated);\r\n onChange?.(updated);\r\n setLastAction(`Added tag ${newTag}.`);\r\n return true;\r\n };\r\n\r\n const removeTag = (tag: string) => {\r\n const updated = tagList.filter((t) => t !== tag);\r\n setTagList(updated);\r\n onChange?.(updated);\r\n setLastAction(`Removed tag ${tag}.`);\r\n };\r\n\r\n const handleKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {\r\n const { key } = event;\r\n\r\n if (open && suggestions.length > 0) {\r\n if (key === \"ArrowDown\") {\r\n event.preventDefault();\r\n setActiveIndex((i) => (i + 1) % suggestions.length);\r\n return;\r\n }\r\n if (key === \"ArrowUp\") {\r\n event.preventDefault();\r\n setActiveIndex(\r\n (i) => (i - 1 + suggestions.length) % suggestions.length\r\n );\r\n return;\r\n }\r\n if (key === \"Enter\") {\r\n event.preventDefault();\r\n const choice = suggestions[activeIndex];\r\n if (choice && addTag(choice)) {\r\n setInputValue(\"\");\r\n }\r\n setSuggestions([]);\r\n setOpen(false);\r\n setActiveIndex(-1);\r\n return;\r\n }\r\n if (key === \"Escape\") {\r\n event.preventDefault();\r\n setSuggestions([]);\r\n setOpen(false);\r\n setActiveIndex(-1);\r\n return;\r\n }\r\n }\r\n\r\n if (key === \"Enter\" || key === \",\") {\r\n event.preventDefault();\r\n if (addTag(inputValue)) setInputValue(\"\");\r\n setSuggestions([]);\r\n setOpen(false);\r\n setActiveIndex(-1);\r\n return;\r\n }\r\n\r\n if (key === \"Backspace\" && inputValue === \"\" && tagList.length > 0) {\r\n const last = tagList[tagList.length - 1];\r\n removeTag(last);\r\n }\r\n };\r\n\r\n const wrapperClass = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.tagInput,\r\n classMap[theme],\r\n classMap[state],\r\n classMap[size]\r\n ),\r\n [classMap, theme, state, size]\r\n );\r\n\r\n const tagClass = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.tag,\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`]\r\n ),\r\n [classMap, shadow, rounding]\r\n );\r\n\r\n const handleSuggestionClick = (suggestion: string) => {\r\n if (addTag(suggestion)) setInputValue(\"\");\r\n setSuggestions([]);\r\n setOpen(false);\r\n setActiveIndex(-1);\r\n };\r\n\r\n const activeOptionId =\r\n open && activeIndex >= 0 ? `${listboxId}-opt-${activeIndex}` : undefined;\r\n\r\n return (\r\n <div\r\n className={wrapperClass}\r\n role=\"group\"\r\n aria-labelledby={labelId}\r\n aria-describedby={`${descId} ${statusId}`}\r\n data-testid={testId}\r\n >\r\n <label id={labelId} className=\"sr_only\">\r\n Tag Input\r\n </label>\r\n <div\r\n id={descId}\r\n className=\"sr_only\"\r\n data-testid={`${testId}-description`}\r\n >\r\n {ariaDescription}\r\n </div>\r\n\r\n <ul className={classMap.tagContainer} data-testid={`${testId}-list`}>\r\n {tagList.map((tag, index) => (\r\n <li\r\n key={`${tag}-${index}`}\r\n className={tagClass}\r\n role=\"listitem\"\r\n data-testid={`${testId}-tag-${index}`}\r\n >\r\n <span className={classMap.tagLabel}>{tag}</span>\r\n <IconButton\r\n type=\"button\"\r\n aria-label={`Remove tag ${tag}`}\r\n className={classMap.removeButton}\r\n onClick={() => removeTag(tag)}\r\n data-testid={`${testId}-remove-${index}`}\r\n icon={CloseIcon}\r\n size=\"small\"\r\n theme=\"clear\"\r\n shadow=\"none\"\r\n iconClassName={classMap.removeButtonIcon}\r\n />\r\n </li>\r\n ))}\r\n </ul>\r\n\r\n <div className={classMap.inputWrapper}>\r\n <TextInput\r\n id={inputId}\r\n type=\"text\"\r\n theme={theme}\r\n state={state}\r\n rounding={rounding}\r\n shadow={shadow}\r\n className={classMap.input}\r\n value={inputValue}\r\n placeholder={tagList.length === 0 ? placeholder : \"\"}\r\n onChange={(e: { target: { value: string } }) =>\r\n setInputValue(e.target.value)\r\n }\r\n onKeyDown={handleKeyDown}\r\n autoComplete=\"off\"\r\n role=\"combobox\"\r\n aria-autocomplete=\"list\"\r\n aria-expanded={open}\r\n aria-controls={listboxId}\r\n aria-activedescendant={activeOptionId}\r\n aria-label=\"Add new tag\"\r\n aria-describedby={`${descId} ${statusId}`}\r\n data-testid={`${testId}-input`}\r\n />\r\n </div>\r\n\r\n {open && suggestions.length > 0 && (\r\n <ul\r\n className={classMap.suggestionList}\r\n role=\"listbox\"\r\n id={listboxId}\r\n aria-label=\"Tag suggestions\"\r\n data-testid={`${testId}-suggestions`}\r\n >\r\n {suggestions.map((suggestion, index) => (\r\n <li\r\n key={`${suggestion}-${index}`}\r\n id={`${listboxId}-opt-${index}`}\r\n className={combineClassNames(\r\n classMap.suggestionItem,\r\n index === activeIndex && (classMap.active || \"\")\r\n )}\r\n role=\"option\"\r\n aria-selected={index === activeIndex}\r\n onMouseDown={(e) => e.preventDefault()}\r\n onClick={() => handleSuggestionClick(suggestion)}\r\n data-testid={`${testId}-suggestion-${index}`}\r\n >\r\n {suggestion}\r\n </li>\r\n ))}\r\n </ul>\r\n )}\r\n\r\n <div id={statusId} aria-live=\"polite\" className=\"sr_only\">\r\n {open && suggestions.length > 0\r\n ? `${suggestions.length} suggestion${suggestions.length === 1 ? \"\" : \"s\"} available.`\r\n : \"\"}\r\n {lastAction}\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nTagInputBase.displayName = \"TagInputBase\";\r\nexport default TagInputBase;\r\n","import React from \"react\";\r\nimport \"./Taginput.scss\";\r\nimport IconButton from \"../../IconButton/core/IconButton\";\r\nimport TextInput from \"../../TextInput/core/TextInput\";\r\nimport TagInputBase from \"../TagInputBase\";\r\nimport { TagInputProps } from \"../Taginput.types\";\r\n\r\nconst classes = {\r\n tagInput: \"tag_input\",\r\n tagContainer: \"tag_input_tag_container\",\r\n tag: \"tag_input_tag\",\r\n tagLabel: \"tag_input_tag_label\",\r\n removeButton: \"tag_input_remove_button\",\r\n removeButtonIcon: \"tag_input_remove_button_icon\",\r\n inputWrapper: \"tag_input_input_wrapper\",\r\n input: \"tag_input_input\",\r\n suggestionList: \"tag_input_suggestion_list\",\r\n suggestionItem: \"tag_input_suggestion_item\",\r\n\r\n primary: \"tag_input_primary\",\r\n secondary: \"tag_input_secondary\",\r\n tertiary: \"tag_input_tertiary\",\r\n quaternary: \"tag_input_quaternary\",\r\n\r\n success: \"tag_input_success\",\r\n warning: \"tag_input_warning\",\r\n error: \"tag_input_error\",\r\n\r\n clear: \"tag_input_clear\",\r\n\r\n xs: \"tag_input_xs\",\r\n small: \"tag_input_small\",\r\n medium: \"tag_input_medium\",\r\n large: \"tag_input_large\",\r\n xl: \"tag_input_xl\",\r\n\r\n shadowNone: \"tag_shadow-None\",\r\n shadowLight: \"tag_shadow-Light\",\r\n shadowMedium: \"tag_shadow-Medium\",\r\n shadowStrong: \"tag_shadow-Strong\",\r\n shadowIntense: \"tag_shadow-Intense\",\r\n\r\n roundNone: \"tag_round-None\",\r\n roundSmall: \"tag_round-Small\",\r\n roundMedium: \"tag_round-Medium\",\r\n roundLarge: \"tag_round-Large\",\r\n};\r\n\r\nconst TagInput: React.FC<TagInputProps> = (props) => {\r\n return (\r\n <TagInputBase\r\n {...props}\r\n classMap={classes}\r\n IconButton={IconButton}\r\n TextInput={TextInput}\r\n />\r\n );\r\n};\r\n\r\nexport default TagInput;\r\n"],"names":["getDefaultTheme","getDefaultSize","getDefaultRounding","getDefaultShadow","IconButton","TextInput","useId","useState","useRef","useEffect","useMemo","combineClassNames","capitalize","jsxs","jsx","CloseIcon"],"mappings":"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"}
|
|
@@ -104,7 +104,7 @@ const TextAreaBase = React.forwardRef(
|
|
|
104
104
|
TextAreaBase.displayName = "TextAreaBase";
|
|
105
105
|
const classes = {
|
|
106
106
|
textArea: "textArea",
|
|
107
|
-
textInput: "
|
|
107
|
+
textInput: "textArea_text_input",
|
|
108
108
|
icon: "textArea_icon",
|
|
109
109
|
primary: "textArea_primary",
|
|
110
110
|
secondary: "textArea_secondary",
|
|
@@ -136,4 +136,4 @@ const TextArea = React.forwardRef(
|
|
|
136
136
|
);
|
|
137
137
|
TextArea.displayName = "TextArea";
|
|
138
138
|
exports.TextArea = TextArea;
|
|
139
|
-
//# sourceMappingURL=TextArea-
|
|
139
|
+
//# sourceMappingURL=TextArea-BJGUr6r_.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextArea-
|
|
1
|
+
{"version":3,"file":"TextArea-BJGUr6r_.cjs","sources":["../../src/components/TextArea/TextAreaBase.tsx","../../src/components/TextArea/core/TextArea.tsx"],"sourcesContent":["import { forwardRef, useId, useMemo } from \"react\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { TextAreaProps } from \"./TextArea.types\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultTheme,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nconst TextAreaBase = forwardRef<\r\n HTMLTextAreaElement,\r\n TextAreaProps & { classMap: Record<string, string> }\r\n>(\r\n (\r\n {\r\n icon: Icon,\r\n placeholder = \"Enter text\",\r\n readOnly = false,\r\n outline = false,\r\n autocomplete = false,\r\n theme = getDefaultTheme(),\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n state = \"\",\r\n resizable = true,\r\n ariaLabel,\r\n ariaDescription,\r\n disabled = false,\r\n height,\r\n classMap,\r\n className = \"\",\r\n \"data-testid\": testId = \"text-area\",\r\n id: idProp,\r\n required,\r\n ...props\r\n },\r\n ref\r\n ) => {\r\n const autoId = useId();\r\n const id = idProp || autoId;\r\n\r\n const descriptionId = ariaDescription ? `${id}-description` : undefined;\r\n\r\n const wrapperClass = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.textArea,\r\n classMap[theme],\r\n classMap[state],\r\n outline && classMap.outline,\r\n disabled && classMap.disabled,\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n className\r\n ),\r\n [classMap, theme, state, outline, disabled, shadow, rounding, className]\r\n );\r\n\r\n const computedLabel = ariaLabel || placeholder;\r\n\r\n const describedBy = descriptionId || undefined;\r\n\r\n const isError = state === \"error\";\r\n\r\n return (\r\n <div className={wrapperClass} data-testid={testId}>\r\n {Icon && (\r\n <div\r\n className={classMap.iconContainer}\r\n aria-hidden=\"true\"\r\n data-testid={`${testId}-icon`}\r\n >\r\n <Icon aria-hidden=\"true\" />\r\n </div>\r\n )}\r\n\r\n <textarea\r\n ref={ref}\r\n id={id}\r\n placeholder={placeholder}\r\n aria-label={computedLabel}\r\n aria-describedby={describedBy}\r\n aria-invalid={isError || undefined}\r\n aria-required={required || undefined}\r\n aria-readonly={readOnly || undefined}\r\n aria-disabled={disabled || undefined}\r\n autoComplete={autocomplete ? \"on\" : \"off\"}\r\n readOnly={readOnly}\r\n disabled={disabled}\r\n required={required}\r\n style={{\r\n height,\r\n resize: resizable ? undefined : \"none\",\r\n }}\r\n className={classMap.textInput}\r\n data-testid={`${testId}-input`}\r\n {...props}\r\n />\r\n\r\n <div\r\n className={classMap.customResizeHandle}\r\n aria-hidden=\"true\"\r\n data-testid={`${testId}-resize-handle`}\r\n />\r\n\r\n {ariaDescription && (\r\n <span\r\n id={descriptionId}\r\n className=\"sr_only\"\r\n data-testid={`${testId}-description`}\r\n >\r\n {ariaDescription}\r\n </span>\r\n )}\r\n </div>\r\n );\r\n }\r\n);\r\n\r\nTextAreaBase.displayName = \"TextAreaBase\";\r\n\r\nexport default TextAreaBase;\r\n","import { forwardRef } from \"react\";\r\nimport TextAreaBase from \"../TextAreaBase\";\r\nimport type { TextAreaProps } from \"../TextArea.types\";\r\nimport \"./TextArea.scss\";\r\n\r\nconst classes = {\r\n textArea: \"textArea\",\r\n textInput: \"textArea_text_input\",\r\n icon: \"textArea_icon\",\r\n\r\n primary: \"textArea_primary\",\r\n secondary: \"textArea_secondary\",\r\n tertiary: \"textArea_tertiary\",\r\n quaternary: \"textArea_quaternary\",\r\n\r\n success: \"textArea_success\",\r\n error: \"textArea_error\",\r\n warning: \"textArea_warning\",\r\n\r\n clear: \"textArea_clear\",\r\n\r\n outline: \"textArea_outline\",\r\n\r\n disabled: \"textArea_disabled\",\r\n\r\n errorMessage: \"textArea_errorMessage\",\r\n iconContainer: \"textArea_iconContainer\",\r\n errorMessageContainer: \"textArea_errorMessageContainer\",\r\n\r\n shadowNone: \"textArea_shadow-None\",\r\n shadowLight: \"textArea_shadow-Light\",\r\n shadowMedium: \"textArea_shadow-Medium\",\r\n shadowStrong: \"textArea_shadow-Strong\",\r\n shadowIntense: \"textArea_shadow-Intense\",\r\n\r\n roundNone: \"textArea_round-None\",\r\n roundSmall: \"textArea_round-Small\",\r\n roundMedium: \"textArea_round-Medium\",\r\n roundLarge: \"textArea_round-Large\",\r\n};\r\n\r\nconst TextArea = forwardRef<HTMLTextAreaElement, TextAreaProps>(\r\n (props, ref) => {\r\n return <TextAreaBase {...props} ref={ref} classMap={classes} />;\r\n }\r\n);\r\n\r\nTextArea.displayName = \"TextArea\";\r\n\r\nexport default TextArea;\r\n"],"names":["forwardRef","getDefaultTheme","getDefaultRounding","getDefaultShadow","useId","useMemo","combineClassNames","capitalize","jsxs","jsx"],"mappings":";;;;;;AAUA,MAAM,eAAeA,MAAAA;AAAAA,EAInB,CACE;AAAA,IACE,MAAM;AAAA,IACN,cAAc;AAAA,IACd,WAAW;AAAA,IACX,UAAU;AAAA,IACV,eAAe;AAAA,IACf,QAAQC,kBAAAA,gBAAA;AAAA,IACR,WAAWC,kBAAAA,mBAAA;AAAA,IACX,SAASC,kBAAAA,iBAAA;AAAA,IACT,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ;AAAA,IACA;AAAA,IACA,WAAW;AAAA,IACX;AAAA,IACA;AAAA,IACA,YAAY;AAAA,IACZ,eAAe,SAAS;AAAA,IACxB,IAAI;AAAA,IACJ;AAAA,IACA,GAAG;AAAA,EAAA,GAEL,QACG;AACH,UAAM,SAASC,MAAAA,MAAA;AACf,UAAM,KAAK,UAAU;AAErB,UAAM,gBAAgB,kBAAkB,GAAG,EAAE,iBAAiB;AAE9D,UAAM,eAAeC,MAAAA;AAAAA,MACnB,MACEC,WAAAA;AAAAA,QACE,SAAS;AAAA,QACT,SAAS,KAAK;AAAA,QACd,SAAS,KAAK;AAAA,QACd,WAAW,SAAS;AAAA,QACpB,YAAY,SAAS;AAAA,QACrB,UAAU,SAAS,SAASC,WAAAA,WAAW,MAAM,CAAC,EAAE;AAAA,QAChD,YAAY,SAAS,QAAQA,WAAAA,WAAW,QAAQ,CAAC,EAAE;AAAA,QACnD;AAAA,MAAA;AAAA,MAEJ,CAAC,UAAU,OAAO,OAAO,SAAS,UAAU,QAAQ,UAAU,SAAS;AAAA,IAAA;AAGzE,UAAM,gBAAgB,aAAa;AAEnC,UAAM,cAAc,iBAAiB;AAErC,UAAM,UAAU,UAAU;AAE1B,WACEC,2BAAAA,KAAC,OAAA,EAAI,WAAW,cAAc,eAAa,QACxC,UAAA;AAAA,MAAA,QACCC,2BAAAA;AAAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAW,SAAS;AAAA,UACpB,eAAY;AAAA,UACZ,eAAa,GAAG,MAAM;AAAA,UAEtB,UAAAA,2BAAAA,IAAC,MAAA,EAAK,eAAY,OAAA,CAAO;AAAA,QAAA;AAAA,MAAA;AAAA,MAI7BA,2BAAAA;AAAAA,QAAC;AAAA,QAAA;AAAA,UACC;AAAA,UACA;AAAA,UACA;AAAA,UACA,cAAY;AAAA,UACZ,oBAAkB;AAAA,UAClB,gBAAc,WAAW;AAAA,UACzB,iBAAe,YAAY;AAAA,UAC3B,iBAAe,YAAY;AAAA,UAC3B,iBAAe,YAAY;AAAA,UAC3B,cAAc,eAAe,OAAO;AAAA,UACpC;AAAA,UACA;AAAA,UACA;AAAA,UACA,OAAO;AAAA,YACL;AAAA,YACA,QAAQ,YAAY,SAAY;AAAA,UAAA;AAAA,UAElC,WAAW,SAAS;AAAA,UACpB,eAAa,GAAG,MAAM;AAAA,UACrB,GAAG;AAAA,QAAA;AAAA,MAAA;AAAA,MAGNA,2BAAAA;AAAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAW,SAAS;AAAA,UACpB,eAAY;AAAA,UACZ,eAAa,GAAG,MAAM;AAAA,QAAA;AAAA,MAAA;AAAA,MAGvB,mBACCA,2BAAAA;AAAAA,QAAC;AAAA,QAAA;AAAA,UACC,IAAI;AAAA,UACJ,WAAU;AAAA,UACV,eAAa,GAAG,MAAM;AAAA,UAErB,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IACH,GAEJ;AAAA,EAEJ;AACF;AAEA,aAAa,cAAc;ACnH3B,MAAM,UAAU;AAAA,EACd,UAAU;AAAA,EACV,WAAW;AAAA,EACX,MAAM;AAAA,EAEN,SAAS;AAAA,EACT,WAAW;AAAA,EACX,UAAU;AAAA,EACV,YAAY;AAAA,EAEZ,SAAS;AAAA,EACT,OAAO;AAAA,EACP,SAAS;AAAA,EAET,OAAO;AAAA,EAEP,SAAS;AAAA,EAET,UAAU;AAAA,EAEV,cAAc;AAAA,EACd,eAAe;AAAA,EACf,uBAAuB;AAAA,EAEvB,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,WAAWT,MAAAA;AAAAA,EACf,CAAC,OAAO,QAAQ;AACd,0CAAQ,cAAA,EAAc,GAAG,OAAO,KAAU,UAAU,SAAS;AAAA,EAC/D;AACF;AAEA,SAAS,cAAc;;"}
|
|
@@ -103,7 +103,7 @@ const TextAreaBase = forwardRef(
|
|
|
103
103
|
TextAreaBase.displayName = "TextAreaBase";
|
|
104
104
|
const classes = {
|
|
105
105
|
textArea: "textArea",
|
|
106
|
-
textInput: "
|
|
106
|
+
textInput: "textArea_text_input",
|
|
107
107
|
icon: "textArea_icon",
|
|
108
108
|
primary: "textArea_primary",
|
|
109
109
|
secondary: "textArea_secondary",
|
|
@@ -137,4 +137,4 @@ TextArea.displayName = "TextArea";
|
|
|
137
137
|
export {
|
|
138
138
|
TextArea as T
|
|
139
139
|
};
|
|
140
|
-
//# sourceMappingURL=TextArea-
|
|
140
|
+
//# sourceMappingURL=TextArea-CIdsUIzt.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextArea-
|
|
1
|
+
{"version":3,"file":"TextArea-CIdsUIzt.js","sources":["../../src/components/TextArea/TextAreaBase.tsx","../../src/components/TextArea/core/TextArea.tsx"],"sourcesContent":["import { forwardRef, useId, useMemo } from \"react\";\r\nimport { combineClassNames } from \"../../utils/classNames\";\r\nimport { TextAreaProps } from \"./TextArea.types\";\r\nimport { capitalize } from \"../../utils/capitalize\";\r\nimport {\r\n getDefaultRounding,\r\n getDefaultShadow,\r\n getDefaultTheme,\r\n} from \"../../config/boreal-style-config\";\r\n\r\nconst TextAreaBase = forwardRef<\r\n HTMLTextAreaElement,\r\n TextAreaProps & { classMap: Record<string, string> }\r\n>(\r\n (\r\n {\r\n icon: Icon,\r\n placeholder = \"Enter text\",\r\n readOnly = false,\r\n outline = false,\r\n autocomplete = false,\r\n theme = getDefaultTheme(),\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n state = \"\",\r\n resizable = true,\r\n ariaLabel,\r\n ariaDescription,\r\n disabled = false,\r\n height,\r\n classMap,\r\n className = \"\",\r\n \"data-testid\": testId = \"text-area\",\r\n id: idProp,\r\n required,\r\n ...props\r\n },\r\n ref\r\n ) => {\r\n const autoId = useId();\r\n const id = idProp || autoId;\r\n\r\n const descriptionId = ariaDescription ? `${id}-description` : undefined;\r\n\r\n const wrapperClass = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.textArea,\r\n classMap[theme],\r\n classMap[state],\r\n outline && classMap.outline,\r\n disabled && classMap.disabled,\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n className\r\n ),\r\n [classMap, theme, state, outline, disabled, shadow, rounding, className]\r\n );\r\n\r\n const computedLabel = ariaLabel || placeholder;\r\n\r\n const describedBy = descriptionId || undefined;\r\n\r\n const isError = state === \"error\";\r\n\r\n return (\r\n <div className={wrapperClass} data-testid={testId}>\r\n {Icon && (\r\n <div\r\n className={classMap.iconContainer}\r\n aria-hidden=\"true\"\r\n data-testid={`${testId}-icon`}\r\n >\r\n <Icon aria-hidden=\"true\" />\r\n </div>\r\n )}\r\n\r\n <textarea\r\n ref={ref}\r\n id={id}\r\n placeholder={placeholder}\r\n aria-label={computedLabel}\r\n aria-describedby={describedBy}\r\n aria-invalid={isError || undefined}\r\n aria-required={required || undefined}\r\n aria-readonly={readOnly || undefined}\r\n aria-disabled={disabled || undefined}\r\n autoComplete={autocomplete ? \"on\" : \"off\"}\r\n readOnly={readOnly}\r\n disabled={disabled}\r\n required={required}\r\n style={{\r\n height,\r\n resize: resizable ? undefined : \"none\",\r\n }}\r\n className={classMap.textInput}\r\n data-testid={`${testId}-input`}\r\n {...props}\r\n />\r\n\r\n <div\r\n className={classMap.customResizeHandle}\r\n aria-hidden=\"true\"\r\n data-testid={`${testId}-resize-handle`}\r\n />\r\n\r\n {ariaDescription && (\r\n <span\r\n id={descriptionId}\r\n className=\"sr_only\"\r\n data-testid={`${testId}-description`}\r\n >\r\n {ariaDescription}\r\n </span>\r\n )}\r\n </div>\r\n );\r\n }\r\n);\r\n\r\nTextAreaBase.displayName = \"TextAreaBase\";\r\n\r\nexport default TextAreaBase;\r\n","import { forwardRef } from \"react\";\r\nimport TextAreaBase from \"../TextAreaBase\";\r\nimport type { TextAreaProps } from \"../TextArea.types\";\r\nimport \"./TextArea.scss\";\r\n\r\nconst classes = {\r\n textArea: \"textArea\",\r\n textInput: \"textArea_text_input\",\r\n icon: \"textArea_icon\",\r\n\r\n primary: \"textArea_primary\",\r\n secondary: \"textArea_secondary\",\r\n tertiary: \"textArea_tertiary\",\r\n quaternary: \"textArea_quaternary\",\r\n\r\n success: \"textArea_success\",\r\n error: \"textArea_error\",\r\n warning: \"textArea_warning\",\r\n\r\n clear: \"textArea_clear\",\r\n\r\n outline: \"textArea_outline\",\r\n\r\n disabled: \"textArea_disabled\",\r\n\r\n errorMessage: \"textArea_errorMessage\",\r\n iconContainer: \"textArea_iconContainer\",\r\n errorMessageContainer: \"textArea_errorMessageContainer\",\r\n\r\n shadowNone: \"textArea_shadow-None\",\r\n shadowLight: \"textArea_shadow-Light\",\r\n shadowMedium: \"textArea_shadow-Medium\",\r\n shadowStrong: \"textArea_shadow-Strong\",\r\n shadowIntense: \"textArea_shadow-Intense\",\r\n\r\n roundNone: \"textArea_round-None\",\r\n roundSmall: \"textArea_round-Small\",\r\n roundMedium: \"textArea_round-Medium\",\r\n roundLarge: \"textArea_round-Large\",\r\n};\r\n\r\nconst TextArea = forwardRef<HTMLTextAreaElement, TextAreaProps>(\r\n (props, ref) => {\r\n return <TextAreaBase {...props} ref={ref} classMap={classes} />;\r\n }\r\n);\r\n\r\nTextArea.displayName = \"TextArea\";\r\n\r\nexport default TextArea;\r\n"],"names":[],"mappings":"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"}
|
package/dist/core/TextArea.js
CHANGED
|
@@ -4,7 +4,7 @@ import { c as combineClassNames } from "./classNames-AS8QjFq7.js";
|
|
|
4
4
|
import { c as capitalize } from "./capitalize-C0TSQSPh.js";
|
|
5
5
|
import { a as getDefaultRounding, b as getDefaultShadow, d as getDefaultTheme } from "./boreal-style-config-BILmxkZG.js";
|
|
6
6
|
/* empty css */
|
|
7
|
-
import { I as IconButton } from "./IconButton-
|
|
7
|
+
import { I as IconButton } from "./IconButton-DY1ppFX-.js";
|
|
8
8
|
const EyeIcon = (props) => /* @__PURE__ */ jsxs(
|
|
9
9
|
"svg",
|
|
10
10
|
{
|
|
@@ -256,4 +256,4 @@ TextInput.displayName = "TextInput";
|
|
|
256
256
|
export {
|
|
257
257
|
TextInput as T
|
|
258
258
|
};
|
|
259
|
-
//# sourceMappingURL=TextInput-
|
|
259
|
+
//# sourceMappingURL=TextInput-D38TZ4Pl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TextInput-D38TZ4Pl.js","sources":["../../src/Icons/EyeIcon.tsx","../../src/Icons/EyeSlashIcon.tsx","../../src/components/TextInput/TextInputBase.tsx","../../src/components/TextInput/core/TextInput.tsx"],"sourcesContent":["const EyeIcon: 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 strokeWidth=\"1.5\"\r\n {...props}\r\n >\r\n <path\r\n d=\"M3 13C6.6 5 17.4 5 21 13\"\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=\"M12 17C10.3431 17 9 15.6569 9 14C9 12.3431 10.3431 11 12 11C13.6569 11 15 12.3431 15 14C15 15.6569 13.6569 17 12 17Z\"\r\n fill=\"currentColor\"\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 EyeIcon;\r\n","const EyeSlashIcon: 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=\"M19.5 16L17.0248 12.6038\"\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=\"M12 17.5V14\"\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=\"M4.5 16L6.96895 12.6124\"\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 8C6.6 16 17.4 16 21 8\"\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 EyeSlashIcon;\r\n","import {\r\n forwardRef,\r\n useState,\r\n useId,\r\n InputHTMLAttributes,\r\n useMemo,\r\n} from \"react\";\r\nimport { EyeIcon, EyeSlashIcon } from \"../../Icons\";\r\nimport { TextInputBaseProps } from \"./TextInput.types\";\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 TextInputBase = forwardRef<HTMLInputElement, TextInputBaseProps>(\r\n (\r\n {\r\n icon: Icon,\r\n placeholder = \"Enter text\",\r\n password = false,\r\n readOnly = false,\r\n ariaLabel,\r\n ariaDescription,\r\n theme = getDefaultTheme(),\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n state = \"\",\r\n disabled = false,\r\n autocomplete = false,\r\n \"data-testid\": testId = \"text-input\",\r\n classMap,\r\n outline = false,\r\n IconButton,\r\n className = \"\",\r\n ...rest\r\n },\r\n ref\r\n ) => {\r\n const [showPassword, setShowPassword] = useState(false);\r\n\r\n const autoId = useId();\r\n const {\r\n id: idProp,\r\n required,\r\n autoComplete: autoCompleteProp,\r\n ...restInput\r\n } = rest as InputHTMLAttributes<HTMLInputElement>;\r\n const inputId = idProp || autoId;\r\n\r\n const descId = ariaDescription ? `${inputId}-description` : undefined;\r\n const isError = state === \"error\";\r\n\r\n const computedAutoComplete =\r\n autoCompleteProp ??\r\n (autocomplete ? (password ? \"current-password\" : \"on\") : \"off\");\r\n\r\n const togglePasswordVisibility = () => setShowPassword((prev) => !prev);\r\n\r\n const wrapperClass = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.container,\r\n classMap[theme],\r\n classMap[state],\r\n outline && classMap.outline,\r\n disabled && classMap.disabled,\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n className\r\n ),\r\n [classMap, theme, state, outline, disabled, shadow, rounding, className]\r\n );\r\n\r\n const computedLabel = ariaLabel || placeholder;\r\n\r\n return (\r\n <div\r\n className={wrapperClass}\r\n data-testid={`${testId}-wrapper`}\r\n aria-disabled={disabled || undefined}\r\n >\r\n {Icon && (\r\n <div\r\n className={classMap.iconContainer}\r\n aria-hidden=\"true\"\r\n data-testid={`${testId}-icon`}\r\n >\r\n <Icon aria-hidden=\"true\" />\r\n </div>\r\n )}\r\n\r\n <input\r\n ref={ref}\r\n id={inputId}\r\n type={password && !showPassword ? \"password\" : \"text\"}\r\n className={`${classMap.textInput} ${classMap[theme]}`}\r\n placeholder={placeholder}\r\n aria-label={computedLabel}\r\n aria-describedby={descId}\r\n aria-invalid={isError || undefined}\r\n aria-required={required || undefined}\r\n aria-readonly={readOnly || undefined}\r\n aria-disabled={disabled || undefined}\r\n autoComplete={computedAutoComplete}\r\n readOnly={readOnly}\r\n disabled={disabled}\r\n required={required}\r\n data-testid={testId}\r\n {...restInput}\r\n />\r\n\r\n {password && (\r\n <IconButton\r\n type=\"button\"\r\n className={classMap.togglePassword}\r\n onClick={togglePasswordVisibility}\r\n theme=\"clear\"\r\n shadow=\"none\"\r\n aria-label={showPassword ? \"Hide password\" : \"Show password\"}\r\n aria-pressed={showPassword}\r\n data-testid={`${testId}-password-toggle`}\r\n icon={showPassword ? EyeIcon : EyeSlashIcon}\r\n />\r\n )}\r\n\r\n {ariaDescription && (\r\n <span\r\n id={descId}\r\n className=\"sr_only\"\r\n data-testid={`${testId}-input-description`}\r\n >\r\n {ariaDescription}\r\n </span>\r\n )}\r\n </div>\r\n );\r\n }\r\n);\r\n\r\nTextInputBase.displayName = \"TextInputBase\";\r\nexport default TextInputBase;\r\n","import { forwardRef } from \"react\";\r\nimport \"./TextInput.scss\";\r\nimport { TextInputProps } from \"../TextInput.types\";\r\nimport TextInputBase from \"../TextInputBase\";\r\nimport { IconButton } from \"@/index.core\";\r\n\r\nconst classes = {\r\n container: \"textInput_container\",\r\n textInput: \"textInput\",\r\n iconContainer: \"textInput_icon_container\",\r\n togglePassword: \"textInput_togglePassword\",\r\n\r\n primary: \"textInput_primary\",\r\n secondary: \"textInput_secondary\",\r\n tertiary: \"textInput_tertiary\",\r\n quaternary: \"textInput_quaternary\",\r\n\r\n success: \"textInput_success\",\r\n warning: \"textInput_warning\",\r\n error: \"textInput_error\",\r\n\r\n clear: \"textInput_clear\",\r\n\r\n xs: \"textInput_xs\",\r\n xl: \"textInput_xl\",\r\n small: \"textInput_small\",\r\n medium: \"textInput_medium\",\r\n large: \"textInput_large\",\r\n\r\n outline: \"textInput_outline\",\r\n disabled: \"textInput_disabled\",\r\n\r\n shadowNone: \"textInput_shadow-None\",\r\n shadowLight: \"textInput_shadow-Light\",\r\n shadowMedium: \"textInput_shadow-Medium\",\r\n shadowStrong: \"textInput_shadow-Strong\",\r\n shadowIntense: \"textInput_shadow-Intense\",\r\n\r\n roundNone: \"textInput_round-None\",\r\n roundSmall: \"textInput_round-Small\",\r\n roundMedium: \"textInput_round-Medium\",\r\n roundLarge: \"textInput_round-Large\",\r\n};\r\n\r\nconst TextInput = forwardRef<HTMLInputElement, TextInputProps>((props, ref) => {\r\n return (\r\n <TextInputBase\r\n {...props}\r\n IconButton={IconButton}\r\n ref={ref}\r\n classMap={classes}\r\n />\r\n );\r\n});\r\n\r\nTextInput.displayName = \"TextInput\";\r\nexport default TextInput;\r\n"],"names":["IconButton"],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@ const classNames = require("./classNames-BcWMx052.cjs");
|
|
|
5
5
|
const capitalize = require("./capitalize-DoV-nOmN.cjs");
|
|
6
6
|
const borealStyleConfig = require("./boreal-style-config-Rr5d5Qts.cjs");
|
|
7
7
|
;/* empty css */
|
|
8
|
-
const IconButton = require("./IconButton-
|
|
8
|
+
const IconButton = require("./IconButton-Cs4PHptF.cjs");
|
|
9
9
|
const EyeIcon = (props) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
10
10
|
"svg",
|
|
11
11
|
{
|
|
@@ -255,4 +255,4 @@ const TextInput = React.forwardRef((props, ref) => {
|
|
|
255
255
|
});
|
|
256
256
|
TextInput.displayName = "TextInput";
|
|
257
257
|
exports.TextInput = TextInput;
|
|
258
|
-
//# sourceMappingURL=TextInput-
|
|
258
|
+
//# sourceMappingURL=TextInput-WY4O9Zya.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TextInput-WY4O9Zya.cjs","sources":["../../src/Icons/EyeIcon.tsx","../../src/Icons/EyeSlashIcon.tsx","../../src/components/TextInput/TextInputBase.tsx","../../src/components/TextInput/core/TextInput.tsx"],"sourcesContent":["const EyeIcon: 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 strokeWidth=\"1.5\"\r\n {...props}\r\n >\r\n <path\r\n d=\"M3 13C6.6 5 17.4 5 21 13\"\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=\"M12 17C10.3431 17 9 15.6569 9 14C9 12.3431 10.3431 11 12 11C13.6569 11 15 12.3431 15 14C15 15.6569 13.6569 17 12 17Z\"\r\n fill=\"currentColor\"\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 EyeIcon;\r\n","const EyeSlashIcon: 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=\"M19.5 16L17.0248 12.6038\"\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=\"M12 17.5V14\"\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=\"M4.5 16L6.96895 12.6124\"\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 8C6.6 16 17.4 16 21 8\"\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 EyeSlashIcon;\r\n","import {\r\n forwardRef,\r\n useState,\r\n useId,\r\n InputHTMLAttributes,\r\n useMemo,\r\n} from \"react\";\r\nimport { EyeIcon, EyeSlashIcon } from \"../../Icons\";\r\nimport { TextInputBaseProps } from \"./TextInput.types\";\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 TextInputBase = forwardRef<HTMLInputElement, TextInputBaseProps>(\r\n (\r\n {\r\n icon: Icon,\r\n placeholder = \"Enter text\",\r\n password = false,\r\n readOnly = false,\r\n ariaLabel,\r\n ariaDescription,\r\n theme = getDefaultTheme(),\r\n rounding = getDefaultRounding(),\r\n shadow = getDefaultShadow(),\r\n state = \"\",\r\n disabled = false,\r\n autocomplete = false,\r\n \"data-testid\": testId = \"text-input\",\r\n classMap,\r\n outline = false,\r\n IconButton,\r\n className = \"\",\r\n ...rest\r\n },\r\n ref\r\n ) => {\r\n const [showPassword, setShowPassword] = useState(false);\r\n\r\n const autoId = useId();\r\n const {\r\n id: idProp,\r\n required,\r\n autoComplete: autoCompleteProp,\r\n ...restInput\r\n } = rest as InputHTMLAttributes<HTMLInputElement>;\r\n const inputId = idProp || autoId;\r\n\r\n const descId = ariaDescription ? `${inputId}-description` : undefined;\r\n const isError = state === \"error\";\r\n\r\n const computedAutoComplete =\r\n autoCompleteProp ??\r\n (autocomplete ? (password ? \"current-password\" : \"on\") : \"off\");\r\n\r\n const togglePasswordVisibility = () => setShowPassword((prev) => !prev);\r\n\r\n const wrapperClass = useMemo(\r\n () =>\r\n combineClassNames(\r\n classMap.container,\r\n classMap[theme],\r\n classMap[state],\r\n outline && classMap.outline,\r\n disabled && classMap.disabled,\r\n shadow && classMap[`shadow${capitalize(shadow)}`],\r\n rounding && classMap[`round${capitalize(rounding)}`],\r\n className\r\n ),\r\n [classMap, theme, state, outline, disabled, shadow, rounding, className]\r\n );\r\n\r\n const computedLabel = ariaLabel || placeholder;\r\n\r\n return (\r\n <div\r\n className={wrapperClass}\r\n data-testid={`${testId}-wrapper`}\r\n aria-disabled={disabled || undefined}\r\n >\r\n {Icon && (\r\n <div\r\n className={classMap.iconContainer}\r\n aria-hidden=\"true\"\r\n data-testid={`${testId}-icon`}\r\n >\r\n <Icon aria-hidden=\"true\" />\r\n </div>\r\n )}\r\n\r\n <input\r\n ref={ref}\r\n id={inputId}\r\n type={password && !showPassword ? \"password\" : \"text\"}\r\n className={`${classMap.textInput} ${classMap[theme]}`}\r\n placeholder={placeholder}\r\n aria-label={computedLabel}\r\n aria-describedby={descId}\r\n aria-invalid={isError || undefined}\r\n aria-required={required || undefined}\r\n aria-readonly={readOnly || undefined}\r\n aria-disabled={disabled || undefined}\r\n autoComplete={computedAutoComplete}\r\n readOnly={readOnly}\r\n disabled={disabled}\r\n required={required}\r\n data-testid={testId}\r\n {...restInput}\r\n />\r\n\r\n {password && (\r\n <IconButton\r\n type=\"button\"\r\n className={classMap.togglePassword}\r\n onClick={togglePasswordVisibility}\r\n theme=\"clear\"\r\n shadow=\"none\"\r\n aria-label={showPassword ? \"Hide password\" : \"Show password\"}\r\n aria-pressed={showPassword}\r\n data-testid={`${testId}-password-toggle`}\r\n icon={showPassword ? EyeIcon : EyeSlashIcon}\r\n />\r\n )}\r\n\r\n {ariaDescription && (\r\n <span\r\n id={descId}\r\n className=\"sr_only\"\r\n data-testid={`${testId}-input-description`}\r\n >\r\n {ariaDescription}\r\n </span>\r\n )}\r\n </div>\r\n );\r\n }\r\n);\r\n\r\nTextInputBase.displayName = \"TextInputBase\";\r\nexport default TextInputBase;\r\n","import { forwardRef } from \"react\";\r\nimport \"./TextInput.scss\";\r\nimport { TextInputProps } from \"../TextInput.types\";\r\nimport TextInputBase from \"../TextInputBase\";\r\nimport { IconButton } from \"@/index.core\";\r\n\r\nconst classes = {\r\n container: \"textInput_container\",\r\n textInput: \"textInput\",\r\n iconContainer: \"textInput_icon_container\",\r\n togglePassword: \"textInput_togglePassword\",\r\n\r\n primary: \"textInput_primary\",\r\n secondary: \"textInput_secondary\",\r\n tertiary: \"textInput_tertiary\",\r\n quaternary: \"textInput_quaternary\",\r\n\r\n success: \"textInput_success\",\r\n warning: \"textInput_warning\",\r\n error: \"textInput_error\",\r\n\r\n clear: \"textInput_clear\",\r\n\r\n xs: \"textInput_xs\",\r\n xl: \"textInput_xl\",\r\n small: \"textInput_small\",\r\n medium: \"textInput_medium\",\r\n large: \"textInput_large\",\r\n\r\n outline: \"textInput_outline\",\r\n disabled: \"textInput_disabled\",\r\n\r\n shadowNone: \"textInput_shadow-None\",\r\n shadowLight: \"textInput_shadow-Light\",\r\n shadowMedium: \"textInput_shadow-Medium\",\r\n shadowStrong: \"textInput_shadow-Strong\",\r\n shadowIntense: \"textInput_shadow-Intense\",\r\n\r\n roundNone: \"textInput_round-None\",\r\n roundSmall: \"textInput_round-Small\",\r\n roundMedium: \"textInput_round-Medium\",\r\n roundLarge: \"textInput_round-Large\",\r\n};\r\n\r\nconst TextInput = forwardRef<HTMLInputElement, TextInputProps>((props, ref) => {\r\n return (\r\n <TextInputBase\r\n {...props}\r\n IconButton={IconButton}\r\n ref={ref}\r\n classMap={classes}\r\n />\r\n );\r\n});\r\n\r\nTextInput.displayName = \"TextInput\";\r\nexport default TextInput;\r\n"],"names":["jsxs","jsx","forwardRef","getDefaultTheme","getDefaultRounding","getDefaultShadow","IconButton","useState","useId","useMemo","combineClassNames","capitalize"],"mappings":"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"}
|