maz-ui 5.0.0-beta.17 → 5.0.0-beta.18

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.
@@ -0,0 +1 @@
1
+ import{t as _plugin_vue_export_helper_default}from"./_plugin-vue_export-helper.ChmETRGw.js";import{t as MazBtn_default}from"./MazBtn.BbzUbXCS.js";import{d as isRangeValue,f as isSameDate,m as isValidDate,o as getFirstDayOfMonth,p as isSameDay,r as getDaysInMonth}from"./utils.B_6GvJKL.js";import{Fragment,TransitionGroup,computed,createBlock,createElementBlock,createElementVNode,createVNode,defineComponent,normalizeClass,openBlock,ref,renderList,toDisplayString,useCssVars,watch,withCtx}from"vue";import{debounce}from"@maz-ui/utils/helpers/debounce";import dayjs from"dayjs/esm";import '../assets/MazPickerCalendarGrid.DiySQJQ9.css';var _hoisted_1={class:`maz:text-sm`};var MazPickerCalendarGrid_default=_plugin_vue_export_helper_default(defineComponent({__name:`MazPickerCalendarGrid`,props:{modelValue:{type:[String,Object],default:void 0},calendarDate:{type:String,required:!0},hasTime:{type:Boolean,required:!0},locale:{type:String,required:!0},firstDayOfWeek:{type:Number,required:!0},color:{type:String,required:!0},minDate:{type:String,default:void 0},inline:{type:Boolean,required:!0},maxDate:{type:String,default:void 0},disabledWeekly:{type:Array,required:!0},disabledDates:{type:Array,required:!0},hoverredDay:{type:Object,default:void 0},disabled:{type:Boolean,required:!0},range:{type:Boolean,required:!0}},emits:[`update:model-value`,`update:hoverred-day`],setup(__props,{emit:__emit}){useCssVars(_ctx=>({v93bdda52:hoverColor.value,v11ce37aa:hoverTextColor.value}));let props=__props;let emits=__emit;let MazDatePickerGrid=ref();let transitionName=ref(`maz-slidenext`);let calendarDateArray=computed(()=>[props.calendarDate]);let hoverColor=computed(()=>`color-mix(in srgb, var(--maz-${props.color}) 20%, transparent)`);let hoverTextColor=computed(()=>`var(--maz-${props.color}-foreground)`);let modelValue=computed({get:()=>props.modelValue,set:value=>emits(`update:model-value`,value)});let monthDays=computed(()=>Array.from({length:getDaysInMonth(props.calendarDate)},(_v,i)=>i+1).map(day=>({label:day,date:dayjs(props.calendarDate).set(`date`,day)})));let emptyDaysCount=computed(()=>(getFirstDayOfMonth(props.calendarDate)-props.firstDayOfWeek+7)%7);function setHoverredDay(day){let value=props.modelValue;!value||!isRangeValue(value)||(value.start&&!value.end&&day&&day.isAfter(value.start)?emits(`update:hoverred-day`,day):emits(`update:hoverred-day`))}function isBetweenHoverred(day){let value=props.modelValue;if(!(!value||!isRangeValue(value)||!value.start||!props.hoverredDay))return dayjs(day).isBetween(value.start,props.hoverredDay,`date`,`()`)?3:void 0}function isLastDayHoverred(day){if(props.hoverredDay)return dayjs(day).isSame(props.hoverredDay)}function isFirstDay(day){return props.modelValue&&props.modelValue&&typeof props.modelValue==`object`&&props.modelValue?.start?isSameDate(day,props.modelValue.start,`date`):!1}function isLastDay(day){return props.modelValue&&props.modelValue&&typeof props.modelValue==`object`&&props.modelValue?.end?isSameDate(day,props.modelValue.end,`date`):!1}function getDayButtonColor(date){let value=props.modelValue;if(typeof value==`object`){let isStartDate=value.start?isSameDate(date,value.start,`date`):!1;let isEndDate=value.end?isSameDate(date,value.end,`date`):!1;let isBetweenDates=checkIsBetween(date);return isStartDate||isEndDate||isBetweenDates?props.color:`transparent`}else return checkIsSameDate(date)?props.color:`transparent`}function isSelectedOrBetween(day){if(props.modelValue&&typeof props.modelValue==`object`){if(props.modelValue.start&&isSameDate(day,props.modelValue.start,`date`))return 1;if(props.modelValue.end){if(isSameDate(day,props.modelValue.end,`date`))return 1;if(checkIsBetween(day))return 2}}else if(checkIsSameDate(day))return 1;return 0}function selectDay(value){props.range&&setHoverredDay();let valueFormatted=value.format();if(typeof modelValue.value==`object`){let values=modelValue.value;values.start&&values.end&&(values={start:void 0,end:void 0});let isBeforeStartDate=dayjs(valueFormatted).isBefore(values.start,`date`);modelValue.value=!values.start||isBeforeStartDate?{start:valueFormatted,end:void 0}:{start:values.start,end:valueFormatted}}else modelValue.value=valueFormatted}function checkIsSameDate(day){let value=props.modelValue;return!value||!isValidDate(value)?!1:isSameDate(day,value,`date`)}function checkIsBetween(day){let value=props.modelValue;return!isRangeValue(value)||!value.start||!value.end?!1:dayjs(day).isBetween(value.start,value.end,`date`,`()`)}function isSmallerMinDate(day){return props.minDate?dayjs(day).isBefore(props.minDate,`date`):!1}function isDisabledWeekly(day){return props.disabledWeekly?.length?props.disabledWeekly.some(disabledDay=>isSameDay(day,disabledDay)):!1}function isDisabledDate(day){return props.disabledDates?.length?props.disabledDates.some(disabledDay=>isSameDate(day,disabledDay,`date`)):!1}function isBiggerMaxDate(day){return props.maxDate?dayjs(day).isAfter(props.maxDate,`date`):!1}let removeContainerHeight=debounce(()=>{MazDatePickerGrid.value&&(MazDatePickerGrid.value.style.minHeight=``)},400);function setContainerHeight(){MazDatePickerGrid.value&&(MazDatePickerGrid.value.style.minHeight=`${MazDatePickerGrid.value?.clientHeight||176}px`,removeContainerHeight())}return watch(()=>props.calendarDate,(calendarDate,oldCalendarValue)=>{transitionName.value=dayjs(calendarDate).isAfter(oldCalendarValue,`date`)?`maz-slidenext`:`maz-slideprev`,setContainerHeight()}),(_ctx,_cache)=>(openBlock(),createElementBlock(`div`,{ref_key:`MazDatePickerGrid`,ref:MazDatePickerGrid,class:`maz-picker-calendar-grid maz:relative maz:transition-all maz:duration-300 maz:ease-in-out`},[createVNode(TransitionGroup,{name:transitionName.value},{default:withCtx(()=>[(openBlock(!0),createElementBlock(Fragment,null,renderList([calendarDateArray.value],(dateArray,dateIndex)=>(openBlock(),createElementBlock(`div`,{key:`${dateArray[dateIndex]}`,class:normalizeClass([`maz-picker-calendar-grid__container maz:relative maz:grid maz:grid-cols-7 maz:items-start maz:gap-y-1`,{"--is-range":__props.range,"maz:gap-x-1":!__props.range}])},[(openBlock(!0),createElementBlock(Fragment,null,renderList(emptyDaysCount.value,first=>(openBlock(),createElementBlock(`div`,{key:first}))),128)),(openBlock(!0),createElementBlock(Fragment,null,renderList(monthDays.value,({label,date},i)=>(openBlock(),createBlock(MazBtn_default,{key:i,size:`mini`,color:getDayButtonColor(date),type:`button`,block:__props.inline,disabled:__props.disabled||isSmallerMinDate(date)||isBiggerMaxDate(date)||isDisabledWeekly(date)||isDisabledDate(date),class:normalizeClass([`maz:size-8 maz:cursor-pointer maz:rounded-full`,{"--is-first":isFirstDay(date)&&isSelectedOrBetween(date)===1,"--is-last":isLastDay(date)&&isSelectedOrBetween(date)===1,"--is-last-hoverred":isLastDayHoverred(date),"--is-selected":isSelectedOrBetween(date)===1,"--is-between":isSelectedOrBetween(date)===2,"--is-between-hoverred":__props.range?isBetweenHoverred(date)===3:void 0}]),onClick:$event=>selectDay(date),onMouseover:$event=>__props.range?setHoverredDay(date):void 0,onMouseleave:_cache[0]||=$event=>__props.range?setHoverredDay():void 0,onFocus:$event=>__props.range?setHoverredDay(date):void 0,onBlur:_cache[1]||=$event=>__props.range?setHoverredDay():void 0},{default:withCtx(()=>[createElementVNode(`span`,_hoisted_1,toDisplayString(label),1)]),_:2},1032,[`color`,`block`,`disabled`,`class`,`onClick`,`onMouseover`,`onFocus`]))),128))],2))),128))]),_:1},8,[`name`])],512))}}),[[`__scopeId`,`data-v-fc747436`]]);export{MazPickerCalendarGrid_default as t};
@@ -0,0 +1 @@
1
+ import{useMountComponent}from"../composables/useMountComponent.js";import{n as useMazDialogConfirm,t as MazDialogConfirm_default}from"./MazDialogConfirm.CMjHcqtL.js";var DEFAULT_OPTIONS={identifier:`main-dialog`};var DialogHandler=class{app;globalOptions;activeDialogs=new Map;constructor(app,globalOptions=DEFAULT_OPTIONS){this.app=app,this.globalOptions=globalOptions}open(options){let props={...DEFAULT_OPTIONS,...this.globalOptions,...options};let{removeDialogFromState}=useMazDialogConfirm();let existing=this.activeDialogs.get(props.identifier);existing&&(existing.cleanupTimer&&clearTimeout(existing.cleanupTimer),removeDialogFromState(props.identifier),existing.destroy(),this.activeDialogs.delete(props.identifier));let{destroy,vNode}=useMountComponent(MazDialogConfirm_default,{props,app:this.app});let entry={destroy};this.activeDialogs.set(props.identifier,entry);let{showDialogAndWaitChoice}=useMazDialogConfirm();let scheduleDestroy=()=>{entry.cleanupTimer=setTimeout(()=>{this.activeDialogs.get(props.identifier)===entry&&(destroy(),this.activeDialogs.delete(props.identifier))},700)};return(async()=>{try{let response=await showDialogAndWaitChoice(props.identifier);props.onAccept&&props.onAccept(response)}catch(error){props.onReject&&props.onReject(error)}finally{scheduleDestroy()}})(),{destroy:()=>{entry.cleanupTimer&&clearTimeout(entry.cleanupTimer),destroy(),this.activeDialogs.get(props.identifier)===entry&&this.activeDialogs.delete(props.identifier)},close:()=>{vNode.component?.exposed?.isActive?.value&&(vNode.component?.exposed?.close(),props.onClose?.(),scheduleDestroy())}}}};var DialogPlugin={install(app,options){let dialogHandler=new DialogHandler(app,options);app.provide(`mazDialog`,dialogHandler),app.config.globalProperties.$mazDialog={open:dialogHandler.open.bind(dialogHandler),globalOptions:dialogHandler.globalOptions}}};export{DialogHandler as n,DialogPlugin as t};
@@ -1 +1 @@
1
- import{t as _plugin_vue_export_helper_default}from"./_plugin-vue_export-helper.ChmETRGw.js";import{useMountComponent}from"../composables/useMountComponent.js";import{useTimer}from"../composables/useTimer.js";import{t as MazIcon_default}from"./MazIcon.BKcg5YfP.js";import{Fragment,Transition,computed,createBlock,createCommentVNode,createElementBlock,createElementVNode,createVNode,defineAsyncComponent,defineComponent,mergeProps,normalizeClass,normalizeStyle,onMounted,openBlock,ref,renderList,resolveDynamicComponent,toDisplayString,unref,vShow,watch,withCtx,withDirectives,withModifiers}from"vue";import{MazLinkIcon}from"@maz-ui/icons/lazy/MazLinkIcon";import{MazCheckCircle}from"@maz-ui/icons/lazy/MazCheckCircle";import{MazExclamationCircle}from"@maz-ui/icons/lazy/MazExclamationCircle";import{MazExclamationTriangle}from"@maz-ui/icons/lazy/MazExclamationTriangle";import{MazArrowTopRightOnSquare}from"@maz-ui/icons/lazy/MazArrowTopRightOnSquare";import{MazXMark}from"@maz-ui/icons/lazy/MazXMark";import{MazInformationCircle}from"@maz-ui/icons/lazy/MazInformationCircle";import '../assets/toast.C9scaAOT.css';var _hoisted_1=[`textContent`,`innerHTML`];var _hoisted_2={key:1,class:`m-toast__progress-bar maz:absolute maz:inset-x-0`};var MazToast_default=_plugin_vue_export_helper_default(defineComponent({__name:`MazToast`,props:{message:{},type:{default:`info`},destroy:{type:Function},html:{type:Boolean,default:!1},maxToasts:{type:[Number,Boolean],default:!1},queue:{type:Boolean},position:{default:`bottom-right`},pauseOnHover:{type:Boolean,default:!0},timeout:{type:[Number,Boolean],default:1e4},persistent:{type:Boolean},icon:{type:[Boolean,Function,Object],default:!0},button:{},buttons:{}},emits:[`close`,`click`,`open`],setup(__props,{expose:__expose,emit:__emit}){let emits=__emit;let MazBtn=defineAsyncComponent(()=>import(`../components/MazBtn.js`));let Toast=ref();let internalButtons=computed(()=>{let buttonArray=[];return __props.button&&buttonArray.push(__props.button),__props.buttons&&buttonArray.push(...__props.buttons),buttonArray});let iconComponent=computed(()=>{if(__props.icon)switch(__props.type){case`destructive`:return MazExclamationTriangle;case`info`:return MazInformationCircle;case`success`:return MazCheckCircle;case`warning`:return MazExclamationCircle;default:return}});let positionY=computed(()=>__props.position.includes(`top`)?`top`:`bottom`);let positionX=computed(()=>__props.position.includes(`left`)?`left`:__props.position.includes(`right`)?`right`:`center`);let transitionName=computed(()=>positionX.value===`center`?positionY.value===`top`?`m-slide-top`:`m-slide-bottom`:positionX.value===`right`?`m-slide-right`:`m-slide-left`);let isActive=ref(!1);let queueTimer=ref();let CONTAINER_POSITION_Y={top:`maz:top-0 maz:flex`,bottom:`maz:bottom-0 maz:flex maz:flex-col-reverse`};let CONTAINER_POSITION_X={left:`maz:left-0 maz:w-full maz:tab-m:w-auto`,right:`maz:inset-e-0 maz:w-full maz:tab-m:w-auto`,center:`maz:w-full maz:tab-m:fixed maz:tab-m:left-2/4 maz:tab-m:w-auto`};let TOAST_BUTTON_COLOR={info:`maz:bg-info maz:text-info-foreground maz:border-info-600 maz:hover:bg-info-600 maz:dark:bg-info/10 maz:dark:text-info-400 maz:dark:border-info/20 maz:hover:dark:bg-info/20`,success:`maz:bg-success maz:text-success-foreground maz:border-success-600 maz:hover:bg-success-600 maz:dark:bg-success/10 maz:dark:text-success-400 maz:dark:border-success/20 maz:dark:hover:bg-success/20`,warning:`maz:bg-warning maz:text-warning-foreground maz:border-warning-600 maz:hover:bg-warning-600 maz:dark:bg-warning/10 maz:dark:text-warning-400 maz:dark:border-warning/20 maz:dark:hover:bg-warning/20`,destructive:`maz:bg-destructive maz:text-destructive-foreground maz:border-destructive-600 maz:hover:bg-destructive-600 maz:dark:bg-destructive/10 maz:dark:text-destructive-400 maz:dark:border-destructive/20 maz:dark:hover:bg-destructive/20`,contrast:`maz:bg-contrast maz:text-contrast-foreground maz:border-contrast-600/20 maz:hover:bg-contrast-500 maz:dark:hover:bg-contrast/70`,accent:`maz:bg-accent maz:text-accent-foreground maz:border-accent-600 maz:hover:bg-accent-600 maz:dark:bg-accent/10 maz:dark:text-accent-400 maz:dark:border-accent/20 maz:dark:hover:bg-accent/20`};let TOAST_CLOSE_COLOR={info:`maz:bg-info maz:text-info-foreground maz:border-info-400 maz:hover:bg-info-600 maz:dark:bg-info/10 maz:dark:border-info/20 maz:dark:text-info-600 maz:hover:dark:bg-info/20`,success:`maz:bg-success maz:text-success-foreground maz:border-success-600 maz:hover:bg-success-600 maz:dark:bg-success/10 maz:dark:border-success/20 maz:dark:text-success-600 maz:dark:hover:bg-success/20`,warning:`maz:bg-warning maz:text-warning-foreground maz:border-warning-600 maz:hover:bg-warning-600 maz:dark:bg-warning/10 maz:dark:border-warning/20 maz:dark:text-warning-600 maz:dark:hover:bg-warning/20`,destructive:`maz:bg-destructive maz:text-destructive-foreground maz:border-destructive-600 maz:hover:bg-destructive-600 maz:dark:bg-destructive/10 maz:dark:border-destructive/20 maz:dark:text-destructive-600 maz:dark:hover:bg-destructive/20`,contrast:`maz:bg-contrast maz:text-contrast-foreground maz:border-contrast-600/20 maz:hover:bg-contrast/70`,accent:`maz:bg-accent maz:text-accent-foreground maz:border-accent-600 maz:hover:bg-accent-600 maz:dark:bg-accent/10 maz:dark:text-accent-400 maz:dark:border-accent/20 maz:dark:hover:bg-accent/20`};let CLOSE_POSITION_X={left:`maz:-inset-e-2`,right:`maz:-left-2`,center:`maz:-left-2`};let BUTTON_POSITION_X={left:`maz:tab-m:w-88`,right:`maz:tab-m:w-88`,center:`maz:tab-m:w-88 maz:tab-m:justify-center`};let containerClassName=`m-toast-container m-reset-css --${positionY.value} --${positionX.value} maz:fixed maz:flex maz:flex-col maz:gap-2 maz:p-4 ${CONTAINER_POSITION_Y[positionY.value]} ${CONTAINER_POSITION_X[positionX.value]}`;let selectorContainerClass=`.m-toast-container.--${positionY.value}.--${positionX.value}`;let timer=useTimer({callback:closeToast,timeout:typeof __props.timeout==`number`?__props.timeout:0,callbackOffsetTime:200});function createParents(){let container=document.querySelector(selectorContainerClass);if(!container&&!container){let body=document.body;let toCreate=document.createElement(`div`);toCreate.className=containerClassName,body.append(toCreate)}}function shouldQueue(){let container=document.querySelector(selectorContainerClass);return!__props.queue&&__props.maxToasts===!1?!1:typeof __props.maxToasts==`number`&&container?__props.maxToasts<=container.childElementCount:container&&container.childElementCount>0}function showNotice(){if(shouldQueue()){queueTimer.value=setTimeout(showNotice,250);return}let container=document.querySelector(selectorContainerClass);Toast.value&&container&&container.prepend(Toast.value),isActive.value=!0,typeof __props.timeout==`number`&&__props.timeout>0&&!__props.persistent&&timer.start()}let progressBarWidth=ref(`100%`);function getProgressBarColor(){switch(__props.type){case`destructive`:return`maz:bg-destructive-800`;case`info`:return`maz:bg-info-800`;case`success`:return`maz:bg-success-800`;case`warning`:return`maz:bg-warning-800`;default:return`maz:bg-contrast-foreground`}}watch(timer.remainingTime,remainingTime=>{typeof __props.timeout==`number`&&(progressBarWidth.value=`${100*remainingTime/__props.timeout}%`)});function click(event,shouldClose=!0){emits(`click`,event),shouldClose&&closeToast()}let isActionLoading=ref(!1);async function onButtonClick(button,event){button.onClick&&(isActionLoading.value=!0,timer.pause(),await button.onClick(),timer.resume(),isActionLoading.value=!1),click(event,button.closeToast??!1)}function toggleTimer(shouldPause){!__props.pauseOnHover||__props.persistent||isActionLoading.value||(shouldPause?timer.pause():timer.resume())}function stopTimer(){timer.stop(),queueTimer.value&&clearTimeout(queueTimer.value)}function closeToast(){stopTimer(),isActive.value=!1}function onAnimationEnter(){emits(`open`)}function onAnimationLeave(){emits(`close`),Toast.value?.remove(),__props.destroy?.();let container=document.querySelector(selectorContainerClass);container&&!container?.hasChildNodes()&&container.remove()}function getButtonEndIcon(button){return!button.to&&!button.href?button.endIcon:button.target===`_blank`?MazArrowTopRightOnSquare:MazLinkIcon}return __expose({closeToast}),onMounted(()=>{createParents(),showNotice()}),(_ctx,_cache)=>(openBlock(),createBlock(Transition,{name:transitionName.value,appear:``,onAfterLeave:onAnimationLeave,onAfterEnter:onAnimationEnter},{default:withCtx(()=>[withDirectives(createElementVNode(`div`,{ref_key:`Toast`,ref:Toast,class:normalizeClass([`m-toast m-reset-css maz:relative maz:z-10`,[`--${__props.type}`,`--${positionY.value}`,`--${positionX.value}`,{"--persistent":__props.persistent}]])},[createElementVNode(`button`,{role:`alert`,class:normalizeClass([`m-toast__button maz:relative maz:flex maz:w-full maz:items-center maz:gap-2 maz:self-center maz:overflow-hidden maz:rounded-md maz:border maz:ps-2 maz:pe-2 maz:shadow-md maz:backdrop-blur-xl maz:transition maz:duration-300 maz:ease-in-out`,[TOAST_BUTTON_COLOR[__props.type],BUTTON_POSITION_X[positionX.value]]]),onMouseover:_cache[0]||=$event=>toggleTimer(!0),onMouseleave:_cache[1]||=$event=>toggleTimer(!1),onTouchstartPassive:_cache[2]||=$event=>toggleTimer(!0),onTouchendPassive:_cache[3]||=$event=>toggleTimer(!1),onClick:_cache[4]||=withModifiers($event=>click($event),[`stop`])},[iconComponent.value?(openBlock(),createBlock(resolveDynamicComponent(iconComponent.value),{key:0,class:`maz:text-2xl`})):createCommentVNode(``,!0),createElementVNode(`div`,{class:`m-toast__message maz:m-0 maz:flex-1 maz:py-3 maz:text-start maz:font-medium`,textContent:toDisplayString(__props.html?void 0:__props.message),innerHTML:__props.html?__props.message:void 0},null,8,_hoisted_1),(openBlock(!0),createElementBlock(Fragment,null,renderList(internalButtons.value,(toastButton,index)=>(openBlock(),createBlock(unref(MazBtn),mergeProps({key:index},{ref_for:!0},{...toastButton,onClick:void 0},{loading:isActionLoading.value||toastButton.loading,"end-icon":getButtonEndIcon(toastButton),onClick:withModifiers($event=>onButtonClick(toastButton,$event),[`stop`])}),null,16,[`loading`,`end-icon`,`onClick`]))),128)),typeof __props.timeout==`number`&&__props.timeout>0&&!__props.persistent?(openBlock(),createElementBlock(`div`,_hoisted_2,[createElementVNode(`div`,{style:normalizeStyle({width:progressBarWidth.value}),class:normalizeClass([`m-toast__progress-bar-inner maz:h-full maz:transition-all maz:duration-200 maz:ease-linear`,getProgressBarColor()])},null,6)])):createCommentVNode(``,!0)],34),createElementVNode(`button`,{class:normalizeClass([`m-toast__close maz:absolute maz:-top-2 maz:flex maz:flex-center maz:rounded-full maz:border maz:p-0.5 maz:backdrop-blur-xl`,[TOAST_CLOSE_COLOR[__props.type],CLOSE_POSITION_X[positionX.value]]]),onClick:_cache[5]||=withModifiers($event=>click($event),[`stop`])},[createVNode(MazIcon_default,{icon:unref(MazXMark),class:`m-toast__close-icon maz:cursor-pointer`},null,8,[`icon`])],2)],2),[[vShow,isActive.value]])]),_:1},8,[`name`]))}}),[[`__scopeId`,`data-v-8f7c7c29`]]);var DEFAULT_OPTIONS={position:`bottom-right`,timeout:1e4,persistent:!1};var ToastHandler=class{constructor(app,globalOptions){this.app=app,this.globalOptions=globalOptions}show(message,options){let{destroy,vNode}=useMountComponent(MazToast_default,{props:{...DEFAULT_OPTIONS,...this.globalOptions,...options,message},app:this.app});return{destroy,close:()=>vNode.component?.exposed?.closeToast()}}getLocalOptions(options){let DEFAULT_BUTTON_OPTIONS={size:`xs`,color:options?.type??`contrast`,closeToast:!1};let button=options?.button?{...DEFAULT_BUTTON_OPTIONS,...options.button}:void 0;let buttons=options?.buttons?.map(button=>({...DEFAULT_BUTTON_OPTIONS,...button}));return{type:options?.type??`contrast`,...options,buttons,button}}message(message,options){return this.show(message,this.getLocalOptions(options))}success(message,options){return this.show(message,this.getLocalOptions({...options,type:`success`}))}error(message,options){return this.show(message,this.getLocalOptions({...options,type:`destructive`}))}info(message,options){return this.show(message,this.getLocalOptions({...options,type:`info`}))}warning(message,options){return this.show(message,this.getLocalOptions({...options,type:`warning`}))}accent(message,options){return this.show(message,this.getLocalOptions({...options,type:`accent`}))}};var ToastPlugin={install(app,options){let toastHandler=new ToastHandler(app,options);app.provide(`mazToast`,toastHandler),app.config.globalProperties.$mazToast=toastHandler}};export{ToastHandler as n,ToastPlugin as t};
1
+ import{t as _plugin_vue_export_helper_default}from"./_plugin-vue_export-helper.ChmETRGw.js";import{useMountComponent}from"../composables/useMountComponent.js";import{useTimer}from"../composables/useTimer.js";import{t as MazIcon_default}from"./MazIcon.BKcg5YfP.js";import{Fragment,Transition,computed,createBlock,createCommentVNode,createElementBlock,createElementVNode,createVNode,defineAsyncComponent,defineComponent,mergeProps,normalizeClass,normalizeStyle,onMounted,openBlock,ref,renderList,resolveDynamicComponent,toDisplayString,unref,vShow,watch,withCtx,withDirectives,withModifiers}from"vue";import{MazLinkIcon}from"@maz-ui/icons/lazy/MazLinkIcon";import{MazCheckCircle}from"@maz-ui/icons/lazy/MazCheckCircle";import{MazExclamationCircle}from"@maz-ui/icons/lazy/MazExclamationCircle";import{MazExclamationTriangle}from"@maz-ui/icons/lazy/MazExclamationTriangle";import{MazArrowTopRightOnSquare}from"@maz-ui/icons/lazy/MazArrowTopRightOnSquare";import{MazXMark}from"@maz-ui/icons/lazy/MazXMark";import{MazInformationCircle}from"@maz-ui/icons/lazy/MazInformationCircle";import '../assets/toast.C9scaAOT.css';var _hoisted_1=[`textContent`,`innerHTML`];var _hoisted_2={key:1,class:`m-toast__progress-bar maz:absolute maz:inset-x-0`};var MazToast_default=_plugin_vue_export_helper_default(defineComponent({__name:`MazToast`,props:{message:{},type:{default:`info`},destroy:{type:Function},html:{type:Boolean,default:!1},maxToasts:{type:[Number,Boolean],default:!1},queue:{type:Boolean},position:{default:`bottom-right`},pauseOnHover:{type:Boolean,default:!0},timeout:{type:[Number,Boolean],default:1e4},persistent:{type:Boolean},icon:{type:[Boolean,Function,Object],default:!0},button:{},buttons:{}},emits:[`close`,`click`,`open`],setup(__props,{expose:__expose,emit:__emit}){let emits=__emit;let MazBtn=defineAsyncComponent(()=>import(`../components/MazBtn.js`));let Toast=ref();let internalButtons=computed(()=>{let buttonArray=[];return __props.button&&buttonArray.push(__props.button),__props.buttons&&buttonArray.push(...__props.buttons),buttonArray});let iconComponent=computed(()=>{if(__props.icon)switch(__props.type){case`destructive`:return MazExclamationTriangle;case`info`:return MazInformationCircle;case`success`:return MazCheckCircle;case`warning`:return MazExclamationCircle;default:return}});let positionY=computed(()=>__props.position.includes(`top`)?`top`:`bottom`);let positionX=computed(()=>__props.position.includes(`left`)?`left`:__props.position.includes(`right`)?`right`:`center`);let transitionName=computed(()=>positionX.value===`center`?positionY.value===`top`?`m-slide-top`:`m-slide-bottom`:positionX.value===`right`?`m-slide-right`:`m-slide-left`);let isActive=ref(!1);let queueTimer=ref();let CONTAINER_POSITION_Y={top:`maz:top-0 maz:flex`,bottom:`maz:bottom-0 maz:flex maz:flex-col-reverse`};let CONTAINER_POSITION_X={left:`maz:left-0 maz:w-full maz:tab-m:w-auto`,right:`maz:inset-e-0 maz:w-full maz:tab-m:w-auto`,center:`maz:w-full maz:tab-m:fixed maz:tab-m:left-2/4 maz:tab-m:w-auto`};let TOAST_BUTTON_COLOR={info:`maz:bg-info maz:text-info-foreground maz:border-info-600 maz:hover:bg-info-600 maz:dark:bg-info/10 maz:dark:text-info-400 maz:dark:border-info/20 maz:hover:dark:bg-info/20`,success:`maz:bg-success maz:text-success-foreground maz:border-success-600 maz:hover:bg-success-600 maz:dark:bg-success/10 maz:dark:text-success-400 maz:dark:border-success/20 maz:dark:hover:bg-success/20`,warning:`maz:bg-warning maz:text-warning-foreground maz:border-warning-600 maz:hover:bg-warning-600 maz:dark:bg-warning/10 maz:dark:text-warning-400 maz:dark:border-warning/20 maz:dark:hover:bg-warning/20`,destructive:`maz:bg-destructive maz:text-destructive-foreground maz:border-destructive-600 maz:hover:bg-destructive-600 maz:dark:bg-destructive/10 maz:dark:text-destructive-400 maz:dark:border-destructive/20 maz:dark:hover:bg-destructive/20`,contrast:`maz:bg-contrast maz:text-contrast-foreground maz:border-contrast-600/20 maz:hover:bg-contrast-500 maz:dark:hover:bg-contrast/70`,accent:`maz:bg-accent maz:text-accent-foreground maz:border-accent-600 maz:hover:bg-accent-600 maz:dark:bg-accent/10 maz:dark:text-accent-400 maz:dark:border-accent/20 maz:dark:hover:bg-accent/20`};let TOAST_CLOSE_COLOR={info:`maz:bg-info maz:text-info-foreground maz:border-info-400 maz:hover:bg-info-600 maz:dark:bg-info/10 maz:dark:border-info/20 maz:dark:text-info-600 maz:hover:dark:bg-info/20`,success:`maz:bg-success maz:text-success-foreground maz:border-success-600 maz:hover:bg-success-600 maz:dark:bg-success/10 maz:dark:border-success/20 maz:dark:text-success-600 maz:dark:hover:bg-success/20`,warning:`maz:bg-warning maz:text-warning-foreground maz:border-warning-600 maz:hover:bg-warning-600 maz:dark:bg-warning/10 maz:dark:border-warning/20 maz:dark:text-warning-600 maz:dark:hover:bg-warning/20`,destructive:`maz:bg-destructive maz:text-destructive-foreground maz:border-destructive-600 maz:hover:bg-destructive-600 maz:dark:bg-destructive/10 maz:dark:border-destructive/20 maz:dark:text-destructive-600 maz:dark:hover:bg-destructive/20`,contrast:`maz:bg-contrast maz:text-contrast-foreground maz:border-contrast-600/20 maz:hover:bg-contrast/70`,accent:`maz:bg-accent maz:text-accent-foreground maz:border-accent-600 maz:hover:bg-accent-600 maz:dark:bg-accent/10 maz:dark:text-accent-400 maz:dark:border-accent/20 maz:dark:hover:bg-accent/20`};let CLOSE_POSITION_X={left:`maz:-inset-e-2`,right:`maz:-left-2`,center:`maz:-left-2`};let BUTTON_POSITION_X={left:`maz:tab-m:w-88`,right:`maz:tab-m:w-88`,center:`maz:tab-m:w-88 maz:tab-m:justify-center`};let containerClassName=`m-toast-container m-reset-css --${positionY.value} --${positionX.value} maz:fixed maz:flex maz:flex-col maz:gap-2 maz:p-4 ${CONTAINER_POSITION_Y[positionY.value]} ${CONTAINER_POSITION_X[positionX.value]}`;let selectorContainerClass=`.m-toast-container.--${positionY.value}.--${positionX.value}`;let timer=useTimer({callback:closeToast,timeout:typeof __props.timeout==`number`?__props.timeout:0,callbackOffsetTime:200});function createParents(){let container=document.querySelector(selectorContainerClass);if(!container&&!container){let body=document.body;let toCreate=document.createElement(`div`);toCreate.className=containerClassName,body.append(toCreate)}}function shouldQueue(){let container=document.querySelector(selectorContainerClass);return!__props.queue&&__props.maxToasts===!1?!1:typeof __props.maxToasts==`number`&&container?__props.maxToasts<=container.childElementCount:container&&container.childElementCount>0}function showNotice(){if(shouldQueue()){queueTimer.value=setTimeout(showNotice,250);return}let container=document.querySelector(selectorContainerClass);Toast.value&&container&&container.prepend(Toast.value),isActive.value=!0,typeof __props.timeout==`number`&&__props.timeout>0&&!__props.persistent&&timer.start()}let progressBarWidth=ref(`100%`);function getProgressBarColor(){switch(__props.type){case`destructive`:return`maz:bg-destructive-800`;case`info`:return`maz:bg-info-800`;case`success`:return`maz:bg-success-800`;case`warning`:return`maz:bg-warning-800`;default:return`maz:bg-contrast-foreground`}}watch(timer.remainingTime,remainingTime=>{typeof __props.timeout==`number`&&(progressBarWidth.value=`${100*remainingTime/__props.timeout}%`)});function click(event,shouldClose=!0){emits(`click`,event),shouldClose&&closeToast()}let isActionLoading=ref(!1);async function onButtonClick(button,event){button.onClick&&(isActionLoading.value=!0,timer.pause(),await button.onClick(),timer.resume(),isActionLoading.value=!1),click(event,button.closeToast??!1)}function toggleTimer(shouldPause){!__props.pauseOnHover||__props.persistent||isActionLoading.value||(shouldPause?timer.pause():timer.resume())}function stopTimer(){timer.stop(),queueTimer.value&&clearTimeout(queueTimer.value)}function closeToast(){stopTimer(),isActive.value=!1}function onAnimationEnter(){emits(`open`)}function onAnimationLeave(){emits(`close`),Toast.value?.remove(),__props.destroy?.();let container=document.querySelector(selectorContainerClass);container&&!container?.hasChildNodes()&&container.remove()}function getButtonEndIcon(button){return!button.to&&!button.href?button.endIcon:button.target===`_blank`?MazArrowTopRightOnSquare:MazLinkIcon}return __expose({closeToast}),onMounted(()=>{createParents(),showNotice()}),(_ctx,_cache)=>(openBlock(),createBlock(Transition,{name:transitionName.value,appear:``,onAfterLeave:onAnimationLeave,onAfterEnter:onAnimationEnter},{default:withCtx(()=>[withDirectives(createElementVNode(`div`,{ref_key:`Toast`,ref:Toast,class:normalizeClass([`m-toast m-reset-css maz:relative maz:z-10`,[`--${__props.type}`,`--${positionY.value}`,`--${positionX.value}`,{"--persistent":__props.persistent}]])},[createElementVNode(`button`,{role:`alert`,class:normalizeClass([`m-toast__button maz:relative maz:flex maz:w-full maz:items-center maz:gap-2 maz:self-center maz:overflow-hidden maz:rounded-md maz:border maz:ps-2 maz:pe-2 maz:shadow-md maz:backdrop-blur-xl maz:transition maz:duration-300 maz:ease-in-out`,[TOAST_BUTTON_COLOR[__props.type],BUTTON_POSITION_X[positionX.value]]]),onMouseover:_cache[0]||=$event=>toggleTimer(!0),onMouseleave:_cache[1]||=$event=>toggleTimer(!1),onTouchstartPassive:_cache[2]||=$event=>toggleTimer(!0),onTouchendPassive:_cache[3]||=$event=>toggleTimer(!1),onClick:_cache[4]||=withModifiers($event=>click($event),[`stop`])},[iconComponent.value?(openBlock(),createBlock(resolveDynamicComponent(iconComponent.value),{key:0,class:`maz:text-2xl`})):createCommentVNode(``,!0),createElementVNode(`div`,{class:`m-toast__message maz:m-0 maz:flex-1 maz:py-3 maz:text-start maz:font-medium`,textContent:toDisplayString(__props.html?void 0:__props.message),innerHTML:__props.html?__props.message:void 0},null,8,_hoisted_1),(openBlock(!0),createElementBlock(Fragment,null,renderList(internalButtons.value,(toastButton,index)=>(openBlock(),createBlock(unref(MazBtn),mergeProps({key:index},{ref_for:!0},{...toastButton,onClick:void 0},{loading:isActionLoading.value||toastButton.loading,"end-icon":getButtonEndIcon(toastButton),onClick:withModifiers($event=>onButtonClick(toastButton,$event),[`stop`])}),null,16,[`loading`,`end-icon`,`onClick`]))),128)),typeof __props.timeout==`number`&&__props.timeout>0&&!__props.persistent?(openBlock(),createElementBlock(`div`,_hoisted_2,[createElementVNode(`div`,{style:normalizeStyle({width:progressBarWidth.value}),class:normalizeClass([`m-toast__progress-bar-inner maz:h-full maz:transition-all maz:duration-200 maz:ease-linear`,getProgressBarColor()])},null,6)])):createCommentVNode(``,!0)],34),createElementVNode(`button`,{class:normalizeClass([`m-toast__close maz:absolute maz:-top-2 maz:flex maz:flex-center maz:rounded-full maz:border maz:p-0.5 maz:backdrop-blur-xl`,[TOAST_CLOSE_COLOR[__props.type],CLOSE_POSITION_X[positionX.value]]]),onClick:_cache[5]||=withModifiers($event=>click($event),[`stop`])},[createVNode(MazIcon_default,{icon:unref(MazXMark),class:`m-toast__close-icon maz:cursor-pointer`},null,8,[`icon`])],2)],2),[[vShow,isActive.value]])]),_:1},8,[`name`]))}}),[[`__scopeId`,`data-v-8f7c7c29`]]);var DEFAULT_OPTIONS={position:`bottom-right`,timeout:1e4,persistent:!1};var ToastHandler=class{app;globalOptions;constructor(app,globalOptions){this.app=app,this.globalOptions=globalOptions}show(message,options){let{destroy,vNode}=useMountComponent(MazToast_default,{props:{...DEFAULT_OPTIONS,...this.globalOptions,...options,message},app:this.app});return{destroy,close:()=>vNode.component?.exposed?.closeToast()}}getLocalOptions(options){let DEFAULT_BUTTON_OPTIONS={size:`xs`,color:options?.type??`contrast`,closeToast:!1};let button=options?.button?{...DEFAULT_BUTTON_OPTIONS,...options.button}:void 0;let buttons=options?.buttons?.map(button=>({...DEFAULT_BUTTON_OPTIONS,...button}));return{type:options?.type??`contrast`,...options,buttons,button}}message(message,options){return this.show(message,this.getLocalOptions(options))}success(message,options){return this.show(message,this.getLocalOptions({...options,type:`success`}))}error(message,options){return this.show(message,this.getLocalOptions({...options,type:`destructive`}))}info(message,options){return this.show(message,this.getLocalOptions({...options,type:`info`}))}warning(message,options){return this.show(message,this.getLocalOptions({...options,type:`warning`}))}accent(message,options){return this.show(message,this.getLocalOptions({...options,type:`accent`}))}};var ToastPlugin={install(app,options){let toastHandler=new ToastHandler(app,options);app.provide(`mazToast`,toastHandler),app.config.globalProperties.$mazToast=toastHandler}};export{ToastHandler as n,ToastPlugin as t};
@@ -0,0 +1,124 @@
1
+ var style=`
2
+ .maz-zoom-img {
3
+ position: fixed;
4
+ top: 0;
5
+ bottom: 0;
6
+ left: 0;
7
+ right: 0;
8
+ padding: 1rem;
9
+ z-index: 1050;
10
+ background-color: hsla(238, 15%, 40%, 0.7);
11
+ display: flex;
12
+ align-items: center;
13
+ justify-content: center;
14
+ flex-direction: column;
15
+ }
16
+
17
+ .maz-zoom-img,
18
+ .maz-zoom-img * {
19
+ box-sizing: border-box;
20
+ }
21
+
22
+ .maz-zoom-img .maz-zoom-img__wrapper {
23
+ position: relative;
24
+ display: flex;
25
+ justify-content: center;
26
+ align-items: center;
27
+ min-width: 0;
28
+ min-height: 0;
29
+ max-width: 100%;
30
+ max-height: 100%;
31
+ transition: all 300ms ease-in-out;
32
+ opacity: 0;
33
+ transform: scale(0.5);
34
+ }
35
+
36
+ .maz-zoom-img.maz-animate .maz-zoom-img__wrapper {
37
+ opacity: 1;
38
+ transform: scale(1);
39
+ }
40
+
41
+ .maz-zoom-img.maz-animate .maz-zoom-img__loader {
42
+ position: absolute;
43
+ top: 0;
44
+ bottom: 0;
45
+ left: 0;
46
+ right: 0;
47
+ display: flex;
48
+ align-items: center;
49
+ justify-content: center;
50
+ background-color: hsla(238, 15%, 40%, 0.7);
51
+ border-radius: 1rem;
52
+ z-index: 2;
53
+ min-width: 60px;
54
+ min-height: 60px;
55
+ }
56
+ .maz-zoom-img.maz-animate .maz-zoom-img__loader[hidden] {
57
+ display: none;
58
+ }
59
+
60
+ @-webkit-keyframes spin {
61
+ 0% { transform: rotate(0deg); }
62
+ 100% { transform: rotate(360deg); }
63
+ }
64
+
65
+ @keyframes spin {
66
+ 0% { transform: rotate(0deg); }
67
+ 100% { transform: rotate(360deg); }
68
+ }
69
+
70
+ .maz-zoom-img.maz-animate .maz-zoom-img__loader__svg {
71
+ animation: spin .6s linear infinite;
72
+ }
73
+
74
+ .maz-zoom-img img {
75
+ max-width: 100%;
76
+ max-height: 100%;
77
+ min-width: 0;
78
+ border-radius: 1rem;
79
+ }
80
+
81
+ .maz-zoom-img .maz-zoom-btn {
82
+ margin: 0 auto;
83
+ border: none;
84
+ background-color: hsla(0, 0%, 7%, 0.5);
85
+ box-shadow: 0 0 0.5rem 0 hsla(0, 0%, 0%, 0.2);
86
+ height: 2.2rem;
87
+ min-height: 2.2rem;
88
+ width: 2.2rem;
89
+ min-width: 2.2rem;
90
+ display: flex;
91
+ align-items: center;
92
+ justify-content: center;
93
+ border-radius: 2.2rem;
94
+ cursor: pointer;
95
+ flex: 0 0 auto;
96
+ outline: none;
97
+ }
98
+
99
+ .maz-zoom-img .maz-zoom-btn svg {
100
+ fill: white;
101
+ }
102
+
103
+ .maz-zoom-img .maz-zoom-btn.maz-zoom-btn--close {
104
+ position: absolute;
105
+ top: 0.5rem;
106
+ right: 0.5rem;
107
+ z-index: 1;
108
+ }
109
+
110
+ .maz-zoom-img .maz-zoom-btn.maz-zoom-btn--previous {
111
+ position: absolute;
112
+ left: 0.5rem;
113
+ z-index: 1;
114
+ }
115
+
116
+ .maz-zoom-img .maz-zoom-btn.maz-zoom-btn--next {
117
+ position: absolute;
118
+ right: 0.5rem;
119
+ z-index: 1;
120
+ }
121
+
122
+ .maz-zoom-img .maz-zoom-btn:hover {
123
+ background-color: hsl(0, 0%, 0%);
124
+ }`;var svgs={close:`<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path d="M0 0h24v24H0z" fill="none"/><path d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg>`,next:`<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path d="M0 0h24v24H0z" fill="none"/><path d="M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"/></svg>`,previous:`<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path d="M0 0h24v24H0z" fill="none"/><path d="M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"/></svg>`,spinner:`<svg width="40px" height="40px" version="1.1" xmlns="http://www.w3.org/2000/svg" fill="currentColor" x="0px" y="0px" viewBox="0 0 50 50" xml:space="preserve" class="maz-zoom-img__loader__svg" data-v-6d1cb50c=""><path d="M43.935,25.145c0-10.318-8.364-18.683-18.683-18.683c-10.318,0-18.683,8.365-18.683,18.683h4.068c0-8.071,6.543-14.615,14.615-14.615c8.072,0,14.615,6.543,14.615,14.615H43.935z"></path></svg>`};var ZoomImgHandler=class{options;loader;wrapper;img;keydownHandler;onImgLoadedCallback;buttonsAdded;defaultOptions={scale:!0,blur:!0,disabled:!1};mouseEnterListener=void 0;mouseLeaveListener=void 0;renderPreviewListener=void 0;constructor(binding){if(!binding.value)throw Error('[MazUI](zoom-img) Image path must be defined. Ex: `v-zoom-img="<PATH_TO_IMAGE>"`');if(typeof binding.value==`object`&&!binding.value.src)throw Error(`[maz-ui](zoom-img) src of image must be provided`);this.buttonsAdded=!1,this.options=this.buildOptions(binding),this.keydownHandler=this.keydownLister.bind(this),this.loader=this.getLoader(),this.wrapper=document.createElement(`div`),this.wrapper.classList.add(`maz-zoom-img__wrapper`),this.wrapper.prepend(this.loader),this.img=document.createElement(`img`),this.onImgLoadedCallback=this.onImgLoaded.bind(this),this.imgEventHandler(!0)}buildOptions(binding){return{...this.defaultOptions,...typeof binding.value==`object`?binding.value:{src:binding.value}}}get allInstances(){return[...document.querySelectorAll(`.maz-zoom-img-instance`)]}create(el){this.options.disabled||(el.style.cursor=`pointer`,setTimeout(()=>el.classList.add(`maz-zoom-img-instance`)),el.setAttribute(`data-zoom-src`,this.options.src),this.options.alt&&el.setAttribute(`data-zoom-alt`,this.options.alt),el.style.transition=`all 300ms ease-in-out`,this.mouseEnterListener=()=>this.mouseEnter(el),this.mouseLeaveListener=()=>this.mouseLeave(el),this.renderPreviewListener=()=>this.renderPreview(el,this.options),el.addEventListener(`mouseenter`,this.mouseEnterListener),el.addEventListener(`mouseleave`,this.mouseLeaveListener),el.addEventListener(`click`,this.renderPreviewListener))}update(binding){this.options=this.buildOptions(binding)}remove(el){this.imgEventHandler(!1),this.mouseEnterListener&&el.removeEventListener(`mouseenter`,this.mouseEnterListener),this.mouseLeaveListener&&el.removeEventListener(`mouseleave`,this.mouseLeaveListener),this.renderPreviewListener&&el.removeEventListener(`click`,this.renderPreviewListener),this.mouseEnterListener=void 0,this.mouseLeaveListener=void 0,this.renderPreviewListener=void 0,el.classList.remove(`maz-zoom-img-instance`),el.removeAttribute(`data-zoom-src`),el.removeAttribute(`data-zoom-alt`),el.style.cursor=``}renderPreview(el,options){el.classList.add(`maz-is-open`),this.addStyle(style);let container=document.createElement(`div`);container.classList.add(`maz-zoom-img`),container.setAttribute(`id`,`MazImgPreviewFullsize`),container.addEventListener(`click`,e=>{container.isEqualNode(e.target)&&this.closePreview()}),typeof options==`object`&&(this.img.setAttribute(`src`,options.src),options.alt&&this.img.setAttribute(`alt`,options.alt),this.img.id=`MazImgElement`),this.wrapper.append(this.img),container.append(this.wrapper),document.body.append(container),this.keyboardEventHandler(!0),setTimeout(()=>{container&&container.classList.add(`maz-animate`)},100)}onImgLoaded(){this.wrapper.style.width=`${this.img.width}px`,this.wrapper.style.minWidth=`200px`,this.loader.hidden=!0;let closeButton=this.getButton();let buttons=[];let hasMultipleInstance=this.allInstances.length>1;if(!this.buttonsAdded){if(this.buttonsAdded=!0,hasMultipleInstance){let previousButton=this.getButton(`previous`);let nextButton=this.getButton(`next`);buttons.push(previousButton,nextButton)}this.wrapper.append(closeButton),hasMultipleInstance&&(this.wrapper.prepend(buttons[0]),this.wrapper.append(buttons[1]))}}getLoader(){let loader=document.createElement(`div`);return loader.classList.add(`maz-zoom-img__loader`),loader.innerHTML=svgs.spinner,loader}mouseLeave(el){this.options.scale&&(el.style.transform=``),this.options.blur&&(el.style.filter=``),el.style.zIndex=``}mouseEnter(el){el.style.zIndex=`1`,this.options.scale&&(el.style.transform=`scale(1.1)`),this.options.blur&&(el.style.filter=`blur(2px)`)}keydownLister(e){e.preventDefault(),(e.key===`Escape`||e.key===` `)&&this.closePreview(),(e.key===`ArrowLeft`||e.key===`ArrowRight`)&&this.nextPreviousImage(e.key===`ArrowRight`)}getButton(iconName=`close`){let button=document.createElement(`button`);button.innerHTML=svgs[iconName];let getAction=()=>iconName===`close`?this.closePreview():this.allInstances?this.nextPreviousImage(iconName===`next`):null;return button.addEventListener(`click`,()=>{getAction()}),button.classList.add(`maz-zoom-btn`),button.classList.add(`maz-zoom-btn--${iconName}`),button}closePreview(){let container=document.querySelector(`#MazImgPreviewFullsize`);let style=document.querySelector(`#MazPreviewStyle`);let instance=document.querySelector(`.maz-zoom-img-instance.maz-is-open`);instance&&instance.classList.remove(`maz-is-open`),container&&container.classList.remove(`maz-animate`),this.keyboardEventHandler(!1),setTimeout(()=>{container&&container.remove(),style&&style.remove()},300)}getNewInstanceIndex(newInstanceIndex){let nextIndex=newInstanceIndex;return nextIndex<0?nextIndex=this.allInstances.length-1:nextIndex>=this.allInstances.length&&(nextIndex=0),nextIndex}nextPreviousImage(isNext){let selectNextInstance=isNext;let currentInstance=document.querySelector(`.maz-zoom-img-instance.maz-is-open`);if(currentInstance){let currentInstanceIndex=this.allInstances.indexOf(currentInstance);let newInstanceIndex=selectNextInstance?currentInstanceIndex+1:currentInstanceIndex-1;let nextInstance=this.allInstances[this.getNewInstanceIndex(newInstanceIndex)];nextInstance&&this.useNextInstance(currentInstance,nextInstance)}}useNextInstance(currentInstance,nextInstance){currentInstance.classList.remove(`maz-is-open`),nextInstance.classList.add(`maz-is-open`);let src=nextInstance.getAttribute(`data-zoom-src`);let alt=nextInstance.getAttribute(`data-zoom-alt`);this.wrapper.style.width=``,this.loader.hidden=!1,src&&this.img.setAttribute(`src`,src),alt&&this.img.setAttribute(`alt`,alt)}addStyle(styleString){let style=document.createElement(`style`);style.id=`MazPreviewStyle`,style.textContent=styleString,document.head.append(style)}keyboardEventHandler(add){if(add)return document.addEventListener(`keydown`,this.keydownHandler);document.removeEventListener(`keydown`,this.keydownHandler)}imgEventHandler(add){if(add)return this.img.addEventListener(`load`,this.onImgLoadedCallback);this.img.removeEventListener(`load`,this.onImgLoadedCallback)}};var instance;var vZoomImg={created(el,binding){instance=new ZoomImgHandler(binding),instance.create(el)},updated(_el,binding){instance.update(binding)},unmounted(el){instance.remove(el)}};var plugin={install(app){app.directive(`zoom-img`,vZoomImg)}};export{vZoomImg as n,plugin as t};
@@ -1 +1 @@
1
- import{t as MazPickerCalendarGrid_default}from"../../../chunks/MazPickerCalendarGrid.BLgRrgTD.js";export{MazPickerCalendarGrid_default as default};
1
+ import{t as MazPickerCalendarGrid_default}from"../../../chunks/MazPickerCalendarGrid.BEuOrZkB.js";export{MazPickerCalendarGrid_default as default};
@@ -1 +1 @@
1
- import{t as MazPickerCalendarDays_default}from"../../../chunks/MazPickerCalendarDays.BMOBBRGk.js";import{t as MazPickerCalendarGrid_default}from"../../../chunks/MazPickerCalendarGrid.BLgRrgTD.js";import{computed,createElementBlock,createVNode,defineComponent,normalizeClass,openBlock}from"vue";import dayjs from"dayjs/esm";var MazPickerCalendarMonth_default=defineComponent({__name:`MazPickerCalendarMonth`,props:{modelValue:{type:[String,Object],default:void 0},color:{type:String,required:!0},locale:{type:String,required:!0},hasTime:{type:Boolean,required:!0},firstDayOfWeek:{type:Number,required:!0},inline:{type:Boolean,required:!0},calendarDate:{type:String,required:!0},offsetMonth:{type:Number,default:0},minDate:{type:String,default:void 0},maxDate:{type:String,default:void 0},disabledWeekly:{type:Array,required:!0},disabledDates:{type:Array,required:!0},hoverredDay:{type:Object,default:void 0},disabled:{type:Boolean,required:!0},range:{type:Boolean,required:!0}},emits:[`update:model-value`,`update:calendar-date`,`update:hoverred-day`],setup(__props,{emit:__emit}){let props=__props;let emits=__emit;let modelValue=computed({get:()=>props.modelValue,set:value=>emits(`update:model-value`,value)});let hoverredDay=computed({get:()=>props.hoverredDay,set:value=>emits(`update:hoverred-day`,value)});function getCalendarDateWithOffset(offset){return dayjs(props.calendarDate).add(offset,`month`).format()}let calendarDateWithOffset=computed({get:()=>getCalendarDateWithOffset(props.offsetMonth),set:calendarDate=>emits(`update:calendar-date`,calendarDate)});return(_ctx,_cache)=>(openBlock(),createElementBlock(`div`,{class:normalizeClass([`maz-picker-calendar-month maz:w-full maz:overflow-hidden maz:py-2`,{"--has-padding":!__props.range,"maz:px-2":!__props.range}])},[createVNode(MazPickerCalendarDays_default,{locale:__props.locale,"first-day-of-week":__props.firstDayOfWeek,class:`maz-picker-calendar-month__days maz:pb-2`},null,8,[`locale`,`first-day-of-week`]),createVNode(MazPickerCalendarGrid_default,{modelValue:modelValue.value,"onUpdate:modelValue":_cache[0]||=$event=>modelValue.value=$event,"hoverred-day":hoverredDay.value,"onUpdate:hoverredDay":_cache[1]||=$event=>hoverredDay.value=$event,locale:__props.locale,color:__props.color,"has-time":__props.hasTime,inline:__props.inline,"calendar-date":calendarDateWithOffset.value,"first-day-of-week":__props.firstDayOfWeek,"min-date":__props.minDate,"max-date":__props.maxDate,"disabled-weekly":__props.disabledWeekly,"disabled-dates":__props.disabledDates,disabled:__props.disabled,range:__props.range},null,8,[`modelValue`,`hoverred-day`,`locale`,`color`,`has-time`,`inline`,`calendar-date`,`first-day-of-week`,`min-date`,`max-date`,`disabled-weekly`,`disabled-dates`,`disabled`,`range`])],2))}});export{MazPickerCalendarMonth_default as default};
1
+ import{t as MazPickerCalendarDays_default}from"../../../chunks/MazPickerCalendarDays.BMOBBRGk.js";import{t as MazPickerCalendarGrid_default}from"../../../chunks/MazPickerCalendarGrid.BEuOrZkB.js";import{computed,createElementBlock,createVNode,defineComponent,normalizeClass,openBlock}from"vue";import dayjs from"dayjs/esm";var MazPickerCalendarMonth_default=defineComponent({__name:`MazPickerCalendarMonth`,props:{modelValue:{type:[String,Object],default:void 0},color:{type:String,required:!0},locale:{type:String,required:!0},hasTime:{type:Boolean,required:!0},firstDayOfWeek:{type:Number,required:!0},inline:{type:Boolean,required:!0},calendarDate:{type:String,required:!0},offsetMonth:{type:Number,default:0},minDate:{type:String,default:void 0},maxDate:{type:String,default:void 0},disabledWeekly:{type:Array,required:!0},disabledDates:{type:Array,required:!0},hoverredDay:{type:Object,default:void 0},disabled:{type:Boolean,required:!0},range:{type:Boolean,required:!0}},emits:[`update:model-value`,`update:calendar-date`,`update:hoverred-day`],setup(__props,{emit:__emit}){let props=__props;let emits=__emit;let modelValue=computed({get:()=>props.modelValue,set:value=>emits(`update:model-value`,value)});let hoverredDay=computed({get:()=>props.hoverredDay,set:value=>emits(`update:hoverred-day`,value)});function getCalendarDateWithOffset(offset){return dayjs(props.calendarDate).add(offset,`month`).format()}let calendarDateWithOffset=computed({get:()=>getCalendarDateWithOffset(props.offsetMonth),set:calendarDate=>emits(`update:calendar-date`,calendarDate)});return(_ctx,_cache)=>(openBlock(),createElementBlock(`div`,{class:normalizeClass([`maz-picker-calendar-month maz:w-full maz:overflow-hidden maz:py-2`,{"--has-padding":!__props.range,"maz:px-2":!__props.range}])},[createVNode(MazPickerCalendarDays_default,{locale:__props.locale,"first-day-of-week":__props.firstDayOfWeek,class:`maz-picker-calendar-month__days maz:pb-2`},null,8,[`locale`,`first-day-of-week`]),createVNode(MazPickerCalendarGrid_default,{modelValue:modelValue.value,"onUpdate:modelValue":_cache[0]||=$event=>modelValue.value=$event,"hoverred-day":hoverredDay.value,"onUpdate:hoverredDay":_cache[1]||=$event=>hoverredDay.value=$event,locale:__props.locale,color:__props.color,"has-time":__props.hasTime,inline:__props.inline,"calendar-date":calendarDateWithOffset.value,"first-day-of-week":__props.firstDayOfWeek,"min-date":__props.minDate,"max-date":__props.maxDate,"disabled-weekly":__props.disabledWeekly,"disabled-dates":__props.disabledDates,disabled:__props.disabled,range:__props.range},null,8,[`modelValue`,`hoverred-day`,`locale`,`color`,`has-time`,`inline`,`calendar-date`,`first-day-of-week`,`min-date`,`max-date`,`disabled-weekly`,`disabled-dates`,`disabled`,`range`])],2))}});export{MazPickerCalendarMonth_default as default};
@@ -1 +1 @@
1
- import{vClickOutside as directive,vClickOutsideInstall as plugin}from"./vClickOutside.js";import{vTooltip as directive$3,vTooltipInstall as plugin$3}from"./vTooltip.js";import{n as directive$2,t as plugin$2}from"../chunks/vLazyImg.C7fTCbTe.js";import{n as directive$1,t as plugin$1}from"../chunks/vFullscreenImg.D1SwJSfc.js";import{n as vZoomImg,t as plugin$4}from"../chunks/vZoomImg.DSisktzt.js";export{directive as vClickOutside,plugin as vClickOutsideInstall,directive$1 as vFullscreenImg,plugin$1 as vFullscreenImgInstall,directive$2 as vLazyImg,plugin$2 as vLazyImgInstall,directive$3 as vTooltip,plugin$3 as vTooltipInstall,vZoomImg,plugin$4 as vZoomImgInstall};
1
+ import{vClickOutside as directive,vClickOutsideInstall as plugin}from"./vClickOutside.js";import{vTooltip as directive$3,vTooltipInstall as plugin$3}from"./vTooltip.js";import{n as directive$2,t as plugin$2}from"../chunks/vLazyImg.C7fTCbTe.js";import{n as directive$1,t as plugin$1}from"../chunks/vFullscreenImg.D1SwJSfc.js";import{n as vZoomImg,t as plugin$4}from"../chunks/vZoomImg.DZYG8zF1.js";export{directive as vClickOutside,plugin as vClickOutsideInstall,directive$1 as vFullscreenImg,plugin$1 as vFullscreenImgInstall,directive$2 as vLazyImg,plugin$2 as vLazyImgInstall,directive$3 as vTooltip,plugin$3 as vTooltipInstall,vZoomImg,plugin$4 as vZoomImgInstall};
@@ -1 +1 @@
1
- import{n as vZoomImg,t as plugin}from"../chunks/vZoomImg.DSisktzt.js";export{vZoomImg,plugin as vZoomImgInstall};
1
+ import{n as vZoomImg,t as plugin}from"../chunks/vZoomImg.DZYG8zF1.js";export{vZoomImg,plugin as vZoomImgInstall};
@@ -1 +1 @@
1
- import{n as DialogHandler,t as DialogPlugin}from"../chunks/dialog.ChqsxIxB.js";export{DialogHandler,DialogPlugin};
1
+ import{n as DialogHandler,t as DialogPlugin}from"../chunks/dialog.i1OuN7Ep.js";export{DialogHandler,DialogPlugin};
@@ -1 +1 @@
1
- import{WaitHandler,WaitPlugin,waitInstance}from"./wait.js";import{n as ToastHandler,t as ToastPlugin}from"../chunks/toast.DP0LSzC-.js";import{MazUi}from"./maz-ui.js";import{t as DialogPlugin}from"../chunks/dialog.ChqsxIxB.js";import{AosHandler,AosPlugin,getAosInstance}from"./aos.js";export{AosHandler,AosPlugin,DialogPlugin,MazUi,ToastHandler,ToastPlugin,WaitHandler,WaitPlugin,getAosInstance,waitInstance};
1
+ import{WaitHandler,WaitPlugin,waitInstance}from"./wait.js";import{n as ToastHandler,t as ToastPlugin}from"../chunks/toast.DYc2ED7c.js";import{MazUi}from"./maz-ui.js";import{t as DialogPlugin}from"../chunks/dialog.i1OuN7Ep.js";import{AosHandler,AosPlugin,getAosInstance}from"./aos.js";export{AosHandler,AosPlugin,DialogPlugin,MazUi,ToastHandler,ToastPlugin,WaitHandler,WaitPlugin,getAosInstance,waitInstance};
@@ -1 +1 @@
1
- import{n as ToastHandler,t as ToastPlugin}from"../chunks/toast.DP0LSzC-.js";export{ToastHandler,ToastPlugin};
1
+ import{n as ToastHandler,t as ToastPlugin}from"../chunks/toast.DYc2ED7c.js";export{ToastHandler,ToastPlugin};
@@ -1 +1 @@
1
- import{capitalize}from"@maz-ui/utils/helpers/capitalize";var composablesMap={useInjectStrict:!0,useAos:!0,useBreakpoints:!0,useFormField:!0,useFormValidator:!0,useIdleTimeout:!0,useInstanceUniqId:!0,useReadingTime:!0,useStringMatching:!0,useSwipe:!0,useTimer:!0,useToast:!0,useUserVisibility:!0,useWait:!0,useWindowSize:!0,useDisplayNames:!0,useFreezeValue:!0,useDialog:!0,useMountComponent:!0,useDropzone:!0,useMutationObserver:!0,useMazIconProps:!0,useSidebar:!0};var modulesMap={capitalize:!0,getErrorMessage:!0,checkAvailability:!0,getCookie:!0,setCookie:!0,deleteCookie:!0,countryCodeToUnicodeFlag:!0,formatCurrency:!0,formatDate:!0,debounce:!0,isClient:!0,isServer:!0,normalizeString:!0,formatNumber:!0,sleep:!0,throttle:!0,truthyFilter:!0,IdleTimeout:!0,throttleId:!0,pascalCase:!0,camelCase:!0,isStandaloneMode:!0,debounceId:!0,getCountryFlagUrl:!0,isEqual:!0,debounceCallback:!0,ScriptLoader:!0,Swipe:!0,UserVisibility:!0,TextareaAutogrow:!0,kebabCase:!0,snakeCase:!0,upperFirst:!0,formatJson:!0};var useRegex=/^use/;function MazModulesResolver(options){return name=>{let{prefix=``}=options||{};if(modulesMap[name]===!0)return{from:`@maz-ui/utils`,name,as:`${prefix.toLowerCase()}${capitalize(name)}`};if(composablesMap[name]===!0)return{from:`maz-ui/composables`,name,as:`use${capitalize(prefix)}${name.replace(useRegex,``)}`}}}export{MazModulesResolver};
1
+ import{capitalize}from"@maz-ui/utils/helpers/capitalize";var composablesMap={useInjectStrict:!0,useAos:!0,useBreakpoints:!0,useFormField:!0,useFormValidator:!0,useIdleTimeout:!0,useInstanceUniqId:!0,useReadingTime:!0,useStringMatching:!0,useSwipe:!0,useTimer:!0,useToast:!0,useUserVisibility:!0,useWait:!0,useWindowSize:!0,useDisplayNames:!0,useFreezeValue:!0,useDialog:!0,useMountComponent:!0,useDropzone:!0,useMutationObserver:!0,useMazIconProps:!0,useSidebar:!0};var modulesMap={capitalize:!0,getErrorMessage:!0,checkAvailability:!0,getCookie:!0,setCookie:!0,deleteCookie:!0,countryCodeToUnicodeFlag:!0,formatCurrency:!0,formatDate:!0,debounce:!0,isClient:!0,isServer:!0,normalizeString:!0,formatNumber:!0,sleep:!0,throttle:!0,truthyFilter:!0,IdleTimeout:!0,throttleId:!0,pascalCase:!0,camelCase:!0,isStandaloneMode:!0,debounceId:!0,getCountryFlagUrl:!0,isEqual:!0,debounceCallback:!0,ScriptLoader:!0,Swipe:!0,UserVisibility:!0,TextareaAutogrow:!0,kebabCase:!0,snakeCase:!0,upperFirst:!0,formatJson:!0,fetchLocaleIp:!0,formatPhoneNumber:!0,getBrowserLocale:!0};var useRegex=/^use/;function MazModulesResolver(options){return name=>{let{prefix=``}=options||{};if(modulesMap[name]===!0)return{from:`@maz-ui/utils`,name,as:`${prefix.toLowerCase()}${capitalize(name)}`};if(composablesMap[name]===!0)return{from:`maz-ui/composables`,name,as:`use${capitalize(prefix)}${name.replace(useRegex,``)}`}}}export{MazModulesResolver};
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "maz-ui",
3
3
  "type": "module",
