UNPKG

@datametria/vue-components

Version:

DATAMETRIA Vue.js 3 Component Library with Multi-Brand Theming - 51 components + 10 composables with theming support, WCAG 2.2 AA, dark mode, responsive system

1 lines 143 kB
(function(T,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],e):(T=typeof globalThis<"u"?globalThis:T||self,e(T.DatametriaVueComponents={},T.Vue))})(this,(function(T,e){"use strict";var A=(t=>(t.PRIMARY="primary",t.SECONDARY="secondary",t.OUTLINE="outline",t.GHOST="ghost",t))(A||{}),P=(t=>(t.SM="sm",t.MD="md",t.LG="lg",t))(P||{});const J=["disabled","type","aria-busy","aria-disabled"],Q={key:0,class:"spinner",role:"status","aria-label":"Carregando"},Z=e.defineComponent({__name:"DatametriaButton",props:{variant:{default:A.PRIMARY},size:{default:P.MD},disabled:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},fullWidth:{type:Boolean,default:!1},type:{default:"button"}},emits:["click"],setup(t){const s=t;if(process.env.NODE_ENV==="development"){const a=Object.values(A);a.includes(s.variant)||console.warn(`[DatametriaButton] Invalid variant "${s.variant}". Valid options: ${a.join(", ")}`)}const l=e.computed(()=>["datametria-button",`datametria-button--${s.variant}`,`datametria-button--${s.size}`,{"datametria-button--full-width":s.fullWidth,"datametria-button--loading":s.loading,"datametria-button--disabled":s.disabled}]);return(a,o)=>(e.openBlock(),e.createElementBlock("button",{class:e.normalizeClass(l.value),disabled:t.disabled||t.loading,type:t.type,"aria-busy":t.loading,"aria-disabled":t.disabled,onClick:o[0]||(o[0]=n=>a.$emit("click",n))},[t.loading?(e.openBlock(),e.createElementBlock("span",Q)):e.createCommentVNode("",!0),e.renderSlot(a.$slots,"default",{},void 0,!0)],10,J))}}),M=(t,s)=>{const l=t.__vccOpts||t;for(const[a,o]of s)l[a]=o;return l},v=M(Z,[["__scopeId","data-v-920bfc9a"]]),ee={key:0,class:"datametria-input__prepend"},te={class:"datametria-input__inner"},ae={key:0,class:"datametria-input__prefix"},le={key:0},oe=["type","placeholder","disabled","readonly","maxlength"],ne={key:1,class:"datametria-input__suffix"},se={key:0},re={key:1,class:"datametria-input__append"},ie=M(e.defineComponent({__name:"DatametriaInput",props:{modelValue:{},type:{default:"text"},placeholder:{default:""},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},clearable:{type:Boolean,default:!1},maxlength:{},prefixIcon:{},suffixIcon:{},size:{default:"default"}},emits:["update:modelValue","input","change","focus","blur","clear"],setup(t,{expose:s,emit:l}){const a=t,o=l,n=e.ref(),r=e.ref(!1),i=e.computed({get:()=>a.modelValue,set:y=>o("update:modelValue",y)}),m=e.computed(()=>a.clearable&&!a.disabled&&!a.readonly&&i.value),p=e.computed(()=>({"datametria-input--disabled":a.disabled,"datametria-input--focused":r.value,[`datametria-input--${a.size}`]:a.size!=="default"})),C=e.computed(()=>"datametria-input__field"),B=y=>{const k=y.target;o("input",k.value)},_=y=>{const k=y.target;o("change",k.value)},$=y=>{r.value=!0,o("focus",y)},f=y=>{r.value=!1,o("blur",y)},h=()=>{var y;o("update:modelValue",""),o("clear"),(y=n.value)==null||y.focus()};return s({focus:()=>{var y;return(y=n.value)==null?void 0:y.focus()},blur:()=>{var y;return(y=n.value)==null?void 0:y.blur()}}),(y,k)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["datametria-input",p.value])},[y.$slots.prepend?(e.openBlock(),e.createElementBlock("div",ee,[e.renderSlot(y.$slots,"prepend",{},void 0,!0)])):e.createCommentVNode("",!0),e.createElementVNode("div",te,[y.$slots.prefix||t.prefixIcon?(e.openBlock(),e.createElementBlock("span",ae,[e.renderSlot(y.$slots,"prefix",{},()=>[t.prefixIcon?(e.openBlock(),e.createElementBlock("span",le,e.toDisplayString(t.prefixIcon),1)):e.createCommentVNode("",!0)],!0)])):e.createCommentVNode("",!0),e.withDirectives(e.createElementVNode("input",{ref_key:"inputRef",ref:n,"onUpdate:modelValue":k[0]||(k[0]=g=>i.value=g),type:t.type,placeholder:t.placeholder,disabled:t.disabled,readonly:t.readonly,maxlength:t.maxlength,class:e.normalizeClass(C.value),onInput:B,onChange:_,onFocus:$,onBlur:f},null,42,oe),[[e.vModelDynamic,i.value]]),m.value||y.$slots.suffix||t.suffixIcon?(e.openBlock(),e.createElementBlock("span",ne,[m.value?(e.openBlock(),e.createElementBlock("button",{key:0,class:"datametria-input__clear",onClick:h,type:"button"}," × ")):e.createCommentVNode("",!0),e.renderSlot(y.$slots,"suffix",{},()=>[t.suffixIcon?(e.openBlock(),e.createElementBlock("span",se,e.toDisplayString(t.suffixIcon),1)):e.createCommentVNode("",!0)],!0)])):e.createCommentVNode("",!0)]),y.$slots.append?(e.openBlock(),e.createElementBlock("div",re,[e.renderSlot(y.$slots,"append",{},void 0,!0)])):e.createCommentVNode("",!0)],2))}}),[["__scopeId","data-v-810b2202"]]),ce={class:"datametria-password-input"},de=["for"],me={key:0,class:"datametria-password-input__required"},pe={class:"datametria-password-input__wrapper"},fe=["id","value","type","placeholder","disabled","required","autocomplete","aria-invalid","aria-describedby"],ue=["aria-label"],he={key:0,class:"datametria-password-input__icon",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},ke={key:1,class:"datametria-password-input__icon",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor"},ge={key:1,class:"datametria-password-input__warning"},be={key:2,class:"datametria-password-input__strength"},_e={class:"datametria-password-input__strength-bar"},ye=["id"],Be={class:"datametria-password-input__requirements-list"},$e={class:"datametria-password-input__check"},Ee={class:"datametria-password-input__check"},Ve={class:"datametria-password-input__check"},Ce={class:"datametria-password-input__check"},we={class:"datametria-password-input__check"},Ne=["id"],Se=["id"],De=M(e.defineComponent({__name:"DatametriaPasswordInput",props:{modelValue:{default:""},label:{},placeholder:{},errorMessage:{},helpText:{},disabled:{type:Boolean,default:!1},required:{type:Boolean,default:!1},minLength:{default:8},showStrength:{type:Boolean,default:!0},showRequirements:{type:Boolean,default:!0},autocomplete:{default:"current-password"}},emits:["update:modelValue","strength-change"],setup(t,{emit:s}){const l=t,a=s,o=e.computed(()=>`password-${Math.random().toString(36).substr(2,9)}`),n=e.ref(!1),r=e.ref(!1),i=e.ref(!1),m=e.computed(()=>({minLength:l.modelValue.length>=l.minLength,hasUppercase:/[A-Z]/.test(l.modelValue),hasLowercase:/[a-z]/.test(l.modelValue),hasNumber:/\d/.test(l.modelValue),hasSpecial:/[!@#$%^&*(),.?":{}|<>]/.test(l.modelValue)})),p=e.computed(()=>{if(!l.modelValue)return 0;let D=0;const w=m.value;return w.minLength&&(D+=20),w.hasUppercase&&(D+=20),w.hasLowercase&&(D+=20),w.hasNumber&&(D+=20),w.hasSpecial&&(D+=20),D}),C=e.computed(()=>p.value),B=e.computed(()=>{const D=p.value;return D===0?"":D<=40?"Fraca":D<=60?"Média":D<=80?"Boa":"Forte"}),_=e.computed(()=>["datametria-password-input__strength-fill",{"datametria-password-input__strength-fill--weak":p.value<=40,"datametria-password-input__strength-fill--medium":p.value>40&&p.value<=60,"datametria-password-input__strength-fill--good":p.value>60&&p.value<=80,"datametria-password-input__strength-fill--strong":p.value>80}]),$=e.computed(()=>["datametria-password-input__strength-text",{"datametria-password-input__strength-text--weak":p.value<=40,"datametria-password-input__strength-text--medium":p.value>40&&p.value<=60,"datametria-password-input__strength-text--good":p.value>60&&p.value<=80,"datametria-password-input__strength-text--strong":p.value>80}]),f=e.computed(()=>["datametria-password-input__field",{"datametria-password-input__field--error":l.errorMessage,"datametria-password-input__field--disabled":l.disabled}]),h=e.computed(()=>{const D=[];return l.showRequirements&&r.value&&D.push(`${o.value}-requirements`),l.errorMessage&&D.push(`${o.value}-error`),l.helpText&&!l.errorMessage&&D.push(`${o.value}-help`),D.length>0?D.join(" "):void 0}),y=D=>{const w=D.target.value;a("update:modelValue",w)},k=()=>{r.value=!0},g=()=>{r.value=!1},b=()=>{n.value=!n.value},S=D=>{i.value=D.getModifierState("CapsLock")};return e.watch(p,D=>{l.modelValue&&a("strength-change",D)}),(D,w)=>(e.openBlock(),e.createElementBlock("div",ce,[t.label?(e.openBlock(),e.createElementBlock("label",{key:0,for:o.value,class:"datametria-password-input__label"},[e.createTextVNode(e.toDisplayString(t.label)+" ",1),t.required?(e.openBlock(),e.createElementBlock("span",me,"*")):e.createCommentVNode("",!0)],8,de)):e.createCommentVNode("",!0),e.createElementVNode("div",pe,[e.createElementVNode("input",{id:o.value,value:t.modelValue,type:n.value?"text":"password",placeholder:t.placeholder,disabled:t.disabled,required:t.required,autocomplete:t.autocomplete,class:e.normalizeClass(f.value),"aria-invalid":!!t.errorMessage,"aria-describedby":h.value,onInput:y,onFocus:k,onBlur:g,onKeyup:S},null,42,fe),e.createElementVNode("button",{type:"button",class:"datametria-password-input__toggle","aria-label":n.value?"Ocultar senha":"Mostrar senha",onClick:b,tabindex:"-1"},[n.value?(e.openBlock(),e.createElementBlock("svg",he,[...w[0]||(w[0]=[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M13.875 18.825A10.05 10.05 0 0112 19c-4.478 0-8.268-2.943-9.543-7a9.97 9.97 0 011.563-3.029m5.858.908a3 3 0 114.243 4.243M9.878 9.878l4.242 4.242M9.88 9.88l-3.29-3.29m7.532 7.532l3.29 3.29M3 3l3.59 3.59m0 0A9.953 9.953 0 0112 5c4.478 0 8.268 2.943 9.543 7a10.025 10.025 0 01-4.132 5.411m0 0L21 21"},null,-1)])])):(e.openBlock(),e.createElementBlock("svg",ke,[...w[1]||(w[1]=[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M15 12a3 3 0 11-6 0 3 3 0 016 0z"},null,-1),e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z"},null,-1)])]))],8,ue)]),i.value?(e.openBlock(),e.createElementBlock("p",ge," ⚠️ Caps Lock está ativado ")):e.createCommentVNode("",!0),t.showStrength&&t.modelValue?(e.openBlock(),e.createElementBlock("div",be,[e.createElementVNode("div",_e,[e.createElementVNode("div",{class:e.normalizeClass(_.value),style:e.normalizeStyle({width:`${C.value}%`})},null,6)]),e.createElementVNode("span",{class:e.normalizeClass($.value)},e.toDisplayString(B.value),3)])):e.createCommentVNode("",!0),t.showRequirements&&r.value?(e.openBlock(),e.createElementBlock("div",{key:3,id:`${o.value}-requirements`,class:"datametria-password-input__requirements"},[w[6]||(w[6]=e.createElementVNode("p",{class:"datametria-password-input__requirements-title"},"A senha deve conter:",-1)),e.createElementVNode("ul",Be,[e.createElementVNode("li",{class:e.normalizeClass({valid:m.value.minLength})},[e.createElementVNode("span",$e,e.toDisplayString(m.value.minLength?"✓":"○"),1),e.createTextVNode(" Mínimo "+e.toDisplayString(t.minLength)+" caracteres ",1)],2),e.createElementVNode("li",{class:e.normalizeClass({valid:m.value.hasUppercase})},[e.createElementVNode("span",Ee,e.toDisplayString(m.value.hasUppercase?"✓":"○"),1),w[2]||(w[2]=e.createTextVNode(" Pelo menos 1 letra maiúscula ",-1))],2),e.createElementVNode("li",{class:e.normalizeClass({valid:m.value.hasLowercase})},[e.createElementVNode("span",Ve,e.toDisplayString(m.value.hasLowercase?"✓":"○"),1),w[3]||(w[3]=e.createTextVNode(" Pelo menos 1 letra minúscula ",-1))],2),e.createElementVNode("li",{class:e.normalizeClass({valid:m.value.hasNumber})},[e.createElementVNode("span",Ce,e.toDisplayString(m.value.hasNumber?"✓":"○"),1),w[4]||(w[4]=e.createTextVNode(" Pelo menos 1 número ",-1))],2),e.createElementVNode("li",{class:e.normalizeClass({valid:m.value.hasSpecial})},[e.createElementVNode("span",we,e.toDisplayString(m.value.hasSpecial?"✓":"○"),1),w[5]||(w[5]=e.createTextVNode(" Pelo menos 1 caractere especial ",-1))],2)])],8,ye)):e.createCommentVNode("",!0),t.errorMessage?(e.openBlock(),e.createElementBlock("p",{key:4,id:`${o.value}-error`,class:"datametria-password-input__error"},e.toDisplayString(t.errorMessage),9,Ne)):e.createCommentVNode("",!0),t.helpText&&!t.errorMessage?(e.openBlock(),e.createElementBlock("p",{key:5,id:`${o.value}-help`,class:"datametria-password-input__help"},e.toDisplayString(t.helpText),9,Se)):e.createCommentVNode("",!0)]))}}),[["__scopeId","data-v-68f8806d"]]),xe={key:0,class:"datametria-select__value"},Te={key:1,class:"datametria-select__placeholder"},ze={class:"datametria-select__options"},Me=["onClick"],Ie={key:0,class:"datametria-select__empty"},Le=M(e.defineComponent({__name:"DatametriaSelect",props:{modelValue:{},options:{},placeholder:{default:"Selecione"},disabled:{type:Boolean,default:!1},clearable:{type:Boolean,default:!1},filterable:{type:Boolean,default:!1},multiple:{type:Boolean,default:!1}},emits:["update:modelValue","change"],setup(t,{emit:s}){const l=t,a=s,o=e.ref(!1),n=e.ref(""),r=e.ref({}),i=e.computed(()=>{var $;return l.multiple&&Array.isArray(l.modelValue)?l.modelValue.map(h=>{var y;return(y=l.options.find(k=>k.value===h))==null?void 0:y.label}).filter(Boolean).join(", "):(($=l.options.find(f=>f.value===l.modelValue))==null?void 0:$.label)||""}),m=e.computed(()=>!l.filterable||!n.value?l.options:l.options.filter($=>$.label.toLowerCase().includes(n.value.toLowerCase()))),p=$=>l.multiple&&Array.isArray(l.modelValue)?l.modelValue.includes($):l.modelValue===$,C=()=>{l.disabled||(o.value=!o.value)},B=$=>{if(l.multiple){const f=Array.isArray(l.modelValue)?[...l.modelValue]:[],h=f.indexOf($.value);h>-1?f.splice(h,1):f.push($.value),a("update:modelValue",f),a("change",f)}else a("update:modelValue",$.value),a("change",$.value),o.value=!1},_=$=>{$.target.closest(".datametria-select")||(o.value=!1)};return e.onMounted(()=>{document.addEventListener("click",_)}),e.onUnmounted(()=>{document.removeEventListener("click",_)}),($,f)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["datametria-select",{"is-disabled":t.disabled}])},[e.createElementVNode("div",{class:"datametria-select__trigger",onClick:C},[i.value?(e.openBlock(),e.createElementBlock("span",xe,e.toDisplayString(i.value),1)):(e.openBlock(),e.createElementBlock("span",Te,e.toDisplayString(t.placeholder),1)),f[2]||(f[2]=e.createElementVNode("span",{class:"datametria-select__arrow"},"▼",-1))]),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[o.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:"datametria-select__dropdown",style:e.normalizeStyle(r.value)},[t.filterable?e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:0,"onUpdate:modelValue":f[0]||(f[0]=h=>n.value=h),class:"datametria-select__filter",placeholder:"Buscar...",onClick:f[1]||(f[1]=e.withModifiers(()=>{},["stop"]))},null,512)),[[e.vModelText,n.value]]):e.createCommentVNode("",!0),e.createElementVNode("div",ze,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(m.value,h=>(e.openBlock(),e.createElementBlock("div",{key:h.value,class:e.normalizeClass(["datametria-select__option",{"is-selected":p(h.value)}]),onClick:y=>B(h)},e.toDisplayString(h.label),11,Me))),128)),m.value.length===0?(e.openBlock(),e.createElementBlock("div",Ie," Nenhum resultado ")):e.createCommentVNode("",!0)])],4)):e.createCommentVNode("",!0)]))],2))}}),[["__scopeId","data-v-5f44a0e3"]]),Fe={class:"datametria-checkbox__input"},Re=["checked","disabled","indeterminate"],Ae={key:0,class:"datametria-checkbox__label"},Pe=M(e.defineComponent({__name:"DatametriaCheckbox",props:{modelValue:{type:[Boolean,String,Number],default:!1},label:{},disabled:{type:Boolean,default:!1},indeterminate:{type:Boolean,default:!1},trueValue:{type:[Boolean,String,Number],default:!0},falseValue:{type:[Boolean,String,Number],default:!1}},emits:["update:modelValue","change"],setup(t,{expose:s,emit:l}){const a=t,o=l,n=e.ref(),r=e.inject("checkboxGroup",null),i=e.computed(()=>r?r.modelValue.value.includes(a.modelValue):a.modelValue===a.trueValue),m=p=>{if(a.disabled)return;const B=p.target.checked;if(r){const _=[...r.modelValue.value];if(B)_.push(a.modelValue);else{const $=_.indexOf(a.modelValue);$>-1&&_.splice($,1)}r.updateValue(_),o("update:modelValue",_),o("change",_)}else{const _=B?a.trueValue:a.falseValue;o("update:modelValue",_),o("change",_)}};return e.watch(()=>a.indeterminate,p=>{n.value&&(n.value.indeterminate=p)},{immediate:!0}),s({inputRef:n}),(p,C)=>(e.openBlock(),e.createElementBlock("label",{class:e.normalizeClass(["datametria-checkbox",{"is-checked":i.value,"is-disabled":t.disabled,"is-indeterminate":t.indeterminate}])},[e.createElementVNode("span",Fe,[e.createElementVNode("input",{ref_key:"inputRef",ref:n,type:"checkbox",checked:i.value,disabled:t.disabled,indeterminate:t.indeterminate,onChange:m},null,40,Re),C[0]||(C[0]=e.createElementVNode("span",{class:"datametria-checkbox__inner"},null,-1))]),t.label||p.$slots.default?(e.openBlock(),e.createElementBlock("span",Ae,[e.renderSlot(p.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(t.label),1)],!0)])):e.createCommentVNode("",!0)],2))}}),[["__scopeId","data-v-06a43c6d"]]),Oe={class:"datametria-checkbox-group",role:"group"},Ke=M(e.defineComponent({__name:"DatametriaCheckboxGroup",props:{modelValue:{default:()=>[]},disabled:{type:Boolean,default:!1}},emits:["update:modelValue","change"],setup(t,{emit:s}){const l=t,a=s,o=n=>{a("update:modelValue",n),a("change",n)};return e.provide("checkboxGroup",{modelValue:e.computed(()=>l.modelValue),disabled:e.computed(()=>l.disabled),updateValue:o}),(n,r)=>(e.openBlock(),e.createElementBlock("div",Oe,[e.renderSlot(n.$slots,"default",{},void 0,!0)]))}}),[["__scopeId","data-v-9134bf4b"]]),je={class:"datametria-radio__input"},Ue=["checked","disabled","value"],qe={key:0,class:"datametria-radio__label"},We=M(e.defineComponent({__name:"DatametriaRadio",props:{modelValue:{type:[String,Number,Boolean]},label:{},disabled:{type:Boolean,default:!1}},emits:["update:modelValue","change"],setup(t,{expose:s,emit:l}){const a=t,o=l,n=e.ref(),r=e.inject("radioGroup",null),i=e.computed(()=>r?r.modelValue.value===a.modelValue:!1),m=()=>{a.disabled||(r&&r.updateValue(a.modelValue),o("update:modelValue",a.modelValue),o("change",a.modelValue))};return s({inputRef:n}),(p,C)=>(e.openBlock(),e.createElementBlock("label",{class:e.normalizeClass(["datametria-radio",{"is-checked":i.value,"is-disabled":t.disabled}])},[e.createElementVNode("span",je,[e.createElementVNode("input",{ref_key:"inputRef",ref:n,type:"radio",checked:i.value,disabled:t.disabled,value:t.modelValue,onChange:m},null,40,Ue),C[0]||(C[0]=e.createElementVNode("span",{class:"datametria-radio__inner"},null,-1))]),t.label||p.$slots.default?(e.openBlock(),e.createElementBlock("span",qe,[e.renderSlot(p.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(t.label),1)],!0)])):e.createCommentVNode("",!0)],2))}}),[["__scopeId","data-v-86222e31"]]),He={class:"datametria-radio-group",role:"radiogroup"},Ge=M(e.defineComponent({__name:"DatametriaRadioGroup",props:{modelValue:{type:[String,Number,Boolean]},disabled:{type:Boolean,default:!1}},emits:["update:modelValue","change"],setup(t,{emit:s}){const l=t,a=s,o=n=>{a("update:modelValue",n),a("change",n)};return e.provide("radioGroup",{modelValue:e.computed(()=>l.modelValue),disabled:e.computed(()=>l.disabled),updateValue:o}),(n,r)=>(e.openBlock(),e.createElementBlock("div",He,[e.renderSlot(n.$slots,"default",{},void 0,!0)]))}}),[["__scopeId","data-v-b0c12ada"]]),Ye=["aria-checked","disabled"],Xe={key:0,class:"datametria-switch__loading"},Je=M(e.defineComponent({__name:"DatametriaSwitch",props:{modelValue:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},activeColor:{default:"#0072ce"},inactiveColor:{default:"#dcdfe6"}},emits:["update:modelValue","change"],setup(t,{emit:s}){const l=t,a=s,o=e.computed(()=>({backgroundColor:l.modelValue?l.activeColor:l.inactiveColor})),n=()=>{if(l.disabled||l.loading)return;const r=!l.modelValue;a("update:modelValue",r),a("change",r)};return(r,i)=>(e.openBlock(),e.createElementBlock("button",{type:"button",role:"switch",class:e.normalizeClass(["datametria-switch",{"is-checked":t.modelValue,"is-disabled":t.disabled,"is-loading":t.loading}]),"aria-checked":t.modelValue,disabled:t.disabled||t.loading,onClick:n},[e.createElementVNode("span",{class:"datametria-switch__core",style:e.normalizeStyle(o.value)},[t.loading?(e.openBlock(),e.createElementBlock("span",Xe,[...i[0]||(i[0]=[e.createElementVNode("span",{class:"spinner"},null,-1)])])):e.createCommentVNode("",!0)],4)],10,Ye))}}),[["__scopeId","data-v-ade9c28c"]]),Qe=["placeholder","disabled","readonly","rows","maxlength"],Ze={key:0,class:"datametria-textarea__count"},ve=M(e.defineComponent({__name:"DatametriaTextarea",props:{modelValue:{default:""},placeholder:{default:""},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},rows:{default:3},maxlength:{},showWordLimit:{type:Boolean,default:!1},autosize:{type:[Boolean,Object],default:!1}},emits:["update:modelValue","input","focus","blur"],setup(t,{expose:s,emit:l}){const a=t,o=l,n=e.ref(),r=e.ref(a.modelValue),i=e.ref(!1),m=e.computed(()=>({"datametria-textarea--disabled":a.disabled,"datametria-textarea--focused":i.value})),p=e.computed(()=>{if(!a.autosize)return a.rows}),C=f=>{const h=f.target;r.value=h.value,o("update:modelValue",h.value),o("input",h.value),a.autosize&&e.nextTick(()=>$())},B=f=>{i.value=!0,o("focus",f)},_=f=>{i.value=!1,o("blur",f)},$=()=>{if(!n.value||!a.autosize)return;const f=n.value;f.style.height="auto";let h=0,y=1/0;if(typeof a.autosize=="object"){if(a.autosize.minRows){const b=parseInt(getComputedStyle(f).lineHeight);h=a.autosize.minRows*b}if(a.autosize.maxRows){const b=parseInt(getComputedStyle(f).lineHeight);y=a.autosize.maxRows*b}}const k=f.scrollHeight,g=Math.max(h,Math.min(y,k));f.style.height=`${g}px`};return e.watch(()=>a.modelValue,f=>{f!==r.value&&(r.value=f,a.autosize&&e.nextTick(()=>$()))}),e.onMounted(()=>{a.autosize&&e.nextTick(()=>$())}),s({focus:()=>{var f;return(f=n.value)==null?void 0:f.focus()},blur:()=>{var f;return(f=n.value)==null?void 0:f.blur()}}),(f,h)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["datametria-textarea",m.value])},[e.withDirectives(e.createElementVNode("textarea",{ref_key:"textareaRef",ref:n,"onUpdate:modelValue":h[0]||(h[0]=y=>r.value=y),class:"datametria-textarea__inner",placeholder:t.placeholder,disabled:t.disabled,readonly:t.readonly,rows:p.value,maxlength:t.maxlength,onInput:C,onFocus:B,onBlur:_},null,40,Qe),[[e.vModelText,r.value]]),t.showWordLimit&&t.maxlength?(e.openBlock(),e.createElementBlock("div",Ze,e.toDisplayString(r.value.length)+" / "+e.toDisplayString(t.maxlength),1)):e.createCommentVNode("",!0)],2))}}),[["__scopeId","data-v-c4077cb5"]]),et=["placeholder","disabled","readonly"],tt={key:0,class:"datametria-datepicker__shortcuts"},at=["onClick"],lt={class:"datametria-datepicker__calendar"},ot={class:"datametria-datepicker__header"},nt={class:"datametria-datepicker__weekdays"},st={class:"datametria-datepicker__days"},rt=["disabled","onClick"],it=M(e.defineComponent({__name:"DatametriaDatePicker",props:{modelValue:{default:null},type:{default:"date"},format:{default:"DD/MM/YYYY"},placeholder:{default:"Selecione uma data"},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},disabledDate:{},shortcuts:{default:()=>[]}},emits:["update:modelValue","change"],setup(t,{emit:s}){const l=t,a=s,o=e.ref(),n=e.ref(),r=e.ref(!1),i=e.ref(new Date),m=e.ref(null),p=["Dom","Seg","Ter","Qua","Qui","Sex","Sáb"],C=e.computed(()=>`${["Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"][i.value.getMonth()]} ${i.value.getFullYear()}`),B=e.computed(()=>l.modelValue?l.type==="range"&&Array.isArray(l.modelValue)?`${f(l.modelValue[0])} - ${f(l.modelValue[1])}`:f(l.modelValue):""),_=e.computed(()=>{const E=i.value.getFullYear(),x=i.value.getMonth(),d=new Date(E,x,1),c=new Date(E,x+1,0),V=[],u=d.getDay();for(let L=u-1;L>=0;L--){const R=new Date(E,x,-L);V.push({date:R,disabled:!1,otherMonth:!0})}for(let L=1;L<=c.getDate();L++){const R=new Date(E,x,L);V.push({date:R,disabled:!1,otherMonth:!1})}const N=42-V.length;for(let L=1;L<=N;L++){const R=new Date(E,x+1,L);V.push({date:R,disabled:!1,otherMonth:!0})}return V}),$=e.computed(()=>{if(!o.value)return{};const E=o.value.getBoundingClientRect();return{position:"fixed",top:`${E.bottom+4}px`,left:`${E.left}px`,zIndex:9999}}),f=E=>{const x=String(E.getDate()).padStart(2,"0"),d=String(E.getMonth()+1).padStart(2,"0"),c=E.getFullYear();return`${x}/${d}/${c}`},h=E=>l.disabledDate?l.disabledDate(E):!1,y=E=>l.modelValue?l.type==="range"&&Array.isArray(l.modelValue)?g(E,l.modelValue[0])||g(E,l.modelValue[1]):g(E,l.modelValue):!1,k=E=>{if(l.type!=="range"||!Array.isArray(l.modelValue))return!1;const[x,d]=l.modelValue;return E>x&&E<d},g=(E,x)=>E.getDate()===x.getDate()&&E.getMonth()===x.getMonth()&&E.getFullYear()===x.getFullYear(),b=E=>{if(l.type==="range")if(!m.value)m.value=E;else{const x=m.value<E?m.value:E,d=m.value<E?E:m.value;a("update:modelValue",[x,d]),a("change",[x,d]),m.value=null,r.value=!1}else a("update:modelValue",E),a("change",E),r.value=!1},S=()=>{!l.disabled&&!l.readonly&&(r.value=!0)},D=E=>{setTimeout(()=>{var x;(x=n.value)!=null&&x.contains(E.relatedTarget)||(r.value=!1)},200)},w=E=>{a("update:modelValue",E.value),a("change",E.value),r.value=!1},z=()=>{i.value=new Date(i.value.getFullYear(),i.value.getMonth()-1)},I=()=>{i.value=new Date(i.value.getFullYear(),i.value.getMonth()+1)};return e.watch(()=>l.modelValue,E=>{E&&!Array.isArray(E)&&(i.value=new Date(E))}),(E,x)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["datametria-datepicker",{"datametria-datepicker--disabled":t.disabled}])},[e.withDirectives(e.createElementVNode("input",{ref_key:"inputRef",ref:o,"onUpdate:modelValue":x[0]||(x[0]=d=>B.value=d),type:"text",class:"datametria-datepicker__input",placeholder:t.placeholder,disabled:t.disabled,readonly:t.readonly,onFocus:S,onBlur:D},null,40,et),[[e.vModelText,B.value]]),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[r.value?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"dropdownRef",ref:n,class:"datametria-datepicker__dropdown",style:e.normalizeStyle($.value)},[t.shortcuts.length?(e.openBlock(),e.createElementBlock("div",tt,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.shortcuts,d=>(e.openBlock(),e.createElementBlock("button",{key:d.text,class:"datametria-datepicker__shortcut",onClick:c=>w(d)},e.toDisplayString(d.text),9,at))),128))])):e.createCommentVNode("",!0),e.createElementVNode("div",lt,[e.createElementVNode("div",ot,[e.createElementVNode("button",{onClick:z},"<"),e.createElementVNode("span",null,e.toDisplayString(C.value),1),e.createElementVNode("button",{onClick:I},">")]),e.createElementVNode("div",nt,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(p,d=>e.createElementVNode("span",{key:d},e.toDisplayString(d),1)),64))]),e.createElementVNode("div",st,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(_.value,d=>(e.openBlock(),e.createElementBlock("button",{key:d.date.getTime(),class:e.normalizeClass(["datametria-datepicker__day",{"datametria-datepicker__day--disabled":d.disabled||h(d.date),"datametria-datepicker__day--selected":y(d.date),"datametria-datepicker__day--in-range":k(d.date),"datametria-datepicker__day--other-month":d.otherMonth}]),disabled:d.disabled||h(d.date),onClick:c=>b(d.date)},e.toDisplayString(d.date.getDate()),11,rt))),128))])])],4)):e.createCommentVNode("",!0)]))],2))}}),[["__scopeId","data-v-6a2e42d9"]]),ct=["placeholder","disabled","readonly"],dt={class:"datametria-timepicker__spinners"},mt={class:"datametria-timepicker__spinner"},pt={class:"datametria-timepicker__spinner-list"},ft=["onClick"],ut={class:"datametria-timepicker__spinner"},ht={class:"datametria-timepicker__spinner-list"},kt=["onClick"],gt={key:0,class:"datametria-timepicker__spinner"},bt={class:"datametria-timepicker__spinner-list"},_t=["onClick"],yt=M(e.defineComponent({__name:"DatametriaTimePicker",props:{modelValue:{default:null},format:{default:"HH:mm:ss"},step:{default:1},placeholder:{default:"Selecione um horário"},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},range:{type:Boolean,default:!1}},emits:["update:modelValue","change"],setup(t,{emit:s}){const l=t,a=s,o=e.ref(),n=e.ref(),r=e.ref(!1),i=e.ref(0),m=e.ref(0),p=e.ref(0),C=e.computed(()=>l.format.includes("ss")),B=e.computed(()=>{const E=[];for(let x=0;x<24;x+=l.step)E.push(x);return E}),_=e.computed(()=>{const E=[];for(let x=0;x<60;x+=l.step)E.push(x);return E}),$=e.computed(()=>{const E=[];for(let x=0;x<60;x+=l.step)E.push(x);return E}),f=e.computed(()=>l.modelValue?l.modelValue:""),h=e.computed(()=>{if(!o.value)return{};const E=o.value.getBoundingClientRect();return{position:"fixed",top:`${E.bottom+4}px`,left:`${E.left}px`,zIndex:9999}}),y=E=>String(E).padStart(2,"0"),k=()=>{const E=y(i.value),x=y(m.value),d=y(p.value);return C.value?`${E}:${x}:${d}`:`${E}:${x}`},g=E=>{if(!E)return;const x=E.split(":");x.length>=2&&(i.value=parseInt(x[0])||0,m.value=parseInt(x[1])||0,x.length>=3&&(p.value=parseInt(x[2])||0))},b=E=>{i.value=E,w()},S=E=>{m.value=E,w()},D=E=>{p.value=E,w()},w=()=>{const E=k();a("update:modelValue",E),a("change",E)},z=()=>{!l.disabled&&!l.readonly&&(r.value=!0)},I=E=>{setTimeout(()=>{var x;(x=n.value)!=null&&x.contains(E.relatedTarget)||(r.value=!1)},200)};return e.watch(()=>l.modelValue,E=>{E&&g(E)},{immediate:!0}),(E,x)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["datametria-timepicker",{"datametria-timepicker--disabled":t.disabled}])},[e.withDirectives(e.createElementVNode("input",{ref_key:"inputRef",ref:o,"onUpdate:modelValue":x[0]||(x[0]=d=>f.value=d),type:"text",class:"datametria-timepicker__input",placeholder:t.placeholder,disabled:t.disabled,readonly:t.readonly,onFocus:z,onBlur:I},null,40,ct),[[e.vModelText,f.value]]),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[r.value?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"dropdownRef",ref:n,class:"datametria-timepicker__dropdown",style:e.normalizeStyle(h.value)},[e.createElementVNode("div",dt,[e.createElementVNode("div",mt,[x[1]||(x[1]=e.createElementVNode("div",{class:"datametria-timepicker__spinner-title"},"Hora",-1)),e.createElementVNode("div",pt,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(B.value,d=>(e.openBlock(),e.createElementBlock("button",{key:d,class:e.normalizeClass(["datametria-timepicker__spinner-item",{"datametria-timepicker__spinner-item--active":d===i.value}]),onClick:c=>b(d)},e.toDisplayString(y(d)),11,ft))),128))])]),e.createElementVNode("div",ut,[x[2]||(x[2]=e.createElementVNode("div",{class:"datametria-timepicker__spinner-title"},"Minuto",-1)),e.createElementVNode("div",ht,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(_.value,d=>(e.openBlock(),e.createElementBlock("button",{key:d,class:e.normalizeClass(["datametria-timepicker__spinner-item",{"datametria-timepicker__spinner-item--active":d===m.value}]),onClick:c=>S(d)},e.toDisplayString(y(d)),11,kt))),128))])]),C.value?(e.openBlock(),e.createElementBlock("div",gt,[x[3]||(x[3]=e.createElementVNode("div",{class:"datametria-timepicker__spinner-title"},"Segundo",-1)),e.createElementVNode("div",bt,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList($.value,d=>(e.openBlock(),e.createElementBlock("button",{key:d,class:e.normalizeClass(["datametria-timepicker__spinner-item",{"datametria-timepicker__spinner-item--active":d===p.value}]),onClick:c=>D(d)},e.toDisplayString(y(d)),11,_t))),128))])])):e.createCommentVNode("",!0)])],4)):e.createCommentVNode("",!0)]))],2))}}),[["__scopeId","data-v-9c8ff62c"]]),Bt={key:0,class:"dm-slider__header"},$t=["for"],Et={key:0,class:"dm-slider__required","aria-label":"obrigatório"},Vt={key:1,class:"dm-slider__value"},Ct={class:"dm-slider__wrapper"},wt=["id","value","min","max","step","disabled","required","aria-label","aria-describedby","aria-valuemin","aria-valuemax","aria-valuenow","aria-valuetext"],Nt={key:1,class:"dm-slider__range"},St={class:"dm-slider__min"},Dt={class:"dm-slider__max"},xt={key:2,class:"dm-slider__messages"},Tt=["id"],zt=["id"],Mt=M(e.defineComponent({__name:"DatametriaSlider",props:{modelValue:{},min:{default:0},max:{default:100},step:{default:1},label:{},disabled:{type:Boolean},required:{type:Boolean},showValue:{type:Boolean,default:!0},showMinMax:{type:Boolean,default:!1},errorMessage:{},helperText:{},ariaLabel:{},formatter:{}},emits:["update:modelValue","change","input","focus","blur"],setup(t,{expose:s,emit:l}){const a=t,o=l,n=e.ref(),r=e.ref(!1),i=e.computed(()=>`dm-slider-${Math.random().toString(36).substr(2,9)}`),m=e.computed(()=>{const w=a.max-a.min;return(a.modelValue-a.min)/w*100}),p=e.computed(()=>a.formatter?a.formatter(a.modelValue):a.modelValue.toString()),C=e.computed(()=>{const w=[];return a.errorMessage?w.push(`${i.value}-error`):a.helperText&&w.push(`${i.value}-helper`),w.length>0?w.join(" "):void 0}),B=e.computed(()=>a.formatter?a.formatter(a.modelValue):`${a.modelValue}`),_=w=>a.formatter?a.formatter(w):w.toString(),$=w=>{const z=w.target,I=parseFloat(z.value);o("update:modelValue",I),o("input",I)},f=w=>{const z=w.target,I=parseFloat(z.value);o("change",I)},h=w=>{o("focus",w)},y=w=>{o("blur",w)},k=w=>{if(a.disabled)return;const I=w.currentTarget.getBoundingClientRect(),E=(w.clientX-I.left)/I.width,x=a.max-a.min,d=a.min+E*x,c=Math.round(d/a.step)*a.step,V=Math.max(a.min,Math.min(a.max,c));o("update:modelValue",V),o("change",V)},g=w=>{if(a.disabled)return;r.value=!0,w.preventDefault();const z=E=>{if(!r.value)return;const x=w.target.parentElement;if(!x)return;const d=x.getBoundingClientRect(),c=Math.max(0,Math.min(1,(E.clientX-d.left)/d.width)),V=a.max-a.min,u=a.min+c*V,N=Math.round(u/a.step)*a.step,L=Math.max(a.min,Math.min(a.max,N));o("update:modelValue",L),o("input",L)},I=()=>{r.value&&(r.value=!1,o("change",a.modelValue)),document.removeEventListener("mousemove",z),document.removeEventListener("mouseup",I)};document.addEventListener("mousemove",z),document.addEventListener("mouseup",I)},b=w=>{if(a.disabled)return;r.value=!0,w.preventDefault();const z=E=>{if(!r.value)return;const x=w.target.parentElement;if(!x)return;const d=x.getBoundingClientRect(),c=E.touches[0],V=Math.max(0,Math.min(1,(c.clientX-d.left)/d.width)),u=a.max-a.min,N=a.min+V*u,L=Math.round(N/a.step)*a.step,R=Math.max(a.min,Math.min(a.max,L));o("update:modelValue",R),o("input",R)},I=()=>{r.value&&(r.value=!1,o("change",a.modelValue)),document.removeEventListener("touchmove",z),document.removeEventListener("touchend",I)};document.addEventListener("touchmove",z),document.addEventListener("touchend",I)};return s({focus:()=>{e.nextTick(()=>{var w;(w=n.value)==null||w.focus()})},blur:()=>{var w;(w=n.value)==null||w.blur()},inputRef:n}),(w,z)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["dm-slider",{"dm-slider--disabled":t.disabled}])},[t.label||t.showValue?(e.openBlock(),e.createElementBlock("div",Bt,[t.label?(e.openBlock(),e.createElementBlock("label",{key:0,for:i.value,class:"dm-slider__label"},[e.createTextVNode(e.toDisplayString(t.label)+" ",1),t.required?(e.openBlock(),e.createElementBlock("span",Et,"*")):e.createCommentVNode("",!0)],8,$t)):e.createCommentVNode("",!0),t.showValue?(e.openBlock(),e.createElementBlock("span",Vt,e.toDisplayString(p.value),1)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.createElementVNode("div",Ct,[e.createElementVNode("div",{class:"dm-slider__track",onClick:k},[e.createElementVNode("div",{class:"dm-slider__progress",style:e.normalizeStyle({width:`${m.value}%`})},null,4),e.createElementVNode("div",{class:"dm-slider__thumb",style:e.normalizeStyle({left:`${m.value}%`}),onMousedown:g,onTouchstart:b},null,36)]),e.createElementVNode("input",{id:i.value,ref_key:"inputRef",ref:n,type:"range",class:"dm-slider__input",value:t.modelValue,min:t.min,max:t.max,step:t.step,disabled:t.disabled,required:t.required,"aria-label":t.ariaLabel,"aria-describedby":C.value,"aria-valuemin":t.min,"aria-valuemax":t.max,"aria-valuenow":t.modelValue,"aria-valuetext":B.value,onInput:$,onChange:f,onFocus:h,onBlur:y},null,40,wt)]),t.showMinMax?(e.openBlock(),e.createElementBlock("div",Nt,[e.createElementVNode("span",St,e.toDisplayString(_(t.min)),1),e.createElementVNode("span",Dt,e.toDisplayString(_(t.max)),1)])):e.createCommentVNode("",!0),t.errorMessage||t.helperText?(e.openBlock(),e.createElementBlock("div",xt,[t.errorMessage?(e.openBlock(),e.createElementBlock("p",{key:0,id:`${i.value}-error`,class:"dm-slider__error",role:"alert"},e.toDisplayString(t.errorMessage),9,Tt)):t.helperText?(e.openBlock(),e.createElementBlock("p",{key:1,id:`${i.value}-helper`,class:"dm-slider__helper"},e.toDisplayString(t.helperText),9,zt)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)],2))}}),[["__scopeId","data-v-5576db83"]]),It=["accept","multiple","disabled"],Lt={key:0,class:"dm-file-upload__spinner"},Ft={key:1,class:"dm-file-upload__content"},Rt={class:"dm-file-upload__text"},At={class:"dm-file-upload__primary-text"},Pt={class:"dm-file-upload__secondary-text"},Ot={key:0,class:"dm-file-upload__progress"},Kt={class:"dm-file-upload__progress-track"},jt={class:"dm-file-upload__progress-text"},Ut={key:1,class:"dm-file-upload__files"},qt={class:"dm-file-upload__file-info"},Wt={class:"dm-file-upload__file-name"},Ht={class:"dm-file-upload__file-size"},Gt=["onClick"],Yt={key:2,class:"dm-file-upload__error"},Xt=M(e.defineComponent({__name:"DatametriaFileUpload",props:{modelValue:{},accept:{},multiple:{type:Boolean,default:!1},maxSize:{},maxFiles:{},disabled:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},progress:{},uploadText:{},error:{}},emits:["update:modelValue","file-added","file-removed"],setup(t,{emit:s}){const l=t,a=s,o=e.ref(),n=e.ref(!1),r=e.ref([]),i=e.ref(""),m=e.computed(()=>l.error||i.value),p=()=>{!l.disabled&&o.value&&o.value.click()},C=g=>{const b=g.target;b.files&&h(Array.from(b.files))},B=g=>{var S;if(g.preventDefault(),n.value=!1,l.disabled)return;const b=(S=g.dataTransfer)==null?void 0:S.files;b&&h(Array.from(b))},_=g=>{g.preventDefault()},$=g=>{g.preventDefault(),l.disabled||(n.value=!0)},f=g=>{var b;g.preventDefault(),(b=g.currentTarget)!=null&&b.contains(g.relatedTarget)||(n.value=!1)},h=g=>{if(i.value="",l.accept){const b=l.accept.split(",").map(D=>D.trim()),S=g.filter(D=>!b.some(w=>w.startsWith(".")?D.name.toLowerCase().endsWith(w.toLowerCase()):D.type.match(w.replace("*",".*"))));if(S.length>0){i.value=`Invalid file type(s): ${S.map(D=>D.name).join(", ")}`;return}}if(l.maxSize){const b=g.filter(S=>S.size>l.maxSize);if(b.length>0){i.value=`File(s) too large: ${b.map(S=>S.name).join(", ")}`;return}}if(l.multiple){const b=r.value.length+g.length;if(l.maxFiles&&b>l.maxFiles){i.value=`Maximum ${l.maxFiles} files allowed`;return}r.value.push(...g),a("update:modelValue",r.value)}else r.value=[g[0]],a("update:modelValue",g[0]);g.forEach(b=>{a("file-added",b)})},y=g=>{const b=r.value[g];r.value.splice(g,1),l.multiple?a("update:modelValue",r.value):a("update:modelValue",r.value[0]||null),a("file-removed",b,g)},k=g=>{if(g===0)return"0 Bytes";const b=1024,S=["Bytes","KB","MB","GB"],D=Math.floor(Math.log(g)/Math.log(b));return parseFloat((g/Math.pow(b,D)).toFixed(2))+" "+S[D]};return(g,b)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["dm-file-upload",{"dm-file-upload--disabled":t.disabled,"dm-file-upload--loading":t.loading}])},[e.createElementVNode("div",{class:e.normalizeClass(["dm-file-upload__area",{"dm-file-upload__area--dragover":n.value}]),onClick:p,onDrop:B,onDragover:_,onDragenter:$,onDragleave:f},[e.createElementVNode("input",{ref_key:"fileInputRef",ref:o,type:"file",class:"dm-file-upload__input",accept:t.accept,multiple:t.multiple,disabled:t.disabled,onChange:C},null,40,It),t.loading?(e.openBlock(),e.createElementBlock("div",Lt)):(e.openBlock(),e.createElementBlock("div",Ft,[b[0]||(b[0]=e.createElementVNode("div",{class:"dm-file-upload__icon"},[e.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"currentColor"},[e.createElementVNode("path",{d:"M14,2H6A2,2 0 0,0 4,4V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V8L14,2M18,20H6V4H13V9H18V20Z"})])],-1)),e.createElementVNode("div",Rt,[e.createElementVNode("p",At,e.toDisplayString(t.uploadText||"Click to upload or drag and drop"),1),e.createElementVNode("p",Pt,e.toDisplayString(t.accept?`Supported formats: ${t.accept}`:"All file types supported"),1)])]))],34),t.progress!==void 0?(e.openBlock(),e.createElementBlock("div",Ot,[e.createElementVNode("div",Kt,[e.createElementVNode("div",{class:"dm-file-upload__progress-bar",style:e.normalizeStyle({width:`${t.progress}%`})},null,4)]),e.createElementVNode("span",jt,e.toDisplayString(t.progress)+"%",1)])):e.createCommentVNode("",!0),r.value.length>0?(e.openBlock(),e.createElementBlock("div",Ut,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,(S,D)=>(e.openBlock(),e.createElementBlock("div",{key:`${S.name}-${D}`,class:"dm-file-upload__file"},[e.createElementVNode("div",qt,[e.createElementVNode("span",Wt,e.toDisplayString(S.name),1),e.createElementVNode("span",Ht,e.toDisplayString(k(S.size)),1)]),e.createElementVNode("button",{type:"button",class:"dm-file-upload__remove",onClick:w=>y(D)}," × ",8,Gt)]))),128))])):e.createCommentVNode("",!0),m.value?(e.openBlock(),e.createElementBlock("div",Yt,e.toDisplayString(m.value),1)):e.createCommentVNode("",!0)],2))}}),[["__scopeId","data-v-81a7f4c1"]]),Jt=["accept","multiple","disabled"],Qt={key:1,class:"datametria-upload__button"},Zt=["disabled"],vt=["accept","multiple","disabled"],ea={key:2,class:"datametria-upload__list"},ta=["src"],aa={class:"datametria-upload__info"},la={class:"datametria-upload__name"},oa={class:"datametria-upload__size"},na={key:1,class:"datametria-upload__progress"},sa=["onClick"],ra=M(e.defineComponent({__name:"DatametriaUpload",props:{modelValue:{default:()=>[]},action:{default:""},accept:{default:""},multiple:{type:Boolean,default:!1},limit:{default:0},maxSize:{default:0},drag:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},emits:["update:modelValue","change","exceed","error","success"],setup(t,{expose:s,emit:l}){const a=t,o=l,n=e.ref(),r=e.ref(!1),i=e.ref(a.modelValue);let m=0;const p=()=>{var k;(k=n.value)==null||k.click()},C=k=>{const g=k.target,b=Array.from(g.files||[]);_(b),g.value=""},B=k=>{var b;r.value=!1;const g=Array.from(((b=k.dataTransfer)==null?void 0:b.files)||[]);_(g)},_=k=>{if(!a.disabled){if(a.limit&&i.value.length+k.length>a.limit){o("exceed",k);return}k.forEach(g=>{if(a.maxSize&&g.size>a.maxSize){o("error",new Error("File size exceeds limit"),g);return}if(a.accept&&!$(g)){o("error",new Error("Invalid file type"),g);return}const b={uid:`upload-${Date.now()}-${m++}`,name:g.name,size:g.size,status:"ready",progress:0,raw:g};if(g.type.startsWith("image/")){const S=new FileReader;S.onload=D=>{var w;b.preview=(w=D.target)==null?void 0:w.result},S.readAsDataURL(g)}i.value.push(b),a.action&&(b.status="uploading",f(b))}),o("update:modelValue",i.value),o("change",i.value)}},$=k=>a.accept.split(",").map(b=>b.trim()).some(b=>b.startsWith(".")?k.name.toLowerCase().endsWith(b.toLowerCase()):b.endsWith("/*")?k.type.startsWith(b.replace("/*","")):k.type===b),f=k=>{const g=setInterval(()=>{k.progress+=10,k.progress>=100&&(clearInterval(g),k.status="success",o("success",{status:"success"},k))},100)},h=k=>{const g=i.value.indexOf(k);g>-1&&(i.value.splice(g,1),o("update:modelValue",i.value),o("change",i.value))},y=k=>{if(k===0)return"0 B";const g=1024,b=["B","KB","MB","GB"],S=Math.floor(Math.log(k)/Math.log(g));return`${(k/Math.pow(g,S)).toFixed(2)} ${b[S]}`};return s({clearFiles:()=>{i.value=[],o("update:modelValue",[])}}),(k,g)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["datametria-upload",{"datametria-upload--disabled":t.disabled}])},[t.drag?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["datametria-upload__drag",{"datametria-upload__drag--over":r.value}]),onDrop:e.withModifiers(B,["prevent"]),onDragover:g[0]||(g[0]=e.withModifiers(b=>r.value=!0,["prevent"])),onDragleave:g[1]||(g[1]=e.withModifiers(b=>r.value=!1,["prevent"]))},[e.renderSlot(k.$slots,"trigger",{},()=>[g[2]||(g[2]=e.createElementVNode("div",{class:"datametria-upload__drag-content"},[e.createElementVNode("span",null,"Arraste arquivos aqui ou clique para selecionar")],-1))],!0),e.createElementVNode("input",{ref_key:"inputRef",ref:n,type:"file",class:"datametria-upload__input",accept:t.accept,multiple:t.multiple,disabled:t.disabled,onChange:C},null,40,Jt)],34)):(e.openBlock(),e.createElementBlock("div",Qt,[e.renderSlot(k.$slots,"trigger",{},()=>[e.createElementVNode("button",{type:"button",disabled:t.disabled,onClick:p}," Selecionar arquivo ",8,Zt)],!0),e.createElementVNode("input",{ref_key:"inputRef",ref:n,type:"file",class:"datametria-upload__input",accept:t.accept,multiple:t.multiple,disabled:t.disabled,onChange:C},null,40,vt)])),i.value.length?(e.openBlock(),e.createElementBlock("div",ea,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,b=>(e.openBlock(),e.createElementBlock("div",{key:b.uid,class:"datametria-upload__item"},[b.preview?(e.openBlock(),e.createElementBlock("img",{key:0,src:b.preview,class:"datametria-upload__preview",alt:"preview"},null,8,ta)):e.createCommentVNode("",!0),e.createElementVNode("div",aa,[e.createElementVNode("span",la,e.toDisplayString(b.name),1),e.createElementVNode("span",oa,e.toDisplayString(y(b.size)),1)]),b.status==="uploading"?(e.openBlock(),e.createElementBlock("div",na,[e.createElementVNode("div",{class:"datametria-upload__progress-bar",style:e.normalizeStyle({width:`${b.progress}%`})},null,4)])):e.createCommentVNode("",!0),e.createElementVNode("button",{type:"button",class:"datametria-upload__remove",onClick:S=>h(b)}," × ",8,sa)]))),128))])):e.createCommentVNode("",!0)],2))}}),[["__scopeId","data-v-8fca6ff2"]]),ia=["placeholder","disabled","onKeydown"],ca=["onMousedown","onMouseenter"],da=["innerHTML"],ma=M(e.defineComponent({__name:"DatametriaAutocomplete",props:{modelValue:{default:""},fetchSuggestions:{},debounce:{default:300},triggerOnFocus:{type:Boolean,default:!1},placeholder:{default:""},disabled:{type:Boolean,default:!1}},emits:["update:modelValue","select"],setup(t,{emit:s}){const l=t,a=s,o=e.ref(),n=e.ref(),r=e.ref(l.modelValue),i=e.ref([]),m=e.ref(!1),p=e.ref(-1),C=e.ref(!1);let B=null;const _=e.computed(()=>{if(!o.value)return{};const z=o.value.getBoundingClientRect();return{position:"fixed",top:`${z.bottom+4}px`,left:`${z.left}px`,width:`${z.width}px`,zIndex:9999}}),$=()=>{a("update:modelValue",r.value),B&&clearTimeout(B),B=setTimeout(()=>{y()},l.debounce)},f=()=>{l.triggerOnFocus&&r.value&&y()},h=()=>{setTimeout(()=>{m.value=!1,p.value=-1},200)},y=async()=>{if(!r.value){i.value=[],m.value=!1;return}C.value=!0;try{const z=await l.fetchSuggestions(r.value);i.value=z,m.value=z.length>0,p.value=-1}catch{i.value=[],m.value=!1}finally{C.value=!1}},k=z=>{r.value=z,a("update:modelValue",z),a("select",z),m.value=!1,p.value=-1},g=()=>{p.value<i.value.length-1&&p.value++},b=()=>{p.value>0&&p.value--},S=()=>{p.value>=0&&p.value<i.value.length&&k(i.value[p.value])},D=z=>{if(!r.value)return z;const I=new RegExp(`(${w(r.value)})`,"gi");return z.replace(I,"<strong>$1</strong>")},w=z=>z.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return e.watch(()=>l.modelValue,z=>{z!==r.value&&(r.value=z)}),(z,I)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["datametria-autocomplete",{"datametria-autocomplete--disabled":t.disabled}])},[e.withDirectives(e.createElementVNode("input",{ref_key:"inputRef",ref:o,"onUpdate:modelValue":I[0]||(I[0]=E=>r.value=E),type:"text",class:"datametria-autocomplete__input",placeholder:t.placeholder,disabled:t.disabled,onInput:$,onFocus:f,onBlur:h,onKeydown:[e.withKeys(e.withModifiers(g,["prevent"]),["down"]),e.withKeys(e.withModifiers(b,["prevent"]),["up"]),e.withKeys(e.withModifiers(S,["prevent"]),["enter"])]},null,40,ia),[[e.vModelText,r.value]]),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[m.value&&i.value.length?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"dropdownRef",ref:n,class:"datametria-autocomplete__dropdown",style:e.normalizeStyle(_.value)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,(E,x)=>(e.openBlock(),e.createElementBlock("div",{key:x,class:e.normalizeClass(["datametria-autocomplete__item",{"datametria-autocomplete__item--active":x===p.value}]),onMousedown:e.withModifiers(d=>k(E),["prevent"]),onMouseenter:d=>p.value=x},[e.createElementVNode("span",{innerHTML:D(E)},null,8,da)],42,ca))),128))],4)):e.createCommentVNode("",!0)]))],2))}}),[["__scopeId","data-v-4155704e"]]),pa=M(e.defineComponent({__name:"DatametriaForm",props:{model:{default:()=>({})},rules:{default:()=>({})},labelWidth:{},labelPosition:{default:"right"},inline:{type:Boolean,default:!1}},emits:["validate","submit"],setup(t,{expose:s,emit:l}){const a=t,o=l,n=e.reactive(new Map),r=e.ref({}),i=f=>{n.set(f.prop,f)},m=f=>{n.delete(f)},p=async()=>{const f=[],h={};n.forEach(g=>{f.push(g.validate().then(b=>(!b&&g.errorMessage&&(h[g.prop]=[g.errorMessage]),b)))});const k=(await Promise.all(f)).every(g=>g);return r.value=h,o("validate",k,h),k},C=async f=>{const h=n.get(f);if(!h)return!0;const y=await h.validate();return!y&&h.errorMessage?r.value[f]=[h.errorMessage]:delete r.value[f],y},B=()=>{n.forEach(f=>{f.reset()}),r.value={}},_=f=>{if(!f){r.value={},n.forEach(y=>y.clearValidate());return}(Array.isArray(f)?f:[f]).forEach(y=>{delete r.value[y];const k=n.get(y);k&&k.clearValidate()})},$=async()=>{await p()&&o("submit",a.model)};return e.provide("datametriaForm",{model:a.model,rules:a.rules,labelWidth:a.labelWidth,labelPosition:a.labelPosition,registerField:i,unregisterField:m,validateField:C}),s({validate:p,validateField:C,resetFields:B,clearValidate:_}),(f,h)=>(e.openBlock(),e.createElementBlock("form",{class:e.normalizeClass(["datametria-form",{[`datametria-form--label-${t.labelPosi