{"version":3,"file":"button2.mjs","sources":["../../../../../../packages/components/button/src/button.vue"],"sourcesContent":["<template>\n  <button\n    ref=\"_ref\"\n    :class=\"[\n      namespace,\n      type ? type : '',\n      buttonSize ? buttonSize : '',\n      iconPosition ? 'icon-' + iconPosition : '',\n      effect ? effect : '',\n      {\n        'is-disabled': buttonDisabled,\n        'is-loading': loading,\n        'equal': equal,\n        'round': round,\n        'block': block,\n        'no-fill': noFill,\n        'rational': rational,\n      }\n    ]\"\n    v-bind=\"_props\"\n    @click=\"handleClick\"\n  >\n    <template v-if=\"loading\">\n      <slot v-if=\"$slots.loading\" name=\"loading\"></slot>\n      <spinner v-else />\n    </template>\n    <slot v-if=\"$slots.icon && !loading\" name=\"icon\"></slot>\n    <span v-if=\"$slots.default && (loading || $slots.icon)\">\n      <slot></slot>\n    </span>\n    <slot v-else></slot>\n  </button>\n</template>\n\n<script lang='ts' setup>\nimport { useNamespace } from '@hongluan-ui/hooks'\nimport Spinner from '@hongluan-ui/components/spinner'\nimport { useButton } from './use-button'\nimport { buttonEmits, buttonProps } from './button'\n\ndefineOptions({\n  name: 'Button',\n})\n\nconst props = defineProps(buttonProps)\nconst emit = defineEmits(buttonEmits)\n\nconst { namespace } = useNamespace('button')\nconst { _ref, _props, buttonDisabled, buttonSize, handleClick } = useButton(props, emit)\n\ndefineExpose({\n  /** @description button html element */\n  ref: _ref,\n  /** @description button size */\n  size: buttonSize,\n  /** @description button disabled */\n  disabled: buttonDisabled,\n})\n</script>\n"],"names":[],"mappings":";;;;;;;oCAwCc;AAAA,EACZ,MAAM;AACR;;;;;;;AAKA,UAAM,EAAE,cAAc,aAAa,QAAQ;AAC3C,UAAM,EAAE,MAAM,QAAQ,gBAAgB,YAAY,gBAAgB,UAAU,OAAO,IAAI;AAEvF,WAAa;AAAA,MAEX,KAAK;AAAA,MAEL,MAAM;AAAA,MAEN,UAAU;AAAA,KACX;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}