4
- "version": "5.0.0-beta.17",
4
+ "version": "5.0.0-beta.18",
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",
@@ -183,13 +183,13 @@
183
183
  "@floating-ui/vue": "^1.1.11",
184
184
  "chart.js": "^4.5.1",
185
185
  "dayjs": "^1.11.20",
186
- "libphonenumber-js": "^1.13.0",
186
+ "libphonenumber-js": "^1.13.2",
187
187
  "valibot": "^1.4.0",
188
- "@maz-ui/cli": "5.0.0-beta.11",
189
- "@maz-ui/translations": "5.0.0-beta.17",
190
- "@maz-ui/icons": "5.0.0-beta.11",
191
- "@maz-ui/themes": "5.0.0-beta.17",
192
- "@maz-ui/utils": "5.0.0-beta.17"
188
+ "@maz-ui/icons": "5.0.0-beta.18",
189
+ "@maz-ui/cli": "5.0.0-beta.18",
190
+ "@maz-ui/translations": "5.0.0-beta.18",
191
+ "@maz-ui/utils": "5.0.0-beta.18",
192
+ "@maz-ui/themes": "5.0.0-beta.18"
193
193
  },
194
194
  "devDependencies": {
195
195
  "@tailwindcss/cli": "^4.3.0",
@@ -199,17 +199,18 @@
199
199
  "autoprefixer": "^10.5.0",
200
200
  "jsdom": "^29.1.1",
201
201
  "lightningcss": "^1.32.0",
202
- "nuxt": "^4.4.4",
202
+ "nuxt": "^4.4.6",
203
203
  "postcss-nested": "^7.0.2",
204
204
  "sass": "^1.99.0",
205
- "shiki": "^4.0.2",
205
+ "shiki": "^4.1.0",
206
206
  "tailwindcss": "^4.3.0",
207
207
  "unplugin-auto-import": "^21.0.0",
208
208
  "unplugin-vue-components": "^32.0.0",
209
- "vue-router": "^5.0.6",
209
+ "vue-router": "^5.0.7",
210
+ "@maz-ui/eslint-config": "5.0.0-beta.18",
211
+ "@maz-ui/stylelint-config": "5.0.0-beta.18",
210
212
  "@maz-ui/node": "5.0.0-beta.11",
211
- "@maz-ui/eslint-config": "5.0.0-beta.11",
212
- "@maz-ui/stylelint-config": "5.0.0-beta.11"
213
+ "@maz-ui/vite-config": "0.0.0"
213
214
  },
