initial commit
This commit is contained in:
		
						commit
						9c8186ca45
					
				
							
								
								
									
										1
									
								
								.dockerignore
									
									
									
									
									
										Symbolic link
									
								
							
							
						
						
									
										1
									
								
								.dockerignore
									
									
									
									
									
										Symbolic link
									
								
							| @ -0,0 +1 @@ | |||||||
|  | .gitignore | ||||||
							
								
								
									
										23
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1,23 @@ | |||||||
|  | node_modules | ||||||
|  | 
 | ||||||
|  | # Output | ||||||
|  | .output | ||||||
|  | .vercel | ||||||
|  | .netlify | ||||||
|  | .wrangler | ||||||
|  | /.svelte-kit | ||||||
|  | /build | ||||||
|  | 
 | ||||||
|  | # OS | ||||||
|  | .DS_Store | ||||||
|  | Thumbs.db | ||||||
|  | 
 | ||||||
|  | # Env | ||||||
|  | .env | ||||||
|  | .env.* | ||||||
|  | !.env.example | ||||||
|  | !.env.test | ||||||
|  | 
 | ||||||
|  | # Vite | ||||||
|  | vite.config.js.timestamp-* | ||||||
|  | vite.config.ts.timestamp-* | ||||||
							
								
								
									
										15
									
								
								Dockerfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								Dockerfile
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,15 @@ | |||||||
|  | FROM node:18-alpine AS builder | ||||||
|  | 
 | ||||||
|  | WORKDIR /app | ||||||
|  | COPY . . | ||||||
|  | RUN npm install | ||||||
|  | RUN npx vite build | ||||||
|  | 
 | ||||||
|  | FROM httpd:2.4 | ||||||
|  | 
 | ||||||
|  | COPY --from=builder /app/build/ /usr/local/apache2/htdocs/ | ||||||
|  | COPY httpd.conf /usr/local/apache2/conf/httpd.conf | ||||||
|  | 
 | ||||||
|  | EXPOSE 3000 | ||||||
|  | CMD ["httpd-foreground"] | ||||||
|  | 
 | ||||||
							
								
								
									
										38
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,38 @@ | |||||||
|  | # sv | ||||||
|  | 
 | ||||||
