From b20d8866e228fe69d6a8087bee6bfb05c11f05da Mon Sep 17 00:00:00 2001 From: Florian Sylvain Date: Tue, 8 Oct 2024 21:21:38 +0200 Subject: [PATCH] feat: initial commit --- .eslintrc.cjs | 15 ++++ .gitignore | 30 +++++++ .prettierrc.json | 8 ++ .vscode/extensions.json | 7 ++ README.md | 39 +++++++++ bun.lockb | Bin 0 -> 141755 bytes env.d.ts | 1 + index.html | 13 +++ package.json | 39 +++++++++ public/favicon.ico | Bin 0 -> 4286 bytes src/App.vue | 85 ++++++++++++++++++++ src/assets/base.css | 86 ++++++++++++++++++++ src/assets/logo.svg | 1 + src/assets/main.css | 35 ++++++++ src/components/HelloWorld.vue | 41 ++++++++++ src/components/TheWelcome.vue | 88 +++++++++++++++++++++ src/components/WelcomeItem.vue | 87 ++++++++++++++++++++ src/components/icons/IconCommunity.vue | 7 ++ src/components/icons/IconDocumentation.vue | 7 ++ src/components/icons/IconEcosystem.vue | 7 ++ src/components/icons/IconSupport.vue | 7 ++ src/components/icons/IconTooling.vue | 19 +++++ src/main.ts | 14 ++++ src/router/index.ts | 23 ++++++ src/stores/counter.ts | 12 +++ src/views/AboutView.vue | 15 ++++ src/views/HomeView.vue | 9 +++ tsconfig.app.json | 14 ++++ tsconfig.json | 11 +++ tsconfig.node.json | 13 +++ vite.config.ts | 16 ++++ 31 files changed, 749 insertions(+) create mode 100644 .eslintrc.cjs create mode 100644 .gitignore create mode 100644 .prettierrc.json create mode 100644 .vscode/extensions.json create mode 100644 README.md create mode 100644 bun.lockb create mode 100644 env.d.ts create mode 100644 index.html create mode 100644 package.json create mode 100644 public/favicon.ico create mode 100644 src/App.vue create mode 100644 src/assets/base.css create mode 100644 src/assets/logo.svg create mode 100644 src/assets/main.css create mode 100644 src/components/HelloWorld.vue create mode 100644 src/components/TheWelcome.vue create mode 100644 src/components/WelcomeItem.vue create mode 100644 src/components/icons/IconCommunity.vue create mode 100644 src/components/icons/IconDocumentation.vue create mode 100644 src/components/icons/IconEcosystem.vue create mode 100644 src/components/icons/IconSupport.vue create mode 100644 src/components/icons/IconTooling.vue create mode 100644 src/main.ts create mode 100644 src/router/index.ts create mode 100644 src/stores/counter.ts create mode 100644 src/views/AboutView.vue create mode 100644 src/views/HomeView.vue create mode 100644 tsconfig.app.json create mode 100644 tsconfig.json create mode 100644 tsconfig.node.json create mode 100644 vite.config.ts diff --git a/.eslintrc.cjs b/.eslintrc.cjs new file mode 100644 index 0000000..6f40582 --- /dev/null +++ b/.eslintrc.cjs @@ -0,0 +1,15 @@ +/* eslint-env node */ +require('@rushstack/eslint-patch/modern-module-resolution') + +module.exports = { + root: true, + 'extends': [ + 'plugin:vue/vue3-essential', + 'eslint:recommended', + '@vue/eslint-config-typescript', + '@vue/eslint-config-prettier/skip-formatting' + ], + parserOptions: { + ecmaVersion: 'latest' + } +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..8ee54e8 --- /dev/null +++ b/.gitignore @@ -0,0 +1,30 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +.DS_Store +dist +dist-ssr +coverage +*.local + +/cypress/videos/ +/cypress/screenshots/ + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? + +*.tsbuildinfo diff --git a/.prettierrc.json b/.prettierrc.json new file mode 100644 index 0000000..44ed28b --- /dev/null +++ b/.prettierrc.json @@ -0,0 +1,8 @@ +{ + "$schema": "https://json.schemastore.org/prettierrc", + "semi": false, + "singleQuote": true, + "printWidth": 100, + "trailingComma": "none", + "useTabs": true +} diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..93ea3e7 --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,7 @@ +{ + "recommendations": [ + "Vue.volar", + "dbaeumer.vscode-eslint", + "esbenp.prettier-vscode" + ] +} diff --git a/README.md b/README.md new file mode 100644 index 0000000..9c1a073 --- /dev/null +++ b/README.md @@ -0,0 +1,39 @@ +# snippets-manager-front + +This template should help get you started developing with Vue 3 in Vite. + +## Recommended IDE Setup + +[VSCode](https://code.visualstudio.com/) + [Volar](https://marketplace.visualstudio.com/items?itemName=Vue.volar) (and disable Vetur). + +## Type Support for `.vue` Imports in TS + +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 [Volar](https://marketplace.visualstudio.com/items?itemName=Vue.volar) to make the TypeScript language service aware of `.vue` types. + +## Customize configuration + +See [Vite Configuration Reference](https://vitejs.dev/config/). + +## Project Setup + +```sh +bun install +``` + +### Compile and Hot-Reload for Development + +```sh +bun dev +``` + +### Type-Check, Compile and Minify for Production + +```sh +bun build +``` + +### Lint with [ESLint](https://eslint.org/) + +```sh +bun lint +``` diff --git a/bun.lockb b/bun.lockb new file mode 100644 index 0000000000000000000000000000000000000000..a26b026eaad106aefe6e2c31b1a930e022a3b105 GIT binary patch literal 141755 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 literal 0 HcmV?d00001 diff --git a/env.d.ts b/env.d.ts new file mode 100644 index 0000000..11f02fe --- /dev/null +++ b/env.d.ts @@ -0,0 +1 @@ +/// diff --git a/index.html b/index.html new file mode 100644 index 0000000..dec5f90 --- /dev/null +++ b/index.html @@ -0,0 +1,13 @@ + + + + + + + Vite App + + +
+ + + diff --git a/package.json b/package.json new file mode 100644 index 0000000..a0cdb19 --- /dev/null +++ b/package.json @@ -0,0 +1,39 @@ +{ + "name": "snippets-manager-front", + "version": "0.0.0", + "private": true, + "type": "module", + "scripts": { + "dev": "vite", + "build": "run-p type-check \"build-only {@}\" --", + "preview": "vite preview", + "build-only": "vite build", + "type-check": "vue-tsc --build --force", + "lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore", + "format": "prettier --write src/" + }, + "dependencies": { + "pinia": "^2.1.7", + "vue": "^3.4.29", + "vue-router": "^4.3.3" + }, + "devDependencies": { + "@rushstack/eslint-patch": "^1.8.0", + "@tsconfig/node20": "^20.1.4", + "@types/jsdom": "^21.1.7", + "@types/node": "^20.14.5", + "@vitejs/plugin-vue": "^5.0.5", + "@vue/eslint-config-prettier": "^9.0.0", + "@vue/eslint-config-typescript": "^13.0.0", + "@vue/test-utils": "^2.4.6", + "@vue/tsconfig": "^0.5.1", + "eslint": "^8.57.0", + "eslint-plugin-vue": "^9.23.0", + "jsdom": "^24.1.0", + "npm-run-all2": "^6.2.0", + "prettier": "^3.2.5", + "typescript": "~5.4.0", + "vite": "^5.3.1", + "vue-tsc": "^2.0.21" + } +} diff --git a/public/favicon.ico b/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..df36fcfb72584e00488330b560ebcf34a41c64c2 GIT binary patch literal 4286 zcmds*O-Phc6o&64GDVCEQHxsW(p4>LW*W<827=Unuo8sGpRux(DN@jWP-e29Wl%wj zY84_aq9}^Am9-cWTD5GGEo#+5Fi2wX_P*bo+xO!)p*7B;iKlbFd(U~_d(U?#hLj56 zPhFkj-|A6~Qk#@g^#D^U0XT1cu=c-vu1+SElX9NR;kzAUV(q0|dl0|%h|dI$%VICy zJnu2^L*Te9JrJMGh%-P79CL0}dq92RGU6gI{v2~|)p}sG5x0U*z<8U;Ij*hB9z?ei z@g6Xq-pDoPl=MANPiR7%172VA%r)kevtV-_5H*QJKFmd;8yA$98zCxBZYXTNZ#QFk2(TX0;Y2dt&WitL#$96|gJY=3xX zpCoi|YNzgO3R`f@IiEeSmKrPSf#h#Qd<$%Ej^RIeeYfsxhPMOG`S`Pz8q``=511zm zAm)MX5AV^5xIWPyEu7u>qYs?pn$I4nL9J!=K=SGlKLXpE<5x+2cDTXq?brj?n6sp= zphe9;_JHf40^9~}9i08r{XM$7HB!`{Ys~TK0kx<}ZQng`UPvH*11|q7&l9?@FQz;8 zx!=3<4seY*%=OlbCbcae?5^V_}*K>Uo6ZWV8mTyE^B=DKy7-sdLYkR5Z?paTgK-zyIkKjIcpyO z{+uIt&YSa_$QnN_@t~L014dyK(fOOo+W*MIxbA6Ndgr=Y!f#Tokqv}n<7-9qfHkc3 z=>a|HWqcX8fzQCT=dqVbogRq!-S>H%yA{1w#2Pn;=e>JiEj7Hl;zdt-2f+j2%DeVD zsW0Ab)ZK@0cIW%W7z}H{&~yGhn~D;aiP4=;m-HCo`BEI+Kd6 z={Xwx{TKxD#iCLfl2vQGDitKtN>z|-AdCN|$jTFDg0m3O`WLD4_s#$S literal 0 HcmV?d00001 diff --git a/src/App.vue b/src/App.vue new file mode 100644 index 0000000..703c777 --- /dev/null +++ b/src/App.vue @@ -0,0 +1,85 @@ + + + + + diff --git a/src/assets/base.css b/src/assets/base.css new file mode 100644 index 0000000..8816868 --- /dev/null +++ b/src/assets/base.css @@ -0,0 +1,86 @@ +/* color palette from */ +:root { + --vt-c-white: #ffffff; + --vt-c-white-soft: #f8f8f8; + --vt-c-white-mute: #f2f2f2; + + --vt-c-black: #181818; + --vt-c-black-soft: #222222; + --vt-c-black-mute: #282828; + + --vt-c-indigo: #2c3e50; + + --vt-c-divider-light-1: rgba(60, 60, 60, 0.29); + --vt-c-divider-light-2: rgba(60, 60, 60, 0.12); + --vt-c-divider-dark-1: rgba(84, 84, 84, 0.65); + --vt-c-divider-dark-2: rgba(84, 84, 84, 0.48); + + --vt-c-text-light-1: var(--vt-c-indigo); + --vt-c-text-light-2: rgba(60, 60, 60, 0.66); + --vt-c-text-dark-1: var(--vt-c-white); + --vt-c-text-dark-2: rgba(235, 235, 235, 0.64); +} + +/* semantic color variables for this project */ +:root { + --color-background: var(--vt-c-white); + --color-background-soft: var(--vt-c-white-soft); + --color-background-mute: var(--vt-c-white-mute); + + --color-border: var(--vt-c-divider-light-2); + --color-border-hover: var(--vt-c-divider-light-1); + + --color-heading: var(--vt-c-text-light-1); + --color-text: var(--vt-c-text-light-1); + + --section-gap: 160px; +} + +@media (prefers-color-scheme: dark) { + :root { + --color-background: var(--vt-c-black); + --color-background-soft: var(--vt-c-black-soft); + --color-background-mute: var(--vt-c-black-mute); + + --color-border: var(--vt-c-divider-dark-2); + --color-border-hover: var(--vt-c-divider-dark-1); + + --color-heading: var(--vt-c-text-dark-1); + --color-text: var(--vt-c-text-dark-2); + } +} + +*, +*::before, +*::after { + box-sizing: border-box; + margin: 0; + font-weight: normal; +} + +body { + min-height: 100vh; + color: var(--color-text); + background: var(--color-background); + transition: + color 0.5s, + background-color 0.5s; + line-height: 1.6; + font-family: + Inter, + -apple-system, + BlinkMacSystemFont, + 'Segoe UI', + Roboto, + Oxygen, + Ubuntu, + Cantarell, + 'Fira Sans', + 'Droid Sans', + 'Helvetica Neue', + sans-serif; + font-size: 15px; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} diff --git a/src/assets/logo.svg b/src/assets/logo.svg new file mode 100644 index 0000000..7565660 --- /dev/null +++ b/src/assets/logo.svg @@ -0,0 +1 @@ + diff --git a/src/assets/main.css b/src/assets/main.css new file mode 100644 index 0000000..36fb845 --- /dev/null +++ b/src/assets/main.css @@ -0,0 +1,35 @@ +@import './base.css'; + +#app { + max-width: 1280px; + margin: 0 auto; + padding: 2rem; + font-weight: normal; +} + +a, +.green { + text-decoration: none; + color: hsla(160, 100%, 37%, 1); + transition: 0.4s; + padding: 3px; +} + +@media (hover: hover) { + a:hover { + background-color: hsla(160, 100%, 37%, 0.2); + } +} + +@media (min-width: 1024px) { + body { + display: flex; + place-items: center; + } + + #app { + display: grid; + grid-template-columns: 1fr 1fr; + padding: 0 2rem; + } +} diff --git a/src/components/HelloWorld.vue b/src/components/HelloWorld.vue new file mode 100644 index 0000000..38d821e --- /dev/null +++ b/src/components/HelloWorld.vue @@ -0,0 +1,41 @@ + + + + + diff --git a/src/components/TheWelcome.vue b/src/components/TheWelcome.vue new file mode 100644 index 0000000..49d8f73 --- /dev/null +++ b/src/components/TheWelcome.vue @@ -0,0 +1,88 @@ + + + diff --git a/src/components/WelcomeItem.vue b/src/components/WelcomeItem.vue new file mode 100644 index 0000000..6d7086a --- /dev/null +++ b/src/components/WelcomeItem.vue @@ -0,0 +1,87 @@ + + + diff --git a/src/components/icons/IconCommunity.vue b/src/components/icons/IconCommunity.vue new file mode 100644 index 0000000..2dc8b05 --- /dev/null +++ b/src/components/icons/IconCommunity.vue @@ -0,0 +1,7 @@ + diff --git a/src/components/icons/IconDocumentation.vue b/src/components/icons/IconDocumentation.vue new file mode 100644 index 0000000..6d4791c --- /dev/null +++ b/src/components/icons/IconDocumentation.vue @@ -0,0 +1,7 @@ + diff --git a/src/components/icons/IconEcosystem.vue b/src/components/icons/IconEcosystem.vue new file mode 100644 index 0000000..c3a4f07 --- /dev/null +++ b/src/components/icons/IconEcosystem.vue @@ -0,0 +1,7 @@ + diff --git a/src/components/icons/IconSupport.vue b/src/components/icons/IconSupport.vue new file mode 100644 index 0000000..7452834 --- /dev/null +++ b/src/components/icons/IconSupport.vue @@ -0,0 +1,7 @@ + diff --git a/src/components/icons/IconTooling.vue b/src/components/icons/IconTooling.vue new file mode 100644 index 0000000..660598d --- /dev/null +++ b/src/components/icons/IconTooling.vue @@ -0,0 +1,19 @@ + + diff --git a/src/main.ts b/src/main.ts new file mode 100644 index 0000000..5dcad83 --- /dev/null +++ b/src/main.ts @@ -0,0 +1,14 @@ +import './assets/main.css' + +import { createApp } from 'vue' +import { createPinia } from 'pinia' + +import App from './App.vue' +import router from './router' + +const app = createApp(App) + +app.use(createPinia()) +app.use(router) + +app.mount('#app') diff --git a/src/router/index.ts b/src/router/index.ts new file mode 100644 index 0000000..a49ae50 --- /dev/null +++ b/src/router/index.ts @@ -0,0 +1,23 @@ +import { createRouter, createWebHistory } from 'vue-router' +import HomeView from '../views/HomeView.vue' + +const router = createRouter({ + history: createWebHistory(import.meta.env.BASE_URL), + routes: [ + { + path: '/', + name: 'home', + component: HomeView + }, + { + path: '/about', + name: 'about', + // route level code-splitting + // this generates a separate chunk (About.[hash].js) for this route + // which is lazy-loaded when the route is visited. + component: () => import('../views/AboutView.vue') + } + ] +}) + +export default router diff --git a/src/stores/counter.ts b/src/stores/counter.ts new file mode 100644 index 0000000..b6757ba --- /dev/null +++ b/src/stores/counter.ts @@ -0,0 +1,12 @@ +import { ref, computed } from 'vue' +import { defineStore } from 'pinia' + +export const useCounterStore = defineStore('counter', () => { + const count = ref(0) + const doubleCount = computed(() => count.value * 2) + function increment() { + count.value++ + } + + return { count, doubleCount, increment } +}) diff --git a/src/views/AboutView.vue b/src/views/AboutView.vue new file mode 100644 index 0000000..75181fa --- /dev/null +++ b/src/views/AboutView.vue @@ -0,0 +1,15 @@ + + + diff --git a/src/views/HomeView.vue b/src/views/HomeView.vue new file mode 100644 index 0000000..6951fa2 --- /dev/null +++ b/src/views/HomeView.vue @@ -0,0 +1,9 @@ + + + diff --git a/tsconfig.app.json b/tsconfig.app.json new file mode 100644 index 0000000..e14c754 --- /dev/null +++ b/tsconfig.app.json @@ -0,0 +1,14 @@ +{ + "extends": "@vue/tsconfig/tsconfig.dom.json", + "include": ["env.d.ts", "src/**/*", "src/**/*.vue"], + "exclude": ["src/**/__tests__/*"], + "compilerOptions": { + "composite": true, + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo", + + "baseUrl": ".", + "paths": { + "@/*": ["./src/*"] + } + } +} diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..ae91ebf --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,11 @@ +{ + "files": [], + "references": [ + { + "path": "./tsconfig.node.json" + }, + { + "path": "./tsconfig.app.json" + } + ] +} diff --git a/tsconfig.node.json b/tsconfig.node.json new file mode 100644 index 0000000..f9a028d --- /dev/null +++ b/tsconfig.node.json @@ -0,0 +1,13 @@ +{ + "extends": "@tsconfig/node20/tsconfig.json", + "include": ["vite.config.*", "cypress.config.*", "nightwatch.conf.*", "playwright.config.*"], + "compilerOptions": { + "composite": true, + "noEmit": true, + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo", + + "module": "ESNext", + "moduleResolution": "Bundler", + "types": ["node"] + } +} diff --git a/vite.config.ts b/vite.config.ts new file mode 100644 index 0000000..5c45e1d --- /dev/null +++ b/vite.config.ts @@ -0,0 +1,16 @@ +import { fileURLToPath, URL } from 'node:url' + +import { defineConfig } from 'vite' +import vue from '@vitejs/plugin-vue' + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [ + vue(), + ], + resolve: { + alias: { + '@': fileURLToPath(new URL('./src', import.meta.url)) + } + } +})