mirror of
https://github.com/ArthurDanjou/ui.git
synced 2026-01-24 17:00:36 +01:00
chore(components): improve imports
This commit is contained in:
@@ -4,7 +4,7 @@ import type { AccordionRootProps, AccordionRootEmits } from 'radix-vue'
|
|||||||
import type { AppConfig } from '@nuxt/schema'
|
import type { AppConfig } from '@nuxt/schema'
|
||||||
import _appConfig from '#build/app.config'
|
import _appConfig from '#build/app.config'
|
||||||
import theme from '#build/ui/accordion'
|
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> } }
|
const appConfig = _appConfig as AppConfig & { ui: { accordion: Partial<typeof theme> } }
|
||||||
|
|
||||||
@@ -42,7 +42,7 @@ export type AccordionSlots<T> = {
|
|||||||
import { computed } from 'vue'
|
import { computed } from 'vue'
|
||||||
import { AccordionRoot, AccordionItem, AccordionHeader, AccordionTrigger, AccordionContent, useForwardPropsEmits } from 'radix-vue'
|
import { AccordionRoot, AccordionItem, AccordionHeader, AccordionTrigger, AccordionContent, useForwardPropsEmits } from 'radix-vue'
|
||||||
import { reactivePick } from '@vueuse/core'
|
import { reactivePick } from '@vueuse/core'
|
||||||
import { useAppConfig } from '#app'
|
import { useAppConfig } from '#imports'
|
||||||
|
|
||||||
const props = withDefaults(defineProps<AccordionProps<T>>(), {
|
const props = withDefaults(defineProps<AccordionProps<T>>(), {
|
||||||
type: 'single',
|
type: 'single',
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import type { AvatarFallbackProps, AvatarRootProps } from 'radix-vue'
|
|||||||
import type { AppConfig } from '@nuxt/schema'
|
import type { AppConfig } from '@nuxt/schema'
|
||||||
import _appConfig from '#build/app.config'
|
import _appConfig from '#build/app.config'
|
||||||
import theme from '#build/ui/avatar'
|
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> } }
|
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 { computed } from 'vue'
|
||||||
import { AvatarRoot, AvatarImage, AvatarFallback, useForwardProps } from 'radix-vue'
|
import { AvatarRoot, AvatarImage, AvatarFallback, useForwardProps } from 'radix-vue'
|
||||||
import { reactivePick } from '@vueuse/core'
|
import { reactivePick } from '@vueuse/core'
|
||||||
import UIcon from '#ui/components/Icon.vue'
|
import { UIcon } from '#components'
|
||||||
|
|
||||||
const props = defineProps<AvatarProps>()
|
const props = defineProps<AvatarProps>()
|
||||||
|
|
||||||
|
|||||||
@@ -35,8 +35,8 @@ export interface ButtonSlots {
|
|||||||
import { computed } from 'vue'
|
import { computed } from 'vue'
|
||||||
import { useForwardProps } from 'radix-vue'
|
import { useForwardProps } from 'radix-vue'
|
||||||
import { reactiveOmit } from '@vueuse/core'
|
import { reactiveOmit } from '@vueuse/core'
|
||||||
import UIcon from '#ui/components/Icon.vue'
|
import { useComponentIcons } from '#imports'
|
||||||
import { useComponentIcons } from '#ui/composables/useComponentIcons'
|
import { UIcon, ULink } from '#components'
|
||||||
|
|
||||||
const props = defineProps<ButtonProps>()
|
const props = defineProps<ButtonProps>()
|
||||||
const slots = defineSlots<ButtonSlots>()
|
const slots = defineSlots<ButtonSlots>()
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import type { CheckboxRootProps, CheckboxRootEmits } from 'radix-vue'
|
|||||||
import type { AppConfig } from '@nuxt/schema'
|
import type { AppConfig } from '@nuxt/schema'
|
||||||
import _appConfig from '#build/app.config'
|
import _appConfig from '#build/app.config'
|
||||||
import theme from '#build/ui/checkbox'
|
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> } }
|
const appConfig = _appConfig as AppConfig & { ui: { checkbox: Partial<typeof theme> } }
|
||||||
|
|
||||||
@@ -38,9 +38,7 @@ export interface CheckboxSlots {
|
|||||||
import { computed } from 'vue'
|
import { computed } from 'vue'
|
||||||
import { CheckboxRoot, CheckboxIndicator, Label, useForwardPropsEmits } from 'radix-vue'
|
import { CheckboxRoot, CheckboxIndicator, Label, useForwardPropsEmits } from 'radix-vue'
|
||||||
import { reactivePick } from '@vueuse/core'
|
import { reactivePick } from '@vueuse/core'
|
||||||
import { useId } from '#imports'
|
import { useId, useAppConfig, useFormField } from '#imports'
|
||||||
import { useFormField } from '#ui/composables/useFormField'
|
|
||||||
import { useAppConfig } from '#app'
|
|
||||||
|
|
||||||
const props = defineProps<CheckboxProps>()
|
const props = defineProps<CheckboxProps>()
|
||||||
const emits = defineEmits<CheckboxEmits>()
|
const emits = defineEmits<CheckboxEmits>()
|
||||||
|
|||||||
@@ -4,11 +4,7 @@ import type { DropdownMenuRootProps, DropdownMenuRootEmits, DropdownMenuContentP
|
|||||||
import type { AppConfig } from '@nuxt/schema'
|
import type { AppConfig } from '@nuxt/schema'
|
||||||
import _appConfig from '#build/app.config'
|
import _appConfig from '#build/app.config'
|
||||||
import theme from '#build/ui/dropdownMenu'
|
import theme from '#build/ui/dropdownMenu'
|
||||||
import type { LinkProps } from '#ui/components/Link.vue'
|
import type { AvatarProps, IconProps, KbdProps, LinkProps, DropdownMenuContentSlots } from '#ui/types'
|
||||||
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'
|
|
||||||
|
|
||||||
const appConfig = _appConfig as AppConfig & { ui: { dropdownMenu: Partial<typeof theme> } }
|
const appConfig = _appConfig as AppConfig & { ui: { dropdownMenu: Partial<typeof theme> } }
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import type { DropdownMenuContentProps as RadixDropdownMenuContentProps, DropdownMenuContentEmits as RadixDropdownMenuContentEmits } from 'radix-vue'
|
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'> {
|
export interface DropdownMenuContentProps<T> extends Omit<RadixDropdownMenuContentProps, 'as' | 'asChild' | 'forceMount'> {
|
||||||
items?: T[] | T[][]
|
items?: T[] | T[][]
|
||||||
@@ -27,9 +27,9 @@ import { computed } from 'vue'
|
|||||||
import { DropdownMenu } from 'radix-vue/namespaced'
|
import { DropdownMenu } from 'radix-vue/namespaced'
|
||||||
import { useForwardPropsEmits } from 'radix-vue'
|
import { useForwardPropsEmits } from 'radix-vue'
|
||||||
import { reactiveOmit, createReusableTemplate } from '@vueuse/core'
|
import { reactiveOmit, createReusableTemplate } from '@vueuse/core'
|
||||||
|
import { useAppConfig } from '#imports'
|
||||||
import { ULink } from '#components'
|
import { ULink } from '#components'
|
||||||
import { omit } from '#ui/utils'
|
import { omit } from '#ui/utils'
|
||||||
import { useAppConfig } from '#imports'
|
|
||||||
|
|
||||||
const props = defineProps<DropdownMenuContentProps<T>>()
|
const props = defineProps<DropdownMenuContentProps<T>>()
|
||||||
const emits = defineEmits<DropdownMenuContentEmits>()
|
const emits = defineEmits<DropdownMenuContentEmits>()
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ import { tv } from 'tailwind-variants'
|
|||||||
import type { AppConfig } from '@nuxt/schema'
|
import type { AppConfig } from '@nuxt/schema'
|
||||||
import _appConfig from '#build/app.config'
|
import _appConfig from '#build/app.config'
|
||||||
import theme from '#build/ui/form'
|
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'
|
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> } }
|
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 { provide, inject, nextTick, ref, onUnmounted, onMounted, computed } from 'vue'
|
||||||
import { useEventBus, type UseEventBusReturn } from '@vueuse/core'
|
import { useEventBus, type UseEventBusReturn } from '@vueuse/core'
|
||||||
import { useId } from '#imports'
|
import { useId } from '#imports'
|
||||||
|
import { getYupErrors, isYupSchema, getValibotError, isValibotSchema, getZodErrors, isZodSchema, getJoiErrors, isJoiSchema } from '#ui/utils/form'
|
||||||
|
|
||||||
const props = withDefaults(defineProps<FormProps<T>>(), {
|
const props = withDefaults(defineProps<FormProps<T>>(), {
|
||||||
validateOn () {
|
validateOn () {
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ import { tv, type VariantProps } from 'tailwind-variants'
|
|||||||
import type { AppConfig } from '@nuxt/schema'
|
import type { AppConfig } from '@nuxt/schema'
|
||||||
import _appConfig from '#build/app.config'
|
import _appConfig from '#build/app.config'
|
||||||
import theme from '#build/ui/input'
|
import theme from '#build/ui/input'
|
||||||
import { looseToNumber } from '#ui/utils'
|
|
||||||
import type { UseComponentIconsProps } from '#ui/composables/useComponentIcons'
|
import type { UseComponentIconsProps } from '#ui/composables/useComponentIcons'
|
||||||
|
|
||||||
const appConfig = _appConfig as AppConfig & { ui: { input: Partial<typeof theme> } }
|
const appConfig = _appConfig as AppConfig & { ui: { input: Partial<typeof theme> } }
|
||||||
@@ -42,8 +41,8 @@ export interface InputSlots {
|
|||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { ref, computed, onMounted } from 'vue'
|
import { ref, computed, onMounted } from 'vue'
|
||||||
import { useFormField } from '#ui/composables/useFormField'
|
import { useComponentIcons, useFormField } from '#imports'
|
||||||
import { useComponentIcons } from '#ui/composables/useComponentIcons'
|
import { looseToNumber } from '#ui/utils'
|
||||||
|
|
||||||
defineOptions({ inheritAttrs: false })
|
defineOptions({ inheritAttrs: false })
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import type { DialogRootProps, DialogRootEmits, DialogContentProps } from 'radix
|
|||||||
import type { AppConfig } from '@nuxt/schema'
|
import type { AppConfig } from '@nuxt/schema'
|
||||||
import _appConfig from '#build/app.config'
|
import _appConfig from '#build/app.config'
|
||||||
import theme from '#build/ui/modal'
|
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> } }
|
const appConfig = _appConfig as AppConfig & { ui: { modal: Partial<typeof theme> } }
|
||||||
|
|
||||||
@@ -42,8 +42,8 @@ export interface ModalSlots {
|
|||||||
import { computed, toRef } from 'vue'
|
import { computed, toRef } from 'vue'
|
||||||
import { DialogRoot, DialogTrigger, DialogPortal, DialogOverlay, DialogContent, DialogTitle, DialogDescription, DialogClose, useForwardPropsEmits } from 'radix-vue'
|
import { DialogRoot, DialogTrigger, DialogPortal, DialogOverlay, DialogContent, DialogTitle, DialogDescription, DialogClose, useForwardPropsEmits } from 'radix-vue'
|
||||||
import { reactivePick } from '@vueuse/core'
|
import { reactivePick } from '@vueuse/core'
|
||||||
import { useAppConfig } from '#app'
|
import { useAppConfig } from '#imports'
|
||||||
import UButton from '#ui/components/Button.vue'
|
import { UButton } from '#components'
|
||||||
|
|
||||||
const props = withDefaults(defineProps<ModalProps>(), {
|
const props = withDefaults(defineProps<ModalProps>(), {
|
||||||
portal: true,
|
portal: true,
|
||||||
|
|||||||
@@ -4,10 +4,7 @@ import type { NavigationMenuRootProps, NavigationMenuRootEmits } from 'radix-vue
|
|||||||
import type { AppConfig } from '@nuxt/schema'
|
import type { AppConfig } from '@nuxt/schema'
|
||||||
import _appConfig from '#build/app.config'
|
import _appConfig from '#build/app.config'
|
||||||
import theme from '#build/ui/navigationMenu'
|
import theme from '#build/ui/navigationMenu'
|
||||||
import type { LinkProps } from '#ui/components/Link.vue'
|
import type { AvatarProps, BadgeProps, IconProps, LinkProps } from '#ui/types'
|
||||||
import type { AvatarProps } from '#ui/components/Avatar.vue'
|
|
||||||
import type { BadgeProps } from '#ui/components/Badge.vue'
|
|
||||||
import type { IconProps } from '#ui/components/Icon.vue'
|
|
||||||
|
|
||||||
const appConfig = _appConfig as AppConfig & { ui: { navigationMenu: Partial<typeof theme> } }
|
const appConfig = _appConfig as AppConfig & { ui: { navigationMenu: Partial<typeof theme> } }
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import type { DialogRootProps, DialogRootEmits, DialogContentProps } from 'radix
|
|||||||
import type { AppConfig } from '@nuxt/schema'
|
import type { AppConfig } from '@nuxt/schema'
|
||||||
import _appConfig from '#build/app.config'
|
import _appConfig from '#build/app.config'
|
||||||
import theme from '#build/ui/slideover'
|
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> } }
|
const appConfig = _appConfig as AppConfig & { ui: { slideover: Partial<typeof theme> } }
|
||||||
|
|
||||||
@@ -42,8 +42,8 @@ export interface SlideoverSlots {
|
|||||||
import { computed, toRef } from 'vue'
|
import { computed, toRef } from 'vue'
|
||||||
import { DialogRoot, DialogTrigger, DialogPortal, DialogOverlay, DialogContent, DialogTitle, DialogDescription, DialogClose, useForwardPropsEmits } from 'radix-vue'
|
import { DialogRoot, DialogTrigger, DialogPortal, DialogOverlay, DialogContent, DialogTitle, DialogDescription, DialogClose, useForwardPropsEmits } from 'radix-vue'
|
||||||
import { reactivePick } from '@vueuse/core'
|
import { reactivePick } from '@vueuse/core'
|
||||||
import { useAppConfig } from '#app'
|
import { useAppConfig } from '#imports'
|
||||||
import UButton from '#ui/components/Button.vue'
|
import { UButton } from '#components'
|
||||||
|
|
||||||
const props = withDefaults(defineProps<SlideoverProps>(), {
|
const props = withDefaults(defineProps<SlideoverProps>(), {
|
||||||
portal: true,
|
portal: true,
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import type { SwitchRootProps, SwitchRootEmits } from 'radix-vue'
|
|||||||
import type { AppConfig } from '@nuxt/schema'
|
import type { AppConfig } from '@nuxt/schema'
|
||||||
import _appConfig from '#build/app.config'
|
import _appConfig from '#build/app.config'
|
||||||
import theme from '#build/ui/switch'
|
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> } }
|
const appConfig = _appConfig as AppConfig & { ui: { switch: Partial<typeof theme> } }
|
||||||
|
|
||||||
@@ -30,7 +30,7 @@ export interface SwitchEmits extends SwitchRootEmits {}
|
|||||||
import { computed } from 'vue'
|
import { computed } from 'vue'
|
||||||
import { SwitchRoot, SwitchThumb, useForwardPropsEmits } from 'radix-vue'
|
import { SwitchRoot, SwitchThumb, useForwardPropsEmits } from 'radix-vue'
|
||||||
import { reactivePick } from '@vueuse/core'
|
import { reactivePick } from '@vueuse/core'
|
||||||
import { useAppConfig } from '#app'
|
import { useAppConfig } from '#imports'
|
||||||
|
|
||||||
const props = defineProps<SwitchProps>()
|
const props = defineProps<SwitchProps>()
|
||||||
const emits = defineEmits<SwitchEmits>()
|
const emits = defineEmits<SwitchEmits>()
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ import { tv, type VariantProps } from 'tailwind-variants'
|
|||||||
import type { AppConfig } from '@nuxt/schema'
|
import type { AppConfig } from '@nuxt/schema'
|
||||||
import _appConfig from '#build/app.config'
|
import _appConfig from '#build/app.config'
|
||||||
import theme from '#build/ui/textarea'
|
import theme from '#build/ui/textarea'
|
||||||
import { looseToNumber } from '#ui/utils'
|
|
||||||
|
|
||||||
const appConfig = _appConfig as AppConfig & { ui: { textarea: Partial<typeof theme> } }
|
const appConfig = _appConfig as AppConfig & { ui: { textarea: Partial<typeof theme> } }
|
||||||
|
|
||||||
@@ -40,7 +39,8 @@ export interface TextareaSlots {
|
|||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { ref, computed, onMounted, nextTick, watch } from 'vue'
|
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 })
|
defineOptions({ inheritAttrs: false })
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import type { TooltipRootProps, TooltipRootEmits, TooltipContentProps, TooltipAr
|
|||||||
import type { AppConfig } from '@nuxt/schema'
|
import type { AppConfig } from '@nuxt/schema'
|
||||||
import _appConfig from '#build/app.config'
|
import _appConfig from '#build/app.config'
|
||||||
import theme from '#build/ui/tooltip'
|
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> } }
|
const appConfig = _appConfig as AppConfig & { ui: { tooltip: Partial<typeof theme> } }
|
||||||
|
|
||||||
@@ -35,7 +35,7 @@ import { computed, toRef } from 'vue'
|
|||||||
import { defu } from 'defu'
|
import { defu } from 'defu'
|
||||||
import { TooltipRoot, TooltipTrigger, TooltipPortal, TooltipContent, TooltipArrow, useForwardPropsEmits } from 'radix-vue'
|
import { TooltipRoot, TooltipTrigger, TooltipPortal, TooltipContent, TooltipArrow, useForwardPropsEmits } from 'radix-vue'
|
||||||
import { reactivePick } from '@vueuse/core'
|
import { reactivePick } from '@vueuse/core'
|
||||||
import UKbd from '#ui/components/Kbd.vue'
|
import { UKbd } from '#components'
|
||||||
|
|
||||||
const props = withDefaults(defineProps<TooltipProps>(), { portal: true })
|
const props = withDefaults(defineProps<TooltipProps>(), { portal: true })
|
||||||
const emits = defineEmits<TooltipEmits>()
|
const emits = defineEmits<TooltipEmits>()
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import { computed } from 'vue'
|
import { computed } from 'vue'
|
||||||
import { useAppConfig } from '#app'
|
import { useAppConfig } from '#imports'
|
||||||
import type { IconProps } from '#ui/components/Icon.vue'
|
import type { IconProps } from '#ui/types'
|
||||||
|
|
||||||
export interface UseComponentIconsProps {
|
export interface UseComponentIconsProps {
|
||||||
icon?: IconProps['name']
|
icon?: IconProps['name']
|
||||||
|
|||||||
1
src/runtime/types/index.d.ts
vendored
1
src/runtime/types/index.d.ts
vendored
@@ -25,4 +25,3 @@ export * from '../components/Switch.vue'
|
|||||||
export * from '../components/Tabs.vue'
|
export * from '../components/Tabs.vue'
|
||||||
export * from '../components/Textarea.vue'
|
export * from '../components/Textarea.vue'
|
||||||
export * from '../components/Tooltip.vue'
|
export * from '../components/Tooltip.vue'
|
||||||
export * from '../composables/useComponentIcons'
|
|
||||||
|
|||||||
Reference in New Issue
Block a user