Commit: 9460164
Parent: 37c0103

SPAify

Mårten Åsberg committed on 2026-05-24 at 14:28
deno.lock +8 -2
diff --git a/deno.lock b/deno.lock
index 39f4224..a61fece 100644
@@ -4,7 +4,7 @@
"npm:@eslint/compat@^2.0.4": "2.1.0_eslint@10.4.0",
"npm:@eslint/js@^10.0.1": "10.0.1_eslint@10.4.0",
"npm:@playwright/test@^1.59.1": "1.60.0",
"npm:@sveltejs/adapter-auto@^7.0.1": "7.0.1_@sveltejs+kit@2.61.0__@sveltejs+vite-plugin-svelte@7.1.2___svelte@5.55.9___vite@8.0.14____@types+node@24.12.4___@types+node@24.12.4__svelte@5.55.9__typescript@6.0.3__vite@8.0.14___@types+node@24.12.4__@types+node@24.12.4_@sveltejs+vite-plugin-svelte@7.1.2__svelte@5.55.9__vite@8.0.14___@types+node@24.12.4__@types+node@24.12.4_@types+node@24.12.4_svelte@5.55.9_typescript@6.0.3_vite@8.0.14__@types+node@24.12.4",
"npm:@sveltejs/adapter-static@^3.0.10": "3.0.10_@sveltejs+kit@2.61.0__@sveltejs+vite-plugin-svelte@7.1.2___svelte@5.55.9___vite@8.0.14____@types+node@24.12.4___@types+node@24.12.4__svelte@5.55.9__typescript@6.0.3__vite@8.0.14___@types+node@24.12.4__@types+node@24.12.4",
"npm:@sveltejs/kit@^2.57.0": "2.61.0_@sveltejs+vite-plugin-svelte@7.1.2__svelte@5.55.9__vite@8.0.14___@types+node@24.12.4__@types+node@24.12.4_svelte@5.55.9_typescript@6.0.3_vite@8.0.14__@types+node@24.12.4_@types+node@24.12.4",
"npm:@sveltejs/vite-plugin-svelte@7": "7.1.2_svelte@5.55.9_vite@8.0.14__@types+node@24.12.4_@types+node@24.12.4",
"npm:@tensorflow/tfjs@^4.22.0": "4.22.0_seedrandom@3.0.5",
@@ -267,6 +267,12 @@
"@sveltejs/kit"
]
},
"@sveltejs/adapter-static@3.0.10_@sveltejs+kit@2.61.0__@sveltejs+vite-plugin-svelte@7.1.2___svelte@5.55.9___vite@8.0.14____@types+node@24.12.4___@types+node@24.12.4__svelte@5.55.9__typescript@6.0.3__vite@8.0.14___@types+node@24.12.4__@types+node@24.12.4": {
"integrity": "sha512-7D9lYFWJmB7zxZyTE/qxjksvMqzMuYrrsyh1f4AlZqeZeACPRySjbC3aFiY55wb1tWUaKOQG9PVbm74JcN2Iew==",
"dependencies": [
"@sveltejs/kit"
]
},
"@sveltejs/kit@2.61.0_@sveltejs+vite-plugin-svelte@7.1.2__svelte@5.55.9__vite@8.0.14___@types+node@24.12.4__@types+node@24.12.4_svelte@5.55.9_typescript@6.0.3_vite@8.0.14__@types+node@24.12.4_@types+node@24.12.4": {
"integrity": "sha512-beYjgUux5ITbZeL0vn6gipZlsQiXF1/08C/3F+vlbDvthb/CTgYpZsYPdRIi9RxgTwRSkKIvnxyl+ViZlX4q5A==",
"dependencies": [
@@ -1538,7 +1544,7 @@
"npm:@eslint/compat@^2.0.4",
"npm:@eslint/js@^10.0.1",
"npm:@playwright/test@^1.59.1",
"npm:@sveltejs/adapter-auto@^7.0.1",
"npm:@sveltejs/adapter-static@^3.0.10",
"npm:@sveltejs/kit@^2.57.0",
"npm:@sveltejs/vite-plugin-svelte@7",
"npm:@tensorflow/tfjs@^4.22.0",
package.json +1 -1
diff --git a/package.json b/package.json
index bf3be0f..448dc40 100644
@@ -22,7 +22,7 @@
"@eslint/compat": "^2.0.4",
"@eslint/js": "^10.0.1",
"@playwright/test": "^1.59.1",
"@sveltejs/adapter-auto": "^7.0.1",
"@sveltejs/adapter-static": "^3.0.10",
"@sveltejs/kit": "^2.57.0",
"@sveltejs/vite-plugin-svelte": "^7.0.0",
"@types/leaflet": "^1.9.16",
src/app.html +4 -2
diff --git a/src/app.html b/src/app.html
index 00b3155..3369637 100644
@@ -4,9 +4,11 @@
<meta charset="utf-8" />
<meta
name="viewport"
content="width=device-width, initial-scale=1, viewport-fit=cover"
content="width=device-width, initial-scale=1, viewport-fit=cover, user-scalable=0"
/>
<meta name="theme-color" content="#162419" />
<link rel="icon" href="%sveltekit.assets%/favicon.svg" />
<meta name="theme-color" content="#3a1810" />
<link rel="manifest" href="%sveltekit.assets%/manifest.json" />
%sveltekit.head%
</head>
<body data-sveltekit-preload-data="hover">
src/lib/assets/favicon.svg +0 -53
diff --git a/src/lib/assets/favicon.svg b/src/lib/assets/favicon.svg
deleted file mode 100644
index aeeb270..0000000
@@ -1,53 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 520 520" width="520" height="520">
<defs>
<linearGradient id="sky" x1="0" y1="0" x2="0" y2="1">
<stop offset="0%" stop-color="#f0c96b"></stop>
<stop offset="50%" stop-color="#e89a3a"></stop>
<stop offset="100%" stop-color="#b85a1c"></stop>
</linearGradient>
<clipPath id="field-clip">
<path d="M 100 270 Q 180 220 260 240 Q 340 260 420 230 L 420 380 Q 340 400 260 385 Q 180 370 100 390 Z"></path>
</clipPath>
</defs>
<path d="M 260 30 L 308 60 L 360 50 L 380 95 L 430 110 L 425 165 L 460 200 L 440 250 L 460 300 L 425 335 L 430 390 L 380 405 L 360 450 L 308 440 L 260 470 L 212 440 L 160 450 L 140 405 L 90 390 L 95 335 L 60 300 L 80 250 L 60 200 L 95 165 L 90 110 L 140 95 L 160 50 L 212 60 Z" fill="#3a1810" stroke="#1a0808" stroke-width="3"></path>
<path d="M 260 50 L 305 78 L 350 70 L 366 108 L 410 122 L 405 168 L 435 200 L 418 244 L 435 290 L 405 322 L 410 368 L 366 382 L 350 420 L 305 412 L 260 440 L 215 412 L 170 420 L 154 382 L 110 368 L 115 322 L 85 290 L 102 244 L 85 200 L 115 168 L 110 122 L 154 108 L 170 70 L 215 78 Z" fill="url(#sky)" stroke="#1a0808" stroke-width="2" stroke-dasharray="6 4"></path>
<path d="M 100 270 Q 180 220 260 240 Q 340 260 420 230 L 420 380 Q 340 400 260 385 Q 180 370 100 390 Z" fill="#e89a3a" stroke="#1a0808" stroke-width="2.5"></path>
<g clip-path="url(#field-clip)">
<circle cx="260" cy="380" r="120" fill="#fff4d6"></circle>
</g>
<path d="M 100 270 Q 180 220 260 240 Q 340 260 420 230 L 420 380 Q 340 400 260 385 Q 180 370 100 390 Z" fill="none" stroke="#1a0808" stroke-width="2.5"></path>
<g transform="translate(260 295)">
<path d="M -28 6 Q -68 -8 -78 14 Q -50 20 -28 18 Z" fill="#1a0808"></path>
<ellipse cx="0" cy="0" rx="38" ry="26" fill="#c4253a"></ellipse>
<path d="M -28 8 Q 0 24 28 18 Q 36 10 32 2 Q 0 14 -28 8 Z" fill="#7a0e1f"></path>
<path d="M -16 -16 Q 22 -22 32 -2 Q 18 4 -8 0 Q -22 -8 -16 -16 Z" fill="#1a0808"></path>
<ellipse cx="8" cy="-10" rx="10" ry="3" fill="#f0c96b"></ellipse>
<circle cx="30" cy="-14" r="18" fill="#c4253a"></circle>
<circle cx="38" cy="-16" r="5" fill="#fff4d6"></circle>
<circle cx="38" cy="-16" r="2.5" fill="#1a0808"></circle>
<polygon points="48,-14 74,-10 48,-8" fill="#1a0808"></polygon>
</g>
<path d="M 130 105 Q 260 75 390 105 L 390 145 Q 260 120 130 145 Z" fill="#c4253a" stroke="#1a0808" stroke-width="3"></path>
<path id="textCurve" d="M 135 110 Q 260 82 385 110" stroke="#fff4d6" stroke-width="1.5" fill="none" stroke-dasharray="5 3"></path>
<text x="260" y="135" text-anchor="end" transform="translate(0, 30)" font-family="system-ui, sans-serif" font-size="34" font-weight="900" fill="#fff4d6" letter-spacing="3">
<textPath href="#textCurve" startOffset="-25%">BirdGO</textPath>
</text>
<path d="M 150 395 L 370 395 L 360 430 L 160 430 Z" fill="#fff4d6" stroke="#1a0808" stroke-width="3"></path>
<text x="260" y="420" text-anchor="middle" font-family="monospace" font-size="18" font-weight="700" fill="#3a1810" letter-spacing="4">EST · 2026</text>
</svg>
\ No newline at end of file
src/routes/+layout.svelte +0 -7
diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte
index 233ac22..18cc4f0 100644
@@ -1,17 +1,10 @@
<script lang="ts">
import { resolve } from "$app/paths";
import { page } from "$app/stores";
import favicon from "$lib/assets/favicon.svg";
import GpsDialog from "$lib/components/GpsDialog.svelte";
let { children } = $props();
</script>
<svelte:head>
<link rel="icon" href={favicon} />
<link rel="manifest" href="/manifest.json" />
<meta name="theme-color" content="#3a1810" />
</svelte:head>
<GpsDialog />
<main>
src/routes/+page.ts +5 -0
diff --git a/src/routes/+page.ts b/src/routes/+page.ts
new file mode 100644
index 0000000..a120872
@@ -0,0 +1,5 @@
export const load = () => {
return {
title: "BirdGO",
};
};
svelte.config.js +17 -11
diff --git a/svelte.config.js b/svelte.config.js
index 0c3412e..77d4b15 100644
@@ -1,17 +1,23 @@
import adapter from '@sveltejs/adapter-auto';
import adapter from "@sveltejs/adapter-static";
/** @type {import('@sveltejs/kit').Config} */
const config = {
compilerOptions: {
// Force runes mode for the project, except for libraries. Can be removed in svelte 6.
runes: ({ filename }) => (filename.split(/[/\\]/).includes('node_modules') ? undefined : true)
},
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()
}
compilerOptions: {
// Force runes mode for the project, except for libraries. Can be removed in svelte 6.
runes: ({ filename }) =>
filename.split(/[/\\]/).includes("node_modules") ? undefined : true,
},
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({
fallback: "index.html",
}),
paths: {
base: process.env.BASE_PATH ?? "/",
},
},
};
export default config;
vite.config.ts +1 -1
diff --git a/vite.config.ts b/vite.config.ts
index bbf8c7d..fce9e87 100644
@@ -2,5 +2,5 @@ import { sveltekit } from '@sveltejs/kit/vite';
import { defineConfig } from 'vite';
export default defineConfig({
plugins: [sveltekit()]
plugins: [sveltekit()],
});