create-vuetify 2.2.6 → 2.3.0

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 (43) hide show
  1. package/dist/index.mjs +713 -84
  2. package/package.json +7 -3
  3. package/template/javascript/base/eslint.config.js +23 -0
  4. package/template/javascript/base/package.json +4 -7
  5. package/template/javascript/base/vite.config.mjs +7 -0
  6. package/template/javascript/default/index.html +10 -13
  7. package/template/javascript/default/package.json +6 -3
  8. package/template/javascript/default/vite.config.mjs +7 -0
  9. package/template/javascript/essentials/package.json +0 -1
  10. package/template/javascript/essentials/vite.config.mjs +7 -0
  11. package/template/typescript/base/env.d.ts +2 -0
  12. package/template/typescript/base/eslint.config.js +36 -0
  13. package/template/typescript/base/package.json +5 -9
  14. package/template/typescript/base/vite.config.mts +7 -0
  15. package/template/typescript/default/_editorconfig +4 -3
  16. package/template/typescript/default/env.d.ts +1 -0
  17. package/template/typescript/default/index.html +7 -10
  18. package/template/typescript/default/package.json +18 -10
  19. package/template/typescript/default/tsconfig.app.json +14 -0
  20. package/template/typescript/default/tsconfig.json +8 -28
  21. package/template/typescript/default/tsconfig.node.json +14 -4
  22. package/template/typescript/default/vite.config.mts +7 -0
  23. package/template/typescript/essentials/env.d.ts +3 -0
  24. package/template/typescript/essentials/package.json +0 -1
  25. package/template/typescript/essentials/vite.config.mts +7 -0
  26. package/template/typescript/nuxt/app-layout.vue +5 -0
  27. package/template/typescript/nuxt/app.vue +9 -0
  28. package/template/typescript/nuxt/components/AppFooter.vue +79 -0
  29. package/template/typescript/nuxt/components/HelloWorld.vue +153 -0
  30. package/template/typescript/nuxt/layouts/default.vue +9 -0
  31. package/template/typescript/nuxt/modules/vuetify.ts +125 -0
  32. package/template/typescript/nuxt/pages/index.vue +8 -0
  33. package/template/typescript/nuxt/plugins/vuetify-nuxt.ts +8 -0
  34. package/template/typescript/nuxt/plugins/vuetify.ts +14 -0
  35. package/template/typescript/nuxt/vuetify.config.ts +8 -0
  36. package/dist/output.cjs +0 -264
  37. package/template/javascript/base/_eslintrc.js +0 -10
  38. package/template/javascript/essentials/_eslintrc.js +0 -19
  39. package/template/typescript/base/_eslintrc.js +0 -20
  40. package/template/typescript/base/tsconfig.json +0 -32
  41. package/template/typescript/default/src/vite-env.d.ts +0 -7
  42. package/template/typescript/essentials/_eslintrc.js +0 -20
  43. package/template/typescript/essentials/tsconfig.json +0 -33
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-vuetify",
3
- "version": "2.2.6",
3
+ "version": "2.3.0",
4
4
  "author": "Elijah Kotyluk <elijah@elijahkotyluk.com>",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -22,18 +22,21 @@
22
22
  "scripts": {
23
23
  "build": "node ./scripts/build.js",
24
24
  "start": "node ./index.js",
25
- "lint": "eslint --fix 'src/**'",
25
+ "lint": "eslint --fix ./src/**",
26
26
  "prepublishOnly": "npm run build"
27
27
  },
28
28
  "dependencies": {
29
29
  "kolorist": "^1.5.1",
30
30
  "minimist": "^1.2.6",
31
+ "magicast": "^0.3.4",
32
+ "package-manager-detector": "^0.2.2",
31
33
  "prompts": "^2.4.2",
32
34
  "validate-npm-package-name": "^4.0.0"
33
35
  },
