@nuxt/ui 3.1.0 → 3.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (130) hide show
  1. package/.nuxt/ui/accordion.ts +2 -23
  2. package/.nuxt/ui/alert.ts +2 -23
  3. package/.nuxt/ui/avatar-group.ts +2 -23
  4. package/.nuxt/ui/avatar.ts +2 -23
  5. package/.nuxt/ui/badge.ts +2 -23
  6. package/.nuxt/ui/breadcrumb.ts +2 -23
  7. package/.nuxt/ui/button-group.ts +2 -23
  8. package/.nuxt/ui/button.ts +2 -23
  9. package/.nuxt/ui/calendar.ts +3 -24
  10. package/.nuxt/ui/card.ts +2 -23
  11. package/.nuxt/ui/carousel.ts +2 -23
  12. package/.nuxt/ui/checkbox-group.ts +2 -23
  13. package/.nuxt/ui/checkbox.ts +2 -23
  14. package/.nuxt/ui/chip.ts +2 -23
  15. package/.nuxt/ui/collapsible.ts +2 -23
  16. package/.nuxt/ui/color-picker.ts +2 -23
  17. package/.nuxt/ui/command-palette.ts +2 -23
  18. package/.nuxt/ui/container.ts +2 -23
  19. package/.nuxt/ui/context-menu.ts +2 -23
  20. package/.nuxt/ui/drawer.ts +2 -23
  21. package/.nuxt/ui/dropdown-menu.ts +2 -23
  22. package/.nuxt/ui/form-field.ts +2 -23
  23. package/.nuxt/ui/form.ts +2 -23
  24. package/.nuxt/ui/input-menu.ts +2 -23
  25. package/.nuxt/ui/input-number.ts +2 -23
  26. package/.nuxt/ui/input.ts +2 -23
  27. package/.nuxt/ui/kbd.ts +2 -23
  28. package/.nuxt/ui/link.ts +2 -23
  29. package/.nuxt/ui/modal.ts +2 -23
  30. package/.nuxt/ui/navigation-menu.ts +3 -24
  31. package/.nuxt/ui/pagination.ts +2 -23
  32. package/.nuxt/ui/pin-input.ts +2 -23
  33. package/.nuxt/ui/popover.ts +2 -23
  34. package/.nuxt/ui/progress.ts +2 -23
  35. package/.nuxt/ui/radio-group.ts +2 -23
  36. package/.nuxt/ui/select-menu.ts +2 -23
  37. package/.nuxt/ui/select.ts +2 -23
  38. package/.nuxt/ui/separator.ts +2 -23
  39. package/.nuxt/ui/skeleton.ts +2 -23
  40. package/.nuxt/ui/slideover.ts +2 -23
  41. package/.nuxt/ui/slider.ts +2 -23
  42. package/.nuxt/ui/stepper.ts +2 -23
  43. package/.nuxt/ui/switch.ts +2 -23
  44. package/.nuxt/ui/table.ts +2 -23
  45. package/.nuxt/ui/tabs.ts +2 -23
  46. package/.nuxt/ui/textarea.ts +2 -23
  47. package/.nuxt/ui/toast.ts +2 -23
  48. package/.nuxt/ui/toaster.ts +2 -23
  49. package/.nuxt/ui/tooltip.ts +2 -23
  50. package/.nuxt/ui/tree.ts +2 -23
  51. package/.nuxt/ui.css +15 -8
  52. package/README.md +4 -0
  53. package/dist/module.json +1 -1
  54. package/dist/module.mjs +3 -2
  55. package/dist/runtime/components/Accordion.vue.d.ts +4 -20
  56. package/dist/runtime/components/Alert.vue.d.ts +7 -22
  57. package/dist/runtime/components/App.vue.d.ts +2 -2
  58. package/dist/runtime/components/Avatar.vue.d.ts +4 -25
  59. package/dist/runtime/components/AvatarGroup.vue.d.ts +2 -11
  60. package/dist/runtime/components/Badge.vue.d.ts +3 -24
  61. package/dist/runtime/components/Breadcrumb.vue.d.ts +2 -20
  62. package/dist/runtime/components/Button.vue.d.ts +3 -28
  63. package/dist/runtime/components/ButtonGroup.vue.d.ts +3 -24
  64. package/dist/runtime/components/Calendar.vue.d.ts +6 -2
  65. package/dist/runtime/components/Card.vue.d.ts +2 -11
  66. package/dist/runtime/components/Carousel.vue.d.ts +4 -2
  67. package/dist/runtime/components/Checkbox.vue.d.ts +10 -13
  68. package/dist/runtime/components/CheckboxGroup.vue.d.ts +5 -2
  69. package/dist/runtime/components/Chip.vue.d.ts +10 -24
  70. package/dist/runtime/components/Collapsible.vue.d.ts +7 -22
  71. package/dist/runtime/components/ColorPicker.vue.d.ts +9 -24
  72. package/dist/runtime/components/CommandPalette.vue.d.ts +15 -27
  73. package/dist/runtime/components/Container.vue.d.ts +2 -11
  74. package/dist/runtime/components/ContextMenu.vue.d.ts +4 -24
  75. package/dist/runtime/components/ContextMenuContent.vue.d.ts +17 -57
  76. package/dist/runtime/components/Drawer.vue.d.ts +17 -27
  77. package/dist/runtime/components/DropdownMenu.vue.d.ts +4 -28
  78. package/dist/runtime/components/DropdownMenuContent.vue.d.ts +19 -6
  79. package/dist/runtime/components/Form.vue.d.ts +5 -2
  80. package/dist/runtime/components/FormField.vue.d.ts +2 -11
  81. package/dist/runtime/components/Icon.vue.d.ts +1 -10
  82. package/dist/runtime/components/Input.vue.d.ts +16 -31
  83. package/dist/runtime/components/InputMenu.vue.d.ts +17 -5
  84. package/dist/runtime/components/InputNumber.vue.d.ts +12 -23
  85. package/dist/runtime/components/Kbd.vue.d.ts +3 -24
  86. package/dist/runtime/components/Link.vue.d.ts +3 -34
  87. package/dist/runtime/components/LinkBase.vue.d.ts +4 -27
  88. package/dist/runtime/components/Modal.vue.d.ts +12 -28
  89. package/dist/runtime/components/NavigationMenu.vue.d.ts +4 -24
  90. package/dist/runtime/components/Pagination.vue.d.ts +9 -33
  91. package/dist/runtime/components/PinInput.vue.d.ts +13 -24
  92. package/dist/runtime/components/Popover.vue.d.ts +9 -26
  93. package/dist/runtime/components/Progress.vue.d.ts +10 -41
  94. package/dist/runtime/components/RadioGroup.vue.d.ts +6 -3
  95. package/dist/runtime/components/Select.vue.d.ts +8 -2
  96. package/dist/runtime/components/SelectMenu.vue.d.ts +17 -5
  97. package/dist/runtime/components/Separator.vue.d.ts +3 -24
  98. package/dist/runtime/components/Skeleton.vue.d.ts +3 -12
  99. package/dist/runtime/components/Slideover.vue.d.ts +12 -29
  100. package/dist/runtime/components/Slider.vue.d.ts +12 -31
  101. package/dist/runtime/components/Stepper.vue.d.ts +8 -14
  102. package/dist/runtime/components/Switch.vue.d.ts +10 -13
  103. package/dist/runtime/components/Table.vue.d.ts +17 -17
  104. package/dist/runtime/components/Tabs.vue.d.ts +4 -20
  105. package/dist/runtime/components/Textarea.vue.d.ts +16 -33
  106. package/dist/runtime/components/Toast.vue.d.ts +86 -24
  107. package/dist/runtime/components/Toaster.vue.d.ts +3 -28
  108. package/dist/runtime/components/Tooltip.vue.d.ts +7 -22
  109. package/dist/runtime/components/Tree.vue.d.ts +5 -22
  110. package/dist/runtime/composables/defineShortcuts.js +6 -0
  111. package/dist/runtime/composables/useAvatarGroup.d.ts +1 -1
  112. package/dist/runtime/composables/useButtonGroup.d.ts +1 -1
  113. package/dist/runtime/composables/useFormField.d.ts +1 -1
  114. package/dist/runtime/composables/useKbd.d.ts +1 -0
  115. package/dist/runtime/composables/useKbd.js +4 -3
  116. package/dist/runtime/composables/useOverlay.d.ts +9 -10
  117. package/dist/runtime/composables/useOverlay.js +11 -6
  118. package/dist/runtime/inertia/components/Link.vue.d.ts +3 -32
  119. package/dist/runtime/types/tv.d.ts +53 -0
  120. package/dist/runtime/types/tv.js +0 -0
  121. package/dist/runtime/types/utils.d.ts +2 -52
  122. package/dist/runtime/types/utils.js +1 -0
  123. package/dist/runtime/vue/components/Icon.vue.d.ts +1 -10
  124. package/dist/runtime/vue/components/Link.vue.d.ts +3 -34
  125. package/dist/shared/{ui.D7lOOabO.mjs → ui.CbtTMMzt.mjs} +17 -11
  126. package/dist/unplugin.d.mts +2 -2
  127. package/dist/unplugin.mjs +1 -1
  128. package/dist/vite.d.mts +1 -1
  129. package/dist/vite.mjs +2 -2
  130. package/package.json +14 -13
