@banzamel/mineralui 2.4.3 → 2.5.2
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 +1 -1
- package/dist/MAvatar-CvQuiGvT.cjs +2 -0
- package/dist/MAvatar-CvQuiGvT.cjs.map +1 -0
- package/dist/MAvatar-EkOBrEtS.js +73 -0
- package/dist/MAvatar-EkOBrEtS.js.map +1 -0
- package/dist/MButton-BxEky3xQ.cjs +2 -0
- package/dist/MButton-BxEky3xQ.cjs.map +1 -0
- package/dist/MButton-KELyyBw1.js +123 -0
- package/dist/MButton-KELyyBw1.js.map +1 -0
- package/dist/{MButtonGroup-BEJxXZ8u.js → MButtonGroup-DDnn8Wfy.js} +3 -3
- package/dist/{MButtonGroup-BEJxXZ8u.js.map → MButtonGroup-DDnn8Wfy.js.map} +1 -1
- package/dist/{MButtonGroup-DO1Tq3Za.cjs → MButtonGroup-Dz8Fm-oA.cjs} +2 -2
- package/dist/{MButtonGroup-DO1Tq3Za.cjs.map → MButtonGroup-Dz8Fm-oA.cjs.map} +1 -1
- package/dist/{MCard-P8OoswWM.cjs → MCard-Bqm4BjK_.cjs} +2 -2
- package/dist/MCard-Bqm4BjK_.cjs.map +1 -0
- package/dist/{MCard-BqSkGAgf.js → MCard-CqZYGaS2.js} +4 -4
- package/dist/MCard-CqZYGaS2.js.map +1 -0
- package/dist/MCheckbox-CaWgyUn5.js +72 -0
- package/dist/MCheckbox-CaWgyUn5.js.map +1 -0
- package/dist/MCheckbox-DpKJpnFF.cjs +2 -0
- package/dist/MCheckbox-DpKJpnFF.cjs.map +1 -0
- package/dist/{MConflictIllustration-znC7ijmP.js → MConflictIllustration-dwZS44ye.js} +1517 -1515
- package/dist/MConflictIllustration-dwZS44ye.js.map +1 -0
- package/dist/MConflictIllustration-vfHs-jad.cjs +2 -0
- package/dist/MConflictIllustration-vfHs-jad.cjs.map +1 -0
- package/dist/MDetailList-C3othNs3.js +127 -0
- package/dist/MDetailList-C3othNs3.js.map +1 -0
- package/dist/MDetailList-DkDHLdJ8.cjs +2 -0
- package/dist/MDetailList-DkDHLdJ8.cjs.map +1 -0
- package/dist/MDropdownMenu-C4-r7UZM.cjs +2 -0
- package/dist/MDropdownMenu-C4-r7UZM.cjs.map +1 -0
- package/dist/MDropdownMenu-Dvg9UsHB.js +219 -0
- package/dist/MDropdownMenu-Dvg9UsHB.js.map +1 -0
- package/dist/MGrid-CQqT8nHi.js +271 -0
- package/dist/MGrid-CQqT8nHi.js.map +1 -0
- package/dist/MGrid-tBsqShLG.cjs +2 -0
- package/dist/MGrid-tBsqShLG.cjs.map +1 -0
- package/dist/MHeading-DQSQ8c7L.js +21 -0
- package/dist/MHeading-DQSQ8c7L.js.map +1 -0
- package/dist/MHeading-DiGYs1FJ.cjs +2 -0
- package/dist/MHeading-DiGYs1FJ.cjs.map +1 -0
- package/dist/MInput-BeEGufZG.cjs +2 -0
- package/dist/MInput-BeEGufZG.cjs.map +1 -0
- package/dist/MInput-QnQV9L8U.js +190 -0
- package/dist/MInput-QnQV9L8U.js.map +1 -0
- package/dist/MInputCVC-CCNRAqHw.cjs +2 -0
- package/dist/MInputCVC-CCNRAqHw.cjs.map +1 -0
- package/dist/MInputCVC-IXIYZwex.js +410 -0
- package/dist/MInputCVC-IXIYZwex.js.map +1 -0
- package/dist/MInputSearch-BSIc6m2P.cjs +2 -0
- package/dist/MInputSearch-BSIc6m2P.cjs.map +1 -0
- package/dist/MInputSearch-CNuTAbYs.js +44 -0
- package/dist/MInputSearch-CNuTAbYs.js.map +1 -0
- package/dist/{MKbd-BR1GX5oK.cjs → MKbd-CnW3NUIu.cjs} +2 -2
- package/dist/{MKbd-BR1GX5oK.cjs.map → MKbd-CnW3NUIu.cjs.map} +1 -1
- package/dist/{MKbd-COb7oh_k.js → MKbd-DjfGyajR.js} +2 -2
- package/dist/{MKbd-COb7oh_k.js.map → MKbd-DjfGyajR.js.map} +1 -1
- package/dist/MLink-C6uwA6db.cjs +2 -0
- package/dist/MLink-C6uwA6db.cjs.map +1 -0
- package/dist/MLink-ixg0xFFI.js +31 -0
- package/dist/MLink-ixg0xFFI.js.map +1 -0
- package/dist/MLoader-CViA3zBo.js +44 -0
- package/dist/MLoader-CViA3zBo.js.map +1 -0
- package/dist/MLoader-DUOoOoNE.cjs +2 -0
- package/dist/MLoader-DUOoOoNE.cjs.map +1 -0
- package/dist/MPagination-BTGenxWW.js +122 -0
- package/dist/MPagination-BTGenxWW.js.map +1 -0
- package/dist/MPagination-DitmdtCc.cjs +2 -0
- package/dist/MPagination-DitmdtCc.cjs.map +1 -0
- package/dist/MPopover-CBDbUOW6.js +183 -0
- package/dist/MPopover-CBDbUOW6.js.map +1 -0
- package/dist/MPopover-ZeoU9hb5.cjs +2 -0
- package/dist/MPopover-ZeoU9hb5.cjs.map +1 -0
- package/dist/{MSimpleGrid-Ui8cI0ho.js → MSimpleGrid-C_QvLmck.js} +3 -3
- package/dist/MSimpleGrid-C_QvLmck.js.map +1 -0
- package/dist/MSimpleGrid-wgvjnxwM.cjs +2 -0
- package/dist/MSimpleGrid-wgvjnxwM.cjs.map +1 -0
- package/dist/{MSkeleton-Dhu-loDO.js → MSkeleton-BpcpBBJq.js} +12 -10
- package/dist/MSkeleton-BpcpBBJq.js.map +1 -0
- package/dist/MSkeleton-DuAN8Vcv.cjs +2 -0
- package/dist/MSkeleton-DuAN8Vcv.cjs.map +1 -0
- package/dist/MSlider-CLASUc2H.js +134 -0
- package/dist/MSlider-CLASUc2H.js.map +1 -0
- package/dist/MSlider-hONQBulE.cjs +2 -0
- package/dist/MSlider-hONQBulE.cjs.map +1 -0
- package/dist/MStack-BwAFeGGg.js +39 -0
- package/dist/MStack-BwAFeGGg.js.map +1 -0
- package/dist/MStack-CGII4A-q.cjs +2 -0
- package/dist/MStack-CGII4A-q.cjs.map +1 -0
- package/dist/MSubText-BeZk-fhz.js +17 -0
- package/dist/MSubText-BeZk-fhz.js.map +1 -0
- package/dist/MSubText-Dl1PfToZ.cjs +2 -0
- package/dist/MSubText-Dl1PfToZ.cjs.map +1 -0
- package/dist/MSurface-B_QnRLr5.js +74 -0
- package/dist/MSurface-B_QnRLr5.js.map +1 -0
- package/dist/MSurface-BrFo-JMJ.cjs +2 -0
- package/dist/MSurface-BrFo-JMJ.cjs.map +1 -0
- package/dist/MTag-BZrKN_DS.js +41 -0
- package/dist/MTag-BZrKN_DS.js.map +1 -0
- package/dist/MTag-DCE1vRJM.cjs +2 -0
- package/dist/MTag-DCE1vRJM.cjs.map +1 -0
- package/dist/MText-BUWQPoBM.js +45 -0
- package/dist/MText-BUWQPoBM.js.map +1 -0
- package/dist/MText-nsvLFsSv.cjs +2 -0
- package/dist/MText-nsvLFsSv.cjs.map +1 -0
- package/dist/MTooltip-BRSPJ3RY.js +100 -0
- package/dist/MTooltip-BRSPJ3RY.js.map +1 -0
- package/dist/MTooltip-Cj2Fxmzc.cjs +2 -0
- package/dist/MTooltip-Cj2Fxmzc.cjs.map +1 -0
- package/dist/MTreeView-BWCTlsU-.cjs +2 -0
- package/dist/MTreeView-BWCTlsU-.cjs.map +1 -0
- package/dist/MTreeView-CWcMwE-Z.js +554 -0
- package/dist/MTreeView-CWcMwE-Z.js.map +1 -0
- package/dist/calendar-2yhnCkGW.cjs +2 -0
- package/dist/calendar-2yhnCkGW.cjs.map +1 -0
- package/dist/calendar-DcNYDTVb.js +195 -0
- package/dist/calendar-DcNYDTVb.js.map +1 -0
- package/dist/calendar.cjs +1 -1
- package/dist/calendar.js +1 -1
- package/dist/{calendarDates-M_Dawj0j.js → calendarDates-Bpw_G_QR.js} +30 -19
- package/dist/calendarDates-Bpw_G_QR.js.map +1 -0
- package/dist/calendarDates-Cg0nm69Y.cjs +2 -0
- package/dist/calendarDates-Cg0nm69Y.cjs.map +1 -0
- package/dist/cards-Bp886TRb.cjs +2 -0
- package/dist/cards-Bp886TRb.cjs.map +1 -0
- package/dist/cards-BvER6Gx0.js +1277 -0
- package/dist/cards-BvER6Gx0.js.map +1 -0
- package/dist/cards.cjs +1 -1
- package/dist/cards.js +2 -2
- package/dist/{cn-YER3QsV1.js → cn-CUSXNnjF.js} +1 -1
- package/dist/{cn-YER3QsV1.js.map → cn-CUSXNnjF.js.map} +1 -1
- package/dist/{cn-CU5TNITO.cjs → cn-DYFxgzi2.cjs} +1 -1
- package/dist/{cn-CU5TNITO.cjs.map → cn-DYFxgzi2.cjs.map} +1 -1
- package/dist/components/cards/MCardDaySchedule/MCardDaySchedule.d.ts +1 -1
- package/dist/components/cards/MCardDocumentTree/MCardDocumentTree.d.ts +1 -1
- package/dist/components/cards/MCardGrid/MCardGrid.d.ts +1 -1
- package/dist/components/cards/MCardPayment/MCardPayment.d.ts +1 -1
- package/dist/components/cards/MCardPayment/MCardPayment.types.d.ts +4 -0
- package/dist/components/cards/MCardPaymentMethod/MCardPaymentMethod.d.ts +1 -1
- package/dist/components/cards/MStatCard/MStatCard.d.ts +1 -1
- package/dist/components/controls/MCheckbox/MCheckbox.types.d.ts +6 -0
- package/dist/components/controls/MLoadMore/MLoadMore.d.ts +1 -1
- package/dist/components/controls/MSlider/MSlider.d.ts +1 -1
- package/dist/components/controls/MSlider/MSlider.types.d.ts +5 -0
- package/dist/components/data/MTreeView/MTreeView.d.ts +1 -1
- package/dist/components/data/MTreeView/MTreeView.types.d.ts +6 -0
- package/dist/components/data/MWeekGrid/MWeekGrid.d.ts +1 -1
- package/dist/components/data/MWeekGrid/MWeekGrid.types.d.ts +9 -3
- package/dist/components/display/MCodeBlock/MCodeBlock.d.ts +1 -1
- package/dist/components/dropdowns/MAutocomplete/MAutocomplete.d.ts +1 -1
- package/dist/components/dropdowns/MAutocomplete/MAutocomplete.types.d.ts +8 -2
- package/dist/components/dropdowns/MSelect/MSelect.d.ts +1 -1
- package/dist/components/dropdowns/shared/TimeColumnListbox.d.ts +20 -0
- package/dist/components/feedback/MAlert/MAlert.d.ts +1 -1
- package/dist/components/feedback/MBadge/MBadge.d.ts +1 -1
- package/dist/components/feedback/MBanner/MBanner.d.ts +1 -1
- package/dist/components/feedback/MLoader/MLoader.d.ts +1 -1
- package/dist/components/feedback/MSpinner/MSpinner.d.ts +1 -1
- package/dist/components/feedback/MTag/MTag.d.ts +1 -1
- package/dist/components/inputs/MInput/MInput.types.d.ts +6 -1
- package/dist/components/inputs/MInput/useFormatCaret.d.ts +8 -0
- package/dist/components/layout/MCanvasGrid/MCanvasGrid.types.d.ts +5 -0
- package/dist/components/layout/MContainer/MContainer.d.ts +1 -1
- package/dist/components/layout/MDivider/MDivider.d.ts +1 -1
- package/dist/components/layout/MFooter/MFooter.d.ts +1 -1
- package/dist/components/layout/MHeader/MHeader.d.ts +1 -1
- package/dist/components/layout/MInline/MInline.d.ts +1 -1
- package/dist/components/layout/MNavbar/MNavbar.d.ts +1 -1
- package/dist/components/layout/MNavbar/MNavbar.types.d.ts +2 -0
- package/dist/components/layout/MSection/MSection.d.ts +1 -1
- package/dist/components/layout/MStack/MStack.d.ts +1 -1
- package/dist/components/layout/MStickyPanel/MStickyPanel.types.d.ts +4 -0
- package/dist/components/layout/MSurface/MSurface.d.ts +1 -1
- package/dist/components/media/MAvatar/MAvatar.d.ts +1 -1
- package/dist/components/media/MAvatar/MAvatar.types.d.ts +10 -0
- package/dist/components/media/MCarousel/MCarousel.d.ts +1 -1
- package/dist/components/media/MImage/MImage.d.ts +1 -1
- package/dist/components/media/carouselA11y.d.ts +9 -0
- package/dist/components/overlays/MCommandPalette/MCommandPalette.d.ts +1 -1
- package/dist/components/overlays/MDropdownMenu/MDropdownMenu.d.ts +4 -2
- package/dist/components/overlays/MDropdownMenu/MDropdownMenu.types.d.ts +3 -1
- package/dist/components/overlays/MPopconfirm/MPopconfirm.d.ts +1 -1
- package/dist/components/overlays/scrollLock.d.ts +14 -0
- package/dist/components/primitives/MPopover/MPopover.d.ts +1 -1
- package/dist/components/primitives/MPopover/MPopover.types.d.ts +32 -1
- package/dist/components/primitives/MPopover/popoverStack.d.ts +6 -0
- package/dist/components/typography/MHeading/MHeading.d.ts +2 -3
- package/dist/components/typography/MSubText/MSubText.d.ts +1 -1
- package/dist/components/typography/MText/MText.d.ts +1 -1
- package/dist/controls-B4Dxaab4.js +491 -0
- package/dist/controls-B4Dxaab4.js.map +1 -0
- package/dist/controls-CyXEIOXD.cjs +2 -0
- package/dist/controls-CyXEIOXD.cjs.map +1 -0
- package/dist/controls.cjs +1 -1
- package/dist/controls.js +5 -5
- package/dist/creditCards-Bo2mrc53.cjs +2 -0
- package/dist/creditCards-Bo2mrc53.cjs.map +1 -0
- package/dist/{creditCards-D_iWmtG6.js → creditCards-DmDOyvcw.js} +20 -31
- package/dist/creditCards-DmDOyvcw.js.map +1 -0
- package/dist/data-BM3KG8oN.cjs +2 -0
- package/dist/data-BM3KG8oN.cjs.map +1 -0
- package/dist/data-qnR8OBmj.js +808 -0
- package/dist/data-qnR8OBmj.js.map +1 -0
- package/dist/data.cjs +1 -1
- package/dist/data.js +2 -2
- package/dist/{dateUtils-CUY6CRCf.js → dateUtils-B-ToNZq_.js} +5 -6
- package/dist/dateUtils-B-ToNZq_.js.map +1 -0
- package/dist/dateUtils-z2L7ZaxA.cjs +2 -0
- package/dist/dateUtils-z2L7ZaxA.cjs.map +1 -0
- package/dist/display-BLMOBofj.cjs +3 -0
- package/dist/display-BLMOBofj.cjs.map +1 -0
- package/dist/display-Dlb79lkA.js +968 -0
- package/dist/display-Dlb79lkA.js.map +1 -0
- package/dist/display.cjs +1 -1
- package/dist/display.js +2 -2
- package/dist/dropdowns-2_7VMEDo.js +2009 -0
- package/dist/dropdowns-2_7VMEDo.js.map +1 -0
- package/dist/dropdowns-DN7j8J-V.cjs +2 -0
- package/dist/dropdowns-DN7j8J-V.cjs.map +1 -0
- package/dist/dropdowns.cjs +1 -1
- package/dist/dropdowns.js +1 -1
- package/dist/feedback-CECayytY.js +335 -0
- package/dist/feedback-CECayytY.js.map +1 -0
- package/dist/feedback-paV8Ls-h.cjs +2 -0
- package/dist/feedback-paV8Ls-h.cjs.map +1 -0
- package/dist/feedback.cjs +1 -1
- package/dist/feedback.js +5 -5
- package/dist/form-Br56h5EF.cjs +2 -0
- package/dist/form-Br56h5EF.cjs.map +1 -0
- package/dist/form-CJmMZgsH.js +165 -0
- package/dist/form-CJmMZgsH.js.map +1 -0
- package/dist/form.cjs +1 -1
- package/dist/form.js +1 -1
- package/dist/{formatters-CNjg_h7-.cjs → formatters-CauWlsnM.cjs} +1 -1
- package/dist/{formatters-CNjg_h7-.cjs.map → formatters-CauWlsnM.cjs.map} +1 -1
- package/dist/{formatters-T0vvjMtB.js → formatters-Doqdu_w1.js} +1 -1
- package/dist/{formatters-T0vvjMtB.js.map → formatters-Doqdu_w1.js.map} +1 -1
- package/dist/frameworkTexts-CaqdiKHW.cjs +2 -0
- package/dist/frameworkTexts-CaqdiKHW.cjs.map +1 -0
- package/dist/frameworkTexts-o43FqY1A.js +505 -0
- package/dist/frameworkTexts-o43FqY1A.js.map +1 -0
- package/dist/i18n/MI18nProvider.d.ts +6 -1
- package/dist/i18n/frameworkTexts.d.ts +511 -0
- package/dist/i18n/index.d.ts +1 -0
- package/dist/i18n.cjs +1 -1
- package/dist/i18n.js +2 -2
- package/dist/icons-Bp8bB9TP.cjs +2 -0
- package/dist/icons-Bp8bB9TP.cjs.map +1 -0
- package/dist/{icons-CBMl-kOM.js → icons-IqEBmGh3.js} +1223 -1220
- package/dist/icons-IqEBmGh3.js.map +1 -0
- package/dist/icons.cjs +1 -1
- package/dist/icons.js +1 -1
- package/dist/illustrations.cjs +1 -1
- package/dist/illustrations.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +4 -2
- package/dist/index.js +56 -56
- package/dist/inputs-C0BJzlA-.js +1923 -0
- package/dist/inputs-C0BJzlA-.js.map +1 -0
- package/dist/inputs-CvNBBLFA.cjs +2 -0
- package/dist/inputs-CvNBBLFA.cjs.map +1 -0
- package/dist/inputs.cjs +1 -1
- package/dist/inputs.js +4 -4
- package/dist/layout-BSFqGXLZ.js +1101 -0
- package/dist/layout-BSFqGXLZ.js.map +1 -0
- package/dist/layout-MKqvUkPv.cjs +2 -0
- package/dist/layout-MKqvUkPv.cjs.map +1 -0
- package/dist/layout.cjs +1 -1
- package/dist/layout.js +6 -6
- package/dist/{layoutProps-Ck4VtGm9.cjs → layoutProps-B8y2XwHy.cjs} +1 -1
- package/dist/{layoutProps-Ck4VtGm9.cjs.map → layoutProps-B8y2XwHy.cjs.map} +1 -1
- package/dist/{layoutProps-Cl6d1KmH.js → layoutProps-CE5-ghKw.js} +1 -1
- package/dist/{layoutProps-Cl6d1KmH.js.map → layoutProps-CE5-ghKw.js.map} +1 -1
- package/dist/{licensing-f5KYVz7D.js → licensing-BKmoAdfr.js} +5 -4
- package/dist/licensing-BKmoAdfr.js.map +1 -0
- package/dist/licensing-DVgjkw-s.cjs +2 -0
- package/dist/licensing-DVgjkw-s.cjs.map +1 -0
- package/dist/media-fiasAbBv.js +485 -0
- package/dist/media-fiasAbBv.js.map +1 -0
- package/dist/media-tr1s386v.cjs +2 -0
- package/dist/media-tr1s386v.cjs.map +1 -0
- package/dist/media.cjs +1 -1
- package/dist/media.js +2 -2
- package/dist/overlays-Df-NpmkW.cjs +2 -0
- package/dist/overlays-Df-NpmkW.cjs.map +1 -0
- package/dist/overlays-W0WW3fn7.js +607 -0
- package/dist/overlays-W0WW3fn7.js.map +1 -0
- package/dist/overlays.cjs +1 -1
- package/dist/overlays.js +3 -3
- package/dist/primitives.cjs +1 -1
- package/dist/primitives.js +2 -2
- package/dist/radioGroupKeys-Bm-Qeh8G.js +28 -0
- package/dist/radioGroupKeys-Bm-Qeh8G.js.map +1 -0
- package/dist/radioGroupKeys-COL8uXbH.cjs +2 -0
- package/dist/radioGroupKeys-COL8uXbH.cjs.map +1 -0
- package/dist/{relativeTime-Cr-NVzij.js → relativeTime-BqCuaBqb.js} +1 -1
- package/dist/{relativeTime-Cr-NVzij.js.map → relativeTime-BqCuaBqb.js.map} +1 -1
- package/dist/{relativeTime-DgYBUaVm.cjs → relativeTime-DUbW4O44.cjs} +1 -1
- package/dist/{relativeTime-DgYBUaVm.cjs.map → relativeTime-DUbW4O44.cjs.map} +1 -1
- package/dist/scrollLock-C9P9o6wH.cjs +2 -0
- package/dist/scrollLock-C9P9o6wH.cjs.map +1 -0
- package/dist/scrollLock-D27VmgPV.js +14 -0
- package/dist/scrollLock-D27VmgPV.js.map +1 -0
- package/dist/style-runtime.cjs +1 -1
- package/dist/style-runtime.js +1 -1
- package/dist/styles.css +1 -1
- package/dist/theme/MThemeProvider.d.ts +18 -1
- package/dist/theme/index.d.ts +2 -2
- package/dist/{theme-DAOU1aPs.js → theme-B_juOenJ.js} +71 -61
- package/dist/theme-B_juOenJ.js.map +1 -0
- package/dist/theme-ByPZH0dh.cjs +2 -0
- package/dist/theme-ByPZH0dh.cjs.map +1 -0
- package/dist/theme.cjs +1 -1
- package/dist/theme.js +2 -2
- package/dist/{typography-C806GYT4.js → typography-DNcB8dOy.js} +3 -3
- package/dist/{typography-C806GYT4.js.map → typography-DNcB8dOy.js.map} +1 -1
- package/dist/{typography-4v01oNWx.cjs → typography-I7aeG8pH.cjs} +2 -2
- package/dist/{typography-4v01oNWx.cjs.map → typography-I7aeG8pH.cjs.map} +1 -1
- package/dist/typography.cjs +1 -1
- package/dist/typography.js +6 -6
- package/dist/useGhostText-CKsb8Ufa.js +240 -0
- package/dist/useGhostText-CKsb8Ufa.js.map +1 -0
- package/dist/useGhostText-DO-tfxS0.cjs +2 -0
- package/dist/useGhostText-DO-tfxS0.cjs.map +1 -0
- package/dist/useModalLayer-CpOPSDbf.js +128 -0
- package/dist/useModalLayer-CpOPSDbf.js.map +1 -0
- package/dist/useModalLayer-Cyt93Prs.cjs +2 -0
- package/dist/useModalLayer-Cyt93Prs.cjs.map +1 -0
- package/dist/utils/calendarDates.d.ts +5 -0
- package/dist/utils/radioGroupKeys.d.ts +9 -0
- package/dist/utils/useDateGridNav.d.ts +39 -0
- package/dist/utils/useGhostText.d.ts +2 -1
- package/dist/utils/useKeyboardNav.d.ts +51 -5
- package/dist/utils/useModalLayer.d.ts +4 -0
- package/dist/utils/useRovingToolbar.d.ts +26 -0
- package/dist/utils/validationMessages.d.ts +15 -0
- package/dist/utils.cjs +1 -1
- package/dist/utils.entry.d.ts +3 -1
- package/dist/utils.js +11 -11
- package/dist/validationMessages-BFimXxlT.js +23 -0
- package/dist/validationMessages-BFimXxlT.js.map +1 -0
- package/dist/validationMessages-iHu7apWr.cjs +2 -0
- package/dist/validationMessages-iHu7apWr.cjs.map +1 -0
- package/dist/validators-SZmLxnir.cjs +2 -0
- package/dist/validators-SZmLxnir.cjs.map +1 -0
- package/dist/{validators-DVYOtFnw.js → validators-ULebNme2.js} +107 -106
- package/dist/validators-ULebNme2.js.map +1 -0
- package/package.json +1 -1
- package/dist/MAvatar-DHNB3829.cjs +0 -2
- package/dist/MAvatar-DHNB3829.cjs.map +0 -1
- package/dist/MAvatar-GeRL-CNO.js +0 -63
- package/dist/MAvatar-GeRL-CNO.js.map +0 -1
- package/dist/MButton-CEwo8lUB.js +0 -115
- package/dist/MButton-CEwo8lUB.js.map +0 -1
- package/dist/MButton-CnAr77Za.cjs +0 -2
- package/dist/MButton-CnAr77Za.cjs.map +0 -1
- package/dist/MCard-BqSkGAgf.js.map +0 -1
- package/dist/MCard-P8OoswWM.cjs.map +0 -1
- package/dist/MCheckbox-BxFBADcE.js +0 -59
- package/dist/MCheckbox-BxFBADcE.js.map +0 -1
- package/dist/MCheckbox-DozwF2ai.cjs +0 -2
- package/dist/MCheckbox-DozwF2ai.cjs.map +0 -1
- package/dist/MConflictIllustration-2QL-BHYv.cjs +0 -2
- package/dist/MConflictIllustration-2QL-BHYv.cjs.map +0 -1
- package/dist/MConflictIllustration-znC7ijmP.js.map +0 -1
- package/dist/MDetailList-CThQvoyf.cjs +0 -2
- package/dist/MDetailList-CThQvoyf.cjs.map +0 -1
- package/dist/MDetailList-Cx9H81xT.js +0 -98
- package/dist/MDetailList-Cx9H81xT.js.map +0 -1
- package/dist/MDropdownMenu-DnKcCyW6.cjs +0 -2
- package/dist/MDropdownMenu-DnKcCyW6.cjs.map +0 -1
- package/dist/MDropdownMenu-DxbKN7Ui.js +0 -172
- package/dist/MDropdownMenu-DxbKN7Ui.js.map +0 -1
- package/dist/MGrid-BkRSGN2t.cjs +0 -2
- package/dist/MGrid-BkRSGN2t.cjs.map +0 -1
- package/dist/MGrid-CIz-2i6X.js +0 -265
- package/dist/MGrid-CIz-2i6X.js.map +0 -1
- package/dist/MHeading-AYQ8_GFP.cjs +0 -2
- package/dist/MHeading-AYQ8_GFP.cjs.map +0 -1
- package/dist/MHeading-DcGxUMwC.js +0 -21
- package/dist/MHeading-DcGxUMwC.js.map +0 -1
- package/dist/MI18nProvider-CqAwaswx.cjs +0 -2
- package/dist/MI18nProvider-CqAwaswx.cjs.map +0 -1
- package/dist/MI18nProvider-VH14CI8u.js +0 -72
- package/dist/MI18nProvider-VH14CI8u.js.map +0 -1
- package/dist/MInput-BYj2BdUe.cjs +0 -2
- package/dist/MInput-BYj2BdUe.cjs.map +0 -1
- package/dist/MInput-nodE-CZF.js +0 -188
- package/dist/MInput-nodE-CZF.js.map +0 -1
- package/dist/MInputCVC-9XWryaTz.cjs +0 -2
- package/dist/MInputCVC-9XWryaTz.cjs.map +0 -1
- package/dist/MInputCVC-CrDTaUXm.js +0 -321
- package/dist/MInputCVC-CrDTaUXm.js.map +0 -1
- package/dist/MInputSearch-BMgCHjFk.js +0 -43
- package/dist/MInputSearch-BMgCHjFk.js.map +0 -1
- package/dist/MInputSearch-BiVI1jNc.cjs +0 -2
- package/dist/MInputSearch-BiVI1jNc.cjs.map +0 -1
- package/dist/MLink-CAl6N6_z.js +0 -31
- package/dist/MLink-CAl6N6_z.js.map +0 -1
- package/dist/MLink-Dk_ReE6i.cjs +0 -2
- package/dist/MLink-Dk_ReE6i.cjs.map +0 -1
- package/dist/MLoader-CYp0OJU_.js +0 -41
- package/dist/MLoader-CYp0OJU_.js.map +0 -1
- package/dist/MLoader-DvmFle31.cjs +0 -2
- package/dist/MLoader-DvmFle31.cjs.map +0 -1
- package/dist/MPagination-E7IixIeo.js +0 -113
- package/dist/MPagination-E7IixIeo.js.map +0 -1
- package/dist/MPagination-reDU9xTW.cjs +0 -2
- package/dist/MPagination-reDU9xTW.cjs.map +0 -1
- package/dist/MPopover-8gYD3Ogq.js +0 -118
- package/dist/MPopover-8gYD3Ogq.js.map +0 -1
- package/dist/MPopover-B3npyAkL.cjs +0 -2
- package/dist/MPopover-B3npyAkL.cjs.map +0 -1
- package/dist/MPortal-Ba2Sxset.js +0 -10
- package/dist/MPortal-Ba2Sxset.js.map +0 -1
- package/dist/MPortal-CuBXhhl_.cjs +0 -2
- package/dist/MPortal-CuBXhhl_.cjs.map +0 -1
- package/dist/MSimpleGrid-BchGYPMi.cjs +0 -2
- package/dist/MSimpleGrid-BchGYPMi.cjs.map +0 -1
- package/dist/MSimpleGrid-Ui8cI0ho.js.map +0 -1
- package/dist/MSkeleton-DPa_G_2X.cjs +0 -2
- package/dist/MSkeleton-DPa_G_2X.cjs.map +0 -1
- package/dist/MSkeleton-Dhu-loDO.js.map +0 -1
- package/dist/MSlider-BRjhyBSc.js +0 -75
- package/dist/MSlider-BRjhyBSc.js.map +0 -1
- package/dist/MSlider-w5214a-W.cjs +0 -2
- package/dist/MSlider-w5214a-W.cjs.map +0 -1
- package/dist/MStack-Dt-rWvg3.js +0 -39
- package/dist/MStack-Dt-rWvg3.js.map +0 -1
- package/dist/MStack-nc6Y_9K3.cjs +0 -2
- package/dist/MStack-nc6Y_9K3.cjs.map +0 -1
- package/dist/MSubText-B0tXiuAp.js +0 -17
- package/dist/MSubText-B0tXiuAp.js.map +0 -1
- package/dist/MSubText-C6v6Exa2.cjs +0 -2
- package/dist/MSubText-C6v6Exa2.cjs.map +0 -1
- package/dist/MSurface-BjE-mL1L.cjs +0 -2
- package/dist/MSurface-BjE-mL1L.cjs.map +0 -1
- package/dist/MSurface-CpDJCdb5.js +0 -74
- package/dist/MSurface-CpDJCdb5.js.map +0 -1
- package/dist/MTag-BgOxiahL.cjs +0 -2
- package/dist/MTag-BgOxiahL.cjs.map +0 -1
- package/dist/MTag-cw3cIGHX.js +0 -41
- package/dist/MTag-cw3cIGHX.js.map +0 -1
- package/dist/MText-BDI4mdw8.cjs +0 -2
- package/dist/MText-BDI4mdw8.cjs.map +0 -1
- package/dist/MText-DhbAjtUE.js +0 -45
- package/dist/MText-DhbAjtUE.js.map +0 -1
- package/dist/MTooltip-BAgHlv5I.cjs +0 -2
- package/dist/MTooltip-BAgHlv5I.cjs.map +0 -1
- package/dist/MTooltip-CJxvlkOX.js +0 -92
- package/dist/MTooltip-CJxvlkOX.js.map +0 -1
- package/dist/MTreeView-DsBnYQMT.js +0 -315
- package/dist/MTreeView-DsBnYQMT.js.map +0 -1
- package/dist/MTreeView-LiJ5o-zy.cjs +0 -2
- package/dist/MTreeView-LiJ5o-zy.cjs.map +0 -1
- package/dist/calendar-Bq6NMNnS.js +0 -193
- package/dist/calendar-Bq6NMNnS.js.map +0 -1
- package/dist/calendar-C57BH8Nd.cjs +0 -2
- package/dist/calendar-C57BH8Nd.cjs.map +0 -1
- package/dist/calendarDates-M_Dawj0j.js.map +0 -1
- package/dist/calendarDates-qm047RW2.cjs +0 -2
- package/dist/calendarDates-qm047RW2.cjs.map +0 -1
- package/dist/cards-D4xJVd4q.js +0 -1227
- package/dist/cards-D4xJVd4q.js.map +0 -1
- package/dist/cards-Du6dbZSQ.cjs +0 -2
- package/dist/cards-Du6dbZSQ.cjs.map +0 -1
- package/dist/controls-BKoc_yel.js +0 -475
- package/dist/controls-BKoc_yel.js.map +0 -1
- package/dist/controls-Ck-PMt__.cjs +0 -2
- package/dist/controls-Ck-PMt__.cjs.map +0 -1
- package/dist/creditCards-D_HwRUBz.cjs +0 -2
- package/dist/creditCards-D_HwRUBz.cjs.map +0 -1
- package/dist/creditCards-D_iWmtG6.js.map +0 -1
- package/dist/data-CdQximqm.js +0 -689
- package/dist/data-CdQximqm.js.map +0 -1
- package/dist/data-PS4ygCyj.cjs +0 -2
- package/dist/data-PS4ygCyj.cjs.map +0 -1
- package/dist/dateUtils-CUY6CRCf.js.map +0 -1
- package/dist/dateUtils-Dq1vaA-D.cjs +0 -2
- package/dist/dateUtils-Dq1vaA-D.cjs.map +0 -1
- package/dist/display-YC1fVpXA.js +0 -782
- package/dist/display-YC1fVpXA.js.map +0 -1
- package/dist/display-slIo1bQI.cjs +0 -3
- package/dist/display-slIo1bQI.cjs.map +0 -1
- package/dist/dropdowns-DFbUoZ8Q.cjs +0 -2
- package/dist/dropdowns-DFbUoZ8Q.cjs.map +0 -1
- package/dist/dropdowns-nW3MY5XG.js +0 -1715
- package/dist/dropdowns-nW3MY5XG.js.map +0 -1
- package/dist/feedback-6MNb2Xyk.cjs +0 -2
- package/dist/feedback-6MNb2Xyk.cjs.map +0 -1
- package/dist/feedback-CPwJaQHY.js +0 -259
- package/dist/feedback-CPwJaQHY.js.map +0 -1
- package/dist/form-CMsZo6Dm.cjs +0 -2
- package/dist/form-CMsZo6Dm.cjs.map +0 -1
- package/dist/form-WU6DcQGD.js +0 -164
- package/dist/form-WU6DcQGD.js.map +0 -1
- package/dist/frameworkTexts-BSXUtXOp.cjs +0 -2
- package/dist/frameworkTexts-BSXUtXOp.cjs.map +0 -1
- package/dist/frameworkTexts-DP5RUl19.js +0 -131
- package/dist/frameworkTexts-DP5RUl19.js.map +0 -1
- package/dist/icons-CBMl-kOM.js.map +0 -1
- package/dist/icons-D3n9-919.cjs +0 -2
- package/dist/icons-D3n9-919.cjs.map +0 -1
- package/dist/inputs-B7rGMLMr.js +0 -1753
- package/dist/inputs-B7rGMLMr.js.map +0 -1
- package/dist/inputs-BiN62hgH.cjs +0 -2
- package/dist/inputs-BiN62hgH.cjs.map +0 -1
- package/dist/layout-BMggJ_qO.cjs +0 -2
- package/dist/layout-BMggJ_qO.cjs.map +0 -1
- package/dist/layout-DBYHyCTr.js +0 -883
- package/dist/layout-DBYHyCTr.js.map +0 -1
- package/dist/licensing-Be3g-PJt.cjs +0 -2
- package/dist/licensing-Be3g-PJt.cjs.map +0 -1
- package/dist/licensing-f5KYVz7D.js.map +0 -1
- package/dist/media-BPzMgzqE.js +0 -405
- package/dist/media-BPzMgzqE.js.map +0 -1
- package/dist/media-D63hxCAJ.cjs +0 -2
- package/dist/media-D63hxCAJ.cjs.map +0 -1
- package/dist/overlays-CCeYD6hT.js +0 -555
- package/dist/overlays-CCeYD6hT.js.map +0 -1
- package/dist/overlays-CsRN5OG8.cjs +0 -2
- package/dist/overlays-CsRN5OG8.cjs.map +0 -1
- package/dist/popoverStack--0r2oJCD.js +0 -44
- package/dist/popoverStack--0r2oJCD.js.map +0 -1
- package/dist/popoverStack-BmMk-VZJ.cjs +0 -2
- package/dist/popoverStack-BmMk-VZJ.cjs.map +0 -1
- package/dist/theme-CJuqObWL.cjs +0 -2
- package/dist/theme-CJuqObWL.cjs.map +0 -1
- package/dist/theme-DAOU1aPs.js.map +0 -1
- package/dist/useGhostText-DG0bzcao.js +0 -68
- package/dist/useGhostText-DG0bzcao.js.map +0 -1
- package/dist/useGhostText-mibV4s1-.cjs +0 -2
- package/dist/useGhostText-mibV4s1-.cjs.map +0 -1
- package/dist/useKeyboardNav-CCUoRMgm.cjs +0 -2
- package/dist/useKeyboardNav-CCUoRMgm.cjs.map +0 -1
- package/dist/useKeyboardNav-iEXOdEMB.js +0 -43
- package/dist/useKeyboardNav-iEXOdEMB.js.map +0 -1
- package/dist/useModalLayer-Bf4TcEz-.js +0 -58
- package/dist/useModalLayer-Bf4TcEz-.js.map +0 -1
- package/dist/useModalLayer-DxYhhgRO.cjs +0 -2
- package/dist/useModalLayer-DxYhhgRO.cjs.map +0 -1
- package/dist/utils/proActivationWarning.d.ts +0 -7
- package/dist/validators-B6yWdsu2.cjs +0 -2
- package/dist/validators-B6yWdsu2.cjs.map +0 -1
- package/dist/validators-DVYOtFnw.js.map +0 -1
|
@@ -1,31 +1,32 @@
|
|
|
1
|
+
import { r as e } from "./validationMessages-BFimXxlT.js";
|
|
1
2
|
//#region src/utils/postalCodes.ts
|
|
2
|
-
var
|
|
3
|
-
function
|
|
3
|
+
var t = { valid: !0 };
|
|
4
|
+
function n(e) {
|
|
4
5
|
return e.toUpperCase().replace(/[^A-Z0-9]/g, "");
|
|
5
6
|
}
|
|
6
|
-
function
|
|
7
|
+
function r(e) {
|
|
7
8
|
let t = e.replace(/\D/g, "").slice(0, 5);
|
|
8
9
|
return t.length <= 2 ? t : `${t.slice(0, 2)}-${t.slice(2)}`;
|
|
9
10
|
}
|
|
10
|
-
function
|
|
11
|
+
function i(e) {
|
|
11
12
|
let t = e.replace(/\D/g, "").slice(0, 9);
|
|
12
13
|
return t.length <= 5 ? t : `${t.slice(0, 5)}-${t.slice(5)}`;
|
|
13
14
|
}
|
|
14
|
-
function
|
|
15
|
+
function a(e, t) {
|
|
15
16
|
return e.replace(/\D/g, "").slice(0, t);
|
|
16
17
|
}
|
|
17
|
-
function a(e) {
|
|
18
|
-
return t(e).slice(0, 6).split("").map((e, t) => t === 3 ? ` ${e}` : e).join("");
|
|
19
|
-
}
|
|
20
18
|
function o(e) {
|
|
21
|
-
|
|
22
|
-
return n.length <= 3 ? n : `${n.slice(0, n.length - 3)} ${n.slice(-3)}`;
|
|
19
|
+
return n(e).slice(0, 6).split("").map((e, t) => t === 3 ? ` ${e}` : e).join("");
|
|
23
20
|
}
|
|
24
21
|
function s(e) {
|
|
25
|
-
let
|
|
26
|
-
return
|
|
22
|
+
let t = n(e).slice(0, 7);
|
|
23
|
+
return t.length <= 3 ? t : `${t.slice(0, t.length - 3)} ${t.slice(-3)}`;
|
|
24
|
+
}
|
|
25
|
+
function c(e) {
|
|
26
|
+
let t = n(e).slice(0, 6);
|
|
27
|
+
return t.length <= 4 ? t : `${t.slice(0, 4)} ${t.slice(4)}`;
|
|
27
28
|
}
|
|
28
|
-
var
|
|
29
|
+
var l = {
|
|
29
30
|
PL: {
|
|
30
31
|
countryCode: "PL",
|
|
31
32
|
label: "Poland",
|
|
@@ -35,7 +36,7 @@ var c = {
|
|
|
35
36
|
maxLength: 6,
|
|
36
37
|
regex: /^\d{2}-\d{3}$/,
|
|
37
38
|
sanitize: (e) => e.replace(/\D/g, "").slice(0, 5),
|
|
38
|
-
format:
|
|
39
|
+
format: r,
|
|
39
40
|
message: "Use the Polish format XX-XXX"
|
|
40
41
|
},
|
|
41
42
|
DE: {
|
|
@@ -47,7 +48,7 @@ var c = {
|
|
|
47
48
|
maxLength: 5,
|
|
48
49
|
regex: /^\d{5}$/,
|
|
49
50
|
sanitize: (e) => e.replace(/\D/g, "").slice(0, 5),
|
|
50
|
-
format: (e) =>
|
|
51
|
+
format: (e) => a(e, 5),
|
|
51
52
|
message: "Use a 5-digit German postal code"
|
|
52
53
|
},
|
|
53
54
|
FR: {
|
|
@@ -59,7 +60,7 @@ var c = {
|
|
|
59
60
|
maxLength: 5,
|
|
60
61
|
regex: /^\d{5}$/,
|
|
61
62
|
sanitize: (e) => e.replace(/\D/g, "").slice(0, 5),
|
|
62
|
-
format: (e) =>
|
|
63
|
+
format: (e) => a(e, 5),
|
|
63
64
|
message: "Use a 5-digit French postal code"
|
|
64
65
|
},
|
|
65
66
|
ES: {
|
|
@@ -71,7 +72,7 @@ var c = {
|
|
|
71
72
|
maxLength: 5,
|
|
72
73
|
regex: /^\d{5}$/,
|
|
73
74
|
sanitize: (e) => e.replace(/\D/g, "").slice(0, 5),
|
|
74
|
-
format: (e) =>
|
|
75
|
+
format: (e) => a(e, 5),
|
|
75
76
|
message: "Use a 5-digit Spanish postal code"
|
|
76
77
|
},
|
|
77
78
|
IT: {
|
|
@@ -83,7 +84,7 @@ var c = {
|
|
|
83
84
|
maxLength: 5,
|
|
84
85
|
regex: /^\d{5}$/,
|
|
85
86
|
sanitize: (e) => e.replace(/\D/g, "").slice(0, 5),
|
|
86
|
-
format: (e) =>
|
|
87
|
+
format: (e) => a(e, 5),
|
|
87
88
|
message: "Use a 5-digit Italian postal code"
|
|
88
89
|
},
|
|
89
90
|
US: {
|
|
@@ -95,7 +96,7 @@ var c = {
|
|
|
95
96
|
maxLength: 10,
|
|
96
97
|
regex: /^\d{5}(?:-\d{4})?$/,
|
|
97
98
|
sanitize: (e) => e.replace(/\D/g, "").slice(0, 9),
|
|
98
|
-
format:
|
|
99
|
+
format: i,
|
|
99
100
|
message: "Use ZIP or ZIP+4 format"
|
|
100
101
|
},
|
|
101
102
|
CA: {
|
|
@@ -106,8 +107,8 @@ var c = {
|
|
|
106
107
|
inputMode: "text",
|
|
107
108
|
maxLength: 7,
|
|
108
109
|
regex: /^[A-Z]\d[A-Z] \d[A-Z]\d$/,
|
|
109
|
-
sanitize: (e) =>
|
|
110
|
-
format:
|
|
110
|
+
sanitize: (e) => n(e).slice(0, 6),
|
|
111
|
+
format: o,
|
|
111
112
|
message: "Use the Canadian format A1A 1A1"
|
|
112
113
|
},
|
|
113
114
|
GB: {
|
|
@@ -118,8 +119,8 @@ var c = {
|
|
|
118
119
|
inputMode: "text",
|
|
119
120
|
maxLength: 8,
|
|
120
121
|
regex: /^[A-Z]{1,2}\d[A-Z\d]? \d[A-Z]{2}$/,
|
|
121
|
-
sanitize: (e) =>
|
|
122
|
-
format:
|
|
122
|
+
sanitize: (e) => n(e).slice(0, 7),
|
|
123
|
+
format: s,
|
|
123
124
|
message: "Use a valid UK postcode"
|
|
124
125
|
},
|
|
125
126
|
NL: {
|
|
@@ -130,58 +131,55 @@ var c = {
|
|
|
130
131
|
inputMode: "text",
|
|
131
132
|
maxLength: 7,
|
|
132
133
|
regex: /^\d{4} [A-Z]{2}$/,
|
|
133
|
-
sanitize: (e) =>
|
|
134
|
-
format:
|
|
134
|
+
sanitize: (e) => n(e).slice(0, 6),
|
|
135
|
+
format: c,
|
|
135
136
|
message: "Use the Dutch format 1234 AB"
|
|
136
137
|
}
|
|
137
|
-
},
|
|
138
|
+
}, u = Object.values(l).map(({ countryCode: e, label: t }) => ({
|
|
138
139
|
value: e,
|
|
139
140
|
label: t
|
|
140
141
|
}));
|
|
141
|
-
function
|
|
142
|
-
return
|
|
142
|
+
function d(e = "PL") {
|
|
143
|
+
return l[e.toUpperCase()] ?? l.PL;
|
|
143
144
|
}
|
|
144
|
-
function
|
|
145
|
-
let n =
|
|
145
|
+
function f(e, t = "PL") {
|
|
146
|
+
let n = d(t);
|
|
146
147
|
return n.format(n.sanitize(e));
|
|
147
148
|
}
|
|
148
|
-
function
|
|
149
|
-
if (!
|
|
150
|
-
let
|
|
151
|
-
return
|
|
152
|
-
valid: !1,
|
|
153
|
-
error: r.message
|
|
154
|
-
};
|
|
149
|
+
function p(n, r = "PL") {
|
|
150
|
+
if (!n) return t;
|
|
151
|
+
let i = d(r), a = i.format(i.sanitize(n));
|
|
152
|
+
return i.regex.test(a) ? t : e(`postCode.${i.countryCode}`, i.message);
|
|
155
153
|
}
|
|
156
154
|
//#endregion
|
|
157
155
|
//#region src/utils/validators.ts
|
|
158
|
-
var
|
|
159
|
-
valid: !1,
|
|
160
|
-
error: e
|
|
161
|
-
});
|
|
162
|
-
function h(e) {
|
|
163
|
-
return e.trim().length > 0 ? p : m("This field is required");
|
|
164
|
-
}
|
|
156
|
+
var m = { valid: !0 }, h = e;
|
|
165
157
|
function g(e) {
|
|
166
|
-
return (
|
|
158
|
+
return e.trim().length > 0 ? m : h("required", "This field is required");
|
|
167
159
|
}
|
|
168
160
|
function _(e) {
|
|
169
|
-
return (t) => t.length
|
|
161
|
+
return (t) => t.length >= e ? m : h("minLength", "Minimum {min} characters", { min: e });
|
|
170
162
|
}
|
|
171
|
-
function v(e
|
|
172
|
-
return (
|
|
163
|
+
function v(e) {
|
|
164
|
+
return (t) => t.length <= e ? m : h("maxLength", "Maximum {max} characters", { max: e });
|
|
173
165
|
}
|
|
174
166
|
function y(e, t) {
|
|
167
|
+
return (n) => e.test(n) ? m : t === void 0 ? h("pattern", "Invalid format") : {
|
|
168
|
+
valid: !1,
|
|
169
|
+
error: t
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
function b(e, t) {
|
|
175
173
|
return (n) => {
|
|
176
174
|
let r = parseFloat(n);
|
|
177
|
-
return isNaN(r) ?
|
|
175
|
+
return isNaN(r) ? h("number", "Must be a number") : e !== void 0 && r < e ? h("minValue", "Minimum value is {min}", { min: e }) : t !== void 0 && r > t ? h("maxValue", "Maximum value is {max}", { max: t }) : m;
|
|
178
176
|
};
|
|
179
177
|
}
|
|
180
|
-
var
|
|
181
|
-
function
|
|
182
|
-
return e ?
|
|
178
|
+
var x = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;
|
|
179
|
+
function S(e) {
|
|
180
|
+
return e ? x.test(e) ? m : h("email", "Invalid email address") : m;
|
|
183
181
|
}
|
|
184
|
-
var
|
|
182
|
+
var C = {
|
|
185
183
|
PL: 9,
|
|
186
184
|
DE: 10,
|
|
187
185
|
US: 10,
|
|
@@ -190,18 +188,18 @@ var S = {
|
|
|
190
188
|
CZ: 9,
|
|
191
189
|
SK: 9
|
|
192
190
|
};
|
|
193
|
-
function
|
|
194
|
-
if (!e) return
|
|
191
|
+
function w(e, t) {
|
|
192
|
+
if (!e) return m;
|
|
195
193
|
let n = e.replace(/\D/g, "");
|
|
196
|
-
if (n.length < 7) return
|
|
197
|
-
if (n.length > 15) return
|
|
194
|
+
if (n.length < 7) return h("phoneTooShort", "Phone number too short");
|
|
195
|
+
if (n.length > 15) return h("phoneTooLong", "Phone number too long");
|
|
198
196
|
if (t) {
|
|
199
|
-
let e =
|
|
200
|
-
if (e && n.length !== e) return
|
|
197
|
+
let e = C[t.toUpperCase()];
|
|
198
|
+
if (e && n.length !== e) return h("phoneDigits", "Phone number should have {expected} digits", { expected: e });
|
|
201
199
|
}
|
|
202
|
-
return
|
|
200
|
+
return m;
|
|
203
201
|
}
|
|
204
|
-
var
|
|
202
|
+
var T = {
|
|
205
203
|
AL: 28,
|
|
206
204
|
AD: 24,
|
|
207
205
|
AT: 20,
|
|
@@ -278,23 +276,26 @@ var w = {
|
|
|
278
276
|
GB: 22,
|
|
279
277
|
VA: 22,
|
|
280
278
|
VG: 24
|
|
281
|
-
},
|
|
282
|
-
function E(e) {
|
|
283
|
-
return w[e.toUpperCase()] ?? null;
|
|
284
|
-
}
|
|
279
|
+
}, E = Object.keys(T).sort();
|
|
285
280
|
function D(e) {
|
|
281
|
+
return T[e.toUpperCase()] ?? null;
|
|
282
|
+
}
|
|
283
|
+
function O(e) {
|
|
286
284
|
let t = 0;
|
|
287
285
|
for (let n = 0; n < e.length; n++) t = (t * 10 + parseInt(e[n], 10)) % 97;
|
|
288
286
|
return t;
|
|
289
287
|
}
|
|
290
|
-
function
|
|
291
|
-
if (!e) return
|
|
288
|
+
function k(e) {
|
|
289
|
+
if (!e) return m;
|
|
292
290
|
let t = e.replace(/\s/g, "").toUpperCase();
|
|
293
|
-
if (t.length < 2) return
|
|
294
|
-
let n = t.slice(0, 2), r =
|
|
295
|
-
return r ? t.length === r ?
|
|
291
|
+
if (t.length < 2) return h("ibanTooShort", "IBAN too short");
|
|
292
|
+
let n = t.slice(0, 2), r = T[n];
|
|
293
|
+
return r ? t.length === r ? O((t.slice(4) + t.slice(0, 4)).replace(/[A-Z]/g, (e) => String(e.charCodeAt(0) - 55))) === 1 ? m : h("ibanChecksum", "Invalid IBAN checksum") : h("ibanLength", "IBAN for {country} should have {length} characters", {
|
|
294
|
+
country: n,
|
|
295
|
+
length: r
|
|
296
|
+
}) : h("ibanCountry", "Unknown IBAN country code");
|
|
296
297
|
}
|
|
297
|
-
var
|
|
298
|
+
var A = [
|
|
298
299
|
6,
|
|
299
300
|
5,
|
|
300
301
|
7,
|
|
@@ -305,16 +306,16 @@ var k = [
|
|
|
305
306
|
6,
|
|
306
307
|
7
|
|
307
308
|
];
|
|
308
|
-
function
|
|
309
|
-
if (!e) return
|
|
309
|
+
function j(e) {
|
|
310
|
+
if (!e) return m;
|
|
310
311
|
let t = e.replace(/\D/g, "");
|
|
311
|
-
if (t.length !== 10) return
|
|
312
|
+
if (t.length !== 10) return h("nipDigits", "NIP must have 10 digits");
|
|
312
313
|
let n = 0;
|
|
313
|
-
for (let e = 0; e < 9; e++) n += parseInt(t[e], 10) *
|
|
314
|
+
for (let e = 0; e < 9; e++) n += parseInt(t[e], 10) * A[e];
|
|
314
315
|
let r = n % 11;
|
|
315
|
-
return r === 10 ?
|
|
316
|
+
return r === 10 ? h("nip", "Invalid NIP") : r === parseInt(t[9], 10) ? m : h("nipChecksum", "Invalid NIP checksum");
|
|
316
317
|
}
|
|
317
|
-
var
|
|
318
|
+
var M = [
|
|
318
319
|
1,
|
|
319
320
|
3,
|
|
320
321
|
7,
|
|
@@ -326,15 +327,15 @@ var j = [
|
|
|
326
327
|
1,
|
|
327
328
|
3
|
|
328
329
|
];
|
|
329
|
-
function
|
|
330
|
-
if (!e) return
|
|
330
|
+
function N(e) {
|
|
331
|
+
if (!e) return m;
|
|
331
332
|
let t = e.replace(/\D/g, "");
|
|
332
|
-
if (t.length !== 11) return
|
|
333
|
+
if (t.length !== 11) return h("peselDigits", "PESEL must have 11 digits");
|
|
333
334
|
let n = 0;
|
|
334
|
-
for (let e = 0; e < 10; e++) n += parseInt(t[e], 10) *
|
|
335
|
-
return (10 - n % 10) % 10 === parseInt(t[10], 10) ?
|
|
335
|
+
for (let e = 0; e < 10; e++) n += parseInt(t[e], 10) * M[e];
|
|
336
|
+
return (10 - n % 10) % 10 === parseInt(t[10], 10) ? m : h("peselChecksum", "Invalid PESEL checksum");
|
|
336
337
|
}
|
|
337
|
-
var
|
|
338
|
+
var P = [
|
|
338
339
|
8,
|
|
339
340
|
9,
|
|
340
341
|
2,
|
|
@@ -343,7 +344,7 @@ var N = [
|
|
|
343
344
|
5,
|
|
344
345
|
6,
|
|
345
346
|
7
|
|
346
|
-
],
|
|
347
|
+
], F = [
|
|
347
348
|
2,
|
|
348
349
|
4,
|
|
349
350
|
8,
|
|
@@ -358,24 +359,24 @@ var N = [
|
|
|
358
359
|
4,
|
|
359
360
|
8
|
|
360
361
|
];
|
|
361
|
-
function
|
|
362
|
-
if (!e) return
|
|
362
|
+
function I(e) {
|
|
363
|
+
if (!e) return m;
|
|
363
364
|
let t = e.replace(/\D/g, "");
|
|
364
|
-
if (t.length !== 9 && t.length !== 14) return
|
|
365
|
-
let n = t.length === 9 ?
|
|
365
|
+
if (t.length !== 9 && t.length !== 14) return h("regonDigits", "REGON must have 9 or 14 digits");
|
|
366
|
+
let n = t.length === 9 ? P : F, r = 0;
|
|
366
367
|
for (let e = 0; e < n.length; e++) r += parseInt(t[e], 10) * n[e];
|
|
367
|
-
return (r % 11 == 10 ? 0 : r % 11) === parseInt(t[t.length - 1], 10) ?
|
|
368
|
+
return (r % 11 == 10 ? 0 : r % 11) === parseInt(t[t.length - 1], 10) ? m : h("regonChecksum", "Invalid REGON checksum");
|
|
368
369
|
}
|
|
369
|
-
function
|
|
370
|
+
function L(...e) {
|
|
370
371
|
return (t) => {
|
|
371
372
|
for (let n of e) {
|
|
372
373
|
let e = n(t);
|
|
373
374
|
if (!e.valid) return e;
|
|
374
375
|
}
|
|
375
|
-
return
|
|
376
|
+
return m;
|
|
376
377
|
};
|
|
377
378
|
}
|
|
378
|
-
function
|
|
379
|
+
function R(e, t = "DD/MM/YYYY") {
|
|
379
380
|
let n = e.replace(/\D/g, "");
|
|
380
381
|
if (n.length !== 8) return null;
|
|
381
382
|
let r, i, a;
|
|
@@ -383,31 +384,31 @@ function L(e, t = "DD/MM/YYYY") {
|
|
|
383
384
|
let o = new Date(a, i - 1, r);
|
|
384
385
|
return o.getFullYear() !== a || o.getMonth() !== i - 1 || o.getDate() !== r ? null : o;
|
|
385
386
|
}
|
|
386
|
-
function
|
|
387
|
-
if (!e) return
|
|
387
|
+
function z(e, t = {}) {
|
|
388
|
+
if (!e) return m;
|
|
388
389
|
let { format: n = "DD/MM/YYYY", minDate: r, maxDate: i } = t;
|
|
389
|
-
if (e.replace(/\D/g, "").length !== 8) return
|
|
390
|
-
let a =
|
|
391
|
-
return a ? r && a < new Date(r.getFullYear(), r.getMonth(), r.getDate()) ?
|
|
390
|
+
if (e.replace(/\D/g, "").length !== 8) return h("dateIncomplete", "Incomplete date");
|
|
391
|
+
let a = R(e, n);
|
|
392
|
+
return a ? r && a < new Date(r.getFullYear(), r.getMonth(), r.getDate()) ? h("dateTooEarly", "Date is too early") : i && a > new Date(i.getFullYear(), i.getMonth(), i.getDate()) ? h("dateTooLate", "Date is too far in the future") : m : h("date", "Invalid date");
|
|
392
393
|
}
|
|
393
|
-
function
|
|
394
|
-
if (!e) return
|
|
394
|
+
function B(e, t = {}) {
|
|
395
|
+
if (!e) return m;
|
|
395
396
|
let { protocols: n = ["http", "https"], requireProtocol: r = !0 } = t, i = /^[a-zA-Z][a-zA-Z0-9+.-]*:/.test(e);
|
|
396
|
-
if (!i && r) return
|
|
397
|
+
if (!i && r) return h("urlProtocolRequired", "URL must start with {protocols}", { protocols: n.map((e) => `${e}://`).join(" or ") });
|
|
397
398
|
let a = i ? e : `https://${e}`, o;
|
|
398
399
|
try {
|
|
399
400
|
o = new URL(a);
|
|
400
401
|
} catch {
|
|
401
|
-
return
|
|
402
|
+
return h("url", "Invalid URL");
|
|
402
403
|
}
|
|
403
|
-
if (!o.hostname) return
|
|
404
|
+
if (!o.hostname) return h("url", "Invalid URL");
|
|
404
405
|
if (i && n.length > 0) {
|
|
405
406
|
let e = o.protocol.replace(/:$/, "");
|
|
406
|
-
if (!n.includes(e)) return
|
|
407
|
+
if (!n.includes(e)) return h("urlProtocol", "Protocol \"{protocol}\" is not allowed", { protocol: e });
|
|
407
408
|
}
|
|
408
|
-
return
|
|
409
|
+
return m;
|
|
409
410
|
}
|
|
410
411
|
//#endregion
|
|
411
|
-
export {
|
|
412
|
+
export { p as S, B as _, z as a, u as b, v as c, N as d, y as f, g, b as h, R as i, _ as l, I as m, D as n, S as o, w as p, E as r, k as s, L as t, j as u, f as v, l as x, d as y };
|
|
412
413
|
|
|
413
|
-
//# sourceMappingURL=validators-
|
|
414
|
+
//# sourceMappingURL=validators-ULebNme2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validators-ULebNme2.js","names":[],"sources":["../src/utils/postalCodes.ts","../src/utils/validators.ts"],"sourcesContent":["import type {ValidationResult} from './validators'\nimport {validationFailure} from './validationMessages'\n\nexport interface PostCodeRule {\n countryCode: string\n label: string\n placeholder: string\n example: string\n inputMode: 'text' | 'numeric'\n maxLength: number\n regex: RegExp\n sanitize: (value: string) => string\n format: (value: string) => string\n message: string\n}\n\nconst OK_RESULT: ValidationResult = {valid: true}\n\n// Reuse one sanitizer for countries that mix letters and digits.\nfunction keepLettersAndDigits(value: string): string {\n return value.toUpperCase().replace(/[^A-Z0-9]/g, '')\n}\n\n// Apply the common Polish XX-XXX postcode shape.\nfunction formatPlPostCode(value: string): string {\n const digits = value.replace(/\\D/g, '').slice(0, 5)\n\n if (digits.length <= 2) {\n return digits\n }\n\n return `${digits.slice(0, 2)}-${digits.slice(2)}`\n}\n\n// Support ZIP and ZIP+4 with the same formatter.\nfunction formatUsPostCode(value: string): string {\n const digits = value.replace(/\\D/g, '').slice(0, 9)\n\n if (digits.length <= 5) {\n return digits\n }\n\n return `${digits.slice(0, 5)}-${digits.slice(5)}`\n}\n\n// Clamp countries that only need a fixed number of digits.\nfunction formatFixedDigits(value: string, maxLength: number): string {\n return value.replace(/\\D/g, '').slice(0, maxLength)\n}\n\n// Insert the standard center space used by Canadian post codes.\nfunction formatCaPostCode(value: string): string {\n const clean = keepLettersAndDigits(value).slice(0, 6)\n const chars = clean.split('')\n\n return chars\n .map((char, index) => {\n if (index === 3) {\n return ` ${char}`\n }\n\n return char\n })\n .join('')\n}\n\n// Split the outward and inward parts of a UK postcode.\nfunction formatGbPostCode(value: string): string {\n const clean = keepLettersAndDigits(value).slice(0, 7)\n\n if (clean.length <= 3) {\n return clean\n }\n\n return `${clean.slice(0, clean.length - 3)} ${clean.slice(-3)}`\n}\n\n// Split Dutch codes into four digits and two letters.\nfunction formatNlPostCode(value: string): string {\n const clean = keepLettersAndDigits(value).slice(0, 6)\n\n if (clean.length <= 4) {\n return clean\n }\n\n return `${clean.slice(0, 4)} ${clean.slice(4)}`\n}\n\nexport const postCodeRules: Record<string, PostCodeRule> = {\n PL: {\n countryCode: 'PL',\n label: 'Poland',\n placeholder: '12-345',\n example: '00-001',\n inputMode: 'numeric',\n maxLength: 6,\n regex: /^\\d{2}-\\d{3}$/,\n sanitize: (value) => value.replace(/\\D/g, '').slice(0, 5),\n format: formatPlPostCode,\n message: 'Use the Polish format XX-XXX',\n },\n DE: {\n countryCode: 'DE',\n label: 'Germany',\n placeholder: '12345',\n example: '10115',\n inputMode: 'numeric',\n maxLength: 5,\n regex: /^\\d{5}$/,\n sanitize: (value) => value.replace(/\\D/g, '').slice(0, 5),\n format: (value) => formatFixedDigits(value, 5),\n message: 'Use a 5-digit German postal code',\n },\n FR: {\n countryCode: 'FR',\n label: 'France',\n placeholder: '75001',\n example: '75001',\n inputMode: 'numeric',\n maxLength: 5,\n regex: /^\\d{5}$/,\n sanitize: (value) => value.replace(/\\D/g, '').slice(0, 5),\n format: (value) => formatFixedDigits(value, 5),\n message: 'Use a 5-digit French postal code',\n },\n ES: {\n countryCode: 'ES',\n label: 'Spain',\n placeholder: '28013',\n example: '28013',\n inputMode: 'numeric',\n maxLength: 5,\n regex: /^\\d{5}$/,\n sanitize: (value) => value.replace(/\\D/g, '').slice(0, 5),\n format: (value) => formatFixedDigits(value, 5),\n message: 'Use a 5-digit Spanish postal code',\n },\n IT: {\n countryCode: 'IT',\n label: 'Italy',\n placeholder: '00184',\n example: '00184',\n inputMode: 'numeric',\n maxLength: 5,\n regex: /^\\d{5}$/,\n sanitize: (value) => value.replace(/\\D/g, '').slice(0, 5),\n format: (value) => formatFixedDigits(value, 5),\n message: 'Use a 5-digit Italian postal code',\n },\n US: {\n countryCode: 'US',\n label: 'United States',\n placeholder: '12345 or 12345-6789',\n example: '10001',\n inputMode: 'numeric',\n maxLength: 10,\n regex: /^\\d{5}(?:-\\d{4})?$/,\n sanitize: (value) => value.replace(/\\D/g, '').slice(0, 9),\n format: formatUsPostCode,\n message: 'Use ZIP or ZIP+4 format',\n },\n CA: {\n countryCode: 'CA',\n label: 'Canada',\n placeholder: 'A1A 1A1',\n example: 'M5V 3L9',\n inputMode: 'text',\n maxLength: 7,\n regex: /^[A-Z]\\d[A-Z] \\d[A-Z]\\d$/,\n sanitize: (value) => keepLettersAndDigits(value).slice(0, 6),\n format: formatCaPostCode,\n message: 'Use the Canadian format A1A 1A1',\n },\n GB: {\n countryCode: 'GB',\n label: 'United Kingdom',\n placeholder: 'SW1A 1AA',\n example: 'SW1A 1AA',\n inputMode: 'text',\n maxLength: 8,\n regex: /^[A-Z]{1,2}\\d[A-Z\\d]? \\d[A-Z]{2}$/,\n sanitize: (value) => keepLettersAndDigits(value).slice(0, 7),\n format: formatGbPostCode,\n message: 'Use a valid UK postcode',\n },\n NL: {\n countryCode: 'NL',\n label: 'Netherlands',\n placeholder: '1234 AB',\n example: '1012 AB',\n inputMode: 'text',\n maxLength: 7,\n regex: /^\\d{4} [A-Z]{2}$/,\n sanitize: (value) => keepLettersAndDigits(value).slice(0, 6),\n format: formatNlPostCode,\n message: 'Use the Dutch format 1234 AB',\n },\n}\n\nexport const postCodeCountries = Object.values(postCodeRules).map(({countryCode, label}) => ({\n value: countryCode,\n label,\n}))\n\n// Return the active postal rule or fall back to Poland for deterministic behavior.\nexport function getPostCodeRule(countryCode: string = 'PL'): PostCodeRule {\n return postCodeRules[countryCode.toUpperCase()] ?? postCodeRules.PL\n}\n\n// Keep postal input values aligned with the selected country format.\nexport function formatPostCode(value: string, countryCode: string = 'PL'): string {\n const rule = getPostCodeRule(countryCode)\n return rule.format(rule.sanitize(value))\n}\n\n// Validate the user-visible postal code against the selected country rule.\nexport function validatePostCode(value: string, countryCode: string = 'PL'): ValidationResult {\n if (!value) {\n return OK_RESULT\n }\n\n const rule = getPostCodeRule(countryCode)\n const formatted = rule.format(rule.sanitize(value))\n\n if (!rule.regex.test(formatted)) {\n return validationFailure(`postCode.${rule.countryCode}`, rule.message)\n }\n\n return OK_RESULT\n}\n","import {validationFailure} from './validationMessages'\n\nexport interface ValidationResult {\n valid: boolean\n error?: string\n}\n\nexport type ValidatorFn = (value: string) => ValidationResult\n\nconst ok: ValidationResult = {valid: true}\n// Failed result with an i18n key (mineralui.validation.<key>); the English template stays the default text.\nconst fail = validationFailure\n\n// Ensure the field is not empty after trimming user input.\nexport function validateRequired(value: string): ValidationResult {\n return value.trim().length > 0 ? ok : fail('required', 'This field is required')\n}\n\n// Build a validator that enforces a minimum string length.\nexport function validateMinLength(min: number): ValidatorFn {\n return (value: string) => (value.length >= min ? ok : fail('minLength', 'Minimum {min} characters', {min}))\n}\n\n// Build a validator that enforces a maximum string length.\nexport function validateMaxLength(max: number): ValidatorFn {\n return (value: string) => (value.length <= max ? ok : fail('maxLength', 'Maximum {max} characters', {max}))\n}\n\n// Build a validator around a custom regular expression.\nexport function validatePattern(pattern: RegExp, message?: string): ValidatorFn {\n return (value: string) =>\n pattern.test(value)\n ? ok\n : message !== undefined\n ? {valid: false, error: message}\n : fail('pattern', 'Invalid format')\n}\n\n// Validate numeric input against optional min and max bounds.\nexport function validateRange(min?: number, max?: number): ValidatorFn {\n return (value: string) => {\n const num = parseFloat(value)\n if (isNaN(num)) return fail('number', 'Must be a number')\n if (min !== undefined && num < min) return fail('minValue', 'Minimum value is {min}', {min})\n if (max !== undefined && num > max) return fail('maxValue', 'Maximum value is {max}', {max})\n return ok\n }\n}\n\n// === Email ===\n\nconst EMAIL_RE =\n /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/\n\n// Validate email format while allowing empty optional fields.\nexport function validateEmail(value: string): ValidationResult {\n if (!value) return ok\n return EMAIL_RE.test(value) ? ok : fail('email', 'Invalid email address')\n}\n\n// === Phone ===\n\nconst PHONE_LENGTH: Record<string, number> = {\n PL: 9,\n DE: 10,\n US: 10,\n GB: 10,\n FR: 9,\n CZ: 9,\n SK: 9,\n}\n\n// Validate a phone number with optional country-specific digit counts.\nexport function validatePhone(value: string, countryCode?: string): ValidationResult {\n if (!value) return ok\n const digits = value.replace(/\\D/g, '')\n if (digits.length < 7) return fail('phoneTooShort', 'Phone number too short')\n if (digits.length > 15) return fail('phoneTooLong', 'Phone number too long')\n if (countryCode) {\n const expected = PHONE_LENGTH[countryCode.toUpperCase()]\n if (expected && digits.length !== expected) {\n return fail('phoneDigits', 'Phone number should have {expected} digits', {expected})\n }\n }\n return ok\n}\n\n// === IBAN (MOD-97, ISO 13616) ===\n\nconst IBAN_LENGTHS: Record<string, number> = {\n AL: 28,\n AD: 24,\n AT: 20,\n AZ: 28,\n BH: 22,\n BY: 28,\n BE: 16,\n BA: 20,\n BR: 29,\n BG: 22,\n CR: 22,\n HR: 21,\n CY: 28,\n CZ: 24,\n DK: 18,\n DO: 28,\n EG: 29,\n SV: 28,\n EE: 20,\n FO: 18,\n FI: 18,\n FR: 27,\n GE: 22,\n DE: 22,\n GI: 23,\n GR: 27,\n GL: 18,\n GT: 28,\n HU: 28,\n IS: 26,\n IQ: 23,\n IE: 22,\n IL: 23,\n IT: 27,\n JO: 30,\n KZ: 20,\n XK: 20,\n KW: 30,\n LV: 21,\n LB: 28,\n LI: 21,\n LT: 20,\n LU: 20,\n MT: 31,\n MR: 27,\n MU: 30,\n MD: 24,\n MC: 27,\n ME: 22,\n NL: 18,\n MK: 19,\n NO: 15,\n PK: 24,\n PS: 29,\n PL: 28,\n PT: 25,\n QA: 29,\n RO: 24,\n LC: 32,\n SM: 27,\n SA: 24,\n RS: 22,\n SC: 31,\n SK: 24,\n SI: 19,\n ES: 24,\n SE: 24,\n CH: 21,\n TL: 23,\n TN: 24,\n TR: 26,\n UA: 29,\n AE: 23,\n GB: 22,\n VA: 22,\n VG: 24,\n}\n\n// Sorted list of supported ISO IBAN country codes for selection UIs.\nexport const ibanCountries: string[] = Object.keys(IBAN_LENGTHS).sort()\n\n// Look up the expected IBAN length for a country code or return null if unknown.\nexport function getIbanCountryLength(countryCode: string): number | null {\n return IBAN_LENGTHS[countryCode.toUpperCase()] ?? null\n}\n\n// Run the MOD-97 remainder calculation on a numeric IBAN representation.\nfunction mod97(numStr: string): number {\n let remainder = 0\n for (let i = 0; i < numStr.length; i++) {\n remainder = (remainder * 10 + parseInt(numStr[i], 10)) % 97\n }\n return remainder\n}\n\n// Validate a full IBAN using country length rules and the MOD-97 checksum.\nexport function validateIBAN(value: string): ValidationResult {\n if (!value) return ok\n const iban = value.replace(/\\s/g, '').toUpperCase()\n\n if (iban.length < 2) return fail('ibanTooShort', 'IBAN too short')\n\n const countryCode = iban.slice(0, 2)\n const expectedLength = IBAN_LENGTHS[countryCode]\n\n if (!expectedLength) return fail('ibanCountry', 'Unknown IBAN country code')\n if (iban.length !== expectedLength) {\n return fail('ibanLength', 'IBAN for {country} should have {length} characters', {\n country: countryCode,\n length: expectedLength,\n })\n }\n\n // MOD-97 check: move first 4 chars to end, convert letters to numbers\n const rearranged = iban.slice(4) + iban.slice(0, 4)\n const numStr = rearranged.replace(/[A-Z]/g, (ch) => String(ch.charCodeAt(0) - 55))\n\n return mod97(numStr) === 1 ? ok : fail('ibanChecksum', 'Invalid IBAN checksum')\n}\n\n// === NIP (Polish Tax ID) ===\n\nconst NIP_WEIGHTS = [6, 5, 7, 2, 3, 4, 5, 6, 7]\n\n// Validate a Polish NIP number with its weighted checksum.\nexport function validateNIP(value: string): ValidationResult {\n if (!value) return ok\n const digits = value.replace(/\\D/g, '')\n if (digits.length !== 10) return fail('nipDigits', 'NIP must have 10 digits')\n\n let sum = 0\n for (let i = 0; i < 9; i++) {\n sum += parseInt(digits[i], 10) * NIP_WEIGHTS[i]\n }\n const checkDigit = sum % 11\n if (checkDigit === 10) return fail('nip', 'Invalid NIP')\n return checkDigit === parseInt(digits[9], 10) ? ok : fail('nipChecksum', 'Invalid NIP checksum')\n}\n\n// === PESEL ===\n\nconst PESEL_WEIGHTS = [1, 3, 7, 9, 1, 3, 7, 9, 1, 3]\n\n// Validate a Polish PESEL number with its checksum algorithm.\nexport function validatePESEL(value: string): ValidationResult {\n if (!value) return ok\n const digits = value.replace(/\\D/g, '')\n if (digits.length !== 11) return fail('peselDigits', 'PESEL must have 11 digits')\n\n let sum = 0\n for (let i = 0; i < 10; i++) {\n sum += parseInt(digits[i], 10) * PESEL_WEIGHTS[i]\n }\n const checkDigit = (10 - (sum % 10)) % 10\n return checkDigit === parseInt(digits[10], 10) ? ok : fail('peselChecksum', 'Invalid PESEL checksum')\n}\n\n// === REGON ===\n\nconst REGON9_WEIGHTS = [8, 9, 2, 3, 4, 5, 6, 7]\nconst REGON14_WEIGHTS = [2, 4, 8, 5, 0, 9, 7, 3, 6, 1, 2, 4, 8]\n\n// Validate REGON numbers in both the 9-digit and 14-digit variants.\nexport function validateREGON(value: string): ValidationResult {\n if (!value) return ok\n const digits = value.replace(/\\D/g, '')\n\n if (digits.length !== 9 && digits.length !== 14) {\n return fail('regonDigits', 'REGON must have 9 or 14 digits')\n }\n\n const weights = digits.length === 9 ? REGON9_WEIGHTS : REGON14_WEIGHTS\n let sum = 0\n for (let i = 0; i < weights.length; i++) {\n sum += parseInt(digits[i], 10) * weights[i]\n }\n const checkDigit = sum % 11 === 10 ? 0 : sum % 11\n const lastDigit = parseInt(digits[digits.length - 1], 10)\n return checkDigit === lastDigit ? ok : fail('regonChecksum', 'Invalid REGON checksum')\n}\n\n// === Compose validators ===\n\n// Run validators in order and stop at the first failure.\nexport function composeValidators(...validators: ValidatorFn[]): ValidatorFn {\n return (value: string) => {\n for (const validator of validators) {\n const result = validator(value)\n if (!result.valid) return result\n }\n return ok\n }\n}\n\n// === Date (DD/MM/YYYY, MM/DD/YYYY, YYYY/MM/DD) ===\n\nexport type DateFormat = 'DD/MM/YYYY' | 'MM/DD/YYYY' | 'YYYY/MM/DD'\n\ninterface DateValidationOptions {\n format?: DateFormat\n minDate?: Date\n maxDate?: Date\n}\n\n// Parse a date string in the given format into a Date or null.\nexport function parseDateString(value: string, format: DateFormat = 'DD/MM/YYYY'): Date | null {\n const digits = value.replace(/\\D/g, '')\n if (digits.length !== 8) return null\n\n let day: number, month: number, year: number\n if (format === 'DD/MM/YYYY') {\n day = parseInt(digits.slice(0, 2), 10)\n month = parseInt(digits.slice(2, 4), 10)\n year = parseInt(digits.slice(4, 8), 10)\n } else if (format === 'MM/DD/YYYY') {\n month = parseInt(digits.slice(0, 2), 10)\n day = parseInt(digits.slice(2, 4), 10)\n year = parseInt(digits.slice(4, 8), 10)\n } else {\n year = parseInt(digits.slice(0, 4), 10)\n month = parseInt(digits.slice(4, 6), 10)\n day = parseInt(digits.slice(6, 8), 10)\n }\n\n if (month < 1 || month > 12) return null\n if (day < 1 || day > 31) return null\n if (year < 1) return null\n\n const date = new Date(year, month - 1, day)\n // Verify the date didn't overflow (e.g. Feb 30 → Mar 2)\n if (date.getFullYear() !== year || date.getMonth() !== month - 1 || date.getDate() !== day) {\n return null\n }\n return date\n}\n\n// Validate a date string with optional range constraints.\nexport function validateDate(value: string, options: DateValidationOptions = {}): ValidationResult {\n if (!value) return ok\n const {format = 'DD/MM/YYYY', minDate, maxDate} = options\n\n const digits = value.replace(/\\D/g, '')\n if (digits.length !== 8) return fail('dateIncomplete', 'Incomplete date')\n\n const date = parseDateString(value, format)\n if (!date) return fail('date', 'Invalid date')\n\n if (minDate) {\n const min = new Date(minDate.getFullYear(), minDate.getMonth(), minDate.getDate())\n if (date < min) return fail('dateTooEarly', 'Date is too early')\n }\n if (maxDate) {\n const max = new Date(maxDate.getFullYear(), maxDate.getMonth(), maxDate.getDate())\n if (date > max) return fail('dateTooLate', 'Date is too far in the future')\n }\n\n return ok\n}\n\nexport {validatePostCode} from './postalCodes'\nexport {validateCardNumber} from './creditCards'\n\n// === URL ===\n\nexport interface UrlValidationOptions {\n /**\n * Allowed URL protocols (without trailing colon). When the value carries a\n * protocol, it must be one of these. Defaults to `['http', 'https']`.\n */\n protocols?: string[]\n /**\n * When `true` (default), the value must include a protocol from `protocols`.\n * When `false`, a protocol-less value (e.g. `example.com/path`) still passes\n * as long as it parses as a URL after a synthetic `https://` prefix.\n */\n requireProtocol?: boolean\n}\n\n// Validate a URL while allowing empty optional fields. Uses the native URL\n// parser so we get IDN, port, query and fragment handling for free. The\n// protocol whitelist defaults to http/https — pass `protocols: []` to accept\n// any scheme.\nexport function validateUrl(value: string, options: UrlValidationOptions = {}): ValidationResult {\n if (!value) return ok\n\n const {protocols = ['http', 'https'], requireProtocol = true} = options\n\n const hasScheme = /^[a-zA-Z][a-zA-Z0-9+.-]*:/.test(value)\n if (!hasScheme && requireProtocol) {\n return fail('urlProtocolRequired', 'URL must start with {protocols}', {\n protocols: protocols.map((p) => `${p}://`).join(' or '),\n })\n }\n\n const candidate = hasScheme ? value : `https://${value}`\n\n let parsed: URL\n try {\n parsed = new URL(candidate)\n } catch {\n return fail('url', 'Invalid URL')\n }\n\n // Reject the parsed URL when it has no host (e.g. `https://`) — those slip\n // past `new URL()` silently in some engines.\n if (!parsed.hostname) return fail('url', 'Invalid URL')\n\n if (hasScheme && protocols.length > 0) {\n const scheme = parsed.protocol.replace(/:$/, '')\n if (!protocols.includes(scheme)) {\n return fail('urlProtocol', 'Protocol \"{protocol}\" is not allowed', {protocol: scheme})\n }\n }\n\n return ok\n}\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const e=require(`./theme-CJuqObWL.cjs`),t=require(`./cn-CU5TNITO.cjs`),n=require(`./useInteractionEffect-CtXlbjhC.cjs`),r=require(`./MButton-CnAr77Za.cjs`);require(`./core-w629c4ND.cjs`);let i=require(`react/jsx-runtime`);function a(e,t){if(t)return t.slice(0,2).toUpperCase();if(!e)return`?`;let n=e.trim().split(/\s+/).filter(Boolean);return n.length===0?`?`:n.length===1?n[0].slice(0,2).toUpperCase():`${n[0][0]}${n[1][0]}`.toUpperCase()}var o={online:`success`,offline:`neutral`,away:`warning`,busy:`error`};function s({src:s,alt:c,name:l,initials:u,size:d=`md`,shape:f=`circle`,hidden:p,color:m,badge:h,badgeColor:g,badgePulsing:_,presence:v,backgroundColor:y,clickEffect:b,rippleColor:x,skeleton:S=!1,className:C,style:w,onPointerDown:T,...E}){let D=a(l,u),O=typeof E.onClick==`function`||E.role===`button`||E.tabIndex!==void 0,k=h===void 0?v===void 0?void 0:!0:h,A=g??(v===void 0?void 0:o[v]),j=_??v!==void 0,{effectClassName:M,effectLayer:N,handlePointerDown:P}=n.t({effect:b??(O?`ripple`:`none`),disabled:!O||S,color:x}),F=typeof d==`number`?{width:`${d}px`,height:`${d}px`,...w,...y&&!S?{backgroundColor:y}:{}}:{...w,...y&&!S?{backgroundColor:y}:{}};return(0,i.jsxs)(`span`,{className:t.t(`avatar`,typeof d==`string`&&d,f,S&&`skeleton animate`,O&&!S&&`interactive`,M,!S&&m&&`color-${m}`,C),style:F,"aria-label":S?`Loading`:c??l??`MAvatar`,onPointerDown:e=>{P(e),T?.(e)},...e.r(p),...E,children:[N,r.n({badge:k,badgeColor:A,badgePulsing:j}),S?null:s?(0,i.jsx)(`img`,{src:s,alt:c??l??``,className:`image`}):(0,i.jsx)(`span`,{className:`fallback`,children:D})]})}Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return s}});
|
|
2
|
-
//# sourceMappingURL=MAvatar-DHNB3829.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MAvatar-DHNB3829.cjs","names":[],"sources":["../src/components/media/MAvatar/MAvatar.tsx"],"sourcesContent":["import type {CSSProperties} from 'react'\nimport type {MAvatarPresence, MAvatarProps} from './MAvatar.types'\nimport type {MColor} from '../../../theme'\nimport {getHiddenProps} from '../../../theme'\nimport {cn} from '../../../utils/cn'\nimport {useInteractionEffect} from '../../../utils/useInteractionEffect'\nimport {renderOverlayBadge} from '../../../utils/overlayBadge'\nimport './MAvatar.css'\n\nfunction getFallbackInitials(name?: string, initials?: string) {\n if (initials) return initials.slice(0, 2).toUpperCase()\n if (!name) return '?'\n const parts = name.trim().split(/\\s+/).filter(Boolean)\n if (parts.length === 0) return '?'\n if (parts.length === 1) return parts[0].slice(0, 2).toUpperCase()\n return `${parts[0][0]}${parts[1][0]}`.toUpperCase()\n}\n\nconst PRESENCE_BADGE_COLOR: Record<MAvatarPresence, MColor> = {\n online: 'success',\n offline: 'neutral',\n away: 'warning',\n busy: 'error',\n}\n\n// Render user or entity identity as an image with initials fallback.\nexport function MAvatar({\n src,\n alt,\n name,\n initials,\n size = 'md',\n shape = 'circle',\n hidden,\n color,\n badge,\n badgeColor,\n badgePulsing,\n presence,\n backgroundColor,\n clickEffect,\n rippleColor,\n skeleton = false,\n className,\n style,\n onPointerDown,\n ...rest\n}: MAvatarProps) {\n const fallbackInitials = getFallbackInitials(name, initials)\n const isInteractive = typeof rest.onClick === 'function' || rest.role === 'button' || rest.tabIndex !== undefined\n const resolvedBadge = badge !== undefined ? badge : presence !== undefined ? true : undefined\n const resolvedBadgeColor = badgeColor ?? (presence !== undefined ? PRESENCE_BADGE_COLOR[presence] : undefined)\n const resolvedBadgePulsing = badgePulsing ?? (presence !== undefined ? true : false)\n const {effectClassName, effectLayer, handlePointerDown} = useInteractionEffect<HTMLSpanElement>({\n effect: clickEffect ?? (isInteractive ? 'ripple' : 'none'),\n disabled: !isInteractive || skeleton,\n color: rippleColor,\n })\n const inlineStyle: CSSProperties =\n typeof size === 'number'\n ? {\n width: `${size}px`,\n height: `${size}px`,\n ...style,\n ...(backgroundColor && !skeleton ? {backgroundColor} : {}),\n }\n : {\n ...style,\n ...(backgroundColor && !skeleton ? {backgroundColor} : {}),\n }\n\n return (\n <span\n className={cn(\n 'avatar',\n typeof size === 'string' && size,\n shape,\n skeleton && 'skeleton animate',\n isInteractive && !skeleton && 'interactive',\n effectClassName,\n !skeleton && color && `color-${color}`,\n className\n )}\n style={inlineStyle}\n aria-label={skeleton ? 'Loading' : (alt ?? name ?? 'MAvatar')}\n onPointerDown={(event) => {\n handlePointerDown(event)\n onPointerDown?.(event)\n }}\n {...getHiddenProps(hidden)}\n {...rest}\n >\n {effectLayer}\n {renderOverlayBadge({badge: resolvedBadge, badgeColor: resolvedBadgeColor, badgePulsing: resolvedBadgePulsing})}\n {skeleton ? null : src ? (\n <img src={src} alt={alt ?? name ?? ''} className={'image'} />\n ) : (\n <span className={'fallback'}>{fallbackInitials}</span>\n )}\n </span>\n )\n}\n"],"mappings":"8NASA,SAAS,EAAoB,EAAe,EAAmB,CAC3D,GAAI,EAAU,OAAO,EAAS,MAAM,EAAG,EAAE,CAAC,aAAa,CACvD,GAAI,CAAC,EAAM,MAAO,IAClB,IAAM,EAAQ,EAAK,MAAM,CAAC,MAAM,MAAM,CAAC,OAAO,QAAQ,CAGtD,OAFI,EAAM,SAAW,EAAU,IAC3B,EAAM,SAAW,EAAU,EAAM,GAAG,MAAM,EAAG,EAAE,CAAC,aAAa,CAC1D,GAAG,EAAM,GAAG,KAAK,EAAM,GAAG,KAAK,aAAa,CAGvD,IAAM,EAAwD,CAC1D,OAAQ,UACR,QAAS,UACT,KAAM,UACN,KAAM,QACT,CAGD,SAAgB,EAAQ,CACpB,MACA,MACA,OACA,WACA,OAAO,KACP,QAAQ,SACR,SACA,QACA,QACA,aACA,eACA,WACA,kBACA,cACA,cACA,WAAW,GACX,YACA,QACA,gBACA,GAAG,GACU,CACb,IAAM,EAAmB,EAAoB,EAAM,EAAS,CACtD,EAAgB,OAAO,EAAK,SAAY,YAAc,EAAK,OAAS,UAAY,EAAK,WAAa,IAAA,GAClG,EAAgB,IAAU,IAAA,GAAoB,IAAa,IAAA,GAAmB,IAAA,GAAP,GAAjC,EACtC,EAAqB,IAAe,IAAa,IAAA,GAA6C,IAAA,GAAjC,EAAqB,IAClF,EAAuB,GAAiB,IAAa,IAAA,GACrD,CAAC,kBAAiB,cAAa,qBAAqB,EAAA,EAAsC,CAC5F,OAAQ,IAAgB,EAAgB,SAAW,QACnD,SAAU,CAAC,GAAiB,EAC5B,MAAO,EACV,CAAC,CACI,EACF,OAAO,GAAS,SACV,CACI,MAAO,GAAG,EAAK,IACf,OAAQ,GAAG,EAAK,IAChB,GAAG,EACH,GAAI,GAAmB,CAAC,EAAW,CAAC,kBAAgB,CAAG,EAAE,CAC5D,CACD,CACI,GAAG,EACH,GAAI,GAAmB,CAAC,EAAW,CAAC,kBAAgB,CAAG,EAAE,CAC5D,CAEX,OACI,EAAA,EAAA,MAAC,OAAD,CACI,UAAW,EAAA,EACP,SACA,OAAO,GAAS,UAAY,EAC5B,EACA,GAAY,mBACZ,GAAiB,CAAC,GAAY,cAC9B,EACA,CAAC,GAAY,GAAS,SAAS,IAC/B,EACH,CACD,MAAO,EACP,aAAY,EAAW,UAAa,GAAO,GAAQ,UACnD,cAAgB,GAAU,CACtB,EAAkB,EAAM,CACxB,IAAgB,EAAM,EAE1B,GAAI,EAAA,EAAe,EAAO,CAC1B,GAAI,WAlBR,CAoBK,EACA,EAAA,EAAmB,CAAC,MAAO,EAAe,WAAY,EAAoB,aAAc,EAAqB,CAAC,CAC9G,EAAW,KAAO,GACf,EAAA,EAAA,KAAC,MAAD,CAAU,MAAK,IAAK,GAAO,GAAQ,GAAI,UAAW,QAAW,CAAA,EAE7D,EAAA,EAAA,KAAC,OAAD,CAAM,UAAW,oBAAa,EAAwB,CAAA,CAEvD"}
|
package/dist/MAvatar-GeRL-CNO.js
DELETED
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
import { r as e } from "./theme-DAOU1aPs.js";
|
|
2
|
-
import { t } from "./cn-YER3QsV1.js";
|
|
3
|
-
import { t as n } from "./useInteractionEffect-DtpbVd77.js";
|
|
4
|
-
import { n as r } from "./MButton-CEwo8lUB.js";
|
|
5
|
-
import { jsx as i, jsxs as a } from "react/jsx-runtime";
|
|
6
|
-
//#region src/components/media/MAvatar/MAvatar.tsx
|
|
7
|
-
function o(e, t) {
|
|
8
|
-
if (t) return t.slice(0, 2).toUpperCase();
|
|
9
|
-
if (!e) return "?";
|
|
10
|
-
let n = e.trim().split(/\s+/).filter(Boolean);
|
|
11
|
-
return n.length === 0 ? "?" : n.length === 1 ? n[0].slice(0, 2).toUpperCase() : `${n[0][0]}${n[1][0]}`.toUpperCase();
|
|
12
|
-
}
|
|
13
|
-
var s = {
|
|
14
|
-
online: "success",
|
|
15
|
-
offline: "neutral",
|
|
16
|
-
away: "warning",
|
|
17
|
-
busy: "error"
|
|
18
|
-
};
|
|
19
|
-
function c({ src: c, alt: l, name: u, initials: d, size: f = "md", shape: p = "circle", hidden: m, color: h, badge: g, badgeColor: _, badgePulsing: v, presence: y, backgroundColor: b, clickEffect: x, rippleColor: S, skeleton: C = !1, className: w, style: T, onPointerDown: E, ...D }) {
|
|
20
|
-
let O = o(u, d), k = typeof D.onClick == "function" || D.role === "button" || D.tabIndex !== void 0, A = g === void 0 ? y === void 0 ? void 0 : !0 : g, j = _ ?? (y === void 0 ? void 0 : s[y]), M = v ?? y !== void 0, { effectClassName: N, effectLayer: P, handlePointerDown: F } = n({
|
|
21
|
-
effect: x ?? (k ? "ripple" : "none"),
|
|
22
|
-
disabled: !k || C,
|
|
23
|
-
color: S
|
|
24
|
-
}), I = typeof f == "number" ? {
|
|
25
|
-
width: `${f}px`,
|
|
26
|
-
height: `${f}px`,
|
|
27
|
-
...T,
|
|
28
|
-
...b && !C ? { backgroundColor: b } : {}
|
|
29
|
-
} : {
|
|
30
|
-
...T,
|
|
31
|
-
...b && !C ? { backgroundColor: b } : {}
|
|
32
|
-
};
|
|
33
|
-
return /* @__PURE__ */ a("span", {
|
|
34
|
-
className: t("avatar", typeof f == "string" && f, p, C && "skeleton animate", k && !C && "interactive", N, !C && h && `color-${h}`, w),
|
|
35
|
-
style: I,
|
|
36
|
-
"aria-label": C ? "Loading" : l ?? u ?? "MAvatar",
|
|
37
|
-
onPointerDown: (e) => {
|
|
38
|
-
F(e), E?.(e);
|
|
39
|
-
},
|
|
40
|
-
...e(m),
|
|
41
|
-
...D,
|
|
42
|
-
children: [
|
|
43
|
-
P,
|
|
44
|
-
r({
|
|
45
|
-
badge: A,
|
|
46
|
-
badgeColor: j,
|
|
47
|
-
badgePulsing: M
|
|
48
|
-
}),
|
|
49
|
-
C ? null : c ? /* @__PURE__ */ i("img", {
|
|
50
|
-
src: c,
|
|
51
|
-
alt: l ?? u ?? "",
|
|
52
|
-
className: "image"
|
|
53
|
-
}) : /* @__PURE__ */ i("span", {
|
|
54
|
-
className: "fallback",
|
|
55
|
-
children: O
|
|
56
|
-
})
|
|
57
|
-
]
|
|
58
|
-
});
|
|
59
|
-
}
|
|
60
|
-
//#endregion
|
|
61
|
-
export { c as t };
|
|
62
|
-
|
|
63
|
-
//# sourceMappingURL=MAvatar-GeRL-CNO.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MAvatar-GeRL-CNO.js","names":[],"sources":["../src/components/media/MAvatar/MAvatar.tsx"],"sourcesContent":["import type {CSSProperties} from 'react'\nimport type {MAvatarPresence, MAvatarProps} from './MAvatar.types'\nimport type {MColor} from '../../../theme'\nimport {getHiddenProps} from '../../../theme'\nimport {cn} from '../../../utils/cn'\nimport {useInteractionEffect} from '../../../utils/useInteractionEffect'\nimport {renderOverlayBadge} from '../../../utils/overlayBadge'\nimport './MAvatar.css'\n\nfunction getFallbackInitials(name?: string, initials?: string) {\n if (initials) return initials.slice(0, 2).toUpperCase()\n if (!name) return '?'\n const parts = name.trim().split(/\\s+/).filter(Boolean)\n if (parts.length === 0) return '?'\n if (parts.length === 1) return parts[0].slice(0, 2).toUpperCase()\n return `${parts[0][0]}${parts[1][0]}`.toUpperCase()\n}\n\nconst PRESENCE_BADGE_COLOR: Record<MAvatarPresence, MColor> = {\n online: 'success',\n offline: 'neutral',\n away: 'warning',\n busy: 'error',\n}\n\n// Render user or entity identity as an image with initials fallback.\nexport function MAvatar({\n src,\n alt,\n name,\n initials,\n size = 'md',\n shape = 'circle',\n hidden,\n color,\n badge,\n badgeColor,\n badgePulsing,\n presence,\n backgroundColor,\n clickEffect,\n rippleColor,\n skeleton = false,\n className,\n style,\n onPointerDown,\n ...rest\n}: MAvatarProps) {\n const fallbackInitials = getFallbackInitials(name, initials)\n const isInteractive = typeof rest.onClick === 'function' || rest.role === 'button' || rest.tabIndex !== undefined\n const resolvedBadge = badge !== undefined ? badge : presence !== undefined ? true : undefined\n const resolvedBadgeColor = badgeColor ?? (presence !== undefined ? PRESENCE_BADGE_COLOR[presence] : undefined)\n const resolvedBadgePulsing = badgePulsing ?? (presence !== undefined ? true : false)\n const {effectClassName, effectLayer, handlePointerDown} = useInteractionEffect<HTMLSpanElement>({\n effect: clickEffect ?? (isInteractive ? 'ripple' : 'none'),\n disabled: !isInteractive || skeleton,\n color: rippleColor,\n })\n const inlineStyle: CSSProperties =\n typeof size === 'number'\n ? {\n width: `${size}px`,\n height: `${size}px`,\n ...style,\n ...(backgroundColor && !skeleton ? {backgroundColor} : {}),\n }\n : {\n ...style,\n ...(backgroundColor && !skeleton ? {backgroundColor} : {}),\n }\n\n return (\n <span\n className={cn(\n 'avatar',\n typeof size === 'string' && size,\n shape,\n skeleton && 'skeleton animate',\n isInteractive && !skeleton && 'interactive',\n effectClassName,\n !skeleton && color && `color-${color}`,\n className\n )}\n style={inlineStyle}\n aria-label={skeleton ? 'Loading' : (alt ?? name ?? 'MAvatar')}\n onPointerDown={(event) => {\n handlePointerDown(event)\n onPointerDown?.(event)\n }}\n {...getHiddenProps(hidden)}\n {...rest}\n >\n {effectLayer}\n {renderOverlayBadge({badge: resolvedBadge, badgeColor: resolvedBadgeColor, badgePulsing: resolvedBadgePulsing})}\n {skeleton ? null : src ? (\n <img src={src} alt={alt ?? name ?? ''} className={'image'} />\n ) : (\n <span className={'fallback'}>{fallbackInitials}</span>\n )}\n </span>\n )\n}\n"],"mappings":";;;;;;AASA,SAAS,EAAoB,GAAe,GAAmB;AAC3D,KAAI,EAAU,QAAO,EAAS,MAAM,GAAG,EAAE,CAAC,aAAa;AACvD,KAAI,CAAC,EAAM,QAAO;CAClB,IAAM,IAAQ,EAAK,MAAM,CAAC,MAAM,MAAM,CAAC,OAAO,QAAQ;AAGtD,QAFI,EAAM,WAAW,IAAU,MAC3B,EAAM,WAAW,IAAU,EAAM,GAAG,MAAM,GAAG,EAAE,CAAC,aAAa,GAC1D,GAAG,EAAM,GAAG,KAAK,EAAM,GAAG,KAAK,aAAa;;AAGvD,IAAM,IAAwD;CAC1D,QAAQ;CACR,SAAS;CACT,MAAM;CACN,MAAM;CACT;AAGD,SAAgB,EAAQ,EACpB,QACA,QACA,SACA,aACA,UAAO,MACP,WAAQ,UACR,WACA,UACA,UACA,eACA,iBACA,aACA,oBACA,gBACA,gBACA,cAAW,IACX,cACA,UACA,kBACA,GAAG,KACU;CACb,IAAM,IAAmB,EAAoB,GAAM,EAAS,EACtD,IAAgB,OAAO,EAAK,WAAY,cAAc,EAAK,SAAS,YAAY,EAAK,aAAa,KAAA,GAClG,IAAgB,MAAU,KAAA,IAAoB,MAAa,KAAA,IAAmB,KAAA,IAAP,KAAjC,GACtC,IAAqB,MAAe,MAAa,KAAA,IAA6C,KAAA,IAAjC,EAAqB,KAClF,IAAuB,KAAiB,MAAa,KAAA,GACrD,EAAC,oBAAiB,gBAAa,yBAAqB,EAAsC;EAC5F,QAAQ,MAAgB,IAAgB,WAAW;EACnD,UAAU,CAAC,KAAiB;EAC5B,OAAO;EACV,CAAC,EACI,IACF,OAAO,KAAS,WACV;EACI,OAAO,GAAG,EAAK;EACf,QAAQ,GAAG,EAAK;EAChB,GAAG;EACH,GAAI,KAAmB,CAAC,IAAW,EAAC,oBAAgB,GAAG,EAAE;EAC5D,GACD;EACI,GAAG;EACH,GAAI,KAAmB,CAAC,IAAW,EAAC,oBAAgB,GAAG,EAAE;EAC5D;AAEX,QACI,kBAAC,QAAD;EACI,WAAW,EACP,UACA,OAAO,KAAS,YAAY,GAC5B,GACA,KAAY,oBACZ,KAAiB,CAAC,KAAY,eAC9B,GACA,CAAC,KAAY,KAAS,SAAS,KAC/B,EACH;EACD,OAAO;EACP,cAAY,IAAW,YAAa,KAAO,KAAQ;EACnD,gBAAgB,MAAU;AAEtB,GADA,EAAkB,EAAM,EACxB,IAAgB,EAAM;;EAE1B,GAAI,EAAe,EAAO;EAC1B,GAAI;YAlBR;GAoBK;GACA,EAAmB;IAAC,OAAO;IAAe,YAAY;IAAoB,cAAc;IAAqB,CAAC;GAC9G,IAAW,OAAO,IACf,kBAAC,OAAD;IAAU;IAAK,KAAK,KAAO,KAAQ;IAAI,WAAW;IAAW,CAAA,GAE7D,kBAAC,QAAD;IAAM,WAAW;cAAa;IAAwB,CAAA;GAEvD"}
|