From 691b3157ffe6dddc252c7634534b077843c12f38 Mon Sep 17 00:00:00 2001 From: Leon Liu Date: Tue, 31 Dec 2024 17:24:01 +0000 Subject: [PATCH] init --- .editorconfig | 6 ++ .envrc | 1 + .gitignore | 32 +++++++ .prettierrc.json | 7 ++ README.md | 39 +++++++++ bun.lockb | Bin 0 -> 137646 bytes env.d.ts | 1 + eslint.config.js | 19 +++++ flake.lock | 61 +++++++++++++ flake.nix | 20 +++++ index.html | 13 +++ package.json | 35 ++++++++ public/favicon.ico | Bin 0 -> 4286 bytes src/App.vue | 47 +++++++++++ src/assets/base.css | 86 +++++++++++++++++++ src/assets/logo.svg | 1 + src/assets/main.css | 35 ++++++++ src/components/HelloWorld.vue | 41 +++++++++ src/components/TheWelcome.vue | 94 +++++++++++++++++++++ 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 | 11 +++ src/stores/counter.ts | 12 +++ tsconfig.app.json | 12 +++ tsconfig.json | 11 +++ tsconfig.node.json | 18 ++++ vite.config.ts | 18 ++++ 31 files changed, 754 insertions(+) create mode 100644 .editorconfig create mode 100644 .envrc create mode 100644 .gitignore create mode 100644 .prettierrc.json create mode 100644 README.md create mode 100755 bun.lockb create mode 100644 env.d.ts create mode 100644 eslint.config.js create mode 100644 flake.lock create mode 100644 flake.nix 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/stores/counter.ts 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/.editorconfig b/.editorconfig new file mode 100644 index 0000000..ecea360 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,6 @@ +[*.{js,jsx,mjs,cjs,ts,tsx,mts,cts,vue}] +charset = utf-8 +indent_size = 2 +indent_style = space +insert_final_newline = true +trim_trailing_whitespace = true diff --git a/.envrc b/.envrc new file mode 100644 index 0000000..3550a30 --- /dev/null +++ b/.envrc @@ -0,0 +1 @@ +use flake diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..1a12089 --- /dev/null +++ b/.gitignore @@ -0,0 +1,32 @@ +.direnv +.vscode +# 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..17a23d0 --- /dev/null +++ b/.prettierrc.json @@ -0,0 +1,7 @@ + +{ + "$schema": "https://json.schemastore.org/prettierrc", + "semi": false, + "singleQuote": true, + "printWidth": 100 +} diff --git a/README.md b/README.md new file mode 100644 index 0000000..ee5d5ae --- /dev/null +++ b/README.md @@ -0,0 +1,39 @@ +# poe2-loot-filter-vue + +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://vite.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 run build +``` + +### Lint with [ESLint](https://eslint.org/) + +```sh +bun lint +``` diff --git a/bun.lockb b/bun.lockb new file mode 100755 index 0000000000000000000000000000000000000000..3ac3d0b0d751b41d94b8e46d82a69209ac7cd146 GIT binary patch literal 137646 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 X$&{=V;KMa!;<@Gc6Py1Z{_p<*_Q93Y 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/eslint.config.js b/eslint.config.js new file mode 100644 index 0000000..3009bb4 --- /dev/null +++ b/eslint.config.js @@ -0,0 +1,19 @@ +import pluginVue from 'eslint-plugin-vue' +import vueTsEslintConfig from '@vue/eslint-config-typescript' +import skipFormatting from '@vue/eslint-config-prettier/skip-formatting' + +export default [ + { + name: 'app/files-to-lint', + files: ['**/*.{ts,mts,tsx,vue}'], + }, + + { + name: 'app/files-to-ignore', + ignores: ['**/dist/**', '**/dist-ssr/**', '**/coverage/**'], + }, + + ...pluginVue.configs['flat/essential'], + ...vueTsEslintConfig(), + skipFormatting, +] diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..53a843f --- /dev/null +++ b/flake.lock @@ -0,0 +1,61 @@ +{ + "nodes": { + "flake-utils": { + "inputs": { + "systems": "systems" + }, + "locked": { + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1735471104, + "narHash": "sha256-0q9NGQySwDQc7RhAV2ukfnu7Gxa5/ybJ2ANT8DQrQrs=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "88195a94f390381c6afcdaa933c2f6ff93959cb4", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "flake-utils": "flake-utils", + "nixpkgs": "nixpkgs" + } + }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..a95310d --- /dev/null +++ b/flake.nix @@ -0,0 +1,20 @@ +{ + description = "A Nix flake using nixos-unstable with a development shell"; + + inputs = { + nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; # Use the unstable channel + flake-utils.url = "github:numtide/flake-utils"; # Utility for handling multiple systems + }; + + outputs = { nixpkgs, flake-utils, ... }: + flake-utils.lib.eachDefaultSystem (system: let + pkgs = import nixpkgs { inherit system; }; # Import packages for the specified system + in { + devShell = pkgs.mkShell { + name = "dev-shell"; # Name of the development shell + buildInputs = [ + pkgs.bun + ]; + }; + }); +} diff --git a/index.html b/index.html new file mode 100644 index 0000000..9e5fc8f --- /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..1936e90 --- /dev/null +++ b/package.json @@ -0,0 +1,35 @@ +{ + "name": "poe2-loot-filter-vue", + "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", + "lint": "eslint . --fix", + "format": "prettier --write src/" + }, + "dependencies": { + "pinia": "^2.3.0", + "vue": "^3.5.13" + }, + "devDependencies": { + "@tsconfig/node22": "^22.0.0", + "@types/node": "^22.10.2", + "@vitejs/plugin-vue": "^5.2.1", + "@vue/eslint-config-prettier": "^10.1.0", + "@vue/eslint-config-typescript": "^14.1.3", + "@vue/tsconfig": "^0.7.0", + "eslint": "^9.14.0", + "eslint-plugin-vue": "^9.30.0", + "npm-run-all2": "^7.0.2", + "prettier": "^3.3.3", + "typescript": "~5.6.3", + "vite": "^6.0.5", + "vite-plugin-vue-devtools": "^7.6.8", + "vue-tsc": "^2.1.10" + } +} 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..d05208d --- /dev/null +++ b/src/App.vue @@ -0,0 +1,47 @@ + + + + + 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..a2eabd1 --- /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..674b490 --- /dev/null +++ b/src/components/TheWelcome.vue @@ -0,0 +1,94 @@ + + + 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..48dad43 --- /dev/null +++ b/src/main.ts @@ -0,0 +1,11 @@ +import './assets/main.css' + +import { createApp } from 'vue' +import { createPinia } from 'pinia' +import App from './App.vue' + +const app = createApp(App) + +app.use(createPinia()) + +app.mount('#app') 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/tsconfig.app.json b/tsconfig.app.json new file mode 100644 index 0000000..913b8f2 --- /dev/null +++ b/tsconfig.app.json @@ -0,0 +1,12 @@ +{ + "extends": "@vue/tsconfig/tsconfig.dom.json", + "include": ["env.d.ts", "src/**/*", "src/**/*.vue"], + "exclude": ["src/**/__tests__/*"], + "compilerOptions": { + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo", + + "paths": { + "@/*": ["./src/*"] + } + } +} diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..66b5e57 --- /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..4c399c2 --- /dev/null +++ b/tsconfig.node.json @@ -0,0 +1,18 @@ +{ + "extends": "@tsconfig/node22/tsconfig.json", + "include": [ + "vite.config.*", + "vitest.config.*", + "cypress.config.*", + "nightwatch.conf.*", + "playwright.config.*" + ], + "compilerOptions": { + "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..4217010 --- /dev/null +++ b/vite.config.ts @@ -0,0 +1,18 @@ +import { fileURLToPath, URL } from 'node:url' + +import { defineConfig } from 'vite' +import vue from '@vitejs/plugin-vue' +import vueDevTools from 'vite-plugin-vue-devtools' + +// https://vite.dev/config/ +export default defineConfig({ + plugins: [ + vue(), + vueDevTools(), + ], + resolve: { + alias: { + '@': fileURLToPath(new URL('./src', import.meta.url)) + }, + }, +})