create-soybean 1.1.1 → 1.2.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 (46) hide show
  1. package/package.json +4 -4
  2. package/template-pnpm-monorepo/package.json +7 -7
  3. package/template-pnpm-monorepo/packages/demo-pkg/package.json +3 -3
  4. package/template-ts-lib-tsup/.vscode/settings.json +0 -1
  5. package/template-ts-lib-tsup/package.json +16 -16
  6. package/template-ts-lib-tsup/src/index.ts +1 -1
  7. package/template-ts-lib-tsup/tsup.config.ts +5 -1
  8. package/template-ts-lib-unbuild/.vscode/settings.json +0 -1
  9. package/template-ts-lib-unbuild/package.json +12 -12
  10. package/template-vue/.vscode/extensions.json +0 -3
  11. package/template-vue/.vscode/launch.json +6 -6
  12. package/template-vue/.vscode/settings.json +5 -3
  13. package/template-vue/README.md +0 -37
  14. package/template-vue/_gitattributes +1 -0
  15. package/template-vue/_gitignore +2 -0
  16. package/template-vue/_npmrc +2 -1
  17. package/template-vue/eslint.config.js +19 -1
  18. package/template-vue/package.json +24 -16
  19. package/template-vue/src/App.vue +1 -76
  20. package/template-vue/src/components/HelloWorld.vue +2 -40
  21. package/template-vue/src/constants/index.ts +0 -0
  22. package/template-vue/src/main.ts +12 -9
  23. package/template-vue/src/plugins/assets.ts +3 -0
  24. package/template-vue/src/router/index.ts +19 -14
  25. package/template-vue/src/shared/index.ts +0 -0
  26. package/template-vue/src/store/id.ts +3 -0
  27. package/template-vue/src/store/index.ts +12 -0
  28. package/template-vue/src/{stores/counter.ts → store/modules/counter/index.ts} +4 -1
  29. package/template-vue/src/store/plugins/index.ts +22 -0
  30. package/template-vue/src/styles/app.css +8 -0
  31. package/template-vue/src/typings/components.d.ts +0 -0
  32. package/template-vue/src/views/home.vue +5 -0
  33. package/template-vue/uno.config.ts +15 -0
  34. package/template-vue/vite.config.ts +12 -2
  35. package/template-vue/src/assets/base.css +0 -86
  36. package/template-vue/src/assets/logo.svg +0 -1
  37. package/template-vue/src/assets/main.css +0 -35
  38. package/template-vue/src/components/TheWelcome.vue +0 -95
  39. package/template-vue/src/components/WelcomeItem.vue +0 -87
  40. package/template-vue/src/components/icons/IconCommunity.vue +0 -7
  41. package/template-vue/src/components/icons/IconDocumentation.vue +0 -7
  42. package/template-vue/src/components/icons/IconEcosystem.vue +0 -7
  43. package/template-vue/src/components/icons/IconSupport.vue +0 -7
  44. package/template-vue/src/components/icons/IconTooling.vue +0 -19
  45. package/template-vue/src/views/AboutView.vue +0 -15
  46. package/template-vue/src/views/HomeView.vue +0 -9
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "create-soybean",
3
3
  "type": "module",
4
- "version": "1.1.1",
4
+ "version": "1.2.0",
5
5
  "description": "SoybeanJS's command line to create different project templates",
6
6
  "author": {
7
7
  "name": "Soybean",
@@ -28,7 +28,7 @@
28
28
  "template-*"
29
29
  ],
