{"version":3,"file":"BAvatar-D7aFEXLH.mjs","names":[],"sources":["../src/components/BAvatar/BAvatar.vue","../src/components/BAvatar/BAvatar.vue","../src/components/BAvatar/BAvatarGroup.vue","../src/components/BAvatar/BAvatarGroup.vue"],"sourcesContent":["<template>\n  <component\n    :is=\"computedTag\"\n    class=\"b-avatar\"\n    :class=\"computedClasses\"\n    :style=\"computedStyle\"\n    v-bind=\"computedLinkProps\"\n    :type=\"props.button && !computedLink ? props.buttonType : undefined\"\n    :disabled=\"props.disabled || null\"\n    :variant=\"null\"\n    @click=\"clicked\"\n  >\n    <span v-if=\"hasDefaultSlot\" class=\"b-avatar-custom\">\n      <slot />\n    </span>\n    <span v-else-if=\"!!localSrc\" class=\"b-avatar-img\">\n      <img :src=\"localSrc\" :alt=\"props.alt\" @error=\"onImgError\" />\n    </span>\n    <span v-else-if=\"!!props.text\" class=\"b-avatar-text\" :style=\"textFontStyle\">\n      {{ props.text }}\n    </span>\n    <span v-else class=\"b-avatar-img\"\n      ><svg\n        xmlns=\"http://www.w3.org/2000/svg\"\n        width=\"80%\"\n        height=\"80%\"\n        fill=\"currentColor\"\n        class=\"bi bi-person-fill\"\n        viewBox=\"0 0 16 16\"\n      >\n        <path d=\"M3 14s-1 0-1-1 1-4 6-4 6 3 6 4-1 1-1 1zm5-6a3 3 0 1 0 0-6 3 3 0 0 0 0 6\" />\n      </svg>\n    </span>\n    <BBadge\n      v-if=\"showBadge\"\n      :pill=\"props.badgePill\"\n      :dot-indicator=\"props.badgeDotIndicator || badgeImplicitlyDot\"\n      :variant=\"props.badgeVariant\"\n      :bg-variant=\"props.badgeBgVariant\"\n      :text-variant=\"props.badgeTextVariant\"\n      :style=\"badgeStyle\"\n      :placement=\"props.badgePlacement\"\n    >\n      <slot name=\"badge\">\n        {{ badgeText }}\n      </slot>\n    </BBadge>\n  </component>\n</template>\n\n<script setup lang=\"ts\">\nimport {avatarGroupInjectionKey} from '../../utils/keys'\nimport {computed, type CSSProperties, inject, ref, type StyleValue, watch} from 'vue'\nimport type {BAvatarProps} from '../../types/ComponentProps'\nimport BLink from '../BLink/BLink.vue'\nimport BBadge from '../BBadge/BBadge.vue'\nimport {useBLinkHelper} from '../../composables/useBLinkHelper'\nimport {isEmptySlot} from '../../utils/dom'\nimport {useNumberishToStyle} from '../../composables/useNumberishToStyle'\nimport {useRadiusElementClasses} from '../../composables/useRadiusElementClasses'\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\nimport type {BAvatarEmits, BAvatarSlots, Size} from '../../types'\nimport {useDefaults} from '../../composables/useDefaults'\n\nconst _props = withDefaults(defineProps<BAvatarProps>(), {\n  alt: 'avatar',\n  badge: false,\n  badgeBgVariant: null,\n  badgeTextVariant: null,\n  badgeVariant: 'primary',\n  badgePlacement: 'bottom-end',\n  badgeDotIndicator: false,\n  badgePill: false,\n  button: false,\n  buttonType: 'button',\n  size: undefined,\n  square: false,\n  src: undefined,\n  text: undefined,\n  // Link props\n  variant: 'secondary',\n  // All others use defaults\n  active: undefined,\n  activeClass: undefined,\n  disabled: undefined,\n  exactActiveClass: undefined,\n  href: undefined,\n  opacity: undefined,\n  opacityHover: undefined,\n  rel: undefined,\n  replace: undefined,\n  stretched: false,\n  routerComponentName: undefined,\n  target: undefined,\n  underlineOffset: undefined,\n  underlineOffsetHover: undefined,\n  underlineOpacity: undefined,\n  underlineOpacityHover: undefined,\n  underlineVariant: undefined,\n  // End link props\n  // ColorExtendables props\n  // Variant is here as well\n  bgVariant: null,\n  textVariant: null,\n  // End ColorExtendables props\n  // RadiusElementExtendables props\n  rounded: 'circle',\n  roundedBottom: undefined,\n  roundedEnd: undefined,\n  roundedStart: undefined,\n  roundedTop: undefined,\n  // End RadiusElementExtendables props\n})\nconst props = useDefaults(_props, 'BAvatar')\nconst emit = defineEmits<BAvatarEmits>()\nconst slots = defineSlots<BAvatarSlots>()\n\nconst localSrc = ref(props.src)\nwatch(\n  () => props.src,\n  (value) => {\n    localSrc.value = value\n  }\n)\n\nconst {computedLink, computedLinkProps} = useBLinkHelper(props)\n\nconst parentData = inject(avatarGroupInjectionKey, null)\n\nconst SIZES = Object.freeze([\n  null,\n  ...Object.keys({\n    lg: null,\n    md: null,\n    sm: null,\n  } satisfies Record<Size, null>),\n] as (string | null)[])\nconst FONT_SIZE_SCALE = 0.4\nconst BADGE_FONT_SIZE_SCALE = FONT_SIZE_SCALE * 0.7\n\nconst hasDefaultSlot = computed(() => !isEmptySlot(slots.default))\nconst hasBadgeSlot = computed(() => !isEmptySlot(slots.badge))\n\nconst showBadge = computed(() => !!props.badge || props.badge === '' || hasBadgeSlot.value)\nconst computedSquare = computed(() => parentData?.square.value || props.square)\n\n// const computedPropSize = useNumberishToStyle(() => props.size)\n// const propSizeIsLiteralSize = (val: unknown): val is Size =>\n//   !!val && typeof val === 'string' && SIZES.includes(val)\n// const computedParentSize = useNumberishToStyle(() => parentData?.size.value)\n// const computedSize = computed(() => computedParentSize.value ?? computedPropSize.value)\n// const computedPropSizeIsLiteralSize = computed(() => propSizeIsLiteralSize(computedSize.value))\n\nconst computedSize = useNumberishToStyle(() => parentData?.size.value ?? props.size)\nconst computedSizeIsLiteralSize = computed(\n  () => !!computedSize.value && SIZES.includes(computedSize.value)\n)\n\nconst computedVariant = computed(() => parentData?.variant.value ?? props.variant)\nconst computedRounded = computed(() => parentData?.rounded.value ?? props.rounded)\nconst computedRoundedTop = computed(() => parentData?.roundedTop.value ?? props.roundedTop)\nconst computedRoundedBottom = computed(() => parentData?.roundedBottom.value ?? props.roundedBottom)\nconst computedRoundedStart = computed(() => parentData?.roundedStart.value ?? props.roundedStart)\nconst computedRoundedEnd = computed(() => parentData?.roundedEnd.value ?? props.roundedEnd)\n\nconst radiusElementClasses = useRadiusElementClasses(() => ({\n  rounded: computedRounded.value,\n  roundedTop: computedRoundedTop.value,\n  roundedBottom: computedRoundedBottom.value,\n  roundedStart: computedRoundedStart.value,\n  roundedEnd: computedRoundedEnd.value,\n}))\n\nconst badgeText = computed(() => (props.badge === true ? '' : props.badge))\nconst badgeImplicitlyDot = computed(() => !badgeText.value && !hasBadgeSlot.value)\n\nconst colorClasses = useColorVariantClasses(() => ({\n  bgVariant: parentData?.bgVariant.value ?? props.bgVariant,\n  textVariant: parentData?.textVariant.value ?? props.textVariant,\n  variant: computedVariant.value,\n}))\nconst computedClasses = computed(() => [\n  colorClasses.value,\n  // Square overwrites all else\n  computedSquare.value === true ? undefined : radiusElementClasses.value,\n  {\n    [`b-avatar-${computedSize.value}`]:\n      computedSizeIsLiteralSize.value && computedSize.value !== 'md',\n    [`btn-${computedVariant.value}`]: props.button ? computedVariant.value !== null : false,\n    'badge': !props.button && computedVariant.value !== null && hasDefaultSlot.value,\n    'btn': props.button,\n    // Square is the same as rounded-0 class\n    'rounded-0': computedSquare.value === true,\n  },\n])\n\nconst badgeStyle = computed<StyleValue>(() => ({\n  fontSize:\n    (!computedSizeIsLiteralSize.value\n      ? `calc(${computedSize.value} * ${BADGE_FONT_SIZE_SCALE})`\n      : '') || '',\n}))\n\nconst textFontStyle = computed<StyleValue>(() => {\n  const fontSize = !computedSizeIsLiteralSize.value\n    ? `calc(${computedSize.value} * ${FONT_SIZE_SCALE})`\n    : null\n  return fontSize ? {fontSize} : {}\n})\n\nconst marginStyle = computed(() => {\n  const overlapScale = parentData?.overlapScale?.value || 0\n\n  const value =\n    computedSize.value && overlapScale ? `calc(${computedSize.value} * -${overlapScale})` : null\n  return value ? {marginLeft: value, marginRight: value} : {}\n})\n\nconst computedTag = computed(() => (computedLink.value ? BLink : props.button ? 'button' : 'span'))\n\nconst computedStyle = computed<CSSProperties>(() => ({\n  ...marginStyle.value,\n  ...(!computedSizeIsLiteralSize.value\n    ? {\n        width: computedSize.value,\n        height: computedSize.value,\n      }\n    : undefined),\n}))\n\nconst clicked = (e: Readonly<MouseEvent>): void => {\n  if (!props.disabled && (computedLink.value || props.button)) emit('click', e)\n}\n\nconst onImgError = (e: Readonly<Event>) => {\n  localSrc.value = undefined\n  emit('img-error', e)\n}\n</script>\n","<template>\n  <component\n    :is=\"computedTag\"\n    class=\"b-avatar\"\n    :class=\"computedClasses\"\n    :style=\"computedStyle\"\n    v-bind=\"computedLinkProps\"\n    :type=\"props.button && !computedLink ? props.buttonType : undefined\"\n    :disabled=\"props.disabled || null\"\n    :variant=\"null\"\n    @click=\"clicked\"\n  >\n    <span v-if=\"hasDefaultSlot\" class=\"b-avatar-custom\">\n      <slot />\n    </span>\n    <span v-else-if=\"!!localSrc\" class=\"b-avatar-img\">\n      <img :src=\"localSrc\" :alt=\"props.alt\" @error=\"onImgError\" />\n    </span>\n    <span v-else-if=\"!!props.text\" class=\"b-avatar-text\" :style=\"textFontStyle\">\n      {{ props.text }}\n    </span>\n    <span v-else class=\"b-avatar-img\"\n      ><svg\n        xmlns=\"http://www.w3.org/2000/svg\"\n        width=\"80%\"\n        height=\"80%\"\n        fill=\"currentColor\"\n        class=\"bi bi-person-fill\"\n        viewBox=\"0 0 16 16\"\n      >\n        <path d=\"M3 14s-1 0-1-1 1-4 6-4 6 3 6 4-1 1-1 1zm5-6a3 3 0 1 0 0-6 3 3 0 0 0 0 6\" />\n      </svg>\n    </span>\n    <BBadge\n      v-if=\"showBadge\"\n      :pill=\"props.badgePill\"\n      :dot-indicator=\"props.badgeDotIndicator || badgeImplicitlyDot\"\n      :variant=\"props.badgeVariant\"\n      :bg-variant=\"props.badgeBgVariant\"\n      :text-variant=\"props.badgeTextVariant\"\n      :style=\"badgeStyle\"\n      :placement=\"props.badgePlacement\"\n    >\n      <slot name=\"badge\">\n        {{ badgeText }}\n      </slot>\n    </BBadge>\n  </component>\n</template>\n\n<script setup lang=\"ts\">\nimport {avatarGroupInjectionKey} from '../../utils/keys'\nimport {computed, type CSSProperties, inject, ref, type StyleValue, watch} from 'vue'\nimport type {BAvatarProps} from '../../types/ComponentProps'\nimport BLink from '../BLink/BLink.vue'\nimport BBadge from '../BBadge/BBadge.vue'\nimport {useBLinkHelper} from '../../composables/useBLinkHelper'\nimport {isEmptySlot} from '../../utils/dom'\nimport {useNumberishToStyle} from '../../composables/useNumberishToStyle'\nimport {useRadiusElementClasses} from '../../composables/useRadiusElementClasses'\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\nimport type {BAvatarEmits, BAvatarSlots, Size} from '../../types'\nimport {useDefaults} from '../../composables/useDefaults'\n\nconst _props = withDefaults(defineProps<BAvatarProps>(), {\n  alt: 'avatar',\n  badge: false,\n  badgeBgVariant: null,\n  badgeTextVariant: null,\n  badgeVariant: 'primary',\n  badgePlacement: 'bottom-end',\n  badgeDotIndicator: false,\n  badgePill: false,\n  button: false,\n  buttonType: 'button',\n  size: undefined,\n  square: false,\n  src: undefined,\n  text: undefined,\n  // Link props\n  variant: 'secondary',\n  // All others use defaults\n  active: undefined,\n  activeClass: undefined,\n  disabled: undefined,\n  exactActiveClass: undefined,\n  href: undefined,\n  opacity: undefined,\n  opacityHover: undefined,\n  rel: undefined,\n  replace: undefined,\n  stretched: false,\n  routerComponentName: undefined,\n  target: undefined,\n  underlineOffset: undefined,\n  underlineOffsetHover: undefined,\n  underlineOpacity: undefined,\n  underlineOpacityHover: undefined,\n  underlineVariant: undefined,\n  // End link props\n  // ColorExtendables props\n  // Variant is here as well\n  bgVariant: null,\n  textVariant: null,\n  // End ColorExtendables props\n  // RadiusElementExtendables props\n  rounded: 'circle',\n  roundedBottom: undefined,\n  roundedEnd: undefined,\n  roundedStart: undefined,\n  roundedTop: undefined,\n  // End RadiusElementExtendables props\n})\nconst props = useDefaults(_props, 'BAvatar')\nconst emit = defineEmits<BAvatarEmits>()\nconst slots = defineSlots<BAvatarSlots>()\n\nconst localSrc = ref(props.src)\nwatch(\n  () => props.src,\n  (value) => {\n    localSrc.value = value\n  }\n)\n\nconst {computedLink, computedLinkProps} = useBLinkHelper(props)\n\nconst parentData = inject(avatarGroupInjectionKey, null)\n\nconst SIZES = Object.freeze([\n  null,\n  ...Object.keys({\n    lg: null,\n    md: null,\n    sm: null,\n  } satisfies Record<Size, null>),\n] as (string | null)[])\nconst FONT_SIZE_SCALE = 0.4\nconst BADGE_FONT_SIZE_SCALE = FONT_SIZE_SCALE * 0.7\n\nconst hasDefaultSlot = computed(() => !isEmptySlot(slots.default))\nconst hasBadgeSlot = computed(() => !isEmptySlot(slots.badge))\n\nconst showBadge = computed(() => !!props.badge || props.badge === '' || hasBadgeSlot.value)\nconst computedSquare = computed(() => parentData?.square.value || props.square)\n\n// const computedPropSize = useNumberishToStyle(() => props.size)\n// const propSizeIsLiteralSize = (val: unknown): val is Size =>\n//   !!val && typeof val === 'string' && SIZES.includes(val)\n// const computedParentSize = useNumberishToStyle(() => parentData?.size.value)\n// const computedSize = computed(() => computedParentSize.value ?? computedPropSize.value)\n// const computedPropSizeIsLiteralSize = computed(() => propSizeIsLiteralSize(computedSize.value))\n\nconst computedSize = useNumberishToStyle(() => parentData?.size.value ?? props.size)\nconst computedSizeIsLiteralSize = computed(\n  () => !!computedSize.value && SIZES.includes(computedSize.value)\n)\n\nconst computedVariant = computed(() => parentData?.variant.value ?? props.variant)\nconst computedRounded = computed(() => parentData?.rounded.value ?? props.rounded)\nconst computedRoundedTop = computed(() => parentData?.roundedTop.value ?? props.roundedTop)\nconst computedRoundedBottom = computed(() => parentData?.roundedBottom.value ?? props.roundedBottom)\nconst computedRoundedStart = computed(() => parentData?.roundedStart.value ?? props.roundedStart)\nconst computedRoundedEnd = computed(() => parentData?.roundedEnd.value ?? props.roundedEnd)\n\nconst radiusElementClasses = useRadiusElementClasses(() => ({\n  rounded: computedRounded.value,\n  roundedTop: computedRoundedTop.value,\n  roundedBottom: computedRoundedBottom.value,\n  roundedStart: computedRoundedStart.value,\n  roundedEnd: computedRoundedEnd.value,\n}))\n\nconst badgeText = computed(() => (props.badge === true ? '' : props.badge))\nconst badgeImplicitlyDot = computed(() => !badgeText.value && !hasBadgeSlot.value)\n\nconst colorClasses = useColorVariantClasses(() => ({\n  bgVariant: parentData?.bgVariant.value ?? props.bgVariant,\n  textVariant: parentData?.textVariant.value ?? props.textVariant,\n  variant: computedVariant.value,\n}))\nconst computedClasses = computed(() => [\n  colorClasses.value,\n  // Square overwrites all else\n  computedSquare.value === true ? undefined : radiusElementClasses.value,\n  {\n    [`b-avatar-${computedSize.value}`]:\n      computedSizeIsLiteralSize.value && computedSize.value !== 'md',\n    [`btn-${computedVariant.value}`]: props.button ? computedVariant.value !== null : false,\n    'badge': !props.button && computedVariant.value !== null && hasDefaultSlot.value,\n    'btn': props.button,\n    // Square is the same as rounded-0 class\n    'rounded-0': computedSquare.value === true,\n  },\n])\n\nconst badgeStyle = computed<StyleValue>(() => ({\n  fontSize:\n    (!computedSizeIsLiteralSize.value\n      ? `calc(${computedSize.value} * ${BADGE_FONT_SIZE_SCALE})`\n      : '') || '',\n}))\n\nconst textFontStyle = computed<StyleValue>(() => {\n  const fontSize = !computedSizeIsLiteralSize.value\n    ? `calc(${computedSize.value} * ${FONT_SIZE_SCALE})`\n    : null\n  return fontSize ? {fontSize} : {}\n})\n\nconst marginStyle = computed(() => {\n  const overlapScale = parentData?.overlapScale?.value || 0\n\n  const value =\n    computedSize.value && overlapScale ? `calc(${computedSize.value} * -${overlapScale})` : null\n  return value ? {marginLeft: value, marginRight: value} : {}\n})\n\nconst computedTag = computed(() => (computedLink.value ? BLink : props.button ? 'button' : 'span'))\n\nconst computedStyle = computed<CSSProperties>(() => ({\n  ...marginStyle.value,\n  ...(!computedSizeIsLiteralSize.value\n    ? {\n        width: computedSize.value,\n        height: computedSize.value,\n      }\n    : undefined),\n}))\n\nconst clicked = (e: Readonly<MouseEvent>): void => {\n  if (!props.disabled && (computedLink.value || props.button)) emit('click', e)\n}\n\nconst onImgError = (e: Readonly<Event>) => {\n  localSrc.value = undefined\n  emit('img-error', e)\n}\n</script>\n","<template>\n  <component :is=\"props.tag\" class=\"b-avatar-group\" role=\"group\">\n    <div class=\"b-avatar-group-inner\" :style=\"paddingStyle\">\n      <slot />\n    </div>\n  </component>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, provide, type StyleValue, toRef} from 'vue'\nimport type {BAvatarGroupProps} from '../../types/ComponentProps'\nimport {avatarGroupInjectionKey} from '../../utils/keys'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useToNumber} from '@vueuse/core'\nimport {useNumberishToStyle} from '../../composables/useNumberishToStyle'\nimport type {BAvatarGroupSlots} from '../../types'\n\nconst _props = withDefaults(defineProps<BAvatarGroupProps>(), {\n  overlap: 0.3,\n  size: undefined,\n  square: false,\n  tag: 'div',\n  // RadiusElementExtendables props\n  rounded: 'circle',\n  roundedBottom: undefined,\n  roundedEnd: undefined,\n  roundedStart: undefined,\n  roundedTop: undefined,\n  // End RadiusElementExtendables props\n  // ColorExtendables props\n  bgVariant: null,\n  textVariant: null,\n  variant: null,\n  // End ColorExtendables props\n})\nconst props = useDefaults(_props, 'BAvatarGroup')\ndefineSlots<BAvatarGroupSlots>()\n\nconst overlapNumber = useToNumber(() => props.overlap)\n\nconst computedSize = useNumberishToStyle(() => props.size)\nconst overlapScale = computed(() => Math.min(Math.max(overlapNumber.value, 0), 1) / 2)\n\nconst paddingStyle = computed<StyleValue>(() => {\n  const value = computedSize.value ? `calc(${computedSize.value} * ${overlapScale.value})` : null\n  return value ? {paddingLeft: value, paddingRight: value} : {}\n})\n\nprovide(avatarGroupInjectionKey, {\n  overlapScale,\n  size: toRef(() => props.size),\n  square: toRef(() => props.square),\n  rounded: toRef(() => props.rounded),\n  roundedTop: toRef(() => props.roundedTop),\n  roundedBottom: toRef(() => props.roundedBottom),\n  roundedStart: toRef(() => props.roundedStart),\n  roundedEnd: toRef(() => props.roundedEnd),\n  variant: toRef(() => props.variant),\n  bgVariant: toRef(() => props.bgVariant),\n  textVariant: toRef(() => props.textVariant),\n})\n</script>\n","<template>\n  <component :is=\"props.tag\" class=\"b-avatar-group\" role=\"group\">\n    <div class=\"b-avatar-group-inner\" :style=\"paddingStyle\">\n      <slot />\n    </div>\n  </component>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, provide, type StyleValue, toRef} from 'vue'\nimport type {BAvatarGroupProps} from '../../types/ComponentProps'\nimport {avatarGroupInjectionKey} from '../../utils/keys'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useToNumber} from '@vueuse/core'\nimport {useNumberishToStyle} from '../../composables/useNumberishToStyle'\nimport type {BAvatarGroupSlots} from '../../types'\n\nconst _props = withDefaults(defineProps<BAvatarGroupProps>(), {\n  overlap: 0.3,\n  size: undefined,\n  square: false,\n  tag: 'div',\n  // RadiusElementExtendables props\n  rounded: 'circle',\n  roundedBottom: undefined,\n  roundedEnd: undefined,\n  roundedStart: undefined,\n  roundedTop: undefined,\n  // End RadiusElementExtendables props\n  // ColorExtendables props\n  bgVariant: null,\n  textVariant: null,\n  variant: null,\n  // End ColorExtendables props\n})\nconst props = useDefaults(_props, 'BAvatarGroup')\ndefineSlots<BAvatarGroupSlots>()\n\nconst overlapNumber = useToNumber(() => props.overlap)\n\nconst computedSize = useNumberishToStyle(() => props.size)\nconst overlapScale = computed(() => Math.min(Math.max(overlapNumber.value, 0), 1) / 2)\n\nconst paddingStyle = computed<StyleValue>(() => {\n  const value = computedSize.value ? `calc(${computedSize.value} * ${overlapScale.value})` : null\n  return value ? {paddingLeft: value, paddingRight: value} : {}\n})\n\nprovide(avatarGroupInjectionKey, {\n  overlapScale,\n  size: toRef(() => props.size),\n  square: toRef(() => props.square),\n  rounded: toRef(() => props.rounded),\n  roundedTop: toRef(() => props.roundedTop),\n  roundedBottom: toRef(() => props.roundedBottom),\n  roundedStart: toRef(() => props.roundedStart),\n  roundedEnd: toRef(() => props.roundedEnd),\n  variant: toRef(() => props.variant),\n  bgVariant: toRef(() => props.bgVariant),\n  textVariant: toRef(() => props.textVariant),\n})\n</script>\n"],"mappings":"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"}