vexip-ui
Version:
A Vue 3 UI library, Highly customizability, full TypeScript, performance pretty good
3 lines (2 loc) • 1.37 kB
JavaScript
"use strict";const e=require("vue"),d=require("@vexip-ui/hooks"),l=require("@vexip-ui/config"),p=require("./props.cjs"),m=require("./symbol.cjs"),f=e.defineComponent({name:"Bubble",__name:"bubble",props:p.bubbleProps,setup(a,{expose:c}){const u=a,o=l.useProps("bubble",u,{placement:{default:"right",validator:s=>d.placementWhileList.includes(s)},type:{default:null,validator:s=>m.bubbleTypes.includes(s)},background:"",shadow:!1,contentClass:null}),r=l.useNameHelper("bubble"),n=e.ref(),t=e.ref(),b=e.computed(()=>[r.b(),r.bs("vars"),r.bm(o.placement),{[r.bm("inherit")]:o.inherit,[r.bm("background")]:o.background,[r.bm("shadow")]:o.shadow,[r.bm(o.type)]:o.type!=="default"}]),i=e.computed(()=>{if(o.background)return{[r.cv("color")]:r.gnv("color-white"),[r.cv("bg-color")]:o.background}});return c({wrapper:n,arrow:t}),(s,h)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"wrapper",ref:n,class:e.normalizeClass(b.value),style:e.normalizeStyle(i.value)},[e.createElementVNode("div",{class:e.normalizeClass([e.unref(r).be("content"),e.unref(o).contentClass]),style:e.normalizeStyle({boxShadow:e.unref(o).shadow?`0 0 4px ${e.unref(o).shadow}`:void 0})},[e.renderSlot(s.$slots,"default")],6),e.createElementVNode("div",{ref_key:"arrow",ref:t,class:e.normalizeClass(e.unref(r).be("arrow"))},null,2)],6))}});module.exports=f;
//# sourceMappingURL=bubble.vue2.cjs.map