create-vuetify 2.3.1 → 2.4.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.
- package/dist/index.mjs +1110 -127
- package/package.json +26 -29
- package/template/javascript/base/eslint.config.js +1 -23
- package/template/javascript/base/package.json +5 -9
- package/template/javascript/base/src/components/HelloWorld.vue +42 -109
- package/template/javascript/base/src/router/index.js +0 -1
- package/template/javascript/base/vite.config.mjs +14 -2
- package/template/javascript/default/package.json +10 -10
- package/template/javascript/default/src/components/AppFooter.vue +6 -3
- package/template/javascript/default/src/components/HelloWorld.vue +41 -108
- package/template/javascript/default/vite.config.mjs +8 -2
- package/template/javascript/essentials/_eslintrc-auto-import.json +11 -1
- package/template/javascript/essentials/package.json +3 -3
- package/template/javascript/essentials/src/layouts/README.md +1 -1
- package/template/javascript/essentials/vite.config.mjs +20 -4
- package/template/typescript/base/eslint.config.js +1 -36
- package/template/typescript/base/package.json +4 -9
- package/template/typescript/base/src/components/HelloWorld.vue +42 -109
- package/template/typescript/base/vite.config.mts +13 -1
- package/template/typescript/default/README.md +1 -1
- package/template/typescript/default/package.json +12 -14
- package/template/typescript/default/src/components/HelloWorld.vue +41 -108
- package/template/typescript/default/vite.config.mts +6 -0
- package/template/typescript/essentials/_eslintrc-auto-import.json +13 -0
- package/template/typescript/essentials/env.d.ts +1 -1
- package/template/typescript/essentials/package.json +3 -3
- package/template/typescript/essentials/src/auto-imports.d.ts +16 -66
- package/template/typescript/essentials/src/components/AppFooter.vue +6 -3
- package/template/typescript/essentials/src/layouts/README.md +1 -1
- package/template/typescript/essentials/vite.config.mts +18 -4
- package/template/typescript/nuxt/assets/logo.png +0 -0
- package/template/typescript/nuxt/assets/logo.svg +6 -0
- package/template/typescript/nuxt/components/AppFooter.vue +38 -35
- package/template/typescript/nuxt/components/HelloWorld.vue +44 -107
- package/template/typescript/nuxt/modules/vuetify.ts +35 -10
- package/template/typescript/nuxt/pages/index.vue +0 -1
- package/template/typescript/nuxt/plugins/vuetify-nuxt.ts +2 -2
- package/template/typescript/nuxt/plugins/vuetify.ts +1 -1
- package/dist/output.cjs +0 -303
|
@@ -3,13 +3,18 @@
|
|
|
3
3
|
"Component": true,
|
|
4
4
|
"ComponentPublicInstance": true,
|
|
5
5
|
"ComputedRef": true,
|
|
6
|
+
"DirectiveBinding": true,
|
|
6
7
|
"EffectScope": true,
|
|
7
8
|
"ExtractDefaultPropTypes": true,
|
|
8
9
|
"ExtractPropTypes": true,
|
|
9
10
|
"ExtractPublicPropTypes": true,
|
|
10
11
|
"InjectionKey": true,
|
|
12
|
+
"MaybeRef": true,
|
|
13
|
+
"MaybeRefOrGetter": true,
|
|
11
14
|
"PropType": true,
|
|
12
15
|
"Ref": true,
|
|
16
|
+
"Slot": true,
|
|
17
|
+
"Slots": true,
|
|
13
18
|
"VNode": true,
|
|
14
19
|
"WritableComputedRef": true,
|
|
15
20
|
"computed": true,
|
|
@@ -17,6 +22,7 @@
|
|
|
17
22
|
"customRef": true,
|
|
18
23
|
"defineAsyncComponent": true,
|
|
19
24
|
"defineComponent": true,
|
|
25
|
+
"defineStore": true,
|
|
20
26
|
"effectScope": true,
|
|
21
27
|
"getCurrentInstance": true,
|
|
22
28
|
"getCurrentScope": true,
|
|
@@ -43,6 +49,7 @@
|
|
|
43
49
|
"onServerPrefetch": true,
|
|
44
50
|
"onUnmounted": true,
|
|
45
51
|
"onUpdated": true,
|
|
52
|
+
"onWatcherCleanup": true,
|
|
46
53
|
"provide": true,
|
|
47
54
|
"reactive": true,
|
|
48
55
|
"readonly": true,
|
|
@@ -51,6 +58,7 @@
|
|
|
51
58
|
"shallowReactive": true,
|
|
52
59
|
"shallowReadonly": true,
|
|
53
60
|
"shallowRef": true,
|
|
61
|
+
"storeToRefs": true,
|
|
54
62
|
"toRaw": true,
|
|
55
63
|
"toRef": true,
|
|
56
64
|
"toRefs": true,
|
|
@@ -60,10 +68,12 @@
|
|
|
60
68
|
"useAttrs": true,
|
|
61
69
|
"useCssModule": true,
|
|
62
70
|
"useCssVars": true,
|
|
63
|
-
"
|
|
71
|
+
"useId": true,
|
|
72
|
+
"useModel": true,
|
|
64
73
|
"useRoute": true,
|
|
65
74
|
"useRouter": true,
|
|
66
75
|
"useSlots": true,
|
|
76
|
+
"useTemplateRef": true,
|
|
67
77
|
"watch": true,
|
|
68
78
|
"watchEffect": true,
|
|
69
79
|
"watchPostEffect": true,
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
|
|
3
3
|
Layouts are reusable components that wrap around pages. They are used to provide a consistent look and feel across multiple pages.
|
|
4
4
|
|
|
5
|
-
Full documentation for this feature can be found in the Official [vite-plugin-vue-layouts](https://github.com/
|
|
5
|
+
Full documentation for this feature can be found in the Official [vite-plugin-vue-layouts-next](https://github.com/loicduong/vite-plugin-vue-layouts-next) repository.
|
|
@@ -2,9 +2,10 @@
|
|
|
2
2
|
import AutoImport from 'unplugin-auto-import/vite'
|
|
3
3
|
import Components from 'unplugin-vue-components/vite'
|
|
4
4
|
import Fonts from 'unplugin-fonts/vite'
|
|
5
|
-
import Layouts from 'vite-plugin-vue-layouts'
|
|
5
|
+
import Layouts from 'vite-plugin-vue-layouts-next'
|
|
6
6
|
import Vue from '@vitejs/plugin-vue'
|
|
7
7
|
import VueRouter from 'unplugin-vue-router/vite'
|
|
8
|
+
import { VueRouterAutoImports } from 'unplugin-vue-router'
|
|
8
9
|
import Vuetify, { transformAssetUrls } from 'vite-plugin-vuetify'
|
|
9
10
|
|
|
10
11
|
// Utilities
|
|
@@ -17,7 +18,7 @@ export default defineConfig({
|
|
|
17
18
|
VueRouter(),
|
|
18
19
|
Layouts(),
|
|
19
20
|
Vue({
|
|
20
|
-
template: { transformAssetUrls }
|
|
21
|
+
template: { transformAssetUrls },
|
|
21
22
|
}),
|
|
22
23
|
// https://github.com/vuetifyjs/vuetify-loader/tree/master/packages/vite-plugin#readme
|
|
23
24
|
Vuetify({
|
|
@@ -38,7 +39,10 @@ export default defineConfig({
|
|
|
38
39
|
AutoImport({
|
|
39
40
|
imports: [
|
|
40
41
|
'vue',
|
|
41
|
-
|
|
42
|
+
VueRouterAutoImports,
|
|
43
|
+
{
|
|
44
|
+
'pinia': ['defineStore', 'storeToRefs'],
|
|
45
|
+
},
|
|
42
46
|
],
|
|
43
47
|
eslintrc: {
|
|
44
48
|
enabled: true,
|
|
@@ -46,10 +50,19 @@ export default defineConfig({
|
|
|
46
50
|
vueTemplate: true,
|
|
47
51
|
}),
|
|
48
52
|
],
|
|
53
|
+
optimizeDeps: {
|
|
54
|
+
exclude: [
|
|
55
|
+
'vuetify',
|
|
56
|
+
'vue-router',
|
|
57
|
+
'unplugin-vue-router/runtime',
|
|
58
|
+
'unplugin-vue-router/data-loaders',
|
|
59
|
+
'unplugin-vue-router/data-loaders/basic',
|
|
60
|
+
],
|
|
61
|
+
},
|
|
49
62
|
define: { 'process.env': {} },
|
|
50
63
|
resolve: {
|
|
51
64
|
alias: {
|
|
52
|
-
'@': fileURLToPath(new URL('./src', import.meta.url))
|
|
65
|
+
'@': fileURLToPath(new URL('./src', import.meta.url)),
|
|
53
66
|
},
|
|
54
67
|
extensions: [
|
|
55
68
|
'.js',
|
|
@@ -69,6 +82,9 @@ export default defineConfig({
|
|
|
69
82
|
sass: {
|
|
70
83
|
api: 'modern-compiler',
|
|
71
84
|
},
|
|
85
|
+
scss: {
|
|
86
|
+
api: 'modern-compiler',
|
|
87
|
+
},
|
|
72
88
|
},
|
|
73
89
|
},
|
|
74
90
|
})
|
|
@@ -1,36 +1 @@
|
|
|
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
|
+
export { default } from 'eslint-config-vuetify/index.ts.mjs'
|
|
@@ -2,15 +2,10 @@
|
|
|
2
2
|
"scripts": {
|
|
3
3
|
"lint": "eslint . --fix"
|
|
4
4
|
},
|
|
5
|
-
"dependencies": {
|
|
6
|
-
"core-js": "^3.37.1"
|
|
7
|
-
},
|
|
8
5
|
"devDependencies": {
|
|
9
|
-
"
|
|
10
|
-
"
|
|
11
|
-
"
|
|
12
|
-
"
|
|
13
|
-
"vue-router": "^4.4.0",
|
|
14
|
-
"unplugin-vue-router": "^0.10.0"
|
|
6
|
+
"eslint": "^9.23.0",
|
|
7
|
+
"eslint-config-vuetify": "^3.0.3",
|
|
8
|
+
"vue-router": "^4.5.0",
|
|
9
|
+
"unplugin-vue-router": "^0.12.0"
|
|
15
10
|
}
|
|
16
11
|
}
|
|
@@ -1,23 +1,17 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<v-container class="fill-height">
|
|
3
|
-
<
|
|
4
|
-
class="align-centerfill-height mx-auto"
|
|
5
|
-
max-width="900"
|
|
6
|
-
>
|
|
2
|
+
<v-container class="fill-height" max-width="900">
|
|
3
|
+
<div>
|
|
7
4
|
<v-img
|
|
8
5
|
class="mb-4"
|
|
9
6
|
height="150"
|
|
10
7
|
src="@/assets/logo.png"
|
|
11
8
|
/>
|
|
12
9
|
|
|
13
|
-
<div class="text-center">
|
|
10
|
+
<div class="mb-8 text-center">
|
|
14
11
|
<div class="text-body-2 font-weight-light mb-n1">Welcome to</div>
|
|
15
|
-
|
|
16
12
|
<h1 class="text-h2 font-weight-bold">Vuetify</h1>
|
|
17
13
|
</div>
|
|
18
14
|
|
|
19
|
-
<div class="py-4" />
|
|
20
|
-
|
|
21
15
|
<v-row>
|
|
22
16
|
<v-col cols="12">
|
|
23
17
|
<v-card
|
|
@@ -26,132 +20,71 @@
|
|
|
26
20
|
image="https://cdn.vuetifyjs.com/docs/images/one/create/feature.png"
|
|
27
21
|
prepend-icon="mdi-rocket-launch-outline"
|
|
28
22
|
rounded="lg"
|
|
29
|
-
variant="
|
|
23
|
+
variant="tonal"
|
|
30
24
|
>
|
|
31
25
|
<template #image>
|
|
32
26
|
<v-img position="top right" />
|
|
33
27
|
</template>
|
|
34
28
|
|
|
35
29
|
<template #title>
|
|
36
|
-
<h2 class="text-h5 font-weight-bold">
|
|
30
|
+
<h2 class="text-h5 font-weight-bold">
|
|
31
|
+
Get started
|
|
32
|
+
</h2>
|
|
37
33
|
</template>
|
|
38
34
|
|
|
39
35
|
<template #subtitle>
|
|
40
36
|
<div class="text-subtitle-1">
|
|
41
|
-
|
|
37
|
+
Change this page by updating <v-kbd>{{ `<HelloWorld />` }}</v-kbd> in <v-kbd>components/HelloWorld.vue</v-kbd>.
|
|
42
38
|
</div>
|
|
43
39
|
</template>
|
|
44
|
-
|
|
45
|
-
<v-overlay
|
|
46
|
-
opacity=".12"
|
|
47
|
-
scrim="primary"
|
|
48
|
-
contained
|
|
49
|
-
model-value
|
|
50
|
-
persistent
|
|
51
|
-
/>
|
|
52
|
-
</v-card>
|
|
53
|
-
</v-col>
|
|
54
|
-
|
|
55
|
-
<v-col cols="6">
|
|
56
|
-
<v-card
|
|
57
|
-
append-icon="mdi-open-in-new"
|
|
58
|
-
class="py-4"
|
|
59
|
-
color="surface-variant"
|
|
60
|
-
href="https://vuetifyjs.com/"
|
|
61
|
-
prepend-icon="mdi-text-box-outline"
|
|
62
|
-
rel="noopener noreferrer"
|
|
63
|
-
rounded="lg"
|
|
64
|
-
subtitle="Learn about all things Vuetify in our documentation."
|
|
65
|
-
target="_blank"
|
|
66
|
-
title="Documentation"
|
|
67
|
-
variant="text"
|
|
68
|
-
>
|
|
69
|
-
<v-overlay
|
|
70
|
-
opacity=".06"
|
|
71
|
-
scrim="primary"
|
|
72
|
-
contained
|
|
73
|
-
model-value
|
|
74
|
-
persistent
|
|
75
|
-
/>
|
|
76
|
-
</v-card>
|
|
77
|
-
</v-col>
|
|
78
|
-
|
|
79
|
-
<v-col cols="6">
|
|
80
|
-
<v-card
|
|
81
|
-
append-icon="mdi-open-in-new"
|
|
82
|
-
class="py-4"
|
|
83
|
-
color="surface-variant"
|
|
84
|
-
href="https://vuetifyjs.com/introduction/why-vuetify/#feature-guides"
|
|
85
|
-
prepend-icon="mdi-star-circle-outline"
|
|
86
|
-
rel="noopener noreferrer"
|
|
87
|
-
rounded="lg"
|
|
88
|
-
subtitle="Explore available framework Features."
|
|
89
|
-
target="_blank"
|
|
90
|
-
title="Features"
|
|
91
|
-
variant="text"
|
|
92
|
-
>
|
|
93
|
-
<v-overlay
|
|
94
|
-
opacity=".06"
|
|
95
|
-
scrim="primary"
|
|
96
|
-
contained
|
|
97
|
-
model-value
|
|
98
|
-
persistent
|
|
99
|
-
/>
|
|
100
40
|
</v-card>
|
|
101
41
|
</v-col>
|
|
102
42
|
|
|
103
|
-
<v-col cols="6">
|
|
43
|
+
<v-col v-for="link in links" :key="link.href" cols="6">
|
|
104
44
|
<v-card
|
|
105
45
|
append-icon="mdi-open-in-new"
|
|
106
46
|
class="py-4"
|
|
107
47
|
color="surface-variant"
|
|
108
|
-
href="
|
|
109
|
-
prepend-icon="
|
|
48
|
+
:href="link.href"
|
|
49
|
+
:prepend-icon="link.icon"
|
|
110
50
|
rel="noopener noreferrer"
|
|
111
51
|
rounded="lg"
|
|
112
|
-
subtitle="
|
|
52
|
+
:subtitle="link.subtitle"
|
|
113
53
|
target="_blank"
|
|
114
|
-
title="
|
|
115
|
-
variant="
|
|
116
|
-
|
|
117
|
-
<v-overlay
|
|
118
|
-
opacity=".06"
|
|
119
|
-
scrim="primary"
|
|
120
|
-
contained
|
|
121
|
-
model-value
|
|
122
|
-
persistent
|
|
123
|
-
/>
|
|
124
|
-
</v-card>
|
|
125
|
-
</v-col>
|
|
126
|
-
|
|
127
|
-
<v-col cols="6">
|
|
128
|
-
<v-card
|
|
129
|
-
append-icon="mdi-open-in-new"
|
|
130
|
-
class="py-4"
|
|
131
|
-
color="surface-variant"
|
|
132
|
-
href="https://discord.vuetifyjs.com"
|
|
133
|
-
prepend-icon="mdi-account-group-outline"
|
|
134
|
-
rel="noopener noreferrer"
|
|
135
|
-
rounded="lg"
|
|
136
|
-
subtitle="Connect with Vuetify developers."
|
|
137
|
-
target="_blank"
|
|
138
|
-
title="Community"
|
|
139
|
-
variant="text"
|
|
140
|
-
>
|
|
141
|
-
<v-overlay
|
|
142
|
-
opacity=".06"
|
|
143
|
-
scrim="primary"
|
|
144
|
-
contained
|
|
145
|
-
model-value
|
|
146
|
-
persistent
|
|
147
|
-
/>
|
|
148
|
-
</v-card>
|
|
54
|
+
:title="link.title"
|
|
55
|
+
variant="tonal"
|
|
56
|
+
/>
|
|
149
57
|
</v-col>
|
|
150
58
|
</v-row>
|
|
151
|
-
</
|
|
59
|
+
</div>
|
|
152
60
|
</v-container>
|
|
153
61
|
</template>
|
|
154
62
|
|
|
155
63
|
<script setup lang="ts">
|
|
156
|
-
|
|
64
|
+
const links = [
|
|
65
|
+
{
|
|
66
|
+
href: 'https://vuetifyjs.com/',
|
|
67
|
+
icon: 'mdi-text-box-outline',
|
|
68
|
+
subtitle: 'Learn about all things Vuetify in our documentation.',
|
|
69
|
+
title: 'Documentation',
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
href: 'https://vuetifyjs.com/introduction/why-vuetify/#feature-guides',
|
|
73
|
+
icon: 'mdi-star-circle-outline',
|
|
74
|
+
subtitle: 'Explore available framework Features.',
|
|
75
|
+
title: 'Features',
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
href: 'https://vuetifyjs.com/components/all',
|
|
79
|
+
icon: 'mdi-widgets-outline',
|
|
80
|
+
subtitle: 'Discover components in the API Explorer.',
|
|
81
|
+
title: 'Components',
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
href: 'https://discord.vuetifyjs.com',
|
|
85
|
+
icon: 'mdi-account-group-outline',
|
|
86
|
+
subtitle: 'Connect with Vuetify developers.',
|
|
87
|
+
title: 'Community',
|
|
88
|
+
},
|
|
89
|
+
]
|
|
157
90
|
</script>
|
|
@@ -26,13 +26,22 @@ export default defineConfig({
|
|
|
26
26
|
Components(),
|
|
27
27
|
ViteFonts({
|
|
28
28
|
google: {
|
|
29
|
-
families: [
|
|
29
|
+
families: [{
|
|
30
30
|
name: 'Roboto',
|
|
31
31
|
styles: 'wght@100;300;400;500;700;900',
|
|
32
32
|
}],
|
|
33
33
|
},
|
|
34
34
|
}),
|
|
35
35
|
],
|
|
36
|
+
optimizeDeps: {
|
|
37
|
+
exclude: [
|
|
38
|
+
'vuetify',
|
|
39
|
+
'vue-router',
|
|
40
|
+
'unplugin-vue-router/runtime',
|
|
41
|
+
'unplugin-vue-router/data-loaders',
|
|
42
|
+
'unplugin-vue-router/data-loaders/basic',
|
|
43
|
+
],
|
|
44
|
+
},
|
|
36
45
|
define: { 'process.env': {} },
|
|
37
46
|
resolve: {
|
|
38
47
|
alias: {
|
|
@@ -56,6 +65,9 @@ export default defineConfig({
|
|
|
56
65
|
sass: {
|
|
57
66
|
api: 'modern-compiler',
|
|
58
67
|
},
|
|
68
|
+
scss: {
|
|
69
|
+
api: 'modern-compiler',
|
|
70
|
+
},
|
|
59
71
|
},
|
|
60
72
|
},
|
|
61
73
|
})
|
|
@@ -27,7 +27,7 @@ After completing the installation, your environment is ready for Vuetify develop
|
|
|
27
27
|
|
|
28
28
|
- 🖼️ **Optimized Front-End Stack**: Leverage the latest Vue 3 and Vuetify 3 for a modern, reactive UI development experience. [Vue 3](https://v3.vuejs.org/) | [Vuetify 3](https://vuetifyjs.com/en/)
|
|
29
29
|
- 🗃️ **State Management**: Integrated with [Pinia](https://pinia.vuejs.org/), the intuitive, modular state management solution for Vue.
|
|
30
|
-
- 🚦 **Routing and Layouts**: Utilizes Vue Router for SPA navigation and vite-plugin-vue-layouts for organizing Vue file layouts. [Vue Router](https://router.vuejs.org/) | [vite-plugin-vue-layouts](https://github.com/
|
|
30
|
+
- 🚦 **Routing and Layouts**: Utilizes Vue Router for SPA navigation and vite-plugin-vue-layouts-next for organizing Vue file layouts. [Vue Router](https://router.vuejs.org/) | [vite-plugin-vue-layouts-next](https://github.com/loicduong/vite-plugin-vue-layouts-next)
|
|
31
31
|
- 💻 **Enhanced Development Experience**: Benefit from TypeScript's static type checking and the ESLint plugin suite for Vue, ensuring code quality and consistency. [TypeScript](https://www.typescriptlang.org/) | [ESLint Plugin Vue](https://eslint.vuejs.org/)
|
|
32
32
|
- ⚡ **Next-Gen Tooling**: Powered by Vite, experience fast cold starts and instant HMR (Hot Module Replacement). [Vite](https://vitejs.dev/)
|
|
33
33
|
- 🧩 **Automated Component Importing**: Streamline your workflow with unplugin-vue-components, automatically importing components as you use them. [unplugin-vue-components](https://github.com/antfu/unplugin-vue-components)
|
|
@@ -12,23 +12,21 @@
|
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"@mdi/font": "7.4.47",
|
|
14
14
|
"roboto-fontface": "*",
|
|
15
|
-
"vue": "^3.
|
|
16
|
-
"vuetify": "^3.
|
|
15
|
+
"vue": "^3.5.13",
|
|
16
|
+
"vuetify": "^3.8.1"
|
|
17
17
|
},
|
|
18
18
|
"devDependencies": {
|
|
19
19
|
"@tsconfig/node22": "^22.0.0",
|
|
20
20
|
"@types/node": "^22.9.0",
|
|
21
|
-
"@vitejs/plugin-vue": "^5.
|
|
22
|
-
"@vue/
|
|
23
|
-
"
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
"
|
|
27
|
-
"
|
|
28
|
-
"
|
|
29
|
-
"
|
|
30
|
-
"
|
|
31
|
-
"vite": "^5.4.10",
|
|
32
|
-
"vue-tsc": "^2.1.10"
|
|
21
|
+
"@vitejs/plugin-vue": "^5.2.3",
|
|
22
|
+
"@vue/tsconfig": "^0.7.0",
|
|
23
|
+
"npm-run-all2": "^7.0.2",
|
|
24
|
+
"sass-embedded": "^1.86.3",
|
|
25
|
+
"typescript": "~5.8.2",
|
|
26
|
+
"unplugin-fonts": "^1.3.1",
|
|
27
|
+
"unplugin-vue-components": "^28.4.1",
|
|
28
|
+
"vite-plugin-vuetify": "^2.1.1",
|
|
29
|
+
"vite": "^6.2.2",
|
|
30
|
+
"vue-tsc": "^2.2.8"
|
|
33
31
|
}
|
|
34
32
|
}
|
|
@@ -1,23 +1,17 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<v-container class="fill-height">
|
|
3
|
-
<
|
|
4
|
-
class="align-centerfill-height mx-auto"
|
|
5
|
-
max-width="900"
|
|
6
|
-
>
|
|
2
|
+
<v-container class="fill-height" max-width="900">
|
|
3
|
+
<div>
|
|
7
4
|
<v-img
|
|
8
5
|
class="mb-4"
|
|
9
6
|
height="150"
|
|
10
7
|
src="@/assets/logo.png"
|
|
11
8
|
/>
|
|
12
9
|
|
|
13
|
-
<div class="text-center">
|
|
10
|
+
<div class="mb-8 text-center">
|
|
14
11
|
<div class="text-body-2 font-weight-light mb-n1">Welcome to</div>
|
|
15
|
-
|
|
16
12
|
<h1 class="text-h2 font-weight-bold">Vuetify</h1>
|
|
17
13
|
</div>
|
|
18
14
|
|
|
19
|
-
<div class="py-4" />
|
|
20
|
-
|
|
21
15
|
<v-row>
|
|
22
16
|
<v-col cols="12">
|
|
23
17
|
<v-card
|
|
@@ -26,14 +20,16 @@
|
|
|
26
20
|
image="https://cdn.vuetifyjs.com/docs/images/one/create/feature.png"
|
|
27
21
|
prepend-icon="mdi-rocket-launch-outline"
|
|
28
22
|
rounded="lg"
|
|
29
|
-
variant="
|
|
23
|
+
variant="tonal"
|
|
30
24
|
>
|
|
31
25
|
<template #image>
|
|
32
26
|
<v-img position="top right" />
|
|
33
27
|
</template>
|
|
34
28
|
|
|
35
29
|
<template #title>
|
|
36
|
-
<h2 class="text-h5 font-weight-bold">
|
|
30
|
+
<h2 class="text-h5 font-weight-bold">
|
|
31
|
+
Get started
|
|
32
|
+
</h2>
|
|
37
33
|
</template>
|
|
38
34
|
|
|
39
35
|
<template #subtitle>
|
|
@@ -41,117 +37,54 @@
|
|
|
41
37
|
Change this page by updating <v-kbd>{{ `<HelloWorld />` }}</v-kbd> in <v-kbd>components/HelloWorld.vue</v-kbd>.
|
|
42
38
|
</div>
|
|
43
39
|
</template>
|
|
44
|
-
|
|
45
|
-
<v-overlay
|
|
46
|
-
opacity=".12"
|
|
47
|
-
scrim="primary"
|
|
48
|
-
contained
|
|
49
|
-
model-value
|
|
50
|
-
persistent
|
|
51
|
-
/>
|
|
52
|
-
</v-card>
|
|
53
|
-
</v-col>
|
|
54
|
-
|
|
55
|
-
<v-col cols="6">
|
|
56
|
-
<v-card
|
|
57
|
-
append-icon="mdi-open-in-new"
|
|
58
|
-
class="py-4"
|
|
59
|
-
color="surface-variant"
|
|
60
|
-
href="https://vuetifyjs.com/"
|
|
61
|
-
prepend-icon="mdi-text-box-outline"
|
|
62
|
-
rel="noopener noreferrer"
|
|
63
|
-
rounded="lg"
|
|
64
|
-
subtitle="Learn about all things Vuetify in our documentation."
|
|
65
|
-
target="_blank"
|
|
66
|
-
title="Documentation"
|
|
67
|
-
variant="text"
|
|
68
|
-
>
|
|
69
|
-
<v-overlay
|
|
70
|
-
opacity=".06"
|
|
71
|
-
scrim="primary"
|
|
72
|
-
contained
|
|
73
|
-
model-value
|
|
74
|
-
persistent
|
|
75
|
-
/>
|
|
76
|
-
</v-card>
|
|
77
|
-
</v-col>
|
|
78
|
-
|
|
79
|
-
<v-col cols="6">
|
|
80
|
-
<v-card
|
|
81
|
-
append-icon="mdi-open-in-new"
|
|
82
|
-
class="py-4"
|
|
83
|
-
color="surface-variant"
|
|
84
|
-
href="https://vuetifyjs.com/introduction/why-vuetify/#feature-guides"
|
|
85
|
-
prepend-icon="mdi-star-circle-outline"
|
|
86
|
-
rel="noopener noreferrer"
|
|
87
|
-
rounded="lg"
|
|
88
|
-
subtitle="Explore available framework Features."
|
|
89
|
-
target="_blank"
|
|
90
|
-
title="Features"
|
|
91
|
-
variant="text"
|
|
92
|
-
>
|
|
93
|
-
<v-overlay
|
|
94
|
-
opacity=".06"
|
|
95
|
-
scrim="primary"
|
|
96
|
-
contained
|
|
97
|
-
model-value
|
|
98
|
-
persistent
|
|
99
|
-
/>
|
|
100
40
|
</v-card>
|
|
101
41
|
</v-col>
|
|
102
42
|
|
|
103
|
-
<v-col cols="6">
|
|
43
|
+
<v-col v-for="link in links" :key="link.href" cols="6">
|
|
104
44
|
<v-card
|
|
105
45
|
append-icon="mdi-open-in-new"
|
|
106
46
|
class="py-4"
|
|
107
47
|
color="surface-variant"
|
|
108
|
-
href="
|
|
109
|
-
prepend-icon="
|
|
48
|
+
:href="link.href"
|
|
49
|
+
:prepend-icon="link.icon"
|
|
110
50
|
rel="noopener noreferrer"
|
|
111
51
|
rounded="lg"
|
|
112
|
-
subtitle="
|
|
52
|
+
:subtitle="link.subtitle"
|
|
113
53
|
target="_blank"
|
|
114
|
-
title="
|
|
115
|
-
variant="
|
|
116
|
-
|
|
117
|
-
<v-overlay
|
|
118
|
-
opacity=".06"
|
|
119
|
-
scrim="primary"
|
|
120
|
-
contained
|
|
121
|
-
model-value
|
|
122
|
-
persistent
|
|
123
|
-
/>
|
|
124
|
-
</v-card>
|
|
125
|
-
</v-col>
|
|
126
|
-
|
|
127
|
-
<v-col cols="6">
|
|
128
|
-
<v-card
|
|
129
|
-
append-icon="mdi-open-in-new"
|
|
130
|
-
class="py-4"
|
|
131
|
-
color="surface-variant"
|
|
132
|
-
href="https://discord.vuetifyjs.com"
|
|
133
|
-
prepend-icon="mdi-account-group-outline"
|
|
134
|
-
rel="noopener noreferrer"
|
|
135
|
-
rounded="lg"
|
|
136
|
-
subtitle="Connect with Vuetify developers."
|
|
137
|
-
target="_blank"
|
|
138
|
-
title="Community"
|
|
139
|
-
variant="text"
|
|
140
|
-
>
|
|
141
|
-
<v-overlay
|
|
142
|
-
opacity=".06"
|
|
143
|
-
scrim="primary"
|
|
144
|
-
contained
|
|
145
|
-
model-value
|
|
146
|
-
persistent
|
|
147
|
-
/>
|
|
148
|
-
</v-card>
|
|
54
|
+
:title="link.title"
|
|
55
|
+
variant="tonal"
|
|
56
|
+
/>
|
|
149
57
|
</v-col>
|
|
150
58
|
</v-row>
|
|
151
|
-
</
|
|
59
|
+
</div>
|
|
152
60
|
</v-container>
|
|
153
61
|
</template>
|
|
154
62
|
|
|
155
63
|
<script setup lang="ts">
|
|
156
|
-
|
|
64
|
+
const links = [
|
|
65
|
+
{
|
|
66
|
+
href: 'https://vuetifyjs.com/',
|
|
67
|
+
icon: 'mdi-text-box-outline',
|
|
68
|
+
subtitle: 'Learn about all things Vuetify in our documentation.',
|
|
69
|
+
title: 'Documentation',
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
href: 'https://vuetifyjs.com/introduction/why-vuetify/#feature-guides',
|
|
73
|
+
icon: 'mdi-star-circle-outline',
|
|
74
|
+
subtitle: 'Explore available framework Features.',
|
|
75
|
+
title: 'Features',
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
href: 'https://vuetifyjs.com/components/all',
|
|
79
|
+
icon: 'mdi-widgets-outline',
|
|
80
|
+
subtitle: 'Discover components in the API Explorer.',
|
|
81
|
+
title: 'Components',
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
href: 'https://discord.vuetifyjs.com',
|
|
85
|
+
icon: 'mdi-account-group-outline',
|
|
86
|
+
subtitle: 'Connect with Vuetify developers.',
|
|
87
|
+
title: 'Community',
|
|
88
|
+
},
|
|
89
|
+
]
|
|
157
90
|
</script>
|