vuetify-nuxt-module 0.17.1 → 0.18.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.
package/dist/module.d.mts CHANGED
@@ -247,6 +247,15 @@ interface MOptions {
247
247
  styles?: true | 'none' | 'sass' | {
248
248
  configFile: string;
249
249
  };
250
+ /**
251
+ * The module will add `vuetify/styles` in Nuxt `css` by default.
252
+ *
253
+ * If you want to add custom styles, you should enable this flag to avoid registering `vuetify/styles`.
254
+ *
255
+ * @see https://github.com/vuetifyjs/nuxt-module/pull/213
256
+ * @default false
257
+ */
258
+ disableVuetifyStyles?: boolean;
250
259
  /**
251
260
  * Disable the modern SASS compiler and API.
252
261
  *
@@ -413,8 +422,6 @@ interface SSRClientHintsConfiguration {
413
422
  };
414
423
  }
415
424
 
416
- declare const _default: _nuxt_schema.NuxtModule<VuetifyModuleOptions>;
417
-
418
425
  interface ModuleOptions extends VuetifyModuleOptions {
419
426
  }
420
427
  interface ModuleHooks {
@@ -436,34 +443,6 @@ interface ModuleRuntimeHooks {
436
443
  ssrClientHintsConfiguration: SSRClientHintsConfiguration;
437
444
  }) => HookResult;
438
445
  }
439
- declare module '#app' {
440
- interface ModuleRuntimeHooks {
441
- 'vuetify:configuration': (options: {
442
- isDev: boolean;
443
- vuetifyOptions: VuetifyOptions;
444
- }) => HookResult;
445
- 'vuetify:before-create': (options: {
446
- isDev: boolean;
447
- vuetifyOptions: VuetifyOptions;
448
- }) => HookResult;
449
- 'vuetify:ready': (vuetify: ReturnType<typeof createVuetify>) => HookResult;
450
- 'vuetify:ssr-client-hints': (options: {
451
- vuetifyOptions: VuetifyOptions;
452
- ssrClientHints: SSRClientHints;
453
- ssrClientHintsConfiguration: SSRClientHintsConfiguration;
454
- }) => HookResult;
455
- }
456
- }
457
- declare module '@nuxt/schema' {
458
- interface NuxtConfig {
459
- ['vuetify']?: Partial<ModuleOptions>;
460
- }
461
- interface NuxtOptions {
462
- ['vuetify']?: ModuleOptions;
463
- }
464
- interface NuxtHooks {
465
- 'vuetify:registerModule': (registerModule: (config: InlineModuleOptions) => void) => HookResult;
466
- }
467
- }
446
+ declare const _default: _nuxt_schema.NuxtModule<ModuleOptions>;
468
447
 
469
448
  export { type ComponentName, type Components, type DateAdapter, type DateOptions, type DirectiveName, type Directives, type ExternalVuetifyOptions, type FontAwesomeSvgIconSet, type FontIconSet, type IconFontName, type IconSetName, type IconsOptions, type InlineModuleOptions, type JSSVGIconSet, type LabComponentName, type LabComponents, type MOptions, type ModuleHooks, type ModuleOptions, type ModuleRuntimeHooks, type SSRClientHints, type SSRClientHintsConfiguration, type UnoCCSMdiIconSet, type VOptions, type VuetifyLocale, type VuetifyModuleOptions, _default as default };
package/dist/module.d.ts CHANGED
@@ -247,6 +247,15 @@ interface MOptions {
247
247
  styles?: true | 'none' | 'sass' | {
248
248
  configFile: string;
249
249
  };
250
+ /**
251
+ * The module will add `vuetify/styles` in Nuxt `css` by default.
252
+ *
253
+ * If you want to add custom styles, you should enable this flag to avoid registering `vuetify/styles`.
254
+ *
255
+ * @see https://github.com/vuetifyjs/nuxt-module/pull/213
256
+ * @default false
257
+ */
258
+ disableVuetifyStyles?: boolean;
250
259
  /**
251
260
  * Disable the modern SASS compiler and API.
252
261
  *
@@ -413,8 +422,6 @@ interface SSRClientHintsConfiguration {
413
422
  };
414
423
  }
415
424
 
416
- declare const _default: _nuxt_schema.NuxtModule<VuetifyModuleOptions>;
417
-
418
425
  interface ModuleOptions extends VuetifyModuleOptions {
419
426
  }
420
427
  interface ModuleHooks {
@@ -436,34 +443,6 @@ interface ModuleRuntimeHooks {
436
443
  ssrClientHintsConfiguration: SSRClientHintsConfiguration;
437
444
  }) => HookResult;
438
445
  }
439
- declare module '#app' {
440
- interface ModuleRuntimeHooks {
441
- 'vuetify:configuration': (options: {
442
- isDev: boolean;
443
- vuetifyOptions: VuetifyOptions;
444
- }) => HookResult;
445
- 'vuetify:before-create': (options: {
446
- isDev: boolean;
447
- vuetifyOptions: VuetifyOptions;
448
- }) => HookResult;
449
- 'vuetify:ready': (vuetify: ReturnType<typeof createVuetify>) => HookResult;
450
- 'vuetify:ssr-client-hints': (options: {
451
- vuetifyOptions: VuetifyOptions;
452
- ssrClientHints: SSRClientHints;
453
- ssrClientHintsConfiguration: SSRClientHintsConfiguration;
454
- }) => HookResult;
455
- }
456
- }
457
- declare module '@nuxt/schema' {
458
- interface NuxtConfig {
459
- ['vuetify']?: Partial<ModuleOptions>;
460
- }
461
- interface NuxtOptions {
462
- ['vuetify']?: ModuleOptions;
463
- }
464
- interface NuxtHooks {
465
- 'vuetify:registerModule': (registerModule: (config: InlineModuleOptions) => void) => HookResult;
466
- }
467
- }
446
+ declare const _default: _nuxt_schema.NuxtModule<ModuleOptions>;
468
447
 
469
448
  export { type ComponentName, type Components, type DateAdapter, type DateOptions, type DirectiveName, type Directives, type ExternalVuetifyOptions, type FontAwesomeSvgIconSet, type FontIconSet, type IconFontName, type IconSetName, type IconsOptions, type InlineModuleOptions, type JSSVGIconSet, type LabComponentName, type LabComponents, type MOptions, type ModuleHooks, type ModuleOptions, type ModuleRuntimeHooks, type SSRClientHints, type SSRClientHintsConfiguration, type UnoCCSMdiIconSet, type VOptions, type VuetifyLocale, type VuetifyModuleOptions, _default as default };
package/dist/module.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "nuxt": ">=3.9.0",
6
6
  "bridge": false
7
7
  },
8
- "version": "0.17.1",
8
+ "version": "0.18.1",
9
9
  "builder": {
10
10
  "@nuxt/module-builder": "0.8.3",
11
11
  "unbuild": "2.0.0"
package/dist/module.mjs CHANGED
@@ -1,20 +1,22 @@
1
- import { addVitePlugin, addPluginTemplate, extendWebpackConfig, addImports, addPlugin, useLogger, defineNuxtModule, isNuxt2, getNuxtVersion, createResolver, hasNuxtModule } from '@nuxt/kit';
1
+ import { addVitePlugin, addPluginTemplate, getNuxtVersion, extendWebpackConfig, addImports, addPlugin, useLogger, defineNuxtModule, isNuxt2, createResolver, hasNuxtModule } from '@nuxt/kit';
2
2
  import { isPackageExists, getPackageInfo } from 'local-pkg';
3
- import { resolve, dirname, relative, extname } from 'node:path';
3
+ import { createFilter, version as version$1 } from 'vite';
4
+ import { resolve, dirname, relative } from 'node:path';
4
5
  import defu from 'defu';
5
6
  import { debounce } from 'perfect-debounce';
6
7
  import { existsSync, statSync } from 'node:fs';
7
8
  import process from 'node:process';
8
9
  import { createConfigLoader } from 'unconfig';
9
10
  import { readFile } from 'node:fs/promises';
10
- import { resolveVuetifyBase, normalizePath, generateImports } from '@vuetify/loader-shared';
11
- import { isAbsolute, join, relative as relative$1 } from 'pathe';
12
- import { transformAssetUrls } from 'vite-plugin-vuetify';
11
+ import { resolveVuetifyBase, isObject, normalizePath, generateImports } from '@vuetify/loader-shared';
13
12
  import { pathToFileURL } from 'node:url';
13
+ import { relative as relative$1, isAbsolute } from 'pathe';
14
+ import path from 'upath';
15
+ import { transformAssetUrls } from 'vite-plugin-vuetify';
14
16
  import { parseQuery, parseURL } from 'ufo';
15
17
  import destr from 'destr';
16
18
 
17
- const version = "0.17.1";
19
+ const version = "0.18.1";
18
20
 
19
21
  const VIRTUAL_VUETIFY_CONFIGURATION = "virtual:vuetify-configuration";
20
22
  const RESOLVED_VIRTUAL_VUETIFY_CONFIGURATION = `\0${VIRTUAL_VUETIFY_CONFIGURATION}`;
@@ -525,63 +527,74 @@ function registerWatcher(options, nuxt, ctx) {
525
527
  }
526
528
  }
527
529
 
528
- function isSubdir(root, test) {
529
- const relative = relative$1(root, test);
530
- return relative && !relative.startsWith("..") && !isAbsolute(relative);
531
- }
532
- function vuetifyStylesPlugin(options, _logger) {
533
- const vuetifyBase = resolveVuetifyBase();
530
+ function vuetifyStylesPlugin(options, [major, minor, patch], _logger) {
534
531
  let configFile;
535
- const tempFiles = /* @__PURE__ */ new Map();
532
+ const vuetifyBase = resolveVuetifyBase();
533
+ const noneFiles = /* @__PURE__ */ new Set();
534
+ let isNone = false;
535
+ let sassVariables = false;
536
+ let fileImport = false;
537
+ const PREFIX = "vuetify-styles/";
538
+ const SSR_PREFIX = `/@${PREFIX}`;
536
539
  return {
537
540
  name: "vuetify:styles:nuxt",
538
541
  enforce: "pre",
539
542
  configResolved(config) {
540
543
  if (config.plugins.findIndex((plugin) => plugin.name === "vuetify:styles") > -1)
541
544
  throw new Error("Remove vite-plugin-vuetify from your Nuxt config file, this module registers a modified version.");
542
- if (typeof options.styles === "object") {
543
- if (isAbsolute(options.styles.configFile))
544
- configFile = options.styles.configFile;
545
+ if (isObject(options.styles)) {
546
+ sassVariables = true;
547
+ fileImport = major > 5 || major === 5 && minor > 4 || major === 5 && minor === 4 && patch > 2;
548
+ if (path.isAbsolute(options.styles.configFile))
549
+ configFile = path.resolve(options.styles.configFile);
545
550
  else
546
- configFile = join(config.root || process.cwd(), options.styles.configFile);
551
+ configFile = path.resolve(path.join(config.root || process.cwd(), options.styles.configFile));
552
+ configFile = fileImport ? pathToFileURL(configFile).href : normalizePath(configFile);
553
+ } else {
554
+ isNone = options.styles === "none";
547
555
  }
548
556
  },
549
557
  async resolveId(source, importer, { custom, ssr }) {
550
- if (source === "vuetify/styles" || importer && source.endsWith(".css") && isSubdir(vuetifyBase, isAbsolute(source) ? source : importer)) {
551
- if (options.styles === "none") {
552
- return "/@plugin-vuetify/lib/__void__";
553
- } else if (options.styles === "sass") {
554
- const target = source.replace(/\.css$/, ".sass");
555
- return this.resolve(target, importer, { skipSelf: true, custom });
556
- } else if (typeof options.styles === "object") {
557
- const resolution = await this.resolve(source, importer, { skipSelf: true, custom });
558
- if (!resolution)
559
- return null;
560
- const target = resolution.id.replace(/\.css$/, ".sass");
561
- const file = relative$1(join(vuetifyBase, "lib"), target);
562
- const contents = `@use "${normalizePath(configFile)}"
563
- @use "${normalizePath(target)}"`;
564
- tempFiles.set(file, contents);
565
- return ssr ? `/@plugin-vuetify/lib/${file}` : `/@fs/plugin-vuetify/lib/${file}`;
558
+ if (source.startsWith(PREFIX) || source.startsWith(SSR_PREFIX))
559
+ return source;
560
+ if (source === "vuetify/styles" || importer && source.endsWith(".css") && isSubdir(vuetifyBase, path.isAbsolute(source) ? source : importer)) {
561
+ if (options.styles === "sass") {
562
+ const target2 = source.replace(/\.css$/, ".sass");
563
+ return this.resolve(target2, importer, { skipSelf: true, custom });
566
564
  }
565
+ const resolution = await this.resolve(source, importer, { skipSelf: true, custom });
566
+ if (!resolution)
567
+ return void 0;
568
+ const target = resolution.id.replace(/\.css$/, ".sass");
569
+ if (isNone) {
570
+ noneFiles.add(target);
571
+ return target;
572
+ }
573
+ return `${ssr ? SSR_PREFIX : PREFIX}${path.relative(vuetifyBase, target)}`;
567
574
  }
575
+ return void 0;
568
576
  },
569
577
  load(id) {
570
- if (/^\/@plugin-vuetify\/lib\/__void__(\?.*)?$/.test(id))
571
- return "";
572
- if (id.startsWith("/@plugin-vuetify/lib/")) {
573
- const file = /^\/@plugin-vuetify\/lib\/(.*?)(\?.*)?$/.exec(id)[1];
574
- return tempFiles.get(file);
575
- }
576
- if (id.startsWith("/@fs/plugin-vuetify/lib/")) {
577
- const file = /^\/@fs\/plugin-vuetify\/lib\/(.*?)(\?.*)?$/.exec(id)[1];
578
- return tempFiles.get(file);
578
+ if (sassVariables) {
579
+ const target = id.startsWith(PREFIX) ? path.resolve(vuetifyBase, id.slice(PREFIX.length)) : id.startsWith(SSR_PREFIX) ? path.resolve(vuetifyBase, id.slice(SSR_PREFIX.length)) : void 0;
580
+ if (target) {
581
+ return {
582
+ code: `@use "${configFile}"
583
+ @use "${fileImport ? pathToFileURL(target).href : normalizePath(target)}"`,
584
+ map: {
585
+ mappings: ""
586
+ }
587
+ };
588
+ }
579
589
  }
580
- if (id.includes("plugin-vuetify/lib"))
581
- return "";
590
+ return isNone && noneFiles.has(id) ? "" : void 0;
582
591
  }
583
592
  };
584
593
  }
594
+ function isSubdir(root, test) {
595
+ const relative = relative$1(root, test);
596
+ return relative && !relative.startsWith("..") && !isAbsolute(relative);
597
+ }
585
598
 
586
599
  function toKebabCase(str = "") {
587
600
  if (toKebabCase.cache.has(str))
@@ -1173,15 +1186,22 @@ function parseId(id) {
1173
1186
  };
1174
1187
  }
1175
1188
  function vuetifyImportPlugin(options) {
1189
+ let filter;
1176
1190
  return {
1177
1191
  name: "vuetify:import:nuxt",
1178
1192
  configResolved(config) {
1179
1193
  if (config.plugins.findIndex((plugin) => plugin.name === "vuetify:import") > -1)
1180
1194
  throw new Error("Remove vite-plugin-vuetify from your Nuxt config file, this module registers a modified version.");
1195
+ const vueIdx = config.plugins.findIndex((plugin) => plugin.name === "vite:vue");
1196
+ const vueOptions = vueIdx > -1 ? config.plugins[vueIdx].api?.options : {};
1197
+ filter = createFilter(vueOptions.include, vueOptions.exclude);
1181
1198
  },
1182
1199
  async transform(code, id) {
1183
1200
  const { query, path } = parseId(id);
1184
- if ((!query || !("vue" in query)) && extname(path) === ".vue" && !/^import { render as _sfc_render } from ".*"$/m.test(code) || query && "vue" in query && (query.type === "template" || query.type === "script" && query.setup === "true")) {
1201
+ const isVueVirtual = query && "vue" in query;
1202
+ const isVueFile = !isVueVirtual && filter(path) && !/^import { render as _sfc_render } from ".*"$/m.test(code);
1203
+ const isVueTemplate = isVueVirtual && (query.type === "template" || query.type === "script" && query.setup === "true");
1204
+ if (isVueFile || isVueTemplate) {
1185
1205
  const { code: imports, source } = generateImports(code, options);
1186
1206
  return {
1187
1207
  code: source + imports,
@@ -1199,7 +1219,7 @@ function configureVite(configKey, nuxt, ctx) {
1199
1219
  viteInlineConfig.plugins = viteInlineConfig.plugins || [];
1200
1220
  checkVuetifyPlugins(viteInlineConfig);
1201
1221
  viteInlineConfig.optimizeDeps = defu(viteInlineConfig.optimizeDeps, { exclude: ["vuetify"] });
1202
- if (nuxt.options.ssr) {
1222
+ if (ctx.isSSR) {
1203
1223
  viteInlineConfig.ssr ||= {};
1204
1224
  viteInlineConfig.ssr.noExternal = [
1205
1225
  ...Array.isArray(viteInlineConfig.ssr.noExternal) ? viteInlineConfig.ssr.noExternal : viteInlineConfig.ssr.noExternal && typeof viteInlineConfig.ssr.noExternal !== "boolean" ? [viteInlineConfig.ssr.noExternal] : [],
@@ -1216,16 +1236,26 @@ function configureVite(configKey, nuxt, ctx) {
1216
1236
  viteInlineConfig.vue.template.transformAssetUrls = transformAssetUrls;
1217
1237
  }
1218
1238
  if (!ctx.moduleOptions.disableModernSassCompiler) {
1219
- viteInlineConfig.css ??= {};
1220
- viteInlineConfig.css.preprocessorOptions ??= {};
1221
- viteInlineConfig.css.preprocessorOptions.sass ??= {};
1222
- const sassEmbedded = isPackageExists("sass-embedded");
1223
- if (sassEmbedded) {
1224
- viteInlineConfig.css.preprocessorOptions.sass.api = "modern-compiler";
1225
- } else {
1226
- viteInlineConfig.css.preprocessorOptions.sass.api = "modern";
1227
- if (!("preprocessorMaxWorkers" in viteInlineConfig.css))
1228
- viteInlineConfig.css.preprocessorMaxWorkers = true;
1239
+ const [major, minor, patch] = ctx.viteVersion;
1240
+ const enableModernSassCompiler = major > 5 || major === 5 && minor >= 4;
1241
+ if (enableModernSassCompiler) {
1242
+ const sassEmbedded = isPackageExists("sass-embedded");
1243
+ if (sassEmbedded) {
1244
+ const omit = major > 5 || major === 5 && minor > 4 || major === 5 && minor === 4 && patch >= 2;
1245
+ if (!omit) {
1246
+ viteInlineConfig.css ??= {};
1247
+ viteInlineConfig.css.preprocessorOptions ??= {};
1248
+ viteInlineConfig.css.preprocessorOptions.sass ??= {};
1249
+ viteInlineConfig.css.preprocessorOptions.sass.api = "modern-compiler";
1250
+ }
1251
+ } else {
1252
+ viteInlineConfig.css ??= {};
1253
+ viteInlineConfig.css.preprocessorOptions ??= {};
1254
+ viteInlineConfig.css.preprocessorOptions.sass ??= {};
1255
+ viteInlineConfig.css.preprocessorOptions.sass.api = "modern";
1256
+ if (!("preprocessorMaxWorkers" in viteInlineConfig.css))
1257
+ viteInlineConfig.css.preprocessorMaxWorkers = true;
1258
+ }
1229
1259
  }
1230
1260
  }
1231
1261
  const vuetifyImportOptions = {};
@@ -1235,7 +1265,8 @@ function configureVite(configKey, nuxt, ctx) {
1235
1265
  vuetifyImportOptions.autoImport = { ignore };
1236
1266
  }
1237
1267
  viteInlineConfig.plugins.push(vuetifyImportPlugin(vuetifyImportOptions));
1238
- viteInlineConfig.plugins.push(vuetifyStylesPlugin({ styles: ctx.moduleOptions.styles }, ctx.logger));
1268
+ if (typeof ctx.moduleOptions.styles !== "boolean")
1269
+ viteInlineConfig.plugins.push(vuetifyStylesPlugin({ styles: ctx.moduleOptions.styles }, ctx.viteVersion, ctx.logger));
1239
1270
  viteInlineConfig.plugins.push(vuetifyConfigurationPlugin(ctx));
1240
1271
  viteInlineConfig.plugins.push(vuetifyIconsPlugin(ctx));
1241
1272
  viteInlineConfig.plugins.push(vuetifyDateConfigurationPlugin(ctx));
@@ -1301,10 +1332,24 @@ export default defineNuxtPlugin({
1301
1332
 
1302
1333
  function configureNuxt(configKey, nuxt, ctx) {
1303
1334
  const {
1335
+ styles,
1304
1336
  importComposables,
1305
- prefixComposables
1337
+ prefixComposables,
1338
+ disableVuetifyStyles
1306
1339
  } = ctx.moduleOptions;
1307
1340
  const runtimeDir = ctx.resolver.resolve("./runtime");
1341
+ if (ctx.isSSR && !!styles && typeof styles === "object") {
1342
+ const [major, minor] = getNuxtVersion(nuxt).split(".").map((v) => v.includes("-") ? v.split("-")[0] : v).map((v) => Number.parseInt(v));
1343
+ const features = major > 3 || major === 3 && minor >= 9;
1344
+ if (features)
1345
+ nuxt.options.features.inlineStyles = false;
1346
+ else
1347
+ nuxt.options.experimental["inlineSSRStyles"] = false;
1348
+ }
1349
+ if (!disableVuetifyStyles) {
1350
+ nuxt.options.css ??= [];
1351
+ nuxt.options.css.unshift("vuetify/styles");
1352
+ }
1308
1353
  nuxt.options.build.transpile.push(configKey);
1309
1354
  nuxt.options.build.transpile.push(runtimeDir);
1310
1355
  nuxt.options.build.transpile.push(/\/vuetify-nuxt-plugin\.(client|server)\.mjs$/);
@@ -1312,8 +1357,6 @@ function configureNuxt(configKey, nuxt, ctx) {
1312
1357
  nuxt.options.imports.transform.include ??= [];
1313
1358
  for (const virtual of RESOLVED_VIRTUAL_MODULES)
1314
1359
  nuxt.options.imports.transform.include.push(new RegExp(`${virtual}$`));
1315
- nuxt.options.css ??= [];
1316
- nuxt.options.css.unshift("vuetify/styles");
1317
1360
  extendWebpackConfig(() => {
1318
1361
  throw new Error("Webpack is not supported: vuetify-nuxt-module module can only be used with Vite!");
1319
1362
  });
@@ -1392,6 +1435,7 @@ const module = defineNuxtModule({
1392
1435
  importComposables: true,
1393
1436
  includeTransformAssetsUrls: true,
1394
1437
  styles: true,
1438
+ disableVuetifyStyles: false,
1395
1439
  disableModernSassCompiler: false
1396
1440
  }
1397
1441
  }),
@@ -1402,6 +1446,7 @@ const module = defineNuxtModule({
1402
1446
  const versions = vuetifyPkg?.version?.split(".").map((v) => Number.parseInt(v));
1403
1447
  const vuetify3_4 = versions && versions.length > 1 && (versions[0] > 3 || versions[0] === 3 && versions[1] >= 4);
1404
1448
  const vuetify3_5 = versions && versions.length > 1 && (versions[0] > 3 || versions[0] === 3 && versions[1] >= 5);
1449
+ const viteVersion = version$1.split(".").map((v) => v.includes("-") ? v.split("-")[0] : v).map((v) => Number.parseInt(v));
1405
1450
  const ctx = {
1406
1451
  logger,
1407
1452
  resolver: createResolver(import.meta.url),
@@ -1418,7 +1463,8 @@ const module = defineNuxtModule({
1418
1463
  componentsPromise: void 0,
1419
1464
  labComponentsPromise: void 0,
1420
1465
  vuetify3_4,
1421
- vuetify3_5
1466
+ vuetify3_5,
1467
+ viteVersion
1422
1468
  };
1423
1469
  await load(options, nuxt, ctx);
1424
1470
  configureNuxt(CONFIG_KEY, nuxt, ctx);
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "vuetify-nuxt-module",
3
3
  "type": "module",
4
- "version": "0.17.1",
5
- "packageManager": "pnpm@9.7.1",
4
+ "version": "0.18.1",
5
+ "packageManager": "pnpm@9.9.0",
6
6
  "description": "Zero-Config Nuxt Module for Vuetify",
7
7
  "author": "userquin <userquin@gmail.com>",
8
8
  "license": "MIT",
@@ -73,7 +73,8 @@
73
73
  "perfect-debounce": "^1.0.0",
74
74
  "ufo": "^1.5.4",
75
75
  "unconfig": "^0.5.5",
76
- "vite-plugin-vuetify": "^2.0.3",
76
+ "upath": "^2.0.1",
77
+ "vite-plugin-vuetify": "^2.0.4",
77
78
  "vuetify": "^3.7.0"
78
79
  },
79
80
  "devDependencies": {
@@ -142,4 +143,4 @@
142
143
  "installDependencies": false,
143
144
  "startCommand": "node .stackblitz.js && pnpm install && nr prepack && nr dev:prepare && nr dev"
144
145
  }
145
- }
146
+ }