From 1d59d08360108cc5fc041f4753b5d485688d9839 Mon Sep 17 00:00:00 2001 From: Bytemalte Date: Sat, 4 Apr 2026 20:52:40 +0200 Subject: [PATCH] Stable Website --- .gitignore | 23 + .npmrc | 1 + .vscode/extensions.json | 3 + DESIGN.md | 24 + README.md | 42 + justfile | 8 + package.json | 23 + pnpm-lock.yaml | 1026 +++++++++++++++++++++++++ pnpm-workspace.yaml | 2 + src/app.css | 96 +++ src/app.d.ts | 13 + src/app.html | 15 + src/lib/assets/favicon.svg | 1 + src/lib/components/CopyField.svelte | 109 +++ src/lib/components/NavLink.svelte | 54 ++ src/lib/components/ProjectCard.svelte | 225 ++++++ src/lib/components/SocialItem.svelte | 144 ++++ src/lib/components/TechItem.svelte | 81 ++ src/lib/data/projects.json | 35 + src/lib/data/socials.json | 30 + src/lib/index.ts | 1 + src/lib/types/project.ts | 11 + src/lib/types/social.ts | 7 + src/lib/utils/copyToClipboard.ts | 9 + src/routes/+layout.svelte | 261 +++++++ src/routes/+layout.ts | 1 + src/routes/+page.svelte | 526 +++++++++++++ src/routes/+page.ts | 1 + src/routes/projects/+page.svelte | 216 ++++++ src/routes/projects/+page.ts | 1 + static/favicon.ico | Bin 0 -> 32038 bytes static/radigura_white.svg | 21 + static/radixura.svg | 21 + static/radixura_bannar.svg | 36 + static/radixura_icon.svg | 8 + svelte.config.js | 19 + tsconfig.json | 20 + vite.config.ts | 6 + 38 files changed, 3120 insertions(+) create mode 100644 .gitignore create mode 100644 .npmrc create mode 100644 .vscode/extensions.json create mode 100644 DESIGN.md create mode 100644 README.md create mode 100644 justfile create mode 100644 package.json create mode 100644 pnpm-lock.yaml create mode 100644 pnpm-workspace.yaml create mode 100644 src/app.css create mode 100644 src/app.d.ts create mode 100644 src/app.html create mode 100644 src/lib/assets/favicon.svg create mode 100644 src/lib/components/CopyField.svelte create mode 100644 src/lib/components/NavLink.svelte create mode 100644 src/lib/components/ProjectCard.svelte create mode 100644 src/lib/components/SocialItem.svelte create mode 100644 src/lib/components/TechItem.svelte create mode 100644 src/lib/data/projects.json create mode 100644 src/lib/data/socials.json create mode 100644 src/lib/index.ts create mode 100644 src/lib/types/project.ts create mode 100644 src/lib/types/social.ts create mode 100644 src/lib/utils/copyToClipboard.ts create mode 100644 src/routes/+layout.svelte create mode 100644 src/routes/+layout.ts create mode 100644 src/routes/+page.svelte create mode 100644 src/routes/+page.ts create mode 100644 src/routes/projects/+page.svelte create mode 100644 src/routes/projects/+page.ts create mode 100644 static/favicon.ico create mode 100644 static/radigura_white.svg create mode 100644 static/radixura.svg create mode 100644 static/radixura_bannar.svg create mode 100644 static/radixura_icon.svg create mode 100644 svelte.config.js create mode 100644 tsconfig.json create mode 100644 vite.config.ts diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3b462cb --- /dev/null +++ b/.gitignore @@ -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-* diff --git a/.npmrc b/.npmrc new file mode 100644 index 0000000..b6f27f1 --- /dev/null +++ b/.npmrc @@ -0,0 +1 @@ +engine-strict=true diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..28d1e67 --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,3 @@ +{ + "recommendations": ["svelte.svelte-vscode"] +} diff --git a/DESIGN.md b/DESIGN.md new file mode 100644 index 0000000..ac41cce --- /dev/null +++ b/DESIGN.md @@ -0,0 +1,24 @@ +# Design System + +## 1. Farbpalette + +| Priorität | Funktion | Hex-Code | Anwendung | +|-----------|----------|----------|-----------| +| Primärfarbe | Rust-Orange | `#CE412B` | Markenidentität & Key-Visuals | +| Sekundärfarbe | Burn-Akzent | `#E89165` | Interaktive Elemente & Highlights | +| Hintergrund | Soft Deep Grey | `#242424` | Dark Mode Basis | +| Oberfläche | Layer Grau | `#2E2E2E` | Für Karten oder Sektionen, um Tiefe zu erzeugen. | +| Textfarbe | Off-White | `#E0E0E0` | Maximale Lesbarkeit auf dunklem Grund | + +## 2. Typografie + +### Überschriften (Headlines) +- **Schriftart:** Manrope +- **Stil:** Semibold (600) + +### Fließtext (Body) +- **Schriftart:** IBM Plex Sans +- **Stil:** Regular (400) + +### Auszeichnungsschrift (Technical) +- **Schriftart:** Fira Code diff --git a/README.md b/README.md new file mode 100644 index 0000000..ea3086e --- /dev/null +++ b/README.md @@ -0,0 +1,42 @@ +# 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! + +```sh +# create a new project +npx sv create my-app +``` + +To recreate this project with the same configuration: + +```sh +# recreate this project +pnpm dlx sv@0.14.0 create --template minimal --types ts --add sveltekit-adapter="adapter:static" --install pnpm radixura_com +``` + +## Developing + +Once you've created a project and installed dependencies with `npm install` (or `pnpm install` or `yarn`), start a development server: + +```sh +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: + +```sh +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. diff --git a/justfile b/justfile new file mode 100644 index 0000000..41de4a4 --- /dev/null +++ b/justfile @@ -0,0 +1,8 @@ +default: + just --list + +run: + pnpm run dev + +open: + pnpm run open diff --git a/package.json b/package.json new file mode 100644 index 0000000..d00160d --- /dev/null +++ b/package.json @@ -0,0 +1,23 @@ +{ + "name": "radixura-com", + "private": true, + "version": "0.0.1", + "type": "module", + "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" + }, + "devDependencies": { + "@sveltejs/adapter-static": "^3.0.10", + "@sveltejs/kit": "^2.50.2", + "@sveltejs/vite-plugin-svelte": "^6.2.4", + "svelte": "^5.54.0", + "svelte-check": "^4.4.2", + "typescript": "^5.9.3", + "vite": "^7.3.1" + } +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000..0451cff --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,1026 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + devDependencies: + '@sveltejs/adapter-static': + specifier: ^3.0.10 + version: 3.0.10(@sveltejs/kit@2.56.1(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.55.1)(vite@7.3.1))(svelte@5.55.1)(typescript@5.9.3)(vite@7.3.1)) + '@sveltejs/kit': + specifier: ^2.50.2 + version: 2.56.1(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.55.1)(vite@7.3.1))(svelte@5.55.1)(typescript@5.9.3)(vite@7.3.1) + '@sveltejs/vite-plugin-svelte': + specifier: ^6.2.4 + version: 6.2.4(svelte@5.55.1)(vite@7.3.1) + svelte: + specifier: ^5.54.0 + version: 5.55.1 + svelte-check: + specifier: ^4.4.2 + version: 4.4.6(picomatch@4.0.4)(svelte@5.55.1)(typescript@5.9.3) + typescript: + specifier: ^5.9.3 + version: 5.9.3 + vite: + specifier: ^7.3.1 + version: 7.3.1 + +packages: + + '@esbuild/aix-ppc64@0.27.7': + resolution: {integrity: sha512-EKX3Qwmhz1eMdEJokhALr0YiD0lhQNwDqkPYyPhiSwKrh7/4KRjQc04sZ8db+5DVVnZ1LmbNDI1uAMPEUBnQPg==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + + '@esbuild/android-arm64@0.27.7': + resolution: {integrity: sha512-62dPZHpIXzvChfvfLJow3q5dDtiNMkwiRzPylSCfriLvZeq0a1bWChrGx/BbUbPwOrsWKMn8idSllklzBy+dgQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm@0.27.7': + resolution: {integrity: sha512-jbPXvB4Yj2yBV7HUfE2KHe4GJX51QplCN1pGbYjvsyCZbQmies29EoJbkEc+vYuU5o45AfQn37vZlyXy4YJ8RQ==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + + '@esbuild/android-x64@0.27.7': + resolution: {integrity: sha512-x5VpMODneVDb70PYV2VQOmIUUiBtY3D3mPBG8NxVk5CogneYhkR7MmM3yR/uMdITLrC1ml/NV1rj4bMJuy9MCg==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + + '@esbuild/darwin-arm64@0.27.7': + resolution: {integrity: sha512-5lckdqeuBPlKUwvoCXIgI2D9/ABmPq3Rdp7IfL70393YgaASt7tbju3Ac+ePVi3KDH6N2RqePfHnXkaDtY9fkw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-x64@0.27.7': + resolution: {integrity: sha512-rYnXrKcXuT7Z+WL5K980jVFdvVKhCHhUwid+dDYQpH+qu+TefcomiMAJpIiC2EM3Rjtq0sO3StMV/+3w3MyyqQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + + '@esbuild/freebsd-arm64@0.27.7': + resolution: {integrity: sha512-B48PqeCsEgOtzME2GbNM2roU29AMTuOIN91dsMO30t+Ydis3z/3Ngoj5hhnsOSSwNzS+6JppqWsuhTp6E82l2w==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.27.7': + resolution: {integrity: sha512-jOBDK5XEjA4m5IJK3bpAQF9/Lelu/Z9ZcdhTRLf4cajlB+8VEhFFRjWgfy3M1O4rO2GQ/b2dLwCUGpiF/eATNQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + + '@esbuild/linux-arm64@0.27.7': + resolution: {integrity: sha512-RZPHBoxXuNnPQO9rvjh5jdkRmVizktkT7TCDkDmQ0W2SwHInKCAV95GRuvdSvA7w4VMwfCjUiPwDi0ZO6Nfe9A==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm@0.27.7': + resolution: {integrity: sha512-RkT/YXYBTSULo3+af8Ib0ykH8u2MBh57o7q/DAs3lTJlyVQkgQvlrPTnjIzzRPQyavxtPtfg0EopvDyIt0j1rA==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-ia32@0.27.7': + resolution: {integrity: sha512-GA48aKNkyQDbd3KtkplYWT102C5sn/EZTY4XROkxONgruHPU72l+gW+FfF8tf2cFjeHaRbWpOYa/uRBz/Xq1Pg==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-loong64@0.27.7': + resolution: {integrity: sha512-a4POruNM2oWsD4WKvBSEKGIiWQF8fZOAsycHOt6JBpZ+JN2n2JH9WAv56SOyu9X5IqAjqSIPTaJkqN8F7XOQ5Q==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-mips64el@0.27.7': + resolution: {integrity: sha512-KabT5I6StirGfIz0FMgl1I+R1H73Gp0ofL9A3nG3i/cYFJzKHhouBV5VWK1CSgKvVaG4q1RNpCTR2LuTVB3fIw==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-ppc64@0.27.7': + resolution: {integrity: sha512-gRsL4x6wsGHGRqhtI+ifpN/vpOFTQtnbsupUF5R5YTAg+y/lKelYR1hXbnBdzDjGbMYjVJLJTd2OFmMewAgwlQ==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-riscv64@0.27.7': + resolution: {integrity: sha512-hL25LbxO1QOngGzu2U5xeXtxXcW+/GvMN3ejANqXkxZ/opySAZMrc+9LY/WyjAan41unrR3YrmtTsUpwT66InQ==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-s390x@0.27.7': + resolution: {integrity: sha512-2k8go8Ycu1Kb46vEelhu1vqEP+UeRVj2zY1pSuPdgvbd5ykAw82Lrro28vXUrRmzEsUV0NzCf54yARIK8r0fdw==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-x64@0.27.7': + resolution: {integrity: sha512-hzznmADPt+OmsYzw1EE33ccA+HPdIqiCRq7cQeL1Jlq2gb1+OyWBkMCrYGBJ+sxVzve2ZJEVeePbLM2iEIZSxA==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + + '@esbuild/netbsd-arm64@0.27.7': + resolution: {integrity: sha512-b6pqtrQdigZBwZxAn1UpazEisvwaIDvdbMbmrly7cDTMFnw/+3lVxxCTGOrkPVnsYIosJJXAsILG9XcQS+Yu6w==} + engines: {node: '>=18'} + cpu: [arm64] + os: [netbsd] + + '@esbuild/netbsd-x64@0.27.7': + resolution: {integrity: sha512-OfatkLojr6U+WN5EDYuoQhtM+1xco+/6FSzJJnuWiUw5eVcicbyK3dq5EeV/QHT1uy6GoDhGbFpprUiHUYggrw==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-arm64@0.27.7': + resolution: {integrity: sha512-AFuojMQTxAz75Fo8idVcqoQWEHIXFRbOc1TrVcFSgCZtQfSdc1RXgB3tjOn/krRHENUB4j00bfGjyl2mJrU37A==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.27.7': + resolution: {integrity: sha512-+A1NJmfM8WNDv5CLVQYJ5PshuRm/4cI6WMZRg1by1GwPIQPCTs1GLEUHwiiQGT5zDdyLiRM/l1G0Pv54gvtKIg==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + + '@esbuild/openharmony-arm64@0.27.7': + resolution: {integrity: sha512-+KrvYb/C8zA9CU/g0sR6w2RBw7IGc5J2BPnc3dYc5VJxHCSF1yNMxTV5LQ7GuKteQXZtspjFbiuW5/dOj7H4Yw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openharmony] + + '@esbuild/sunos-x64@0.27.7': + resolution: {integrity: sha512-ikktIhFBzQNt/QDyOL580ti9+5mL/YZeUPKU2ivGtGjdTYoqz6jObj6nOMfhASpS4GU4Q/Clh1QtxWAvcYKamA==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + + '@esbuild/win32-arm64@0.27.7': + resolution: {integrity: sha512-7yRhbHvPqSpRUV7Q20VuDwbjW5kIMwTHpptuUzV+AA46kiPze5Z7qgt6CLCK3pWFrHeNfDd1VKgyP4O+ng17CA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-ia32@0.27.7': + resolution: {integrity: sha512-SmwKXe6VHIyZYbBLJrhOoCJRB/Z1tckzmgTLfFYOfpMAx63BJEaL9ExI8x7v0oAO3Zh6D/Oi1gVxEYr5oUCFhw==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-x64@0.27.7': + resolution: {integrity: sha512-56hiAJPhwQ1R4i+21FVF7V8kSD5zZTdHcVuRFMW0hn753vVfQN8xlx4uOPT4xoGH0Z/oVATuR82AiqSTDIpaHg==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + + '@jridgewell/gen-mapping@0.3.13': + resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} + + '@jridgewell/remapping@2.3.5': + resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==} + + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + + '@jridgewell/sourcemap-codec@1.5.5': + resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} + + '@jridgewell/trace-mapping@0.3.31': + resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} + + '@polka/url@1.0.0-next.29': + resolution: {integrity: sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==} + + '@rollup/rollup-android-arm-eabi@4.60.1': + resolution: {integrity: sha512-d6FinEBLdIiK+1uACUttJKfgZREXrF0Qc2SmLII7W2AD8FfiZ9Wjd+rD/iRuf5s5dWrr1GgwXCvPqOuDquOowA==} + cpu: [arm] + os: [android] + + '@rollup/rollup-android-arm64@4.60.1': + resolution: {integrity: sha512-YjG/EwIDvvYI1YvYbHvDz/BYHtkY4ygUIXHnTdLhG+hKIQFBiosfWiACWortsKPKU/+dUwQQCKQM3qrDe8c9BA==} + cpu: [arm64] + os: [android] + + '@rollup/rollup-darwin-arm64@4.60.1': + resolution: {integrity: sha512-mjCpF7GmkRtSJwon+Rq1N8+pI+8l7w5g9Z3vWj4T7abguC4Czwi3Yu/pFaLvA3TTeMVjnu3ctigusqWUfjZzvw==} + cpu: [arm64] + os: [darwin] + + '@rollup/rollup-darwin-x64@4.60.1': + resolution: {integrity: sha512-haZ7hJ1JT4e9hqkoT9R/19XW2QKqjfJVv+i5AGg57S+nLk9lQnJ1F/eZloRO3o9Scy9CM3wQ9l+dkXtcBgN5Ew==} + cpu: [x64] + os: [darwin] + + '@rollup/rollup-freebsd-arm64@4.60.1': + resolution: {integrity: sha512-czw90wpQq3ZsAVBlinZjAYTKduOjTywlG7fEeWKUA7oCmpA8xdTkxZZlwNJKWqILlq0wehoZcJYfBvOyhPTQ6w==} + cpu: [arm64] + os: [freebsd] + + '@rollup/rollup-freebsd-x64@4.60.1': + resolution: {integrity: sha512-KVB2rqsxTHuBtfOeySEyzEOB7ltlB/ux38iu2rBQzkjbwRVlkhAGIEDiiYnO2kFOkJp+Z7pUXKyrRRFuFUKt+g==} + cpu: [x64] + os: [freebsd] + + '@rollup/rollup-linux-arm-gnueabihf@4.60.1': + resolution: {integrity: sha512-L+34Qqil+v5uC0zEubW7uByo78WOCIrBvci69E7sFASRl0X7b/MB6Cqd1lky/CtcSVTydWa2WZwFuWexjS5o6g==} + cpu: [arm] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-arm-musleabihf@4.60.1': + resolution: {integrity: sha512-n83O8rt4v34hgFzlkb1ycniJh7IR5RCIqt6mz1VRJD6pmhRi0CXdmfnLu9dIUS6buzh60IvACM842Ffb3xd6Gg==} + cpu: [arm] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-arm64-gnu@4.60.1': + resolution: {integrity: sha512-Nql7sTeAzhTAja3QXeAI48+/+GjBJ+QmAH13snn0AJSNL50JsDqotyudHyMbO2RbJkskbMbFJfIJKWA6R1LCJQ==} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-arm64-musl@4.60.1': + resolution: {integrity: sha512-+pUymDhd0ys9GcKZPPWlFiZ67sTWV5UU6zOJat02M1+PiuSGDziyRuI/pPue3hoUwm2uGfxdL+trT6Z9rxnlMA==} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-loong64-gnu@4.60.1': + resolution: {integrity: sha512-VSvgvQeIcsEvY4bKDHEDWcpW4Yw7BtlKG1GUT4FzBUlEKQK0rWHYBqQt6Fm2taXS+1bXvJT6kICu5ZwqKCnvlQ==} + cpu: [loong64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-loong64-musl@4.60.1': + resolution: {integrity: sha512-4LqhUomJqwe641gsPp6xLfhqWMbQV04KtPp7/dIp0nzPxAkNY1AbwL5W0MQpcalLYk07vaW9Kp1PBhdpZYYcEw==} + cpu: [loong64] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-ppc64-gnu@4.60.1': + resolution: {integrity: sha512-tLQQ9aPvkBxOc/EUT6j3pyeMD6Hb8QF2BTBnCQWP/uu1lhc9AIrIjKnLYMEroIz/JvtGYgI9dF3AxHZNaEH0rw==} + cpu: [ppc64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-ppc64-musl@4.60.1': + resolution: {integrity: sha512-RMxFhJwc9fSXP6PqmAz4cbv3kAyvD1etJFjTx4ONqFP9DkTkXsAMU4v3Vyc5BgzC+anz7nS/9tp4obsKfqkDHg==} + cpu: [ppc64] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-riscv64-gnu@4.60.1': + resolution: {integrity: sha512-QKgFl+Yc1eEk6MmOBfRHYF6lTxiiiV3/z/BRrbSiW2I7AFTXoBFvdMEyglohPj//2mZS4hDOqeB0H1ACh3sBbg==} + cpu: [riscv64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-riscv64-musl@4.60.1': + resolution: {integrity: sha512-RAjXjP/8c6ZtzatZcA1RaQr6O1TRhzC+adn8YZDnChliZHviqIjmvFwHcxi4JKPSDAt6Uhf/7vqcBzQJy0PDJg==} + cpu: [riscv64] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-s390x-gnu@4.60.1': + resolution: {integrity: sha512-wcuocpaOlaL1COBYiA89O6yfjlp3RwKDeTIA0hM7OpmhR1Bjo9j31G1uQVpDlTvwxGn2nQs65fBFL5UFd76FcQ==} + cpu: [s390x] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-x64-gnu@4.60.1': + resolution: {integrity: sha512-77PpsFQUCOiZR9+LQEFg9GClyfkNXj1MP6wRnzYs0EeWbPcHs02AXu4xuUbM1zhwn3wqaizle3AEYg5aeoohhg==} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-x64-musl@4.60.1': + resolution: {integrity: sha512-5cIATbk5vynAjqqmyBjlciMJl1+R/CwX9oLk/EyiFXDWd95KpHdrOJT//rnUl4cUcskrd0jCCw3wpZnhIHdD9w==} + cpu: [x64] + os: [linux] + libc: [musl] + + '@rollup/rollup-openbsd-x64@4.60.1': + resolution: {integrity: sha512-cl0w09WsCi17mcmWqqglez9Gk8isgeWvoUZ3WiJFYSR3zjBQc2J5/ihSjpl+VLjPqjQ/1hJRcqBfLjssREQILw==} + cpu: [x64] + os: [openbsd] + + '@rollup/rollup-openharmony-arm64@4.60.1': + resolution: {integrity: sha512-4Cv23ZrONRbNtbZa37mLSueXUCtN7MXccChtKpUnQNgF010rjrjfHx3QxkS2PI7LqGT5xXyYs1a7LbzAwT0iCA==} + cpu: [arm64] + os: [openharmony] + + '@rollup/rollup-win32-arm64-msvc@4.60.1': + resolution: {integrity: sha512-i1okWYkA4FJICtr7KpYzFpRTHgy5jdDbZiWfvny21iIKky5YExiDXP+zbXzm3dUcFpkEeYNHgQ5fuG236JPq0g==} + cpu: [arm64] + os: [win32] + + '@rollup/rollup-win32-ia32-msvc@4.60.1': + resolution: {integrity: sha512-u09m3CuwLzShA0EYKMNiFgcjjzwqtUMLmuCJLeZWjjOYA3IT2Di09KaxGBTP9xVztWyIWjVdsB2E9goMjZvTQg==} + cpu: [ia32] + os: [win32] + + '@rollup/rollup-win32-x64-gnu@4.60.1': + resolution: {integrity: sha512-k+600V9Zl1CM7eZxJgMyTUzmrmhB/0XZnF4pRypKAlAgxmedUA+1v9R+XOFv56W4SlHEzfeMtzujLJD22Uz5zg==} + cpu: [x64] + os: [win32] + + '@rollup/rollup-win32-x64-msvc@4.60.1': + resolution: {integrity: sha512-lWMnixq/QzxyhTV6NjQJ4SFo1J6PvOX8vUx5Wb4bBPsEb+8xZ89Bz6kOXpfXj9ak9AHTQVQzlgzBEc1SyM27xQ==} + cpu: [x64] + os: [win32] + + '@standard-schema/spec@1.1.0': + resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==} + + '@sveltejs/acorn-typescript@1.0.9': + resolution: {integrity: sha512-lVJX6qEgs/4DOcRTpo56tmKzVPtoWAaVbL4hfO7t7NVwl9AAXzQR6cihesW1BmNMPl+bK6dreu2sOKBP2Q9CIA==} + peerDependencies: + acorn: ^8.9.0 + + '@sveltejs/adapter-static@3.0.10': + resolution: {integrity: sha512-7D9lYFWJmB7zxZyTE/qxjksvMqzMuYrrsyh1f4AlZqeZeACPRySjbC3aFiY55wb1tWUaKOQG9PVbm74JcN2Iew==} + peerDependencies: + '@sveltejs/kit': ^2.0.0 + + '@sveltejs/kit@2.56.1': + resolution: {integrity: sha512-9hDOl3yUh8UXWt+mN29dbcdrW0vNwPvMqi01y2Mw+ceErNIISh8MeEY7fXT2Dx1CjC/kfsVqrbxw7DifYr4hsg==} + engines: {node: '>=18.13'} + hasBin: true + peerDependencies: + '@opentelemetry/api': ^1.0.0 + '@sveltejs/vite-plugin-svelte': ^3.0.0 || ^4.0.0-next.1 || ^5.0.0 || ^6.0.0-next.0 || ^7.0.0 + svelte: ^4.0.0 || ^5.0.0-next.0 + typescript: ^5.3.3 || ^6.0.0 + vite: ^5.0.3 || ^6.0.0 || ^7.0.0-beta.0 || ^8.0.0 + peerDependenciesMeta: + '@opentelemetry/api': + optional: true + typescript: + optional: true + + '@sveltejs/vite-plugin-svelte-inspector@5.0.2': + resolution: {integrity: sha512-TZzRTcEtZffICSAoZGkPSl6Etsj2torOVrx6Uw0KpXxrec9Gg6jFWQ60Q3+LmNGfZSxHRCZL7vXVZIWmuV50Ig==} + engines: {node: ^20.19 || ^22.12 || >=24} + peerDependencies: + '@sveltejs/vite-plugin-svelte': ^6.0.0-next.0 + svelte: ^5.0.0 + vite: ^6.3.0 || ^7.0.0 + + '@sveltejs/vite-plugin-svelte@6.2.4': + resolution: {integrity: sha512-ou/d51QSdTyN26D7h6dSpusAKaZkAiGM55/AKYi+9AGZw7q85hElbjK3kEyzXHhLSnRISHOYzVge6x0jRZ7DXA==} + engines: {node: ^20.19 || ^22.12 || >=24} + peerDependencies: + svelte: ^5.0.0 + vite: ^6.3.0 || ^7.0.0 + + '@types/cookie@0.6.0': + resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==} + + '@types/estree@1.0.8': + resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} + + '@types/trusted-types@2.0.7': + resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} + + '@typescript-eslint/types@8.58.0': + resolution: {integrity: sha512-O9CjxypDT89fbHxRfETNoAnHj/i6IpRK0CvbVN3qibxlLdo5p5hcLmUuCCrHMpxiWSwKyI8mCP7qRNYuOJ0Uww==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + acorn@8.16.0: + resolution: {integrity: sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==} + engines: {node: '>=0.4.0'} + hasBin: true + + aria-query@5.3.1: + resolution: {integrity: sha512-Z/ZeOgVl7bcSYZ/u/rh0fOpvEpq//LZmdbkXyc7syVzjPAhfOa9ebsdTSjEBDU4vs5nC98Kfduj1uFo0qyET3g==} + engines: {node: '>= 0.4'} + + axobject-query@4.1.0: + resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} + engines: {node: '>= 0.4'} + + chokidar@4.0.3: + resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} + engines: {node: '>= 14.16.0'} + + clsx@2.1.1: + resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} + engines: {node: '>=6'} + + cookie@0.6.0: + resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} + engines: {node: '>= 0.6'} + + deepmerge@4.3.1: + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} + engines: {node: '>=0.10.0'} + + devalue@5.6.4: + resolution: {integrity: sha512-Gp6rDldRsFh/7XuouDbxMH3Mx8GMCcgzIb1pDTvNyn8pZGQ22u+Wa+lGV9dQCltFQ7uVw0MhRyb8XDskNFOReA==} + + esbuild@0.27.7: + resolution: {integrity: sha512-IxpibTjyVnmrIQo5aqNpCgoACA/dTKLTlhMHihVHhdkxKyPO1uBBthumT0rdHmcsk9uMonIWS0m4FljWzILh3w==} + engines: {node: '>=18'} + hasBin: true + + esm-env@1.2.2: + resolution: {integrity: sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA==} + + esrap@2.2.4: + resolution: {integrity: sha512-suICpxAmZ9A8bzJjEl/+rLJiDKC0X4gYWUxT6URAWBLvlXmtbZd5ySMu/N2ZGEtMCAmflUDPSehrP9BQcsGcSg==} + + fdir@6.5.0: + resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} + engines: {node: '>=12.0.0'} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + is-reference@3.0.3: + resolution: {integrity: sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw==} + + kleur@4.1.5: + resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} + engines: {node: '>=6'} + + locate-character@3.0.0: + resolution: {integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==} + + magic-string@0.30.21: + resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} + + mri@1.2.0: + resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} + engines: {node: '>=4'} + + mrmime@2.0.1: + resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==} + engines: {node: '>=10'} + + nanoid@3.3.11: + resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + obug@2.1.1: + resolution: {integrity: sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ==} + + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + + picomatch@4.0.4: + resolution: {integrity: sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==} + engines: {node: '>=12'} + + postcss@8.5.8: + resolution: {integrity: sha512-OW/rX8O/jXnm82Ey1k44pObPtdblfiuWnrd8X7GJ7emImCOstunGbXUpp7HdBrFQX6rJzn3sPT397Wp5aCwCHg==} + engines: {node: ^10 || ^12 || >=14} + + readdirp@4.1.2: + resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} + engines: {node: '>= 14.18.0'} + + rollup@4.60.1: + resolution: {integrity: sha512-VmtB2rFU/GroZ4oL8+ZqXgSA38O6GR8KSIvWmEFv63pQ0G6KaBH9s07PO8XTXP4vI+3UJUEypOfjkGfmSBBR0w==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + + sade@1.8.1: + resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} + engines: {node: '>=6'} + + set-cookie-parser@3.1.0: + resolution: {integrity: sha512-kjnC1DXBHcxaOaOXBHBeRtltsDG2nUiUni+jP92M9gYdW12rsmx92UsfpH7o5tDRs7I1ZZPSQJQGv3UaRfCiuw==} + + sirv@3.0.2: + resolution: {integrity: sha512-2wcC/oGxHis/BoHkkPwldgiPSYcpZK3JU28WoMVv55yHJgcZ8rlXvuG9iZggz+sU1d4bRgIGASwyWqjxu3FM0g==} + engines: {node: '>=18'} + + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} + engines: {node: '>=0.10.0'} + + svelte-check@4.4.6: + resolution: {integrity: sha512-kP1zG81EWaFe9ZyTv4ZXv44Csi6Pkdpb7S3oj6m+K2ec/IcDg/a8LsFsnVLqm2nxtkSwsd5xPj/qFkTBgXHXjg==} + engines: {node: '>= 18.0.0'} + hasBin: true + peerDependencies: + svelte: ^4.0.0 || ^5.0.0-next.0 + typescript: '>=5.0.0' + + svelte@5.55.1: + resolution: {integrity: sha512-QjvU7EFemf6mRzdMGlAFttMWtAAVXrax61SZYHdkD6yoVGQ89VeyKfZD4H1JrV1WLmJBxWhFch9H6ig/87VGjw==} + engines: {node: '>=18'} + + tinyglobby@0.2.15: + resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} + engines: {node: '>=12.0.0'} + + totalist@3.0.1: + resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} + engines: {node: '>=6'} + + typescript@5.9.3: + resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} + engines: {node: '>=14.17'} + hasBin: true + + vite@7.3.1: + resolution: {integrity: sha512-w+N7Hifpc3gRjZ63vYBXA56dvvRlNWRczTdmCBBa+CotUzAPf5b7YMdMR/8CQoeYE5LX3W4wj6RYTgonm1b9DA==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + peerDependencies: + '@types/node': ^20.19.0 || >=22.12.0 + jiti: '>=1.21.0' + less: ^4.0.0 + lightningcss: ^1.21.0 + sass: ^1.70.0 + sass-embedded: ^1.70.0 + stylus: '>=0.54.8' + sugarss: ^5.0.0 + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + '@types/node': + optional: true + jiti: + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + tsx: + optional: true + yaml: + optional: true + + vitefu@1.1.3: + resolution: {integrity: sha512-ub4okH7Z5KLjb6hDyjqrGXqWtWvoYdU3IGm/NorpgHncKoLTCfRIbvlhBm7r0YstIaQRYlp4yEbFqDcKSzXSSg==} + peerDependencies: + vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 + peerDependenciesMeta: + vite: + optional: true + + zimmerframe@1.1.4: + resolution: {integrity: sha512-B58NGBEoc8Y9MWWCQGl/gq9xBCe4IiKM0a2x7GZdQKOW5Exr8S1W24J6OgM1njK8xCRGvAJIL/MxXHf6SkmQKQ==} + +snapshots: + + '@esbuild/aix-ppc64@0.27.7': + optional: true + + '@esbuild/android-arm64@0.27.7': + optional: true + + '@esbuild/android-arm@0.27.7': + optional: true + + '@esbuild/android-x64@0.27.7': + optional: true + + '@esbuild/darwin-arm64@0.27.7': + optional: true + + '@esbuild/darwin-x64@0.27.7': + optional: true + + '@esbuild/freebsd-arm64@0.27.7': + optional: true + + '@esbuild/freebsd-x64@0.27.7': + optional: true + + '@esbuild/linux-arm64@0.27.7': + optional: true + + '@esbuild/linux-arm@0.27.7': + optional: true + + '@esbuild/linux-ia32@0.27.7': + optional: true + + '@esbuild/linux-loong64@0.27.7': + optional: true + + '@esbuild/linux-mips64el@0.27.7': + optional: true + + '@esbuild/linux-ppc64@0.27.7': + optional: true + + '@esbuild/linux-riscv64@0.27.7': + optional: true + + '@esbuild/linux-s390x@0.27.7': + optional: true + + '@esbuild/linux-x64@0.27.7': + optional: true + + '@esbuild/netbsd-arm64@0.27.7': + optional: true + + '@esbuild/netbsd-x64@0.27.7': + optional: true + + '@esbuild/openbsd-arm64@0.27.7': + optional: true + + '@esbuild/openbsd-x64@0.27.7': + optional: true + + '@esbuild/openharmony-arm64@0.27.7': + optional: true + + '@esbuild/sunos-x64@0.27.7': + optional: true + + '@esbuild/win32-arm64@0.27.7': + optional: true + + '@esbuild/win32-ia32@0.27.7': + optional: true + + '@esbuild/win32-x64@0.27.7': + optional: true + + '@jridgewell/gen-mapping@0.3.13': + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + '@jridgewell/trace-mapping': 0.3.31 + + '@jridgewell/remapping@2.3.5': + dependencies: + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + + '@jridgewell/resolve-uri@3.1.2': {} + + '@jridgewell/sourcemap-codec@1.5.5': {} + + '@jridgewell/trace-mapping@0.3.31': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.5 + + '@polka/url@1.0.0-next.29': {} + + '@rollup/rollup-android-arm-eabi@4.60.1': + optional: true + + '@rollup/rollup-android-arm64@4.60.1': + optional: true + + '@rollup/rollup-darwin-arm64@4.60.1': + optional: true + + '@rollup/rollup-darwin-x64@4.60.1': + optional: true + + '@rollup/rollup-freebsd-arm64@4.60.1': + optional: true + + '@rollup/rollup-freebsd-x64@4.60.1': + optional: true + + '@rollup/rollup-linux-arm-gnueabihf@4.60.1': + optional: true + + '@rollup/rollup-linux-arm-musleabihf@4.60.1': + optional: true + + '@rollup/rollup-linux-arm64-gnu@4.60.1': + optional: true + + '@rollup/rollup-linux-arm64-musl@4.60.1': + optional: true + + '@rollup/rollup-linux-loong64-gnu@4.60.1': + optional: true + + '@rollup/rollup-linux-loong64-musl@4.60.1': + optional: true + + '@rollup/rollup-linux-ppc64-gnu@4.60.1': + optional: true + + '@rollup/rollup-linux-ppc64-musl@4.60.1': + optional: true + + '@rollup/rollup-linux-riscv64-gnu@4.60.1': + optional: true + + '@rollup/rollup-linux-riscv64-musl@4.60.1': + optional: true + + '@rollup/rollup-linux-s390x-gnu@4.60.1': + optional: true + + '@rollup/rollup-linux-x64-gnu@4.60.1': + optional: true + + '@rollup/rollup-linux-x64-musl@4.60.1': + optional: true + + '@rollup/rollup-openbsd-x64@4.60.1': + optional: true + + '@rollup/rollup-openharmony-arm64@4.60.1': + optional: true + + '@rollup/rollup-win32-arm64-msvc@4.60.1': + optional: true + + '@rollup/rollup-win32-ia32-msvc@4.60.1': + optional: true + + '@rollup/rollup-win32-x64-gnu@4.60.1': + optional: true + + '@rollup/rollup-win32-x64-msvc@4.60.1': + optional: true + + '@standard-schema/spec@1.1.0': {} + + '@sveltejs/acorn-typescript@1.0.9(acorn@8.16.0)': + dependencies: + acorn: 8.16.0 + + '@sveltejs/adapter-static@3.0.10(@sveltejs/kit@2.56.1(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.55.1)(vite@7.3.1))(svelte@5.55.1)(typescript@5.9.3)(vite@7.3.1))': + dependencies: + '@sveltejs/kit': 2.56.1(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.55.1)(vite@7.3.1))(svelte@5.55.1)(typescript@5.9.3)(vite@7.3.1) + + '@sveltejs/kit@2.56.1(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.55.1)(vite@7.3.1))(svelte@5.55.1)(typescript@5.9.3)(vite@7.3.1)': + dependencies: + '@standard-schema/spec': 1.1.0 + '@sveltejs/acorn-typescript': 1.0.9(acorn@8.16.0) + '@sveltejs/vite-plugin-svelte': 6.2.4(svelte@5.55.1)(vite@7.3.1) + '@types/cookie': 0.6.0 + acorn: 8.16.0 + cookie: 0.6.0 + devalue: 5.6.4 + esm-env: 1.2.2 + kleur: 4.1.5 + magic-string: 0.30.21 + mrmime: 2.0.1 + set-cookie-parser: 3.1.0 + sirv: 3.0.2 + svelte: 5.55.1 + vite: 7.3.1 + optionalDependencies: + typescript: 5.9.3 + + '@sveltejs/vite-plugin-svelte-inspector@5.0.2(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.55.1)(vite@7.3.1))(svelte@5.55.1)(vite@7.3.1)': + dependencies: + '@sveltejs/vite-plugin-svelte': 6.2.4(svelte@5.55.1)(vite@7.3.1) + obug: 2.1.1 + svelte: 5.55.1 + vite: 7.3.1 + + '@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.55.1)(vite@7.3.1)': + dependencies: + '@sveltejs/vite-plugin-svelte-inspector': 5.0.2(@sveltejs/vite-plugin-svelte@6.2.4(svelte@5.55.1)(vite@7.3.1))(svelte@5.55.1)(vite@7.3.1) + deepmerge: 4.3.1 + magic-string: 0.30.21 + obug: 2.1.1 + svelte: 5.55.1 + vite: 7.3.1 + vitefu: 1.1.3(vite@7.3.1) + + '@types/cookie@0.6.0': {} + + '@types/estree@1.0.8': {} + + '@types/trusted-types@2.0.7': {} + + '@typescript-eslint/types@8.58.0': {} + + acorn@8.16.0: {} + + aria-query@5.3.1: {} + + axobject-query@4.1.0: {} + + chokidar@4.0.3: + dependencies: + readdirp: 4.1.2 + + clsx@2.1.1: {} + + cookie@0.6.0: {} + + deepmerge@4.3.1: {} + + devalue@5.6.4: {} + + esbuild@0.27.7: + optionalDependencies: + '@esbuild/aix-ppc64': 0.27.7 + '@esbuild/android-arm': 0.27.7 + '@esbuild/android-arm64': 0.27.7 + '@esbuild/android-x64': 0.27.7 + '@esbuild/darwin-arm64': 0.27.7 + '@esbuild/darwin-x64': 0.27.7 + '@esbuild/freebsd-arm64': 0.27.7 + '@esbuild/freebsd-x64': 0.27.7 + '@esbuild/linux-arm': 0.27.7 + '@esbuild/linux-arm64': 0.27.7 + '@esbuild/linux-ia32': 0.27.7 + '@esbuild/linux-loong64': 0.27.7 + '@esbuild/linux-mips64el': 0.27.7 + '@esbuild/linux-ppc64': 0.27.7 + '@esbuild/linux-riscv64': 0.27.7 + '@esbuild/linux-s390x': 0.27.7 + '@esbuild/linux-x64': 0.27.7 + '@esbuild/netbsd-arm64': 0.27.7 + '@esbuild/netbsd-x64': 0.27.7 + '@esbuild/openbsd-arm64': 0.27.7 + '@esbuild/openbsd-x64': 0.27.7 + '@esbuild/openharmony-arm64': 0.27.7 + '@esbuild/sunos-x64': 0.27.7 + '@esbuild/win32-arm64': 0.27.7 + '@esbuild/win32-ia32': 0.27.7 + '@esbuild/win32-x64': 0.27.7 + + esm-env@1.2.2: {} + + esrap@2.2.4: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + '@typescript-eslint/types': 8.58.0 + + fdir@6.5.0(picomatch@4.0.4): + optionalDependencies: + picomatch: 4.0.4 + + fsevents@2.3.3: + optional: true + + is-reference@3.0.3: + dependencies: + '@types/estree': 1.0.8 + + kleur@4.1.5: {} + + locate-character@3.0.0: {} + + magic-string@0.30.21: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + + mri@1.2.0: {} + + mrmime@2.0.1: {} + + nanoid@3.3.11: {} + + obug@2.1.1: {} + + picocolors@1.1.1: {} + + picomatch@4.0.4: {} + + postcss@8.5.8: + dependencies: + nanoid: 3.3.11 + picocolors: 1.1.1 + source-map-js: 1.2.1 + + readdirp@4.1.2: {} + + rollup@4.60.1: + dependencies: + '@types/estree': 1.0.8 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.60.1 + '@rollup/rollup-android-arm64': 4.60.1 + '@rollup/rollup-darwin-arm64': 4.60.1 + '@rollup/rollup-darwin-x64': 4.60.1 + '@rollup/rollup-freebsd-arm64': 4.60.1 + '@rollup/rollup-freebsd-x64': 4.60.1 + '@rollup/rollup-linux-arm-gnueabihf': 4.60.1 + '@rollup/rollup-linux-arm-musleabihf': 4.60.1 + '@rollup/rollup-linux-arm64-gnu': 4.60.1 + '@rollup/rollup-linux-arm64-musl': 4.60.1 + '@rollup/rollup-linux-loong64-gnu': 4.60.1 + '@rollup/rollup-linux-loong64-musl': 4.60.1 + '@rollup/rollup-linux-ppc64-gnu': 4.60.1 + '@rollup/rollup-linux-ppc64-musl': 4.60.1 + '@rollup/rollup-linux-riscv64-gnu': 4.60.1 + '@rollup/rollup-linux-riscv64-musl': 4.60.1 + '@rollup/rollup-linux-s390x-gnu': 4.60.1 + '@rollup/rollup-linux-x64-gnu': 4.60.1 + '@rollup/rollup-linux-x64-musl': 4.60.1 + '@rollup/rollup-openbsd-x64': 4.60.1 + '@rollup/rollup-openharmony-arm64': 4.60.1 + '@rollup/rollup-win32-arm64-msvc': 4.60.1 + '@rollup/rollup-win32-ia32-msvc': 4.60.1 + '@rollup/rollup-win32-x64-gnu': 4.60.1 + '@rollup/rollup-win32-x64-msvc': 4.60.1 + fsevents: 2.3.3 + + sade@1.8.1: + dependencies: + mri: 1.2.0 + + set-cookie-parser@3.1.0: {} + + sirv@3.0.2: + dependencies: + '@polka/url': 1.0.0-next.29 + mrmime: 2.0.1 + totalist: 3.0.1 + + source-map-js@1.2.1: {} + + svelte-check@4.4.6(picomatch@4.0.4)(svelte@5.55.1)(typescript@5.9.3): + dependencies: + '@jridgewell/trace-mapping': 0.3.31 + chokidar: 4.0.3 + fdir: 6.5.0(picomatch@4.0.4) + picocolors: 1.1.1 + sade: 1.8.1 + svelte: 5.55.1 + typescript: 5.9.3 + transitivePeerDependencies: + - picomatch + + svelte@5.55.1: + dependencies: + '@jridgewell/remapping': 2.3.5 + '@jridgewell/sourcemap-codec': 1.5.5 + '@sveltejs/acorn-typescript': 1.0.9(acorn@8.16.0) + '@types/estree': 1.0.8 + '@types/trusted-types': 2.0.7 + acorn: 8.16.0 + aria-query: 5.3.1 + axobject-query: 4.1.0 + clsx: 2.1.1 + devalue: 5.6.4 + esm-env: 1.2.2 + esrap: 2.2.4 + is-reference: 3.0.3 + locate-character: 3.0.0 + magic-string: 0.30.21 + zimmerframe: 1.1.4 + + tinyglobby@0.2.15: + dependencies: + fdir: 6.5.0(picomatch@4.0.4) + picomatch: 4.0.4 + + totalist@3.0.1: {} + + typescript@5.9.3: {} + + vite@7.3.1: + dependencies: + esbuild: 0.27.7 + fdir: 6.5.0(picomatch@4.0.4) + picomatch: 4.0.4 + postcss: 8.5.8 + rollup: 4.60.1 + tinyglobby: 0.2.15 + optionalDependencies: + fsevents: 2.3.3 + + vitefu@1.1.3(vite@7.3.1): + optionalDependencies: + vite: 7.3.1 + + zimmerframe@1.1.4: {} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml new file mode 100644 index 0000000..efc037a --- /dev/null +++ b/pnpm-workspace.yaml @@ -0,0 +1,2 @@ +onlyBuiltDependencies: + - esbuild diff --git a/src/app.css b/src/app.css new file mode 100644 index 0000000..012f66e --- /dev/null +++ b/src/app.css @@ -0,0 +1,96 @@ +:root { + --color-primary: #CE412B; + --color-secondary: #E89165; + --color-bg: #242424; + --color-surface: #2E2E2E; + --color-text: #E0E0E0; + --color-text-muted: #A0A0A0; + --radius: 12px; + --transition: 0.3s ease; +} + +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +html { + scroll-behavior: smooth; +} + +body { + font-family: 'IBM Plex Sans', system-ui, sans-serif; + background-color: var(--color-bg); + color: var(--color-text); + line-height: 1.6; + min-height: 100vh; +} + +h1, h2, h3, h4 { + font-family: 'Manrope', system-ui, sans-serif; + font-weight: 600; +} + +code, pre { + font-family: 'Fira Code', monospace; +} + +::selection { + background: var(--color-secondary); + color: var(--color-bg); +} + +@keyframes fadeInUp { + from { + opacity: 0; + transform: translateY(30px); + } + to { + opacity: 1; + transform: translateY(0); + } +} + +@keyframes fadeIn { + from { opacity: 0; } + to { opacity: 1; } +} + +@keyframes pulse { + 0%, 100% { opacity: 1; } + 50% { opacity: 0.7; } +} + +.animate-fade-in-up { + animation: fadeInUp 0.6s ease forwards; +} + +.animate-fade-in { + animation: fadeIn 0.4s ease forwards; +} + +a { + color: var(--color-secondary); + text-decoration: none; + transition: var(--transition); +} + +a:hover { + color: var(--color-primary); +} + +button { + cursor: pointer; + font-family: inherit; +} + +.container { + max-width: 1200px; + margin: 0 auto; + padding: 0 24px; +} + +section { + padding: 80px 0; +} diff --git a/src/app.d.ts b/src/app.d.ts new file mode 100644 index 0000000..da08e6d --- /dev/null +++ b/src/app.d.ts @@ -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 {}; diff --git a/src/app.html b/src/app.html new file mode 100644 index 0000000..394d00e --- /dev/null +++ b/src/app.html @@ -0,0 +1,15 @@ + + + + + + + + + + %sveltekit.head% + + +
%sveltekit.body%
+ + diff --git a/src/lib/assets/favicon.svg b/src/lib/assets/favicon.svg new file mode 100644 index 0000000..cc5dc66 --- /dev/null +++ b/src/lib/assets/favicon.svg @@ -0,0 +1 @@ +svelte-logo \ No newline at end of file diff --git a/src/lib/components/CopyField.svelte b/src/lib/components/CopyField.svelte new file mode 100644 index 0000000..34bebfb --- /dev/null +++ b/src/lib/components/CopyField.svelte @@ -0,0 +1,109 @@ + + +
+ {label} +
+ {value} + +
+
+ + diff --git a/src/lib/components/NavLink.svelte b/src/lib/components/NavLink.svelte new file mode 100644 index 0000000..cd5faf6 --- /dev/null +++ b/src/lib/components/NavLink.svelte @@ -0,0 +1,54 @@ + + + + {@render children()} + + + diff --git a/src/lib/components/ProjectCard.svelte b/src/lib/components/ProjectCard.svelte new file mode 100644 index 0000000..3718420 --- /dev/null +++ b/src/lib/components/ProjectCard.svelte @@ -0,0 +1,225 @@ + + +
+ {#if project.image} +
+ {project.title} +
+
+ {/if} + +
+
+

{project.title}

+ {#if project.status} + {project.status} + {/if} +
+ +

{project.description}

+ + {#if project.tech} +
+ {#each project.tech as tech} + {tech} + {/each} +
+ {/if} + +
+ {#if project.code} + + + + + + Code + + {/if} + + {#if project.liveUrl} + + + + + + + Live Demo + + {/if} + + {#if project.downloadUrl} + + + + + + + Download + + {/if} +
+
+
+ + diff --git a/src/lib/components/SocialItem.svelte b/src/lib/components/SocialItem.svelte new file mode 100644 index 0000000..d965b08 --- /dev/null +++ b/src/lib/components/SocialItem.svelte @@ -0,0 +1,144 @@ + + + + + + + +
+ + + + +
+
+ + \ No newline at end of file diff --git a/src/lib/components/TechItem.svelte b/src/lib/components/TechItem.svelte new file mode 100644 index 0000000..fcdf3a3 --- /dev/null +++ b/src/lib/components/TechItem.svelte @@ -0,0 +1,81 @@ + + +
+
+ {name[0]} +
+
+ {name} + {category} +
+
+ + diff --git a/src/lib/data/projects.json b/src/lib/data/projects.json new file mode 100644 index 0000000..b1ca4be --- /dev/null +++ b/src/lib/data/projects.json @@ -0,0 +1,35 @@ +[ + { + "id": "maltemedia", + "title": "Maltemedia", + "description": "A modern, fast, and secure application to stay updated with the latest news from different worlds.", + "image": "https://gitea.malxte.de/Bytemalte/marstemedia/raw/branch/main/public/logo.png", + "tech": ["Rust", "Nostr", "Tauri"], + "code": "https://gitea.malxte.de/Bytemalte/marstemedia", + "liveUrl": null, + "downloadUrl": "https://gitea.malxte.de/Bytemalte/marstemedia/releases/tag/v1", + "status": "v1" + }, + { + "id": "easy-nostr", + "title": "Easy-Nostr", + "description": "A Rust Crate that makes Nostr-SDK easy to use with preprogrammed functions to call.", + "image": null, + "tech": ["Rust", "Crate", "Nostr"], + "code": "https://gitea.malxte.de/Bytemalte/easy-nostr", + "liveUrl": null, + "downloadUrl": null, + "status": "v1" + }, + { + "id": "the-maltemedia-puls", + "title": "The Maltemedia Puls", + "description": "An animation to present Maltemedia.", + "image": null, + "tech": ["Svelte 5", "Web", "Animation"], + "code": "https://gitea.malxte.de/Bytemalte/the-maltemedia-puls", + "liveUrl": null, + "downloadUrl": null, + "status": "v1.0" + } +] diff --git a/src/lib/data/socials.json b/src/lib/data/socials.json new file mode 100644 index 0000000..95c8e73 --- /dev/null +++ b/src/lib/data/socials.json @@ -0,0 +1,30 @@ +[ + { + "id": "youtube", + "name": "YouTube", + "url": "https://youtube.com/@radixura", + "status": "active", + "color": "#FF0000" + }, + { + "id": "nostr", + "name": "Nostr", + "url": "https://njump.me/_@radixura.com", + "status": "active", + "color": "#E4405F" + }, + { + "id": "instagram", + "name": "Instagram", + "url": "https://instagram.com/radixura", + "status": "inactive", + "color": "#E4405F" + }, + { + "id": "tiktok", + "name": "TikTok", + "url": "https://tiktok.com/@radixura", + "status": "inactive", + "color": "#000000" + } +] diff --git a/src/lib/index.ts b/src/lib/index.ts new file mode 100644 index 0000000..856f2b6 --- /dev/null +++ b/src/lib/index.ts @@ -0,0 +1 @@ +// place files you want to import through the `$lib` alias in this folder. diff --git a/src/lib/types/project.ts b/src/lib/types/project.ts new file mode 100644 index 0000000..4b9c99b --- /dev/null +++ b/src/lib/types/project.ts @@ -0,0 +1,11 @@ +export interface Project { + id: string; + title: string; + description: string; + image?: string | null; + tech?: string[] | null; + code?: string | null; + liveUrl?: string | null; + downloadUrl?: string | null; + status?: string | null; +} diff --git a/src/lib/types/social.ts b/src/lib/types/social.ts new file mode 100644 index 0000000..6c1d85a --- /dev/null +++ b/src/lib/types/social.ts @@ -0,0 +1,7 @@ +export interface Social { + id: string; + name: string; + url: string; + status: 'active' | 'inactive'; + color?: string; +} \ No newline at end of file diff --git a/src/lib/utils/copyToClipboard.ts b/src/lib/utils/copyToClipboard.ts new file mode 100644 index 0000000..3263b32 --- /dev/null +++ b/src/lib/utils/copyToClipboard.ts @@ -0,0 +1,9 @@ +export async function copyToClipboard(text: string): Promise { + try { + await navigator.clipboard.writeText(text); + return true; + } catch (err) { + console.error('Failed to copy:', err); + return false; + } +} diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte new file mode 100644 index 0000000..bdf5ac5 --- /dev/null +++ b/src/routes/+layout.svelte @@ -0,0 +1,261 @@ + + + + + + +
+
+ + + + + +
+ + {#if mobileMenuOpen} + + {/if} +
+ +
+ +{@render children()} + + diff --git a/src/routes/+layout.ts b/src/routes/+layout.ts new file mode 100644 index 0000000..c01bb38 --- /dev/null +++ b/src/routes/+layout.ts @@ -0,0 +1 @@ +import '../app.css'; diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte new file mode 100644 index 0000000..4408308 --- /dev/null +++ b/src/routes/+page.svelte @@ -0,0 +1,526 @@ + + + + Radixura - Rust Developer + + + +
+ +
+
+
+
+ Rust Developer +
+ +

+ Building the future
+ with Rust +

+ +

+ Crafting high-performance applications, from desktop GUIs to + neural networks +

+
+ +
+ +
+
+ +
+
+
+
+ + +
+
+
+ +

Digital Identity

+
+ +
+
+

Nostr

+

NIP-05 verified address and public key

+
+
+ +
+
+ +
+
+
+ +
+

E-Mail

+

E-Mail Communication (optional better is Nostr)

+
+
+ +
+
+
+
+
+
+ + +
+
+
+ +

Social Media

+

Find me on various platforms

+
+ + +
+
+ + +
+
+
+ +

Technology Stack

+

The Rust ecosystem powers everything I build

+
+ +
+ {#each techStack as tech, i} + + {/each} +
+
+
+ + +
+
+
+

Want to see my work?

+

+ Explore my projects built with Rust and modern web + technologies +

+ + View Projects + + + + + +
+
+
+
+ + diff --git a/src/routes/+page.ts b/src/routes/+page.ts new file mode 100644 index 0000000..189f71e --- /dev/null +++ b/src/routes/+page.ts @@ -0,0 +1 @@ +export const prerender = true; diff --git a/src/routes/projects/+page.svelte b/src/routes/projects/+page.svelte new file mode 100644 index 0000000..e66ebca --- /dev/null +++ b/src/routes/projects/+page.svelte @@ -0,0 +1,216 @@ + + + + Projects | Radixura + + + +
+
+
+ +
+
+ +
+
+
+ {#each typedProjects as project, i} +
+ +
+ {/each} +
+
+
+ +
+
+
+

Have a project in mind?

+

Let's build something amazing together with Rust

+ +
+
+
+
+ + diff --git a/src/routes/projects/+page.ts b/src/routes/projects/+page.ts new file mode 100644 index 0000000..189f71e --- /dev/null +++ b/src/routes/projects/+page.ts @@ -0,0 +1 @@ +export const prerender = true; diff --git a/static/favicon.ico b/static/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..bda325eb3f636fcca5d66f515250df75305da55b GIT binary patch literal 32038 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 Rfut))^{Wch^E>SK{{>9aofQB8 literal 0 HcmV?d00001 diff --git a/static/radigura_white.svg b/static/radigura_white.svg new file mode 100644 index 0000000..b268a67 --- /dev/null +++ b/static/radigura_white.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + Radixura + TECHNOLOGY + + diff --git a/static/radixura.svg b/static/radixura.svg new file mode 100644 index 0000000..64d6e65 --- /dev/null +++ b/static/radixura.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + Radixura + TECHNOLOGY + + \ No newline at end of file diff --git a/static/radixura_bannar.svg b/static/radixura_bannar.svg new file mode 100644 index 0000000..3de519b --- /dev/null +++ b/static/radixura_bannar.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Radixura + + + + TECHNOLOGY + + + + impl Radixura { pub fn build() -> Self { ... } } + + diff --git a/static/radixura_icon.svg b/static/radixura_icon.svg new file mode 100644 index 0000000..1fd9126 --- /dev/null +++ b/static/radixura_icon.svg @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/svelte.config.js b/svelte.config.js new file mode 100644 index 0000000..e5a47a6 --- /dev/null +++ b/svelte.config.js @@ -0,0 +1,19 @@ +import adapter from '@sveltejs/adapter-static'; +import { relative, sep } from 'node:path'; + +/** @type {import('@sveltejs/kit').Config} */ +const config = { + compilerOptions: { + // defaults to rune mode for the project, except for `node_modules`. Can be removed in svelte 6. + runes: ({ filename }) => { + const relativePath = relative(import.meta.dirname, filename); + const pathSegments = relativePath.toLowerCase().split(sep); + const isExternalLibrary = pathSegments.includes('node_modules'); + + return isExternalLibrary ? undefined : true; + } + }, + kit: { adapter: adapter() } +}; + +export default config; diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..2c2ed3c --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,20 @@ +{ + "extends": "./.svelte-kit/tsconfig.json", + "compilerOptions": { + "rewriteRelativeImportExtensions": true, + "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 + // + // To make changes to top-level options such as include and exclude, we recommend extending + // the generated config; see https://svelte.dev/docs/kit/configuration#typescript +} diff --git a/vite.config.ts b/vite.config.ts new file mode 100644 index 0000000..bbf8c7d --- /dev/null +++ b/vite.config.ts @@ -0,0 +1,6 @@ +import { sveltekit } from '@sveltejs/kit/vite'; +import { defineConfig } from 'vite'; + +export default defineConfig({ + plugins: [sveltekit()] +});