UNPKG

maz-ui

Version:

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

1 lines 2.93 kB
import{t as _plugin_vue_export_helper_default}from"./_plugin-vue_export-helper.ChmETRGw.js";import{useInstanceUniqId}from"../composables/useInstanceUniqId.js";import{t as MazExpandAnimation_default}from"./MazExpandAnimation.6QLQSLF9.js";import{t as MazCardSpotlight_default}from"./MazCardSpotlight.D-Rfazpm.js";import{Fragment,computed,createBlock,createElementBlock,createElementVNode,createVNode,defineComponent,normalizeClass,openBlock,ref,renderList,renderSlot,unref,useSlots,withCtx}from"vue";import{MazPlus}from"@maz-ui/icons/static/MazPlus";import '../assets/MazAccordion.DiiFPlOg.css';var _hoisted_1={class:`m-accordion m-reset-css`,role:`presentation`};var _hoisted_2=[`id`,`aria-controls`,`aria-expanded`,`onClick`];var MazAccordion_default=_plugin_vue_export_helper_default(defineComponent({__name:`MazAccordion`,props:{id:{default:()=>void 0},modelValue:{default:0},contentClass:{type:[Boolean,null,String,Object,Array],default:()=>void 0}},emits:[`update:model-value`],setup(__props,{emit:__emit}){let emits=__emit;let instanceId=useInstanceUniqId({componentName:`MazAccordion`,providedId:__props.id});let slots=useSlots();let stepCount=computed(()=>Object.keys(slots).filter(slot=>slot.startsWith(`title-`)).length);let localModelValue=ref(__props.modelValue);let currentStep=computed({get:()=>__props.modelValue||localModelValue.value,set:value=>{localModelValue.value=value,emits(`update:model-value`,value)}});function isStepOpen(index){return currentStep.value===index}function selectStep(index){currentStep.value===index?(localModelValue.value=0,emits(`update:model-value`,0)):(localModelValue.value=index,emits(`update:model-value`,index))}return(_ctx,_cache)=>(openBlock(),createElementBlock(`div`,_hoisted_1,[(openBlock(!0),createElementBlock(Fragment,null,renderList(stepCount.value,step=>(openBlock(),createBlock(MazCardSpotlight_default,{key:step,class:`m-accordion__spotlight`,padding:!1},{default:withCtx(()=>[createElementVNode(`button`,{id:`step-${step}-${unref(instanceId)}`,class:`m-accordion__header`,"aria-controls":`step-${step}-${unref(instanceId)}`,"aria-expanded":isStepOpen(step),onClick:$event=>selectStep(step)},[renderSlot(_ctx.$slots,`title-${step}`,{isOpen:isStepOpen(step)},void 0,!0),createVNode(unref(MazPlus),{class:normalizeClass([`header-icon`,{"--rotate":isStepOpen(step)}])},null,8,[`class`])],8,_hoisted_2),createVNode(MazExpandAnimation_default,{"animation-duration":`300ms`,"model-value":isStepOpen(step),"aria-labelledby":`step-${step}-${unref(instanceId)}`},{default:withCtx(()=>[createElementVNode(`div`,{class:normalizeClass([`m-accordion__content`,__props.contentClass])},[renderSlot(_ctx.$slots,`content`,{isOpen:isStepOpen(step)},void 0,!0),renderSlot(_ctx.$slots,`content-${step}`,{isOpen:isStepOpen(step)},void 0,!0)],2)]),_:2},1032,[`model-value`,`aria-labelledby`])]),_:2},1024))),128))]))}}),[[`__scopeId`,`data-v-437af55b`]]);export{MazAccordion_default as t};