maz-ui 4.0.0-alpha.4 → 4.0.0-alpha.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/{CountrySelector.Cnqbl3xF.css → CountrySelector.BQiHy60b.css} +1 -1
- package/dist/assets/{MazAccordion.DaqF3ZAX.css → MazAccordion.BE-38uDK.css} +1 -1
- package/dist/assets/{MazAnimatedCounter.DYYlw_wl.css → MazAnimatedCounter.ButbqlDb.css} +1 -1
- package/dist/assets/{MazAnimatedText.Dk4QO4xF.css → MazAnimatedText.BM3XYGO2.css} +1 -1
- package/dist/assets/{MazAvatar.L1UreldR.css → MazAvatar.udTL0S0c.css} +1 -1
- package/dist/assets/{MazBadge.RMWNkgZL.css → MazBadge.Cgfo0F7e.css} +1 -1
- package/dist/assets/{MazBottomSheet.Dqr-kpLb.css → MazBottomSheet.FbcAQBpM.css} +1 -1
- package/dist/assets/MazBtn.Bz7wwOFh.css +1 -0
- package/dist/assets/{MazCard.Cod9pIM4.css → MazCard.BayiNvpH.css} +1 -1
- package/dist/assets/{MazCardSpotlight.DuZac0w4.css → MazCardSpotlight.Y7PEY9QV.css} +1 -1
- package/dist/assets/{MazCarousel.BQIrqJ8T.css → MazCarousel.CB32PQvq.css} +1 -1
- package/dist/assets/{MazCheckbox.BQVJ7EUB.css → MazCheckbox.5EI5lIDK.css} +1 -1
- package/dist/assets/{MazChecklist.5ArDAEhG.css → MazChecklist.BGnIiTsI.css} +1 -1
- package/dist/assets/{MazCircularProgressBar.DywLXEfR.css → MazCircularProgressBar.0-JvCHgE.css} +1 -1
- package/dist/assets/{MazDialog.BLzdH8aa.css → MazDialog.BJMxj6he.css} +1 -1
- package/dist/assets/{MazDrawer.Cu4KVc_z.css → MazDrawer.BqaLe_QM.css} +1 -1
- package/dist/assets/{MazFullscreenLoader.DTW_WUM6.css → MazFullscreenLoader.Dkg4LB9B.css} +1 -1
- package/dist/assets/MazGallery.BoPDBMcv.css +1 -0
- package/dist/assets/MazInput.DMFoUNTH.css +1 -0
- package/dist/assets/MazInputCode.C0rRpNFq.css +1 -0
- package/dist/assets/{MazInputPhoneNumber.DKac4ZYj.css → MazInputPhoneNumber.Ill3zwW5.css} +1 -1
- package/dist/assets/{MazInputTags.eygPFBJC.css → MazInputTags.ewDauXwM.css} +1 -1
- package/dist/assets/{MazLazyImg.BvztvWbf.css → MazLazyImg.B6kyFMu0.css} +1 -1
- package/dist/assets/MazLink.C905PoWd.css +1 -0
- package/dist/assets/MazLoadingBar.BVDaL2oq.css +1 -0
- package/dist/assets/{MazPagination.DSYY_yu7.css → MazPagination.DxqlYYDI.css} +1 -1
- package/dist/assets/MazPicker.oSzqOK82.css +1 -0
- package/dist/assets/{MazPickerCalendar.K1FbevcF.css → MazPickerCalendar.9hsvH81G.css} +1 -1
- package/dist/assets/MazPickerCalendarMonth.DoG1aIdE.css +1 -0
- package/dist/assets/{MazPickerCalendarSwitcher.23EFP_7Y.css → MazPickerCalendarSwitcher.Cwm0pn-f.css} +1 -1
- package/dist/assets/{MazPickerHeader.CfwpRnA1.css → MazPickerHeader.BH5Uy1iP.css} +1 -1
- package/dist/assets/{MazPickerMonthSwitcher.Cl1WlZpR.css → MazPickerMonthSwitcher.D9wXQnld.css} +1 -1
- package/dist/assets/{MazPickerShortcuts.B1ASAi7L.css → MazPickerShortcuts.CLZ4NUtN.css} +1 -1
- package/dist/assets/{MazPickerTime.5J3qaKGo.css → MazPickerTime.B-Ym15z4.css} +1 -1
- package/dist/assets/{MazPickerYearSwitcher.Bt0efux6.css → MazPickerYearSwitcher.9YqgG2Jv.css} +1 -1
- package/dist/assets/{MazPullToRefresh.BdvKaU9N.css → MazPullToRefresh.BSBm9qbV.css} +1 -1
- package/dist/assets/{MazRadio.zYTBn9Pj.css → MazRadio.OJL8pfy2.css} +1 -1
- package/dist/assets/{MazRadioButtons.CIq38oX6.css → MazRadioButtons.u111N9bH.css} +1 -1
- package/dist/assets/MazReadingProgressBar.CT2EjYkv.css +1 -0
- package/dist/assets/{MazSelect.CH_76PSg.css → MazSelect.DG-B1UJ6.css} +1 -1
- package/dist/assets/{MazSlider.D08gO9DD.css → MazSlider.KrU-f4K4.css} +1 -1
- package/dist/assets/MazSpinner.C2jmWJte.css +1 -0
- package/dist/assets/{MazStepper.BE3Mm9rm.css → MazStepper.CFdY5O1y.css} +1 -1
- package/dist/assets/MazTable.uvNQLDVh.css +1 -0
- package/dist/assets/MazTableCell.DCsBuRdY.css +1 -0
- package/dist/assets/MazTableRow.B4o1JJ00.css +1 -0
- package/dist/assets/MazTableTitle.CA6gYzgP.css +1 -0
- package/dist/assets/{MazTabsBar.-q3BbMXe.css → MazTabsBar.Bfij2njx.css} +1 -1
- package/dist/assets/{MazTabsContentItem.C0ygFU51.css → MazTabsContentItem.C9kvAsC7.css} +1 -1
- package/dist/assets/{MazTextarea.QTMu0OQv.css → MazTextarea.BML1BVBM.css} +1 -1
- package/dist/assets/PhoneInput.BBnKae_d.css +1 -0
- package/dist/assets/{fullscreen-img.hjNozahA.css → fullscreen-img.Dnt1uj_5.css} +1 -1
- package/dist/assets/{toaster.C9zhIkIO.css → toaster.BfTrtY6B.css} +1 -1
- package/dist/chunks/{CountrySelector.mFGaqpPf.cjs → CountrySelector.1nlVeBqW.cjs} +2 -2
- package/dist/chunks/CountrySelector.1nlVeBqW.cjs.map +1 -0
- package/dist/chunks/{CountrySelector.C5XZelLY.mjs → CountrySelector.qQCR0FE6.mjs} +14 -14
- package/dist/chunks/CountrySelector.qQCR0FE6.mjs.map +1 -0
- package/dist/chunks/MazDialogPromise.vue_vue_type_script_setup_true_lang.CS5GU9Q2.cjs.map +1 -1
- package/dist/chunks/MazDialogPromise.vue_vue_type_script_setup_true_lang.bPYjg0yY.mjs.map +1 -1
- package/dist/chunks/MazDropdown.vue_vue_type_script_setup_true_lang.B5kO0VJW.mjs.map +1 -1
- package/dist/chunks/MazDropdown.vue_vue_type_script_setup_true_lang.DLWmXVjB.cjs.map +1 -1
- package/dist/chunks/MazIcon.vue_vue_type_script_setup_true_lang.C5NwBerh.cjs.map +1 -1
- package/dist/chunks/MazIcon.vue_vue_type_script_setup_true_lang.CLoEj0Zf.mjs.map +1 -1
- package/dist/chunks/{MazInputNumber.vue_vue_type_script_setup_true_lang.DiawfWBC.cjs → MazInputNumber.vue_vue_type_script_setup_true_lang.BM2uHjda.cjs} +2 -2
- package/dist/chunks/MazInputNumber.vue_vue_type_script_setup_true_lang.BM2uHjda.cjs.map +1 -0
- package/dist/chunks/{MazInputNumber.vue_vue_type_script_setup_true_lang.Bbod2mLd.mjs → MazInputNumber.vue_vue_type_script_setup_true_lang.CsH-SPhu.mjs} +5 -5
- package/dist/chunks/MazInputNumber.vue_vue_type_script_setup_true_lang.CsH-SPhu.mjs.map +1 -0
- package/dist/chunks/{MazInputPhoneNumber.B173m1hd.mjs → MazInputPhoneNumber.BluSBPXE.mjs} +10 -10
- package/dist/chunks/{MazInputPhoneNumber.B173m1hd.mjs.map → MazInputPhoneNumber.BluSBPXE.mjs.map} +1 -1
- package/dist/chunks/{MazInputPhoneNumber.EZVh1Yx5.cjs → MazInputPhoneNumber.TorVuc9s.cjs} +2 -2
- package/dist/chunks/{MazInputPhoneNumber.EZVh1Yx5.cjs.map → MazInputPhoneNumber.TorVuc9s.cjs.map} +1 -1
- package/dist/chunks/{MazInputPrice.vue_vue_type_script_setup_true_lang.C3X2lwRl.mjs → MazInputPrice.vue_vue_type_script_setup_true_lang.C873_Haj.mjs} +5 -5
- package/dist/chunks/MazInputPrice.vue_vue_type_script_setup_true_lang.C873_Haj.mjs.map +1 -0
- package/dist/chunks/{MazInputPrice.vue_vue_type_script_setup_true_lang.CCatmP_L.cjs → MazInputPrice.vue_vue_type_script_setup_true_lang.Ovh3fdmh.cjs} +2 -2
- package/dist/chunks/MazInputPrice.vue_vue_type_script_setup_true_lang.Ovh3fdmh.cjs.map +1 -0
- package/dist/chunks/{MazPicker.BZE8cw36.cjs → MazPicker.D2ra6fVy.cjs} +2 -2
- package/dist/chunks/MazPicker.D2ra6fVy.cjs.map +1 -0
- package/dist/chunks/{MazPicker.DCnOkRvv.mjs → MazPicker.hoqM5DbN.mjs} +20 -20
- package/dist/chunks/MazPicker.hoqM5DbN.mjs.map +1 -0
- package/dist/chunks/{MazPickerCalendar.NeYLrtl-.mjs → MazPickerCalendar.Ban3DAo1.mjs} +4 -4
- package/dist/chunks/MazPickerCalendar.Ban3DAo1.mjs.map +1 -0
- package/dist/chunks/{MazPickerCalendar.CVZ8VoYr.cjs → MazPickerCalendar.CEJcAKlj.cjs} +2 -2
- package/dist/chunks/MazPickerCalendar.CEJcAKlj.cjs.map +1 -0
- package/dist/chunks/{MazPickerCalendarMonth.rnaiDHFM.mjs → MazPickerCalendarMonth.D4Ink4If.mjs} +14 -14
- package/dist/chunks/MazPickerCalendarMonth.D4Ink4If.mjs.map +1 -0
- package/dist/chunks/{MazPickerCalendarMonth.DpvQC45k.cjs → MazPickerCalendarMonth.DBDcSR1B.cjs} +2 -2
- package/dist/chunks/MazPickerCalendarMonth.DBDcSR1B.cjs.map +1 -0
- package/dist/chunks/{MazPickerCalendarSwitcher.DC2wff_J.cjs → MazPickerCalendarSwitcher.CyjRYcya.cjs} +2 -2
- package/dist/chunks/MazPickerCalendarSwitcher.CyjRYcya.cjs.map +1 -0
- package/dist/chunks/{MazPickerCalendarSwitcher.DFGrD6Cr.mjs → MazPickerCalendarSwitcher.DTDyFG7S.mjs} +19 -19
- package/dist/chunks/MazPickerCalendarSwitcher.DTDyFG7S.mjs.map +1 -0
- package/dist/chunks/{MazPickerHeader.B7YY9SJI.mjs → MazPickerHeader.C1asX8dz.mjs} +8 -8
- package/dist/chunks/MazPickerHeader.C1asX8dz.mjs.map +1 -0
- package/dist/chunks/{MazPickerHeader.l7NcmiGH.cjs → MazPickerHeader.COT92ysE.cjs} +2 -2
- package/dist/chunks/MazPickerHeader.COT92ysE.cjs.map +1 -0
- package/dist/chunks/{MazPickerMonthSwitcher.CbplWFfL.cjs → MazPickerMonthSwitcher.Cw82Rq9C.cjs} +2 -2
- package/dist/chunks/MazPickerMonthSwitcher.Cw82Rq9C.cjs.map +1 -0
- package/dist/chunks/{MazPickerMonthSwitcher.CAPx3PCt.mjs → MazPickerMonthSwitcher.jPGBQm-N.mjs} +9 -9
- package/dist/chunks/MazPickerMonthSwitcher.jPGBQm-N.mjs.map +1 -0
- package/dist/chunks/{MazPickerShortcuts.Bawm0q33.mjs → MazPickerShortcuts.Dvs1sJMi.mjs} +3 -3
- package/dist/chunks/MazPickerShortcuts.Dvs1sJMi.mjs.map +1 -0
- package/dist/chunks/{MazPickerShortcuts.LxFs0Y6N.cjs → MazPickerShortcuts.GUfnNHPI.cjs} +2 -2
- package/dist/chunks/MazPickerShortcuts.GUfnNHPI.cjs.map +1 -0
- package/dist/chunks/{MazPickerTime.C27aFPPw.mjs → MazPickerTime.C1LitEcr.mjs} +5 -5
- package/dist/chunks/MazPickerTime.C1LitEcr.mjs.map +1 -0
- package/dist/chunks/{MazPickerTime.7cxq-Qac.cjs → MazPickerTime.wlOm39gv.cjs} +2 -2
- package/dist/chunks/MazPickerTime.wlOm39gv.cjs.map +1 -0
- package/dist/chunks/{MazPickerYearSwitcher.Dku2IMIJ.cjs → MazPickerYearSwitcher.CPREj35R.cjs} +2 -2
- package/dist/chunks/MazPickerYearSwitcher.CPREj35R.cjs.map +1 -0
- package/dist/chunks/{MazPickerYearSwitcher.DMBOaMYy.mjs → MazPickerYearSwitcher.D_onf-0L.mjs} +17 -17
- package/dist/chunks/MazPickerYearSwitcher.D_onf-0L.mjs.map +1 -0
- package/dist/chunks/MazSwitch.vue_vue_type_script_setup_true_lang.C74s_H37.cjs.map +1 -1
- package/dist/chunks/MazSwitch.vue_vue_type_script_setup_true_lang.jyNV3g3U.mjs.map +1 -1
- package/dist/chunks/{MazTable.vue_vue_type_style_index_0_scoped_4101f1d3_lang.Ctmf2NVE.cjs → MazTable.vue_vue_type_style_index_0_scoped_cd8655c9_lang.BnCH1CvT.cjs} +2 -2
- package/dist/chunks/MazTable.vue_vue_type_style_index_0_scoped_cd8655c9_lang.BnCH1CvT.cjs.map +1 -0
- package/dist/chunks/{MazTable.vue_vue_type_style_index_0_scoped_4101f1d3_lang.Dwkx-V96.mjs → MazTable.vue_vue_type_style_index_0_scoped_cd8655c9_lang.Dj2OkfOV.mjs} +4 -4
- package/dist/chunks/MazTable.vue_vue_type_style_index_0_scoped_cd8655c9_lang.Dj2OkfOV.mjs.map +1 -0
- package/dist/chunks/MazTabsContent.vue_vue_type_script_setup_true_lang.BGqO0ynq.mjs.map +1 -1
- package/dist/chunks/MazTabsContent.vue_vue_type_script_setup_true_lang.DariT_zv.cjs.map +1 -1
- package/dist/chunks/{PhoneInput.9GQJbL9x.mjs → PhoneInput.DYm0yzgy.mjs} +11 -11
- package/dist/chunks/PhoneInput.DYm0yzgy.mjs.map +1 -0
- package/dist/chunks/{PhoneInput.D5DG4S60.cjs → PhoneInput.wXP8tsCy.cjs} +2 -2
- package/dist/chunks/PhoneInput.wXP8tsCy.cjs.map +1 -0
- package/dist/chunks/{fullscreen-img.directive.CrLLYi0D.mjs → fullscreen-img.directive.CEBhPyiD.mjs} +22 -22
- package/dist/chunks/fullscreen-img.directive.CEBhPyiD.mjs.map +1 -0
- package/dist/chunks/{fullscreen-img.directive.CeREtf7H.cjs → fullscreen-img.directive.CK-8DToy.cjs} +2 -2
- package/dist/chunks/fullscreen-img.directive.CK-8DToy.cjs.map +1 -0
- package/dist/chunks/lazy-img.directive.BeENE6S9.cjs.map +1 -1
- package/dist/chunks/lazy-img.directive.DqXA0UFo.mjs.map +1 -1
- package/dist/chunks/{utils.Bex2hM45.mjs → utils.BxNCknPj.mjs} +11 -11
- package/dist/chunks/utils.BxNCknPj.mjs.map +1 -0
- package/dist/chunks/{utils.vGzCTXH5.cjs → utils.K864VNFX.cjs} +2 -2
- package/dist/chunks/utils.K864VNFX.cjs.map +1 -0
- package/dist/components/MazAccordion.cjs +1 -1
- package/dist/components/MazAccordion.cjs.map +1 -1
- package/dist/components/MazAccordion.mjs +13 -13
- package/dist/components/MazAccordion.mjs.map +1 -1
- package/dist/components/MazAnimatedCounter.cjs +1 -1
- package/dist/components/MazAnimatedCounter.cjs.map +1 -1
- package/dist/components/MazAnimatedCounter.mjs +2 -2
- package/dist/components/MazAnimatedCounter.mjs.map +1 -1
- package/dist/components/MazAnimatedText.cjs +1 -1
- package/dist/components/MazAnimatedText.cjs.map +1 -1
- package/dist/components/MazAnimatedText.mjs +11 -11
- package/dist/components/MazAnimatedText.mjs.map +1 -1
- package/dist/components/MazAvatar.cjs +1 -1
- package/dist/components/MazAvatar.cjs.map +1 -1
- package/dist/components/MazAvatar.mjs +2 -2
- package/dist/components/MazAvatar.mjs.map +1 -1
- package/dist/components/MazBadge.cjs +1 -1
- package/dist/components/MazBadge.mjs +2 -2
- package/dist/components/MazBottomSheet.cjs +1 -1
- package/dist/components/MazBottomSheet.cjs.map +1 -1
- package/dist/components/MazBottomSheet.mjs +10 -10
- package/dist/components/MazBottomSheet.mjs.map +1 -1
- package/dist/components/MazBtn.cjs +1 -1
- package/dist/components/MazBtn.cjs.map +1 -1
- package/dist/components/MazBtn.mjs +2 -2
- package/dist/components/MazBtn.mjs.map +1 -1
- package/dist/components/MazCard.cjs +1 -1
- package/dist/components/MazCard.cjs.map +1 -1
- package/dist/components/MazCard.mjs +2 -2
- package/dist/components/MazCard.mjs.map +1 -1
- package/dist/components/MazCardSpotlight.cjs +1 -1
- package/dist/components/MazCardSpotlight.cjs.map +1 -1
- package/dist/components/MazCardSpotlight.mjs +2 -2
- package/dist/components/MazCardSpotlight.mjs.map +1 -1
- package/dist/components/MazCarousel.cjs +1 -1
- package/dist/components/MazCarousel.cjs.map +1 -1
- package/dist/components/MazCarousel.mjs +2 -2
- package/dist/components/MazCarousel.mjs.map +1 -1
- package/dist/components/MazCheckbox.cjs +1 -1
- package/dist/components/MazCheckbox.cjs.map +1 -1
- package/dist/components/MazCheckbox.mjs +6 -6
- package/dist/components/MazCheckbox.mjs.map +1 -1
- package/dist/components/MazChecklist.cjs +1 -1
- package/dist/components/MazChecklist.cjs.map +1 -1
- package/dist/components/MazChecklist.mjs +3 -3
- package/dist/components/MazChecklist.mjs.map +1 -1
- package/dist/components/MazCircularProgressBar.cjs +1 -1
- package/dist/components/MazCircularProgressBar.cjs.map +1 -1
- package/dist/components/MazCircularProgressBar.mjs +2 -2
- package/dist/components/MazCircularProgressBar.mjs.map +1 -1
- package/dist/components/MazDialog.cjs +1 -1
- package/dist/components/MazDialog.cjs.map +1 -1
- package/dist/components/MazDialog.mjs +2 -2
- package/dist/components/MazDialog.mjs.map +1 -1
- package/dist/components/MazDrawer.cjs +1 -1
- package/dist/components/MazDrawer.cjs.map +1 -1
- package/dist/components/MazDrawer.mjs +8 -8
- package/dist/components/MazDrawer.mjs.map +1 -1
- package/dist/components/MazDropzone.cjs.map +1 -1
- package/dist/components/MazDropzone.mjs.map +1 -1
- package/dist/components/MazFullscreenLoader.cjs +1 -1
- package/dist/components/MazFullscreenLoader.cjs.map +1 -1
- package/dist/components/MazFullscreenLoader.mjs +2 -2
- package/dist/components/MazFullscreenLoader.mjs.map +1 -1
- package/dist/components/MazGallery.cjs +1 -1
- package/dist/components/MazGallery.cjs.map +1 -1
- package/dist/components/MazGallery.mjs +3 -3
- package/dist/components/MazGallery.mjs.map +1 -1
- package/dist/components/MazInput.cjs +1 -1
- package/dist/components/MazInput.cjs.map +1 -1
- package/dist/components/MazInput.mjs +2 -2
- package/dist/components/MazInput.mjs.map +1 -1
- package/dist/components/MazInputCode.cjs +1 -1
- package/dist/components/MazInputCode.cjs.map +1 -1
- package/dist/components/MazInputCode.mjs +5 -5
- package/dist/components/MazInputCode.mjs.map +1 -1
- package/dist/components/MazInputNumber.cjs +1 -1
- package/dist/components/MazInputNumber.mjs +1 -1
- package/dist/components/MazInputPhoneNumber.cjs +1 -1
- package/dist/components/MazInputPhoneNumber.mjs +1 -1
- package/dist/components/MazInputPrice.cjs +1 -1
- package/dist/components/MazInputPrice.mjs +1 -1
- package/dist/components/MazInputTags.cjs +1 -1
- package/dist/components/MazInputTags.cjs.map +1 -1
- package/dist/components/MazInputTags.mjs +8 -8
- package/dist/components/MazInputTags.mjs.map +1 -1
- package/dist/components/MazLazyImg.cjs +1 -1
- package/dist/components/MazLazyImg.cjs.map +1 -1
- package/dist/components/MazLazyImg.mjs +5 -5
- package/dist/components/MazLazyImg.mjs.map +1 -1
- package/dist/components/MazLink.cjs +1 -1
- package/dist/components/MazLink.cjs.map +1 -1
- package/dist/components/MazLink.mjs +2 -2
- package/dist/components/MazLink.mjs.map +1 -1
- package/dist/components/MazLoadingBar.cjs +1 -1
- package/dist/components/MazLoadingBar.cjs.map +1 -1
- package/dist/components/MazLoadingBar.mjs +4 -4
- package/dist/components/MazLoadingBar.mjs.map +1 -1
- package/dist/components/MazPagination.cjs +1 -1
- package/dist/components/MazPagination.cjs.map +1 -1
- package/dist/components/MazPagination.mjs +2 -2
- package/dist/components/MazPagination.mjs.map +1 -1
- package/dist/components/MazPicker.cjs +1 -1
- package/dist/components/MazPicker.mjs +1 -1
- package/dist/components/MazPullToRefresh.cjs +1 -1
- package/dist/components/MazPullToRefresh.cjs.map +1 -1
- package/dist/components/MazPullToRefresh.mjs +2 -2
- package/dist/components/MazPullToRefresh.mjs.map +1 -1
- package/dist/components/MazRadio.cjs +1 -1
- package/dist/components/MazRadio.cjs.map +1 -1
- package/dist/components/MazRadio.mjs +7 -7
- package/dist/components/MazRadio.mjs.map +1 -1
- package/dist/components/MazRadioButtons.cjs +1 -1
- package/dist/components/MazRadioButtons.cjs.map +1 -1
- package/dist/components/MazRadioButtons.mjs +2 -2
- package/dist/components/MazRadioButtons.mjs.map +1 -1
- package/dist/components/MazReadingProgressBar.cjs +1 -1
- package/dist/components/MazReadingProgressBar.cjs.map +1 -1
- package/dist/components/MazReadingProgressBar.mjs +7 -7
- package/dist/components/MazReadingProgressBar.mjs.map +1 -1
- package/dist/components/MazSelect.cjs +1 -1
- package/dist/components/MazSelect.cjs.map +1 -1
- package/dist/components/MazSelect.mjs +7 -7
- package/dist/components/MazSelect.mjs.map +1 -1
- package/dist/components/MazSlider.cjs +1 -1
- package/dist/components/MazSlider.cjs.map +1 -1
- package/dist/components/MazSlider.mjs +11 -11
- package/dist/components/MazSlider.mjs.map +1 -1
- package/dist/components/MazSpinner.cjs +1 -1
- package/dist/components/MazSpinner.mjs +2 -2
- package/dist/components/MazStepper.cjs +1 -1
- package/dist/components/MazStepper.cjs.map +1 -1
- package/dist/components/MazStepper.mjs +22 -22
- package/dist/components/MazStepper.mjs.map +1 -1
- package/dist/components/MazTable.cjs +1 -1
- package/dist/components/MazTable.mjs +3 -3
- package/dist/components/MazTableCell.cjs +1 -1
- package/dist/components/MazTableCell.cjs.map +1 -1
- package/dist/components/MazTableCell.mjs +7 -7
- package/dist/components/MazTableCell.mjs.map +1 -1
- package/dist/components/MazTableRow.cjs +1 -1
- package/dist/components/MazTableRow.cjs.map +1 -1
- package/dist/components/MazTableRow.mjs +7 -7
- package/dist/components/MazTableRow.mjs.map +1 -1
- package/dist/components/MazTableTitle.cjs +1 -1
- package/dist/components/MazTableTitle.cjs.map +1 -1
- package/dist/components/MazTableTitle.mjs +3 -3
- package/dist/components/MazTableTitle.mjs.map +1 -1
- package/dist/components/MazTabsBar.cjs +1 -1
- package/dist/components/MazTabsBar.cjs.map +1 -1
- package/dist/components/MazTabsBar.mjs +2 -2
- package/dist/components/MazTabsBar.mjs.map +1 -1
- package/dist/components/MazTabsContentItem.cjs +1 -1
- package/dist/components/MazTabsContentItem.cjs.map +1 -1
- package/dist/components/MazTabsContentItem.mjs +2 -2
- package/dist/components/MazTabsContentItem.mjs.map +1 -1
- package/dist/components/MazTextarea.cjs +1 -1
- package/dist/components/MazTextarea.cjs.map +1 -1
- package/dist/components/MazTextarea.mjs +6 -6
- package/dist/components/MazTextarea.mjs.map +1 -1
- package/dist/composables/useAos.cjs.map +1 -1
- package/dist/composables/useAos.mjs.map +1 -1
- package/dist/composables/useDialog.cjs.map +1 -1
- package/dist/composables/useDialog.mjs.map +1 -1
- package/dist/composables/useFormField.cjs +1 -1
- package/dist/composables/useFormField.cjs.map +1 -1
- package/dist/composables/useFormField.mjs +19 -19
- package/dist/composables/useFormField.mjs.map +1 -1
- package/dist/composables/useFormValidator.cjs +1 -1
- package/dist/composables/useFormValidator.cjs.map +1 -1
- package/dist/composables/useFormValidator.mjs +11 -11
- package/dist/composables/useFormValidator.mjs.map +1 -1
- package/dist/composables/useIdleTimeout.cjs.map +1 -1
- package/dist/composables/useIdleTimeout.mjs.map +1 -1
- package/dist/composables/useStringMatching.cjs +1 -1
- package/dist/composables/useStringMatching.cjs.map +1 -1
- package/dist/composables/useStringMatching.mjs +1 -1
- package/dist/composables/useStringMatching.mjs.map +1 -1
- package/dist/composables/useSwipe.cjs +1 -1
- package/dist/composables/useSwipe.cjs.map +1 -1
- package/dist/composables/useSwipe.mjs +3 -3
- package/dist/composables/useSwipe.mjs.map +1 -1
- package/dist/composables/useThemeHandler.cjs +1 -1
- package/dist/composables/useThemeHandler.cjs.map +1 -1
- package/dist/composables/useThemeHandler.mjs +1 -1
- package/dist/composables/useThemeHandler.mjs.map +1 -1
- package/dist/composables/useToast.cjs.map +1 -1
- package/dist/composables/useToast.mjs.map +1 -1
- package/dist/composables/useUserVisibilty.cjs.map +1 -1
- package/dist/composables/useUserVisibilty.mjs.map +1 -1
- package/dist/composables/useWait.cjs.map +1 -1
- package/dist/composables/useWait.mjs.map +1 -1
- package/dist/composables/useWindowSize.cjs +1 -1
- package/dist/composables/useWindowSize.cjs.map +1 -1
- package/dist/composables/useWindowSize.mjs +5 -5
- package/dist/composables/useWindowSize.mjs.map +1 -1
- package/dist/directives/vClickOutside.cjs.map +1 -1
- package/dist/directives/vClickOutside.mjs.map +1 -1
- package/dist/directives/vClosable.cjs.map +1 -1
- package/dist/directives/vClosable.mjs.map +1 -1
- package/dist/directives/vFullscreenImg.cjs +1 -1
- package/dist/directives/vFullscreenImg.mjs +1 -1
- package/dist/directives/vLazyImg.cjs.map +1 -1
- package/dist/directives/vLazyImg.mjs.map +1 -1
- package/dist/directives/vTooltip.cjs.map +1 -1
- package/dist/directives/vTooltip.mjs.map +1 -1
- package/dist/filters/pascalCase.cjs.map +1 -1
- package/dist/filters/pascalCase.mjs.map +1 -1
- package/dist/helpers/countryCodeToUnicodeFlag.cjs.map +1 -1
- package/dist/helpers/countryCodeToUnicodeFlag.mjs.map +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.mjs +5 -5
- package/dist/nuxt/module.d.mts +1 -1
- package/dist/nuxt/module.d.ts +1 -1
- package/dist/nuxt/module.json +1 -1
- package/dist/nuxt/module.mjs +13 -8
- package/dist/nuxt/runtime/plugins/dialog.js +2 -2
- package/dist/plugins/aos.cjs.map +1 -1
- package/dist/plugins/aos.mjs.map +1 -1
- package/dist/plugins/dialog.cjs.map +1 -1
- package/dist/plugins/dialog.mjs.map +1 -1
- package/dist/plugins/toaster.cjs +1 -1
- package/dist/plugins/toaster.cjs.map +1 -1
- package/dist/plugins/toaster.mjs +2 -2
- package/dist/plugins/toaster.mjs.map +1 -1
- package/dist/resolvers/UnpluginVueComponentsResolver.cjs.map +1 -1
- package/dist/resolvers/UnpluginVueComponentsResolver.mjs.map +1 -1
- package/dist/types/components/MazAvatar.vue.d.ts +1 -1
- package/dist/types/components/MazCard.vue.d.ts +1 -1
- package/dist/types/components/MazDialogPromise/useMazDialogPromise.d.ts +1 -1
- package/dist/types/components/MazDropdown.vue.d.ts +1 -1
- package/dist/types/components/MazInputPhoneNumber/CountrySelector.vue.d.ts +3 -3
- package/dist/types/components/MazInputPhoneNumber/types.d.ts +1 -1
- package/dist/types/components/MazInputPhoneNumber.vue.d.ts +1 -1
- package/dist/types/components/MazLazyImg.vue.d.ts +1 -1
- package/dist/types/components/MazLink.vue.d.ts +1 -1
- package/dist/types/components/MazPicker/MazPickerCalendar.vue.d.ts +1 -1
- package/dist/types/components/MazPicker/MazPickerCalendarMonth/MazPickerCalendarGrid.vue.d.ts +1 -1
- package/dist/types/components/MazPicker/MazPickerCalendarMonth/MazPickerCalendarMonth.vue.d.ts +1 -1
- package/dist/types/components/MazPicker/MazPickerContainer.vue.d.ts +1 -1
- package/dist/types/components/MazPicker/MazPickerHeader.vue.d.ts +1 -1
- package/dist/types/components/MazPicker/MazPickerShortcuts.vue.d.ts +1 -1
- package/dist/types/components/MazPicker/MazPickerTime.vue.d.ts +2 -2
- package/dist/types/components/MazPicker/utils.d.ts +1 -1
- package/dist/types/components/MazSlider.vue.d.ts +1 -1
- package/dist/types/components/constantes.d.ts +1 -2
- package/dist/types/components/types.d.ts +2 -1
- package/dist/types/composables/useFormField.d.ts +2 -2
- package/dist/types/composables/useFormValidator/types.d.ts +3 -3
- package/dist/types/composables/useFormValidator.d.ts +3 -3
- package/dist/types/directives/vClickOutside.d.ts +1 -1
- package/dist/types/directives/vClosable.d.ts +1 -1
- package/dist/types/directives/vLazyImg.d.ts +2 -1
- package/dist/types/directives/vTooltip.d.ts +1 -1
- package/package.json +3 -4
- package/dist/assets/MazBtn.7QWd6o3M.css +0 -1
- package/dist/assets/MazGallery.ChuEM3_y.css +0 -1
- package/dist/assets/MazInput.C5uUOQLJ.css +0 -1
- package/dist/assets/MazInputCode.C1Mlb3p3.css +0 -1
- package/dist/assets/MazLink.DQ7r1i9T.css +0 -1
- package/dist/assets/MazLoadingBar.C6sNjytz.css +0 -1
- package/dist/assets/MazPicker.fY2qT4ER.css +0 -1
- package/dist/assets/MazPickerCalendarMonth.GACBSeof.css +0 -1
- package/dist/assets/MazReadingProgressBar.CbqVvC8N.css +0 -1
- package/dist/assets/MazSpinner.DTuz1RdS.css +0 -1
- package/dist/assets/MazTable.D06R_2nI.css +0 -1
- package/dist/assets/MazTableCell.BDmda4j7.css +0 -1
- package/dist/assets/MazTableRow.Copw9RJN.css +0 -1
- package/dist/assets/MazTableTitle.Cspgmj1g.css +0 -1
- package/dist/assets/PhoneInput.utJQQXVJ.css +0 -1
- package/dist/chunks/CountrySelector.C5XZelLY.mjs.map +0 -1
- package/dist/chunks/CountrySelector.mFGaqpPf.cjs.map +0 -1
- package/dist/chunks/MazInputNumber.vue_vue_type_script_setup_true_lang.Bbod2mLd.mjs.map +0 -1
- package/dist/chunks/MazInputNumber.vue_vue_type_script_setup_true_lang.DiawfWBC.cjs.map +0 -1
- package/dist/chunks/MazInputPrice.vue_vue_type_script_setup_true_lang.C3X2lwRl.mjs.map +0 -1
- package/dist/chunks/MazInputPrice.vue_vue_type_script_setup_true_lang.CCatmP_L.cjs.map +0 -1
- package/dist/chunks/MazPicker.BZE8cw36.cjs.map +0 -1
- package/dist/chunks/MazPicker.DCnOkRvv.mjs.map +0 -1
- package/dist/chunks/MazPickerCalendar.CVZ8VoYr.cjs.map +0 -1
- package/dist/chunks/MazPickerCalendar.NeYLrtl-.mjs.map +0 -1
- package/dist/chunks/MazPickerCalendarMonth.DpvQC45k.cjs.map +0 -1
- package/dist/chunks/MazPickerCalendarMonth.rnaiDHFM.mjs.map +0 -1
- package/dist/chunks/MazPickerCalendarSwitcher.DC2wff_J.cjs.map +0 -1
- package/dist/chunks/MazPickerCalendarSwitcher.DFGrD6Cr.mjs.map +0 -1
- package/dist/chunks/MazPickerHeader.B7YY9SJI.mjs.map +0 -1
- package/dist/chunks/MazPickerHeader.l7NcmiGH.cjs.map +0 -1
- package/dist/chunks/MazPickerMonthSwitcher.CAPx3PCt.mjs.map +0 -1
- package/dist/chunks/MazPickerMonthSwitcher.CbplWFfL.cjs.map +0 -1
- package/dist/chunks/MazPickerShortcuts.Bawm0q33.mjs.map +0 -1
- package/dist/chunks/MazPickerShortcuts.LxFs0Y6N.cjs.map +0 -1
- package/dist/chunks/MazPickerTime.7cxq-Qac.cjs.map +0 -1
- package/dist/chunks/MazPickerTime.C27aFPPw.mjs.map +0 -1
- package/dist/chunks/MazPickerYearSwitcher.DMBOaMYy.mjs.map +0 -1
- package/dist/chunks/MazPickerYearSwitcher.Dku2IMIJ.cjs.map +0 -1
- package/dist/chunks/MazTable.vue_vue_type_style_index_0_scoped_4101f1d3_lang.Ctmf2NVE.cjs.map +0 -1
- package/dist/chunks/MazTable.vue_vue_type_style_index_0_scoped_4101f1d3_lang.Dwkx-V96.mjs.map +0 -1
- package/dist/chunks/PhoneInput.9GQJbL9x.mjs.map +0 -1
- package/dist/chunks/PhoneInput.D5DG4S60.cjs.map +0 -1
- package/dist/chunks/fullscreen-img.directive.CeREtf7H.cjs.map +0 -1
- package/dist/chunks/fullscreen-img.directive.CrLLYi0D.mjs.map +0 -1
- package/dist/chunks/utils.Bex2hM45.mjs.map +0 -1
- package/dist/chunks/utils.vGzCTXH5.cjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toaster.cjs","sources":["../../src/plugins/toaster/MazToast.vue","../../src/plugins/toaster/ToasterHandler.ts","../../src/plugins/toaster.ts"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { LocalToasterOptions } from './ToasterHandler'\nimport type { ToasterAction, ToasterLink, ToasterPosition } from './types'\nimport MazBtn from '@components/MazBtn.vue'\nimport { useTimer } from '@composables/useTimer'\nimport { computed, defineAsyncComponent, onMounted, ref, watch } from 'vue'\n\nconst props = withDefaults(defineProps<Props>(), {\n position: 'bottom-right',\n maxToasts: false,\n timeout: 10_000,\n type: 'info',\n message: undefined,\n link: undefined,\n action: undefined,\n icon: true,\n})\n\nconst emits = defineEmits(['close', 'click', 'open'])\n\nconst XIcon = defineAsyncComponent(() => import('@icons/x-mark.svg'))\nconst ExternalLink = defineAsyncComponent(() => import('@icons/arrow-top-right-on-square.svg'))\nconst ExclamationTriangle = defineAsyncComponent(() => import('@icons/exclamation-triangle.svg'))\nconst ExclamationCircle = defineAsyncComponent(() => import('@icons/exclamation-circle.svg'))\nconst InformationCircle = defineAsyncComponent(() => import('@icons/information-circle.svg'))\nconst CheckCircle = defineAsyncComponent(() => import('@icons/check-circle.svg'))\nconst Link = defineAsyncComponent(() => import('@icons/link.svg'))\n\nconst Toaster = ref<HTMLDivElement>()\n\nexport interface Props {\n message: string\n position?: ToasterPosition\n maxToasts?: number | boolean\n timeout?: number | boolean\n queue?: boolean\n noPauseOnHover?: boolean\n type?: LocalToasterOptions['type']\n link?: ToasterLink\n action?: ToasterAction\n persistent?: boolean\n icon?: boolean\n}\n\nconst iconComponent = computed(() => {\n if (!props.icon)\n return undefined\n\n switch (props.type) {\n case 'danger': {\n return ExclamationTriangle\n }\n case 'info': {\n return InformationCircle\n }\n case 'success': {\n return CheckCircle\n }\n case 'warning': {\n return ExclamationCircle\n }\n default: {\n return undefined\n }\n }\n})\n\nconst positionY = computed(() => (props.position.includes('top') ? 'top' : 'bottom'))\nconst positionX = computed(() => {\n if (props.position.includes('left'))\n return 'left'\n if (props.position.includes('right'))\n return 'right'\n return 'center'\n})\n\nconst transitionName = computed(() => {\n if (positionX.value !== 'center') {\n return positionX.value === 'right' ? 'm-slide-right' : 'm-slide-left'\n }\n return positionY.value === 'top' ? 'm-slide-top' : 'm-slide-bottom'\n})\n\nconst actionLoading = ref(false)\nconst isActive = ref(false)\nconst queueTimer = ref<ReturnType<typeof setTimeout>>()\n\nconst containerClassName = `m-toast-container m-reset-css --${positionY.value} --${positionX.value}`\nconst selectorContainerClass = `.${containerClassName.replaceAll(' ', '.')}`\n\nconst timer = useTimer({\n callback: closeToast,\n timeout: typeof props.timeout === 'number' ? props.timeout : 0,\n callbackOffsetTime: 200,\n})\n\nfunction createParents() {\n const container = document.querySelector(selectorContainerClass)\n\n if (container)\n return\n\n if (!container) {\n const body = document.body\n const toCreate = document.createElement('div')\n toCreate.className = containerClassName\n body.append(toCreate)\n }\n}\n\nfunction shouldQueue() {\n const container = document.querySelector(selectorContainerClass)\n\n if (!props.queue && props.maxToasts === false) {\n return false\n }\n\n if (typeof props.maxToasts === 'number' && container) {\n return props.maxToasts <= container.childElementCount\n }\n\n return container && container.childElementCount > 0\n}\n\nfunction showNotice() {\n if (shouldQueue()) {\n queueTimer.value = setTimeout(showNotice, 250)\n return\n }\n\n const container = document.querySelector(selectorContainerClass)\n\n if (Toaster.value && container) {\n container.prepend(Toaster.value)\n }\n\n isActive.value = true\n\n if (typeof props.timeout === 'number' && props.timeout > 0) {\n timer.start()\n }\n}\n\nconst progressBarWidth = ref<string>('100%')\n\nfunction getProgressBarColor() {\n switch (props.type) {\n case 'danger': {\n return 'maz-bg-danger-700'\n }\n case 'info': {\n return 'maz-bg-info-700'\n }\n case 'success': {\n return 'maz-bg-success-700'\n }\n case 'warning': {\n return 'maz-bg-warning-700'\n }\n default: {\n return 'maz-bg-primary'\n }\n }\n}\n\nwatch(\n timer.remainingTime,\n (remainingTime) => {\n if (typeof props.timeout === 'number') {\n const percent = (100 * remainingTime) / props.timeout\n progressBarWidth.value = `${percent}%`\n }\n },\n)\n\nfunction click(event: Event) {\n emits('click', event)\n\n if (!props.persistent) {\n closeToast()\n }\n}\n\nasync function clickOnAction(func: ToasterAction['func'], event: Event) {\n actionLoading.value = true\n await func()\n actionLoading.value = false\n if (props.action?.closeToast) {\n click(event)\n }\n}\n\nfunction toggleTimer(shouldPause: boolean) {\n if (props.noPauseOnHover) {\n return\n }\n\n if (shouldPause) {\n timer.pause()\n }\n else {\n timer.resume()\n }\n}\n\nfunction stopTimer() {\n timer.stop()\n if (queueTimer.value) {\n clearTimeout(queueTimer.value)\n }\n}\n\nfunction closeToast() {\n stopTimer()\n isActive.value = false\n}\n\ndefineExpose({ closeToast })\n\nfunction onAnimationEnter() {\n emits('open')\n}\n\nfunction onAnimationLeave() {\n emits('close')\n Toaster.value?.remove()\n\n const container = document.querySelector(selectorContainerClass)\n if (container && !container?.hasChildNodes()) {\n container.remove()\n }\n}\n\nonMounted(() => {\n createParents()\n showNotice()\n})\n</script>\n\n<template>\n <Transition\n :name=\"transitionName\"\n @after-leave=\"onAnimationLeave\"\n @after-enter=\"onAnimationEnter\"\n >\n <!-- eslint-disable vuejs-accessibility/mouse-events-have-key-events -->\n <button\n v-show=\"isActive\"\n ref=\"Toaster\"\n class=\"m-toast m-reset-css\"\n :class=\"[\n `--${type}`,\n `--${positionY}`,\n `--${positionX}`,\n { 'maz-pb-1': typeof timeout === 'number' && timeout > 0, '--persistent': persistent },\n ]\"\n role=\"alert\"\n @mouseover=\"toggleTimer(true)\"\n @mouseleave=\"toggleTimer(false)\"\n @click.stop=\"link && !link?.closeToast ? undefined : click($event)\"\n >\n <Component :is=\"iconComponent\" v-if=\"iconComponent\" class=\"maz-text-2xl\" />\n\n <div class=\"m-toast__message-wrapper\">\n <p class=\"m-toast__message\">\n {{ message }}\n </p>\n </div>\n\n <MazBtn\n v-if=\"action\"\n data-test=\"action-btn\"\n :color=\"type\"\n pastel\n :loading=\"actionLoading\"\n size=\"sm\"\n @click.stop=\"action ? clickOnAction(action.func, $event) : undefined\"\n >\n {{ action.text }}\n </MazBtn>\n <MazBtn\n v-if=\"link\"\n data-test=\"link-btn\"\n :color=\"type\"\n pastel\n size=\"xs\"\n :href=\"link.href\"\n :target=\"link.target ?? '_self'\"\n >\n <div class=\"maz-flex maz-items-center maz-gap-2\">\n <span v-if=\"link.text\"> {{ link.text }} </span>\n\n <ExternalLink v-if=\"link?.target === '_blank'\" class=\"maz-text-xl\" />\n <Link v-else class=\"maz-text-xl\" />\n </div>\n </MazBtn>\n\n <button v-if=\"!persistent\" class=\"--close\" @click.stop=\"click($event)\">\n <XIcon class=\"--icon maz-text-xl\" />\n </button>\n\n <div\n v-if=\"typeof timeout === 'number' && timeout > 0\"\n class=\"progress-bar maz-absolute maz-inset-x-0 maz-bottom-0 maz-h-1\"\n >\n <div\n :style=\"{\n width: progressBarWidth,\n }\"\n class=\"maz-h-full !maz-transition-all !maz-duration-200 !maz-ease-linear\"\n :class=\"getProgressBarColor()\"\n />\n </div>\n </button>\n <!-- eslint-enable vuejs-accessibility/mouse-events-have-key-events -->\n </Transition>\n</template>\n\n<style lang=\"postcss\">\n.m-toast-container {\n @apply maz-fixed maz-flex maz-flex-col maz-gap-2 maz-p-4;\n\n z-index: 1051;\n\n &.--top {\n @apply maz-top-0 maz-flex;\n }\n\n &.--center {\n @apply maz-w-full tab-m:maz-fixed tab-m:maz-left-2/4 tab-m:maz-w-auto;\n\n @screen tab-m {\n transform: translate(-50%, 0);\n }\n }\n\n &.--bottom {\n @apply maz-bottom-0 maz-flex maz-flex-col-reverse;\n\n & > :not([hidden]) ~ :not([hidden]) {\n @apply maz-my-2;\n }\n }\n\n &.--right {\n @apply maz-right-0 maz-w-full tab-m:maz-w-auto;\n }\n\n &.--left {\n @apply maz-left-0 maz-w-full tab-m:maz-w-auto;\n }\n}\n</style>\n\n<style lang=\"postcss\" scoped>\n .m-toast {\n box-sizing: border-box;\n\n & * {\n box-sizing: border-box;\n }\n\n @apply maz-relative maz-flex maz-w-full maz-cursor-default maz-items-center maz-gap-2 maz-self-center maz-overflow-hidden maz-rounded maz-pl-2 maz-pr-2 maz-shadow-md maz-transition maz-duration-300 maz-ease-in-out;\n\n &:not(.--persistent) {\n @apply maz-cursor-pointer;\n }\n\n &.--left,\n &.--right {\n @apply tab-m:maz-w-[22rem];\n }\n\n &.--center {\n @apply tab-m:maz-w-[22rem] tab-m:maz-justify-center;\n }\n\n &__message-wrapper {\n @apply maz-flex-1 maz-py-3;\n }\n\n &__message {\n @apply maz-m-0 maz-text-start maz-font-medium;\n }\n\n & .--close {\n @apply maz-flex maz-h-9 maz-w-9 maz-rounded maz-bg-transparent maz-p-0 maz-flex-center hover:maz-bg-gray-900/20;\n\n & .--icon {\n @apply maz-cursor-pointer;\n }\n }\n\n &.--info {\n @apply maz-bg-info maz-text-info-contrast;\n\n &:not(.--persistent) {\n @apply hover:maz-bg-info-400;\n }\n }\n\n &.--success {\n @apply maz-bg-success maz-text-success-contrast;\n\n &:not(.--persistent) {\n @apply hover:maz-bg-success-400;\n }\n }\n\n &.--warning {\n @apply maz-bg-warning maz-text-warning-contrast;\n\n &:not(.--persistent) {\n @apply hover:maz-bg-warning-400;\n }\n }\n\n &.--danger {\n @apply maz-bg-danger maz-text-danger-contrast;\n\n &:not(.--persistent) {\n @apply hover:maz-bg-danger-400;\n }\n }\n\n &.--theme {\n @apply maz-bg-color maz-text-normal dark:maz-border dark:maz-border-solid dark:maz-border-color-lighter;\n\n &:not(.--persistent) {\n @apply hover:maz-bg-color-light;\n }\n }\n}\n\n.m-slide-top-enter-active,\n.m-slide-top-leave-active {\n opacity: 1;\n transition: all 300ms;\n transform: translateY(0);\n}\n\n.m-slide-top-enter-from,\n.m-slide-top-leave-to {\n opacity: 0;\n transform: translateY(-100%);\n}\n\n.m-slide-bottom-enter-active,\n.m-slide-bottom-leave-active {\n opacity: 1;\n transition: all 300ms;\n transform: translateY(0);\n}\n\n.m-slide-bottom-enter-from,\n.m-slide-bottom-leave-to {\n opacity: 0;\n transform: translateY(100%);\n}\n\n.m-slide-right-enter-active,\n.m-slide-right-leave-active {\n opacity: 1;\n transition: all 300ms;\n transform: translateX(0);\n}\n\n.m-slide-right-enter-from,\n.m-slide-right-leave-to {\n opacity: 0;\n transform: translateX(100%);\n}\n\n.m-slide-left-enter-active,\n.m-slide-left-leave-active {\n opacity: 1;\n transition: all 300ms;\n transform: translateX(0);\n}\n\n.m-slide-left-enter-from,\n.m-slide-left-leave-to {\n opacity: 0;\n transform: translateX(-100%);\n}\n</style>\n","import type { App } from 'vue'\nimport type { ToasterOptions } from './types'\nimport { mount } from '@helpers/mountComponent'\nimport MazToast, { type Props } from './MazToast.vue'\n\nexport interface LocalToasterOptions extends ToasterOptions {\n type: 'success' | 'info' | 'warning' | 'danger' | 'theme'\n}\n\nconst DEFAULT_OPTIONS: ToasterOptions = {\n position: 'bottom-right',\n timeout: 10_000,\n persistent: false,\n icon: true,\n}\n\nexport class ToasterHandler {\n constructor(\n private readonly app: App,\n private readonly globalOptions?: ToasterOptions,\n ) {}\n\n private show(message: string, options: LocalToasterOptions) {\n const propsData: Props = {\n ...DEFAULT_OPTIONS,\n ...this.globalOptions,\n ...options,\n message,\n }\n\n const { destroy, vNode } = mount<typeof MazToast, Props>(MazToast, {\n props: propsData,\n app: this.app,\n })\n\n return {\n destroy,\n close: () => vNode.component?.exposed?.closeToast(),\n }\n }\n\n private getLocalOptions(\n type: LocalToasterOptions['type'],\n options?: ToasterOptions,\n ): LocalToasterOptions {\n return {\n type,\n ...options,\n }\n }\n\n message(message: string, options?: ToasterOptions) {\n return this.show(message, this.getLocalOptions('theme', options))\n }\n\n success(message: string, options?: ToasterOptions) {\n return this.show(message, this.getLocalOptions('success', options))\n }\n\n error(message: string, options?: ToasterOptions) {\n return this.show(message, this.getLocalOptions('danger', options))\n }\n\n info(message: string, options?: ToasterOptions) {\n return this.show(message, this.getLocalOptions('info', options))\n }\n\n warning(message: string, options?: ToasterOptions) {\n return this.show(message, this.getLocalOptions('warning', options))\n }\n}\n","import type { App } from 'vue'\nimport type { ToasterOptions } from './toaster/types'\nimport { ToasterHandler } from './toaster/ToasterHandler'\n\nexport function createToaster(app: App, options?: ToasterOptions): ToasterHandler {\n return new ToasterHandler(app, options)\n}\n\nexport const installToaster = {\n install(app: App, options?: ToasterOptions) {\n app.provide('toast', createToaster(app, options))\n },\n}\n\nexport { ToasterHandler } from './toaster/ToasterHandler'\nexport type { ToasterOptions, ToasterPosition, ToasterPositions } from './toaster/types'\n"],"names":["props","__props","emits","__emit","XIcon","defineAsyncComponent","ExternalLink","ExclamationTriangle","ExclamationCircle","InformationCircle","CheckCircle","Link","Toaster","ref","iconComponent","computed","positionY","positionX","transitionName","actionLoading","isActive","queueTimer","containerClassName","selectorContainerClass","timer","useTimer","closeToast","createParents","container","body","toCreate","shouldQueue","showNotice","progressBarWidth","getProgressBarColor","watch","remainingTime","percent","click","event","clickOnAction","func","_a","toggleTimer","shouldPause","stopTimer","__expose","onAnimationEnter","onAnimationLeave","onMounted","DEFAULT_OPTIONS","ToasterHandler","app","globalOptions","message","options","propsData","destroy","vNode","mount","MazToast","_b","type","createToaster","installToaster"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"toaster.cjs","sources":["../../src/plugins/toaster/MazToast.vue","../../src/plugins/toaster/ToasterHandler.ts","../../src/plugins/toaster.ts"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { LocalToasterOptions } from './ToasterHandler'\nimport type { ToasterAction, ToasterLink, ToasterPosition } from './types'\nimport { computed, defineAsyncComponent, onMounted, ref, watch } from 'vue'\nimport MazBtn from '../../components/MazBtn.vue'\nimport { useTimer } from '../../composables/useTimer'\n\nconst props = withDefaults(defineProps<Props>(), {\n position: 'bottom-right',\n maxToasts: false,\n timeout: 10_000,\n type: 'info',\n message: undefined,\n link: undefined,\n action: undefined,\n icon: true,\n})\n\nconst emits = defineEmits(['close', 'click', 'open'])\n\nconst XIcon = defineAsyncComponent(() => import('../../../icons/x-mark.svg'))\nconst ExternalLink = defineAsyncComponent(() => import('../../../icons/arrow-top-right-on-square.svg'))\nconst ExclamationTriangle = defineAsyncComponent(() => import('../../../icons/exclamation-triangle.svg'))\nconst ExclamationCircle = defineAsyncComponent(() => import('../../../icons/exclamation-circle.svg'))\nconst InformationCircle = defineAsyncComponent(() => import('../../../icons/information-circle.svg'))\nconst CheckCircle = defineAsyncComponent(() => import('../../../icons/check-circle.svg'))\nconst Link = defineAsyncComponent(() => import('../../../icons/link.svg'))\n\nconst Toaster = ref<HTMLDivElement>()\n\nexport interface Props {\n message: string\n position?: ToasterPosition\n maxToasts?: number | boolean\n timeout?: number | boolean\n queue?: boolean\n noPauseOnHover?: boolean\n type?: LocalToasterOptions['type']\n link?: ToasterLink\n action?: ToasterAction\n persistent?: boolean\n icon?: boolean\n}\n\nconst iconComponent = computed(() => {\n if (!props.icon)\n return undefined\n\n switch (props.type) {\n case 'danger': {\n return ExclamationTriangle\n }\n case 'info': {\n return InformationCircle\n }\n case 'success': {\n return CheckCircle\n }\n case 'warning': {\n return ExclamationCircle\n }\n default: {\n return undefined\n }\n }\n})\n\nconst positionY = computed(() => (props.position.includes('top') ? 'top' : 'bottom'))\nconst positionX = computed(() => {\n if (props.position.includes('left'))\n return 'left'\n if (props.position.includes('right'))\n return 'right'\n return 'center'\n})\n\nconst transitionName = computed(() => {\n if (positionX.value !== 'center') {\n return positionX.value === 'right' ? 'm-slide-right' : 'm-slide-left'\n }\n return positionY.value === 'top' ? 'm-slide-top' : 'm-slide-bottom'\n})\n\nconst actionLoading = ref(false)\nconst isActive = ref(false)\nconst queueTimer = ref<ReturnType<typeof setTimeout>>()\n\nconst containerClassName = `m-toast-container m-reset-css --${positionY.value} --${positionX.value}`\nconst selectorContainerClass = `.${containerClassName.replaceAll(' ', '.')}`\n\nconst timer = useTimer({\n callback: closeToast,\n timeout: typeof props.timeout === 'number' ? props.timeout : 0,\n callbackOffsetTime: 200,\n})\n\nfunction createParents() {\n const container = document.querySelector(selectorContainerClass)\n\n if (container)\n return\n\n if (!container) {\n const body = document.body\n const toCreate = document.createElement('div')\n toCreate.className = containerClassName\n body.append(toCreate)\n }\n}\n\nfunction shouldQueue() {\n const container = document.querySelector(selectorContainerClass)\n\n if (!props.queue && props.maxToasts === false) {\n return false\n }\n\n if (typeof props.maxToasts === 'number' && container) {\n return props.maxToasts <= container.childElementCount\n }\n\n return container && container.childElementCount > 0\n}\n\nfunction showNotice() {\n if (shouldQueue()) {\n queueTimer.value = setTimeout(showNotice, 250)\n return\n }\n\n const container = document.querySelector(selectorContainerClass)\n\n if (Toaster.value && container) {\n container.prepend(Toaster.value)\n }\n\n isActive.value = true\n\n if (typeof props.timeout === 'number' && props.timeout > 0) {\n timer.start()\n }\n}\n\nconst progressBarWidth = ref<string>('100%')\n\nfunction getProgressBarColor() {\n switch (props.type) {\n case 'danger': {\n return 'maz-bg-danger-700'\n }\n case 'info': {\n return 'maz-bg-info-700'\n }\n case 'success': {\n return 'maz-bg-success-700'\n }\n case 'warning': {\n return 'maz-bg-warning-700'\n }\n default: {\n return 'maz-bg-primary'\n }\n }\n}\n\nwatch(\n timer.remainingTime,\n (remainingTime) => {\n if (typeof props.timeout === 'number') {\n const percent = (100 * remainingTime) / props.timeout\n progressBarWidth.value = `${percent}%`\n }\n },\n)\n\nfunction click(event: Event) {\n emits('click', event)\n\n if (!props.persistent) {\n closeToast()\n }\n}\n\nasync function clickOnAction(func: ToasterAction['func'], event: Event) {\n actionLoading.value = true\n await func()\n actionLoading.value = false\n if (props.action?.closeToast) {\n click(event)\n }\n}\n\nfunction toggleTimer(shouldPause: boolean) {\n if (props.noPauseOnHover) {\n return\n }\n\n if (shouldPause) {\n timer.pause()\n }\n else {\n timer.resume()\n }\n}\n\nfunction stopTimer() {\n timer.stop()\n if (queueTimer.value) {\n clearTimeout(queueTimer.value)\n }\n}\n\nfunction closeToast() {\n stopTimer()\n isActive.value = false\n}\n\ndefineExpose({ closeToast })\n\nfunction onAnimationEnter() {\n emits('open')\n}\n\nfunction onAnimationLeave() {\n emits('close')\n Toaster.value?.remove()\n\n const container = document.querySelector(selectorContainerClass)\n if (container && !container?.hasChildNodes()) {\n container.remove()\n }\n}\n\nonMounted(() => {\n createParents()\n showNotice()\n})\n</script>\n\n<template>\n <Transition\n :name=\"transitionName\"\n @after-leave=\"onAnimationLeave\"\n @after-enter=\"onAnimationEnter\"\n >\n <!-- eslint-disable vuejs-accessibility/mouse-events-have-key-events -->\n <button\n v-show=\"isActive\"\n ref=\"Toaster\"\n class=\"m-toast m-reset-css\"\n :class=\"[\n `--${type}`,\n `--${positionY}`,\n `--${positionX}`,\n { 'maz-pb-1': typeof timeout === 'number' && timeout > 0, '--persistent': persistent },\n ]\"\n role=\"alert\"\n @mouseover=\"toggleTimer(true)\"\n @mouseleave=\"toggleTimer(false)\"\n @click.stop=\"link && !link?.closeToast ? undefined : click($event)\"\n >\n <Component :is=\"iconComponent\" v-if=\"iconComponent\" class=\"maz-text-2xl\" />\n\n <div class=\"m-toast__message-wrapper\">\n <p class=\"m-toast__message\">\n {{ message }}\n </p>\n </div>\n\n <MazBtn\n v-if=\"action\"\n data-test=\"action-btn\"\n :color=\"type\"\n pastel\n :loading=\"actionLoading\"\n size=\"sm\"\n @click.stop=\"action ? clickOnAction(action.func, $event) : undefined\"\n >\n {{ action.text }}\n </MazBtn>\n <MazBtn\n v-if=\"link\"\n data-test=\"link-btn\"\n :color=\"type\"\n pastel\n size=\"xs\"\n :href=\"link.href\"\n :target=\"link.target ?? '_self'\"\n >\n <div class=\"maz-flex maz-items-center maz-gap-2\">\n <span v-if=\"link.text\"> {{ link.text }} </span>\n\n <ExternalLink v-if=\"link?.target === '_blank'\" class=\"maz-text-xl\" />\n <Link v-else class=\"maz-text-xl\" />\n </div>\n </MazBtn>\n\n <button v-if=\"!persistent\" class=\"--close\" @click.stop=\"click($event)\">\n <XIcon class=\"--icon maz-text-xl\" />\n </button>\n\n <div\n v-if=\"typeof timeout === 'number' && timeout > 0\"\n class=\"progress-bar maz-absolute maz-inset-x-0 maz-bottom-0 maz-h-1\"\n >\n <div\n :style=\"{\n width: progressBarWidth,\n }\"\n class=\"maz-h-full !maz-transition-all !maz-duration-200 !maz-ease-linear\"\n :class=\"getProgressBarColor()\"\n />\n </div>\n </button>\n <!-- eslint-enable vuejs-accessibility/mouse-events-have-key-events -->\n </Transition>\n</template>\n\n<style lang=\"postcss\">\n.m-toast-container {\n @apply maz-fixed maz-flex maz-flex-col maz-gap-2 maz-p-4;\n\n z-index: 1051;\n\n &.--top {\n @apply maz-top-0 maz-flex;\n }\n\n &.--center {\n @apply maz-w-full tab-m:maz-fixed tab-m:maz-left-2/4 tab-m:maz-w-auto;\n\n @screen tab-m {\n transform: translate(-50%, 0);\n }\n }\n\n &.--bottom {\n @apply maz-bottom-0 maz-flex maz-flex-col-reverse;\n\n & > :not([hidden]) ~ :not([hidden]) {\n @apply maz-my-2;\n }\n }\n\n &.--right {\n @apply maz-right-0 maz-w-full tab-m:maz-w-auto;\n }\n\n &.--left {\n @apply maz-left-0 maz-w-full tab-m:maz-w-auto;\n }\n}\n</style>\n\n<style lang=\"postcss\" scoped>\n .m-toast {\n box-sizing: border-box;\n\n & * {\n box-sizing: border-box;\n }\n\n @apply maz-relative maz-flex maz-w-full maz-cursor-default maz-items-center maz-gap-2 maz-self-center maz-overflow-hidden maz-rounded maz-pl-2 maz-pr-2 maz-shadow-md maz-transition maz-duration-300 maz-ease-in-out;\n\n &:not(.--persistent) {\n @apply maz-cursor-pointer;\n }\n\n &.--left,\n &.--right {\n @apply tab-m:maz-w-[22rem];\n }\n\n &.--center {\n @apply tab-m:maz-w-[22rem] tab-m:maz-justify-center;\n }\n\n &__message-wrapper {\n @apply maz-flex-1 maz-py-3;\n }\n\n &__message {\n @apply maz-m-0 maz-text-start maz-font-medium;\n }\n\n & .--close {\n @apply maz-flex maz-h-9 maz-w-9 maz-rounded maz-bg-transparent maz-p-0 maz-flex-center hover:maz-bg-gray-900/20;\n\n & .--icon {\n @apply maz-cursor-pointer;\n }\n }\n\n &.--info {\n @apply maz-bg-info maz-text-info-contrast;\n\n &:not(.--persistent) {\n @apply hover:maz-bg-info-400;\n }\n }\n\n &.--success {\n @apply maz-bg-success maz-text-success-contrast;\n\n &:not(.--persistent) {\n @apply hover:maz-bg-success-400;\n }\n }\n\n &.--warning {\n @apply maz-bg-warning maz-text-warning-contrast;\n\n &:not(.--persistent) {\n @apply hover:maz-bg-warning-400;\n }\n }\n\n &.--danger {\n @apply maz-bg-danger maz-text-danger-contrast;\n\n &:not(.--persistent) {\n @apply hover:maz-bg-danger-400;\n }\n }\n\n &.--theme {\n @apply maz-bg-color maz-text-normal dark:maz-border dark:maz-border-solid dark:maz-border-color-lighter;\n\n &:not(.--persistent) {\n @apply hover:maz-bg-color-light;\n }\n }\n}\n\n.m-slide-top-enter-active,\n.m-slide-top-leave-active {\n opacity: 1;\n transition: all 300ms;\n transform: translateY(0);\n}\n\n.m-slide-top-enter-from,\n.m-slide-top-leave-to {\n opacity: 0;\n transform: translateY(-100%);\n}\n\n.m-slide-bottom-enter-active,\n.m-slide-bottom-leave-active {\n opacity: 1;\n transition: all 300ms;\n transform: translateY(0);\n}\n\n.m-slide-bottom-enter-from,\n.m-slide-bottom-leave-to {\n opacity: 0;\n transform: translateY(100%);\n}\n\n.m-slide-right-enter-active,\n.m-slide-right-leave-active {\n opacity: 1;\n transition: all 300ms;\n transform: translateX(0);\n}\n\n.m-slide-right-enter-from,\n.m-slide-right-leave-to {\n opacity: 0;\n transform: translateX(100%);\n}\n\n.m-slide-left-enter-active,\n.m-slide-left-leave-active {\n opacity: 1;\n transition: all 300ms;\n transform: translateX(0);\n}\n\n.m-slide-left-enter-from,\n.m-slide-left-leave-to {\n opacity: 0;\n transform: translateX(-100%);\n}\n</style>\n","import type { App } from 'vue'\nimport type { ToasterOptions } from './types'\nimport { mount } from './../../helpers/mountComponent'\nimport MazToast, { type Props } from './MazToast.vue'\n\nexport interface LocalToasterOptions extends ToasterOptions {\n type: 'success' | 'info' | 'warning' | 'danger' | 'theme'\n}\n\nconst DEFAULT_OPTIONS: ToasterOptions = {\n position: 'bottom-right',\n timeout: 10_000,\n persistent: false,\n icon: true,\n}\n\nexport class ToasterHandler {\n constructor(\n private readonly app: App,\n private readonly globalOptions?: ToasterOptions,\n ) {}\n\n private show(message: string, options: LocalToasterOptions) {\n const propsData: Props = {\n ...DEFAULT_OPTIONS,\n ...this.globalOptions,\n ...options,\n message,\n }\n\n const { destroy, vNode } = mount<typeof MazToast, Props>(MazToast, {\n props: propsData,\n app: this.app,\n })\n\n return {\n destroy,\n close: () => vNode.component?.exposed?.closeToast(),\n }\n }\n\n private getLocalOptions(\n type: LocalToasterOptions['type'],\n options?: ToasterOptions,\n ): LocalToasterOptions {\n return {\n type,\n ...options,\n }\n }\n\n message(message: string, options?: ToasterOptions) {\n return this.show(message, this.getLocalOptions('theme', options))\n }\n\n success(message: string, options?: ToasterOptions) {\n return this.show(message, this.getLocalOptions('success', options))\n }\n\n error(message: string, options?: ToasterOptions) {\n return this.show(message, this.getLocalOptions('danger', options))\n }\n\n info(message: string, options?: ToasterOptions) {\n return this.show(message, this.getLocalOptions('info', options))\n }\n\n warning(message: string, options?: ToasterOptions) {\n return this.show(message, this.getLocalOptions('warning', options))\n }\n}\n","import type { App } from 'vue'\nimport type { ToasterOptions } from './toaster/types'\nimport { ToasterHandler } from './toaster/ToasterHandler'\n\nexport function createToaster(app: App, options?: ToasterOptions): ToasterHandler {\n return new ToasterHandler(app, options)\n}\n\nexport const installToaster = {\n install(app: App, options?: ToasterOptions) {\n app.provide('toast', createToaster(app, options))\n },\n}\n\nexport { ToasterHandler } from './toaster/ToasterHandler'\nexport type { ToasterOptions, ToasterPosition, ToasterPositions } from './toaster/types'\n"],"names":["props","__props","emits","__emit","XIcon","defineAsyncComponent","ExternalLink","ExclamationTriangle","ExclamationCircle","InformationCircle","CheckCircle","Link","Toaster","ref","iconComponent","computed","positionY","positionX","transitionName","actionLoading","isActive","queueTimer","containerClassName","selectorContainerClass","timer","useTimer","closeToast","createParents","container","body","toCreate","shouldQueue","showNotice","progressBarWidth","getProgressBarColor","watch","remainingTime","percent","click","event","clickOnAction","func","_a","toggleTimer","shouldPause","stopTimer","__expose","onAnimationEnter","onAnimationLeave","onMounted","DEFAULT_OPTIONS","ToasterHandler","app","globalOptions","message","options","propsData","destroy","vNode","mount","MazToast","_b","type","createToaster","installToaster"],"mappings":"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"}
|
package/dist/plugins/toaster.mjs
CHANGED
|
@@ -3,7 +3,7 @@ import { defineComponent as ee, defineAsyncComponent as l, ref as f, computed as
|
|
|
3
3
|
import H from "../components/MazBtn.mjs";
|
|
4
4
|
import { useTimer as ce } from "../composables/useTimer.mjs";
|
|
5
5
|
import { _ as me } from "../chunks/_plugin-vue_export-helper.CHgC5LLL.mjs";
|
|
6
|
-
import '../assets/toaster.
|
|
6
|
+
import '../assets/toaster.BfTrtY6B.css';const pe = { class: "m-toast__message-wrapper" }, fe = { class: "m-toast__message" }, de = { class: "maz-flex maz-items-center maz-gap-2" }, ve = { key: 0 }, ge = {
|
|
7
7
|
key: 4,
|
|
8
8
|
class: "progress-bar maz-absolute maz-inset-x-0 maz-bottom-0 maz-h-1"
|
|
9
9
|
}, he = /* @__PURE__ */ ee({
|
|
@@ -205,7 +205,7 @@ import '../assets/toaster.C9zhIkIO.css';const pe = { class: "m-toast__message-wr
|
|
|
205
205
|
_: 1
|
|
206
206
|
}, 8, ["name"]));
|
|
207
207
|
}
|
|
208
|
-
}), ye = /* @__PURE__ */ me(he, [["__scopeId", "data-v-
|
|
208
|
+
}), ye = /* @__PURE__ */ me(he, [["__scopeId", "data-v-f515804c"]]), ke = {
|
|
209
209
|
position: "bottom-right",
|
|
210
210
|
timeout: 1e4,
|
|
211
211
|
persistent: !1,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toaster.mjs","sources":["../../src/plugins/toaster/MazToast.vue","../../src/plugins/toaster/ToasterHandler.ts","../../src/plugins/toaster.ts"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { LocalToasterOptions } from './ToasterHandler'\nimport type { ToasterAction, ToasterLink, ToasterPosition } from './types'\nimport MazBtn from '@components/MazBtn.vue'\nimport { useTimer } from '@composables/useTimer'\nimport { computed, defineAsyncComponent, onMounted, ref, watch } from 'vue'\n\nconst props = withDefaults(defineProps<Props>(), {\n position: 'bottom-right',\n maxToasts: false,\n timeout: 10_000,\n type: 'info',\n message: undefined,\n link: undefined,\n action: undefined,\n icon: true,\n})\n\nconst emits = defineEmits(['close', 'click', 'open'])\n\nconst XIcon = defineAsyncComponent(() => import('@icons/x-mark.svg'))\nconst ExternalLink = defineAsyncComponent(() => import('@icons/arrow-top-right-on-square.svg'))\nconst ExclamationTriangle = defineAsyncComponent(() => import('@icons/exclamation-triangle.svg'))\nconst ExclamationCircle = defineAsyncComponent(() => import('@icons/exclamation-circle.svg'))\nconst InformationCircle = defineAsyncComponent(() => import('@icons/information-circle.svg'))\nconst CheckCircle = defineAsyncComponent(() => import('@icons/check-circle.svg'))\nconst Link = defineAsyncComponent(() => import('@icons/link.svg'))\n\nconst Toaster = ref<HTMLDivElement>()\n\nexport interface Props {\n message: string\n position?: ToasterPosition\n maxToasts?: number | boolean\n timeout?: number | boolean\n queue?: boolean\n noPauseOnHover?: boolean\n type?: LocalToasterOptions['type']\n link?: ToasterLink\n action?: ToasterAction\n persistent?: boolean\n icon?: boolean\n}\n\nconst iconComponent = computed(() => {\n if (!props.icon)\n return undefined\n\n switch (props.type) {\n case 'danger': {\n return ExclamationTriangle\n }\n case 'info': {\n return InformationCircle\n }\n case 'success': {\n return CheckCircle\n }\n case 'warning': {\n return ExclamationCircle\n }\n default: {\n return undefined\n }\n }\n})\n\nconst positionY = computed(() => (props.position.includes('top') ? 'top' : 'bottom'))\nconst positionX = computed(() => {\n if (props.position.includes('left'))\n return 'left'\n if (props.position.includes('right'))\n return 'right'\n return 'center'\n})\n\nconst transitionName = computed(() => {\n if (positionX.value !== 'center') {\n return positionX.value === 'right' ? 'm-slide-right' : 'm-slide-left'\n }\n return positionY.value === 'top' ? 'm-slide-top' : 'm-slide-bottom'\n})\n\nconst actionLoading = ref(false)\nconst isActive = ref(false)\nconst queueTimer = ref<ReturnType<typeof setTimeout>>()\n\nconst containerClassName = `m-toast-container m-reset-css --${positionY.value} --${positionX.value}`\nconst selectorContainerClass = `.${containerClassName.replaceAll(' ', '.')}`\n\nconst timer = useTimer({\n callback: closeToast,\n timeout: typeof props.timeout === 'number' ? props.timeout : 0,\n callbackOffsetTime: 200,\n})\n\nfunction createParents() {\n const container = document.querySelector(selectorContainerClass)\n\n if (container)\n return\n\n if (!container) {\n const body = document.body\n const toCreate = document.createElement('div')\n toCreate.className = containerClassName\n body.append(toCreate)\n }\n}\n\nfunction shouldQueue() {\n const container = document.querySelector(selectorContainerClass)\n\n if (!props.queue && props.maxToasts === false) {\n return false\n }\n\n if (typeof props.maxToasts === 'number' && container) {\n return props.maxToasts <= container.childElementCount\n }\n\n return container && container.childElementCount > 0\n}\n\nfunction showNotice() {\n if (shouldQueue()) {\n queueTimer.value = setTimeout(showNotice, 250)\n return\n }\n\n const container = document.querySelector(selectorContainerClass)\n\n if (Toaster.value && container) {\n container.prepend(Toaster.value)\n }\n\n isActive.value = true\n\n if (typeof props.timeout === 'number' && props.timeout > 0) {\n timer.start()\n }\n}\n\nconst progressBarWidth = ref<string>('100%')\n\nfunction getProgressBarColor() {\n switch (props.type) {\n case 'danger': {\n return 'maz-bg-danger-700'\n }\n case 'info': {\n return 'maz-bg-info-700'\n }\n case 'success': {\n return 'maz-bg-success-700'\n }\n case 'warning': {\n return 'maz-bg-warning-700'\n }\n default: {\n return 'maz-bg-primary'\n }\n }\n}\n\nwatch(\n timer.remainingTime,\n (remainingTime) => {\n if (typeof props.timeout === 'number') {\n const percent = (100 * remainingTime) / props.timeout\n progressBarWidth.value = `${percent}%`\n }\n },\n)\n\nfunction click(event: Event) {\n emits('click', event)\n\n if (!props.persistent) {\n closeToast()\n }\n}\n\nasync function clickOnAction(func: ToasterAction['func'], event: Event) {\n actionLoading.value = true\n await func()\n actionLoading.value = false\n if (props.action?.closeToast) {\n click(event)\n }\n}\n\nfunction toggleTimer(shouldPause: boolean) {\n if (props.noPauseOnHover) {\n return\n }\n\n if (shouldPause) {\n timer.pause()\n }\n else {\n timer.resume()\n }\n}\n\nfunction stopTimer() {\n timer.stop()\n if (queueTimer.value) {\n clearTimeout(queueTimer.value)\n }\n}\n\nfunction closeToast() {\n stopTimer()\n isActive.value = false\n}\n\ndefineExpose({ closeToast })\n\nfunction onAnimationEnter() {\n emits('open')\n}\n\nfunction onAnimationLeave() {\n emits('close')\n Toaster.value?.remove()\n\n const container = document.querySelector(selectorContainerClass)\n if (container && !container?.hasChildNodes()) {\n container.remove()\n }\n}\n\nonMounted(() => {\n createParents()\n showNotice()\n})\n</script>\n\n<template>\n <Transition\n :name=\"transitionName\"\n @after-leave=\"onAnimationLeave\"\n @after-enter=\"onAnimationEnter\"\n >\n <!-- eslint-disable vuejs-accessibility/mouse-events-have-key-events -->\n <button\n v-show=\"isActive\"\n ref=\"Toaster\"\n class=\"m-toast m-reset-css\"\n :class=\"[\n `--${type}`,\n `--${positionY}`,\n `--${positionX}`,\n { 'maz-pb-1': typeof timeout === 'number' && timeout > 0, '--persistent': persistent },\n ]\"\n role=\"alert\"\n @mouseover=\"toggleTimer(true)\"\n @mouseleave=\"toggleTimer(false)\"\n @click.stop=\"link && !link?.closeToast ? undefined : click($event)\"\n >\n <Component :is=\"iconComponent\" v-if=\"iconComponent\" class=\"maz-text-2xl\" />\n\n <div class=\"m-toast__message-wrapper\">\n <p class=\"m-toast__message\">\n {{ message }}\n </p>\n </div>\n\n <MazBtn\n v-if=\"action\"\n data-test=\"action-btn\"\n :color=\"type\"\n pastel\n :loading=\"actionLoading\"\n size=\"sm\"\n @click.stop=\"action ? clickOnAction(action.func, $event) : undefined\"\n >\n {{ action.text }}\n </MazBtn>\n <MazBtn\n v-if=\"link\"\n data-test=\"link-btn\"\n :color=\"type\"\n pastel\n size=\"xs\"\n :href=\"link.href\"\n :target=\"link.target ?? '_self'\"\n >\n <div class=\"maz-flex maz-items-center maz-gap-2\">\n <span v-if=\"link.text\"> {{ link.text }} </span>\n\n <ExternalLink v-if=\"link?.target === '_blank'\" class=\"maz-text-xl\" />\n <Link v-else class=\"maz-text-xl\" />\n </div>\n </MazBtn>\n\n <button v-if=\"!persistent\" class=\"--close\" @click.stop=\"click($event)\">\n <XIcon class=\"--icon maz-text-xl\" />\n </button>\n\n <div\n v-if=\"typeof timeout === 'number' && timeout > 0\"\n class=\"progress-bar maz-absolute maz-inset-x-0 maz-bottom-0 maz-h-1\"\n >\n <div\n :style=\"{\n width: progressBarWidth,\n }\"\n class=\"maz-h-full !maz-transition-all !maz-duration-200 !maz-ease-linear\"\n :class=\"getProgressBarColor()\"\n />\n </div>\n </button>\n <!-- eslint-enable vuejs-accessibility/mouse-events-have-key-events -->\n </Transition>\n</template>\n\n<style lang=\"postcss\">\n.m-toast-container {\n @apply maz-fixed maz-flex maz-flex-col maz-gap-2 maz-p-4;\n\n z-index: 1051;\n\n &.--top {\n @apply maz-top-0 maz-flex;\n }\n\n &.--center {\n @apply maz-w-full tab-m:maz-fixed tab-m:maz-left-2/4 tab-m:maz-w-auto;\n\n @screen tab-m {\n transform: translate(-50%, 0);\n }\n }\n\n &.--bottom {\n @apply maz-bottom-0 maz-flex maz-flex-col-reverse;\n\n & > :not([hidden]) ~ :not([hidden]) {\n @apply maz-my-2;\n }\n }\n\n &.--right {\n @apply maz-right-0 maz-w-full tab-m:maz-w-auto;\n }\n\n &.--left {\n @apply maz-left-0 maz-w-full tab-m:maz-w-auto;\n }\n}\n</style>\n\n<style lang=\"postcss\" scoped>\n .m-toast {\n box-sizing: border-box;\n\n & * {\n box-sizing: border-box;\n }\n\n @apply maz-relative maz-flex maz-w-full maz-cursor-default maz-items-center maz-gap-2 maz-self-center maz-overflow-hidden maz-rounded maz-pl-2 maz-pr-2 maz-shadow-md maz-transition maz-duration-300 maz-ease-in-out;\n\n &:not(.--persistent) {\n @apply maz-cursor-pointer;\n }\n\n &.--left,\n &.--right {\n @apply tab-m:maz-w-[22rem];\n }\n\n &.--center {\n @apply tab-m:maz-w-[22rem] tab-m:maz-justify-center;\n }\n\n &__message-wrapper {\n @apply maz-flex-1 maz-py-3;\n }\n\n &__message {\n @apply maz-m-0 maz-text-start maz-font-medium;\n }\n\n & .--close {\n @apply maz-flex maz-h-9 maz-w-9 maz-rounded maz-bg-transparent maz-p-0 maz-flex-center hover:maz-bg-gray-900/20;\n\n & .--icon {\n @apply maz-cursor-pointer;\n }\n }\n\n &.--info {\n @apply maz-bg-info maz-text-info-contrast;\n\n &:not(.--persistent) {\n @apply hover:maz-bg-info-400;\n }\n }\n\n &.--success {\n @apply maz-bg-success maz-text-success-contrast;\n\n &:not(.--persistent) {\n @apply hover:maz-bg-success-400;\n }\n }\n\n &.--warning {\n @apply maz-bg-warning maz-text-warning-contrast;\n\n &:not(.--persistent) {\n @apply hover:maz-bg-warning-400;\n }\n }\n\n &.--danger {\n @apply maz-bg-danger maz-text-danger-contrast;\n\n &:not(.--persistent) {\n @apply hover:maz-bg-danger-400;\n }\n }\n\n &.--theme {\n @apply maz-bg-color maz-text-normal dark:maz-border dark:maz-border-solid dark:maz-border-color-lighter;\n\n &:not(.--persistent) {\n @apply hover:maz-bg-color-light;\n }\n }\n}\n\n.m-slide-top-enter-active,\n.m-slide-top-leave-active {\n opacity: 1;\n transition: all 300ms;\n transform: translateY(0);\n}\n\n.m-slide-top-enter-from,\n.m-slide-top-leave-to {\n opacity: 0;\n transform: translateY(-100%);\n}\n\n.m-slide-bottom-enter-active,\n.m-slide-bottom-leave-active {\n opacity: 1;\n transition: all 300ms;\n transform: translateY(0);\n}\n\n.m-slide-bottom-enter-from,\n.m-slide-bottom-leave-to {\n opacity: 0;\n transform: translateY(100%);\n}\n\n.m-slide-right-enter-active,\n.m-slide-right-leave-active {\n opacity: 1;\n transition: all 300ms;\n transform: translateX(0);\n}\n\n.m-slide-right-enter-from,\n.m-slide-right-leave-to {\n opacity: 0;\n transform: translateX(100%);\n}\n\n.m-slide-left-enter-active,\n.m-slide-left-leave-active {\n opacity: 1;\n transition: all 300ms;\n transform: translateX(0);\n}\n\n.m-slide-left-enter-from,\n.m-slide-left-leave-to {\n opacity: 0;\n transform: translateX(-100%);\n}\n</style>\n","import type { App } from 'vue'\nimport type { ToasterOptions } from './types'\nimport { mount } from '@helpers/mountComponent'\nimport MazToast, { type Props } from './MazToast.vue'\n\nexport interface LocalToasterOptions extends ToasterOptions {\n type: 'success' | 'info' | 'warning' | 'danger' | 'theme'\n}\n\nconst DEFAULT_OPTIONS: ToasterOptions = {\n position: 'bottom-right',\n timeout: 10_000,\n persistent: false,\n icon: true,\n}\n\nexport class ToasterHandler {\n constructor(\n private readonly app: App,\n private readonly globalOptions?: ToasterOptions,\n ) {}\n\n private show(message: string, options: LocalToasterOptions) {\n const propsData: Props = {\n ...DEFAULT_OPTIONS,\n ...this.globalOptions,\n ...options,\n message,\n }\n\n const { destroy, vNode } = mount<typeof MazToast, Props>(MazToast, {\n props: propsData,\n app: this.app,\n })\n\n return {\n destroy,\n close: () => vNode.component?.exposed?.closeToast(),\n }\n }\n\n private getLocalOptions(\n type: LocalToasterOptions['type'],\n options?: ToasterOptions,\n ): LocalToasterOptions {\n return {\n type,\n ...options,\n }\n }\n\n message(message: string, options?: ToasterOptions) {\n return this.show(message, this.getLocalOptions('theme', options))\n }\n\n success(message: string, options?: ToasterOptions) {\n return this.show(message, this.getLocalOptions('success', options))\n }\n\n error(message: string, options?: ToasterOptions) {\n return this.show(message, this.getLocalOptions('danger', options))\n }\n\n info(message: string, options?: ToasterOptions) {\n return this.show(message, this.getLocalOptions('info', options))\n }\n\n warning(message: string, options?: ToasterOptions) {\n return this.show(message, this.getLocalOptions('warning', options))\n }\n}\n","import type { App } from 'vue'\nimport type { ToasterOptions } from './toaster/types'\nimport { ToasterHandler } from './toaster/ToasterHandler'\n\nexport function createToaster(app: App, options?: ToasterOptions): ToasterHandler {\n return new ToasterHandler(app, options)\n}\n\nexport const installToaster = {\n install(app: App, options?: ToasterOptions) {\n app.provide('toast', createToaster(app, options))\n },\n}\n\nexport { ToasterHandler } from './toaster/ToasterHandler'\nexport type { ToasterOptions, ToasterPosition, ToasterPositions } from './toaster/types'\n"],"names":["props","__props","emits","__emit","XIcon","defineAsyncComponent","ExternalLink","ExclamationTriangle","ExclamationCircle","InformationCircle","CheckCircle","Link","Toaster","ref","iconComponent","computed","positionY","positionX","transitionName","actionLoading","isActive","queueTimer","containerClassName","selectorContainerClass","timer","useTimer","closeToast","createParents","container","body","toCreate","shouldQueue","showNotice","progressBarWidth","getProgressBarColor","watch","remainingTime","percent","click","event","clickOnAction","func","_a","toggleTimer","shouldPause","stopTimer","__expose","onAnimationEnter","onAnimationLeave","onMounted","DEFAULT_OPTIONS","ToasterHandler","app","globalOptions","message","options","propsData","destroy","vNode","mount","MazToast","_b","type","createToaster","installToaster"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"toaster.mjs","sources":["../../src/plugins/toaster/MazToast.vue","../../src/plugins/toaster/ToasterHandler.ts","../../src/plugins/toaster.ts"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { LocalToasterOptions } from './ToasterHandler'\nimport type { ToasterAction, ToasterLink, ToasterPosition } from './types'\nimport { computed, defineAsyncComponent, onMounted, ref, watch } from 'vue'\nimport MazBtn from '../../components/MazBtn.vue'\nimport { useTimer } from '../../composables/useTimer'\n\nconst props = withDefaults(defineProps<Props>(), {\n position: 'bottom-right',\n maxToasts: false,\n timeout: 10_000,\n type: 'info',\n message: undefined,\n link: undefined,\n action: undefined,\n icon: true,\n})\n\nconst emits = defineEmits(['close', 'click', 'open'])\n\nconst XIcon = defineAsyncComponent(() => import('../../../icons/x-mark.svg'))\nconst ExternalLink = defineAsyncComponent(() => import('../../../icons/arrow-top-right-on-square.svg'))\nconst ExclamationTriangle = defineAsyncComponent(() => import('../../../icons/exclamation-triangle.svg'))\nconst ExclamationCircle = defineAsyncComponent(() => import('../../../icons/exclamation-circle.svg'))\nconst InformationCircle = defineAsyncComponent(() => import('../../../icons/information-circle.svg'))\nconst CheckCircle = defineAsyncComponent(() => import('../../../icons/check-circle.svg'))\nconst Link = defineAsyncComponent(() => import('../../../icons/link.svg'))\n\nconst Toaster = ref<HTMLDivElement>()\n\nexport interface Props {\n message: string\n position?: ToasterPosition\n maxToasts?: number | boolean\n timeout?: number | boolean\n queue?: boolean\n noPauseOnHover?: boolean\n type?: LocalToasterOptions['type']\n link?: ToasterLink\n action?: ToasterAction\n persistent?: boolean\n icon?: boolean\n}\n\nconst iconComponent = computed(() => {\n if (!props.icon)\n return undefined\n\n switch (props.type) {\n case 'danger': {\n return ExclamationTriangle\n }\n case 'info': {\n return InformationCircle\n }\n case 'success': {\n return CheckCircle\n }\n case 'warning': {\n return ExclamationCircle\n }\n default: {\n return undefined\n }\n }\n})\n\nconst positionY = computed(() => (props.position.includes('top') ? 'top' : 'bottom'))\nconst positionX = computed(() => {\n if (props.position.includes('left'))\n return 'left'\n if (props.position.includes('right'))\n return 'right'\n return 'center'\n})\n\nconst transitionName = computed(() => {\n if (positionX.value !== 'center') {\n return positionX.value === 'right' ? 'm-slide-right' : 'm-slide-left'\n }\n return positionY.value === 'top' ? 'm-slide-top' : 'm-slide-bottom'\n})\n\nconst actionLoading = ref(false)\nconst isActive = ref(false)\nconst queueTimer = ref<ReturnType<typeof setTimeout>>()\n\nconst containerClassName = `m-toast-container m-reset-css --${positionY.value} --${positionX.value}`\nconst selectorContainerClass = `.${containerClassName.replaceAll(' ', '.')}`\n\nconst timer = useTimer({\n callback: closeToast,\n timeout: typeof props.timeout === 'number' ? props.timeout : 0,\n callbackOffsetTime: 200,\n})\n\nfunction createParents() {\n const container = document.querySelector(selectorContainerClass)\n\n if (container)\n return\n\n if (!container) {\n const body = document.body\n const toCreate = document.createElement('div')\n toCreate.className = containerClassName\n body.append(toCreate)\n }\n}\n\nfunction shouldQueue() {\n const container = document.querySelector(selectorContainerClass)\n\n if (!props.queue && props.maxToasts === false) {\n return false\n }\n\n if (typeof props.maxToasts === 'number' && container) {\n return props.maxToasts <= container.childElementCount\n }\n\n return container && container.childElementCount > 0\n}\n\nfunction showNotice() {\n if (shouldQueue()) {\n queueTimer.value = setTimeout(showNotice, 250)\n return\n }\n\n const container = document.querySelector(selectorContainerClass)\n\n if (Toaster.value && container) {\n container.prepend(Toaster.value)\n }\n\n isActive.value = true\n\n if (typeof props.timeout === 'number' && props.timeout > 0) {\n timer.start()\n }\n}\n\nconst progressBarWidth = ref<string>('100%')\n\nfunction getProgressBarColor() {\n switch (props.type) {\n case 'danger': {\n return 'maz-bg-danger-700'\n }\n case 'info': {\n return 'maz-bg-info-700'\n }\n case 'success': {\n return 'maz-bg-success-700'\n }\n case 'warning': {\n return 'maz-bg-warning-700'\n }\n default: {\n return 'maz-bg-primary'\n }\n }\n}\n\nwatch(\n timer.remainingTime,\n (remainingTime) => {\n if (typeof props.timeout === 'number') {\n const percent = (100 * remainingTime) / props.timeout\n progressBarWidth.value = `${percent}%`\n }\n },\n)\n\nfunction click(event: Event) {\n emits('click', event)\n\n if (!props.persistent) {\n closeToast()\n }\n}\n\nasync function clickOnAction(func: ToasterAction['func'], event: Event) {\n actionLoading.value = true\n await func()\n actionLoading.value = false\n if (props.action?.closeToast) {\n click(event)\n }\n}\n\nfunction toggleTimer(shouldPause: boolean) {\n if (props.noPauseOnHover) {\n return\n }\n\n if (shouldPause) {\n timer.pause()\n }\n else {\n timer.resume()\n }\n}\n\nfunction stopTimer() {\n timer.stop()\n if (queueTimer.value) {\n clearTimeout(queueTimer.value)\n }\n}\n\nfunction closeToast() {\n stopTimer()\n isActive.value = false\n}\n\ndefineExpose({ closeToast })\n\nfunction onAnimationEnter() {\n emits('open')\n}\n\nfunction onAnimationLeave() {\n emits('close')\n Toaster.value?.remove()\n\n const container = document.querySelector(selectorContainerClass)\n if (container && !container?.hasChildNodes()) {\n container.remove()\n }\n}\n\nonMounted(() => {\n createParents()\n showNotice()\n})\n</script>\n\n<template>\n <Transition\n :name=\"transitionName\"\n @after-leave=\"onAnimationLeave\"\n @after-enter=\"onAnimationEnter\"\n >\n <!-- eslint-disable vuejs-accessibility/mouse-events-have-key-events -->\n <button\n v-show=\"isActive\"\n ref=\"Toaster\"\n class=\"m-toast m-reset-css\"\n :class=\"[\n `--${type}`,\n `--${positionY}`,\n `--${positionX}`,\n { 'maz-pb-1': typeof timeout === 'number' && timeout > 0, '--persistent': persistent },\n ]\"\n role=\"alert\"\n @mouseover=\"toggleTimer(true)\"\n @mouseleave=\"toggleTimer(false)\"\n @click.stop=\"link && !link?.closeToast ? undefined : click($event)\"\n >\n <Component :is=\"iconComponent\" v-if=\"iconComponent\" class=\"maz-text-2xl\" />\n\n <div class=\"m-toast__message-wrapper\">\n <p class=\"m-toast__message\">\n {{ message }}\n </p>\n </div>\n\n <MazBtn\n v-if=\"action\"\n data-test=\"action-btn\"\n :color=\"type\"\n pastel\n :loading=\"actionLoading\"\n size=\"sm\"\n @click.stop=\"action ? clickOnAction(action.func, $event) : undefined\"\n >\n {{ action.text }}\n </MazBtn>\n <MazBtn\n v-if=\"link\"\n data-test=\"link-btn\"\n :color=\"type\"\n pastel\n size=\"xs\"\n :href=\"link.href\"\n :target=\"link.target ?? '_self'\"\n >\n <div class=\"maz-flex maz-items-center maz-gap-2\">\n <span v-if=\"link.text\"> {{ link.text }} </span>\n\n <ExternalLink v-if=\"link?.target === '_blank'\" class=\"maz-text-xl\" />\n <Link v-else class=\"maz-text-xl\" />\n </div>\n </MazBtn>\n\n <button v-if=\"!persistent\" class=\"--close\" @click.stop=\"click($event)\">\n <XIcon class=\"--icon maz-text-xl\" />\n </button>\n\n <div\n v-if=\"typeof timeout === 'number' && timeout > 0\"\n class=\"progress-bar maz-absolute maz-inset-x-0 maz-bottom-0 maz-h-1\"\n >\n <div\n :style=\"{\n width: progressBarWidth,\n }\"\n class=\"maz-h-full !maz-transition-all !maz-duration-200 !maz-ease-linear\"\n :class=\"getProgressBarColor()\"\n />\n </div>\n </button>\n <!-- eslint-enable vuejs-accessibility/mouse-events-have-key-events -->\n </Transition>\n</template>\n\n<style lang=\"postcss\">\n.m-toast-container {\n @apply maz-fixed maz-flex maz-flex-col maz-gap-2 maz-p-4;\n\n z-index: 1051;\n\n &.--top {\n @apply maz-top-0 maz-flex;\n }\n\n &.--center {\n @apply maz-w-full tab-m:maz-fixed tab-m:maz-left-2/4 tab-m:maz-w-auto;\n\n @screen tab-m {\n transform: translate(-50%, 0);\n }\n }\n\n &.--bottom {\n @apply maz-bottom-0 maz-flex maz-flex-col-reverse;\n\n & > :not([hidden]) ~ :not([hidden]) {\n @apply maz-my-2;\n }\n }\n\n &.--right {\n @apply maz-right-0 maz-w-full tab-m:maz-w-auto;\n }\n\n &.--left {\n @apply maz-left-0 maz-w-full tab-m:maz-w-auto;\n }\n}\n</style>\n\n<style lang=\"postcss\" scoped>\n .m-toast {\n box-sizing: border-box;\n\n & * {\n box-sizing: border-box;\n }\n\n @apply maz-relative maz-flex maz-w-full maz-cursor-default maz-items-center maz-gap-2 maz-self-center maz-overflow-hidden maz-rounded maz-pl-2 maz-pr-2 maz-shadow-md maz-transition maz-duration-300 maz-ease-in-out;\n\n &:not(.--persistent) {\n @apply maz-cursor-pointer;\n }\n\n &.--left,\n &.--right {\n @apply tab-m:maz-w-[22rem];\n }\n\n &.--center {\n @apply tab-m:maz-w-[22rem] tab-m:maz-justify-center;\n }\n\n &__message-wrapper {\n @apply maz-flex-1 maz-py-3;\n }\n\n &__message {\n @apply maz-m-0 maz-text-start maz-font-medium;\n }\n\n & .--close {\n @apply maz-flex maz-h-9 maz-w-9 maz-rounded maz-bg-transparent maz-p-0 maz-flex-center hover:maz-bg-gray-900/20;\n\n & .--icon {\n @apply maz-cursor-pointer;\n }\n }\n\n &.--info {\n @apply maz-bg-info maz-text-info-contrast;\n\n &:not(.--persistent) {\n @apply hover:maz-bg-info-400;\n }\n }\n\n &.--success {\n @apply maz-bg-success maz-text-success-contrast;\n\n &:not(.--persistent) {\n @apply hover:maz-bg-success-400;\n }\n }\n\n &.--warning {\n @apply maz-bg-warning maz-text-warning-contrast;\n\n &:not(.--persistent) {\n @apply hover:maz-bg-warning-400;\n }\n }\n\n &.--danger {\n @apply maz-bg-danger maz-text-danger-contrast;\n\n &:not(.--persistent) {\n @apply hover:maz-bg-danger-400;\n }\n }\n\n &.--theme {\n @apply maz-bg-color maz-text-normal dark:maz-border dark:maz-border-solid dark:maz-border-color-lighter;\n\n &:not(.--persistent) {\n @apply hover:maz-bg-color-light;\n }\n }\n}\n\n.m-slide-top-enter-active,\n.m-slide-top-leave-active {\n opacity: 1;\n transition: all 300ms;\n transform: translateY(0);\n}\n\n.m-slide-top-enter-from,\n.m-slide-top-leave-to {\n opacity: 0;\n transform: translateY(-100%);\n}\n\n.m-slide-bottom-enter-active,\n.m-slide-bottom-leave-active {\n opacity: 1;\n transition: all 300ms;\n transform: translateY(0);\n}\n\n.m-slide-bottom-enter-from,\n.m-slide-bottom-leave-to {\n opacity: 0;\n transform: translateY(100%);\n}\n\n.m-slide-right-enter-active,\n.m-slide-right-leave-active {\n opacity: 1;\n transition: all 300ms;\n transform: translateX(0);\n}\n\n.m-slide-right-enter-from,\n.m-slide-right-leave-to {\n opacity: 0;\n transform: translateX(100%);\n}\n\n.m-slide-left-enter-active,\n.m-slide-left-leave-active {\n opacity: 1;\n transition: all 300ms;\n transform: translateX(0);\n}\n\n.m-slide-left-enter-from,\n.m-slide-left-leave-to {\n opacity: 0;\n transform: translateX(-100%);\n}\n</style>\n","import type { App } from 'vue'\nimport type { ToasterOptions } from './types'\nimport { mount } from './../../helpers/mountComponent'\nimport MazToast, { type Props } from './MazToast.vue'\n\nexport interface LocalToasterOptions extends ToasterOptions {\n type: 'success' | 'info' | 'warning' | 'danger' | 'theme'\n}\n\nconst DEFAULT_OPTIONS: ToasterOptions = {\n position: 'bottom-right',\n timeout: 10_000,\n persistent: false,\n icon: true,\n}\n\nexport class ToasterHandler {\n constructor(\n private readonly app: App,\n private readonly globalOptions?: ToasterOptions,\n ) {}\n\n private show(message: string, options: LocalToasterOptions) {\n const propsData: Props = {\n ...DEFAULT_OPTIONS,\n ...this.globalOptions,\n ...options,\n message,\n }\n\n const { destroy, vNode } = mount<typeof MazToast, Props>(MazToast, {\n props: propsData,\n app: this.app,\n })\n\n return {\n destroy,\n close: () => vNode.component?.exposed?.closeToast(),\n }\n }\n\n private getLocalOptions(\n type: LocalToasterOptions['type'],\n options?: ToasterOptions,\n ): LocalToasterOptions {\n return {\n type,\n ...options,\n }\n }\n\n message(message: string, options?: ToasterOptions) {\n return this.show(message, this.getLocalOptions('theme', options))\n }\n\n success(message: string, options?: ToasterOptions) {\n return this.show(message, this.getLocalOptions('success', options))\n }\n\n error(message: string, options?: ToasterOptions) {\n return this.show(message, this.getLocalOptions('danger', options))\n }\n\n info(message: string, options?: ToasterOptions) {\n return this.show(message, this.getLocalOptions('info', options))\n }\n\n warning(message: string, options?: ToasterOptions) {\n return this.show(message, this.getLocalOptions('warning', options))\n }\n}\n","import type { App } from 'vue'\nimport type { ToasterOptions } from './toaster/types'\nimport { ToasterHandler } from './toaster/ToasterHandler'\n\nexport function createToaster(app: App, options?: ToasterOptions): ToasterHandler {\n return new ToasterHandler(app, options)\n}\n\nexport const installToaster = {\n install(app: App, options?: ToasterOptions) {\n app.provide('toast', createToaster(app, options))\n },\n}\n\nexport { ToasterHandler } from './toaster/ToasterHandler'\nexport type { ToasterOptions, ToasterPosition, ToasterPositions } from './toaster/types'\n"],"names":["props","__props","emits","__emit","XIcon","defineAsyncComponent","ExternalLink","ExclamationTriangle","ExclamationCircle","InformationCircle","CheckCircle","Link","Toaster","ref","iconComponent","computed","positionY","positionX","transitionName","actionLoading","isActive","queueTimer","containerClassName","selectorContainerClass","timer","useTimer","closeToast","createParents","container","body","toCreate","shouldQueue","showNotice","progressBarWidth","getProgressBarColor","watch","remainingTime","percent","click","event","clickOnAction","func","_a","toggleTimer","shouldPause","stopTimer","__expose","onAnimationEnter","onAnimationLeave","onMounted","DEFAULT_OPTIONS","ToasterHandler","app","globalOptions","message","options","propsData","destroy","vNode","mount","MazToast","_b","type","createToaster","installToaster"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UnpluginVueComponentsResolver.cjs","sources":["../../src/resolvers/UnpluginVueComponentsResolver.ts"],"sourcesContent":["/* eslint-disable regexp/no-unused-capturing-group */\n\nimport type { ComponentResolver } from 'unplugin-vue-components/types'\nimport { pascalCase } from '
|
|
1
|
+
{"version":3,"file":"UnpluginVueComponentsResolver.cjs","sources":["../../src/resolvers/UnpluginVueComponentsResolver.ts"],"sourcesContent":["/* eslint-disable regexp/no-unused-capturing-group */\n\nimport type { ComponentResolver } from 'unplugin-vue-components/types'\nimport { pascalCase } from '../filters/pascalCase'\n\n/**\n * Resolver for Maz-UI (components)\n *\n * @author @louismazel\n * @link https://maz-ui.com\n */\nexport function UnpluginVueComponentsResolver(): ComponentResolver {\n return {\n type: 'component',\n resolve: (name: string) => {\n if (/^(Maz[A-Z])/.test(name))\n return { from: `maz-ui`, name }\n else if (/^(maz-[a-z])/.test(name))\n return { from: `maz-ui`, name: pascalCase(name) }\n },\n }\n}\n"],"names":["UnpluginVueComponentsResolver","name","pascalCase"],"mappings":"6HAWO,SAASA,GAAmD,CAC1D,MAAA,CACL,KAAM,YACN,QAAUC,GAAiB,CACrB,GAAA,cAAc,KAAKA,CAAI,EAClB,MAAA,CAAE,KAAM,SAAU,KAAAA,CAAK,EACvB,GAAA,eAAe,KAAKA,CAAI,EAC/B,MAAO,CAAE,KAAM,SAAU,KAAMC,EAAAA,WAAWD,CAAI,CAAE,CAAA,CAEtD,CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UnpluginVueComponentsResolver.mjs","sources":["../../src/resolvers/UnpluginVueComponentsResolver.ts"],"sourcesContent":["/* eslint-disable regexp/no-unused-capturing-group */\n\nimport type { ComponentResolver } from 'unplugin-vue-components/types'\nimport { pascalCase } from '
|
|
1
|
+
{"version":3,"file":"UnpluginVueComponentsResolver.mjs","sources":["../../src/resolvers/UnpluginVueComponentsResolver.ts"],"sourcesContent":["/* eslint-disable regexp/no-unused-capturing-group */\n\nimport type { ComponentResolver } from 'unplugin-vue-components/types'\nimport { pascalCase } from '../filters/pascalCase'\n\n/**\n * Resolver for Maz-UI (components)\n *\n * @author @louismazel\n * @link https://maz-ui.com\n */\nexport function UnpluginVueComponentsResolver(): ComponentResolver {\n return {\n type: 'component',\n resolve: (name: string) => {\n if (/^(Maz[A-Z])/.test(name))\n return { from: `maz-ui`, name }\n else if (/^(maz-[a-z])/.test(name))\n return { from: `maz-ui`, name: pascalCase(name) }\n },\n }\n}\n"],"names":["UnpluginVueComponentsResolver","name","pascalCase"],"mappings":";AAWO,SAASA,IAAmD;AAC1D,SAAA;AAAA,IACL,MAAM;AAAA,IACN,SAAS,CAACC,MAAiB;AACrB,UAAA,cAAc,KAAKA,CAAI;AAClB,eAAA,EAAE,MAAM,UAAU,MAAAA,EAAK;AACvB,UAAA,eAAe,KAAKA,CAAI;AAC/B,eAAO,EAAE,MAAM,UAAU,MAAMC,EAAWD,CAAI,EAAE;AAAA,IAAA;AAAA,EAEtD;AACF;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import { RouteLocationRaw } from 'vue-router';
|
|
1
2
|
import { MazLinkProps } from './MazLink.vue';
|
|
2
3
|
import { Color, Icon, Position, Size } from './types';
|
|
3
|
-
import { RouteLocationRaw } from 'vue-router';
|
|
4
4
|
import { HTMLAttributes } from 'vue';
|
|
5
5
|
type ItemBase = Record<string, unknown> & {
|
|
6
6
|
label: string;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { MazInputPhoneNumberTranslations } from './types';
|
|
2
|
-
import { Color, Position, Size } from '../types';
|
|
3
1
|
import { CountryCode } from 'libphonenumber-js';
|
|
2
|
+
import { Color, Position, Size } from './../types';
|
|
3
|
+
import { MazInputPhoneNumberTranslations } from './types';
|
|
4
4
|
import { HTMLAttributes } from 'vue';
|
|
5
5
|
declare function __VLS_template(): {
|
|
6
6
|
slots: {
|
|
@@ -10,7 +10,7 @@ declare function __VLS_template(): {
|
|
|
10
10
|
"no-results"?(_: {}): any;
|
|
11
11
|
"country-list-flag"?(_: {
|
|
12
12
|
countryCode: string;
|
|
13
|
-
option: import('
|
|
13
|
+
option: import('..').NormalizedOption;
|
|
14
14
|
isSelected: boolean;
|
|
15
15
|
}): any;
|
|
16
16
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { defaultLocales } from './default-locales';
|
|
2
1
|
import { CountryCallingCode, CountryCode, NationalNumber, NumberType } from 'libphonenumber-js';
|
|
2
|
+
import { defaultLocales } from './default-locales';
|
|
3
3
|
export interface Results {
|
|
4
4
|
isValid: boolean;
|
|
5
5
|
isPossible?: boolean;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import { CountryCode } from 'libphonenumber-js';
|
|
1
2
|
import { MazInputPhoneNumberTranslations, Results } from './MazInputPhoneNumber/types';
|
|
2
3
|
import { Color, Position, Size } from './types';
|
|
3
|
-
import { CountryCode } from 'libphonenumber-js';
|
|
4
4
|
import { HTMLAttributes } from 'vue';
|
|
5
5
|
export interface MazInputPhoneNumberProps {
|
|
6
6
|
/** Style attribut of the component root element */
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { PickerShortcut, PickerValue } from './types';
|
|
2
1
|
import { Color } from '../types';
|
|
2
|
+
import { PickerShortcut, PickerValue } from './types';
|
|
3
3
|
import { PropType } from 'vue';
|
|
4
4
|
declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
|
|
5
5
|
modelValue: {
|
package/dist/types/components/MazPicker/MazPickerCalendarMonth/MazPickerCalendarGrid.vue.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { PickerValue } from '../types';
|
|
2
1
|
import { Color } from '../../types';
|
|
2
|
+
import { PickerValue } from '../types';
|
|
3
3
|
import { default as dayjs, Dayjs } from 'dayjs';
|
|
4
4
|
import { PropType } from 'vue';
|
|
5
5
|
declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
|
package/dist/types/components/MazPicker/MazPickerCalendarMonth/MazPickerCalendarMonth.vue.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { PickerValue } from '../types';
|
|
2
1
|
import { Color } from '../../types';
|
|
2
|
+
import { PickerValue } from '../types';
|
|
3
3
|
import { default as dayjs, Dayjs } from 'dayjs';
|
|
4
4
|
import { PropType } from 'vue';
|
|
5
5
|
declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import { Color } from '../types';
|
|
1
2
|
import { PickerShortcut, PickerValue } from './types';
|
|
2
3
|
import { DateTimeFormatOptions } from './utils';
|
|
3
|
-
import { Color } from '../types';
|
|
4
4
|
import { PropType } from 'vue';
|
|
5
5
|
declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
|
|
6
6
|
modelValue: {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import { Color } from '../types';
|
|
1
2
|
import { PickerValue } from './types';
|
|
2
3
|
import { DateTimeFormatOptions } from './utils';
|
|
3
|
-
import { Color } from '../types';
|
|
4
4
|
import { PropType } from 'vue';
|
|
5
5
|
declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
|
|
6
6
|
modelValue: {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { PickerShortcut, PickerValue } from './types';
|
|
2
1
|
import { Color } from '../types';
|
|
2
|
+
import { PickerShortcut, PickerValue } from './types';
|
|
3
3
|
import { PropType } from 'vue';
|
|
4
4
|
declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
|
|
5
5
|
color: {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { PickerValue } from './types';
|
|
2
1
|
import { Color } from '../types';
|
|
3
|
-
import {
|
|
2
|
+
import { PickerValue } from './types';
|
|
4
3
|
import { PropType } from 'vue';
|
|
4
|
+
import { DateTimeFormatOptions } from './utils';
|
|
5
5
|
declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
|
|
6
6
|
modelValue: {
|
|
7
7
|
type: PropType<PickerValue>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { PartialRangeValue } from '
|
|
1
|
+
import { PartialRangeValue } from '../../components/MazPicker/types';
|
|
2
2
|
import { ConfigType, OpUnitType } from 'dayjs';
|
|
3
3
|
export type DateTimeFormatOptions = Pick<Intl.DateTimeFormatOptions, 'hour12' | 'dateStyle' | 'timeStyle' | 'timeZone'>;
|
|
4
4
|
export declare function getFormattedDate({ value, locale, options, }: {
|
|
@@ -100,7 +100,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
|
|
|
100
100
|
"onUpdate:model-value"?: ((...args: any[]) => any) | undefined;
|
|
101
101
|
}>, {
|
|
102
102
|
size: string;
|
|
103
|
-
color:
|
|
103
|
+
color: "primary" | "secondary" | "info" | "success" | "warning" | "danger" | "white" | "black" | "transparent" | "theme";
|
|
104
104
|
labels: unknown[];
|
|
105
105
|
max: number;
|
|
106
106
|
min: number;
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export declare const colors: Color[];
|
|
1
|
+
export declare const colors: readonly ["primary", "secondary", "info", "success", "warning", "danger", "white", "black", "transparent", "theme"];
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { Component, ComponentPublicInstance, FunctionalComponent, SVGAttributes } from 'vue';
|
|
2
|
+
import { colors } from './constantes';
|
|
2
3
|
export type ModelValueSimple = string | number | null | undefined | boolean;
|
|
3
4
|
export type MazGalleryImage = {
|
|
4
5
|
thumbnail?: string;
|
|
5
6
|
src: string;
|
|
6
7
|
alt?: string;
|
|
7
8
|
} | string;
|
|
8
|
-
export type Color =
|
|
9
|
+
export type Color = (typeof colors)[number];
|
|
9
10
|
export type Size = 'mini' | 'xs' | 'sm' | 'md' | 'lg' | 'xl';
|
|
10
11
|
export type Position = 'top' | 'top right' | 'top left' | 'bottom' | 'bottom right' | 'bottom left' | 'left' | 'right';
|
|
11
12
|
export interface Source {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { BaseFormPayload, ExtractModelKey, FormFieldOptions, FormSchema, ValidationIssues } from './useFormValidator/types';
|
|
2
1
|
import { ComputedRef, WritableComputedRef } from 'vue';
|
|
3
|
-
import {
|
|
2
|
+
import { BaseFormPayload, ExtractModelKey, FormFieldOptions, FormSchema, ValidationIssues } from '../composables/useFormValidator/types';
|
|
3
|
+
import { getValidationEvents } from '../composables/useFormValidator/utils';
|
|
4
4
|
interface UseFormFieldReturn<FieldType> {
|
|
5
5
|
/**
|
|
6
6
|
* Indicates if the field has an error
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { useFormValidator } from '.';
|
|
3
|
-
import { InferMaybeRef } from '../../ts-helpers/InferMaybeRef';
|
|
1
|
+
import { InferMaybeRef } from 'src/ts-helpers/InferMaybeRef';
|
|
4
2
|
import { BaseIssue, BaseSchema, BaseSchemaAsync, InferIssue, InferOutput, objectAsync, ObjectEntries, ObjectEntriesAsync } from 'valibot';
|
|
5
3
|
import { ComponentInternalInstance, InjectionKey, MaybeRef, Ref } from 'vue';
|
|
4
|
+
import { useFormField } from './../useFormField';
|
|
5
|
+
import { useFormValidator } from './../useFormValidator';
|
|
6
6
|
import { getValidateFunction } from './utils';
|
|
7
7
|
export type ValidationSync = BaseSchema<unknown, unknown, BaseIssue<unknown>>;
|
|
8
8
|
export type ValidationAsync = ValidationSync | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>;
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { BaseFormPayload, ExtractModelKey, FieldsStates, FormSchema, FormValidatorOptions, UseFormValidatorParams } from './useFormValidator/types';
|
|
2
1
|
import { Ref } from 'vue';
|
|
3
|
-
import {
|
|
2
|
+
import { BaseFormPayload, ExtractModelKey, FieldsStates, FormSchema, FormValidatorOptions, UseFormValidatorParams } from '../composables/useFormValidator/types';
|
|
3
|
+
import { scrollToError } from '../composables/useFormValidator/utils';
|
|
4
4
|
export declare function useFormValidator<Model extends BaseFormPayload>({ schema, defaultValues, model, options }: UseFormValidatorParams<Model>): {
|
|
5
5
|
identifier: string | symbol;
|
|
6
6
|
isDirty: import('vue').ComputedRef<boolean>;
|
|
7
7
|
isSubmitting: Ref<boolean, boolean>;
|
|
8
8
|
isSubmitted: Ref<boolean, boolean>;
|
|
9
9
|
isValid: import('vue').ComputedRef<boolean>;
|
|
10
|
-
errors: import('vue').ComputedRef<Record<ExtractModelKey<FormSchema<Model>>, import('
|
|
10
|
+
errors: import('vue').ComputedRef<Record<ExtractModelKey<FormSchema<Model>>, import('.').ValidationIssues>>;
|
|
11
11
|
model: Ref<Model, Model>;
|
|
12
12
|
fieldsStates: Ref<FieldsStates<Model>, FieldsStates<Model>>;
|
|
13
13
|
validateForm: (showErrors?: boolean) => Promise<void[]>;
|
|
@@ -12,4 +12,4 @@ declare const directive: {
|
|
|
12
12
|
declare const plugin: {
|
|
13
13
|
install: (app: import('vue').App<any>) => void;
|
|
14
14
|
};
|
|
15
|
-
export { directive as vClickOutside, vClickOutsideBindingValue, plugin as vClickOutsideInstall };
|
|
15
|
+
export { directive as vClickOutside, type vClickOutsideBindingValue, plugin as vClickOutsideInstall };
|
|
@@ -15,4 +15,4 @@ declare const directive: {
|
|
|
15
15
|
declare const plugin: {
|
|
16
16
|
install: (app: import('vue').App<any>) => void;
|
|
17
17
|
};
|
|
18
|
-
export { directive as vClosable, vClosableBindingValue, plugin as vClosableInstall };
|
|
18
|
+
export { directive as vClosable, type vClosableBindingValue, plugin as vClosableInstall };
|
|
@@ -3,4 +3,5 @@ declare const plugin: {
|
|
|
3
3
|
install(app: import('vue').App<any>, opts?: Partial<import('./vLazyImg/types').ClassOptions>): void;
|
|
4
4
|
};
|
|
5
5
|
export { vLazyImg } from './vLazyImg/lazy-img.directive';
|
|
6
|
-
export {
|
|
6
|
+
export { plugin as vLazyImgInstall };
|
|
7
|
+
export type { vLazyImgBindingValue, vLazyImgOptions };
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "maz-ui",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "4.0.0-alpha.
|
|
4
|
+
"version": "4.0.0-alpha.5",
|
|
5
5
|
"description": "A standalone components library for Vue.Js 3 & Nuxt.Js 3",
|
|
6
6
|
"author": "Louis Mazel <me@loicmazuel.com>",
|
|
7
7
|
"license": "MIT",
|
|
@@ -110,7 +110,7 @@
|
|
|
110
110
|
}
|
|
111
111
|
},
|
|
112
112
|
"dependencies": {
|
|
113
|
-
"@mazui/cli": "4.0.0-alpha.
|
|
113
|
+
"@mazui/cli": "4.0.0-alpha.5"
|
|
114
114
|
},
|
|
115
115
|
"devDependencies": {
|
|
116
116
|
"@babel/core": "^7.26.0",
|
|
@@ -189,9 +189,8 @@
|
|
|
189
189
|
"lint:nofix": "cross-env NODE_ENV=production eslint",
|
|
190
190
|
"lint:js": "pnpm lint:nofix --fix",
|
|
191
191
|
"lint:style": "stylelint --fix \"./**/*.{vue,css,scss,postcss,pcss,html}\"",
|
|
192
|
-
"build": "pnpm typecheck && pnpm build:
|
|
192
|
+
"build": "pnpm typecheck && pnpm build:only",
|
|
193
193
|
"build:only": "vite build",
|
|
194
|
-
"build:lib": "node --loader ts-node/esm build/vite.config.ts",
|
|
195
194
|
"get-icon-list": "node --loader ts-node/esm build/getIconList.ts",
|
|
196
195
|
"replace-svg-values": "node --loader ts-node/esm build/replaceValuesInSvg.ts",
|
|
197
196
|
"test:unit": "vitest",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.m-btn[data-v-db145b2a]{position:relative;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:.5rem;border-width:var(--maz-border-width);border-style:solid;border-color:transparent;text-align:center;vertical-align:top;font-size:1rem;line-height:1.5rem;color:var(--maz-color-text);-webkit-box-pack:var(--justify);-ms-flex-pack:var(--justify);justify-content:var(--justify)}.m-btn span[data-v-db145b2a]{line-height:1}.m-btn-loader-container[data-v-db145b2a]{position:absolute;top:0;right:0;bottom:0;left:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;background-color:var(--maz-color-bg-light)}.m-btn-loader-container[data-v-db145b2a]:is([class~=dark] *){background-color:var(--maz-color-bg-lighter)}.m-btn.--cursor-pointer[data-v-db145b2a]{cursor:pointer}.m-btn.--cursor-default[data-v-db145b2a]{cursor:default}.m-btn.--is-link[data-v-db145b2a]{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,-webkit-box-shadow,-webkit-transform,-webkit-filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,-webkit-box-shadow,-webkit-transform,-webkit-filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-box-shadow,-webkit-transform,-webkit-filter,-webkit-backdrop-filter;-webkit-transition-duration:.2s;transition-duration:.2s;-webkit-transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(.4,0,.2,1)}.m-btn.--is-link[data-v-db145b2a]:not(:disabled):hover:not(.--no-underline),.m-btn.--is-link[data-v-db145b2a]:not(:disabled):focus:not(.--no-underline){text-decoration-line:underline}.m-btn.--is-link.--secondary[data-v-db145b2a]{color:var(--maz-color-secondary)}.m-btn.--is-link.--info[data-v-db145b2a]{color:var(--maz-color-info)}.m-btn.--is-link.--warning[data-v-db145b2a]{color:var(--maz-color-warning-600)}.m-btn.--is-link.--danger[data-v-db145b2a]{color:var(--maz-color-danger-600)}.m-btn.--is-link.--success[data-v-db145b2a]{color:var(--maz-color-success-600)}.m-btn.--is-link.--white[data-v-db145b2a]{color:var(--maz-color-white)}.m-btn.--is-link.--black[data-v-db145b2a]{color:var(--maz-color-black)}.m-btn.--is-link.--theme[data-v-db145b2a]{color:var(--maz-color-text)}.m-btn.--is-button[data-v-db145b2a]{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;overflow:hidden;border-color:transparent;background-color:transparent;padding-top:.125rem;padding-bottom:.125rem;text-decoration-line:none;-webkit-transition-property:all;transition-property:all;-webkit-transition-duration:.2s;transition-duration:.2s;-webkit-transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(.4,0,.2,1)}.m-btn.--is-button[data-v-db145b2a]:not(.--no-rounded,.--rounded-none){border-radius:var(--maz-border-radius)}.m-btn.--is-button:not(.--no-rounded,.--rounded-none).--rounded[data-v-db145b2a]{border-radius:9999px}.m-btn.--is-button:not(.--no-rounded,.--rounded-none).--rounded-sm[data-v-db145b2a]{border-radius:.125rem}.m-btn.--is-button:not(.--no-rounded,.--rounded-none).--rounded-md[data-v-db145b2a]{border-radius:.375rem}.m-btn.--is-button:not(.--no-rounded,.--rounded-none).--rounded-lg[data-v-db145b2a]{border-radius:var(--maz-border-radius)}.m-btn.--is-button:not(.--no-rounded,.--rounded-none).--rounded-xl[data-v-db145b2a]{border-radius:.75rem}.m-btn.--is-button:not(.--no-rounded,.--rounded-none).--rounded-full[data-v-db145b2a]{border-radius:9999px}.m-btn.--is-button.--xl[data-v-db145b2a]{min-height:4rem;padding-left:2rem;padding-right:2rem;font-size:1.25rem;line-height:1.75rem}.m-btn.--is-button.--lg[data-v-db145b2a]{min-height:3.5rem;padding-left:1.5rem;padding-right:1.5rem}.m-btn.--is-button.--md[data-v-db145b2a]{min-height:3rem;padding-left:1rem;padding-right:1rem}.m-btn.--is-button.--sm[data-v-db145b2a]{min-height:2.5rem;padding-left:.75rem;padding-right:.75rem}.m-btn.--is-button.--xs[data-v-db145b2a]{min-height:2rem;padding-left:.5rem;padding-right:.5rem;font-size:.875rem;line-height:1.25rem}.m-btn.--is-button.--mini[data-v-db145b2a]{min-height:1.5rem;padding-left:.25rem;padding-right:.25rem;font-size:.75rem;line-height:1rem}.m-btn.--is-button[data-v-db145b2a]:not(.--disabled):hover{background-color:var(--maz-border-color)}.m-btn.--is-button.--fab[data-v-db145b2a]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;border-radius:9999px;padding:.25rem}.m-btn.--is-button.--fab[data-v-db145b2a]:not(.--no-elevation){-webkit-box-shadow:0 5px 10px 0 hsla(0,0%,0%,.05);box-shadow:0 5px 10px #0000000d}.m-btn.--is-button.--fab.--xl[data-v-db145b2a]{width:4rem}.m-btn.--is-button.--fab.--lg[data-v-db145b2a]{width:3.5rem}.m-btn.--is-button.--fab.--md[data-v-db145b2a]{width:3rem}.m-btn.--is-button.--fab.--sm[data-v-db145b2a]{width:2.5rem}.m-btn.--is-button.--fab.--xs[data-v-db145b2a]{width:2rem}.m-btn.--is-button.--fab.--mini[data-v-db145b2a]{width:1.5rem}.m-btn.--is-button.--block[data-v-db145b2a]{width:100%}.m-btn.--is-button.--primary[data-v-db145b2a]{background-color:var(--maz-color-primary);color:var(--maz-color-primary-contrast)}.m-btn.--is-button.--primary[data-v-db145b2a]:not(:disabled):hover{background-color:var(--maz-color-primary-700)}.m-btn.--is-button.--secondary[data-v-db145b2a]{background-color:var(--maz-color-secondary);color:var(--maz-color-secondary-contrast)}.m-btn.--is-button.--secondary[data-v-db145b2a]:not(:disabled):hover{background-color:var(--maz-color-secondary-700)}.m-btn.--is-button.--info[data-v-db145b2a]{background-color:var(--maz-color-info);color:var(--maz-color-info-contrast)}.m-btn.--is-button.--info[data-v-db145b2a]:not(:disabled):hover{background-color:var(--maz-color-info-700)}.m-btn.--is-button.--success[data-v-db145b2a]{background-color:var(--maz-color-success);color:var(--maz-color-success-contrast)}.m-btn.--is-button.--success[data-v-db145b2a]:not(:disabled):hover{background-color:var(--maz-color-success-700)}.m-btn.--is-button.--warning[data-v-db145b2a]{background-color:var(--maz-color-warning);color:var(--maz-color-warning-contrast)}.m-btn.--is-button.--warning[data-v-db145b2a]:not(:disabled):hover{background-color:var(--maz-color-warning-700)}.m-btn.--is-button.--danger[data-v-db145b2a]{background-color:var(--maz-color-danger);color:var(--maz-color-white)}.m-btn.--is-button.--danger[data-v-db145b2a]:not(:disabled):hover{background-color:var(--maz-color-danger-700)}.m-btn.--is-button.--white[data-v-db145b2a]{background-color:var(--maz-color-white);color:var(--maz-color-white-contrast)}.m-btn.--is-button.--white[data-v-db145b2a]:not(:disabled):hover{--maz-tw-bg-opacity: 1;background-color:rgb(156 163 175 / var(--maz-tw-bg-opacity, 1))}.m-btn.--is-button.--black[data-v-db145b2a]{background-color:var(--maz-color-black);color:var(--maz-color-black-contrast)}.m-btn.--is-button.--black[data-v-db145b2a]:not(:disabled):hover{--maz-tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--maz-tw-bg-opacity, 1))}.m-btn.--is-button.--transparent[data-v-db145b2a]{background-color:transparent}.m-btn.--is-button.--transparent[data-v-db145b2a]:not(:disabled):hover{background-color:#00000014}.m-btn.--is-button.--transparent[data-v-db145b2a]:not(:disabled):hover:is([class~=dark] *){background-color:#ffffff14}.m-btn.--is-button.--theme[data-v-db145b2a]{background-color:var(--maz-color-bg-theme);color:var(--maz-color-bg)}.m-btn.--is-button.--theme[data-v-db145b2a]:not(:disabled):hover{background-color:var(--maz-color-bg-theme-hover)}.m-btn.--is-button.--primary-outline[data-v-db145b2a]{border-color:var(--maz-color-primary);background-color:var(--maz-color-primary-alpha-05);color:var(--maz-color-primary)}.m-btn.--is-button.--primary-outline[data-v-db145b2a]:not(:disabled):hover{background-color:var(--maz-color-primary);color:var(--maz-color-primary-contrast)}.m-btn.--is-button.--secondary-outline[data-v-db145b2a]{border-color:var(--maz-color-secondary);background-color:var(--maz-color-secondary-alpha-05);color:var(--maz-color-secondary)}.m-btn.--is-button.--secondary-outline[data-v-db145b2a]:not(:disabled):hover{background-color:var(--maz-color-secondary);color:var(--maz-color-white)}.m-btn.--is-button.--info-outline[data-v-db145b2a]{border-color:var(--maz-color-info);background-color:var(--maz-color-info-alpha-05);color:var(--maz-color-info)}.m-btn.--is-button.--info-outline[data-v-db145b2a]:not(:disabled):hover{background-color:var(--maz-color-info);color:var(--maz-color-white)}.m-btn.--is-button.--success-outline[data-v-db145b2a]{border-color:var(--maz-color-success);background-color:var(--maz-color-success-alpha-05);color:var(--maz-color-success)}.m-btn.--is-button.--success-outline[data-v-db145b2a]:not(:disabled):hover{background-color:var(--maz-color-success);color:var(--maz-color-white)}.m-btn.--is-button.--danger-outline[data-v-db145b2a]{border-color:var(--maz-color-danger);background-color:var(--maz-color-danger-alpha-05);color:var(--maz-color-danger)}.m-btn.--is-button.--danger-outline[data-v-db145b2a]:not(:disabled):hover{background-color:var(--maz-color-danger);color:var(--maz-color-white)}.m-btn.--is-button.--warning-outline[data-v-db145b2a]{border-color:var(--maz-color-warning);background-color:var(--maz-color-warning-alpha-05);color:var(--maz-color-warning)}.m-btn.--is-button.--warning-outline[data-v-db145b2a]:not(:disabled):hover{background-color:var(--maz-color-warning);color:var(--maz-color-white)}.m-btn.--is-button.--white-outline[data-v-db145b2a]{border-color:var(--maz-color-white);color:var(--maz-color-white)}.m-btn.--is-button.--white-outline[data-v-db145b2a]:not(:disabled):hover{background-color:var(--maz-color-white);color:var(--maz-color-white-contrast)}.m-btn.--is-button.--black-outline[data-v-db145b2a]{border-color:var(--maz-color-black);color:var(--maz-color-black)}.m-btn.--is-button.--black-outline[data-v-db145b2a]:not(:disabled):hover{background-color:var(--maz-color-black);color:var(--maz-color-black-contrast)}.m-btn.--is-button.--theme-outline[data-v-db145b2a]{border-color:var(--maz-border-color);color:var(--maz-color-bg-theme)}.m-btn.--is-button.--theme-outline[data-v-db145b2a]:is([class~=dark] *){border-color:var(--maz-color-bg-lighter)}.m-btn.--is-button.--theme-outline[data-v-db145b2a]:not(:disabled):hover{border-color:var(--maz-color-bg-theme);background-color:var(--maz-color-bg-theme);color:var(--maz-color-bg)}.m-btn.--is-button.--primary-pastel[data-v-db145b2a]{background-color:var(--maz-color-primary-50);color:var(--maz-color-primary)}.m-btn.--is-button.--primary-pastel[data-v-db145b2a]:not(:disabled):hover{background-color:var(--maz-color-primary);color:var(--maz-color-primary-contrast)}.m-btn.--is-button.--secondary-pastel[data-v-db145b2a]{background-color:var(--maz-color-secondary-50);color:var(--maz-color-secondary)}.m-btn.--is-button.--secondary-pastel[data-v-db145b2a]:not(:disabled):hover{background-color:var(--maz-color-secondary);color:var(--maz-color-secondary-contrast)}.m-btn.--is-button.--info-pastel[data-v-db145b2a]{background-color:var(--maz-color-info-50);color:var(--maz-color-info)}.m-btn.--is-button.--info-pastel[data-v-db145b2a]:not(:disabled):hover{background-color:var(--maz-color-info);color:var(--maz-color-info-contrast)}.m-btn.--is-button.--success-pastel[data-v-db145b2a]{background-color:var(--maz-color-success-50);color:var(--maz-color-success)}.m-btn.--is-button.--success-pastel[data-v-db145b2a]:not(:disabled):hover{background-color:var(--maz-color-success);color:var(--maz-color-success-contrast)}.m-btn.--is-button.--danger-pastel[data-v-db145b2a]{background-color:var(--maz-color-danger-50);color:var(--maz-color-danger)}.m-btn.--is-button.--danger-pastel[data-v-db145b2a]:not(:disabled):hover{background-color:var(--maz-color-danger);color:var(--maz-color-danger-contrast)}.m-btn.--is-button.--warning-pastel[data-v-db145b2a]{background-color:var(--maz-color-warning-50);color:var(--maz-color-warning)}.m-btn.--is-button.--warning-pastel[data-v-db145b2a]:not(:disabled):hover{background-color:var(--maz-color-warning);color:var(--maz-color-warning-contrast)}.m-btn.--is-button.--white-pastel[data-v-db145b2a]{--maz-tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--maz-tw-bg-opacity, 1));color:var(--maz-color-white)}.m-btn.--is-button.--white-pastel[data-v-db145b2a]:not(:disabled):hover{background-color:var(--maz-color-white);color:var(--maz-color-white-contrast)}.m-btn.--is-button.--black-pastel[data-v-db145b2a]{background-color:var(--maz-border-color);color:var(--maz-color-black)}.m-btn.--is-button.--black-pastel[data-v-db145b2a]:not(:disabled):hover{background-color:var(--maz-color-black);color:var(--maz-color-black-contrast)}.m-btn.--is-button.--theme-pastel[data-v-db145b2a]{background-color:var(--maz-border-color);color:var(--maz-color-black)}.m-btn.--is-button.--theme-pastel[data-v-db145b2a]:not(:disabled):hover{background-color:var(--maz-color-black);color:var(--maz-color-black-contrast)}.m-btn.--is-button.--disabled[data-v-db145b2a]{cursor:not-allowed;border-color:var(--maz-color-bg-light);background-color:var(--maz-color-bg-light);--maz-tw-text-opacity: 1;color:rgb(156 163 175 / var(--maz-tw-text-opacity, 1))}.m-btn.--is-button.--disabled[data-v-db145b2a]:is([class~=dark] *){border-color:var(--maz-color-bg-lighter);background-color:var(--maz-color-bg-lighter)}.m-btn.--is-button.--loading[data-v-db145b2a]{cursor:wait}.m-btn.--is-button.--no-padding[data-v-db145b2a]{padding:0}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.m-gallery[data-v-b484d6ae]{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;overflow:hidden}.m-gallery__hidden[data-v-b484d6ae]{display:none}.m-gallery__item[data-v-b484d6ae]{position:absolute;top:0;margin:0;height:50%;width:100%;overflow:hidden;border-left-width:2px;padding:0;border-color:var(--gallery-separator-color)}.m-gallery__item--1[data-v-b484d6ae]{left:0;height:100%}.m-gallery__item--1[data-v-b484d6ae]:not(:last-child){width:50%}.m-gallery__item--2[data-v-b484d6ae]{left:50%;width:50%;height:50%}.m-gallery__item--2[data-v-b484d6ae]:last-child{height:100%}.m-gallery__item--2[data-v-b484d6ae]:nth-last-child(4){width:25%}.m-gallery__item--3[data-v-b484d6ae]{top:50%;left:50%;width:25%}.m-gallery__item--3[data-v-b484d6ae]:last-child{width:50%}.m-gallery__item--3[data-v-b484d6ae]:nth-last-child(3){top:0;left:75%}.m-gallery__item--4[data-v-b484d6ae]{border-top-width:2px;border-color:var(--gallery-separator-color);top:50%;left:50%;width:25%}.m-gallery__item--4[data-v-b484d6ae]:last-child{left:75%;width:25%}.m-gallery__item--5[data-v-b484d6ae]{border-top-width:2px;border-color:var(--gallery-separator-color);top:50%;left:75%;width:25%}.m-gallery__item[data-v-b484d6ae]:first-child{border-left:0}.m-gallery__item--3[data-v-b484d6ae]:last-child,.m-gallery__item--3[data-v-b484d6ae]:nth-last-child(2),.m-gallery__item--4[data-v-b484d6ae]:last-child,.m-gallery__item--5[data-v-b484d6ae]{border-top-width:2px;border-color:var(--gallery-separator-color)}.m-gallery__item__image[data-v-b484d6ae]{height:100%;max-width:100%;width:100%;background-position:center center;background-size:cover;background-repeat:no-repeat;background-color:#0000007f}.m-gallery__remaining-layer[data-v-b484d6ae]{position:absolute;top:0;right:0;bottom:0;left:0}.m-gallery__remaining-layer a span[data-v-b484d6ae]{color:#fff;font-size:2rem}
|