add a bunch of frontend stuff
This commit is contained in:
		
							parent
							
								
									2586161abd
								
							
						
					
					
						commit
						bc85b7c340
					
				
					 30 changed files with 1459 additions and 136 deletions
				
			
		|  | @ -1,13 +1,13 @@ | |||
| <!doctype html> | ||||
| <html lang="en"> | ||||
|   <head> | ||||
|     <meta charset="UTF-8" /> | ||||
|     <link rel="icon" type="image/svg+xml" href="/vite.svg" /> | ||||
|     <meta name="viewport" content="width=device-width, initial-scale=1.0" /> | ||||
|     <title>Vite + Svelte + TS</title> | ||||
|   </head> | ||||
|   <body> | ||||
|     <div id="app"></div> | ||||
|     <script type="module" src="/src/main.ts"></script> | ||||
|   </body> | ||||
| 	<head> | ||||
| 		<meta charset="UTF-8" /> | ||||
| 		<link rel="icon" type="image/svg+xml" href="/vite.svg" /> | ||||
| 		<meta name="viewport" content="width=device-width, initial-scale=1.0" /> | ||||
| 		<title>Vite + Svelte + TS</title> | ||||
| 	</head> | ||||
| 	<body> | ||||
| 		<div id="app"></div> | ||||
| 		<script type="module" src="/src/main.ts"></script> | ||||
| 	</body> | ||||
| </html> | ||||
|  |  | |||
|  | @ -1,22 +1,26 @@ | |||
| { | ||||
|   "name": "frontend", | ||||
|   "private": true, | ||||
|   "version": "0.0.0", | ||||
|   "type": "module", | ||||
|   "scripts": { | ||||
|     "dev": "vite", | ||||
|     "build": "vite build", | ||||
|     "preview": "vite preview", | ||||
|     "check": "svelte-check --tsconfig ./tsconfig.json" | ||||
|   }, | ||||
|   "devDependencies": { | ||||
|     "@sveltejs/vite-plugin-svelte": "^2.4.2", | ||||
|     "@tsconfig/svelte": "^5.0.0", | ||||
|     "prettier": "^3.0.3", | ||||
|     "svelte": "^4.0.5", | ||||
|     "svelte-check": "^3.4.6", | ||||
|     "tslib": "^2.6.0", | ||||
|     "typescript": "^5.0.2", | ||||
|     "vite": "^4.4.5" | ||||
|   } | ||||
| 	"name": "frontend", | ||||
| 	"private": true, | ||||
| 	"version": "0.0.0", | ||||
| 	"type": "module", | ||||
| 	"scripts": { | ||||
| 		"dev": "vite", | ||||
| 		"build": "vite build", | ||||
| 		"preview": "vite preview", | ||||
| 		"check": "svelte-check --tsconfig ./tsconfig.json" | ||||
| 	}, | ||||
| 	"devDependencies": { | ||||
| 		"@sveltejs/vite-plugin-svelte": "^2.4.2", | ||||
| 		"@tsconfig/svelte": "^5.0.0", | ||||
| 		"prettier": "^3.0.3", | ||||
| 		"sass": "^1.66.1", | ||||
| 		"svelte": "^4.0.5", | ||||
| 		"svelte-check": "^3.4.6", | ||||
| 		"tslib": "^2.6.0", | ||||
| 		"typescript": "^5.0.2", | ||||
| 		"vite": "^4.4.5" | ||||
| 	}, | ||||
| 	"dependencies": { | ||||
| 		"normalize.css": "^8.0.1" | ||||
| 	} | ||||
| } | ||||
|  |  | |||
							
								
								
									
										55
									
								
								frontend/pnpm-lock.yaml
									
										
									
										generated
									
									
									
								
							
							
						
						
									
										55
									
								
								frontend/pnpm-lock.yaml
									
										
									
										generated
									
									
									
								
							|  | @ -1,5 +1,10 @@ | |||
| lockfileVersion: "6.0" | ||||
| 
 | ||||
| dependencies: | ||||
|   normalize.css: | ||||
|     specifier: ^8.0.1 | ||||
|     version: 8.0.1 | ||||
| 
 | ||||
| devDependencies: | ||||
|   "@sveltejs/vite-plugin-svelte": | ||||
|     specifier: ^2.4.2 | ||||
|  | @ -10,12 +15,15 @@ devDependencies: | |||
|   prettier: | ||||
|     specifier: ^3.0.3 | ||||
|     version: 3.0.3 | ||||
|   sass: | ||||
|     specifier: ^1.66.1 | ||||
|     version: 1.66.1 | ||||
|   svelte: | ||||
|     specifier: ^4.0.5 | ||||
|     version: 4.0.5 | ||||
|   svelte-check: | ||||
|     specifier: ^3.4.6 | ||||
|     version: 3.4.6(svelte@4.0.5) | ||||
|     version: 3.4.6(sass@1.66.1)(svelte@4.0.5) | ||||
|   tslib: | ||||
|     specifier: ^2.6.0 | ||||
|     version: 2.6.0 | ||||
|  | @ -24,7 +32,7 @@ devDependencies: | |||
|     version: 5.0.2 | ||||
|   vite: | ||||
|     specifier: ^4.4.5 | ||||
|     version: 4.4.5 | ||||
|     version: 4.4.5(sass@1.66.1) | ||||
| 
 | ||||
