{"version":3,"file":"Button.cjs","sources":["../../common/Button/Button.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed } from \"vue\";\n\nimport { cn } from \"../../utils\";\nimport { buttonVariants } from \"./helper\";\nimport { ButtonClassesKey, ButtonProps } from \"./types\";\n\nconst emits = defineEmits<{\n  (e: \"onClick\"): void;\n}>();\n\nconst {\n  size = \"md\",\n  variant = \"primary\",\n  block = false,\n  type = \"button\",\n  loading = false,\n  disabled = false,\n  rounded = false,\n  pill = false,\n  component = \"button\",\n  classes = {} as Partial<Record<ButtonClassesKey, string>>,\n  href = \"\",\n  loadingWithText = false,\n} = defineProps<ButtonProps>();\n\nconst element = computed(() => {\n  return href ? \"a\" : component;\n});\n</script>\n\n<template>\n  <component\n    :is=\"element\"\n    :class=\"[\n      cn(buttonVariants({ variant, size }), classes?.container || '', { 'w-full': block }, pill ? 'rounded-full' : 'rounded-md', {\n        'rounded-full aspect-square p-2': rounded,\n      }),\n    ]\"\n    :disabled=\"disabled || loading || loadingWithText\"\n    :type=\"type\"\n    :href=\"href\"\n    @click=\"!(loading || disabled || loadingWithText) && emits('onClick')\"\n  >\n    <span\n      v-if=\"loading || loadingWithText\"\n      :class=\"cn('loading-spinner loading h-6 w-auto max-h-[calc(100%-4px)] aspect-square', { 'mr-2': loadingWithText }, classes?.loader)\"\n    />\n    <slot v-if=\"!loading || loadingWithText\" />\n  </component>\n</template>\n\n<style scoped>\n.loading-spinner {\n  -webkit-mask-image: url(\"data:image/svg+xml,%3Csvg width='24' height='24' stroke='%23000' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cstyle%3E.spinner_V8m1%7Btransform-origin:center;animation:spinner_zKoa 2s linear infinite%7D.spinner_V8m1 circle%7Bstroke-linecap:round;animation:spinner_YpZS 1.5s ease-out infinite%7D%40keyframes spinner_zKoa%7B100%25%7Btransform:rotate(360deg)%7D%7D%40keyframes spinner_YpZS%7B0%25%7Bstroke-dasharray:0 150;stroke-dashoffset:0%7D47.5%25%7Bstroke-dasharray:42 150;stroke-dashoffset:-16%7D95%25%2C100%25%7Bstroke-dasharray:42 150;stroke-dashoffset:-59%7D%7D%3C%2Fstyle%3E%3Cg class='spinner_V8m1'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3'%3E%3C%2Fcircle%3E%3C%2Fg%3E%3C%2Fsvg%3E\");\n  mask-image: url(\"data:image/svg+xml,%3Csvg width='24' height='24' stroke='%23000' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cstyle%3E.spinner_V8m1%7Btransform-origin:center;animation:spinner_zKoa 2s linear infinite%7D.spinner_V8m1 circle%7Bstroke-linecap:round;animation:spinner_YpZS 1.5s ease-out infinite%7D%40keyframes spinner_zKoa%7B100%25%7Btransform:rotate(360deg)%7D%7D%40keyframes spinner_YpZS%7B0%25%7Bstroke-dasharray:0 150;stroke-dashoffset:0%7D47.5%25%7Bstroke-dasharray:42 150;stroke-dashoffset:-16%7D95%25%2C100%25%7Bstroke-dasharray:42 150;stroke-dashoffset:-59%7D%7D%3C%2Fstyle%3E%3Cg class='spinner_V8m1'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3'%3E%3C%2Fcircle%3E%3C%2Fg%3E%3C%2Fsvg%3E\");\n}\n.loading {\n  pointer-events: none;\n  display: inline-block;\n  background-color: currentColor;\n  -webkit-mask-size: 100%;\n  mask-size: 100%;\n  -webkit-mask-repeat: no-repeat;\n  mask-repeat: no-repeat;\n  -webkit-mask-position: center;\n  mask-position: center;\n}\n</style>\n"],"names":["emits","__emit","element","computed","__props","_openBlock","_createBlock","_resolveDynamicComponent","_normalizeClass","_unref","cn","buttonVariants","_createElementBlock","_renderSlot","_ctx"],"mappings":"4kBAOA,MAAMA,EAAQC,EAmBRC,EAAUC,EAAAA,SAAS,IAChBC,EAAA,KAAO,IAAMA,EAAA,SACrB,gBAICC,EAAAA,YAAAC,EAAAA,YAiBYC,EAAAA,wBAhBLL,EAAA,KAAO,EAAA,CACX,MAAKM,EAAAA,eAAA,CAAUC,EAAAA,MAAAC,EAAAA,EAAA,EAAGD,EAAAA,MAAAE,EAAAA,cAAA,EAAc,CAAA,QAAGP,EAAA,QAAO,KAAEA,EAAA,IAAA,CAAI,EAAKA,EAAA,SAAS,WAAS,GAAA,CAAA,SAAoBA,EAAA,KAAA,EAASA,EAAA,KAAI,eAAA,aAAA,kCAA8EA,EAAA,OAAA,KAKtL,SAAUA,EAAA,UAAYA,EAAA,SAAWA,EAAA,gBACjC,KAAMA,EAAA,KACN,KAAMA,EAAA,KACN,yBAASA,EAAA,SAAWA,YAAYA,EAAA,kBAAoBJ,EAAK,SAAA,EAAA,qBAE1D,IAGE,CAFMI,EAAA,SAAWA,EAAA,+BADnBQ,EAAAA,mBAGE,OAAA,OADC,uBAAOH,EAAAA,MAAAC,EAAAA,EAAA,EAAE,0EAAA,CAAA,OAAsFN,mBAAmBA,EAAA,SAAS,MAAM,CAAA,CAAA,uCAEvH,CAAAA,EAAA,SAAWA,EAAA,gBAAxBS,EAAAA,WAA2CC,EAAA,OAAA,UAAA,CAAA,IAAA,GAAA,OAAA,EAAA"}