{"version":3,"file":"row.mjs","sources":["../../../components/row/row.ts"],"sourcesContent":["import { computed, defineComponent, h, provide, reactive, toRef } from 'vue'\n\nimport { useNameHelper, useProps } from '@vexip-ui/config'\nimport { rowProps } from './props'\nimport { ROW_STATE } from './symbol'\n\nimport type { RowGridAlign, RowGridJustify, RowState } from './symbol'\n\nconst justifyList = Object.freeze<RowGridJustify[]>([\n  'start',\n  'end',\n  'center',\n  'space-around',\n  'space-between',\n  'space-evenly'\n])\nconst alignList = Object.freeze<RowGridAlign[]>(['top', 'middle', 'bottom', 'stretch'])\n\nexport default defineComponent({\n  name: 'Row',\n  props: rowProps,\n  setup(_props, { slots }) {\n    const props = useProps('row', _props, {\n      tag: 'div',\n      gap: 0,\n      justify: {\n        default: 'start',\n        validator: value => justifyList.includes(value)\n      },\n      align: {\n        default: 'top',\n        validator: value => alignList.includes(value)\n      },\n      columnFlex: false\n    })\n\n    const nh = useNameHelper('row')\n\n    const className = computed(() => {\n      return [\n        nh.b(),\n        nh.bs('vars'),\n        nh.bm(props.justify),\n        nh.bm(props.align),\n        {\n          [nh.bm('inherit')]: props.inherit\n        }\n      ]\n    })\n    const style = computed(() => {\n      if (!props.gap) return null\n\n      if (typeof props.gap === 'number') {\n        return {\n          [nh.cv('h-gap')]: `${props.gap}px`\n        }\n      }\n\n      if (Array.isArray(props.gap)) {\n        const [horizontal, vertical] = props.gap\n\n        return {\n          [nh.cv('h-gap')]: `${horizontal}px`,\n          [nh.cv('v-gap')]: `${vertical}px`\n        }\n      }\n\n      return null\n    })\n    const columnFlex = computed(() => {\n      if (props.columnFlex === true) {\n        return {\n          justify: 'start',\n          align: 'top'\n        }\n      } else if (props.columnFlex) {\n        return {\n          justify: 'start',\n          align: 'top',\n          ...props.columnFlex\n        }\n      }\n\n      return false\n    })\n\n    provide(\n      ROW_STATE,\n      reactive({\n        columnFlex,\n        gap: toRef(props, 'gap')\n      }) as RowState\n    )\n\n    return () =>\n      h(\n        props.tag || 'div',\n        {\n          class: className.value,\n          style: style.value\n        },\n        {\n          default: () => slots.default && slots.default()\n        }\n      )\n  }\n})\n"],"names":["justifyList","alignList","Row","defineComponent","rowProps","_props","slots","props","useProps","value","nh","useNameHelper","className","computed","style","horizontal","vertical","columnFlex","provide","ROW_STATE","reactive","toRef","h"],"mappings":";;;;AAQA,MAAMA,IAAc,OAAO,OAAyB;AAAA,EAClD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC,GACKC,IAAY,OAAO,OAAuB,CAAC,OAAO,UAAU,UAAU,SAAS,CAAC,GAEtFC,IAAeC,EAAgB;AAAA,EAC7B,MAAM;AAAA,EACN,OAAOC;AAAA,EACP,MAAMC,GAAQ,EAAE,OAAAC,KAAS;AACjB,UAAAC,IAAQC,EAAS,OAAOH,GAAQ;AAAA,MACpC,KAAK;AAAA,MACL,KAAK;AAAA,MACL,SAAS;AAAA,QACP,SAAS;AAAA,QACT,WAAW,CAAAI,MAAST,EAAY,SAASS,CAAK;AAAA,MAChD;AAAA,MACA,OAAO;AAAA,QACL,SAAS;AAAA,QACT,WAAW,CAAAA,MAASR,EAAU,SAASQ,CAAK;AAAA,MAC9C;AAAA,MACA,YAAY;AAAA,IAAA,CACb,GAEKC,IAAKC,EAAc,KAAK,GAExBC,IAAYC,EAAS,MAClB;AAAA,MACLH,EAAG,EAAE;AAAA,MACLA,EAAG,GAAG,MAAM;AAAA,MACZA,EAAG,GAAGH,EAAM,OAAO;AAAA,MACnBG,EAAG,GAAGH,EAAM,KAAK;AAAA,MACjB;AAAA,QACE,CAACG,EAAG,GAAG,SAAS,CAAC,GAAGH,EAAM;AAAA,MAAA;AAAA,IAE9B,CACD,GACKO,IAAQD,EAAS,MAAM;AACvB,UAAA,CAACN,EAAM,IAAY,QAAA;AAEnB,UAAA,OAAOA,EAAM,OAAQ;AAChB,eAAA;AAAA,UACL,CAACG,EAAG,GAAG,OAAO,CAAC,GAAG,GAAGH,EAAM,GAAG;AAAA,QAChC;AAGF,UAAI,MAAM,QAAQA,EAAM,GAAG,GAAG;AAC5B,cAAM,CAACQ,GAAYC,CAAQ,IAAIT,EAAM;AAE9B,eAAA;AAAA,UACL,CAACG,EAAG,GAAG,OAAO,CAAC,GAAG,GAAGK,CAAU;AAAA,UAC/B,CAACL,EAAG,GAAG,OAAO,CAAC,GAAG,GAAGM,CAAQ;AAAA,QAC/B;AAAA,MAAA;AAGK,aAAA;AAAA,IAAA,CACR,GACKC,IAAaJ,EAAS,MACtBN,EAAM,eAAe,KAChB;AAAA,MACL,SAAS;AAAA,MACT,OAAO;AAAA,IACT,IACSA,EAAM,aACR;AAAA,MACL,SAAS;AAAA,MACT,OAAO;AAAA,MACP,GAAGA,EAAM;AAAA,IACX,IAGK,EACR;AAED,WAAAW;AAAA,MACEC;AAAA,MACAC,EAAS;AAAA,QACP,YAAAH;AAAA,QACA,KAAKI,EAAMd,GAAO,KAAK;AAAA,MACxB,CAAA;AAAA,IACH,GAEO,MACLe;AAAA,MACEf,EAAM,OAAO;AAAA,MACb;AAAA,QACE,OAAOK,EAAU;AAAA,QACjB,OAAOE,EAAM;AAAA,MACf;AAAA,MACA;AAAA,QACE,SAAS,MAAMR,EAAM,WAAWA,EAAM,QAAQ;AAAA,MAAA;AAAA,IAElD;AAAA,EAAA;AAEN,CAAC;"}