{"version":3,"file":"Primitive.js","sources":["../../src/Primitive/Primitive.ts"],"sourcesContent":["import type { Component, PropType } from 'vue'\nimport { defineComponent, h } from 'vue'\nimport { Slot } from './Slot'\n\nexport type AsTag =\n | 'a'\n | 'button'\n | 'div'\n | 'form'\n | 'h2'\n | 'h3'\n | 'img'\n | 'input'\n | 'label'\n | 'li'\n | 'nav'\n | 'ol'\n | 'p'\n | 'span'\n | 'svg'\n | 'ul'\n | 'template'\n | ({} & string) // any other string\n\nexport interface PrimitiveProps {\n /**\n * Change the default rendered element for the one passed as a child, merging their props and behavior.\n *\n * Read our [Composition](https://www.reka-ui.com/docs/guides/composition) guide for more details.\n */\n asChild?: boolean\n /**\n * The element or component this component should render as. Can be overwritten by `asChild`.\n * @defaultValue \"div\"\n */\n as?: AsTag | Component\n}\n\n// For self closing tags, don't provide default slots because of hydration issue\nconst SELF_CLOSING_TAGS = ['area', 'img', 'input']\n\nexport const Primitive = defineComponent({\n name: 'Primitive',\n inheritAttrs: false,\n props: {\n asChild: {\n type: Boolean,\n default: false,\n },\n as: {\n type: [String, Object] as PropType,\n default: 'div',\n },\n },\n setup(props, { attrs, slots }) {\n const asTag = props.asChild ? 'template' : props.as\n\n if (typeof asTag === 'string' && SELF_CLOSING_TAGS.includes(asTag))\n return () => h(asTag, attrs)\n\n if (asTag !== 'template')\n return () => h(props.as, attrs, { default: slots.default })\n\n return () => h(Slot, attrs, { default: slots.default })\n },\n})\n"],"names":[],"mappings":";;;AAuCA,MAAM,iBAAoB,GAAA,CAAC,MAAQ,EAAA,KAAA,EAAO,OAAO,CAAA;AAE1C,MAAM,YAAY,eAAgB,CAAA;AAAA,EACvC,IAAM,EAAA,WAAA;AAAA,EACN,YAAc,EAAA,KAAA;AAAA,EACd,KAAO,EAAA;AAAA,IACL,OAAS,EAAA;AAAA,MACP,IAAM,EAAA,OAAA;AAAA,MACN,OAAS,EAAA;AAAA,KACX;AAAA,IACA,EAAI,EAAA;AAAA,MACF,IAAA,EAAM,CAAC,MAAA,EAAQ,MAAM,CAAA;AAAA,MACrB,OAAS,EAAA;AAAA;AACX,GACF;AAAA,EACA,KAAM,CAAA,KAAA,EAAO,EAAE,KAAA,EAAO,OAAS,EAAA;AAC7B,IAAA,MAAM,KAAQ,GAAA,KAAA,CAAM,OAAU,GAAA,UAAA,GAAa,KAAM,CAAA,EAAA;AAEjD,IAAA,IAAI,OAAO,KAAA,KAAU,QAAY,IAAA,iBAAA,CAAkB,SAAS,KAAK,CAAA;AAC/D,MAAO,OAAA,MAAM,CAAE,CAAA,KAAA,EAAO,KAAK,CAAA;AAE7B,IAAA,IAAI,KAAU,KAAA,UAAA;AACZ,MAAO,OAAA,MAAM,EAAE,KAAM,CAAA,EAAA,EAAI,OAAO,EAAE,OAAA,EAAS,KAAM,CAAA,OAAA,EAAS,CAAA;AAE5D,IAAO,OAAA,MAAM,EAAE,IAAM,EAAA,KAAA,EAAO,EAAE,OAAS,EAAA,KAAA,CAAM,SAAS,CAAA;AAAA;AAE1D,CAAC;;;;"}