From 272bddab4f70d4b459c591e9c9da9cfcb22b6a66 Mon Sep 17 00:00:00 2001 From: Joshua Coles Date: Wed, 27 Sep 2023 16:56:04 +0100 Subject: [PATCH] Initial commit --- .editorconfig | 2 ++ .eslintrc.cjs | 14 ++++++++++++++ .gitignore | 24 +++++++++++++++++++++++ bun.lockb | Bin 0 -> 94222 bytes index.html | 13 +++++++++++++ package.json | 31 ++++++++++++++++++++++++++++++ postcss.config.js | 6 ++++++ public/vite.svg | 1 + src/App.css | 44 +++++++++++++++++++++++++++++++++++++++++++ src/App.tsx | 35 ++++++++++++++++++++++++++++++++++ src/assets/react.svg | 5 +++++ src/index.css | 3 +++ src/main.tsx | 10 ++++++++++ src/vite-env.d.ts | 1 + tailwind.config.js | 12 ++++++++++++ tsconfig.json | 25 ++++++++++++++++++++++++ tsconfig.node.json | 10 ++++++++++ vite.config.ts | 7 +++++++ 18 files changed, 243 insertions(+) create mode 100644 .editorconfig create mode 100644 .eslintrc.cjs create mode 100644 .gitignore create mode 100755 bun.lockb 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.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..1b9c8cc --- /dev/null +++ b/.editorconfig @@ -0,0 +1,2 @@ +[{*.ts,*.tsx}] +ij_javascript_spaces_within_imports = true diff --git a/.eslintrc.cjs b/.eslintrc.cjs new file mode 100644 index 0000000..4020bcb --- /dev/null +++ b/.eslintrc.cjs @@ -0,0 +1,14 @@ +module.exports = { + env: { browser: true, es2020: true }, + extends: [ + 'eslint:recommended', + 'plugin:@typescript-eslint/recommended', + 'plugin:react-hooks/recommended', + ], + parser: '@typescript-eslint/parser', + parserOptions: { ecmaVersion: 'latest', sourceType: 'module' }, + plugins: ['react-refresh'], + rules: { + 'react-refresh/only-export-components': 'warn', + }, +} 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/bun.lockb b/bun.lockb new file mode 100755 index 0000000000000000000000000000000000000000..2269956704e86a63d87454bc56cc105bd7b7762c GIT binary patch literal 94222 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 literal 0 HcmV?d00001 diff --git a/index.html b/index.html new file mode 100644 index 0000000..e0d1c84 --- /dev/null +++ b/index.html @@ -0,0 +1,13 @@ + + + + + + + Vite + React + TS + + +
+ + + diff --git a/package.json b/package.json new file mode 100644 index 0000000..9408e19 --- /dev/null +++ b/package.json @@ -0,0 +1,31 @@ +{ + "name": "obsidian-note-finder", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "bunx --bun vite", + "build": "tsc && vite build", + "lint": "eslint src --ext ts,tsx --report-unused-disable-directives --max-warnings 0", + "preview": "vite preview" + }, + "dependencies": { + "react": "^18.2.0", + "react-dom": "^18.2.0" + }, + "devDependencies": { + "@types/react": "^18.0.37", + "@types/react-dom": "^18.0.11", + "@typescript-eslint/eslint-plugin": "^5.59.0", + "@typescript-eslint/parser": "^5.59.0", + "@vitejs/plugin-react-swc": "^3.0.0", + "autoprefixer": "^10.4.16", + "eslint": "^8.38.0", + "eslint-plugin-react-hooks": "^4.6.0", + "eslint-plugin-react-refresh": "^0.3.4", + "postcss": "^8.4.30", + "tailwindcss": "^3.3.3", + "typescript": "^5.0.2", + "vite": "^4.3.9" + } +} 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..63d28e6 --- /dev/null +++ b/src/App.css @@ -0,0 +1,44 @@ +#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..a4e48f7 --- /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..fb8f175 --- /dev/null +++ b/src/assets/react.svg @@ -0,0 +1,5 @@ + diff --git a/src/index.css b/src/index.css new file mode 100644 index 0000000..b5c61c9 --- /dev/null +++ b/src/index.css @@ -0,0 +1,3 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; diff --git a/src/main.tsx b/src/main.tsx new file mode 100644 index 0000000..dbe7f6b --- /dev/null +++ b/src/main.tsx @@ -0,0 +1,10 @@ +import React from 'react' +import ReactDOM from 'react-dom/client' +import App from './App.tsx' +import './index.css' + +ReactDOM.createRoot(document.getElementById('root') as HTMLElement).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.json b/tsconfig.json new file mode 100644 index 0000000..a7fc6fb --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,25 @@ +{ + "compilerOptions": { + "target": "ES2020", + "useDefineForClassFields": true, + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "module": "ESNext", + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx", + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true + }, + "include": ["src"], + "references": [{ "path": "./tsconfig.node.json" }] +} diff --git a/tsconfig.node.json b/tsconfig.node.json new file mode 100644 index 0000000..42872c5 --- /dev/null +++ b/tsconfig.node.json @@ -0,0 +1,10 @@ +{ + "compilerOptions": { + "composite": true, + "skipLibCheck": true, + "module": "ESNext", + "moduleResolution": "bundler", + "allowSyntheticDefaultImports": true + }, + "include": ["vite.config.ts"] +} diff --git a/vite.config.ts b/vite.config.ts new file mode 100644 index 0000000..861b04b --- /dev/null +++ b/vite.config.ts @@ -0,0 +1,7 @@ +import { defineConfig } from 'vite' +import react from '@vitejs/plugin-react-swc' + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [react()], +})