| packages: | ||||
|   /@ampproject/remapping@2.2.1: | ||||
|  | @ -391,7 +399,7 @@ packages: | |||
|       "@sveltejs/vite-plugin-svelte": 2.4.2(svelte@4.0.5)(vite@4.4.5) | ||||
|       debug: 4.3.4 | ||||
|       svelte: 4.0.5 | ||||
|       vite: 4.4.5 | ||||
|       vite: 4.4.5(sass@1.66.1) | ||||
|     transitivePeerDependencies: | ||||
|       - supports-color | ||||
|     dev: true | ||||
|  | @ -413,7 +421,7 @@ packages: | |||
|       magic-string: 0.30.3 | ||||
|       svelte: 4.0.5 | ||||
|       svelte-hmr: 0.15.3(svelte@4.0.5) | ||||
|       vite: 4.4.5 | ||||
|       vite: 4.4.5(sass@1.66.1) | ||||
|       vitefu: 0.2.4(vite@4.4.5) | ||||
|     transitivePeerDependencies: | ||||
|       - supports-color | ||||
|  | @ -747,6 +755,13 @@ packages: | |||
|       } | ||||
|     dev: true | ||||
| 
 | ||||
|   /immutable@4.3.4: | ||||
|     resolution: | ||||
|       { | ||||
|         integrity: sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA==, | ||||
|       } | ||||
|     dev: true | ||||
| 
 | ||||
