=
-T extends new () => { $props: infer P } ? NonNullable :
- T extends (props: infer P, ...args: any) => any ? P :
- {}
-
-export type ComponentSlots =
-T extends new () => { $slots: infer S } ? NonNullable :
- T extends (props: any, ctx: { slots: infer S; attrs: any; emit: any }, ...args: any) => any ? NonNullable :
- {}
-
-export type ComponentEmit =
-T extends new () => { $emit: infer E } ? NonNullable :
- T extends (props: any, ctx: { slots: any; attrs: any; emit: infer E }, ...args: any) => any ? NonNullable :
- {}
\ No newline at end of file
diff --git a/src/runtime/types/divider.d.ts b/src/runtime/types/divider.d.ts
deleted file mode 100644
index eb28bd0f..00000000
--- a/src/runtime/types/divider.d.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-import { divider } from '#ui/ui.config'
-
-export type DividerSize = keyof typeof divider.border.size.horizontal | keyof typeof divider.border.size.vertical
\ No newline at end of file
diff --git a/src/runtime/types/dropdown.d.ts b/src/runtime/types/dropdown.d.ts
deleted file mode 100644
index 67dad14e..00000000
--- a/src/runtime/types/dropdown.d.ts
+++ /dev/null
@@ -1,15 +0,0 @@
-import type { NuxtLinkProps } from '#app'
-import type { Avatar } from './avatar'
-
-export interface DropdownItem extends NuxtLinkProps {
- label: string
- labelClass?: string
- slot?: string
- icon?: string
- iconClass?: string
- avatar?: Avatar
- shortcuts?: string[]
- disabled?: boolean
- class?: string
- click?: Function
-}
diff --git a/src/runtime/types/form-group.d.ts b/src/runtime/types/form-group.d.ts
deleted file mode 100644
index 95af3e7f..00000000
--- a/src/runtime/types/form-group.d.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-import { formGroup } from '../ui.config'
-import type { ExtractDeepKey } from '.'
-import type { AppConfig } from 'nuxt/schema'
-
-export type FormGroupSize = keyof typeof formGroup.size | ExtractDeepKey
diff --git a/src/runtime/types/horizontal-navigation.d.ts b/src/runtime/types/horizontal-navigation.d.ts
deleted file mode 100644
index ac50b2ee..00000000
--- a/src/runtime/types/horizontal-navigation.d.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-import type { Link } from './link'
-import type { Avatar } from './avatar'
-import type { Badge } from './badge'
-
-export interface HorizontalNavigationLink extends Link {
- label: string
- labelClass?: string
- icon?: string
- iconClass?: string
- avatar?: Avatar
- click?: Function
- badge?: string | number | Badge
-}
diff --git a/src/runtime/types/input.d.ts b/src/runtime/types/input.d.ts
deleted file mode 100644
index 2aed00ca..00000000
--- a/src/runtime/types/input.d.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-import { input } from '../ui.config'
-import type { NestedKeyOf, ExtractDeepKey, ExtractDeepObject } from '.'
-import colors from '#ui-colors'
-import type { AppConfig } from 'nuxt/schema'
-
-export type InputSize = keyof typeof input.size | ExtractDeepKey
-export type InputColor = keyof typeof input.color | ExtractDeepKey | typeof colors[number]
-export type InputVariant = keyof typeof input.variant | ExtractDeepKey | NestedKeyOf | NestedKeyOf>
diff --git a/src/runtime/types/kbd.d.ts b/src/runtime/types/kbd.d.ts
deleted file mode 100644
index ad9d6bec..00000000
--- a/src/runtime/types/kbd.d.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-import { kbd } from '../ui.config'
-import type { ExtractDeepKey } from '.'
-import type { AppConfig } from 'nuxt/schema'
-
-export type KbdSize = keyof typeof kbd.size | ExtractDeepKey
diff --git a/src/runtime/types/link.d.ts b/src/runtime/types/link.d.ts
deleted file mode 100644
index d39f5f2a..00000000
--- a/src/runtime/types/link.d.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-import type { NuxtLinkProps } from '#app'
-
-export interface Link extends NuxtLinkProps {
- as?: string
- type?: string
- disabled?: boolean
- active?: boolean
- exact?: boolean
- exactQuery?: boolean
- exactMatch?: boolean
- inactiveClass?: string
-}
diff --git a/src/runtime/types/meter.d.ts b/src/runtime/types/meter.d.ts
deleted file mode 100644
index 6ac121a6..00000000
--- a/src/runtime/types/meter.d.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-import { meter } from '../ui.config'
-import colors from '#ui-colors'
-
-export type MeterSize = keyof typeof meter.meter.size
-export type MeterColor = keyof typeof meter.color | typeof colors[number]
diff --git a/src/runtime/types/modal.d.ts b/src/runtime/types/modal.d.ts
deleted file mode 100644
index 9c561232..00000000
--- a/src/runtime/types/modal.d.ts
+++ /dev/null
@@ -1,18 +0,0 @@
-import type { Component } from 'vue'
-
-export interface Modal {
- appear?: boolean
- overlay?: boolean
- transition?: boolean
- preventClose?: boolean
- fullscreen?: boolean
- class?: string | Object | string[]
- ui?: any
- onClose?: () => void
- onClosePrevented?: () => void
-}
-
-export interface ModalState {
- component: Component | string
- props: Modal
-}
\ No newline at end of file
diff --git a/src/runtime/types/notification.d.ts b/src/runtime/types/notification.d.ts
deleted file mode 100644
index 08cbdf95..00000000
--- a/src/runtime/types/notification.d.ts
+++ /dev/null
@@ -1,24 +0,0 @@
-import type { Avatar } from './avatar'
-import type { Button } from './button'
-import colors from '#ui-colors'
-
-export type NotificationColor = 'gray' | typeof colors[number]
-
-export interface NotificationAction extends Button {
- click?: Function
-}
-
-export interface Notification {
- id: string
- title: string
- description?: string
- icon?: string
- avatar?: Avatar
- closeButton?: Button
- timeout: number
- actions?: NotificationAction[]
- click?: Function
- callback?: Function
- color?: NotificationColor
- ui?: any
-}
diff --git a/src/runtime/types/popper.d.ts b/src/runtime/types/popper.d.ts
deleted file mode 100644
index 4c8b4e3c..00000000
--- a/src/runtime/types/popper.d.ts
+++ /dev/null
@@ -1,17 +0,0 @@
-import type { Placement, PositioningStrategy } from '@popperjs/core'
-
-export interface PopperOptions {
- // Workaround for weak types: https://mariusschulz.com/blog/weak-type-detection-in-typescript#workarounds-for-weak-types
- [key: string]: unknown
- locked?: boolean
- overflowPadding?: number
- offsetDistance?: number
- offsetSkid?: number
- placement?: Placement
- strategy?: PositioningStrategy
- gpuAcceleration?: boolean
- adaptive?: boolean
- scroll?: boolean
- resize?: boolean
- arrow?: boolean
-}
diff --git a/src/runtime/types/progress.d.ts b/src/runtime/types/progress.d.ts
deleted file mode 100644
index 31465393..00000000
--- a/src/runtime/types/progress.d.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import { progress } from '../ui.config'
-import colors from '#ui-colors'
-
-export type ProgressSize = keyof typeof progress.progress.size
-export type ProgressAnimation = keyof typeof progress.animation
-export type ProgressColor = typeof colors[number]
diff --git a/src/runtime/types/range.d.ts b/src/runtime/types/range.d.ts
deleted file mode 100644
index 72a2660b..00000000
--- a/src/runtime/types/range.d.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-import { range } from '../ui.config'
-import type { ExtractDeepKey } from '.'
-import type { AppConfig } from 'nuxt/schema'
-import colors from '#ui-colors'
-
-export type RangeSize = keyof typeof range.size | ExtractDeepKey
-export type RangeColor = typeof colors[number]
diff --git a/src/runtime/types/select.d.ts b/src/runtime/types/select.d.ts
deleted file mode 100644
index 9696470f..00000000
--- a/src/runtime/types/select.d.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-import { select } from '../ui.config'
-import type { NestedKeyOf, ExtractDeepKey, ExtractDeepObject } from '.'
-import colors from '#ui-colors'
-import type { AppConfig } from 'nuxt/schema'
-
-export type SelectSize = keyof typeof select.size | ExtractDeepKey
-export type SelectColor = keyof typeof select.color | ExtractDeepKey | typeof colors[number]
-export type SelectVariant = keyof typeof select.variant | ExtractDeepKey | NestedKeyOf | NestedKeyOf>
diff --git a/src/runtime/types/slideover.d.ts b/src/runtime/types/slideover.d.ts
deleted file mode 100644
index 291d20fe..00000000
--- a/src/runtime/types/slideover.d.ts
+++ /dev/null
@@ -1,17 +0,0 @@
-import type { Component } from 'vue'
-
-interface Slideover {
- ui?: any;
- side?: 'right' | 'left';
- transition?: boolean;
- appear?: boolean;
- overlay?: boolean;
- preventClose?: boolean;
- modelValue?: boolean;
-}
-
-interface SlideoverState {
- component: Component | string;
- props: Slideover;
-}
-
diff --git a/src/runtime/types/tabs.d.ts b/src/runtime/types/tabs.d.ts
deleted file mode 100644
index b09bb4a8..00000000
--- a/src/runtime/types/tabs.d.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-export interface TabItem {
- label: string
- slot?: string
- disabled?: boolean
- content?: string
- [key: string]: any
-}
diff --git a/src/runtime/types/textarea.d.ts b/src/runtime/types/textarea.d.ts
deleted file mode 100644
index f8a74b59..00000000
--- a/src/runtime/types/textarea.d.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-import { textarea } from '../ui.config'
-import type { NestedKeyOf, ExtractDeepKey, ExtractDeepObject } from '.'
-import colors from '#ui-colors'
-import type { AppConfig } from 'nuxt/schema'
-
-export type TextareaSize = keyof typeof textarea.size | ExtractDeepKey
-export type TextareaColor = keyof typeof textarea.color | ExtractDeepKey | typeof colors[number]
-export type TextareaVariant = keyof typeof textarea.variant | ExtractDeepKey | NestedKeyOf | NestedKeyOf>
diff --git a/src/runtime/types/toggle.d.ts b/src/runtime/types/toggle.d.ts
deleted file mode 100644
index 02bc619e..00000000
--- a/src/runtime/types/toggle.d.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-import { toggle } from '../ui.config'
-import type { ExtractDeepKey } from '.'
-import type { AppConfig } from 'nuxt/schema'
-import colors from '#ui-colors'
-
-export type ToggleSize = keyof typeof toggle.size | ExtractDeepKey
-export type ToggleColor = typeof colors[number]
diff --git a/src/runtime/types/tooltip.d.ts b/src/runtime/types/tooltip.d.ts
deleted file mode 100644
index 314d0bcf..00000000
--- a/src/runtime/types/tooltip.d.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-export interface Tooltip {
- text?: string
- prevent?: boolean
- shortcuts?: string[]
- openDelay?: number
- closeDelay?: number
-}
diff --git a/src/runtime/types/utils.d.ts b/src/runtime/types/utils.d.ts
deleted file mode 100644
index 82a54887..00000000
--- a/src/runtime/types/utils.d.ts
+++ /dev/null
@@ -1,28 +0,0 @@
-export type Strategy = 'merge' | 'override'
-
-export type NestedKeyOf> = {
- [Key in keyof ObjectType]: ObjectType[Key] extends Record
- ? NestedKeyOf
- : Key
-}[keyof ObjectType]
-
-export type DeepPartial = Partial<{
- [P in keyof T]: DeepPartial | { [key: string]: string | object }
-}>
-
-type DeepKey =
- Keys extends [infer First, ...infer Rest]
- ? First extends keyof T
- ? Rest extends string[]
- ? DeepKey
- : never
- : never
- : T
-
-export type ExtractDeepKey = DeepKey extends infer Result
- ? Result extends Record ? keyof Result : never
- : never
-
-export type ExtractDeepObject = DeepKey extends infer Result
- ? Result extends Record ? Result : never
- : never
diff --git a/src/runtime/types/vertical-navigation.d.ts b/src/runtime/types/vertical-navigation.d.ts
deleted file mode 100644
index 852484fb..00000000
--- a/src/runtime/types/vertical-navigation.d.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-import type { Link } from './link'
-import type { Avatar } from './avatar'
-import type { Badge } from './badge'
-
-export interface VerticalNavigationLink extends Link {
- label: string
- labelClass?: string
- icon?: string
- iconClass?: string
- avatar?: Avatar
- click?: Function
- badge?: string | number | Badge
-}
diff --git a/src/runtime/ui.config/data/table.ts b/src/runtime/ui.config/data/table.ts
deleted file mode 100644
index aba64419..00000000
--- a/src/runtime/ui.config/data/table.ts
+++ /dev/null
@@ -1,66 +0,0 @@
-export default {
- wrapper: 'relative overflow-x-auto',
- base: 'min-w-full table-fixed',
- divide: 'divide-y divide-gray-300 dark:divide-gray-700',
- thead: 'relative',
- tbody: 'divide-y divide-gray-200 dark:divide-gray-800',
- tr: {
- base: '',
- selected: 'bg-gray-50 dark:bg-gray-800/50',
- active: 'hover:bg-gray-50 dark:hover:bg-gray-800/50 cursor-pointer'
- },
- th: {
- base: 'text-left rtl:text-right',
- padding: 'px-4 py-3.5',
- color: 'text-gray-900 dark:text-white',
- font: 'font-semibold',
- size: 'text-sm'
- },
- td: {
- base: 'whitespace-nowrap',
- padding: 'px-4 py-4',
- color: 'text-gray-500 dark:text-gray-400',
- font: '',
- size: 'text-sm'
- },
- checkbox: {
- padding: 'ps-4'
- },
- loadingState: {
- wrapper: 'flex flex-col items-center justify-center flex-1 px-6 py-14 sm:px-14',
- label: 'text-sm text-center text-gray-900 dark:text-white',
- icon: 'w-6 h-6 mx-auto text-gray-400 dark:text-gray-500 mb-4 animate-spin'
- },
- emptyState: {
- wrapper: 'flex flex-col items-center justify-center flex-1 px-6 py-14 sm:px-14',
- label: 'text-sm text-center text-gray-900 dark:text-white',
- icon: 'w-6 h-6 mx-auto text-gray-400 dark:text-gray-500 mb-4'
- },
- progress: {
- wrapper: 'absolute inset-x-0 -bottom-[0.5px] p-0'
- },
- default: {
- sortAscIcon: 'i-heroicons-bars-arrow-up-20-solid',
- sortDescIcon: 'i-heroicons-bars-arrow-down-20-solid',
- sortButton: {
- icon: 'i-heroicons-arrows-up-down-20-solid',
- trailing: true,
- square: true,
- color: 'gray' as const,
- variant: 'ghost' as const,
- class: '-m-1.5'
- },
- progress: {
- color: 'primary' as const,
- animation: 'carousel' as const
- },
- loadingState: {
- icon: 'i-heroicons-arrow-path-20-solid',
- label: 'Loading...'
- },
- emptyState: {
- icon: 'i-heroicons-circle-stack-20-solid',
- label: 'No items.'
- }
- }
-}
diff --git a/src/runtime/ui.config/elements/accordion.ts b/src/runtime/ui.config/elements/accordion.ts
deleted file mode 100644
index 1891160b..00000000
--- a/src/runtime/ui.config/elements/accordion.ts
+++ /dev/null
@@ -1,21 +0,0 @@
-export default {
- wrapper: 'w-full flex flex-col',
- container: 'w-full flex flex-col',
- item: {
- base: '',
- size: 'text-sm',
- color: 'text-gray-500 dark:text-gray-400',
- padding: 'pt-1.5 pb-3',
- icon: 'ms-auto transform transition-transform duration-200'
- },
- transition: {
- enterActiveClass: 'overflow-hidden transition-[height] duration-200 ease-out',
- leaveActiveClass: 'overflow-hidden transition-[height] duration-200 ease-out'
- },
- default: {
- openIcon: 'i-heroicons-chevron-down-20-solid',
- closeIcon: '',
- class: 'mb-1.5 w-full',
- variant: 'soft' as const
- }
-}
diff --git a/src/runtime/ui.config/elements/alert.ts b/src/runtime/ui.config/elements/alert.ts
deleted file mode 100644
index 2a503ece..00000000
--- a/src/runtime/ui.config/elements/alert.ts
+++ /dev/null
@@ -1,40 +0,0 @@
-export default {
- wrapper: 'w-full relative overflow-hidden',
- inner: 'w-0 flex-1',
- title: 'text-sm font-medium',
- description: 'mt-1 text-sm leading-4 opacity-90',
- actions: 'flex items-center gap-2 mt-3 flex-shrink-0',
- shadow: '',
- rounded: 'rounded-lg',
- padding: 'p-4',
- gap: 'gap-3',
- icon: {
- base: 'flex-shrink-0 w-5 h-5'
- },
- avatar: {
- base: 'flex-shrink-0 self-center',
- size: 'md' as const
- },
- color: {
- white: {
- solid: 'text-gray-900 dark:text-white bg-white dark:bg-gray-900 ring-1 ring-gray-200 dark:ring-gray-800'
- }
- },
- variant: {
- solid: 'bg-{color}-500 dark:bg-{color}-400 text-white dark:text-gray-900',
- outline: 'text-{color}-500 dark:text-{color}-400 ring-1 ring-inset ring-{color}-500 dark:ring-{color}-400',
- soft: 'bg-{color}-50 dark:bg-{color}-400 dark:bg-opacity-10 text-{color}-500 dark:text-{color}-400',
- subtle: 'bg-{color}-50 dark:bg-{color}-400 dark:bg-opacity-10 text-{color}-500 dark:text-{color}-400 ring-1 ring-inset ring-{color}-500 dark:ring-{color}-400 ring-opacity-25 dark:ring-opacity-25'
- },
- default: {
- color: 'white',
- variant: 'solid',
- icon: null,
- closeButton: null,
- actionButton: {
- size: 'xs' as const,
- color: 'primary' as const,
- variant: 'link' as const
- }
- }
-}
diff --git a/src/runtime/ui.config/elements/avatar.ts b/src/runtime/ui.config/elements/avatar.ts
deleted file mode 100644
index 46255bf7..00000000
--- a/src/runtime/ui.config/elements/avatar.ts
+++ /dev/null
@@ -1,59 +0,0 @@
-export default {
- wrapper: 'relative inline-flex items-center justify-center flex-shrink-0',
- background: 'bg-gray-100 dark:bg-gray-800',
- rounded: 'rounded-full',
- text: 'font-medium leading-none text-gray-900 dark:text-white truncate',
- placeholder: 'font-medium leading-none text-gray-500 dark:text-gray-400 truncate',
- size: {
- '3xs': 'h-4 w-4 text-[8px]',
- '2xs': 'h-5 w-5 text-[10px]',
- xs: 'h-6 w-6 text-xs',
- sm: 'h-8 w-8 text-sm',
- md: 'h-10 w-10 text-base',
- lg: 'h-12 w-12 text-lg',
- xl: 'h-14 w-14 text-xl',
- '2xl': 'h-16 w-16 text-2xl',
- '3xl': 'h-20 w-20 text-3xl'
- },
- chip: {
- base: 'absolute rounded-full ring-1 ring-white dark:ring-gray-900 flex items-center justify-center text-white dark:text-gray-900 font-medium',
- background: 'bg-{color}-500 dark:bg-{color}-400',
- position: {
- 'top-right': 'top-0 right-0',
- 'bottom-right': 'bottom-0 right-0',
- 'top-left': 'top-0 left-0',
- 'bottom-left': 'bottom-0 left-0'
- },
- size: {
- '3xs': 'h-[4px] min-w-[4px] text-[4px] p-px',
- '2xs': 'h-[5px] min-w-[5px] text-[5px] p-px',
- xs: 'h-1.5 min-w-[0.375rem] text-[6px] p-px',
- sm: 'h-2 min-w-[0.5rem] text-[7px] p-0.5',
- md: 'h-2.5 min-w-[0.625rem] text-[8px] p-0.5',
- lg: 'h-3 min-w-[0.75rem] text-[10px] p-0.5',
- xl: 'h-3.5 min-w-[0.875rem] text-[11px] p-1',
- '2xl': 'h-4 min-w-[1rem] text-[12px] p-1',
- '3xl': 'h-5 min-w-[1.25rem] text-[14px] p-1'
- }
- },
- icon: {
- base: 'text-gray-500 dark:text-gray-400 flex-shrink-0',
- size: {
- '3xs': 'h-2 w-2',
- '2xs': 'h-2.5 w-2.5',
- xs: 'h-3 w-3',
- sm: 'h-4 w-4',
- md: 'h-5 w-5',
- lg: 'h-6 w-6',
- xl: 'h-7 w-7',
- '2xl': 'h-8 w-8',
- '3xl': 'h-10 w-10'
- }
- },
- default: {
- size: 'sm',
- icon: null,
- chipColor: null,
- chipPosition: 'top-right'
- }
-}
\ No newline at end of file
diff --git a/src/runtime/ui.config/elements/avatarGroup.ts b/src/runtime/ui.config/elements/avatarGroup.ts
deleted file mode 100644
index adbf4211..00000000
--- a/src/runtime/ui.config/elements/avatarGroup.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-export default {
- wrapper: 'inline-flex flex-row-reverse justify-end',
- ring: 'ring-2 ring-white dark:ring-gray-900',
- margin: '-me-1.5 first:me-0'
-}
\ No newline at end of file
diff --git a/src/runtime/ui.config/elements/badge.ts b/src/runtime/ui.config/elements/badge.ts
deleted file mode 100644
index 8363271a..00000000
--- a/src/runtime/ui.config/elements/badge.ts
+++ /dev/null
@@ -1,33 +0,0 @@
-export default {
- base: 'inline-flex items-center',
- rounded: 'rounded-md',
- font: 'font-medium',
- size: {
- xs: 'text-xs px-1.5 py-0.5',
- sm: 'text-xs px-2 py-1',
- md: 'text-sm px-2 py-1',
- lg: 'text-sm px-2.5 py-1.5'
- },
- color: {
- white: {
- solid: 'ring-1 ring-inset ring-gray-300 dark:ring-gray-700 text-gray-900 dark:text-white bg-white dark:bg-gray-900'
- },
- gray: {
- solid: 'ring-1 ring-inset ring-gray-300 dark:ring-gray-700 text-gray-700 dark:text-gray-200 bg-gray-50 dark:bg-gray-800'
- },
- black: {
- solid: 'text-white dark:text-gray-900 bg-gray-900 dark:bg-white'
- }
- },
- variant: {
- solid: 'bg-{color}-500 dark:bg-{color}-400 text-white dark:text-gray-900',
- outline: 'text-{color}-500 dark:text-{color}-400 ring-1 ring-inset ring-{color}-500 dark:ring-{color}-400',
- soft: 'bg-{color}-50 dark:bg-{color}-400 dark:bg-opacity-10 text-{color}-500 dark:text-{color}-400',
- subtle: 'bg-{color}-50 dark:bg-{color}-400 dark:bg-opacity-10 text-{color}-500 dark:text-{color}-400 ring-1 ring-inset ring-{color}-500 dark:ring-{color}-400 ring-opacity-25 dark:ring-opacity-25'
- },
- default: {
- size: 'sm',
- variant: 'solid',
- color: 'primary'
- }
-}
\ No newline at end of file
diff --git a/src/runtime/ui.config/elements/button.ts b/src/runtime/ui.config/elements/button.ts
deleted file mode 100644
index 2bde090f..00000000
--- a/src/runtime/ui.config/elements/button.ts
+++ /dev/null
@@ -1,80 +0,0 @@
-export default {
- base: 'focus:outline-none focus-visible:outline-0 disabled:cursor-not-allowed disabled:opacity-75 flex-shrink-0',
- font: 'font-medium',
- rounded: 'rounded-md',
- truncate: 'text-left break-all line-clamp-1',
- block: 'w-full flex justify-center items-center',
- inline: 'inline-flex items-center',
- size: {
- '2xs': 'text-xs',
- xs: 'text-xs',
- sm: 'text-sm',
- md: 'text-sm',
- lg: 'text-sm',
- xl: 'text-base'
- },
- gap: {
- '2xs': 'gap-x-1',
- xs: 'gap-x-1.5',
- sm: 'gap-x-1.5',
- md: 'gap-x-2',
- lg: 'gap-x-2.5',
- xl: 'gap-x-2.5'
- },
- padding: {
- '2xs': 'px-2 py-1',
- xs: 'px-2.5 py-1.5',
- sm: 'px-2.5 py-1.5',
- md: 'px-3 py-2',
- lg: 'px-3.5 py-2.5',
- xl: 'px-3.5 py-2.5'
- },
- square: {
- '2xs': 'p-1',
- xs: 'p-1.5',
- sm: 'p-1.5',
- md: 'p-2',
- lg: 'p-2.5',
- xl: 'p-2.5'
- },
- color: {
- white: {
- solid: 'shadow-sm ring-1 ring-inset ring-gray-300 dark:ring-gray-700 text-gray-900 dark:text-white bg-white hover:bg-gray-50 disabled:bg-white dark:bg-gray-900 dark:hover:bg-gray-800/50 dark:disabled:bg-gray-900 focus-visible:ring-2 focus-visible:ring-primary-500 dark:focus-visible:ring-primary-400',
- ghost: 'text-gray-900 dark:text-white hover:bg-white dark:hover:bg-gray-900 focus-visible:ring-inset focus-visible:ring-2 focus-visible:ring-primary-500 dark:focus-visible:ring-primary-400'
- },
- gray: {
- solid: 'shadow-sm ring-1 ring-inset ring-gray-300 dark:ring-gray-700 text-gray-700 dark:text-gray-200 bg-gray-50 hover:bg-gray-100 disabled:bg-gray-50 dark:bg-gray-800 dark:hover:bg-gray-700/50 dark:disabled:bg-gray-800 focus-visible:ring-2 focus-visible:ring-primary-500 dark:focus-visible:ring-primary-400',
- ghost: 'text-gray-700 dark:text-gray-200 hover:text-gray-900 dark:hover:text-white hover:bg-gray-50 dark:hover:bg-gray-800 focus-visible:ring-inset focus-visible:ring-2 focus-visible:ring-primary-500 dark:focus-visible:ring-primary-400',
- link: 'text-gray-500 dark:text-gray-400 hover:text-gray-700 dark:hover:text-gray-200 underline-offset-4 hover:underline focus-visible:ring-inset focus-visible:ring-2 focus-visible:ring-primary-500 dark:focus-visible:ring-primary-400'
- },
- black: {
- solid: 'shadow-sm text-white dark:text-gray-900 bg-gray-900 hover:bg-gray-800 disabled:bg-gray-900 dark:bg-white dark:hover:bg-gray-100 dark:disabled:bg-white focus-visible:ring-inset focus-visible:ring-2 focus-visible:ring-primary-500 dark:focus-visible:ring-primary-400',
- link: 'text-gray-900 dark:text-white underline-offset-4 hover:underline focus-visible:ring-inset focus-visible:ring-2 focus-visible:ring-primary-500 dark:focus-visible:ring-primary-400'
- }
- },
- variant: {
- solid: 'shadow-sm text-white dark:text-gray-900 bg-{color}-500 hover:bg-{color}-600 disabled:bg-{color}-500 dark:bg-{color}-400 dark:hover:bg-{color}-500 dark:disabled:bg-{color}-400 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-{color}-500 dark:focus-visible:outline-{color}-400',
- outline: 'ring-1 ring-inset ring-current text-{color}-500 dark:text-{color}-400 hover:bg-{color}-50 disabled:bg-transparent dark:hover:bg-{color}-950 dark:disabled:bg-transparent focus-visible:ring-2 focus-visible:ring-{color}-500 dark:focus-visible:ring-{color}-400',
- soft: 'text-{color}-500 dark:text-{color}-400 bg-{color}-50 hover:bg-{color}-100 disabled:bg-{color}-50 dark:bg-{color}-950 dark:hover:bg-{color}-900 dark:disabled:bg-{color}-950 focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-{color}-500 dark:focus-visible:ring-{color}-400',
- ghost: 'text-{color}-500 dark:text-{color}-400 hover:bg-{color}-50 disabled:bg-transparent dark:hover:bg-{color}-950 dark:disabled:bg-transparent focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-{color}-500 dark:focus-visible:ring-{color}-400',
- link: 'text-{color}-500 hover:text-{color}-600 disabled:text-{color}-500 dark:text-{color}-400 dark:hover:text-{color}-500 dark:disabled:text-{color}-400 underline-offset-4 hover:underline focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-{color}-500 dark:focus-visible:ring-{color}-400'
- },
- icon: {
- base: 'flex-shrink-0',
- loading: 'animate-spin',
- size: {
- '2xs': 'h-4 w-4',
- xs: 'h-4 w-4',
- sm: 'h-5 w-5',
- md: 'h-5 w-5',
- lg: 'h-5 w-5',
- xl: 'h-6 w-6'
- }
- },
- default: {
- size: 'sm',
- variant: 'solid',
- color: 'primary',
- loadingIcon: 'i-heroicons-arrow-path-20-solid'
- }
-}
diff --git a/src/runtime/ui.config/elements/buttonGroup.ts b/src/runtime/ui.config/elements/buttonGroup.ts
deleted file mode 100644
index bf5ef5ed..00000000
--- a/src/runtime/ui.config/elements/buttonGroup.ts
+++ /dev/null
@@ -1,19 +0,0 @@
-export default {
- wrapper: {
- horizontal: 'inline-flex -space-x-px',
- vertical: 'inline-flex flex-col -space-y-px'
- },
- rounded: 'rounded-md',
- shadow: 'shadow-sm',
- orientation: {
- 'rounded-none': { horizontal: { start: 'rounded-s-none', end: 'rounded-e-none' }, vertical: { start: 'rounded-t-none', end: 'rounded-b-none' } },
- 'rounded-sm': { horizontal: { start: 'rounded-s-sm', end: 'rounded-e-sm' }, vertical: { start: 'rounded-t-sm', end: 'rounded-b-sm' } },
- rounded: { horizontal: { start: 'rounded-s', end: 'rounded-e' }, vertical: { start: 'rounded-t', end: 'rounded-b' } },
- 'rounded-md': { horizontal: { start: 'rounded-s-md', end: 'rounded-e-md' }, vertical: { start: 'rounded-t-md', end: 'rounded-b-md' } },
- 'rounded-lg': { horizontal: { start: 'rounded-s-lg', end: 'rounded-e-lg' }, vertical: { start: 'rounded-t-lg', end: 'rounded-b-lg' } },
- 'rounded-xl': { horizontal: { start: 'rounded-s-xl', end: 'rounded-e-xl' }, vertical: { start: 'rounded-t-xl', end: 'rounded-b-xl' } },
- 'rounded-2xl': { horizontal: { start: 'rounded-s-2xl', end: 'rounded-e-2xl' }, vertical: { start: 'rounded-t-2xl', end: 'rounded-b-2xl' } },
- 'rounded-3xl': { horizontal: { start: 'rounded-s-3xl', end: 'rounded-e-3xl' }, vertical: { start: 'rounded-t-3xl', end: 'rounded-b-3xl' } },
- 'rounded-full': { horizontal: { start: 'rounded-s-full', end: 'rounded-e-full' }, vertical: { start: 'rounded-t-full', end: 'rounded-b-full' } }
- }
-}
diff --git a/src/runtime/ui.config/elements/carousel.ts b/src/runtime/ui.config/elements/carousel.ts
deleted file mode 100644
index 297af98c..00000000
--- a/src/runtime/ui.config/elements/carousel.ts
+++ /dev/null
@@ -1,26 +0,0 @@
-export default {
- wrapper: 'relative',
- container: 'relative w-full flex overflow-x-auto snap-x snap-mandatory scroll-smooth',
- item: 'flex flex-none snap-center',
- arrows: {
- wrapper: 'flex items-center justify-between'
- },
- indicators: {
- wrapper: 'absolute flex items-center justify-center gap-3 bottom-4 inset-x-0',
- base: 'rounded-full h-3 w-3',
- active: 'bg-primary-500 dark:bg-primary-400',
- inactive: 'bg-gray-100 dark:bg-gray-800 mix-blend-overlay'
- },
- default: {
- prevButton: {
- color: 'black' as const,
- class: 'rtl:[&_span:first-child]:rotate-180 absolute left-4 top-1/2 transform -translate-y-1/2 rounded-full',
- icon: 'i-heroicons-chevron-left-20-solid'
- },
- nextButton: {
- color: 'black' as const,
- class: 'rtl:[&_span:last-child]:rotate-180 absolute right-4 top-1/2 transform -translate-y-1/2 rounded-full',
- icon: 'i-heroicons-chevron-right-20-solid '
- }
- }
-}
diff --git a/src/runtime/ui.config/elements/chip.ts b/src/runtime/ui.config/elements/chip.ts
deleted file mode 100644
index 49287784..00000000
--- a/src/runtime/ui.config/elements/chip.ts
+++ /dev/null
@@ -1,34 +0,0 @@
-export default {
- wrapper: 'relative inline-flex items-center justify-center flex-shrink-0',
- base: 'absolute rounded-full ring-1 ring-white dark:ring-gray-900 flex items-center justify-center text-white dark:text-gray-900 font-medium whitespace-nowrap',
- background: 'bg-{color}-500 dark:bg-{color}-400',
- position: {
- 'top-right': 'top-0 right-0',
- 'bottom-right': 'bottom-0 right-0',
- 'top-left': 'top-0 left-0',
- 'bottom-left': 'bottom-0 left-0'
- },
- translate: {
- 'top-right': '-translate-y-1/2 translate-x-1/2 transform',
- 'bottom-right': 'translate-y-1/2 translate-x-1/2 transform',
- 'top-left': '-translate-y-1/2 -translate-x-1/2 transform',
- 'bottom-left': 'translate-y-1/2 -translate-x-1/2 transform'
- },
- size: {
- '3xs': 'h-[4px] min-w-[4px] text-[4px] p-px',
- '2xs': 'h-[5px] min-w-[5px] text-[5px] p-px',
- xs: 'h-1.5 min-w-[0.375rem] text-[6px] p-px',
- sm: 'h-2 min-w-[0.5rem] text-[7px] p-0.5',
- md: 'h-2.5 min-w-[0.625rem] text-[8px] p-0.5',
- lg: 'h-3 min-w-[0.75rem] text-[10px] p-0.5',
- xl: 'h-3.5 min-w-[0.875rem] text-[11px] p-1',
- '2xl': 'h-4 min-w-[1rem] text-[12px] p-1',
- '3xl': 'h-5 min-w-[1.25rem] text-[14px] p-1'
- },
- default: {
- size: 'sm',
- color: 'primary',
- position: 'top-right',
- inset: false
- }
-}
\ No newline at end of file
diff --git a/src/runtime/ui.config/elements/dropdown.ts b/src/runtime/ui.config/elements/dropdown.ts
deleted file mode 100644
index 160c34c1..00000000
--- a/src/runtime/ui.config/elements/dropdown.ts
+++ /dev/null
@@ -1,58 +0,0 @@
-import { arrow } from '../popper'
-
-export default {
- wrapper: 'relative inline-flex text-left rtl:text-right',
- container: 'z-20 group',
- trigger: 'inline-flex w-full',
- width: 'w-48',
- height: '',
- background: 'bg-white dark:bg-gray-800',
- shadow: 'shadow-lg',
- rounded: 'rounded-md',
- ring: 'ring-1 ring-gray-200 dark:ring-gray-700',
- base: 'relative focus:outline-none overflow-y-auto scroll-py-1',
- divide: 'divide-y divide-gray-200 dark:divide-gray-700',
- padding: 'p-1',
- item: {
- base: 'group flex items-center gap-1.5 w-full',
- rounded: 'rounded-md',
- padding: 'px-1.5 py-1.5',
- size: 'text-sm',
- active: 'bg-gray-100 dark:bg-gray-900 text-gray-900 dark:text-white',
- inactive: 'text-gray-700 dark:text-gray-200',
- disabled: 'cursor-not-allowed opacity-50',
- icon: {
- base: 'flex-shrink-0 w-5 h-5',
- active: 'text-gray-500 dark:text-gray-400',
- inactive: 'text-gray-400 dark:text-gray-500'
- },
- avatar: {
- base: 'flex-shrink-0',
- size: '2xs' as const
- },
- label: 'truncate',
- shortcuts: 'hidden md:inline-flex flex-shrink-0 gap-0.5 ms-auto'
- },
- // Syntax for `` component https://vuejs.org/guide/built-ins/transition.html#css-based-transitions
- transition: {
- enterActiveClass: 'transition duration-100 ease-out',
- enterFromClass: 'transform scale-95 opacity-0',
- enterToClass: 'transform scale-100 opacity-100',
- leaveActiveClass: 'transition duration-75 ease-in',
- leaveFromClass: 'transform scale-100 opacity-100',
- leaveToClass: 'transform scale-95 opacity-0'
- },
- popper: {
- placement: 'bottom-end',
- strategy: 'fixed'
- },
- default: {
- openDelay: 0,
- closeDelay: 0
- },
- arrow: {
- ...arrow,
- ring: 'before:ring-1 before:ring-gray-200 dark:before:ring-gray-700',
- background: 'before:bg-white dark:before:bg-gray-700'
- }
-}
diff --git a/src/runtime/ui.config/elements/kbd.ts b/src/runtime/ui.config/elements/kbd.ts
deleted file mode 100644
index fc360ff8..00000000
--- a/src/runtime/ui.config/elements/kbd.ts
+++ /dev/null
@@ -1,16 +0,0 @@
-export default {
- base: 'inline-flex items-center justify-center text-gray-900 dark:text-white',
- padding: 'px-1',
- size: {
- xs: 'h-4 min-w-[16px] text-[10px]',
- sm: 'h-5 min-w-[20px] text-[11px]',
- md: 'h-6 min-w-[24px] text-[12px]'
- },
- rounded: 'rounded',
- font: 'font-medium font-sans',
- background: 'bg-gray-100 dark:bg-gray-800',
- ring: 'ring-1 ring-gray-300 dark:ring-gray-700 ring-inset',
- default: {
- size: 'sm'
- }
-}
\ No newline at end of file
diff --git a/src/runtime/ui.config/elements/meter.ts b/src/runtime/ui.config/elements/meter.ts
deleted file mode 100644
index 4fd3e5f6..00000000
--- a/src/runtime/ui.config/elements/meter.ts
+++ /dev/null
@@ -1,76 +0,0 @@
-export default {
- wrapper: 'w-full flex flex-col gap-2',
- indicator: {
- container: 'min-w-fit transition-all',
- text: 'text-gray-400 dark:text-gray-500 text-end',
- size: {
- '2xs': 'text-xs',
- xs: 'text-xs',
- sm: 'text-sm',
- md: 'text-sm',
- lg: 'text-sm',
- xl: 'text-base',
- '2xl': 'text-base'
- }
- },
- meter: {
- base: 'appearance-none block w-full bg-none overflow-y-hidden',
- background: 'bg-gray-200 dark:bg-gray-700',
- color: 'text-{color}-500 dark:text-{color}-400',
- ring: '',
- rounded: 'rounded-full',
- shadow: '',
- size: {
- '2xs': 'h-px',
- xs: 'h-0.5',
- sm: 'h-1',
- md: 'h-2',
- lg: 'h-3',
- xl: 'h-4',
- '2xl': 'h-5'
- },
- appearance: {
- inner: '[&::-webkit-meter-inner-element]:block [&::-webkit-meter-inner-element]:relative [&::-webkit-meter-inner-element]:border-none [&::-webkit-meter-inner-element]:bg-none [&::-webkit-meter-inner-element]:bg-transparent',
- meter: '[&::-webkit-meter-bar]:border-none [&::-webkit-meter-bar]:bg-none [&::-webkit-meter-bar]:bg-transparent',
- bar: '[&::-webkit-meter-optimum-value]:border-none [&::-webkit-meter-optimum-value]:bg-none [&::-webkit-meter-optimum-value]:bg-current',
- value: '[&::-moz-meter-bar]:border-none [&::-moz-meter-bar]:bg-none [&::-moz-meter-bar]:bg-current'
- },
- bar: {
- transition: '[&::-webkit-meter-optimum-value]:transition-all [&::-moz-meter-bar]:transition-all',
- ring: '',
- rounded: '[&::-webkit-meter-optimum-value]:rounded-full [&::-moz-meter-bar]:rounded-full',
- size: {
- '2xs': '[&::-webkit-meter-optimum-value]:h-px [&::-moz-meter-bar]:h-px',
- xs: '[&::-webkit-meter-optimum-value]:h-0.5 [&::-moz-meter-bar]:h-0.5',
- sm: '[&::-webkit-meter-optimum-value]:h-1 [&::-moz-meter-bar]:h-1',
- md: '[&::-webkit-meter-optimum-value]:h-2 [&::-moz-meter-bar]:h-2',
- lg: '[&::-webkit-meter-optimum-value]:h-3 [&::-moz-meter-bar]:h-3',
- xl: '[&::-webkit-meter-optimum-value]:h-4 [&::-moz-meter-bar]:h-4',
- '2xl': '[&::-webkit-meter-optimum-value]:h-5 [&::-moz-meter-bar]:h-5'
- }
- }
- },
- label: {
- base: 'flex gap-2 items-center',
- text: 'truncate',
- color: 'text-{color}-500 dark:text-{color}-400',
- size: {
- '2xs': 'text-xs',
- xs: 'text-xs',
- sm: 'text-sm',
- md: 'text-sm',
- lg: 'text-sm',
- xl: 'text-base',
- '2xl': 'text-base'
- }
- },
- color: {
- white: 'text-white dark:text-black',
- black: 'text-black dark:text-white',
- gray: 'text-gray-500 dark:text-gray-400'
- },
- default: {
- size: 'md',
- color: 'primary'
- }
-}
\ No newline at end of file
diff --git a/src/runtime/ui.config/elements/meterGroup.ts b/src/runtime/ui.config/elements/meterGroup.ts
deleted file mode 100644
index f402f869..00000000
--- a/src/runtime/ui.config/elements/meterGroup.ts
+++ /dev/null
@@ -1,24 +0,0 @@
-export default {
- wrapper: 'flex flex-col gap-2 w-full',
- base: 'flex flex-row flex-nowrap flex-shrink overflow-hidden',
- background: 'bg-gray-200 dark:bg-gray-700',
- transition: 'transition-all',
- rounded: 'rounded-full',
- shadow: '',
- list: 'list-disc list-inside',
- orientation: {
- 'rounded-none': { left: 'rounded-s-none', right: 'rounded-e-none' },
- 'rounded-sm': { left: 'rounded-s-sm', right: 'rounded-e-sm' },
- rounded: { left: 'rounded-s', right: 'rounded-e' },
- 'rounded-md': { left: 'rounded-s-md', right: 'rounded-e-md' },
- 'rounded-lg': { left: 'rounded-s-lg', right: 'rounded-e-lg' },
- 'rounded-xl': { left: 'rounded-s-xl', right: 'rounded-e-xl' },
- 'rounded-2xl': { left: 'rounded-s-2xl', right: 'rounded-e-2xl' },
- 'rounded-3xl': { left: 'rounded-s-3xl', right: 'rounded-e-3xl' },
- 'rounded-full': { left: 'rounded-s-full', right: 'rounded-e-full' }
- },
- default: {
- size: 'md',
- icon: 'i-heroicons-minus-20-solid'
- }
-}
diff --git a/src/runtime/ui.config/elements/progress.ts b/src/runtime/ui.config/elements/progress.ts
deleted file mode 100644
index 154a1bf8..00000000
--- a/src/runtime/ui.config/elements/progress.ts
+++ /dev/null
@@ -1,74 +0,0 @@
-export default {
- wrapper: 'w-full flex flex-col gap-2',
- indicator: {
- container: {
- base: 'flex flex-row justify-end',
- width: 'min-w-fit',
- transition: 'transition-all'
- },
- align: 'text-end',
- width: 'w-fit',
- color: 'text-gray-400 dark:text-gray-500',
- size: {
- '2xs': 'text-xs',
- xs: 'text-xs',
- sm: 'text-sm',
- md: 'text-sm',
- lg: 'text-sm',
- xl: 'text-base',
- '2xl': 'text-base'
- }
- },
- progress: {
- base: 'block appearance-none border-none overflow-hidden',
- width: 'w-full [&::-webkit-progress-bar]:w-full',
- size: {
- '2xs': 'h-px',
- xs: 'h-0.5',
- sm: 'h-1',
- md: 'h-2',
- lg: 'h-3',
- xl: 'h-4',
- '2xl': 'h-5'
- },
- rounded: 'rounded-full [&::-webkit-progress-bar]:rounded-full',
- track: '[&::-webkit-progress-bar]:bg-gray-200 [&::-webkit-progress-bar]:dark:bg-gray-700 [@supports(selector(&::-moz-progress-bar))]:bg-gray-200 [@supports(selector(&::-moz-progress-bar))]:dark:bg-gray-700',
- bar: '[&::-webkit-progress-value]:rounded-full [&::-webkit-progress-value]:transition-all [&::-webkit-progress-value]:ease-in-out [&::-moz-progress-bar]:rounded-full',
- color: 'text-{color}-500 dark:text-{color}-400',
- background: '[&::-webkit-progress-value]:bg-current [&::-moz-progress-bar]:bg-current',
- indeterminate: {
- base: 'indeterminate:relative',
- rounded: 'indeterminate:after:rounded-full [&:indeterminate::-webkit-progress-value]:rounded-full [&:indeterminate::-moz-progress-bar]:rounded-full'
- }
- },
- steps: {
- base: 'grid grid-cols-1',
- color: 'text-{color}-500 dark:text-{color}-400',
- size: {
- '2xs': 'text-xs',
- xs: 'text-xs',
- sm: 'text-sm',
- md: 'text-sm',
- lg: 'text-sm',
- xl: 'text-base',
- '2xl': 'text-base'
- }
- },
- step: {
- base: 'transition-all opacity-0 truncate row-start-1 col-start-1',
- align: 'text-end',
- active: 'opacity-100',
- first: 'text-gray-500 dark:text-gray-400'
- },
- animation: {
- carousel: 'bar-animation-carousel',
- 'carousel-inverse': 'bar-animation-carousel-inverse',
- swing: 'bar-animation-swing',
- elastic: 'bar-animation-elastic'
- },
- default: {
- color: 'primary',
- size: 'md',
- animation: 'carousel'
- }
-}
\ No newline at end of file
diff --git a/src/runtime/ui.config/forms/checkbox.ts b/src/runtime/ui.config/forms/checkbox.ts
deleted file mode 100644
index 52c24b91..00000000
--- a/src/runtime/ui.config/forms/checkbox.ts
+++ /dev/null
@@ -1,18 +0,0 @@
-export default {
- wrapper: 'relative flex items-start',
- container: 'flex items-center h-5',
- base: 'h-4 w-4 dark:checked:bg-current dark:checked:border-transparent dark:indeterminate:bg-current dark:indeterminate:border-transparent disabled:opacity-50 disabled:cursor-not-allowed focus:ring-0 focus:ring-transparent focus:ring-offset-transparent',
- form: 'form-checkbox',
- rounded: 'rounded',
- color: 'text-{color}-500 dark:text-{color}-400',
- background: 'bg-white dark:bg-gray-900',
- border: 'border border-gray-300 dark:border-gray-700',
- ring: 'focus-visible:ring-2 focus-visible:ring-{color}-500 dark:focus-visible:ring-{color}-400 focus-visible:ring-offset-2 focus-visible:ring-offset-white dark:focus-visible:ring-offset-gray-900',
- inner: 'ms-3 flex flex-col',
- label: 'text-sm font-medium text-gray-700 dark:text-gray-200',
- required: 'text-sm text-red-500 dark:text-red-400',
- help: 'text-sm text-gray-500 dark:text-gray-400',
- default: {
- color: 'primary'
- }
-}
diff --git a/src/runtime/ui.config/forms/formGroup.ts b/src/runtime/ui.config/forms/formGroup.ts
deleted file mode 100644
index e9d10cdb..00000000
--- a/src/runtime/ui.config/forms/formGroup.ts
+++ /dev/null
@@ -1,26 +0,0 @@
-export default {
- wrapper: '',
- inner: '',
- label: {
- wrapper: 'flex content-center items-center justify-between',
- base: 'block font-medium text-gray-700 dark:text-gray-200',
- // eslint-disable-next-line quotes
- required: `after:content-['*'] after:ms-0.5 after:text-red-500 dark:after:text-red-400`
- },
- size: {
- '2xs': 'text-xs',
- xs: 'text-xs',
- sm: 'text-sm',
- md: 'text-sm',
- lg: 'text-sm',
- xl: 'text-base'
- },
- container: 'mt-1 relative',
- description: 'text-gray-500 dark:text-gray-400',
- hint: 'text-gray-500 dark:text-gray-400',
- help: 'mt-2 text-gray-500 dark:text-gray-400',
- error: 'mt-2 text-red-500 dark:text-red-400',
- default: {
- size: 'sm'
- }
-}
diff --git a/src/runtime/ui.config/forms/input.ts b/src/runtime/ui.config/forms/input.ts
deleted file mode 100644
index 1a9bf290..00000000
--- a/src/runtime/ui.config/forms/input.ts
+++ /dev/null
@@ -1,117 +0,0 @@
-export default {
- wrapper: 'relative',
- base: 'relative block w-full disabled:cursor-not-allowed disabled:opacity-75 focus:outline-none border-0',
- form: 'form-input',
- rounded: 'rounded-md',
- placeholder: 'placeholder-gray-400 dark:placeholder-gray-500',
- file: {
- base: 'file:cursor-pointer file:rounded-l-md file:absolute file:left-0 file:inset-y-0 file:font-medium file:m-0 file:border-0 file:ring-1 file:ring-gray-300 dark:file:ring-gray-700 file:text-gray-900 dark:file:text-white file:bg-gray-50 hover:file:bg-gray-100 dark:file:bg-gray-800 dark:hover:file:bg-gray-700/50',
- padding: {
- '2xs': 'ps-[85px]',
- xs: 'ps-[87px]',
- sm: 'ps-[96px]',
- md: 'ps-[98px]',
- lg: 'ps-[100px]',
- xl: 'ps-[109px]'
- }
- },
- size: {
- '2xs': 'text-xs',
- xs: 'text-xs',
- sm: 'text-sm',
- md: 'text-sm',
- lg: 'text-sm',
- xl: 'text-base'
- },
- gap: {
- '2xs': 'gap-x-1',
- xs: 'gap-x-1.5',
- sm: 'gap-x-1.5',
- md: 'gap-x-2',
- lg: 'gap-x-2.5',
- xl: 'gap-x-2.5'
- },
- padding: {
- '2xs': 'px-2 py-1',
- xs: 'px-2.5 py-1.5',
- sm: 'px-2.5 py-1.5',
- md: 'px-3 py-2',
- lg: 'px-3.5 py-2.5',
- xl: 'px-3.5 py-2.5'
- },
- leading: {
- padding: {
- '2xs': 'ps-7',
- xs: 'ps-8',
- sm: 'ps-9',
- md: 'ps-10',
- lg: 'ps-11',
- xl: 'ps-12'
- }
- },
- trailing: {
- padding: {
- '2xs': 'pe-7',
- xs: 'pe-8',
- sm: 'pe-9',
- md: 'pe-10',
- lg: 'pe-11',
- xl: 'pe-12'
- }
- },
- color: {
- white: {
- outline: 'shadow-sm bg-white dark:bg-gray-900 text-gray-900 dark:text-white ring-1 ring-inset ring-gray-300 dark:ring-gray-700 focus:ring-2 focus:ring-primary-500 dark:focus:ring-primary-400'
- },
- gray: {
- outline: 'shadow-sm bg-gray-50 dark:bg-gray-800 text-gray-900 dark:text-white ring-1 ring-inset ring-gray-300 dark:ring-gray-700 focus:ring-2 focus:ring-primary-500 dark:focus:ring-primary-400'
- }
- },
- variant: {
- outline: 'shadow-sm bg-transparent text-gray-900 dark:text-white ring-1 ring-inset ring-{color}-500 dark:ring-{color}-400 focus:ring-2 focus:ring-{color}-500 dark:focus:ring-{color}-400',
- none: 'bg-transparent focus:ring-0 focus:shadow-none'
- },
- icon: {
- base: 'flex-shrink-0 text-gray-400 dark:text-gray-500',
- color: 'text-{color}-500 dark:text-{color}-400',
- loading: 'animate-spin',
- size: {
- '2xs': 'h-4 w-4',
- xs: 'h-4 w-4',
- sm: 'h-5 w-5',
- md: 'h-5 w-5',
- lg: 'h-5 w-5',
- xl: 'h-6 w-6'
- },
- leading: {
- wrapper: 'absolute inset-y-0 start-0 flex items-center',
- pointer: 'pointer-events-none',
- padding: {
- '2xs': 'px-2',
- xs: 'px-2.5',
- sm: 'px-2.5',
- md: 'px-3',
- lg: 'px-3.5',
- xl: 'px-3.5'
- }
- },
- trailing: {
- wrapper: 'absolute inset-y-0 end-0 flex items-center',
- pointer: 'pointer-events-none',
- padding: {
- '2xs': 'px-2',
- xs: 'px-2.5',
- sm: 'px-2.5',
- md: 'px-3',
- lg: 'px-3.5',
- xl: 'px-3.5'
- }
- }
- },
- default: {
- size: 'sm',
- color: 'white',
- variant: 'outline',
- loadingIcon: 'i-heroicons-arrow-path-20-solid'
- }
-}
diff --git a/src/runtime/ui.config/forms/inputMenu.ts b/src/runtime/ui.config/forms/inputMenu.ts
deleted file mode 100644
index baa4dae4..00000000
--- a/src/runtime/ui.config/forms/inputMenu.ts
+++ /dev/null
@@ -1,63 +0,0 @@
-import { arrow } from '../popper'
-
-export default {
- container: 'z-20 group',
- trigger: 'flex items-center w-full',
- width: 'w-full',
- height: 'max-h-60',
- base: 'relative focus:outline-none overflow-y-auto scroll-py-1',
- background: 'bg-white dark:bg-gray-800',
- shadow: 'shadow-lg',
- rounded: 'rounded-md',
- padding: 'p-1',
- ring: 'ring-1 ring-gray-200 dark:ring-gray-700',
- empty: 'text-sm text-gray-400 dark:text-gray-500 px-2 py-1.5',
- option: {
- base: 'cursor-default select-none relative flex items-center justify-between gap-1',
- rounded: 'rounded-md',
- padding: 'px-1.5 py-1.5',
- size: 'text-sm',
- color: 'text-gray-900 dark:text-white',
- container: 'flex items-center gap-1.5 min-w-0',
- active: 'bg-gray-100 dark:bg-gray-900',
- inactive: '',
- selected: 'pe-7',
- disabled: 'cursor-not-allowed opacity-50',
- empty: 'text-sm text-gray-400 dark:text-gray-500 px-2 py-1.5',
- icon: {
- base: 'flex-shrink-0 h-5 w-5',
- active: 'text-gray-900 dark:text-white',
- inactive: 'text-gray-400 dark:text-gray-500'
- },
- selectedIcon: {
- wrapper: 'absolute inset-y-0 end-0 flex items-center',
- padding: 'pe-2',
- base: 'h-5 w-5 text-gray-900 dark:text-white flex-shrink-0'
- },
- avatar: {
- base: 'flex-shrink-0',
- size: '2xs' as const
- },
- chip: {
- base: 'flex-shrink-0 w-2 h-2 mx-1 rounded-full'
- }
- },
- // Syntax for `` component https://vuejs.org/guide/built-ins/transition.html#css-based-transitions
- transition: {
- leaveActiveClass: 'transition ease-in duration-100',
- leaveFromClass: 'opacity-100',
- leaveToClass: 'opacity-0'
- },
- popper: {
- placement: 'bottom-end'
- },
- default: {
- selectedIcon: 'i-heroicons-check-20-solid',
- trailingIcon: 'i-heroicons-chevron-down-20-solid'
- },
- arrow: {
- ...arrow,
- ring: 'before:ring-1 before:ring-gray-200 dark:before:ring-gray-700',
- background: 'before:bg-white dark:before:bg-gray-700'
- }
-}
diff --git a/src/runtime/ui.config/forms/radio.ts b/src/runtime/ui.config/forms/radio.ts
deleted file mode 100644
index 5b76a02e..00000000
--- a/src/runtime/ui.config/forms/radio.ts
+++ /dev/null
@@ -1,17 +0,0 @@
-export default {
- wrapper: 'relative flex items-start',
- container: 'flex items-center h-5',
- base: 'h-4 w-4 dark:checked:bg-current dark:checked:border-transparent disabled:opacity-50 disabled:cursor-not-allowed focus:ring-0 focus:ring-transparent focus:ring-offset-transparent',
- form: 'form-radio',
- color: 'text-{color}-500 dark:text-{color}-400',
- background: 'bg-white dark:bg-gray-900',
- border: 'border border-gray-300 dark:border-gray-700',
- ring: 'focus-visible:ring-2 focus-visible:ring-{color}-500 dark:focus-visible:ring-{color}-400 focus-visible:ring-offset-2 focus-visible:ring-offset-white dark:focus-visible:ring-offset-gray-900',
- inner: 'ms-3 flex flex-col',
- label: 'text-sm font-medium text-gray-700 dark:text-gray-200',
- required: 'text-sm text-red-500 dark:text-red-400',
- help: 'text-sm text-gray-500 dark:text-gray-400',
- default: {
- color: 'primary'
- }
-}
diff --git a/src/runtime/ui.config/forms/radioGroup.ts b/src/runtime/ui.config/forms/radioGroup.ts
deleted file mode 100644
index 74c19cf8..00000000
--- a/src/runtime/ui.config/forms/radioGroup.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-export default {
- wrapper: 'relative flex items-start',
- fieldset: '',
- legend: 'text-sm font-medium text-gray-700 dark:text-gray-200 mb-1',
- default: {
- color: 'primary'
- }
-}
diff --git a/src/runtime/ui.config/forms/range.ts b/src/runtime/ui.config/forms/range.ts
deleted file mode 100644
index 02ef06ea..00000000
--- a/src/runtime/ui.config/forms/range.ts
+++ /dev/null
@@ -1,63 +0,0 @@
-export default {
- wrapper: 'relative w-full flex items-center',
- base: 'w-full absolute appearance-none cursor-pointer disabled:cursor-not-allowed disabled:bg-opacity-50 focus:outline-none peer group',
- rounded: 'rounded-lg',
- background: 'bg-transparent',
- ring: 'focus-visible:ring-2 focus-visible:ring-{color}-500 dark:focus-visible:ring-{color}-400 focus-visible:ring-offset-2 focus-visible:ring-offset-white dark:focus-visible:ring-offset-gray-900',
- progress: {
- base: 'absolute pointer-events-none peer-disabled:bg-opacity-50',
- rounded: 'rounded-s-lg',
- background: 'bg-{color}-500 dark:bg-{color}-400',
- size: {
- '2xs': 'h-px',
- xs: 'h-0.5',
- sm: 'h-1',
- md: 'h-2',
- lg: 'h-3',
- xl: 'h-4',
- '2xl': 'h-5'
- }
- },
- thumb: {
- base: '[&::-webkit-slider-thumb]:relative [&::-moz-range-thumb]:relative [&::-webkit-slider-thumb]:z-[1] [&::-moz-range-thumb]:z-[1] [&::-webkit-slider-thumb]:appearance-none [&::-moz-range-thumb]:appearance-none [&::-webkit-slider-thumb]:rounded-full [&::-moz-range-thumb]:rounded-full [&::-moz-range-thumb]:border-0',
- color: 'text-{color}-500 dark:text-{color}-400',
- background: '[&::-webkit-slider-thumb]:bg-white [&::-webkit-slider-thumb]:dark:bg-gray-900 [&::-moz-range-thumb]:bg-current',
- ring: '[&::-webkit-slider-thumb]:ring-2 [&::-webkit-slider-thumb]:ring-current',
- size: {
- '2xs': '[&::-webkit-slider-thumb]:h-1.5 [&::-moz-range-thumb]:h-1.5 [&::-webkit-slider-thumb]:w-1.5 [&::-moz-range-thumb]:w-1.5 [&::-webkit-slider-thumb]:mt-[-2.5px] [&::-moz-range-thumb]:mt-[-2.5px]',
- xs: '[&::-webkit-slider-thumb]:h-2 [&::-moz-range-thumb]:h-2 [&::-webkit-slider-thumb]:w-2 [&::-moz-range-thumb]:w-2 [&::-webkit-slider-thumb]:mt-[-3px] [&::-moz-range-thumb]:mt-[-3px]',
- sm: '[&::-webkit-slider-thumb]:h-3 [&::-moz-range-thumb]:h-3 [&::-webkit-slider-thumb]:w-3 [&::-moz-range-thumb]:w-3 [&::-webkit-slider-thumb]:-mt-1 [&::-moz-range-thumb]:-mt-1',
- md: '[&::-webkit-slider-thumb]:h-4 [&::-moz-range-thumb]:h-4 [&::-webkit-slider-thumb]:w-4 [&::-moz-range-thumb]:w-4 [&::-webkit-slider-thumb]:-mt-1 [&::-moz-range-thumb]:-mt-1',
- lg: '[&::-webkit-slider-thumb]:h-5 [&::-moz-range-thumb]:h-5 [&::-webkit-slider-thumb]:w-5 [&::-moz-range-thumb]:w-5 [&::-webkit-slider-thumb]:-mt-1 [&::-moz-range-thumb]:-mt-1',
- xl: '[&::-webkit-slider-thumb]:h-6 [&::-moz-range-thumb]:h-6 [&::-webkit-slider-thumb]:w-6 [&::-moz-range-thumb]:w-6 [&::-webkit-slider-thumb]:-mt-1 [&::-moz-range-thumb]:-mt-1',
- '2xl': '[&::-webkit-slider-thumb]:h-7 [&::-moz-range-thumb]:h-7 [&::-webkit-slider-thumb]:w-7 [&::-moz-range-thumb]:w-7 [&::-webkit-slider-thumb]:-mt-1 [&::-moz-range-thumb]:-mt-1'
- }
- },
- track: {
- base: '[&::-webkit-slider-runnable-track]:group-disabled:bg-opacity-50 [&::-moz-range-track]:group-disabled:bg-opacity-50',
- background: '[&::-webkit-slider-runnable-track]:bg-gray-200 [&::-moz-range-track]:bg-gray-200 [&::-webkit-slider-runnable-track]:dark:bg-gray-700 [&::-moz-range-track]:dark:bg-gray-700',
- rounded: '[&::-webkit-slider-runnable-track]:rounded-lg [&::-moz-range-track]:rounded-lg',
- size: {
- '2xs': '[&::-webkit-slider-runnable-track]:h-px [&::-moz-range-track]:h-px',
- xs: '[&::-webkit-slider-runnable-track]:h-0.5 [&::-moz-range-track]:h-0.5',
- sm: '[&::-webkit-slider-runnable-track]:h-1 [&::-moz-range-track]:h-1',
- md: '[&::-webkit-slider-runnable-track]:h-2 [&::-moz-range-track]:h-2',
- lg: '[&::-webkit-slider-runnable-track]:h-3 [&::-moz-range-track]:h-3',
- xl: '[&::-webkit-slider-runnable-track]:h-4 [&::-moz-range-track]:h-4',
- '2xl': '[&::-webkit-slider-runnable-track]:h-5 [&::-moz-range-track]:h-5'
- }
- },
- size: {
- '2xs': 'h-1.5',
- xs: 'h-2',
- sm: 'h-3',
- md: 'h-4',
- lg: 'h-5',
- xl: 'h-6',
- '2xl': 'h-7'
- },
- default: {
- size: 'md',
- color: 'primary'
- }
-}
\ No newline at end of file
diff --git a/src/runtime/ui.config/forms/select.ts b/src/runtime/ui.config/forms/select.ts
deleted file mode 100644
index c9039839..00000000
--- a/src/runtime/ui.config/forms/select.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-import input from './input'
-
-export default {
- ...input,
- form: 'form-select',
- placeholder: 'text-gray-400 dark:text-gray-500',
- default: {
- size: 'sm',
- color: 'white',
- variant: 'outline',
- loadingIcon: 'i-heroicons-arrow-path-20-solid',
- trailingIcon: 'i-heroicons-chevron-down-20-solid'
- }
-}
diff --git a/src/runtime/ui.config/forms/selectMenu.ts b/src/runtime/ui.config/forms/selectMenu.ts
deleted file mode 100644
index 7f696ae3..00000000
--- a/src/runtime/ui.config/forms/selectMenu.ts
+++ /dev/null
@@ -1,33 +0,0 @@
-import { arrow } from '../popper'
-import inputMenu from './inputMenu'
-
-export default {
- ...inputMenu,
- select: 'inline-flex items-center text-left cursor-default',
- input: 'block w-[calc(100%+0.5rem)] focus:ring-transparent text-sm px-3 py-1.5 text-gray-700 dark:text-gray-200 bg-white dark:bg-gray-800 border-0 border-b border-gray-200 dark:border-gray-700 sticky -top-1 -mt-1 mb-1 -mx-1 z-10 placeholder-gray-400 dark:placeholder-gray-500 focus:outline-none',
- required: 'absolute inset-0 w-px opacity-0 cursor-default',
- label: 'block truncate',
- option: {
- ...inputMenu.option,
- create: 'block truncate'
- },
- // Syntax for `` component https://vuejs.org/guide/built-ins/transition.html#css-based-transitions
- transition: {
- leaveActiveClass: 'transition ease-in duration-100',
- leaveFromClass: 'opacity-100',
- leaveToClass: 'opacity-0'
- },
- popper: {
- placement: 'bottom-end'
- },
- default: {
- selectedIcon: 'i-heroicons-check-20-solid',
- clearSearchOnClose: false,
- showCreateOptionWhen: 'empty'
- },
- arrow: {
- ...arrow,
- ring: 'before:ring-1 before:ring-gray-200 dark:before:ring-gray-700',
- background: 'before:bg-white dark:before:bg-gray-700'
- }
-}
diff --git a/src/runtime/ui.config/forms/textarea.ts b/src/runtime/ui.config/forms/textarea.ts
deleted file mode 100644
index 8c26b0e9..00000000
--- a/src/runtime/ui.config/forms/textarea.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-import input from './input'
-
-export default {
- ...input,
- form: 'form-textarea',
- default: {
- size: 'sm',
- color: 'white',
- variant: 'outline'
- }
-}
diff --git a/src/runtime/ui.config/forms/toggle.ts b/src/runtime/ui.config/forms/toggle.ts
deleted file mode 100644
index e3486f33..00000000
--- a/src/runtime/ui.config/forms/toggle.ts
+++ /dev/null
@@ -1,62 +0,0 @@
-export default {
- base: 'relative inline-flex flex-shrink-0 border-2 border-transparent disabled:cursor-not-allowed disabled:opacity-50 focus:outline-none',
- rounded: 'rounded-full',
- ring: 'focus-visible:ring-2 focus-visible:ring-{color}-500 dark:focus-visible:ring-{color}-400 focus-visible:ring-offset-2 focus-visible:ring-offset-white dark:focus-visible:ring-offset-gray-900',
- active: 'bg-{color}-500 dark:bg-{color}-400',
- inactive: 'bg-gray-200 dark:bg-gray-700',
- size: {
- '2xs': 'h-3 w-5',
- xs: 'h-3.5 w-6',
- sm: 'h-4 w-7',
- md: 'h-5 w-9',
- lg: 'h-6 w-11',
- xl: 'h-7 w-[3.25rem]',
- '2xl': 'h-8 w-[3.75rem]'
- },
- container: {
- base: 'pointer-events-none relative inline-block rounded-full bg-white dark:bg-gray-900 shadow transform ring-0 transition ease-in-out duration-200',
- active: {
- '2xs': 'translate-x-2 rtl:-translate-x-2',
- xs: 'translate-x-2.5 rtl:-translate-x-2.5',
- sm: 'translate-x-3 rtl:-translate-x-3',
- md: 'translate-x-4 rtl:-translate-x-4',
- lg: 'translate-x-5 rtl:-translate-x-5',
- xl: 'translate-x-6 rtl:-translate-x-6',
- '2xl': 'translate-x-7 rtl:-translate-x-7'
- },
- inactive: 'translate-x-0 rtl:-translate-x-0',
- size: {
- '2xs': 'h-2 w-2',
- xs: 'h-2.5 w-2.5',
- sm: 'h-3 w-3',
- md: 'h-4 w-4',
- lg: 'h-5 w-5',
- xl: 'h-6 w-6',
- '2xl': 'h-7 w-7'
- }
- },
- icon: {
- base: 'absolute inset-0 h-full w-full flex items-center justify-center transition-opacity',
- active: 'opacity-100 ease-in duration-200',
- inactive: 'opacity-0 ease-out duration-100',
- size: {
- '2xs': 'h-2 w-2',
- xs: 'h-2 w-2',
- sm: 'h-2 w-2',
- md: 'h-3 w-3',
- lg: 'h-4 w-4',
- xl: 'h-5 w-5',
- '2xl': 'h-6 w-6'
- },
- on: 'text-{color}-500 dark:text-{color}-400',
- off: 'text-gray-400 dark:text-gray-500',
- loading: 'animate-spin text-{color}-500 dark:text-{color}-400'
- },
- default: {
- onIcon: null,
- offIcon: null,
- loadingIcon: 'i-heroicons-arrow-path-20-solid',
- color: 'primary',
- size: 'md'
- }
-}
diff --git a/src/runtime/ui.config/index.ts b/src/runtime/ui.config/index.ts
deleted file mode 100644
index ed9dc639..00000000
--- a/src/runtime/ui.config/index.ts
+++ /dev/null
@@ -1,54 +0,0 @@
-// Data
-export { default as table } from './data/table'
-
-// Elements
-export { default as avatar } from './elements/avatar'
-export { default as avatarGroup } from './elements/avatarGroup'
-export { default as badge } from './elements/badge'
-export { default as button } from './elements/button'
-export { default as buttonGroup } from './elements/buttonGroup'
-export { default as chip } from './elements/chip'
-export { default as dropdown } from './elements/dropdown'
-export { default as accordion } from './elements/accordion'
-export { default as alert } from './elements/alert'
-export { default as kbd } from './elements/kbd'
-export { default as progress } from './elements/progress'
-export { default as meter } from './elements/meter'
-export { default as meterGroup } from './elements/meterGroup'
-export { default as carousel } from './elements/carousel'
-
-// Forms
-export { default as input } from './forms/input'
-export { default as inputMenu } from './forms/inputMenu'
-export { default as formGroup } from './forms/formGroup'
-export { default as textarea } from './forms/textarea'
-export { default as select } from './forms/select'
-export { default as selectMenu } from './forms/selectMenu'
-export { default as radioGroup } from './forms/radioGroup'
-export { default as radio } from './forms/radio'
-export { default as checkbox } from './forms/checkbox'
-export { default as toggle } from './forms/toggle'
-export { default as range } from './forms/range'
-
-// Layout
-export { default as card } from './layout/card'
-export { default as container } from './layout/container'
-export { default as skeleton } from './layout/skeleton'
-export { default as divider } from './layout/divider'
-
-// Navigation
-export { default as verticalNavigation } from './navigation/verticalNavigation'
-export { default as horizontalNavigation } from './navigation/horizontalNavigation'
-export { default as commandPalette } from './navigation/commandPalette'
-export { default as pagination } from './navigation/pagination'
-export { default as tabs } from './navigation/tabs'
-export { default as breadcrumb } from './navigation/breadcrumb'
-
-// Overlays
-export { default as modal } from './overlays/modal'
-export { default as slideover } from './overlays/slideover'
-export { default as tooltip } from './overlays/tooltip'
-export { default as popover } from './overlays/popover'
-export { default as contextMenu } from './overlays/contextMenu'
-export { default as notification } from './overlays/notification'
-export { default as notifications } from './overlays/notifications'
diff --git a/src/runtime/ui.config/layout/card.ts b/src/runtime/ui.config/layout/card.ts
deleted file mode 100644
index 1150a9b4..00000000
--- a/src/runtime/ui.config/layout/card.ts
+++ /dev/null
@@ -1,23 +0,0 @@
-export default {
- base: '',
- background: 'bg-white dark:bg-gray-900',
- divide: 'divide-y divide-gray-200 dark:divide-gray-800',
- ring: 'ring-1 ring-gray-200 dark:ring-gray-800',
- rounded: 'rounded-lg',
- shadow: 'shadow',
- body: {
- base: '',
- background: '',
- padding: 'px-4 py-5 sm:p-6'
- },
- header: {
- base: '',
- background: '',
- padding: 'px-4 py-5 sm:px-6'
- },
- footer: {
- base: '',
- background: '',
- padding: 'px-4 py-4 sm:px-6'
- }
-}
diff --git a/src/runtime/ui.config/layout/container.ts b/src/runtime/ui.config/layout/container.ts
deleted file mode 100644
index d3a83581..00000000
--- a/src/runtime/ui.config/layout/container.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-export default {
- base: 'mx-auto',
- padding: 'px-4 sm:px-6 lg:px-8',
- constrained: 'max-w-7xl'
-}
\ No newline at end of file
diff --git a/src/runtime/ui.config/layout/divider.ts b/src/runtime/ui.config/layout/divider.ts
deleted file mode 100644
index 207cfbe2..00000000
--- a/src/runtime/ui.config/layout/divider.ts
+++ /dev/null
@@ -1,51 +0,0 @@
-export default {
- wrapper: {
- base: 'flex items-center align-center text-center w-full',
- horizontal: 'flex-row',
- vertical: 'flex-col'
- },
- container: {
- base: 'font-medium text-gray-700 dark:text-gray-200 flex',
- horizontal: 'mx-3 whitespace-nowrap',
- vertical: 'my-2'
- },
- border: {
- base: 'flex border-gray-200 dark:border-gray-800',
- horizontal: 'w-full',
- vertical: 'h-full',
- size: {
- horizontal: {
- '2xs': 'border-t',
- xs: 'border-t-[2px]',
- sm: 'border-t-[3px]',
- md: 'border-t-[4px]',
- lg: 'border-t-[5px]',
- xl: 'border-t-[6px]'
- },
- vertical: {
- '2xs': 'border-s',
- xs: 'border-s-[2px]',
- sm: 'border-s-[3px]',
- md: 'border-s-[4px]',
- lg: 'border-s-[5px]',
- xl: 'border-s-[6px]'
- }
- },
- type: {
- solid: 'border-solid',
- dotted: 'border-dotted',
- dashed: 'border-dashed'
- }
- },
- icon: {
- base: 'flex-shrink-0 w-5 h-5'
- },
- avatar: {
- base: 'flex-shrink-0',
- size: '2xs' as const
- },
- label: 'text-sm',
- default: {
- size: '2xs' as const
- }
-}
diff --git a/src/runtime/ui.config/layout/skeleton.ts b/src/runtime/ui.config/layout/skeleton.ts
deleted file mode 100644
index fe12a528..00000000
--- a/src/runtime/ui.config/layout/skeleton.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-export default {
- base: 'animate-pulse',
- background: 'bg-gray-100 dark:bg-gray-800',
- rounded: 'rounded-md'
-}
\ No newline at end of file
diff --git a/src/runtime/ui.config/navigation/breadcrumb.ts b/src/runtime/ui.config/navigation/breadcrumb.ts
deleted file mode 100644
index 8881efff..00000000
--- a/src/runtime/ui.config/navigation/breadcrumb.ts
+++ /dev/null
@@ -1,20 +0,0 @@
-export default {
- wrapper: 'relative',
- ol: 'flex items-center gap-x-1.5',
- li: 'flex items-center gap-x-1.5 text-gray-500 dark:text-gray-400 text-sm leading-6 min-w-0',
- base: 'flex items-center gap-x-1.5 group font-semibold min-w-0',
- label: 'block truncate',
- icon: {
- base: 'flex-shrink-0 w-5 h-5',
- active: '',
- inactive: ''
- },
- divider: {
- base: 'flex-shrink-0 w-5 h-5'
- },
- active: 'text-primary-500 dark:text-primary-400',
- inactive: ' hover:text-gray-700 dark:hover:text-gray-200',
- default: {
- divider: 'i-heroicons-chevron-right-20-solid rtl:i-heroicons-chevron-left-20-solid'
- }
-}
diff --git a/src/runtime/ui.config/navigation/commandPalette.ts b/src/runtime/ui.config/navigation/commandPalette.ts
deleted file mode 100644
index 588529e5..00000000
--- a/src/runtime/ui.config/navigation/commandPalette.ts
+++ /dev/null
@@ -1,71 +0,0 @@
-export default {
- wrapper: 'flex flex-col flex-1 min-h-0 divide-y divide-gray-100 dark:divide-gray-800',
- container: 'relative flex-1 overflow-y-auto divide-y divide-gray-100 dark:divide-gray-800 scroll-py-2',
- input: {
- wrapper: 'relative flex items-center',
- base: 'w-full placeholder-gray-400 dark:placeholder-gray-500 bg-transparent border-0 text-gray-900 dark:text-white focus:ring-0 focus:outline-none',
- padding: 'px-4',
- height: 'h-12',
- size: 'sm:text-sm',
- icon: {
- base: 'pointer-events-none absolute start-4 text-gray-400 dark:text-gray-500',
- loading: 'animate-spin',
- size: 'h-5 w-5',
- padding: 'ps-11'
- },
- closeButton: {
- base: 'absolute end-4',
- padding: 'pe-10'
- }
- },
- emptyState: {
- wrapper: 'flex flex-col items-center justify-center flex-1 px-6 py-14 sm:px-14',
- label: 'text-sm text-center text-gray-900 dark:text-white',
- queryLabel: 'text-sm text-center text-gray-900 dark:text-white',
- icon: 'w-6 h-6 mx-auto text-gray-400 dark:text-gray-500 mb-4'
- },
- group: {
- wrapper: 'p-2',
- label: 'px-2.5 my-2 text-xs font-semibold text-gray-900 dark:text-white',
- container: 'text-sm text-gray-700 dark:text-gray-200',
- command: {
- base: 'flex justify-between select-none items-center rounded-md px-2.5 py-1.5 gap-2 relative',
- active: 'bg-gray-100 dark:bg-gray-800 text-gray-900 dark:text-white',
- inactive: '',
- label: 'flex items-center gap-1.5 min-w-0',
- prefix: 'text-gray-400 dark:text-gray-500',
- suffix: 'text-gray-400 dark:text-gray-500',
- container: 'flex items-center gap-1.5 min-w-0',
- icon: {
- base: 'flex-shrink-0 w-5 h-5',
- active: 'text-gray-900 dark:text-white',
- inactive: 'text-gray-400 dark:text-gray-500'
- },
- selectedIcon: {
- base: 'h-5 w-5 text-gray-900 dark:text-white flex-shrink-0'
- },
- avatar: {
- base: 'flex-shrink-0',
- size: '2xs' as const
- },
- chip: {
- base: 'flex-shrink-0 w-2 h-2 mx-1 rounded-full'
- },
- disabled: 'opacity-50',
- shortcuts: 'hidden md:inline-flex flex-shrink-0 gap-0.5'
- },
- active: 'flex-shrink-0 text-gray-500 dark:text-gray-400',
- inactive: 'flex-shrink-0 text-gray-500 dark:text-gray-400'
- },
- default: {
- icon: 'i-heroicons-magnifying-glass-20-solid',
- loadingIcon: 'i-heroicons-arrow-path-20-solid',
- emptyState: {
- icon: 'i-heroicons-magnifying-glass-20-solid',
- label: 'We couldn\'t find any items.',
- queryLabel: 'We couldn\'t find any items with that term. Please try again.'
- },
- closeButton: null,
- selectedIcon: 'i-heroicons-check-20-solid'
- }
-}
diff --git a/src/runtime/ui.config/navigation/horizontalNavigation.ts b/src/runtime/ui.config/navigation/horizontalNavigation.ts
deleted file mode 100644
index 2baa892d..00000000
--- a/src/runtime/ui.config/navigation/horizontalNavigation.ts
+++ /dev/null
@@ -1,26 +0,0 @@
-export default {
- wrapper: 'relative w-full flex items-center justify-between',
- container: 'flex items-center min-w-0',
- inner: 'min-w-0',
- base: 'group relative w-full flex items-center gap-1.5 px-2.5 py-3.5 rounded-md font-medium text-sm focus:outline-none focus-visible:outline-none dark:focus-visible:outline-none focus-visible:ring-inset focus-visible:ring-2 focus-visible:ring-primary-500 dark:focus-visible:ring-primary-400 disabled:cursor-not-allowed disabled:opacity-75',
- before: 'before:absolute before:inset-x-0 before:inset-y-2 before:inset-px before:rounded-md hover:before:bg-gray-50 dark:hover:before:bg-gray-800/50',
- after: 'after:absolute after:bottom-0 after:inset-x-2.5 after:block after:h-[2px] after:mt-2',
- active: 'text-gray-900 dark:text-white after:bg-primary-500 dark:after:bg-primary-400 after:rounded-full',
- inactive: 'text-gray-500 dark:text-gray-400 hover:text-gray-900 dark:hover:text-white',
- label: 'truncate relative',
- icon: {
- base: 'flex-shrink-0 w-5 h-5 relative',
- active: 'text-gray-700 dark:text-gray-200',
- inactive: 'text-gray-400 dark:text-gray-500 group-hover:text-gray-700 dark:group-hover:text-gray-200'
- },
- avatar: {
- base: 'flex-shrink-0',
- size: '2xs' as const
- },
- badge: {
- base: 'flex-shrink-0 ml-auto relative rounded',
- color: 'gray' as const,
- variant: 'solid' as const,
- size: 'xs' as const
- }
-}
diff --git a/src/runtime/ui.config/navigation/pagination.ts b/src/runtime/ui.config/navigation/pagination.ts
deleted file mode 100644
index a95be9b2..00000000
--- a/src/runtime/ui.config/navigation/pagination.ts
+++ /dev/null
@@ -1,34 +0,0 @@
-export default {
- wrapper: 'flex items-center -space-x-px',
- base: '',
- rounded: 'first:rounded-s-md last:rounded-e-md',
- default: {
- size: 'sm',
- activeButton: {
- color: 'primary' as const
- },
- inactiveButton: {
- color: 'white' as const
- },
- firstButton: {
- color: 'white' as const,
- class: 'rtl:[&_span:first-child]:rotate-180',
- icon: 'i-heroicons-chevron-double-left-20-solid'
- },
- lastButton: {
- color: 'white' as const,
- class: 'rtl:[&_span:last-child]:rotate-180',
- icon: 'i-heroicons-chevron-double-right-20-solid'
- },
- prevButton: {
- color: 'white' as const,
- class: 'rtl:[&_span:first-child]:rotate-180',
- icon: 'i-heroicons-chevron-left-20-solid'
- },
- nextButton: {
- color: 'white' as const,
- class: 'rtl:[&_span:last-child]:rotate-180',
- icon: 'i-heroicons-chevron-right-20-solid'
- }
- }
-}
diff --git a/src/runtime/ui.config/navigation/tabs.ts b/src/runtime/ui.config/navigation/tabs.ts
deleted file mode 100644
index 31011a62..00000000
--- a/src/runtime/ui.config/navigation/tabs.ts
+++ /dev/null
@@ -1,33 +0,0 @@
-export default {
- wrapper: 'relative space-y-2',
- container: 'relative w-full',
- base: 'focus:outline-none',
- list: {
- base: 'relative',
- background: 'bg-gray-100 dark:bg-gray-800',
- rounded: 'rounded-lg',
- shadow: '',
- padding: 'p-1',
- height: 'h-10',
- width: 'w-full',
- marker: {
- wrapper: 'absolute top-[4px] left-[4px] duration-200 ease-out focus:outline-none',
- base: 'w-full h-full',
- background: 'bg-white dark:bg-gray-900',
- rounded: 'rounded-md',
- shadow: 'shadow-sm'
- },
- tab: {
- base: 'relative inline-flex items-center justify-center flex-shrink-0 w-full ui-focus-visible:outline-0 ui-focus-visible:ring-2 ui-focus-visible:ring-primary-500 dark:ui-focus-visible:ring-primary-400 ui-not-focus-visible:outline-none focus:outline-none disabled:cursor-not-allowed disabled:opacity-75 transition-colors duration-200 ease-out',
- background: '',
- active: 'text-gray-900 dark:text-white',
- inactive: 'text-gray-500 dark:text-gray-400',
- height: 'h-8',
- padding: 'px-3',
- size: 'text-sm',
- font: 'font-medium',
- rounded: 'rounded-md',
- shadow: ''
- }
- }
-}
diff --git a/src/runtime/ui.config/navigation/verticalNavigation.ts b/src/runtime/ui.config/navigation/verticalNavigation.ts
deleted file mode 100644
index d4bc6efc..00000000
--- a/src/runtime/ui.config/navigation/verticalNavigation.ts
+++ /dev/null
@@ -1,33 +0,0 @@
-export default {
- wrapper: 'relative',
- base: 'group relative flex items-center gap-1.5 focus:outline-none focus-visible:outline-none dark:focus-visible:outline-none focus-visible:before:ring-inset focus-visible:before:ring-1 focus-visible:before:ring-primary-500 dark:focus-visible:before:ring-primary-400 before:absolute before:inset-px before:rounded-md disabled:cursor-not-allowed disabled:opacity-75',
- ring: 'focus-visible:ring-inset focus-visible:ring-2 focus-visible:ring-primary-500 dark:focus-visible:ring-primary-400',
- padding: 'px-2.5 py-1.5',
- width: 'w-full',
- rounded: 'rounded-md',
- font: 'font-medium',
- size: 'text-sm',
- active: 'text-gray-900 dark:text-white before:bg-gray-100 dark:before:bg-gray-800',
- inactive: 'text-gray-500 dark:text-gray-400 hover:text-gray-900 dark:hover:text-white hover:before:bg-gray-50 dark:hover:before:bg-gray-800/50',
- label: 'truncate relative',
- icon: {
- base: 'flex-shrink-0 w-5 h-5 relative',
- active: 'text-gray-700 dark:text-gray-200',
- inactive: 'text-gray-400 dark:text-gray-500 group-hover:text-gray-700 dark:group-hover:text-gray-200'
- },
- avatar: {
- base: 'flex-shrink-0',
- size: '2xs' as const
- },
- badge: {
- base: 'flex-shrink-0 ml-auto relative rounded',
- color: 'gray' as const,
- variant: 'solid' as const,
- size: 'xs' as const
- },
- divider: {
- wrapper: {
- base: 'p-2'
- }
- }
-}
diff --git a/src/runtime/ui.config/overlays/contextMenu.ts b/src/runtime/ui.config/overlays/contextMenu.ts
deleted file mode 100644
index ace024e0..00000000
--- a/src/runtime/ui.config/overlays/contextMenu.ts
+++ /dev/null
@@ -1,26 +0,0 @@
-import { arrow } from '../popper'
-
-export default {
- wrapper: 'relative',
- container: 'z-20 group',
- width: '',
- background: 'bg-white dark:bg-gray-900',
- shadow: 'shadow-lg',
- rounded: 'rounded-md',
- ring: 'ring-1 ring-gray-200 dark:ring-gray-800',
- base: 'overflow-hidden focus:outline-none relative',
- // Syntax for `` component https://vuejs.org/guide/built-ins/transition.html#css-based-transitions
- transition: {
- enterActiveClass: 'transition ease-out duration-200',
- enterFromClass: 'opacity-0 translate-y-1',
- enterToClass: 'opacity-100 translate-y-0',
- leaveActiveClass: 'transition ease-in duration-150',
- leaveFromClass: 'opacity-100 translate-y-0',
- leaveToClass: 'opacity-0 translate-y-1'
- },
- popper: {
- placement: 'bottom-start',
- scroll: false
- },
- arrow
-}
diff --git a/src/runtime/ui.config/overlays/modal.ts b/src/runtime/ui.config/overlays/modal.ts
deleted file mode 100644
index 181643da..00000000
--- a/src/runtime/ui.config/overlays/modal.ts
+++ /dev/null
@@ -1,37 +0,0 @@
-export default {
- wrapper: 'relative z-50',
- inner: 'fixed inset-0 overflow-y-auto',
- container: 'flex min-h-full items-end sm:items-center justify-center text-center',
- padding: 'p-4 sm:p-0',
- margin: 'sm:my-8',
- base: 'relative text-left rtl:text-right flex flex-col',
- overlay: {
- base: 'fixed inset-0 transition-opacity',
- background: 'bg-gray-200/75 dark:bg-gray-800/75',
- // Syntax for `` component https://headlessui.com/vue/transition#basic-example
- transition: {
- enter: 'ease-out duration-300',
- enterFrom: 'opacity-0',
- enterTo: 'opacity-100',
- leave: 'ease-in duration-200',
- leaveFrom: 'opacity-100',
- leaveTo: 'opacity-0'
- }
- },
- background: 'bg-white dark:bg-gray-900',
- ring: '',
- rounded: 'rounded-lg',
- shadow: 'shadow-xl',
- width: 'w-full sm:max-w-lg',
- height: '',
- fullscreen: 'w-screen h-screen',
- // Syntax for `` component https://headlessui.com/vue/transition#basic-example
- transition: {
- enter: 'ease-out duration-300',
- enterFrom: 'opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95',
- enterTo: 'opacity-100 translate-y-0 sm:scale-100',
- leave: 'ease-in duration-200',
- leaveFrom: 'opacity-100 translate-y-0 sm:scale-100',
- leaveTo: 'opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95'
- }
-}
diff --git a/src/runtime/ui.config/overlays/notification.ts b/src/runtime/ui.config/overlays/notification.ts
deleted file mode 100644
index 789abc35..00000000
--- a/src/runtime/ui.config/overlays/notification.ts
+++ /dev/null
@@ -1,50 +0,0 @@
-export default {
- wrapper: 'w-full pointer-events-auto',
- container: 'relative overflow-hidden',
- inner: 'w-0 flex-1',
- title: 'text-sm font-medium text-gray-900 dark:text-white',
- description: 'mt-1 text-sm leading-4 text-gray-500 dark:text-gray-400',
- actions: 'flex items-center gap-2 mt-3 flex-shrink-0',
- background: 'bg-white dark:bg-gray-900',
- shadow: 'shadow-lg',
- rounded: 'rounded-lg',
- padding: 'p-4',
- gap: 'gap-3',
- ring: 'ring-1 ring-gray-200 dark:ring-gray-800',
- icon: {
- base: 'flex-shrink-0 w-5 h-5',
- color: 'text-{color}-500 dark:text-{color}-400'
- },
- avatar: {
- base: 'flex-shrink-0 self-center',
- size: 'md' as const
- },
- progress: {
- base: 'absolute bottom-0 end-0 start-0 h-1',
- background: 'bg-{color}-500 dark:bg-{color}-400'
- },
- // Syntax for `` component https://vuejs.org/guide/built-ins/transition.html#css-based-transitions
- transition: {
- enterActiveClass: 'transform ease-out duration-300 transition',
- enterFromClass: 'translate-y-2 opacity-0 sm:translate-y-0 sm:translate-x-2',
- enterToClass: 'translate-y-0 opacity-100 sm:translate-x-0',
- leaveActiveClass: 'transition ease-in duration-100',
- leaveFromClass: 'opacity-100',
- leaveToClass: 'opacity-0'
- },
- default: {
- color: 'primary',
- icon: null,
- timeout: 5000,
- closeButton: {
- icon: 'i-heroicons-x-mark-20-solid',
- color: 'gray' as const,
- variant: 'link' as const,
- padded: false
- },
- actionButton: {
- size: 'xs' as const,
- color: 'white' as const
- }
- }
-}
diff --git a/src/runtime/ui.config/overlays/notifications.ts b/src/runtime/ui.config/overlays/notifications.ts
deleted file mode 100644
index c25dba89..00000000
--- a/src/runtime/ui.config/overlays/notifications.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-export default {
- wrapper: 'fixed flex flex-col justify-end z-[55]',
- position: 'bottom-0 end-0',
- width: 'w-full sm:w-96',
- container: 'px-4 sm:px-6 py-6 space-y-3 overflow-y-auto'
-}
\ No newline at end of file
diff --git a/src/runtime/ui.config/overlays/popover.ts b/src/runtime/ui.config/overlays/popover.ts
deleted file mode 100644
index 498c3a7c..00000000
--- a/src/runtime/ui.config/overlays/popover.ts
+++ /dev/null
@@ -1,42 +0,0 @@
-import { arrow } from '../popper'
-
-export default {
- wrapper: 'relative',
- container: 'z-50 group',
- trigger: 'inline-flex w-full',
- width: '',
- background: 'bg-white dark:bg-gray-900',
- shadow: 'shadow-lg',
- rounded: 'rounded-md',
- ring: 'ring-1 ring-gray-200 dark:ring-gray-800',
- base: 'overflow-hidden focus:outline-none relative',
- // Syntax for `` component https://vuejs.org/guide/built-ins/transition.html#css-based-transitions
- transition: {
- enterActiveClass: 'transition ease-out duration-200',
- enterFromClass: 'opacity-0 translate-y-1',
- enterToClass: 'opacity-100 translate-y-0',
- leaveActiveClass: 'transition ease-in duration-150',
- leaveFromClass: 'opacity-100 translate-y-0',
- leaveToClass: 'opacity-0 translate-y-1'
- },
- overlay: {
- base: 'fixed inset-0 transition-opacity z-50',
- background: 'bg-gray-200/75 dark:bg-gray-800/75',
- transition: {
- enterActiveClass: 'ease-out duration-200',
- enterFromClass: 'opacity-0',
- enterToClass: 'opacity-100',
- leaveActiveClass: 'ease-in duration-150',
- leaveFromClass: 'opacity-100',
- leaveToClass: 'opacity-0'
- }
- },
- popper: {
- strategy: 'fixed'
- },
- default: {
- openDelay: 0,
- closeDelay: 0
- },
- arrow
-}
diff --git a/src/runtime/ui.config/overlays/slideover.ts b/src/runtime/ui.config/overlays/slideover.ts
deleted file mode 100644
index 24253b25..00000000
--- a/src/runtime/ui.config/overlays/slideover.ts
+++ /dev/null
@@ -1,33 +0,0 @@
-export default {
- wrapper: 'fixed inset-0 flex z-50',
- overlay: {
- base: 'fixed inset-0 transition-opacity',
- background: 'bg-gray-200/75 dark:bg-gray-800/75',
- // Syntax for `` component https://headlessui.com/vue/transition#basic-example
- transition: {
- enter: 'ease-in-out duration-500',
- enterFrom: 'opacity-0',
- enterTo: 'opacity-100',
- leave: 'ease-in-out duration-500',
- leaveFrom: 'opacity-100',
- leaveTo: 'opacity-0'
- }
- },
- base: 'relative flex-1 flex flex-col w-full focus:outline-none',
- background: 'bg-white dark:bg-gray-900',
- ring: '',
- rounded: '',
- padding: '',
- shadow: 'shadow-xl',
- width: 'w-screen max-w-md',
- translate: {
- base: 'translate-x-0',
- left: '-translate-x-full rtl:translate-x-full',
- right: 'translate-x-full rtl:-translate-x-full'
- },
- // Syntax for `` component https://headlessui.com/vue/transition#basic-example
- transition: {
- enter: 'transform transition ease-in-out duration-300',
- leave: 'transform transition ease-in-out duration-200'
- }
-}
diff --git a/src/runtime/ui.config/overlays/tooltip.ts b/src/runtime/ui.config/overlays/tooltip.ts
deleted file mode 100644
index d79503e9..00000000
--- a/src/runtime/ui.config/overlays/tooltip.ts
+++ /dev/null
@@ -1,35 +0,0 @@
-import { arrow } from '../popper'
-
-export default {
- wrapper: 'relative inline-flex',
- container: 'z-20 group',
- width: 'max-w-xs',
- background: 'bg-white dark:bg-gray-900',
- color: 'text-gray-900 dark:text-white',
- shadow: 'shadow',
- rounded: 'rounded',
- ring: 'ring-1 ring-gray-200 dark:ring-gray-800',
- base: '[@media(pointer:coarse)]:hidden h-6 px-2 py-1 text-xs font-normal truncate relative',
- shortcuts: 'hidden md:inline-flex flex-shrink-0 gap-0.5',
- middot: 'mx-1 text-gray-700 dark:text-gray-200',
- // Syntax for `` component https://vuejs.org/guide/built-ins/transition.html#css-based-transitions
- transition: {
- enterActiveClass: 'transition ease-out duration-200',
- enterFromClass: 'opacity-0 translate-y-1',
- enterToClass: 'opacity-100 translate-y-0',
- leaveActiveClass: 'transition ease-in duration-150',
- leaveFromClass: 'opacity-100 translate-y-0',
- leaveToClass: 'opacity-0 translate-y-1'
- },
- popper: {
- strategy: 'fixed'
- },
- default: {
- openDelay: 0,
- closeDelay: 0
- },
- arrow: {
- ...arrow,
- base: '[@media(pointer:coarse)]:hidden invisible before:visible before:block before:rotate-45 before:z-[-1] before:w-2 before:h-2'
- }
-}
diff --git a/src/runtime/ui.config/popper.ts b/src/runtime/ui.config/popper.ts
deleted file mode 100644
index 4472555f..00000000
--- a/src/runtime/ui.config/popper.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-export const arrow = {
- base: 'invisible before:visible before:block before:rotate-45 before:z-[-1] before:w-2 before:h-2',
- ring: 'before:ring-1 before:ring-gray-200 dark:before:ring-gray-800',
- rounded: 'before:rounded-sm',
- background: 'before:bg-gray-200 dark:before:bg-gray-800',
- shadow: 'before:shadow',
- // eslint-disable-next-line quotes
- placement: `group-data-[popper-placement*='right']:-left-1 group-data-[popper-placement*='left']:-right-1 group-data-[popper-placement*='top']:-bottom-1 group-data-[popper-placement*='bottom']:-top-1`
-}
diff --git a/src/runtime/utils/link.ts b/src/runtime/utils/link.ts
deleted file mode 100644
index eaf2f3da..00000000
--- a/src/runtime/utils/link.ts
+++ /dev/null
@@ -1,138 +0,0 @@
-import type { PropType } from 'vue'
-import type { RouteLocationRaw } from '#vue-router'
-import type { NuxtLinkProps } from '#app'
-
-export const nuxtLinkProps = {
- to: {
- type: [String, Object] as PropType,
- default: undefined,
- required: false
- },
- href: {
- type: [String, Object] as PropType,
- default: undefined,
- required: false
- },
-
- // Attributes
- target: {
- type: String as PropType,
- default: undefined,
- required: false
- },
- rel: {
- type: String as PropType,
- default: undefined,
- required: false
- },
- noRel: {
- type: Boolean as PropType,
- default: undefined,
- required: false
- },
-
- // Prefetching
- prefetch: {
- type: Boolean as PropType,
- default: undefined,
- required: false
- },
- noPrefetch: {
- type: Boolean as PropType,
- default: undefined,
- required: false
- },
-
- // Styling
- activeClass: {
- type: String as PropType,
- default: undefined,
- required: false
- },
- exactActiveClass: {
- type: String as PropType,
- default: undefined,
- required: false
- },
- prefetchedClass: {
- type: String as PropType,
- default: undefined,
- required: false
- },
-
- // Vue Router's `` additional props
- replace: {
- type: Boolean as PropType,
- default: undefined,
- required: false
- },
- ariaCurrentValue: {
- type: String as PropType,
- default: undefined,
- required: false
- },
-
- // Edge cases handling
- external: {
- type: Boolean as PropType,
- default: undefined,
- required: false
- }
-} as const
-
-const uLinkProps = {
- as: {
- type: String,
- default: 'button'
- },
- type: {
- type: String,
- default: 'button'
- },
- disabled: {
- type: Boolean,
- default: null
- },
- active: {
- type: Boolean,
- default: undefined
- },
- exact: {
- type: Boolean,
- default: false
- },
- exactQuery: {
- type: Boolean,
- default: false
- },
- exactHash: {
- type: Boolean,
- default: false
- },
- inactiveClass: {
- type: String,
- default: undefined
- }
-} as const
-
-export const getNuxtLinkProps = (props) => {
- const keys = Object.keys(nuxtLinkProps)
-
- return keys.reduce((acc, key) => {
- if (props[key] !== undefined) {
- acc[key] = props[key]
- }
- return acc
- }, {})
-}
-
-export const getULinkProps = (props) => {
- const keys = [...Object.keys(nuxtLinkProps), ...Object.keys(uLinkProps)]
-
- return keys.reduce((acc, key) => {
- if (props[key] !== undefined) {
- acc[key] = props[key]
- }
- return acc
- }, {})
-}
diff --git a/src/runtime/utils/lodash.ts b/src/runtime/utils/lodash.ts
deleted file mode 100644
index 1a3c2646..00000000
--- a/src/runtime/utils/lodash.ts
+++ /dev/null
@@ -1,33 +0,0 @@
-export function omit, K extends keyof T> (
- object: T,
- keysToOmit: K[] | any[]
-): Pick> {
- const result = { ...object }
-
- for (const key of keysToOmit) {
- delete result[key]
- }
-
- return result
-}
-
-export function get (object: Record, path: (string | number)[] | string, defaultValue?: any): any {
- if (typeof path === 'string') {
- path = path.split('.').map(key => {
- const numKey = Number(key)
- return isNaN(numKey) ? key : numKey
- })
- }
-
- let result: any = object
-
- for (const key of path) {
- if (result === undefined || result === null) {
- return defaultValue
- }
-
- result = result[key]
- }
-
- return result !== undefined ? result : defaultValue
-}
diff --git a/test/basic.spec.ts b/test/basic.spec.ts
deleted file mode 100644
index c36da798..00000000
--- a/test/basic.spec.ts
+++ /dev/null
@@ -1,131 +0,0 @@
-import { describe, expect, it } from 'vitest'
-import { defu } from 'defu'
-import { join } from 'pathe'
-import { loadNuxt } from '@nuxt/kit'
-import type { NuxtConfig } from '@nuxt/schema'
-import type * as tailwindcss from 'tailwindcss'
-type TWConfig = tailwindcss.Config;
-import type resolveConfig from 'tailwindcss/resolveConfig'
-
-async function getTailwindCSSConfig (overrides: Partial = {}) {
- let tailwindConfig: ReturnType>
- const nuxt = await loadNuxt({
- ready: true,
- cwd: join(process.cwd(), 'fixtures', 'empty'),
- dev: false,
- overrides: defu(overrides, {
- ssr: false,
- modules: ['../../src/module'],
- hooks: {
- 'tailwindcss:resolvedConfig' (config) {
- tailwindConfig = config
- }
- }
- } satisfies NuxtConfig) as NuxtConfig
- })
- const nuxtOptions = structuredClone({
- plugins: nuxt.options.plugins.map(p => typeof p !== 'string' && ({ src: p.src, mode: p.mode })),
- _requiredModules: nuxt.options._requiredModules,
- appConfig: nuxt.options.appConfig
- })
- await nuxt.close()
-
- return {
- nuxtOptions,
- tailwindConfig
- }
-}
-
-describe('nuxt', () => {
- it('should add plugins and modules to nuxt', async () => {
- const { nuxtOptions } = await getTailwindCSSConfig()
- expect(nuxtOptions.plugins).toContainEqual(
- expect.objectContaining({
- src: expect.stringContaining('plugins/colors'),
- mode: 'all'
- })
- )
- expect(nuxtOptions._requiredModules).toMatchObject({
- '@nuxtjs/color-mode': true,
- '@nuxtjs/tailwindcss': true
- })
- // default values in appConfig
- expect(nuxtOptions.appConfig.ui).toMatchObject({
- primary: 'green',
- gray: 'cool'
- })
- })
-})
-
-describe('tailwindcss config', () => {
- it.each([
- /* format:
- name,
- tailwindcss config, safelistColors,
- expected safelistPatterns (add "!" before a pattern to negate it)
- */
- [
- 'default safelist',
- {}, [],
- ['bg-(primary)-50', 'bg-(red)-500'] // these both should be in the safelist
- ],
- [
- 'safelisting single new color',
- {}, ['myColor'],
- 'bg-(myColor|primary)-50'
- ],
- [
- 'reducing amount of theme colors',
- { theme: { colors: { plainBlue: '#00F' } } }, ['plainBlue'],
- ['bg-(plainBlue|primary)-50', '!', /orange/] // the word "orange" should _not_ be found in any safelist pattern
- ]
- ])('%s', async (_description, tailwindcss, safelistColors, safelistPatterns) => {
- const { tailwindConfig } = await getTailwindCSSConfig({
- ui: {
- safelistColors
- },
- tailwindcss: {
- config: tailwindcss
- }
- })
- expect.extend({
- toBeRegExp: (received, expected) => {
- if (typeof expected === 'string' || expected instanceof String) {
- return {
- message: () => `expected ${received} to be exact regex ${expected}`,
- pass: received.toString() === RegExp(expected as string).toString()
- }
- } else if (expected instanceof RegExp) {
- return {
- message: () => `expected ${received} to be a regex like ${expected.toString()}`,
- pass: received.toString().match(expected)
- }
- }
- return {
- message: () => `expected ${received} to be a regex`,
- pass: false
- }
- }
- })
- safelistPatterns = safelistPatterns instanceof Array ? safelistPatterns : [safelistPatterns]
-
- let negate = false
- for (const safelistPattern of safelistPatterns) {
- if (safelistPattern === '!') {
- // negate next!
- negate = true
- continue
- }
- if (negate) {
- expect(tailwindConfig.safelist).not.toContainEqual({
- pattern: expect.toBeRegExp(safelistPattern)
- })
- } else {
- expect(tailwindConfig.safelist).toContainEqual({
- pattern: expect.toBeRegExp(safelistPattern)
- })
- }
- negate = false
- }
- })
-})
diff --git a/test/components/component-render.ts b/test/components/component-render.ts
deleted file mode 100644
index f0b48df7..00000000
--- a/test/components/component-render.ts
+++ /dev/null
@@ -1,19 +0,0 @@
-import { mountSuspended } from '@nuxt/test-utils/runtime'
-import path from 'path'
-
-export default async function (nameOrHtml: string, options: any, component: any) {
- let html: string
- const name = path.parse(component.__file).name
- if (options === undefined) {
- const app = {
- template: nameOrHtml,
- components: { [`U${name}`]: component }
- }
- const result = await mountSuspended(app)
- html = result.html()
- } else {
- const cResult = await mountSuspended(component, options)
- html = cResult.html()
- }
- return html
-}
diff --git a/test/components/elements/Button.spec.ts b/test/components/elements/Button.spec.ts
deleted file mode 100644
index 6dfb5040..00000000
--- a/test/components/elements/Button.spec.ts
+++ /dev/null
@@ -1,22 +0,0 @@
-import { describe, it, expect } from 'vitest'
-import { UButton } from '#components'
-import type { TypeOf } from 'zod'
-import ComponentRender from '../component-render'
-
-describe('Button', () => {
- it.each([
- [ 'basic case', { } ],
- [ 'leading icon', { props: { leading: true, icon: 'heroicons-check' } } ],
- [ 'black solid', { props: { color: 'black', variant: 'solid' } } ],
- [ 'rounded full', { props: { ui: { rounded: 'rounded-full' } } } ],
- [ '' ]
- // @ts-ignore
- ])('renders %s correctly', async (nameOrHtml: string, options: TypeOf) => {
- if (options !== undefined) {
- options.slots = options.slots || { default: () => 'label' }
- options.slots.default = options.slots.default || (() => 'label')
- }
- const html = await ComponentRender(nameOrHtml, options, UButton)
- expect(html).toMatchSnapshot()
- })
-})
diff --git a/test/components/elements/__snapshots__/Button.spec.ts.snap b/test/components/elements/__snapshots__/Button.spec.ts.snap
deleted file mode 100644
index 1235490d..00000000
--- a/test/components/elements/__snapshots__/Button.spec.ts.snap
+++ /dev/null
@@ -1,35 +0,0 @@
-// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
-
-exports[`Button > renders correctly 1`] = `
-""
-`;
-
-exports[`Button > renders basic case correctly 1`] = `
-""
-`;
-
-exports[`Button > renders black solid correctly 1`] = `
-""
-`;
-
-exports[`Button > renders leading icon correctly 1`] = `
-""
-`;
-
-exports[`Button > renders rounded full correctly 1`] = `
-""
-`;
diff --git a/test/components/layout/Skeleton.spec.ts b/test/components/layout/Skeleton.spec.ts
deleted file mode 100644
index a6e1d69b..00000000
--- a/test/components/layout/Skeleton.spec.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-import { describe, it, expect } from 'vitest'
-import { USkeleton } from '#components'
-import type { TypeOf } from 'zod'
-import ComponentRender from '../component-render'
-
-describe('Skeleton', () => {
- it.each([
- [ 'basic case', { } ],
- [ '' ]
- ])('renders %s correctly', async (nameOrHtml: string, options?: TypeOf) => {
- const html = await ComponentRender(nameOrHtml, options, USkeleton)
- expect(html).toMatchSnapshot()
- })
-})
diff --git a/test/components/layout/__snapshots__/Skeleton.spec.ts.snap b/test/components/layout/__snapshots__/Skeleton.spec.ts.snap
deleted file mode 100644
index 8c672055..00000000
--- a/test/components/layout/__snapshots__/Skeleton.spec.ts.snap
+++ /dev/null
@@ -1,5 +0,0 @@
-// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
-
-exports[`Skeleton > renders correctly 1`] = `""`;
-
-exports[`Skeleton > renders basic case correctly 1`] = `""`;
diff --git a/test/vitest.d.ts b/test/vitest.d.ts
deleted file mode 100644
index ebc8d88f..00000000
--- a/test/vitest.d.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-// eslint-disable-next-line @typescript-eslint/no-unused-vars
-import type { Assertion, AsymmetricMatchersContaining } from 'vitest'
-
-interface CustomMatchers {
- toBeRegExp(expected: string | RegExp): R
-}
-
-declare module 'vitest' {
- interface Assertion extends CustomMatchers {}
- interface AsymmetricMatchersContaining extends CustomMatchers {}
-}