{"version":3,"file":"use-first-element.mjs","sources":["../../../../packages/hooks/use-first-element.ts"],"sourcesContent":["import { onMounted, onUpdated, ref } from 'vue'\nimport { getFirstElementFromChildren } from '../utils/vue-utils'\nimport type { SlotChildren } from '../utils/types'\n\nexport const useFirstElement = () => {\n  const children: SlotChildren = {}\n  const firstElement = ref<HTMLElement>()\n\n  const getFirstElement = () => {\n    const element = getFirstElementFromChildren(children.value)\n    if (element !== firstElement.value) {\n      firstElement.value = element\n    }\n  }\n\n  onMounted(() => getFirstElement())\n\n  onUpdated(() => getFirstElement())\n\n  return {\n    children,\n    firstElement\n  }\n}\n"],"names":[],"mappings":";;;AAIO,MAAM,kBAAkB,MAAM;AACnC,EAAA,MAAM,WAAyB,EAAC,CAAA;AAChC,EAAA,MAAM,eAAe,GAAiB,EAAA,CAAA;AAEtC,EAAA,MAAM,kBAAkB,MAAM;AAC5B,IAAM,MAAA,OAAA,GAAU,2BAA4B,CAAA,QAAA,CAAS,KAAK,CAAA,CAAA;AAC1D,IAAI,IAAA,OAAA,KAAY,aAAa,KAAO,EAAA;AAClC,MAAA,YAAA,CAAa,KAAQ,GAAA,OAAA,CAAA;AAAA,KACvB;AAAA,GACF,CAAA;AAEA,EAAU,SAAA,CAAA,MAAM,iBAAiB,CAAA,CAAA;AAEjC,EAAU,SAAA,CAAA,MAAM,iBAAiB,CAAA,CAAA;AAEjC,EAAO,OAAA;AAAA,IACL,QAAA;AAAA,IACA,YAAA;AAAA,GACF,CAAA;AACF;;;;"}