vexip-ui
Version:
A Vue 3 UI library, Highly customizability, full TypeScript, performance pretty good
3 lines (2 loc) • 1.18 kB
JavaScript
;const r=require("vue"),a=require("@vexip-ui/config"),p=require("./props.cjs"),f=require("./symbol.cjs"),d=Object.freeze(["start","end","center","space-around","space-between","space-evenly"]),g=Object.freeze(["top","middle","bottom","stretch"]),m=r.defineComponent({name:"Row",props:p.rowProps,setup(o,{slots:n}){const e=a.useProps("row",o,{tag:"div",gap:0,justify:{default:"start",validator:s=>d.includes(s)},align:{default:"top",validator:s=>g.includes(s)},columnFlex:!1}),t=a.useNameHelper("row"),u=r.computed(()=>[t.b(),t.bs("vars"),t.bm(e.justify),t.bm(e.align),{[t.bm("inherit")]:e.inherit}]),l=r.computed(()=>{if(!e.gap)return null;if(typeof e.gap=="number")return{[t.cv("h-gap")]:`${e.gap}px`};if(Array.isArray(e.gap)){const[s,c]=e.gap;return{[t.cv("h-gap")]:`${s}px`,[t.cv("v-gap")]:`${c}px`}}return null}),i=r.computed(()=>e.columnFlex===!0?{justify:"start",align:"top"}:e.columnFlex?{justify:"start",align:"top",...e.columnFlex}:!1);return r.provide(f.ROW_STATE,r.reactive({columnFlex:i,gap:r.toRef(e,"gap")})),()=>r.h(e.tag||"div",{class:u.value,style:l.value},{default:()=>n.default&&n.default()})}});module.exports=m;
//# sourceMappingURL=row.cjs.map