{"version":3,"file":"Slot.cjs","sources":["../../src/Primitive/Slot.ts"],"sourcesContent":["import { cloneVNode, Comment, defineComponent, mergeProps } from 'vue'\nimport { renderSlotFragments } from '@/shared'\n\nexport const Slot = defineComponent({\n  name: 'PrimitiveSlot',\n  inheritAttrs: false,\n  setup(_, { attrs, slots }) {\n    return () => {\n      if (!slots.default)\n        return null\n\n      const childrens = renderSlotFragments(slots.default())\n      const firstNonCommentChildrenIndex = childrens.findIndex(child => child.type !== Comment)\n      if (firstNonCommentChildrenIndex === -1)\n        return childrens\n\n      const firstNonCommentChildren = childrens[firstNonCommentChildrenIndex]\n\n      // Remove props ref from being inferred\n      delete firstNonCommentChildren.props?.ref\n\n      // Manually merge props to ensure `firstNonCommentChildren.props`\n      // has higher priority than `attrs` and can override `attrs`.\n      // Otherwise `cloneVNode(firstNonCommentChildren, attrs)` will\n      // prioritize `attrs` and override `firstNonCommentChildren.props`.\n      const mergedProps = firstNonCommentChildren.props\n        ? mergeProps(attrs, firstNonCommentChildren.props)\n        : attrs\n      const cloned = cloneVNode({ ...firstNonCommentChildren, props: {} }, mergedProps)\n\n      if (childrens.length === 1)\n        return cloned\n\n      childrens[firstNonCommentChildrenIndex] = cloned\n      return childrens\n    }\n  },\n})\n"],"names":["defineComponent","renderSlotFragments","Comment","mergeProps","cloneVNode"],"mappings":";;;;;AAGO,MAAM,OAAOA,mBAAgB,CAAA;AAAA,EAClC,IAAM,EAAA,eAAA;AAAA,EACN,YAAc,EAAA,KAAA;AAAA,EACd,KAAM,CAAA,CAAA,EAAG,EAAE,KAAA,EAAO,OAAS,EAAA;AACzB,IAAA,OAAO,MAAM;AACX,MAAA,IAAI,CAAC,KAAM,CAAA,OAAA;AACT,QAAO,OAAA,IAAA;AAET,MAAA,MAAM,SAAY,GAAAC,8CAAA,CAAoB,KAAM,CAAA,OAAA,EAAS,CAAA;AACrD,MAAA,MAAM,+BAA+B,SAAU,CAAA,SAAA,CAAU,CAAS,KAAA,KAAA,KAAA,CAAM,SAASC,WAAO,CAAA;AACxF,MAAA,IAAI,4BAAiC,KAAA,EAAA;AACnC,QAAO,OAAA,SAAA;AAET,MAAM,MAAA,uBAAA,GAA0B,UAAU,4BAA4B,CAAA;AAGtE,MAAA,OAAO,wBAAwB,KAAO,EAAA,GAAA;AAMtC,MAAA,MAAM,cAAc,uBAAwB,CAAA,KAAA,GACxCC,eAAW,KAAO,EAAA,uBAAA,CAAwB,KAAK,CAC/C,GAAA,KAAA;AACJ,MAAM,MAAA,MAAA,GAASC,eAAW,EAAE,GAAG,yBAAyB,KAAO,EAAA,EAAG,EAAA,EAAG,WAAW,CAAA;AAEhF,MAAA,IAAI,UAAU,MAAW,KAAA,CAAA;AACvB,QAAO,OAAA,MAAA;AAET,MAAA,SAAA,CAAU,4BAA4B,CAAI,GAAA,MAAA;AAC1C,MAAO,OAAA,SAAA;AAAA,KACT;AAAA;AAEJ,CAAC;;;;"}