30
30
  "dependencies": {
31
- "consola": "3.2.3",
31
+ "consola": "3.4.0",
32
32
  "kolorist": "1.8.0",
33
33
  "minimist": "1.2.8",
34
34
  "prompts": "2.4.2"
@@ -36,8 +36,8 @@
36
36
  "devDependencies": {
37
37
  "@types/minimist": "1.2.5",
38
38
  "@types/prompts": "2.4.9",
39
- "tsup": "8.2.4",
40
- "typescript": "5.5.4"
39
+ "tsup": "8.4.0",
40
+ "typescript": "5.8.2"
41
41
  },
42
42
  "scripts": {
43
43
  "build": "pnpm typecheck && pnpm build-only",
@@ -3,7 +3,7 @@
3
3
  "type": "module",
4
4
  "version": "0.0.0",
5
5
  "private": true,
6
- "packageManager": "pnpm@9.9.0",
6
+ "packageManager": "pnpm@10.6.3",
7
7
  "scripts": {
8
8
  "cleanup": "soy cleanup",
9
9
  "commit": "soy git-commit",
@@ -15,13 +15,13 @@
15
15
  },
16
16
  "dependencies": {},
17
17
  "devDependencies": {
18
- "@soybeanjs/cli": "1.1.1",
19
- "@soybeanjs/eslint-config": "1.4.1",
20
- "eslint": "9.10.0",
21
- "lint-staged": "15.2.10",
18
+ "@soybeanjs/cli": "1.2.0",
19
+ "@soybeanjs/eslint-config": "1.6.0",
20
+ "eslint": "9.22.0",
21
+ "lint-staged": "15.5.0",
22
22
  "simple-git-hooks": "2.11.1",
23
- "tsx": "4.19.0",
24
- "typescript": "5.5.4"
23
+ "tsx": "4.19.3",
24
+ "typescript": "5.8.2"
25
25
  },
26
26
  "simple-git-hooks": {
27
27
  "commit-msg": "pnpm soy git-commit-verify",
@@ -1,14 +1,14 @@
1
1
  {
2
2
  "name": "demo-pkg",
3
3
  "type": "module",
4
- "version": "1.1.1",
4
+ "version": "1.2.0",
5
5
  "private": true,
6
- "packageManager": "pnpm@9.9.0",
6
+ "packageManager": "pnpm@10.6.3",
7
7
  "scripts": {
8
8
  "typecheck": "tsc --noEmit --skipLibCheck"
9
9
  },
10
10
  "dependencies": {},
11
11
  "devDependencies": {
12
- "typescript": "5.5.4"
12
+ "typescript": "5.8.2"
13
13
  }
14
14
  }
@@ -3,7 +3,6 @@
3
3
  "source.fixAll.eslint": "explicit",
4
4
  "source.organizeImports": "never"
5
5
  },
6
- "eslint.useFlatConfig": true,
7
6
  "editor.formatOnSave": false,
8
7
  "eslint.validate": ["json", "jsonc"],
9
8
  "prettier.enable": false
@@ -3,18 +3,18 @@
3
3
  "type": "module",
4
4
  "version": "0.0.0",
5
5
  "private": true,
6
- "packageManager": "pnpm@9.9.0",
6
+ "packageManager": "pnpm@10.6.3",
7
7
  "sideEffects": false,
8
8
  "exports": {
9
9
  ".": {
10
10
  "types": "./dist/index.d.ts",
11
- "import": "./dist/index.js",
11
+ "import": "./dist/index.mjs",
12
12
  "require": "./dist/index.cjs"
13
13
  }
14
14
  },
15
- "main": "dist/index.cjs",
16
- "module": "dist/index.js",
17
- "types": "dist/index.d.ts",
15
+ "main": "./dist/index.cjs",
16
+ "module": "./dist/index.mjs",
17
+ "types": "./dist/index.d.ts",
18
18
  "files": ["dist"],
19
19
  "scripts": {
20
20
  "build": "tsup",
@@ -30,23 +30,23 @@
30
30
  },
31
31
  "dependencies": {
32
32
  "cli-progress": "3.12.0",
33
- "consola": "3.2.3",
33
+ "consola": "3.4.0",
34
34
  "dayjs": "1.11.13",
35
- "execa": "9.3.1",
35
+ "execa": "9.5.2",
36
36
  "kolorist": "1.8.0",
37
- "ofetch": "1.3.4"
37
+ "ofetch": "1.4.1"
38
38
  },
39
39
  "devDependencies": {
40
- "@soybeanjs/cli": "1.1.1",
41
- "@soybeanjs/eslint-config": "1.4.1",
40
+ "@soybeanjs/cli": "1.2.0",
41
+ "@soybeanjs/eslint-config": "1.6.0",
42
42
  "@types/cli-progress": "3.11.6",
43
- "@types/node": "22.5.4",
44
- "eslint": "9.10.0",
45
- "lint-staged": "15.2.10",
43
+ "@types/node": "22.13.10",
44
+ "eslint": "9.22.0",
45
+ "lint-staged": "15.5.0",
46
46
  "simple-git-hooks": "2.11.1",
47
- "tsup": "8.2.4",
48
- "tsx": "4.19.0",
49
- "typescript": "5.5.4"
47
+ "tsup": "8.4.0",
48
+ "tsx": "4.19.3",
49
+ "typescript": "5.8.2"
50
50
  },
51
51
  "simple-git-hooks": {
52
52
  "commit-msg": "pnpm soy git-commit-verify",
@@ -1,3 +1,3 @@
1
1
  export function fn() {
2
- return 1;
2
+ return '';
3
3
  }
@@ -5,10 +5,14 @@ export default defineConfig({
5
5
  clean: true,
6
6
  dts: true,
7
7
  format: ['cjs', 'esm'],
8
+ outExtension: ctx => {
9
+ return {
10
+ js: ctx.format === 'cjs' ? '.cjs' : '.mjs'
11
+ };
12
+ },
8
13
  external: [],
9
14
  shims: true,
10
15
  cjsInterop: true,
11
16
  sourcemap: false,
12
- target: 'es6',
13
17
  minify: true
14
18
  });
@@ -3,7 +3,6 @@
3
3
  "source.fixAll.eslint": "explicit",
4
4
  "source.organizeImports": "never"
5
5
  },
6
- "eslint.useFlatConfig": true,
7
6
  "editor.formatOnSave": false,
8
7
  "eslint.validate": ["json", "jsonc"],
9
8
  "prettier.enable": false
@@ -3,7 +3,7 @@
3
3
  "type": "module",
4
4
  "version": "0.0.0",
5
5
  "private": true,
6
- "packageManager": "pnpm@9.9.0",
6
+ "packageManager": "pnpm@10.6.3",
7
7
  "sideEffects": false,
8
8
  "exports": {
9
9
  ".": {
@@ -29,23 +29,23 @@
29
29
  },
30
30
  "dependencies": {
31
31
  "cli-progress": "3.12.0",
32
- "consola": "3.2.3",
32
+ "consola": "3.4.0",
33
33
  "dayjs": "1.11.13",
34
- "execa": "9.3.1",
34
+ "execa": "9.5.2",
35
35
  "kolorist": "1.8.0",
36
- "ofetch": "1.3.4"
36
+ "ofetch": "1.4.1"
37
37
  },
38
38
  "devDependencies": {
39
- "@soybeanjs/cli": "1.1.1",
40
- "@soybeanjs/eslint-config": "1.4.1",
39
+ "@soybeanjs/cli": "1.2.0",
40
+ "@soybeanjs/eslint-config": "1.6.0",
41
41
  "@types/cli-progress": "3.11.6",
42
- "@types/node": "22.5.4",
43
- "eslint": "9.10.0",
44
- "lint-staged": "15.2.10",
42
+ "@types/node": "22.13.10",
43
+ "eslint": "9.22.0",
44
+ "lint-staged": "15.5.0",
45
45
  "simple-git-hooks": "2.11.1",
46
- "tsx": "4.19.0",
47
- "typescript": "5.5.4",
48
- "unbuild": "2.0.0"
46
+ "tsx": "4.19.3",
47
+ "typescript": "5.8.2",
48
+ "unbuild": "3.5.0"
49
49
  },
50
50
  "simple-git-hooks": {
51
51
  "commit-msg": "pnpm soy git-commit-verify",
@@ -6,9 +6,6 @@
6
6
  "dbaeumer.vscode-eslint",
7
7
  "editorconfig.editorconfig",
8
8
  "esbenp.prettier-vscode",
9
- "formulahendry.auto-close-tag",
10
- "formulahendry.auto-complete-tag",
11
- "formulahendry.auto-rename-tag",
12
9
  "lokalise.i18n-ally",
13
10
  "mhutchie.git-graph",
14
11
  "mikestead.dotenv",
@@ -1,22 +1,22 @@
1
1
  {
2
- "version": "0.2.0",
2
+ "version": "1.0.0",
3
3
  "configurations": [
4
4
  {
5
- "name": "Vue Debugger",
6
5
  "type": "chrome",
7
6
  "request": "launch",
7
+ "name": "Vue Debugger",
8
8
  "url": "http://localhost:9527",
9
9
  "webRoot": "${workspaceFolder}"
10
10
  },
11
11
  {
12
- "name": "TS Debugger tsx",
13
12
  "type": "node",
14
13
  "request": "launch",
15
- "program": "${file}",
14
+ "name": "TS Debugger",
16
15
  "runtimeExecutable": "tsx",
16
+ "skipFiles": ["<node_internals>/**", "${workspaceFolder}/node_modules/**"],
17
+ "program": "${file}",
17
18
  "console": "integratedTerminal",
18
- "internalConsoleOptions": "neverOpen",
19
- "skipFiles": ["<node_internals>/**", "${workspaceFolder}/node_modules/**"]
19
+ "internalConsoleOptions": "neverOpen"
20
20
  }
21
21
  ]
22
22
  }
@@ -4,7 +4,9 @@
4
4
  "source.organizeImports": "never"
5
5
  },
6
6
  "editor.formatOnSave": false,
7
- "eslint.useFlatConfig": true,
8
- "eslint.validate": ["html", "css", "json", "jsonc"],
9
- "prettier.enable": false
7
+ "eslint.validate": ["html", "css", "scss", "json", "jsonc"],
8
+ "prettier.enable": false,
9
+ "typescript.tsdk": "node_modules/typescript/lib",
10
+ "unocss.root": ["./"],
11
+ "vue.server.hybridMode": true
10
12
  }
@@ -1,40 +1,3 @@
1
1
  # template-vue
2
2
 
3
3
  This template should help get you started developing with Vue 3 in Vite.
4
-
5
- ## Recommended IDE Setup
6
-
7
- [VSCode](https://code.visualstudio.com/) + [Volar](https://marketplace.visualstudio.com/items?itemName=Vue.volar) (and disable Vetur) + [TypeScript Vue Plugin (Volar)](https://marketplace.visualstudio.com/items?itemName=Vue.vscode-typescript-vue-plugin).
8
-
9
- ## Type Support for `.vue` Imports in TS
10
-
11
- TypeScript cannot handle type information for `.vue` imports by default, so we replace the `tsc` CLI with `vue-tsc` for type checking. In editors, we need [TypeScript Vue Plugin (Volar)](https://marketplace.visualstudio.com/items?itemName=Vue.vscode-typescript-vue-plugin) to make the TypeScript language service aware of `.vue` types.
12
-
13
- If the standalone TypeScript plugin doesn't feel fast enough to you, Volar has also implemented a [Take Over Mode](https://github.com/johnsoncodehk/volar/discussions/471#discussioncomment-1361669) that is more performant. You can enable it by the following steps:
14
-
15
- 1. Disable the built-in TypeScript Extension
16
- 1. Run `Extensions: Show Built-in Extensions` from VSCode's command palette
17
- 2. Find `TypeScript and JavaScript Language Features`, right click and select `Disable (Workspace)`
18
- 2. Reload the VSCode window by running `Developer: Reload Window` from the command palette.
19
-
20
- ## Customize configuration
21
-
22
- See [Vite Configuration Reference](https://vitejs.dev/config/).
23
-
24
- ## Project Setup
25
-
26
- ```sh
27
- pnpm install
28
- ```
29
-
30
- ### Compile and Hot-Reload for Development
31
-
32
- ```sh
33
- pnpm dev
34
- ```
35
-
36
- ### Type-Check, Compile and Minify for Production
37
-
38
- ```sh
39
- pnpm build
40
- ```
@@ -17,5 +17,6 @@
17
17
  "*.svelte" eol=lf
18
18
  "*.md" eol=lf
19
19
  "*.yml" eol=lf
20
+ "*.yaml" eol=lf
20
21
  "*.astro" eol=lf
21
22
  "*.mdx" eol=lf
@@ -28,3 +28,5 @@ coverage
28
28
  *.njsproj
29
29
  *.sln
30
30
  *.sw?
31
+
32
+ .VSCodeCounter
@@ -1,2 +1,3 @@
1
- registry=https://registry.npmmirror.com/
2
1
  shamefully-hoist=true
2
+ ignore-workspace-root-check=true
3
+ link-workspace-packages=true
@@ -1,3 +1,21 @@
1
1
  import { defineConfig } from '@soybeanjs/eslint-config';
2
2
 
3
- export default defineConfig({ vue: true });
3
+ export default defineConfig({ vue: true, unocss: true }, {
4
+ rules: {
5
+ 'vue/multi-word-component-names': [
6
+ 'warn',
7
+ {
8
+ ignores: ['index', 'App']
9
+ }
10
+ ],
11
+ 'vue/component-name-in-template-casing': [
12
+ 'warn',
13
+ 'PascalCase',
14
+ {
15
+ registeredComponentsOnly: false,
16
+ ignores: ['/^icon-/']
17
+ }
18
+ ],
19
+ 'unocss/order-attributify': 'off'
20
+ }
21
+ });
@@ -3,7 +3,7 @@
3
3
  "type": "module",
4
4
  "version": "0.0.0",
5
5
  "private": true,
6
- "packageManager": "pnpm@9.9.0",
6
+ "packageManager": "pnpm@10.6.3",
7
7
  "scripts": {
8
8
  "build": "run-s typecheck build-only",
9
9
  "build-only": "vite build",
@@ -17,24 +17,32 @@
17
17
  "update-pkg": "soy ncu"
18
18
  },
19
19
  "dependencies": {
20
- "pinia": "2.2.2",
21
- "vue": "3.5.3",
22
- "vue-router": "4.4.3"
20
+ "@unocss/reset": "66.0.0",
21
+ "pinia": "3.0.1",
22
+ "vue": "3.5.13",
23
+ "vue-router": "4.5.0"
23
24
  },
24
25
  "devDependencies": {
25
- "@soybeanjs/cli": "1.1.1",
26
- "@soybeanjs/eslint-config": "1.4.1",
27
- "@types/node": "22.5.4",
28
- "@vitejs/plugin-vue": "5.1.3",
29
- "@vitejs/plugin-vue-jsx": "4.0.1",
30
- "eslint": "9.10.0",
31
- "eslint-plugin-vue": "9.28.0",
32
- "lint-staged": "15.2.10",
26
+ "@soybeanjs/cli": "1.2.0",
27
+ "@soybeanjs/eslint-config": "1.6.0",
28
+ "@types/node": "22.13.10",
29
+ "@unocss/eslint-config": "66.0.0",
30
+ "@unocss/preset-uno": "66.0.0",
31
+ "@unocss/transformer-directives": "66.0.0",
32
+ "@unocss/transformer-variant-group": "66.0.0",
33
+ "@unocss/vite": "66.0.0",
34
+ "@vitejs/plugin-vue": "5.2.1",
35
+ "@vitejs/plugin-vue-jsx": "4.1.1",
36
+ "eslint": "9.22.0",
37
+ "eslint-plugin-vue": "10.0.0",
38
+ "klona": "2.0.6",
39
+ "lint-staged": "15.5.0",
33
40
  "simple-git-hooks": "2.11.1",
34
- "typescript": "5.5.4",
35
- "vite": "5.4.3",
36
- "vue-eslint-parser": "9.4.3",
37
- "vue-tsc": "2.1.6"
41
+ "typescript": "5.8.2",
42
+ "unplugin-vue-components": "28.4.1",
43
+ "vite": "6.2.1",
44
+ "vue-eslint-parser": "10.1.1",
45
+ "vue-tsc": "2.2.8"
38
46
  },
39
47
  "simple-git-hooks": {
40
48
  "commit-msg": "pnpm soy git-commit-verify",
@@ -1,82 +1,7 @@
1
1
  <script setup lang="ts">
2
- import { RouterLink, RouterView } from 'vue-router';
3
- import HelloWorld from './components/HelloWorld.vue';
2
+ import { RouterView } from 'vue-router';
4
3
  </script>
5
4
 
6
5
  <template>
7
- <header>
8
- <img alt="Vue logo" class="logo" src="@/assets/logo.svg" width="125" height="125" />
9
- <div class="wrapper">
10
- <HelloWorld msg="You did it!" />
11
- <nav>
12
- <RouterLink to="/">Home</RouterLink>
13
- <RouterLink to="/about">About</RouterLink>
14
- </nav>
15
- </div>
16
- </header>
17
6
  <RouterView />
18
7
  </template>
19
-
20
- <style scoped>
21
- header {
22
- line-height: 1.5;
23
- max-height: 100vh;
24
- }
25
-
26
- .logo {
27
- display: block;
28
- margin: 0 auto 2rem;
29
- }
30
-
31
- nav {
32
- width: 100%;
33
- font-size: 12px;
34
- text-align: center;
35
- margin-top: 2rem;
36
- }
37
-
38
- nav a.router-link-exact-active {
39
- color: var(--color-text);
40
- }
41
-
42
- nav a.router-link-exact-active:hover {
43
- background-color: transparent;
44
- }
45
-
46
- nav a {
47
- display: inline-block;
48
- padding: 0 1rem;
49
- border-left: 1px solid var(--color-border);
50
- }
51
-
52
- nav a:first-of-type {
53
- border: 0;
54
- }
55
-
56
- @media (min-width: 1024px) {
57
- header {
58
- display: flex;
59
- place-items: center;
60
- padding-right: calc(var(--section-gap) / 2);
61
- }
62
-
63
- .logo {
64
- margin: 0 2rem 0 0;
65
- }
66
-
67
- header .wrapper {
68
- display: flex;
69
- place-items: flex-start;
70
- flex-wrap: wrap;
71
- }
72
-
73
- nav {
74
- text-align: left;
75
- margin-left: -1rem;
76
- font-size: 1rem;
77
-
78
- padding: 1rem 0;
79
- margin-top: 1rem;
80
- }
81
- }
82
- </style>
@@ -1,43 +1,5 @@
1
- <script setup lang="ts">
2
- defineProps<{
3
- msg: string;
4
- }>();
5
- </script>
1
+ <script setup lang="ts"></script>
6
2
 
7
3
  <template>
8
- <div class="greetings">
9
- <h1 class="green">{{ msg }}</h1>
10
- <h3>
11
- You’ve successfully created a project with
12
- <a href="https://vitejs.dev/" target="_blank" rel="noopener noreferrer">Vite</a>
13
- +
14
- <a href="https://vuejs.org/" target="_blank" rel="noopener noreferrer">Vue 3</a>
15
- . What's next?
16
- </h3>
17
- </div>
4
+ <div>HelloWorld</div>
18
5
  </template>
19
-
20
- <style scoped>
21
- h1 {
22
- font-weight: 500;
23
- font-size: 2.6rem;
24
- position: relative;
25
- top: -10px;
26
- }
27
-
28
- h3 {
29
- font-size: 1.2rem;
30
- }
31
-
32
- .greetings h1,
33
- .greetings h3 {
34
- text-align: center;
35
- }
36
-
37
- @media (min-width: 1024px) {
38
- .greetings h1,
39
- .greetings h3 {
40
- text-align: left;
41
- }
42
- }
43
- </style>
File without changes
@@ -1,14 +1,17 @@
1
- import './assets/main.css';
2
-
3
1
  import { createApp } from 'vue';
4
- import { createPinia } from 'pinia';
5
-
2
+ import './plugins/assets';
6
3
  import App from './App.vue';
7
- import router from './router';
4
+ import { setupRouter } from './router';
5
+ import { setupStore } from './store';
6
+
7
+ async function setupApp() {
8
+ const app = createApp(App);
9
+
10
+ setupStore(app);
8
11
 
9
- const app = createApp(App);
12
+ await setupRouter(app);
10
13
 
11
- app.use(createPinia());
12
- app.use(router);
14
+ app.mount('#app');
15
+ }
13
16
 
14
- app.mount('#app');
17
+ setupApp();
@@ -0,0 +1,3 @@
1
+ import '@unocss/reset/tailwind.css';
2
+ import 'uno.css';
3
+ import '../styles/app.css';
@@ -1,23 +1,28 @@
1
+ import type { App } from 'vue';
1
2
  import { createRouter, createWebHistory } from 'vue-router';
2
- import HomeView from '../views/HomeView.vue';
3
+ import type { Router } from 'vue-router';
3
4
 
4
- const router = createRouter({
5
- history: createWebHistory(import.meta.env.BASE_URL),
5
+ export const router = createRouter({
6
+ history: createWebHistory(),
6
7
  routes: [
7
8
  {
8
- path: '/',
9
9
  name: 'home',
10
- component: HomeView
11
- },
12
- {
13
- path: '/about',
14
- name: 'about',
15
- // route level code-splitting
16
- // this generates a separate chunk (About.[hash].js) for this route
17
- // which is lazy-loaded when the route is visited.
18
- component: () => import('../views/AboutView.vue')
10
+ path: '/',
11
+ component: () => import('../views/home.vue')
19
12
  }
20
13
  ]
21
14
  });
22
15
 
23
- export default router;
16
+ /**
17
+ * Router guard
18
+ *
19
+ * @param router - Router instance
20
+ */
21
+ function createRouterGuard(_router: Router) {}
22
+
23
+ /** Setup Vue Router */
24
+ export async function setupRouter(app: App) {
25
+ app.use(router);
26
+ createRouterGuard(router);
27
+ await router.isReady();
28
+ }
File without changes
@@ -0,0 +1,3 @@
1
+ export const storeIdRecord = {
2
+ counter: 'counter-store'
3
+ };
@@ -0,0 +1,12 @@
1
+ import type { App } from 'vue';
2
+ import { createPinia } from 'pinia';
3
+ import { resetSetupStore } from './plugins';
4
+
5
+ /** Setup Vue store plugin pinia */
6
+ export function setupStore(app: App) {
7
+ const store = createPinia();
8
+
9
+ store.use(resetSetupStore);
10
+
11
+ app.use(store);
12
+ }
@@ -1,9 +1,12 @@
1
1
  import { computed, ref } from 'vue';
2
2
  import { defineStore } from 'pinia';
3
+ import { storeIdRecord } from '../../id';
3
4
 
4
- export const useCounterStore = defineStore('counter', () => {
5
+ export const useCounterStore = defineStore(storeIdRecord.counter, () => {
5
6
  const count = ref(0);
7
+
6
8
  const doubleCount = computed(() => count.value * 2);
9
+
7
10
  function increment() {
8
11
  count.value += 1;
9
12
  }
@@ -0,0 +1,22 @@
1
+ import type { PiniaPluginContext } from 'pinia';
2
+ import { klona } from 'klona/json';
3
+ import { storeIdRecord } from '../id';
4
+
5
+ /**
6
+ * The plugin reset the state of the store which is written by setup syntax
7
+ *
8
+ * @param context
9
+ */
10
+ export function resetSetupStore(context: PiniaPluginContext) {
11
+ const setupSyntaxIds = Object.values(storeIdRecord);
12
+
13
+ if (setupSyntaxIds.includes(context.store.$id)) {
14
+ const { $state } = context.store;
15
+
16
+ const defaultStore = klona($state);
17
+
18
+ context.store.$reset = () => {
19
+ context.store.$patch(defaultStore);
20
+ };
21
+ }
22
+ }
@@ -0,0 +1,8 @@
1
+ html,
2
+ body,
3
+ #app {
4
+ height: 100%;
5
+ }
6
+ html {
7
+ overflow-x: hidden;
8
+ }
File without changes
@@ -0,0 +1,5 @@
1
+ <script setup lang="ts"></script>
2
+
3
+ <template>
4
+ <div>Home</div>
5
+ </template>
@@ -0,0 +1,15 @@
1
+ import { defineConfig } from '@unocss/vite';
2
+ import transformerDirectives from '@unocss/transformer-directives';
3
+ import transformerVariantGroup from '@unocss/transformer-variant-group';
4
+ import presetWind3 from '@unocss/preset-wind3';
5
+ import type { Theme } from '@unocss/preset-uno';
6
+
7
+ export default defineConfig<Theme>({
8
+ content: {
9
+ pipeline: {
10
+ exclude: ['node_modules', 'dist']
11
+ }
12
+ },
13
+ transformers: [transformerDirectives(), transformerVariantGroup()],
14
+ presets: [presetWind3({ dark: 'class' })]
15
+ });
@@ -2,12 +2,22 @@ import { URL, fileURLToPath } from 'node:url';
2
2
  import { defineConfig } from 'vite';
3
3
  import vue from '@vitejs/plugin-vue';
4
4
  import vueJsx from '@vitejs/plugin-vue-jsx';
5
+ import unocss from 'unocss/vite';
6
+ import Components from 'unplugin-vue-components/vite';
5
7
 
6
8
  export default defineConfig({
7
- plugins: [vue(), vueJsx()],
8
9
  resolve: {
9
10
  alias: {
10
11
  '@': fileURLToPath(new URL('./src', import.meta.url))
11
12
  }
12
- }
13
+ },
14
+ plugins: [
15
+ vue(),
16
+ vueJsx(),
17
+ unocss(),
18
+ Components({
19
+ dts: 'src/typings/components.d.ts',
20
+ types: [{ from: 'vue-router', names: ['RouterLink', 'RouterView'] }]
21
+ })
22
+ ]
13
23
  });
@@ -1,86 +0,0 @@
1
- /* color palette from <https://github.com/vuejs/theme> */
2
- :root {
3
- --vt-c-white: #ffffff;
4
- --vt-c-white-soft: #f8f8f8;
5
- --vt-c-white-mute: #f2f2f2;
6
-
7
- --vt-c-black: #181818;
8
- --vt-c-black-soft: #222222;
9
- --vt-c-black-mute: #282828;
10
-
11
- --vt-c-indigo: #2c3e50;
12
-
13
- --vt-c-divider-light-1: rgba(60, 60, 60, 0.29);
14
- --vt-c-divider-light-2: rgba(60, 60, 60, 0.12);
15
- --vt-c-divider-dark-1: rgba(84, 84, 84, 0.65);
16
- --vt-c-divider-dark-2: rgba(84, 84, 84, 0.48);
17
-
18
- --vt-c-text-light-1: var(--vt-c-indigo);
19
- --vt-c-text-light-2: rgba(60, 60, 60, 0.66);
20
- --vt-c-text-dark-1: var(--vt-c-white);
21
- --vt-c-text-dark-2: rgba(235, 235, 235, 0.64);
22
- }
23
-
24
- /* semantic color variables for this project */
25
- :root {
26
- --color-background: var(--vt-c-white);
27
- --color-background-soft: var(--vt-c-white-soft);
28
- --color-background-mute: var(--vt-c-white-mute);
29
-
30
- --color-border: var(--vt-c-divider-light-2);
31
- --color-border-hover: var(--vt-c-divider-light-1);
32
-
33
- --color-heading: var(--vt-c-text-light-1);
34
- --color-text: var(--vt-c-text-light-1);
35
-
36
- --section-gap: 160px;
37
- }
38
-
39
- @media (prefers-color-scheme: dark) {
40
- :root {
41
- --color-background: var(--vt-c-black);
42
- --color-background-soft: var(--vt-c-black-soft);
43
- --color-background-mute: var(--vt-c-black-mute);
44
-
45
- --color-border: var(--vt-c-divider-dark-2);
46
- --color-border-hover: var(--vt-c-divider-dark-1);
47
-
48
- --color-heading: var(--vt-c-text-dark-1);
49
- --color-text: var(--vt-c-text-dark-2);
50
- }
51
- }
52
-
53
- *,
54
- *::before,
55
- *::after {
56
- box-sizing: border-box;
57
- margin: 0;
58
- font-weight: normal;
59
- }
60
-
61
- body {
62
- min-height: 100vh;
63
- color: var(--color-text);
64
- background: var(--color-background);
65
- transition:
66
- color 0.5s,
67
- background-color 0.5s;
68
- line-height: 1.6;
69
- font-family:
70
- Inter,
71
- -apple-system,
72
- BlinkMacSystemFont,
73
- 'Segoe UI',
74
- Roboto,
75
- Oxygen,
76
- Ubuntu,
77
- Cantarell,
78
- 'Fira Sans',
79
- 'Droid Sans',
80
- 'Helvetica Neue',
81
- sans-serif;
82
- font-size: 15px;
83
- text-rendering: optimizeLegibility;
84
- -webkit-font-smoothing: antialiased;
85
- -moz-osx-font-smoothing: grayscale;
86
- }
@@ -1 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 261.76 226.69"><path d="M161.096.001l-30.225 52.351L100.647.001H-.005l130.877 226.688L261.749.001z" fill="#41b883"/><path d="M161.096.001l-30.225 52.351L100.647.001H52.346l78.526 136.01L209.398.001z" fill="#34495e"/></svg>
@@ -1,35 +0,0 @@
1
- @import './base.css';
2
-
3
- #app {
4
- max-width: 1280px;
5
- margin: 0 auto;
6
- padding: 2rem;
7
-
8
- font-weight: normal;
9
- }
10
-
11
- a,
12
- .green {
13
- text-decoration: none;
14
- color: hsla(160, 100%, 37%, 1);
15
- transition: 0.4s;
16
- }
17
-
18
- @media (hover: hover) {
19
- a:hover {
20
- background-color: hsla(160, 100%, 37%, 0.2);
21
- }
22
- }
23
-
24
- @media (min-width: 1024px) {
25
- body {
26
- display: flex;
27
- place-items: center;
28
- }
29
-
30
- #app {
31
- display: grid;
32
- grid-template-columns: 1fr 1fr;
33
- padding: 0 2rem;
34
- }
35
- }
@@ -1,95 +0,0 @@
1
- <script setup lang="ts">
2
- import WelcomeItem from './WelcomeItem.vue';
3
- import DocumentationIcon from './icons/IconDocumentation.vue';
4
- import ToolingIcon from './icons/IconTooling.vue';
5
- import EcosystemIcon from './icons/IconEcosystem.vue';
6
- import CommunityIcon from './icons/IconCommunity.vue';
7
- import SupportIcon from './icons/IconSupport.vue';
8
- </script>
9
-
10
- <template>
11
- <WelcomeItem>
12
- <template #icon>
13
- <DocumentationIcon />
14
- </template>
15
- <template #heading>Documentation</template>
16
-
17
- Vue’s
18
- <a href="https://vuejs.org/" target="_blank" rel="noopener noreferrer">official documentation</a>
19
- provides you with all information you need to get started.
20
- </WelcomeItem>
21
-
22
- <WelcomeItem>
23
- <template #icon>
24
- <ToolingIcon />
25
- </template>
26
- <template #heading>Tooling</template>
27
-
28
- This project is served and bundled with
29
- <a href="https://vitejs.dev/guide/features.html" target="_blank" rel="noopener noreferrer">Vite</a>
30
- . The recommended IDE setup is
31
- <a href="https://code.visualstudio.com/" target="_blank" rel="noopener noreferrer">VSCode</a>
32
- +
33
- <a href="https://github.com/johnsoncodehk/volar" target="_blank" rel="noopener noreferrer">Volar</a>
34
- . If you need to test your components and web pages, check out
35
- <a href="https://www.cypress.io/" target="_blank" rel="noopener noreferrer">Cypress</a>
36
- and
37
- <a href="https://on.cypress.io/component" target="_blank" rel="noopener noreferrer">Cypress Component Testing</a>
38
- .
39
-
40
- <br />
41
-
42
- More instructions are available in
43
- <code>README.md</code>
44
- .
45
- </WelcomeItem>
46
-
47
- <WelcomeItem>
48
- <template #icon>
49
- <EcosystemIcon />
50
- </template>
51
- <template #heading>Ecosystem</template>
52
-
53
- Get official tools and libraries for your project:
54
- <a href="https://pinia.vuejs.org/" target="_blank" rel="noopener noreferrer">Pinia</a>
55
- ,
56
- <a href="https://router.vuejs.org/" target="_blank" rel="noopener noreferrer">Vue Router</a>
57
- ,
58
- <a href="https://test-utils.vuejs.org/" target="_blank" rel="noopener noreferrer">Vue Test Utils</a>
59
- , and
60
- <a href="https://github.com/vuejs/devtools" target="_blank" rel="noopener noreferrer">Vue Dev Tools</a>
61
- . If you need more resources, we suggest paying
62
- <a href="https://github.com/vuejs/awesome-vue" target="_blank" rel="noopener noreferrer">Awesome Vue</a>
63
- a visit.
64
- </WelcomeItem>
65
-
66
- <WelcomeItem>
67
- <template #icon>
68
- <CommunityIcon />
69
- </template>
70
- <template #heading>Community</template>
71
-
72
- Got stuck? Ask your question on
73
- <a href="https://chat.vuejs.org" target="_blank" rel="noopener noreferrer">Vue Land</a>
74
- , our official Discord server, or
75
- <a href="https://stackoverflow.com/questions/tagged/vue.js" target="_blank" rel="noopener noreferrer">
76
- StackOverflow
77
- </a>
78
- . You should also subscribe to
79
- <a href="https://news.vuejs.org" target="_blank" rel="noopener noreferrer">our mailing list</a>
80
- and follow the official
81
- <a href="https://twitter.com/vuejs" target="_blank" rel="noopener noreferrer">@vuejs</a>
82
- twitter account for latest news in the Vue world.
83
- </WelcomeItem>
84
-
85
- <WelcomeItem>
86
- <template #icon>
87
- <SupportIcon />
88
- </template>
89
- <template #heading>Support Vue</template>
90
-
91
- As an independent project, Vue relies on community backing for its sustainability. You can help us by
92
- <a href="https://vuejs.org/sponsor/" target="_blank" rel="noopener noreferrer">becoming a sponsor</a>
93
- .
94
- </WelcomeItem>
95
- </template>
@@ -1,87 +0,0 @@
1
- <template>
2
- <div class="item">
3
- <i>
4
- <slot name="icon"></slot>
5
- </i>
6
- <div class="details">
7
- <h3>
8
- <slot name="heading"></slot>
9
- </h3>
10
- <slot></slot>
11
- </div>
12
- </div>
13
- </template>
14
-
15
- <style scoped>
16
- .item {
17
- margin-top: 2rem;
18
- display: flex;
19
- position: relative;
20
- }
21
-
22
- .details {
23
- flex: 1;
24
- margin-left: 1rem;
25
- }
26
-
27
- i {
28
- display: flex;
29
- place-items: center;
30
- place-content: center;
31
- width: 32px;
32
- height: 32px;
33
-
34
- color: var(--color-text);
35
- }
36
-
37
- h3 {
38
- font-size: 1.2rem;
39
- font-weight: 500;
40
- margin-bottom: 0.4rem;
41
- color: var(--color-heading);
42
- }
43
-
44
- @media (min-width: 1024px) {
45
- .item {
46
- margin-top: 0;
47
- padding: 0.4rem 0 1rem calc(var(--section-gap) / 2);
48
- }
49
-
50
- i {
51
- top: calc(50% - 25px);
52
- left: -26px;
53
- position: absolute;
54
- border: 1px solid var(--color-border);
55
- background: var(--color-background);
56
- border-radius: 8px;
57
- width: 50px;
58
- height: 50px;
59
- }
60
-
61
- .item:before {
62
- content: ' ';
63
- border-left: 1px solid var(--color-border);
64
- position: absolute;
65
- left: 0;
66
- bottom: calc(50% + 25px);
67
- height: calc(50% - 25px);
68
- }
69
-
70
- .item:after {
71
- content: ' ';
72
- border-left: 1px solid var(--color-border);
73
- position: absolute;
74
- left: 0;
75
- top: calc(50% + 25px);
76
- height: calc(50% - 25px);
77
- }
78
-
79
- .item:first-of-type:before {
80
- display: none;
81
- }
82
-
83
- .item:last-of-type:after {
84
- display: none;
85
- }
86
- }
87
- </style>
@@ -1,7 +0,0 @@
1
- <template>
2
- <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="currentColor">
3
- <path
4
- d="M15 4a1 1 0 1 0 0 2V4zm0 11v-1a1 1 0 0 0-1 1h1zm0 4l-.707.707A1 1 0 0 0 16 19h-1zm-4-4l.707-.707A1 1 0 0 0 11 14v1zm-4.707-1.293a1 1 0 0 0-1.414 1.414l1.414-1.414zm-.707.707l-.707-.707.707.707zM9 11v-1a1 1 0 0 0-.707.293L9 11zm-4 0h1a1 1 0 0 0-1-1v1zm0 4H4a1 1 0 0 0 1.707.707L5 15zm10-9h2V4h-2v2zm2 0a1 1 0 0 1 1 1h2a3 3 0 0 0-3-3v2zm1 1v6h2V7h-2zm0 6a1 1 0 0 1-1 1v2a3 3 0 0 0 3-3h-2zm-1 1h-2v2h2v-2zm-3 1v4h2v-4h-2zm1.707 3.293l-4-4-1.414 1.414 4 4 1.414-1.414zM11 14H7v2h4v-2zm-4 0c-.276 0-.525-.111-.707-.293l-1.414 1.414C5.42 15.663 6.172 16 7 16v-2zm-.707 1.121l3.414-3.414-1.414-1.414-3.414 3.414 1.414 1.414zM9 12h4v-2H9v2zm4 0a3 3 0 0 0 3-3h-2a1 1 0 0 1-1 1v2zm3-3V3h-2v6h2zm0-6a3 3 0 0 0-3-3v2a1 1 0 0 1 1 1h2zm-3-3H3v2h10V0zM3 0a3 3 0 0 0-3 3h2a1 1 0 0 1 1-1V0zM0 3v6h2V3H0zm0 6a3 3 0 0 0 3 3v-2a1 1 0 0 1-1-1H0zm3 3h2v-2H3v2zm1-1v4h2v-4H4zm1.707 4.707l.586-.586-1.414-1.414-.586.586 1.414 1.414z"
5
- />
6
- </svg>
7
- </template>
@@ -1,7 +0,0 @@
1
- <template>
2
- <svg xmlns="http://www.w3.org/2000/svg" width="20" height="17" fill="currentColor">
3
- <path
4
- d="M11 2.253a1 1 0 1 0-2 0h2zm-2 13a1 1 0 1 0 2 0H9zm.447-12.167a1 1 0 1 0 1.107-1.666L9.447 3.086zM1 2.253L.447 1.42A1 1 0 0 0 0 2.253h1zm0 13H0a1 1 0 0 0 1.553.833L1 15.253zm8.447.833a1 1 0 1 0 1.107-1.666l-1.107 1.666zm0-14.666a1 1 0 1 0 1.107 1.666L9.447 1.42zM19 2.253h1a1 1 0 0 0-.447-.833L19 2.253zm0 13l-.553.833A1 1 0 0 0 20 15.253h-1zm-9.553-.833a1 1 0 1 0 1.107 1.666L9.447 14.42zM9 2.253v13h2v-13H9zm1.553-.833C9.203.523 7.42 0 5.5 0v2c1.572 0 2.961.431 3.947 1.086l1.107-1.666zM5.5 0C3.58 0 1.797.523.447 1.42l1.107 1.666C2.539 2.431 3.928 2 5.5 2V0zM0 2.253v13h2v-13H0zm1.553 13.833C2.539 15.431 3.928 15 5.5 15v-2c-1.92 0-3.703.523-5.053 1.42l1.107 1.666zM5.5 15c1.572 0 2.961.431 3.947 1.086l1.107-1.666C9.203 13.523 7.42 13 5.5 13v2zm5.053-11.914C11.539 2.431 12.928 2 14.5 2V0c-1.92 0-3.703.523-5.053 1.42l1.107 1.666zM14.5 2c1.573 0 2.961.431 3.947 1.086l1.107-1.666C18.203.523 16.421 0 14.5 0v2zm3.5.253v13h2v-13h-2zm1.553 12.167C18.203 13.523 16.421 13 14.5 13v2c1.573 0 2.961.431 3.947 1.086l1.107-1.666zM14.5 13c-1.92 0-3.703.523-5.053 1.42l1.107 1.666C11.539 15.431 12.928 15 14.5 15v-2z"
5
- />
6
- </svg>
7
- </template>
@@ -1,7 +0,0 @@
1
- <template>
2
- <svg xmlns="http://www.w3.org/2000/svg" width="18" height="20" fill="currentColor">
3
- <path
4
- d="M11.447 8.894a1 1 0 1 0-.894-1.789l.894 1.789zm-2.894-.789a1 1 0 1 0 .894 1.789l-.894-1.789zm0 1.789a1 1 0 1 0 .894-1.789l-.894 1.789zM7.447 7.106a1 1 0 1 0-.894 1.789l.894-1.789zM10 9a1 1 0 1 0-2 0h2zm-2 2.5a1 1 0 1 0 2 0H8zm9.447-5.606a1 1 0 1 0-.894-1.789l.894 1.789zm-2.894-.789a1 1 0 1 0 .894 1.789l-.894-1.789zm2 .789a1 1 0 1 0 .894-1.789l-.894 1.789zm-1.106-2.789a1 1 0 1 0-.894 1.789l.894-1.789zM18 5a1 1 0 1 0-2 0h2zm-2 2.5a1 1 0 1 0 2 0h-2zm-5.447-4.606a1 1 0 1 0 .894-1.789l-.894 1.789zM9 1l.447-.894a1 1 0 0 0-.894 0L9 1zm-2.447.106a1 1 0 1 0 .894 1.789l-.894-1.789zm-6 3a1 1 0 1 0 .894 1.789L.553 4.106zm2.894.789a1 1 0 1 0-.894-1.789l.894 1.789zm-2-.789a1 1 0 1 0-.894 1.789l.894-1.789zm1.106 2.789a1 1 0 1 0 .894-1.789l-.894 1.789zM2 5a1 1 0 1 0-2 0h2zM0 7.5a1 1 0 1 0 2 0H0zm8.553 12.394a1 1 0 1 0 .894-1.789l-.894 1.789zm-1.106-2.789a1 1 0 1 0-.894 1.789l.894-1.789zm1.106 1a1 1 0 1 0 .894 1.789l-.894-1.789zm2.894.789a1 1 0 1 0-.894-1.789l.894 1.789zM8 19a1 1 0 1 0 2 0H8zm2-2.5a1 1 0 1 0-2 0h2zm-7.447.394a1 1 0 1 0 .894-1.789l-.894 1.789zM1 15H0a1 1 0 0 0 .553.894L1 15zm1-2.5a1 1 0 1 0-2 0h2zm12.553 2.606a1 1 0 1 0 .894 1.789l-.894-1.789zM17 15l.447.894A1 1 0 0 0 18 15h-1zm1-2.5a1 1 0 1 0-2 0h2zm-7.447-5.394l-2 1 .894 1.789 2-1-.894-1.789zm-1.106 1l-2-1-.894 1.789 2 1 .894-1.789zM8 9v2.5h2V9H8zm8.553-4.894l-2 1 .894 1.789 2-1-.894-1.789zm.894 0l-2-1-.894 1.789 2 1 .894-1.789zM16 5v2.5h2V5h-2zm-4.553-3.894l-2-1-.894 1.789 2 1 .894-1.789zm-2.894-1l-2 1 .894 1.789 2-1L8.553.106zM1.447 5.894l2-1-.894-1.789-2 1 .894 1.789zm-.894 0l2 1 .894-1.789-2-1-.894 1.789zM0 5v2.5h2V5H0zm9.447 13.106l-2-1-.894 1.789 2 1 .894-1.789zm0 1.789l2-1-.894-1.789-2 1 .894 1.789zM10 19v-2.5H8V19h2zm-6.553-3.894l-2-1-.894 1.789 2 1 .894-1.789zM2 15v-2.5H0V15h2zm13.447 1.894l2-1-.894-1.789-2 1 .894 1.789zM18 15v-2.5h-2V15h2z"
5
- />
6
- </svg>
7
- </template>
@@ -1,7 +0,0 @@
1
- <template>
2
- <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="currentColor">
3
- <path
4
- d="M10 3.22l-.61-.6a5.5 5.5 0 0 0-7.666.105 5.5 5.5 0 0 0-.114 7.665L10 18.78l8.39-8.4a5.5 5.5 0 0 0-.114-7.665 5.5 5.5 0 0 0-7.666-.105l-.61.61z"
5
- />
6
- </svg>
7
- </template>
@@ -1,19 +0,0 @@
1
- <!-- This icon is from <https://github.com/Templarian/MaterialDesign>, distributed under Apache 2.0 (https://www.apache.org/licenses/LICENSE-2.0) license-->
2
- <template>
3
- <svg
4
- xmlns="http://www.w3.org/2000/svg"
5
- xmlns:xlink="http://www.w3.org/1999/xlink"
6
- aria-hidden="true"
7
- role="img"
8
- class="iconify iconify--mdi"
9
- width="24"
10
- height="24"
11
- preserveAspectRatio="xMidYMid meet"
12
- viewBox="0 0 24 24"
13
- >
14
- <path
15
- d="M20 18v-4h-3v1h-2v-1H9v1H7v-1H4v4h16M6.33 8l-1.74 4H7v-1h2v1h6v-1h2v1h2.41l-1.74-4H6.33M9 5v1h6V5H9m12.84 7.61c.1.22.16.48.16.8V18c0 .53-.21 1-.6 1.41c-.4.4-.85.59-1.4.59H4c-.55 0-1-.19-1.4-.59C2.21 19 2 18.53 2 18v-4.59c0-.32.06-.58.16-.8L4.5 7.22C4.84 6.41 5.45 6 6.33 6H7V5c0-.55.18-1 .57-1.41C7.96 3.2 8.44 3 9 3h6c.56 0 1.04.2 1.43.59c.39.41.57.86.57 1.41v1h.67c.88 0 1.49.41 1.83 1.22l2.34 5.39z"
16
- fill="currentColor"
17
- ></path>
18
- </svg>
19
- </template>
@@ -1,15 +0,0 @@
1
- <template>
2
- <div class="about">
3
- <h1>This is an about page</h1>
4
- </div>
5
- </template>
6
-
7
- <style>
8
- @media (min-width: 1024px) {
9
- .about {
10
- min-height: 100vh;
11
- display: flex;
12
- align-items: center;
13
- }
14
- }
15
- </style>
@@ -1,9 +0,0 @@
1
- <script setup lang="ts">
2
- import TheWelcome from '../components/TheWelcome.vue';
3
- </script>
4
-
5
- <template>
6
- <main>
7
- <TheWelcome />
8
- </main>
9
- </template>