@@ -48,45 +48,16 @@ export interface LinkSlots {
48
48
  active: boolean;
49
49
  }): any;
50
50
  }
51
- declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<LinkProps>, {
52
- as: string;
53
- type: string;
54
- active: undefined;
55
- activeClass: string;
56
- inactiveClass: string;
57
- }>>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<LinkProps>, {
58
- as: string;
59
- type: string;
60
- active: undefined;
61
- activeClass: string;
62
- inactiveClass: string;
63
- }>>> & Readonly<{}>, {
51
+ declare const _default: __VLS_WithSlots<import("vue").DefineComponent<LinkProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<LinkProps> & Readonly<{}>, {
64
52
  type: "reset" | "submit" | "button";
65
53
  as: any;
66
54
  activeClass: string;
67
55
  active: boolean;
68
56
  inactiveClass: string;
69
- }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>, Readonly<LinkSlots> & LinkSlots>;
57
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, LinkSlots>;
70
58
  export default _default;
71
- type __VLS_WithDefaults<P, D> = {
72
- [K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_PrettifyLocal<P[K] & {
73
- default: D[K];
74
- }> : P[K];
75
- };
76
- type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
77
- type __VLS_TypePropsToOption<T> = {
78
- [K in keyof T]-?: {} extends Pick<T, K> ? {
79
- type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
80
- } : {
81
- type: import('vue').PropType<T[K]>;
82
- required: true;
83
- };
84
- };
85
- type __VLS_WithTemplateSlots<T, S> = T & {
59
+ type __VLS_WithSlots<T, S> = T & {
86
60
  new (): {
87
61
  $slots: S;
88
62
  };
89
63
  };
90
- type __VLS_PrettifyLocal<T> = {
91
- [K in keyof T]: T[K];
92
- } & {};
@@ -0,0 +1,53 @@
1
+ import type { ClassValue, TVVariants, TVCompoundVariants, TVDefaultVariants } from 'tailwind-variants';
2
+ /**
3
+ * Defines the AppConfig object based on the tailwind-variants configuration.
4
+ */
5
+ export type TVConfig<T extends Record<string, any>> = {
6
+ [P in keyof T]?: {
7
+ [K in keyof T[P] as K extends 'base' | 'slots' | 'variants' | 'compoundVariants' | 'defaultVariants' ? K : never]?: K extends 'base' ? ClassValue : K extends 'slots' ? {
8
+ [S in keyof T[P]['slots']]?: ClassValue;
9
+ } : K extends 'variants' ? TVVariants<T[P]['slots'], ClassValue, T[P]['variants']> : K extends 'compoundVariants' ? TVCompoundVariants<T[P]['variants'], T[P]['slots'], ClassValue, object, undefined> : K extends 'defaultVariants' ? TVDefaultVariants<T[P]['variants'], T[P]['slots'], object, undefined> : never;
10
+ };
11
+ };
12
+ /**
13
+ * Utility type to flatten intersection types for better IDE hover information.
14
+ * @template T The type to flatten.
15
+ */
16
+ type Id<T> = {} & {
17
+ [P in keyof T]: T[P];
18
+ };
19
+ type ComponentVariants<T extends {
20
+ variants?: Record<string, Record<string, any>>;
21
+ }> = {
22
+ [K in keyof T['variants']]: keyof T['variants'][K];
23
+ };
24
+ type ComponentSlots<T extends {
25
+ slots?: Record<string, any>;
26
+ }> = Id<{
27
+ [K in keyof T['slots']]?: ClassValue;
28
+ }>;
29
+ type GetComponentAppConfig<A, U extends string, K extends string> = A extends Record<U, Record<K, any>> ? A[U][K] : {};
30
+ type ComponentAppConfig<T, A extends Record<string, any>, K extends string, U extends string = 'ui' | 'uiPro' | 'uiPro.prose'> = A & (U extends 'uiPro.prose' ? {
31
+ uiPro?: {
32
+ prose?: {
33
+ [k in K]?: Partial<T>;
34
+ };
35
+ };
36
+ } : {
37
+ [key in Exclude<U, 'uiPro.prose'>]?: {
38
+ [k in K]?: Partial<T>;
39
+ };
40
+ });
41
+ /**
42
+ * Defines the configuration shape expected for a component.
43
+ * @template T The component's theme imported from `#build/ui/*`.
44
+ * @template A The base AppConfig type from `@nuxt/schema`.
45
+ * @template K The key identifying the component (e.g., 'badge').
46
+ * @template U The top-level key in AppConfig ('ui' or 'uiPro').
47
+ */
48
+ export type ComponentConfig<T extends Record<string, any>, A extends Record<string, any>, K extends string, U extends 'ui' | 'uiPro' | 'uiPro.prose' = 'ui'> = {
49
+ AppConfig: ComponentAppConfig<T, A, K, U>;
50
+ variants: ComponentVariants<T & GetComponentAppConfig<A, U, K>>;
51
+ slots: ComponentSlots<T>;
52
+ };
53
+ export {};
File without changes
@@ -1,14 +1,5 @@
1
- import type { AcceptableValue as _AcceptableValue } from 'reka-ui';
2
- import type { ClassValue } from 'tailwind-variants';
3
1
  import type { VNode } from 'vue';
4
- export interface TightMap<O = any> {
5
- [key: string]: TightMap | O;
6
- }
7
- export type DeepPartial<T, O = any> = {
8
- [P in keyof T]?: T[P] extends Array<string> ? string : T[P] extends object ? DeepPartial<T[P], O> : T[P];
9
- } & {
10
- [key: string]: O | TightMap<O>;
11
- };
2
+ import type { AcceptableValue as _AcceptableValue } from 'reka-ui';
12
3
  export type DynamicSlotsKeys<Name extends string | undefined, Suffix extends string | undefined = undefined> = (Name extends string ? Suffix extends string ? Name | `${Name}-${Suffix}` : Name : never);
13
4
  export type DynamicSlots<T extends {
14
5
  slot?: string;
@@ -44,45 +35,4 @@ export type StringOrVNode = string | VNode | (() => VNode);
44
35
  export type EmitsToProps<T> = {
45
36
  [K in keyof T as `on${Capitalize<string & K>}`]: T[K] extends [...args: infer Args] ? (...args: Args) => void : never;
46
37
  };
47
- /**
48
- * Utility type to flatten intersection types for better IDE hover information.
49
- * @template T The type to flatten.
50
- */
51
- type Id<T> = {} & {
52
- [P in keyof T]: T[P];
53
- };
54
- type ComponentVariants<T extends {
55
- variants?: Record<string, Record<string, any>>;
56
- }> = {
57
- [K in keyof T['variants']]: keyof T['variants'][K];
58
- };
59
- type ComponentSlots<T extends {
60
- slots?: Record<string, any>;
61
- }> = Id<{
62
- [K in keyof T['slots']]?: ClassValue;
63
- }>;
64
- type GetComponentAppConfig<A, U extends string, K extends string> = A extends Record<U, Record<K, any>> ? A[U][K] : {};
65
- type ComponentAppConfig<T, A extends Record<string, any>, K extends string, U extends string = 'ui' | 'uiPro' | 'uiPro.prose'> = A & (U extends 'uiPro.prose' ? {
66
- uiPro?: {
67
- prose?: {
68
- [k in K]?: Partial<T>;
69
- };
70
- };
71
- } : {
72
- [key in Exclude<U, 'uiPro.prose'>]?: {
73
- [k in K]?: Partial<T>;
74
- };
75
- });
76
- /**
77
- * Defines the configuration shape expected for a component.
78
- * @template T The component's theme imported from `#build/ui/*`.
79
- * @template A The base AppConfig type from `@nuxt/schema`.
80
- * @template K The key identifying the component (e.g., 'badge').
81
- * @template U The top-level key in AppConfig ('ui' or 'uiPro').
82
- */
83
- export type ComponentConfig<T extends Record<string, any>, A extends Record<string, any>, K extends string, U extends 'ui' | 'uiPro' | 'uiPro.prose' = 'ui'> = {
84
- AppConfig: ComponentAppConfig<T, A, K, U>;
85
- variants: ComponentVariants<T & GetComponentAppConfig<A, U, K>>;
86
- slots: ComponentSlots<T>;
87
- };
88
- export {};
38
+ export * from './tv';
@@ -0,0 +1 @@
1
+ export * from "./tv.js";
@@ -1,14 +1,5 @@
1
1
  export interface IconProps {
2
2
  name: string;
3
3
  }
4
- declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_TypePropsToOption<IconProps>>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_TypePropsToOption<IconProps>>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
4
+ declare const _default: import("vue").DefineComponent<IconProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<IconProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
5
5
  export default _default;
6
- type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
7
- type __VLS_TypePropsToOption<T> = {
8
- [K in keyof T]-?: {} extends Pick<T, K> ? {
9
- type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
10
- } : {
11
- type: import('vue').PropType<T[K]>;
12
- required: true;
13
- };
14
- };
@@ -77,48 +77,17 @@ export interface LinkSlots {
77
77
  active: boolean;
78
78
  }): any;
79
79
  }
80
- declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<LinkProps>, {
81
- as: string;
82
- type: string;
83
- ariaCurrentValue: string;
84
- active: undefined;
85
- activeClass: string;
86
- inactiveClass: string;
87
- }>>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<LinkProps>, {
88
- as: string;
89
- type: string;
90
- ariaCurrentValue: string;
91
- active: undefined;
92
- activeClass: string;
93
- inactiveClass: string;
94
- }>>> & Readonly<{}>, {
80
+ declare const _default: __VLS_WithSlots<import("vue").DefineComponent<LinkProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<LinkProps> & Readonly<{}>, {
95
81
  type: "reset" | "submit" | "button";
96
82
  as: any;
97
83
  activeClass: string;
98
84
  ariaCurrentValue: "page" | "step" | "location" | "date" | "time" | "true" | "false";
99
85
  active: boolean;
100
86
  inactiveClass: string;
101
- }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>, Readonly<LinkSlots> & LinkSlots>;
87
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, LinkSlots>;
102
88
  export default _default;
103
- type __VLS_WithDefaults<P, D> = {
104
- [K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_PrettifyLocal<P[K] & {
105
- default: D[K];
106
- }> : P[K];
107
- };
108
- type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
109
- type __VLS_TypePropsToOption<T> = {
110
- [K in keyof T]-?: {} extends Pick<T, K> ? {
111
- type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
112
- } : {
113
- type: import('vue').PropType<T[K]>;
114
- required: true;
115
- };
116
- };
117
- type __VLS_WithTemplateSlots<T, S> = T & {
89
+ type __VLS_WithSlots<T, S> = T & {
118
90
  new (): {
119
91
  $slots: S;
120
92
  };
121
93
  };
122
- type __VLS_PrettifyLocal<T> = {
123
- [K in keyof T]: T[K];
124
- } & {};
@@ -4,6 +4,7 @@ import { kebabCase } from 'scule';
4
4
  import { addTypeTemplate, addTemplate } from '@nuxt/kit';
5
5
  import { defuFn, defu } from 'defu';
6
6
  import colors from 'tailwindcss/colors';
7
+ import { genExport } from 'knitwork';
7
8
 
8
9
  const icons = {
9
10
  arrowLeft: "i-lucide-arrow-left",
@@ -598,7 +599,7 @@ const calendar = (options) => ({
598
599
  body: "flex flex-col space-y-4 pt-4 sm:flex-row sm:space-x-4 sm:space-y-0",
599
600
  heading: "text-center font-medium truncate mx-auto",
600
601
  grid: "w-full border-collapse select-none space-y-1 focus:outline-none",
601
- gridRow: "grid grid-cols-7",
602
+ gridRow: "grid grid-cols-7 place-items-center",
602
603
  gridWeekDaysRow: "mb-1 grid w-full grid-cols-7",
603
604
  gridBody: "grid",
604
605
  headCell: "rounded-md",
@@ -1858,7 +1859,7 @@ const navigationMenu = (options) => ({
1858
1859
  separator: "px-2 h-px bg-border",
1859
1860
  viewportWrapper: "absolute top-full left-0 flex w-full",
1860
1861
  viewport: "relative overflow-hidden bg-default shadow-lg rounded-md ring ring-default h-(--reka-navigation-menu-viewport-height) w-full transition-[width,height,left] duration-200 origin-[top_center] data-[state=open]:animate-[scale-in_100ms_ease-out] data-[state=closed]:animate-[scale-out_100ms_ease-in] z-[1]",
1861
- content: "absolute top-0 left-0 w-full sm:w-auto",
1862
+ content: "absolute top-0 left-0 w-full",
1862
1863
  indicator: "absolute data-[state=visible]:animate-[fade-in_100ms_ease-out] data-[state=hidden]:animate-[fade-out_100ms_ease-in] data-[state=hidden]:opacity-0 bottom-0 z-[2] w-(--reka-navigation-menu-indicator-size) translate-x-(--reka-navigation-menu-indicator-position) flex h-2.5 items-end justify-center overflow-hidden transition-[translate,width] duration-200",
1863
1864
  arrow: "relative top-[50%] size-2.5 rotate-45 border border-default bg-default z-[1] rounded-xs"
1864
1865
  },
@@ -3681,7 +3682,7 @@ function getTemplates(options, uiConfig) {
3681
3682
  write: true,
3682
3683
  getContents: () => `@source "./ui";
3683
3684
 
3684
- @theme default {
3685
+ @theme default inline {
3685
3686
  --color-old-neutral-50: ${colors.neutral[50]};
3686
3687
  --color-old-neutral-100: ${colors.neutral[100]};
3687
3688
  --color-old-neutral-200: ${colors.neutral[200]};
@@ -3693,10 +3694,8 @@ function getTemplates(options, uiConfig) {
3693
3694
  --color-old-neutral-800: ${colors.neutral[800]};
3694
3695
  --color-old-neutral-900: ${colors.neutral[900]};
3695
3696
  --color-old-neutral-950: ${colors.neutral[950]};
3696
- ${[...(options.theme?.colors || []).filter((color) => !colors[color]), "neutral"].map((color) => [
3697
- color !== "neutral" && `--color-${color}: var(--ui-${color});`,
3698
- ...[50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 950].map((shade) => `--color-${color}-${shade}: var(--ui-color-${color}-${shade});`)
3699
- ].filter(Boolean).join("\n ")).join("\n ")}
3697
+ ${[...(options.theme?.colors || []).filter((color) => !colors[color]), "neutral"].map((color) => [50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 950].map((shade) => `--color-${color}-${shade}: var(--ui-color-${color}-${shade});`).join("\n ")).join("\n ")}
3698
+ ${options.theme?.colors?.map((color) => `--color-${color}: var(--ui-${color});`).join("\n ")}
3700
3699
  --radius-xs: calc(var(--ui-radius) * 0.5);
3701
3700
  --radius-sm: var(--ui-radius);
3702
3701
  --radius-md: calc(var(--ui-radius) * 1.5);
@@ -3720,15 +3719,22 @@ function getTemplates(options, uiConfig) {
3720
3719
  --border-color-muted: var(--ui-border-muted);
3721
3720
  --border-color-accented: var(--ui-border-accented);
3722
3721
  --border-color-inverted: var(--ui-border-inverted);
3722
+ --border-color-bg: var(--ui-bg);
3723
3723
  --ring-color-default: var(--ui-border);
3724
3724
  --ring-color-muted: var(--ui-border-muted);
3725
3725
  --ring-color-accented: var(--ui-border-accented);
3726
3726
  --ring-color-inverted: var(--ui-border-inverted);
3727
3727
  --ring-color-bg: var(--ui-bg);
3728
+ --ring-offset-color-default: var(--ui-border);
3729
+ --ring-offset-color-muted: var(--ui-border-muted);
3730
+ --ring-offset-color-accented: var(--ui-border-accented);
3731
+ --ring-offset-color-inverted: var(--ui-border-inverted);
3732
+ --ring-offset-color-bg: var(--ui-bg);
3728
3733
  --divide-color-default: var(--ui-border);
3729
3734
  --divide-color-muted: var(--ui-border-muted);
3730
3735
  --divide-color-accented: var(--ui-border-accented);
3731
3736
  --divide-color-inverted: var(--ui-border-inverted);
3737
+ --divide-color-bg: var(--ui-bg);
3732
3738
  --outline-color-default: var(--ui-border);
3733
3739
  --outline-color-inverted: var(--ui-border-inverted);
3734
3740
  --stroke-default: var(--ui-border);
@@ -3746,7 +3752,7 @@ function getTemplates(options, uiConfig) {
3746
3752
  templates.push({
3747
3753
  filename: "types/ui.d.ts",
3748
3754
  getContents: () => `import * as ui from '#build/ui'
3749
- import type { DeepPartial } from '@nuxt/ui'
3755
+ import type { TVConfig } from '@nuxt/ui'
3750
3756
  import type { defaultConfig } from 'tailwind-variants'
3751
3757
  import colors from 'tailwindcss/colors'
3752
3758
 
@@ -3762,7 +3768,7 @@ type AppConfigUI = {
3762
3768
  }
3763
3769
  icons?: Partial<typeof icons>
3764
3770
  tv?: typeof defaultConfig
3765
- } & DeepPartial<typeof ui>
3771
+ } & TVConfig<typeof ui>
3766
3772
 
3767
3773
  declare module '@nuxt/schema' {
3768
3774
  interface AppConfigInput {
@@ -3781,8 +3787,8 @@ export {}
3781
3787
  filename: "ui-image-component.ts",
3782
3788
  write: true,
3783
3789
  getContents: ({ app }) => {
3784
- const image = app?.components?.find((c) => c.pascalName === "NuxtImg" && !c.filePath.includes("nuxt/dist/app"));
3785
- return image ? `export { default } from "${image.filePath}"` : 'export default "img"';
3790
+ const image = app?.components?.find((c) => c.pascalName === "NuxtImg" && !/nuxt(?:-nightly)?\/dist\/app/.test(c.filePath));
3791
+ return image ? genExport(image.filePath, [{ name: image.export, as: "default" }]) : 'export default "img"';
3786
3792
  }
3787
3793
  });
3788
3794
  return templates;
@@ -4,7 +4,7 @@ import { Options as Options$1 } from 'unplugin-vue-components/types';
4
4
  import colors from 'tailwindcss/colors';
5
5
  import * as ui from '#build/ui';
6
6
  import { ModuleOptions } from './module.mjs';
7
- import { DeepPartial } from '../dist/runtime/types/utils.js';
7
+ import { TVConfig } from '../dist/runtime/types/tv.js';
8
8
  import '@nuxt/schema';
9
9
  import '../dist/runtime/types/index.js';
10
10
 
@@ -36,7 +36,7 @@ type AppConfigUI = {
36
36
  neutral?: NeutralColor;
37
37
  };
38
38
  icons?: Partial<typeof _default>;
39
- } & DeepPartial<typeof ui>;
39
+ } & TVConfig<typeof ui>;
40
40
  interface NuxtUIOptions extends Omit<ModuleOptions, 'fonts' | 'colorMode'> {
41
41
  /** Whether to generate declaration files for auto-imported components. */
42
42
  dts?: boolean;
package/dist/unplugin.mjs CHANGED
@@ -3,7 +3,7 @@ import { join, normalize } from 'pathe';
3
3
  import { createUnplugin } from 'unplugin';
4
4
  import { defu } from 'defu';
5
5
  import tailwind from '@tailwindcss/vite';
6
- import { g as getTemplates, d as defaultOptions, r as resolveColors, a as getDefaultUiConfig } from './shared/ui.D7lOOabO.mjs';
6
+ import { g as getTemplates, d as defaultOptions, r as resolveColors, a as getDefaultUiConfig } from './shared/ui.CbtTMMzt.mjs';
7
7
  import { globSync } from 'tinyglobby';
8
8
  import { genSafeVariableName } from 'knitwork';
9
9
  import MagicString from 'magic-string';
package/dist/vite.d.mts CHANGED
@@ -8,7 +8,7 @@ import '#build/ui';
8
8
  import './module.mjs';
9
9
  import '@nuxt/schema';
10
10
  import '../dist/runtime/types/index.js';
11
- import '../dist/runtime/types/utils.js';
11
+ import '../dist/runtime/types/tv.js';
12
12
 
13
13
  declare const _default: (options?: NuxtUIOptions | undefined) => vite.Plugin<any> | vite.Plugin<any>[];
14
14
 
package/dist/vite.mjs CHANGED
@@ -4,13 +4,13 @@ import 'pathe';
4
4
  import 'unplugin';
5
5
  import 'defu';
6
6
  import '@tailwindcss/vite';
7
- import './shared/ui.D7lOOabO.mjs';
7
+ import './shared/ui.CbtTMMzt.mjs';
8
8
  import '../dist/runtime/utils/index.js';
9
9
  import 'scule';
10
10
  import '@nuxt/kit';
11
11
  import 'tailwindcss/colors';
12
- import 'tinyglobby';
13
12
  import 'knitwork';
13
+ import 'tinyglobby';
14
14
  import 'magic-string';
15
15
  import 'mlly';
16
16
  import 'unplugin-vue-components';
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@nuxt/ui",
3
3
  "description": "A UI Library for Modern Web Apps, powered by Vue & Tailwind CSS.",
4
- "version": "3.1.0",
5
- "packageManager": "pnpm@10.9.0",
4
+ "version": "3.1.1",
5
+ "packageManager": "pnpm@10.10.0",
6
6
  "repository": {
7
7
  "type": "git",
8
8
  "url": "git+https://github.com/nuxt/ui.git"
@@ -96,12 +96,12 @@
96
96
  "scripts": {
97
97
  "build": "nuxt-module-build build",
98
98
  "prepack": "pnpm build",
99
- "dev": "nuxi dev playground",
99
+ "dev": "nuxi dev playground --uiDev",
100
100
  "dev:build": "nuxi build playground",
101
- "dev:vue": "vite playground-vue",
101
+ "dev:vue": "vite playground-vue -- --uiDev",
102
102
  "dev:vue:build": "vite build playground-vue",
103
103
  "dev:prepare": "nuxt-module-build build --stub && nuxt-module-build prepare && nuxi prepare playground && nuxi prepare docs && vite build playground-vue",
104
- "docs": "nuxi dev docs",
104
+ "docs": "nuxi dev docs --uiDev",
105
105
  "docs:build": "nuxi build docs",
106
106
  "docs:prepare": "nuxt-component-meta docs",
107
107
  "lint": "eslint .",
@@ -115,10 +115,10 @@
115
115
  "@iconify/vue": "^4.3.0",
116
116
  "@internationalized/date": "^3.8.0",
117
117
  "@internationalized/number": "^3.6.1",
118
- "@nuxt/fonts": "^0.11.1",
118
+ "@nuxt/fonts": "^0.11.2",
119
119
  "@nuxt/icon": "^1.12.0",
120
- "@nuxt/kit": "^3.16.2",
121
- "@nuxt/schema": "^3.16.2",
120
+ "@nuxt/kit": "^3.17.1",
121
+ "@nuxt/schema": "^3.17.1",
122
122
  "@nuxtjs/color-mode": "^3.5.2",
123
123
  "@standard-schema/spec": "^1.0.0",
124
124
  "@tailwindcss/postcss": "^4.1.4",
@@ -152,7 +152,8 @@
152
152
  "unplugin": "^2.3.2",
153
153
  "unplugin-auto-import": "^19.1.2",
154
154
  "unplugin-vue-components": "^28.5.0",
155
- "vaul-vue": "^0.4.1"
155
+ "vaul-vue": "^0.4.1",
156
+ "vue-component-type-helpers": "^2.2.10"
156
157
  },
157
158
  "devDependencies": {
158
159
  "@nuxt/eslint-config": "^1.3.0",
@@ -163,11 +164,11 @@
163
164
  "embla-carousel": "^8.6.0",
164
165
  "eslint": "^9.25.1",
165
166
  "happy-dom": "^17.4.4",
166
- "nuxt": "^3.16.2",
167
+ "nuxt": "^3.17.1",
167
168
  "release-it": "^19.0.1",
168
169
  "vitest": "^3.1.2",
169
170
  "vitest-environment-nuxt": "^1.0.1",
170
- "vue-tsc": "^2.2.0"
171
+ "vue-tsc": "^2.2.10"
171
172
  },
172
173
  "peerDependencies": {
173
174
  "@inertiajs/vue3": "^2.0.7",
@@ -207,8 +208,8 @@
207
208
  "chokidar": "3.6.0",
208
209
  "debug": "4.3.7",
209
210
  "rollup": "4.34.9",
210
- "unplugin": "^2.3.2",
211
- "vue-tsc": "2.2.0"
211
+ "unimport": "4.1.1",
212
+ "unplugin": "^2.3.2"
212
213
  },
213
214
  "pnpm": {
214
215
  "onlyBuiltDependencies": [