@techzyapp/ui-library 1.0.27 → 1.0.28
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/AdminRoot-BTvmassR.js +55 -0
- package/dist/AdminRoot-BTvmassR.js.map +1 -0
- package/dist/AdminRoot-DM-cZCpN.cjs +2 -0
- package/dist/AdminRoot-DM-cZCpN.cjs.map +1 -0
- package/dist/{Alert-DeGgilkH.cjs → Alert-CFm6MU0u.cjs} +2 -2
- package/dist/{Alert-DeGgilkH.cjs.map → Alert-CFm6MU0u.cjs.map} +1 -1
- package/dist/{Alert-rNjfqj2Z.js → Alert-v-lelDih.js} +3 -3
- package/dist/{Alert-rNjfqj2Z.js.map → Alert-v-lelDih.js.map} +1 -1
- package/dist/{AuthLayout-zAS3jlYc.js → AuthLayout-DOFYw_z5.js} +3 -3
- package/dist/{AuthLayout-zAS3jlYc.js.map → AuthLayout-DOFYw_z5.js.map} +1 -1
- package/dist/{AuthLayout-ChILVWZ-.cjs → AuthLayout-QAtW2GAT.cjs} +2 -2
- package/dist/{AuthLayout-ChILVWZ-.cjs.map → AuthLayout-QAtW2GAT.cjs.map} +1 -1
- package/dist/Avatar-DXNPg23a.js +90 -0
- package/dist/Avatar-DXNPg23a.js.map +1 -0
- package/dist/Avatar-DrV_F7Ex.cjs +2 -0
- package/dist/Avatar-DrV_F7Ex.cjs.map +1 -0
- package/dist/{AvatarGroup-Bnf_RSc9.cjs → AvatarGroup-CHesdo-M.cjs} +2 -2
- package/dist/{AvatarGroup-Bnf_RSc9.cjs.map → AvatarGroup-CHesdo-M.cjs.map} +1 -1
- package/dist/{AvatarGroup-Difz4lLR.js → AvatarGroup-CwlYqDCI.js} +2 -2
- package/dist/{AvatarGroup-Difz4lLR.js.map → AvatarGroup-CwlYqDCI.js.map} +1 -1
- package/dist/{Breadcrumbs-CGcpMlxm.cjs → Breadcrumbs-3wHPNa0P.cjs} +2 -2
- package/dist/{Breadcrumbs-CGcpMlxm.cjs.map → Breadcrumbs-3wHPNa0P.cjs.map} +1 -1
- package/dist/{Breadcrumbs-BJHKk0Sn.js → Breadcrumbs-Cgd-u3aK.js} +3 -3
- package/dist/{Breadcrumbs-BJHKk0Sn.js.map → Breadcrumbs-Cgd-u3aK.js.map} +1 -1
- package/dist/{Button-obe6rono.js → Button-BLW9yV8W.js} +2 -2
- package/dist/{Button-obe6rono.js.map → Button-BLW9yV8W.js.map} +1 -1
- package/dist/{Button-BZ_o-akc.cjs → Button-KRGjJdMV.cjs} +2 -2
- package/dist/{Button-BZ_o-akc.cjs.map → Button-KRGjJdMV.cjs.map} +1 -1
- package/dist/{Calendar-lfpNwivC.cjs → Calendar-CoTCOOUu.cjs} +2 -2
- package/dist/{Calendar-lfpNwivC.cjs.map → Calendar-CoTCOOUu.cjs.map} +1 -1
- package/dist/{Calendar-SCih0NtS.js → Calendar-sLA-xa0B.js} +3 -3
- package/dist/{Calendar-SCih0NtS.js.map → Calendar-sLA-xa0B.js.map} +1 -1
- package/dist/Card-6fiSEC0z.js +121 -0
- package/dist/Card-6fiSEC0z.js.map +1 -0
- package/dist/Card-zTkvreQu.cjs +2 -0
- package/dist/Card-zTkvreQu.cjs.map +1 -0
- package/dist/Checkbox-CTp1xFW7.cjs +2 -0
- package/dist/{Checkbox-fzJCwe0j.cjs.map → Checkbox-CTp1xFW7.cjs.map} +1 -1
- package/dist/Checkbox-DyKBIgVT.js +98 -0
- package/dist/{Checkbox-ZYOSBYRt.js.map → Checkbox-DyKBIgVT.js.map} +1 -1
- package/dist/{Chip-CQ4cYVl_.js → Chip-C-5Z5wsC.js} +2 -2
- package/dist/{Chip-CQ4cYVl_.js.map → Chip-C-5Z5wsC.js.map} +1 -1
- package/dist/{Chip-CYz4vxHm.cjs → Chip-CqOqfafx.cjs} +2 -2
- package/dist/{Chip-CYz4vxHm.cjs.map → Chip-CqOqfafx.cjs.map} +1 -1
- package/dist/{ChoiceCardGroup-pIOKIUI0.cjs → ChoiceCardGroup-BSagRbPI.cjs} +2 -2
- package/dist/{ChoiceCardGroup-pIOKIUI0.cjs.map → ChoiceCardGroup-BSagRbPI.cjs.map} +1 -1
- package/dist/{ChoiceCardGroup-D3HL7dHj.js → ChoiceCardGroup-CEniY_HJ.js} +2 -2
- package/dist/{ChoiceCardGroup-D3HL7dHj.js.map → ChoiceCardGroup-CEniY_HJ.js.map} +1 -1
- package/dist/{CodeBlock-H75dbOvg.cjs → CodeBlock-DFiHDZXh.cjs} +2 -2
- package/dist/{CodeBlock-H75dbOvg.cjs.map → CodeBlock-DFiHDZXh.cjs.map} +1 -1
- package/dist/{CodeBlock-DddGTLu1.js → CodeBlock-rPaqO7yD.js} +3 -3
- package/dist/{CodeBlock-DddGTLu1.js.map → CodeBlock-rPaqO7yD.js.map} +1 -1
- package/dist/{ColorPicker-CKc8k-Dp.cjs → ColorPicker-Bqypsy5E.cjs} +2 -2
- package/dist/{ColorPicker-CKc8k-Dp.cjs.map → ColorPicker-Bqypsy5E.cjs.map} +1 -1
- package/dist/{ColorPicker-Cw-2X6u9.js → ColorPicker-DXDAXvlA.js} +5 -5
- package/dist/{ColorPicker-Cw-2X6u9.js.map → ColorPicker-DXDAXvlA.js.map} +1 -1
- package/dist/{ColorPickerPanel-PYaF5wPL.js → ColorPickerPanel-6lQC1URc.js} +2 -2
- package/dist/{ColorPickerPanel-PYaF5wPL.js.map → ColorPickerPanel-6lQC1URc.js.map} +1 -1
- package/dist/{ColorPickerPanel-DQ4CFnGa.cjs → ColorPickerPanel-C9ARc_uD.cjs} +2 -2
- package/dist/{ColorPickerPanel-DQ4CFnGa.cjs.map → ColorPickerPanel-C9ARc_uD.cjs.map} +1 -1
- package/dist/{ColorRamp-AkY9gq6Y.cjs → ColorRamp-B9OWxCOK.cjs} +2 -2
- package/dist/{ColorRamp-AkY9gq6Y.cjs.map → ColorRamp-B9OWxCOK.cjs.map} +1 -1
- package/dist/{ColorRamp-DnlJNKfy.js → ColorRamp-DQ8wkgvF.js} +3 -3
- package/dist/{ColorRamp-DnlJNKfy.js.map → ColorRamp-DQ8wkgvF.js.map} +1 -1
- package/dist/{ConfigProvider-BicoaBLj.cjs → ConfigProvider-BElY0HuV.cjs} +2 -2
- package/dist/{ConfigProvider-BicoaBLj.cjs.map → ConfigProvider-BElY0HuV.cjs.map} +1 -1
- package/dist/{ConfigProvider-DL9fylMo.js → ConfigProvider-B_RSn9bb.js} +2 -2
- package/dist/{ConfigProvider-DL9fylMo.js.map → ConfigProvider-B_RSn9bb.js.map} +1 -1
- package/dist/{CopyButton-BqFGC-Ca.cjs → CopyButton-B5aicGl3.cjs} +2 -2
- package/dist/{CopyButton-BqFGC-Ca.cjs.map → CopyButton-B5aicGl3.cjs.map} +1 -1
- package/dist/{CopyButton-D6-kcVCA.js → CopyButton-BplPYm8i.js} +3 -3
- package/dist/{CopyButton-D6-kcVCA.js.map → CopyButton-BplPYm8i.js.map} +1 -1
- package/dist/{DatePicker-BvGFP2AL.cjs → DatePicker-Cdl2JYBd.cjs} +2 -2
- package/dist/{DatePicker-BvGFP2AL.cjs.map → DatePicker-Cdl2JYBd.cjs.map} +1 -1
- package/dist/{DatePicker-DP7yASzq.js → DatePicker-U5TJ9FYM.js} +6 -6
- package/dist/{DatePicker-DP7yASzq.js.map → DatePicker-U5TJ9FYM.js.map} +1 -1
- package/dist/{DateTimePicker-DOzft9kg.cjs → DateTimePicker-DUFtddxJ.cjs} +2 -2
- package/dist/{DateTimePicker-DOzft9kg.cjs.map → DateTimePicker-DUFtddxJ.cjs.map} +1 -1
- package/dist/{DateTimePicker-CzRduOFz.js → DateTimePicker-laJsZYJX.js} +9 -9
- package/dist/{DateTimePicker-CzRduOFz.js.map → DateTimePicker-laJsZYJX.js.map} +1 -1
- package/dist/DescriptionList-BCvOX8fg.cjs +2 -0
- package/dist/DescriptionList-BCvOX8fg.cjs.map +1 -0
- package/dist/DescriptionList-Y9jF_4L0.js +176 -0
- package/dist/DescriptionList-Y9jF_4L0.js.map +1 -0
- package/dist/{Dropdown-FfkmluRu.js → Dropdown--1mNTVZJ.js} +2 -2
- package/dist/{Dropdown-FfkmluRu.js.map → Dropdown--1mNTVZJ.js.map} +1 -1
- package/dist/{Dropdown-Ui7h2TGd.cjs → Dropdown-DNZ9S_zQ.cjs} +2 -2
- package/dist/{Dropdown-Ui7h2TGd.cjs.map → Dropdown-DNZ9S_zQ.cjs.map} +1 -1
- package/dist/EmptyState-BtwuzX9Z.js +58 -0
- package/dist/EmptyState-BtwuzX9Z.js.map +1 -0
- package/dist/EmptyState-CO_NRZ6w.cjs +2 -0
- package/dist/EmptyState-CO_NRZ6w.cjs.map +1 -0
- package/dist/ErrorBoundary-DJ6R1M9k.js +126 -0
- package/dist/ErrorBoundary-DJ6R1M9k.js.map +1 -0
- package/dist/ErrorBoundary-unvC1vZQ.cjs +2 -0
- package/dist/ErrorBoundary-unvC1vZQ.cjs.map +1 -0
- package/dist/FileCard-C3a2yDhK.js +149 -0
- package/dist/FileCard-C3a2yDhK.js.map +1 -0
- package/dist/FileCard-DKjDQRzZ.cjs +2 -0
- package/dist/FileCard-DKjDQRzZ.cjs.map +1 -0
- package/dist/FileUploader-CuOHWkiG.js +707 -0
- package/dist/FileUploader-CuOHWkiG.js.map +1 -0
- package/dist/FileUploader-VIOg03pl.cjs +2 -0
- package/dist/FileUploader-VIOg03pl.cjs.map +1 -0
- package/dist/{Flag-BM_2VJ1v.cjs → Flag-aOQncoEZ.cjs} +2 -2
- package/dist/{Flag-BM_2VJ1v.cjs.map → Flag-aOQncoEZ.cjs.map} +1 -1
- package/dist/{Flag-CzCEpB8E.js → Flag-kpUfmrwC.js} +2 -2
- package/dist/{Flag-CzCEpB8E.js.map → Flag-kpUfmrwC.js.map} +1 -1
- package/dist/FloatingPanel-BIC4WrFa.cjs +2 -0
- package/dist/FloatingPanel-BIC4WrFa.cjs.map +1 -0
- package/dist/FloatingPanel-CeSOtE_D.js +135 -0
- package/dist/FloatingPanel-CeSOtE_D.js.map +1 -0
- package/dist/{FullscreenToggle-BL0nBrsL.cjs → FullscreenToggle-BSwxQEaG.cjs} +2 -2
- package/dist/{FullscreenToggle-BL0nBrsL.cjs.map → FullscreenToggle-BSwxQEaG.cjs.map} +1 -1
- package/dist/{FullscreenToggle-HZQOIa21.js → FullscreenToggle-CMifmPD3.js} +3 -3
- package/dist/{FullscreenToggle-HZQOIa21.js.map → FullscreenToggle-CMifmPD3.js.map} +1 -1
- package/dist/{IconButton-B87ipBK3.cjs → IconButton-A2B0bqC-.cjs} +2 -2
- package/dist/{IconButton-B87ipBK3.cjs.map → IconButton-A2B0bqC-.cjs.map} +1 -1
- package/dist/{IconButton-CBp8QuTO.js → IconButton-Dq17Fekm.js} +2 -2
- package/dist/{IconButton-CBp8QuTO.js.map → IconButton-Dq17Fekm.js.map} +1 -1
- package/dist/List-9lUjapQ5.cjs +2 -0
- package/dist/List-9lUjapQ5.cjs.map +1 -0
- package/dist/List-CZwNGxuP.js +107 -0
- package/dist/List-CZwNGxuP.js.map +1 -0
- package/dist/{Loader-fffFnQqS.js → Loader-CwyoKoWY.js} +2 -2
- package/dist/{Loader-fffFnQqS.js.map → Loader-CwyoKoWY.js.map} +1 -1
- package/dist/{Loader-0Imnbael.cjs → Loader-D9nteBXt.cjs} +2 -2
- package/dist/{Loader-0Imnbael.cjs.map → Loader-D9nteBXt.cjs.map} +1 -1
- package/dist/Modal-CQDcYS-Y.cjs +2 -0
- package/dist/Modal-CQDcYS-Y.cjs.map +1 -0
- package/dist/Modal-cz6JIsZn.js +196 -0
- package/dist/Modal-cz6JIsZn.js.map +1 -0
- package/dist/MultiSelect-BIwE6wb7.cjs +2 -0
- package/dist/MultiSelect-BIwE6wb7.cjs.map +1 -0
- package/dist/MultiSelect-C6l0LpIs.js +219 -0
- package/dist/MultiSelect-C6l0LpIs.js.map +1 -0
- package/dist/{MultilineTextField-Dz6Fg8RJ.cjs → MultilineTextField-B6EYAdik.cjs} +2 -2
- package/dist/{MultilineTextField-Dz6Fg8RJ.cjs.map → MultilineTextField-B6EYAdik.cjs.map} +1 -1
- package/dist/{MultilineTextField-CwNCJ9lZ.js → MultilineTextField-BgfBFeeF.js} +2 -2
- package/dist/{MultilineTextField-CwNCJ9lZ.js.map → MultilineTextField-BgfBFeeF.js.map} +1 -1
- package/dist/{NumberField-DYGVQdL5.js → NumberField-BpUTV_Qn.js} +4 -4
- package/dist/{NumberField-DYGVQdL5.js.map → NumberField-BpUTV_Qn.js.map} +1 -1
- package/dist/{NumberField-C_HZXBuw.cjs → NumberField-IyhO4OpJ.cjs} +2 -2
- package/dist/{NumberField-C_HZXBuw.cjs.map → NumberField-IyhO4OpJ.cjs.map} +1 -1
- package/dist/{OtpField-CpQr_ZqL.js → OtpField-BoLxbGtY.js} +3 -3
- package/dist/{OtpField-CpQr_ZqL.js.map → OtpField-BoLxbGtY.js.map} +1 -1
- package/dist/{OtpField-DKbUP0F6.cjs → OtpField-HMrxkdiy.cjs} +2 -2
- package/dist/{OtpField-DKbUP0F6.cjs.map → OtpField-HMrxkdiy.cjs.map} +1 -1
- package/dist/{PageLayout-CuWXukUv.cjs → PageLayout-DtWG-6dn.cjs} +2 -2
- package/dist/{PageLayout-CuWXukUv.cjs.map → PageLayout-DtWG-6dn.cjs.map} +1 -1
- package/dist/{PageLayout-CCcPCfJF.js → PageLayout-G8F1WgC-.js} +2 -2
- package/dist/{PageLayout-CCcPCfJF.js.map → PageLayout-G8F1WgC-.js.map} +1 -1
- package/dist/{PageNotFound-LWH2tU5E.js → PageNotFound-CeKIMZ55.js} +5 -5
- package/dist/PageNotFound-CeKIMZ55.js.map +1 -0
- package/dist/{PageNotFound-JKOnpyHD.cjs → PageNotFound-DG8xXPL3.cjs} +2 -2
- package/dist/PageNotFound-DG8xXPL3.cjs.map +1 -0
- package/dist/{Pagination-M7njqOUt.cjs → Pagination-Br8P3KwE.cjs} +2 -2
- package/dist/{Pagination-M7njqOUt.cjs.map → Pagination-Br8P3KwE.cjs.map} +1 -1
- package/dist/{Pagination-BwtbmITJ.js → Pagination-CE1uKrR4.js} +2 -2
- package/dist/{Pagination-BwtbmITJ.js.map → Pagination-CE1uKrR4.js.map} +1 -1
- package/dist/{PaletteField-CUyzLrny.js → PaletteField-BBPbkDcp.js} +3 -3
- package/dist/{PaletteField-CUyzLrny.js.map → PaletteField-BBPbkDcp.js.map} +1 -1
- package/dist/{PaletteField-iBIvOvNi.cjs → PaletteField-DwvSn6V6.cjs} +2 -2
- package/dist/{PaletteField-iBIvOvNi.cjs.map → PaletteField-DwvSn6V6.cjs.map} +1 -1
- package/dist/PhoneField-B-L0xAtD.js +372 -0
- package/dist/PhoneField-B-L0xAtD.js.map +1 -0
- package/dist/PhoneField-BclMbl7L.cjs +2 -0
- package/dist/PhoneField-BclMbl7L.cjs.map +1 -0
- package/dist/Popconfirm-BgpvCBy1.js +113 -0
- package/dist/Popconfirm-BgpvCBy1.js.map +1 -0
- package/dist/Popconfirm-DD8F8SXn.cjs +2 -0
- package/dist/Popconfirm-DD8F8SXn.cjs.map +1 -0
- package/dist/{Popover-CgIU4Rhg.js → Popover-B82Id9Ut.js} +2 -2
- package/dist/{Popover-CgIU4Rhg.js.map → Popover-B82Id9Ut.js.map} +1 -1
- package/dist/{Popover-CBI1icIM.cjs → Popover-DAT6DcM9.cjs} +2 -2
- package/dist/{Popover-CBI1icIM.cjs.map → Popover-DAT6DcM9.cjs.map} +1 -1
- package/dist/Progress-L5koRRJp.js +119 -0
- package/dist/Progress-L5koRRJp.js.map +1 -0
- package/dist/Progress-_aZ8XOJr.cjs +2 -0
- package/dist/Progress-_aZ8XOJr.cjs.map +1 -0
- package/dist/QrCode-BQ1eUiAJ.cjs +2 -0
- package/dist/QrCode-BQ1eUiAJ.cjs.map +1 -0
- package/dist/QrCode-osD23Vkt.js +80 -0
- package/dist/QrCode-osD23Vkt.js.map +1 -0
- package/dist/QueryError-BMH8X69O.cjs +2 -0
- package/dist/QueryError-BMH8X69O.cjs.map +1 -0
- package/dist/QueryError-tBuIQRgv.js +19 -0
- package/dist/QueryError-tBuIQRgv.js.map +1 -0
- package/dist/RadioGroup-BcFBdFhh.cjs +2 -0
- package/dist/{RadioGroup-Byy-eSY3.cjs.map → RadioGroup-BcFBdFhh.cjs.map} +1 -1
- package/dist/RadioGroup-dVx_hMCY.js +141 -0
- package/dist/{RadioGroup-D_1_Heta.js.map → RadioGroup-dVx_hMCY.js.map} +1 -1
- package/dist/RemoveDialog-C9_UzFBf.js +109 -0
- package/dist/RemoveDialog-C9_UzFBf.js.map +1 -0
- package/dist/RemoveDialog-DBKYnTYU.cjs +2 -0
- package/dist/RemoveDialog-DBKYnTYU.cjs.map +1 -0
- package/dist/RichTextEditor-DTz7Qcn_.cjs +2 -0
- package/dist/{RichTextEditor-mpMCG8jX.cjs.map → RichTextEditor-DTz7Qcn_.cjs.map} +1 -1
- package/dist/{RichTextEditor-CG6LoNiw.js → RichTextEditor-fXcbUjTl.js} +11 -11
- package/dist/{RichTextEditor-CG6LoNiw.js.map → RichTextEditor-fXcbUjTl.js.map} +1 -1
- package/dist/RootLayout-DG2dXhXn.cjs +2 -0
- package/dist/{RootLayout-CPxDqfGb.cjs.map → RootLayout-DG2dXhXn.cjs.map} +1 -1
- package/dist/{RootLayout-D3K-pAMO.js → RootLayout-p8ArA6wA.js} +19 -19
- package/dist/{RootLayout-D3K-pAMO.js.map → RootLayout-p8ArA6wA.js.map} +1 -1
- package/dist/Select-BAR_aVSz.js +199 -0
- package/dist/Select-BAR_aVSz.js.map +1 -0
- package/dist/Select-BuVfUiw-.cjs +2 -0
- package/dist/Select-BuVfUiw-.cjs.map +1 -0
- package/dist/{Sidebar-CsPnv4mu.js → Sidebar-CsWcjSTx.js} +173 -163
- package/dist/Sidebar-CsWcjSTx.js.map +1 -0
- package/dist/Sidebar-NI5HGGYF.cjs +2 -0
- package/dist/Sidebar-NI5HGGYF.cjs.map +1 -0
- package/dist/Skeleton-DK0lAjS9.cjs +2 -0
- package/dist/Skeleton-DK0lAjS9.cjs.map +1 -0
- package/dist/Skeleton-_-uGax2j.js +56 -0
- package/dist/Skeleton-_-uGax2j.js.map +1 -0
- package/dist/{Slider-D3dbEOQY.cjs → Slider-Cu1FhxR2.cjs} +2 -2
- package/dist/{Slider-D3dbEOQY.cjs.map → Slider-Cu1FhxR2.cjs.map} +1 -1
- package/dist/{Slider-D7SvowmM.js → Slider-DoQJWgGU.js} +2 -2
- package/dist/{Slider-D7SvowmM.js.map → Slider-DoQJWgGU.js.map} +1 -1
- package/dist/{SpeedDial-CZ22T8GL.cjs → SpeedDial-C_rZkHmF.cjs} +2 -2
- package/dist/{SpeedDial-CZ22T8GL.cjs.map → SpeedDial-C_rZkHmF.cjs.map} +1 -1
- package/dist/{SpeedDial-B8XMUATN.js → SpeedDial-DF-ILheU.js} +2 -2
- package/dist/{SpeedDial-B8XMUATN.js.map → SpeedDial-DF-ILheU.js.map} +1 -1
- package/dist/{Stepper-B_e_PGZE.js → Stepper-B39Ax_w6.js} +2 -2
- package/dist/{Stepper-B_e_PGZE.js.map → Stepper-B39Ax_w6.js.map} +1 -1
- package/dist/{Stepper-BjkkWawQ.cjs → Stepper-CT7n113R.cjs} +2 -2
- package/dist/{Stepper-BjkkWawQ.cjs.map → Stepper-CT7n113R.cjs.map} +1 -1
- package/dist/{SwatchPicker-C8amdDnA.cjs → SwatchPicker-BWXqgsEy.cjs} +2 -2
- package/dist/{SwatchPicker-C8amdDnA.cjs.map → SwatchPicker-BWXqgsEy.cjs.map} +1 -1
- package/dist/{SwatchPicker-DXEE9xqY.js → SwatchPicker-Bpxk0IOe.js} +2 -2
- package/dist/{SwatchPicker-DXEE9xqY.js.map → SwatchPicker-Bpxk0IOe.js.map} +1 -1
- package/dist/Switch-DSs2Y0IR.cjs +2 -0
- package/dist/{Switch-CodRZD3y.cjs.map → Switch-DSs2Y0IR.cjs.map} +1 -1
- package/dist/Switch-Jh2Ch8GO.js +85 -0
- package/dist/{Switch-ESrhkpJC.js.map → Switch-Jh2Ch8GO.js.map} +1 -1
- package/dist/Table-CH_oiEP3.js +1170 -0
- package/dist/Table-CH_oiEP3.js.map +1 -0
- package/dist/Table-DD_uysnY.cjs +2 -0
- package/dist/Table-DD_uysnY.cjs.map +1 -0
- package/dist/{Tabs-v1GEGUDQ.js → Tabs-By86Cmpw.js} +2 -2
- package/dist/{Tabs-v1GEGUDQ.js.map → Tabs-By86Cmpw.js.map} +1 -1
- package/dist/{Tabs-CZDX7BN-.cjs → Tabs-C1N9FgAq.cjs} +2 -2
- package/dist/{Tabs-CZDX7BN-.cjs.map → Tabs-C1N9FgAq.cjs.map} +1 -1
- package/dist/{TagsField-B389eDp4.js → TagsField-BiOyAadf.js} +5 -5
- package/dist/{TagsField-B389eDp4.js.map → TagsField-BiOyAadf.js.map} +1 -1
- package/dist/{TagsField-OfrpyHZO.cjs → TagsField-RX-x45-j.cjs} +2 -2
- package/dist/{TagsField-OfrpyHZO.cjs.map → TagsField-RX-x45-j.cjs.map} +1 -1
- package/dist/{TextField-B785pRgK.cjs → TextField-CdbanZuk.cjs} +2 -2
- package/dist/{TextField-B785pRgK.cjs.map → TextField-CdbanZuk.cjs.map} +1 -1
- package/dist/{TextField-7MobCad5.js → TextField-CkronCRC.js} +4 -4
- package/dist/{TextField-7MobCad5.js.map → TextField-CkronCRC.js.map} +1 -1
- package/dist/{ThemeToggle-BGdvqXad.js → ThemeToggle-BYUEH6be.js} +3 -3
- package/dist/{ThemeToggle-BGdvqXad.js.map → ThemeToggle-BYUEH6be.js.map} +1 -1
- package/dist/{ThemeToggle-BkmZ7s_u.cjs → ThemeToggle-C4QhDd76.cjs} +2 -2
- package/dist/{ThemeToggle-BkmZ7s_u.cjs.map → ThemeToggle-C4QhDd76.cjs.map} +1 -1
- package/dist/{TimeColumns-B-xm1DGM.cjs → TimeColumns-Cl0_IRf0.cjs} +2 -2
- package/dist/{TimeColumns-B-xm1DGM.cjs.map → TimeColumns-Cl0_IRf0.cjs.map} +1 -1
- package/dist/{TimeColumns-BRlDKx_i.js → TimeColumns-yzjScNU8.js} +2 -2
- package/dist/{TimeColumns-BRlDKx_i.js.map → TimeColumns-yzjScNU8.js.map} +1 -1
- package/dist/{TimePicker-DvEIdE4v.cjs → TimePicker-CJGVGETl.cjs} +2 -2
- package/dist/{TimePicker-DvEIdE4v.cjs.map → TimePicker-CJGVGETl.cjs.map} +1 -1
- package/dist/{TimePicker-B_3Ubip0.js → TimePicker-CoIdMv1S.js} +7 -7
- package/dist/{TimePicker-B_3Ubip0.js.map → TimePicker-CoIdMv1S.js.map} +1 -1
- package/dist/{Toaster-DuzcRbio.js → Toaster-Dhz2mYq_.js} +2 -2
- package/dist/{Toaster-DuzcRbio.js.map → Toaster-Dhz2mYq_.js.map} +1 -1
- package/dist/{Toaster-BIFRuqbC.cjs → Toaster-lv5cJhib.cjs} +2 -2
- package/dist/{Toaster-BIFRuqbC.cjs.map → Toaster-lv5cJhib.cjs.map} +1 -1
- package/dist/{TranslatedFields-D_a0NVKI.cjs → TranslatedFields-BCJ86Tqp.cjs} +2 -2
- package/dist/{TranslatedFields-D_a0NVKI.cjs.map → TranslatedFields-BCJ86Tqp.cjs.map} +1 -1
- package/dist/{TranslatedFields-HmP0Mg5t.js → TranslatedFields-BtNUAyrY.js} +5 -5
- package/dist/{TranslatedFields-HmP0Mg5t.js.map → TranslatedFields-BtNUAyrY.js.map} +1 -1
- package/dist/Typography-B6ASPrzT.cjs +2 -0
- package/dist/Typography-B6ASPrzT.cjs.map +1 -0
- package/dist/Typography-CJv5AnRP.js +70 -0
- package/dist/Typography-CJv5AnRP.js.map +1 -0
- package/dist/UserCard-B-eNyZuT.js +78 -0
- package/dist/UserCard-B-eNyZuT.js.map +1 -0
- package/dist/UserCard-CiQUrZjb.cjs +2 -0
- package/dist/UserCard-CiQUrZjb.cjs.map +1 -0
- package/dist/app/AdminRoot.d.cts +10 -3
- package/dist/app/AdminRoot.d.ts +10 -3
- package/dist/components/Alert/index.cjs +1 -1
- package/dist/components/Alert/index.js +1 -1
- package/dist/components/AuthLayout/index.cjs +1 -1
- package/dist/components/AuthLayout/index.js +1 -1
- package/dist/components/Avatar/Avatar.d.cts +7 -1
- package/dist/components/Avatar/Avatar.d.ts +7 -1
- package/dist/components/Avatar/index.cjs +1 -1
- package/dist/components/Avatar/index.js +2 -2
- package/dist/components/Breadcrumbs/index.cjs +1 -1
- package/dist/components/Breadcrumbs/index.js +1 -1
- package/dist/components/Button/index.cjs +1 -1
- package/dist/components/Button/index.js +1 -1
- package/dist/components/Card/Card.d.cts +2 -0
- package/dist/components/Card/Card.d.ts +2 -0
- package/dist/components/Card/index.cjs +1 -1
- package/dist/components/Card/index.js +1 -1
- package/dist/components/Checkbox/index.cjs +1 -1
- package/dist/components/Checkbox/index.js +1 -1
- package/dist/components/Chip/index.cjs +1 -1
- package/dist/components/Chip/index.js +1 -1
- package/dist/components/ChoiceCard/index.cjs +1 -1
- package/dist/components/ChoiceCard/index.js +1 -1
- package/dist/components/CodeBlock/index.cjs +1 -1
- package/dist/components/CodeBlock/index.js +1 -1
- package/dist/components/ColorPicker/index.cjs +1 -1
- package/dist/components/ColorPicker/index.js +1 -1
- package/dist/components/ColorRamp/index.cjs +1 -1
- package/dist/components/ColorRamp/index.js +1 -1
- package/dist/components/CopyButton/index.cjs +1 -1
- package/dist/components/CopyButton/index.js +1 -1
- package/dist/components/DatePicker/index.cjs +1 -1
- package/dist/components/DatePicker/index.js +1 -1
- package/dist/components/DateTimePicker/index.cjs +1 -1
- package/dist/components/DateTimePicker/index.js +1 -1
- package/dist/components/DescriptionList/DescriptionList.d.cts +76 -0
- package/dist/components/DescriptionList/DescriptionList.d.ts +76 -0
- package/dist/components/DescriptionList/index.cjs +2 -0
- package/dist/components/DescriptionList/index.cjs.map +1 -0
- package/dist/components/DescriptionList/index.d.cts +2 -0
- package/dist/components/DescriptionList/index.d.ts +2 -0
- package/dist/components/DescriptionList/index.js +6 -0
- package/dist/components/DescriptionList/index.js.map +1 -0
- package/dist/components/Dropdown/index.cjs +1 -1
- package/dist/components/Dropdown/index.js +1 -1
- package/dist/components/EmptyState/EmptyState.d.cts +4 -1
- package/dist/components/EmptyState/EmptyState.d.ts +4 -1
- package/dist/components/EmptyState/index.cjs +1 -1
- package/dist/components/EmptyState/index.js +1 -1
- package/dist/components/ErrorState/ErrorBoundary.d.cts +35 -0
- package/dist/components/ErrorState/ErrorBoundary.d.ts +35 -0
- package/dist/components/ErrorState/ErrorState.d.cts +36 -0
- package/dist/components/ErrorState/ErrorState.d.ts +36 -0
- package/dist/components/ErrorState/QueryError.d.cts +18 -0
- package/dist/components/ErrorState/QueryError.d.ts +18 -0
- package/dist/components/ErrorState/errorMessage.d.cts +14 -0
- package/dist/components/ErrorState/errorMessage.d.ts +14 -0
- package/dist/components/ErrorState/index.cjs +2 -0
- package/dist/components/ErrorState/index.cjs.map +1 -0
- package/dist/components/ErrorState/index.d.cts +7 -0
- package/dist/components/ErrorState/index.d.ts +7 -0
- package/dist/components/ErrorState/index.js +11 -0
- package/dist/components/ErrorState/index.js.map +1 -0
- package/dist/components/FileCard/index.cjs +1 -1
- package/dist/components/FileCard/index.js +1 -1
- package/dist/components/FileUploader/index.cjs +1 -1
- package/dist/components/FileUploader/index.js +1 -1
- package/dist/components/Flag/index.cjs +1 -1
- package/dist/components/Flag/index.js +1 -1
- package/dist/components/FloatingPanel/FloatingPanel.d.cts +4 -0
- package/dist/components/FloatingPanel/FloatingPanel.d.ts +4 -0
- package/dist/components/FullscreenToggle/index.cjs +1 -1
- package/dist/components/FullscreenToggle/index.js +1 -1
- package/dist/components/IconButton/index.cjs +1 -1
- package/dist/components/IconButton/index.js +1 -1
- package/dist/components/List/List.d.cts +13 -3
- package/dist/components/List/List.d.ts +13 -3
- package/dist/components/List/ListItem.d.cts +5 -0
- package/dist/components/List/ListItem.d.ts +5 -0
- package/dist/components/List/index.cjs +1 -1
- package/dist/components/List/index.js +4 -5
- package/dist/components/List/index.js.map +1 -1
- package/dist/components/List/listContext.d.cts +9 -3
- package/dist/components/List/listContext.d.ts +9 -3
- package/dist/components/Loader/index.cjs +1 -1
- package/dist/components/Loader/index.js +1 -1
- package/dist/components/Modal/Modal.d.cts +2 -0
- package/dist/components/Modal/Modal.d.ts +2 -0
- package/dist/components/Modal/index.cjs +1 -1
- package/dist/components/Modal/index.js +1 -1
- package/dist/components/MultiSelect/index.cjs +1 -1
- package/dist/components/MultiSelect/index.js +1 -1
- package/dist/components/MultilineTextField/index.cjs +1 -1
- package/dist/components/MultilineTextField/index.js +1 -1
- package/dist/components/NumberField/index.cjs +1 -1
- package/dist/components/NumberField/index.js +1 -1
- package/dist/components/OptionMenu/OptionMenu.d.cts +40 -0
- package/dist/components/OptionMenu/OptionMenu.d.ts +40 -0
- package/dist/components/OptionMenu/useOptionMenu.d.cts +81 -0
- package/dist/components/OptionMenu/useOptionMenu.d.ts +81 -0
- package/dist/components/OtpField/index.cjs +1 -1
- package/dist/components/OtpField/index.js +1 -1
- package/dist/components/PageLayout/index.cjs +1 -1
- package/dist/components/PageLayout/index.js +1 -1
- package/dist/components/PageNotFound/PageNotFound.d.cts +1 -1
- package/dist/components/PageNotFound/PageNotFound.d.ts +1 -1
- package/dist/components/PageNotFound/index.cjs +1 -1
- package/dist/components/PageNotFound/index.js +1 -1
- package/dist/components/Pagination/index.cjs +1 -1
- package/dist/components/Pagination/index.js +1 -1
- package/dist/components/PaletteField/index.cjs +1 -1
- package/dist/components/PaletteField/index.js +1 -1
- package/dist/components/PhoneField/PhoneField.d.cts +54 -0
- package/dist/components/PhoneField/PhoneField.d.ts +54 -0
- package/dist/components/PhoneField/index.cjs +2 -0
- package/dist/components/PhoneField/index.cjs.map +1 -0
- package/dist/components/PhoneField/index.d.cts +4 -0
- package/dist/components/PhoneField/index.d.ts +4 -0
- package/dist/components/PhoneField/index.js +7 -0
- package/dist/components/PhoneField/index.js.map +1 -0
- package/dist/components/PhoneField/phone.d.cts +50 -0
- package/dist/components/PhoneField/phone.d.ts +50 -0
- package/dist/components/Popconfirm/Popconfirm.d.cts +53 -0
- package/dist/components/Popconfirm/Popconfirm.d.ts +53 -0
- package/dist/components/Popconfirm/index.cjs +2 -0
- package/dist/components/Popconfirm/index.cjs.map +1 -0
- package/dist/components/Popconfirm/index.d.cts +2 -0
- package/dist/components/Popconfirm/index.d.ts +2 -0
- package/dist/components/Popconfirm/index.js +6 -0
- package/dist/components/Popconfirm/index.js.map +1 -0
- package/dist/components/Popover/index.cjs +1 -1
- package/dist/components/Popover/index.js +1 -1
- package/dist/components/Progress/Progress.d.cts +50 -0
- package/dist/components/Progress/Progress.d.ts +50 -0
- package/dist/components/Progress/index.cjs +2 -0
- package/dist/components/Progress/index.cjs.map +1 -0
- package/dist/components/Progress/index.d.cts +2 -0
- package/dist/components/Progress/index.d.ts +2 -0
- package/dist/components/Progress/index.js +6 -0
- package/dist/components/Progress/index.js.map +1 -0
- package/dist/components/QrCode/QrCode.d.cts +3 -0
- package/dist/components/QrCode/QrCode.d.ts +3 -0
- package/dist/components/QrCode/index.cjs +1 -1
- package/dist/components/QrCode/index.js +1 -1
- package/dist/components/Radio/index.cjs +1 -1
- package/dist/components/Radio/index.js +1 -1
- package/dist/components/RemoveDialog/RemoveDialog.d.cts +8 -1
- package/dist/components/RemoveDialog/RemoveDialog.d.ts +8 -1
- package/dist/components/RemoveDialog/index.cjs +1 -1
- package/dist/components/RemoveDialog/index.js +1 -1
- package/dist/components/RichTextEditor/index.cjs +1 -1
- package/dist/components/RichTextEditor/index.js +1 -1
- package/dist/components/RootLayout/index.cjs +1 -1
- package/dist/components/RootLayout/index.js +1 -1
- package/dist/components/Select/Select.d.cts +2 -12
- package/dist/components/Select/Select.d.ts +2 -12
- package/dist/components/Select/index.cjs +1 -1
- package/dist/components/Select/index.js +1 -1
- package/dist/components/Sidebar/index.cjs +1 -1
- package/dist/components/Sidebar/index.js +1 -1
- package/dist/components/Skeleton/Skeleton.d.cts +31 -0
- package/dist/components/Skeleton/Skeleton.d.ts +31 -0
- package/dist/components/Skeleton/index.cjs +2 -0
- package/dist/components/Skeleton/index.cjs.map +1 -0
- package/dist/components/Skeleton/index.d.cts +2 -0
- package/dist/components/Skeleton/index.d.ts +2 -0
- package/dist/components/Skeleton/index.js +6 -0
- package/dist/components/Skeleton/index.js.map +1 -0
- package/dist/components/Slider/index.cjs +1 -1
- package/dist/components/Slider/index.js +1 -1
- package/dist/components/SpeedDial/index.cjs +1 -1
- package/dist/components/SpeedDial/index.js +1 -1
- package/dist/components/Stepper/index.cjs +1 -1
- package/dist/components/Stepper/index.js +1 -1
- package/dist/components/SwatchPicker/index.cjs +1 -1
- package/dist/components/SwatchPicker/index.js +1 -1
- package/dist/components/Switch/index.cjs +1 -1
- package/dist/components/Switch/index.js +1 -1
- package/dist/components/Table/Table.d.cts +7 -1
- package/dist/components/Table/Table.d.ts +7 -1
- package/dist/components/Table/index.cjs +1 -1
- package/dist/components/Table/index.js +1 -1
- package/dist/components/Tabs/index.cjs +1 -1
- package/dist/components/Tabs/index.js +1 -1
- package/dist/components/TagsField/index.cjs +1 -1
- package/dist/components/TagsField/index.js +1 -1
- package/dist/components/TextField/index.cjs +1 -1
- package/dist/components/TextField/index.js +1 -1
- package/dist/components/ThemeToggle/index.cjs +1 -1
- package/dist/components/ThemeToggle/index.js +1 -1
- package/dist/components/TimePicker/index.cjs +1 -1
- package/dist/components/TimePicker/index.js +1 -1
- package/dist/components/Toast/index.cjs +1 -1
- package/dist/components/Toast/index.js +1 -1
- package/dist/components/TranslatedFields/index.cjs +1 -1
- package/dist/components/TranslatedFields/index.js +1 -1
- package/dist/components/Typography/Typography.d.cts +10 -3
- package/dist/components/Typography/Typography.d.ts +10 -3
- package/dist/components/Typography/index.cjs +1 -1
- package/dist/components/Typography/index.js +1 -1
- package/dist/components/UserCard/UserCard.d.cts +3 -1
- package/dist/components/UserCard/UserCard.d.ts +3 -1
- package/dist/components/UserCard/index.cjs +1 -1
- package/dist/components/UserCard/index.js +1 -1
- package/dist/components/index.d.cts +6 -0
- package/dist/components/index.d.ts +6 -0
- package/dist/entries/app.cjs +1 -1
- package/dist/entries/app.js +1 -1
- package/dist/entries/components.cjs +1 -1
- package/dist/entries/components.js +169 -152
- package/dist/entries/components.js.map +1 -1
- package/dist/entries/i18n.cjs +1 -1
- package/dist/entries/i18n.js +2 -2
- package/dist/entries/theme.cjs +1 -1
- package/dist/entries/theme.js +1 -1
- package/dist/hooks/useOptionalPeer.d.cts +21 -0
- package/dist/hooks/useOptionalPeer.d.ts +21 -0
- package/dist/i18n/messages.d.cts +13 -0
- package/dist/i18n/messages.d.ts +13 -0
- package/dist/index.cjs +1 -1
- package/dist/index.css +1 -1
- package/dist/index.js +183 -166
- package/dist/index.js.map +1 -1
- package/dist/{messages-B06Kl5rI.js → messages-BF2ft7yD.js} +120 -29
- package/dist/messages-BF2ft7yD.js.map +1 -0
- package/dist/messages-ihnE1jVG.cjs +36 -0
- package/dist/messages-ihnE1jVG.cjs.map +1 -0
- package/dist/useOptionMenu-C0xSaZ4t.cjs +2 -0
- package/dist/useOptionMenu-C0xSaZ4t.cjs.map +1 -0
- package/dist/useOptionMenu-Cq_eHdab.js +286 -0
- package/dist/useOptionMenu-Cq_eHdab.js.map +1 -0
- package/dist/useOptionalPeer-49f3XcO5.js +28 -0
- package/dist/useOptionalPeer-49f3XcO5.js.map +1 -0
- package/dist/useOptionalPeer-9Fkx5Leb.cjs +2 -0
- package/dist/useOptionalPeer-9Fkx5Leb.cjs.map +1 -0
- package/package.json +6 -1
- package/dist/AdminRoot-C4OyuOIr.js +0 -50
- package/dist/AdminRoot-C4OyuOIr.js.map +0 -1
- package/dist/AdminRoot-bHywlbML.cjs +0 -2
- package/dist/AdminRoot-bHywlbML.cjs.map +0 -1
- package/dist/Avatar-BGPGxry2.js +0 -60
- package/dist/Avatar-BGPGxry2.js.map +0 -1
- package/dist/Avatar-D_YivyqV.cjs +0 -2
- package/dist/Avatar-D_YivyqV.cjs.map +0 -1
- package/dist/Card-BRJV2JZE.js +0 -118
- package/dist/Card-BRJV2JZE.js.map +0 -1
- package/dist/Card-KvvNlchc.cjs +0 -2
- package/dist/Card-KvvNlchc.cjs.map +0 -1
- package/dist/Checkbox-ZYOSBYRt.js +0 -98
- package/dist/Checkbox-fzJCwe0j.cjs +0 -2
- package/dist/EmptyState-A5nPGnHA.js +0 -38
- package/dist/EmptyState-A5nPGnHA.js.map +0 -1
- package/dist/EmptyState-CTTOy9aY.cjs +0 -2
- package/dist/EmptyState-CTTOy9aY.cjs.map +0 -1
- package/dist/FileCard-BmPEEcue.js +0 -148
- package/dist/FileCard-BmPEEcue.js.map +0 -1
- package/dist/FileCard-C4BkGMtK.cjs +0 -2
- package/dist/FileCard-C4BkGMtK.cjs.map +0 -1
- package/dist/FileUploader-D_F64mob.cjs +0 -2
- package/dist/FileUploader-D_F64mob.cjs.map +0 -1
- package/dist/FileUploader-Dv_3bjZA.js +0 -684
- package/dist/FileUploader-Dv_3bjZA.js.map +0 -1
- package/dist/FloatingPanel-BG9Uag__.js +0 -131
- package/dist/FloatingPanel-BG9Uag__.js.map +0 -1
- package/dist/FloatingPanel-U6sGYiSK.cjs +0 -2
- package/dist/FloatingPanel-U6sGYiSK.cjs.map +0 -1
- package/dist/List-ChXO0Hz-.cjs +0 -2
- package/dist/List-ChXO0Hz-.cjs.map +0 -1
- package/dist/List-LqbfF6gU.js +0 -26
- package/dist/List-LqbfF6gU.js.map +0 -1
- package/dist/ListItem-Cn15lJBr.js +0 -74
- package/dist/ListItem-Cn15lJBr.js.map +0 -1
- package/dist/ListItem-yXXjtepZ.cjs +0 -2
- package/dist/ListItem-yXXjtepZ.cjs.map +0 -1
- package/dist/Modal--e2qGisF.cjs +0 -2
- package/dist/Modal--e2qGisF.cjs.map +0 -1
- package/dist/Modal-DJljaPqV.js +0 -195
- package/dist/Modal-DJljaPqV.js.map +0 -1
- package/dist/MultiSelect-CvecZeMU.cjs +0 -2
- package/dist/MultiSelect-CvecZeMU.cjs.map +0 -1
- package/dist/MultiSelect-DLoS04lZ.js +0 -350
- package/dist/MultiSelect-DLoS04lZ.js.map +0 -1
- package/dist/PageNotFound-JKOnpyHD.cjs.map +0 -1
- package/dist/PageNotFound-LWH2tU5E.js.map +0 -1
- package/dist/QrCode-Bcj9_Emc.js +0 -70
- package/dist/QrCode-Bcj9_Emc.js.map +0 -1
- package/dist/QrCode-DfDfGhG-.cjs +0 -2
- package/dist/QrCode-DfDfGhG-.cjs.map +0 -1
- package/dist/RadioGroup-Byy-eSY3.cjs +0 -2
- package/dist/RadioGroup-D_1_Heta.js +0 -141
- package/dist/RemoveDialog-DUrD2Em8.js +0 -47
- package/dist/RemoveDialog-DUrD2Em8.js.map +0 -1
- package/dist/RemoveDialog-FZWYAxRy.cjs +0 -2
- package/dist/RemoveDialog-FZWYAxRy.cjs.map +0 -1
- package/dist/RichTextEditor-mpMCG8jX.cjs +0 -2
- package/dist/RootLayout-CPxDqfGb.cjs +0 -2
- package/dist/Select-BB9oOoWZ.js +0 -338
- package/dist/Select-BB9oOoWZ.js.map +0 -1
- package/dist/Select-iP2p5jad.cjs +0 -2
- package/dist/Select-iP2p5jad.cjs.map +0 -1
- package/dist/Sidebar-Boi7UgHV.cjs +0 -2
- package/dist/Sidebar-Boi7UgHV.cjs.map +0 -1
- package/dist/Sidebar-CsPnv4mu.js.map +0 -1
- package/dist/Switch-CodRZD3y.cjs +0 -2
- package/dist/Switch-ESrhkpJC.js +0 -85
- package/dist/Table-Cr1zUtNQ.cjs +0 -2
- package/dist/Table-Cr1zUtNQ.cjs.map +0 -1
- package/dist/Table-DdoUcZoN.js +0 -1099
- package/dist/Table-DdoUcZoN.js.map +0 -1
- package/dist/Typography-BFatE1_A.cjs +0 -2
- package/dist/Typography-BFatE1_A.cjs.map +0 -1
- package/dist/Typography-Cta6Rg4L.js +0 -51
- package/dist/Typography-Cta6Rg4L.js.map +0 -1
- package/dist/UserCard-B1phOVKj.js +0 -74
- package/dist/UserCard-B1phOVKj.js.map +0 -1
- package/dist/UserCard-BvOcDm5W.cjs +0 -2
- package/dist/UserCard-BvOcDm5W.cjs.map +0 -1
- package/dist/messages-B06Kl5rI.js.map +0 -1
- package/dist/messages-CJqxqL3t.cjs +0 -36
- package/dist/messages-CJqxqL3t.cjs.map +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const t=require("react/jsx-runtime"),u=require("react"),N=require("clsx"),U=require("./formContext-bTWrqdEV.cjs"),G=require("./Icon-BVULqOJD.cjs"),R=require("./Typography-
|
|
2
|
-
//# sourceMappingURL=SwatchPicker-
|
|
1
|
+
"use strict";const t=require("react/jsx-runtime"),u=require("react"),N=require("clsx"),U=require("./formContext-bTWrqdEV.cjs"),G=require("./Icon-BVULqOJD.cjs"),R=require("./Typography-B6ASPrzT.cjs"),i=require("./TextField.module-DsNCo8vN.cjs"),J="_swatches_1kbcs_3",M="_sm_1kbcs_13",O="_md_1kbcs_18",Q="_lg_1kbcs_23",W="_swatch_1kbcs_3",m={swatches:J,sm:M,md:O,lg:Q,swatch:W},X=u.forwardRef(function({colors:r,value:p,defaultValue:A=null,onChange:h,size:b="md",labels:w,label:d,error:C,helperText:L,required:D=!1,name:c,className:F,"aria-label":P,...B},E){const x=u.useId(),v=`${x}-label`,k=`${x}-helper`,o=U.useFormContext(),_=!!(o&&c),l=o&&c?o.field(c):void 0,S=p!==void 0?p:_?o.values[c]??null:void 0,I=S!==void 0,[H,K]=u.useState(A),g=((I?S:H)??"").toLowerCase(),f=C??(l==null?void 0:l.error)??!1,y=L??(l==null?void 0:l.helperText),j=e=>{I||K(e),_&&o.setValue(c,e),h==null||h(e)},q=u.useRef([]),T=r.findIndex(e=>e.toLowerCase()===g),V=T>=0?T:0,$=(e,a)=>{var n;let s=a;switch(e.key){case"ArrowRight":case"ArrowDown":s=(a+1)%r.length;break;case"ArrowLeft":case"ArrowUp":s=(a-1+r.length)%r.length;break;case"Home":s=0;break;case"End":s=r.length-1;break;default:return}e.preventDefault(),j(r[s]),(n=q.current[s])==null||n.focus()};return t.jsxs("div",{ref:E,className:N.clsx(i.fieldStyles.field,i.fieldStyles[b],f&&i.fieldStyles.error,F),...B,children:[d!=null&&t.jsxs("label",{id:v,className:i.fieldStyles.label,children:[t.jsx(R.Typography,{as:"span",variant:"bodySmall",color:"muted",children:d}),D&&t.jsx("span",{className:i.fieldStyles.required,"aria-hidden":"true",children:"*"})]}),t.jsx("div",{role:"radiogroup","aria-labelledby":d!=null?v:void 0,"aria-label":d==null?P:void 0,"aria-invalid":f||void 0,"aria-describedby":y!=null?k:void 0,className:N.clsx(m.swatches,m[b]),...c?{name:c,tabIndex:-1}:{},children:r.map((e,a)=>{const s=e.toLowerCase()===g;return t.jsx("button",{ref:n=>{q.current[a]=n},type:"button",role:"radio","aria-checked":s,"aria-label":(w==null?void 0:w[e])??e,tabIndex:a===V?0:-1,className:m.swatch,style:{"--sw":e},onClick:()=>j(e),onKeyDown:n=>$(n,a),children:s?t.jsx(G.Icon,{name:"TickCircle",style:{width:"var(--sw-icon)",height:"var(--sw-icon)"}}):null},e)})}),y!=null&&t.jsx(R.Typography,{as:"span",id:k,variant:"bodySmall",color:f?"error":"muted",className:i.fieldStyles.helper,children:y})]})});exports.SwatchPicker=X;
|
|
2
|
+
//# sourceMappingURL=SwatchPicker-BWXqgsEy.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SwatchPicker-C8amdDnA.cjs","sources":["../src/components/SwatchPicker/SwatchPicker.tsx"],"sourcesContent":["import {\n forwardRef,\n useId,\n useRef,\n useState,\n type CSSProperties,\n type HTMLAttributes,\n type KeyboardEvent as ReactKeyboardEvent,\n type ReactNode,\n} from 'react'\nimport { clsx } from 'clsx'\nimport { useFormContext } from '../../form/formContext'\nimport { Icon } from '../Icon'\nimport { Typography } from '../Typography'\n// shared field chrome (wrapper / label / helper / required / error / sizes)\nimport fieldStyles from '../TextField/TextField.module.css'\nimport styles from './SwatchPicker.module.css'\n\nexport type SwatchPickerSize = 'sm' | 'md' | 'lg'\n\nexport interface SwatchPickerProps extends Omit<\n HTMLAttributes<HTMLDivElement>,\n 'onChange' | 'defaultValue'\n> {\n /** The color values to render as selectable swatches (any CSS color — hex / `rgb()` / …). */\n colors: string[]\n /** The selected color (controlled) — matched case-insensitively against `colors`; `null` = none. */\n value?: string | null\n /** Initial selected color (uncontrolled). */\n defaultValue?: string | null\n /** Fires with the clicked color. */\n onChange?: (color: string) => void\n /**\n * Swatch size — `sm` 30 / `md` 36 / `lg` 42 px, each with its own corner radius and tick size\n * (12/16/20). Defaults to `md`. All three are per-size CSS vars in the module.\n */\n size?: SwatchPickerSize\n /** Per-color accessible labels (falls back to the color value itself). */\n labels?: Record<string, string>\n /** Label rendered above the swatches. */\n label?: ReactNode\n /** Marks the field invalid — reddens the label/asterisk and shows `helperText` in the error color. */\n error?: boolean\n /** Helper / validation text under the swatches. Adopts the error color while `error`. */\n helperText?: ReactNode\n /** Adds a red asterisk after the label. */\n required?: boolean\n /** Form field name — auto-binds to a surrounding `<Form>` (the form value is the color string). */\n name?: string\n}\n\n/**\n * A grid of selectable color **swatches** (rounded tiles) — pick one from a fixed palette. The selected\n * swatch shows a centered white **`TickCircle`** icon. Unlike `ColorPicker` (a field + full popover\n * picker), this is a lightweight primitive for a **preset** set of colors — e.g. an accent-color chooser.\n * Controlled (`value` + `onChange`) or uncontrolled (`defaultValue`); binds to a surrounding `<Form>` by\n * `name` (the form value is the color string — validate with e.g. `z.string().min(1, 'Pick a color')`),\n * and shares the field family's `label` / `error` + `helperText` / `required` chrome.\n *\n * Swatch fills are arbitrary CSS colors (fed via an inline `--sw` var), not `--tz-*` tokens — a\n * deliberate exception, like `ColorPicker`'s spectrum. a11y: `role=\"radiogroup\"` (labelled by `label`\n * or `aria-label`) with `role=\"radio\"` + `aria-checked` swatches; the group carries `name` for the\n * form's scroll-to-error.\n */\nexport const SwatchPicker = forwardRef<HTMLDivElement, SwatchPickerProps>(function SwatchPicker(\n {\n colors,\n value,\n defaultValue = null,\n onChange,\n size = 'md',\n labels,\n label,\n error,\n helperText,\n required = false,\n name,\n className,\n 'aria-label': ariaLabel,\n ...props\n },\n ref,\n) {\n const id = useId()\n const labelId = `${id}-label`\n const helperId = `${id}-helper`\n\n // Auto-bind to a surrounding <Form> by `name` — the form value is the color string.\n const form = useFormContext()\n const isFormBound = Boolean(form && name)\n const bound = form && name ? form.field(name) : undefined\n\n const externalValue: string | null | undefined =\n value !== undefined\n ? value\n : isFormBound\n ? ((form!.values[name!] as string | null | undefined) ?? null)\n : undefined\n const isControlled = externalValue !== undefined\n const [internal, setInternal] = useState<string | null>(defaultValue)\n const selected = isControlled ? externalValue! : internal\n const active = (selected ?? '').toLowerCase()\n\n const resolvedError = error ?? bound?.error ?? false\n const resolvedHelperText = helperText ?? bound?.helperText\n\n const pick = (color: string) => {\n if (!isControlled) setInternal(color)\n if (isFormBound) form!.setValue(name!, color)\n onChange?.(color)\n }\n\n // roving tabindex (ARIA radiogroup): only the selected swatch — or the first, if none — is tabbable;\n // arrows move selection between swatches (wrapping), Home/End jump to the ends\n const swatchRefs = useRef<(HTMLButtonElement | null)[]>([])\n const selectedIndex = colors.findIndex((c) => c.toLowerCase() === active)\n const tabbableIndex = selectedIndex >= 0 ? selectedIndex : 0\n const onSwatchKey = (event: ReactKeyboardEvent<HTMLButtonElement>, index: number) => {\n let target = index\n switch (event.key) {\n case 'ArrowRight':\n case 'ArrowDown':\n target = (index + 1) % colors.length\n break\n case 'ArrowLeft':\n case 'ArrowUp':\n target = (index - 1 + colors.length) % colors.length\n break\n case 'Home':\n target = 0\n break\n case 'End':\n target = colors.length - 1\n break\n default:\n return\n }\n event.preventDefault()\n pick(colors[target])\n swatchRefs.current[target]?.focus()\n }\n\n return (\n <div\n ref={ref}\n className={clsx(\n fieldStyles.field,\n fieldStyles[size],\n resolvedError && fieldStyles.error,\n className,\n )}\n {...props}\n >\n {label != null && (\n <label id={labelId} className={fieldStyles.label}>\n <Typography as=\"span\" variant=\"bodySmall\" color=\"muted\">\n {label}\n </Typography>\n {required && (\n <span className={fieldStyles.required} aria-hidden=\"true\">\n *\n </span>\n )}\n </label>\n )}\n <div\n role=\"radiogroup\"\n aria-labelledby={label != null ? labelId : undefined}\n aria-label={label == null ? ariaLabel : undefined}\n aria-invalid={resolvedError || undefined}\n aria-describedby={resolvedHelperText != null ? helperId : undefined}\n className={clsx(styles.swatches, styles[size])}\n // name + tabIndex are load-bearing for the form's scroll-to-error\n {...(name ? { name, tabIndex: -1 } : {})}\n >\n {colors.map((color, index) => {\n const isSelected = color.toLowerCase() === active\n return (\n <button\n key={color}\n ref={(el) => {\n swatchRefs.current[index] = el\n }}\n type=\"button\"\n role=\"radio\"\n aria-checked={isSelected}\n aria-label={labels?.[color] ?? color}\n tabIndex={index === tabbableIndex ? 0 : -1}\n className={styles.swatch}\n style={{ '--sw': color } as CSSProperties}\n onClick={() => pick(color)}\n onKeyDown={(e) => onSwatchKey(e, index)}\n >\n {isSelected ? (\n <Icon\n name=\"TickCircle\"\n style={{ width: 'var(--sw-icon)', height: 'var(--sw-icon)' }}\n />\n ) : null}\n </button>\n )\n })}\n </div>\n {resolvedHelperText != null && (\n <Typography\n as=\"span\"\n id={helperId}\n variant=\"bodySmall\"\n color={resolvedError ? 'error' : 'muted'}\n className={fieldStyles.helper}\n >\n {resolvedHelperText}\n </Typography>\n )}\n </div>\n )\n})\n"],"names":["SwatchPicker","forwardRef","colors","value","defaultValue","onChange","size","labels","label","error","helperText","required","name","className","ariaLabel","props","ref","id","useId","labelId","helperId","form","useFormContext","isFormBound","bound","externalValue","isControlled","internal","setInternal","useState","active","resolvedError","resolvedHelperText","pick","color","swatchRefs","useRef","selectedIndex","c","tabbableIndex","onSwatchKey","event","index","target","_a","jsxs","clsx","fieldStyles","jsx","Typography","styles","isSelected","el","e","Icon"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SwatchPicker-BWXqgsEy.cjs","sources":["../src/components/SwatchPicker/SwatchPicker.tsx"],"sourcesContent":["import {\n forwardRef,\n useId,\n useRef,\n useState,\n type CSSProperties,\n type HTMLAttributes,\n type KeyboardEvent as ReactKeyboardEvent,\n type ReactNode,\n} from 'react'\nimport { clsx } from 'clsx'\nimport { useFormContext } from '../../form/formContext'\nimport { Icon } from '../Icon'\nimport { Typography } from '../Typography'\n// shared field chrome (wrapper / label / helper / required / error / sizes)\nimport fieldStyles from '../TextField/TextField.module.css'\nimport styles from './SwatchPicker.module.css'\n\nexport type SwatchPickerSize = 'sm' | 'md' | 'lg'\n\nexport interface SwatchPickerProps extends Omit<\n HTMLAttributes<HTMLDivElement>,\n 'onChange' | 'defaultValue'\n> {\n /** The color values to render as selectable swatches (any CSS color — hex / `rgb()` / …). */\n colors: string[]\n /** The selected color (controlled) — matched case-insensitively against `colors`; `null` = none. */\n value?: string | null\n /** Initial selected color (uncontrolled). */\n defaultValue?: string | null\n /** Fires with the clicked color. */\n onChange?: (color: string) => void\n /**\n * Swatch size — `sm` 30 / `md` 36 / `lg` 42 px, each with its own corner radius and tick size\n * (12/16/20). Defaults to `md`. All three are per-size CSS vars in the module.\n */\n size?: SwatchPickerSize\n /** Per-color accessible labels (falls back to the color value itself). */\n labels?: Record<string, string>\n /** Label rendered above the swatches. */\n label?: ReactNode\n /** Marks the field invalid — reddens the label/asterisk and shows `helperText` in the error color. */\n error?: boolean\n /** Helper / validation text under the swatches. Adopts the error color while `error`. */\n helperText?: ReactNode\n /** Adds a red asterisk after the label. */\n required?: boolean\n /** Form field name — auto-binds to a surrounding `<Form>` (the form value is the color string). */\n name?: string\n}\n\n/**\n * A grid of selectable color **swatches** (rounded tiles) — pick one from a fixed palette. The selected\n * swatch shows a centered white **`TickCircle`** icon. Unlike `ColorPicker` (a field + full popover\n * picker), this is a lightweight primitive for a **preset** set of colors — e.g. an accent-color chooser.\n * Controlled (`value` + `onChange`) or uncontrolled (`defaultValue`); binds to a surrounding `<Form>` by\n * `name` (the form value is the color string — validate with e.g. `z.string().min(1, 'Pick a color')`),\n * and shares the field family's `label` / `error` + `helperText` / `required` chrome.\n *\n * Swatch fills are arbitrary CSS colors (fed via an inline `--sw` var), not `--tz-*` tokens — a\n * deliberate exception, like `ColorPicker`'s spectrum. a11y: `role=\"radiogroup\"` (labelled by `label`\n * or `aria-label`) with `role=\"radio\"` + `aria-checked` swatches; the group carries `name` for the\n * form's scroll-to-error.\n */\nexport const SwatchPicker = forwardRef<HTMLDivElement, SwatchPickerProps>(function SwatchPicker(\n {\n colors,\n value,\n defaultValue = null,\n onChange,\n size = 'md',\n labels,\n label,\n error,\n helperText,\n required = false,\n name,\n className,\n 'aria-label': ariaLabel,\n ...props\n },\n ref,\n) {\n const id = useId()\n const labelId = `${id}-label`\n const helperId = `${id}-helper`\n\n // Auto-bind to a surrounding <Form> by `name` — the form value is the color string.\n const form = useFormContext()\n const isFormBound = Boolean(form && name)\n const bound = form && name ? form.field(name) : undefined\n\n const externalValue: string | null | undefined =\n value !== undefined\n ? value\n : isFormBound\n ? ((form!.values[name!] as string | null | undefined) ?? null)\n : undefined\n const isControlled = externalValue !== undefined\n const [internal, setInternal] = useState<string | null>(defaultValue)\n const selected = isControlled ? externalValue! : internal\n const active = (selected ?? '').toLowerCase()\n\n const resolvedError = error ?? bound?.error ?? false\n const resolvedHelperText = helperText ?? bound?.helperText\n\n const pick = (color: string) => {\n if (!isControlled) setInternal(color)\n if (isFormBound) form!.setValue(name!, color)\n onChange?.(color)\n }\n\n // roving tabindex (ARIA radiogroup): only the selected swatch — or the first, if none — is tabbable;\n // arrows move selection between swatches (wrapping), Home/End jump to the ends\n const swatchRefs = useRef<(HTMLButtonElement | null)[]>([])\n const selectedIndex = colors.findIndex((c) => c.toLowerCase() === active)\n const tabbableIndex = selectedIndex >= 0 ? selectedIndex : 0\n const onSwatchKey = (event: ReactKeyboardEvent<HTMLButtonElement>, index: number) => {\n let target = index\n switch (event.key) {\n case 'ArrowRight':\n case 'ArrowDown':\n target = (index + 1) % colors.length\n break\n case 'ArrowLeft':\n case 'ArrowUp':\n target = (index - 1 + colors.length) % colors.length\n break\n case 'Home':\n target = 0\n break\n case 'End':\n target = colors.length - 1\n break\n default:\n return\n }\n event.preventDefault()\n pick(colors[target])\n swatchRefs.current[target]?.focus()\n }\n\n return (\n <div\n ref={ref}\n className={clsx(\n fieldStyles.field,\n fieldStyles[size],\n resolvedError && fieldStyles.error,\n className,\n )}\n {...props}\n >\n {label != null && (\n <label id={labelId} className={fieldStyles.label}>\n <Typography as=\"span\" variant=\"bodySmall\" color=\"muted\">\n {label}\n </Typography>\n {required && (\n <span className={fieldStyles.required} aria-hidden=\"true\">\n *\n </span>\n )}\n </label>\n )}\n <div\n role=\"radiogroup\"\n aria-labelledby={label != null ? labelId : undefined}\n aria-label={label == null ? ariaLabel : undefined}\n aria-invalid={resolvedError || undefined}\n aria-describedby={resolvedHelperText != null ? helperId : undefined}\n className={clsx(styles.swatches, styles[size])}\n // name + tabIndex are load-bearing for the form's scroll-to-error\n {...(name ? { name, tabIndex: -1 } : {})}\n >\n {colors.map((color, index) => {\n const isSelected = color.toLowerCase() === active\n return (\n <button\n key={color}\n ref={(el) => {\n swatchRefs.current[index] = el\n }}\n type=\"button\"\n role=\"radio\"\n aria-checked={isSelected}\n aria-label={labels?.[color] ?? color}\n tabIndex={index === tabbableIndex ? 0 : -1}\n className={styles.swatch}\n style={{ '--sw': color } as CSSProperties}\n onClick={() => pick(color)}\n onKeyDown={(e) => onSwatchKey(e, index)}\n >\n {isSelected ? (\n <Icon\n name=\"TickCircle\"\n style={{ width: 'var(--sw-icon)', height: 'var(--sw-icon)' }}\n />\n ) : null}\n </button>\n )\n })}\n </div>\n {resolvedHelperText != null && (\n <Typography\n as=\"span\"\n id={helperId}\n variant=\"bodySmall\"\n color={resolvedError ? 'error' : 'muted'}\n className={fieldStyles.helper}\n >\n {resolvedHelperText}\n </Typography>\n )}\n </div>\n )\n})\n"],"names":["SwatchPicker","forwardRef","colors","value","defaultValue","onChange","size","labels","label","error","helperText","required","name","className","ariaLabel","props","ref","id","useId","labelId","helperId","form","useFormContext","isFormBound","bound","externalValue","isControlled","internal","setInternal","useState","active","resolvedError","resolvedHelperText","pick","color","swatchRefs","useRef","selectedIndex","c","tabbableIndex","onSwatchKey","event","index","target","_a","jsxs","clsx","fieldStyles","jsx","Typography","styles","isSelected","el","e","Icon"],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import { forwardRef as U, useId as G, useState as J, useRef as M } from "react";
|
|
|
3
3
|
import { clsx as L } from "clsx";
|
|
4
4
|
import { u as O } from "./formContext-B7ln1Miy.js";
|
|
5
5
|
import { I as Q } from "./Icon-DaTvzLBu.js";
|
|
6
|
-
import { T as R } from "./Typography-
|
|
6
|
+
import { T as R } from "./Typography-CJv5AnRP.js";
|
|
7
7
|
import { f as n } from "./TextField.module-6gYcR9TL.js";
|
|
8
8
|
const W = "_swatches_1kbcs_3", X = "_sm_1kbcs_13", Y = "_md_1kbcs_18", Z = "_lg_1kbcs_23", z = "_swatch_1kbcs_3", w = {
|
|
9
9
|
swatches: W,
|
|
@@ -126,4 +126,4 @@ const W = "_swatches_1kbcs_3", X = "_sm_1kbcs_13", Y = "_md_1kbcs_18", Z = "_lg_
|
|
|
126
126
|
export {
|
|
127
127
|
ie as S
|
|
128
128
|
};
|
|
129
|
-
//# sourceMappingURL=SwatchPicker-
|
|
129
|
+
//# sourceMappingURL=SwatchPicker-Bpxk0IOe.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SwatchPicker-DXEE9xqY.js","sources":["../src/components/SwatchPicker/SwatchPicker.tsx"],"sourcesContent":["import {\n forwardRef,\n useId,\n useRef,\n useState,\n type CSSProperties,\n type HTMLAttributes,\n type KeyboardEvent as ReactKeyboardEvent,\n type ReactNode,\n} from 'react'\nimport { clsx } from 'clsx'\nimport { useFormContext } from '../../form/formContext'\nimport { Icon } from '../Icon'\nimport { Typography } from '../Typography'\n// shared field chrome (wrapper / label / helper / required / error / sizes)\nimport fieldStyles from '../TextField/TextField.module.css'\nimport styles from './SwatchPicker.module.css'\n\nexport type SwatchPickerSize = 'sm' | 'md' | 'lg'\n\nexport interface SwatchPickerProps extends Omit<\n HTMLAttributes<HTMLDivElement>,\n 'onChange' | 'defaultValue'\n> {\n /** The color values to render as selectable swatches (any CSS color — hex / `rgb()` / …). */\n colors: string[]\n /** The selected color (controlled) — matched case-insensitively against `colors`; `null` = none. */\n value?: string | null\n /** Initial selected color (uncontrolled). */\n defaultValue?: string | null\n /** Fires with the clicked color. */\n onChange?: (color: string) => void\n /**\n * Swatch size — `sm` 30 / `md` 36 / `lg` 42 px, each with its own corner radius and tick size\n * (12/16/20). Defaults to `md`. All three are per-size CSS vars in the module.\n */\n size?: SwatchPickerSize\n /** Per-color accessible labels (falls back to the color value itself). */\n labels?: Record<string, string>\n /** Label rendered above the swatches. */\n label?: ReactNode\n /** Marks the field invalid — reddens the label/asterisk and shows `helperText` in the error color. */\n error?: boolean\n /** Helper / validation text under the swatches. Adopts the error color while `error`. */\n helperText?: ReactNode\n /** Adds a red asterisk after the label. */\n required?: boolean\n /** Form field name — auto-binds to a surrounding `<Form>` (the form value is the color string). */\n name?: string\n}\n\n/**\n * A grid of selectable color **swatches** (rounded tiles) — pick one from a fixed palette. The selected\n * swatch shows a centered white **`TickCircle`** icon. Unlike `ColorPicker` (a field + full popover\n * picker), this is a lightweight primitive for a **preset** set of colors — e.g. an accent-color chooser.\n * Controlled (`value` + `onChange`) or uncontrolled (`defaultValue`); binds to a surrounding `<Form>` by\n * `name` (the form value is the color string — validate with e.g. `z.string().min(1, 'Pick a color')`),\n * and shares the field family's `label` / `error` + `helperText` / `required` chrome.\n *\n * Swatch fills are arbitrary CSS colors (fed via an inline `--sw` var), not `--tz-*` tokens — a\n * deliberate exception, like `ColorPicker`'s spectrum. a11y: `role=\"radiogroup\"` (labelled by `label`\n * or `aria-label`) with `role=\"radio\"` + `aria-checked` swatches; the group carries `name` for the\n * form's scroll-to-error.\n */\nexport const SwatchPicker = forwardRef<HTMLDivElement, SwatchPickerProps>(function SwatchPicker(\n {\n colors,\n value,\n defaultValue = null,\n onChange,\n size = 'md',\n labels,\n label,\n error,\n helperText,\n required = false,\n name,\n className,\n 'aria-label': ariaLabel,\n ...props\n },\n ref,\n) {\n const id = useId()\n const labelId = `${id}-label`\n const helperId = `${id}-helper`\n\n // Auto-bind to a surrounding <Form> by `name` — the form value is the color string.\n const form = useFormContext()\n const isFormBound = Boolean(form && name)\n const bound = form && name ? form.field(name) : undefined\n\n const externalValue: string | null | undefined =\n value !== undefined\n ? value\n : isFormBound\n ? ((form!.values[name!] as string | null | undefined) ?? null)\n : undefined\n const isControlled = externalValue !== undefined\n const [internal, setInternal] = useState<string | null>(defaultValue)\n const selected = isControlled ? externalValue! : internal\n const active = (selected ?? '').toLowerCase()\n\n const resolvedError = error ?? bound?.error ?? false\n const resolvedHelperText = helperText ?? bound?.helperText\n\n const pick = (color: string) => {\n if (!isControlled) setInternal(color)\n if (isFormBound) form!.setValue(name!, color)\n onChange?.(color)\n }\n\n // roving tabindex (ARIA radiogroup): only the selected swatch — or the first, if none — is tabbable;\n // arrows move selection between swatches (wrapping), Home/End jump to the ends\n const swatchRefs = useRef<(HTMLButtonElement | null)[]>([])\n const selectedIndex = colors.findIndex((c) => c.toLowerCase() === active)\n const tabbableIndex = selectedIndex >= 0 ? selectedIndex : 0\n const onSwatchKey = (event: ReactKeyboardEvent<HTMLButtonElement>, index: number) => {\n let target = index\n switch (event.key) {\n case 'ArrowRight':\n case 'ArrowDown':\n target = (index + 1) % colors.length\n break\n case 'ArrowLeft':\n case 'ArrowUp':\n target = (index - 1 + colors.length) % colors.length\n break\n case 'Home':\n target = 0\n break\n case 'End':\n target = colors.length - 1\n break\n default:\n return\n }\n event.preventDefault()\n pick(colors[target])\n swatchRefs.current[target]?.focus()\n }\n\n return (\n <div\n ref={ref}\n className={clsx(\n fieldStyles.field,\n fieldStyles[size],\n resolvedError && fieldStyles.error,\n className,\n )}\n {...props}\n >\n {label != null && (\n <label id={labelId} className={fieldStyles.label}>\n <Typography as=\"span\" variant=\"bodySmall\" color=\"muted\">\n {label}\n </Typography>\n {required && (\n <span className={fieldStyles.required} aria-hidden=\"true\">\n *\n </span>\n )}\n </label>\n )}\n <div\n role=\"radiogroup\"\n aria-labelledby={label != null ? labelId : undefined}\n aria-label={label == null ? ariaLabel : undefined}\n aria-invalid={resolvedError || undefined}\n aria-describedby={resolvedHelperText != null ? helperId : undefined}\n className={clsx(styles.swatches, styles[size])}\n // name + tabIndex are load-bearing for the form's scroll-to-error\n {...(name ? { name, tabIndex: -1 } : {})}\n >\n {colors.map((color, index) => {\n const isSelected = color.toLowerCase() === active\n return (\n <button\n key={color}\n ref={(el) => {\n swatchRefs.current[index] = el\n }}\n type=\"button\"\n role=\"radio\"\n aria-checked={isSelected}\n aria-label={labels?.[color] ?? color}\n tabIndex={index === tabbableIndex ? 0 : -1}\n className={styles.swatch}\n style={{ '--sw': color } as CSSProperties}\n onClick={() => pick(color)}\n onKeyDown={(e) => onSwatchKey(e, index)}\n >\n {isSelected ? (\n <Icon\n name=\"TickCircle\"\n style={{ width: 'var(--sw-icon)', height: 'var(--sw-icon)' }}\n />\n ) : null}\n </button>\n )\n })}\n </div>\n {resolvedHelperText != null && (\n <Typography\n as=\"span\"\n id={helperId}\n variant=\"bodySmall\"\n color={resolvedError ? 'error' : 'muted'}\n className={fieldStyles.helper}\n >\n {resolvedHelperText}\n </Typography>\n )}\n </div>\n )\n})\n"],"names":["SwatchPicker","forwardRef","colors","value","defaultValue","onChange","size","labels","label","error","helperText","required","name","className","ariaLabel","props","ref","id","useId","labelId","helperId","form","useFormContext","isFormBound","bound","externalValue","isControlled","internal","setInternal","useState","active","resolvedError","resolvedHelperText","pick","color","swatchRefs","useRef","selectedIndex","c","tabbableIndex","onSwatchKey","event","index","target","_a","jsxs","clsx","fieldStyles","jsx","Typography","styles","isSelected","el","e","Icon"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SwatchPicker-Bpxk0IOe.js","sources":["../src/components/SwatchPicker/SwatchPicker.tsx"],"sourcesContent":["import {\n forwardRef,\n useId,\n useRef,\n useState,\n type CSSProperties,\n type HTMLAttributes,\n type KeyboardEvent as ReactKeyboardEvent,\n type ReactNode,\n} from 'react'\nimport { clsx } from 'clsx'\nimport { useFormContext } from '../../form/formContext'\nimport { Icon } from '../Icon'\nimport { Typography } from '../Typography'\n// shared field chrome (wrapper / label / helper / required / error / sizes)\nimport fieldStyles from '../TextField/TextField.module.css'\nimport styles from './SwatchPicker.module.css'\n\nexport type SwatchPickerSize = 'sm' | 'md' | 'lg'\n\nexport interface SwatchPickerProps extends Omit<\n HTMLAttributes<HTMLDivElement>,\n 'onChange' | 'defaultValue'\n> {\n /** The color values to render as selectable swatches (any CSS color — hex / `rgb()` / …). */\n colors: string[]\n /** The selected color (controlled) — matched case-insensitively against `colors`; `null` = none. */\n value?: string | null\n /** Initial selected color (uncontrolled). */\n defaultValue?: string | null\n /** Fires with the clicked color. */\n onChange?: (color: string) => void\n /**\n * Swatch size — `sm` 30 / `md` 36 / `lg` 42 px, each with its own corner radius and tick size\n * (12/16/20). Defaults to `md`. All three are per-size CSS vars in the module.\n */\n size?: SwatchPickerSize\n /** Per-color accessible labels (falls back to the color value itself). */\n labels?: Record<string, string>\n /** Label rendered above the swatches. */\n label?: ReactNode\n /** Marks the field invalid — reddens the label/asterisk and shows `helperText` in the error color. */\n error?: boolean\n /** Helper / validation text under the swatches. Adopts the error color while `error`. */\n helperText?: ReactNode\n /** Adds a red asterisk after the label. */\n required?: boolean\n /** Form field name — auto-binds to a surrounding `<Form>` (the form value is the color string). */\n name?: string\n}\n\n/**\n * A grid of selectable color **swatches** (rounded tiles) — pick one from a fixed palette. The selected\n * swatch shows a centered white **`TickCircle`** icon. Unlike `ColorPicker` (a field + full popover\n * picker), this is a lightweight primitive for a **preset** set of colors — e.g. an accent-color chooser.\n * Controlled (`value` + `onChange`) or uncontrolled (`defaultValue`); binds to a surrounding `<Form>` by\n * `name` (the form value is the color string — validate with e.g. `z.string().min(1, 'Pick a color')`),\n * and shares the field family's `label` / `error` + `helperText` / `required` chrome.\n *\n * Swatch fills are arbitrary CSS colors (fed via an inline `--sw` var), not `--tz-*` tokens — a\n * deliberate exception, like `ColorPicker`'s spectrum. a11y: `role=\"radiogroup\"` (labelled by `label`\n * or `aria-label`) with `role=\"radio\"` + `aria-checked` swatches; the group carries `name` for the\n * form's scroll-to-error.\n */\nexport const SwatchPicker = forwardRef<HTMLDivElement, SwatchPickerProps>(function SwatchPicker(\n {\n colors,\n value,\n defaultValue = null,\n onChange,\n size = 'md',\n labels,\n label,\n error,\n helperText,\n required = false,\n name,\n className,\n 'aria-label': ariaLabel,\n ...props\n },\n ref,\n) {\n const id = useId()\n const labelId = `${id}-label`\n const helperId = `${id}-helper`\n\n // Auto-bind to a surrounding <Form> by `name` — the form value is the color string.\n const form = useFormContext()\n const isFormBound = Boolean(form && name)\n const bound = form && name ? form.field(name) : undefined\n\n const externalValue: string | null | undefined =\n value !== undefined\n ? value\n : isFormBound\n ? ((form!.values[name!] as string | null | undefined) ?? null)\n : undefined\n const isControlled = externalValue !== undefined\n const [internal, setInternal] = useState<string | null>(defaultValue)\n const selected = isControlled ? externalValue! : internal\n const active = (selected ?? '').toLowerCase()\n\n const resolvedError = error ?? bound?.error ?? false\n const resolvedHelperText = helperText ?? bound?.helperText\n\n const pick = (color: string) => {\n if (!isControlled) setInternal(color)\n if (isFormBound) form!.setValue(name!, color)\n onChange?.(color)\n }\n\n // roving tabindex (ARIA radiogroup): only the selected swatch — or the first, if none — is tabbable;\n // arrows move selection between swatches (wrapping), Home/End jump to the ends\n const swatchRefs = useRef<(HTMLButtonElement | null)[]>([])\n const selectedIndex = colors.findIndex((c) => c.toLowerCase() === active)\n const tabbableIndex = selectedIndex >= 0 ? selectedIndex : 0\n const onSwatchKey = (event: ReactKeyboardEvent<HTMLButtonElement>, index: number) => {\n let target = index\n switch (event.key) {\n case 'ArrowRight':\n case 'ArrowDown':\n target = (index + 1) % colors.length\n break\n case 'ArrowLeft':\n case 'ArrowUp':\n target = (index - 1 + colors.length) % colors.length\n break\n case 'Home':\n target = 0\n break\n case 'End':\n target = colors.length - 1\n break\n default:\n return\n }\n event.preventDefault()\n pick(colors[target])\n swatchRefs.current[target]?.focus()\n }\n\n return (\n <div\n ref={ref}\n className={clsx(\n fieldStyles.field,\n fieldStyles[size],\n resolvedError && fieldStyles.error,\n className,\n )}\n {...props}\n >\n {label != null && (\n <label id={labelId} className={fieldStyles.label}>\n <Typography as=\"span\" variant=\"bodySmall\" color=\"muted\">\n {label}\n </Typography>\n {required && (\n <span className={fieldStyles.required} aria-hidden=\"true\">\n *\n </span>\n )}\n </label>\n )}\n <div\n role=\"radiogroup\"\n aria-labelledby={label != null ? labelId : undefined}\n aria-label={label == null ? ariaLabel : undefined}\n aria-invalid={resolvedError || undefined}\n aria-describedby={resolvedHelperText != null ? helperId : undefined}\n className={clsx(styles.swatches, styles[size])}\n // name + tabIndex are load-bearing for the form's scroll-to-error\n {...(name ? { name, tabIndex: -1 } : {})}\n >\n {colors.map((color, index) => {\n const isSelected = color.toLowerCase() === active\n return (\n <button\n key={color}\n ref={(el) => {\n swatchRefs.current[index] = el\n }}\n type=\"button\"\n role=\"radio\"\n aria-checked={isSelected}\n aria-label={labels?.[color] ?? color}\n tabIndex={index === tabbableIndex ? 0 : -1}\n className={styles.swatch}\n style={{ '--sw': color } as CSSProperties}\n onClick={() => pick(color)}\n onKeyDown={(e) => onSwatchKey(e, index)}\n >\n {isSelected ? (\n <Icon\n name=\"TickCircle\"\n style={{ width: 'var(--sw-icon)', height: 'var(--sw-icon)' }}\n />\n ) : null}\n </button>\n )\n })}\n </div>\n {resolvedHelperText != null && (\n <Typography\n as=\"span\"\n id={helperId}\n variant=\"bodySmall\"\n color={resolvedError ? 'error' : 'muted'}\n className={fieldStyles.helper}\n >\n {resolvedHelperText}\n </Typography>\n )}\n </div>\n )\n})\n"],"names":["SwatchPicker","forwardRef","colors","value","defaultValue","onChange","size","labels","label","error","helperText","required","name","className","ariaLabel","props","ref","id","useId","labelId","helperId","form","useFormContext","isFormBound","bound","externalValue","isControlled","internal","setInternal","useState","active","resolvedError","resolvedHelperText","pick","color","swatchRefs","useRef","selectedIndex","c","tabbableIndex","onSwatchKey","event","index","target","_a","jsxs","clsx","fieldStyles","jsx","Typography","styles","isSelected","el","e","Icon"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";const e=require("react/jsx-runtime"),a=require("react"),b=require("clsx"),E=require("./formContext-bTWrqdEV.cjs"),V="_field_1hhz8_1",A="_row_1hhz8_9",D="_disabled_1hhz8_21",G="_input_1hhz8_27",H="_track_1hhz8_41",J="_thumb_1hhz8_60",K="_error_1hhz8_72",L="_label_1hhz8_76",M="_required_1hhz8_81",O="_sm_1hhz8_87",P="_md_1hhz8_99",Q="_lg_1hhz8_111",s={field:V,row:A,disabled:D,input:G,track:H,thumb:J,error:K,label:L,required:M,sm:O,md:P,lg:Q},T=a.forwardRef(function({label:d,color:h="accent",size:p="md",error:v,required:w=!1,checked:_,defaultChecked:j=!1,onChange:l,name:t,onBlur:n,disabled:u=!1,id:k,className:q,style:N,...g},S){const y=a.useId(),C=k??y,c=E.useFormContext(),f=!!(c&&t),r=c&&t?c.field(t):void 0,m=_!==void 0?_:f?!!c.values[t]:void 0,x=m!==void 0,[I,B]=a.useState(j),F=x?m:I,z=v??(r==null?void 0:r.error)??!1,R=o=>{const i=o.target.checked;x||B(i),f&&c.setValue(t,i),l==null||l(i)},$=o=>{r==null||r.onBlur(o),n==null||n(o)};return e.jsx("div",{className:b.clsx(s.field,z&&s.error,u&&s.disabled,q),style:{"--tz-btn-rgb":`var(--tz-color-${h}-rgb)`,"--tz-btn-on":`var(--tz-color-${h}-contrast, #fff)`,...N},children:e.jsxs("label",{className:b.clsx(s.row,s[p]),children:[e.jsx("input",{ref:S,id:C,name:t,type:"checkbox",role:"switch",className:s.input,checked:F,onChange:R,onBlur:$,disabled:u,"aria-invalid":z||void 0,...g}),e.jsx("span",{className:s.track,"aria-hidden":"true",children:e.jsx("span",{className:s.thumb})}),d!=null&&e.jsxs("span",{className:s.label,children:[d,w&&e.jsx("span",{className:s.required,"aria-hidden":"true",children:"*"})]})]})})});exports.Switch=T;
|
|
2
|
+
//# sourceMappingURL=Switch-DSs2Y0IR.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Switch-
|
|
1
|
+
{"version":3,"file":"Switch-DSs2Y0IR.cjs","sources":["../src/components/Switch/Switch.tsx"],"sourcesContent":["import {\n forwardRef,\n useId,\n useState,\n type ChangeEvent,\n type CSSProperties,\n type FocusEvent,\n type InputHTMLAttributes,\n type ReactNode,\n} from 'react'\nimport { clsx } from 'clsx'\nimport { useFormContext } from '../../form/formContext'\nimport type { ThemeColor } from '../../theme'\nimport styles from './Switch.module.css'\n\nexport type SwitchSize = 'sm' | 'md' | 'lg'\n\nexport interface SwitchProps extends Omit<\n InputHTMLAttributes<HTMLInputElement>,\n 'size' | 'color' | 'type' | 'onChange'\n> {\n /** Text shown to the right of the switch. */\n label?: ReactNode\n /** Theme palette token used for the \"on\" fill. Defaults to `accent`. */\n color?: ThemeColor\n /** Preset size — track/thumb dimensions and label font. */\n size?: SwitchSize\n /** Marks the field invalid — reddens the track ring (no helper text). */\n error?: boolean\n /** Adds a red asterisk after the label. */\n required?: boolean\n /** Controlled on/off state. */\n checked?: boolean\n /** Initial state for uncontrolled use. Defaults to `false`. */\n defaultChecked?: boolean\n /** Fires with the next on/off state. */\n onChange?: (checked: boolean) => void\n}\n\n/**\n * A toggle switch. The native `<input type=\"checkbox\" role=\"switch\">` is visually hidden but fully\n * accessible (keyboard + screen reader); a styled track + sliding thumb show the state, the track\n * filling with `color` when on. Controlled (`checked` + `onChange`) or uncontrolled (`defaultChecked`),\n * and — like the other fields — binds to a surrounding `<Form>` by `name` (its form value is a\n * `boolean`). `error` reddens the track (no message text). Styling uses `--tz-*` tokens only.\n */\nexport const Switch = forwardRef<HTMLInputElement, SwitchProps>(function Switch(\n {\n label,\n color = 'accent',\n size = 'md',\n error,\n required = false,\n checked,\n defaultChecked = false,\n onChange,\n name,\n onBlur,\n disabled = false,\n id: idProp,\n className,\n style,\n ...props\n },\n ref,\n) {\n const reactId = useId()\n const id = idProp ?? reactId\n\n // Auto-bind to a surrounding <Form> by `name` — the form value is a boolean.\n const form = useFormContext()\n const isFormBound = Boolean(form && name)\n const bound = form && name ? form.field(name) : undefined\n\n const externalChecked: boolean | undefined =\n checked !== undefined ? checked : isFormBound ? Boolean(form!.values[name!]) : undefined\n const isControlled = externalChecked !== undefined\n const [internal, setInternal] = useState<boolean>(defaultChecked)\n const isChecked = isControlled ? externalChecked! : internal\n\n const resolvedError = error ?? bound?.error ?? false\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n const next = event.target.checked\n if (!isControlled) setInternal(next)\n if (isFormBound) form!.setValue(name!, next)\n onChange?.(next)\n }\n\n const handleBlur = (event: FocusEvent<HTMLInputElement>) => {\n bound?.onBlur(event)\n onBlur?.(event)\n }\n\n return (\n <div\n className={clsx(\n styles.field,\n resolvedError && styles.error,\n disabled && styles.disabled,\n className,\n )}\n style={\n {\n '--tz-btn-rgb': `var(--tz-color-${color}-rgb)`,\n '--tz-btn-on': `var(--tz-color-${color}-contrast, #fff)`,\n ...style,\n } as CSSProperties\n }\n >\n <label className={clsx(styles.row, styles[size])}>\n <input\n ref={ref}\n id={id}\n name={name}\n type=\"checkbox\"\n role=\"switch\"\n className={styles.input}\n checked={isChecked}\n onChange={handleChange}\n onBlur={handleBlur}\n disabled={disabled}\n aria-invalid={resolvedError || undefined}\n {...props}\n />\n <span className={styles.track} aria-hidden=\"true\">\n <span className={styles.thumb} />\n </span>\n {label != null && (\n <span className={styles.label}>\n {label}\n {required && (\n <span className={styles.required} aria-hidden=\"true\">\n *\n </span>\n )}\n </span>\n )}\n </label>\n </div>\n )\n})\n"],"names":["Switch","forwardRef","label","color","size","error","required","checked","defaultChecked","onChange","name","onBlur","disabled","idProp","className","style","props","ref","reactId","useId","id","form","useFormContext","isFormBound","bound","externalChecked","isControlled","internal","setInternal","useState","isChecked","resolvedError","handleChange","event","next","handleBlur","jsx","clsx","styles","jsxs"],"mappings":"wcA8CaA,EAASC,EAAAA,WAA0C,SAC9D,CACE,MAAAC,EACA,MAAAC,EAAQ,SACR,KAAAC,EAAO,KACP,MAAAC,EACA,SAAAC,EAAW,GACX,QAAAC,EACA,eAAAC,EAAiB,GACjB,SAAAC,EACA,KAAAC,EACA,OAAAC,EACA,SAAAC,EAAW,GACX,GAAIC,EACJ,UAAAC,EACA,MAAAC,EACA,GAAGC,CACL,EACAC,EACA,CACA,MAAMC,EAAUC,EAAAA,MAAA,EACVC,EAAKP,GAAUK,EAGfG,EAAOC,EAAAA,eAAA,EACPC,EAAc,GAAQF,GAAQX,GAC9Bc,EAAQH,GAAQX,EAAOW,EAAK,MAAMX,CAAI,EAAI,OAE1Ce,EACJlB,IAAY,OAAYA,EAAUgB,EAAc,EAAQF,EAAM,OAAOX,CAAK,EAAK,OAC3EgB,EAAeD,IAAoB,OACnC,CAACE,EAAUC,CAAW,EAAIC,EAAAA,SAAkBrB,CAAc,EAC1DsB,EAAYJ,EAAeD,EAAmBE,EAE9CI,EAAgB1B,IAASmB,GAAA,YAAAA,EAAO,QAAS,GAEzCQ,EAAgBC,GAAyC,CAC7D,MAAMC,EAAOD,EAAM,OAAO,QACrBP,GAAcE,EAAYM,CAAI,EAC/BX,GAAaF,EAAM,SAASX,EAAOwB,CAAI,EAC3CzB,GAAA,MAAAA,EAAWyB,EACb,EAEMC,EAAcF,GAAwC,CAC1DT,GAAA,MAAAA,EAAO,OAAOS,GACdtB,GAAA,MAAAA,EAASsB,EACX,EAEA,OACEG,EAAAA,IAAC,MAAA,CACC,UAAWC,EAAAA,KACTC,EAAO,MACPP,GAAiBO,EAAO,MACxB1B,GAAY0B,EAAO,SACnBxB,CAAA,EAEF,MACE,CACE,eAAgB,kBAAkBX,CAAK,QACvC,cAAe,kBAAkBA,CAAK,mBACtC,GAAGY,CAAA,EAIP,SAAAwB,EAAAA,KAAC,SAAM,UAAWF,EAAAA,KAAKC,EAAO,IAAKA,EAAOlC,CAAI,CAAC,EAC7C,SAAA,CAAAgC,EAAAA,IAAC,QAAA,CACC,IAAAnB,EACA,GAAAG,EACA,KAAAV,EACA,KAAK,WACL,KAAK,SACL,UAAW4B,EAAO,MAClB,QAASR,EACT,SAAUE,EACV,OAAQG,EACR,SAAAvB,EACA,eAAcmB,GAAiB,OAC9B,GAAGf,CAAA,CAAA,EAENoB,EAAAA,IAAC,OAAA,CAAK,UAAWE,EAAO,MAAO,cAAY,OACzC,SAAAF,EAAAA,IAAC,OAAA,CAAK,UAAWE,EAAO,KAAA,CAAO,EACjC,EACCpC,GAAS,MACRqC,EAAAA,KAAC,OAAA,CAAK,UAAWD,EAAO,MACrB,SAAA,CAAApC,EACAI,SACE,OAAA,CAAK,UAAWgC,EAAO,SAAU,cAAY,OAAO,SAAA,GAAA,CAErD,CAAA,CAAA,CAEJ,CAAA,CAAA,CAEJ,CAAA,CAAA,CAGN,CAAC"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { jsx as o, jsxs as p } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef as R, useId as V, useState as A } from "react";
|
|
3
|
+
import { clsx as b } from "clsx";
|
|
4
|
+
import { u as D } from "./formContext-B7ln1Miy.js";
|
|
5
|
+
const G = "_field_1hhz8_1", H = "_row_1hhz8_9", J = "_disabled_1hhz8_21", K = "_input_1hhz8_27", L = "_track_1hhz8_41", M = "_thumb_1hhz8_60", O = "_error_1hhz8_72", P = "_label_1hhz8_76", Q = "_required_1hhz8_81", T = "_sm_1hhz8_87", U = "_md_1hhz8_99", W = "_lg_1hhz8_111", t = {
|
|
6
|
+
field: G,
|
|
7
|
+
row: H,
|
|
8
|
+
disabled: J,
|
|
9
|
+
input: K,
|
|
10
|
+
track: L,
|
|
11
|
+
thumb: M,
|
|
12
|
+
error: O,
|
|
13
|
+
label: P,
|
|
14
|
+
required: Q,
|
|
15
|
+
sm: T,
|
|
16
|
+
md: U,
|
|
17
|
+
lg: W
|
|
18
|
+
}, et = R(function({
|
|
19
|
+
label: n,
|
|
20
|
+
color: d = "accent",
|
|
21
|
+
size: v = "md",
|
|
22
|
+
error: k,
|
|
23
|
+
required: w = !1,
|
|
24
|
+
checked: h,
|
|
25
|
+
defaultChecked: x = !1,
|
|
26
|
+
onChange: l,
|
|
27
|
+
name: s,
|
|
28
|
+
onBlur: a,
|
|
29
|
+
disabled: _ = !1,
|
|
30
|
+
id: N,
|
|
31
|
+
className: g,
|
|
32
|
+
style: q,
|
|
33
|
+
...S
|
|
34
|
+
}, y) {
|
|
35
|
+
const I = V(), j = N ?? I, r = D(), m = !!(r && s), e = r && s ? r.field(s) : void 0, f = h !== void 0 ? h : m ? !!r.values[s] : void 0, u = f !== void 0, [B, C] = A(x), F = u ? f : B, z = k ?? (e == null ? void 0 : e.error) ?? !1, $ = (c) => {
|
|
36
|
+
const i = c.target.checked;
|
|
37
|
+
u || C(i), m && r.setValue(s, i), l == null || l(i);
|
|
38
|
+
}, E = (c) => {
|
|
39
|
+
e == null || e.onBlur(c), a == null || a(c);
|
|
40
|
+
};
|
|
41
|
+
return /* @__PURE__ */ o(
|
|
42
|
+
"div",
|
|
43
|
+
{
|
|
44
|
+
className: b(
|
|
45
|
+
t.field,
|
|
46
|
+
z && t.error,
|
|
47
|
+
_ && t.disabled,
|
|
48
|
+
g
|
|
49
|
+
),
|
|
50
|
+
style: {
|
|
51
|
+
"--tz-btn-rgb": `var(--tz-color-${d}-rgb)`,
|
|
52
|
+
"--tz-btn-on": `var(--tz-color-${d}-contrast, #fff)`,
|
|
53
|
+
...q
|
|
54
|
+
},
|
|
55
|
+
children: /* @__PURE__ */ p("label", { className: b(t.row, t[v]), children: [
|
|
56
|
+
/* @__PURE__ */ o(
|
|
57
|
+
"input",
|
|
58
|
+
{
|
|
59
|
+
ref: y,
|
|
60
|
+
id: j,
|
|
61
|
+
name: s,
|
|
62
|
+
type: "checkbox",
|
|
63
|
+
role: "switch",
|
|
64
|
+
className: t.input,
|
|
65
|
+
checked: F,
|
|
66
|
+
onChange: $,
|
|
67
|
+
onBlur: E,
|
|
68
|
+
disabled: _,
|
|
69
|
+
"aria-invalid": z || void 0,
|
|
70
|
+
...S
|
|
71
|
+
}
|
|
72
|
+
),
|
|
73
|
+
/* @__PURE__ */ o("span", { className: t.track, "aria-hidden": "true", children: /* @__PURE__ */ o("span", { className: t.thumb }) }),
|
|
74
|
+
n != null && /* @__PURE__ */ p("span", { className: t.label, children: [
|
|
75
|
+
n,
|
|
76
|
+
w && /* @__PURE__ */ o("span", { className: t.required, "aria-hidden": "true", children: "*" })
|
|
77
|
+
] })
|
|
78
|
+
] })
|
|
79
|
+
}
|
|
80
|
+
);
|
|
81
|
+
});
|
|
82
|
+
export {
|
|
83
|
+
et as S
|
|
84
|
+
};
|
|
85
|
+
//# sourceMappingURL=Switch-Jh2Ch8GO.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Switch-
|
|
1
|
+
{"version":3,"file":"Switch-Jh2Ch8GO.js","sources":["../src/components/Switch/Switch.tsx"],"sourcesContent":["import {\n forwardRef,\n useId,\n useState,\n type ChangeEvent,\n type CSSProperties,\n type FocusEvent,\n type InputHTMLAttributes,\n type ReactNode,\n} from 'react'\nimport { clsx } from 'clsx'\nimport { useFormContext } from '../../form/formContext'\nimport type { ThemeColor } from '../../theme'\nimport styles from './Switch.module.css'\n\nexport type SwitchSize = 'sm' | 'md' | 'lg'\n\nexport interface SwitchProps extends Omit<\n InputHTMLAttributes<HTMLInputElement>,\n 'size' | 'color' | 'type' | 'onChange'\n> {\n /** Text shown to the right of the switch. */\n label?: ReactNode\n /** Theme palette token used for the \"on\" fill. Defaults to `accent`. */\n color?: ThemeColor\n /** Preset size — track/thumb dimensions and label font. */\n size?: SwitchSize\n /** Marks the field invalid — reddens the track ring (no helper text). */\n error?: boolean\n /** Adds a red asterisk after the label. */\n required?: boolean\n /** Controlled on/off state. */\n checked?: boolean\n /** Initial state for uncontrolled use. Defaults to `false`. */\n defaultChecked?: boolean\n /** Fires with the next on/off state. */\n onChange?: (checked: boolean) => void\n}\n\n/**\n * A toggle switch. The native `<input type=\"checkbox\" role=\"switch\">` is visually hidden but fully\n * accessible (keyboard + screen reader); a styled track + sliding thumb show the state, the track\n * filling with `color` when on. Controlled (`checked` + `onChange`) or uncontrolled (`defaultChecked`),\n * and — like the other fields — binds to a surrounding `<Form>` by `name` (its form value is a\n * `boolean`). `error` reddens the track (no message text). Styling uses `--tz-*` tokens only.\n */\nexport const Switch = forwardRef<HTMLInputElement, SwitchProps>(function Switch(\n {\n label,\n color = 'accent',\n size = 'md',\n error,\n required = false,\n checked,\n defaultChecked = false,\n onChange,\n name,\n onBlur,\n disabled = false,\n id: idProp,\n className,\n style,\n ...props\n },\n ref,\n) {\n const reactId = useId()\n const id = idProp ?? reactId\n\n // Auto-bind to a surrounding <Form> by `name` — the form value is a boolean.\n const form = useFormContext()\n const isFormBound = Boolean(form && name)\n const bound = form && name ? form.field(name) : undefined\n\n const externalChecked: boolean | undefined =\n checked !== undefined ? checked : isFormBound ? Boolean(form!.values[name!]) : undefined\n const isControlled = externalChecked !== undefined\n const [internal, setInternal] = useState<boolean>(defaultChecked)\n const isChecked = isControlled ? externalChecked! : internal\n\n const resolvedError = error ?? bound?.error ?? false\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n const next = event.target.checked\n if (!isControlled) setInternal(next)\n if (isFormBound) form!.setValue(name!, next)\n onChange?.(next)\n }\n\n const handleBlur = (event: FocusEvent<HTMLInputElement>) => {\n bound?.onBlur(event)\n onBlur?.(event)\n }\n\n return (\n <div\n className={clsx(\n styles.field,\n resolvedError && styles.error,\n disabled && styles.disabled,\n className,\n )}\n style={\n {\n '--tz-btn-rgb': `var(--tz-color-${color}-rgb)`,\n '--tz-btn-on': `var(--tz-color-${color}-contrast, #fff)`,\n ...style,\n } as CSSProperties\n }\n >\n <label className={clsx(styles.row, styles[size])}>\n <input\n ref={ref}\n id={id}\n name={name}\n type=\"checkbox\"\n role=\"switch\"\n className={styles.input}\n checked={isChecked}\n onChange={handleChange}\n onBlur={handleBlur}\n disabled={disabled}\n aria-invalid={resolvedError || undefined}\n {...props}\n />\n <span className={styles.track} aria-hidden=\"true\">\n <span className={styles.thumb} />\n </span>\n {label != null && (\n <span className={styles.label}>\n {label}\n {required && (\n <span className={styles.required} aria-hidden=\"true\">\n *\n </span>\n )}\n </span>\n )}\n </label>\n </div>\n )\n})\n"],"names":["Switch","forwardRef","label","color","size","error","required","checked","defaultChecked","onChange","name","onBlur","disabled","idProp","className","style","props","ref","reactId","useId","id","form","useFormContext","isFormBound","bound","externalChecked","isControlled","internal","setInternal","useState","isChecked","resolvedError","handleChange","event","next","handleBlur","jsx","clsx","styles","jsxs"],"mappings":";;;;;;;;;;;;;;;;;GA8CaA,KAASC,EAA0C,SAC9D;AAAA,EACE,OAAAC;AAAA,EACA,OAAAC,IAAQ;AAAA,EACR,MAAAC,IAAO;AAAA,EACP,OAAAC;AAAA,EACA,UAAAC,IAAW;AAAA,EACX,SAAAC;AAAA,EACA,gBAAAC,IAAiB;AAAA,EACjB,UAAAC;AAAA,EACA,MAAAC;AAAA,EACA,QAAAC;AAAA,EACA,UAAAC,IAAW;AAAA,EACX,IAAIC;AAAA,EACJ,WAAAC;AAAA,EACA,OAAAC;AAAA,EACA,GAAGC;AACL,GACAC,GACA;AACA,QAAMC,IAAUC,EAAA,GACVC,IAAKP,KAAUK,GAGfG,IAAOC,EAAA,GACPC,IAAc,GAAQF,KAAQX,IAC9Bc,IAAQH,KAAQX,IAAOW,EAAK,MAAMX,CAAI,IAAI,QAE1Ce,IACJlB,MAAY,SAAYA,IAAUgB,IAAc,EAAQF,EAAM,OAAOX,CAAK,IAAK,QAC3EgB,IAAeD,MAAoB,QACnC,CAACE,GAAUC,CAAW,IAAIC,EAAkBrB,CAAc,GAC1DsB,IAAYJ,IAAeD,IAAmBE,GAE9CI,IAAgB1B,MAASmB,KAAA,gBAAAA,EAAO,UAAS,IAEzCQ,IAAe,CAACC,MAAyC;AAC7D,UAAMC,IAAOD,EAAM,OAAO;AAC1B,IAAKP,KAAcE,EAAYM,CAAI,GAC/BX,KAAaF,EAAM,SAASX,GAAOwB,CAAI,GAC3CzB,KAAA,QAAAA,EAAWyB;AAAA,EACb,GAEMC,IAAa,CAACF,MAAwC;AAC1D,IAAAT,KAAA,QAAAA,EAAO,OAAOS,IACdtB,KAAA,QAAAA,EAASsB;AAAA,EACX;AAEA,SACE,gBAAAG;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QACTC,EAAO;AAAA,QACPP,KAAiBO,EAAO;AAAA,QACxB1B,KAAY0B,EAAO;AAAA,QACnBxB;AAAA,MAAA;AAAA,MAEF,OACE;AAAA,QACE,gBAAgB,kBAAkBX,CAAK;AAAA,QACvC,eAAe,kBAAkBA,CAAK;AAAA,QACtC,GAAGY;AAAA,MAAA;AAAA,MAIP,UAAA,gBAAAwB,EAAC,WAAM,WAAWF,EAAKC,EAAO,KAAKA,EAAOlC,CAAI,CAAC,GAC7C,UAAA;AAAA,QAAA,gBAAAgC;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,KAAAnB;AAAA,YACA,IAAAG;AAAA,YACA,MAAAV;AAAA,YACA,MAAK;AAAA,YACL,MAAK;AAAA,YACL,WAAW4B,EAAO;AAAA,YAClB,SAASR;AAAA,YACT,UAAUE;AAAA,YACV,QAAQG;AAAA,YACR,UAAAvB;AAAA,YACA,gBAAcmB,KAAiB;AAAA,YAC9B,GAAGf;AAAA,UAAA;AAAA,QAAA;AAAA,QAEN,gBAAAoB,EAAC,QAAA,EAAK,WAAWE,EAAO,OAAO,eAAY,QACzC,UAAA,gBAAAF,EAAC,QAAA,EAAK,WAAWE,EAAO,MAAA,CAAO,GACjC;AAAA,QACCpC,KAAS,QACR,gBAAAqC,EAAC,QAAA,EAAK,WAAWD,EAAO,OACrB,UAAA;AAAA,UAAApC;AAAA,UACAI,uBACE,QAAA,EAAK,WAAWgC,EAAO,UAAU,eAAY,QAAO,UAAA,IAAA,CAErD;AAAA,QAAA,EAAA,CAEJ;AAAA,MAAA,EAAA,CAEJ;AAAA,IAAA;AAAA,EAAA;AAGN,CAAC;"}
|