{"version":3,"file":"index.vue.mjs","sources":["../../../../../../components/badge/src/index.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { debugWarn, useNamespace } from '@fusion-ui-vue/utils'\nimport { css, styled, themePaletteColor, useColor } from '@fusion-ui-vue/theme'\nimport { computed } from 'vue'\nimport Typography from '../../typography'\nimport { badgeProps } from './badge'\n\nconst props = defineProps(badgeProps)\nconst ns = useNamespace('badge')\nconst $color = useColor(props, 'color', 'var(--md-sys-color-error)')\nconst $onColor = computed(() =>\n  themePaletteColor.includes(props.color as any)\n    ? `var(--md-sys-color-on-${props.color})`\n    : 'var(--md-sys-color-on-primary)'\n)\n\nconst translate = {\n  top: '-50%',\n  bottom: '50%',\n  right: '50%',\n  left: '-50%',\n}\n\nconst positionCss = computed(\n  () => css`\n    ${props.xAlign}: 0;\n    ${props.yAlign}: 0;\n    transform: scale(1)\n      translate(\n        ${props.overlap ? '0%' : (translate as any)[props.xAlign]},\n        ${props.overlap ? '0%' : (translate as any)[props.yAlign]}\n      );\n  `\n)\nconst BadgeTypography = computed(\n  () => styled(Typography, { color: $onColor.value })`\n    background-color: ${$color.value};\n    height: ${props.variant === 'dot' ? '8px' : '20px'};\n    min-width: ${props.variant === 'dot' ? '8px' : '20px'};\n    border-radius: 10px;\n    padding: ${props.variant === 'dot' ? '0' : '6px'} !important;\n  `\n)\n\nconst showTypography = computed(() => {\n  const { content, variant } = props\n  return variant === 'dot' || ['string', 'number'].includes(typeof content)\n})\nconst badegContent = computed(() => {\n  const { content, max } = props\n  if (!showTypography.value) {\n    return null\n  }\n\n  if (content && max) {\n    if (!['string', 'number'].includes(typeof content)) {\n      debugWarn(\n        '[Fusion UI]',\n        'props.content can only be \"string\" or \"number\" when set props.max'\n      )\n      return null\n    }\n    return max ? (+max < +content! ? `${max}+` : content) : content!\n  }\n\n  return content\n})\n\nconst CustomContent = styled(props.content as any)``\n</script>\n\n<template>\n  <span :class=\"ns.b()\">\n    <slot />\n    <badge-typography\n      v-if=\"showTypography\"\n      :class=\"[ns.m('icon'), positionCss]\"\n      variant=\"label.small\"\n    >\n      <template v-if=\"props.variant !== 'dot'\">\n        {{ badegContent }}\n      </template>\n    </badge-typography>\n    <custom-content v-else :class=\"[ns.m('icon'), positionCss]\" />\n  </span>\n</template>\n"],"names":["Typography"],"mappings":";;;;;;;;;;;;;;;;;;AAQM,IAAA,MAAA,EAAA,GAAK,aAAa,OAAO,CAAA,CAAA;AAC/B,IAAA,MAAM,MAAS,GAAA,QAAA,CAAS,KAAO,EAAA,OAAA,EAAS,2BAA2B,CAAA,CAAA;AACnE,IAAA,MAAM,QAAW,GAAA,QAAA;AAAA,MAAS,MACxB,kBAAkB,QAAS,CAAA,KAAA,CAAM,KAAY,CACzC,GAAA,CAAA,sBAAA,EAAyB,KAAM,CAAA,KAAK,CACpC,CAAA,CAAA,GAAA,gCAAA;AAAA,KACN,CAAA;AAEA,IAAA,MAAM,SAAY,GAAA;AAAA,MAChB,GAAK,EAAA,MAAA;AAAA,MACL,MAAQ,EAAA,KAAA;AAAA,MACR,KAAO,EAAA,KAAA;AAAA,MACP,IAAM,EAAA,MAAA;AAAA,KACR,CAAA;AAEA,IAAA,MAAM,WAAc,GAAA,QAAA;AAAA,MAClB,MAAM,GAAA,CAAA;AAAA,IAAA,EACF,MAAM,MAAM,CAAA;AAAA,IAAA,EACZ,MAAM,MAAM,CAAA;AAAA;AAAA;AAAA,QAAA,EAGR,MAAM,OAAU,GAAA,IAAA,GAAQ,SAAkB,CAAA,KAAA,CAAM,MAAM,CAAC,CAAA;AAAA,QAAA,EACvD,MAAM,OAAU,GAAA,IAAA,GAAQ,SAAkB,CAAA,KAAA,CAAM,MAAM,CAAC,CAAA;AAAA;AAAA,EAAA,CAAA;AAAA,KAGjE,CAAA;AACA,IAAA,MAAM,eAAkB,GAAA,QAAA;AAAA,MACtB,MAAM,MAAO,CAAAA,YAAA,EAAY,EAAE,KAAO,EAAA,QAAA,CAAS,OAAO,CAAA,CAAA;AAAA,sBAAA,EAC5B,OAAO,KAAK,CAAA;AAAA,YAAA,EACtB,KAAM,CAAA,OAAA,KAAY,KAAQ,GAAA,KAAA,GAAQ,MAAM,CAAA;AAAA,eAAA,EACrC,KAAM,CAAA,OAAA,KAAY,KAAQ,GAAA,KAAA,GAAQ,MAAM,CAAA;AAAA;AAAA,aAAA,EAE1C,KAAM,CAAA,OAAA,KAAY,KAAQ,GAAA,GAAA,GAAM,KAAK,CAAA;AAAA,EAAA,CAAA;AAAA,KAEpD,CAAA;AAEM,IAAA,MAAA,cAAA,GAAiB,SAAS,MAAM;AAC9B,MAAA,MAAA,EAAE,OAAS,EAAA,OAAA,EAAY,GAAA,KAAA,CAAA;AACtB,MAAA,OAAA,OAAA,KAAY,SAAS,CAAC,QAAA,EAAU,QAAQ,CAAE,CAAA,QAAA,CAAS,OAAO,OAAO,CAAA,CAAA;AAAA,KACzE,CAAA,CAAA;AACK,IAAA,MAAA,YAAA,GAAe,SAAS,MAAM;AAC5B,MAAA,MAAA,EAAE,OAAS,EAAA,GAAA,EAAQ,GAAA,KAAA,CAAA;AACrB,MAAA,IAAA,CAAC,eAAe,KAAO,EAAA;AAClB,QAAA,OAAA,IAAA,CAAA;AAAA,OACT;AAEA,MAAA,IAAI,WAAW,GAAK,EAAA;AACd,QAAA,IAAA,CAAC,CAAC,QAAU,EAAA,QAAQ,EAAE,QAAS,CAAA,OAAO,OAAO,CAAG,EAAA;AAClD,UAAA,SAAA;AAAA,YACE,aAAA;AAAA,YACA,mEAAA;AAAA,WACF,CAAA;AACO,UAAA,OAAA,IAAA,CAAA;AAAA,SACT;AACO,QAAA,OAAA,GAAA,GAAO,CAAC,GAAM,GAAA,CAAC,UAAW,CAAG,EAAA,GAAG,MAAM,OAAW,GAAA,OAAA,CAAA;AAAA,OAC1D;AAEO,MAAA,OAAA,OAAA,CAAA;AAAA,KACR,CAAA,CAAA;AAEK,IAAA,MAAA,aAAA,GAAgB,MAAO,CAAA,KAAA,CAAM,OAAc,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}