chore(components): improve imports

This commit is contained in:
Benjamin Canac
2024-03-29 16:59:24 +01:00
parent 10b56bb16c
commit b471547eb7
16 changed files with 29 additions and 40 deletions

View File

@@ -4,7 +4,7 @@ import type { AccordionRootProps, AccordionRootEmits } from 'radix-vue'
import type { AppConfig } from '@nuxt/schema'
import _appConfig from '#build/app.config'
import theme from '#build/ui/accordion'
import type { IconProps } from '#ui/components/Icon.vue'
import type { IconProps } from '#ui/types'
const appConfig = _appConfig as AppConfig & { ui: { accordion: Partial<typeof theme> } }
@@ -42,7 +42,7 @@ export type AccordionSlots<T> = {
import { computed } from 'vue'
import { AccordionRoot, AccordionItem, AccordionHeader, AccordionTrigger, AccordionContent, useForwardPropsEmits } from 'radix-vue'
import { reactivePick } from '@vueuse/core'
import { useAppConfig } from '#app'
import { useAppConfig } from '#imports'
const props = withDefaults(defineProps<AccordionProps<T>>(), {
type: 'single',

View File

@@ -4,7 +4,7 @@ import type { AvatarFallbackProps, AvatarRootProps } from 'radix-vue'
import type { AppConfig } from '@nuxt/schema'
import _appConfig from '#build/app.config'
import theme from '#build/ui/avatar'
import type { IconProps } from '#ui/components/Icon.vue'
import type { IconProps } from '#ui/types'
const appConfig = _appConfig as AppConfig & { ui: { avatar: Partial<typeof theme> } }
@@ -27,7 +27,7 @@ export interface AvatarProps extends Omit<AvatarRootProps, 'asChild'>, Omit<Avat
import { computed } from 'vue'
import { AvatarRoot, AvatarImage, AvatarFallback, useForwardProps } from 'radix-vue'
import { reactivePick } from '@vueuse/core'
import UIcon from '#ui/components/Icon.vue'
import { UIcon } from '#components'
const props = defineProps<AvatarProps>()

View File

@@ -35,8 +35,8 @@ export interface ButtonSlots {
import { computed } from 'vue'
import { useForwardProps } from 'radix-vue'
import { reactiveOmit } from '@vueuse/core'
import UIcon from '#ui/components/Icon.vue'
import { useComponentIcons } from '#ui/composables/useComponentIcons'
import { useComponentIcons } from '#imports'
import { UIcon, ULink } from '#components'
const props = defineProps<ButtonProps>()
const slots = defineSlots<ButtonSlots>()

View File

@@ -4,7 +4,7 @@ import type { CheckboxRootProps, CheckboxRootEmits } from 'radix-vue'
import type { AppConfig } from '@nuxt/schema'
import _appConfig from '#build/app.config'
import theme from '#build/ui/checkbox'
import type { IconProps } from '#ui/components/Icon.vue'
import type { IconProps } from '#ui/types'
const appConfig = _appConfig as AppConfig & { ui: { checkbox: Partial<typeof theme> } }
@@ -38,9 +38,7 @@ export interface CheckboxSlots {
import { computed } from 'vue'
import { CheckboxRoot, CheckboxIndicator, Label, useForwardPropsEmits } from 'radix-vue'
import { reactivePick } from '@vueuse/core'
import { useId } from '#imports'
import { useFormField } from '#ui/composables/useFormField'
import { useAppConfig } from '#app'
import { useId, useAppConfig, useFormField } from '#imports'
const props = defineProps<CheckboxProps>()
const emits = defineEmits<CheckboxEmits>()

View File

@@ -4,11 +4,7 @@ import type { DropdownMenuRootProps, DropdownMenuRootEmits, DropdownMenuContentP
import type { AppConfig } from '@nuxt/schema'
import _appConfig from '#build/app.config'
import theme from '#build/ui/dropdownMenu'
import type { LinkProps } from '#ui/components/Link.vue'
import type { AvatarProps } from '#ui/components/Avatar.vue'
import type { IconProps } from '#ui/components/Icon.vue'
import type { KbdProps } from '#ui/components/Kbd.vue'
import type { DropdownMenuContentSlots } from '#ui/components/DropdownMenuContent.vue'
import type { AvatarProps, IconProps, KbdProps, LinkProps, DropdownMenuContentSlots } from '#ui/types'
const appConfig = _appConfig as AppConfig & { ui: { dropdownMenu: Partial<typeof theme> } }

View File

@@ -1,6 +1,6 @@
<script lang="ts">
import type { DropdownMenuContentProps as RadixDropdownMenuContentProps, DropdownMenuContentEmits as RadixDropdownMenuContentEmits } from 'radix-vue'
import type { DropdownMenuItem } from '#ui/components/DropdownMenu.vue'
import type { DropdownMenuItem } from '#ui/types'
export interface DropdownMenuContentProps<T> extends Omit<RadixDropdownMenuContentProps, 'as' | 'asChild' | 'forceMount'> {
items?: T[] | T[][]
@@ -27,9 +27,9 @@ import { computed } from 'vue'
import { DropdownMenu } from 'radix-vue/namespaced'
import { useForwardPropsEmits } from 'radix-vue'
import { reactiveOmit, createReusableTemplate } from '@vueuse/core'
import { useAppConfig } from '#imports'
import { ULink } from '#components'
import { omit } from '#ui/utils'
import { useAppConfig } from '#imports'
const props = defineProps<DropdownMenuContentProps<T>>()
const emits = defineEmits<DropdownMenuContentEmits>()

View File

@@ -3,7 +3,6 @@ import { tv } from 'tailwind-variants'
import type { AppConfig } from '@nuxt/schema'
import _appConfig from '#build/app.config'
import theme from '#build/ui/form'
import { getYupErrors, isYupSchema, getValibotError, isValibotSchema, getZodErrors, isZodSchema, getJoiErrors, isJoiSchema } from '#ui/utils/form'
import type { FormSchema, FormError, FormInputEvents, FormErrorEvent, FormSubmitEvent, FormEvent, FormInjectedOptions, Form, FormErrorWithId } from '#ui/types/form'
const appConfig = _appConfig as AppConfig & { ui: { form: Partial<typeof theme> } }
@@ -49,6 +48,7 @@ export class FormValidationException extends Error {
import { provide, inject, nextTick, ref, onUnmounted, onMounted, computed } from 'vue'
import { useEventBus, type UseEventBusReturn } from '@vueuse/core'
import { useId } from '#imports'
import { getYupErrors, isYupSchema, getValibotError, isValibotSchema, getZodErrors, isZodSchema, getJoiErrors, isJoiSchema } from '#ui/utils/form'
const props = withDefaults(defineProps<FormProps<T>>(), {
validateOn () {

View File

@@ -4,7 +4,6 @@ import { tv, type VariantProps } from 'tailwind-variants'
import type { AppConfig } from '@nuxt/schema'
import _appConfig from '#build/app.config'
import theme from '#build/ui/input'
import { looseToNumber } from '#ui/utils'
import type { UseComponentIconsProps } from '#ui/composables/useComponentIcons'
const appConfig = _appConfig as AppConfig & { ui: { input: Partial<typeof theme> } }
@@ -42,8 +41,8 @@ export interface InputSlots {
<script lang="ts" setup>
import { ref, computed, onMounted } from 'vue'
import { useFormField } from '#ui/composables/useFormField'
import { useComponentIcons } from '#ui/composables/useComponentIcons'
import { useComponentIcons, useFormField } from '#imports'
import { looseToNumber } from '#ui/utils'
defineOptions({ inheritAttrs: false })

View File

@@ -4,7 +4,7 @@ import type { DialogRootProps, DialogRootEmits, DialogContentProps } from 'radix
import type { AppConfig } from '@nuxt/schema'
import _appConfig from '#build/app.config'
import theme from '#build/ui/modal'
import type { ButtonProps } from '#ui/components/Button.vue'
import type { ButtonProps } from '#ui/types'
const appConfig = _appConfig as AppConfig & { ui: { modal: Partial<typeof theme> } }
@@ -42,8 +42,8 @@ export interface ModalSlots {
import { computed, toRef } from 'vue'
import { DialogRoot, DialogTrigger, DialogPortal, DialogOverlay, DialogContent, DialogTitle, DialogDescription, DialogClose, useForwardPropsEmits } from 'radix-vue'
import { reactivePick } from '@vueuse/core'
import { useAppConfig } from '#app'
import UButton from '#ui/components/Button.vue'
import { useAppConfig } from '#imports'
import { UButton } from '#components'
const props = withDefaults(defineProps<ModalProps>(), {
portal: true,

View File

@@ -4,10 +4,7 @@ import type { NavigationMenuRootProps, NavigationMenuRootEmits } from 'radix-vue
import type { AppConfig } from '@nuxt/schema'
import _appConfig from '#build/app.config'
import theme from '#build/ui/navigationMenu'
import type { LinkProps } from '#ui/components/Link.vue'
import type { AvatarProps } from '#ui/components/Avatar.vue'
import type { BadgeProps } from '#ui/components/Badge.vue'
import type { IconProps } from '#ui/components/Icon.vue'
import type { AvatarProps, BadgeProps, IconProps, LinkProps } from '#ui/types'
const appConfig = _appConfig as AppConfig & { ui: { navigationMenu: Partial<typeof theme> } }

View File

@@ -4,7 +4,7 @@ import type { DialogRootProps, DialogRootEmits, DialogContentProps } from 'radix
import type { AppConfig } from '@nuxt/schema'
import _appConfig from '#build/app.config'
import theme from '#build/ui/slideover'
import type { ButtonProps } from '#ui/components/Button.vue'
import type { ButtonProps } from '#ui/types'
const appConfig = _appConfig as AppConfig & { ui: { slideover: Partial<typeof theme> } }
@@ -42,8 +42,8 @@ export interface SlideoverSlots {
import { computed, toRef } from 'vue'
import { DialogRoot, DialogTrigger, DialogPortal, DialogOverlay, DialogContent, DialogTitle, DialogDescription, DialogClose, useForwardPropsEmits } from 'radix-vue'
import { reactivePick } from '@vueuse/core'
import { useAppConfig } from '#app'
import UButton from '#ui/components/Button.vue'
import { useAppConfig } from '#imports'
import { UButton } from '#components'
const props = withDefaults(defineProps<SlideoverProps>(), {
portal: true,

View File

@@ -4,7 +4,7 @@ import type { SwitchRootProps, SwitchRootEmits } from 'radix-vue'
import type { AppConfig } from '@nuxt/schema'
import _appConfig from '#build/app.config'
import theme from '#build/ui/switch'
import type { IconProps } from '#ui/components/Icon.vue'
import type { IconProps } from '#ui/types'
const appConfig = _appConfig as AppConfig & { ui: { switch: Partial<typeof theme> } }
@@ -30,7 +30,7 @@ export interface SwitchEmits extends SwitchRootEmits {}
import { computed } from 'vue'
import { SwitchRoot, SwitchThumb, useForwardPropsEmits } from 'radix-vue'
import { reactivePick } from '@vueuse/core'
import { useAppConfig } from '#app'
import { useAppConfig } from '#imports'
const props = defineProps<SwitchProps>()
const emits = defineEmits<SwitchEmits>()

View File

@@ -3,7 +3,6 @@ import { tv, type VariantProps } from 'tailwind-variants'
import type { AppConfig } from '@nuxt/schema'
import _appConfig from '#build/app.config'
import theme from '#build/ui/textarea'
import { looseToNumber } from '#ui/utils'
const appConfig = _appConfig as AppConfig & { ui: { textarea: Partial<typeof theme> } }
@@ -40,7 +39,8 @@ export interface TextareaSlots {
<script lang="ts" setup>
import { ref, computed, onMounted, nextTick, watch } from 'vue'
import { useFormField } from '#ui/composables/useFormField'
import { useFormField } from '#imports'
import { looseToNumber } from '#ui/utils'
defineOptions({ inheritAttrs: false })

View File

@@ -4,7 +4,7 @@ import type { TooltipRootProps, TooltipRootEmits, TooltipContentProps, TooltipAr
import type { AppConfig } from '@nuxt/schema'
import _appConfig from '#build/app.config'
import theme from '#build/ui/tooltip'
import type { KbdProps } from '#ui/components/Kbd.vue'
import type { KbdProps } from '#ui/types'
const appConfig = _appConfig as AppConfig & { ui: { tooltip: Partial<typeof theme> } }
@@ -35,7 +35,7 @@ import { computed, toRef } from 'vue'
import { defu } from 'defu'
import { TooltipRoot, TooltipTrigger, TooltipPortal, TooltipContent, TooltipArrow, useForwardPropsEmits } from 'radix-vue'
import { reactivePick } from '@vueuse/core'
import UKbd from '#ui/components/Kbd.vue'
import { UKbd } from '#components'
const props = withDefaults(defineProps<TooltipProps>(), { portal: true })
const emits = defineEmits<TooltipEmits>()

View File

@@ -1,6 +1,6 @@
import { computed } from 'vue'
import { useAppConfig } from '#app'
import type { IconProps } from '#ui/components/Icon.vue'
import { useAppConfig } from '#imports'
import type { IconProps } from '#ui/types'
export interface UseComponentIconsProps {
icon?: IconProps['name']

View File

@@ -25,4 +25,3 @@ export * from '../components/Switch.vue'
export * from '../components/Tabs.vue'
export * from '../components/Textarea.vue'
export * from '../components/Tooltip.vue'
export * from '../composables/useComponentIcons'