diff --git a/docs/components/content/ComponentProps.vue b/docs/components/content/ComponentProps.vue index 7bfc3b41..0fec8f0e 100644 --- a/docs/components/content/ComponentProps.vue +++ b/docs/components/content/ComponentProps.vue @@ -1,20 +1,7 @@ @@ -34,8 +21,4 @@ const camelName = useCamelCase(slug) const name = `U${useUpperFirst(camelName)}` const meta = await fetchComponentMeta(name) - -const metaProps = computed(() => useSortBy(meta?.meta?.props || [], [ - prop => ['string', 'number', 'boolean', 'any'].indexOf(prop.type) -])) diff --git a/docs/components/content/ComponentPropsField.vue b/docs/components/content/ComponentPropsField.vue new file mode 100644 index 00000000..9e359fd7 --- /dev/null +++ b/docs/components/content/ComponentPropsField.vue @@ -0,0 +1,43 @@ + + + diff --git a/src/runtime/components/elements/Dropdown.vue b/src/runtime/components/elements/Dropdown.vue index 3899c78f..df4cae77 100644 --- a/src/runtime/components/elements/Dropdown.vue +++ b/src/runtime/components/elements/Dropdown.vue @@ -58,7 +58,7 @@ import ULink from '../elements/Link.vue' import { usePopper } from '../../composables/usePopper' import { defuTwMerge } from '../../utils' import type { DropdownItem } from '../../types/dropdown' -import type { PopperOptions } from '../../types' +import type { PopperOptions } from '../../types/popper' import { useAppConfig } from '#imports' // TODO: Remove // @ts-expect-error @@ -84,11 +84,9 @@ export default defineComponent({ default: () => [] }, mode: { - type: String, + type: String as PropType<'click' | 'hover'>, default: 'click', - validator: (value: string) => { - return ['click', 'hover'].includes(value) - } + validator: (value: string) => ['click', 'hover'].includes(value) }, disabled: { type: Boolean, diff --git a/src/runtime/components/forms/Form.vue b/src/runtime/components/forms/Form.vue index ae417ee2..ed9be7d0 100644 --- a/src/runtime/components/forms/Form.vue +++ b/src/runtime/components/forms/Form.vue @@ -10,7 +10,7 @@ import { useEventBus } from '@vueuse/core' import type { ZodSchema } from 'zod' import type { ValidationError as JoiError, Schema as JoiSchema } from 'joi' import type { ObjectSchema as YupObjectSchema, ValidationError as YupError } from 'yup' -import type { FormError, FormEvent, FormEventType, FormSubmitEvent, Form } from '../../types' +import type { FormError, FormEvent, FormEventType, FormSubmitEvent, Form } from '../../types/form' export default defineComponent({ props: { diff --git a/src/runtime/components/forms/FormGroup.vue b/src/runtime/components/forms/FormGroup.vue index 7df286d6..4dfac19e 100644 --- a/src/runtime/components/forms/FormGroup.vue +++ b/src/runtime/components/forms/FormGroup.vue @@ -23,7 +23,7 @@ import { computed, defineComponent, provide, inject } from 'vue' import type { PropType } from 'vue' import { omit } from 'lodash-es' import { twMerge } from 'tailwind-merge' -import type { FormError } from '../../types' +import type { FormError } from '../../types/form' import { defuTwMerge } from '../../utils' import { useAppConfig } from '#imports' // TODO: Remove diff --git a/src/runtime/components/forms/SelectMenu.vue b/src/runtime/components/forms/SelectMenu.vue index d9272267..0b3c6750 100644 --- a/src/runtime/components/forms/SelectMenu.vue +++ b/src/runtime/components/forms/SelectMenu.vue @@ -138,7 +138,7 @@ import UAvatar from '../elements/Avatar.vue' import { defuTwMerge } from '../../utils' import { usePopper } from '../../composables/usePopper' import { useFormGroup } from '../../composables/useFormGroup' -import type { PopperOptions } from '../../types' +import type { PopperOptions } from '../../types/popper' import { useAppConfig } from '#imports' // TODO: Remove // @ts-expect-error diff --git a/src/runtime/components/navigation/CommandPalette.vue b/src/runtime/components/navigation/CommandPalette.vue index 08319989..f253e3d5 100644 --- a/src/runtime/components/navigation/CommandPalette.vue +++ b/src/runtime/components/navigation/CommandPalette.vue @@ -173,7 +173,7 @@ export default defineComponent({ default: 200 }, fuse: { - type: Object as PropType>>, + type: Object as PropType>, default: () => ({}) }, ui: { diff --git a/src/runtime/components/overlays/ContextMenu.vue b/src/runtime/components/overlays/ContextMenu.vue index a2de7d59..1ee0c1b5 100644 --- a/src/runtime/components/overlays/ContextMenu.vue +++ b/src/runtime/components/overlays/ContextMenu.vue @@ -18,7 +18,7 @@ import { omit } from 'lodash-es' import { twMerge, twJoin } from 'tailwind-merge' import { usePopper } from '../../composables/usePopper' import { defuTwMerge } from '../../utils' -import type { PopperOptions } from '../../types' +import type { PopperOptions } from '../../types/popper' import { useAppConfig } from '#imports' // TODO: Remove // @ts-expect-error diff --git a/src/runtime/components/overlays/Notification.vue b/src/runtime/components/overlays/Notification.vue index a24f7eac..ddd21f59 100644 --- a/src/runtime/components/overlays/Notification.vue +++ b/src/runtime/components/overlays/Notification.vue @@ -47,7 +47,7 @@ import UIcon from '../elements/Icon.vue' import UAvatar from '../elements/Avatar.vue' import UButton from '../elements/Button.vue' import { useTimer } from '../../composables/useTimer' -import type { NotificationAction } from '../../types' +import type { NotificationAction } from '../../types/notification' import type { Avatar } from '../../types/avatar' import type { Button } from '../../types/button' import { defuTwMerge } from '../../utils' diff --git a/src/runtime/components/overlays/Notifications.vue b/src/runtime/components/overlays/Notifications.vue index 5b1eb518..248e661a 100644 --- a/src/runtime/components/overlays/Notifications.vue +++ b/src/runtime/components/overlays/Notifications.vue @@ -25,7 +25,7 @@ import { twMerge, twJoin } from 'tailwind-merge' import UNotification from './Notification.vue' import { useToast } from '../../composables/useToast' import { defuTwMerge } from '../../utils' -import type { Notification } from '../../types' +import type { Notification } from '../../types/notification' import { useState, useAppConfig } from '#imports' // TODO: Remove // @ts-expect-error diff --git a/src/runtime/components/overlays/Popover.vue b/src/runtime/components/overlays/Popover.vue index 099f20fe..d4a98a04 100644 --- a/src/runtime/components/overlays/Popover.vue +++ b/src/runtime/components/overlays/Popover.vue @@ -34,7 +34,7 @@ import { twMerge } from 'tailwind-merge' import { Popover as HPopover, PopoverButton as HPopoverButton, PopoverPanel as HPopoverPanel } from '@headlessui/vue' import { usePopper } from '../../composables/usePopper' import { defuTwMerge } from '../../utils' -import type { PopperOptions } from '../../types' +import type { PopperOptions } from '../../types/popper' import { useAppConfig } from '#imports' // TODO: Remove // @ts-expect-error @@ -51,11 +51,9 @@ export default defineComponent({ inheritAttrs: false, props: { mode: { - type: String, + type: String as PropType<'click' | 'hover'>, default: 'click', - validator: (value: string) => { - return ['click', 'hover'].includes(value) - } + validator: (value: string) => ['click', 'hover'].includes(value) }, disabled: { type: Boolean, diff --git a/src/runtime/components/overlays/Slideover.vue b/src/runtime/components/overlays/Slideover.vue index c5688fad..cb29c99b 100644 --- a/src/runtime/components/overlays/Slideover.vue +++ b/src/runtime/components/overlays/Slideover.vue @@ -46,7 +46,7 @@ export default defineComponent({ default: false }, side: { - type: String, + type: String as PropType<'left' | 'right'>, default: 'right', validator: (value: string) => ['left', 'right'].includes(value) }, diff --git a/src/runtime/components/overlays/Tooltip.vue b/src/runtime/components/overlays/Tooltip.vue index d7189ab6..6a3f5a08 100644 --- a/src/runtime/components/overlays/Tooltip.vue +++ b/src/runtime/components/overlays/Tooltip.vue @@ -32,7 +32,7 @@ import { twMerge } from 'tailwind-merge' import UKbd from '../elements/Kbd.vue' import { usePopper } from '../../composables/usePopper' import { defuTwMerge } from '../../utils' -import type { PopperOptions } from '../../types' +import type { PopperOptions } from '../../types/popper' import { useAppConfig } from '#imports' // TODO: Remove // @ts-expect-error diff --git a/src/runtime/composables/useFormGroup.ts b/src/runtime/composables/useFormGroup.ts index c34311ad..f511a37f 100644 --- a/src/runtime/composables/useFormGroup.ts +++ b/src/runtime/composables/useFormGroup.ts @@ -1,6 +1,6 @@ import { inject, ref } from 'vue' import { type UseEventBusReturn, useDebounceFn } from '@vueuse/core' -import type { FormEvent, FormEventType } from '../types' +import type { FormEvent, FormEventType } from '../types/form' export const useFormGroup = () => { const formBus = inject | undefined>('form-events', undefined) diff --git a/src/runtime/composables/usePopper.ts b/src/runtime/composables/usePopper.ts index 7ce754cf..ea55b47f 100644 --- a/src/runtime/composables/usePopper.ts +++ b/src/runtime/composables/usePopper.ts @@ -9,7 +9,7 @@ import preventOverflow from '@popperjs/core/lib/modifiers/preventOverflow' import computeStyles from '@popperjs/core/lib/modifiers/computeStyles' import eventListeners from '@popperjs/core/lib/modifiers/eventListeners' import { MaybeElement, unrefElement } from '@vueuse/core' -import type { PopperOptions } from '../types' +import type { PopperOptions } from '../types/popper' export const createPopper = popperGenerator({ defaultModifiers: [...defaultModifiers, offset, flip, preventOverflow, computeStyles, eventListeners] diff --git a/src/runtime/composables/useToast.ts b/src/runtime/composables/useToast.ts index c77dd3f1..b3a23259 100644 --- a/src/runtime/composables/useToast.ts +++ b/src/runtime/composables/useToast.ts @@ -1,4 +1,4 @@ -import type { Notification } from '../types' +import type { Notification } from '../types/notification' import { useState } from '#imports' export function useToast () {