vexip-ui
Version:
A Vue 3 UI library, Highly customizability, full TypeScript, performance pretty good
3 lines (2 loc) • 1.99 kB
JavaScript
;const e=require("vue");require("../renderer/index.cjs");const c=require("@vexip-ui/config"),p=require("./props.cjs"),o=require("../renderer/renderer.cjs"),f=e.defineComponent({name:"Card",__name:"card",props:p.cardProps,setup(d){const u=d,r=c.useProps("card",u,{title:"",shadow:{default:"always",validator:s=>["always","hover","never"].includes(s)},contentStyle:()=>({}),slots:()=>({})}),l=e.useSlots(),t=c.useNameHelper("card"),i=e.computed(()=>[t.b(),t.bs("vars"),t.bm(`shadow-${r.shadow}`),{[t.bm("inherit")]:r.inherit}]),n=e.computed(()=>!!(l.title||r.title||r.slots.title)),a=e.computed(()=>!!(l.extra||r.slots.extra)),m=e.computed(()=>!!l.header||n.value||a.value);return(s,h)=>(e.openBlock(),e.createElementBlock("article",{class:e.normalizeClass(i.value)},[m.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(t).be("header"))},[e.renderSlot(s.$slots,"header",{},()=>[e.createVNode(e.unref(o),{renderer:e.unref(r).slots.header},{default:e.withCtx(()=>[n.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(t).be("title"))},[e.renderSlot(s.$slots,"title",{},()=>[e.createVNode(e.unref(o),{renderer:e.unref(r).slots.title},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(r).title),1)]),_:1},8,["renderer"])])],2)):e.createCommentVNode("",!0),a.value?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(e.unref(t).be("extra"))},[e.renderSlot(s.$slots,"extra",{},()=>[e.createVNode(e.unref(o),{renderer:e.unref(r).slots.extra},null,8,["renderer"])])],2)):e.createCommentVNode("",!0)]),_:3},8,["renderer"])])],2)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(e.unref(t).be("content")),style:e.normalizeStyle(e.unref(r).contentStyle)},[e.renderSlot(s.$slots,"default",{},()=>[e.createVNode(e.unref(o),{renderer:e.unref(r).slots.default},null,8,["renderer"])])],6)],2))}});module.exports=f;
//# sourceMappingURL=card.vue2.cjs.map