UNPKG

maz-ui

Version:

A standalone components library for Vue.Js 3 & Nuxt.Js 3

1 lines 4.48 kB
import{t as _plugin_vue_export_helper_default}from"./_plugin-vue_export-helper.ChmETRGw.js";import{t as hasSlotContent}from"./hasSlotContent.akaXJLAp.js";import{t as getColor}from"./types.CpBj759L.js";import{t as resolveLinkComponent}from"./resolveLinkComponent.BkamYM5e.js";import{computed,createBlock,createCommentVNode,createElementBlock,createTextVNode,createVNode,defineAsyncComponent,defineComponent,normalizeClass,normalizeStyle,openBlock,renderSlot,resolveDynamicComponent,toDisplayString,unref,useAttrs,withCtx}from"vue";import '../assets/MazBtn.BB4nFlR1.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:{default:`md`},color:{default:`primary`},type:{default:`button`},roundedSize:{default:`base`},outlined:{type:Boolean},pastel:{type:Boolean},block:{type:Boolean},loading:{type:Boolean},disabled:{type:Boolean},fab:{type:Boolean},icon:{type:[String,Function,Object]},leftIcon:{type:[String,Function,Object]},rightIcon:{type:[String,Function,Object]},padding:{type:Boolean,default:!0},justify:{default:`center`},active:{type:Boolean}},setup(__props){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`})[__props.size]||`lg`);let btnStyle=computed(()=>{let c=resolvedColor.value;let base={"--m-btn-justify":__props.justify};if(c===`transparent`||c===`surface`)return base;let pastelFg=c===`contrast`?`contrast-foreground`:`${c}-700`;return{...base,"--m-btn-bg":`var(--maz-${c})`,"--m-btn-fg":`var(--maz-${c}-foreground)`,"--m-btn-bg-hover":`var(--maz-${c}-600)`,"--m-btn-bg-active":`var(--maz-${c}-700)`,"--m-btn-bd-light":`var(--maz-${c}-200)`,"--m-btn-bd-dark":`var(--maz-${c}-700)`,...__props.pastel&&{"--m-btn-pastel-bg":`var(--maz-${c}-50)`,"--m-btn-pastel-fg":`var(--maz-${pastelFg})`}}});return(_ctx,_cache)=>(openBlock(),createBlock(resolveDynamicComponent(component.value),{disabled:isDisabled.value,class:normalizeClass([`m-btn m-reset-css`,[`--${__props.size}`,`--${resolvedColor.value}`,!__props.fab&&__props.roundedSize&&`--rounded-${__props.roundedSize}`,{"--outlined":__props.outlined,"--pastel":__props.pastel,"--block":__props.block,"--fab":__props.fab,"--loading":__props.loading,"--active":__props.active,"--no-padding":!__props.padding,"--has-left-icon":!!__props.leftIcon||unref(hasSlotContent)(_ctx.$slots[`left-icon`]),"--has-right-icon":!!__props.rightIcon||unref(hasSlotContent)(_ctx.$slots[`right-icon`])}]]),style:normalizeStyle(btnStyle.value),type:btnType.value},{default:withCtx(()=>[renderSlot(_ctx.$slots,`left-icon`,{},()=>[typeof __props.leftIcon==`string`?(openBlock(),createBlock(unref(MazIcon),{key:0,name:__props.leftIcon,size:iconSize.value},null,8,[`name`,`size`])):__props.leftIcon?(openBlock(),createBlock(unref(MazIcon),{key:1,icon:__props.leftIcon,size:iconSize.value},null,8,[`icon`,`size`])):createCommentVNode(``,!0)],!0),renderSlot(_ctx.$slots,`icon`,{},()=>[typeof __props.icon==`string`?(openBlock(),createBlock(unref(MazIcon),{key:0,name:__props.icon,size:iconSize.value},null,8,[`name`,`size`])):__props.icon?(openBlock(),createBlock(unref(MazIcon),{key:1,icon:__props.icon,size:iconSize.value},null,8,[`icon`,`size`])):createCommentVNode(``,!0)],!0),renderSlot(_ctx.$slots,`default`,{},()=>[createTextVNode(toDisplayString(__props.text),1)],!0),renderSlot(_ctx.$slots,`right-icon`,{},()=>[typeof __props.rightIcon==`string`?(openBlock(),createBlock(unref(MazIcon),{key:0,name:__props.rightIcon,size:iconSize.value},null,8,[`name`,`size`])):__props.rightIcon?(openBlock(),createBlock(unref(MazIcon),{key:1,icon:__props.rightIcon,size:iconSize.value},null,8,[`icon`,`size`])):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-0066a87e`]]);export{MazBtn_default as t};