maz-ui 5.0.0-beta.26 → 5.0.0-beta.27

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.
Files changed (35) hide show
  1. package/dist/assets/MazBtn.BaoUBSlx.css +2 -0
  2. package/dist/assets/MazDropdown.CwKIMwpH.css +2 -0
  3. package/dist/assets/MazMarkdownEditor.DeyfIz2b.css +2 -0
  4. package/dist/chunks/{MazBottomSheet.UP5YIGmX.js → MazBottomSheet.D1BeBFNK.js} +1 -1
  5. package/dist/chunks/MazBtn.C7LV-iX2.js +1 -0
  6. package/dist/chunks/MazDropdown.CXgcPcal.js +1 -0
  7. package/dist/chunks/{MazDropzone.CmjGClXN.js → MazDropzone.BanbsoiJ.js} +1 -1
  8. package/dist/chunks/{MazInputTags.ffxbdC-S.js → MazInputTags.q6xAKrH_.js} +1 -1
  9. package/dist/chunks/{MazMarkdownEditor.KJk_7K2D.js → MazMarkdownEditor.BeycUmpM.js} +2 -2
  10. package/dist/chunks/{MazPagination.DNOA8MJ4.js → MazPagination.BLRDXXMX.js} +1 -1
  11. package/dist/chunks/{MazPickerCalendarGrid.CemIxkbm.js → MazPickerCalendarGrid.9RHBzkN0.js} +1 -1
  12. package/dist/components/MazBottomSheet.js +1 -1
  13. package/dist/components/MazBtn.js +1 -1
  14. package/dist/components/MazBtn.vue.d.ts +6 -1
  15. package/dist/components/MazDatePicker/MazPickerCalendarMonth/MazPickerCalendarGrid.js +1 -1
  16. package/dist/components/MazDatePicker/MazPickerCalendarMonth/MazPickerCalendarMonth.js +1 -1
  17. package/dist/components/MazDatePicker/MazPickerCalendarSwitcher.js +1 -1
  18. package/dist/components/MazDatePicker/MazPickerMonthSwitcher.js +1 -1
  19. package/dist/components/MazDatePicker/MazPickerShortcuts.js +1 -1
  20. package/dist/components/MazDatePicker/MazPickerTime.js +1 -1
  21. package/dist/components/MazDatePicker/MazPickerYearSwitcher.js +1 -1
  22. package/dist/components/MazDropdown.js +1 -1
  23. package/dist/components/MazDropdown.vue.d.ts +24 -3
  24. package/dist/components/MazDropzone.js +1 -1
  25. package/dist/components/MazInputTags.js +1 -1
  26. package/dist/components/MazMarkdownEditor.js +1 -1
  27. package/dist/components/MazPagination.js +1 -1
  28. package/dist/components/index.js +1 -1
  29. package/dist/css/main.css +1 -1
  30. package/package.json +4 -4
  31. package/dist/assets/MazBtn.B9XKMqjg.css +0 -2
  32. package/dist/assets/MazDropdown.BX5T1Y_O.css +0 -2
  33. package/dist/assets/MazMarkdownEditor.uPI0V-ow.css +0 -2
  34. package/dist/chunks/MazBtn.DOoL5s3h.js +0 -1
  35. package/dist/chunks/MazDropdown.CO44HhDK.js +0 -1
