@techzyapp/ui-library 1.0.43 → 1.0.45
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/README.md +15 -14
- package/dist/{Accordion-B4vdZXIu.cjs → Accordion-CFyeLfPT.cjs} +2 -2
- package/dist/{Accordion-B4vdZXIu.cjs.map → Accordion-CFyeLfPT.cjs.map} +1 -1
- package/dist/{Accordion-DhFZ25KV.js → Accordion-DOrTQJB9.js} +2 -2
- package/dist/{Accordion-DhFZ25KV.js.map → Accordion-DOrTQJB9.js.map} +1 -1
- package/dist/{AdminRoot-BLHvXCvL.js → AdminRoot-BZ1v5vN9.js} +8 -8
- package/dist/{AdminRoot-BLHvXCvL.js.map → AdminRoot-BZ1v5vN9.js.map} +1 -1
- package/dist/{AdminRoot-D_g_TW30.cjs → AdminRoot-DJ4-UMAB.cjs} +2 -2
- package/dist/{AdminRoot-D_g_TW30.cjs.map → AdminRoot-DJ4-UMAB.cjs.map} +1 -1
- package/dist/Alert-BU7GlQna.js +70 -0
- package/dist/{Alert-D5E1PLkV.js.map → Alert-BU7GlQna.js.map} +1 -1
- package/dist/Alert-CVQOjuEq.cjs +2 -0
- package/dist/{Alert-B4XZDk16.cjs.map → Alert-CVQOjuEq.cjs.map} +1 -1
- package/dist/{AuthLayout-q8pbCGdt.js → AuthLayout-BI1wLuDl.js} +2 -2
- package/dist/{AuthLayout-q8pbCGdt.js.map → AuthLayout-BI1wLuDl.js.map} +1 -1
- package/dist/{AuthLayout-exuNQicH.cjs → AuthLayout-Bzlsvicf.cjs} +2 -2
- package/dist/{AuthLayout-exuNQicH.cjs.map → AuthLayout-Bzlsvicf.cjs.map} +1 -1
- package/dist/{Avatar-l48Ice6t.cjs → Avatar-BBqX1732.cjs} +2 -2
- package/dist/{Avatar-l48Ice6t.cjs.map → Avatar-BBqX1732.cjs.map} +1 -1
- package/dist/{Avatar-ClcmN0ba.js → Avatar-CaYyv5wk.js} +2 -2
- package/dist/{Avatar-ClcmN0ba.js.map → Avatar-CaYyv5wk.js.map} +1 -1
- package/dist/{AvatarGroup-l-KV3wdl.js → AvatarGroup-6fhm-van.js} +2 -2
- package/dist/{AvatarGroup-l-KV3wdl.js.map → AvatarGroup-6fhm-van.js.map} +1 -1
- package/dist/{AvatarGroup-CuvFX4di.cjs → AvatarGroup-DrkzAt1-.cjs} +2 -2
- package/dist/{AvatarGroup-CuvFX4di.cjs.map → AvatarGroup-DrkzAt1-.cjs.map} +1 -1
- package/dist/Breadcrumbs-BMz_YVPa.js +34 -0
- package/dist/{Breadcrumbs-M31xyok8.js.map → Breadcrumbs-BMz_YVPa.js.map} +1 -1
- package/dist/Breadcrumbs-BbC0o4JE.cjs +2 -0
- package/dist/{Breadcrumbs-DSUxcp6u.cjs.map → Breadcrumbs-BbC0o4JE.cjs.map} +1 -1
- package/dist/Button-C415LPw_.js +72 -0
- package/dist/{Button-CtADzomU.js.map → Button-C415LPw_.js.map} +1 -1
- package/dist/Button-mBZOvgyZ.cjs +2 -0
- package/dist/{Button-Q_5uA-zc.cjs.map → Button-mBZOvgyZ.cjs.map} +1 -1
- package/dist/{Calendar-CHLCv2s9.js → Calendar-B0f6h9-A.js} +5 -5
- package/dist/{Calendar-CHLCv2s9.js.map → Calendar-B0f6h9-A.js.map} +1 -1
- package/dist/{Calendar-BbbtMsZs.cjs → Calendar-hO051hfk.cjs} +2 -2
- package/dist/{Calendar-BbbtMsZs.cjs.map → Calendar-hO051hfk.cjs.map} +1 -1
- package/dist/{Card-CntRsQfm.cjs → Card-BdNr5row.cjs} +2 -2
- package/dist/{Card-CntRsQfm.cjs.map → Card-BdNr5row.cjs.map} +1 -1
- package/dist/{Card-Br9IB0yM.js → Card-ssUNaOF_.js} +4 -4
- package/dist/{Card-Br9IB0yM.js.map → Card-ssUNaOF_.js.map} +1 -1
- package/dist/Chip-BpJN4rzY.cjs +2 -0
- package/dist/{Chip-CrBizrvG.cjs.map → Chip-BpJN4rzY.cjs.map} +1 -1
- package/dist/Chip-C0x-6g2h.js +92 -0
- package/dist/{Chip-DYZ5w7VM.js.map → Chip-C0x-6g2h.js.map} +1 -1
- package/dist/ChoiceCardGroup-Cj_YFj6C.cjs +2 -0
- package/dist/{ChoiceCardGroup-C7Eengyd.cjs.map → ChoiceCardGroup-Cj_YFj6C.cjs.map} +1 -1
- package/dist/ChoiceCardGroup-D37XREKV.js +180 -0
- package/dist/{ChoiceCardGroup-q0yN-TeQ.js.map → ChoiceCardGroup-D37XREKV.js.map} +1 -1
- package/dist/CodeBlock-DKnWINdV.js +96 -0
- package/dist/{CodeBlock-B6Eqc4HR.js.map → CodeBlock-DKnWINdV.js.map} +1 -1
- package/dist/CodeBlock-DTrzN95i.cjs +2 -0
- package/dist/{CodeBlock-DW4uaZXM.cjs.map → CodeBlock-DTrzN95i.cjs.map} +1 -1
- package/dist/{ColorPicker-GsKIqJu8.js → ColorPicker-Bidev2DJ.js} +3 -3
- package/dist/{ColorPicker-GsKIqJu8.js.map → ColorPicker-Bidev2DJ.js.map} +1 -1
- package/dist/{ColorPicker-nhWd_nOW.cjs → ColorPicker-Doaegll4.cjs} +2 -2
- package/dist/{ColorPicker-nhWd_nOW.cjs.map → ColorPicker-Doaegll4.cjs.map} +1 -1
- package/dist/{ColorPickerPanel-BeAu83S6.cjs → ColorPickerPanel-048Fj7wv.cjs} +2 -2
- package/dist/{ColorPickerPanel-BeAu83S6.cjs.map → ColorPickerPanel-048Fj7wv.cjs.map} +1 -1
- package/dist/{ColorPickerPanel-BEcZePcT.js → ColorPickerPanel-DThSuUoz.js} +3 -3
- package/dist/{ColorPickerPanel-BEcZePcT.js.map → ColorPickerPanel-DThSuUoz.js.map} +1 -1
- package/dist/{ColorRamp-C-zRPhHj.cjs → ColorRamp-CGw4D9bf.cjs} +2 -2
- package/dist/{ColorRamp-C-zRPhHj.cjs.map → ColorRamp-CGw4D9bf.cjs.map} +1 -1
- package/dist/{ColorRamp-CeNgd8wF.js → ColorRamp-Reb0q69d.js} +2 -2
- package/dist/{ColorRamp-CeNgd8wF.js.map → ColorRamp-Reb0q69d.js.map} +1 -1
- package/dist/{ConfigProvider-Ci9Q2HLF.cjs → ConfigProvider-DBU6rOIA.cjs} +2 -2
- package/dist/{ConfigProvider-Ci9Q2HLF.cjs.map → ConfigProvider-DBU6rOIA.cjs.map} +1 -1
- package/dist/{ConfigProvider-Dqfu7UBU.js → ConfigProvider-DVDGtCUc.js} +2 -2
- package/dist/{ConfigProvider-Dqfu7UBU.js.map → ConfigProvider-DVDGtCUc.js.map} +1 -1
- package/dist/{CopyButton-Chr7SP5i.cjs → CopyButton-Cnab62vt.cjs} +2 -2
- package/dist/{CopyButton-Chr7SP5i.cjs.map → CopyButton-Cnab62vt.cjs.map} +1 -1
- package/dist/{CopyButton-Bidt2Vgp.js → CopyButton-Dm8-V4ku.js} +4 -4
- package/dist/{CopyButton-Bidt2Vgp.js.map → CopyButton-Dm8-V4ku.js.map} +1 -1
- package/dist/DashedButton-BX8hfY1x.cjs +2 -0
- package/dist/{DashedButton-Dw7xHgIp.cjs.map → DashedButton-BX8hfY1x.cjs.map} +1 -1
- package/dist/DashedButton-wcmXTYBw.js +58 -0
- package/dist/{DashedButton-csz6Jt_K.js.map → DashedButton-wcmXTYBw.js.map} +1 -1
- package/dist/{DatePicker-D7ZMOhWn.js → DatePicker-C4MTCmDn.js} +6 -6
- package/dist/{DatePicker-D7ZMOhWn.js.map → DatePicker-C4MTCmDn.js.map} +1 -1
- package/dist/{DatePicker-4rb34nPR.cjs → DatePicker-CaGeW_-j.cjs} +2 -2
- package/dist/{DatePicker-4rb34nPR.cjs.map → DatePicker-CaGeW_-j.cjs.map} +1 -1
- package/dist/DatePicker.module-BaQyKOUM.cjs +2 -0
- package/dist/{DatePicker.module-BDtTsg8M.cjs.map → DatePicker.module-BaQyKOUM.cjs.map} +1 -1
- package/dist/DatePicker.module-DoywSvLu.js +138 -0
- package/dist/{DatePicker.module-CMMQyEhG.js.map → DatePicker.module-DoywSvLu.js.map} +1 -1
- package/dist/{DateTimePicker-gDxM2CGy.js → DateTimePicker-B0CjHKPV.js} +9 -9
- package/dist/{DateTimePicker-gDxM2CGy.js.map → DateTimePicker-B0CjHKPV.js.map} +1 -1
- package/dist/{DateTimePicker-CVFzKzyA.cjs → DateTimePicker-DXKaAYey.cjs} +2 -2
- package/dist/{DateTimePicker-CVFzKzyA.cjs.map → DateTimePicker-DXKaAYey.cjs.map} +1 -1
- package/dist/DescriptionList-BSDwobDc.cjs +2 -0
- package/dist/{DescriptionList-BBvfABps.cjs.map → DescriptionList-BSDwobDc.cjs.map} +1 -1
- package/dist/{DescriptionList-Die3lRBW.js → DescriptionList-BkUS5egS.js} +69 -69
- package/dist/{DescriptionList-Die3lRBW.js.map → DescriptionList-BkUS5egS.js.map} +1 -1
- package/dist/Dropdown-C_y9_dVn.cjs +2 -0
- package/dist/Dropdown-C_y9_dVn.cjs.map +1 -0
- package/dist/Dropdown-D-D_Z1Jo.js +154 -0
- package/dist/Dropdown-D-D_Z1Jo.js.map +1 -0
- package/dist/{EmptyState-D5EKQjX1.cjs → EmptyState-CkkFHKrh.cjs} +2 -2
- package/dist/{EmptyState-D5EKQjX1.cjs.map → EmptyState-CkkFHKrh.cjs.map} +1 -1
- package/dist/{EmptyState-DRgER10x.js → EmptyState-DXoaPC7o.js} +3 -3
- package/dist/{EmptyState-DRgER10x.js.map → EmptyState-DXoaPC7o.js.map} +1 -1
- package/dist/{ErrorBoundary-CLfE2NjU.js → ErrorBoundary-CSP_Ctg6.js} +3 -3
- package/dist/{ErrorBoundary-CLfE2NjU.js.map → ErrorBoundary-CSP_Ctg6.js.map} +1 -1
- package/dist/{ErrorBoundary-DVcGWZd8.cjs → ErrorBoundary-tZjKtO28.cjs} +2 -2
- package/dist/{ErrorBoundary-DVcGWZd8.cjs.map → ErrorBoundary-tZjKtO28.cjs.map} +1 -1
- package/dist/{ErrorState-DJDQbHZY.cjs → ErrorState-JH4JdrTI.cjs} +2 -2
- package/dist/{ErrorState-DJDQbHZY.cjs.map → ErrorState-JH4JdrTI.cjs.map} +1 -1
- package/dist/{ErrorState-Dqw0AvmB.js → ErrorState-WYsly5-i.js} +8 -8
- package/dist/{ErrorState-Dqw0AvmB.js.map → ErrorState-WYsly5-i.js.map} +1 -1
- package/dist/FileCard-BIfPqeek.cjs +2 -0
- package/dist/{FileCard-BqMproT9.cjs.map → FileCard-BIfPqeek.cjs.map} +1 -1
- package/dist/{FileCard-kVnjcSlk.js → FileCard-D4TB3qGG.js} +33 -33
- package/dist/{FileCard-kVnjcSlk.js.map → FileCard-D4TB3qGG.js.map} +1 -1
- package/dist/FileUploader-DPVF76Ha.js +701 -0
- package/dist/FileUploader-DPVF76Ha.js.map +1 -0
- package/dist/FileUploader-YE_DfTNC.cjs +2 -0
- package/dist/FileUploader-YE_DfTNC.cjs.map +1 -0
- package/dist/{Flag-B1ZvZVXi.cjs → Flag-B6OhgwZr.cjs} +2 -2
- package/dist/{Flag-B1ZvZVXi.cjs.map → Flag-B6OhgwZr.cjs.map} +1 -1
- package/dist/{Flag-BEIqYQZg.js → Flag-Q3vI7cgt.js} +2 -2
- package/dist/{Flag-BEIqYQZg.js.map → Flag-Q3vI7cgt.js.map} +1 -1
- package/dist/{FullscreenToggle-BuQonKW8.js → FullscreenToggle-CxwGPLdd.js} +4 -4
- package/dist/{FullscreenToggle-BuQonKW8.js.map → FullscreenToggle-CxwGPLdd.js.map} +1 -1
- package/dist/{FullscreenToggle-CWlOXLss.cjs → FullscreenToggle-ipX55Nj4.cjs} +2 -2
- package/dist/{FullscreenToggle-CWlOXLss.cjs.map → FullscreenToggle-ipX55Nj4.cjs.map} +1 -1
- package/dist/Icon-B7DJn8Tw.js +5418 -0
- package/dist/Icon-B7DJn8Tw.js.map +1 -0
- package/dist/Icon-CBg21lKA.cjs +2 -0
- package/dist/Icon-CBg21lKA.cjs.map +1 -0
- package/dist/IconButton-U_sr2Ahy.cjs +2 -0
- package/dist/{IconButton-CiDPeKM4.cjs.map → IconButton-U_sr2Ahy.cjs.map} +1 -1
- package/dist/IconButton-re6xITGO.js +68 -0
- package/dist/{IconButton-BoURJOUD.js.map → IconButton-re6xITGO.js.map} +1 -1
- package/dist/ImageEditor-1n50vo_v.cjs +64 -0
- package/dist/ImageEditor-1n50vo_v.cjs.map +1 -0
- package/dist/ImageEditor-BwrG1fk7.js +2729 -0
- package/dist/ImageEditor-BwrG1fk7.js.map +1 -0
- package/dist/Link-BZjolIAF.js +48 -0
- package/dist/{Link-BQlvsu9V.js.map → Link-BZjolIAF.js.map} +1 -1
- package/dist/Link-CtttVM6w.cjs +2 -0
- package/dist/{Link-GZT51mKx.cjs.map → Link-CtttVM6w.cjs.map} +1 -1
- package/dist/{List-CKoNx21F.cjs → List-CLUXeaXS.cjs} +2 -2
- package/dist/{List-CKoNx21F.cjs.map → List-CLUXeaXS.cjs.map} +1 -1
- package/dist/{List-2Y3ktTcF.js → List-DS91CZUt.js} +2 -2
- package/dist/{List-2Y3ktTcF.js.map → List-DS91CZUt.js.map} +1 -1
- package/dist/ListItem-CguNjf-u.cjs +2 -0
- package/dist/{ListItem-DkCYXucd.cjs.map → ListItem-CguNjf-u.cjs.map} +1 -1
- package/dist/ListItem-Ezmdk7q-.js +76 -0
- package/dist/{ListItem-2Lr5_NRY.js.map → ListItem-Ezmdk7q-.js.map} +1 -1
- package/dist/{Loader-CnTuddK7.js → Loader-7v1QBvHY.js} +2 -2
- package/dist/{Loader-CnTuddK7.js.map → Loader-7v1QBvHY.js.map} +1 -1
- package/dist/{Loader-CAmRn8Oj.cjs → Loader-BE3SQr7W.cjs} +2 -2
- package/dist/{Loader-CAmRn8Oj.cjs.map → Loader-BE3SQr7W.cjs.map} +1 -1
- package/dist/{LocationPicker-Cns3fkYI.js → LocationPicker-BvKtZFq0.js} +8 -8
- package/dist/{LocationPicker-Cns3fkYI.js.map → LocationPicker-BvKtZFq0.js.map} +1 -1
- package/dist/{LocationPicker-BwQ6ULMF.cjs → LocationPicker-CVJ4jVn2.cjs} +2 -2
- package/dist/{LocationPicker-BwQ6ULMF.cjs.map → LocationPicker-CVJ4jVn2.cjs.map} +1 -1
- package/dist/Modal-CxODxl81.cjs +2 -0
- package/dist/Modal-CxODxl81.cjs.map +1 -0
- package/dist/Modal-DpoiMMM3.js +154 -0
- package/dist/Modal-DpoiMMM3.js.map +1 -0
- package/dist/MultiSelect-2GouMRTl.cjs +2 -0
- package/dist/{MultiSelect-DJ6tRseY.cjs.map → MultiSelect-2GouMRTl.cjs.map} +1 -1
- package/dist/MultiSelect-B7KwEhL5.js +219 -0
- package/dist/{MultiSelect-svEVZNbp.js.map → MultiSelect-B7KwEhL5.js.map} +1 -1
- package/dist/{NumberField-9ekoB1wS.js → NumberField-ThojS4K3.js} +4 -4
- package/dist/{NumberField-9ekoB1wS.js.map → NumberField-ThojS4K3.js.map} +1 -1
- package/dist/{NumberField-sokUuuBR.cjs → NumberField-o2z2QNK1.cjs} +2 -2
- package/dist/{NumberField-sokUuuBR.cjs.map → NumberField-o2z2QNK1.cjs.map} +1 -1
- package/dist/OtpField-BhZq44vV.cjs +2 -0
- package/dist/{OtpField-DlkGju72.cjs.map → OtpField-BhZq44vV.cjs.map} +1 -1
- package/dist/{OtpField-DA7zJwy9.js → OtpField-C3MlMZ2F.js} +61 -61
- package/dist/{OtpField-DA7zJwy9.js.map → OtpField-C3MlMZ2F.js.map} +1 -1
- package/dist/Overlay-CywFQfjm.cjs +2 -0
- package/dist/Overlay-CywFQfjm.cjs.map +1 -0
- package/dist/Overlay-DiL0ZARH.js +60 -0
- package/dist/Overlay-DiL0ZARH.js.map +1 -0
- package/dist/{PageError-vD8Dpfns.js → PageError-63Gk6fVC.js} +5 -5
- package/dist/{PageError-vD8Dpfns.js.map → PageError-63Gk6fVC.js.map} +1 -1
- package/dist/{PageError-DUN5PzDF.cjs → PageError-CCKWbrc5.cjs} +2 -2
- package/dist/{PageError-DUN5PzDF.cjs.map → PageError-CCKWbrc5.cjs.map} +1 -1
- package/dist/{PageLayout-CdObvxt7.js → PageLayout-BekkDBtT.js} +5 -5
- package/dist/{PageLayout-CdObvxt7.js.map → PageLayout-BekkDBtT.js.map} +1 -1
- package/dist/{PageLayout-BesuKuX6.cjs → PageLayout-CDPUYu6A.cjs} +2 -2
- package/dist/{PageLayout-BesuKuX6.cjs.map → PageLayout-CDPUYu6A.cjs.map} +1 -1
- package/dist/{PageNotFound-Cc5eZ6w3.js → PageNotFound-BD3zX3cd.js} +5 -5
- package/dist/{PageNotFound-Cc5eZ6w3.js.map → PageNotFound-BD3zX3cd.js.map} +1 -1
- package/dist/{PageNotFound-CfOAhmJ-.cjs → PageNotFound-CTR6htwa.cjs} +2 -2
- package/dist/{PageNotFound-CfOAhmJ-.cjs.map → PageNotFound-CTR6htwa.cjs.map} +1 -1
- package/dist/Pagination-BJvLUjQ0.cjs +2 -0
- package/dist/{Pagination-CAD9_Nr_.cjs.map → Pagination-BJvLUjQ0.cjs.map} +1 -1
- package/dist/Pagination-qKjISBJ9.js +139 -0
- package/dist/{Pagination-CX0S1RrF.js.map → Pagination-qKjISBJ9.js.map} +1 -1
- package/dist/{PaletteField-CpiEkXcB.cjs → PaletteField-CDS9CJW9.cjs} +2 -2
- package/dist/{PaletteField-CpiEkXcB.cjs.map → PaletteField-CDS9CJW9.cjs.map} +1 -1
- package/dist/{PaletteField-CVIwl2nV.js → PaletteField-y8KpR4Ap.js} +3 -3
- package/dist/{PaletteField-CVIwl2nV.js.map → PaletteField-y8KpR4Ap.js.map} +1 -1
- package/dist/PhoneField-Df3J6Hhg.cjs +2 -0
- package/dist/{PhoneField-Dlnnv4DU.cjs.map → PhoneField-Df3J6Hhg.cjs.map} +1 -1
- package/dist/{PhoneField-xHLTU-o5.js → PhoneField-OjsuevPx.js} +106 -106
- package/dist/{PhoneField-xHLTU-o5.js.map → PhoneField-OjsuevPx.js.map} +1 -1
- package/dist/{Popconfirm-Chlm_M5T.cjs → Popconfirm-BKzJ_EZy.cjs} +2 -2
- package/dist/{Popconfirm-Chlm_M5T.cjs.map → Popconfirm-BKzJ_EZy.cjs.map} +1 -1
- package/dist/{Popconfirm-DIlygJY8.js → Popconfirm-aCyniPnH.js} +4 -4
- package/dist/{Popconfirm-DIlygJY8.js.map → Popconfirm-aCyniPnH.js.map} +1 -1
- package/dist/{Progress-DqvKmyQW.cjs → Progress-DWOoLd8u.cjs} +2 -2
- package/dist/{Progress-DqvKmyQW.cjs.map → Progress-DWOoLd8u.cjs.map} +1 -1
- package/dist/{Progress-BAEhawtj.js → Progress-DzxbkcaD.js} +2 -2
- package/dist/{Progress-BAEhawtj.js.map → Progress-DzxbkcaD.js.map} +1 -1
- package/dist/{QrCode-Dqsk49vX.cjs → QrCode-C8uAPiHq.cjs} +2 -2
- package/dist/{QrCode-Dqsk49vX.cjs.map → QrCode-C8uAPiHq.cjs.map} +1 -1
- package/dist/{QrCode-D7BTYcW2.js → QrCode-DaJYqBc1.js} +2 -2
- package/dist/{QrCode-D7BTYcW2.js.map → QrCode-DaJYqBc1.js.map} +1 -1
- package/dist/{RemoveDialog-DZ-EqIfS.cjs → RemoveDialog-BnOtR6-q.cjs} +2 -2
- package/dist/{RemoveDialog-DZ-EqIfS.cjs.map → RemoveDialog-BnOtR6-q.cjs.map} +1 -1
- package/dist/{RemoveDialog-CQIm9GTH.js → RemoveDialog-MhEU5Zl3.js} +6 -6
- package/dist/{RemoveDialog-CQIm9GTH.js.map → RemoveDialog-MhEU5Zl3.js.map} +1 -1
- package/dist/RichTextEditor-Cnrnvv1f.cjs +2 -0
- package/dist/RichTextEditor-Cnrnvv1f.cjs.map +1 -0
- package/dist/RichTextEditor-zkoxujnO.js +1148 -0
- package/dist/RichTextEditor-zkoxujnO.js.map +1 -0
- package/dist/{RootLayout-Cl98ghy1.js → RootLayout-C4r9i5Go.js} +21 -21
- package/dist/{RootLayout-Cl98ghy1.js.map → RootLayout-C4r9i5Go.js.map} +1 -1
- package/dist/{RootLayout-s_Q_kSoS.cjs → RootLayout-Z9PuRfsa.cjs} +2 -2
- package/dist/{RootLayout-s_Q_kSoS.cjs.map → RootLayout-Z9PuRfsa.cjs.map} +1 -1
- package/dist/Select-CylqFHce.cjs +2 -0
- package/dist/{Select-BrjXCXtl.cjs.map → Select-CylqFHce.cjs.map} +1 -1
- package/dist/{Select-CG8UJL9R.js → Select-jT94L1vq.js} +47 -47
- package/dist/{Select-CG8UJL9R.js.map → Select-jT94L1vq.js.map} +1 -1
- package/dist/{Sidebar-CbPr34jd.js → Sidebar-B1O2RsbR.js} +59 -59
- package/dist/{Sidebar-CbPr34jd.js.map → Sidebar-B1O2RsbR.js.map} +1 -1
- package/dist/Sidebar-Bcm0fgVm.cjs +2 -0
- package/dist/{Sidebar-DLlqHvQJ.cjs.map → Sidebar-Bcm0fgVm.cjs.map} +1 -1
- package/dist/{Slider-DTnui01g.cjs → Slider-CV7ug0WF.cjs} +2 -2
- package/dist/{Slider-DTnui01g.cjs.map → Slider-CV7ug0WF.cjs.map} +1 -1
- package/dist/{Slider-B5iG-HSw.js → Slider-DC-ugZwT.js} +2 -2
- package/dist/{Slider-B5iG-HSw.js.map → Slider-DC-ugZwT.js.map} +1 -1
- package/dist/{SpeedDial-Be3SHkzw.js → SpeedDial-C6yiMUe8.js} +3 -3
- package/dist/{SpeedDial-Be3SHkzw.js.map → SpeedDial-C6yiMUe8.js.map} +1 -1
- package/dist/{SpeedDial-i5kxikmt.cjs → SpeedDial-DOgm2DDX.cjs} +2 -2
- package/dist/{SpeedDial-i5kxikmt.cjs.map → SpeedDial-DOgm2DDX.cjs.map} +1 -1
- package/dist/Stepper-BZdYGpBN.js +168 -0
- package/dist/{Stepper-BDQt-oVG.js.map → Stepper-BZdYGpBN.js.map} +1 -1
- package/dist/Stepper-DqM86TGV.cjs +2 -0
- package/dist/{Stepper-e8qBsKYW.cjs.map → Stepper-DqM86TGV.cjs.map} +1 -1
- package/dist/{SwatchPicker-0gnOvv7U.cjs → SwatchPicker-DCjE0T80.cjs} +2 -2
- package/dist/{SwatchPicker-0gnOvv7U.cjs.map → SwatchPicker-DCjE0T80.cjs.map} +1 -1
- package/dist/{SwatchPicker-BZHRELA-.js → SwatchPicker-DS4WY2eM.js} +2 -2
- package/dist/{SwatchPicker-BZHRELA-.js.map → SwatchPicker-DS4WY2eM.js.map} +1 -1
- package/dist/Table-BgaCwRDQ.cjs +2 -0
- package/dist/Table-BgaCwRDQ.cjs.map +1 -0
- package/dist/{Table-ChdM_vyi.js → Table-FZlVWoYi.js} +346 -346
- package/dist/Table-FZlVWoYi.js.map +1 -0
- package/dist/Tabs-BqQPkorY.js +193 -0
- package/dist/{Tabs-BxZrgozI.js.map → Tabs-BqQPkorY.js.map} +1 -1
- package/dist/Tabs-kGeyFhJ6.cjs +2 -0
- package/dist/{Tabs-C4kB1yfG.cjs.map → Tabs-kGeyFhJ6.cjs.map} +1 -1
- package/dist/{TagsField-Bg5BcQU-.cjs → TagsField-B_sjp48X.cjs} +2 -2
- package/dist/{TagsField-Bg5BcQU-.cjs.map → TagsField-B_sjp48X.cjs.map} +1 -1
- package/dist/{TagsField-DWlIt7XO.js → TagsField-ByTx9JXK.js} +5 -5
- package/dist/{TagsField-DWlIt7XO.js.map → TagsField-ByTx9JXK.js.map} +1 -1
- package/dist/{TextField-B-xqoDZR.cjs → TextField-CBYJIfau.cjs} +2 -2
- package/dist/{TextField-B-xqoDZR.cjs.map → TextField-CBYJIfau.cjs.map} +1 -1
- package/dist/{TextField-Dwx5GPxz.js → TextField-CyKIx-d-.js} +4 -4
- package/dist/{TextField-Dwx5GPxz.js.map → TextField-CyKIx-d-.js.map} +1 -1
- package/dist/{ThemeToggle-DFgv1bsh.cjs → ThemeToggle-D2dIqiBa.cjs} +2 -2
- package/dist/{ThemeToggle-DFgv1bsh.cjs.map → ThemeToggle-D2dIqiBa.cjs.map} +1 -1
- package/dist/{ThemeToggle-CK2USfgx.js → ThemeToggle-Dg6IishB.js} +4 -4
- package/dist/{ThemeToggle-CK2USfgx.js.map → ThemeToggle-Dg6IishB.js.map} +1 -1
- package/dist/TimeColumns-Cx8J5qzW.js +147 -0
- package/dist/{TimeColumns-BWcuu3l7.js.map → TimeColumns-Cx8J5qzW.js.map} +1 -1
- package/dist/TimeColumns-DVmK_T_P.cjs +2 -0
- package/dist/{TimeColumns-B8KTj-tc.cjs.map → TimeColumns-DVmK_T_P.cjs.map} +1 -1
- package/dist/{TimePicker-DjL15hz1.cjs → TimePicker-0nZOPRKp.cjs} +2 -2
- package/dist/{TimePicker-DjL15hz1.cjs.map → TimePicker-0nZOPRKp.cjs.map} +1 -1
- package/dist/{TimePicker-YMVHevpZ.js → TimePicker-sAhtvqQ4.js} +7 -7
- package/dist/{TimePicker-YMVHevpZ.js.map → TimePicker-sAhtvqQ4.js.map} +1 -1
- package/dist/Timeline-DOojNvLG.cjs +2 -0
- package/dist/Timeline-DOojNvLG.cjs.map +1 -0
- package/dist/Timeline-Dg03dwTN.js +87 -0
- package/dist/Timeline-Dg03dwTN.js.map +1 -0
- package/dist/{Toaster-pHN2pxrU.js → Toaster-BOW9rzLq.js} +3 -3
- package/dist/{Toaster-pHN2pxrU.js.map → Toaster-BOW9rzLq.js.map} +1 -1
- package/dist/{Toaster-9hZ5MuW7.cjs → Toaster-DYGo92ke.cjs} +2 -2
- package/dist/{Toaster-9hZ5MuW7.cjs.map → Toaster-DYGo92ke.cjs.map} +1 -1
- package/dist/ToggleButtonGroup-CGNRLxjg.cjs +2 -0
- package/dist/{ToggleButtonGroup-Ci_DFvdt.cjs.map → ToggleButtonGroup-CGNRLxjg.cjs.map} +1 -1
- package/dist/{ToggleButtonGroup-Mdskkjdh.js → ToggleButtonGroup-K6ZcrTZT.js} +37 -37
- package/dist/{ToggleButtonGroup-Mdskkjdh.js.map → ToggleButtonGroup-K6ZcrTZT.js.map} +1 -1
- package/dist/{TranslatedFields-SvS37hab.cjs → TranslatedFields-C_DuLotV.cjs} +2 -2
- package/dist/{TranslatedFields-SvS37hab.cjs.map → TranslatedFields-C_DuLotV.cjs.map} +1 -1
- package/dist/{TranslatedFields-BpWU5ZcG.js → TranslatedFields-CcE0td9p.js} +5 -5
- package/dist/{TranslatedFields-BpWU5ZcG.js.map → TranslatedFields-CcE0td9p.js.map} +1 -1
- package/dist/{UserCard-VPaexedS.cjs → UserCard-DLVptkLr.cjs} +2 -2
- package/dist/{UserCard-VPaexedS.cjs.map → UserCard-DLVptkLr.cjs.map} +1 -1
- package/dist/{UserCard-cmZrMvwL.js → UserCard-DeONbaKj.js} +5 -5
- package/dist/{UserCard-cmZrMvwL.js.map → UserCard-DeONbaKj.js.map} +1 -1
- package/dist/chunks/icons/{25-knEB8mSp.js → 25-BMMPtr_E.js} +4 -5
- package/dist/chunks/icons/{25-Dho_3EHD.cjs → 25-uATZNfXE.cjs} +1 -1
- package/dist/chunks/icons/{2b-CQJdcF1h.js → 2b-Brkug4c-.js} +10 -11
- package/dist/chunks/icons/{2b-C2_97u16.cjs → 2b-CIVRGp1R.cjs} +1 -1
- package/dist/chunks/icons/57-BLoIUlhF.js +27 -0
- package/dist/chunks/icons/57-D4zLdDZ1.cjs +1 -0
- package/dist/chunks/icons/{75-DqLkMUyj.cjs → 75-C2eJ2Tvr.cjs} +1 -1
- package/dist/chunks/icons/{75-D5RQw6IJ.js → 75-D16WojvG.js} +6 -7
- package/dist/chunks/icons/{7c-DpnA_JOJ.js → 7c-0j5Sno5_.js} +6 -7
- package/dist/chunks/icons/{7c-DEaFwltT.cjs → 7c-LUfAyp72.cjs} +1 -1
- package/dist/chunks/icons/8a-BJ_LOjmW.js +26 -0
- package/dist/chunks/icons/8a-CYkhOibI.cjs +1 -0
- package/dist/chunks/icons/97-Bx7FkkGJ.js +12 -0
- package/dist/chunks/icons/97-D7pUHrOX.cjs +1 -0
- package/dist/chunks/icons/{b7-BtHkI92Y.js → b7-DmmkevXf.js} +17 -18
- package/dist/chunks/icons/{b7-B-dB5jrV.cjs → b7-rI1GpsxW.cjs} +1 -1
- package/dist/chunks/icons/b8-De0yKEKv.js +28 -0
- package/dist/chunks/icons/b8-eR814BVJ.cjs +1 -0
- package/dist/chunks/icons/{b9-Bw942fE3.js → b9-CJO6ZdSw.js} +10 -11
- package/dist/chunks/icons/{b9-Be-J4RIp.cjs → b9-DZdWz9qg.cjs} +1 -1
- package/dist/chunks/icons/d5-BAPeb6B0.cjs +1 -0
- package/dist/chunks/icons/d5-BJJanOLe.js +21 -0
- package/dist/chunks/icons/d8--vRkIVal.js +19 -0
- package/dist/chunks/icons/d8-BfMys92X.cjs +1 -0
- package/dist/chunks/icons/dd-CARhkHmU.js +21 -0
- package/dist/chunks/icons/dd-D61yllMP.cjs +1 -0
- package/dist/components/Accordion/index.cjs +1 -1
- package/dist/components/Accordion/index.js +1 -1
- 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/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/index.cjs +1 -1
- package/dist/components/Card/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/DashedButton/index.cjs +1 -1
- package/dist/components/DashedButton/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/index.cjs +1 -1
- package/dist/components/DescriptionList/index.js +1 -1
- package/dist/components/Dropdown/index.cjs +1 -1
- package/dist/components/Dropdown/index.js +1 -1
- package/dist/components/EmptyState/index.cjs +1 -1
- package/dist/components/EmptyState/index.js +1 -1
- package/dist/components/ErrorState/index.cjs +1 -1
- package/dist/components/ErrorState/index.js +2 -2
- package/dist/components/FileCard/index.cjs +1 -1
- package/dist/components/FileCard/index.js +1 -1
- package/dist/components/FileUploader/FileUploader.d.cts +33 -5
- package/dist/components/FileUploader/FileUploader.d.ts +33 -5
- package/dist/components/FileUploader/FileUploaderEditDialog.d.cts +8 -18
- package/dist/components/FileUploader/FileUploaderEditDialog.d.ts +8 -18
- 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/FullscreenToggle/index.cjs +1 -1
- package/dist/components/FullscreenToggle/index.js +1 -1
- package/dist/components/Icon/index.cjs +1 -1
- package/dist/components/Icon/index.js +1 -1
- package/dist/components/IconButton/index.cjs +1 -1
- package/dist/components/IconButton/index.js +1 -1
- package/dist/components/ImageEditor/CropShapeMenu.d.cts +17 -0
- package/dist/components/ImageEditor/CropShapeMenu.d.ts +17 -0
- package/dist/components/ImageEditor/EditorStage.d.cts +27 -0
- package/dist/components/ImageEditor/EditorStage.d.ts +27 -0
- package/dist/components/ImageEditor/FilterStrip.d.cts +14 -0
- package/dist/components/ImageEditor/FilterStrip.d.ts +14 -0
- package/dist/components/ImageEditor/ImageEditor.d.cts +30 -0
- package/dist/components/ImageEditor/ImageEditor.d.ts +30 -0
- package/dist/components/ImageEditor/ResizePanel.d.cts +19 -0
- package/dist/components/ImageEditor/ResizePanel.d.ts +19 -0
- package/dist/components/ImageEditor/RulerSlider.d.cts +37 -0
- package/dist/components/ImageEditor/RulerSlider.d.ts +37 -0
- package/dist/components/ImageEditor/core/affine.d.cts +11 -0
- package/dist/components/ImageEditor/core/affine.d.ts +11 -0
- package/dist/components/ImageEditor/core/editor.d.cts +69 -0
- package/dist/components/ImageEditor/core/editor.d.ts +69 -0
- package/dist/components/ImageEditor/core/geometry.d.cts +112 -0
- package/dist/components/ImageEditor/core/geometry.d.ts +112 -0
- package/dist/components/ImageEditor/core/load.d.cts +26 -0
- package/dist/components/ImageEditor/core/load.d.ts +26 -0
- package/dist/components/ImageEditor/core/matrix.d.cts +55 -0
- package/dist/components/ImageEditor/core/matrix.d.ts +55 -0
- package/dist/components/ImageEditor/core/pixels.d.cts +24 -0
- package/dist/components/ImageEditor/core/pixels.d.ts +24 -0
- package/dist/components/ImageEditor/core/redact.d.cts +37 -0
- package/dist/components/ImageEditor/core/redact.d.ts +37 -0
- package/dist/components/ImageEditor/core/render.d.cts +19 -0
- package/dist/components/ImageEditor/core/render.d.ts +19 -0
- package/dist/components/ImageEditor/core/scene.d.cts +47 -0
- package/dist/components/ImageEditor/core/scene.d.ts +47 -0
- package/dist/components/ImageEditor/core/spring.d.cts +17 -0
- package/dist/components/ImageEditor/core/spring.d.ts +17 -0
- package/dist/components/ImageEditor/core/types.d.cts +104 -0
- package/dist/components/ImageEditor/core/types.d.ts +104 -0
- package/dist/components/ImageEditor/core/webgl.d.cts +55 -0
- package/dist/components/ImageEditor/core/webgl.d.ts +55 -0
- package/dist/components/ImageEditor/index.cjs +2 -0
- package/dist/components/ImageEditor/index.cjs.map +1 -0
- package/dist/components/ImageEditor/index.d.cts +6 -0
- package/dist/components/ImageEditor/index.d.ts +6 -0
- package/dist/components/ImageEditor/index.js +9 -0
- package/dist/components/ImageEditor/index.js.map +1 -0
- package/dist/components/Link/index.cjs +1 -1
- package/dist/components/Link/index.js +1 -1
- package/dist/components/List/index.cjs +1 -1
- package/dist/components/List/index.js +2 -2
- package/dist/components/Loader/index.cjs +1 -1
- package/dist/components/Loader/index.js +1 -1
- package/dist/components/LocationPicker/index.cjs +1 -1
- package/dist/components/LocationPicker/index.js +1 -1
- 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/NumberField/index.cjs +1 -1
- package/dist/components/NumberField/index.js +1 -1
- package/dist/components/OtpField/index.cjs +1 -1
- package/dist/components/OtpField/index.js +1 -1
- package/dist/components/PageError/index.cjs +1 -1
- package/dist/components/PageError/index.js +1 -1
- package/dist/components/PageLayout/index.cjs +1 -1
- package/dist/components/PageLayout/index.js +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/index.cjs +1 -1
- package/dist/components/PhoneField/index.js +1 -1
- package/dist/components/Popconfirm/index.cjs +1 -1
- package/dist/components/Popconfirm/index.js +1 -1
- package/dist/components/Progress/index.cjs +1 -1
- package/dist/components/Progress/index.js +1 -1
- package/dist/components/QrCode/index.cjs +1 -1
- package/dist/components/QrCode/index.js +1 -1
- package/dist/components/RemoveDialog/index.cjs +1 -1
- package/dist/components/RemoveDialog/index.js +1 -1
- package/dist/components/RichTextEditor/RichTextEditor.d.cts +3 -2
- package/dist/components/RichTextEditor/RichTextEditor.d.ts +3 -2
- package/dist/components/RichTextEditor/index.cjs +1 -1
- package/dist/components/RichTextEditor/index.js +1 -1
- package/dist/components/RichTextEditor/nodes/ImageNode.d.cts +22 -7
- package/dist/components/RichTextEditor/nodes/ImageNode.d.ts +22 -7
- package/dist/components/RichTextEditor/nodes/VideoNode.d.cts +4 -4
- package/dist/components/RichTextEditor/nodes/VideoNode.d.ts +4 -4
- package/dist/components/RootLayout/index.cjs +1 -1
- package/dist/components/RootLayout/index.js +1 -1
- 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/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/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/Timeline/Timeline.d.cts +16 -4
- package/dist/components/Timeline/Timeline.d.ts +16 -4
- package/dist/components/Timeline/TimelineItem.d.cts +12 -6
- package/dist/components/Timeline/TimelineItem.d.ts +12 -6
- package/dist/components/Timeline/index.cjs +1 -1
- package/dist/components/Timeline/index.d.cts +1 -1
- package/dist/components/Timeline/index.d.ts +1 -1
- package/dist/components/Timeline/index.js +1 -1
- package/dist/components/Timeline/timelineContext.d.cts +3 -2
- package/dist/components/Timeline/timelineContext.d.ts +3 -2
- package/dist/components/Toast/index.cjs +1 -1
- package/dist/components/Toast/index.js +1 -1
- package/dist/components/ToggleButton/index.cjs +1 -1
- package/dist/components/ToggleButton/index.js +1 -1
- package/dist/components/TranslatedFields/index.cjs +1 -1
- package/dist/components/TranslatedFields/index.js +1 -1
- package/dist/components/UserCard/index.cjs +1 -1
- package/dist/components/UserCard/index.js +1 -1
- package/dist/components/index.d.cts +1 -0
- package/dist/components/index.d.ts +1 -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 +164 -159
- 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/icons.cjs +1 -1
- package/dist/entries/icons.js +1 -1
- package/dist/entries/theme.cjs +1 -1
- package/dist/entries/theme.js +1 -1
- package/dist/i18n/messages.d.cts +66 -4
- package/dist/i18n/messages.d.ts +66 -4
- package/dist/icons/names.d.cts +3 -3
- package/dist/icons/names.d.ts +3 -3
- package/dist/index.cjs +1 -1
- package/dist/index.css +1 -1
- package/dist/index.js +161 -156
- package/dist/index.js.map +1 -1
- package/dist/{messages-BiRLMy1E.js → messages-DeQuvGln.js} +139 -47
- package/dist/messages-DeQuvGln.js.map +1 -0
- package/dist/{messages-C_fRRCg6.cjs → messages-dL9MkVze.cjs} +9 -9
- package/dist/messages-dL9MkVze.cjs.map +1 -0
- package/dist/{useHomeTo-DdmOGy09.js → useHomeTo-BL3e8Sc6.js} +2 -2
- package/dist/{useHomeTo-DdmOGy09.js.map → useHomeTo-BL3e8Sc6.js.map} +1 -1
- package/dist/{useHomeTo-HCkVzGTu.cjs → useHomeTo-W1PDW5CU.cjs} +2 -2
- package/dist/{useHomeTo-HCkVzGTu.cjs.map → useHomeTo-W1PDW5CU.cjs.map} +1 -1
- package/dist/{useOptionMenu-EiyIkC3E.js → useOptionMenu-BkKiZ6Ax.js} +6 -6
- package/dist/{useOptionMenu-EiyIkC3E.js.map → useOptionMenu-BkKiZ6Ax.js.map} +1 -1
- package/dist/{useOptionMenu-BqCj10_a.cjs → useOptionMenu-CVl7VHXl.cjs} +2 -2
- package/dist/{useOptionMenu-BqCj10_a.cjs.map → useOptionMenu-CVl7VHXl.cjs.map} +1 -1
- package/package.json +1 -6
- package/dist/Alert-B4XZDk16.cjs +0 -2
- package/dist/Alert-D5E1PLkV.js +0 -70
- package/dist/Breadcrumbs-DSUxcp6u.cjs +0 -2
- package/dist/Breadcrumbs-M31xyok8.js +0 -34
- package/dist/Button-CtADzomU.js +0 -72
- package/dist/Button-Q_5uA-zc.cjs +0 -2
- package/dist/Chip-CrBizrvG.cjs +0 -2
- package/dist/Chip-DYZ5w7VM.js +0 -92
- package/dist/ChoiceCardGroup-C7Eengyd.cjs +0 -2
- package/dist/ChoiceCardGroup-q0yN-TeQ.js +0 -180
- package/dist/CodeBlock-B6Eqc4HR.js +0 -96
- package/dist/CodeBlock-DW4uaZXM.cjs +0 -2
- package/dist/DashedButton-Dw7xHgIp.cjs +0 -2
- package/dist/DashedButton-csz6Jt_K.js +0 -58
- package/dist/DatePicker.module-BDtTsg8M.cjs +0 -2
- package/dist/DatePicker.module-CMMQyEhG.js +0 -138
- package/dist/DescriptionList-BBvfABps.cjs +0 -2
- package/dist/Dropdown-CMjURWYd.cjs +0 -2
- package/dist/Dropdown-CMjURWYd.cjs.map +0 -1
- package/dist/Dropdown-CnDBlB02.js +0 -146
- package/dist/Dropdown-CnDBlB02.js.map +0 -1
- package/dist/FileCard-BqMproT9.cjs +0 -2
- package/dist/FileUploader-BimFH5d8.cjs +0 -2
- package/dist/FileUploader-BimFH5d8.cjs.map +0 -1
- package/dist/FileUploader-LJIMh5_b.js +0 -707
- package/dist/FileUploader-LJIMh5_b.js.map +0 -1
- package/dist/Icon-B6lz-V0A.cjs +0 -2
- package/dist/Icon-B6lz-V0A.cjs.map +0 -1
- package/dist/Icon-D5TxgfCc.js +0 -5404
- package/dist/Icon-D5TxgfCc.js.map +0 -1
- package/dist/IconButton-BoURJOUD.js +0 -68
- package/dist/IconButton-CiDPeKM4.cjs +0 -2
- package/dist/Link-BQlvsu9V.js +0 -48
- package/dist/Link-GZT51mKx.cjs +0 -2
- package/dist/ListItem-2Lr5_NRY.js +0 -76
- package/dist/ListItem-DkCYXucd.cjs +0 -2
- package/dist/Modal-CYcVOzID.js +0 -206
- package/dist/Modal-CYcVOzID.js.map +0 -1
- package/dist/Modal-DwY3jGHE.cjs +0 -2
- package/dist/Modal-DwY3jGHE.cjs.map +0 -1
- package/dist/MultiSelect-DJ6tRseY.cjs +0 -2
- package/dist/MultiSelect-svEVZNbp.js +0 -219
- package/dist/OtpField-DlkGju72.cjs +0 -2
- package/dist/Pagination-CAD9_Nr_.cjs +0 -2
- package/dist/Pagination-CX0S1RrF.js +0 -139
- package/dist/PhoneField-Dlnnv4DU.cjs +0 -2
- package/dist/RichTextEditor-Ba1G_qXu.cjs +0 -2
- package/dist/RichTextEditor-Ba1G_qXu.cjs.map +0 -1
- package/dist/RichTextEditor-CJcbxQ6H.js +0 -916
- package/dist/RichTextEditor-CJcbxQ6H.js.map +0 -1
- package/dist/Select-BrjXCXtl.cjs +0 -2
- package/dist/Sidebar-DLlqHvQJ.cjs +0 -2
- package/dist/Stepper-BDQt-oVG.js +0 -168
- package/dist/Stepper-e8qBsKYW.cjs +0 -2
- package/dist/Table-C14fRX1U.cjs +0 -2
- package/dist/Table-C14fRX1U.cjs.map +0 -1
- package/dist/Table-ChdM_vyi.js.map +0 -1
- package/dist/Tabs-BxZrgozI.js +0 -193
- package/dist/Tabs-C4kB1yfG.cjs +0 -2
- package/dist/TimeColumns-B8KTj-tc.cjs +0 -2
- package/dist/TimeColumns-BWcuu3l7.js +0 -147
- package/dist/Timeline-Cb1krSlo.js +0 -70
- package/dist/Timeline-Cb1krSlo.js.map +0 -1
- package/dist/Timeline-CmluHBIT.cjs +0 -2
- package/dist/Timeline-CmluHBIT.cjs.map +0 -1
- package/dist/ToggleButtonGroup-Ci_DFvdt.cjs +0 -2
- package/dist/chunks/icons/57-Bxh2lSz-.cjs +0 -1
- package/dist/chunks/icons/57-CkmrDM9A.js +0 -28
- package/dist/chunks/icons/8a-CThAqelS.js +0 -27
- package/dist/chunks/icons/8a-DRBAtpxY.cjs +0 -1
- package/dist/chunks/icons/97-J9NBhX2o.js +0 -14
- package/dist/chunks/icons/97-r2YXIQ_T.cjs +0 -1
- package/dist/chunks/icons/b8-CyIivk3C.cjs +0 -1
- package/dist/chunks/icons/b8-DcK0w8WM.js +0 -29
- package/dist/chunks/icons/d5-3fWtNlXW.js +0 -20
- package/dist/chunks/icons/d5-CoG_Hfw9.cjs +0 -1
- package/dist/chunks/icons/d8-DsebfeMy.cjs +0 -1
- package/dist/chunks/icons/d8-DtOvDDrr.js +0 -20
- package/dist/chunks/icons/dd-BXVES9Ib.js +0 -22
- package/dist/chunks/icons/dd-beaqCKss.cjs +0 -1
- package/dist/messages-BiRLMy1E.js.map +0 -1
- package/dist/messages-C_fRRCg6.cjs.map +0 -1
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { jsx as g, jsxs as A } from "react/jsx-runtime";
|
|
2
2
|
import { forwardRef as fe, useId as De, useState as ee, useMemo as ue, useRef as B, useCallback as Re, useLayoutEffect as $e } from "react";
|
|
3
3
|
import { clsx as ne } from "clsx";
|
|
4
|
-
import { o as
|
|
5
|
-
import { u as
|
|
6
|
-
import { b as
|
|
7
|
-
import { T as
|
|
8
|
-
import { u as
|
|
9
|
-
import { T as
|
|
4
|
+
import { o as je, u as Ue } from "./useOptionalPeer-49f3XcO5.js";
|
|
5
|
+
import { u as ke } from "./formContext-B7ln1Miy.js";
|
|
6
|
+
import { b as Ee } from "./Icon-B7DJn8Tw.js";
|
|
7
|
+
import { T as Me } from "./TextField-CyKIx-d-.js";
|
|
8
|
+
import { u as Ve, O as We } from "./useOptionMenu-BkKiZ6Ax.js";
|
|
9
|
+
import { T as de } from "./Typography-ChSuxgkc.js";
|
|
10
10
|
import { f as y } from "./TextField.module-6gYcR9TL.js";
|
|
11
|
-
import { a as Be, u as Ge } from "./ConfigProvider-
|
|
12
|
-
const Y =
|
|
11
|
+
import { a as Be, u as Ge } from "./ConfigProvider-DVDGtCUc.js";
|
|
12
|
+
const Y = je(
|
|
13
13
|
"libphonenumber-js",
|
|
14
14
|
"PhoneField",
|
|
15
15
|
() => import("libphonenumber-js")
|
|
@@ -23,14 +23,14 @@ function gn(t) {
|
|
|
23
23
|
const e = Y.get();
|
|
24
24
|
return e ? typeof t == "string" && t.trim() !== "" && e.isValidPhoneNumber(t) : (Y.load(), !1);
|
|
25
25
|
}
|
|
26
|
-
function
|
|
26
|
+
function pe(t) {
|
|
27
27
|
return String.fromCodePoint(
|
|
28
28
|
...[...t.toUpperCase()].map((e) => 127462 + e.charCodeAt(0) - 65)
|
|
29
29
|
);
|
|
30
30
|
}
|
|
31
31
|
const G = /* @__PURE__ */ new Map();
|
|
32
32
|
function he(t, e) {
|
|
33
|
-
var
|
|
33
|
+
var i;
|
|
34
34
|
if (!G.has(e))
|
|
35
35
|
try {
|
|
36
36
|
G.set(e, new Intl.DisplayNames([e], { type: "region" }));
|
|
@@ -38,7 +38,7 @@ function he(t, e) {
|
|
|
38
38
|
G.set(e, null);
|
|
39
39
|
}
|
|
40
40
|
try {
|
|
41
|
-
return ((
|
|
41
|
+
return ((i = G.get(e)) == null ? void 0 : i.of(t)) ?? t;
|
|
42
42
|
} catch {
|
|
43
43
|
return t;
|
|
44
44
|
}
|
|
@@ -67,61 +67,61 @@ const qe = {
|
|
|
67
67
|
};
|
|
68
68
|
function Ke(t, e) {
|
|
69
69
|
var c, a;
|
|
70
|
-
const [
|
|
71
|
-
return [r == null ? void 0 : r.toUpperCase(), He[
|
|
70
|
+
const [i, r] = t.split("-"), s = typeof navigator < "u" ? (a = (c = navigator.language) == null ? void 0 : c.split("-")[1]) == null ? void 0 : a.toUpperCase() : void 0;
|
|
71
|
+
return [r == null ? void 0 : r.toUpperCase(), He[i == null ? void 0 : i.toLowerCase()], s, "US"].find((d) => d && e.includes(d)) ?? e[0];
|
|
72
72
|
}
|
|
73
73
|
const Je = (t) => t.replace(/\D/g, "");
|
|
74
|
-
function me(t, e,
|
|
75
|
-
return $(e) === t ? e : [
|
|
74
|
+
function me(t, e, i, r) {
|
|
75
|
+
return $(e) === t ? e : [i, qe[t], ...r.filter((o) => $(o) === t)].find((o) => o && r.includes(o)) ?? e;
|
|
76
76
|
}
|
|
77
|
-
function L(t, e,
|
|
78
|
-
const
|
|
77
|
+
function L(t, e, i, r) {
|
|
78
|
+
const s = t.trimStart(), o = Je(s);
|
|
79
79
|
if (!o)
|
|
80
80
|
return {
|
|
81
81
|
e164: "",
|
|
82
82
|
country: e,
|
|
83
83
|
national: "",
|
|
84
84
|
valid: !1,
|
|
85
|
-
display:
|
|
85
|
+
display: s.startsWith("+") ? "+" : ""
|
|
86
86
|
};
|
|
87
|
-
if (
|
|
88
|
-
const O = new (f()).AsYouType(),
|
|
87
|
+
if (s.startsWith("+")) {
|
|
88
|
+
const O = new (f()).AsYouType(), F = O.input(`+${o}`), S = O.getCallingCode(), v = f().parsePhoneNumberFromString(`+${o}`), I = S ? me(S, e, (v == null ? void 0 : v.country) ?? O.getCountry(), r) : e, j = `+${o}`;
|
|
89
89
|
return {
|
|
90
|
-
e164:
|
|
90
|
+
e164: j,
|
|
91
91
|
country: I,
|
|
92
92
|
national: S ? o.slice(S.length) : "",
|
|
93
|
-
valid: f().isValidPhoneNumber(
|
|
94
|
-
display:
|
|
93
|
+
valid: f().isValidPhoneNumber(j),
|
|
94
|
+
display: F
|
|
95
95
|
};
|
|
96
96
|
}
|
|
97
|
-
const c = $(e), a = f().parsePhoneNumberFromString(o, e),
|
|
97
|
+
const c = $(e), a = f().parsePhoneNumberFromString(o, e), d = (a == null ? void 0 : a.nationalNumber) ?? o.replace(/^0+/, ""), P = d ? `+${c}${d}` : "", D = i === "international" ? new (f()).AsYouType(e).input(`+${c}${d}`) : new (f()).AsYouType(e).input(o);
|
|
98
98
|
return {
|
|
99
99
|
e164: P,
|
|
100
100
|
country: e,
|
|
101
|
-
national:
|
|
101
|
+
national: d,
|
|
102
102
|
valid: P !== "" && f().isValidPhoneNumber(P),
|
|
103
103
|
display: D
|
|
104
104
|
};
|
|
105
105
|
}
|
|
106
|
-
function te(t, e,
|
|
106
|
+
function te(t, e, i, r) {
|
|
107
107
|
if (!t) return { country: e, display: "" };
|
|
108
|
-
const
|
|
109
|
-
if (
|
|
108
|
+
const s = f().parsePhoneNumberFromString(t);
|
|
109
|
+
if (s)
|
|
110
110
|
return {
|
|
111
|
-
country: me(
|
|
112
|
-
display:
|
|
111
|
+
country: me(s.countryCallingCode, e, s.country, r),
|
|
112
|
+
display: i === "national" ? s.formatNational() : s.formatInternational()
|
|
113
113
|
};
|
|
114
|
-
const o = L(t, e, "international", r), c =
|
|
114
|
+
const o = L(t, e, "international", r), c = i === "national" && o.national ? new (f()).AsYouType(o.country).input(o.national) : o.display;
|
|
115
115
|
return { country: o.country, display: c };
|
|
116
116
|
}
|
|
117
117
|
function Qe(t, e) {
|
|
118
118
|
if (e <= 0) return t.startsWith("+") ? 1 : 0;
|
|
119
|
-
let
|
|
119
|
+
let i = 0;
|
|
120
120
|
for (let r = 0; r < t.length; r++)
|
|
121
|
-
if (/\d/.test(t[r]) &&
|
|
121
|
+
if (/\d/.test(t[r]) && i++, i === e) return r + 1;
|
|
122
122
|
return t.length;
|
|
123
123
|
}
|
|
124
|
-
const Xe = "
|
|
124
|
+
const Xe = "_phoneField_1eja1_4", Ze = "_country_1eja1_9", ze = "_flag_1eja1_37", en = "_code_1eja1_42", nn = "_chevron_1eja1_46", tn = "_chevronOpen_1eja1_50", on = "_dial_1eja1_55", C = {
|
|
125
125
|
phoneField: Xe,
|
|
126
126
|
country: Ze,
|
|
127
127
|
flag: ze,
|
|
@@ -131,42 +131,42 @@ const Xe = "_phoneField_sbp1s_4", Ze = "_country_sbp1s_9", ze = "_flag_sbp1s_35"
|
|
|
131
131
|
dial: on
|
|
132
132
|
}, rn = fe(function({
|
|
133
133
|
value: e,
|
|
134
|
-
defaultValue:
|
|
134
|
+
defaultValue: i,
|
|
135
135
|
onChange: r,
|
|
136
|
-
defaultCountry:
|
|
136
|
+
defaultCountry: s,
|
|
137
137
|
countries: o,
|
|
138
138
|
preferredCountries: c = [],
|
|
139
139
|
format: a = "national",
|
|
140
|
-
label:
|
|
140
|
+
label: d,
|
|
141
141
|
helperText: P,
|
|
142
142
|
error: D,
|
|
143
143
|
required: O,
|
|
144
|
-
size:
|
|
144
|
+
size: F = "md",
|
|
145
145
|
fullWidth: S = !0,
|
|
146
146
|
name: v,
|
|
147
147
|
disabled: I = !1,
|
|
148
|
-
id:
|
|
148
|
+
id: j,
|
|
149
149
|
className: ye,
|
|
150
150
|
style: ge,
|
|
151
151
|
onBlur: q,
|
|
152
152
|
placeholder: ve,
|
|
153
|
-
...
|
|
153
|
+
...Ne
|
|
154
154
|
}, R) {
|
|
155
|
-
const w = Be(), { language: T } = Ge(),
|
|
156
|
-
() =>
|
|
155
|
+
const w = Be(), { language: T } = Ge(), p = o ?? Ye(), Ce = De(), U = j ?? Ce, oe = `${U}-helper`, k = ke(), E = !!(k && v), N = E ? k.field(v) : void 0, [Fe, _e] = ee(i ?? ""), x = e !== void 0 ? e : E ? k.values[v] ?? "" : Fe, H = D ?? (N == null ? void 0 : N.error) ?? !1, K = P ?? (N == null ? void 0 : N.helperText), re = ue(
|
|
156
|
+
() => s && p.includes(s) ? s : Ke(T, p),
|
|
157
157
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
158
|
-
[
|
|
159
|
-
), [
|
|
160
|
-
() => te(x, re, a,
|
|
161
|
-
), [
|
|
162
|
-
() => te(x, re, a,
|
|
158
|
+
[s, T, p.join()]
|
|
159
|
+
), [_, J] = ee(
|
|
160
|
+
() => te(x, re, a, p).country
|
|
161
|
+
), [M, ie] = ee(
|
|
162
|
+
() => te(x, re, a, p).display
|
|
163
163
|
), Q = B(x);
|
|
164
164
|
if (Q.current !== x) {
|
|
165
165
|
Q.current = x;
|
|
166
|
-
const n = te(x,
|
|
167
|
-
J(n.country),
|
|
166
|
+
const n = te(x, _, a, p);
|
|
167
|
+
J(n.country), ie(n.display);
|
|
168
168
|
}
|
|
169
|
-
const X = B(null),
|
|
169
|
+
const X = B(null), be = Re(
|
|
170
170
|
(n) => {
|
|
171
171
|
X.current = n, typeof R == "function" ? R(n) : R && (R.current = n);
|
|
172
172
|
},
|
|
@@ -177,8 +177,8 @@ const Xe = "_phoneField_sbp1s_4", Ze = "_country_sbp1s_9", ze = "_flag_sbp1s_35"
|
|
|
177
177
|
const n = Z.current;
|
|
178
178
|
n != null && (Z.current = null, (h = X.current) == null || h.setSelectionRange(n, n));
|
|
179
179
|
});
|
|
180
|
-
const
|
|
181
|
-
Q.current = n.e164,
|
|
180
|
+
const se = (n) => {
|
|
181
|
+
Q.current = n.e164, ie(n.display), n.country !== _ && J(n.country), e === void 0 && !E && _e(n.e164), E && k.setValue(v, n.e164), r == null || r(n.e164, {
|
|
182
182
|
country: n.country,
|
|
183
183
|
national: n.national,
|
|
184
184
|
valid: n.valid
|
|
@@ -188,95 +188,95 @@ const Xe = "_phoneField_sbp1s_4", Ze = "_country_sbp1s_9", ze = "_flag_sbp1s_35"
|
|
|
188
188
|
let u = h.value;
|
|
189
189
|
const l = h.selectionStart ?? u.length;
|
|
190
190
|
let m = u.slice(0, l).replace(/\D/g, "").length;
|
|
191
|
-
const xe =
|
|
192
|
-
if (u.length <
|
|
193
|
-
let Ae = 0,
|
|
194
|
-
for (let
|
|
195
|
-
if (/\d/.test(u[
|
|
196
|
-
|
|
191
|
+
const xe = M.replace(/\D/g, "");
|
|
192
|
+
if (u.length < M.length && u.replace(/\D/g, "") === xe && m > 0) {
|
|
193
|
+
let Ae = 0, V = -1;
|
|
194
|
+
for (let W = 0; W < u.length; W++)
|
|
195
|
+
if (/\d/.test(u[W]) && ++Ae === m) {
|
|
196
|
+
V = W;
|
|
197
197
|
break;
|
|
198
198
|
}
|
|
199
|
-
|
|
199
|
+
V >= 0 && (u = u.slice(0, V) + u.slice(V + 1)), m -= 1;
|
|
200
200
|
}
|
|
201
|
-
const z = L(u,
|
|
202
|
-
Z.current = l >= h.value.length ? z.display.length : Qe(z.display, m),
|
|
201
|
+
const z = L(u, _, a, p);
|
|
202
|
+
Z.current = l >= h.value.length ? z.display.length : Qe(z.display, m), se(z);
|
|
203
203
|
}, le = B(null), Oe = ue(() => {
|
|
204
204
|
const n = (l) => {
|
|
205
205
|
const m = $(l);
|
|
206
206
|
return {
|
|
207
207
|
value: l,
|
|
208
208
|
label: he(l, T),
|
|
209
|
-
icon: /* @__PURE__ */ g("span", { className:
|
|
209
|
+
icon: /* @__PURE__ */ g("span", { className: C.flag, "aria-hidden": "true", children: pe(l) }),
|
|
210
210
|
keywords: [l, m, `+${m}`],
|
|
211
|
-
trailing: /* @__PURE__ */ A("span", { className:
|
|
211
|
+
trailing: /* @__PURE__ */ A("span", { className: C.dial, children: [
|
|
212
212
|
"+",
|
|
213
213
|
m
|
|
214
214
|
] })
|
|
215
215
|
};
|
|
216
|
-
}, h = c.filter((l) =>
|
|
216
|
+
}, h = c.filter((l) => p.includes(l)).map(n), u = p.filter((l) => !c.includes(l)).map(n).sort((l, m) => l.label.localeCompare(m.label, T));
|
|
217
217
|
return h.length === 0 ? u : [
|
|
218
218
|
...h.map((l) => ({ ...l, group: w("phoneField.suggested") })),
|
|
219
219
|
...u.map((l) => ({ ...l, group: w("phoneField.allCountries") }))
|
|
220
220
|
];
|
|
221
|
-
}, [
|
|
222
|
-
const h = L(
|
|
223
|
-
J(n),
|
|
224
|
-
},
|
|
225
|
-
idBase: `${
|
|
221
|
+
}, [p, c, T, w]), Se = (n) => {
|
|
222
|
+
const h = L(M, _, a, p).national;
|
|
223
|
+
J(n), se({ ...L(h, n, a, p), country: n });
|
|
224
|
+
}, b = Ve({
|
|
225
|
+
idBase: `${U}-country`,
|
|
226
226
|
options: Oe,
|
|
227
|
-
isSelected: (n) => n.value ===
|
|
227
|
+
isSelected: (n) => n.value === _,
|
|
228
228
|
onPick: (n) => Se(n.value),
|
|
229
229
|
searchable: !0,
|
|
230
230
|
disabled: I,
|
|
231
231
|
// after a pick / Esc, typing continues in the number
|
|
232
232
|
focusRef: X
|
|
233
233
|
}), Ie = (n) => {
|
|
234
|
-
|
|
235
|
-
}, we = K != null ? oe : void 0, ae =
|
|
234
|
+
N == null || N.onBlur(n), q == null || q(n);
|
|
235
|
+
}, we = K != null ? oe : void 0, ae = F === "sm" ? 16 : F === "md" ? 14 : 12, ce = $(_), Te = he(_, T);
|
|
236
236
|
return /* @__PURE__ */ A(
|
|
237
237
|
"div",
|
|
238
238
|
{
|
|
239
239
|
className: ne(
|
|
240
240
|
y.field,
|
|
241
|
-
y[
|
|
241
|
+
y[F],
|
|
242
242
|
S && y.fullWidth,
|
|
243
243
|
H && y.error,
|
|
244
244
|
I && y.disabled,
|
|
245
|
-
|
|
245
|
+
C.phoneField,
|
|
246
246
|
ye
|
|
247
247
|
),
|
|
248
248
|
style: ge,
|
|
249
249
|
children: [
|
|
250
|
-
|
|
251
|
-
/* @__PURE__ */ g(
|
|
250
|
+
d != null && /* @__PURE__ */ A("label", { htmlFor: U, className: y.label, children: [
|
|
251
|
+
/* @__PURE__ */ g(de, { as: "span", variant: "bodySmall", color: "muted", children: d }),
|
|
252
252
|
O && /* @__PURE__ */ g("span", { className: y.required, "aria-hidden": "true", children: "*" })
|
|
253
253
|
] }),
|
|
254
|
-
/* @__PURE__ */ A("div", { ref: le, className: ne(y.control,
|
|
254
|
+
/* @__PURE__ */ A("div", { ref: le, className: ne(y.control, C.control), children: [
|
|
255
255
|
/* @__PURE__ */ A(
|
|
256
256
|
"button",
|
|
257
257
|
{
|
|
258
258
|
type: "button",
|
|
259
|
-
className:
|
|
259
|
+
className: C.country,
|
|
260
260
|
"aria-haspopup": "listbox",
|
|
261
|
-
"aria-expanded":
|
|
262
|
-
"aria-controls":
|
|
261
|
+
"aria-expanded": b.open,
|
|
262
|
+
"aria-controls": b.open ? b.listboxId : void 0,
|
|
263
263
|
"aria-label": `${w("phoneField.country")}: ${Te} (+${ce})`,
|
|
264
264
|
disabled: I,
|
|
265
|
-
onClick:
|
|
265
|
+
onClick: b.toggleMenu,
|
|
266
266
|
onKeyDown: (n) => {
|
|
267
|
-
(n.key === "ArrowDown" || n.key === "ArrowUp") && !
|
|
267
|
+
(n.key === "ArrowDown" || n.key === "ArrowUp") && !b.open && (n.preventDefault(), b.openMenu());
|
|
268
268
|
},
|
|
269
269
|
children: [
|
|
270
|
-
/* @__PURE__ */ g("span", { className:
|
|
271
|
-
a === "national" && /* @__PURE__ */ A("span", { className:
|
|
270
|
+
/* @__PURE__ */ g("span", { className: C.flag, "aria-hidden": "true", children: pe(_) }),
|
|
271
|
+
a === "national" && /* @__PURE__ */ A("span", { className: C.code, children: [
|
|
272
272
|
"+",
|
|
273
273
|
ce
|
|
274
274
|
] }),
|
|
275
275
|
/* @__PURE__ */ g(
|
|
276
|
-
|
|
276
|
+
Ee,
|
|
277
277
|
{
|
|
278
278
|
name: "ArrowDown4",
|
|
279
|
-
className: ne(
|
|
279
|
+
className: ne(C.chevron, b.open && C.chevronOpen),
|
|
280
280
|
style: { width: ae, height: ae },
|
|
281
281
|
"aria-hidden": "true"
|
|
282
282
|
}
|
|
@@ -287,36 +287,36 @@ const Xe = "_phoneField_sbp1s_4", Ze = "_country_sbp1s_9", ze = "_flag_sbp1s_35"
|
|
|
287
287
|
/* @__PURE__ */ g(
|
|
288
288
|
"input",
|
|
289
289
|
{
|
|
290
|
-
ref:
|
|
291
|
-
id:
|
|
290
|
+
ref: be,
|
|
291
|
+
id: U,
|
|
292
292
|
name: v,
|
|
293
293
|
type: "tel",
|
|
294
294
|
inputMode: "tel",
|
|
295
295
|
autoComplete: "tel",
|
|
296
296
|
className: y.input,
|
|
297
|
-
value:
|
|
297
|
+
value: M,
|
|
298
298
|
placeholder: ve,
|
|
299
299
|
onChange: Pe,
|
|
300
300
|
onBlur: Ie,
|
|
301
301
|
disabled: I,
|
|
302
302
|
"aria-invalid": H || void 0,
|
|
303
303
|
"aria-describedby": we,
|
|
304
|
-
...
|
|
304
|
+
...Ne
|
|
305
305
|
}
|
|
306
306
|
)
|
|
307
307
|
] }),
|
|
308
308
|
/* @__PURE__ */ g(
|
|
309
|
-
|
|
309
|
+
We,
|
|
310
310
|
{
|
|
311
|
-
menu:
|
|
311
|
+
menu: b,
|
|
312
312
|
anchorRef: le,
|
|
313
|
-
size:
|
|
313
|
+
size: F,
|
|
314
314
|
searchPlaceholder: w("phoneField.search"),
|
|
315
315
|
ariaLabel: w("phoneField.country")
|
|
316
316
|
}
|
|
317
317
|
),
|
|
318
318
|
K != null && /* @__PURE__ */ g(
|
|
319
|
-
|
|
319
|
+
de,
|
|
320
320
|
{
|
|
321
321
|
as: "span",
|
|
322
322
|
id: oe,
|
|
@@ -330,34 +330,34 @@ const Xe = "_phoneField_sbp1s_4", Ze = "_country_sbp1s_9", ze = "_flag_sbp1s_35"
|
|
|
330
330
|
}
|
|
331
331
|
);
|
|
332
332
|
}), vn = fe(
|
|
333
|
-
function(e,
|
|
334
|
-
const { module: r } =
|
|
335
|
-
if (r) return /* @__PURE__ */ g(rn, { ref:
|
|
333
|
+
function(e, i) {
|
|
334
|
+
const { module: r } = Ue(Y);
|
|
335
|
+
if (r) return /* @__PURE__ */ g(rn, { ref: i, ...e });
|
|
336
336
|
const {
|
|
337
|
-
label:
|
|
337
|
+
label: s,
|
|
338
338
|
helperText: o,
|
|
339
339
|
error: c,
|
|
340
340
|
required: a,
|
|
341
|
-
size:
|
|
341
|
+
size: d,
|
|
342
342
|
fullWidth: P = !0,
|
|
343
343
|
className: D,
|
|
344
344
|
style: O,
|
|
345
|
-
placeholder:
|
|
345
|
+
placeholder: F
|
|
346
346
|
} = e;
|
|
347
347
|
return /* @__PURE__ */ g(
|
|
348
|
-
|
|
348
|
+
Me,
|
|
349
349
|
{
|
|
350
|
-
ref:
|
|
350
|
+
ref: i,
|
|
351
351
|
type: "tel",
|
|
352
|
-
label:
|
|
352
|
+
label: s,
|
|
353
353
|
helperText: o,
|
|
354
354
|
error: c,
|
|
355
355
|
required: a,
|
|
356
|
-
size:
|
|
356
|
+
size: d,
|
|
357
357
|
fullWidth: P,
|
|
358
358
|
className: D,
|
|
359
359
|
style: O,
|
|
360
|
-
placeholder:
|
|
360
|
+
placeholder: F,
|
|
361
361
|
value: e.value ?? e.defaultValue ?? "",
|
|
362
362
|
readOnly: !0,
|
|
363
363
|
disabled: !0
|
|
@@ -369,4 +369,4 @@ export {
|
|
|
369
369
|
vn as P,
|
|
370
370
|
gn as i
|
|
371
371
|
};
|
|
372
|
-
//# sourceMappingURL=PhoneField-
|
|
372
|
+
//# sourceMappingURL=PhoneField-OjsuevPx.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PhoneField-xHLTU-o5.js","sources":["../src/components/PhoneField/phone.ts","../src/components/PhoneField/PhoneField.tsx"],"sourcesContent":["import type * as PhoneLibModule from 'libphonenumber-js'\nimport type { CountryCode } from 'libphonenumber-js'\nimport { optionalPeer } from '../../hooks/useOptionalPeer'\n\n/**\n * `libphonenumber-js` is an optional peer, loaded **lazily** (see `optionalPeer`) — never imported\n * statically, so apps that don't install it still build + run when they import the barrel. PhoneField\n * waits for it on mount; the helpers below run only once it's loaded (`lib()`).\n */\nexport const phonePeer = optionalPeer<typeof PhoneLibModule>(\n 'libphonenumber-js',\n 'PhoneField',\n () => import('libphonenumber-js'),\n)\nconst lib = () => phonePeer.get()!\n\n/** An ISO-3166 alpha-2 country code, as `libphonenumber-js` knows it (`'GE'`, `'US'`, …). */\nexport type PhoneCountry = CountryCode\n/** How the number is shown in the input while typing (the value is always E.164). */\nexport type PhoneFormat = 'national' | 'international'\n\nlet allCountries: readonly PhoneCountry[] | undefined\n/** Every country `libphonenumber-js` has metadata for (once loaded). */\nexport function getPhoneCountries(): readonly PhoneCountry[] {\n return (allCountries ??= lib().getCountries())\n}\n\n/** The country's calling code without the `+` — `'GE'` → `'995'`. */\nexport const callingCodeOf = (country: PhoneCountry): string => lib().getCountryCallingCode(country)\n\n/**\n * `true` for a complete, valid number (E.164 or any parseable international form). Use it in a schema:\n * `phone: z.string().refine(isValidPhone, 'Enter a valid phone number')`. Needs `libphonenumber-js`\n * loaded — it is once any PhoneField has mounted; before that it starts the load and returns `false`.\n */\nexport function isValidPhone(value: unknown): boolean {\n const loaded = phonePeer.get()\n // not loaded yet (no PhoneField mounted so far) → start loading and report \"not valid\" for now\n if (!loaded) {\n void phonePeer.load()\n return false\n }\n return typeof value === 'string' && value.trim() !== '' && loaded.isValidPhoneNumber(value)\n}\n\n/** A flag emoji from the two regional-indicator letters — no image assets (Windows shows the letters). */\nexport function flagEmoji(country: string): string {\n return String.fromCodePoint(\n ...[...country.toUpperCase()].map((c) => 0x1f1e6 + c.charCodeAt(0) - 65),\n )\n}\n\nconst displayNamesCache = new Map<string, Intl.DisplayNames | null>()\n/** The country's name in `locale` via `Intl.DisplayNames` (no catalog to ship); falls back to the code. */\nexport function countryName(country: string, locale: string): string {\n if (!displayNamesCache.has(locale)) {\n try {\n displayNamesCache.set(locale, new Intl.DisplayNames([locale], { type: 'region' }))\n } catch {\n displayNamesCache.set(locale, null)\n }\n }\n try {\n return displayNamesCache.get(locale)?.of(country) ?? country\n } catch {\n return country\n }\n}\n\n// the main country for a calling code shared by several (a partial \"+44…\" parses as Guernsey otherwise)\nconst MAIN_FOR_CODE: Record<string, PhoneCountry> = {\n '1': 'US',\n '7': 'RU',\n '39': 'IT',\n '44': 'GB',\n '47': 'NO',\n '61': 'AU',\n '212': 'MA',\n '262': 'RE',\n '290': 'SH',\n '358': 'FI',\n '590': 'GP',\n '599': 'CW',\n}\n// base UI language → its usual country, for the default when the locale carries no region\nconst LANGUAGE_COUNTRY: Record<string, PhoneCountry> = {\n ka: 'GE',\n en: 'US',\n es: 'ES',\n de: 'DE',\n it: 'IT',\n fr: 'FR',\n ru: 'RU',\n}\n\n/** The default country: the locale's region → its language's usual country → the browser's region → US. */\nexport function detectCountry(locale: string, allowed: readonly PhoneCountry[]): PhoneCountry {\n const [base, region] = locale.split('-')\n const browser =\n typeof navigator !== 'undefined' ? navigator.language?.split('-')[1]?.toUpperCase() : undefined\n const candidates = [region?.toUpperCase(), LANGUAGE_COUNTRY[base?.toLowerCase()], browser, 'US']\n return (candidates.find((c) => c && allowed.includes(c as PhoneCountry)) ??\n allowed[0]) as PhoneCountry\n}\n\n/** The result of reading what's in the input. */\nexport interface PhoneReading {\n /** The canonical value — `'+995555123456'`, or `''` when empty. */\n e164: string\n /** The country the number belongs to (may switch when a `+code` is typed). */\n country: PhoneCountry\n /** The national significant number — digits only, no trunk `0`. */\n national: string\n /** A complete, valid number. */\n valid: boolean\n /** What the input should show (formatted as you type). */\n display: string\n}\n\nconst digitsOf = (s: string) => s.replace(/\\D/g, '')\n\n/** Which allowed country a `+code…` number belongs to — keep the current one when it shares the code. */\nfunction countryForCode(\n code: string,\n current: PhoneCountry,\n detected: PhoneCountry | undefined,\n allowed: readonly PhoneCountry[],\n): PhoneCountry {\n if (callingCodeOf(current) === code) return current\n const pick = [detected, MAIN_FOR_CODE[code], ...allowed.filter((c) => callingCodeOf(c) === code)]\n return (pick.find((c) => c && allowed.includes(c)) as PhoneCountry | undefined) ?? current\n}\n\n/** Read raw input text → the canonical value + the formatted display, as the user types. */\nexport function readPhoneInput(\n raw: string,\n country: PhoneCountry,\n format: PhoneFormat,\n allowed: readonly PhoneCountry[],\n): PhoneReading {\n const text = raw.trimStart()\n const digits = digitsOf(text)\n if (!digits) {\n return {\n e164: '',\n country,\n national: '',\n valid: false,\n display: text.startsWith('+') ? '+' : '',\n }\n }\n\n // an explicit \"+code…\" (typed or pasted) — the calling code decides the country\n if (text.startsWith('+')) {\n const typer = new (lib().AsYouType)()\n const display = typer.input(`+${digits}`)\n const code = typer.getCallingCode()\n const parsed = lib().parsePhoneNumberFromString(`+${digits}`)\n const next = code\n ? countryForCode(code, country, parsed?.country ?? typer.getCountry(), allowed)\n : country\n const e164 = `+${digits}`\n return {\n e164,\n country: next,\n national: code ? digits.slice(code.length) : '',\n valid: lib().isValidPhoneNumber(e164),\n display,\n }\n }\n\n // national digits under the selected country (a leading trunk \"0\" is dropped from the value)\n const code = callingCodeOf(country)\n const parsed = lib().parsePhoneNumberFromString(digits, country)\n const national = parsed?.nationalNumber ?? digits.replace(/^0+/, '')\n const e164 = national ? `+${code}${national}` : ''\n const display =\n format === 'international'\n ? new (lib().AsYouType)(country).input(`+${code}${national}`)\n : new (lib().AsYouType)(country).input(digits)\n return {\n e164,\n country,\n national,\n valid: e164 !== '' && lib().isValidPhoneNumber(e164),\n display,\n }\n}\n\n/** Derive the country + display from an E.164 value (initial / external value changes). */\nexport function phoneFromValue(\n value: string,\n fallback: PhoneCountry,\n format: PhoneFormat,\n allowed: readonly PhoneCountry[],\n): { country: PhoneCountry; display: string } {\n if (!value) return { country: fallback, display: '' }\n const parsed = lib().parsePhoneNumberFromString(value)\n if (parsed) {\n const country = countryForCode(parsed.countryCallingCode, fallback, parsed.country, allowed)\n return {\n country,\n display: format === 'national' ? parsed.formatNational() : parsed.formatInternational(),\n }\n }\n const reading = readPhoneInput(value, fallback, 'international', allowed)\n const display =\n format === 'national' && reading.national\n ? new (lib().AsYouType)(reading.country).input(reading.national)\n : reading.display\n return { country: reading.country, display }\n}\n\n/** Caret index in `display` right after its `n`-th digit — keeps the caret put while reformatting. */\nexport function caretAfterDigits(display: string, n: number): number {\n if (n <= 0) return display.startsWith('+') ? 1 : 0\n let seen = 0\n for (let i = 0; i < display.length; i++) {\n if (/\\d/.test(display[i])) seen++\n if (seen === n) return i + 1\n }\n return display.length\n}\n","import {\n forwardRef,\n useCallback,\n useId,\n useLayoutEffect,\n useMemo,\n useRef,\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 { useLanguage, useT } from '../../theme'\nimport { useOptionalPeer } from '../../hooks/useOptionalPeer'\nimport { useFormContext } from '../../form/formContext'\nimport { Icon } from '../Icon'\nimport { TextField } from '../TextField'\nimport { OptionMenu } from '../OptionMenu/OptionMenu'\nimport { useOptionMenu, type SelectOption } from '../OptionMenu/useOptionMenu'\nimport { Typography } from '../Typography'\nimport fieldStyles from '../TextField/TextField.module.css'\nimport {\n callingCodeOf,\n getPhoneCountries,\n caretAfterDigits,\n countryName,\n detectCountry,\n flagEmoji,\n phoneFromValue,\n phonePeer,\n readPhoneInput,\n type PhoneCountry,\n type PhoneFormat,\n} from './phone'\nimport styles from './PhoneField.module.css'\n\nexport type PhoneFieldSize = 'sm' | 'md' | 'lg'\n\n/** Extra details handed to `onChange` alongside the E.164 value. */\nexport interface PhoneFieldChangeMeta {\n /** The number's country (ISO alpha-2). */\n country: PhoneCountry\n /** The national significant number — digits only, no trunk `0`. */\n national: string\n /** A complete, valid number for that country. */\n valid: boolean\n}\n\nexport interface PhoneFieldProps extends Omit<\n InputHTMLAttributes<HTMLInputElement>,\n 'value' | 'defaultValue' | 'onChange' | 'type' | 'size' | 'color'\n> {\n /** The number in **E.164** (`'+995555123456'`) — the only form the field emits. `''` when empty. */\n value?: string\n /** Initial E.164 value for uncontrolled use. */\n defaultValue?: string\n /** Fires with the E.164 value (`''` when cleared) and `{ country, national, valid }`. */\n onChange?: (value: string, meta: PhoneFieldChangeMeta) => void\n /** The country to start with. Defaults to one derived from the UI language / browser locale. */\n defaultCountry?: PhoneCountry\n /** Restrict the selectable countries (e.g. only where you operate). Defaults to all. */\n countries?: readonly PhoneCountry[]\n /** Countries pinned to the top of the list, in this order. */\n preferredCountries?: readonly PhoneCountry[]\n /**\n * How the number reads while typing — `national` (default: `555 12 34 56`, the calling code lives in\n * the country button) or `international` (`+995 555 12 34 56`). The value is E.164 either way.\n */\n format?: PhoneFormat\n /** Field label. */\n label?: ReactNode\n /** Helper / validation text under the field. */\n helperText?: ReactNode\n /** Error state (red border + helper). */\n error?: boolean\n /** Shows a required asterisk. */\n required?: boolean\n /** `sm` / `md` / `lg` — control height + type. Defaults to `md`. */\n size?: PhoneFieldSize\n /** Stretch to the container. Defaults to `true`. */\n fullWidth?: boolean\n}\n\n/** The field itself — rendered once `libphonenumber-js` has loaded. */\nconst PhoneFieldInner = forwardRef<HTMLInputElement, PhoneFieldProps>(function PhoneFieldInner(\n {\n value,\n defaultValue,\n onChange,\n defaultCountry,\n countries: countriesProp,\n preferredCountries = [],\n format = 'national',\n label,\n helperText,\n error,\n required,\n size = 'md',\n fullWidth = true,\n name,\n disabled = false,\n id: idProp,\n className,\n style,\n onBlur,\n placeholder,\n ...props\n },\n ref,\n) {\n const t = useT()\n const { language } = useLanguage()\n const countries = countriesProp ?? getPhoneCountries()\n const reactId = useId()\n const id = idProp ?? reactId\n const helperId = `${id}-helper`\n\n // ── value: controlled / form-bound / uncontrolled — always E.164 ──\n const form = useFormContext()\n const isFormBound = Boolean(form && name)\n const bound = isFormBound ? form!.field(name!) : undefined\n const [internal, setInternal] = useState(defaultValue ?? '')\n const currentValue =\n value !== undefined\n ? value\n : isFormBound\n ? ((form!.values[name!] as string | undefined) ?? '')\n : internal\n const resolvedError = error ?? bound?.error ?? false\n const resolvedHelperText = helperText ?? bound?.helperText\n\n const fallbackCountry = useMemo<PhoneCountry>(\n () =>\n defaultCountry && countries.includes(defaultCountry)\n ? defaultCountry\n : detectCountry(language, countries),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [defaultCountry, language, countries.join()],\n )\n\n const [country, setCountry] = useState<PhoneCountry>(\n () => phoneFromValue(currentValue, fallbackCountry, format, countries).country,\n )\n const [display, setDisplay] = useState(\n () => phoneFromValue(currentValue, fallbackCountry, format, countries).display,\n )\n\n // re-derive the display when the value changes from OUTSIDE (a reset / a controlled update) — the\n // values we emit ourselves are skipped, so formatting never fights the user mid-typing\n const lastEmitted = useRef(currentValue)\n if (lastEmitted.current !== currentValue) {\n lastEmitted.current = currentValue\n const next = phoneFromValue(currentValue, country, format, countries)\n setCountry(next.country)\n setDisplay(next.display)\n }\n\n // caret restore after reformatting\n const innerRef = useRef<HTMLInputElement | null>(null)\n const setInputRef = useCallback(\n (node: HTMLInputElement | null) => {\n innerRef.current = node\n if (typeof ref === 'function') ref(node)\n else if (ref) (ref as { current: HTMLInputElement | null }).current = node\n },\n [ref],\n )\n const pendingCaret = useRef<number | null>(null)\n useLayoutEffect(() => {\n const pos = pendingCaret.current\n if (pos == null) return\n pendingCaret.current = null\n innerRef.current?.setSelectionRange(pos, pos)\n })\n\n const emit = (reading: ReturnType<typeof readPhoneInput>) => {\n lastEmitted.current = reading.e164\n setDisplay(reading.display)\n if (reading.country !== country) setCountry(reading.country)\n if (value === undefined && !isFormBound) setInternal(reading.e164)\n if (isFormBound) form!.setValue(name!, reading.e164)\n onChange?.(reading.e164, {\n country: reading.country,\n national: reading.national,\n valid: reading.valid,\n })\n }\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n const el = event.target\n let raw = el.value\n const caret = el.selectionStart ?? raw.length\n let digitsBefore = raw.slice(0, caret).replace(/\\D/g, '').length\n // backspace over a formatting char (space / paren / dash) would be re-added by the formatter —\n // treat it as deleting the digit before it instead\n const prevDigits = display.replace(/\\D/g, '')\n if (raw.length < display.length && raw.replace(/\\D/g, '') === prevDigits && digitsBefore > 0) {\n let seen = 0\n let cut = -1\n for (let i = 0; i < raw.length; i++) {\n if (/\\d/.test(raw[i]) && ++seen === digitsBefore) {\n cut = i\n break\n }\n }\n if (cut >= 0) raw = raw.slice(0, cut) + raw.slice(cut + 1)\n digitsBefore -= 1\n }\n const reading = readPhoneInput(raw, country, format, countries)\n pendingCaret.current =\n caret >= el.value.length\n ? reading.display.length\n : caretAfterDigits(reading.display, digitsBefore)\n emit(reading)\n }\n\n // ── country picker — the shared option menu (search matches name, ISO code, calling code) ──\n const controlRef = useRef<HTMLDivElement | null>(null)\n const countryOptions = useMemo<SelectOption[]>(() => {\n const toOption = (c: PhoneCountry): SelectOption => {\n const dial = callingCodeOf(c)\n return {\n value: c,\n label: countryName(c, language),\n icon: (\n <span className={styles.flag} aria-hidden=\"true\">\n {flagEmoji(c)}\n </span>\n ),\n keywords: [c, dial, `+${dial}`],\n trailing: <span className={styles.dial}>+{dial}</span>,\n }\n }\n // preferred countries first (in the given order), then the rest A→Z by their localized name —\n // as two groups (\"Suggested\" / \"All Countries\") when there are preferred ones\n const pinned = preferredCountries.filter((c) => countries.includes(c)).map(toOption)\n const rest = countries\n .filter((c) => !preferredCountries.includes(c))\n .map(toOption)\n .sort((a, b) => a.label.localeCompare(b.label, language))\n if (pinned.length === 0) return rest\n return [\n ...pinned.map((o) => ({ ...o, group: t('phoneField.suggested') })),\n ...rest.map((o) => ({ ...o, group: t('phoneField.allCountries') })),\n ]\n }, [countries, preferredCountries, language, t])\n\n const pickCountry = (next: PhoneCountry) => {\n // keep the typed national digits, re-read under the new calling code\n const national = readPhoneInput(display, country, format, countries).national\n setCountry(next)\n emit({ ...readPhoneInput(national, next, format, countries), country: next })\n }\n\n const menu = useOptionMenu({\n idBase: `${id}-country`,\n options: countryOptions,\n isSelected: (o) => o.value === country,\n onPick: (o) => pickCountry(o.value as PhoneCountry),\n searchable: true,\n disabled,\n // after a pick / Esc, typing continues in the number\n focusRef: innerRef,\n })\n\n const handleBlur = (event: FocusEvent<HTMLInputElement>) => {\n bound?.onBlur(event)\n onBlur?.(event)\n }\n\n const describedBy = resolvedHelperText != null ? helperId : undefined\n const chevronPx = size === 'sm' ? 16 : size === 'md' ? 14 : 12\n const code = callingCodeOf(country)\n const name_ = countryName(country, language)\n\n return (\n <div\n className={clsx(\n fieldStyles.field,\n fieldStyles[size],\n fullWidth && fieldStyles.fullWidth,\n resolvedError && fieldStyles.error,\n disabled && fieldStyles.disabled,\n styles.phoneField,\n className,\n )}\n style={style as CSSProperties}\n >\n {label != null && (\n <label htmlFor={id} 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\n <div ref={controlRef} className={clsx(fieldStyles.control, styles.control)}>\n <button\n type=\"button\"\n className={styles.country}\n aria-haspopup=\"listbox\"\n aria-expanded={menu.open}\n aria-controls={menu.open ? menu.listboxId : undefined}\n aria-label={`${t('phoneField.country')}: ${name_} (+${code})`}\n disabled={disabled}\n onClick={menu.toggleMenu}\n onKeyDown={(e) => {\n // ↓ / ↑ open the list (Enter / Space already click the button)\n if ((e.key === 'ArrowDown' || e.key === 'ArrowUp') && !menu.open) {\n e.preventDefault()\n menu.openMenu()\n }\n }}\n >\n <span className={styles.flag} aria-hidden=\"true\">\n {flagEmoji(country)}\n </span>\n {format === 'national' && <span className={styles.code}>+{code}</span>}\n {/* the same chevron as Select / MultiSelect (ArrowDown4, sized per field size: sm 16 · md 14 · lg 12) */}\n <Icon\n name=\"ArrowDown4\"\n className={clsx(styles.chevron, menu.open && styles.chevronOpen)}\n style={{ width: chevronPx, height: chevronPx }}\n aria-hidden=\"true\"\n />\n </button>\n <input\n ref={setInputRef}\n id={id}\n name={name}\n type=\"tel\"\n inputMode=\"tel\"\n autoComplete=\"tel\"\n className={fieldStyles.input}\n value={display}\n placeholder={placeholder}\n onChange={handleChange}\n onBlur={handleBlur}\n disabled={disabled}\n aria-invalid={resolvedError || undefined}\n aria-describedby={describedBy}\n {...props}\n />\n </div>\n\n <OptionMenu\n menu={menu}\n anchorRef={controlRef}\n size={size}\n searchPlaceholder={t('phoneField.search')}\n ariaLabel={t('phoneField.country')}\n />\n\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\n/**\n * A phone-number field: a **country button** (flag + `+code`, opening a searchable, localized country\n * list) inside the input frame, and the number **formatted as you type** for that country. The value is\n * always **E.164** (`'+995555123456'`) — one canonical form for the backend. Typing or pasting `+44…`\n * switches the country by its calling code. `onChange(value, { country, national, valid })`; binds to a\n * `<Form>` by `name` (the form value is the E.164 string — validate with `isValidPhone`). Country names\n * come from `Intl.DisplayNames` in the active UI language; flags are emoji. Needs the optional peer\n * **`libphonenumber-js`** (formatting, parsing, validation metadata), loaded lazily on first mount — until\n * it's ready (or if it isn't installed) a disabled look-alike field renders. Reuses the `TextField` look.\n */\nexport const PhoneField = forwardRef<HTMLInputElement, PhoneFieldProps>(\n function PhoneField(props, ref) {\n const { module } = useOptionalPeer(phonePeer)\n if (module) return <PhoneFieldInner ref={ref} {...props} />\n // loading (a tick, first mount only) or the peer is missing: the same frame, disabled — never bound\n // to a <Form> (no `name`) so it can't write a value\n const {\n label,\n helperText,\n error,\n required,\n size,\n fullWidth = true,\n className,\n style,\n placeholder,\n } = props\n return (\n <TextField\n ref={ref}\n type=\"tel\"\n label={label}\n helperText={helperText}\n error={error}\n required={required}\n size={size}\n fullWidth={fullWidth}\n className={className}\n style={style}\n placeholder={placeholder}\n value={props.value ?? props.defaultValue ?? ''}\n readOnly\n disabled\n />\n )\n },\n)\n"],"names":["phonePeer","optionalPeer","lib","allCountries","getPhoneCountries","callingCodeOf","country","isValidPhone","value","loaded","flagEmoji","c","displayNamesCache","countryName","locale","_a","MAIN_FOR_CODE","LANGUAGE_COUNTRY","detectCountry","allowed","base","region","browser","_b","digitsOf","s","countryForCode","code","current","detected","readPhoneInput","raw","format","text","digits","typer","display","parsed","next","e164","national","phoneFromValue","fallback","reading","caretAfterDigits","n","seen","i","PhoneFieldInner","forwardRef","defaultValue","onChange","defaultCountry","countriesProp","preferredCountries","label","helperText","error","required","size","fullWidth","name","disabled","idProp","className","style","onBlur","placeholder","props","ref","t","useT","language","useLanguage","countries","reactId","useId","id","helperId","form","useFormContext","isFormBound","bound","internal","setInternal","useState","currentValue","resolvedError","resolvedHelperText","fallbackCountry","useMemo","setCountry","setDisplay","lastEmitted","useRef","innerRef","setInputRef","useCallback","node","pendingCaret","useLayoutEffect","pos","emit","handleChange","event","el","caret","digitsBefore","prevDigits","cut","controlRef","countryOptions","toOption","dial","jsx","styles","jsxs","pinned","rest","a","b","o","pickCountry","menu","useOptionMenu","handleBlur","describedBy","chevronPx","name_","clsx","fieldStyles","Typography","e","Icon","OptionMenu","PhoneField","module","useOptionalPeer","TextField"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PhoneField-OjsuevPx.js","sources":["../src/components/PhoneField/phone.ts","../src/components/PhoneField/PhoneField.tsx"],"sourcesContent":["import type * as PhoneLibModule from 'libphonenumber-js'\nimport type { CountryCode } from 'libphonenumber-js'\nimport { optionalPeer } from '../../hooks/useOptionalPeer'\n\n/**\n * `libphonenumber-js` is an optional peer, loaded **lazily** (see `optionalPeer`) — never imported\n * statically, so apps that don't install it still build + run when they import the barrel. PhoneField\n * waits for it on mount; the helpers below run only once it's loaded (`lib()`).\n */\nexport const phonePeer = optionalPeer<typeof PhoneLibModule>(\n 'libphonenumber-js',\n 'PhoneField',\n () => import('libphonenumber-js'),\n)\nconst lib = () => phonePeer.get()!\n\n/** An ISO-3166 alpha-2 country code, as `libphonenumber-js` knows it (`'GE'`, `'US'`, …). */\nexport type PhoneCountry = CountryCode\n/** How the number is shown in the input while typing (the value is always E.164). */\nexport type PhoneFormat = 'national' | 'international'\n\nlet allCountries: readonly PhoneCountry[] | undefined\n/** Every country `libphonenumber-js` has metadata for (once loaded). */\nexport function getPhoneCountries(): readonly PhoneCountry[] {\n return (allCountries ??= lib().getCountries())\n}\n\n/** The country's calling code without the `+` — `'GE'` → `'995'`. */\nexport const callingCodeOf = (country: PhoneCountry): string => lib().getCountryCallingCode(country)\n\n/**\n * `true` for a complete, valid number (E.164 or any parseable international form). Use it in a schema:\n * `phone: z.string().refine(isValidPhone, 'Enter a valid phone number')`. Needs `libphonenumber-js`\n * loaded — it is once any PhoneField has mounted; before that it starts the load and returns `false`.\n */\nexport function isValidPhone(value: unknown): boolean {\n const loaded = phonePeer.get()\n // not loaded yet (no PhoneField mounted so far) → start loading and report \"not valid\" for now\n if (!loaded) {\n void phonePeer.load()\n return false\n }\n return typeof value === 'string' && value.trim() !== '' && loaded.isValidPhoneNumber(value)\n}\n\n/** A flag emoji from the two regional-indicator letters — no image assets (Windows shows the letters). */\nexport function flagEmoji(country: string): string {\n return String.fromCodePoint(\n ...[...country.toUpperCase()].map((c) => 0x1f1e6 + c.charCodeAt(0) - 65),\n )\n}\n\nconst displayNamesCache = new Map<string, Intl.DisplayNames | null>()\n/** The country's name in `locale` via `Intl.DisplayNames` (no catalog to ship); falls back to the code. */\nexport function countryName(country: string, locale: string): string {\n if (!displayNamesCache.has(locale)) {\n try {\n displayNamesCache.set(locale, new Intl.DisplayNames([locale], { type: 'region' }))\n } catch {\n displayNamesCache.set(locale, null)\n }\n }\n try {\n return displayNamesCache.get(locale)?.of(country) ?? country\n } catch {\n return country\n }\n}\n\n// the main country for a calling code shared by several (a partial \"+44…\" parses as Guernsey otherwise)\nconst MAIN_FOR_CODE: Record<string, PhoneCountry> = {\n '1': 'US',\n '7': 'RU',\n '39': 'IT',\n '44': 'GB',\n '47': 'NO',\n '61': 'AU',\n '212': 'MA',\n '262': 'RE',\n '290': 'SH',\n '358': 'FI',\n '590': 'GP',\n '599': 'CW',\n}\n// base UI language → its usual country, for the default when the locale carries no region\nconst LANGUAGE_COUNTRY: Record<string, PhoneCountry> = {\n ka: 'GE',\n en: 'US',\n es: 'ES',\n de: 'DE',\n it: 'IT',\n fr: 'FR',\n ru: 'RU',\n}\n\n/** The default country: the locale's region → its language's usual country → the browser's region → US. */\nexport function detectCountry(locale: string, allowed: readonly PhoneCountry[]): PhoneCountry {\n const [base, region] = locale.split('-')\n const browser =\n typeof navigator !== 'undefined' ? navigator.language?.split('-')[1]?.toUpperCase() : undefined\n const candidates = [region?.toUpperCase(), LANGUAGE_COUNTRY[base?.toLowerCase()], browser, 'US']\n return (candidates.find((c) => c && allowed.includes(c as PhoneCountry)) ??\n allowed[0]) as PhoneCountry\n}\n\n/** The result of reading what's in the input. */\nexport interface PhoneReading {\n /** The canonical value — `'+995555123456'`, or `''` when empty. */\n e164: string\n /** The country the number belongs to (may switch when a `+code` is typed). */\n country: PhoneCountry\n /** The national significant number — digits only, no trunk `0`. */\n national: string\n /** A complete, valid number. */\n valid: boolean\n /** What the input should show (formatted as you type). */\n display: string\n}\n\nconst digitsOf = (s: string) => s.replace(/\\D/g, '')\n\n/** Which allowed country a `+code…` number belongs to — keep the current one when it shares the code. */\nfunction countryForCode(\n code: string,\n current: PhoneCountry,\n detected: PhoneCountry | undefined,\n allowed: readonly PhoneCountry[],\n): PhoneCountry {\n if (callingCodeOf(current) === code) return current\n const pick = [detected, MAIN_FOR_CODE[code], ...allowed.filter((c) => callingCodeOf(c) === code)]\n return (pick.find((c) => c && allowed.includes(c)) as PhoneCountry | undefined) ?? current\n}\n\n/** Read raw input text → the canonical value + the formatted display, as the user types. */\nexport function readPhoneInput(\n raw: string,\n country: PhoneCountry,\n format: PhoneFormat,\n allowed: readonly PhoneCountry[],\n): PhoneReading {\n const text = raw.trimStart()\n const digits = digitsOf(text)\n if (!digits) {\n return {\n e164: '',\n country,\n national: '',\n valid: false,\n display: text.startsWith('+') ? '+' : '',\n }\n }\n\n // an explicit \"+code…\" (typed or pasted) — the calling code decides the country\n if (text.startsWith('+')) {\n const typer = new (lib().AsYouType)()\n const display = typer.input(`+${digits}`)\n const code = typer.getCallingCode()\n const parsed = lib().parsePhoneNumberFromString(`+${digits}`)\n const next = code\n ? countryForCode(code, country, parsed?.country ?? typer.getCountry(), allowed)\n : country\n const e164 = `+${digits}`\n return {\n e164,\n country: next,\n national: code ? digits.slice(code.length) : '',\n valid: lib().isValidPhoneNumber(e164),\n display,\n }\n }\n\n // national digits under the selected country (a leading trunk \"0\" is dropped from the value)\n const code = callingCodeOf(country)\n const parsed = lib().parsePhoneNumberFromString(digits, country)\n const national = parsed?.nationalNumber ?? digits.replace(/^0+/, '')\n const e164 = national ? `+${code}${national}` : ''\n const display =\n format === 'international'\n ? new (lib().AsYouType)(country).input(`+${code}${national}`)\n : new (lib().AsYouType)(country).input(digits)\n return {\n e164,\n country,\n national,\n valid: e164 !== '' && lib().isValidPhoneNumber(e164),\n display,\n }\n}\n\n/** Derive the country + display from an E.164 value (initial / external value changes). */\nexport function phoneFromValue(\n value: string,\n fallback: PhoneCountry,\n format: PhoneFormat,\n allowed: readonly PhoneCountry[],\n): { country: PhoneCountry; display: string } {\n if (!value) return { country: fallback, display: '' }\n const parsed = lib().parsePhoneNumberFromString(value)\n if (parsed) {\n const country = countryForCode(parsed.countryCallingCode, fallback, parsed.country, allowed)\n return {\n country,\n display: format === 'national' ? parsed.formatNational() : parsed.formatInternational(),\n }\n }\n const reading = readPhoneInput(value, fallback, 'international', allowed)\n const display =\n format === 'national' && reading.national\n ? new (lib().AsYouType)(reading.country).input(reading.national)\n : reading.display\n return { country: reading.country, display }\n}\n\n/** Caret index in `display` right after its `n`-th digit — keeps the caret put while reformatting. */\nexport function caretAfterDigits(display: string, n: number): number {\n if (n <= 0) return display.startsWith('+') ? 1 : 0\n let seen = 0\n for (let i = 0; i < display.length; i++) {\n if (/\\d/.test(display[i])) seen++\n if (seen === n) return i + 1\n }\n return display.length\n}\n","import {\n forwardRef,\n useCallback,\n useId,\n useLayoutEffect,\n useMemo,\n useRef,\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 { useLanguage, useT } from '../../theme'\nimport { useOptionalPeer } from '../../hooks/useOptionalPeer'\nimport { useFormContext } from '../../form/formContext'\nimport { Icon } from '../Icon'\nimport { TextField } from '../TextField'\nimport { OptionMenu } from '../OptionMenu/OptionMenu'\nimport { useOptionMenu, type SelectOption } from '../OptionMenu/useOptionMenu'\nimport { Typography } from '../Typography'\nimport fieldStyles from '../TextField/TextField.module.css'\nimport {\n callingCodeOf,\n getPhoneCountries,\n caretAfterDigits,\n countryName,\n detectCountry,\n flagEmoji,\n phoneFromValue,\n phonePeer,\n readPhoneInput,\n type PhoneCountry,\n type PhoneFormat,\n} from './phone'\nimport styles from './PhoneField.module.css'\n\nexport type PhoneFieldSize = 'sm' | 'md' | 'lg'\n\n/** Extra details handed to `onChange` alongside the E.164 value. */\nexport interface PhoneFieldChangeMeta {\n /** The number's country (ISO alpha-2). */\n country: PhoneCountry\n /** The national significant number — digits only, no trunk `0`. */\n national: string\n /** A complete, valid number for that country. */\n valid: boolean\n}\n\nexport interface PhoneFieldProps extends Omit<\n InputHTMLAttributes<HTMLInputElement>,\n 'value' | 'defaultValue' | 'onChange' | 'type' | 'size' | 'color'\n> {\n /** The number in **E.164** (`'+995555123456'`) — the only form the field emits. `''` when empty. */\n value?: string\n /** Initial E.164 value for uncontrolled use. */\n defaultValue?: string\n /** Fires with the E.164 value (`''` when cleared) and `{ country, national, valid }`. */\n onChange?: (value: string, meta: PhoneFieldChangeMeta) => void\n /** The country to start with. Defaults to one derived from the UI language / browser locale. */\n defaultCountry?: PhoneCountry\n /** Restrict the selectable countries (e.g. only where you operate). Defaults to all. */\n countries?: readonly PhoneCountry[]\n /** Countries pinned to the top of the list, in this order. */\n preferredCountries?: readonly PhoneCountry[]\n /**\n * How the number reads while typing — `national` (default: `555 12 34 56`, the calling code lives in\n * the country button) or `international` (`+995 555 12 34 56`). The value is E.164 either way.\n */\n format?: PhoneFormat\n /** Field label. */\n label?: ReactNode\n /** Helper / validation text under the field. */\n helperText?: ReactNode\n /** Error state (red border + helper). */\n error?: boolean\n /** Shows a required asterisk. */\n required?: boolean\n /** `sm` / `md` / `lg` — control height + type. Defaults to `md`. */\n size?: PhoneFieldSize\n /** Stretch to the container. Defaults to `true`. */\n fullWidth?: boolean\n}\n\n/** The field itself — rendered once `libphonenumber-js` has loaded. */\nconst PhoneFieldInner = forwardRef<HTMLInputElement, PhoneFieldProps>(function PhoneFieldInner(\n {\n value,\n defaultValue,\n onChange,\n defaultCountry,\n countries: countriesProp,\n preferredCountries = [],\n format = 'national',\n label,\n helperText,\n error,\n required,\n size = 'md',\n fullWidth = true,\n name,\n disabled = false,\n id: idProp,\n className,\n style,\n onBlur,\n placeholder,\n ...props\n },\n ref,\n) {\n const t = useT()\n const { language } = useLanguage()\n const countries = countriesProp ?? getPhoneCountries()\n const reactId = useId()\n const id = idProp ?? reactId\n const helperId = `${id}-helper`\n\n // ── value: controlled / form-bound / uncontrolled — always E.164 ──\n const form = useFormContext()\n const isFormBound = Boolean(form && name)\n const bound = isFormBound ? form!.field(name!) : undefined\n const [internal, setInternal] = useState(defaultValue ?? '')\n const currentValue =\n value !== undefined\n ? value\n : isFormBound\n ? ((form!.values[name!] as string | undefined) ?? '')\n : internal\n const resolvedError = error ?? bound?.error ?? false\n const resolvedHelperText = helperText ?? bound?.helperText\n\n const fallbackCountry = useMemo<PhoneCountry>(\n () =>\n defaultCountry && countries.includes(defaultCountry)\n ? defaultCountry\n : detectCountry(language, countries),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [defaultCountry, language, countries.join()],\n )\n\n const [country, setCountry] = useState<PhoneCountry>(\n () => phoneFromValue(currentValue, fallbackCountry, format, countries).country,\n )\n const [display, setDisplay] = useState(\n () => phoneFromValue(currentValue, fallbackCountry, format, countries).display,\n )\n\n // re-derive the display when the value changes from OUTSIDE (a reset / a controlled update) — the\n // values we emit ourselves are skipped, so formatting never fights the user mid-typing\n const lastEmitted = useRef(currentValue)\n if (lastEmitted.current !== currentValue) {\n lastEmitted.current = currentValue\n const next = phoneFromValue(currentValue, country, format, countries)\n setCountry(next.country)\n setDisplay(next.display)\n }\n\n // caret restore after reformatting\n const innerRef = useRef<HTMLInputElement | null>(null)\n const setInputRef = useCallback(\n (node: HTMLInputElement | null) => {\n innerRef.current = node\n if (typeof ref === 'function') ref(node)\n else if (ref) (ref as { current: HTMLInputElement | null }).current = node\n },\n [ref],\n )\n const pendingCaret = useRef<number | null>(null)\n useLayoutEffect(() => {\n const pos = pendingCaret.current\n if (pos == null) return\n pendingCaret.current = null\n innerRef.current?.setSelectionRange(pos, pos)\n })\n\n const emit = (reading: ReturnType<typeof readPhoneInput>) => {\n lastEmitted.current = reading.e164\n setDisplay(reading.display)\n if (reading.country !== country) setCountry(reading.country)\n if (value === undefined && !isFormBound) setInternal(reading.e164)\n if (isFormBound) form!.setValue(name!, reading.e164)\n onChange?.(reading.e164, {\n country: reading.country,\n national: reading.national,\n valid: reading.valid,\n })\n }\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n const el = event.target\n let raw = el.value\n const caret = el.selectionStart ?? raw.length\n let digitsBefore = raw.slice(0, caret).replace(/\\D/g, '').length\n // backspace over a formatting char (space / paren / dash) would be re-added by the formatter —\n // treat it as deleting the digit before it instead\n const prevDigits = display.replace(/\\D/g, '')\n if (raw.length < display.length && raw.replace(/\\D/g, '') === prevDigits && digitsBefore > 0) {\n let seen = 0\n let cut = -1\n for (let i = 0; i < raw.length; i++) {\n if (/\\d/.test(raw[i]) && ++seen === digitsBefore) {\n cut = i\n break\n }\n }\n if (cut >= 0) raw = raw.slice(0, cut) + raw.slice(cut + 1)\n digitsBefore -= 1\n }\n const reading = readPhoneInput(raw, country, format, countries)\n pendingCaret.current =\n caret >= el.value.length\n ? reading.display.length\n : caretAfterDigits(reading.display, digitsBefore)\n emit(reading)\n }\n\n // ── country picker — the shared option menu (search matches name, ISO code, calling code) ──\n const controlRef = useRef<HTMLDivElement | null>(null)\n const countryOptions = useMemo<SelectOption[]>(() => {\n const toOption = (c: PhoneCountry): SelectOption => {\n const dial = callingCodeOf(c)\n return {\n value: c,\n label: countryName(c, language),\n icon: (\n <span className={styles.flag} aria-hidden=\"true\">\n {flagEmoji(c)}\n </span>\n ),\n keywords: [c, dial, `+${dial}`],\n trailing: <span className={styles.dial}>+{dial}</span>,\n }\n }\n // preferred countries first (in the given order), then the rest A→Z by their localized name —\n // as two groups (\"Suggested\" / \"All Countries\") when there are preferred ones\n const pinned = preferredCountries.filter((c) => countries.includes(c)).map(toOption)\n const rest = countries\n .filter((c) => !preferredCountries.includes(c))\n .map(toOption)\n .sort((a, b) => a.label.localeCompare(b.label, language))\n if (pinned.length === 0) return rest\n return [\n ...pinned.map((o) => ({ ...o, group: t('phoneField.suggested') })),\n ...rest.map((o) => ({ ...o, group: t('phoneField.allCountries') })),\n ]\n }, [countries, preferredCountries, language, t])\n\n const pickCountry = (next: PhoneCountry) => {\n // keep the typed national digits, re-read under the new calling code\n const national = readPhoneInput(display, country, format, countries).national\n setCountry(next)\n emit({ ...readPhoneInput(national, next, format, countries), country: next })\n }\n\n const menu = useOptionMenu({\n idBase: `${id}-country`,\n options: countryOptions,\n isSelected: (o) => o.value === country,\n onPick: (o) => pickCountry(o.value as PhoneCountry),\n searchable: true,\n disabled,\n // after a pick / Esc, typing continues in the number\n focusRef: innerRef,\n })\n\n const handleBlur = (event: FocusEvent<HTMLInputElement>) => {\n bound?.onBlur(event)\n onBlur?.(event)\n }\n\n const describedBy = resolvedHelperText != null ? helperId : undefined\n const chevronPx = size === 'sm' ? 16 : size === 'md' ? 14 : 12\n const code = callingCodeOf(country)\n const name_ = countryName(country, language)\n\n return (\n <div\n className={clsx(\n fieldStyles.field,\n fieldStyles[size],\n fullWidth && fieldStyles.fullWidth,\n resolvedError && fieldStyles.error,\n disabled && fieldStyles.disabled,\n styles.phoneField,\n className,\n )}\n style={style as CSSProperties}\n >\n {label != null && (\n <label htmlFor={id} 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\n <div ref={controlRef} className={clsx(fieldStyles.control, styles.control)}>\n <button\n type=\"button\"\n className={styles.country}\n aria-haspopup=\"listbox\"\n aria-expanded={menu.open}\n aria-controls={menu.open ? menu.listboxId : undefined}\n aria-label={`${t('phoneField.country')}: ${name_} (+${code})`}\n disabled={disabled}\n onClick={menu.toggleMenu}\n onKeyDown={(e) => {\n // ↓ / ↑ open the list (Enter / Space already click the button)\n if ((e.key === 'ArrowDown' || e.key === 'ArrowUp') && !menu.open) {\n e.preventDefault()\n menu.openMenu()\n }\n }}\n >\n <span className={styles.flag} aria-hidden=\"true\">\n {flagEmoji(country)}\n </span>\n {format === 'national' && <span className={styles.code}>+{code}</span>}\n {/* the same chevron as Select / MultiSelect (ArrowDown4, sized per field size: sm 16 · md 14 · lg 12) */}\n <Icon\n name=\"ArrowDown4\"\n className={clsx(styles.chevron, menu.open && styles.chevronOpen)}\n style={{ width: chevronPx, height: chevronPx }}\n aria-hidden=\"true\"\n />\n </button>\n <input\n ref={setInputRef}\n id={id}\n name={name}\n type=\"tel\"\n inputMode=\"tel\"\n autoComplete=\"tel\"\n className={fieldStyles.input}\n value={display}\n placeholder={placeholder}\n onChange={handleChange}\n onBlur={handleBlur}\n disabled={disabled}\n aria-invalid={resolvedError || undefined}\n aria-describedby={describedBy}\n {...props}\n />\n </div>\n\n <OptionMenu\n menu={menu}\n anchorRef={controlRef}\n size={size}\n searchPlaceholder={t('phoneField.search')}\n ariaLabel={t('phoneField.country')}\n />\n\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\n/**\n * A phone-number field: a **country button** (flag + `+code`, opening a searchable, localized country\n * list) inside the input frame, and the number **formatted as you type** for that country. The value is\n * always **E.164** (`'+995555123456'`) — one canonical form for the backend. Typing or pasting `+44…`\n * switches the country by its calling code. `onChange(value, { country, national, valid })`; binds to a\n * `<Form>` by `name` (the form value is the E.164 string — validate with `isValidPhone`). Country names\n * come from `Intl.DisplayNames` in the active UI language; flags are emoji. Needs the optional peer\n * **`libphonenumber-js`** (formatting, parsing, validation metadata), loaded lazily on first mount — until\n * it's ready (or if it isn't installed) a disabled look-alike field renders. Reuses the `TextField` look.\n */\nexport const PhoneField = forwardRef<HTMLInputElement, PhoneFieldProps>(\n function PhoneField(props, ref) {\n const { module } = useOptionalPeer(phonePeer)\n if (module) return <PhoneFieldInner ref={ref} {...props} />\n // loading (a tick, first mount only) or the peer is missing: the same frame, disabled — never bound\n // to a <Form> (no `name`) so it can't write a value\n const {\n label,\n helperText,\n error,\n required,\n size,\n fullWidth = true,\n className,\n style,\n placeholder,\n } = props\n return (\n <TextField\n ref={ref}\n type=\"tel\"\n label={label}\n helperText={helperText}\n error={error}\n required={required}\n size={size}\n fullWidth={fullWidth}\n className={className}\n style={style}\n placeholder={placeholder}\n value={props.value ?? props.defaultValue ?? ''}\n readOnly\n disabled\n />\n )\n },\n)\n"],"names":["phonePeer","optionalPeer","lib","allCountries","getPhoneCountries","callingCodeOf","country","isValidPhone","value","loaded","flagEmoji","c","displayNamesCache","countryName","locale","_a","MAIN_FOR_CODE","LANGUAGE_COUNTRY","detectCountry","allowed","base","region","browser","_b","digitsOf","s","countryForCode","code","current","detected","readPhoneInput","raw","format","text","digits","typer","display","parsed","next","e164","national","phoneFromValue","fallback","reading","caretAfterDigits","n","seen","i","PhoneFieldInner","forwardRef","defaultValue","onChange","defaultCountry","countriesProp","preferredCountries","label","helperText","error","required","size","fullWidth","name","disabled","idProp","className","style","onBlur","placeholder","props","ref","t","useT","language","useLanguage","countries","reactId","useId","id","helperId","form","useFormContext","isFormBound","bound","internal","setInternal","useState","currentValue","resolvedError","resolvedHelperText","fallbackCountry","useMemo","setCountry","setDisplay","lastEmitted","useRef","innerRef","setInputRef","useCallback","node","pendingCaret","useLayoutEffect","pos","emit","handleChange","event","el","caret","digitsBefore","prevDigits","cut","controlRef","countryOptions","toOption","dial","jsx","styles","jsxs","pinned","rest","a","b","o","pickCountry","menu","useOptionMenu","handleBlur","describedBy","chevronPx","name_","clsx","fieldStyles","Typography","e","Icon","OptionMenu","PhoneField","module","useOptionalPeer","TextField"],"mappings":"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"}
|