@nuxt/ui 3.0.0-beta.2 → 3.0.0-beta.4

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 (112) hide show
  1. package/.nuxt/ui/button.ts +8 -0
  2. package/.nuxt/ui/pagination.ts +6 -1
  3. package/.nuxt/ui/table.ts +2 -1
  4. package/dist/module.cjs +2 -2
  5. package/dist/module.json +2 -2
  6. package/dist/module.mjs +2 -2
  7. package/dist/runtime/components/Accordion.vue +7 -0
  8. package/dist/runtime/components/Alert.vue +14 -0
  9. package/dist/runtime/components/App.vue +6 -6
  10. package/dist/runtime/components/Avatar.vue +8 -1
  11. package/dist/runtime/components/AvatarGroup.vue +3 -0
  12. package/dist/runtime/components/Badge.vue +9 -0
  13. package/dist/runtime/components/Breadcrumb.vue +4 -0
  14. package/dist/runtime/components/Button.vue +57 -18
  15. package/dist/runtime/components/ButtonGroup.vue +3 -0
  16. package/dist/runtime/components/Calendar.vue +10 -0
  17. package/dist/runtime/components/Card.vue +3 -0
  18. package/dist/runtime/components/Carousel.vue +6 -0
  19. package/dist/runtime/components/Checkbox.vue +8 -0
  20. package/dist/runtime/components/Chip.vue +10 -0
  21. package/dist/runtime/components/ColorPicker.vue +3 -0
  22. package/dist/runtime/components/CommandPalette.vue +10 -1
  23. package/dist/runtime/components/ContextMenu.vue +9 -0
  24. package/dist/runtime/components/ContextMenuContent.vue +9 -0
  25. package/dist/runtime/components/DropdownMenu.vue +9 -0
  26. package/dist/runtime/components/DropdownMenuContent.vue +9 -0
  27. package/dist/runtime/components/Form.vue +6 -6
  28. package/dist/runtime/components/FormField.vue +4 -1
  29. package/dist/runtime/components/Input.vue +16 -3
  30. package/dist/runtime/components/InputMenu.vue +18 -3
  31. package/dist/runtime/components/InputNumber.vue +2 -0
  32. package/dist/runtime/components/Kbd.vue +6 -0
  33. package/dist/runtime/components/Link.vue +8 -4
  34. package/dist/runtime/components/LinkBase.vue +4 -2
  35. package/dist/runtime/components/Modal.vue +1 -0
  36. package/dist/runtime/components/NavigationMenu.vue +17 -0
  37. package/dist/runtime/components/Pagination.vue +16 -11
  38. package/dist/runtime/components/PinInput.vue +13 -0
  39. package/dist/runtime/components/Progress.vue +10 -0
  40. package/dist/runtime/components/RadioGroup.vue +6 -0
  41. package/dist/runtime/components/Select.vue +14 -0
  42. package/dist/runtime/components/SelectMenu.vue +16 -1
  43. package/dist/runtime/components/Separator.vue +13 -1
  44. package/dist/runtime/components/Slideover.vue +5 -0
  45. package/dist/runtime/components/Slider.vue +6 -0
  46. package/dist/runtime/components/Stepper.vue +13 -0
  47. package/dist/runtime/components/Switch.vue +15 -2
  48. package/dist/runtime/components/Table.vue +15 -2
  49. package/dist/runtime/components/Tabs.vue +12 -0
  50. package/dist/runtime/components/Textarea.vue +16 -3
  51. package/dist/runtime/components/Toast.vue +11 -0
  52. package/dist/runtime/components/Toaster.vue +4 -0
  53. package/dist/runtime/components/Tree.vue +15 -0
  54. package/dist/runtime/composables/defineLocale.d.ts +4 -4
  55. package/dist/runtime/composables/useComponentIcons.d.ts +13 -3
  56. package/dist/runtime/composables/useLocale.d.ts +3 -3
  57. package/dist/runtime/composables/useLocale.js +3 -3
  58. package/dist/runtime/locale/ar.d.ts +2 -1
  59. package/dist/runtime/locale/az.d.ts +2 -1
  60. package/dist/runtime/locale/bn.d.ts +2 -1
  61. package/dist/runtime/locale/cs.d.ts +2 -1
  62. package/dist/runtime/locale/da.d.ts +2 -1
  63. package/dist/runtime/locale/de.d.ts +2 -1
  64. package/dist/runtime/locale/el.d.ts +2 -1
  65. package/dist/runtime/locale/en.d.ts +2 -1
  66. package/dist/runtime/locale/es.d.ts +2 -1
  67. package/dist/runtime/locale/et.d.ts +2 -1
  68. package/dist/runtime/locale/fa_ir.d.ts +2 -1
  69. package/dist/runtime/locale/fi.d.ts +2 -1
  70. package/dist/runtime/locale/fr.d.ts +2 -1
  71. package/dist/runtime/locale/he.d.ts +2 -1
  72. package/dist/runtime/locale/hi.d.ts +2 -1
  73. package/dist/runtime/locale/hu.d.ts +2 -1
  74. package/dist/runtime/locale/id.d.ts +2 -1
  75. package/dist/runtime/locale/index.d.ts +3 -2
  76. package/dist/runtime/locale/index.js +3 -2
  77. package/dist/runtime/locale/it.d.ts +2 -1
  78. package/dist/runtime/locale/ja.d.ts +2 -1
  79. package/dist/runtime/locale/km.d.ts +2 -1
  80. package/dist/runtime/locale/ko.d.ts +2 -1
  81. package/dist/runtime/locale/nb_no.d.ts +2 -1
  82. package/dist/runtime/locale/nl.d.ts +2 -1
  83. package/dist/runtime/locale/pl.d.ts +2 -1
  84. package/dist/runtime/locale/pt.d.ts +2 -1
  85. package/dist/runtime/locale/pt_br.d.ts +2 -1
  86. package/dist/runtime/locale/ru.d.ts +2 -1
  87. package/dist/runtime/locale/sk.d.ts +2 -1
  88. package/dist/runtime/locale/sv.d.ts +2 -1
  89. package/dist/runtime/locale/th.d.ts +2 -1
  90. package/dist/runtime/locale/tr.d.ts +2 -1
  91. package/dist/runtime/locale/uk.d.ts +2 -1
  92. package/dist/runtime/locale/vi.d.ts +2 -1
  93. package/dist/runtime/locale/zh_cn.d.ts +2 -1
  94. package/dist/runtime/locale/zh_tw.d.ts +2 -1
  95. package/dist/runtime/plugins/colors.js +3 -1
  96. package/dist/runtime/types/form.d.ts +1 -1
  97. package/dist/runtime/types/locale.d.ts +2 -2
  98. package/dist/runtime/utils/index.js +1 -1
  99. package/dist/runtime/utils/locale.d.ts +5 -5
  100. package/dist/runtime/utils/tv.d.ts +1 -1
  101. package/dist/runtime/vue/components/Link.vue +8 -4
  102. package/dist/runtime/vue/plugins/head.d.ts +1 -1
  103. package/dist/runtime/vue/plugins/head.js +4 -3
  104. package/dist/runtime/vue/stubs.d.ts +2 -0
  105. package/dist/runtime/vue/stubs.js +2 -0
  106. package/dist/shared/{ui.DfK2RX6G.cjs → ui.COBs1u5H.cjs} +23 -5
  107. package/dist/shared/{ui.DSPu6Y8j.mjs → ui.yjbGE7Dx.mjs} +23 -5
  108. package/dist/unplugin.cjs +1 -1
  109. package/dist/unplugin.mjs +1 -1
  110. package/dist/vite.cjs +1 -1
  111. package/dist/vite.mjs +1 -1
  112. package/package.json +25 -26
