@aotearoan/neon
Version:
Neon is a lightweight design library of Vue 3 components with minimal dependencies.
3 lines (2 loc) • 3.27 kB
JavaScript
;const t=require("./NeonDropdown.cjs.js"),o=require("vue"),a=require("../../../_virtual/_plugin-vue_export-helper.cjs.js"),s={ref:"dropdownButton"},p={key:0,class:"neon-dropdown__button-wrapper"},u=["id","tabindex"];function w(e,n,g,m,c,v){const d=o.resolveComponent("neon-button"),l=o.resolveComponent("neon-badge"),i=o.resolveComponent("neon-expansion-indicator");return o.openBlock(),o.createElementBlock("div",{class:o.normalizeClass([[{"neon-dropdown--with-indicator":e.indicator,"neon-dropdown--open":e.modelValue,"neon-dropdown--open-on-hover":e.openOnHover,"neon-dropdown--icon-only":e.icon&&!e.label,"neon-dropdown--disabled":e.disabled},`neon-dropdown--${e.size}`,`neon-dropdown--${e.color}`],"neon-dropdown"])},[o.createElementVNode("div",s,[o.renderSlot(e.$slots,"dropdown-button",{},()=>[e.isButtonStyle?(o.openBlock(),o.createElementBlock("div",p,[o.createVNode(d,{id:e.id,"alternate-color":e.alternateColor,"aria-expanded":e.modelValue,"button-style":e.dropdownStyle,color:e.dropdownStyle==="input"?"low-contrast":e.color,disabled:e.disabled,icon:e.icon,"icon-aria-label":e.iconAriaLabel,"icon-position":e.dropdownStyle==="input"?"right":"left",indicator:e.indicator,"indicator-expanded":e.modelValue,label:e.label,size:e.size,"aria-haspopup":"true",class:"neon-dropdown__button",onBlur:n[0]||(n[0]=r=>e.onBlur()),onFocus:n[1]||(n[1]=r=>e.onFocus()),onClickCapture:o.withModifiers(e.toggleOpen,["stop","prevent"]),onKeydownCapture:[o.withKeys(o.withModifiers(e.toggleOpen,["stop","prevent"]),["enter"]),o.withKeys(o.withModifiers(e.toggleOpen,["stop","prevent"]),["space"])]},null,8,["id","alternate-color","aria-expanded","button-style","color","disabled","icon","icon-aria-label","icon-position","indicator","indicator-expanded","label","size","onClickCapture","onKeydownCapture"])])):(o.openBlock(),o.createElementBlock("div",{key:1,id:e.id,ref:"dropdownButton",tabindex:e.disabled?void 0:0,class:"neon-dropdown__badge",role:"button",onClickCapture:n[2]||(n[2]=o.withModifiers((...r)=>e.toggleOpen&&e.toggleOpen(...r),["stop","prevent"])),onKeydownCapture:[n[3]||(n[3]=o.withKeys(o.withModifiers((...r)=>e.toggleOpen&&e.toggleOpen(...r),["stop","prevent"]),["enter"])),n[4]||(n[4]=o.withKeys(o.withModifiers((...r)=>e.toggleOpen&&e.toggleOpen(...r),["stop","prevent"]),["space"]))]},[o.createVNode(l,{"alternate-color":e.alternateColor,circular:e.dropdownStyle==="circular-badge",color:e.color,disabled:e.disabled,icon:e.icon,image:e.image,imageAlt:e.imageAlt,label:e.label,size:e.size},null,8,["alternate-color","circular","color","disabled","icon","image","imageAlt","label","size"]),e.indicator?(o.openBlock(),o.createBlock(i,{key:0,color:e.color,disabled:e.disabled,expanded:e.modelValue,class:"neon-button__indicator"},null,8,["color","disabled","expanded"])):o.createCommentVNode("",!0)],40,u))])],512),n[5]||(n[5]=o.createElementVNode("div",{class:"neon-dropdown__click-blocker"},null,-1)),o.withDirectives(o.createElementVNode("div",{ref:"dropdownContent",class:o.normalizeClass([`neon-dropdown__content--${e.dropdownPlacement}`,"neon-dropdown__content"])},[o.renderSlot(e.$slots,"default")],2),[[o.vShow,e.openOnHover||e.modelValue]])],2)}const b=a(t,[["render",w]]);module.exports=b;
//# sourceMappingURL=NeonDropdown.vue.cjs.js.map