{"version":3,"file":"useButtonAttributes.mjs","sources":["../../../../../../src/components/va-button/hooks/useButtonAttributes.ts"],"sourcesContent":["import { computed, ComputedRef } from 'vue'\nimport { ButtonPropsTypes } from '../types'\nimport { useRouterLink } from '../../../composables'\n\ntype UseButtonAttributes = (\n  props: ButtonPropsTypes,\n) => ComputedRef<{\n  'aria-disabled': boolean,\n  disabled: boolean,\n  type?: any,\n  tabindex?: number,\n  target?: string,\n  href?: any,\n  to?: string | Record<string, any>,\n  replace?: boolean,\n  append?: boolean,\n  activeClass?: string,\n  exact?: boolean,\n  exactActiveClass?: string,\n}>\n\nexport const useButtonAttributes: UseButtonAttributes = (props) => {\n  const { linkAttributesComputed, isLinkTag } = useRouterLink(props as Required<typeof props>)\n\n  const typeComputed = computed(() => isLinkTag.value ? undefined : props.type)\n  const buttonAttributesComputed = computed(() => {\n    const disabledAttributes = {\n      'aria-disabled': !!props.disabled,\n      disabled: !!props.disabled,\n    }\n\n    if (isLinkTag.value) { return disabledAttributes }\n\n    return {\n      type: typeComputed.value,\n      tabindex: props.loading || props.disabled ? -1 : 0,\n      ...disabledAttributes,\n    }\n  })\n\n  return computed(() => ({ ...linkAttributesComputed.value, ...buttonAttributesComputed.value }))\n}\n"],"names":[],"mappings":";;AAqBa,MAAA,sBAA2C,CAAC,UAAU;AACjE,QAAM,EAAE,wBAAwB,UAAU,IAAI,cAAc,KAA+B;AAE3F,QAAM,eAAe,SAAS,MAAM,UAAU,QAAQ,SAAY,MAAM,IAAI;AACtE,QAAA,2BAA2B,SAAS,MAAM;AAC9C,UAAM,qBAAqB;AAAA,MACzB,iBAAiB,CAAC,CAAC,MAAM;AAAA,MACzB,UAAU,CAAC,CAAC,MAAM;AAAA,IAAA;AAGpB,QAAI,UAAU,OAAO;AAAS,aAAA;AAAA,IAAmB;AAE1C,WAAA;AAAA,MACL,MAAM,aAAa;AAAA,MACnB,UAAU,MAAM,WAAW,MAAM,WAAW,KAAK;AAAA,MACjD,GAAG;AAAA,IAAA;AAAA,EACL,CACD;AAEM,SAAA,SAAS,OAAO,EAAE,GAAG,uBAAuB,OAAO,GAAG,yBAAyB,MAAQ,EAAA;AAChG;"}