|  | Everything you need to build a Svelte project, powered by [`sv`](https://github.com/sveltejs/cli). | ||||||
|  | 
 | ||||||
|  | ## Creating a project | ||||||
|  | 
 | ||||||
|  | If you're seeing this, you've probably already done this step. Congrats! | ||||||
|  | 
 | ||||||
|  | ```bash | ||||||
|  | # create a new project in the current directory | ||||||
|  | npx sv create | ||||||
|  | 
 | ||||||
|  | # create a new project in my-app | ||||||
|  | npx sv create my-app | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
|  | ## Developing | ||||||
|  | 
 | ||||||
|  | Once you've created a project and installed dependencies with `npm install` (or `pnpm install` or `yarn`), start a development server: | ||||||
|  | 
 | ||||||
|  | ```bash | ||||||
|  | npm run dev | ||||||
|  | 
 | ||||||
|  | # or start the server and open the app in a new browser tab | ||||||
|  | npm run dev -- --open | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
|  | ## Building | ||||||
|  | 
 | ||||||
|  | To create a production version of your app: | ||||||
|  | 
 | ||||||
|  | ```bash | ||||||
|  | npm run build | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
|  | You can preview the production build with `npm run preview`. | ||||||
|  | 
 | ||||||
|  | > To deploy your app, you may need to install an [adapter](https://svelte.dev/docs/kit/adapters) for your target environment. | ||||||
							
								
								
									
										217
									
								
								bun.lock
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										217
									
								
								bun.lock
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,217 @@ | |||||||
|  | { | ||||||
|  |   "lockfileVersion": 1, | ||||||
|  |   "workspaces": { | ||||||
|  |     "": { | ||||||
|  |       "name": "lehnert.dev", | ||||||
|  |       "dependencies": { | ||||||
|  |         "@sveltejs/adapter-static": "^3.0.8", | ||||||
|  |       }, | ||||||
|  |       "devDependencies": { | ||||||
|  |         "@sveltejs/adapter-auto": "^4.0.0", | ||||||
|  |         "@sveltejs/kit": "^2.16.0", | ||||||
|  |         "@sveltejs/vite-plugin-svelte": "^5.0.0", | ||||||
|  |         "svelte": "^5.0.0", | ||||||
|  |         "svelte-check": "^4.0.0", | ||||||
|  |         "typescript": "^5.0.0", | ||||||
|  |         "vite": "^6.2.5", | ||||||
|  |       }, | ||||||
|  |     }, | ||||||
|  |   }, | ||||||
|  |   "packages": { | ||||||
|  |     "@ampproject/remapping": ["@ampproject/remapping@2.3.0", "", { "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw=="], | ||||||
|  | 
 | ||||||
|  |     "@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.25.2", "", { "os": "aix", "cpu": "ppc64" }, "sha512-wCIboOL2yXZym2cgm6mlA742s9QeJ8DjGVaL39dLN4rRwrOgOyYSnOaFPhKZGLb2ngj4EyfAFjsNJwPXZvseag=="], | ||||||
|  | 
 | ||||||
|  |     "@esbuild/android-arm": ["@esbuild/android-arm@0.25.2", "", { "os": "android", "cpu": "arm" }, "sha512-NQhH7jFstVY5x8CKbcfa166GoV0EFkaPkCKBQkdPJFvo5u+nGXLEH/ooniLb3QI8Fk58YAx7nsPLozUWfCBOJA=="], | ||||||
|  | 
 | ||||||
|  |     "@esbuild/android-arm64": ["@esbuild/android-arm64@0.25.2", "", { "os": "android", "cpu": "arm64" }, "sha512-5ZAX5xOmTligeBaeNEPnPaeEuah53Id2tX4c2CVP3JaROTH+j4fnfHCkr1PjXMd78hMst+TlkfKcW/DlTq0i4w=="], | ||||||
|  | 
 | ||||||
|  |     "@esbuild/android-x64": ["@esbuild/android-x64@0.25.2", "", { "os": "android", "cpu": "x64" }, "sha512-Ffcx+nnma8Sge4jzddPHCZVRvIfQ0kMsUsCMcJRHkGJ1cDmhe4SsrYIjLUKn1xpHZybmOqCWwB0zQvsjdEHtkg=="], | ||||||
|  | 
 | ||||||
|  |     "@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.25.2", "", { "os": "darwin", "cpu": "arm64" }, "sha512-MpM6LUVTXAzOvN4KbjzU/q5smzryuoNjlriAIx+06RpecwCkL9JpenNzpKd2YMzLJFOdPqBpuub6eVRP5IgiSA=="], | ||||||
|  | 
 | ||||||
|  |     "@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.25.2", "", { "os": "darwin", "cpu": "x64" }, "sha512-5eRPrTX7wFyuWe8FqEFPG2cU0+butQQVNcT4sVipqjLYQjjh8a8+vUTfgBKM88ObB85ahsnTwF7PSIt6PG+QkA=="], | ||||||
|  | 
 | ||||||
|  |     "@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.25.2", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-mLwm4vXKiQ2UTSX4+ImyiPdiHjiZhIaE9QvC7sw0tZ6HoNMjYAqQpGyui5VRIi5sGd+uWq940gdCbY3VLvsO1w=="], | ||||||
|  | 
 | ||||||
|  |     "@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.25.2", "", { "os": "freebsd", "cpu": "x64" }, "sha512-6qyyn6TjayJSwGpm8J9QYYGQcRgc90nmfdUb0O7pp1s4lTY+9D0H9O02v5JqGApUyiHOtkz6+1hZNvNtEhbwRQ=="], | ||||||
|  | 
 | ||||||
|  |     "@esbuild/linux-arm": ["@esbuild/linux-arm@0.25.2", "", { "os": "linux", "cpu": "arm" }, "sha512-UHBRgJcmjJv5oeQF8EpTRZs/1knq6loLxTsjc3nxO9eXAPDLcWW55flrMVc97qFPbmZP31ta1AZVUKQzKTzb0g=="], | ||||||
|  | 
 | ||||||
|  |     "@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.25.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-gq/sjLsOyMT19I8obBISvhoYiZIAaGF8JpeXu1u8yPv8BE5HlWYobmlsfijFIZ9hIVGYkbdFhEqC0NvM4kNO0g=="], | ||||||
|  | 
 | ||||||
|  |     "@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.25.2", "", { "os": "linux", "cpu": "ia32" }, "sha512-bBYCv9obgW2cBP+2ZWfjYTU+f5cxRoGGQ5SeDbYdFCAZpYWrfjjfYwvUpP8MlKbP0nwZ5gyOU/0aUzZ5HWPuvQ=="], | ||||||
|  | 
 | ||||||
|  |     "@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.25.2", "", { "os": "linux", "cpu": "none" }, "sha512-SHNGiKtvnU2dBlM5D8CXRFdd+6etgZ9dXfaPCeJtz+37PIUlixvlIhI23L5khKXs3DIzAn9V8v+qb1TRKrgT5w=="], | ||||||
|  | 
 | ||||||
|  |     "@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.25.2", "", { "os": "linux", "cpu": "none" }, "sha512-hDDRlzE6rPeoj+5fsADqdUZl1OzqDYow4TB4Y/3PlKBD0ph1e6uPHzIQcv2Z65u2K0kpeByIyAjCmjn1hJgG0Q=="], | ||||||
|  | 
 | ||||||
|  |     "@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.25.2", "", { "os": "linux", "cpu": "ppc64" }, "sha512-tsHu2RRSWzipmUi9UBDEzc0nLc4HtpZEI5Ba+Omms5456x5WaNuiG3u7xh5AO6sipnJ9r4cRWQB2tUjPyIkc6g=="], | ||||||
|  | 
 | ||||||
|  |     "@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.25.2", "", { "os": "linux", "cpu": "none" }, "sha512-k4LtpgV7NJQOml/10uPU0s4SAXGnowi5qBSjaLWMojNCUICNu7TshqHLAEbkBdAszL5TabfvQ48kK84hyFzjnw=="], | ||||||
|  | 
 | ||||||
|  |     "@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.25.2", "", { "os": "linux", "cpu": "s390x" }, "sha512-GRa4IshOdvKY7M/rDpRR3gkiTNp34M0eLTaC1a08gNrh4u488aPhuZOCpkF6+2wl3zAN7L7XIpOFBhnaE3/Q8Q=="], | ||||||
|  | 
 | ||||||
|  |     "@esbuild/linux-x64": ["@esbuild/linux-x64@0.25.2", "", { "os": "linux", "cpu": "x64" }, "sha512-QInHERlqpTTZ4FRB0fROQWXcYRD64lAoiegezDunLpalZMjcUcld3YzZmVJ2H/Cp0wJRZ8Xtjtj0cEHhYc/uUg=="], | ||||||
|  | 
 | ||||||
|  |     "@esbuild/netbsd-arm64": ["@esbuild/netbsd-arm64@0.25.2", "", { "os": "none", "cpu": "arm64" }, "sha512-talAIBoY5M8vHc6EeI2WW9d/CkiO9MQJ0IOWX8hrLhxGbro/vBXJvaQXefW2cP0z0nQVTdQ/eNyGFV1GSKrxfw=="], | ||||||
|  | 
 | ||||||
|  |     "@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.25.2", "", { "os": "none", "cpu": "x64" }, "sha512-voZT9Z+tpOxrvfKFyfDYPc4DO4rk06qamv1a/fkuzHpiVBMOhpjK+vBmWM8J1eiB3OLSMFYNaOaBNLXGChf5tg=="], | ||||||
|  | 
 | ||||||
|  |     "@esbuild/openbsd-arm64": ["@esbuild/openbsd-arm64@0.25.2", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-dcXYOC6NXOqcykeDlwId9kB6OkPUxOEqU+rkrYVqJbK2hagWOMrsTGsMr8+rW02M+d5Op5NNlgMmjzecaRf7Tg=="], | ||||||
|  | 
 | ||||||
|  |     "@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.25.2", "", { "os": "openbsd", "cpu": "x64" }, "sha512-t/TkWwahkH0Tsgoq1Ju7QfgGhArkGLkF1uYz8nQS/PPFlXbP5YgRpqQR3ARRiC2iXoLTWFxc6DJMSK10dVXluw=="], | ||||||
|  | 
 | ||||||
|  |     "@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.25.2", "", { "os": "sunos", "cpu": "x64" }, "sha512-cfZH1co2+imVdWCjd+D1gf9NjkchVhhdpgb1q5y6Hcv9TP6Zi9ZG/beI3ig8TvwT9lH9dlxLq5MQBBgwuj4xvA=="], | ||||||
|  | 
 | ||||||
|  |     "@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.25.2", "", { "os": "win32", "cpu": "arm64" }, "sha512-7Loyjh+D/Nx/sOTzV8vfbB3GJuHdOQyrOryFdZvPHLf42Tk9ivBU5Aedi7iyX+x6rbn2Mh68T4qq1SDqJBQO5Q=="], | ||||||
|  | 
 | ||||||
|  |     "@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.25.2", "", { "os": "win32", "cpu": "ia32" }, "sha512-WRJgsz9un0nqZJ4MfhabxaD9Ft8KioqU3JMinOTvobbX6MOSUigSBlogP8QB3uxpJDsFS6yN+3FDBdqE5lg9kg=="], | ||||||
|  | 
 | ||||||
|  |     "@esbuild/win32-x64": ["@esbuild/win32-x64@0.25.2", "", { "os": "win32", "cpu": "x64" }, "sha512-kM3HKb16VIXZyIeVrM1ygYmZBKybX8N4p754bw390wGO3Tf2j4L2/WYL+4suWujpgf6GBYs3jv7TyUivdd05JA=="], | ||||||
|  | 
 | ||||||
|  |     "@jridgewell/gen-mapping": ["@jridgewell/gen-mapping@0.3.8", "", { "dependencies": { "@jridgewell/set-array": "^1.2.1", "@jridgewell/sourcemap-codec": "^1.4.10", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA=="], | ||||||
|  | 
 | ||||||
|  |     "@jridgewell/resolve-uri": ["@jridgewell/resolve-uri@3.1.2", "", {}, "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw=="], | ||||||
|  | 
 | ||||||
|  |     "@jridgewell/set-array": ["@jridgewell/set-array@1.2.1", "", {}, "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A=="], | ||||||
|  | 
 | ||||||
|  |     "@jridgewell/sourcemap-codec": ["@jridgewell/sourcemap-codec@1.5.0", "", {}, "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ=="], | ||||||
|  | 
 | ||||||
|  |     "@jridgewell/trace-mapping": ["@jridgewell/trace-mapping@0.3.25", "", { "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ=="], | ||||||
|  | 
 | ||||||
|  |     "@polka/url": ["@polka/url@1.0.0-next.29", "", {}, "sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww=="], | ||||||
|  | 
 | ||||||
|  |     "@rollup/rollup-android-arm-eabi": ["@rollup/rollup-android-arm-eabi@4.40.0", "", { "os": "android", "cpu": "arm" }, "sha512-+Fbls/diZ0RDerhE8kyC6hjADCXA1K4yVNlH0EYfd2XjyH0UGgzaQ8MlT0pCXAThfxv3QUAczHaL+qSv1E4/Cg=="], | ||||||
|  | 
 | ||||||
|  |     "@rollup/rollup-android-arm64": ["@rollup/rollup-android-arm64@4.40.0", "", { "os": "android", "cpu": "arm64" }, "sha512-PPA6aEEsTPRz+/4xxAmaoWDqh67N7wFbgFUJGMnanCFs0TV99M0M8QhhaSCks+n6EbQoFvLQgYOGXxlMGQe/6w=="], | ||||||
|  | 
 | ||||||
|  |     "@rollup/rollup-darwin-arm64": ["@rollup/rollup-darwin-arm64@4.40.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-GwYOcOakYHdfnjjKwqpTGgn5a6cUX7+Ra2HeNj/GdXvO2VJOOXCiYYlRFU4CubFM67EhbmzLOmACKEfvp3J1kQ=="], | ||||||
|  | 
 | ||||||
|  |     "@rollup/rollup-darwin-x64": ["@rollup/rollup-darwin-x64@4.40.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-CoLEGJ+2eheqD9KBSxmma6ld01czS52Iw0e2qMZNpPDlf7Z9mj8xmMemxEucinev4LgHalDPczMyxzbq+Q+EtA=="], | ||||||
|  | 
 | ||||||
|  |     "@rollup/rollup-freebsd-arm64": ["@rollup/rollup-freebsd-arm64@4.40.0", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-r7yGiS4HN/kibvESzmrOB/PxKMhPTlz+FcGvoUIKYoTyGd5toHp48g1uZy1o1xQvybwwpqpe010JrcGG2s5nkg=="], | ||||||
|  | 
 | ||||||
|  |     "@rollup/rollup-freebsd-x64": ["@rollup/rollup-freebsd-x64@4.40.0", "", { "os": "freebsd", "cpu": "x64" }, "sha512-mVDxzlf0oLzV3oZOr0SMJ0lSDd3xC4CmnWJ8Val8isp9jRGl5Dq//LLDSPFrasS7pSm6m5xAcKaw3sHXhBjoRw=="], | ||||||
|  | 
 | ||||||
|  |     "@rollup/rollup-linux-arm-gnueabihf": ["@rollup/rollup-linux-arm-gnueabihf@4.40.0", "", { "os": "linux", "cpu": "arm" }, "sha512-y/qUMOpJxBMy8xCXD++jeu8t7kzjlOCkoxxajL58G62PJGBZVl/Gwpm7JK9+YvlB701rcQTzjUZ1JgUoPTnoQA=="], | ||||||
|  | 
 | ||||||
|  |     "@rollup/rollup-linux-arm-musleabihf": ["@rollup/rollup-linux-arm-musleabihf@4.40.0", "", { "os": "linux", "cpu": "arm" }, "sha512-GoCsPibtVdJFPv/BOIvBKO/XmwZLwaNWdyD8TKlXuqp0veo2sHE+A/vpMQ5iSArRUz/uaoj4h5S6Pn0+PdhRjg=="], | ||||||
|  | 
 | ||||||
|  |     "@rollup/rollup-linux-arm64-gnu": ["@rollup/rollup-linux-arm64-gnu@4.40.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-L5ZLphTjjAD9leJzSLI7rr8fNqJMlGDKlazW2tX4IUF9P7R5TMQPElpH82Q7eNIDQnQlAyiNVfRPfP2vM5Avvg=="], | ||||||
|  | 
 | ||||||
|  |     "@rollup/rollup-linux-arm64-musl": ["@rollup/rollup-linux-arm64-musl@4.40.0", "", { "os": "linux", "cpu": "arm64" }, "sha512-ATZvCRGCDtv1Y4gpDIXsS+wfFeFuLwVxyUBSLawjgXK2tRE6fnsQEkE4csQQYWlBlsFztRzCnBvWVfcae/1qxQ=="], | ||||||
|  | 
 | ||||||
|  |     "@rollup/rollup-linux-loongarch64-gnu": ["@rollup/rollup-linux-loongarch64-gnu@4.40.0", "", { "os": "linux", "cpu": "none" }, "sha512-wG9e2XtIhd++QugU5MD9i7OnpaVb08ji3P1y/hNbxrQ3sYEelKJOq1UJ5dXczeo6Hj2rfDEL5GdtkMSVLa/AOg=="], | ||||||
|  | 
 | ||||||
|  |     "@rollup/rollup-linux-powerpc64le-gnu": ["@rollup/rollup-linux-powerpc64le-gnu@4.40.0", "", { "os": "linux", "cpu": "ppc64" }, "sha512-vgXfWmj0f3jAUvC7TZSU/m/cOE558ILWDzS7jBhiCAFpY2WEBn5jqgbqvmzlMjtp8KlLcBlXVD2mkTSEQE6Ixw=="], | ||||||
|  | 
 | ||||||
|  |     "@rollup/rollup-linux-riscv64-gnu": ["@rollup/rollup-linux-riscv64-gnu@4.40.0", "", { "os": "linux", "cpu": "none" }, "sha512-uJkYTugqtPZBS3Z136arevt/FsKTF/J9dEMTX/cwR7lsAW4bShzI2R0pJVw+hcBTWF4dxVckYh72Hk3/hWNKvA=="], | ||||||
|  | 
 | ||||||
|  |     "@rollup/rollup-linux-riscv64-musl": ["@rollup/rollup-linux-riscv64-musl@4.40.0", "", { "os": "linux", "cpu": "none" }, "sha512-rKmSj6EXQRnhSkE22+WvrqOqRtk733x3p5sWpZilhmjnkHkpeCgWsFFo0dGnUGeA+OZjRl3+VYq+HyCOEuwcxQ=="], | ||||||
|  | 
 | ||||||
|  |     "@rollup/rollup-linux-s390x-gnu": ["@rollup/rollup-linux-s390x-gnu@4.40.0", "", { "os": "linux", "cpu": "s390x" }, "sha512-SpnYlAfKPOoVsQqmTFJ0usx0z84bzGOS9anAC0AZ3rdSo3snecihbhFTlJZ8XMwzqAcodjFU4+/SM311dqE5Sw=="], | ||||||
|  | 
 | ||||||
|  |     "@rollup/rollup-linux-x64-gnu": ["@rollup/rollup-linux-x64-gnu@4.40.0", "", { "os": "linux", "cpu": "x64" }, "sha512-RcDGMtqF9EFN8i2RYN2W+64CdHruJ5rPqrlYw+cgM3uOVPSsnAQps7cpjXe9be/yDp8UC7VLoCoKC8J3Kn2FkQ=="], | ||||||
|  | 
 | ||||||
|  |     "@rollup/rollup-linux-x64-musl": ["@rollup/rollup-linux-x64-musl@4.40.0", "", { "os": "linux", "cpu": "x64" }, "sha512-HZvjpiUmSNx5zFgwtQAV1GaGazT2RWvqeDi0hV+AtC8unqqDSsaFjPxfsO6qPtKRRg25SisACWnJ37Yio8ttaw=="], | ||||||
|  | 
 | ||||||
|  |     "@rollup/rollup-win32-arm64-msvc": ["@rollup/rollup-win32-arm64-msvc@4.40.0", "", { "os": "win32", "cpu": "arm64" }, "sha512-UtZQQI5k/b8d7d3i9AZmA/t+Q4tk3hOC0tMOMSq2GlMYOfxbesxG4mJSeDp0EHs30N9bsfwUvs3zF4v/RzOeTQ=="], | ||||||
|  | 
 | ||||||
|  |     "@rollup/rollup-win32-ia32-msvc": ["@rollup/rollup-win32-ia32-msvc@4.40.0", "", { "os": "win32", "cpu": "ia32" }, "sha512-+m03kvI2f5syIqHXCZLPVYplP8pQch9JHyXKZ3AGMKlg8dCyr2PKHjwRLiW53LTrN/Nc3EqHOKxUxzoSPdKddA=="], | ||||||
|  | 
 | ||||||
|  |     "@rollup/rollup-win32-x64-msvc": ["@rollup/rollup-win32-x64-msvc@4.40.0", "", { "os": "win32", "cpu": "x64" }, "sha512-lpPE1cLfP5oPzVjKMx10pgBmKELQnFJXHgvtHCtuJWOv8MxqdEIMNtgHgBFf7Ea2/7EuVwa9fodWUfXAlXZLZQ=="], | ||||||
|  | 
 | ||||||
|  |     "@sveltejs/acorn-typescript": ["@sveltejs/acorn-typescript@1.0.5", "", { "peerDependencies": { "acorn": "^8.9.0" } }, "sha512-IwQk4yfwLdibDlrXVE04jTZYlLnwsTT2PIOQQGNLWfjavGifnk1JD1LcZjZaBTRcxZu2FfPfNLOE04DSu9lqtQ=="], | ||||||
|  | 
 | ||||||
|  |     "@sveltejs/adapter-auto": ["@sveltejs/adapter-auto@4.0.0", "", { "dependencies": { "import-meta-resolve": "^4.1.0" }, "peerDependencies": { "@sveltejs/kit": "^2.0.0" } }, "sha512-kmuYSQdD2AwThymQF0haQhM8rE5rhutQXG4LNbnbShwhMO4qQGnKaaTy+88DuNSuoQDi58+thpq8XpHc1+oEKQ=="], | ||||||
|  | 
 | ||||||
|  |     "@sveltejs/adapter-static": ["@sveltejs/adapter-static@3.0.8", "", { "peerDependencies": { "@sveltejs/kit": "^2.0.0" } }, "sha512-YaDrquRpZwfcXbnlDsSrBQNCChVOT9MGuSg+dMAyfsAa1SmiAhrA5jUYUiIMC59G92kIbY/AaQOWcBdq+lh+zg=="], | ||||||
|  | 
 | ||||||
|  |     "@sveltejs/kit": ["@sveltejs/kit@2.20.5", "", { "dependencies": { "@types/cookie": "^0.6.0", "cookie": "^0.6.0", "devalue": "^5.1.0", "esm-env": "^1.2.2", "import-meta-resolve": "^4.1.0", "kleur": "^4.1.5", "magic-string": "^0.30.5", "mrmime": "^2.0.0", "sade": "^1.8.1", "set-cookie-parser": "^2.6.0", "sirv": "^3.0.0" }, "peerDependencies": { "@sveltejs/vite-plugin-svelte": "^3.0.0 || ^4.0.0-next.1 || ^5.0.0", "svelte": "^4.0.0 || ^5.0.0-next.0", "vite": "^5.0.3 || ^6.0.0" }, "bin": { "svelte-kit": "svelte-kit.js" } }, "sha512-zT/97KvVUo19jEGZa972ls7KICjPCB53j54TVxnEFT5VEwL16G+YFqRVwJbfxh7AmS7/Ptr1rKF7Qt4FBMDNlw=="], | ||||||
|  | 
 | ||||||
|  |     "@sveltejs/vite-plugin-svelte": ["@sveltejs/vite-plugin-svelte@5.0.3", "", { "dependencies": { "@sveltejs/vite-plugin-svelte-inspector": "^4.0.1", "debug": "^4.4.0", "deepmerge": "^4.3.1", "kleur": "^4.1.5", "magic-string": "^0.30.15", "vitefu": "^1.0.4" }, "peerDependencies": { "svelte": "^5.0.0", "vite": "^6.0.0" } }, "sha512-MCFS6CrQDu1yGwspm4qtli0e63vaPCehf6V7pIMP15AsWgMKrqDGCPFF/0kn4SP0ii4aySu4Pa62+fIRGFMjgw=="], | ||||||
|  | 
 | ||||||
|  |     "@sveltejs/vite-plugin-svelte-inspector": ["@sveltejs/vite-plugin-svelte-inspector@4.0.1", "", { "dependencies": { "debug": "^4.3.7" }, "peerDependencies": { "@sveltejs/vite-plugin-svelte": "^5.0.0", "svelte": "^5.0.0", "vite": "^6.0.0" } }, "sha512-J/Nmb2Q2y7mck2hyCX4ckVHcR5tu2J+MtBEQqpDrrgELZ2uvraQcK/ioCV61AqkdXFgriksOKIceDcQmqnGhVw=="], | ||||||
|  | 
 | ||||||
|  |     "@types/cookie": ["@types/cookie@0.6.0", "", {}, "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA=="], | ||||||
|  | 
 | ||||||
|  |     "@types/estree": ["@types/estree@1.0.7", "", {}, "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ=="], | ||||||
|  | 
 | ||||||
|  |     "acorn": ["acorn@8.14.1", "", { "bin": { "acorn": "bin/acorn" } }, "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg=="], | ||||||
|  | 
 | ||||||
|  |     "aria-query": ["aria-query@5.3.2", "", {}, "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw=="], | ||||||
|  | 
 | ||||||
|  |     "axobject-query": ["axobject-query@4.1.0", "", {}, "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ=="], | ||||||
|  | 
 | ||||||
|  |     "chokidar": ["chokidar@4.0.3", "", { "dependencies": { "readdirp": "^4.0.1" } }, "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA=="], | ||||||
|  | 
 | ||||||
|  |     "clsx": ["clsx@2.1.1", "", {}, "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA=="], | ||||||
|  | 
 | ||||||
|  |     "cookie": ["cookie@0.6.0", "", {}, "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw=="], | ||||||
|  | 
 | ||||||
|  |     "debug": ["debug@4.4.0", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA=="], | ||||||
|  | 
 | ||||||
|  |     "deepmerge": ["deepmerge@4.3.1", "", {}, "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A=="], | ||||||
|  | 
 | ||||||
|  |     "devalue": ["devalue@5.1.1", "", {}, "sha512-maua5KUiapvEwiEAe+XnlZ3Rh0GD+qI1J/nb9vrJc3muPXvcF/8gXYTWF76+5DAqHyDUtOIImEuo0YKE9mshVw=="], | ||||||
|  | 
 | ||||||
|  |     "esbuild": ["esbuild@0.25.2", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.25.2", "@esbuild/android-arm": "0.25.2", "@esbuild/android-arm64": "0.25.2", "@esbuild/android-x64": "0.25.2", "@esbuild/darwin-arm64": "0.25.2", "@esbuild/darwin-x64": "0.25.2", "@esbuild/freebsd-arm64": "0.25.2", "@esbuild/freebsd-x64": "0.25.2", "@esbuild/linux-arm": "0.25.2", "@esbuild/linux-arm64": "0.25.2", "@esbuild/linux-ia32": "0.25.2", "@esbuild/linux-loong64": "0.25.2", "@esbuild/linux-mips64el": "0.25.2", "@esbuild/linux-ppc64": "0.25.2", "@esbuild/linux-riscv64": "0.25.2", "@esbuild/linux-s390x": "0.25.2", "@esbuild/linux-x64": "0.25.2", "@esbuild/netbsd-arm64": "0.25.2", "@esbuild/netbsd-x64": "0.25.2", "@esbuild/openbsd-arm64": "0.25.2", "@esbuild/openbsd-x64": "0.25.2", "@esbuild/sunos-x64": "0.25.2", "@esbuild/win32-arm64": "0.25.2", "@esbuild/win32-ia32": "0.25.2", "@esbuild/win32-x64": "0.25.2" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-16854zccKPnC+toMywC+uKNeYSv+/eXkevRAfwRD/G9Cleq66m8XFIrigkbvauLLlCfDL45Q2cWegSg53gGBnQ=="], | ||||||
|  | 
 | ||||||
|  |     "esm-env": ["esm-env@1.2.2", "", {}, "sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA=="], | ||||||
|  | 
 | ||||||
|  |     "esrap": ["esrap@1.4.6", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.4.15" } }, "sha512-F/D2mADJ9SHY3IwksD4DAXjTt7qt7GWUf3/8RhCNWmC/67tyb55dpimHmy7EplakFaflV0R/PC+fdSPqrRHAQw=="], | ||||||
|  | 
 | ||||||
|  |     "fdir": ["fdir@6.4.3", "", { "peerDependencies": { "picomatch": "^3 || ^4" }, "optionalPeers": ["picomatch"] }, "sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw=="], | ||||||
|  | 
 | ||||||
|  |     "fsevents": ["fsevents@2.3.3", "", { "os": "darwin" }, "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="], | ||||||
|  | 
 | ||||||
|  |     "import-meta-resolve": ["import-meta-resolve@4.1.0", "", {}, "sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw=="], | ||||||
|  | 
 | ||||||
|  |     "is-reference": ["is-reference@3.0.3", "", { "dependencies": { "@types/estree": "^1.0.6" } }, "sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw=="], | ||||||
|  | 
 | ||||||
|  |     "kleur": ["kleur@4.1.5", "", {}, "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ=="], | ||||||
|  | 
 | ||||||
|  |     "locate-character": ["locate-character@3.0.0", "", {}, "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA=="], | ||||||
|  | 
 | ||||||
|  |     "magic-string": ["magic-string@0.30.17", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0" } }, "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA=="], | ||||||
|  | 
 | ||||||
|  |     "mri": ["mri@1.2.0", "", {}, "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA=="], | ||||||
|  | 
 | ||||||
|  |     "mrmime": ["mrmime@2.0.1", "", {}, "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ=="], | ||||||
|  | 
 | ||||||
|  |     "ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="], | ||||||
|  | 
 | ||||||
|  |     "nanoid": ["nanoid@3.3.11", "", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w=="], | ||||||
|  | 
 | ||||||
|  |     "picocolors": ["picocolors@1.1.1", "", {}, "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="], | ||||||
|  | 
 | ||||||
|  |     "postcss": ["postcss@8.5.3", "", { "dependencies": { "nanoid": "^3.3.8", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A=="], | ||||||
|  | 
 | ||||||
|  |     "readdirp": ["readdirp@4.1.2", "", {}, "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg=="], | ||||||
|  | 
 | ||||||
|  |     "rollup": ["rollup@4.40.0", "", { "dependencies": { "@types/estree": "1.0.7" }, "optionalDependencies": { "@rollup/rollup-android-arm-eabi": "4.40.0", "@rollup/rollup-android-arm64": "4.40.0", "@rollup/rollup-darwin-arm64": "4.40.0", "@rollup/rollup-darwin-x64": "4.40.0", "@rollup/rollup-freebsd-arm64": "4.40.0", "@rollup/rollup-freebsd-x64": "4.40.0", "@rollup/rollup-linux-arm-gnueabihf": "4.40.0", "@rollup/rollup-linux-arm-musleabihf": "4.40.0", "@rollup/rollup-linux-arm64-gnu": "4.40.0", "@rollup/rollup-linux-arm64-musl": "4.40.0", "@rollup/rollup-linux-loongarch64-gnu": "4.40.0", "@rollup/rollup-linux-powerpc64le-gnu": "4.40.0", "@rollup/rollup-linux-riscv64-gnu": "4.40.0", "@rollup/rollup-linux-riscv64-musl": "4.40.0", "@rollup/rollup-linux-s390x-gnu": "4.40.0", "@rollup/rollup-linux-x64-gnu": "4.40.0", "@rollup/rollup-linux-x64-musl": "4.40.0", "@rollup/rollup-win32-arm64-msvc": "4.40.0", "@rollup/rollup-win32-ia32-msvc": "4.40.0", "@rollup/rollup-win32-x64-msvc": "4.40.0", "fsevents": "~2.3.2" }, "bin": { "rollup": "dist/bin/rollup" } }, "sha512-Noe455xmA96nnqH5piFtLobsGbCij7Tu+tb3c1vYjNbTkfzGqXqQXG3wJaYXkRZuQ0vEYN4bhwg7QnIrqB5B+w=="], | ||||||
|  | 
 | ||||||
|  |     "sade": ["sade@1.8.1", "", { "dependencies": { "mri": "^1.1.0" } }, "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A=="], | ||||||
|  | 
 | ||||||
|  |     "set-cookie-parser": ["set-cookie-parser@2.7.1", "", {}, "sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ=="], | ||||||
|  | 
 | ||||||
|  |     "sirv": ["sirv@3.0.1", "", { "dependencies": { "@polka/url": "^1.0.0-next.24", "mrmime": "^2.0.0", "totalist": "^3.0.0" } }, "sha512-FoqMu0NCGBLCcAkS1qA+XJIQTR6/JHfQXl+uGteNCQ76T91DMUjPa9xfmeqMY3z80nLSg9yQmNjK0Px6RWsH/A=="], | ||||||
|  | 
 | ||||||
|  |     "source-map-js": ["source-map-js@1.2.1", "", {}, "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA=="], | ||||||
|  | 
 | ||||||
|  |     "svelte": ["svelte@5.26.2", "", { "dependencies": { "@ampproject/remapping": "^2.3.0", "@jridgewell/sourcemap-codec": "^1.5.0", "@sveltejs/acorn-typescript": "^1.0.5", "@types/estree": "^1.0.5", "acorn": "^8.12.1", "aria-query": "^5.3.1", "axobject-query": "^4.1.0", "clsx": "^2.1.1", "esm-env": "^1.2.1", "esrap": "^1.4.6", "is-reference": "^3.0.3", "locate-character": "^3.0.0", "magic-string": "^0.30.11", "zimmerframe": "^1.1.2" } }, "sha512-e2TEcGK2YKVwDWYy5OsptVclYgDvfY1E/8IzPiOq63uG/GDo/j5VUYTC9EinQNraoZalbMWN+5f5TYC1QlAqOw=="], | ||||||
|  | 
 | ||||||
|  |     "svelte-check": ["svelte-check@4.1.6", "", { "dependencies": { "@jridgewell/trace-mapping": "^0.3.25", "chokidar": "^4.0.1", "fdir": "^6.2.0", "picocolors": "^1.0.0", "sade": "^1.7.4" }, "peerDependencies": { "svelte": "^4.0.0 || ^5.0.0-next.0", "typescript": ">=5.0.0" }, "bin": { "svelte-check": "bin/svelte-check" } }, "sha512-P7w/6tdSfk3zEVvfsgrp3h3DFC75jCdZjTQvgGJtjPORs1n7/v2VMPIoty3PWv7jnfEm3x0G/p9wH4pecTb0Wg=="], | ||||||
|  | 
 | ||||||
|  |     "totalist": ["totalist@3.0.1", "", {}, "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ=="], | ||||||
|  | 
 | ||||||
|  |     "typescript": ["typescript@5.8.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ=="], | ||||||
|  | 
 | ||||||
|  |     "vite": ["vite@6.2.6", "", { "dependencies": { "esbuild": "^0.25.0", "postcss": "^8.5.3", "rollup": "^4.30.1" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", "jiti": ">=1.21.0", "less": "*", "lightningcss": "^1.21.0", "sass": "*", "sass-embedded": "*", "stylus": "*", "sugarss": "*", "terser": "^5.16.0", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["@types/node", "jiti", "less", "lightningcss", "sass", "sass-embedded", "stylus", "sugarss", "terser", "tsx", "yaml"], "bin": { "vite": "bin/vite.js" } }, "sha512-9xpjNl3kR4rVDZgPNdTL0/c6ao4km69a/2ihNQbcANz8RuCOK3hQBmLSJf3bRKVQjVMda+YvizNE8AwvogcPbw=="], | ||||||
|  | 
 | ||||||
|  |     "vitefu": ["vitefu@1.0.6", "", { "peerDependencies": { "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0" }, "optionalPeers": ["vite"] }, "sha512-+Rex1GlappUyNN6UfwbVZne/9cYC4+R2XDk9xkNXBKMw6HQagdX9PgZ8V2v1WUSK1wfBLp7qbI1+XSNIlB1xmA=="], | ||||||
|  | 
 | ||||||
|  |     "zimmerframe": ["zimmerframe@1.1.2", "", {}, "sha512-rAbqEGa8ovJy4pyBxZM70hg4pE6gDgaQ0Sl9M3enG3I0d6H4XSAM3GeNGLKnsBpuijUow064sf7ww1nutC5/3w=="], | ||||||
|  |   } | ||||||
|  | } | ||||||
							
								
								
									
										18
									
								
								httpd.conf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								httpd.conf
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,18 @@ | |||||||
|  | ServerRoot "/usr/local/apache2" | ||||||
|  | Listen 3000 | ||||||
|  | 
 | ||||||
|  | LoadModule rewrite_module modules/mod_rewrite.so | ||||||
|  | 
 | ||||||
|  | DocumentRoot "/usr/local/apache2/htdocs" | ||||||
|  | <Directory "/usr/local/apache2/htdocs"> | ||||||
|  |     AllowOverride All | ||||||
|  |     Require all granted | ||||||
|  | 
 | ||||||
|  |     RewriteEngine On | ||||||
|  |      | ||||||
|  |     RewriteRule ^/$ /index.html [L] | ||||||
|  | 
 | ||||||
|  |     RewriteCond %{REQUEST_FILENAME} !-f | ||||||
|  |     RewriteCond %{REQUEST_FILENAME} !-d | ||||||
|  |     RewriteRule ^.*$ /404.html [L] | ||||||
|  | </Directory> | ||||||
							
								
								
									
										26
									
								
								package.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								package.json
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,26 @@ | |||||||
|  | { | ||||||
|  | 	"name": "lehnert.dev", | ||||||
|  | 	"version": "0.0.1", | ||||||
|  | 	"devDependencies": { | ||||||
|  | 		"@sveltejs/adapter-auto": "^4.0.0", | ||||||
|  | 		"@sveltejs/kit": "^2.16.0", | ||||||
|  | 		"@sveltejs/vite-plugin-svelte": "^5.0.0", | ||||||
|  | 		"svelte": "^5.0.0", | ||||||
|  | 		"svelte-check": "^4.0.0", | ||||||
|  | 		"typescript": "^5.0.0", | ||||||
|  | 		"vite": "^6.2.5" | ||||||
|  | 	}, | ||||||
|  | 	"private": true, | ||||||
|  | 	"scripts": { | ||||||
|  | 		"dev": "vite dev", | ||||||
|  | 		"build": "vite build", | ||||||
|  | 		"preview": "vite preview", | ||||||
|  | 		"prepare": "svelte-kit sync || echo ''", | ||||||
|  | 		"check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json", | ||||||
|  | 		"check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch" | ||||||
|  | 	}, | ||||||
|  | 	"type": "module", | ||||||
|  | 	"dependencies": { | ||||||
|  | 		"@sveltejs/adapter-static": "^3.0.8" | ||||||
|  | 	} | ||||||
|  | } | ||||||
							
								
								
									
										13
									
								
								src/app.d.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								src/app.d.ts
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1,13 @@ | |||||||
|  | // See https://svelte.dev/docs/kit/types#app.d.ts
 | ||||||
|  | // for information about these interfaces
 | ||||||
|  | declare global { | ||||||
|  | 	namespace App { | ||||||
|  | 		// interface Error {}
 | ||||||
|  | 		// interface Locals {}
 | ||||||
|  | 		// interface PageData {}
 | ||||||
|  | 		// interface PageState {}
 | ||||||
|  | 		// interface Platform {}
 | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | export {}; | ||||||
							
								
								
									
										15
									
								
								src/app.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								src/app.html
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,15 @@ | |||||||
|  | <!doctype html> | ||||||
|  | <html lang="en"> | ||||||
|  | 
 | ||||||
|  | <head> | ||||||
|  | 	<meta charset="utf-8" /> | ||||||
|  | 	<link rel="icon" href="%sveltekit.assets%/favicon.png" /> | ||||||
|  | 	<meta name="viewport" content="width=device-width, initial-scale=1" /> | ||||||
|  | 	%sveltekit.head% | ||||||
|  | </head> | ||||||
|  | 
 | ||||||
|  | <body data-sveltekit-preload-data="hover"> | ||||||
|  | 	<div style="display: contents">%sveltekit.body%</div> | ||||||
|  | </body> | ||||||
|  | 
 | ||||||
|  | </html> | ||||||
							
								
								
									
										1
									
								
								src/lib/assets/email.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								src/lib/assets/email.svg
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1 @@ | |||||||
|  | <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20,8L12,13L4,8V6L12,11L20,6M20,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V6C22,4.89 21.1,4 20,4Z" /></svg> | ||||||
| After Width: | Height: | Size: 192 B | 
							
								
								
									
										1
									
								
								src/lib/assets/git.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								src/lib/assets/git.svg
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1 @@ | |||||||
|  | <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M2.6,10.59L8.38,4.8L10.07,6.5C9.83,7.35 10.22,8.28 11,8.73V14.27C10.4,14.61 10,15.26 10,16A2,2 0 0,0 12,18A2,2 0 0,0 14,16C14,15.26 13.6,14.61 13,14.27V9.41L15.07,11.5C15,11.65 15,11.82 15,12A2,2 0 0,0 17,14A2,2 0 0,0 19,12A2,2 0 0,0 17,10C16.82,10 16.65,10 16.5,10.07L13.93,7.5C14.19,6.57 13.71,5.55 12.78,5.16C12.35,5 11.9,4.96 11.5,5.07L9.8,3.38L10.59,2.6C11.37,1.81 12.63,1.81 13.41,2.6L21.4,10.59C22.19,11.37 22.19,12.63 21.4,13.41L13.41,21.4C12.63,22.19 11.37,22.19 10.59,21.4L2.6,13.41C1.81,12.63 1.81,11.37 2.6,10.59Z" /></svg> | ||||||
| After Width: | Height: | Size: 604 B | 
							
								
								
									
										1
									
								
								src/lib/assets/github.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								src/lib/assets/github.svg
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1 @@ | |||||||
|  | <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12,2A10,10 0 0,0 2,12C2,16.42 4.87,20.17 8.84,21.5C9.34,21.58 9.5,21.27 9.5,21C9.5,20.77 9.5,20.14 9.5,19.31C6.73,19.91 6.14,17.97 6.14,17.97C5.68,16.81 5.03,16.5 5.03,16.5C4.12,15.88 5.1,15.9 5.1,15.9C6.1,15.97 6.63,16.93 6.63,16.93C7.5,18.45 8.97,18 9.54,17.76C9.63,17.11 9.89,16.67 10.17,16.42C7.95,16.17 5.62,15.31 5.62,11.5C5.62,10.39 6,9.5 6.65,8.79C6.55,8.54 6.2,7.5 6.75,6.15C6.75,6.15 7.59,5.88 9.5,7.17C10.29,6.95 11.15,6.84 12,6.84C12.85,6.84 13.71,6.95 14.5,7.17C16.41,5.88 17.25,6.15 17.25,6.15C17.8,7.5 17.45,8.54 17.35,8.79C18,9.5 18.38,10.39 18.38,11.5C18.38,15.32 16.04,16.16 13.81,16.41C14.17,16.72 14.5,17.33 14.5,18.26C14.5,19.6 14.5,20.68 14.5,21C14.5,21.27 14.66,21.59 15.17,21.5C19.14,20.16 22,16.42 22,12A10,10 0 0,0 12,2Z" /></svg> | ||||||
| After Width: | Height: | Size: 826 B | 
							
								
								
									
										1
									
								
								src/lib/assets/instagram.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								src/lib/assets/instagram.svg
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1 @@ | |||||||
|  | <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M7.8,2H16.2C19.4,2 22,4.6 22,7.8V16.2A5.8,5.8 0 0,1 16.2,22H7.8C4.6,22 2,19.4 2,16.2V7.8A5.8,5.8 0 0,1 7.8,2M7.6,4A3.6,3.6 0 0,0 4,7.6V16.4C4,18.39 5.61,20 7.6,20H16.4A3.6,3.6 0 0,0 20,16.4V7.6C20,5.61 18.39,4 16.4,4H7.6M17.25,5.5A1.25,1.25 0 0,1 18.5,6.75A1.25,1.25 0 0,1 17.25,8A1.25,1.25 0 0,1 16,6.75A1.25,1.25 0 0,1 17.25,5.5M12,7A5,5 0 0,1 17,12A5,5 0 0,1 12,17A5,5 0 0,1 7,12A5,5 0 0,1 12,7M12,9A3,3 0 0,0 9,12A3,3 0 0,0 12,15A3,3 0 0,0 15,12A3,3 0 0,0 12,9Z" /></svg> | ||||||
| After Width: | Height: | Size: 544 B | 
							
								
								
									
										1
									
								
								src/lib/assets/linkedin.svg
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								src/lib/assets/linkedin.svg
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1 @@ | |||||||
|  | <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 3A2 2 0 0 1 21 5V19A2 2 0 0 1 19 21H5A2 2 0 0 1 3 19V5A2 2 0 0 1 5 3H19M18.5 18.5V13.2A3.26 3.26 0 0 0 15.24 9.94C14.39 9.94 13.4 10.46 12.92 11.24V10.13H10.13V18.5H12.92V13.57C12.92 12.8 13.54 12.17 14.31 12.17A1.4 1.4 0 0 1 15.71 13.57V18.5H18.5M6.88 8.56A1.68 1.68 0 0 0 8.56 6.88C8.56 5.95 7.81 5.19 6.88 5.19A1.69 1.69 0 0 0 5.19 6.88C5.19 7.81 5.95 8.56 6.88 8.56M8.27 18.5V10.13H5.5V18.5H8.27Z" /></svg> | ||||||
| After Width: | Height: | Size: 483 B | 
							
								
								
									
										1
									
								
								src/lib/index.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								src/lib/index.ts
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1 @@ | |||||||
|  | // place files you want to import through the `$lib` alias in this folder.
 | ||||||
							
								
								
									
										27
									
								
								src/routes/+layout.svelte
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								src/routes/+layout.svelte
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,27 @@ | |||||||
|  | <slot /> | ||||||
|  | 
 | ||||||
|  | <style> | ||||||
|  |     :global(html, body) { | ||||||
|  |         width: 100%; | ||||||
|  |         height: 100%; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     :global(*) { | ||||||
|  |         margin: 0; | ||||||
|  |         padding: 0; | ||||||
|  |         box-sizing: border-box; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     :global(main) { | ||||||
|  |         display: flex; | ||||||
|  |         flex-direction: column; | ||||||
|  |         justify-content: center; | ||||||
|  |         align-items: center; | ||||||
|  |         min-height: 100vh; | ||||||
|  |         background: linear-gradient(135deg, #1e1e2f, #252547); | ||||||
|  |         color: white; | ||||||
|  |         font-family: "Inter", sans-serif; | ||||||
|  |         text-align: center; | ||||||
|  |         padding: 2rem; | ||||||
|  |     } | ||||||
|  | </style> | ||||||
							
								
								
									
										1
									
								
								src/routes/+layout.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								src/routes/+layout.ts
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1 @@ | |||||||
|  | export const prerender = true; | ||||||
							
								
								
									
										102
									
								
								src/routes/+page.svelte
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										102
									
								
								src/routes/+page.svelte
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,102 @@ | |||||||
|  | <script lang="ts"> | ||||||
|  |     import EMail from "$lib/assets/email.svg"; | ||||||
|  |     import Git from "$lib/assets/git.svg"; | ||||||
|  |     import GitHub from "$lib/assets/github.svg"; | ||||||
|  |     import Instagram from "$lib/assets/instagram.svg"; | ||||||
|  |     import LinkedIn from "$lib/assets/linkedin.svg"; | ||||||
|  | </script> | ||||||
|  | 
 | ||||||
|  | <main> | ||||||
|  |     <h1>Hey, I'm Ludwig 🚀</h1> | ||||||
|  |     <p>Welcome to my digital playground.</p> | ||||||
|  | 
 | ||||||
|  |     <div class="social-links"> | ||||||
|  |         <a target="_blank" href="https://instagram.com/lehlud"> | ||||||
|  |             <img src={Instagram} alt="" width="25" /> | ||||||
|  |         </a> | ||||||
|  |         <a target="_blank" href="https://linkedin.com/in/ludwig-lehnert"> | ||||||
|  |             <img src={LinkedIn} alt="" width="25" /> | ||||||
|  |         </a> | ||||||
|  |         <a target="_blank" href="mailto:info@lehnert.dev"> | ||||||
|  |             <img src={EMail} alt="" width="25" /> | ||||||
|  |         </a> | ||||||
|  |         <a target="_blank" href="https://gitea.cloud.lehnert.dev/explore/repos"> | ||||||
|  |             <img src={Git} alt="" width="25" /> | ||||||
|  |         </a> | ||||||
|  |         <a target="_blank" href="https://github.com/lehlud"> | ||||||
|  |             <img src={GitHub} alt="" width="25" /> | ||||||
|  |         </a> | ||||||
|  |     </div> | ||||||
|  | 
 | ||||||
|  |     <div class="legal-links"> | ||||||
|  |         <a href="/imprint">Imprint</a> | ||||||
|  |         <a href="/privacy">Privacy Policy</a> | ||||||
|  |     </div> | ||||||
|  | </main> | ||||||
|  | 
 | ||||||
|  | <style> | ||||||
|  |     h1 { | ||||||
|  |         font-size: 3.5rem; | ||||||
|  |         background: linear-gradient(90deg, #00ffff, #ff00ff); | ||||||
|  |         -webkit-background-clip: text; | ||||||
|  |         -webkit-text-fill-color: transparent; | ||||||
|  |         animation: glow 3s ease-in-out infinite alternate; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @keyframes glow { | ||||||
|  |         from { | ||||||
|  |             text-shadow: 0 0 10px #00ffff; | ||||||
|  |         } | ||||||
|  |         to { | ||||||
|  |             text-shadow: 0 0 20px #ff00ff; | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     p { | ||||||
|  |         font-size: 1.2rem; | ||||||
|  |         max-width: 600px; | ||||||
|  |         margin-top: 1rem; | ||||||
|  |         color: #ccc; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     .social-links { | ||||||
|  |         display: flex; | ||||||
|  |         gap: 0.75rem; | ||||||
|  |         margin-top: 1.5rem; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     .social-links a { | ||||||
|  |         padding: 0.75rem; | ||||||
|  |         font-size: 1rem; | ||||||
|  |         background: #00ffff; | ||||||
|  |         color: #1e1e2f; | ||||||
|  |         border: none; | ||||||
|  |         border-radius: 999px; | ||||||
|  |         cursor: pointer; | ||||||
|  |         transition: background 0.3s ease; | ||||||
|  | 
 | ||||||
|  |         display: grid; | ||||||
|  |         place-items: center; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     .social-links a:hover { | ||||||
|  |         background: #ff00ff; | ||||||
|  |         color: white; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     .legal-links { | ||||||
|  |         margin-top: 1rem; | ||||||
|  |         display: flex; | ||||||
|  |         gap: 0.5rem; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     .legal-links a { | ||||||
|  |         color: rgb(255, 255, 255); | ||||||
|  |         cursor: pointer; | ||||||
|  |         transition: background 0.3s ease; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     .legal-links a:hover { | ||||||
|  |         opacity: 0.8; | ||||||
|  |     } | ||||||
|  | </style> | ||||||
							
								
								
									
										93
									
								
								src/routes/404/+page.svelte
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										93
									
								
								src/routes/404/+page.svelte
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,93 @@ | |||||||
|  | <script lang="ts"> | ||||||
|  | </script> | ||||||
|  | 
 | ||||||
|  | <main> | ||||||
|  |     <h1>404</h1> | ||||||
|  | 
 | ||||||
|  |     <p> | ||||||
|  |         Oops! The page you're looking for doesn't exist. It might have been | ||||||
|  |         abducted by aliens 🛸 | ||||||
|  |     </p> | ||||||
|  | 
 | ||||||
|  |     <a class="btn" href="/">Beam me back</a> | ||||||
|  | </main> | ||||||
|  | 
 | ||||||
|  | <style> | ||||||
|  |     main { | ||||||
|  |         display: flex; | ||||||
|  |         flex-direction: column; | ||||||
|  |         justify-content: center; | ||||||
|  |         align-items: center; | ||||||
|  |         min-height: 100vh; | ||||||
|  |         background: radial-gradient( | ||||||
|  |             ellipse at center, | ||||||
|  |             #1e1e2f 0%, | ||||||
|  |             #0f0f1a 100% | ||||||
|  |         ); | ||||||
|  |         color: white; | ||||||
|  |         text-align: center; | ||||||
|  |         font-family: "Inter", sans-serif; | ||||||
|  |         overflow: hidden; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     h1 { | ||||||
|  |         font-size: 6rem; | ||||||
|  |         margin: 0; | ||||||
|  |         background: linear-gradient(90deg, #ff0066, #00ffff); | ||||||
|  |         -webkit-background-clip: text; | ||||||
|  |         -webkit-text-fill-color: transparent; | ||||||
|  |         animation: glitch 2s infinite; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @keyframes glitch { | ||||||
|  |         0% { | ||||||
|  |             text-shadow: | ||||||
|  |                 2px 0 #ff00c8, | ||||||
|  |                 -2px 0 #00fff9; | ||||||
|  |         } | ||||||
|  |         25% { | ||||||
|  |             text-shadow: | ||||||
|  |                 -2px 0 #ff00c8, | ||||||
|  |                 2px 0 #00fff9; | ||||||
|  |         } | ||||||
|  |         50% { | ||||||
|  |             text-shadow: | ||||||
|  |                 2px 0 #00fff9, | ||||||
|  |                 -2px 0 #ff00c8; | ||||||
|  |         } | ||||||
|  |         75% { | ||||||
|  |             text-shadow: | ||||||
|  |                 -1px 0 #00fff9, | ||||||
|  |                 1px 0 #ff00c8; | ||||||
|  |         } | ||||||
|  |         100% { | ||||||
|  |             text-shadow: | ||||||
|  |                 2px 0 #ff00c8, | ||||||
|  |                 -2px 0 #00fff9; | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     p { | ||||||
|  |         font-size: 1.25rem; | ||||||
|  |         margin: 1rem 0 2rem; | ||||||
|  |         color: #ccc; | ||||||
|  |         max-width: 600px; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     .btn { | ||||||
|  |         text-decoration: none; | ||||||
|  |         background: #00ffff; | ||||||
|  |         border: none; | ||||||
|  |         padding: 0.75rem 1.5rem; | ||||||
|  |         border-radius: 999px; | ||||||
|  |         font-size: 1rem; | ||||||
|  |         color: #1e1e2f; | ||||||
|  |         cursor: pointer; | ||||||
|  |         transition: background 0.3s ease; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     .btn:hover { | ||||||
|  |         background: #ff0066; | ||||||
|  |         color: white; | ||||||
|  |     } | ||||||
|  | </style> | ||||||
							
								
								
									
										78
									
								
								src/routes/imprint/+page.svelte
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										78
									
								
								src/routes/imprint/+page.svelte
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,78 @@ | |||||||
|  | <script lang="ts"> | ||||||
|  |     // Optional: add any TS logic here | ||||||
|  | </script> | ||||||
|  | 
 | ||||||
|  | <main> | ||||||
|  |     <h1>Impressum<br />Imprint</h1> | ||||||
|  |     <div class="legal-section"> | ||||||
|  |         <p><b>Angaben gemäß § 5 TMG:</b></p> | ||||||
|  |         <p> | ||||||
|  |             Ludwig Lehnert <br /> | ||||||
|  |             Zedernstr. 41 <br /> | ||||||
|  |             90441 Nürnberg <br /> | ||||||
|  |             Deutschland | ||||||
|  |         </p> | ||||||
|  |         <p> | ||||||
|  |             <b>Kontakt:</b> <br /> | ||||||
|  |             <!-- Telefon: [Ihre Telefonnummer] <br /> --> | ||||||
|  |             E-Mail: info@lehnert.dev | ||||||
|  |         </p> | ||||||
|  |     </div> | ||||||
|  | </main> | ||||||
|  | 
 | ||||||
|  | <style> | ||||||
|  |     h1 { | ||||||
|  |         font-size: 2.5rem; | ||||||
|  |         background: linear-gradient(90deg, #00ffff, #ff00ff); | ||||||
|  |         -webkit-background-clip: text; | ||||||
|  |         -webkit-text-fill-color: transparent; | ||||||
|  |         margin-bottom: 1rem; | ||||||
|  |         animation: glitch 2s infinite; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @keyframes glitch { | ||||||
|  |         0% { | ||||||
|  |             text-shadow: | ||||||
|  |                 2px 0 #ff00c8, | ||||||
|  |                 -2px 0 #00fff9; | ||||||
|  |         } | ||||||
|  |         25% { | ||||||
|  |             text-shadow: | ||||||
|  |                 -2px 0 #ff00c8, | ||||||
|  |                 2px 0 #00fff9; | ||||||
|  |         } | ||||||
|  |         50% { | ||||||
|  |             text-shadow: | ||||||
|  |                 2px 0 #00fff9, | ||||||
|  |                 -2px 0 #ff00c8; | ||||||
|  |         } | ||||||
|  |         75% { | ||||||
|  |             text-shadow: | ||||||
|  |                 -1px 0 #00fff9, | ||||||
|  |                 1px 0 #ff00c8; | ||||||
|  |         } | ||||||
|  |         100% { | ||||||
|  |             text-shadow: | ||||||
|  |                 2px 0 #ff00c8, | ||||||
|  |                 -2px 0 #00fff9; | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     .legal-section { | ||||||
|  |         text-align: left; | ||||||
|  |         max-width: 700px; | ||||||
|  |         margin: 2rem auto; | ||||||
|  |         padding: 1rem 2rem; | ||||||
|  |         background: rgba(255, 255, 255, 0.05); | ||||||
|  |         border-left: 4px solid #00ffff; | ||||||
|  |         border-radius: 12px; | ||||||
|  |         box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     .legal-section p { | ||||||
|  |         font-size: 1rem; | ||||||
|  |         margin-bottom: 1rem; | ||||||
|  |         color: #ccc; | ||||||
|  |         line-height: 1.6; | ||||||
|  |     } | ||||||
|  | </style> | ||||||
							
								
								
									
										106
									
								
								src/routes/privacy/+page.svelte
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										106
									
								
								src/routes/privacy/+page.svelte
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,106 @@ | |||||||
|  | <script lang="ts"> | ||||||
|  |     // Optional: add any TS logic here | ||||||
|  | </script> | ||||||
|  | 
 | ||||||
|  | <main> | ||||||
|  |     <h1>Datenschutzerklärung<br />Privacy Policy</h1> | ||||||
|  |     <div class="legal-section"> | ||||||
|  |         <p><strong>Deutsch:</strong></p> | ||||||
|  |         <p> | ||||||
|  |             Wir nehmen den Schutz Ihrer persönlichen Daten sehr ernst. Beim | ||||||
|  |             Besuch dieser Website werden automatisch Server-Logfiles erfasst | ||||||
|  |             (z.B. IP-Adresse, Uhrzeit des Zugriffs), die zur Gewährleistung des | ||||||
|  |             Betriebs und zur Sicherheit der Website notwendig sind. Diese Daten | ||||||
|  |             werden für maximal 90 Tage gespeichert und danach automatisch | ||||||
|  |             gelöscht. | ||||||
|  |         </p> | ||||||
|  |         <p> | ||||||
|  |             Diese Website wird über die Hetzner Cloud gehostet. Es gelten | ||||||
|  |             zusätzlich die Datenschutzbestimmungen der Hetzner Online GmbH: <a | ||||||
|  |                 href="https://www.hetzner.com/de/legal/privacy-policy/" | ||||||
|  |                 target="_blank">Hetzner Datenschutzerklärung</a | ||||||
|  |             >. | ||||||
|  |         </p> | ||||||
|  | 
 | ||||||
|  |         <p><strong>English:</strong></p> | ||||||
|  |         <p> | ||||||
|  |             We take the protection of your personal data very seriously. When | ||||||
|  |             visiting this website, server log files (e.g. IP address, access | ||||||
|  |             time) are automatically collected for the purpose of operation and | ||||||
|  |             security. These logs are stored for a maximum of 90 days and then | ||||||
|  |             automatically deleted. | ||||||
|  |         </p> | ||||||
|  |         <p> | ||||||
|  |             This website is hosted via Hetzner Cloud. The privacy policy of | ||||||
|  |             Hetzner Online GmbH also applies: <a | ||||||
|  |                 href="https://www.hetzner.com/legal/privacy-policy" | ||||||
|  |                 target="_blank">Hetzner Privacy Policy</a | ||||||
|  |             >. | ||||||
|  |         </p> | ||||||
|  |     </div> | ||||||
|  | </main> | ||||||
|  | 
 | ||||||
|  | <style> | ||||||
|  |     h1 { | ||||||
|  |         font-size: 2.5rem; | ||||||
|  |         background: linear-gradient(90deg, #00ffff, #ff00ff); | ||||||
|  |         -webkit-background-clip: text; | ||||||
|  |         -webkit-text-fill-color: transparent; | ||||||
|  |         margin-bottom: 1rem; | ||||||
|  |         animation: glitch 2s infinite; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @keyframes glitch { | ||||||
|  |         0% { | ||||||
|  |             text-shadow: | ||||||
|  |                 2px 0 #ff00c8, | ||||||
|  |                 -2px 0 #00fff9; | ||||||
|  |         } | ||||||
|  |         25% { | ||||||
|  |             text-shadow: | ||||||
|  |                 -2px 0 #ff00c8, | ||||||
|  |                 2px 0 #00fff9; | ||||||
|  |         } | ||||||
|  |         50% { | ||||||
|  |             text-shadow: | ||||||
|  |                 2px 0 #00fff9, | ||||||
|  |                 -2px 0 #ff00c8; | ||||||
|  |         } | ||||||
|  |         75% { | ||||||
|  |             text-shadow: | ||||||
|  |                 -1px 0 #00fff9, | ||||||
|  |                 1px 0 #ff00c8; | ||||||
|  |         } | ||||||
|  |         100% { | ||||||
|  |             text-shadow: | ||||||
|  |                 2px 0 #ff00c8, | ||||||
|  |                 -2px 0 #00fff9; | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     .legal-section { | ||||||
|  |         text-align: left; | ||||||
|  |         max-width: 700px; | ||||||
|  |         margin: 2rem auto; | ||||||
|  |         padding: 1rem 2rem; | ||||||
|  |         background: rgba(255, 255, 255, 0.05); | ||||||
|  |         border-left: 4px solid #00ffff; | ||||||
|  |         border-radius: 12px; | ||||||
|  |         box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     .legal-section p { | ||||||
|  |         font-size: 1rem; | ||||||
|  |         margin-bottom: 1rem; | ||||||
|  |         color: #ccc; | ||||||
|  |         line-height: 1.6; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     a { | ||||||
|  |         color: white; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     a:hover { | ||||||
|  |         opacity: 0.8; | ||||||
|  |     } | ||||||
|  | </style> | ||||||
							
								
								
									
										
											BIN
										
									
								
								static/favicon.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								static/favicon.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 1.5 KiB | 
							
								
								
									
										18
									
								
								svelte.config.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								svelte.config.js
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,18 @@ | |||||||
|  | import adapter from '@sveltejs/adapter-static'; | ||||||
|  | import { vitePreprocess } from '@sveltejs/vite-plugin-svelte'; | ||||||
|  | 
 | ||||||
|  | /** @type {import('@sveltejs/kit').Config} */ | ||||||
|  | const config = { | ||||||
|  | 	// Consult https://svelte.dev/docs/kit/integrations
 | ||||||
|  | 	// for more information about preprocessors
 | ||||||
|  | 	preprocess: vitePreprocess(), | ||||||
|  | 
 | ||||||
|  | 	kit: { | ||||||
|  | 		// adapter-auto only supports some environments, see https://svelte.dev/docs/kit/adapter-auto for a list.
 | ||||||
|  | 		// If your environment is not supported, or you settled on a specific environment, switch out the adapter.
 | ||||||
|  | 		// See https://svelte.dev/docs/kit/adapters for more information about adapters.
 | ||||||
|  | 		adapter: adapter() | ||||||
|  | 	} | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | export default config; | ||||||
							
								
								
									
										19
									
								
								tsconfig.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								tsconfig.json
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,19 @@ | |||||||
|  | { | ||||||
|  | 	"extends": "./.svelte-kit/tsconfig.json", | ||||||
|  | 	"compilerOptions": { | ||||||
|  | 		"allowJs": true, | ||||||
|  | 		"checkJs": true, | ||||||
|  | 		"esModuleInterop": true, | ||||||
|  | 		"forceConsistentCasingInFileNames": true, | ||||||
|  | 		"resolveJsonModule": true, | ||||||
|  | 		"skipLibCheck": true, | ||||||
|  | 		"sourceMap": true, | ||||||
|  | 		"strict": true, | ||||||
|  | 		"moduleResolution": "bundler" | ||||||
|  | 	} | ||||||
|  | 	// Path aliases are handled by https://svelte.dev/docs/kit/configuration#alias | ||||||
|  | 	// except $lib which is handled by https://svelte.dev/docs/kit/configuration#files | ||||||
|  | 	// | ||||||
|  | 	// If you want to overwrite includes/excludes, make sure to copy over the relevant includes/excludes | ||||||
|  | 	// from the referenced tsconfig.json - TypeScript does not merge them in | ||||||
|  | } | ||||||
							
								
								
									
										6
									
								
								vite.config.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								vite.config.ts
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,6 @@ | |||||||
|  | import { sveltekit } from '@sveltejs/kit/vite'; | ||||||
|  | import { defineConfig } from 'vite'; | ||||||
|  | 
 | ||||||
|  | export default defineConfig({ | ||||||
|  | 	plugins: [sveltekit()] | ||||||
|  | }); | ||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Ubuntu
						Ubuntu