|   /import-fresh@3.3.0: | ||||
|     resolution: | ||||
|       { | ||||
|  | @ -947,6 +962,13 @@ packages: | |||
|     engines: { node: ">=0.10.0" } | ||||
|     dev: true | ||||
| 
 | ||||
|   /normalize.css@8.0.1: | ||||
|     resolution: | ||||
|       { | ||||
|         integrity: sha512-qizSNPO93t1YUuUhP22btGOo3chcvDFqFaj2TRybP0DMxkHOCTYwp3n34fel4a31ORXy4m1Xq0Gyqpb5m33qIg==, | ||||
|       } | ||||
|     dev: false | ||||
| 
 | ||||
|   /once@1.4.0: | ||||
|     resolution: | ||||
|       { | ||||
|  | @ -1106,6 +1128,19 @@ packages: | |||
|       rimraf: 2.7.1 | ||||
|     dev: true | ||||
| 
 | ||||
|   /sass@1.66.1: | ||||
|     resolution: | ||||
|       { | ||||
|         integrity: sha512-50c+zTsZOJVgFfTgwwEzkjA3/QACgdNsKueWPyAR0mRINIvLAStVQBbPg14iuqEQ74NPDbXzJARJ/O4SI1zftA==, | ||||
|       } | ||||
|     engines: { node: ">=14.0.0" } | ||||
|     hasBin: true | ||||
|     dependencies: | ||||
|       chokidar: 3.5.3 | ||||
|       immutable: 4.3.4 | ||||
|       source-map-js: 1.0.2 | ||||
|     dev: true | ||||
| 
 | ||||
|   /sorcery@0.11.0: | ||||
|     resolution: | ||||
|       { | ||||
|  | @ -1137,7 +1172,7 @@ packages: | |||
|       min-indent: 1.0.1 | ||||
|     dev: true | ||||
| 
 | ||||
|   /svelte-check@3.4.6(svelte@4.0.5): | ||||
|   /svelte-check@3.4.6(sass@1.66.1)(svelte@4.0.5): | ||||
|     resolution: | ||||
|       { | ||||
|         integrity: sha512-OBlY8866Zh1zHQTkBMPS6psPi7o2umTUyj6JWm4SacnIHXpWFm658pG32m3dKvKFL49V4ntAkfFHKo4ztH07og==, | ||||
|  | @ -1153,7 +1188,7 @@ packages: | |||
|       picocolors: 1.0.0 | ||||
|       sade: 1.8.1 | ||||
|       svelte: 4.0.5 | ||||
|       svelte-preprocess: 5.0.4(svelte@4.0.5)(typescript@5.2.2) | ||||
|       svelte-preprocess: 5.0.4(sass@1.66.1)(svelte@4.0.5)(typescript@5.2.2) | ||||
|       typescript: 5.2.2 | ||||
|     transitivePeerDependencies: | ||||
|       - "@babel/core" | ||||
|  | @ -1179,7 +1214,7 @@ packages: | |||
|       svelte: 4.0.5 | ||||
|     dev: true | ||||
| 
 | ||||
|   /svelte-preprocess@5.0.4(svelte@4.0.5)(typescript@5.2.2): | ||||
|   /svelte-preprocess@5.0.4(sass@1.66.1)(svelte@4.0.5)(typescript@5.2.2): | ||||
|     resolution: | ||||
|       { | ||||
|         integrity: sha512-ABia2QegosxOGsVlsSBJvoWeXy1wUKSfF7SWJdTjLAbx/Y3SrVevvvbFNQqrSJw89+lNSsM58SipmZJ5SRi5iw==, | ||||
|  | @ -1223,6 +1258,7 @@ packages: | |||
|       "@types/pug": 2.0.6 | ||||
|       detect-indent: 6.1.0 | ||||
|       magic-string: 0.27.0 | ||||
|       sass: 1.66.1 | ||||
|       sorcery: 0.11.0 | ||||
|       strip-indent: 3.0.0 | ||||
|       svelte: 4.0.5 | ||||
|  | @ -1286,7 +1322,7 @@ packages: | |||
|     hasBin: true | ||||
|     dev: true | ||||
| 
 | ||||
|   /vite@4.4.5: | ||||
|   /vite@4.4.5(sass@1.66.1): | ||||
|     resolution: | ||||
|       { | ||||
|         integrity: sha512-4m5kEtAWHYr0O1Fu7rZp64CfO1PsRGZlD3TAB32UmQlpd7qg15VF7ROqGN5CyqN7HFuwr7ICNM2+fDWRqFEKaA==, | ||||
|  | @ -1320,6 +1356,7 @@ packages: | |||
|       esbuild: 0.18.20 | ||||
|       postcss: 8.4.29 | ||||
|       rollup: 3.28.1 | ||||
|       sass: 1.66.1 | ||||
|     optionalDependencies: | ||||
|       fsevents: 2.3.3 | ||||
|     dev: true | ||||
|  | @ -1335,7 +1372,7 @@ packages: | |||
|       vite: | ||||
|         optional: true | ||||
|     dependencies: | ||||
|       vite: 4.4.5 | ||||
|       vite: 4.4.5(sass@1.66.1) | ||||
|     dev: true | ||||
| 
 | ||||
|   /wrappy@1.0.2: | ||||
|  |  | |||
|  | @ -1,80 +1,80 @@ | |||
| :root { | ||||
|   font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; | ||||
|   line-height: 1.5; | ||||
|   font-weight: 400; | ||||
| 	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; | ||||
| 	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; | ||||
|   -webkit-text-size-adjust: 100%; | ||||
| 	font-synthesis: none; | ||||
| 	text-rendering: optimizeLegibility; | ||||
| 	-webkit-font-smoothing: antialiased; | ||||
| 	-moz-osx-font-smoothing: grayscale; | ||||
| 	-webkit-text-size-adjust: 100%; | ||||
| } | ||||
| 
 | ||||
| a { | ||||
|   font-weight: 500; | ||||
|   color: #646cff; | ||||
|   text-decoration: inherit; | ||||
| 	font-weight: 500; | ||||
| 	color: #646cff; | ||||
| 	text-decoration: inherit; | ||||
| } | ||||
| a:hover { | ||||
|   color: #535bf2; | ||||
| 	color: #535bf2; | ||||
| } | ||||
| 
 | ||||
| body { | ||||
|   margin: 0; | ||||
|   display: flex; | ||||
|   place-items: center; | ||||
|   min-width: 320px; | ||||
|   min-height: 100vh; | ||||
| 	margin: 0; | ||||
| 	display: flex; | ||||
| 	place-items: center; | ||||
| 	min-width: 320px; | ||||
| 	min-height: 100vh; | ||||
| } | ||||
| 
 | ||||
| h1 { | ||||
|   font-size: 3.2em; | ||||
|   line-height: 1.1; | ||||
| 	font-size: 3.2em; | ||||
| 	line-height: 1.1; | ||||
| } | ||||
| 
 | ||||
| .card { | ||||
|   padding: 2em; | ||||
| 	padding: 2em; | ||||
| } | ||||
| 
 | ||||
| #app { | ||||
|   max-width: 1280px; | ||||
|   margin: 0 auto; | ||||
|   padding: 2rem; | ||||
|   text-align: center; | ||||
| 	max-width: 1280px; | ||||
| 	margin: 0 auto; | ||||
| 	padding: 2rem; | ||||
| 	text-align: center; | ||||
| } | ||||
| 
 | ||||
| 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; | ||||
| 	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; | ||||
| 	border-color: #646cff; | ||||
| } | ||||
| button:focus, | ||||
| button:focus-visible { | ||||
|   outline: 4px auto -webkit-focus-ring-color; | ||||
| 	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; | ||||
|   } | ||||
| 	:root { | ||||
| 		color: #213547; | ||||
| 		background-color: #ffffff; | ||||
| 	} | ||||
| 	a:hover { | ||||
| 		color: #747bff; | ||||
| 	} | ||||
| 	button { | ||||
| 		background-color: #f9f9f9; | ||||
| 	} | ||||
| } | ||||
|  |  | |||
|  | @ -2,7 +2,7 @@ import "./app.css"; | |||
| import App from "./App.svelte"; | ||||
| 
 | ||||
| const app = new App({ | ||||
|   target: document.getElementById("app"), | ||||
| 	target: document.getElementById("app"), | ||||
| }); | ||||
| 
 | ||||
| export default app; | ||||
|  |  | |||
|  | @ -1,7 +1,7 @@ | |||
| import { vitePreprocess } from "@sveltejs/vite-plugin-svelte"; | ||||
| 
 | ||||
| export default { | ||||
|   // Consult https://svelte.dev/docs#compile-time-svelte-preprocess
 | ||||
|   // for more information about preprocessors
 | ||||
|   preprocess: vitePreprocess(), | ||||
| 	// Consult https://svelte.dev/docs#compile-time-svelte-preprocess
 | ||||
| 	// for more information about preprocessors
 | ||||
| 	preprocess: vitePreprocess(), | ||||
| }; | ||||
|  |  | |||
|  | @ -1,20 +1,20 @@ | |||
| { | ||||
|   "extends": "@tsconfig/svelte/tsconfig.json", | ||||
|   "compilerOptions": { | ||||
|     "target": "ESNext", | ||||
|     "useDefineForClassFields": true, | ||||
|     "module": "ESNext", | ||||
|     "resolveJsonModule": true, | ||||
|     /** | ||||
|      * Typecheck JS in `.svelte` and `.js` files by default. | ||||
|      * Disable checkJs if you'd like to use dynamic types in JS. | ||||
|      * Note that setting allowJs false does not prevent the use | ||||
|      * of JS in `.svelte` files. | ||||
|      */ | ||||
|     "allowJs": true, | ||||
|     "checkJs": true, | ||||
|     "isolatedModules": true | ||||
|   }, | ||||
|   "include": ["src/**/*.d.ts", "src/**/*.ts", "src/**/*.js", "src/**/*.svelte"], | ||||
|   "references": [{ "path": "./tsconfig.node.json" }] | ||||
| 	"extends": "@tsconfig/svelte/tsconfig.json", | ||||
| 	"compilerOptions": { | ||||
| 		"target": "ESNext", | ||||
| 		"useDefineForClassFields": true, | ||||
| 		"module": "ESNext", | ||||
| 		"resolveJsonModule": true, | ||||
| 		/** | ||||
| 		 * Typecheck JS in `.svelte` and `.js` files by default. | ||||
| 		 * Disable checkJs if you'd like to use dynamic types in JS. | ||||
| 		 * Note that setting allowJs false does not prevent the use | ||||
| 		 * of JS in `.svelte` files. | ||||
| 		 */ | ||||
| 		"allowJs": true, | ||||
| 		"checkJs": true, | ||||
| 		"isolatedModules": true | ||||
| 	}, | ||||
| 	"include": ["src/**/*.d.ts", "src/**/*.ts", "src/**/*.js", "src/**/*.svelte"], | ||||
| 	"references": [{ "path": "./tsconfig.node.json" }] | ||||
| } | ||||
|  |  | |||
|  | @ -1,9 +1,9 @@ | |||
| { | ||||
|   "compilerOptions": { | ||||
|     "composite": true, | ||||
|     "skipLibCheck": true, | ||||
|     "module": "ESNext", | ||||
|     "moduleResolution": "bundler" | ||||
|   }, | ||||
|   "include": ["vite.config.ts"] | ||||
| 	"compilerOptions": { | ||||
| 		"composite": true, | ||||
| 		"skipLibCheck": true, | ||||
| 		"module": "ESNext", | ||||
| 		"moduleResolution": "bundler" | ||||
| 	}, | ||||
| 	"include": ["vite.config.ts"] | ||||
| } | ||||
|  |  | |||
|  | @ -3,8 +3,8 @@ import { svelte } from "@sveltejs/vite-plugin-svelte"; | |||
| 
 | ||||
| // https://vitejs.dev/config/
 | ||||
| export default defineConfig({ | ||||
|   plugins: [svelte()], | ||||
|   build: { | ||||
|     manifest: "manifest.json", | ||||
|   }, | ||||
| 	plugins: [svelte()], | ||||
| 	build: { | ||||
| 		manifest: "manifest.json", | ||||
| 	}, | ||||
| }); | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue