{"version":3,"file":"AvatarFallback.cjs","sources":["../../src/Avatar/AvatarFallback.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { PrimitiveProps } from '@/Primitive'\nimport { isClient } from '@vueuse/shared'\nimport { useForwardExpose } from '@/shared'\n\nexport interface AvatarFallbackProps extends PrimitiveProps {\n  /** Useful for delaying rendering so it only appears for those with slower connections. */\n  delayMs?: number\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { ref, watchEffect } from 'vue'\nimport { Primitive } from '@/Primitive'\nimport { injectAvatarRootContext } from './AvatarRoot.vue'\n\nconst props = withDefaults(defineProps<AvatarFallbackProps>(), {\n  as: 'span',\n})\n\nconst rootContext = injectAvatarRootContext()\nuseForwardExpose()\n\nconst canRender = ref(props.delayMs === undefined)\n\nwatchEffect((onCleanup) => {\n  if (props.delayMs && isClient) {\n    const timerId = window.setTimeout(() => {\n      canRender.value = true\n    }, props.delayMs)\n\n    onCleanup(() => {\n      window.clearTimeout(timerId)\n    })\n  }\n})\n</script>\n\n<template>\n  <Primitive\n    v-if=\"canRender && rootContext.imageLoadingStatus.value !== 'loaded'\"\n    :as-child=\"asChild\"\n    :as=\"as\"\n  >\n    <slot />\n  </Primitive>\n</template>\n"],"names":["injectAvatarRootContext","useForwardExpose","ref","watchEffect","isClient"],"mappings":";;;;;;;;;;;;;;;;AAgBA,IAAA,MAAM,KAAQ,GAAA,OAAA;AAId,IAAA,MAAM,cAAcA,yCAAwB,EAAA;AAC5C,IAAiBC,wCAAA,EAAA;AAEjB,IAAA,MAAM,SAAY,GAAAC,OAAA,CAAI,KAAM,CAAA,OAAA,KAAY,MAAS,CAAA;AAEjD,IAAAC,eAAA,CAAY,CAAC,SAAc,KAAA;AACzB,MAAI,IAAA,KAAA,CAAM,WAAWC,eAAU,EAAA;AAC7B,QAAM,MAAA,OAAA,GAAU,MAAO,CAAA,UAAA,CAAW,MAAM;AACtC,UAAA,SAAA,CAAU,KAAQ,GAAA,IAAA;AAAA,SACpB,EAAG,MAAM,OAAO,CAAA;AAEhB,QAAA,SAAA,CAAU,MAAM;AACd,UAAA,MAAA,CAAO,aAAa,OAAO,CAAA;AAAA,SAC5B,CAAA;AAAA;AACH,KACD,CAAA;;;;;;;;;;;;;;;;;;"}