{"version":3,"file":"UButton.mjs","names":["computed","UBaseButton","genericComponent","propsFactory","makeVariantProps","makeSizeProps","Sizes","makeComponentProps","makeTagProps","makeRouterProps","UntitledColorTypes","ButtonVariant","makeUButtonProps","_objectSpread","loading","type","Boolean","String","primary","disabled","destructive","prependIcon","appendIcon","active","undefined","size","sm","UButton","name","props","emits","click","e","setup","_ref","emit","slots","attrs","buttonColors","color","backgroundColor","borderColor","variant","secondaryGray","outline","secondaryColor","tertiaryGray","plain","tertiaryColor","linkGray","text","linkColor","_createVNode","_mergeProps","value","onClick"],"sources":["../../../src/components/UButton/UButton.tsx"],"sourcesContent":["import { computed } from 'vue'\nimport { UBaseButton } from '@/components'\nimport { genericComponent, propsFactory } from '@/utils'\n\nimport { makeVariantProps } from '@/composables/variant'\nimport { makeSizeProps, Sizes } from '@/composables/size'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeRouterProps } from '@/composables/router'\n\nimport UntitledColorTypes from '@/types/untitledColorTypes'\nimport ColorName from '@/types/colors'\nimport ButtonVariant from '@/types/buttonVariants'\n\ninterface ButtonColors {\n  color: ColorName\n  backgroundColor?: ColorName\n  borderColor?: ColorName\n  variant: ButtonVariant\n}\n\nexport type UButtonSlots = {\n  default: never\n}\n\nexport const makeUButtonProps = propsFactory(\n  {\n    loading: {\n      type: Boolean,\n      default: false,\n    },\n    type: { type: String, default: UntitledColorTypes.primary },\n    disabled: { type: Boolean, default: false },\n    destructive: { type: Boolean, default: false },\n    prependIcon: String,\n    appendIcon: String,\n    active: {\n      type: Boolean,\n      default: undefined,\n    },\n\n    ...makeVariantProps(),\n    ...makeSizeProps({ size: Sizes.sm }),\n    ...makeComponentProps(),\n    ...makeTagProps(),\n    ...makeRouterProps(),\n  },\n  'UButton'\n)\n\nexport const UButton = genericComponent<UButtonSlots>()({\n  name: 'UButton',\n\n  props: makeUButtonProps(),\n\n  emits: {\n    click: (e: MouseEvent) => true,\n  },\n\n  setup(props, { emit, slots, attrs }) {\n    const buttonColors = computed<ButtonColors>(() => {\n      let buttonColors: ButtonColors = {\n        color: 'white',\n        backgroundColor: 'primary-600',\n        borderColor: 'primary-600',\n        variant: ButtonVariant.default,\n      }\n\n      switch (props.type) {\n        case UntitledColorTypes.primary:\n          buttonColors = {\n            color: 'white',\n            backgroundColor: 'primary-600',\n            borderColor: 'primary-600',\n            variant: ButtonVariant.default,\n          }\n          break\n        case UntitledColorTypes.secondaryGray:\n          buttonColors = {\n            color: 'gray-700',\n            borderColor: 'gray-300',\n            variant: ButtonVariant.outline,\n          }\n          break\n        case UntitledColorTypes.secondaryColor:\n          buttonColors = {\n            color: 'primary-700',\n            borderColor: 'primary-50',\n            backgroundColor: 'primary-50',\n            variant: ButtonVariant.default,\n          }\n          break\n        case UntitledColorTypes.tertiaryGray:\n          buttonColors = {\n            color: 'gray-600',\n            variant: ButtonVariant.plain,\n          }\n          break\n        case UntitledColorTypes.tertiaryColor:\n          buttonColors = {\n            color: 'primary-700',\n            variant: ButtonVariant.plain,\n          }\n          break\n        case UntitledColorTypes.linkGray:\n          buttonColors = {\n            color: 'gray-600',\n            variant: ButtonVariant.text,\n          }\n          break\n        case UntitledColorTypes.linkColor:\n          buttonColors = {\n            color: 'primary-700',\n            variant: ButtonVariant.text,\n          }\n          break\n        default:\n          break\n      }\n\n      return buttonColors\n    })\n\n    return () => (\n      <UBaseButton\n        {...props}\n        {...attrs}\n        v-slots:default={slots.default}\n        variant={buttonColors.value.variant}\n        color={buttonColors.value.color}\n        background-color={buttonColors.value.backgroundColor}\n        border-color={buttonColors.value.borderColor}\n        onClick={(e: MouseEvent) => emit('click', e)}\n      />\n    )\n  },\n})\n\nexport type UButton = InstanceType<typeof UButton>\n"],"mappings":"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"}