214
215
  "lint-staged": {
215
216
  "*.{js,ts,vue,mjs,mts,cjs,md,yml,json}": "cross-env NODE_ENV=production eslint --fix",
@@ -1 +0,0 @@
1
- import{t as _plugin_vue_export_helper_default}from"./_plugin-vue_export-helper.ChmETRGw.js";import{t as MazBtn_default}from"./MazBtn.BbzUbXCS.js";import{d as isRangeValue,f as isSameDate,m as isValidDate,o as getFirstDayOfMonth,p as isSameDay,r as getDaysInMonth}from"./utils.B_6GvJKL.js";import{Fragment,TransitionGroup,computed,createBlock,createElementBlock,createElementVNode,createVNode,defineComponent,normalizeClass,openBlock,ref,renderList,toDisplayString,useCssVars,watch,withCtx}from"vue";import{debounce}from"@maz-ui/utils/helpers/debounce";import dayjs from"dayjs/esm";import '../assets/MazPickerCalendarGrid.DiySQJQ9.css';var _hoisted_1={class:`maz:text-sm`};var DaySelect=function(DaySelect){return DaySelect[DaySelect.UNSELECTED=0]=`UNSELECTED`,DaySelect[DaySelect.SELECTED=1]=`SELECTED`,DaySelect[DaySelect.BETWEEN=2]=`BETWEEN`,DaySelect[DaySelect.BETWEEN_HOVERRED=3]=`BETWEEN_HOVERRED`,DaySelect}(DaySelect||{});var MazPickerCalendarGrid_default=_plugin_vue_export_helper_default(defineComponent({__name:`MazPickerCalendarGrid`,props:{modelValue:{type:[String,Object],default:void 0},calendarDate:{type:String,required:!0},hasTime:{type:Boolean,required:!0},locale:{type:String,required:!0},firstDayOfWeek:{type:Number,required:!0},color:{type:String,required:!0},minDate:{type:String,default:void 0},inline:{type:Boolean,required:!0},maxDate:{type:String,default:void 0},disabledWeekly:{type:Array,required:!0},disabledDates:{type:Array,required:!0},hoverredDay:{type:Object,default:void 0},disabled:{type:Boolean,required:!0},range:{type:Boolean,required:!0}},emits:[`update:model-value`,`update:hoverred-day`],setup(__props,{emit:__emit}){useCssVars(_ctx=>({v93bdda52:hoverColor.value,v11ce37aa:hoverTextColor.value}));let props=__props;let emits=__emit;let MazDatePickerGrid=ref();let transitionName=ref(`maz-slidenext`);let calendarDateArray=computed(()=>[props.calendarDate]);let hoverColor=computed(()=>`color-mix(in srgb, var(--maz-${props.color}) 20%, transparent)`);let hoverTextColor=computed(()=>`var(--maz-${props.color}-foreground)`);let modelValue=computed({get:()=>props.modelValue,set:value=>emits(`update:model-value`,value)});let monthDays=computed(()=>Array.from({length:getDaysInMonth(props.calendarDate)},(_v,i)=>i+1).map(day=>({label:day,date:dayjs(props.calendarDate).set(`date`,day)})));let emptyDaysCount=computed(()=>(getFirstDayOfMonth(props.calendarDate)-props.firstDayOfWeek+7)%7);function setHoverredDay(day){let value=props.modelValue;!value||!isRangeValue(value)||(value.start&&!value.end&&day&&day.isAfter(value.start)?emits(`update:hoverred-day`,day):emits(`update:hoverred-day`))}function isBetweenHoverred(day){let value=props.modelValue;if(!(!value||!isRangeValue(value)||!value.start||!props.hoverredDay))return dayjs(day).isBetween(value.start,props.hoverredDay,`date`,`()`)?DaySelect.BETWEEN_HOVERRED:void 0}function isLastDayHoverred(day){if(props.hoverredDay)return dayjs(day).isSame(props.hoverredDay)}function isFirstDay(day){return props.modelValue&&props.modelValue&&typeof props.modelValue==`object`&&props.modelValue?.start?isSameDate(day,props.modelValue.start,`date`):!1}function isLastDay(day){return props.modelValue&&props.modelValue&&typeof props.modelValue==`object`&&props.modelValue?.end?isSameDate(day,props.modelValue.end,`date`):!1}function getDayButtonColor(date){let value=props.modelValue;if(typeof value==`object`){let isStartDate=value.start?isSameDate(date,value.start,`date`):!1;let isEndDate=value.end?isSameDate(date,value.end,`date`):!1;let isBetweenDates=checkIsBetween(date);return isStartDate||isEndDate||isBetweenDates?props.color:`transparent`}else return checkIsSameDate(date)?props.color:`transparent`}function isSelectedOrBetween(day){if(props.modelValue&&typeof props.modelValue==`object`){if(props.modelValue.start&&isSameDate(day,props.modelValue.start,`date`))return DaySelect.SELECTED;if(props.modelValue.end){if(isSameDate(day,props.modelValue.end,`date`))return DaySelect.SELECTED;if(checkIsBetween(day))return DaySelect.BETWEEN}}else if(checkIsSameDate(day))return DaySelect.SELECTED;return DaySelect.UNSELECTED}function selectDay(value){props.range&&setHoverredDay();let valueFormatted=value.format();if(typeof modelValue.value==`object`){let values=modelValue.value;values.start&&values.end&&(values={start:void 0,end:void 0});let isBeforeStartDate=dayjs(valueFormatted).isBefore(values.start,`date`);modelValue.value=!values.start||isBeforeStartDate?{start:valueFormatted,end:void 0}:{start:values.start,end:valueFormatted}}else modelValue.value=valueFormatted}function checkIsSameDate(day){let value=props.modelValue;return!value||!isValidDate(value)?!1:isSameDate(day,value,`date`)}function checkIsBetween(day){let value=props.modelValue;return!isRangeValue(value)||!value.start||!value.end?!1:dayjs(day).isBetween(value.start,value.end,`date`,`()`)}function isSmallerMinDate(day){return props.minDate?dayjs(day).isBefore(props.minDate,`date`):!1}function isDisabledWeekly(day){return props.disabledWeekly?.length?props.disabledWeekly.some(disabledDay=>isSameDay(day,disabledDay)):!1}function isDisabledDate(day){return props.disabledDates?.length?props.disabledDates.some(disabledDay=>isSameDate(day,disabledDay,`date`)):!1}function isBiggerMaxDate(day){return props.maxDate?dayjs(day).isAfter(props.maxDate,`date`):!1}let removeContainerHeight=debounce(()=>{MazDatePickerGrid.value&&(MazDatePickerGrid.value.style.minHeight=``)},400);function setContainerHeight(){MazDatePickerGrid.value&&(MazDatePickerGrid.value.style.minHeight=`${MazDatePickerGrid.value?.clientHeight||176}px`,removeContainerHeight())}return watch(()=>props.calendarDate,(calendarDate,oldCalendarValue)=>{transitionName.value=dayjs(calendarDate).isAfter(oldCalendarValue,`date`)?`maz-slidenext`:`maz-slideprev`,setContainerHeight()}),(_ctx,_cache)=>(openBlock(),createElementBlock(`div`,{ref_key:`MazDatePickerGrid`,ref:MazDatePickerGrid,class:`maz-picker-calendar-grid maz:relative maz:transition-all maz:duration-300 maz:ease-in-out`},[createVNode(TransitionGroup,{name:transitionName.value},{default:withCtx(()=>[(openBlock(!0),createElementBlock(Fragment,null,renderList([calendarDateArray.value],(dateArray,dateIndex)=>(openBlock(),createElementBlock(`div`,{key:`${dateArray[dateIndex]}`,class:normalizeClass([`maz-picker-calendar-grid__container maz:relative maz:grid maz:grid-cols-7 maz:items-start maz:gap-y-1`,{"--is-range":__props.range,"maz:gap-x-1":!__props.range}])},[(openBlock(!0),createElementBlock(Fragment,null,renderList(emptyDaysCount.value,first=>(openBlock(),createElementBlock(`div`,{key:first}))),128)),(openBlock(!0),createElementBlock(Fragment,null,renderList(monthDays.value,({label,date},i)=>(openBlock(),createBlock(MazBtn_default,{key:i,size:`mini`,color:getDayButtonColor(date),type:`button`,block:__props.inline,disabled:__props.disabled||isSmallerMinDate(date)||isBiggerMaxDate(date)||isDisabledWeekly(date)||isDisabledDate(date),class:normalizeClass([`maz:size-8 maz:cursor-pointer maz:rounded-full`,{"--is-first":isFirstDay(date)&&isSelectedOrBetween(date)===DaySelect.SELECTED,"--is-last":isLastDay(date)&&isSelectedOrBetween(date)===DaySelect.SELECTED,"--is-last-hoverred":isLastDayHoverred(date),"--is-selected":isSelectedOrBetween(date)===DaySelect.SELECTED,"--is-between":isSelectedOrBetween(date)===DaySelect.BETWEEN,"--is-between-hoverred":__props.range?isBetweenHoverred(date)===DaySelect.BETWEEN_HOVERRED:void 0}]),onClick:$event=>selectDay(date),onMouseover:$event=>__props.range?setHoverredDay(date):void 0,onMouseleave:_cache[0]||=$event=>__props.range?setHoverredDay():void 0,onFocus:$event=>__props.range?setHoverredDay(date):void 0,onBlur:_cache[1]||=$event=>__props.range?setHoverredDay():void 0},{default:withCtx(()=>[createElementVNode(`span`,_hoisted_1,toDisplayString(label),1)]),_:2},1032,[`color`,`block`,`disabled`,`class`,`onClick`,`onMouseover`,`onFocus`]))),128))],2))),128))]),_:1},8,[`name`])],512))}}),[[`__scopeId`,`data-v-fc747436`]]);export{MazPickerCalendarGrid_default as t};
@@ -1 +0,0 @@
1
- import{useMountComponent}from"../composables/useMountComponent.js";import{n as useMazDialogConfirm,t as MazDialogConfirm_default}from"./MazDialogConfirm.CMjHcqtL.js";var DEFAULT_OPTIONS={identifier:`main-dialog`};var DialogHandler=class{activeDialogs=new Map;constructor(app,globalOptions=DEFAULT_OPTIONS){this.app=app,this.globalOptions=globalOptions}open(options){let props={...DEFAULT_OPTIONS,...this.globalOptions,...options};let{removeDialogFromState}=useMazDialogConfirm();let existing=this.activeDialogs.get(props.identifier);existing&&(existing.cleanupTimer&&clearTimeout(existing.cleanupTimer),removeDialogFromState(props.identifier),existing.destroy(),this.activeDialogs.delete(props.identifier));let{destroy,vNode}=useMountComponent(MazDialogConfirm_default,{props,app:this.app});let entry={destroy};this.activeDialogs.set(props.identifier,entry);let{showDialogAndWaitChoice}=useMazDialogConfirm();let scheduleDestroy=()=>{entry.cleanupTimer=setTimeout(()=>{this.activeDialogs.get(props.identifier)===entry&&(destroy(),this.activeDialogs.delete(props.identifier))},700)};return(async()=>{try{let response=await showDialogAndWaitChoice(props.identifier);props.onAccept&&props.onAccept(response)}catch(error){props.onReject&&props.onReject(error)}finally{scheduleDestroy()}})(),{destroy:()=>{entry.cleanupTimer&&clearTimeout(entry.cleanupTimer),destroy(),this.activeDialogs.get(props.identifier)===entry&&this.activeDialogs.delete(props.identifier)},close:()=>{vNode.component?.exposed?.isActive?.value&&(vNode.component?.exposed?.close(),props.onClose?.(),scheduleDestroy())}}}};var DialogPlugin={install(app,options){let dialogHandler=new DialogHandler(app,options);app.provide(`mazDialog`,dialogHandler),app.config.globalProperties.$mazDialog={open:dialogHandler.open.bind(dialogHandler),globalOptions:dialogHandler.globalOptions}}};export{DialogHandler as n,DialogPlugin as t};
@@ -1,124 +0,0 @@
1
- var style=`
2
- .maz-zoom-img {
3
- position: fixed;
4
- top: 0;
5
- bottom: 0;
6
- left: 0;
7
- right: 0;
8
- padding: 1rem;
9
- z-index: 1050;
10
- background-color: hsla(238, 15%, 40%, 0.7);
11
- display: flex;
12
- align-items: center;
13
- justify-content: center;
14
- flex-direction: column;
15
- }
16
-
17
- .maz-zoom-img,
18
- .maz-zoom-img * {
19
- box-sizing: border-box;
20
- }
21
-
22
- .maz-zoom-img .maz-zoom-img__wrapper {
23
- position: relative;
24
- display: flex;
25
- justify-content: center;
26
- align-items: center;
27
- min-width: 0;
28
- min-height: 0;
29
- max-width: 100%;
30
- max-height: 100%;
31
- transition: all 300ms ease-in-out;
32
- opacity: 0;
33
- transform: scale(0.5);
34
- }
35
-
36
- .maz-zoom-img.maz-animate .maz-zoom-img__wrapper {
37
- opacity: 1;
38
- transform: scale(1);
39
- }
40
-
41
- .maz-zoom-img.maz-animate .maz-zoom-img__loader {
42
- position: absolute;
43
- top: 0;
44
- bottom: 0;
45
- left: 0;
46
- right: 0;
47
- display: flex;
48
- align-items: center;
49
- justify-content: center;
50
- background-color: hsla(238, 15%, 40%, 0.7);
51
- border-radius: 1rem;
52
- z-index: 2;
53
- min-width: 60px;
54
- min-height: 60px;
55
- }
56
- .maz-zoom-img.maz-animate .maz-zoom-img__loader[hidden] {
57
- display: none;
58
- }
59
-
60
- @-webkit-keyframes spin {
61
- 0% { transform: rotate(0deg); }
62
- 100% { transform: rotate(360deg); }
63
- }
64
-
65
- @keyframes spin {
66
- 0% { transform: rotate(0deg); }
67
- 100% { transform: rotate(360deg); }
68
- }
69
-
70
- .maz-zoom-img.maz-animate .maz-zoom-img__loader__svg {
71
- animation: spin .6s linear infinite;
72
- }
73
-
74
- .maz-zoom-img img {
75
- max-width: 100%;
76
- max-height: 100%;
77
- min-width: 0;
78
- border-radius: 1rem;
79
- }
80
-
81
- .maz-zoom-img .maz-zoom-btn {
82
- margin: 0 auto;
83
- border: none;
84
- background-color: hsla(0, 0%, 7%, 0.5);
85
- box-shadow: 0 0 0.5rem 0 hsla(0, 0%, 0%, 0.2);
86
- height: 2.2rem;
87
- min-height: 2.2rem;
88
- width: 2.2rem;
89
- min-width: 2.2rem;
90
- display: flex;
91
- align-items: center;
92
- justify-content: center;
93
- border-radius: 2.2rem;
94
- cursor: pointer;
95
- flex: 0 0 auto;
96
- outline: none;
97
- }
98
-
99
- .maz-zoom-img .maz-zoom-btn svg {
100
- fill: white;
101
- }
102
-
103
- .maz-zoom-img .maz-zoom-btn.maz-zoom-btn--close {
104
- position: absolute;
105
- top: 0.5rem;
106
- right: 0.5rem;
107
- z-index: 1;
108
- }
109
-
110
- .maz-zoom-img .maz-zoom-btn.maz-zoom-btn--previous {
111
- position: absolute;
112
- left: 0.5rem;
113
- z-index: 1;
114
- }
115
-
116
- .maz-zoom-img .maz-zoom-btn.maz-zoom-btn--next {
117
- position: absolute;
118
- right: 0.5rem;
119
- z-index: 1;
120
- }
121
-
122
- .maz-zoom-img .maz-zoom-btn:hover {
123
- background-color: hsl(0, 0%, 0%);
124
- }`;var svgs={close:`<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path d="M0 0h24v24H0z" fill="none"/><path d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg>`,next:`<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path d="M0 0h24v24H0z" fill="none"/><path d="M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"/></svg>`,previous:`<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path d="M0 0h24v24H0z" fill="none"/><path d="M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"/></svg>`,spinner:`<svg width="40px" height="40px" version="1.1" xmlns="http://www.w3.org/2000/svg" fill="currentColor" x="0px" y="0px" viewBox="0 0 50 50" xml:space="preserve" class="maz-zoom-img__loader__svg" data-v-6d1cb50c=""><path d="M43.935,25.145c0-10.318-8.364-18.683-18.683-18.683c-10.318,0-18.683,8.365-18.683,18.683h4.068c0-8.071,6.543-14.615,14.615-14.615c8.072,0,14.615,6.543,14.615,14.615H43.935z"></path></svg>`};var StateClass=function(StateClass){return StateClass.OPEN=`maz-is-open`,StateClass}(StateClass||{});var ZoomImgHandler=class{options;loader;wrapper;img;keydownHandler;onImgLoadedCallback;buttonsAdded;defaultOptions={scale:!0,blur:!0,disabled:!1};mouseEnterListener=void 0;mouseLeaveListener=void 0;renderPreviewListener=void 0;constructor(binding){if(!binding.value)throw Error('[MazUI](zoom-img) Image path must be defined. Ex: `v-zoom-img="<PATH_TO_IMAGE>"`');if(typeof binding.value==`object`&&!binding.value.src)throw Error(`[maz-ui](zoom-img) src of image must be provided`);this.buttonsAdded=!1,this.options=this.buildOptions(binding),this.keydownHandler=this.keydownLister.bind(this),this.loader=this.getLoader(),this.wrapper=document.createElement(`div`),this.wrapper.classList.add(`maz-zoom-img__wrapper`),this.wrapper.prepend(this.loader),this.img=document.createElement(`img`),this.onImgLoadedCallback=this.onImgLoaded.bind(this),this.imgEventHandler(!0)}buildOptions(binding){return{...this.defaultOptions,...typeof binding.value==`object`?binding.value:{src:binding.value}}}get allInstances(){return[...document.querySelectorAll(`.maz-zoom-img-instance`)]}create(el){this.options.disabled||(el.style.cursor=`pointer`,setTimeout(()=>el.classList.add(`maz-zoom-img-instance`)),el.setAttribute(`data-zoom-src`,this.options.src),this.options.alt&&el.setAttribute(`data-zoom-alt`,this.options.alt),el.style.transition=`all 300ms ease-in-out`,this.mouseEnterListener=()=>this.mouseEnter(el),this.mouseLeaveListener=()=>this.mouseLeave(el),this.renderPreviewListener=()=>this.renderPreview(el,this.options),el.addEventListener(`mouseenter`,this.mouseEnterListener),el.addEventListener(`mouseleave`,this.mouseLeaveListener),el.addEventListener(`click`,this.renderPreviewListener))}update(binding){this.options=this.buildOptions(binding)}remove(el){this.imgEventHandler(!1),this.mouseEnterListener&&el.removeEventListener(`mouseenter`,this.mouseEnterListener),this.mouseLeaveListener&&el.removeEventListener(`mouseleave`,this.mouseLeaveListener),this.renderPreviewListener&&el.removeEventListener(`click`,this.renderPreviewListener),this.mouseEnterListener=void 0,this.mouseLeaveListener=void 0,this.renderPreviewListener=void 0,el.classList.remove(`maz-zoom-img-instance`),el.removeAttribute(`data-zoom-src`),el.removeAttribute(`data-zoom-alt`),el.style.cursor=``}renderPreview(el,options){el.classList.add(StateClass.OPEN),this.addStyle(style);let container=document.createElement(`div`);container.classList.add(`maz-zoom-img`),container.setAttribute(`id`,`MazImgPreviewFullsize`),container.addEventListener(`click`,e=>{container.isEqualNode(e.target)&&this.closePreview()}),typeof options==`object`&&(this.img.setAttribute(`src`,options.src),options.alt&&this.img.setAttribute(`alt`,options.alt),this.img.id=`MazImgElement`),this.wrapper.append(this.img),container.append(this.wrapper),document.body.append(container),this.keyboardEventHandler(!0),setTimeout(()=>{container&&container.classList.add(`maz-animate`)},100)}onImgLoaded(){this.wrapper.style.width=`${this.img.width}px`,this.wrapper.style.minWidth=`200px`,this.loader.hidden=!0;let closeButton=this.getButton();let buttons=[];let hasMultipleInstance=this.allInstances.length>1;if(!this.buttonsAdded){if(this.buttonsAdded=!0,hasMultipleInstance){let previousButton=this.getButton(`previous`);let nextButton=this.getButton(`next`);buttons.push(previousButton,nextButton)}this.wrapper.append(closeButton),hasMultipleInstance&&(this.wrapper.prepend(buttons[0]),this.wrapper.append(buttons[1]))}}getLoader(){let loader=document.createElement(`div`);return loader.classList.add(`maz-zoom-img__loader`),loader.innerHTML=svgs.spinner,loader}mouseLeave(el){this.options.scale&&(el.style.transform=``),this.options.blur&&(el.style.filter=``),el.style.zIndex=``}mouseEnter(el){el.style.zIndex=`1`,this.options.scale&&(el.style.transform=`scale(1.1)`),this.options.blur&&(el.style.filter=`blur(2px)`)}keydownLister(e){e.preventDefault(),(e.key===`Escape`||e.key===` `)&&this.closePreview(),(e.key===`ArrowLeft`||e.key===`ArrowRight`)&&this.nextPreviousImage(e.key===`ArrowRight`)}getButton(iconName=`close`){let button=document.createElement(`button`);button.innerHTML=svgs[iconName];let getAction=()=>iconName===`close`?this.closePreview():this.allInstances?this.nextPreviousImage(iconName===`next`):null;return button.addEventListener(`click`,()=>{getAction()}),button.classList.add(`maz-zoom-btn`),button.classList.add(`maz-zoom-btn--${iconName}`),button}closePreview(){let container=document.querySelector(`#MazImgPreviewFullsize`);let style=document.querySelector(`#MazPreviewStyle`);let instance=document.querySelector(`.maz-zoom-img-instance.maz-is-open`);instance&&instance.classList.remove(StateClass.OPEN),container&&container.classList.remove(`maz-animate`),this.keyboardEventHandler(!1),setTimeout(()=>{container&&container.remove(),style&&style.remove()},300)}getNewInstanceIndex(newInstanceIndex){let nextIndex=newInstanceIndex;return nextIndex<0?nextIndex=this.allInstances.length-1:nextIndex>=this.allInstances.length&&(nextIndex=0),nextIndex}nextPreviousImage(isNext){let selectNextInstance=isNext;let currentInstance=document.querySelector(`.maz-zoom-img-instance.maz-is-open`);if(currentInstance){let currentInstanceIndex=this.allInstances.indexOf(currentInstance);let newInstanceIndex=selectNextInstance?currentInstanceIndex+1:currentInstanceIndex-1;let nextInstance=this.allInstances[this.getNewInstanceIndex(newInstanceIndex)];nextInstance&&this.useNextInstance(currentInstance,nextInstance)}}useNextInstance(currentInstance,nextInstance){currentInstance.classList.remove(StateClass.OPEN),nextInstance.classList.add(StateClass.OPEN);let src=nextInstance.getAttribute(`data-zoom-src`);let alt=nextInstance.getAttribute(`data-zoom-alt`);this.wrapper.style.width=``,this.loader.hidden=!1,src&&this.img.setAttribute(`src`,src),alt&&this.img.setAttribute(`alt`,alt)}addStyle(styleString){let style=document.createElement(`style`);style.id=`MazPreviewStyle`,style.textContent=styleString,document.head.append(style)}keyboardEventHandler(add){if(add)return document.addEventListener(`keydown`,this.keydownHandler);document.removeEventListener(`keydown`,this.keydownHandler)}imgEventHandler(add){if(add)return this.img.addEventListener(`load`,this.onImgLoadedCallback);this.img.removeEventListener(`load`,this.onImgLoadedCallback)}};var instance;var vZoomImg={created(el,binding){instance=new ZoomImgHandler(binding),instance.create(el)},updated(_el,binding){instance.update(binding)},unmounted(el){instance.remove(el)}};var plugin={install(app){app.directive(`zoom-img`,vZoomImg)}};export{vZoomImg as n,plugin as t};