34
36
  "devDependencies": {
35
37
  "@release-it/conventional-changelog": "^8.0.1",
36
38
  "@types/minimist": "^1.2.2",
39
+ "@types/node": "^20.12.8",
37
40
  "@types/prompts": "^2.0.14",
38
41
  "@types/validate-npm-package-name": "^4.0.0",
39
42
  "@typescript-eslint/eslint-plugin": "^5.30.6",
@@ -48,5 +51,6 @@
48
51
  "lint-staged": "^13.0.3",
49
52
  "release-it": "^17.0.3",
50
53
  "typescript": "^4.7.4"
51
- }
54
+ },
55
+ "packageManager": "pnpm@9.12.2+sha512.22721b3a11f81661ae1ec68ce1a7b879425a1ca5b991c975b074ac220b187ce56c708fe5db69f4c962c989452eee76c82877f4ee80f474cebd61ee13461b6228"
52
56
  }
@@ -0,0 +1,23 @@
1
+ import js from '@eslint/js'
2
+ import pluginVue from 'eslint-plugin-vue'
3
+
4
+ export default [
5
+ {
6
+ name: 'app/files-to-lint',
7
+ files: ['**/*.{js,mjs,jsx,vue}'],
8
+ },
9
+
10
+ {
11
+ name: 'app/files-to-ignore',
12
+ ignores: ['**/dist/**', '**/dist-ssr/**', '**/coverage/**'],
13
+ },
14
+
15
+ js.configs.recommended,
16
+ ...pluginVue.configs['flat/recommended'],
17
+
18
+ {
19
+ rules: {
20
+ 'vue/multi-word-component-names': 'off',
21
+ },
22
+ }
23
+ ]
@@ -1,18 +1,15 @@
1
1
  {
2
2
  "scripts": {
3
- "lint": "eslint . --fix --ignore-path .gitignore"
4
- },
5
- "dependencies": {
6
- "core-js": "^3.37.1"
3
+ "lint": "eslint . --fix"
7
4
  },
8
5
  "devDependencies": {
9
- "eslint": "^8.57.0",
10
- "eslint-config-standard": "^17.1.0",
6
+ "@eslint/js": "^9.14.0",
7
+ "eslint": "^9.14.0",
11
8
  "eslint-plugin-import": "^2.29.1",
12
9
  "eslint-plugin-n": "^16.6.2",
13
10
  "eslint-plugin-node": "^11.1.0",
14
11
  "eslint-plugin-promise": "^6.4.0",
15
- "eslint-plugin-vue": "^9.27.0",
12
+ "eslint-plugin-vue": "^9.30.0",
16
13
  "vue-router": "^4.4.0",
17
14
  "unplugin-vue-router": "^0.10.0"
18
15
  }
@@ -51,4 +51,11 @@ export default defineConfig({
51
51
  server: {
52
52
  port: 3000,
53
53
  },
54
+ css: {
55
+ preprocessorOptions: {
56
+ sass: {
57
+ api: 'modern-compiler',
58
+ },
59
+ },
60
+ },
54
61
  })
@@ -1,16 +1,13 @@
1
1
  <!DOCTYPE html>
2
2
  <html lang="en">
3
-
4
- <head>
5
- <meta charset="UTF-8" />
6
- <link rel="icon" href="/favicon.ico" />
7
- <meta name="viewport" content="width=device-width, initial-scale=1.0" />
8
- <title>Welcome to Vuetify 3</title>
9
- </head>
10
-
11
- <body>
12
- <div id="app"></div>
13
- <script type="module" src="/src/main.js"></script>
14
- </body>
15
-
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <link rel="icon" href="/favicon.ico">
6
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
7
+ <title>Welcome to Vuetify 3</title>
8
+ </head>
9
+ <body>
10
+ <div id="app"></div>
11
+ <script type="module" src="/src/main.js"></script>
12
+ </body>
16
13
  </html>
@@ -1,4 +1,6 @@
1
1
  {
2
+ "private": true,
3
+ "type": "module",
2
4
  "version": "0.0.0",
3
5
  "scripts": {
4
6
  "dev": "vite",
@@ -9,14 +11,15 @@
9
11
  "@mdi/font": "7.4.47",
10
12
  "roboto-fontface": "*",
11
13
  "vue": "^3.4.31",
12
- "vuetify": "^3.6.11"
14
+ "vuetify": "^3.6.14"
13
15
  },
14
16
  "devDependencies": {
15
17
  "@vitejs/plugin-vue": "^5.0.5",
16
- "sass": "1.77.6",
18
+ "sass": "1.77.8",
19
+ "sass-embedded": "^1.77.8",
17
20
  "unplugin-fonts": "^1.1.1",
18
21
  "unplugin-vue-components": "^0.27.2",
19
22
  "vite-plugin-vuetify": "^2.0.3",
20
- "vite": "^5.3.3"
23
+ "vite": "^5.4.0"
21
24
  }
22
25
  }
@@ -44,4 +44,11 @@ export default defineConfig({
44
44
  server: {
45
45
  port: 3000,
46
46
  },
47
+ css: {
48
+ preprocessorOptions: {
49
+ sass: {
50
+ api: 'modern-compiler',
51
+ },
52
+ },
53
+ },
47
54
  })
@@ -1,6 +1,5 @@
1
1
  {
2
2
  "devDependencies": {
3
- "eslint-config-vuetify": "^1.0.0",
4
3
  "pinia" : "^2.1.7",
5
4
  "unplugin-auto-import": "^0.17.6",
6
5
  "vite-plugin-vue-layouts": "^0.11.0"
@@ -64,4 +64,11 @@ export default defineConfig({
64
64
  server: {
65
65
  port: 3000,
66
66
  },
67
+ css: {
68
+ preprocessorOptions: {
69
+ sass: {
70
+ api: 'modern-compiler',
71
+ },
72
+ },
73
+ },
67
74
  })
@@ -0,0 +1,2 @@
1
+ /// <reference types="vite/client" />
2
+ /// <reference types="unplugin-vue-router/client" />
@@ -0,0 +1,36 @@
1
+ /**
2
+ * .eslint.js
3
+ *
4
+ * ESLint configuration file.
5
+ */
6
+
7
+ import pluginVue from 'eslint-plugin-vue'
8
+ import vueTsEslintConfig from '@vue/eslint-config-typescript'
9
+
10
+ export default [
11
+ {
12
+ name: 'app/files-to-lint',
13
+ files: ['**/*.{ts,mts,tsx,vue}'],
14
+ },
15
+
16
+ {
17
+ name: 'app/files-to-ignore',
18
+ ignores: ['**/dist/**', '**/dist-ssr/**', '**/coverage/**'],
19
+ },
20
+
21
+ ...pluginVue.configs['flat/recommended'],
22
+ ...vueTsEslintConfig(),
23
+
24
+ {
25
+ rules: {
26
+ '@typescript-eslint/no-unused-expressions': [
27
+ 'error',
28
+ {
29
+ allowShortCircuit: true,
30
+ allowTernary: true,
31
+ },
32
+ ],
33
+ 'vue/multi-word-component-names': 'off',
34
+ }
35
+ }
36
+ ]
@@ -1,19 +1,15 @@
1
1
  {
2
2
  "scripts": {
3
- "lint": "eslint . --fix --ignore-path .gitignore"
3
+ "lint": "eslint . --fix"
4
4
  },
5
5
  "dependencies": {
6
6
  "core-js": "^3.37.1"
7
7
  },
8
8
  "devDependencies": {
9
- "@vue/eslint-config-typescript": "^13.0.0",
10
- "eslint": "^8.57.0",
11
- "eslint-config-standard": "^17.1.0",
12
- "eslint-plugin-import": "^2.29.1",
13
- "eslint-plugin-n": "^16.6.2",
14
- "eslint-plugin-node": "^11.1.0",
15
- "eslint-plugin-promise": "^6.4.0",
16
- "eslint-plugin-vue": "^9.27.0",
9
+ "@eslint/js": "^9.14.0",
10
+ "@vue/eslint-config-typescript": "^14.1.3",
11
+ "eslint": "^9.14.0",
12
+ "eslint-plugin-vue": "^9.30.0",
17
13
  "vue-router": "^4.4.0",
18
14
  "unplugin-vue-router": "^0.10.0"
19
15
  }
@@ -51,4 +51,11 @@ export default defineConfig({
51
51
  server: {
52
52
  port: 3000,
53
53
  },
54
+ css: {
55
+ preprocessorOptions: {
56
+ sass: {
57
+ api: 'modern-compiler',
58
+ },
59
+ },
60
+ },
54
61
  })
@@ -1,5 +1,6 @@
1
- [*.{js,jsx,ts,tsx,vue}]
2
- indent_style = space
1
+ [*.{js,jsx,mjs,cjs,ts,tsx,mts,cts,vue}]
2
+ charset = utf-8
3
3
  indent_size = 2
4
- trim_trailing_whitespace = true
4
+ indent_style = space
5
5
  insert_final_newline = true
6
+ trim_trailing_whitespace = true
@@ -0,0 +1 @@
1
+ /// <reference types="vite/client" />
@@ -1,16 +1,13 @@
1
1
  <!DOCTYPE html>
2
2
  <html lang="en">
3
-
4
- <head>
5
- <meta charset="UTF-8" />
6
- <link rel="icon" href="/favicon.ico" />
7
- <meta name="viewport" content="width=device-width, initial-scale=1.0" />
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <link rel="icon" href="/favicon.ico">
6
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
8
7
  <title>Welcome to Vuetify 3</title>
9
- </head>
10
-
11
- <body>
8
+ </head>
9
+ <body>
12
10
  <div id="app"></div>
13
11
  <script type="module" src="/src/main.ts"></script>
14
- </body>
15
-
12
+ </body>
16
13
  </html>
@@ -1,26 +1,34 @@
1
1
  {
2
+ "private": true,
3
+ "type": "module",
2
4
  "version": "0.0.0",
3
5
  "scripts": {
4
6
  "dev": "vite",
5
- "build": "vue-tsc --noEmit && vite build",
6
- "preview": "vite preview"
7
+ "build": "run-p type-check \"build-only {@}\" --",
8
+ "preview": "vite preview",
9
+ "build-only": "vite build",
10
+ "type-check": "vue-tsc --build --force"
7
11
  },
8
12
  "dependencies": {
9
13
  "@mdi/font": "7.4.47",
10
14
  "roboto-fontface": "*",
11
15
  "vue": "^3.4.31",
12
- "vuetify": "^3.6.11"
16
+ "vuetify": "^3.6.14"
13
17
  },
14
18
  "devDependencies": {
15
- "@babel/types": "^7.24.7",
16
- "@types/node": "^20.14.10",
17
- "@vitejs/plugin-vue": "^5.0.5",
18
- "sass": "1.77.6",
19
- "typescript": "^5.4.2",
19
+ "@tsconfig/node22": "^22.0.0",
20
+ "@types/node": "^22.9.0",
21
+ "@vitejs/plugin-vue": "^5.1.4",
22
+ "@vue/eslint-config-typescript": "^14.1.3",
23
+ "@vue/tsconfig": "^0.5.1",
24
+ "npm-run-all2": "^7.0.1",
25
+ "sass": "1.77.8",
26
+ "sass-embedded": "^1.77.8",
27
+ "typescript": "~5.6.3",
20
28
  "unplugin-fonts": "^1.1.1",
21
29
  "unplugin-vue-components": "^0.27.2",
22
30
  "vite-plugin-vuetify": "^2.0.3",
23
- "vite": "^5.3.3",
24
- "vue-tsc": "^2.0.26"
31
+ "vite": "^5.4.10",
32
+ "vue-tsc": "^2.1.10"
25
33
  }
26
34
  }
@@ -0,0 +1,14 @@
1
+ {
2
+ "extends": "@vue/tsconfig/tsconfig.dom.json",
3
+ "include": ["env.d.ts", "src/**/*", "src/**/*.vue"],
4
+ "exclude": ["src/**/__tests__/*"],
5
+ "compilerOptions": {
6
+ "composite": true,
7
+ "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo",
8
+
9
+ "baseUrl": ".",
10
+ "paths": {
11
+ "@/*": ["./src/*"]
12
+ }
13
+ }
14
+ }
@@ -1,31 +1,11 @@
1
1
  {
2
- "compilerOptions": {
3
- "target": "ESNext",
4
- "jsx": "preserve",
5
- "lib": ["DOM", "ESNext"],
6
- "baseUrl": ".",
7
- "module": "ESNext",
8
- "moduleResolution": "bundler",
9
- "paths": {
10
- "@/*": ["src/*"]
2
+ "files": [],
3
+ "references": [
4
+ {
5
+ "path": "./tsconfig.node.json"
11
6
  },
12
- "resolveJsonModule": true,
13
- "types": [
14
- "vite/client"
15
- ],
16
- "allowJs": true,
17
- "strict": true,
18
- "strictNullChecks": true,
19
- "noUnusedLocals": true,
20
- "esModuleInterop": true,
21
- "forceConsistentCasingInFileNames": true,
22
- "isolatedModules": true,
23
- "skipLibCheck": true
24
- },
25
- "include": [
26
- "src/**/*",
27
- "src/**/*.vue"
28
- ],
29
- "exclude": ["dist", "node_modules", "cypress"],
30
- "references": [{ "path": "./tsconfig.node.json" }],
7
+ {
8
+ "path": "./tsconfig.app.json"
9
+ }
10
+ ]
31
11
  }
@@ -1,9 +1,19 @@
1
1
  {
2
+ "extends": "@tsconfig/node22/tsconfig.json",
3
+ "include": [
4
+ "vite.config.*",
5
+ "vitest.config.*",
6
+ "cypress.config.*",
7
+ "nightwatch.conf.*",
8
+ "playwright.config.*"
9
+ ],
2
10
  "compilerOptions": {
3
11
  "composite": true,
12
+ "noEmit": true,
13
+ "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo",
14
+
4
15
  "module": "ESNext",
5
- "moduleResolution": "bundler",
6
- "allowSyntheticDefaultImports": true
7
- },
8
- "include": ["vite.config.mts"]
16
+ "moduleResolution": "Bundler",
17
+ "types": ["node"]
18
+ }
9
19
  }
@@ -44,4 +44,11 @@ export default defineConfig({
44
44
  server: {
45
45
  port: 3000,
46
46
  },
47
+ css: {
48
+ preprocessorOptions: {
49
+ sass: {
50
+ api: 'modern-compiler',
51
+ },
52
+ },
53
+ },
47
54
  })
@@ -0,0 +1,3 @@
1
+ /// <reference types="vite/client" />
2
+ /// <reference types="unplugin-vue-router/client" />
3
+ /// <reference types="vite-plugin-vue-layouts/client" />
@@ -1,6 +1,5 @@
1
1
  {
2
2
  "devDependencies": {
3
- "eslint-config-vuetify": "^1.0.0",
4
3
  "pinia" : "^2.1.7",
5
4
  "unplugin-auto-import": "^0.17.6",
6
5
  "vite-plugin-vue-layouts": "^0.11.0"
@@ -71,4 +71,11 @@ export default defineConfig({
71
71
  server: {
72
72
  port: 3000,
73
73
  },
74
+ css: {
75
+ preprocessorOptions: {
76
+ sass: {
77
+ api: 'modern-compiler',
78
+ },
79
+ },
80
+ },
74
81
  })
@@ -0,0 +1,5 @@
1
+ <template>
2
+ <NuxtLayout>
3
+ <NuxtPage />
4
+ </NuxtLayout>
5
+ </template>
@@ -0,0 +1,9 @@
1
+ <template>
2
+ <v-app>
3
+ <v-main>
4
+ <NuxtPage />
5
+ </v-main>
6
+
7
+ <AppFooter />
8
+ </v-app>
9
+ </template>
@@ -0,0 +1,79 @@
1
+ <script setup lang="ts">
2
+ const items = shallowRef([
3
+ {
4
+ title: 'Vuetify Documentation',
5
+ icon: `$vuetify`,
6
+ href: 'https://vuetifyjs.com/',
7
+ },
8
+ {
9
+ title: 'Vuetify Support',
10
+ icon: 'mdi-shield-star-outline',
11
+ href: 'https://support.vuetifyjs.com/',
12
+ },
13
+ {
14
+ title: 'Vuetify X',
15
+ icon: ['M2.04875 3.00002L9.77052 13.3248L1.99998 21.7192H3.74882L10.5519 14.3697L16.0486 21.7192H22L13.8437 10.8137L21.0765 3.00002H19.3277L13.0624 9.76874L8.0001 3.00002H2.04875ZM4.62054 4.28821H7.35461L19.4278 20.4308H16.6937L4.62054 4.28821Z'],
16
+ href: 'https://x.com/vuetifyjs',
17
+ },
18
+ {
19
+ title: 'Vuetify GitHub',
20
+ icon: `mdi-github`,
21
+ href: 'https://github.com/vuetifyjs/vuetify',
22
+ },
23
+ {
24
+ title: 'Vuetify Discord',
25
+ icon: ['M22,24L16.75,19L17.38,21H4.5A2.5,2.5 0 0,1 2,18.5V3.5A2.5,2.5 0 0,1 4.5,1H19.5A2.5,2.5 0 0,1 22,3.5V24M12,6.8C9.32,6.8 7.44,7.95 7.44,7.95C8.47,7.03 10.27,6.5 10.27,6.5L10.1,6.33C8.41,6.36 6.88,7.53 6.88,7.53C5.16,11.12 5.27,14.22 5.27,14.22C6.67,16.03 8.75,15.9 8.75,15.9L9.46,15C8.21,14.73 7.42,13.62 7.42,13.62C7.42,13.62 9.3,14.9 12,14.9C14.7,14.9 16.58,13.62 16.58,13.62C16.58,13.62 15.79,14.73 14.54,15L15.25,15.9C15.25,15.9 17.33,16.03 18.73,14.22C18.73,14.22 18.84,11.12 17.12,7.53C17.12,7.53 15.59,6.36 13.9,6.33L13.73,6.5C13.73,6.5 15.53,7.03 16.56,7.95C16.56,7.95 14.68,6.8 12,6.8M9.93,10.59C10.58,10.59 11.11,11.16 11.1,11.86C11.1,12.55 10.58,13.13 9.93,13.13C9.29,13.13 8.77,12.55 8.77,11.86C8.77,11.16 9.28,10.59 9.93,10.59M14.1,10.59C14.75,10.59 15.27,11.16 15.27,11.86C15.27,12.55 14.75,13.13 14.1,13.13C13.46,13.13 12.94,12.55 12.94,11.86C12.94,11.16 13.45,10.59 14.1,10.59Z'],
26
+ href: 'https://community.vuetifyjs.com/',
27
+ },
28
+ {
29
+ title: 'Vuetify Reddit',
30
+ icon: `mdi-reddit`,
31
+ href: 'https://reddit.com/r/vuetifyjs',
32
+ },
33
+ ])
34
+ </script>
35
+
36
+ <template>
37
+ <v-footer height="40" app>
38
+ <NuxtLink
39
+ v-for="item in items"
40
+ :key="item.title"
41
+ :href="item.href"
42
+ :title="item.title"
43
+ class="d-inline-block mx-2 social-link"
44
+ rel="noopener noreferrer"
45
+ target="_blank"
46
+ >
47
+ <v-icon
48
+ :icon="item.icon"
49
+ :size="item.icon === '$vuetify' ? 24 : 16"
50
+ />
51
+ </NuxtLink>
52
+
53
+ <div
54
+ class="text-caption text-disabled"
55
+ style="position: absolute; right: 16px;"
56
+ >
57
+ &copy; 2016-{{ (new Date()).getFullYear() }} <span class="d-none d-sm-inline-block">Vuetify, LLC</span>
58
+
59
+ <NuxtLink
60
+ class="text-decoration-none on-surface"
61
+ href="https://vuetifyjs.com/about/licensing/"
62
+ rel="noopener noreferrer"
63
+ target="_blank"
64
+ >
65
+ MIT License
66
+ </NuxtLink>
67
+ </div>
68
+ </v-footer>
69
+ </template>
70
+
71
+ <style scoped lang="sass">
72
+ .social-link :deep(.v-icon)
73
+ color: rgba(var(--v-theme-on-background), var(--v-disabled-opacity))
74
+ text-decoration: none
75
+ transition: .2s ease-in-out
76
+
77
+ &:hover
78
+ color: rgba(25, 118, 210, 1)
79
+ </style>