import { makeComponentProps } from '@/composables/component' import { makeTagProps } from '@/composables/tag' import { genericComponent, propsFactory } from '@/utils' import { ExtractPropTypes } from 'vue' import { computed } from 'vue' export const makeUInnerTagCloseProps = propsFactory( { size: { type: String, default: 'sm', required: false, }, ...makeComponentProps(), ...makeTagProps(), }, 'UInnerTagClose' ) export type UInnerTagCloseProps = ExtractPropTypes< typeof makeUInnerTagCloseProps > export type UInnerTagCloseSlots = { // } export const UInnerTagClose = genericComponent()({ name: 'UInnerTagClose', props: makeUInnerTagCloseProps(), emits: { delete: (value: boolean) => true, }, setup(props, { emit }) { const size = computed(() => { let sizes = '' if (props.size === 'sm') { sizes = 'h-3.5 w-3.5' } else if (props.size === 'md') { sizes = 'h-4.5 w-4' } else if (props.size === 'lg') { sizes = 'h-5.5 w-5' } return sizes }) const tagClasses = computed( () => `bg-white hover:bg-gray-100 active:bg-white cursor-pointer rounded-3 ${size.value} flex justify-center items-center` ) const close = () => { emit('delete', true) } return () => (
{props.size === 'lg' ? ( ) : null} {props.size === 'md' ? ( ) : null} {props.size === 'sm' ? ( ) : null}
) }, }) export type UInnerTagClose = InstanceType