@@ -27,7 +27,7 @@ export interface Form<T extends object> {
27
27
  export type FormSchema<T extends object> = ZodSchema | YupObjectSchema<T> | ValibotSchema | ValibotSchemaAsync | ValibotSafeParser<any, any> | ValibotSafeParserAsync<any, any> | JoiSchema<T> | SuperstructSchema<any, any> | StandardSchemaV1;
28
28
  export type FormInputEvents = 'input' | 'blur' | 'change' | 'focus';
29
29
  export interface FormError<P extends string = string> {
30
- name: P;
30
+ name?: P;
31
31
  message: string;
32
32
  }
33
33
  export interface FormErrorWithId extends FormError {
@@ -48,9 +48,9 @@ export type Messages = {
48
48
  };
49
49
  };
50
50
  export type Direction = 'ltr' | 'rtl';
51
- export type Locale = {
51
+ export type Locale<M> = {
52
52
  name: string;
53
53
  code: string;
54
54
  dir: Direction;
55
- messages: Messages;
55
+ messages: M;
56
56
  };
@@ -1,4 +1,4 @@
1
- import { isEqual } from "ohash";
1
+ import { isEqual } from "ohash/utils";
2
2
  export function pick(data, keys) {
3
3
  const result = {};
4
4
  for (const key of keys) {
@@ -3,13 +3,13 @@ import type { Locale, Direction } from '../types/locale';
3
3
  import type { MaybeRef } from '@vueuse/core';
4
4
  export type TranslatorOption = Record<string, string | number>;
5
5
  export type Translator = (path: string, option?: TranslatorOption) => string;
6
- export type LocaleContext = {
7
- locale: Ref<Locale>;
6
+ export type LocaleContext<M> = {
7
+ locale: Ref<Locale<M>>;
8
8
  lang: Ref<string>;
9
9
  dir: Ref<Direction>;
10
10
  code: Ref<string>;
11
11
  t: Translator;
12
12
  };
13
- export declare function buildTranslator(locale: MaybeRef<Locale>): Translator;
14
- export declare function translate(path: string, option: undefined | TranslatorOption, locale: Locale): string;
15
- export declare function buildLocaleContext(locale: MaybeRef<Locale>): LocaleContext;
13
+ export declare function buildTranslator<M>(locale: MaybeRef<Locale<M>>): Translator;
14
+ export declare function translate<M>(path: string, option: undefined | TranslatorOption, locale: Locale<M>): string;
15
+ export declare function buildLocaleContext<M>(locale: MaybeRef<Locale<M>>): LocaleContext<M>;
@@ -1 +1 @@
1
- export declare const tv: import("tailwind-variants").CreateTV<boolean | (string | number | symbol)[] | {} | undefined>;
1
+ export declare const tv: import("tailwind-variants").CreateTV;
@@ -91,7 +91,7 @@ export interface LinkSlots {
91
91
 
92
92
  <script setup lang="ts">
93
93
  import { computed, getCurrentInstance } from 'vue'
94
- import { isEqual, diff } from 'ohash'
94
+ import { isEqual, diff } from 'ohash/utils'
95
95
  import { useForwardProps } from 'reka-ui'
96
96
  import { reactiveOmit } from '@vueuse/core'
97
97
  import { hasProtocol } from 'ufo'
@@ -140,11 +140,15 @@ const ui = computed(() => tv({
140
140
  function isPartiallyEqual(item1: any, item2: any) {
141
141
  const diffedKeys = diff(item1, item2).reduce((filtered, q) => {
142
142
  if (q.type === 'added') {
143
- filtered.push(q.key)
143
+ filtered.add(q.key)
144
144
  }
145
145
  return filtered
146
- }, [] as string[])
147
- return isEqual(item1, item2, { excludeKeys: key => diffedKeys.includes(key) })
146
+ }, new Set<string>())
147
+
148
+ const item1Filtered = Object.fromEntries(Object.entries(item1).filter(([key]) => !diffedKeys.has(key)))
149
+ const item2Filtered = Object.fromEntries(Object.entries(item2).filter(([key]) => !diffedKeys.has(key)))
150
+
151
+ return isEqual(item1Filtered, item2Filtered)
148
152
  }
149
153
 
150
154
  const isExternal = computed(() => {
@@ -1,4 +1,4 @@
1
1
  declare const _default: {
2
- install(): void;
2
+ install(app: import("vue").App<any>): void;
3
3
  };
4
4
  export default _default;
@@ -1,6 +1,7 @@
1
- import { createHead, setHeadInjectionHandler } from "@unhead/vue";
1
+ import { createHead } from "@unhead/vue/client";
2
2
  export default {
3
- install() {
4
- setHeadInjectionHandler(() => createHead());
3
+ install(app) {
4
+ const head = createHead();
5
+ app.use(head);
5
6
  }
6
7
  };
@@ -3,6 +3,7 @@ import type { NuxtApp } from '#app';
3
3
  export { useHead } from '@unhead/vue';
4
4
  export { useRoute, useRouter } from 'vue-router';
5
5
  export { defineShortcuts } from '../composables/defineShortcuts';
6
+ export { defineLocale } from '../composables/defineLocale';
6
7
  export { useLocale } from '../composables/useLocale';
7
8
  export declare const useColorMode: () => {
8
9
  forced: boolean;
@@ -25,6 +26,7 @@ export declare const useCookie: <T = string>(_name: string, _options?: Record<st
25
26
  export declare const useState: <T>(key: string, init: () => T) => Ref<T>;
26
27
  export declare function useNuxtApp(): {
27
28
  isHydrating: boolean;
29
+ isVue: boolean;
28
30
  payload: {
29
31
  serverRendered: boolean;
30
32
  };
@@ -4,6 +4,7 @@ import { useColorMode as useColorModeVueUse } from "@vueuse/core";
4
4
  export { useHead } from "@unhead/vue";
5
5
  export { useRoute, useRouter } from "vue-router";
6
6
  export { defineShortcuts } from "../composables/defineShortcuts.js";
7
+ export { defineLocale } from "../composables/defineLocale.js";
7
8
  export { useLocale } from "../composables/useLocale.js";
8
9
  export const useColorMode = () => {
9
10
  if (!appConfig.colorMode) {
@@ -52,6 +53,7 @@ export const useState = (key, init) => {
52
53
  export function useNuxtApp() {
53
54
  return {
54
55
  isHydrating: true,
56
+ isVue: true,
55
57
  payload: { serverRendered: false }
56
58
  };
57
59
  }
@@ -49,7 +49,7 @@ const defaultOptions = {
49
49
  fonts: true,
50
50
  colorMode: true,
51
51
  theme: {
52
- colors: undefined,
52
+ colors: void 0,
53
53
  transitions: true
54
54
  }
55
55
  };
@@ -498,6 +498,14 @@ const button = (options) => ({
498
498
  },
499
499
  loading: {
500
500
  true: ""
501
+ },
502
+ active: {
503
+ true: {
504
+ base: ""
505
+ },
506
+ false: {
507
+ base: ""
508
+ }
501
509
  }
502
510
  },
503
511
  compoundVariants: [...(options.theme.colors || []).map((color) => ({
@@ -1996,7 +2004,12 @@ const pagination = {
1996
2004
  root: "",
1997
2005
  list: "flex items-center gap-1",
1998
2006
  ellipsis: "pointer-events-none",
1999
- label: "min-w-5 text-center"
2007
+ label: "min-w-5 text-center",
2008
+ first: "",
2009
+ prev: "",
2010
+ item: "",
2011
+ next: "",
2012
+ last: ""
2000
2013
  }
2001
2014
  };
2002
2015
 
@@ -2379,7 +2392,7 @@ const radioGroup = (options) => ({
2379
2392
  const select = (options) => {
2380
2393
  return defu.defuFn({
2381
2394
  slots: {
2382
- root: () => undefined,
2395
+ root: () => void 0,
2383
2396
  base: () => ["relative group rounded-[calc(var(--ui-radius)*1.5)] inline-flex items-center focus:outline-none disabled:cursor-not-allowed disabled:opacity-75", options.theme.transitions && "transition-colors"],
2384
2397
  value: "truncate pointer-events-none",
2385
2398
  placeholder: "truncate text-(--ui-text-dimmed)",
@@ -2960,7 +2973,8 @@ const table = (options) => ({
2960
2973
  tr: "data-[selected=true]:bg-(--ui-bg-elevated)/50",
2961
2974
  th: "px-4 py-3.5 text-sm text-(--ui-text-highlighted) text-left rtl:text-right font-semibold [&:has([role=checkbox])]:pe-0",
2962
2975
  td: "p-4 text-sm text-(--ui-text-muted) whitespace-nowrap [&:has([role=checkbox])]:pe-0",
2963
- empty: "py-6 text-center text-sm text-(--ui-text-muted)"
2976
+ empty: "py-6 text-center text-sm text-(--ui-text-muted)",
2977
+ loading: "py-6 text-center"
2964
2978
  },
2965
2979
  variants: {
2966
2980
  pinned: {
@@ -3467,7 +3481,7 @@ function getTemplates(options, uiConfig) {
3467
3481
  --color-old-neutral-800: ${colors__default.neutral[800]};
3468
3482
  --color-old-neutral-900: ${colors__default.neutral[900]};
3469
3483
  --color-old-neutral-950: ${colors__default.neutral[950]};
3470
- ${[...options.theme?.colors || [], "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 ")}
3484
+ ${[...(options.theme?.colors || []).filter((color) => !colors__default[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 ")}
3471
3485
  }
3472
3486
  `
3473
3487
  });
@@ -3499,6 +3513,10 @@ type AppConfigUI = {
3499
3513
 
3500
3514
  declare module '@nuxt/schema' {
3501
3515
  interface AppConfigInput {
3516
+ /**
3517
+ * Nuxt UI theme configuration
3518
+ * @see https://ui3.nuxt.dev/getting-started/theme#customize-theme
3519
+ */
3502
3520
  ui?: AppConfigUI
3503
3521
  }
3504
3522
  }
@@ -43,7 +43,7 @@ const defaultOptions = {
43
43
  fonts: true,
44
44
  colorMode: true,
45
45
  theme: {
46
- colors: undefined,
46
+ colors: void 0,
47
47
  transitions: true
48
48
  }
49
49
  };
@@ -492,6 +492,14 @@ const button = (options) => ({
492
492
  },
493
493
  loading: {
494
494
  true: ""
495
+ },
496
+ active: {
497
+ true: {
498
+ base: ""
499
+ },
500
+ false: {
501
+ base: ""
502
+ }
495
503
  }
496
504
  },
497
505
  compoundVariants: [...(options.theme.colors || []).map((color) => ({
@@ -1990,7 +1998,12 @@ const pagination = {
1990
1998
  root: "",
1991
1999
  list: "flex items-center gap-1",
1992
2000
  ellipsis: "pointer-events-none",
1993
- label: "min-w-5 text-center"
2001
+ label: "min-w-5 text-center",
2002
+ first: "",
2003
+ prev: "",
2004
+ item: "",
2005
+ next: "",
2006
+ last: ""
1994
2007
  }
1995
2008
  };
1996
2009
 
@@ -2373,7 +2386,7 @@ const radioGroup = (options) => ({
2373
2386
  const select = (options) => {
2374
2387
  return defuFn({
2375
2388
  slots: {
2376
- root: () => undefined,
2389
+ root: () => void 0,
2377
2390
  base: () => ["relative group rounded-[calc(var(--ui-radius)*1.5)] inline-flex items-center focus:outline-none disabled:cursor-not-allowed disabled:opacity-75", options.theme.transitions && "transition-colors"],
2378
2391
  value: "truncate pointer-events-none",
2379
2392
  placeholder: "truncate text-(--ui-text-dimmed)",
@@ -2954,7 +2967,8 @@ const table = (options) => ({
2954
2967
  tr: "data-[selected=true]:bg-(--ui-bg-elevated)/50",
2955
2968
  th: "px-4 py-3.5 text-sm text-(--ui-text-highlighted) text-left rtl:text-right font-semibold [&:has([role=checkbox])]:pe-0",
2956
2969
  td: "p-4 text-sm text-(--ui-text-muted) whitespace-nowrap [&:has([role=checkbox])]:pe-0",
2957
- empty: "py-6 text-center text-sm text-(--ui-text-muted)"
2970
+ empty: "py-6 text-center text-sm text-(--ui-text-muted)",
2971
+ loading: "py-6 text-center"
2958
2972
  },
2959
2973
  variants: {
2960
2974
  pinned: {
@@ -3461,7 +3475,7 @@ function getTemplates(options, uiConfig) {
3461
3475
  --color-old-neutral-800: ${colors.neutral[800]};
3462
3476
  --color-old-neutral-900: ${colors.neutral[900]};
3463
3477
  --color-old-neutral-950: ${colors.neutral[950]};
3464
- ${[...options.theme?.colors || [], "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 ")}
3478
+ ${[...(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 ")}
3465
3479
  }
3466
3480
  `
3467
3481
  });
@@ -3493,6 +3507,10 @@ type AppConfigUI = {
3493
3507
 
3494
3508
  declare module '@nuxt/schema' {
3495
3509
  interface AppConfigInput {
3510
+ /**
3511
+ * Nuxt UI theme configuration
3512
+ * @see https://ui3.nuxt.dev/getting-started/theme#customize-theme
3513
+ */
3496
3514
  ui?: AppConfigUI
3497
3515
  }
3498
3516
  }
package/dist/unplugin.cjs CHANGED
@@ -5,7 +5,7 @@ const pathe = require('pathe');
5
5
  const unplugin = require('unplugin');
6
6
  const defu = require('defu');
7
7
  const tailwind = require('@tailwindcss/vite');
8
- const templates = require('./shared/ui.DfK2RX6G.cjs');
8
+ const templates = require('./shared/ui.COBs1u5H.cjs');
9
9
  const tinyglobby = require('tinyglobby');
10
10
  const knitwork = require('knitwork');
11
11
  const MagicString = require('magic-string');
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.DSPu6Y8j.mjs';
6
+ import { g as getTemplates, d as defaultOptions, r as resolveColors, a as getDefaultUiConfig } from './shared/ui.yjbGE7Dx.mjs';
7
7
  import { globSync } from 'tinyglobby';
8
8
  import { genSafeVariableName } from 'knitwork';
9
9
  import MagicString from 'magic-string';
package/dist/vite.cjs CHANGED
@@ -6,7 +6,7 @@ require('pathe');
6
6
  require('unplugin');
7
7
  require('defu');
8
8
  require('@tailwindcss/vite');
9
- require('./shared/ui.DfK2RX6G.cjs');
9
+ require('./shared/ui.COBs1u5H.cjs');
10
10
  require('../dist/runtime/utils/index.js');
11
11
  require('scule');
12
12
  require('@nuxt/kit');
package/dist/vite.mjs CHANGED
@@ -4,7 +4,7 @@ import 'pathe';
4
4
  import 'unplugin';
5
5
  import 'defu';
6
6
  import '@tailwindcss/vite';
7
- import './shared/ui.DSPu6Y8j.mjs';
7
+ import './shared/ui.yjbGE7Dx.mjs';
8
8
  import '../dist/runtime/utils/index.js';
9
9
  import 'scule';
10
10
  import '@nuxt/kit';
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.0.0-beta.2",
5
- "packageManager": "pnpm@10.5.2",
4
+ "version": "3.0.0-beta.4",
5
+ "packageManager": "pnpm@10.6.2",
6
6
  "repository": {
7
7
  "type": "git",
8
8
  "url": "git+https://github.com/nuxt/ui.git"
@@ -67,7 +67,7 @@
67
67
  "dev:build": "nuxi build playground",
68
68
  "dev:prepare": "nuxt-module-build build --stub && nuxt-module-build prepare && nuxi prepare playground && nuxi prepare docs && vite build playground-vue",
69
69
  "docs": "DEV=true nuxi dev docs",
70
- "docs:build": "nuxi build docs",
70
+ "docs:build": "NODE_OPTIONS='--max-old-space-size=8192' nuxi build docs",
71
71
  "docs:prepare": "nuxt-component-meta docs",
72
72
  "lint": "eslint .",
73
73
  "lint:fix": "eslint . --fix",
@@ -81,17 +81,17 @@
81
81
  "@iconify/vue": "^4.3.0",
82
82
  "@internationalized/date": "^3.7.0",
83
83
  "@internationalized/number": "^3.6.0",
84
- "@nuxt/fonts": "^0.10.3",
85
- "@nuxt/icon": "^1.10.3",
86
- "@nuxt/kit": "^3.15.4",
87
- "@nuxt/schema": "^3.15.4",
84
+ "@nuxt/fonts": "^0.11.0",
85
+ "@nuxt/icon": "^1.11.0",
86
+ "@nuxt/kit": "^3.16.0",
87
+ "@nuxt/schema": "^3.16.0",
88
88
  "@nuxtjs/color-mode": "^3.5.2",
89
- "@tailwindcss/postcss": "^4.0.9",
90
- "@tailwindcss/vite": "^4.0.9",
89
+ "@tailwindcss/postcss": "^4.0.13",
90
+ "@tailwindcss/vite": "^4.0.13",
91
91
  "@tanstack/vue-table": "^8.21.2",
92
- "@unhead/vue": "^1.11.20",
93
- "@vueuse/core": "^12.7.0",
94
- "@vueuse/integrations": "^12.7.0",
92
+ "@unhead/vue": "^2.0.0-rc.10",
93
+ "@vueuse/core": "^13.0.0",
94
+ "@vueuse/integrations": "^13.0.0",
95
95
  "colortranslator": "^4.1.0",
96
96
  "consola": "^3.4.0",
97
97
  "defu": "^6.1.4",
@@ -106,34 +106,36 @@
106
106
  "knitwork": "^1.2.0",
107
107
  "magic-string": "^0.30.17",
108
108
  "mlly": "^1.7.4",
109
- "ohash": "^1.1.4",
109
+ "ohash": "^2.0.11",
110
110
  "pathe": "^2.0.3",
111
111
  "reka-ui": "^2.0.2",
112
112
  "scule": "^1.3.0",
113
- "tailwind-variants": "^0.3.1",
114
- "tailwindcss": "^4.0.9",
113
+ "tailwind-variants": "^1.0.0",
114
+ "tailwindcss": "^4.0.13",
115
115
  "tinyglobby": "^0.2.12",
116
116
  "unplugin": "^2.2.0",
117
117
  "unplugin-auto-import": "^19.1.1",
118
118
  "unplugin-vue-components": "^28.4.1",
119
- "vaul-vue": "^0.3.0"
119
+ "vaul-vue": "^0.3.0",
120
+ "vue": "^3.5.13",
121
+ "vue-router": "^4.5.0"
120
122
  },
121
123
  "devDependencies": {
122
- "@nuxt/eslint-config": "^1.1.0",
124
+ "@nuxt/eslint-config": "^1.2.0",
123
125
  "@nuxt/module-builder": "^0.8.4",
124
- "@nuxt/test-utils": "^3.17.0",
126
+ "@nuxt/test-utils": "^3.17.2",
125
127
  "@release-it/conventional-changelog": "^10.0.0",
126
128
  "@standard-schema/spec": "^1.0.0",
127
129
  "@vue/test-utils": "^2.4.6",
128
130
  "embla-carousel": "^8.5.2",
129
- "eslint": "^9.21.0",
130
- "happy-dom": "^17.1.2",
131
+ "eslint": "^9.22.0",
132
+ "happy-dom": "^17.4.4",
131
133
  "joi": "^17.13.3",
132
- "nuxt": "^3.15.4",
134
+ "nuxt": "^3.16.0",
133
135
  "release-it": "^18.1.2",
134
136
  "superstruct": "^2.0.2",
135
137
  "valibot": "^0.42.1",
136
- "vitest": "^3.0.7",
138
+ "vitest": "^3.0.8",
137
139
  "vitest-environment-nuxt": "^1.0.1",
138
140
  "vue-tsc": "^2.2.0",
139
141
  "yup": "^1.6.1",
@@ -146,12 +148,9 @@
146
148
  "@nuxt/ui": "workspace:*",
147
149
  "chokidar": "3.6.0",
148
150
  "debug": "4.3.7",
149
- "happy-dom": "17.1.2",
150
- "rollup": "4.32.1",
151
+ "rollup": "4.34.9",
151
152
  "typescript": "5.6.3",
152
- "unimport": "3.14.5",
153
153
  "unplugin": "^2.2.0",
154
- "vue": "3.5.13",
155
154
  "vue-tsc": "2.2.0"
156
155
  },
157
156
  "pnpm": {