{"version":3,"file":"Badge.cjs","sources":["../../common/Badge/Badge.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, VNode } from \"vue\";\n\nimport { Icon } from \"../Icon\";\nimport { BadgeClassesKey, BadgeProps } from \"./types\";\n\ndefineSlots<{\n  default(): VNode;\n  dismissibleIcon(): VNode;\n}>();\n\nconst {\n  size = \"small\",\n  variant = \"default\",\n  pill = false,\n  border = false,\n  clearIcon = false,\n  component = \"span\",\n  id = \"\",\n  classes = {} as Partial<Record<BadgeClassesKey, string>>,\n} = defineProps<BadgeProps>();\n\nconst emits = defineEmits<{\n  (e: \"onClear\"): void;\n}>();\n\nconst element = computed(() => {\n  return component;\n});\n</script>\n\n<template>\n  <component\n    :is=\"element\"\n    :id=\"id\"\n    :class=\"[\n      'badge',\n      `badge-${size}`,\n      `badge-${variant}`,\n      `rounded-${pill ? 'full' : 'md'}`,\n      border && `badge-${variant}-border`,\n      classes?.container,\n    ]\"\n    role=\"status\"\n  >\n    <slot />\n    <button\n      v-if=\"clearIcon\"\n      type=\"button\"\n      :class=\"['ml-2 inline-flex items-center rounded-sm bg-transparent p-0.5 text-sm', classes?.clearIcon]\"\n      :data-dismiss-target=\"`#${id || `badge-dismiss-${variant}`}`\"\n      aria-label=\"Remove\"\n      @click=\"emits('onClear')\"\n    >\n      <Icon v-if=\"!$slots?.dismissibleIcon\" name=\"x-solid-icon\" size=\"15\" class=\"w-[15px]\" />\n      <span class=\"sr-only\">Remove badge</span>\n      <template v-if=\"$slots?.dismissibleIcon\">\n        <slot name=\"dismissibleIcon\" />\n      </template>\n    </button>\n  </component>\n</template>\n\n<style scoped>\n@reference \"../../styles/main.css\";\n\n.badge {\n  @apply text-xs font-medium border-0 inline-flex items-center;\n}\n.badge-large {\n  @apply py-0.5 px-3 text-xs;\n  height: 25px;\n}\n.badge-small {\n  @apply py-0.5 px-2.5 text-xs;\n  height: 22px;\n}\n.badge-info {\n  @apply bg-app-primary-100 text-app-primary-800\n  dark:bg-app-primary-900 dark:text-app-primary-400 dark:border dark:border-app-primary-400;\n}\n.badge-danger {\n  @apply bg-app-red-100 text-app-red-800\n  dark:bg-app-gray-700 dark:text-app-red-400 dark:border dark:border-app-red-400;\n}\n.badge-default {\n  @apply bg-app-gray-100 text-app-gray-900\n  dark:bg-app-gray-700 dark:text-app-gray-300 dark:border dark:border-app-gray-500;\n}\n.badge-warning {\n  @apply bg-app-yellow-100 text-app-yellow-800\n  dark:bg-app-gray-700 dark:text-app-yellow-300 dark:border dark:border-app-yellow-300;\n}\n.badge-success {\n  @apply bg-app-green-100 text-app-green-800\n  dark:bg-app-gray-700 dark:text-app-green-400 dark:border dark:border-app-green-400;\n}\n.badge-info-border {\n  @apply border border-app-primary-400;\n}\n.badge-danger-border {\n  @apply border border-app-red-400;\n}\n.badge-default-border {\n  @apply border border-app-gray-500;\n}\n.badge-warning-border {\n  @apply border border-app-yellow-400;\n}\n.badge-success-border {\n  @apply border border-app-green-400;\n}\n</style>\n"],"names":["emits","__emit","element","computed","__props","_openBlock","_createBlock","_resolveDynamicComponent","_normalizeClass","_renderSlot","_ctx","_createElementBlock","$slots","_unref","Icon","_cache","_createElementVNode"],"mappings":"weAsBA,MAAMA,EAAQC,EAIRC,EAAUC,EAAAA,SAAS,IAChBC,EAAA,SACR,gBAICC,EAAAA,YAAAC,EAAAA,YA4BYC,EAAAA,wBA3BLL,EAAA,KAAO,EAAA,CACX,GAAIE,EAAA,GACJ,MAAKI,EAAAA,eAAA,kBAAkCJ,EAAA,IAAI,YAAmBA,EAAA,OAAO,cAAqBA,EAAA,KAAI,OAAA,IAAA,GAA0BA,EAAA,iBAAmBA,EAAA,OAAO,UAAiBA,EAAA,SAAS,SAAA,GAQ7K,KAAK,QAAA,qBAEL,IAAQ,CAARK,EAAAA,WAAQC,EAAA,OAAA,UAAA,CAAA,EAAA,OAAA,EAAA,EAEAN,EAAA,yBADRO,EAAAA,mBAaS,SAAA,OAXP,KAAK,SACJ,MAAKH,EAAAA,eAAA,CAAA,wEAA4EJ,EAAA,SAAS,SAAS,CAAA,EACnG,sBAAmB,IAAMA,EAAA,IAAE,iBAAqBA,EAAA,OAAO,EAAA,GACxD,aAAW,SACV,uBAAOJ,EAAK,SAAA,EAAA,GAEAY,EAAAA,QAAQ,2DAArBN,cAAuFO,EAAAA,MAAAC,EAAAA,SAAA,EAAA,OAAjD,KAAK,eAAe,KAAK,KAAK,MAAM,UAAA,IAC1EC,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,EAAAA,mBAAyC,OAAA,CAAnC,MAAM,SAAA,EAAU,eAAY,EAAA,GAClBJ,EAAAA,QAAQ,gBACtBH,EAAAA,WAA+BC,EAAA,OAAA,kBAAA,CAAA,IAAA,CAAA,EAAA,OAAA,EAAA"}