{"version":3,"file":"btn.umd.cjs","sources":["../src/Btn.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { Sizeable } from '@vue-interface/sizeable';\nimport { Variant } from '@vue-interface/variant';\nimport { defineComponent } from 'vue';\n\nexport default defineComponent({\n\n    mixins: [\n        Sizeable,\n        Variant,\n    ],\n\n    props: {\n        /**\n         * Display button with active state.\n         */\n        active: Boolean,\n\n        /**\n         * Display button with blocked state.\n         */\n        block: Boolean,\n\n        /**\n         * The component prefix.\n         */\n        componentPrefix: {\n            type: String,\n            default: 'btn'\n        },\n\n        /**\n         * Disable the button.\n         */\n        disabled: Boolean,\n\n        /**\n         */\n        label: String,\n\n        /**\n         * Display as an outline button.\n         */\n        outline: Boolean,\n\n        /**\n         * The HTML tag.\n         */\n        tag: String,\n\n        /**\n         * The button variant.\n         */\n        variant: {\n            type: String,\n            default: 'primary'\n        },\n    },\n\n    computed: {\n\n        /**\n         * Get the button classes.\n         */\n        classes(): string|undefined[] {\n            return [\n                'btn',\n                this.variantClass,\n                this.sizeableClass,\n                this.active && 'active',\n                this.block && 'btn-block',\n                this.disabled && 'disabled',\n            ];\n        },\n\n        /**\n         * Get the component tag name.\n         */\n        component(): string {\n            if(this.tag) {\n                return this.tag;\n            }\n\n            if(this.$attrs.href) {\n                return 'a';\n            }\n\n            return 'button';\n        },\n\n        /**\n         * The variant class prefix that accounts for outline buttons.\n         */\n        variantClassPrefix(): string {\n            return (this.variantPrefix || this.componentPrefix) + (this.outline ? '-outline' : '');\n        }\n\n    }\n\n});\n</script>\n\n<template>\n    <Component\n        :is=\"component\"\n        v-bind=\"$attrs\"\n        :disabled=\"disabled\"\n        :class=\"classes\"\n        role=\"button\">\n        <slot>{{ label }}</slot>\n    </Component>\n</template>\n"],"names":["_sfc_main","defineComponent","Sizeable","Variant","_sfc_render","_ctx","_cache","$props","$setup","$data","$options","_openBlock","_createBlock","_resolveDynamicComponent","_mergeProps","_withCtx"],"mappings":"iaAKA,MAAAA,EAAeC,kBAAgB,CAE3B,OAAQ,CACJC,EAAA,SACAC,EAAA,OACJ,EAEA,MAAO,CAIH,OAAQ,QAKR,MAAO,QAKP,gBAAiB,CACb,KAAM,OACN,QAAS,KACb,EAKA,SAAU,QAIV,MAAO,OAKP,QAAS,QAKT,IAAK,OAKL,QAAS,CACL,KAAM,OACN,QAAS,SACb,CACJ,EAEA,SAAU,CAKN,SAA8B,CACnB,MAAA,CACH,MACA,KAAK,aACL,KAAK,cACL,KAAK,QAAU,SACf,KAAK,OAAS,YACd,KAAK,UAAY,UAAA,CAEzB,EAKA,WAAoB,CAChB,OAAG,KAAK,IACG,KAAK,IAGb,KAAK,OAAO,KACJ,IAGJ,QACX,EAKA,oBAA6B,CACzB,OAAQ,KAAK,eAAiB,KAAK,kBAAoB,KAAK,QAAU,WAAa,GACvF,CAEJ,CAEJ,CAAC,uEAOQ,SAAAC,EAAUC,EAAQC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,CACb,OAAAC,EAAA,UAAA,EAASC,EAAA,YAAAC,0BAAAR,EAAA,SAAA,EAAAS,EAAAA,WAAAT,EAAA,OAAA,CACf,SAAKA,EAAQ,SAAA,MAAAA,EAAA,qBACb,CAAA,EAAA,CAAA,QAAAU,EAAA,QAAA,IAAA"}