{"version":3,"file":"alert2.mjs","sources":["../../../../../../packages/components/alert/src/alert.vue"],"sourcesContent":["<template>\n  <transition :name=\"ns.b('fade')\">\n    <div\n      v-show=\"visible\"\n      :class=\"[ns.b(), ns.m(type), ns.is('center', center), ns.is(effect)]\"\n      role=\"alert\"\n      data-test-name=\"alert\"\n      :data-test-variant=\"type\"\n      :data-test-state=\"[center && 'center'].join('-')\"\n    >\n      <b-icon v-if=\"showIcon && iconComponent\" :class=\"iconClass\">\n        <component :is=\"iconComponent\" />\n      </b-icon>\n\n      <div :class=\"[ns.e('content')]\">\n        <span\n          v-if=\"title || $slots.title\"\n          :class=\"[ns.e('title'), isBoldTitle]\"\n        >\n          <slot name=\"title\">{{ title }}</slot>\n        </span>\n        <p v-if=\"$slots.default || description\" :class=\"ns.e('description')\">\n          <slot>\n            {{ description }}\n          </slot>\n        </p>\n      </div>\n      <template v-if=\"closable\">\n        <div\n          v-if=\"closeText\"\n          :class=\"[ns.e('close-btn'), ns.is('customed')]\"\n          @click=\"close\"\n        >\n          {{ closeText }}\n        </div>\n        <div v-else :class=\"ns.e('close-btn')\">\n          <b-icon @click=\"close\">\n            <Close />\n          </b-icon>\n        </div>\n      </template>\n    </div>\n  </transition>\n</template>\n<script lang=\"ts\" setup>\nimport { computed, ref, useSlots } from 'vue'\nimport { BIcon } from '@bigin/components/icon'\nimport { TypeComponents, TypeComponentsMap } from '@bigin/utils'\nimport { useNamespace } from '@bigin/hooks'\nimport { alertEmits, alertProps } from './alert'\n\nconst { Close } = TypeComponents\n\ndefineOptions({\n  name: 'BAlert',\n})\n\nconst props = defineProps(alertProps)\nconst emit = defineEmits(alertEmits)\nconst slots = useSlots()\n\nconst ns = useNamespace('alert')\n\nconst visible = ref(true)\n\nconst iconComponent = computed(\n  () => TypeComponentsMap[props.type] || TypeComponentsMap['info']\n)\n\nconst iconClass = computed(() => [\n  ns.e('icon'),\n  { [ns.is('big')]: !!props.description || !!slots.default },\n])\n\nconst isBoldTitle = computed(() => {\n  return { [ns.is('bold')]: props.description || slots.default }\n})\n\nconst close = (evt: MouseEvent) => {\n  visible.value = false\n  emit('close', evt)\n}\n</script>\n"],"names":[],"mappings":";;;;;;;;;;mCAqDc,CAAA;AAAA,EACZ,IAAM,EAAA,QAAA;AACR,CAAA,CAAA,CAAA;;;;;;;AAJM,IAAA,MAAA,EAAE,OAAU,GAAA,cAAA,CAAA;AAQlB,IAAA,MAAM,QAAQ,QAAS,EAAA,CAAA;AAEjB,IAAA,MAAA,EAAA,GAAK,aAAa,OAAO,CAAA,CAAA;AAEzB,IAAA,MAAA,OAAA,GAAU,IAAI,IAAI,CAAA,CAAA;AAExB,IAAA,MAAM,aAAgB,GAAA,QAAA;AAAA,MACpB,MAAM,iBAAA,CAAkB,KAAM,CAAA,IAAA,CAAA,IAAS,iBAAkB,CAAA,MAAA,CAAA;AAAA,KAC3D,CAAA;AAEM,IAAA,MAAA,SAAA,GAAY,SAAS,MAAM;AAAA,MAC/B,EAAA,CAAG,EAAE,MAAM,CAAA;AAAA,MACX,EAAE,CAAC,EAAG,CAAA,EAAA,CAAG,KAAK,CAAA,GAAI,CAAC,CAAC,KAAM,CAAA,WAAA,IAAe,CAAC,CAAC,MAAM,OAAQ,EAAA;AAAA,KAC1D,CAAA,CAAA;AAEK,IAAA,MAAA,WAAA,GAAc,SAAS,MAAM;AAC1B,MAAA,OAAA,EAAE,CAAC,EAAG,CAAA,EAAA,CAAG,MAAM,CAAI,GAAA,KAAA,CAAM,WAAe,IAAA,KAAA,CAAM,OAAQ,EAAA,CAAA;AAAA,KAC9D,CAAA,CAAA;AAEK,IAAA,MAAA,KAAA,GAAQ,CAAC,GAAoB,KAAA;AACjC,MAAA,OAAA,CAAQ,KAAQ,GAAA,KAAA,CAAA;AAChB,MAAA,IAAA,CAAK,SAAS,GAAG,CAAA,CAAA;AAAA,KACnB,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}