From 866ceafb3ef174ff51691a1e387126862651b588 Mon Sep 17 00:00:00 2001 From: Sergey Elpashev Date: Tue, 7 Jan 2025 16:01:50 +0300 Subject: [PATCH] Initial --- .gitignore | 24 +++++++++++++++ README.md | 50 +++++++++++++++++++++++++++++++ bun.lockb | Bin 0 -> 106152 bytes eslint.config.js | 28 ++++++++++++++++++ index.html | 13 +++++++++ package.json | 32 ++++++++++++++++++++ postcss.config.js | 6 ++++ public/vite.svg | 1 + src/App.css | 42 ++++++++++++++++++++++++++ src/App.tsx | 35 ++++++++++++++++++++++ src/assets/react.svg | 1 + src/index.css | 68 +++++++++++++++++++++++++++++++++++++++++++ src/main.tsx | 10 +++++++ src/vite-env.d.ts | 1 + tailwind.config.js | 12 ++++++++ tsconfig.app.json | 26 +++++++++++++++++ tsconfig.json | 7 +++++ tsconfig.node.json | 24 +++++++++++++++ vite.config.ts | 7 +++++ 19 files changed, 387 insertions(+) create mode 100644 .gitignore create mode 100644 README.md create mode 100755 bun.lockb create mode 100644 eslint.config.js create mode 100644 index.html create mode 100644 package.json create mode 100644 postcss.config.js create mode 100644 public/vite.svg create mode 100644 src/App.css create mode 100644 src/App.tsx create mode 100644 src/assets/react.svg create mode 100644 src/index.css create mode 100644 src/main.tsx create mode 100644 src/vite-env.d.ts create mode 100644 tailwind.config.js 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/.gitignore b/.gitignore new file mode 100644 index 0000000..a547bf3 --- /dev/null +++ b/.gitignore @@ -0,0 +1,24 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/README.md b/README.md new file mode 100644 index 0000000..74872fd --- /dev/null +++ b/README.md @@ -0,0 +1,50 @@ +# React + TypeScript + Vite + +This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules. + +Currently, two official plugins are available: + +- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/README.md) uses [Babel](https://babeljs.io/) for Fast Refresh +- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh + +## Expanding the ESLint configuration + +If you are developing a production application, we recommend updating the configuration to enable type aware lint rules: + +- Configure the top-level `parserOptions` property like this: + +```js +export default tseslint.config({ + languageOptions: { + // other options... + parserOptions: { + project: ['./tsconfig.node.json', './tsconfig.app.json'], + tsconfigRootDir: import.meta.dirname, + }, + }, +}) +``` + +- Replace `tseslint.configs.recommended` to `tseslint.configs.recommendedTypeChecked` or `tseslint.configs.strictTypeChecked` +- Optionally add `...tseslint.configs.stylisticTypeChecked` +- Install [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) and update the config: + +```js +// eslint.config.js +import react from 'eslint-plugin-react' + +export default tseslint.config({ + // Set the react version + settings: { react: { version: '18.3' } }, + plugins: { + // Add the react plugin + react, + }, + rules: { + // other rules... + // Enable its recommended rules + ...react.configs.recommended.rules, + ...react.configs['jsx-runtime'].rules, + }, +}) +``` diff --git a/bun.lockb b/bun.lockb new file mode 100755 index 0000000000000000000000000000000000000000..5cc1c4a61e9d952903c8a32d61fc3168d43da2cf GIT binary patch literal 106152 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 z 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 z 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 + + + + + + Vite + React + TS + + +
+ + + diff --git a/package.json b/package.json new file mode 100644 index 0000000..3322dfa --- /dev/null +++ b/package.json @@ -0,0 +1,32 @@ +{ + "name": "nwtierlist", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc -b && vite build", + "lint": "eslint .", + "preview": "vite preview" + }, + "dependencies": { + "react": "^18.3.1", + "react-dom": "^18.3.1" + }, + "devDependencies": { + "@eslint/js": "^9.17.0", + "@types/react": "^18.3.18", + "@types/react-dom": "^18.3.5", + "@vitejs/plugin-react-swc": "^3.5.0", + "autoprefixer": "^10.4.20", + "eslint": "^9.17.0", + "eslint-plugin-react-hooks": "^5.0.0", + "eslint-plugin-react-refresh": "^0.4.16", + "globals": "^15.14.0", + "postcss": "^8.4.49", + "tailwindcss": "^3.4.17", + "typescript": "~5.6.2", + "typescript-eslint": "^8.18.2", + "vite": "^6.0.5" + } +} diff --git a/postcss.config.js b/postcss.config.js new file mode 100644 index 0000000..2e7af2b --- /dev/null +++ b/postcss.config.js @@ -0,0 +1,6 @@ +export default { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +} diff --git a/public/vite.svg b/public/vite.svg new file mode 100644 index 0000000..e7b8dfb --- /dev/null +++ b/public/vite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/App.css b/src/App.css new file mode 100644 index 0000000..b9d355d --- /dev/null +++ b/src/App.css @@ -0,0 +1,42 @@ +#root { + max-width: 1280px; + margin: 0 auto; + padding: 2rem; + text-align: center; +} + +.logo { + height: 6em; + padding: 1.5em; + will-change: filter; + transition: filter 300ms; +} +.logo:hover { + filter: drop-shadow(0 0 2em #646cffaa); +} +.logo.react:hover { + filter: drop-shadow(0 0 2em #61dafbaa); +} + +@keyframes logo-spin { + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +} + +@media (prefers-reduced-motion: no-preference) { + a:nth-of-type(2) .logo { + animation: logo-spin infinite 20s linear; + } +} + +.card { + padding: 2em; +} + +.read-the-docs { + color: #888; +} diff --git a/src/App.tsx b/src/App.tsx new file mode 100644 index 0000000..3d7ded3 --- /dev/null +++ b/src/App.tsx @@ -0,0 +1,35 @@ +import { useState } from 'react' +import reactLogo from './assets/react.svg' +import viteLogo from '/vite.svg' +import './App.css' + +function App() { + const [count, setCount] = useState(0) + + return ( + <> +
+

Vite + React

+
+ +

+ Edit src/App.tsx and save to test HMR +

+
+

+ Click on the Vite and React logos to learn more +

+ + ) +} + +export default App diff --git a/src/assets/react.svg b/src/assets/react.svg new file mode 100644 index 0000000..6c87de9 --- /dev/null +++ b/src/assets/react.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/index.css b/src/index.css new file mode 100644 index 0000000..6119ad9 --- /dev/null +++ b/src/index.css @@ -0,0 +1,68 @@ +:root { + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + line-height: 1.5; + font-weight: 400; + + color-scheme: light dark; + color: rgba(255, 255, 255, 0.87); + background-color: #242424; + + font-synthesis: none; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +a { + font-weight: 500; + color: #646cff; + text-decoration: inherit; +} +a:hover { + color: #535bf2; +} + +body { + margin: 0; + display: flex; + place-items: center; + min-width: 320px; + min-height: 100vh; +} + +h1 { + font-size: 3.2em; + line-height: 1.1; +} + +button { + border-radius: 8px; + border: 1px solid transparent; + padding: 0.6em 1.2em; + font-size: 1em; + font-weight: 500; + font-family: inherit; + background-color: #1a1a1a; + cursor: pointer; + transition: border-color 0.25s; +} +button:hover { + border-color: #646cff; +} +button:focus, +button:focus-visible { + outline: 4px auto -webkit-focus-ring-color; +} + +@media (prefers-color-scheme: light) { + :root { + color: #213547; + background-color: #ffffff; + } + a:hover { + color: #747bff; + } + button { + background-color: #f9f9f9; + } +} diff --git a/src/main.tsx b/src/main.tsx new file mode 100644 index 0000000..bef5202 --- /dev/null +++ b/src/main.tsx @@ -0,0 +1,10 @@ +import { StrictMode } from 'react' +import { createRoot } from 'react-dom/client' +import './index.css' +import App from './App.tsx' + +createRoot(document.getElementById('root')!).render( + + + , +) diff --git a/src/vite-env.d.ts b/src/vite-env.d.ts new file mode 100644 index 0000000..11f02fe --- /dev/null +++ b/src/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/tailwind.config.js b/tailwind.config.js new file mode 100644 index 0000000..d37737f --- /dev/null +++ b/tailwind.config.js @@ -0,0 +1,12 @@ +/** @type {import('tailwindcss').Config} */ +export default { + content: [ + "./index.html", + "./src/**/*.{js,ts,jsx,tsx}", + ], + theme: { + extend: {}, + }, + plugins: [], +} + diff --git a/tsconfig.app.json b/tsconfig.app.json new file mode 100644 index 0000000..358ca9b --- /dev/null +++ b/tsconfig.app.json @@ -0,0 +1,26 @@ +{ + "compilerOptions": { + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo", + "target": "ES2020", + "useDefineForClassFields": true, + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "module": "ESNext", + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "isolatedModules": true, + "moduleDetection": "force", + "noEmit": true, + "jsx": "react-jsx", + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true, + "noUncheckedSideEffectImports": true + }, + "include": ["src"] +} diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..1ffef60 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,7 @@ +{ + "files": [], + "references": [ + { "path": "./tsconfig.app.json" }, + { "path": "./tsconfig.node.json" } + ] +} diff --git a/tsconfig.node.json b/tsconfig.node.json new file mode 100644 index 0000000..db0becc --- /dev/null +++ b/tsconfig.node.json @@ -0,0 +1,24 @@ +{ + "compilerOptions": { + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo", + "target": "ES2022", + "lib": ["ES2023"], + "module": "ESNext", + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "isolatedModules": true, + "moduleDetection": "force", + "noEmit": true, + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true, + "noUncheckedSideEffectImports": true + }, + "include": ["vite.config.ts"] +} diff --git a/vite.config.ts b/vite.config.ts new file mode 100644 index 0000000..2328e17 --- /dev/null +++ b/vite.config.ts @@ -0,0 +1,7 @@ +import { defineConfig } from 'vite' +import react from '@vitejs/plugin-react-swc' + +// https://vite.dev/config/ +export default defineConfig({ + plugins: [react()], +})