@@ -0,0 +1,2 @@
1
+ /*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */
2
+ .m-btn[data-v-531af0a0]{--m-btn-bg-hover:oklch(from var(--m-btn-bg) clamp(0, calc(l - .05), 1) c h);--m-btn-bg-active:oklch(from var(--m-btn-bg) clamp(0, calc(l - .1), 1) c h);--m-btn-bd-light:oklch(from var(--m-btn-bg) clamp(0, calc(l + .06), 1) c h);--m-btn-bd-dark:oklch(from var(--m-btn-bg) clamp(0, calc(l - .1), 1) c h);--m-btn-pastel-bg:var(--m-btn-bg)}@supports (color:color-mix(in lab, red, red)){.m-btn[data-v-531af0a0]{--m-btn-pastel-bg:color-mix(in srgb, var(--m-btn-bg) 20%, transparent)}}.m-btn[data-v-531af0a0]{--m-btn-pastel-fg:oklch(from var(--m-btn-bg) clamp(0, calc(l - .1), 1) c h);justify-content:var(--m-btn-justify,center);background-color:var(--m-btn-bg);color:var(--m-btn-fg);font-weight:var(--maz-btn-font-weight,500);outline-offset:2px;outline:2px solid #0000}.m-btn[data-v-531af0a0]:not(:disabled):hover{background-color:var(--m-btn-bg-hover)}.m-btn[data-v-531af0a0]:not(:disabled):active,.m-btn.--active[data-v-531af0a0]{background-color:var(--m-btn-bg-active)}.m-btn[data-v-531af0a0]:focus-visible{outline-color:var(--m-btn-bg,var(--maz-primary))}.m-btn-loader-container[data-v-531af0a0]{inset:calc(var(--maz-space) * 0);background-color:var(--m-btn-bg);color:var(--m-btn-fg);justify-content:center;align-items:center;display:flex;position:absolute}.m-btn.--outlined[data-v-531af0a0]{border-color:var(--m-btn-bd-light);background-color:#0000}.m-btn.--outlined[data-v-531af0a0]:where(.dark,.dark *){border-color:var(--m-btn-bd-dark)}.m-btn.--outlined[data-v-531af0a0]{color:var(--m-btn-bg)}.m-btn.--outlined[data-v-531af0a0]:not(:disabled):hover{background-color:var(--m-btn-bg)}@supports (color:color-mix(in lab, red, red)){.m-btn.--outlined[data-v-531af0a0]:not(:disabled):hover{background-color:color-mix(in srgb, var(--m-btn-bg) 10%, transparent)}}.m-btn.--outlined[data-v-531af0a0]:not(:disabled):active,.m-btn.--outlined.--active[data-v-531af0a0]{background-color:var(--m-btn-bg)}@supports (color:color-mix(in lab, red, red)){.m-btn.--outlined[data-v-531af0a0]:not(:disabled):active,.m-btn.--outlined.--active[data-v-531af0a0]{background-color:color-mix(in srgb, var(--m-btn-bg) 20%, transparent)}}.m-btn.--pastel[data-v-531af0a0]{background-color:var(--m-btn-pastel-bg);color:var(--m-btn-pastel-fg)}.m-btn.--pastel[data-v-531af0a0]:not(:disabled):hover{background-color:var(--m-btn-bg);color:var(--m-btn-fg)}.m-btn.--pastel[data-v-531af0a0]:not(:disabled):active,.m-btn.--pastel.--active[data-v-531af0a0]{background-color:var(--m-btn-bg-hover);color:var(--m-btn-fg)}.m-btn.--transparent[data-v-531af0a0]{color:var(--maz-color-foreground,var(--maz-foreground));background-color:#0000}.m-btn.--transparent[data-v-531af0a0]:not(:disabled):hover{background-color:var(--maz-color-surface-600,oklch(from var(--maz-surface) clamp(0, calc(l - .05), 1) c h))}@supports (color:color-mix(in lab, red, red)){.m-btn.--transparent[data-v-531af0a0]:not(:disabled):hover{background-color:color-mix(in oklab, var(--maz-color-surface-600,oklch(from var(--maz-surface) clamp(0, calc(l - .05), 1) c h)) 50%, transparent)}}.m-btn.--transparent[data-v-531af0a0]:not(:disabled):hover:where(.dark,.dark *){background-color:var(--maz-color-surface-400,oklch(from var(--maz-surface) clamp(0, calc(l + .06), 1) c h))}.m-btn.--transparent.--outlined[data-v-531af0a0]{border-color:var(--maz-color-divider,var(--maz-divider))}.m-btn.--transparent.--outlined[data-v-531af0a0]:not(:disabled):hover{background-color:var(--maz-color-surface-600,oklch(from var(--maz-surface) clamp(0, calc(l - .05), 1) c h))}@supports (color:color-mix(in lab, red, red)){.m-btn.--transparent.--outlined[data-v-531af0a0]:not(:disabled):hover{background-color:color-mix(in oklab, var(--maz-color-surface-600,oklch(from var(--maz-surface) clamp(0, calc(l - .05), 1) c h)) 50%, transparent)}}.m-btn.--transparent.--outlined[data-v-531af0a0]:not(:disabled):active,.m-btn.--transparent.--outlined.--active[data-v-531af0a0],.m-btn.--transparent.--pastel[data-v-531af0a0]:not(:disabled):hover{background-color:var(--maz-color-surface-600,oklch(from var(--maz-surface) clamp(0, calc(l - .05), 1) c h))}.m-btn.--transparent.--pastel[data-v-531af0a0]:not(:disabled):active,.m-btn.--transparent.--pastel.--active[data-v-531af0a0]{background-color:var(--maz-color-surface-700,oklch(from var(--maz-surface) clamp(0, calc(l - .1), 1) c h))}.m-btn.--transparent .m-btn-loader-container[data-v-531af0a0],.m-btn.--surface[data-v-531af0a0]{background-color:var(--maz-color-surface,var(--maz-surface));color:var(--maz-color-foreground,var(--maz-foreground))}.m-btn.--surface[data-v-531af0a0]:not(:disabled):hover{background-color:var(--maz-color-surface-600,oklch(from var(--maz-surface) clamp(0, calc(l - .05), 1) c h))}.m-btn.--surface[data-v-531af0a0]:not(:disabled):hover:where(.dark,.dark *){background-color:var(--maz-color-surface-400,oklch(from var(--maz-surface) clamp(0, calc(l + .06), 1) c h))}.m-btn.--surface[data-v-531af0a0]:not(:disabled):active,.m-btn.--surface.--active[data-v-531af0a0]{background-color:var(--maz-color-surface-700,oklch(from var(--maz-surface) clamp(0, calc(l - .1), 1) c h))}:is(.m-btn.--surface[data-v-531af0a0]:not(:disabled):active,.m-btn.--surface.--active[data-v-531af0a0]):where(.dark,.dark *){background-color:var(--maz-color-surface-300,oklch(from var(--maz-surface) clamp(0, calc(l + .13), 1) c h))}.m-btn.--surface.--outlined[data-v-531af0a0]{border-color:var(--maz-color-divider,var(--maz-divider));background-color:#0000}.m-btn.--surface.--outlined[data-v-531af0a0]:not(:disabled):hover{background-color:var(--maz-color-surface-600,oklch(from var(--maz-surface) clamp(0, calc(l - .05), 1) c h))}@supports (color:color-mix(in lab, red, red)){.m-btn.--surface.--outlined[data-v-531af0a0]:not(:disabled):hover{background-color:color-mix(in oklab, var(--maz-color-surface-600,oklch(from var(--maz-surface) clamp(0, calc(l - .05), 1) c h)) 50%, transparent)}}.m-btn.--surface.--outlined[data-v-531af0a0]:not(:disabled):active,.m-btn.--surface.--outlined.--active[data-v-531af0a0],.m-btn.--surface.--pastel[data-v-531af0a0]{background-color:var(--maz-color-surface-600,oklch(from var(--maz-surface) clamp(0, calc(l - .05), 1) c h))}.m-btn.--surface.--pastel[data-v-531af0a0]:not(:disabled):hover{background-color:var(--maz-color-surface-700,oklch(from var(--maz-surface) clamp(0, calc(l - .1), 1) c h))}.m-btn.--surface.--pastel[data-v-531af0a0]:not(:disabled):active,.m-btn.--surface.--pastel.--active[data-v-531af0a0]{background-color:var(--maz-color-surface-800,oklch(from var(--maz-surface) clamp(0, calc(l - .16), 1) calc(c * .9) h))}.m-btn.--surface .m-btn-loader-container[data-v-531af0a0]{background-color:var(--maz-color-surface-600,oklch(from var(--maz-surface) clamp(0, calc(l - .05), 1) c h));color:var(--maz-color-foreground,var(--maz-foreground))}.m-btn.--surface .m-btn-loader-container[data-v-531af0a0]:where(.dark,.dark *){background-color:var(--maz-color-surface-400,oklch(from var(--maz-surface) clamp(0, calc(l + .06), 1) c h))}.m-btn.--block[data-v-531af0a0]{width:100%}.m-btn[data-v-531af0a0]:disabled:not(.--loading){cursor:var(--maz-disabled-cursor);border-color:var(--maz-color-surface-600,oklch(from var(--maz-surface) clamp(0, calc(l - .05), 1) c h));background-color:var(--maz-color-surface-600,oklch(from var(--maz-surface) clamp(0, calc(l - .05), 1) c h));color:var(--maz-color-muted,var(--maz-muted))}.m-btn[data-v-531af0a0]:disabled:not(.--loading):where(.dark,.dark *){border-color:var(--maz-color-surface-400,oklch(from var(--maz-surface) clamp(0, calc(l + .06), 1) c h));background-color:var(--maz-color-surface-400,oklch(from var(--maz-surface) clamp(0, calc(l + .06), 1) c h))}.m-btn.--loading[data-v-531af0a0]{cursor:wait}.m-btn.--no-padding[data-v-531af0a0]{padding:calc(var(--maz-space) * 0)}
@@ -0,0 +1,2 @@
1
+ /*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */
2
+ @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){[data-v-c9031280],[data-v-c9031280]:before,[data-v-c9031280]:after{--tw-duration:initial;--tw-ease:initial}[data-v-c9031280]::backdrop{--tw-duration:initial;--tw-ease:initial}}}.m-dropdown__icon[data-v-c9031280]{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--ease-out));transition-duration:var(--tw-duration,var(--duration-normal));--tw-duration:.2s;--tw-ease:var(--maz-easing-in-out,cubic-bezier(.4, 0, .2, 1));transition-duration:.2s;transition-timing-function:var(--maz-easing-in-out,cubic-bezier(.4, 0, .2, 1))}.m-dropdown__icon.--open[data-v-c9031280]{rotate:180deg}.m-dropdown__menu .menuitem[data-v-c9031280]{text-align:start;white-space:nowrap}.m-dropdown__menu .menuitem[data-v-c9031280]:not(.menuitem--hoverable){cursor:default}.m-dropdown__menu .menuitem[data-v-c9031280]:not(.menuitem--hoverable):hover{background-color:#0000}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}
@@ -0,0 +1,2 @@
1
+ /*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */
2
+ @layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){[data-v-d061360c],[data-v-d061360c]:before,[data-v-d061360c]:after{--tw-font-weight:initial;--tw-border-style:solid}[data-v-d061360c]::backdrop{--tw-font-weight:initial;--tw-border-style:solid}}}.m-markdown-editor__box[data-v-d061360c]{transition:border-color .2s cubic-bezier(0,0,.2,1)}.m-markdown-editor__box.--primary[data-v-d061360c]:focus-within{border-color:var(--maz-color-primary,var(--maz-primary))}.m-markdown-editor__box.--secondary[data-v-d061360c]:focus-within{border-color:var(--maz-color-secondary,var(--maz-secondary))}.m-markdown-editor__box.--accent[data-v-d061360c]:focus-within{border-color:var(--maz-color-accent,var(--maz-accent))}.m-markdown-editor__box.--info[data-v-d061360c]:focus-within{border-color:var(--maz-color-info,var(--maz-info))}.m-markdown-editor__box.--success[data-v-d061360c]:focus-within{border-color:var(--maz-color-success,var(--maz-success))}.m-markdown-editor__box.--warning[data-v-d061360c]:focus-within{border-color:var(--maz-color-warning,var(--maz-warning))}.m-markdown-editor__box.--destructive[data-v-d061360c]:focus-within{border-color:var(--maz-color-destructive,var(--maz-destructive))}.m-markdown-editor__box.--contrast[data-v-d061360c]:focus-within{border-color:var(--maz-color-contrast,var(--maz-contrast))}.m-markdown-editor__box.--is-disabled[data-v-d061360c] *{cursor:var(--maz-disabled-cursor);color:var(--maz-color-muted,var(--maz-muted))}.m-markdown-editor__gutter[data-v-d061360c]{line-height:1.6}.m-markdown-editor__textarea[data-v-d061360c]{field-sizing:content;line-height:1.6}.m-markdown-editor__preview-content[data-v-d061360c]{line-height:1.6}:is(.m-markdown-editor__preview-content[data-v-d061360c] h1,.m-markdown-editor__preview-content[data-v-d061360c] h2,.m-markdown-editor__preview-content[data-v-d061360c] h3,.m-markdown-editor__preview-content[data-v-d061360c] h4){margin-top:calc(var(--maz-space) * 4);margin-bottom:calc(var(--maz-space) * 2);--tw-font-weight:var(--maz-font-weight-semibold,600);font-weight:var(--maz-font-weight-semibold,600)}:is(.m-markdown-editor__preview-content[data-v-d061360c] h1,.m-markdown-editor__preview-content[data-v-d061360c] h2,.m-markdown-editor__preview-content[data-v-d061360c] h3,.m-markdown-editor__preview-content[data-v-d061360c] h4):first-child{margin-top:calc(var(--maz-space) * 0)}.m-markdown-editor__preview-content[data-v-d061360c] h1{font-size:var(--maz-text-2xl,1.5rem);line-height:var(--tw-leading,var(--maz-text-2xl--line-height,calc(2 / 1.5)))}.m-markdown-editor__preview-content[data-v-d061360c] h2{font-size:var(--maz-text-xl,1.25rem);line-height:var(--tw-leading,var(--maz-text-xl--line-height,calc(1.75 / 1.25)))}.m-markdown-editor__preview-content[data-v-d061360c] h3{font-size:var(--maz-text-lg,1.125rem);line-height:var(--tw-leading,var(--maz-text-lg--line-height,calc(1.75 / 1.125)))}.m-markdown-editor__preview-content[data-v-d061360c] p{margin-block:calc(var(--maz-space) * 2)}:is(.m-markdown-editor__preview-content[data-v-d061360c] ul,.m-markdown-editor__preview-content[data-v-d061360c] ol){margin-block:calc(var(--maz-space) * 2);padding-left:calc(var(--maz-space) * 6)}.m-markdown-editor__preview-content[data-v-d061360c] ul{list-style-type:disc}.m-markdown-editor__preview-content[data-v-d061360c] ol{list-style-type:decimal}.m-markdown-editor__preview-content[data-v-d061360c] a{color:var(--maz-color-primary,var(--maz-primary));text-decoration-line:underline}.m-markdown-editor__preview-content[data-v-d061360c] blockquote{border-left-style:var(--tw-border-style);border-left-width:4px;border-color:var(--maz-color-divider,var(--maz-divider));padding-left:calc(var(--maz-space) * 4);color:var(--maz-color-muted,var(--maz-muted));font-style:italic}.m-markdown-editor__preview-content[data-v-d061360c] code{border-radius:var(--maz-rounded-xs);background-color:var(--maz-color-surface-600,oklch(from var(--maz-surface) clamp(0, calc(l - .05), 1) c h));padding-inline:calc(var(--maz-space) * 1);padding-block:calc(var(--maz-space) * .5);font-family:var(--maz-font-mono-stack);font-size:var(--maz-text-xs,.75rem);line-height:var(--tw-leading,var(--maz-text-xs--line-height,calc(1 / .75)))}.m-markdown-editor__preview-content[data-v-d061360c] code:where(.dark,.dark *){background-color:var(--maz-color-surface-400,oklch(from var(--maz-surface) clamp(0, calc(l + .06), 1) c h))}.m-markdown-editor__preview-content[data-v-d061360c] pre{margin-block:calc(var(--maz-space) * 2);border-radius:var(--maz-rounded-md);background-color:var(--maz-color-surface-600,oklch(from var(--maz-surface) clamp(0, calc(l - .05), 1) c h));padding:calc(var(--maz-space) * 3);overflow-x:auto}.m-markdown-editor__preview-content[data-v-d061360c] pre:where(.dark,.dark *){background-color:var(--maz-color-surface-400,oklch(from var(--maz-surface) clamp(0, calc(l + .06), 1) c h))}.m-markdown-editor__preview-content[data-v-d061360c] pre code{padding:calc(var(--maz-space) * 0);background-color:#0000}.m-markdown-editor__preview-content[data-v-d061360c] table{margin-block:calc(var(--maz-space) * 2);border-collapse:collapse;width:100%}:is(.m-markdown-editor__preview-content[data-v-d061360c] th,.m-markdown-editor__preview-content[data-v-d061360c] td){border-style:var(--tw-border-style);border-width:var(--maz-border-width);border-color:var(--maz-color-divider,var(--maz-divider));padding-inline:calc(var(--maz-space) * 2);padding-block:calc(var(--maz-space) * 1)}:is(.m-markdown-editor__preview-content[data-v-d061360c] th,.m-markdown-editor__preview-content[data-v-d061360c] td):where(.dark,.dark *){border-color:var(--maz-color-divider-400,oklch(from var(--maz-divider) clamp(0, calc(l + .06), 1) c h))}.m-markdown-editor__preview-content[data-v-d061360c] img{max-width:100%}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}
@@ -1 +1 @@
1
- import{t as MazIcon_default}from"./MazIcon.CblJ-8Iu.js";import{t as MazBtn_default}from"./MazBtn.DOoL5s3h.js";import{t as MazBackdrop_default}from"./MazBackdrop.DfqSzNiW.js";import{createBlock,createCommentVNode,createElementVNode,createVNode,defineComponent,normalizeClass,openBlock,renderSlot,unref,withCtx}from"vue";import{MazXMark}from"@maz-ui/icons/raw/MazXMark";var MazBottomSheet_default=defineComponent({__name:`MazBottomSheet`,props:{modelValue:{type:Boolean},hideCloseButton:{type:Boolean,default:!1},padding:{type:Boolean,default:!0}},emits:[`update:model-value`,`open`,`close`],setup(__props,{emit:__emit}){let emits=__emit;return(_ctx,_cache)=>(openBlock(),createBlock(MazBackdrop_default,{"model-value":__props.modelValue,"transition-name":`bottom-sheet-anim`,"backdrop-class":`--bottom-sheet`,"content-padding":!1,align:`end`,justify:`none`,variant:`bottom-sheet`,onClose:_cache[0]||=$event=>_ctx.$emit(`close`,$event),onOpen:_cache[1]||=$event=>_ctx.$emit(`open`,$event),"onUpdate:modelValue":_cache[2]||=$event=>emits(`update:model-value`,$event)},{default:withCtx(({close})=>[createElementVNode(`div`,{class:normalizeClass([`m-bottom-sheet__container maz:relative maz:w-full maz:rounded-t-lg maz:bg-container maz:px-12 maz:text-foreground maz:shadow-elevation maz:drop-shadow-md`,{"--padding":__props.padding,"maz:py-6":__props.padding}])},[renderSlot(_ctx.$slots,`default`,{close}),__props.hideCloseButton?createCommentVNode(``,!0):(openBlock(),createBlock(MazBtn_default,{key:0,size:`sm`,class:`m-bottom-sheet__close maz:absolute! maz:inset-e-2 maz:top-2`,color:`transparent`,onClick:close},{default:withCtx(()=>[createVNode(MazIcon_default,{icon:unref(MazXMark),class:`maz:text-lg`},null,8,[`icon`])]),_:1},8,[`onClick`]))],2)]),_:3},8,[`model-value`]))}});export{MazBottomSheet_default as t};
1
+ import{t as MazIcon_default}from"./MazIcon.CblJ-8Iu.js";import{t as MazBtn_default}from"./MazBtn.C7LV-iX2.js";import{t as MazBackdrop_default}from"./MazBackdrop.DfqSzNiW.js";import{createBlock,createCommentVNode,createElementVNode,createVNode,defineComponent,normalizeClass,openBlock,renderSlot,unref,withCtx}from"vue";import{MazXMark}from"@maz-ui/icons/raw/MazXMark";var MazBottomSheet_default=defineComponent({__name:`MazBottomSheet`,props:{modelValue:{type:Boolean},hideCloseButton:{type:Boolean,default:!1},padding:{type:Boolean,default:!0}},emits:[`update:model-value`,`open`,`close`],setup(__props,{emit:__emit}){let emits=__emit;return(_ctx,_cache)=>(openBlock(),createBlock(MazBackdrop_default,{"model-value":__props.modelValue,"transition-name":`bottom-sheet-anim`,"backdrop-class":`--bottom-sheet`,"content-padding":!1,align:`end`,justify:`none`,variant:`bottom-sheet`,onClose:_cache[0]||=$event=>_ctx.$emit(`close`,$event),onOpen:_cache[1]||=$event=>_ctx.$emit(`open`,$event),"onUpdate:modelValue":_cache[2]||=$event=>emits(`update:model-value`,$event)},{default:withCtx(({close})=>[createElementVNode(`div`,{class:normalizeClass([`m-bottom-sheet__container maz:relative maz:w-full maz:rounded-t-lg maz:bg-container maz:px-12 maz:text-foreground maz:shadow-elevation maz:drop-shadow-md`,{"--padding":__props.padding,"maz:py-6":__props.padding}])},[renderSlot(_ctx.$slots,`default`,{close}),__props.hideCloseButton?createCommentVNode(``,!0):(openBlock(),createBlock(MazBtn_default,{key:0,size:`sm`,class:`m-bottom-sheet__close maz:absolute! maz:inset-e-2 maz:top-2`,color:`transparent`,onClick:close},{default:withCtx(()=>[createVNode(MazIcon_default,{icon:unref(MazXMark),class:`maz:text-lg`},null,8,[`icon`])]),_:1},8,[`onClick`]))],2)]),_:3},8,[`model-value`]))}});export{MazBottomSheet_default as t};
@@ -0,0 +1 @@
1
+ import{t as hasSlotContent}from"./hasSlotContent.rEQOMGV4.js";import{t as getColor}from"./types.BkdDF2d8.js";import{t as _plugin_vue_export_helper_default}from"./_plugin-vue_export-helper.zP_plvmB.js";import{useMazIconProps}from"../composables/useMazIconProps.js";import{useGlobalConfig}from"../composables/useGlobalConfig.js";import{t as resolveLinkComponent}from"./resolveLinkComponent.Cbat3RFd.js";import{computed,createBlock,createCommentVNode,createElementBlock,createTextVNode,createVNode,defineAsyncComponent,defineComponent,mergeProps,normalizeClass,normalizeProps,normalizeStyle,openBlock,renderSlot,resolveDynamicComponent,toDisplayString,unref,useAttrs,withCtx}from"vue";import '../assets/MazBtn.BaoUBSlx.css';var _hoisted_1={key:0,class:`m-btn-loader-container`};var MazBtn_default=_plugin_vue_export_helper_default(defineComponent({__name:`MazBtn`,props:{text:{},size:{},color:{default:`primary`},textColor:{},type:{default:`button`},roundedSize:{},outlined:{type:Boolean},pastel:{type:Boolean},block:{type:Boolean},loading:{type:Boolean},disabled:{type:Boolean},fab:{type:Boolean},icon:{type:[String,Function,Object]},startIcon:{type:[String,Function,Object]},endIcon:{type:[String,Function,Object]},padding:{type:Boolean,default:!0},justify:{default:`center`},active:{type:Boolean}},setup(__props){let{size,roundedSize}=useGlobalConfig(`MazBtn`,{size:`md`,roundedSize:`md`});let MazIcon=defineAsyncComponent(()=>import(`../components/MazIcon.js`));let MazSpinner=defineAsyncComponent(()=>import(`../components/MazSpinner.js`));let{href,to}=useAttrs();let component=computed(()=>href?`a`:to?resolveLinkComponent():`button`);let resolvedColor=computed(()=>getColor(__props.color));let isDisabled=computed(()=>(__props.loading||__props.disabled)&&component.value===`button`);let btnType=computed(()=>component.value===`button`?__props.type:void 0);let iconSize=computed(()=>({xl:`lg`,lg:`md`,md:`md`,sm:`sm`,xs:`xs`,mini:`1em`})[size.value]||`lg`);let{iconProps:startIconProps}=useMazIconProps(()=>__props.startIcon,()=>({size:iconSize.value}));let{iconProps:endIconProps}=useMazIconProps(()=>__props.endIcon,()=>({size:iconSize.value}));let{iconProps:fabIconProps}=useMazIconProps(()=>__props.icon,()=>({size:iconSize.value}));let btnStyle=computed(()=>{let c=resolvedColor.value;let base={"--m-btn-justify":__props.justify};return c===`transparent`||c===`surface`?base:{...base,"--m-btn-bg":`var(--maz-${c})`,"--m-btn-fg":`var(--maz-${c}-foreground)`,...__props.pastel&&c===`contrast`&&{"--m-btn-pastel-fg":`var(--maz-contrast-foreground)`}}});let TEXT_COLOR={primary:`maz:text-primary!`,secondary:`maz:text-secondary!`,accent:`maz:text-accent!`,info:`maz:text-info!`,success:`maz:text-success!`,warning:`maz:text-warning!`,destructive:`maz:text-destructive!`,contrast:`maz:text-contrast!`,transparent:`maz:text-transparent!`,muted:`maz:text-muted!`};let SIZE_CLASS={xl:`maz:min-h-16 maz:px-8 maz:text-xl`,lg:`maz:min-h-14 maz:px-6`,md:`maz:min-h-12 maz:px-4`,sm:`maz:min-h-10 maz:px-3`,xs:`maz:min-h-8 maz:px-2 maz:text-sm`,mini:`maz:min-h-6 maz:px-1 maz:text-xs`};let ROUNDED_CLASS={none:``,sm:`maz:rounded-xs`,md:`maz:rounded-md`,lg:`maz:rounded-lg`,xl:`maz:rounded-xl`,full:`maz:rounded-full`};let FAB_SIZE_CLASS={xl:`maz:w-16`,lg:`maz:w-14`,md:`maz:w-12`,sm:`maz:w-10`,xs:`maz:w-8`,mini:`maz:w-6`};let ICON_PADDING_CLASS={xl:{start:`maz:ps-6`,end:`maz:pe-6`},lg:{start:`maz:ps-4`,end:`maz:pe-4`},md:{start:`maz:ps-2`,end:`maz:pe-2`},sm:{start:`maz:ps-2`,end:`maz:pe-2`},xs:{start:``,end:``},mini:{start:``,end:``}};return(_ctx,_cache)=>(openBlock(),createBlock(resolveDynamicComponent(component.value),{disabled:isDisabled.value,class:normalizeClass([`m-btn m-reset-css maz:inline-flex maz:cursor-pointer maz:items-center maz:gap-2 maz:overflow-hidden maz:border maz:border-solid maz:border-transparent maz:bg-transparent maz:py-0.5 maz:text-center maz:align-top maz:text-foreground maz:no-underline maz:transition-all maz:duration-200 maz:ease-in-out`,[`--${resolvedColor.value}`,`--${unref(size)}`,__props.textColor&&`${TEXT_COLOR[__props.textColor]}`,!__props.fab&&unref(roundedSize)?`--rounded-${unref(roundedSize)}`:``,SIZE_CLASS[unref(size)],__props.fab?`maz:flex maz:flex-center maz:rounded-full maz:p-1`:ROUNDED_CLASS[unref(roundedSize)],__props.fab?FAB_SIZE_CLASS[unref(size)]:``,__props.startIcon||unref(hasSlotContent)(_ctx.$slots[`start-icon`])?ICON_PADDING_CLASS[unref(size)].start:``,__props.endIcon||unref(hasSlotContent)(_ctx.$slots[`end-icon`])?ICON_PADDING_CLASS[unref(size)].end:``,{"maz:relative":__props.loading,"--outlined":__props.outlined,"--pastel":__props.pastel,"--block":__props.block&&!__props.fab,"--fab":__props.fab,"--loading":__props.loading,"--active":__props.active,"--no-padding":!__props.padding,"--has-start-icon":!!__props.startIcon||unref(hasSlotContent)(_ctx.$slots[`start-icon`]),"--has-end-icon":!!__props.endIcon||unref(hasSlotContent)(_ctx.$slots[`end-icon`])}]]),style:normalizeStyle(btnStyle.value),type:btnType.value},{default:withCtx(()=>[renderSlot(_ctx.$slots,`start-icon`,{},()=>[unref(startIconProps)?(openBlock(),createBlock(unref(MazIcon),normalizeProps(mergeProps({key:0},unref(startIconProps))),null,16)):createCommentVNode(``,!0)],!0),renderSlot(_ctx.$slots,`icon`,{},()=>[unref(fabIconProps)?(openBlock(),createBlock(unref(MazIcon),normalizeProps(mergeProps({key:0},unref(fabIconProps))),null,16)):createCommentVNode(``,!0)],!0),renderSlot(_ctx.$slots,`default`,{},()=>[createTextVNode(toDisplayString(__props.text),1)],!0),renderSlot(_ctx.$slots,`end-icon`,{},()=>[unref(endIconProps)?(openBlock(),createBlock(unref(MazIcon),normalizeProps(mergeProps({key:0},unref(endIconProps))),null,16)):createCommentVNode(``,!0)],!0),__props.loading?(openBlock(),createElementBlock(`div`,_hoisted_1,[renderSlot(_ctx.$slots,`loader`,{},()=>[createVNode(unref(MazSpinner),{size:`2em`})],!0)])):createCommentVNode(``,!0)]),_:3},8,[`disabled`,`class`,`style`,`type`]))}}),[[`__scopeId`,`data-v-531af0a0`]]);export{MazBtn_default as t};
@@ -0,0 +1 @@
1
+ import{useInstanceUniqId}from"../composables/useInstanceUniqId.js";import{t as hasSlotContent}from"./hasSlotContent.rEQOMGV4.js";import{t as MazPopover_default}from"./MazPopover.ClEt7yBl.js";import{t as _plugin_vue_export_helper_default}from"./_plugin-vue_export-helper.zP_plvmB.js";import{useMazIconProps}from"../composables/useMazIconProps.js";import{useGlobalConfig}from"../composables/useGlobalConfig.js";import{Fragment,computed,createBlock,createCommentVNode,createElementBlock,createElementVNode,createSlots,createTextVNode,createVNode,defineAsyncComponent,defineComponent,mergeModels,mergeProps,normalizeClass,normalizeStyle,openBlock,renderList,renderSlot,toDisplayString,unref,useModel,useTemplateRef,watch,withCtx,withKeys,withModifiers}from"vue";import{useTranslations}from"@maz-ui/translations/composables/useTranslations";import{isClient}from"@maz-ui/utils/helpers/isClient";import{MazChevronDown}from"@maz-ui/icons/raw/MazChevronDown";import '../assets/MazDropdown.CwKIMwpH.css';var _hoisted_1=[`id`];var _hoisted_2=[`id`];var _hoisted_3=[`id`];var MazDropdown_default=_plugin_vue_export_helper_default(defineComponent({inheritAttrs:!1,__name:`MazDropdown`,props:mergeModels({modelValue:{type:Boolean},style:{type:[Boolean,null,String,Object,Array]},class:{type:[Boolean,null,String,Object,Array]},items:{default:()=>[]},itemsSize:{},id:{},trigger:{default:`adaptive`},color:{default:`transparent`},position:{default:`auto`},closeOnClick:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},chevron:{type:Boolean,default:!0},screenReaderDescription:{},menuPanelClass:{type:[Boolean,null,String,Object,Array]},menuPanelStyle:{type:[Boolean,null,String,Object,Array]},block:{type:Boolean},dropdownIcon:{type:[String,Function,Object]},dropdownIconAnimation:{type:Boolean,default:!0},size:{},transition:{default:`scale-pop`},preferPosition:{default:`bottom-start`},fallbackPosition:{},ariaLabel:{},announceChanges:{type:Boolean},offset:{},delay:{},hoverDelay:{},teleportTo:{},overlayClass:{type:[Boolean,null,String,Object,Array]},panelClass:{type:[Boolean,null,String,Object,Array]},panelStyle:{type:[Boolean,null,String,Object,Array]},closeOnClickOutside:{type:Boolean},closeOnEscape:{type:Boolean},persistent:{type:Boolean},ariaLabelledby:{},ariaDescribedby:{},trapFocus:{type:Boolean},keepOpenOnHover:{type:Boolean},positionReference:{}},{modelValue:{default:!1},modelModifiers:{}}),emits:mergeModels([`menuitem-clicked`,`update:model-value`],[`update:modelValue`]),setup(__props,{emit:__emit}){let emits=__emit;let{size}=useGlobalConfig(`MazDropdown`,{size:`md`});let MazBtn=defineAsyncComponent(()=>import(`../components/MazBtn.js`));let MazIcon=defineAsyncComponent(()=>import(`../components/MazIcon.js`));let{iconProps:dropdownIconProps}=useMazIconProps(()=>__props.dropdownIcon??MazChevronDown);let instanceId=useInstanceUniqId({componentName:`MazDropdown`,providedId:__props.id});let{t}=useTranslations();let isOpen=useModel(__props,`modelValue`);let iconClassSize=computed(()=>size.value===`xl`?`maz:text-lg`:size.value===`lg`||size.value===`md`||size.value===`sm`?`maz:text-base`:size.value===`xs`||size.value===`mini`?`maz:text-sm`:`maz:text-lg`);function setDropdown(value){__props.disabled||(isOpen.value=value)}function isLinkItem(item){return`href`in item||`to`in item}function hasLinkOrAction(item){return isLinkItem(item)||`onClick`in item}async function runAction(item,event){emits(`menuitem-clicked`,event),await item.onClick?.(),closeDropdown()}function closeDropdown(){__props.closeOnClick&&setDropdown(!1)}function keydownHandler(event){[`ArrowDown`,`ArrowUp`].includes(event.key)?arrowHandler(event):event.key===`Enter`&&(event.preventDefault(),document.activeElement?.click(),closeDropdown())}function arrowHandler(event){event.preventDefault();let code=event.key;let itemLength=__props.items?.length;if(!itemLength)return;let currentElement=document.activeElement;let itemsElements=Array.from(document.querySelectorAll(`#${instanceId.value}-menu .menuitem`)).filter(el=>el.getAttribute(`tabindex`)!==`-1`);let currentIndex=[...itemsElements].indexOf(currentElement);if(currentIndex===-1){itemsElements[0]?.focus();return}itemsElements[code===`ArrowDown`?(currentIndex+1)%itemLength:(currentIndex-1+itemLength)%itemLength]?.focus()}let mazPopoverElement=useTemplateRef(`mazPopoverRef`);function onBlurTrigger(event){event.preventDefault(),!(mazPopoverElement.value?.panelRef)?.contains(event.relatedTarget)&&setDropdown(!1)}return watch(isOpen,value=>{isClient()&&(value?document.addEventListener(`keydown`,keydownHandler):document.removeEventListener(`keydown`,keydownHandler))}),(_ctx,_cache)=>(openBlock(),createBlock(MazPopover_default,{ref:`mazPopoverRef`,trigger:__props.trigger,"model-value":isOpen.value,class:normalizeClass([`m-dropdown m-reset-css`,[__props.class]]),role:`menu`,style:normalizeStyle(__props.style),"prefer-position":__props.preferPosition,color:`surface`,position:__props.position,transition:__props.transition,disabled:__props.disabled,offset:__props.offset,delay:__props.delay,"fallback-position":__props.fallbackPosition,persistent:__props.persistent,"hover-delay":__props.hoverDelay,"panel-class":__props.panelClass,"panel-style":__props.panelStyle,"close-on-escape":__props.closeOnEscape,"close-on-click":__props.closeOnClick,"teleport-to":__props.teleportTo,"trap-focus":__props.trapFocus,"overlay-class":__props.overlayClass,"close-on-click-outside":__props.closeOnClickOutside,"aria-describedby":__props.ariaDescribedby,"announce-changes":__props.announceChanges,"aria-label":__props.ariaLabel,"aria-labelledby":__props.ariaLabelledby,"position-reference":__props.positionReference,"keep-open-on-hover":__props.trigger===`hover`||__props.trigger===`adaptive`,block:__props.block,"onUpdate:modelValue":setDropdown},{trigger:withCtx(({toggle,close,open})=>[createElementVNode(`div`,{id:unref(instanceId),tabindex:`-1`,class:`m-dropdown__wrapper maz:size-full maz:rounded-md maz:outline-hidden maz:focus:bg-surface-600 maz:dark:focus:bg-surface-400`},[createElementVNode(`span`,{id:`${unref(instanceId)}-labelspan`,class:`maz:sr-only`},[renderSlot(_ctx.$slots,`screen-reader-description`,{},()=>[createTextVNode(toDisplayString(__props.screenReaderDescription||unref(t)(`dropdown.screenReaderDescription`)),1)],!0)],8,_hoisted_2),renderSlot(_ctx.$slots,`trigger`,{isOpen:isOpen.value,toggle,close,open},()=>[createVNode(unref(MazBtn),mergeProps({"aria-labelledby":`${unref(instanceId)}-labelspan`,color:__props.color,disabled:__props.disabled},_ctx.$attrs,{block:__props.block,size:unref(size),onKeydown:[withKeys(withModifiers(toggle,[`stop`,`prevent`]),[`enter`]),withKeys(withModifiers(toggle,[`stop`,`prevent`]),[`space`]),withKeys(withModifiers(close,[`stop`,`prevent`]),[`escape`])],onBlur:withModifiers(onBlurTrigger,[`stop`,`prevent`])}),createSlots({default:withCtx(()=>[renderSlot(_ctx.$slots,`default`,{},void 0,!0)]),_:2},[__props.chevron||unref(hasSlotContent)(_ctx.$slots[`dropdown-icon`])?{name:`end-icon`,fn:withCtx(()=>[renderSlot(_ctx.$slots,`dropdown-icon`,{isOpen:isOpen.value,toggle,close,open},()=>[unref(dropdownIconProps)?(openBlock(),createBlock(unref(MazIcon),mergeProps({key:0},unref(dropdownIconProps),{class:[[{"--open":isOpen.value&&__props.dropdownIconAnimation},iconClassSize.value],`m-dropdown__icon`]}),null,16,[`class`])):createCommentVNode(``,!0)],!0)]),key:`0`}:void 0]),1040,[`aria-labelledby`,`color`,`disabled`,`block`,`size`,`onKeydown`])],!0)],8,_hoisted_1)]),default:withCtx(({open,close,toggle})=>[createElementVNode(`div`,{id:`${unref(instanceId)}-menu`,role:`menu`,"aria-label":`Menu`,class:normalizeClass([`m-dropdown__menu maz:flex maz:min-h-max maz:min-w-max maz:flex-col maz:gap-1 maz:overflow-auto maz:p-2`,__props.menuPanelClass]),tabindex:`-1`,style:normalizeStyle(__props.menuPanelStyle)},[renderSlot(_ctx.$slots,`dropdown`,{items:__props.items,open,close,isOpen:isOpen.value,toggle},()=>[renderSlot(_ctx.$slots,`prepend-menu`,{isOpen:isOpen.value,open,close,toggle},void 0,!0),(openBlock(!0),createElementBlock(Fragment,null,renderList(__props.items,(item,index)=>renderSlot(_ctx.$slots,`menuitem`,{key:index,item,open,close,isOpen:isOpen.value,toggle},()=>[createVNode(unref(MazBtn),mergeProps({ref_for:!0},{...item,onClick:void 0,label:void 0},{target:isLinkItem(item)?item.target??`_self`:void 0,to:isLinkItem(item)?item.to:void 0,href:isLinkItem(item)?item.href:void 0,class:[`menuitem`,[{"menuitem--hoverable":hasLinkOrAction(item)},item.class,isLinkItem(item)?`menuitem__link`:`menuitem__button`,`menuitem--${item.color}`]],justify:item.justify??`start`,color:item.color??`transparent`,size:__props.itemsSize??item.size??unref(size),disabled:item.disabled??!1,tabindex:hasLinkOrAction(item)?0:-1,onClick:withModifiers($event=>runAction(item,$event),[`stop`]),onKeypress:withKeys(withModifiers($event=>runAction(item,$event),[`stop`,`prevent`]),[`enter`])}),{default:withCtx(()=>[renderSlot(_ctx.$slots,`menuitem-label`,{item,open,close,isOpen:isOpen.value,toggle},()=>[createTextVNode(toDisplayString(item.label),1)],!0)]),_:2},1040,[`target`,`to`,`href`,`class`,`justify`,`color`,`size`,`disabled`,`tabindex`,`onClick`,`onKeypress`])],!0)),128)),renderSlot(_ctx.$slots,`append-menu`,{isOpen:isOpen.value,open,close,toggle},void 0,!0)],!0)],14,_hoisted_3)]),_:3},8,`trigger.model-value.style.prefer-position.position.transition.disabled.offset.delay.fallback-position.persistent.hover-delay.panel-class.panel-style.close-on-escape.close-on-click.teleport-to.trap-focus.overlay-class.close-on-click-outside.aria-describedby.announce-changes.aria-label.aria-labelledby.position-reference.keep-open-on-hover.class.block`.split(`.`)))}}),[[`__scopeId`,`data-v-c9031280`]]);export{MazDropdown_default as t};
@@ -1 +1 @@
1
- import{useInstanceUniqId}from"../composables/useInstanceUniqId.js";import{t as _plugin_vue_export_helper_default}from"./_plugin-vue_export-helper.zP_plvmB.js";import{useDropzone}from"../composables/useDropzone.js";import{t as MazIcon_default}from"./MazIcon.CblJ-8Iu.js";import{t as MazLink_default}from"./MazLink.CemC1AR_.js";import{t as MazBtn_default}from"./MazBtn.DOoL5s3h.js";import{Fragment,Transition,TransitionGroup,computed,createBlock,createCommentVNode,createElementBlock,createElementVNode,createTextVNode,createVNode,defineAsyncComponent,defineComponent,mergeModels,mergeProps,normalizeClass,normalizeStyle,onBeforeMount,openBlock,ref,renderList,renderSlot,toDisplayString,unref,useModel,withCtx,withModifiers}from"vue";import{useTranslations}from"@maz-ui/translations/composables/useTranslations";import{sleep}from"@maz-ui/utils/helpers/sleep";import{MazCheckCircle}from"@maz-ui/icons/lazy/MazCheckCircle";import{MazCodeBracket}from"@maz-ui/icons/lazy/MazCodeBracket";import{MazPhoto}from"@maz-ui/icons/lazy/MazPhoto";import{MazArchiveBox}from"@maz-ui/icons/lazy/MazArchiveBox";import{MazArrowUpOnSquare}from"@maz-ui/icons/lazy/MazArrowUpOnSquare";import{MazCog}from"@maz-ui/icons/lazy/MazCog";import{MazCommandLine}from"@maz-ui/icons/lazy/MazCommandLine";import{MazDocumentIcon}from"@maz-ui/icons/lazy/MazDocumentIcon";import{MazDocumentText}from"@maz-ui/icons/lazy/MazDocumentText";import{MazFilm}from"@maz-ui/icons/lazy/MazFilm";import{MazLogoAndroid}from"@maz-ui/icons/lazy/MazLogoAndroid";import{MazLogoApple}from"@maz-ui/icons/lazy/MazLogoApple";import{MazLogoCsv}from"@maz-ui/icons/lazy/MazLogoCsv";import{MazLogoHtml}from"@maz-ui/icons/lazy/MazLogoHtml";import{MazLogoJs}from"@maz-ui/icons/lazy/MazLogoJs";import{MazLogoJson}from"@maz-ui/icons/lazy/MazLogoJson";import{MazLogoMarkdown}from"@maz-ui/icons/lazy/MazLogoMarkdown";import{MazLogoProperties}from"@maz-ui/icons/lazy/MazLogoProperties";import{MazLogoReact}from"@maz-ui/icons/lazy/MazLogoReact";import{MazLogoTxt}from"@maz-ui/icons/lazy/MazLogoTxt";import{MazLogoTypescript}from"@maz-ui/icons/lazy/MazLogoTypescript";import{MazLogoVue}from"@maz-ui/icons/lazy/MazLogoVue";import{MazLogoXliff}from"@maz-ui/icons/lazy/MazLogoXliff";import{MazLogoXls}from"@maz-ui/icons/lazy/MazLogoXls";import{MazLogoXml}from"@maz-ui/icons/lazy/MazLogoXml";import{MazPaintBrush}from"@maz-ui/icons/lazy/MazPaintBrush";import{MazPencilSquare}from"@maz-ui/icons/lazy/MazPencilSquare";import{MazPresentationChartBar}from"@maz-ui/icons/lazy/MazPresentationChartBar";import{MazSpeakerWave}from"@maz-ui/icons/lazy/MazSpeakerWave";import{MazTrash}from"@maz-ui/icons/lazy/MazTrash";import{MazXCircle}from"@maz-ui/icons/lazy/MazXCircle";import '../assets/MazDropzone._IzxepXc.css';var _hoisted_1=[`for`];var _hoisted_2={class:`m-dropzone__icon-container`};var _hoisted_3={key:3,class:`m-dropzone__file-icon-wrapper`};var _hoisted_4={class:`m-dropzone__description`};var _hoisted_5={class:`m-dropzone__file-info`};var _hoisted_6={class:`m-dropzone__file-name`};var _hoisted_7={class:`m-dropzone__file-size`};var _hoisted_8={class:`m-dropzone__content`};var _hoisted_9={class:`m-dropzone__upload-text`};var _hoisted_10={key:0,class:`m-dropzone__info-text`};var _hoisted_11={key:0};var _hoisted_12={key:1};var _hoisted_13={key:2};var _hoisted_14=[`id`,`multiple`,`accept`,`disabled`];var MazDropzone_default=_plugin_vue_export_helper_default(defineComponent({__name:`MazDropzone`,props:mergeModels({id:{},multiple:{type:Boolean,default:!1},dataTypes:{},preventDefaultForUnhandled:{type:Boolean,default:!0},maxFileSize:{},maxFiles:{},disabled:{type:Boolean,default:!1},preview:{type:Boolean,default:!0},minFileSize:{},allowDuplicates:{type:Boolean,default:!1},translations:{},color:{default:`primary`},removeFileBtnProps:{default:()=>({})},spinnerProps:{default:()=>({})},autoUpload:{type:[String,Boolean],default:!1},url:{},requestOptions:{},transformBody:{type:Function},maxConcurrentUploads:{default:5}},{modelValue:{default:()=>[]},modelModifiers:{}}),emits:mergeModels([`drop`,`enter`,`leave`,`over`,`add`,`remove`,`error`,`upload-error`,`upload-error-multiple`,`upload-success`,`upload-success-multiple`],[`update:modelValue`]),setup(__props,{expose:__expose,emit:__emit}){let emits=__emit;let MazSpinner=defineAsyncComponent(()=>import(`../components/MazSpinner.js`));let filesData=useModel(__props,`modelValue`);onBeforeMount(async()=>{filesData.value.length&&(filesData.value=await Promise.all(filesData.value.map(fileData=>getFileData(fileData.file))))});let dropZoneRef=ref();let isUploading=ref(!1);let hasMultiple=computed(()=>__props.multiple||(__props.maxFiles?__props.maxFiles>1:!1)||__props.autoUpload===`multiple`);let instanceId=useInstanceUniqId({componentName:`MazDropzone`,providedId:__props.id});function uploadFile(formData){if(!__props.url)throw emits(`error`,{files:null,event:null,code:`NO_URL`}),Error(`NO_URL`);try{let body=__props.transformBody?.(formData)??formData;return fetch(__props.url,{method:`POST`,body,...__props.requestOptions})}catch{emits(`error`,{files:null,event:null,code:`FILE_UPLOAD_ERROR`})}}function getFormData(file){let formData=new FormData;return formData.append(`file`,file),formData}function getFormDataMultiple(){let formData=new FormData;return filesData.value.forEach(fileData=>formData.append(`files`,fileData.file)),formData}async function uploadFilesMultiple(){if(!filesData.value.length){emits(`error`,{files:filesData.value.map(f=>f.file),event:null,code:`NO_FILES_TO_UPLOAD`});return}try{isUploading.value=!0,filesData.value=filesData.value.map(f=>({...f,uploading:!0,success:!1,error:!1}));let response=await uploadFile(getFormDataMultiple());filesData.value=filesData.value.map(f=>({...f,uploading:!1,success:!0,error:!1})),emits(`upload-success-multiple`,{files:filesData.value.map(f=>f.file),response})}catch(error){filesData.value=filesData.value.map(f=>({...f,uploading:!1,success:!1,error:!0})),emits(`upload-error-multiple`,{files:filesData.value.map(f=>f.file),code:`FILE_UPLOAD_ERROR_MULTIPLE`,error})}finally{isUploading.value=!1,await sleep(1e3),filesData.value=filesData.value.filter(f=>f.error)}}async function uploadFiles(){if(!filesData.value.length)throw emits(`error`,{files:filesData.value.map(f=>f.file),event:null,code:`NO_FILES_TO_UPLOAD`}),Error(`NO_FILES_TO_UPLOAD`);try{isUploading.value=!0;let queue=[...filesData.value];let activeUploads=[];async function uploadFileData(fileData){let formData=getFormData(fileData.file);try{fileData.error=!1,fileData.uploading=!0;let response=await uploadFile(formData);emits(`upload-success`,{file:fileData.file,response}),fileData.success=!0}catch(error){fileData.error=!0,emits(`upload-error`,{file:fileData.file,code:`FILE_UPLOAD_ERROR`,error})}finally{fileData.uploading=!1}}async function processQueue(){for(;queue.length>0;){let fileData=queue.shift();fileData&&await uploadFileData(fileData)}}for(let i=0;i<Math.min(__props.maxConcurrentUploads,filesData.value.length);i++)activeUploads.push(processQueue());await Promise.allSettled(activeUploads)}finally{isUploading.value=!1,await sleep(1e3),filesData.value=filesData.value.filter(f=>f.error)}}async function getFileData(file){let fileData={file,name:file.name,size:file.size,type:file.type,lastModified:file.lastModified,sizeInMb:(file.size/1024/1024).toFixed(2),lastModifiedDate:new Date(file.lastModified),url:URL.createObjectURL(file),thumbnail:void 0,uploading:!1,success:!1,error:!1};return file.type.startsWith(`image/`)&&await new Promise(resolve=>{let reader=new FileReader;reader.onload=event=>{fileData.thumbnail=event.target?.result||void 0,resolve(null)},reader.readAsDataURL(file)}),__props.maxFileSize&&file.size>__props.maxFileSize*1024*1024&&emits(`error`,{files:[file],event:null,code:`FILE_SIZE_EXCEEDED`}),__props.minFileSize&&file.size<__props.minFileSize*1024*1024&&emits(`error`,{files:[file],event:null,code:`FILE_SIZE_TOO_SMALL`}),fileData}async function handleFiles(files){if(__props.disabled||!files)return null;for await(let file of files){if(!isFileTypeAllowed(file)){emits(`error`,{files:[file],event:null,code:`FILE_TYPE_NOT_ALLOWED`});continue}if(!hasMultiple.value&&filesData.value.length>=1){emits(`error`,{files:[file],event:null,code:`MAX_FILES_EXCEEDED`});continue}if(__props.maxFiles&&filesData.value.length>=__props.maxFiles){emits(`error`,{files:[file],event:null,code:`MAX_FILES_EXCEEDED`});continue}if(__props.maxFileSize&&file.size>__props.maxFileSize*1024*1024){emits(`error`,{files:[file],event:null,code:`FILE_SIZE_EXCEEDED`});continue}if(__props.minFileSize&&file.size<__props.minFileSize*1024*1024){emits(`error`,{files:[file],event:null,code:`FILE_SIZE_TOO_SMALL`});continue}if(!__props.allowDuplicates&&filesData.value.some(f=>f.name===file.name&&f.size===file.size&&f.type===file.type)){emits(`error`,{files:[file],event:null,code:`FILE_DUPLICATED`});continue}let fileData=await getFileData(file);filesData.value=[...filesData.value,fileData],emits(`add`,fileData.file)}return __props.autoUpload===`single`?uploadFiles():__props.autoUpload===`multiple`&&uploadFilesMultiple(),filesData.value}async function onDrop(files,event){await handleFiles(files),emits(`drop`,{files,event})}function onError(files,event){emits(`error`,{files,event,code:`FILE_TYPE_NOT_ALLOWED`})}function onEnter(files,event){emits(`enter`,{files,event})}function onLeave(files,event){emits(`leave`,{files,event})}function onOver(files,event){emits(`over`,{files,event})}let{isOverDropZone,isOverError}=useDropzone(dropZoneRef,{dataTypes:__props.dataTypes,onDrop,preventDefaultForUnhandled:__props.preventDefaultForUnhandled,multiple:hasMultiple.value,onError,onEnter,onLeave,onOver});let fileInput=ref();function handleFileUpload(event){let input=event.target;let files=input?.files;files&&handleFiles(files),setTimeout(()=>{input.value=``},3e3)}let extensionIconMap=(()=>{let map=new Map;let groups=[[MazLogoJs,[`js`,`mjs`,`cjs`]],[MazLogoTypescript,[`ts`,`tsx`,`mts`,`cts`]],[MazLogoVue,[`vue`]],[MazLogoReact,[`jsx`]],[MazLogoJson,[`json`,`jsonc`,`json5`]],[MazLogoXml,[`xml`]],[MazLogoHtml,[`html`,`htm`]],[MazLogoMarkdown,[`md`,`markdown`,`mdx`]],[MazLogoProperties,[`properties`]],[MazLogoTxt,[`txt`]],[MazLogoCsv,[`csv`]],[MazLogoXls,[`xls`,`xlsx`]],[MazLogoXliff,[`xliff`,`xlf`]],[MazLogoApple,[`strings`,`stringsdict`,`xcstrings`]],[MazLogoAndroid,[`apk`]],[MazPhoto,[`jpeg`,`jpg`,`png`,`tiff`,`bmp`,`webp`,`svg`,`ico`,`gif`,`heic`,`heif`,`avif`]],[MazFilm,[`mp4`,`webm`,`avi`,`mov`,`mkv`,`flv`,`wmv`,`m4v`,`mpeg`,`mpg`,`3gp`,`ogv`]],[MazSpeakerWave,[`mp3`,`wav`,`m4a`,`aac`,`flac`,`ogg`,`oga`,`opus`,`wma`,`alac`,`aiff`]],[MazArchiveBox,[`zip`,`rar`,`tar`,`gz`,`7z`,`bz2`,`xz`]],[MazCommandLine,[`exe`,`dll`,`so`,`dylib`,`dmg`,`deb`,`rpm`,`app`,`bat`,`cmd`]],[MazCodeBracket,`css.scss.sass.less.py.java.cpp.c.h.hpp.go.rs.rust.php.rb.swift.kt.kotlin.sql.sh.bash.zsh.yaml.yml.toml.ini`.split(`.`)],[MazCog,[`conf`,`config`,`env`,`cfg`]],[MazPresentationChartBar,[`ppt`,`pptx`,`key`,`odp`]],[MazDocumentText,[`rtf`,`odt`]],[MazPencilSquare,[`ttf`,`otf`,`woff`,`woff2`,`eot`]],[MazPaintBrush,[`ai`,`psd`,`sketch`,`fig`,`xd`,`eps`]],[MazDocumentIcon,[`pdf`,`doc`,`docx`,`tsv`,`document`]]];for(let[icon,extensions]of groups)for(let ext of extensions)map.set(ext,icon);return map})();function getIconComponent(fileData){let type=fileData.file.type.split(`/`)?.[1]?.split(`+`)?.[0]?.toLowerCase();let extension=fileData.file.name.split(`.`).pop()?.toLowerCase();return extensionIconMap.get(type)||extension&&extensionIconMap.get(extension)||extensionIconMap.get(`document`)}function handleFileInputClick(){fileInput.value&&fileInput.value.click()}function handleFileRemove(fileData){fileData.url&&URL.revokeObjectURL(fileData.url),filesData.value=filesData.value.filter(f=>f.file!==fileData.file),emits(`remove`,fileData.file)}let selectAreaCanBeDisplayed=ref(!0);let dataTypesString=computed(()=>__props.dataTypes?.map(formatReadable).join(`, `));let allFileIsAccepted=computed(()=>__props.dataTypes?.length===1&&__props.dataTypes[0]===`*/*`);let{t}=useTranslations();let messages=computed(()=>{let customTranslations=__props.translations||{};return{dragAndDrop:customTranslations.dragAndDrop??t(`dropzone.dragAndDrop`),fileMaxCount:__props.maxFiles?customTranslations.fileMaxCount??t(`dropzone.fileMaxCount`,{count:__props.maxFiles}):void 0,fileMaxSize:__props.maxFileSize?customTranslations.fileMaxSize??t(`dropzone.fileMaxSize`,{size:__props.maxFileSize}):void 0,fileTypes:dataTypesString.value?customTranslations.fileTypes??t(`dropzone.fileTypes`,{types:dataTypesString.value}):void 0,selectFile:customTranslations.selectFile??t(`dropzone.selectFile`),divider:customTranslations.divider??t(`dropzone.divider`)}});function formatReadable(fmt){if(fmt.startsWith(`.`))return fmt;if(fmt.includes(`/`)){let[type,subtype]=fmt.split(`/`);if(subtype===`*`){let customTypes=__props.translations?.types||{};switch(type){case`image`:return customTypes.image??t(`dropzone.types.image`);case`video`:return customTypes.video??t(`dropzone.types.video`);case`audio`:return customTypes.audio??t(`dropzone.types.audio`);case`text`:return customTypes.text??t(`dropzone.types.text`);default:return fmt}}return subtype}return fmt}function reset(){filesData.value.forEach(fileData=>{fileData.url&&URL.revokeObjectURL(fileData.url)}),filesData.value=[]}function addFile(file){handleFiles([file])}function removeFile(file){filesData.value=filesData.value.filter(f=>f.file!==file)}function isFileTypeAllowed(file){return!__props.dataTypes||__props.dataTypes.includes(`*/*`)?!0:__props.dataTypes.some(type=>type.startsWith(`.`)?file.name.toLowerCase().endsWith(type.toLowerCase()):type.endsWith(`/*`)?file.type.startsWith(type.slice(0,-1)):file.type===type)}return __expose({uploadFiles,uploadFilesMultiple,getFormData,getFormDataMultiple,reset,isUploading,addFile,removeFile}),(_ctx,_cache)=>(openBlock(),createElementBlock(`label`,{ref_key:`dropZoneRef`,ref:dropZoneRef,role:`button`,tabindex:`0`,for:`input-file-uploader-${unref(instanceId)}`,class:normalizeClass([`m-dropzone m-reset-css maz:flex maz:w-full maz:cursor-pointer maz:flex-col maz:flex-center maz:gap-2 maz:overflow-hidden maz:rounded-md maz:border maz:border-dashed maz:border-divider maz:bg-input maz:p-6 maz:transition-colors maz:duration-200 maz:ease-in-out maz:hover:bg-surface-600/50 maz:dark:hover:bg-surface-400/50`,{"m-dropzone--disabled maz:disabled-state":__props.disabled,"m-dropzone--is-over-drop-zone":unref(isOverDropZone)&&!unref(isOverError),"m-dropzone--is-over-error":unref(isOverError)}]),style:normalizeStyle({"--active-color":`var(--maz-${__props.color})`})},[renderSlot(_ctx.$slots,`files-area`,{filesData:filesData.value},()=>[createVNode(TransitionGroup,{name:`file-scale`,tag:`div`,class:`m-dropzone__files-container`,onBeforeEnter:_cache[1]||=$event=>selectAreaCanBeDisplayed.value=!1,onAfterLeave:_cache[2]||=$event=>selectAreaCanBeDisplayed.value=filesData.value.length===0},{default:withCtx(()=>[(openBlock(!0),createElementBlock(Fragment,null,renderList(filesData.value,file=>(openBlock(),createElementBlock(`div`,{key:`${file.name}-${file.size}-${file}`,class:`m-dropzone__file-item group`,onClick:_cache[0]||=withModifiers(()=>{},[`prevent`])},[renderSlot(_ctx.$slots,`file-item`,{file},()=>[file.thumbnail&&__props.preview?(openBlock(),createElementBlock(Fragment,{key:0},[createElementVNode(`div`,{style:normalizeStyle({backgroundImage:`url(${file.thumbnail})`,backgroundSize:`cover`,backgroundPosition:`center`}),class:`m-dropzone__thumbnail`},null,4),_cache[4]||=createElementVNode(`div`,{class:`m-dropzone__overlay`},null,-1)],64)):createCommentVNode(``,!0),createElementVNode(`div`,_hoisted_2,[createVNode(Transition,{name:`icon-scale`},{default:withCtx(()=>[file.uploading?(openBlock(),createBlock(unref(MazSpinner),mergeProps({key:0,color:__props.color,class:`m-dropzone__spinner`},{ref_for:!0},__props.spinnerProps),null,16,[`color`])):file.success?(openBlock(),createBlock(unref(MazCheckCircle),{key:1,class:`m-dropzone__success-icon`})):file.error?(openBlock(),createBlock(unref(MazXCircle),{key:2,class:`m-dropzone__error-icon`})):(openBlock(),createElementBlock(`div`,_hoisted_3,[createVNode(MazIcon_default,{icon:getIconComponent(file),size:`lg`,class:`m-dropzone__file-icon`},null,8,[`icon`])]))]),_:2},1024)]),createElementVNode(`div`,_hoisted_4,[createElementVNode(`div`,_hoisted_5,[createElementVNode(`span`,_hoisted_6,toDisplayString(file.name),1),createElementVNode(`span`,_hoisted_7,toDisplayString(file.sizeInMb)+` MB`,1)]),!file.uploading&&!file.success?(openBlock(),createBlock(MazBtn_default,mergeProps({key:0,size:`xs`,icon:unref(MazTrash),disabled:__props.disabled,color:`destructive`,pastel:``},{ref_for:!0},__props.removeFileBtnProps,{onClick:withModifiers($event=>handleFileRemove(file),[`prevent`])}),null,16,[`icon`,`disabled`,`onClick`])):createCommentVNode(``,!0)])],!0)]))),128))]),_:3})],!0),filesData.value.length===0&&selectAreaCanBeDisplayed.value?renderSlot(_ctx.$slots,`no-files-area`,{key:0,selectFile:handleFileInputClick},()=>[createElementVNode(`div`,_hoisted_8,[renderSlot(_ctx.$slots,`upload-icon`,{},()=>[createVNode(unref(MazArrowUpOnSquare),{class:`m-dropzone__upload-icon`})],!0),createElementVNode(`span`,_hoisted_9,[createTextVNode(toDisplayString(messages.value.dragAndDrop)+` `+toDisplayString(messages.value.divider)+` `,1),createVNode(MazLink_default,{color:`inherit`,underline:``,onClick:_cache[3]||=withModifiers($event=>!__props.disabled&&handleFileInputClick(),[`prevent`])},{default:withCtx(()=>[createTextVNode(toDisplayString(messages.value.selectFile),1)]),_:1})])]),!allFileIsAccepted.value&&(messages.value.fileMaxCount||messages.value.fileMaxSize||messages.value.fileTypes)?(openBlock(),createElementBlock(`p`,_hoisted_10,[messages.value.fileMaxCount?(openBlock(),createElementBlock(`span`,_hoisted_11,toDisplayString(messages.value.fileMaxCount),1)):createCommentVNode(``,!0),messages.value.fileMaxSize?(openBlock(),createElementBlock(`span`,_hoisted_12,toDisplayString(messages.value.fileMaxSize),1)):createCommentVNode(``,!0),messages.value.fileTypes?(openBlock(),createElementBlock(`span`,_hoisted_13,toDisplayString(messages.value.fileTypes),1)):createCommentVNode(``,!0)])):createCommentVNode(``,!0)],!0):createCommentVNode(``,!0),createElementVNode(`input`,{id:`input-file-uploader-${unref(instanceId)}`,ref_key:`fileInput`,ref:fileInput,multiple:hasMultiple.value,type:`file`,accept:__props.dataTypes?.join(`,`),tabindex:`-1`,disabled:__props.disabled,class:`m-dropzone__file-input`,onChange:handleFileUpload},null,40,_hoisted_14)],14,_hoisted_1))}}),[[`__scopeId`,`data-v-b607dd3b`]]);export{MazDropzone_default as t};
1
+ import{useInstanceUniqId}from"../composables/useInstanceUniqId.js";import{t as _plugin_vue_export_helper_default}from"./_plugin-vue_export-helper.zP_plvmB.js";import{useDropzone}from"../composables/useDropzone.js";import{t as MazIcon_default}from"./MazIcon.CblJ-8Iu.js";import{t as MazLink_default}from"./MazLink.CemC1AR_.js";import{t as MazBtn_default}from"./MazBtn.C7LV-iX2.js";import{Fragment,Transition,TransitionGroup,computed,createBlock,createCommentVNode,createElementBlock,createElementVNode,createTextVNode,createVNode,defineAsyncComponent,defineComponent,mergeModels,mergeProps,normalizeClass,normalizeStyle,onBeforeMount,openBlock,ref,renderList,renderSlot,toDisplayString,unref,useModel,withCtx,withModifiers}from"vue";import{useTranslations}from"@maz-ui/translations/composables/useTranslations";import{sleep}from"@maz-ui/utils/helpers/sleep";import{MazCheckCircle}from"@maz-ui/icons/lazy/MazCheckCircle";import{MazCodeBracket}from"@maz-ui/icons/lazy/MazCodeBracket";import{MazPhoto}from"@maz-ui/icons/lazy/MazPhoto";import{MazArchiveBox}from"@maz-ui/icons/lazy/MazArchiveBox";import{MazArrowUpOnSquare}from"@maz-ui/icons/lazy/MazArrowUpOnSquare";import{MazCog}from"@maz-ui/icons/lazy/MazCog";import{MazCommandLine}from"@maz-ui/icons/lazy/MazCommandLine";import{MazDocumentIcon}from"@maz-ui/icons/lazy/MazDocumentIcon";import{MazDocumentText}from"@maz-ui/icons/lazy/MazDocumentText";import{MazFilm}from"@maz-ui/icons/lazy/MazFilm";import{MazLogoAndroid}from"@maz-ui/icons/lazy/MazLogoAndroid";import{MazLogoApple}from"@maz-ui/icons/lazy/MazLogoApple";import{MazLogoCsv}from"@maz-ui/icons/lazy/MazLogoCsv";import{MazLogoHtml}from"@maz-ui/icons/lazy/MazLogoHtml";import{MazLogoJs}from"@maz-ui/icons/lazy/MazLogoJs";import{MazLogoJson}from"@maz-ui/icons/lazy/MazLogoJson";import{MazLogoMarkdown}from"@maz-ui/icons/lazy/MazLogoMarkdown";import{MazLogoProperties}from"@maz-ui/icons/lazy/MazLogoProperties";import{MazLogoReact}from"@maz-ui/icons/lazy/MazLogoReact";import{MazLogoTxt}from"@maz-ui/icons/lazy/MazLogoTxt";import{MazLogoTypescript}from"@maz-ui/icons/lazy/MazLogoTypescript";import{MazLogoVue}from"@maz-ui/icons/lazy/MazLogoVue";import{MazLogoXliff}from"@maz-ui/icons/lazy/MazLogoXliff";import{MazLogoXls}from"@maz-ui/icons/lazy/MazLogoXls";import{MazLogoXml}from"@maz-ui/icons/lazy/MazLogoXml";import{MazPaintBrush}from"@maz-ui/icons/lazy/MazPaintBrush";import{MazPencilSquare}from"@maz-ui/icons/lazy/MazPencilSquare";import{MazPresentationChartBar}from"@maz-ui/icons/lazy/MazPresentationChartBar";import{MazSpeakerWave}from"@maz-ui/icons/lazy/MazSpeakerWave";import{MazTrash}from"@maz-ui/icons/lazy/MazTrash";import{MazXCircle}from"@maz-ui/icons/lazy/MazXCircle";import '../assets/MazDropzone._IzxepXc.css';var _hoisted_1=[`for`];var _hoisted_2={class:`m-dropzone__icon-container`};var _hoisted_3={key:3,class:`m-dropzone__file-icon-wrapper`};var _hoisted_4={class:`m-dropzone__description`};var _hoisted_5={class:`m-dropzone__file-info`};var _hoisted_6={class:`m-dropzone__file-name`};var _hoisted_7={class:`m-dropzone__file-size`};var _hoisted_8={class:`m-dropzone__content`};var _hoisted_9={class:`m-dropzone__upload-text`};var _hoisted_10={key:0,class:`m-dropzone__info-text`};var _hoisted_11={key:0};var _hoisted_12={key:1};var _hoisted_13={key:2};var _hoisted_14=[`id`,`multiple`,`accept`,`disabled`];var MazDropzone_default=_plugin_vue_export_helper_default(defineComponent({__name:`MazDropzone`,props:mergeModels({id:{},multiple:{type:Boolean,default:!1},dataTypes:{},preventDefaultForUnhandled:{type:Boolean,default:!0},maxFileSize:{},maxFiles:{},disabled:{type:Boolean,default:!1},preview:{type:Boolean,default:!0},minFileSize:{},allowDuplicates:{type:Boolean,default:!1},translations:{},color:{default:`primary`},removeFileBtnProps:{default:()=>({})},spinnerProps:{default:()=>({})},autoUpload:{type:[String,Boolean],default:!1},url:{},requestOptions:{},transformBody:{type:Function},maxConcurrentUploads:{default:5}},{modelValue:{default:()=>[]},modelModifiers:{}}),emits:mergeModels([`drop`,`enter`,`leave`,`over`,`add`,`remove`,`error`,`upload-error`,`upload-error-multiple`,`upload-success`,`upload-success-multiple`],[`update:modelValue`]),setup(__props,{expose:__expose,emit:__emit}){let emits=__emit;let MazSpinner=defineAsyncComponent(()=>import(`../components/MazSpinner.js`));let filesData=useModel(__props,`modelValue`);onBeforeMount(async()=>{filesData.value.length&&(filesData.value=await Promise.all(filesData.value.map(fileData=>getFileData(fileData.file))))});let dropZoneRef=ref();let isUploading=ref(!1);let hasMultiple=computed(()=>__props.multiple||(__props.maxFiles?__props.maxFiles>1:!1)||__props.autoUpload===`multiple`);let instanceId=useInstanceUniqId({componentName:`MazDropzone`,providedId:__props.id});function uploadFile(formData){if(!__props.url)throw emits(`error`,{files:null,event:null,code:`NO_URL`}),Error(`NO_URL`);try{let body=__props.transformBody?.(formData)??formData;return fetch(__props.url,{method:`POST`,body,...__props.requestOptions})}catch{emits(`error`,{files:null,event:null,code:`FILE_UPLOAD_ERROR`})}}function getFormData(file){let formData=new FormData;return formData.append(`file`,file),formData}function getFormDataMultiple(){let formData=new FormData;return filesData.value.forEach(fileData=>formData.append(`files`,fileData.file)),formData}async function uploadFilesMultiple(){if(!filesData.value.length){emits(`error`,{files:filesData.value.map(f=>f.file),event:null,code:`NO_FILES_TO_UPLOAD`});return}try{isUploading.value=!0,filesData.value=filesData.value.map(f=>({...f,uploading:!0,success:!1,error:!1}));let response=await uploadFile(getFormDataMultiple());filesData.value=filesData.value.map(f=>({...f,uploading:!1,success:!0,error:!1})),emits(`upload-success-multiple`,{files:filesData.value.map(f=>f.file),response})}catch(error){filesData.value=filesData.value.map(f=>({...f,uploading:!1,success:!1,error:!0})),emits(`upload-error-multiple`,{files:filesData.value.map(f=>f.file),code:`FILE_UPLOAD_ERROR_MULTIPLE`,error})}finally{isUploading.value=!1,await sleep(1e3),filesData.value=filesData.value.filter(f=>f.error)}}async function uploadFiles(){if(!filesData.value.length)throw emits(`error`,{files:filesData.value.map(f=>f.file),event:null,code:`NO_FILES_TO_UPLOAD`}),Error(`NO_FILES_TO_UPLOAD`);try{isUploading.value=!0;let queue=[...filesData.value];let activeUploads=[];async function uploadFileData(fileData){let formData=getFormData(fileData.file);try{fileData.error=!1,fileData.uploading=!0;let response=await uploadFile(formData);emits(`upload-success`,{file:fileData.file,response}),fileData.success=!0}catch(error){fileData.error=!0,emits(`upload-error`,{file:fileData.file,code:`FILE_UPLOAD_ERROR`,error})}finally{fileData.uploading=!1}}async function processQueue(){for(;queue.length>0;){let fileData=queue.shift();fileData&&await uploadFileData(fileData)}}for(let i=0;i<Math.min(__props.maxConcurrentUploads,filesData.value.length);i++)activeUploads.push(processQueue());await Promise.allSettled(activeUploads)}finally{isUploading.value=!1,await sleep(1e3),filesData.value=filesData.value.filter(f=>f.error)}}async function getFileData(file){let fileData={file,name:file.name,size:file.size,type:file.type,lastModified:file.lastModified,sizeInMb:(file.size/1024/1024).toFixed(2),lastModifiedDate:new Date(file.lastModified),url:URL.createObjectURL(file),thumbnail:void 0,uploading:!1,success:!1,error:!1};return file.type.startsWith(`image/`)&&await new Promise(resolve=>{let reader=new FileReader;reader.onload=event=>{fileData.thumbnail=event.target?.result||void 0,resolve(null)},reader.readAsDataURL(file)}),__props.maxFileSize&&file.size>__props.maxFileSize*1024*1024&&emits(`error`,{files:[file],event:null,code:`FILE_SIZE_EXCEEDED`}),__props.minFileSize&&file.size<__props.minFileSize*1024*1024&&emits(`error`,{files:[file],event:null,code:`FILE_SIZE_TOO_SMALL`}),fileData}async function handleFiles(files){if(__props.disabled||!files)return null;for await(let file of files){if(!isFileTypeAllowed(file)){emits(`error`,{files:[file],event:null,code:`FILE_TYPE_NOT_ALLOWED`});continue}if(!hasMultiple.value&&filesData.value.length>=1){emits(`error`,{files:[file],event:null,code:`MAX_FILES_EXCEEDED`});continue}if(__props.maxFiles&&filesData.value.length>=__props.maxFiles){emits(`error`,{files:[file],event:null,code:`MAX_FILES_EXCEEDED`});continue}if(__props.maxFileSize&&file.size>__props.maxFileSize*1024*1024){emits(`error`,{files:[file],event:null,code:`FILE_SIZE_EXCEEDED`});continue}if(__props.minFileSize&&file.size<__props.minFileSize*1024*1024){emits(`error`,{files:[file],event:null,code:`FILE_SIZE_TOO_SMALL`});continue}if(!__props.allowDuplicates&&filesData.value.some(f=>f.name===file.name&&f.size===file.size&&f.type===file.type)){emits(`error`,{files:[file],event:null,code:`FILE_DUPLICATED`});continue}let fileData=await getFileData(file);filesData.value=[...filesData.value,fileData],emits(`add`,fileData.file)}return __props.autoUpload===`single`?uploadFiles():__props.autoUpload===`multiple`&&uploadFilesMultiple(),filesData.value}async function onDrop(files,event){await handleFiles(files),emits(`drop`,{files,event})}function onError(files,event){emits(`error`,{files,event,code:`FILE_TYPE_NOT_ALLOWED`})}function onEnter(files,event){emits(`enter`,{files,event})}function onLeave(files,event){emits(`leave`,{files,event})}function onOver(files,event){emits(`over`,{files,event})}let{isOverDropZone,isOverError}=useDropzone(dropZoneRef,{dataTypes:__props.dataTypes,onDrop,preventDefaultForUnhandled:__props.preventDefaultForUnhandled,multiple:hasMultiple.value,onError,onEnter,onLeave,onOver});let fileInput=ref();function handleFileUpload(event){let input=event.target;let files=input?.files;files&&handleFiles(files),setTimeout(()=>{input.value=``},3e3)}let extensionIconMap=(()=>{let map=new Map;let groups=[[MazLogoJs,[`js`,`mjs`,`cjs`]],[MazLogoTypescript,[`ts`,`tsx`,`mts`,`cts`]],[MazLogoVue,[`vue`]],[MazLogoReact,[`jsx`]],[MazLogoJson,[`json`,`jsonc`,`json5`]],[MazLogoXml,[`xml`]],[MazLogoHtml,[`html`,`htm`]],[MazLogoMarkdown,[`md`,`markdown`,`mdx`]],[MazLogoProperties,[`properties`]],[MazLogoTxt,[`txt`]],[MazLogoCsv,[`csv`]],[MazLogoXls,[`xls`,`xlsx`]],[MazLogoXliff,[`xliff`,`xlf`]],[MazLogoApple,[`strings`,`stringsdict`,`xcstrings`]],[MazLogoAndroid,[`apk`]],[MazPhoto,[`jpeg`,`jpg`,`png`,`tiff`,`bmp`,`webp`,`svg`,`ico`,`gif`,`heic`,`heif`,`avif`]],[MazFilm,[`mp4`,`webm`,`avi`,`mov`,`mkv`,`flv`,`wmv`,`m4v`,`mpeg`,`mpg`,`3gp`,`ogv`]],[MazSpeakerWave,[`mp3`,`wav`,`m4a`,`aac`,`flac`,`ogg`,`oga`,`opus`,`wma`,`alac`,`aiff`]],[MazArchiveBox,[`zip`,`rar`,`tar`,`gz`,`7z`,`bz2`,`xz`]],[MazCommandLine,[`exe`,`dll`,`so`,`dylib`,`dmg`,`deb`,`rpm`,`app`,`bat`,`cmd`]],[MazCodeBracket,`css.scss.sass.less.py.java.cpp.c.h.hpp.go.rs.rust.php.rb.swift.kt.kotlin.sql.sh.bash.zsh.yaml.yml.toml.ini`.split(`.`)],[MazCog,[`conf`,`config`,`env`,`cfg`]],[MazPresentationChartBar,[`ppt`,`pptx`,`key`,`odp`]],[MazDocumentText,[`rtf`,`odt`]],[MazPencilSquare,[`ttf`,`otf`,`woff`,`woff2`,`eot`]],[MazPaintBrush,[`ai`,`psd`,`sketch`,`fig`,`xd`,`eps`]],[MazDocumentIcon,[`pdf`,`doc`,`docx`,`tsv`,`document`]]];for(let[icon,extensions]of groups)for(let ext of extensions)map.set(ext,icon);return map})();function getIconComponent(fileData){let type=fileData.file.type.split(`/`)?.[1]?.split(`+`)?.[0]?.toLowerCase();let extension=fileData.file.name.split(`.`).pop()?.toLowerCase();return extensionIconMap.get(type)||extension&&extensionIconMap.get(extension)||extensionIconMap.get(`document`)}function handleFileInputClick(){fileInput.value&&fileInput.value.click()}function handleFileRemove(fileData){fileData.url&&URL.revokeObjectURL(fileData.url),filesData.value=filesData.value.filter(f=>f.file!==fileData.file),emits(`remove`,fileData.file)}let selectAreaCanBeDisplayed=ref(!0);let dataTypesString=computed(()=>__props.dataTypes?.map(formatReadable).join(`, `));let allFileIsAccepted=computed(()=>__props.dataTypes?.length===1&&__props.dataTypes[0]===`*/*`);let{t}=useTranslations();let messages=computed(()=>{let customTranslations=__props.translations||{};return{dragAndDrop:customTranslations.dragAndDrop??t(`dropzone.dragAndDrop`),fileMaxCount:__props.maxFiles?customTranslations.fileMaxCount??t(`dropzone.fileMaxCount`,{count:__props.maxFiles}):void 0,fileMaxSize:__props.maxFileSize?customTranslations.fileMaxSize??t(`dropzone.fileMaxSize`,{size:__props.maxFileSize}):void 0,fileTypes:dataTypesString.value?customTranslations.fileTypes??t(`dropzone.fileTypes`,{types:dataTypesString.value}):void 0,selectFile:customTranslations.selectFile??t(`dropzone.selectFile`),divider:customTranslations.divider??t(`dropzone.divider`)}});function formatReadable(fmt){if(fmt.startsWith(`.`))return fmt;if(fmt.includes(`/`)){let[type,subtype]=fmt.split(`/`);if(subtype===`*`){let customTypes=__props.translations?.types||{};switch(type){case`image`:return customTypes.image??t(`dropzone.types.image`);case`video`:return customTypes.video??t(`dropzone.types.video`);case`audio`:return customTypes.audio??t(`dropzone.types.audio`);case`text`:return customTypes.text??t(`dropzone.types.text`);default:return fmt}}return subtype}return fmt}function reset(){filesData.value.forEach(fileData=>{fileData.url&&URL.revokeObjectURL(fileData.url)}),filesData.value=[]}function addFile(file){handleFiles([file])}function removeFile(file){filesData.value=filesData.value.filter(f=>f.file!==file)}function isFileTypeAllowed(file){return!__props.dataTypes||__props.dataTypes.includes(`*/*`)?!0:__props.dataTypes.some(type=>type.startsWith(`.`)?file.name.toLowerCase().endsWith(type.toLowerCase()):type.endsWith(`/*`)?file.type.startsWith(type.slice(0,-1)):file.type===type)}return __expose({uploadFiles,uploadFilesMultiple,getFormData,getFormDataMultiple,reset,isUploading,addFile,removeFile}),(_ctx,_cache)=>(openBlock(),createElementBlock(`label`,{ref_key:`dropZoneRef`,ref:dropZoneRef,role:`button`,tabindex:`0`,for:`input-file-uploader-${unref(instanceId)}`,class:normalizeClass([`m-dropzone m-reset-css maz:flex maz:w-full maz:cursor-pointer maz:flex-col maz:flex-center maz:gap-2 maz:overflow-hidden maz:rounded-md maz:border maz:border-dashed maz:border-divider maz:bg-input maz:p-6 maz:transition-colors maz:duration-200 maz:ease-in-out maz:hover:bg-surface-600/50 maz:dark:hover:bg-surface-400/50`,{"m-dropzone--disabled maz:disabled-state":__props.disabled,"m-dropzone--is-over-drop-zone":unref(isOverDropZone)&&!unref(isOverError),"m-dropzone--is-over-error":unref(isOverError)}]),style:normalizeStyle({"--active-color":`var(--maz-${__props.color})`})},[renderSlot(_ctx.$slots,`files-area`,{filesData:filesData.value},()=>[createVNode(TransitionGroup,{name:`file-scale`,tag:`div`,class:`m-dropzone__files-container`,onBeforeEnter:_cache[1]||=$event=>selectAreaCanBeDisplayed.value=!1,onAfterLeave:_cache[2]||=$event=>selectAreaCanBeDisplayed.value=filesData.value.length===0},{default:withCtx(()=>[(openBlock(!0),createElementBlock(Fragment,null,renderList(filesData.value,file=>(openBlock(),createElementBlock(`div`,{key:`${file.name}-${file.size}-${file}`,class:`m-dropzone__file-item group`,onClick:_cache[0]||=withModifiers(()=>{},[`prevent`])},[renderSlot(_ctx.$slots,`file-item`,{file},()=>[file.thumbnail&&__props.preview?(openBlock(),createElementBlock(Fragment,{key:0},[createElementVNode(`div`,{style:normalizeStyle({backgroundImage:`url(${file.thumbnail})`,backgroundSize:`cover`,backgroundPosition:`center`}),class:`m-dropzone__thumbnail`},null,4),_cache[4]||=createElementVNode(`div`,{class:`m-dropzone__overlay`},null,-1)],64)):createCommentVNode(``,!0),createElementVNode(`div`,_hoisted_2,[createVNode(Transition,{name:`icon-scale`},{default:withCtx(()=>[file.uploading?(openBlock(),createBlock(unref(MazSpinner),mergeProps({key:0,color:__props.color,class:`m-dropzone__spinner`},{ref_for:!0},__props.spinnerProps),null,16,[`color`])):file.success?(openBlock(),createBlock(unref(MazCheckCircle),{key:1,class:`m-dropzone__success-icon`})):file.error?(openBlock(),createBlock(unref(MazXCircle),{key:2,class:`m-dropzone__error-icon`})):(openBlock(),createElementBlock(`div`,_hoisted_3,[createVNode(MazIcon_default,{icon:getIconComponent(file),size:`lg`,class:`m-dropzone__file-icon`},null,8,[`icon`])]))]),_:2},1024)]),createElementVNode(`div`,_hoisted_4,[createElementVNode(`div`,_hoisted_5,[createElementVNode(`span`,_hoisted_6,toDisplayString(file.name),1),createElementVNode(`span`,_hoisted_7,toDisplayString(file.sizeInMb)+` MB`,1)]),!file.uploading&&!file.success?(openBlock(),createBlock(MazBtn_default,mergeProps({key:0,size:`xs`,icon:unref(MazTrash),disabled:__props.disabled,color:`destructive`,pastel:``},{ref_for:!0},__props.removeFileBtnProps,{onClick:withModifiers($event=>handleFileRemove(file),[`prevent`])}),null,16,[`icon`,`disabled`,`onClick`])):createCommentVNode(``,!0)])],!0)]))),128))]),_:3})],!0),filesData.value.length===0&&selectAreaCanBeDisplayed.value?renderSlot(_ctx.$slots,`no-files-area`,{key:0,selectFile:handleFileInputClick},()=>[createElementVNode(`div`,_hoisted_8,[renderSlot(_ctx.$slots,`upload-icon`,{},()=>[createVNode(unref(MazArrowUpOnSquare),{class:`m-dropzone__upload-icon`})],!0),createElementVNode(`span`,_hoisted_9,[createTextVNode(toDisplayString(messages.value.dragAndDrop)+` `+toDisplayString(messages.value.divider)+` `,1),createVNode(MazLink_default,{color:`inherit`,underline:``,onClick:_cache[3]||=withModifiers($event=>!__props.disabled&&handleFileInputClick(),[`prevent`])},{default:withCtx(()=>[createTextVNode(toDisplayString(messages.value.selectFile),1)]),_:1})])]),!allFileIsAccepted.value&&(messages.value.fileMaxCount||messages.value.fileMaxSize||messages.value.fileTypes)?(openBlock(),createElementBlock(`p`,_hoisted_10,[messages.value.fileMaxCount?(openBlock(),createElementBlock(`span`,_hoisted_11,toDisplayString(messages.value.fileMaxCount),1)):createCommentVNode(``,!0),messages.value.fileMaxSize?(openBlock(),createElementBlock(`span`,_hoisted_12,toDisplayString(messages.value.fileMaxSize),1)):createCommentVNode(``,!0),messages.value.fileTypes?(openBlock(),createElementBlock(`span`,_hoisted_13,toDisplayString(messages.value.fileTypes),1)):createCommentVNode(``,!0)])):createCommentVNode(``,!0)],!0):createCommentVNode(``,!0),createElementVNode(`input`,{id:`input-file-uploader-${unref(instanceId)}`,ref_key:`fileInput`,ref:fileInput,multiple:hasMultiple.value,type:`file`,accept:__props.dataTypes?.join(`,`),tabindex:`-1`,disabled:__props.disabled,class:`m-dropzone__file-input`,onChange:handleFileUpload},null,40,_hoisted_14)],14,_hoisted_1))}}),[[`__scopeId`,`data-v-b607dd3b`]]);export{MazDropzone_default as t};
@@ -1 +1 @@
1
- import{t as _plugin_vue_export_helper_default}from"./_plugin-vue_export-helper.zP_plvmB.js";import{useGlobalConfig}from"../composables/useGlobalConfig.js";import{t as MazInput_default}from"./MazInput.CfAgOEV4.js";import{t as MazBtn_default}from"./MazBtn.DOoL5s3h.js";import{Fragment,TransitionGroup,computed,createElementBlock,createTextVNode,createVNode,defineComponent,mergeProps,normalizeClass,normalizeStyle,openBlock,ref,renderList,toDisplayString,unref,withCtx,withKeys,withModifiers}from"vue";import{truthyFilter}from"@maz-ui/utils/helpers/truthyFilter";import{MazTrash}from"@maz-ui/icons/raw/MazTrash";import '../assets/MazInputTags.CkN4xVxJ.css';var MazInputTags_default=_plugin_vue_export_helper_default(defineComponent({inheritAttrs:!1,__name:`MazInputTags`,props:{style:{type:[Boolean,null,String,Object,Array]},class:{type:[Boolean,null,String,Object,Array]},modelValue:{},placeholder:{},label:{},disabled:{type:Boolean,default:!1},error:{type:Boolean,default:!1},success:{type:Boolean,default:!1},warning:{type:Boolean,default:!1},size:{},color:{default:`primary`},block:{type:Boolean},addTagsOnBlur:{type:Boolean,default:!0},hint:{}},emits:[`update:model-value`],setup(__props,{emit:__emit}){let emits=__emit;let{size}=useGlobalConfig(`MazInputTags`,{size:`md`});let isFocused=ref(!1);let inputValue=ref();let tagsHoveredId=ref();let lastIdToDelete=ref();let currentDeleteTimeout=ref();let tags=computed(()=>__props.modelValue?.map(tag=>({tag,id:`${Date.now()}-${Math.random().toString(36).slice(2)}`})));function addTags(event){if(inputValue.value){lastIdToDelete.value=void 0,event.preventDefault();let newValues=inputValue.value.trim().split(`,`).map(value=>value.trim()===`,`?void 0:value.trim()).filter(truthyFilter).filter(value=>!__props.modelValue?.filter(truthyFilter)?.includes(value));emits(`update:model-value`,__props.modelValue?[...__props.modelValue,...newValues]:[...newValues]),inputValue.value=void 0}}let borderStyle=computed(()=>{if(__props.error)return`maz:border-destructive`;if(__props.success)return`maz:border-success`;if(__props.warning)return`maz:border-warning`;if(isFocused.value){if(__props.color===`primary`)return`maz:border-primary`;if(__props.color===`secondary`)return`maz:border-secondary`;if(__props.color===`info`)return`maz:border-info`;if(__props.color===`destructive`)return`maz:border-destructive`;if(__props.color===`success`)return`maz:border-success`;if(__props.color===`warning`)return`maz:border-warning`}return``});function removeLastTag(){inputValue.value||tags.value&&tags.value?.length===0||(currentDeleteTimeout.value&&clearTimeout(currentDeleteTimeout.value),lastIdToDelete.value?(removeTag(lastIdToDelete.value),lastIdToDelete.value=void 0):(lastIdToDelete.value=tags.value?.at(-1)?.id,currentDeleteTimeout.value=setTimeout(()=>{lastIdToDelete.value=void 0},2e3)))}function removeTag(id){let tagsArray=tags.value?.filter(tag=>tag.id!==id).map(tag=>tag.tag);emits(`update:model-value`,tagsArray)}let SIZE_CLASS={xl:`maz:min-h-16`,lg:`maz:min-h-14`,md:`maz:min-h-12`,sm:`maz:min-h-10`,xs:`maz:min-h-8`,mini:`maz:min-h-6`};let buttonSize=computed(()=>size.value===`mini`||size.value===`xs`?`mini`:size.value===`sm`?`xs`:size.value===`md`?`sm`:size.value===`lg`?`md`:size.value===`xl`?`lg`:size.value);return(_ctx,_cache)=>(openBlock(),createElementBlock(`div`,{class:normalizeClass([`m-input-tags m-reset-css maz:relative maz:inline-flex maz:flex-wrap maz:gap-1 maz:overflow-hidden maz:rounded-md maz:border maz:border-divider maz:bg-input maz:px-[0.5em] maz:py-[0.25em] maz:align-top maz:transition-colors maz:duration-200 maz:ease-in-out maz:dark:border-divider-400`,[borderStyle.value,`--${__props.color}`,`--${unref(size)}`,SIZE_CLASS[unref(size)],__props.class,{"--block":__props.block,"maz:w-full":__props.block}]]),style:normalizeStyle(__props.style),onFocusCapture:_cache[4]||=$event=>isFocused.value=!0,onBlurCapture:_cache[5]||=$event=>isFocused.value=!1},[createVNode(TransitionGroup,{name:`maz-tags`},{default:withCtx(()=>[(openBlock(!0),createElementBlock(Fragment,null,renderList(tags.value,({tag,id},i)=>(openBlock(),createElementBlock(`div`,{key:`tag-${i}`,class:`m-input-tags__wrapper maz:inline-flex maz:h-auto maz:flex-none! maz:flex-center`},[createVNode(MazBtn_default,{class:`m-input-tags__tag`,disabled:__props.disabled,size:buttonSize.value,color:tagsHoveredId.value===id||lastIdToDelete.value===id?`destructive`:__props.color,"end-icon":tagsHoveredId.value===id||lastIdToDelete.value===id?unref(MazTrash):void 0,onClick:withModifiers($event=>removeTag(id),[`stop`]),onMouseenter:$event=>tagsHoveredId.value=__props.disabled?void 0:id,onFocus:$event=>tagsHoveredId.value=__props.disabled?void 0:id,onMouseleave:_cache[0]||=$event=>tagsHoveredId.value=void 0,onBlur:_cache[1]||=$event=>tagsHoveredId.value=void 0},{default:withCtx(()=>[createTextVNode(toDisplayString(tag),1)]),_:2},1032,[`disabled`,`size`,`color`,`end-icon`,`onClick`,`onMouseenter`,`onFocus`])]))),128))]),_:1}),createVNode(MazInput_default,mergeProps({key:`input-tags`,modelValue:inputValue.value,"onUpdate:modelValue":_cache[2]||=$event=>inputValue.value=$event},_ctx.$attrs,{placeholder:__props.placeholder,label:__props.label,"aria-label":__props.label||__props.placeholder,error:__props.error,hint:__props.hint,success:__props.success,warning:__props.warning,disabled:__props.disabled,"top-label":void 0,"assistive-text":void 0,color:__props.color,block:__props.block,size:unref(size),"input-classes":`maz:w-full`,border:!1,class:`m-input-tags__input maz:h-auto! maz:flex-1`,onKeydown:[withKeys(addTags,[`enter`]),withKeys(removeLastTag,[`delete`])],onBlur:_cache[3]||=$event=>__props.addTagsOnBlur?addTags($event):void 0}),null,16,[`modelValue`,`placeholder`,`label`,`aria-label`,`error`,`hint`,`success`,`warning`,`disabled`,`color`,`block`,`size`])],38))}}),[[`__scopeId`,`data-v-7b221b88`]]);export{MazInputTags_default as t};
1
+ import{t as _plugin_vue_export_helper_default}from"./_plugin-vue_export-helper.zP_plvmB.js";import{useGlobalConfig}from"../composables/useGlobalConfig.js";import{t as MazInput_default}from"./MazInput.CfAgOEV4.js";import{t as MazBtn_default}from"./MazBtn.C7LV-iX2.js";import{Fragment,TransitionGroup,computed,createElementBlock,createTextVNode,createVNode,defineComponent,mergeProps,normalizeClass,normalizeStyle,openBlock,ref,renderList,toDisplayString,unref,withCtx,withKeys,withModifiers}from"vue";import{truthyFilter}from"@maz-ui/utils/helpers/truthyFilter";import{MazTrash}from"@maz-ui/icons/raw/MazTrash";import '../assets/MazInputTags.CkN4xVxJ.css';var MazInputTags_default=_plugin_vue_export_helper_default(defineComponent({inheritAttrs:!1,__name:`MazInputTags`,props:{style:{type:[Boolean,null,String,Object,Array]},class:{type:[Boolean,null,String,Object,Array]},modelValue:{},placeholder:{},label:{},disabled:{type:Boolean,default:!1},error:{type:Boolean,default:!1},success:{type:Boolean,default:!1},warning:{type:Boolean,default:!1},size:{},color:{default:`primary`},block:{type:Boolean},addTagsOnBlur:{type:Boolean,default:!0},hint:{}},emits:[`update:model-value`],setup(__props,{emit:__emit}){let emits=__emit;let{size}=useGlobalConfig(`MazInputTags`,{size:`md`});let isFocused=ref(!1);let inputValue=ref();let tagsHoveredId=ref();let lastIdToDelete=ref();let currentDeleteTimeout=ref();let tags=computed(()=>__props.modelValue?.map(tag=>({tag,id:`${Date.now()}-${Math.random().toString(36).slice(2)}`})));function addTags(event){if(inputValue.value){lastIdToDelete.value=void 0,event.preventDefault();let newValues=inputValue.value.trim().split(`,`).map(value=>value.trim()===`,`?void 0:value.trim()).filter(truthyFilter).filter(value=>!__props.modelValue?.filter(truthyFilter)?.includes(value));emits(`update:model-value`,__props.modelValue?[...__props.modelValue,...newValues]:[...newValues]),inputValue.value=void 0}}let borderStyle=computed(()=>{if(__props.error)return`maz:border-destructive`;if(__props.success)return`maz:border-success`;if(__props.warning)return`maz:border-warning`;if(isFocused.value){if(__props.color===`primary`)return`maz:border-primary`;if(__props.color===`secondary`)return`maz:border-secondary`;if(__props.color===`info`)return`maz:border-info`;if(__props.color===`destructive`)return`maz:border-destructive`;if(__props.color===`success`)return`maz:border-success`;if(__props.color===`warning`)return`maz:border-warning`}return``});function removeLastTag(){inputValue.value||tags.value&&tags.value?.length===0||(currentDeleteTimeout.value&&clearTimeout(currentDeleteTimeout.value),lastIdToDelete.value?(removeTag(lastIdToDelete.value),lastIdToDelete.value=void 0):(lastIdToDelete.value=tags.value?.at(-1)?.id,currentDeleteTimeout.value=setTimeout(()=>{lastIdToDelete.value=void 0},2e3)))}function removeTag(id){let tagsArray=tags.value?.filter(tag=>tag.id!==id).map(tag=>tag.tag);emits(`update:model-value`,tagsArray)}let SIZE_CLASS={xl:`maz:min-h-16`,lg:`maz:min-h-14`,md:`maz:min-h-12`,sm:`maz:min-h-10`,xs:`maz:min-h-8`,mini:`maz:min-h-6`};let buttonSize=computed(()=>size.value===`mini`||size.value===`xs`?`mini`:size.value===`sm`?`xs`:size.value===`md`?`sm`:size.value===`lg`?`md`:size.value===`xl`?`lg`:size.value);return(_ctx,_cache)=>(openBlock(),createElementBlock(`div`,{class:normalizeClass([`m-input-tags m-reset-css maz:relative maz:inline-flex maz:flex-wrap maz:gap-1 maz:overflow-hidden maz:rounded-md maz:border maz:border-divider maz:bg-input maz:px-[0.5em] maz:py-[0.25em] maz:align-top maz:transition-colors maz:duration-200 maz:ease-in-out maz:dark:border-divider-400`,[borderStyle.value,`--${__props.color}`,`--${unref(size)}`,SIZE_CLASS[unref(size)],__props.class,{"--block":__props.block,"maz:w-full":__props.block}]]),style:normalizeStyle(__props.style),onFocusCapture:_cache[4]||=$event=>isFocused.value=!0,onBlurCapture:_cache[5]||=$event=>isFocused.value=!1},[createVNode(TransitionGroup,{name:`maz-tags`},{default:withCtx(()=>[(openBlock(!0),createElementBlock(Fragment,null,renderList(tags.value,({tag,id},i)=>(openBlock(),createElementBlock(`div`,{key:`tag-${i}`,class:`m-input-tags__wrapper maz:inline-flex maz:h-auto maz:flex-none! maz:flex-center`},[createVNode(MazBtn_default,{class:`m-input-tags__tag`,disabled:__props.disabled,size:buttonSize.value,color:tagsHoveredId.value===id||lastIdToDelete.value===id?`destructive`:__props.color,"end-icon":tagsHoveredId.value===id||lastIdToDelete.value===id?unref(MazTrash):void 0,onClick:withModifiers($event=>removeTag(id),[`stop`]),onMouseenter:$event=>tagsHoveredId.value=__props.disabled?void 0:id,onFocus:$event=>tagsHoveredId.value=__props.disabled?void 0:id,onMouseleave:_cache[0]||=$event=>tagsHoveredId.value=void 0,onBlur:_cache[1]||=$event=>tagsHoveredId.value=void 0},{default:withCtx(()=>[createTextVNode(toDisplayString(tag),1)]),_:2},1032,[`disabled`,`size`,`color`,`end-icon`,`onClick`,`onMouseenter`,`onFocus`])]))),128))]),_:1}),createVNode(MazInput_default,mergeProps({key:`input-tags`,modelValue:inputValue.value,"onUpdate:modelValue":_cache[2]||=$event=>inputValue.value=$event},_ctx.$attrs,{placeholder:__props.placeholder,label:__props.label,"aria-label":__props.label||__props.placeholder,error:__props.error,hint:__props.hint,success:__props.success,warning:__props.warning,disabled:__props.disabled,"top-label":void 0,"assistive-text":void 0,color:__props.color,block:__props.block,size:unref(size),"input-classes":`maz:w-full`,border:!1,class:`m-input-tags__input maz:h-auto! maz:flex-1`,onKeydown:[withKeys(addTags,[`enter`]),withKeys(removeLastTag,[`delete`])],onBlur:_cache[3]||=$event=>__props.addTagsOnBlur?addTags($event):void 0}),null,16,[`modelValue`,`placeholder`,`label`,`aria-label`,`error`,`hint`,`success`,`warning`,`disabled`,`color`,`block`,`size`])],38))}}),[[`__scopeId`,`data-v-7b221b88`]]);export{MazInputTags_default as t};
@@ -1,4 +1,4 @@
1
- import{useInstanceUniqId}from"../composables/useInstanceUniqId.js";import{t as _plugin_vue_export_helper_default}from"./_plugin-vue_export-helper.zP_plvmB.js";import{useGlobalConfig}from"../composables/useGlobalConfig.js";import{t as MazBtn_default}from"./MazBtn.DOoL5s3h.js";import{t as MazBtnGroup_default}from"./MazBtnGroup.DQPVMzrc.js";import{t as MazDropdown_default}from"./MazDropdown.CO44HhDK.js";import{Fragment,computed,createBlock,createCommentVNode,createElementBlock,createElementVNode,createTextVNode,createVNode,defineComponent,mergeModels,mergeProps,nextTick,normalizeClass,normalizeStyle,openBlock,ref,renderList,renderSlot,toDisplayString,unref,useModel,vModelText,vShow,watch,withCtx,withDirectives}from"vue";import{MazLinkIcon}from"@maz-ui/icons/lazy/MazLinkIcon";import{useTranslations}from"@maz-ui/translations/composables/useTranslations";import{MazCheckCircle}from"@maz-ui/icons/lazy/MazCheckCircle";import{MazEye}from"@maz-ui/icons/lazy/MazEye";import{MazBold}from"@maz-ui/icons/lazy/MazBold";import{MazChatBubbleBottomCenterText}from"@maz-ui/icons/lazy/MazChatBubbleBottomCenterText";import{MazCodeBracket}from"@maz-ui/icons/lazy/MazCodeBracket";import{MazCodeBracketSquare}from"@maz-ui/icons/lazy/MazCodeBracketSquare";import{MazHashtag}from"@maz-ui/icons/lazy/MazHashtag";import{MazItalic}from"@maz-ui/icons/lazy/MazItalic";import{MazListBullet}from"@maz-ui/icons/lazy/MazListBullet";import{MazNumberedList}from"@maz-ui/icons/lazy/MazNumberedList";import{MazPencil}from"@maz-ui/icons/lazy/MazPencil";import{MazPhoto}from"@maz-ui/icons/lazy/MazPhoto";import{MazStrikethrough}from"@maz-ui/icons/lazy/MazStrikethrough";import{MazTableCells}from"@maz-ui/icons/lazy/MazTableCells";import{MazViewColumns}from"@maz-ui/icons/lazy/MazViewColumns";import '../assets/MazMarkdownEditor.uPI0V-ow.css';var _hoisted_1=[`for`];var _hoisted_2={class:`m-markdown-editor__header maz:flex maz:items-center maz:justify-between maz:gap-2 maz:border-b maz:bg-container maz:px-2 maz:py-1.5`};var _hoisted_3=[`aria-label`];var _hoisted_4={key:0,class:`m-markdown-editor__toolbar maz:flex maz:flex-wrap maz:items-center maz:gap-0.5`};var _hoisted_5={class:`m-markdown-editor__editor maz:flex maz:min-w-0 maz:flex-1`};var _hoisted_6=[`id`,`name`,`rows`,`placeholder`,`disabled`,`readonly`,`required`,`aria-labelledby`];var _hoisted_7=[`id`,`aria-labelledby`];var _hoisted_8=[`innerHTML`];var _hoisted_9={key:1,class:`m-markdown-editor__preview-empty maz:text-muted maz:italic`};var MazMarkdownEditor_default=_plugin_vue_export_helper_default(defineComponent({inheritAttrs:!1,__name:`MazMarkdownEditor`,props:mergeModels({style:{type:[Boolean,null,String,Object,Array]},class:{type:[Boolean,null,String,Object,Array]},modelValue:{},id:{},name:{default:`MazMarkdownEditor`},label:{},placeholder:{},required:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},error:{type:Boolean,default:!1},success:{type:Boolean,default:!1},warning:{type:Boolean,default:!1},color:{default:`primary`},roundedSize:{},topLabel:{},assistiveText:{},toolbar:{type:[Boolean,Array],default:!1},lineNumbers:{type:Boolean,default:!1},shortcuts:{type:Boolean,default:!0},sanitize:{type:Boolean,default:!0},renderFunction:{type:Function},markedOptions:{},rows:{default:6},translations:{}},{mode:{default:`write`},modeModifiers:{}}),emits:mergeModels([`update:model-value`,`input`,`focus`,`blur`,`change`],[`update:mode`]),setup(__props,{expose:__expose,emit:__emit}){let emits=__emit;let mode=useModel(__props,`mode`);let{roundedSize}=useGlobalConfig(`MazMarkdownEditor`,{roundedSize:`md`});let{t}=useTranslations();let instanceId=useInstanceUniqId({componentName:`MazMarkdownEditor`,providedId:__props.id});let textareaEl=ref();let gutterEl=ref();let previewHtml=ref(``);let isRendering=ref(!1);let labels=computed(()=>({write:__props.translations?.write??t(`markdownEditor.write`),preview:__props.translations?.preview??t(`markdownEditor.preview`),split:__props.translations?.split??t(`markdownEditor.split`),emptyPreview:__props.translations?.emptyPreview??t(`markdownEditor.emptyPreview`),toolbar:{heading:__props.translations?.toolbar?.heading??t(`markdownEditor.toolbar.heading`),bold:__props.translations?.toolbar?.bold??t(`markdownEditor.toolbar.bold`),italic:__props.translations?.toolbar?.italic??t(`markdownEditor.toolbar.italic`),strikethrough:__props.translations?.toolbar?.strikethrough??t(`markdownEditor.toolbar.strikethrough`),quote:__props.translations?.toolbar?.quote??t(`markdownEditor.toolbar.quote`),code:__props.translations?.toolbar?.code??t(`markdownEditor.toolbar.code`),codeBlock:__props.translations?.toolbar?.codeBlock??t(`markdownEditor.toolbar.codeBlock`),link:__props.translations?.toolbar?.link??t(`markdownEditor.toolbar.link`),image:__props.translations?.toolbar?.image??t(`markdownEditor.toolbar.image`),bulletList:__props.translations?.toolbar?.bulletList??t(`markdownEditor.toolbar.bulletList`),orderedList:__props.translations?.toolbar?.orderedList??t(`markdownEditor.toolbar.orderedList`),checkList:__props.translations?.toolbar?.checkList??t(`markdownEditor.toolbar.checkList`),table:__props.translations?.toolbar?.table??t(`markdownEditor.toolbar.table`)},headings:{h1:__props.translations?.headings?.h1??t(`markdownEditor.headings.h1`),h2:__props.translations?.headings?.h2??t(`markdownEditor.headings.h2`),h3:__props.translations?.headings?.h3??t(`markdownEditor.headings.h3`)}}));let inputValue=computed({get:()=>__props.modelValue,set:value=>updateValue(value)});function updateValue(value){emits(`update:model-value`,value),emits(`input`,value)}function escapeHtml(value){return value.replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`).replace(/"/g,`&quot;`).replace(/'/g,`&#39;`)}let renderSeq=0;async function parseToHtml(source){if(__props.renderFunction)return __props.renderFunction(source);let{marked}=await import(`marked`);return marked.parse(source,{gfm:!0,breaks:!0,...__props.markedOptions})}async function sanitizeHtml(html,source){if(!__props.sanitize)return html;try{let{default:DOMPurify}=await import(`dompurify`);return DOMPurify.sanitize(html)}catch{return`<pre>${escapeHtml(source)}</pre>`}}async function renderPreview(){let seq=++renderSeq;let source=__props.modelValue??``;if(!source.trim()||globalThis.window===void 0){seq===renderSeq&&(previewHtml.value=``);return}isRendering.value=!0;try{let html=await sanitizeHtml(await parseToHtml(source),source);seq===renderSeq&&(previewHtml.value=html)}catch{seq===renderSeq&&(previewHtml.value=`<pre>${escapeHtml(source)}</pre>`)}finally{seq===renderSeq&&(isRendering.value=!1)}}function setMode(value){__props.disabled||(mode.value=value)}function tryExecInsert(el,text){if(typeof document>`u`||typeof document.execCommand!=`function`)return!1;try{return document.execCommand(`insertText`,!1,text)}catch{return!1}}function replaceRange(rangeStart,rangeEnd,text,caretStart,caretEnd=caretStart){let el=textareaEl.value;if(!(!el||__props.disabled||__props.readonly)){if(el.focus(),el.setSelectionRange(rangeStart,rangeEnd),!tryExecInsert(el,text)){let value=__props.modelValue??``;updateValue(value.slice(0,rangeStart)+text+value.slice(rangeEnd))}nextTick(()=>{el.focus(),el.setSelectionRange(caretStart,caretEnd)})}}function wrapSelection(before,after=before){let el=textareaEl.value;if(!el)return;let value=__props.modelValue??``;let start=el.selectionStart??value.length;let end=el.selectionEnd??value.length;let selected=value.slice(start,end);let caret=start+before.length;replaceRange(start,end,`${before}${selected}${after}`,caret,caret+selected.length)}function prefixLines(prefix){let el=textareaEl.value;if(!el)return;let value=__props.modelValue??``;let start=el.selectionStart??0;let end=el.selectionEnd??0;let lineStart=value.lastIndexOf(`
1
+ import{useInstanceUniqId}from"../composables/useInstanceUniqId.js";import{t as _plugin_vue_export_helper_default}from"./_plugin-vue_export-helper.zP_plvmB.js";import{useGlobalConfig}from"../composables/useGlobalConfig.js";import{t as MazBtn_default}from"./MazBtn.C7LV-iX2.js";import{t as MazBtnGroup_default}from"./MazBtnGroup.DQPVMzrc.js";import{t as MazDropdown_default}from"./MazDropdown.CXgcPcal.js";import{Fragment,computed,createBlock,createCommentVNode,createElementBlock,createElementVNode,createTextVNode,createVNode,defineComponent,mergeModels,mergeProps,nextTick,normalizeClass,normalizeStyle,openBlock,ref,renderList,renderSlot,toDisplayString,unref,useModel,vModelText,vShow,watch,withCtx,withDirectives}from"vue";import{MazLinkIcon}from"@maz-ui/icons/lazy/MazLinkIcon";import{useTranslations}from"@maz-ui/translations/composables/useTranslations";import{MazCheckCircle}from"@maz-ui/icons/lazy/MazCheckCircle";import{MazEye}from"@maz-ui/icons/lazy/MazEye";import{MazBold}from"@maz-ui/icons/lazy/MazBold";import{MazChatBubbleBottomCenterText}from"@maz-ui/icons/lazy/MazChatBubbleBottomCenterText";import{MazCodeBracket}from"@maz-ui/icons/lazy/MazCodeBracket";import{MazCodeBracketSquare}from"@maz-ui/icons/lazy/MazCodeBracketSquare";import{MazHashtag}from"@maz-ui/icons/lazy/MazHashtag";import{MazItalic}from"@maz-ui/icons/lazy/MazItalic";import{MazListBullet}from"@maz-ui/icons/lazy/MazListBullet";import{MazNumberedList}from"@maz-ui/icons/lazy/MazNumberedList";import{MazPencil}from"@maz-ui/icons/lazy/MazPencil";import{MazPhoto}from"@maz-ui/icons/lazy/MazPhoto";import{MazStrikethrough}from"@maz-ui/icons/lazy/MazStrikethrough";import{MazTableCells}from"@maz-ui/icons/lazy/MazTableCells";import{MazViewColumns}from"@maz-ui/icons/lazy/MazViewColumns";import '../assets/MazMarkdownEditor.DeyfIz2b.css';var _hoisted_1=[`for`];var _hoisted_2={class:`m-markdown-editor__header maz:flex maz:items-center maz:justify-between maz:gap-2 maz:border-b maz:bg-container maz:px-2 maz:py-1.5`};var _hoisted_3=[`aria-label`];var _hoisted_4={key:0,class:`m-markdown-editor__toolbar maz:flex maz:flex-wrap maz:items-center maz:gap-0.5`};var _hoisted_5={class:`m-markdown-editor__editor maz:flex maz:min-w-0 maz:flex-1`};var _hoisted_6=[`id`,`name`,`rows`,`placeholder`,`disabled`,`readonly`,`required`,`aria-labelledby`];var _hoisted_7=[`id`,`aria-labelledby`];var _hoisted_8=[`innerHTML`];var _hoisted_9={key:1,class:`m-markdown-editor__preview-empty maz:text-muted maz:italic`};var MazMarkdownEditor_default=_plugin_vue_export_helper_default(defineComponent({inheritAttrs:!1,__name:`MazMarkdownEditor`,props:mergeModels({style:{type:[Boolean,null,String,Object,Array]},class:{type:[Boolean,null,String,Object,Array]},modelValue:{},id:{},name:{default:`MazMarkdownEditor`},label:{},placeholder:{},required:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},error:{type:Boolean,default:!1},success:{type:Boolean,default:!1},warning:{type:Boolean,default:!1},color:{default:`primary`},roundedSize:{},topLabel:{},assistiveText:{},toolbar:{type:[Boolean,Array],default:!1},lineNumbers:{type:Boolean,default:!1},shortcuts:{type:Boolean,default:!0},sanitize:{type:Boolean,default:!0},renderFunction:{type:Function},markedOptions:{},rows:{default:6},translations:{}},{mode:{default:`write`},modeModifiers:{}}),emits:mergeModels([`update:model-value`,`input`,`focus`,`blur`,`change`],[`update:mode`]),setup(__props,{expose:__expose,emit:__emit}){let emits=__emit;let mode=useModel(__props,`mode`);let{roundedSize}=useGlobalConfig(`MazMarkdownEditor`,{roundedSize:`md`});let{t}=useTranslations();let instanceId=useInstanceUniqId({componentName:`MazMarkdownEditor`,providedId:__props.id});let textareaEl=ref();let gutterEl=ref();let previewHtml=ref(``);let isRendering=ref(!1);let labels=computed(()=>({write:__props.translations?.write??t(`markdownEditor.write`),preview:__props.translations?.preview??t(`markdownEditor.preview`),split:__props.translations?.split??t(`markdownEditor.split`),emptyPreview:__props.translations?.emptyPreview??t(`markdownEditor.emptyPreview`),toolbar:{heading:__props.translations?.toolbar?.heading??t(`markdownEditor.toolbar.heading`),bold:__props.translations?.toolbar?.bold??t(`markdownEditor.toolbar.bold`),italic:__props.translations?.toolbar?.italic??t(`markdownEditor.toolbar.italic`),strikethrough:__props.translations?.toolbar?.strikethrough??t(`markdownEditor.toolbar.strikethrough`),quote:__props.translations?.toolbar?.quote??t(`markdownEditor.toolbar.quote`),code:__props.translations?.toolbar?.code??t(`markdownEditor.toolbar.code`),codeBlock:__props.translations?.toolbar?.codeBlock??t(`markdownEditor.toolbar.codeBlock`),link:__props.translations?.toolbar?.link??t(`markdownEditor.toolbar.link`),image:__props.translations?.toolbar?.image??t(`markdownEditor.toolbar.image`),bulletList:__props.translations?.toolbar?.bulletList??t(`markdownEditor.toolbar.bulletList`),orderedList:__props.translations?.toolbar?.orderedList??t(`markdownEditor.toolbar.orderedList`),checkList:__props.translations?.toolbar?.checkList??t(`markdownEditor.toolbar.checkList`),table:__props.translations?.toolbar?.table??t(`markdownEditor.toolbar.table`)},headings:{h1:__props.translations?.headings?.h1??t(`markdownEditor.headings.h1`),h2:__props.translations?.headings?.h2??t(`markdownEditor.headings.h2`),h3:__props.translations?.headings?.h3??t(`markdownEditor.headings.h3`)}}));let inputValue=computed({get:()=>__props.modelValue,set:value=>updateValue(value)});function updateValue(value){emits(`update:model-value`,value),emits(`input`,value)}function escapeHtml(value){return value.replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`).replace(/"/g,`&quot;`).replace(/'/g,`&#39;`)}let renderSeq=0;async function parseToHtml(source){if(__props.renderFunction)return __props.renderFunction(source);let{marked}=await import(`marked`);return marked.parse(source,{gfm:!0,breaks:!0,...__props.markedOptions})}async function sanitizeHtml(html,source){if(!__props.sanitize)return html;try{let{default:DOMPurify}=await import(`dompurify`);return DOMPurify.sanitize(html)}catch{return`<pre>${escapeHtml(source)}</pre>`}}async function renderPreview(){let seq=++renderSeq;let source=__props.modelValue??``;if(!source.trim()||globalThis.window===void 0){seq===renderSeq&&(previewHtml.value=``);return}isRendering.value=!0;try{let html=await sanitizeHtml(await parseToHtml(source),source);seq===renderSeq&&(previewHtml.value=html)}catch{seq===renderSeq&&(previewHtml.value=`<pre>${escapeHtml(source)}</pre>`)}finally{seq===renderSeq&&(isRendering.value=!1)}}function setMode(value){__props.disabled||(mode.value=value)}function tryExecInsert(el,text){if(typeof document>`u`||typeof document.execCommand!=`function`)return!1;try{return document.execCommand(`insertText`,!1,text)}catch{return!1}}function replaceRange(rangeStart,rangeEnd,text,caretStart,caretEnd=caretStart){let el=textareaEl.value;if(!(!el||__props.disabled||__props.readonly)){if(el.focus(),el.setSelectionRange(rangeStart,rangeEnd),!tryExecInsert(el,text)){let value=__props.modelValue??``;updateValue(value.slice(0,rangeStart)+text+value.slice(rangeEnd))}nextTick(()=>{el.focus(),el.setSelectionRange(caretStart,caretEnd)})}}function wrapSelection(before,after=before){let el=textareaEl.value;if(!el)return;let value=__props.modelValue??``;let start=el.selectionStart??value.length;let end=el.selectionEnd??value.length;let selected=value.slice(start,end);let caret=start+before.length;replaceRange(start,end,`${before}${selected}${after}`,caret,caret+selected.length)}function prefixLines(prefix){let el=textareaEl.value;if(!el)return;let value=__props.modelValue??``;let start=el.selectionStart??0;let end=el.selectionEnd??0;let lineStart=value.lastIndexOf(`
2
2
  `,start-1)+1;let prefixed=value.slice(lineStart,end).split(`
3
3
  `).map(line=>prefix+line).join(`
4
4
  `);replaceRange(lineStart,end,prefixed,lineStart,lineStart+prefixed.length)}function applyHeading(level){prefixLines(`${`#`.repeat(level)} `)}function insertLink(){let el=textareaEl.value;if(!el)return;let value=__props.modelValue??``;let start=el.selectionStart??value.length;let end=el.selectionEnd??value.length;let selected=value.slice(start,end)||labels.value.toolbar.link.toLowerCase();let urlStart=start+selected.length+3;replaceRange(start,end,`[${selected}](url)`,urlStart,urlStart+3)}function insertImage(){let el=textareaEl.value;if(!el)return;let value=__props.modelValue??``;let start=el.selectionStart??value.length;let end=el.selectionEnd??value.length;let selected=value.slice(start,end)||`alt`;let urlStart=start+selected.length+4;replaceRange(start,end,`![${selected}](url)`,urlStart,urlStart+3)}function insertCodeBlock(){let el=textareaEl.value;if(!el)return;let value=__props.modelValue??``;let start=el.selectionStart??value.length;let end=el.selectionEnd??value.length;let selected=value.slice(start,end);let caret=start+4;replaceRange(start,end,`\`\`\`\n${selected}\n\`\`\``,caret,caret+selected.length)}function insertTable(){let el=textareaEl.value;if(!el)return;let start=el.selectionStart??0;replaceRange(start,el.selectionEnd??0,`| Header | Header |
@@ -7,4 +7,4 @@ import{useInstanceUniqId}from"../composables/useInstanceUniqId.js";import{t as _
7
7
  `,start+50)}let SIMPLE_ACTIONS={bold:{icon:MazBold,run:()=>wrapSelection(`**`)},italic:{icon:MazItalic,run:()=>wrapSelection(`_`)},strikethrough:{icon:MazStrikethrough,run:()=>wrapSelection(`~~`)},quote:{icon:MazChatBubbleBottomCenterText,run:()=>prefixLines(`> `)},code:{icon:MazCodeBracket,run:()=>wrapSelection("`")},codeBlock:{icon:MazCodeBracketSquare,run:insertCodeBlock},link:{icon:MazLinkIcon,run:insertLink},image:{icon:MazPhoto,run:insertImage},bulletList:{icon:MazListBullet,run:()=>prefixLines(`- `)},orderedList:{icon:MazNumberedList,run:()=>prefixLines(`1. `)},checkList:{icon:MazCheckCircle,run:()=>prefixLines(`- [ ] `)},table:{icon:MazTableCells,run:insertTable}};let SHORTCUT_BINDINGS=[{action:`bold`,key:`b`,shift:!1,alt:!1,token:`B`,run:SIMPLE_ACTIONS.bold.run},{action:`italic`,key:`i`,shift:!1,alt:!1,token:`I`,run:SIMPLE_ACTIONS.italic.run},{action:`link`,key:`k`,shift:!1,alt:!1,token:`K`,run:SIMPLE_ACTIONS.link.run},{action:`code`,key:`e`,shift:!1,alt:!1,token:`E`,run:SIMPLE_ACTIONS.code.run},{action:`codeBlock`,key:`e`,shift:!0,alt:!1,token:`E`,run:SIMPLE_ACTIONS.codeBlock.run},{action:`strikethrough`,key:`x`,shift:!0,alt:!1,token:`X`,run:SIMPLE_ACTIONS.strikethrough.run},{action:`quote`,code:`Period`,shift:!0,alt:!1,token:`.`,run:SIMPLE_ACTIONS.quote.run},{action:`bulletList`,code:`Digit8`,shift:!0,alt:!1,token:`8`,run:SIMPLE_ACTIONS.bulletList.run},{action:`orderedList`,code:`Digit7`,shift:!0,alt:!1,token:`7`,run:SIMPLE_ACTIONS.orderedList.run},{action:`checkList`,key:`l`,shift:!0,alt:!1,token:`L`,run:SIMPLE_ACTIONS.checkList.run},{action:`heading`,code:`Digit1`,shift:!1,alt:!0,token:`1`,run:()=>applyHeading(1)},{action:`heading`,code:`Digit2`,shift:!1,alt:!0,token:`2`,run:()=>applyHeading(2)},{action:`heading`,code:`Digit3`,shift:!1,alt:!0,token:`3`,run:()=>applyHeading(3)}];let isApplePlatform=typeof navigator<`u`&&/Mac|iPhone|iPad|iPod/.test(navigator.platform||navigator.userAgent||``);function formatShortcut(binding){return`${isApplePlatform?`⌘`:`Ctrl+`}${binding.alt?isApplePlatform?`⌥`:`Alt+`:``}${binding.shift?isApplePlatform?`⇧`:`Shift+`:``}${binding.token}`}let shortcutHints=computed(()=>{let hints={};if(!__props.shortcuts)return hints;for(let binding of SHORTCUT_BINDINGS)hints[binding.action]||(hints[binding.action]=formatShortcut(binding));return hints});let LIST_PATTERNS=[{re:/^(\s*)([-*+]) \[[ x]\] (.*)$/i,marker:m=>`${m[1]}${m[2]} [ ] `,content:m=>m[3]},{re:/^(\s*)([-*+]) (.*)$/,marker:m=>`${m[1]}${m[2]} `,content:m=>m[3]},{re:/^(\s*)(\d+)([.)]) (.*)$/,marker:m=>`${m[1]}${Number(m[2])+1}${m[3]} `,content:m=>m[4]}];function handleListContinuation(){let el=textareaEl.value;if(!el||el.selectionStart!==el.selectionEnd)return!1;let value=__props.modelValue??``;let caret=el.selectionStart??0;let lineStart=value.lastIndexOf(`
8
8
  `,caret-1)+1;let lineBreak=value.indexOf(`
9
9
  `,caret);let lineEnd=lineBreak===-1?value.length:lineBreak;let line=value.slice(lineStart,lineEnd);for(let pattern of LIST_PATTERNS){let match=line.match(pattern.re);if(match){if(pattern.content(match).trim()===``)replaceRange(lineStart,lineEnd,``,lineStart);else{let marker=pattern.marker(match);replaceRange(caret,caret,`\n${marker}`,caret+marker.length+1)}return!0}}return!1}function handleKeydown(event){if(__props.disabled||__props.readonly)return;if(event.key===`Enter`&&!event.shiftKey&&!event.metaKey&&!event.ctrlKey&&!event.altKey){handleListContinuation()&&event.preventDefault();return}if(!__props.shortcuts||!(event.metaKey||event.ctrlKey))return;let match=SHORTCUT_BINDINGS.find(binding=>binding.shift===event.shiftKey&&binding.alt===event.altKey&&(binding.code?event.code===binding.code:event.key.toLowerCase()===binding.key));match&&(event.preventDefault(),match.run())}let DEFAULT_TOOLBAR_ACTIONS=[`heading`,`bold`,`italic`,`strikethrough`,`quote`,`code`,`codeBlock`,`link`,`image`,`bulletList`,`orderedList`,`checkList`,`table`];let resolvedToolbarActions=computed(()=>__props.toolbar===!0?DEFAULT_TOOLBAR_ACTIONS:Array.isArray(__props.toolbar)?__props.toolbar.filter(key=>key===`heading`||key in SIMPLE_ACTIONS):[]);let toolbarButtons=computed(()=>resolvedToolbarActions.value.map(key=>{if(key===`heading`)return{key,isHeading:!0,label:labels.value.toolbar.heading,title:labels.value.toolbar.heading};let label=labels.value.toolbar[key];let hint=shortcutHints.value[key];return{key,isHeading:!1,icon:SIMPLE_ACTIONS[key].icon,label,title:hint?`${label} (${hint})`:label,run:SIMPLE_ACTIONS[key].run}}));let headingItems=computed(()=>[{label:labels.value.headings.h1,onClick:()=>applyHeading(1)},{label:labels.value.headings.h2,onClick:()=>applyHeading(2)},{label:labels.value.headings.h3,onClick:()=>applyHeading(3)}]);let showToolbar=computed(()=>resolvedToolbarActions.value.length>0&&mode.value!==`preview`);let lineCount=computed(()=>(__props.modelValue??``).split(`
10
- `).length);function syncGutterScroll(){gutterEl.value&&textareaEl.value&&(gutterEl.value.scrollTop=textareaEl.value.scrollTop)}function handleFocus(event){emits(`focus`,event)}function handleBlur(event){emits(`blur`,event)}function handleChange(event){emits(`change`,event)}let borderStyle=computed(()=>__props.error?`maz:border-destructive`:__props.success?`maz:border-success`:__props.warning?`maz:border-warning`:`maz:border-divider maz:dark:border-divider-400`);let stateLabelColor=computed(()=>({"maz:text-destructive-600":__props.error,"maz:text-success-600":__props.success,"maz:text-warning-600":__props.warning}));let ROUNDED_CLASS={none:``,sm:`maz:rounded-xs`,md:`maz:rounded-md`,lg:`maz:rounded-lg`,xl:`maz:rounded-xl`,full:`maz:rounded-xl`};let writePanelId=computed(()=>`${instanceId.value}-write`);let previewPanelId=computed(()=>`${instanceId.value}-preview`);let tabItems=computed(()=>[{id:`${instanceId.value}-tab-write`,color:`transparent`,outlined:!0,active:mode.value===`write`,startIcon:MazPencil,size:`xs`,role:`tab`,"aria-controls":writePanelId.value,"aria-selected":mode.value===`write`,disabled:__props.disabled,text:labels.value.write,onClick:()=>setMode(`write`)},{id:`${instanceId.value}-tab-preview`,color:`transparent`,outlined:!0,active:mode.value===`preview`,startIcon:MazEye,size:`xs`,role:`tab`,"aria-controls":previewPanelId.value,"aria-selected":mode.value===`preview`,disabled:__props.disabled,text:labels.value.preview,onClick:()=>setMode(`preview`)},{id:`${instanceId.value}-tab-split`,color:`transparent`,outlined:!0,active:mode.value===`split`,startIcon:MazViewColumns,size:`xs`,role:`tab`,"aria-controls":`${writePanelId.value} ${previewPanelId.value}`,"aria-selected":mode.value===`split`,disabled:__props.disabled,text:labels.value.split,onClick:()=>setMode(`split`)}]);return watch([()=>__props.modelValue,mode],([,currentMode])=>{currentMode!==`write`&&renderPreview()},{immediate:!0}),__expose({textarea:textareaEl,mode,renderPreview,focus:()=>textareaEl.value?.focus()}),(_ctx,_cache)=>(openBlock(),createElementBlock(`div`,{class:normalizeClass([`m-markdown-editor m-reset-css maz:flex maz:flex-col maz:gap-2`,__props.class]),style:normalizeStyle(__props.style)},[__props.topLabel||__props.label||_ctx.$slots.label?(openBlock(),createElementBlock(`label`,{key:0,for:unref(instanceId),class:normalizeClass([`m-markdown-editor__top-label maz:w-max`,stateLabelColor.value]),style:{fontWeight:`var(--maz-input-top-label-font-weight, 600)`}},[renderSlot(_ctx.$slots,`label`,{},()=>[createTextVNode(toDisplayString(__props.topLabel??__props.label),1)],!0)],10,_hoisted_1)):createCommentVNode(``,!0),createElementVNode(`div`,{class:normalizeClass([`m-markdown-editor__box maz:flex maz:flex-col maz:overflow-hidden maz:text-foreground`,[borderStyle.value,ROUNDED_CLASS[unref(roundedSize)],`--${__props.color}`,{"--is-disabled maz:disabled-cursor maz:border-divider maz:bg-surface-600 maz:text-muted maz:dark:border-divider-400 maz:dark:bg-surface-400":__props.disabled,"maz:border maz:border-solid maz:bg-input":!__props.disabled}]])},[createElementVNode(`div`,_hoisted_2,[createElementVNode(`div`,{class:`m-markdown-editor__tabs maz:flex maz:gap-1`,role:`tablist`,"aria-label":__props.name},[createVNode(MazBtnGroup_default,{size:`sm`,items:tabItems.value},null,8,[`items`])],8,_hoisted_3),showToolbar.value?(openBlock(),createElementBlock(`div`,_hoisted_4,[renderSlot(_ctx.$slots,`toolbar`,{mode:mode.value,wrapSelection,prefixLines,applyHeading,insertLink,insertImage,insertCodeBlock,insertTable},()=>[(openBlock(!0),createElementBlock(Fragment,null,renderList(toolbarButtons.value,item=>(openBlock(),createElementBlock(Fragment,{key:item.key},[item.isHeading?(openBlock(),createBlock(MazDropdown_default,{key:0,items:headingItems.value,trigger:`adaptive`,transition:`scale-pop`,size:`xs`},{trigger:withCtx(({toggle})=>[createVNode(MazBtn_default,{size:`xs`,color:`transparent`,type:`button`,icon:unref(MazHashtag),"aria-label":item.label,title:item.title,disabled:__props.disabled||__props.readonly,"data-action":`heading`,onClick:toggle},null,8,[`icon`,`aria-label`,`title`,`disabled`,`onClick`])]),_:2},1032,[`items`])):(openBlock(),createBlock(MazBtn_default,{key:1,size:`xs`,color:`transparent`,type:`button`,icon:item.icon,"aria-label":item.label,title:item.title,disabled:__props.disabled||__props.readonly,"data-action":item.key,onClick:$event=>item.run()},null,8,[`icon`,`aria-label`,`title`,`disabled`,`data-action`,`onClick`]))],64))),128))],!0)])):createCommentVNode(``,!0)]),createElementVNode(`div`,{class:normalizeClass([`m-markdown-editor__content maz:flex maz:flex-col`,{"maz:tab-s:flex-row":mode.value===`split`}])},[withDirectives(createElementVNode(`div`,_hoisted_5,[__props.lineNumbers?(openBlock(),createElementBlock(`div`,{key:0,ref_key:`gutterEl`,ref:gutterEl,class:`m-markdown-editor__gutter maz:overflow-hidden maz:border-r maz:border-divider maz:py-3 maz:pr-2 maz:pl-3 maz:text-right maz:font-mono maz:text-sm maz:text-muted maz:select-none maz:dark:border-divider-400`,"aria-hidden":`true`},[(openBlock(!0),createElementBlock(Fragment,null,renderList(lineCount.value,n=>(openBlock(),createElementBlock(`span`,{key:n,class:`maz:block`},toDisplayString(n),1))),128))],512)):createCommentVNode(``,!0),withDirectives(createElementVNode(`textarea`,mergeProps({id:unref(instanceId),ref_key:`textareaEl`,ref:textareaEl},_ctx.$attrs,{"onUpdate:modelValue":_cache[0]||=$event=>inputValue.value=$event,class:`m-markdown-editor__textarea maz:min-w-0 maz:flex-1 maz:resize-y maz:bg-transparent maz:px-4 maz:py-3 maz:font-mono maz:text-sm maz:outline-hidden`,name:__props.name,rows:__props.rows,placeholder:__props.placeholder,disabled:__props.disabled,readonly:__props.readonly,required:__props.required,role:`tabpanel`,"aria-labelledby":`${unref(instanceId)}-tab-write`,onFocus:handleFocus,onBlur:handleBlur,onChange:handleChange,onScroll:syncGutterScroll,onKeydown:handleKeydown}),null,16,_hoisted_6),[[vModelText,inputValue.value]])],512),[[vShow,mode.value!==`preview`]]),withDirectives(createElementVNode(`div`,{id:previewPanelId.value,class:normalizeClass([`m-markdown-editor__preview maz:min-w-0 maz:flex-1 maz:px-4 maz:py-3 maz:text-sm`,{"--split maz:border-t maz:border-divider maz:tab-s:border-t-0 maz:tab-s:border-l maz:dark:border-divider-400":mode.value===`split`}]),role:`tabpanel`,"aria-labelledby":`${unref(instanceId)}-tab-preview`,style:normalizeStyle({minHeight:`${__props.rows*1.5}rem`})},[previewHtml.value?(openBlock(),createElementBlock(`div`,{key:0,class:`m-markdown-editor__preview-content`,innerHTML:previewHtml.value},null,8,_hoisted_8)):isRendering.value?createCommentVNode(``,!0):(openBlock(),createElementBlock(`p`,_hoisted_9,[renderSlot(_ctx.$slots,`empty-preview`,{},()=>[createTextVNode(toDisplayString(labels.value.emptyPreview),1)],!0)]))],14,_hoisted_7),[[vShow,mode.value!==`write`]])],2)],2),__props.assistiveText?(openBlock(),createElementBlock(`div`,{key:1,class:normalizeClass([`m-markdown-editor__bottom-text maz:-mt-1 maz:text-sm`,{"maz:text-destructive-600":__props.error,"maz:text-success-600":__props.success,"maz:text-warning-600":__props.warning,"maz:text-muted":!__props.error&&!__props.success&&!__props.warning}])},toDisplayString(__props.assistiveText),3)):createCommentVNode(``,!0)],6))}}),[[`__scopeId`,`data-v-b7a66665`]]);export{MazMarkdownEditor_default as t};
10
+ `).length);function syncGutterScroll(){gutterEl.value&&textareaEl.value&&(gutterEl.value.scrollTop=textareaEl.value.scrollTop)}function handleFocus(event){emits(`focus`,event)}function handleBlur(event){emits(`blur`,event)}function handleChange(event){emits(`change`,event)}let borderStyle=computed(()=>__props.error?`maz:border-destructive`:__props.success?`maz:border-success`:__props.warning?`maz:border-warning`:`maz:border-divider maz:dark:border-divider-400`);let stateLabelColor=computed(()=>({"maz:text-destructive-600":__props.error,"maz:text-success-600":__props.success,"maz:text-warning-600":__props.warning}));let ROUNDED_CLASS={none:``,sm:`maz:rounded-xs`,md:`maz:rounded-md`,lg:`maz:rounded-lg`,xl:`maz:rounded-xl`,full:`maz:rounded-xl`};let writePanelId=computed(()=>`${instanceId.value}-write`);let previewPanelId=computed(()=>`${instanceId.value}-preview`);let tabItems=computed(()=>[{id:`${instanceId.value}-tab-write`,color:`transparent`,outlined:!0,active:mode.value===`write`,startIcon:MazPencil,size:`xs`,role:`tab`,"aria-controls":writePanelId.value,"aria-selected":mode.value===`write`,disabled:__props.disabled,text:labels.value.write,onClick:()=>setMode(`write`)},{id:`${instanceId.value}-tab-preview`,color:`transparent`,outlined:!0,active:mode.value===`preview`,startIcon:MazEye,size:`xs`,role:`tab`,"aria-controls":previewPanelId.value,"aria-selected":mode.value===`preview`,disabled:__props.disabled,text:labels.value.preview,onClick:()=>setMode(`preview`)},{id:`${instanceId.value}-tab-split`,color:`transparent`,outlined:!0,active:mode.value===`split`,startIcon:MazViewColumns,size:`xs`,role:`tab`,"aria-controls":`${writePanelId.value} ${previewPanelId.value}`,"aria-selected":mode.value===`split`,disabled:__props.disabled,text:labels.value.split,onClick:()=>setMode(`split`)}]);return watch([()=>__props.modelValue,mode],([,currentMode])=>{currentMode!==`write`&&renderPreview()},{immediate:!0}),__expose({textarea:textareaEl,mode,renderPreview,focus:()=>textareaEl.value?.focus()}),(_ctx,_cache)=>(openBlock(),createElementBlock(`div`,{class:normalizeClass([`m-markdown-editor m-reset-css maz:flex maz:flex-col maz:gap-2`,__props.class]),style:normalizeStyle(__props.style)},[__props.topLabel||__props.label||_ctx.$slots.label?(openBlock(),createElementBlock(`label`,{key:0,for:unref(instanceId),class:normalizeClass([`m-markdown-editor__top-label maz:w-max`,stateLabelColor.value]),style:{fontWeight:`var(--maz-input-top-label-font-weight, 600)`}},[renderSlot(_ctx.$slots,`label`,{},()=>[createTextVNode(toDisplayString(__props.topLabel??__props.label),1)],!0)],10,_hoisted_1)):createCommentVNode(``,!0),createElementVNode(`div`,{class:normalizeClass([`m-markdown-editor__box maz:flex maz:flex-col maz:overflow-hidden maz:text-foreground`,[borderStyle.value,ROUNDED_CLASS[unref(roundedSize)],`--${__props.color}`,{"--is-disabled maz:disabled-cursor maz:border-divider maz:bg-surface-600 maz:text-muted maz:dark:border-divider-400 maz:dark:bg-surface-400":__props.disabled,"maz:border maz:border-solid maz:bg-input":!__props.disabled}]])},[createElementVNode(`div`,_hoisted_2,[createElementVNode(`div`,{class:`m-markdown-editor__tabs maz:flex maz:gap-1`,role:`tablist`,"aria-label":__props.name},[createVNode(MazBtnGroup_default,{size:`sm`,items:tabItems.value},null,8,[`items`])],8,_hoisted_3),showToolbar.value?(openBlock(),createElementBlock(`div`,_hoisted_4,[renderSlot(_ctx.$slots,`toolbar`,{mode:mode.value,wrapSelection,prefixLines,applyHeading,insertLink,insertImage,insertCodeBlock,insertTable},()=>[(openBlock(!0),createElementBlock(Fragment,null,renderList(toolbarButtons.value,item=>(openBlock(),createElementBlock(Fragment,{key:item.key},[item.isHeading?(openBlock(),createBlock(MazDropdown_default,{key:0,items:headingItems.value,trigger:`adaptive`,"close-on-click":``,transition:`scale-pop`,size:`xs`},{trigger:withCtx(({toggle})=>[createVNode(MazBtn_default,{size:`xs`,color:`transparent`,type:`button`,icon:unref(MazHashtag),"aria-label":item.label,title:item.title,disabled:__props.disabled||__props.readonly,"data-action":`heading`,onClick:toggle},null,8,[`icon`,`aria-label`,`title`,`disabled`,`onClick`])]),_:2},1032,[`items`])):(openBlock(),createBlock(MazBtn_default,{key:1,size:`xs`,color:`transparent`,type:`button`,icon:item.icon,"aria-label":item.label,title:item.title,disabled:__props.disabled||__props.readonly,"data-action":item.key,onClick:$event=>item.run()},null,8,[`icon`,`aria-label`,`title`,`disabled`,`data-action`,`onClick`]))],64))),128))],!0)])):createCommentVNode(``,!0)]),createElementVNode(`div`,{class:normalizeClass([`m-markdown-editor__content maz:flex maz:flex-col`,{"maz:tab-s:flex-row":mode.value===`split`}])},[withDirectives(createElementVNode(`div`,_hoisted_5,[__props.lineNumbers?(openBlock(),createElementBlock(`div`,{key:0,ref_key:`gutterEl`,ref:gutterEl,class:`m-markdown-editor__gutter maz:overflow-hidden maz:border-r maz:border-divider maz:py-3 maz:pr-2 maz:pl-3 maz:text-right maz:font-mono maz:text-sm maz:text-muted maz:select-none maz:dark:border-divider-400`,"aria-hidden":`true`},[(openBlock(!0),createElementBlock(Fragment,null,renderList(lineCount.value,n=>(openBlock(),createElementBlock(`span`,{key:n,class:`maz:block`},toDisplayString(n),1))),128))],512)):createCommentVNode(``,!0),withDirectives(createElementVNode(`textarea`,mergeProps({id:unref(instanceId),ref_key:`textareaEl`,ref:textareaEl},_ctx.$attrs,{"onUpdate:modelValue":_cache[0]||=$event=>inputValue.value=$event,class:`m-markdown-editor__textarea maz:min-w-0 maz:flex-1 maz:resize-y maz:bg-transparent maz:px-4 maz:py-3 maz:font-mono maz:text-sm maz:outline-hidden`,name:__props.name,rows:__props.rows,placeholder:__props.placeholder,disabled:__props.disabled,readonly:__props.readonly,required:__props.required,role:`tabpanel`,"aria-labelledby":`${unref(instanceId)}-tab-write`,onFocus:handleFocus,onBlur:handleBlur,onChange:handleChange,onScroll:syncGutterScroll,onKeydown:handleKeydown}),null,16,_hoisted_6),[[vModelText,inputValue.value]])],512),[[vShow,mode.value!==`preview`]]),withDirectives(createElementVNode(`div`,{id:previewPanelId.value,class:normalizeClass([`m-markdown-editor__preview maz:min-w-0 maz:flex-1 maz:px-4 maz:py-3 maz:text-sm`,{"--split maz:border-t maz:border-divider maz:tab-s:border-t-0 maz:tab-s:border-l maz:dark:border-divider-400":mode.value===`split`}]),role:`tabpanel`,"aria-labelledby":`${unref(instanceId)}-tab-preview`,style:normalizeStyle({minHeight:`${__props.rows*1.5}rem`})},[previewHtml.value?(openBlock(),createElementBlock(`div`,{key:0,class:`m-markdown-editor__preview-content`,innerHTML:previewHtml.value},null,8,_hoisted_8)):isRendering.value?createCommentVNode(``,!0):(openBlock(),createElementBlock(`p`,_hoisted_9,[renderSlot(_ctx.$slots,`empty-preview`,{},()=>[createTextVNode(toDisplayString(labels.value.emptyPreview),1)],!0)]))],14,_hoisted_7),[[vShow,mode.value!==`write`]])],2)],2),__props.assistiveText?(openBlock(),createElementBlock(`div`,{key:1,class:normalizeClass([`m-markdown-editor__bottom-text maz:-mt-1 maz:text-sm`,{"maz:text-destructive-600":__props.error,"maz:text-success-600":__props.success,"maz:text-warning-600":__props.warning,"maz:text-muted":!__props.error&&!__props.success&&!__props.warning}])},toDisplayString(__props.assistiveText),3)):createCommentVNode(``,!0)],6))}}),[[`__scopeId`,`data-v-d061360c`]]);export{MazMarkdownEditor_default as t};
@@ -1 +1 @@
1
- import{useGlobalConfig}from"../composables/useGlobalConfig.js";import{t as MazIcon_default}from"./MazIcon.CblJ-8Iu.js";import{t as MazBtn_default}from"./MazBtn.DOoL5s3h.js";import{Fragment,computed,createBlock,createCommentVNode,createElementBlock,createElementVNode,createTextVNode,createVNode,defineComponent,mergeProps,openBlock,renderList,renderSlot,toDisplayString,unref,withCtx}from"vue";import{useTranslations}from"@maz-ui/translations/composables/useTranslations";import{MazEllipsisHorizontal}from"@maz-ui/icons/lazy/MazEllipsisHorizontal";import{MazChevronDoubleLeft}from"@maz-ui/icons/raw/MazChevronDoubleLeft";import{MazChevronLeft}from"@maz-ui/icons/raw/MazChevronLeft";var _hoisted_1=[`aria-label`];var _hoisted_2={class:`maz:m-0! maz:inline-flex maz:list-none! maz:items-center maz:gap-2 maz:-space-x-px maz:p-0! maz:align-top maz:text-base`};var _hoisted_3={class:`maz:m-0`};var _hoisted_4={class:`maz:sr-only`};var _hoisted_5={class:`maz:m-0`};var _hoisted_6={class:`maz:sr-only`};var _hoisted_7=[`id`];var _hoisted_8={class:`maz:sr-only`};var _hoisted_9={class:`maz:m-0`};var _hoisted_10={class:`maz:sr-only`};var _hoisted_11={class:`maz:m-0`};var _hoisted_12={class:`maz:sr-only`};var MazPagination_default=defineComponent({__name:`MazPagination`,props:{modelValue:{default:1},buttonProps:{},activeColor:{default:`surface`},size:{},totalPages:{},pageRange:{default:1},loading:{type:Boolean}},emits:[`update:model-value`],setup(__props,{emit:__emit}){let emits=__emit;let DEFAULT_BUTTONS_PROPS={size:`md`,color:`surface`,outlined:!0,fab:!0};let{t}=useTranslations();let{size}=useGlobalConfig(`MazPagination`,{size:`md`});let buttonsPropsMerged=computed(()=>({...DEFAULT_BUTTONS_PROPS,...__props.buttonProps}));let previousPage=computed(()=>__props.modelValue>1?__props.modelValue-1:1);let nextPage=computed(()=>__props.modelValue<__props.totalPages?__props.modelValue+1:__props.totalPages);let allPages=computed(()=>Array.from({length:__props.totalPages},(_,index)=>{let itemNumber=index+1;return{number:itemNumber,isActive:itemNumber===__props.modelValue,loading:itemNumber===__props.modelValue&&__props.loading}}));let firstOne=computed(()=>__props.modelValue-__props.pageRange>1?allPages.value.slice(0,1):[]);let lastOne=computed(()=>__props.modelValue<__props.totalPages-__props.pageRange?allPages.value.slice(-1):[]);let rangeStartAt=computed(()=>{let baseStart=__props.modelValue-__props.pageRange-1;return baseStart<0?0:baseStart>__props.totalPages-__props.pageRange?__props.totalPages-__props.pageRange:baseStart});let rangeEndAt=computed(()=>{let baseEnd=__props.modelValue+__props.pageRange;return baseEnd>__props.totalPages?__props.totalPages:baseEnd<__props.pageRange?__props.pageRange:baseEnd});let range=computed(()=>allPages.value.slice(rangeStartAt.value,rangeEndAt.value));let firstDivider=computed(()=>__props.modelValue-__props.pageRange>2?[{divider:!0}]:[]);let lastDivider=computed(()=>__props.modelValue<__props.totalPages-__props.pageRange-1?[{divider:!0}]:[]);let pages=computed(()=>[...firstOne.value,...firstDivider.value,...range.value,...lastDivider.value,...lastOne.value]);function setPageNumber(page){page!==__props.modelValue&&emits(`update:model-value`,page)}return(_ctx,_cache)=>(openBlock(),createElementBlock(`nav`,{class:`m-pagination m-reset-css`,role:`navigation`,"aria-label":unref(t)(`pagination.navAriaLabel`)},[createElementVNode(`ul`,_hoisted_2,[createElementVNode(`li`,_hoisted_3,[createVNode(MazBtn_default,mergeProps(buttonsPropsMerged.value,{disabled:__props.modelValue===1,"aria-label":`First Page, Page 1`,size:unref(size),onClick:_cache[0]||=$event=>setPageNumber(1)}),{default:withCtx(()=>[createElementVNode(`span`,_hoisted_4,[renderSlot(_ctx.$slots,`first-page-sr`,{page:1},()=>[createTextVNode(toDisplayString(unref(t)(`pagination.screenReader.firstPage`,{page:1})),1)])]),createVNode(MazIcon_default,{icon:unref(MazChevronDoubleLeft)},null,8,[`icon`])]),_:3},16,[`disabled`,`size`])]),createElementVNode(`li`,_hoisted_5,[createVNode(MazBtn_default,mergeProps(buttonsPropsMerged.value,{disabled:__props.modelValue===1,"aria-label":`Previous Page, Page ${previousPage.value}`,size:unref(size),onClick:_cache[1]||=$event=>setPageNumber(previousPage.value)}),{default:withCtx(()=>[createElementVNode(`span`,_hoisted_6,[renderSlot(_ctx.$slots,`previous-page-sr`,{page:previousPage.value},()=>[createTextVNode(toDisplayString(unref(t)(`pagination.screenReader.previousPage`,{page:previousPage.value})),1)])]),createVNode(MazIcon_default,{icon:unref(MazChevronLeft)},null,8,[`icon`])]),_:3},16,[`disabled`,`aria-label`,`size`])]),(openBlock(!0),createElementBlock(Fragment,null,renderList(pages.value,(page,i)=>(openBlock(),createElementBlock(`li`,{id:`number`in page?`button-${i}-${page.number}`:`ellipsis-${i}`,key:`number`in page?`button-${i}-${page.number}`:`ellipsis-${i}`,class:`maz:m-0`},[`number`in page?(openBlock(),createBlock(MazBtn_default,mergeProps({key:0,ref_for:!0},{...buttonsPropsMerged.value,color:page.isActive?__props.activeColor:buttonsPropsMerged.value.color,outlined:page.isActive?!1:buttonsPropsMerged.value.outlined},{size:unref(size),"aria-label":`Page ${page.number}`,"aria-current":page.isActive?`page`:void 0,loading:page.loading,class:{active:page.isActive},onClick:$event=>page.isActive?void 0:setPageNumber(page.number)}),{default:withCtx(()=>[createElementVNode(`span`,_hoisted_8,[renderSlot(_ctx.$slots,`page-sr`,{page:page.number},()=>[createTextVNode(toDisplayString(unref(t)(`pagination.screenReader.page`,{page:page.number})),1)])]),createTextVNode(` `+toDisplayString(page.number),1)]),_:2},1040,[`size`,`aria-label`,`aria-current`,`loading`,`class`,`onClick`])):page.divider?(openBlock(),createElementBlock(`div`,mergeProps({key:1,ref_for:!0},buttonsPropsMerged.value,{class:`flex-center flex p-2`}),[createVNode(unref(MazEllipsisHorizontal))],16)):createCommentVNode(``,!0)],8,_hoisted_7))),128)),createElementVNode(`li`,_hoisted_9,[createVNode(MazBtn_default,mergeProps(buttonsPropsMerged.value,{disabled:__props.modelValue===__props.totalPages,"aria-label":`Next Page, Page ${nextPage.value}`,size:unref(size),onClick:_cache[2]||=$event=>setPageNumber(nextPage.value)}),{default:withCtx(()=>[createElementVNode(`span`,_hoisted_10,[renderSlot(_ctx.$slots,`next-page-sr`,{page:nextPage.value},()=>[createTextVNode(toDisplayString(unref(t)(`pagination.screenReader.nextPage`,{page:nextPage.value})),1)])]),createVNode(MazIcon_default,{icon:unref(MazChevronLeft),class:`maz:-rotate-180`},null,8,[`icon`])]),_:3},16,[`disabled`,`aria-label`,`size`])]),createElementVNode(`li`,_hoisted_11,[createVNode(MazBtn_default,mergeProps(buttonsPropsMerged.value,{disabled:__props.modelValue===__props.totalPages,"aria-label":`Next Page, Page ${__props.totalPages}`,size:unref(size),onClick:_cache[3]||=$event=>setPageNumber(__props.totalPages)}),{default:withCtx(()=>[createElementVNode(`span`,_hoisted_12,[renderSlot(_ctx.$slots,`last-page-sr`,{page:__props.totalPages},()=>[createTextVNode(toDisplayString(unref(t)(`pagination.screenReader.lastPage`,{page:__props.totalPages})),1)])]),createVNode(MazIcon_default,{icon:unref(MazChevronDoubleLeft),class:`maz:-rotate-180`},null,8,[`icon`])]),_:3},16,[`disabled`,`aria-label`,`size`])])])],8,_hoisted_1))}});export{MazPagination_default as t};
1
+ import{useGlobalConfig}from"../composables/useGlobalConfig.js";import{t as MazIcon_default}from"./MazIcon.CblJ-8Iu.js";import{t as MazBtn_default}from"./MazBtn.C7LV-iX2.js";import{Fragment,computed,createBlock,createCommentVNode,createElementBlock,createElementVNode,createTextVNode,createVNode,defineComponent,mergeProps,openBlock,renderList,renderSlot,toDisplayString,unref,withCtx}from"vue";import{useTranslations}from"@maz-ui/translations/composables/useTranslations";import{MazEllipsisHorizontal}from"@maz-ui/icons/lazy/MazEllipsisHorizontal";import{MazChevronDoubleLeft}from"@maz-ui/icons/raw/MazChevronDoubleLeft";import{MazChevronLeft}from"@maz-ui/icons/raw/MazChevronLeft";var _hoisted_1=[`aria-label`];var _hoisted_2={class:`maz:m-0! maz:inline-flex maz:list-none! maz:items-center maz:gap-2 maz:-space-x-px maz:p-0! maz:align-top maz:text-base`};var _hoisted_3={class:`maz:m-0`};var _hoisted_4={class:`maz:sr-only`};var _hoisted_5={class:`maz:m-0`};var _hoisted_6={class:`maz:sr-only`};var _hoisted_7=[`id`];var _hoisted_8={class:`maz:sr-only`};var _hoisted_9={class:`maz:m-0`};var _hoisted_10={class:`maz:sr-only`};var _hoisted_11={class:`maz:m-0`};var _hoisted_12={class:`maz:sr-only`};var MazPagination_default=defineComponent({__name:`MazPagination`,props:{modelValue:{default:1},buttonProps:{},activeColor:{default:`surface`},size:{},totalPages:{},pageRange:{default:1},loading:{type:Boolean}},emits:[`update:model-value`],setup(__props,{emit:__emit}){let emits=__emit;let DEFAULT_BUTTONS_PROPS={size:`md`,color:`surface`,outlined:!0,fab:!0};let{t}=useTranslations();let{size}=useGlobalConfig(`MazPagination`,{size:`md`});let buttonsPropsMerged=computed(()=>({...DEFAULT_BUTTONS_PROPS,...__props.buttonProps}));let previousPage=computed(()=>__props.modelValue>1?__props.modelValue-1:1);let nextPage=computed(()=>__props.modelValue<__props.totalPages?__props.modelValue+1:__props.totalPages);let allPages=computed(()=>Array.from({length:__props.totalPages},(_,index)=>{let itemNumber=index+1;return{number:itemNumber,isActive:itemNumber===__props.modelValue,loading:itemNumber===__props.modelValue&&__props.loading}}));let firstOne=computed(()=>__props.modelValue-__props.pageRange>1?allPages.value.slice(0,1):[]);let lastOne=computed(()=>__props.modelValue<__props.totalPages-__props.pageRange?allPages.value.slice(-1):[]);let rangeStartAt=computed(()=>{let baseStart=__props.modelValue-__props.pageRange-1;return baseStart<0?0:baseStart>__props.totalPages-__props.pageRange?__props.totalPages-__props.pageRange:baseStart});let rangeEndAt=computed(()=>{let baseEnd=__props.modelValue+__props.pageRange;return baseEnd>__props.totalPages?__props.totalPages:baseEnd<__props.pageRange?__props.pageRange:baseEnd});let range=computed(()=>allPages.value.slice(rangeStartAt.value,rangeEndAt.value));let firstDivider=computed(()=>__props.modelValue-__props.pageRange>2?[{divider:!0}]:[]);let lastDivider=computed(()=>__props.modelValue<__props.totalPages-__props.pageRange-1?[{divider:!0}]:[]);let pages=computed(()=>[...firstOne.value,...firstDivider.value,...range.value,...lastDivider.value,...lastOne.value]);function setPageNumber(page){page!==__props.modelValue&&emits(`update:model-value`,page)}return(_ctx,_cache)=>(openBlock(),createElementBlock(`nav`,{class:`m-pagination m-reset-css`,role:`navigation`,"aria-label":unref(t)(`pagination.navAriaLabel`)},[createElementVNode(`ul`,_hoisted_2,[createElementVNode(`li`,_hoisted_3,[createVNode(MazBtn_default,mergeProps(buttonsPropsMerged.value,{disabled:__props.modelValue===1,"aria-label":`First Page, Page 1`,size:unref(size),onClick:_cache[0]||=$event=>setPageNumber(1)}),{default:withCtx(()=>[createElementVNode(`span`,_hoisted_4,[renderSlot(_ctx.$slots,`first-page-sr`,{page:1},()=>[createTextVNode(toDisplayString(unref(t)(`pagination.screenReader.firstPage`,{page:1})),1)])]),createVNode(MazIcon_default,{icon:unref(MazChevronDoubleLeft)},null,8,[`icon`])]),_:3},16,[`disabled`,`size`])]),createElementVNode(`li`,_hoisted_5,[createVNode(MazBtn_default,mergeProps(buttonsPropsMerged.value,{disabled:__props.modelValue===1,"aria-label":`Previous Page, Page ${previousPage.value}`,size:unref(size),onClick:_cache[1]||=$event=>setPageNumber(previousPage.value)}),{default:withCtx(()=>[createElementVNode(`span`,_hoisted_6,[renderSlot(_ctx.$slots,`previous-page-sr`,{page:previousPage.value},()=>[createTextVNode(toDisplayString(unref(t)(`pagination.screenReader.previousPage`,{page:previousPage.value})),1)])]),createVNode(MazIcon_default,{icon:unref(MazChevronLeft)},null,8,[`icon`])]),_:3},16,[`disabled`,`aria-label`,`size`])]),(openBlock(!0),createElementBlock(Fragment,null,renderList(pages.value,(page,i)=>(openBlock(),createElementBlock(`li`,{id:`number`in page?`button-${i}-${page.number}`:`ellipsis-${i}`,key:`number`in page?`button-${i}-${page.number}`:`ellipsis-${i}`,class:`maz:m-0`},[`number`in page?(openBlock(),createBlock(MazBtn_default,mergeProps({key:0,ref_for:!0},{...buttonsPropsMerged.value,color:page.isActive?__props.activeColor:buttonsPropsMerged.value.color,outlined:page.isActive?!1:buttonsPropsMerged.value.outlined},{size:unref(size),"aria-label":`Page ${page.number}`,"aria-current":page.isActive?`page`:void 0,loading:page.loading,class:{active:page.isActive},onClick:$event=>page.isActive?void 0:setPageNumber(page.number)}),{default:withCtx(()=>[createElementVNode(`span`,_hoisted_8,[renderSlot(_ctx.$slots,`page-sr`,{page:page.number},()=>[createTextVNode(toDisplayString(unref(t)(`pagination.screenReader.page`,{page:page.number})),1)])]),createTextVNode(` `+toDisplayString(page.number),1)]),_:2},1040,[`size`,`aria-label`,`aria-current`,`loading`,`class`,`onClick`])):page.divider?(openBlock(),createElementBlock(`div`,mergeProps({key:1,ref_for:!0},buttonsPropsMerged.value,{class:`flex-center flex p-2`}),[createVNode(unref(MazEllipsisHorizontal))],16)):createCommentVNode(``,!0)],8,_hoisted_7))),128)),createElementVNode(`li`,_hoisted_9,[createVNode(MazBtn_default,mergeProps(buttonsPropsMerged.value,{disabled:__props.modelValue===__props.totalPages,"aria-label":`Next Page, Page ${nextPage.value}`,size:unref(size),onClick:_cache[2]||=$event=>setPageNumber(nextPage.value)}),{default:withCtx(()=>[createElementVNode(`span`,_hoisted_10,[renderSlot(_ctx.$slots,`next-page-sr`,{page:nextPage.value},()=>[createTextVNode(toDisplayString(unref(t)(`pagination.screenReader.nextPage`,{page:nextPage.value})),1)])]),createVNode(MazIcon_default,{icon:unref(MazChevronLeft),class:`maz:-rotate-180`},null,8,[`icon`])]),_:3},16,[`disabled`,`aria-label`,`size`])]),createElementVNode(`li`,_hoisted_11,[createVNode(MazBtn_default,mergeProps(buttonsPropsMerged.value,{disabled:__props.modelValue===__props.totalPages,"aria-label":`Next Page, Page ${__props.totalPages}`,size:unref(size),onClick:_cache[3]||=$event=>setPageNumber(__props.totalPages)}),{default:withCtx(()=>[createElementVNode(`span`,_hoisted_12,[renderSlot(_ctx.$slots,`last-page-sr`,{page:__props.totalPages},()=>[createTextVNode(toDisplayString(unref(t)(`pagination.screenReader.lastPage`,{page:__props.totalPages})),1)])]),createVNode(MazIcon_default,{icon:unref(MazChevronDoubleLeft),class:`maz:-rotate-180`},null,8,[`icon`])]),_:3},16,[`disabled`,`aria-label`,`size`])])])],8,_hoisted_1))}});export{MazPagination_default as t};
@@ -1 +1 @@
1
- import{t as _plugin_vue_export_helper_default}from"./_plugin-vue_export-helper.zP_plvmB.js";import{t as MazBtn_default}from"./MazBtn.DOoL5s3h.js";import{d as isRangeValue,f as isSameDate,m as isValidDate,o as getFirstDayOfMonth,p as isSameDay,r as getDaysInMonth}from"./utils.CjLBQJki.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};
1
+ import{t as _plugin_vue_export_helper_default}from"./_plugin-vue_export-helper.zP_plvmB.js";import{t as MazBtn_default}from"./MazBtn.C7LV-iX2.js";import{d as isRangeValue,f as isSameDate,m as isValidDate,o as getFirstDayOfMonth,p as isSameDay,r as getDaysInMonth}from"./utils.CjLBQJki.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};
@@ -1 +1 @@
1
- import{t as MazBottomSheet_default}from"../chunks/MazBottomSheet.UP5YIGmX.js";export{MazBottomSheet_default as default};
1
+ import{t as MazBottomSheet_default}from"../chunks/MazBottomSheet.D1BeBFNK.js";export{MazBottomSheet_default as default};
@@ -1 +1 @@
1
- import{t as MazBtn_default}from"../chunks/MazBtn.DOoL5s3h.js";export{MazBtn_default as default};
1
+ import{t as MazBtn_default}from"../chunks/MazBtn.C7LV-iX2.js";export{MazBtn_default as default};
@@ -13,9 +13,14 @@ export interface MazBtnProps {
13
13
  size?: MazSize;
14
14
  /**
15
15
  * The color of the button
16
- * @values `'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'destructive' | 'transparent' | 'contrast' | 'accent' | 'surface'`
16
+ * @values `'primary' | 'secondary' | 'accent' | 'info' | 'success' | 'warning' | 'destructive' | 'contrast' | 'transparent' | 'surface'`
17
17
  */
18
18
  color?: MazColor | 'surface';
19
+ /**
20
+ * The text color of the button
21
+ * @values `primary' | 'secondary' | 'accent' | 'info' | 'success' | 'warning' | 'destructive' | 'contrast' | 'transparent' | 'muted'`
22
+ */
23
+ textColor?: MazColor | 'muted';
19
24
  /**
20
25
  * The type of the button
21
26
  * @values `'submit' | 'reset' | 'button'`
@@ -1 +1 @@
1
- import{t as MazPickerCalendarGrid_default}from"../../../chunks/MazPickerCalendarGrid.CemIxkbm.js";export{MazPickerCalendarGrid_default as default};
1
+ import{t as MazPickerCalendarGrid_default}from"../../../chunks/MazPickerCalendarGrid.9RHBzkN0.js";export{MazPickerCalendarGrid_default as default};
@@ -1 +1 @@
1
- import{t as MazPickerCalendarDays_default}from"../../../chunks/MazPickerCalendarDays.M406Kil2.js";import{t as MazPickerCalendarGrid_default}from"../../../chunks/MazPickerCalendarGrid.CemIxkbm.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.M406Kil2.js";import{t as MazPickerCalendarGrid_default}from"../../../chunks/MazPickerCalendarGrid.9RHBzkN0.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{t as MazIcon_default}from"../../chunks/MazIcon.CblJ-8Iu.js";import{t as MazBtn_default}from"../../chunks/MazBtn.DOoL5s3h.js";import{computed,createElementBlock,createTextVNode,createVNode,defineComponent,openBlock,toDisplayString,unref,withCtx}from"vue";import{MazChevronLeft}from"@maz-ui/icons/raw/MazChevronLeft";import{formatDate}from"@maz-ui/utils/helpers/formatDate";import dayjs from"dayjs/esm";import{capitalize}from"@maz-ui/utils/helpers/capitalize";var _hoisted_1={class:`m-date-picker-calendar-switcher maz:flex maz:space-x-2 maz:border-b maz:border-divider maz:px-2 maz:py-1`};var MazPickerCalendarSwitcher_default=defineComponent({__name:`MazPickerCalendarSwitcher`,props:{calendarDate:{type:String,default:void 0},locale:{type:String,required:!0},double:{type:Boolean,required:!0}},emits:[`previous`,`next`,`open-month-switcher`,`open-year-switcher`,`update:calendar-date`],setup(__props,{emit:__emit}){let props=__props;let emits=__emit;let calendarDate2=computed(()=>dayjs(props.calendarDate));let monthLabel=computed(()=>props.double?`${capitalize(formatDate(calendarDate2.value.format(),props.locale,{month:`short`})??calendarDate2.value.format())} - ${capitalize(formatDate(calendarDate2.value.add(1,`month`).format(),props.locale,{month:`short`})??calendarDate2.value.add(1,`month`).format())}`:capitalize(formatDate(calendarDate2.value.format(),props.locale,{month:`short`})??calendarDate2.value.format()));let yearLabel=computed(()=>formatDate(calendarDate2.value.format(),props.locale,{year:`numeric`}));function previousMonth(){emits(`update:calendar-date`,dayjs(props.calendarDate).subtract(1,`month`).format())}function nextMonth(){emits(`update:calendar-date`,dayjs(props.calendarDate).add(1,`month`).format())}return(_ctx,_cache)=>(openBlock(),createElementBlock(`div`,_hoisted_1,[createVNode(MazBtn_default,{size:`xs`,color:`transparent`,type:`button`,onClick:previousMonth},{default:withCtx(()=>[createVNode(MazIcon_default,{icon:unref(MazChevronLeft),class:`maz:text-lg`},null,8,[`icon`])]),_:1}),createVNode(MazBtn_default,{size:`sm`,color:`transparent`,type:`button`,class:`m-date-picker-calendar-switcher__date maz:flex-1 maz:truncate maz:text-center`,onClick:_cache[0]||=$event=>_ctx.$emit(`open-month-switcher`,$event)},{default:withCtx(()=>[createTextVNode(toDisplayString(monthLabel.value),1)]),_:1}),createVNode(MazBtn_default,{size:`sm`,color:`transparent`,type:`button`,class:`m-date-picker-calendar-switcher__date maz:flex-1 maz:truncate maz:text-center`,onClick:_cache[1]||=$event=>_ctx.$emit(`open-year-switcher`,$event)},{default:withCtx(()=>[createTextVNode(toDisplayString(yearLabel.value),1)]),_:1}),createVNode(MazBtn_default,{size:`xs`,color:`transparent`,type:`button`,onClick:nextMonth},{default:withCtx(()=>[createVNode(MazIcon_default,{icon:unref(MazChevronLeft),class:`maz:rotate-180 maz:text-lg`},null,8,[`icon`])]),_:1})]))}});export{MazPickerCalendarSwitcher_default as default};
1
+ import{t as MazIcon_default}from"../../chunks/MazIcon.CblJ-8Iu.js";import{t as MazBtn_default}from"../../chunks/MazBtn.C7LV-iX2.js";import{computed,createElementBlock,createTextVNode,createVNode,defineComponent,openBlock,toDisplayString,unref,withCtx}from"vue";import{MazChevronLeft}from"@maz-ui/icons/raw/MazChevronLeft";import{formatDate}from"@maz-ui/utils/helpers/formatDate";import dayjs from"dayjs/esm";import{capitalize}from"@maz-ui/utils/helpers/capitalize";var _hoisted_1={class:`m-date-picker-calendar-switcher maz:flex maz:space-x-2 maz:border-b maz:border-divider maz:px-2 maz:py-1`};var MazPickerCalendarSwitcher_default=defineComponent({__name:`MazPickerCalendarSwitcher`,props:{calendarDate:{type:String,default:void 0},locale:{type:String,required:!0},double:{type:Boolean,required:!0}},emits:[`previous`,`next`,`open-month-switcher`,`open-year-switcher`,`update:calendar-date`],setup(__props,{emit:__emit}){let props=__props;let emits=__emit;let calendarDate2=computed(()=>dayjs(props.calendarDate));let monthLabel=computed(()=>props.double?`${capitalize(formatDate(calendarDate2.value.format(),props.locale,{month:`short`})??calendarDate2.value.format())} - ${capitalize(formatDate(calendarDate2.value.add(1,`month`).format(),props.locale,{month:`short`})??calendarDate2.value.add(1,`month`).format())}`:capitalize(formatDate(calendarDate2.value.format(),props.locale,{month:`short`})??calendarDate2.value.format()));let yearLabel=computed(()=>formatDate(calendarDate2.value.format(),props.locale,{year:`numeric`}));function previousMonth(){emits(`update:calendar-date`,dayjs(props.calendarDate).subtract(1,`month`).format())}function nextMonth(){emits(`update:calendar-date`,dayjs(props.calendarDate).add(1,`month`).format())}return(_ctx,_cache)=>(openBlock(),createElementBlock(`div`,_hoisted_1,[createVNode(MazBtn_default,{size:`xs`,color:`transparent`,type:`button`,onClick:previousMonth},{default:withCtx(()=>[createVNode(MazIcon_default,{icon:unref(MazChevronLeft),class:`maz:text-lg`},null,8,[`icon`])]),_:1}),createVNode(MazBtn_default,{size:`sm`,color:`transparent`,type:`button`,class:`m-date-picker-calendar-switcher__date maz:flex-1 maz:truncate maz:text-center`,onClick:_cache[0]||=$event=>_ctx.$emit(`open-month-switcher`,$event)},{default:withCtx(()=>[createTextVNode(toDisplayString(monthLabel.value),1)]),_:1}),createVNode(MazBtn_default,{size:`sm`,color:`transparent`,type:`button`,class:`m-date-picker-calendar-switcher__date maz:flex-1 maz:truncate maz:text-center`,onClick:_cache[1]||=$event=>_ctx.$emit(`open-year-switcher`,$event)},{default:withCtx(()=>[createTextVNode(toDisplayString(yearLabel.value),1)]),_:1}),createVNode(MazBtn_default,{size:`xs`,color:`transparent`,type:`button`,onClick:nextMonth},{default:withCtx(()=>[createVNode(MazIcon_default,{icon:unref(MazChevronLeft),class:`maz:rotate-180 maz:text-lg`},null,8,[`icon`])]),_:1})]))}});export{MazPickerCalendarSwitcher_default as default};
@@ -1 +1 @@
1
- import{t as _plugin_vue_export_helper_default}from"../../chunks/_plugin-vue_export-helper.zP_plvmB.js";import{t as MazIcon_default}from"../../chunks/MazIcon.CblJ-8Iu.js";import{t as MazBtn_default}from"../../chunks/MazBtn.DOoL5s3h.js";import{f as isSameDate}from"../../chunks/utils.CjLBQJki.js";import{Fragment,computed,createBlock,createElementBlock,createElementVNode,createTextVNode,createVNode,defineComponent,normalizeClass,openBlock,renderList,toDisplayString,unref,withCtx,withModifiers}from"vue";import{MazXMark}from"@maz-ui/icons/raw/MazXMark";import{formatDate}from"@maz-ui/utils/helpers/formatDate";import dayjs from"dayjs/esm";import{capitalize}from"@maz-ui/utils/helpers/capitalize";import '../../assets/MazPickerMonthSwitcher.CiMwoYth.css';var _hoisted_1={class:`maz-picker-month-switcher maz:absolute maz:inset-0 maz:z-1 maz:flex maz:flex-col maz:bg-container`};var _hoisted_2={class:`maz-picker-month-switcher__header maz:flex maz:justify-end maz:border-b maz:border-divider maz:p-2`};var MazPickerMonthSwitcher_default=_plugin_vue_export_helper_default(defineComponent({__name:`MazPickerMonthSwitcher`,props:{calendarDate:{type:String,required:!0},color:{type:String,required:!0},locale:{type:String,required:!0},double:{type:Boolean,required:!0}},emits:[`update:calendar-date`,`close`],setup(__props,{emit:__emit}){let props=__props;let emits=__emit;let months=computed(()=>Array.from({length:12},(_v,i)=>i).map(monthNumber=>{let monthDate=dayjs(props.calendarDate).set(`month`,monthNumber);return props.double?{label:`${capitalize(formatDate(monthDate.format(),props.locale,{month:`short`})??monthDate.add(1,`month`).format())} - ${capitalize(formatDate(monthDate.add(1,`month`).format(),props.locale,{month:`short`})??monthDate.add(1,`month`).format())}`,date:monthDate}:{label:capitalize(formatDate(monthDate.format(),props.locale,{month:`long`})??monthDate.format()),date:monthDate}}));function selectMonth(date){emits(`update:calendar-date`,date.format()),emits(`close`)}return(_ctx,_cache)=>(openBlock(),createElementBlock(`div`,_hoisted_1,[createElementVNode(`div`,_hoisted_2,[createVNode(MazBtn_default,{size:`xs`,color:`transparent`,type:`button`,onClick:_cache[0]||=withModifiers($event=>_ctx.$emit(`close`,$event),[`stop`])},{default:withCtx(()=>[createVNode(MazIcon_default,{icon:unref(MazXMark),class:`maz:text-lg`},null,8,[`icon`])]),_:1})]),createElementVNode(`div`,{class:normalizeClass([`maz-picker-month-switcher__main maz:grid maz:flex-1 maz:flex-center maz:gap-1 maz:overflow-y-auto maz:p-2`,[__props.double?`--has-double`:``,__props.double?`maz:grid-cols-3`:`maz:grid-cols-2`]])},[(openBlock(!0),createElementBlock(Fragment,null,renderList(months.value,month=>(openBlock(),createBlock(MazBtn_default,{key:month.label,size:props.double?`sm`:`xs`,class:normalizeClass({"--is-selected":unref(isSameDate)(month.date,__props.calendarDate,`month`)}),color:unref(isSameDate)(month.date,__props.calendarDate,`month`)?__props.color:`transparent`,type:`button`,onClick:withModifiers($event=>selectMonth(month.date),[`stop`])},{default:withCtx(()=>[createTextVNode(toDisplayString(month.label),1)]),_:2},1032,[`size`,`class`,`color`,`onClick`]))),128))],2)]))}}),[[`__scopeId`,`data-v-89ce5d38`]]);export{MazPickerMonthSwitcher_default as default};
1
+ import{t as _plugin_vue_export_helper_default}from"../../chunks/_plugin-vue_export-helper.zP_plvmB.js";import{t as MazIcon_default}from"../../chunks/MazIcon.CblJ-8Iu.js";import{t as MazBtn_default}from"../../chunks/MazBtn.C7LV-iX2.js";import{f as isSameDate}from"../../chunks/utils.CjLBQJki.js";import{Fragment,computed,createBlock,createElementBlock,createElementVNode,createTextVNode,createVNode,defineComponent,normalizeClass,openBlock,renderList,toDisplayString,unref,withCtx,withModifiers}from"vue";import{MazXMark}from"@maz-ui/icons/raw/MazXMark";import{formatDate}from"@maz-ui/utils/helpers/formatDate";import dayjs from"dayjs/esm";import{capitalize}from"@maz-ui/utils/helpers/capitalize";import '../../assets/MazPickerMonthSwitcher.CiMwoYth.css';var _hoisted_1={class:`maz-picker-month-switcher maz:absolute maz:inset-0 maz:z-1 maz:flex maz:flex-col maz:bg-container`};var _hoisted_2={class:`maz-picker-month-switcher__header maz:flex maz:justify-end maz:border-b maz:border-divider maz:p-2`};var MazPickerMonthSwitcher_default=_plugin_vue_export_helper_default(defineComponent({__name:`MazPickerMonthSwitcher`,props:{calendarDate:{type:String,required:!0},color:{type:String,required:!0},locale:{type:String,required:!0},double:{type:Boolean,required:!0}},emits:[`update:calendar-date`,`close`],setup(__props,{emit:__emit}){let props=__props;let emits=__emit;let months=computed(()=>Array.from({length:12},(_v,i)=>i).map(monthNumber=>{let monthDate=dayjs(props.calendarDate).set(`month`,monthNumber);return props.double?{label:`${capitalize(formatDate(monthDate.format(),props.locale,{month:`short`})??monthDate.add(1,`month`).format())} - ${capitalize(formatDate(monthDate.add(1,`month`).format(),props.locale,{month:`short`})??monthDate.add(1,`month`).format())}`,date:monthDate}:{label:capitalize(formatDate(monthDate.format(),props.locale,{month:`long`})??monthDate.format()),date:monthDate}}));function selectMonth(date){emits(`update:calendar-date`,date.format()),emits(`close`)}return(_ctx,_cache)=>(openBlock(),createElementBlock(`div`,_hoisted_1,[createElementVNode(`div`,_hoisted_2,[createVNode(MazBtn_default,{size:`xs`,color:`transparent`,type:`button`,onClick:_cache[0]||=withModifiers($event=>_ctx.$emit(`close`,$event),[`stop`])},{default:withCtx(()=>[createVNode(MazIcon_default,{icon:unref(MazXMark),class:`maz:text-lg`},null,8,[`icon`])]),_:1})]),createElementVNode(`div`,{class:normalizeClass([`maz-picker-month-switcher__main maz:grid maz:flex-1 maz:flex-center maz:gap-1 maz:overflow-y-auto maz:p-2`,[__props.double?`--has-double`:``,__props.double?`maz:grid-cols-3`:`maz:grid-cols-2`]])},[(openBlock(!0),createElementBlock(Fragment,null,renderList(months.value,month=>(openBlock(),createBlock(MazBtn_default,{key:month.label,size:props.double?`sm`:`xs`,class:normalizeClass({"--is-selected":unref(isSameDate)(month.date,__props.calendarDate,`month`)}),color:unref(isSameDate)(month.date,__props.calendarDate,`month`)?__props.color:`transparent`,type:`button`,onClick:withModifiers($event=>selectMonth(month.date),[`stop`])},{default:withCtx(()=>[createTextVNode(toDisplayString(month.label),1)]),_:2},1032,[`size`,`class`,`color`,`onClick`]))),128))],2)]))}}),[[`__scopeId`,`data-v-89ce5d38`]]);export{MazPickerMonthSwitcher_default as default};
@@ -1 +1 @@
1
- import{t as _plugin_vue_export_helper_default}from"../../chunks/_plugin-vue_export-helper.zP_plvmB.js";import{t as MazBtn_default}from"../../chunks/MazBtn.DOoL5s3h.js";import{Fragment,createBlock,createElementBlock,createTextVNode,defineComponent,normalizeClass,openBlock,ref,renderList,toDisplayString,watch,withCtx,withModifiers}from"vue";import '../../assets/MazPickerShortcuts.CbWJ5TeL.css';var _hoisted_1={class:`maz-picker-shortcuts maz:flex maz:flex-col maz:items-start maz:gap-1 maz:overflow-y-auto maz:border-e maz:border-divider maz:p-2`};var MazPickerShortcuts_default=_plugin_vue_export_helper_default(defineComponent({__name:`MazPickerShortcuts`,props:{color:{},modelValue:{},shortcuts:{},double:{type:Boolean},shortcut:{},disabled:{type:Boolean}},emits:[`update:model-value`],setup(__props,{emit:__emit}){let props=__props;let emits=__emit;let selectedShortcut=ref(props.shortcut);function selectShortcut(value,identifier){selectedShortcut.value=identifier,emits(`update:model-value`,value)}return watch(()=>props.modelValue,value=>{value?.end||(selectedShortcut.value=void 0)}),watch(()=>props.shortcut,shortcut=>{let newShortcut=props.shortcuts&&props.shortcuts.find(({identifier})=>shortcut===identifier);if(newShortcut){let{value,identifier}=newShortcut;selectShortcut(value,identifier)}},{immediate:!0}),(_ctx,_cache)=>(openBlock(),createElementBlock(`div`,_hoisted_1,[(openBlock(!0),createElementBlock(Fragment,null,renderList(__props.shortcuts,({identifier,label,value})=>(openBlock(),createBlock(MazBtn_default,{key:identifier,type:`button`,size:`sm`,disabled:__props.disabled,color:identifier===selectedShortcut.value?props.color:`transparent`,class:normalizeClass({"--is-selected":identifier===selectedShortcut.value}),onClick:withModifiers($event=>selectShortcut(value,identifier),[`stop`])},{default:withCtx(()=>[createTextVNode(toDisplayString(label),1)]),_:2},1032,[`disabled`,`color`,`class`,`onClick`]))),128))]))}}),[[`__scopeId`,`data-v-9b6d7c08`]]);export{MazPickerShortcuts_default as default};
1
+ import{t as _plugin_vue_export_helper_default}from"../../chunks/_plugin-vue_export-helper.zP_plvmB.js";import{t as MazBtn_default}from"../../chunks/MazBtn.C7LV-iX2.js";import{Fragment,createBlock,createElementBlock,createTextVNode,defineComponent,normalizeClass,openBlock,ref,renderList,toDisplayString,watch,withCtx,withModifiers}from"vue";import '../../assets/MazPickerShortcuts.CbWJ5TeL.css';var _hoisted_1={class:`maz-picker-shortcuts maz:flex maz:flex-col maz:items-start maz:gap-1 maz:overflow-y-auto maz:border-e maz:border-divider maz:p-2`};var MazPickerShortcuts_default=_plugin_vue_export_helper_default(defineComponent({__name:`MazPickerShortcuts`,props:{color:{},modelValue:{},shortcuts:{},double:{type:Boolean},shortcut:{},disabled:{type:Boolean}},emits:[`update:model-value`],setup(__props,{emit:__emit}){let props=__props;let emits=__emit;let selectedShortcut=ref(props.shortcut);function selectShortcut(value,identifier){selectedShortcut.value=identifier,emits(`update:model-value`,value)}return watch(()=>props.modelValue,value=>{value?.end||(selectedShortcut.value=void 0)}),watch(()=>props.shortcut,shortcut=>{let newShortcut=props.shortcuts&&props.shortcuts.find(({identifier})=>shortcut===identifier);if(newShortcut){let{value,identifier}=newShortcut;selectShortcut(value,identifier)}},{immediate:!0}),(_ctx,_cache)=>(openBlock(),createElementBlock(`div`,_hoisted_1,[(openBlock(!0),createElementBlock(Fragment,null,renderList(__props.shortcuts,({identifier,label,value})=>(openBlock(),createBlock(MazBtn_default,{key:identifier,type:`button`,size:`sm`,disabled:__props.disabled,color:identifier===selectedShortcut.value?props.color:`transparent`,class:normalizeClass({"--is-selected":identifier===selectedShortcut.value}),onClick:withModifiers($event=>selectShortcut(value,identifier),[`stop`])},{default:withCtx(()=>[createTextVNode(toDisplayString(label),1)]),_:2},1032,[`disabled`,`color`,`class`,`onClick`]))),128))]))}}),[[`__scopeId`,`data-v-9b6d7c08`]]);export{MazPickerShortcuts_default as default};
@@ -1 +1 @@
1
- import{t as _plugin_vue_export_helper_default}from"../../chunks/_plugin-vue_export-helper.zP_plvmB.js";import{t as MazBtn_default}from"../../chunks/MazBtn.DOoL5s3h.js";import{_ as scrollToTarget,n as findNearestNumberInList}from"../../chunks/utils.CjLBQJki.js";import{Fragment,computed,createBlock,createElementBlock,createElementVNode,createTextVNode,defineComponent,nextTick,normalizeClass,normalizeStyle,onMounted,openBlock,ref,renderList,toDisplayString,watch,withCtx,withModifiers}from"vue";import dayjs from"dayjs/esm";import '../../assets/MazPickerTime.DjVO29NI.css';var _hoisted_1={class:`m-date-picker-time__column__items maz:flex maz:flex-col`};var MazPickerTime_default=_plugin_vue_export_helper_default(defineComponent({__name:`MazPickerTime`,props:{modelValue:{type:[String,Object],default:void 0},formatterOptions:{type:Object,required:!0},color:{type:String,required:!0},hasDate:{type:Boolean,required:!0},minuteInterval:{type:Number,required:!0},disabledHours:{type:Array,default:void 0},format:{type:String,required:!0},isHour12:{type:Boolean,required:!0},minDate:{type:String,default:void 0},maxDate:{type:String,default:void 0},disabled:{type:Boolean,required:!0}},emits:[`update:model-value`],setup(__props,{emit:__emit}){let props=__props;let emits=__emit;let currentDate=computed({get:()=>props.modelValue,set:value=>{emits(`update:model-value`,value)}});let hours=computed(()=>Array.from({length:props.isHour12?12:24},(_v,i)=>i).map(hour=>{let hourBase=hour+ +!!props.isHour12;let hour12or24=getHour12or24(hourBase);let hourValue=dayjs(currentDate.value).set(`hour`,hour12or24);let isDisabled=isDisableHour(hour12or24)||(props.minDate&&currentDate.value?dayjs(props.minDate).isAfter(hourValue,`hour`):!1)||(props.maxDate&&currentDate.value?dayjs(props.maxDate).isBefore(hourValue,`hour`):!1);return{label:`${hourBase<10?`0`:``}${hourBase}`,value:dayjs(currentDate.value).set(`hour`,hour12or24),isDisabled}}));let minutes=computed(()=>{let length=Math.floor(60/props.minuteInterval)-0;return Array.from({length},(_v,i)=>i*props.minuteInterval).map(minute=>{let minuteValue=dayjs(currentDate.value).set(`minute`,minute);let isDisabled=(props.minDate&&currentDate.value?dayjs(props.minDate).isAfter(minuteValue,`minute`):!1)||(props.maxDate&&currentDate.value?dayjs(props.maxDate).isBefore(minuteValue,`minute`):!1);return{label:`${minute<10?`0`:``}${minute}`,value:minuteValue,isDisabled}})});let currentHour=computed(()=>typeof currentDate.value==`string`?findNearestHour(dayjs(currentDate.value).get(`hour`)):void 0);let currentMinute=computed(()=>typeof currentDate.value==`string`?findNearestNumberInList(minutes.value.map(({value})=>value.get(`minute`)),dayjs(currentDate.value).get(`minute`)):void 0);let currentAmpm=computed(()=>typeof currentHour.value==`number`?currentHour.value>=12?`pm`:`am`:void 0);let ampm=computed(()=>props.isHour12?[{label:`AM`,value:`am`},{label:`PM`,value:`pm`}]:[]);let columns=computed(()=>{let columns=[{identifier:`hour`,values:hours.value},{identifier:`minute`,values:minutes.value}];return props.isHour12&&columns.push({identifier:`ampm`,values:ampm.value}),columns});function findNearestHour(hour){if(!props.disabledHours)return hour;let nearHour=findNearestNumberInList(Array.from({length:24},(_v,i)=>i).filter(hour=>!props.disabledHours?.includes(hour)||!0),hour);return nearHour!==hour&&selectTime(`hour`,dayjs(currentDate.value).set(`hour`,nearHour)),nearHour}let MazDatePickerTime=ref();let spacerHeight=ref();function getHour12or24(hourValue){if(props.isHour12){let newValue=currentAmpm.value===`pm`?hourValue+12:hourValue;return newValue===12?0:newValue===24?12:newValue}else return hourValue}function setSpacerHeight(){if(!MazDatePickerTime.value)return;let itemHeight=MazDatePickerTime.value.querySelector(`.m-date-picker-time__column .m-btn`)?.offsetHeight;spacerHeight.value=MazDatePickerTime.value.offsetHeight/2-itemHeight/2}onMounted(()=>{setSpacerHeight(),scrollColumns(!1)}),watch(()=>props.modelValue,async(value,oldValue)=>{value!==oldValue&&(await nextTick(),scrollColumns(!0))},{immediate:!0});function scrollColumns(hasSmoothEffect){scrollColumn(`hour`,hasSmoothEffect),scrollColumn(`minute`,hasSmoothEffect),props.isHour12&&scrollColumn(`ampm`,hasSmoothEffect)}function isDisableHour(value){return(props.disabledHours&&props.disabledHours.includes(value))??!1}function isSelected(identifier,value){return value===`am`||value===`pm`?currentAmpm.value===value:identifier===`hour`?currentHour.value===value.get(identifier):identifier===`minute`?currentMinute.value===value.get(identifier):!1}async function scrollColumn(identifier,hasSmoothEffect=!0){if(!MazDatePickerTime.value)return;let column=MazDatePickerTime.value.querySelector(`.m-date-picker-time__column__${identifier}`);let selectedButton=MazDatePickerTime.value.querySelector(`.m-date-picker-time__column__${identifier} .--is-selected`);spacerHeight.value&&column&&selectedButton&&MazDatePickerTime.value&&(await nextTick(),scrollToTarget(column,selectedButton,spacerHeight.value,hasSmoothEffect))}async function selectTime(identifier,value){let newDate=dayjs(currentDate.value);if(identifier===`hour`&&typeof value==`object`&&(currentDate.value=newDate.set(`hour`,value.get(`hour`)).format()),identifier===`minute`&&typeof value==`object`&&(currentDate.value=newDate.set(`minute`,value.get(`minute`)).format()),identifier===`ampm`&&(currentAmpm.value!==value||!currentHour.value)&&(value===`am`&&(currentDate.value=newDate.set(`hour`,newDate.get(`hour`)).subtract(12,`hour`).format()),value===`pm`)){let baseHour=newDate.get(`hour`);let newHour=baseHour+12>12&&baseHour+12<24?baseHour+12:baseHour===0?12:baseHour;currentDate.value=newDate.set(`hour`,newHour).format()}await nextTick(),scrollColumn(identifier)}return(_ctx,_cache)=>(openBlock(),createElementBlock(`div`,{ref_key:`MazDatePickerTime`,ref:MazDatePickerTime,class:normalizeClass([`m-date-picker-time maz:relative maz:flex`,{"--has-date maz:border-s maz:border-divider":__props.hasDate}])},[(openBlock(!0),createElementBlock(Fragment,null,renderList(columns.value,({values,identifier},i)=>(openBlock(),createElementBlock(`div`,{key:i,class:normalizeClass([`m-date-picker-time__column maz:flex maz:flex-col maz:overflow-y-auto maz:px-1`,[`m-date-picker-time__column__${identifier}`]])},[createElementVNode(`div`,{style:normalizeStyle({height:`${spacerHeight.value}px`}),class:`m-date-picker-time__column__spacer maz:w-full maz:flex-none`},null,4),createElementVNode(`div`,_hoisted_1,[(openBlock(!0),createElementBlock(Fragment,null,renderList(values,({value,label,isDisabled},unitIndex)=>(openBlock(),createBlock(MazBtn_default,{key:unitIndex,size:`xs`,color:isSelected(identifier,value)?__props.color:`transparent`,class:normalizeClass({"--is-selected":isSelected(identifier,value)}),disabled:isDisabled||__props.disabled,type:`button`,onClick:withModifiers($event=>selectTime(identifier,value),[`stop`])},{default:withCtx(()=>[createTextVNode(toDisplayString(label),1)]),_:2},1032,[`color`,`class`,`disabled`,`onClick`]))),128))]),createElementVNode(`div`,{style:normalizeStyle({height:`${spacerHeight.value}px`}),class:`m-date-picker-time__column__spacer maz:w-full maz:flex-none`},null,4)],2))),128))],2))}}),[[`__scopeId`,`data-v-56641988`]]);export{MazPickerTime_default as default};
1
+ import{t as _plugin_vue_export_helper_default}from"../../chunks/_plugin-vue_export-helper.zP_plvmB.js";import{t as MazBtn_default}from"../../chunks/MazBtn.C7LV-iX2.js";import{_ as scrollToTarget,n as findNearestNumberInList}from"../../chunks/utils.CjLBQJki.js";import{Fragment,computed,createBlock,createElementBlock,createElementVNode,createTextVNode,defineComponent,nextTick,normalizeClass,normalizeStyle,onMounted,openBlock,ref,renderList,toDisplayString,watch,withCtx,withModifiers}from"vue";import dayjs from"dayjs/esm";import '../../assets/MazPickerTime.DjVO29NI.css';var _hoisted_1={class:`m-date-picker-time__column__items maz:flex maz:flex-col`};var MazPickerTime_default=_plugin_vue_export_helper_default(defineComponent({__name:`MazPickerTime`,props:{modelValue:{type:[String,Object],default:void 0},formatterOptions:{type:Object,required:!0},color:{type:String,required:!0},hasDate:{type:Boolean,required:!0},minuteInterval:{type:Number,required:!0},disabledHours:{type:Array,default:void 0},format:{type:String,required:!0},isHour12:{type:Boolean,required:!0},minDate:{type:String,default:void 0},maxDate:{type:String,default:void 0},disabled:{type:Boolean,required:!0}},emits:[`update:model-value`],setup(__props,{emit:__emit}){let props=__props;let emits=__emit;let currentDate=computed({get:()=>props.modelValue,set:value=>{emits(`update:model-value`,value)}});let hours=computed(()=>Array.from({length:props.isHour12?12:24},(_v,i)=>i).map(hour=>{let hourBase=hour+ +!!props.isHour12;let hour12or24=getHour12or24(hourBase);let hourValue=dayjs(currentDate.value).set(`hour`,hour12or24);let isDisabled=isDisableHour(hour12or24)||(props.minDate&&currentDate.value?dayjs(props.minDate).isAfter(hourValue,`hour`):!1)||(props.maxDate&&currentDate.value?dayjs(props.maxDate).isBefore(hourValue,`hour`):!1);return{label:`${hourBase<10?`0`:``}${hourBase}`,value:dayjs(currentDate.value).set(`hour`,hour12or24),isDisabled}}));let minutes=computed(()=>{let length=Math.floor(60/props.minuteInterval)-0;return Array.from({length},(_v,i)=>i*props.minuteInterval).map(minute=>{let minuteValue=dayjs(currentDate.value).set(`minute`,minute);let isDisabled=(props.minDate&&currentDate.value?dayjs(props.minDate).isAfter(minuteValue,`minute`):!1)||(props.maxDate&&currentDate.value?dayjs(props.maxDate).isBefore(minuteValue,`minute`):!1);return{label:`${minute<10?`0`:``}${minute}`,value:minuteValue,isDisabled}})});let currentHour=computed(()=>typeof currentDate.value==`string`?findNearestHour(dayjs(currentDate.value).get(`hour`)):void 0);let currentMinute=computed(()=>typeof currentDate.value==`string`?findNearestNumberInList(minutes.value.map(({value})=>value.get(`minute`)),dayjs(currentDate.value).get(`minute`)):void 0);let currentAmpm=computed(()=>typeof currentHour.value==`number`?currentHour.value>=12?`pm`:`am`:void 0);let ampm=computed(()=>props.isHour12?[{label:`AM`,value:`am`},{label:`PM`,value:`pm`}]:[]);let columns=computed(()=>{let columns=[{identifier:`hour`,values:hours.value},{identifier:`minute`,values:minutes.value}];return props.isHour12&&columns.push({identifier:`ampm`,values:ampm.value}),columns});function findNearestHour(hour){if(!props.disabledHours)return hour;let nearHour=findNearestNumberInList(Array.from({length:24},(_v,i)=>i).filter(hour=>!props.disabledHours?.includes(hour)||!0),hour);return nearHour!==hour&&selectTime(`hour`,dayjs(currentDate.value).set(`hour`,nearHour)),nearHour}let MazDatePickerTime=ref();let spacerHeight=ref();function getHour12or24(hourValue){if(props.isHour12){let newValue=currentAmpm.value===`pm`?hourValue+12:hourValue;return newValue===12?0:newValue===24?12:newValue}else return hourValue}function setSpacerHeight(){if(!MazDatePickerTime.value)return;let itemHeight=MazDatePickerTime.value.querySelector(`.m-date-picker-time__column .m-btn`)?.offsetHeight;spacerHeight.value=MazDatePickerTime.value.offsetHeight/2-itemHeight/2}onMounted(()=>{setSpacerHeight(),scrollColumns(!1)}),watch(()=>props.modelValue,async(value,oldValue)=>{value!==oldValue&&(await nextTick(),scrollColumns(!0))},{immediate:!0});function scrollColumns(hasSmoothEffect){scrollColumn(`hour`,hasSmoothEffect),scrollColumn(`minute`,hasSmoothEffect),props.isHour12&&scrollColumn(`ampm`,hasSmoothEffect)}function isDisableHour(value){return(props.disabledHours&&props.disabledHours.includes(value))??!1}function isSelected(identifier,value){return value===`am`||value===`pm`?currentAmpm.value===value:identifier===`hour`?currentHour.value===value.get(identifier):identifier===`minute`?currentMinute.value===value.get(identifier):!1}async function scrollColumn(identifier,hasSmoothEffect=!0){if(!MazDatePickerTime.value)return;let column=MazDatePickerTime.value.querySelector(`.m-date-picker-time__column__${identifier}`);let selectedButton=MazDatePickerTime.value.querySelector(`.m-date-picker-time__column__${identifier} .--is-selected`);spacerHeight.value&&column&&selectedButton&&MazDatePickerTime.value&&(await nextTick(),scrollToTarget(column,selectedButton,spacerHeight.value,hasSmoothEffect))}async function selectTime(identifier,value){let newDate=dayjs(currentDate.value);if(identifier===`hour`&&typeof value==`object`&&(currentDate.value=newDate.set(`hour`,value.get(`hour`)).format()),identifier===`minute`&&typeof value==`object`&&(currentDate.value=newDate.set(`minute`,value.get(`minute`)).format()),identifier===`ampm`&&(currentAmpm.value!==value||!currentHour.value)&&(value===`am`&&(currentDate.value=newDate.set(`hour`,newDate.get(`hour`)).subtract(12,`hour`).format()),value===`pm`)){let baseHour=newDate.get(`hour`);let newHour=baseHour+12>12&&baseHour+12<24?baseHour+12:baseHour===0?12:baseHour;currentDate.value=newDate.set(`hour`,newHour).format()}await nextTick(),scrollColumn(identifier)}return(_ctx,_cache)=>(openBlock(),createElementBlock(`div`,{ref_key:`MazDatePickerTime`,ref:MazDatePickerTime,class:normalizeClass([`m-date-picker-time maz:relative maz:flex`,{"--has-date maz:border-s maz:border-divider":__props.hasDate}])},[(openBlock(!0),createElementBlock(Fragment,null,renderList(columns.value,({values,identifier},i)=>(openBlock(),createElementBlock(`div`,{key:i,class:normalizeClass([`m-date-picker-time__column maz:flex maz:flex-col maz:overflow-y-auto maz:px-1`,[`m-date-picker-time__column__${identifier}`]])},[createElementVNode(`div`,{style:normalizeStyle({height:`${spacerHeight.value}px`}),class:`m-date-picker-time__column__spacer maz:w-full maz:flex-none`},null,4),createElementVNode(`div`,_hoisted_1,[(openBlock(!0),createElementBlock(Fragment,null,renderList(values,({value,label,isDisabled},unitIndex)=>(openBlock(),createBlock(MazBtn_default,{key:unitIndex,size:`xs`,color:isSelected(identifier,value)?__props.color:`transparent`,class:normalizeClass({"--is-selected":isSelected(identifier,value)}),disabled:isDisabled||__props.disabled,type:`button`,onClick:withModifiers($event=>selectTime(identifier,value),[`stop`])},{default:withCtx(()=>[createTextVNode(toDisplayString(label),1)]),_:2},1032,[`color`,`class`,`disabled`,`onClick`]))),128))]),createElementVNode(`div`,{style:normalizeStyle({height:`${spacerHeight.value}px`}),class:`m-date-picker-time__column__spacer maz:w-full maz:flex-none`},null,4)],2))),128))],2))}}),[[`__scopeId`,`data-v-56641988`]]);export{MazPickerTime_default as default};
@@ -1 +1 @@
1
- import{t as MazIcon_default}from"../../chunks/MazIcon.CblJ-8Iu.js";import{t as MazBtn_default}from"../../chunks/MazBtn.DOoL5s3h.js";import{f as isSameDate}from"../../chunks/utils.CjLBQJki.js";import{Fragment,computed,createBlock,createElementBlock,createElementVNode,createTextVNode,createVNode,defineComponent,normalizeClass,openBlock,ref,renderList,toDisplayString,unref,withCtx,withModifiers}from"vue";import{MazChevronLeft}from"@maz-ui/icons/raw/MazChevronLeft";import{MazXMark}from"@maz-ui/icons/raw/MazXMark";import{formatDate}from"@maz-ui/utils/helpers/formatDate";import dayjs from"dayjs/esm";var _hoisted_1={class:`maz-picker-year-switcher maz:absolute maz:inset-0 maz:z-1 maz:flex maz:flex-col maz:bg-container`};var _hoisted_2={class:`maz-picker-year-switcher__header maz:flex maz:justify-between maz:space-x-2 maz:border-b maz:border-divider maz:p-2`};var _hoisted_3={class:`maz:flex maz:space-x-2`};var _hoisted_4={class:`maz-picker-year-switcher__main maz:grid maz:flex-1 maz:grid-cols-3 maz:flex-center maz:gap-2 maz:overflow-y-auto maz:p-2`};var MazPickerYearSwitcher_default=defineComponent({__name:`MazPickerYearSwitcher`,props:{color:{type:String,required:!0},locale:{type:String,required:!0},calendarDate:{type:String,required:!0}},emits:[`update:calendar-date`,`close`],setup(__props,{emit:__emit}){let props=__props;let emits=__emit;let currentDateTmp=ref(props.calendarDate);let years=computed(()=>Array.from({length:15},(_v,i)=>i-7).map(yearNumber=>{let currentYear=dayjs(currentDateTmp.value).get(`year`);let dateYear=dayjs(currentDateTmp.value).set(`year`,currentYear+yearNumber);return{label:formatDate(dateYear.format(),props.locale,{year:`numeric`})??dateYear.format(),date:dateYear}}));function selectYear(date){emits(`update:calendar-date`,dayjs(date).format()),emits(`close`)}function previousYears(){currentDateTmp.value=dayjs(currentDateTmp.value).subtract(7,`year`).format()}function nextYears(){currentDateTmp.value=dayjs(currentDateTmp.value).add(7,`year`).format()}return(_ctx,_cache)=>(openBlock(),createElementBlock(`div`,_hoisted_1,[createElementVNode(`div`,_hoisted_2,[createElementVNode(`div`,_hoisted_3,[createVNode(MazBtn_default,{size:`xs`,color:`transparent`,type:`button`,onClick:withModifiers(previousYears,[`stop`])},{default:withCtx(()=>[createVNode(MazIcon_default,{icon:unref(MazChevronLeft),class:`maz:text-lg`},null,8,[`icon`])]),_:1}),createVNode(MazBtn_default,{size:`xs`,color:`transparent`,type:`button`,onClick:withModifiers(nextYears,[`stop`])},{default:withCtx(()=>[createVNode(MazIcon_default,{icon:unref(MazChevronLeft),class:`maz:rotate-180 maz:text-lg`},null,8,[`icon`])]),_:1})]),createVNode(MazBtn_default,{size:`xs`,color:`transparent`,type:`button`,onClick:_cache[0]||=withModifiers($event=>_ctx.$emit(`close`,$event),[`stop`])},{default:withCtx(()=>[createVNode(MazIcon_default,{icon:unref(MazXMark),class:`maz:text-lg`},null,8,[`icon`])]),_:1})]),createElementVNode(`div`,_hoisted_4,[(openBlock(!0),createElementBlock(Fragment,null,renderList(years.value,year=>(openBlock(),createBlock(MazBtn_default,{key:year.label,size:`sm`,type:`button`,class:normalizeClass({"--is-selected":unref(isSameDate)(year.date,__props.calendarDate,`year`)}),color:unref(isSameDate)(year.date,__props.calendarDate,`year`)?__props.color:`transparent`,onClick:withModifiers($event=>selectYear(year.date),[`stop`])},{default:withCtx(()=>[createTextVNode(toDisplayString(year.label),1)]),_:2},1032,[`class`,`color`,`onClick`]))),128))])]))}});export{MazPickerYearSwitcher_default as default};
1
+ import{t as MazIcon_default}from"../../chunks/MazIcon.CblJ-8Iu.js";import{t as MazBtn_default}from"../../chunks/MazBtn.C7LV-iX2.js";import{f as isSameDate}from"../../chunks/utils.CjLBQJki.js";import{Fragment,computed,createBlock,createElementBlock,createElementVNode,createTextVNode,createVNode,defineComponent,normalizeClass,openBlock,ref,renderList,toDisplayString,unref,withCtx,withModifiers}from"vue";import{MazChevronLeft}from"@maz-ui/icons/raw/MazChevronLeft";import{MazXMark}from"@maz-ui/icons/raw/MazXMark";import{formatDate}from"@maz-ui/utils/helpers/formatDate";import dayjs from"dayjs/esm";var _hoisted_1={class:`maz-picker-year-switcher maz:absolute maz:inset-0 maz:z-1 maz:flex maz:flex-col maz:bg-container`};var _hoisted_2={class:`maz-picker-year-switcher__header maz:flex maz:justify-between maz:space-x-2 maz:border-b maz:border-divider maz:p-2`};var _hoisted_3={class:`maz:flex maz:space-x-2`};var _hoisted_4={class:`maz-picker-year-switcher__main maz:grid maz:flex-1 maz:grid-cols-3 maz:flex-center maz:gap-2 maz:overflow-y-auto maz:p-2`};var MazPickerYearSwitcher_default=defineComponent({__name:`MazPickerYearSwitcher`,props:{color:{type:String,required:!0},locale:{type:String,required:!0},calendarDate:{type:String,required:!0}},emits:[`update:calendar-date`,`close`],setup(__props,{emit:__emit}){let props=__props;let emits=__emit;let currentDateTmp=ref(props.calendarDate);let years=computed(()=>Array.from({length:15},(_v,i)=>i-7).map(yearNumber=>{let currentYear=dayjs(currentDateTmp.value).get(`year`);let dateYear=dayjs(currentDateTmp.value).set(`year`,currentYear+yearNumber);return{label:formatDate(dateYear.format(),props.locale,{year:`numeric`})??dateYear.format(),date:dateYear}}));function selectYear(date){emits(`update:calendar-date`,dayjs(date).format()),emits(`close`)}function previousYears(){currentDateTmp.value=dayjs(currentDateTmp.value).subtract(7,`year`).format()}function nextYears(){currentDateTmp.value=dayjs(currentDateTmp.value).add(7,`year`).format()}return(_ctx,_cache)=>(openBlock(),createElementBlock(`div`,_hoisted_1,[createElementVNode(`div`,_hoisted_2,[createElementVNode(`div`,_hoisted_3,[createVNode(MazBtn_default,{size:`xs`,color:`transparent`,type:`button`,onClick:withModifiers(previousYears,[`stop`])},{default:withCtx(()=>[createVNode(MazIcon_default,{icon:unref(MazChevronLeft),class:`maz:text-lg`},null,8,[`icon`])]),_:1}),createVNode(MazBtn_default,{size:`xs`,color:`transparent`,type:`button`,onClick:withModifiers(nextYears,[`stop`])},{default:withCtx(()=>[createVNode(MazIcon_default,{icon:unref(MazChevronLeft),class:`maz:rotate-180 maz:text-lg`},null,8,[`icon`])]),_:1})]),createVNode(MazBtn_default,{size:`xs`,color:`transparent`,type:`button`,onClick:_cache[0]||=withModifiers($event=>_ctx.$emit(`close`,$event),[`stop`])},{default:withCtx(()=>[createVNode(MazIcon_default,{icon:unref(MazXMark),class:`maz:text-lg`},null,8,[`icon`])]),_:1})]),createElementVNode(`div`,_hoisted_4,[(openBlock(!0),createElementBlock(Fragment,null,renderList(years.value,year=>(openBlock(),createBlock(MazBtn_default,{key:year.label,size:`sm`,type:`button`,class:normalizeClass({"--is-selected":unref(isSameDate)(year.date,__props.calendarDate,`year`)}),color:unref(isSameDate)(year.date,__props.calendarDate,`year`)?__props.color:`transparent`,onClick:withModifiers($event=>selectYear(year.date),[`stop`])},{default:withCtx(()=>[createTextVNode(toDisplayString(year.label),1)]),_:2},1032,[`class`,`color`,`onClick`]))),128))])]))}});export{MazPickerYearSwitcher_default as default};
@@ -1 +1 @@
1
- import{t as MazDropdown_default}from"../chunks/MazDropdown.CO44HhDK.js";export{MazDropdown_default as default};
1
+ import{t as MazDropdown_default}from"../chunks/MazDropdown.CXgcPcal.js";export{MazDropdown_default as default};