import { computed, type Ref } from 'vue' import type { ButtonGradient, ButtonSize, ButtonVariant } from '../types' import type { SpinnerColor, SpinnerSize } from './../../FwbSpinner/types' export type UseButtonSpinnerProps = { outline: Ref size: Ref color: Ref gradient: Ref } export function useButtonSpinner (props: UseButtonSpinnerProps): { size: Ref, color: Ref } { const btnSizeSpinnerSizeMap: Record = { xs: '2.5', sm: '3', md: '4', lg: '5', xl: '6', } const size = computed(() => btnSizeSpinnerSizeMap[props.size.value]) const color = computed(() => { if (!props.outline.value) return 'white' if (props.gradient.value) { if (props.gradient.value.includes('purple')) { return 'purple' } else if (props.gradient.value.includes('blue')) { return 'blue' } else if (props.gradient.value.includes('pink')) { return 'pink' } else if (props.gradient.value.includes('red')) { return 'red' } return 'white' } if (['alternative', 'dark', 'light'].includes(props.color.value)) { return 'white' } else if (props.color.value === 'default') { return 'blue' } return props.color.value as SpinnerColor }) return { color, size, } }