{"version":3,"file":"slot.mjs","sources":["../src/slot/Slot.ts"],"sourcesContent":["import { cloneVNode, Comment, defineComponent, type VNode, warn } from 'vue'\nimport { getRawChildren } from '../shared/index.ts'\n\nexport const Slot = defineComponent({\n  name: 'Slot',\n  setup(_, { slots, attrs }) {\n    return () => {\n      if (!slots.default)\n        return null\n\n      const children = slots.default && getRawChildren(slots.default())\n\n      if (!children || !children.length)\n        return null\n\n      let child: VNode | undefined = children[0]\n\n      if (children.length > 1) {\n        let hasFound = false\n        // locate first non-comment child\n        for (const c of children) {\n          if (c.type !== Comment) {\n            if (__DEV__ && hasFound) {\n              // warn more than one non-comment child\n              warn(\n                '<Slot> can only be used on a single element or component.',\n              )\n              break\n            }\n            child = c\n            hasFound = true\n            if (!__DEV__)\n              break\n          }\n        }\n      }\n\n      if (child && child.type !== Comment) {\n        return cloneVNode(child, attrs, true)\n      }\n\n      return null\n    }\n  },\n})\n"],"names":[],"mappings":";;;AAGO,MAAM,OAAO,eAAgB,CAAA;AAAA,EAClC,IAAM,EAAA,MAAA;AAAA,EACN,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,WAAW,KAAM,CAAA,OAAA,IAAW,cAAe,CAAA,KAAA,CAAM,SAAS,CAAA;AAEhE,MAAI,IAAA,CAAC,QAAY,IAAA,CAAC,QAAS,CAAA,MAAA;AACzB,QAAO,OAAA,IAAA;AAET,MAAI,IAAA,KAAA,GAA2B,SAAS,CAAC,CAAA;AAEzC,MAAI,IAAA,QAAA,CAAS,SAAS,CAAG,EAAA;AACvB,QAAA,IAAI,QAAW,GAAA,KAAA;AAEf,QAAA,KAAA,MAAW,KAAK,QAAU,EAAA;AACxB,UAAI,IAAA,CAAA,CAAE,SAAS,OAAS,EAAA;AACtB,YAAA,IAAI,WAAW,QAAU,EAAA;AAEvB,cAAA,IAAA;AAAA,gBACE;AAAA,eACF;AACA,cAAA;AAAA;AAEF,YAAQ,KAAA,GAAA,CAAA;AACR,YAAW,QAAA,GAAA,IAAA;AACX,YAAA,IAAI,CAAC,OAAA;AACH,cAAA;AAAA;AACJ;AACF;AAGF,MAAI,IAAA,KAAA,IAAS,KAAM,CAAA,IAAA,KAAS,OAAS,EAAA;AACnC,QAAO,OAAA,UAAA,CAAW,KAAO,EAAA,KAAA,EAAO,IAAI,CAAA;AAAA;AAGtC,MAAO,OAAA,IAAA;AAAA,KACT;AAAA;AAEJ,CAAC;;;;"}