vuetify-nuxt-module 0.19.4 β†’ 1.0.0-alpha.2

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.
@@ -1,8 +1,9 @@
1
- import { adapter, dateConfiguration, enabled, i18n } from "virtual:vuetify-date-configuration";
2
1
  import { useNuxtApp } from "#imports";
2
+ import { adapter, dateConfiguration, enabled, i18n } from "virtual:vuetify-date-configuration";
3
3
  export function configureDate(vuetifyOptions) {
4
- if (adapter === "custom" || !enabled)
4
+ if (adapter === "custom" || !enabled) {
5
5
  return;
6
+ }
6
7
  const dateOptions = dateConfiguration();
7
8
  if (i18n) {
8
9
  const locales = useNuxtApp().$i18n.locales.value;
@@ -111,19 +111,23 @@ const operatingSystemRules = [
111
111
  ["OS/2", /OS\/2/]
112
112
  ];
113
113
  export function detect(userAgent) {
114
- if (userAgent)
114
+ if (userAgent) {
115
115
  return parseUserAgent(userAgent);
116
- if (typeof document === "undefined" && typeof navigator !== "undefined" && navigator.product === "ReactNative")
116
+ }
117
+ if (typeof document === "undefined" && typeof navigator !== "undefined" && navigator.product === "ReactNative") {
117
118
  return new ReactNativeInfo();
118
- if (typeof navigator !== "undefined")
119
+ }
120
+ if (typeof navigator !== "undefined") {
119
121
  return parseUserAgent(navigator.userAgent);
122
+ }
120
123
  return getNodeVersion();
121
124
  }
122
125
  function matchUserAgent(ua) {
123
126
  return ua !== "" && userAgentRules.reduce(
124
127
  (matched, [browser, regex]) => {
125
- if (matched)
128
+ if (matched) {
126
129
  return matched;
130
+ }
127
131
  const uaMatch = regex.exec(ua);
128
132
  return !!uaMatch && [browser, uaMatch];
129
133
  },
@@ -136,11 +140,13 @@ export function browserName(ua) {
136
140
  }
137
141
  export function parseUserAgent(ua) {
138
142
  const matchedRule = matchUserAgent(ua);
139
- if (!matchedRule)
143
+ if (!matchedRule) {
140
144
  return null;
145
+ }
141
146
  const [name, match] = matchedRule;
142
- if (name === "searchbot")
147
+ if (name === "searchbot") {
143
148
  return new BotInfo();
149
+ }
144
150
  let versionParts = match[1] && match[1].split(".").join("_").split("_").slice(0, 3);
145
151
  if (versionParts) {
146
152
  if (versionParts.length < REQUIRED_VERSION_PARTS) {
@@ -155,26 +161,29 @@ export function parseUserAgent(ua) {
155
161
  const version = versionParts.join(".");
156
162
  const os = detectOS(ua);
157
163
  const searchBotMatch = SEARCHBOT_OS_REGEX.exec(ua);
158
- if (searchBotMatch && searchBotMatch[1])
164
+ if (searchBotMatch && searchBotMatch[1]) {
159
165
  return new SearchBotDeviceInfo(name, version, os, searchBotMatch[1]);
166
+ }
160
167
  return new BrowserInfo(name, version, os);
161
168
  }
162
169
  export function detectOS(ua) {
163
170
  for (let ii = 0, count = operatingSystemRules.length; ii < count; ii++) {
164
171
  const [os, regex] = operatingSystemRules[ii];
165
172
  const match = regex.exec(ua);
166
- if (match)
173
+ if (match) {
167
174
  return os;
175
+ }
168
176
  }
169
177
  return null;
170
178
  }
171
179
  export function getNodeVersion() {
172
- const isNode = typeof process !== "undefined" && process.version;
180
+ const isNode = process !== void 0 && process.version;
173
181
  return isNode ? new NodeInfo(process.version.slice(1)) : null;
174
182
  }
175
183
  function createVersionParts(count) {
176
184
  const output = [];
177
- for (let ii = 0; ii < count; ii++)
185
+ for (let ii = 0; ii < count; ii++) {
178
186
  output.push("0");
187
+ }
179
188
  return output;
180
189
  }
@@ -1,6 +1,6 @@
1
+ import { useNuxtApp } from "#imports";
1
2
  import { ref, toRef, watch } from "vue";
2
3
  import { useI18n } from "vue-i18n";
3
- import { useNuxtApp } from "#imports";
4
4
  function inferDecimalSeparator(n) {
5
5
  return n(0.1).includes(",") ? "," : ".";
6
6
  }
@@ -17,8 +17,9 @@ export function createAdapter(vuetifyOptions) {
17
17
  return acc;
18
18
  }, {});
19
19
  watch(currentLocale, (val, oldVal) => {
20
- if (oldVal)
20
+ if (oldVal) {
21
21
  i18n.setLocale(val);
22
+ }
22
23
  }, { immediate: true, flush: "post" });
23
24
  nuxtApp.hook("i18n:localeSwitched", ({ newLocale }) => {
24
25
  currentLocale.value = newLocale;
@@ -31,7 +32,6 @@ export function createAdapter(vuetifyOptions) {
31
32
  t: (key, ...params) => i18n.t(key, params),
32
33
  n: i18n.n,
33
34
  provide: createProvideFunction({ current: currentLocale, fallback, messages }),
34
- // @ts-expect-error available in vuetify 3.9
35
35
  decimalSeparator: toRef(() => inferDecimalSeparator(i18n.n))
36
36
  };
37
37
  }
@@ -47,8 +47,9 @@ function createProvideFunction(data) {
47
47
  inheritLocale: false
48
48
  });
49
49
  watch(currentLocale, (val, oldVal) => {
50
- if (oldVal)
50
+ if (oldVal) {
51
51
  i18n.setLocale(val);
52
+ }
52
53
  }, { immediate: true, flush: "post" });
53
54
  const t = wrapI18n(i18n.t);
54
55
  const n = wrapI18n(i18n.n);
@@ -59,7 +60,6 @@ function createProvideFunction(data) {
59
60
  messages: data.messages,
60
61
  t,
61
62
  n,
62
- // @ts-expect-error available in vuetify 3.9
63
63
  decimalSeparator: toRef(() => props.decimalSeparator ?? inferDecimalSeparator(n)),
64
64
  provide: createProvideFunction({ current: currentLocale, fallback: data.fallback, messages: data.messages })
65
65
  };
@@ -3,8 +3,9 @@ export function configureIcons(vuetifyOptions) {
3
3
  if (enabled) {
4
4
  const icons = iconsConfiguration();
5
5
  const custom = icons?.defaultSet === "custom";
6
- if (custom)
6
+ if (custom) {
7
7
  return;
8
+ }
8
9
  vuetifyOptions.icons = icons;
9
10
  }
10
11
  }
@@ -25,5 +25,3 @@ declare module '#app' {
25
25
  $ssrClientHints: UnwrapNestedRefs<SSRClientHints>
26
26
  }
27
27
  }
28
-
29
- export {}
@@ -1,6 +1,6 @@
1
+ import type { Plugin } from '#app';
1
2
  import type { UnwrapNestedRefs } from 'vue';
2
3
  import type { SSRClientHints } from './types.js';
3
- import type { Plugin } from '#app';
4
4
  declare const plugin: Plugin<{
5
5
  ssrClientHints: UnwrapNestedRefs<SSRClientHints>;
6
6
  }>;
@@ -1,7 +1,7 @@
1
+ import { defineNuxtPlugin, useNuxtApp, useState } from "#imports";
1
2
  import { ssrClientHintsConfiguration } from "virtual:vuetify-ssr-client-hints-configuration";
2
3
  import { reactive, ref, watch } from "vue";
3
4
  import { VuetifyHTTPClientHints } from "./client-hints.js";
4
- import { defineNuxtPlugin, useNuxtApp, useState } from "#imports";
5
5
  const plugin = defineNuxtPlugin({
6
6
  name: "vuetify:client-hints:client:plugin",
7
7
  order: -25,
@@ -37,12 +37,15 @@ const plugin = defineNuxtPlugin({
37
37
  window.location.reload();
38
38
  }
39
39
  }
40
- if (prefersReducedMotion && prefersReducedMotionAvailable)
40
+ if (prefersReducedMotion && prefersReducedMotionAvailable) {
41
41
  window.location.reload();
42
- if (viewportSize && viewportHeightAvailable)
42
+ }
43
+ if (viewportSize && viewportHeightAvailable) {
43
44
  window.location.reload();
44
- if (viewportSize && viewportWidthAvailable)
45
+ }
46
+ if (viewportSize && viewportWidthAvailable) {
45
47
  window.location.reload();
48
+ }
46
49
  }
47
50
  nuxtApp.hook("vuetify:before-create", ({ vuetifyOptions }) => {
48
51
  if (viewportSize) {
@@ -106,11 +109,13 @@ function defaultClientValues() {
106
109
  }
107
110
  function useSSRClientHints() {
108
111
  const state = useState(VuetifyHTTPClientHints);
109
- if (state.value)
112
+ if (state.value) {
110
113
  return state;
114
+ }
111
115
  const initial = ref(defaultClientValues());
112
- if (!ssrClientHintsConfiguration.prefersColorScheme || !ssrClientHintsConfiguration.prefersColorSchemeOptions)
116
+ if (!ssrClientHintsConfiguration.prefersColorScheme || !ssrClientHintsConfiguration.prefersColorSchemeOptions) {
113
117
  return initial;
118
+ }
114
119
  const {
115
120
  baseUrl,
116
121
  cookieName,
@@ -1,6 +1,6 @@
1
+ import type { Plugin } from '#app';
1
2
  import type { UnwrapNestedRefs } from 'vue';
2
3
  import type { SSRClientHints } from './types.js';
3
- import type { Plugin } from '#app';
4
4
  declare const plugin: Plugin<{
5
5
  ssrClientHints: UnwrapNestedRefs<SSRClientHints>;
6
6
  }>;
@@ -1,10 +1,3 @@
1
- import { setResponseHeader } from "h3";
2
- import {
3
- ssrClientHintsConfiguration
4
- } from "virtual:vuetify-ssr-client-hints-configuration";
5
- import { reactive } from "vue";
6
- import { parseUserAgent } from "./detect-browser.js";
7
- import { VuetifyHTTPClientHints } from "./client-hints.js";
8
1
  import {
9
2
  defineNuxtPlugin,
10
3
  useCookie,
@@ -13,6 +6,13 @@ import {
13
6
  useRequestHeaders,
14
7
  useState
15
8
  } from "#imports";
9
+ import { setResponseHeader } from "h3";
10
+ import {
11
+ ssrClientHintsConfiguration
12
+ } from "virtual:vuetify-ssr-client-hints-configuration";
13
+ import { reactive } from "vue";
14
+ import { VuetifyHTTPClientHints } from "./client-hints.js";
15
+ import { parseUserAgent } from "./detect-browser.js";
16
16
  const AcceptClientHintsHeaders = {
17
17
  prefersColorScheme: "Sec-CH-Prefers-Color-Scheme",
18
18
  prefersReducedMotion: "Sec-CH-Prefers-Reduced-Motion",
@@ -99,15 +99,17 @@ const allowedBrowsers = [
99
99
  ];
100
100
  const ClientHeaders = ["Accept-CH", "Vary", "Critical-CH"];
101
101
  function browserFeatureAvailable(userAgent, feature) {
102
- if (userAgent == null || userAgent.type !== "browser")
102
+ if (userAgent == null || userAgent.type !== "browser") {
103
103
  return false;
104
+ }
104
105
  try {
105
106
  const browserName = userAgent.name;
106
107
  const android = userAgent.os?.toLowerCase().startsWith("android") ?? false;
107
108
  const versions = userAgent.version.split(".").map((v) => Number.parseInt(v));
108
109
  return allowedBrowsers.some(([name, check]) => {
109
- if (browserName !== name)
110
+ if (browserName !== name) {
110
111
  return false;
112
+ }
111
113
  try {
112
114
  return check[feature](android, versions);
113
115
  } catch {
@@ -127,18 +129,22 @@ function lookupClientHints(userAgent, ssrClientHintsConfiguration2, headers) {
127
129
  viewportWidthAvailable: false,
128
130
  devicePixelRatioAvailable: false
129
131
  };
130
- if (userAgent == null || userAgent.type !== "browser")
132
+ if (userAgent == null || userAgent.type !== "browser") {
131
133
  return features;
132
- if (ssrClientHintsConfiguration2.prefersColorScheme)
134
+ }
135
+ if (ssrClientHintsConfiguration2.prefersColorScheme) {
133
136
  features.prefersColorSchemeAvailable = browserFeatureAvailable(userAgent, "prefersColorScheme");
134
- if (ssrClientHintsConfiguration2.prefersReducedMotion)
137
+ }
138
+ if (ssrClientHintsConfiguration2.prefersReducedMotion) {
135
139
  features.prefersReducedMotionAvailable = browserFeatureAvailable(userAgent, "prefersReducedMotion");
140
+ }
136
141
  if (ssrClientHintsConfiguration2.viewportSize) {
137
142
  features.viewportHeightAvailable = browserFeatureAvailable(userAgent, "viewportHeight");
138
143
  features.viewportWidthAvailable = browserFeatureAvailable(userAgent, "viewportWidth");
139
144
  const mobileHeader = headers[SecChUaMobile];
140
- if (mobileHeader === "?1")
145
+ if (mobileHeader === "?1") {
141
146
  features.devicePixelRatioAvailable = browserFeatureAvailable(userAgent, "devicePixelRatio");
147
+ }
142
148
  }
143
149
  return features;
144
150
  }
@@ -211,10 +217,12 @@ function collectClientHints(userAgent, ssrClientHintsConfiguration2, headers) {
211
217
  try {
212
218
  hints.devicePixelRatio = Number.parseFloat(header);
213
219
  if (!Number.isNaN(hints.devicePixelRatio) && hints.devicePixelRatio > 0) {
214
- if (typeof hints.viewportWidth === "number")
220
+ if (typeof hints.viewportWidth === "number") {
215
221
  hints.viewportWidth = Math.round(hints.viewportWidth / hints.devicePixelRatio);
216
- if (typeof hints.viewportHeight === "number")
222
+ }
223
+ if (typeof hints.viewportHeight === "number") {
217
224
  hints.viewportHeight = Math.round(hints.viewportHeight / hints.devicePixelRatio);
225
+ }
218
226
  }
219
227
  } catch {
220
228
  }
@@ -223,30 +231,34 @@ function collectClientHints(userAgent, ssrClientHintsConfiguration2, headers) {
223
231
  return hints;
224
232
  }
225
233
  function writeClientHintHeaders(key, headers) {
226
- ClientHeaders.forEach((header) => {
227
- headers[header] = (headers[header] ? headers[header] : []).concat(key);
228
- });
234
+ for (const header of ClientHeaders) {
235
+ headers[header] = (headers[header] ?? []).concat(key);
236
+ }
229
237
  }
230
238
  function writeClientHintsResponseHeaders(clientHintsRequest, ssrClientHintsConfiguration2) {
231
239
  const headers = {};
232
- if (ssrClientHintsConfiguration2.prefersColorScheme && clientHintsRequest.prefersColorSchemeAvailable)
240
+ if (ssrClientHintsConfiguration2.prefersColorScheme && clientHintsRequest.prefersColorSchemeAvailable) {
233
241
  writeClientHintHeaders(AcceptClientHintsHeaders.prefersColorScheme, headers);
234
- if (ssrClientHintsConfiguration2.prefersReducedMotion && clientHintsRequest.prefersReducedMotionAvailable)
242
+ }
243
+ if (ssrClientHintsConfiguration2.prefersReducedMotion && clientHintsRequest.prefersReducedMotionAvailable) {
235
244
  writeClientHintHeaders(AcceptClientHintsHeaders.prefersReducedMotion, headers);
245
+ }
236
246
  if (ssrClientHintsConfiguration2.viewportSize && clientHintsRequest.viewportHeightAvailable && clientHintsRequest.viewportWidthAvailable) {
237
247
  writeClientHintHeaders(AcceptClientHintsHeaders.viewportHeight, headers);
238
248
  writeClientHintHeaders(AcceptClientHintsHeaders.viewportWidth, headers);
239
- if (clientHintsRequest.devicePixelRatioAvailable)
249
+ if (clientHintsRequest.devicePixelRatioAvailable) {
240
250
  writeClientHintHeaders(AcceptClientHintsHeaders.devicePixelRatio, headers);
251
+ }
241
252
  }
242
- if (Object.keys(headers).length === 0)
253
+ if (Object.keys(headers).length === 0) {
243
254
  return;
255
+ }
244
256
  const nuxtApp = useNuxtApp();
245
257
  const callback = () => {
246
258
  const event = useRequestEvent(nuxtApp);
247
- Object.entries(headers).forEach(([key, value]) => {
259
+ for (const [key, value] of Object.entries(headers)) {
248
260
  setResponseHeader(event, key, value);
249
- });
261
+ }
250
262
  };
251
263
  const unhook = nuxtApp.hooks.hookOnce("app:rendered", callback);
252
264
  nuxtApp.hooks.hookOnce("app:error", () => {
@@ -255,8 +267,9 @@ function writeClientHintsResponseHeaders(clientHintsRequest, ssrClientHintsConfi
255
267
  });
256
268
  }
257
269
  function writeThemeCookie(clientHintsRequest, ssrClientHintsConfiguration2) {
258
- if (!ssrClientHintsConfiguration2.prefersColorScheme || !ssrClientHintsConfiguration2.prefersColorSchemeOptions)
270
+ if (!ssrClientHintsConfiguration2.prefersColorScheme || !ssrClientHintsConfiguration2.prefersColorSchemeOptions) {
259
271
  return;
272
+ }
260
273
  const cookieName = ssrClientHintsConfiguration2.prefersColorSchemeOptions.cookieName;
261
274
  const themeName = clientHintsRequest.colorSchemeFromCookie ?? ssrClientHintsConfiguration2.prefersColorSchemeOptions.defaultTheme;
262
275
  const path = ssrClientHintsConfiguration2.prefersColorSchemeOptions.baseUrl;
@@ -1,5 +1,5 @@
1
- import { configureDate } from "./date.js";
2
1
  import { defineNuxtPlugin } from "#imports";
2
+ import { configureDate } from "./date.js";
3
3
  export default defineNuxtPlugin({
4
4
  name: "vuetify:date:plugin",
5
5
  order: -25,
@@ -1,5 +1,5 @@
1
- import { configureDate } from "./date.js";
2
1
  import { defineNuxtPlugin } from "#imports";
2
+ import { configureDate } from "./date.js";
3
3
  export default defineNuxtPlugin({
4
4
  name: "vuetify:date-i18n:plugin",
5
5
  order: -25,
@@ -1,5 +1,5 @@
1
- import { createAdapter } from "./i18n.js";
2
1
  import { defineNuxtPlugin } from "#imports";
2
+ import { createAdapter } from "./i18n.js";
3
3
  export default defineNuxtPlugin({
4
4
  name: "vuetify:i18n:plugin",
5
5
  order: -25,
@@ -1,5 +1,5 @@
1
- import { configureIcons } from "./icons.js";
2
1
  import { defineNuxtPlugin } from "#imports";
2
+ import { configureIcons } from "./icons.js";
3
3
  export default defineNuxtPlugin({
4
4
  name: "vuetify:icons:plugin",
5
5
  order: -25,
@@ -1,6 +1,6 @@
1
+ import type { Plugin } from '#app';
1
2
  import type { UnwrapNestedRefs } from 'vue';
2
3
  import type { SSRClientHints } from './types.js';
3
- import type { Plugin } from '#app';
4
4
  declare const plugin: Plugin<{
5
5
  ssrClientHints: UnwrapNestedRefs<SSRClientHints>;
6
6
  }>;
@@ -1,5 +1,5 @@
1
- import { reactive } from "vue";
2
1
  import { defineNuxtPlugin } from "#imports";
2
+ import { reactive } from "vue";
3
3
  const plugin = defineNuxtPlugin(() => {
4
4
  return {
5
5
  provide: reactive({
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "vuetify-nuxt-module",
3
3
  "type": "module",
4
- "version": "0.19.4",
4
+ "version": "1.0.0-alpha.2",
5
5
  "description": "Zero-Config Nuxt Module for Vuetify",
6
6
  "author": "userquin <userquin@gmail.com>",
7
7
  "license": "MIT",
@@ -51,54 +51,49 @@
51
51
  "*.mjs"
52
52
  ],
53
53
  "dependencies": {
54
- "@nuxt/kit": "^3.15.4 || ^4.0.0",
54
+ "@nuxt/kit": "^4.3.1",
55
55
  "defu": "^6.1.4",
56
- "destr": "^2.0.3",
56
+ "destr": "^2.0.5",
57
57
  "local-pkg": "^1.1.2",
58
- "pathe": "^1.1.2",
59
- "perfect-debounce": "^1.0.0",
60
- "semver": "^7.7.3",
61
- "ufo": "^1.5.4",
62
- "unconfig": "^0.6.1",
58
+ "pathe": "^2.0.3",
59
+ "perfect-debounce": "^2.1.0",
60
+ "semver": "^7.7.4",
61
+ "ufo": "^1.6.3",
62
+ "unconfig": "^7.5.0",
63
63
  "upath": "^2.0.1",
64
64
  "vite-plugin-vuetify": "^2.1.3",
65
- "vuetify": "^3.7.0 || ^4.0.0-0"
65
+ "vuetify": "^4.0.1"
66
66
  },
67
67
  "devDependencies": {
68
- "@antfu/eslint-config": "^0.43.1",
69
- "@antfu/ni": "^0.22.4",
70
- "@date-io/luxon": "^2.17.0",
71
- "@fortawesome/fontawesome-svg-core": "^6.4.2",
72
- "@fortawesome/free-solid-svg-icons": "^6.4.2",
73
- "@fortawesome/vue-fontawesome": "^3.0.5",
74
- "@iconify-json/carbon": "^1.1.37",
75
- "@iconify-json/mdi": "^1.1.68",
68
+ "@antfu/eslint-config": "^7.6.1",
69
+ "@antfu/ni": "^28.2.0",
70
+ "@date-io/luxon": "^3.2.0",
71
+ "@fortawesome/fontawesome-svg-core": "^7.2.0",
72
+ "@fortawesome/free-solid-svg-icons": "^7.2.0",
73
+ "@fortawesome/vue-fontawesome": "^3.1.3",
74
+ "@iconify-json/carbon": "^1.2.19",
75
+ "@iconify-json/mdi": "^1.2.3",
76
76
  "@mdi/js": "^7.4.47",
77
77
  "@nuxt/devtools": "latest",
78
78
  "@nuxt/module-builder": "^1.0.2",
79
- "@nuxt/schema": "^3.15.4",
80
- "@nuxt/test-utils": "^3.13.1",
81
- "@nuxtjs/i18n": "^8.0.0",
82
- "@parcel/watcher": "^2.3.0",
83
- "@types/node": "^18",
79
+ "@nuxt/schema": "^4.3.1",
80
+ "@nuxt/test-utils": "^4.0.0",
81
+ "@nuxtjs/i18n": "^10.2.3",
82
+ "@parcel/watcher": "^2.5.6",
83
+ "@types/node": "^25.3.3",
84
84
  "@types/semver": "^7.7.1",
85
- "@unocss/nuxt": "^66.5.10",
86
- "bumpp": "^9.2.0",
87
- "eslint": "^8.54.0",
88
- "luxon": "^3.4.3",
89
- "nuxt": "^3.15.4",
90
- "publint": "^0.2.10",
91
- "rimraf": "^6.0.1",
92
- "sass": "^1.77.8",
93
- "typescript": "^5.5.4",
94
- "vite": "6.4.1",
95
- "vitest": "^3.2.4",
96
- "vue-tsc": "^2.1.10"
97
- },
98
- "resolutions": {
99
- "@nuxt/kit": "3.15.4",
100
- "vite": "6.4.1",
101
- "vue": "3.4.31"
85
+ "@unocss/nuxt": "^66.6.2",
86
+ "bumpp": "^10.4.1",
87
+ "eslint": "^10.0.2",
88
+ "luxon": "^3.7.2",
89
+ "nuxt": "^4.3.1",
90
+ "publint": "^0.3.18",
91
+ "rimraf": "^6.1.3",
92
+ "sass": "^1.97.3",
93
+ "typescript": "^5.9.3",
94
+ "vite": "7.3.1",
95
+ "vitest": "^4.0.18",
96
+ "vue-tsc": "^3.2.5"
102
97
  },
103
98
  "build": {
104
99
  "externals": [
@@ -122,23 +117,23 @@
122
117
  },
123
118
  "stackblitz": {
124
119
  "installDependencies": false,
125
- "startCommand": "node .stackblitz.js && pnpm install && nr prepack && nr dev:prepare && nr dev"
120
+ "startCommand": "node ../../.stackblitz.js && pnpm install && pnpm -C ../../ prepack && pnpm -C ../../ dev:prepare && pnpm -C ../../ dev"
126
121
  },
127
122
  "scripts": {
128
- "dev": "nuxi dev playground",
129
- "dev:multiple-json": "MULTIPLE_LANG_FILES=true nuxi dev playground",
130
- "dev:prepare": "nuxt-module-build build --stub && nuxt-module-build prepare && nuxi prepare playground",
131
- "dev:prepare:multiple-json": "nuxt-module-build build --stub && nuxt-module-build prepare && MULTIPLE_LANG_FILES=true nuxi prepare playground",
132
- "dev:build": "nuxi build playground",
133
- "dev:generate": "nuxi generate playground",
134
- "dev:build:multiple-json": "MULTIPLE_LANG_FILES=true nuxi build playground",
135
- "dev:generate:multiple-json": "MULTIPLE_LANG_FILES=true nuxi generate playground",
136
- "dev:preview": "nuxi preview playground",
137
- "dev:prepare:date-io": "nuxt-module-build build --stub && nuxt-module-build prepare && pnpm nuxt prepare date-io-playground",
138
- "dev:date-io": "nuxi dev date-io-playground",
139
- "docs:dev": "pnpm -C docs run dev",
140
- "docs:build": "nuxt-module-build prepare && pnpm -C docs run build",
141
- "docs:serve": "pnpm -C docs run serve",
123
+ "dev": "pnpm -C ../../apps/playground dev",
124
+ "dev:multiple-json": "MULTIPLE_LANG_FILES=true pnpm -C ../../apps/playground dev",
125
+ "dev:prepare": "nuxt-module-build build --stub && nuxt-module-build prepare && nuxi prepare ../../apps/playground",
126
+ "dev:prepare:multiple-json": "nuxt-module-build build --stub && nuxt-module-build prepare && MULTIPLE_LANG_FILES=true nuxi prepare ../../apps/playground",
127
+ "dev:build": "pnpm -C ../../apps/playground build",
128
+ "dev:generate": "pnpm -C ../../apps/playground generate",
129
+ "dev:build:multiple-json": "MULTIPLE_LANG_FILES=true pnpm -C ../../apps/playground build",
130
+ "dev:generate:multiple-json": "MULTIPLE_LANG_FILES=true pnpm -C ../../apps/playground generate",
131
+ "dev:preview": "pnpm -C ../../apps/playground preview",
132
+ "dev:prepare:date-io": "nuxt-module-build build --stub && nuxt-module-build prepare && nuxi prepare ../../apps/date-io-playground",
133
+ "dev:date-io": "pnpm -C ../../apps/date-io-playground dev",
134
+ "docs:dev": "pnpm -C ../../docs run dev",
135
+ "docs:build": "nuxt-module-build prepare && pnpm -C ../../docs run build",
136
+ "docs:serve": "pnpm -C ../../docs run serve",
142
137
  "lint": "eslint .",
143
138
  "lint:fix": "nr lint --fix",
144
139
  "publint": "publint",
package/README.md DELETED
@@ -1,95 +0,0 @@
1
- <div align="center">
2
- <picture>
3
- <source media="(prefers-color-scheme: dark)" srcset="https://github.com/vuetifyjs/nuxt-module/raw/main/hero-dark.svg" />
4
- <img alt="vuetify-nuxt-module - Zero-config Nuxt Module for Vuetify" src='https://github.com/vuetifyjs/nuxt-module/raw/main/hero.svg' alt="vuetify-nuxt-module - Zero-config Nuxt Module for Vuetify"><br>
5
- </picture>
6
- <p>Zero-config Nuxt Module for Vuetify</p>
7
- </div>
8
-
9
- <p align='center'>
10
- <a href='https://www.npmjs.com/package/vuetify-nuxt-module' target="__blank">
11
- <img src='https://img.shields.io/npm/v/vuetify-nuxt-module?color=33A6B8&label=' alt="NPM version">
12
- </a>
13
- <a href="https://www.npmjs.com/package/vuetify-nuxt-module" target="__blank">
14
- <img alt="NPM Downloads" src="https://img.shields.io/npm/dm/vuetify-nuxt-module?color=476582&label=">
15
- </a>
16
- <a href="https://nuxt.vuetifyjs.com/" target="__blank">
17
- <img src="https://img.shields.io/static/v1?label=&message=docs%20%26%20guides&color=2e859c" alt="Docs & Guides">
18
- </a>
19
- <br>
20
- <a href="https://github.com/vuetifyjs/nuxt-module" target="__blank">
21
- <img alt="GitHub stars" src="https://img.shields.io/github/stars/userquin/vuetify-nuxt-module?style=social">
22
- </a>
23
- </p>
24
-
25
- <br>
26
-
27
- ## πŸš€ Features
28
-
29
- - πŸ“– [**Documentation & guides**](https://nuxt.vuetifyjs.com/)
30
- - πŸ‘Œ **Zero-Config**: sensible built-in default [Vuetify](https://vuetifyjs.com/) configuration for common use cases
31
- - πŸ”Œ **Extensible**: expose the ability to customize the Vuetify configuration via [Nuxt Runtime Hooks](https://nuxt.com/docs/guide/going-further/hooks#usage-with-plugins)
32
- - ⚑ **Fully Tree Shakable**: by default, only the needed Vuetify components are imported
33
- - πŸ› οΈ **Versatile**: custom Vuetify [directives](https://vuetifyjs.com/en/getting-started/installation/#manual-steps) and [labs components](https://vuetifyjs.com/en/labs/introduction/) registration
34
- - ✨ **Configurable Styles**: configure your variables using [Vuetify SASS Variables](https://vuetifyjs.com/en/features/sass-variables/)
35
- - πŸ’₯ **SSR**: automatic SSR detection and configuration including [HTTP Client hints](https://developer.mozilla.org/en-US/docs/Web/HTTP/Client_hints)
36
- - πŸ”© **Nuxt Layers and Module Hooks**: load your Vuetify configuration using [Nuxt Layers](https://nuxt.com/docs/getting-started/layers#layers) or using a custom module via `vuetify:registerModule` [Nuxt Module Hook](https://nuxt.com/docs/guide/going-further/hooks#nuxt-hooks-build-time)
37
- - πŸ“₯ **Vuetify Configuration File**: configure your Vuetify options using a custom `vuetify.config` file, no dev server restart needed
38
- - πŸ”₯ **Pure CSS Icons**: no more font/js icons, use the new `unocss-mdi` icon set or build your own with UnoCSS Preset Icons
39
- - πŸ˜ƒ **Icon Fonts**: configure the [icon font](https://vuetifyjs.com/en/features/icon-fonts/) you want to use, the module will automatically import it for you using CDN or local dependencies
40
- - 🎭 **SVG Icons**: ready to use [@mdi/js](https://www.npmjs.com/package/@mdi/js) and [@fortawesome/vue-fontawesome](https://www.npmjs.com/package/@fortawesome/vue-fontawesome) SVG icons packs
41
- - πŸ“¦ **Multiple Icon Sets**: register [multiple icon sets](https://vuetifyjs.com/en/features/icon-fonts/#multiple-icon-sets)
42
- - 🌍 **I18n Ready**: install [@nuxtjs/i18n](https://i18n.nuxtjs.org/) Nuxt module, and you're ready to use Vuetify [internationalization](https://vuetifyjs.com/en/features/internationalization/) features
43
- - πŸ“† **Date Components**: use Vuetify components [that require date functionality](https://vuetifyjs.com/en/features/dates/) installing and configuring one of the [@date-io](https://github.com/dmtrKovalenko/date-io#projects) adapters
44
- - πŸ’¬ **Auto-Import Vuetify Locale Messages**: add [Vuetify Locale Messages](https://vuetifyjs.com/en/features/internationalization/#getting-started) adding just the locales you want to use, no more imports needed
45
- - βš™οΈ **Auto-Import Vuetify Composables**: you don't need to import Vuetify composables manually, they are automatically imported for you
46
- - 🎨 **Vuetify Blueprints**: use [Vuetify Blueprints](https://vuetifyjs.com/en/features/blueprints/) to quickly scaffold components
47
- - πŸ‘€ **Nuxt DevTools**: ready to inspect your Vuetify styles with the [Nuxt DevTools](https://github.com/nuxt/devtools) inspector
48
- - 🦾 **Type Strong**: written in [TypeScript](https://www.typescriptlang.org/)
49
-
50
- ## πŸ“¦ Install
51
-
52
- > Requires Vite, will not work with Webpack
53
-
54
- ```bash
55
- npx nuxi@latest module add vuetify-nuxt-module
56
- ```
57
-
58
- [![Open in StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/userquin/vuetify-nuxt-module)
59
-
60
- ## πŸ¦„ Usage
61
-
62
- > `vuetify-nuxt-module` is strongly opinionated and has a built-in default configuration out of the box. You can use it without any configuration, and it will work for most use cases.
63
-
64
- Add `vuetify-nuxt-module` module to `nuxt.config.ts` and configure it:
65
-
66
- ```ts
67
- // Nuxt config file
68
- import { defineNuxtConfig } from 'nuxt/config'
69
-
70
- export default defineNuxtConfig({
71
- modules: [
72
- 'vuetify-nuxt-module'
73
- ],
74
- vuetify: {
75
- moduleOptions: {
76
- /* module specific options */
77
- },
78
- vuetifyOptions: {
79
- /* vuetify options */
80
- }
81
- }
82
- })
83
- ```
84
-
85
- Read the [πŸ“– documentation](https://nuxt.vuetifyjs.com/) for a complete guide on how to configure and use this module.
86
-
87
- ## πŸ‘€ Full config
88
-
89
- Check out the [types](https://github.com/vuetifyjs/nuxt-module/blob/main/src/types.ts).
90
-
91
- The virtual modules can be found in [configuration.d.ts](https://github.com/vuetifyjs/nuxt-module/blob/main/configuration.d.ts) file.
92
-
93
- ## πŸ“„ License
94
-
95
- [MIT](https://github.com/vuetifyjs/nuxt-module/blob/main/LICENSE) License &copy; 2023-PRESENT [JoaquΓ­n SΓ‘nchez](https://github.com/userquin)