diff --git a/website/src/lib/components/embedding/Embedding.svelte b/website/src/lib/components/embedding/Embedding.svelte index 2b99f094..62f719d8 100644 --- a/website/src/lib/components/embedding/Embedding.svelte +++ b/website/src/lib/components/embedding/Embedding.svelte @@ -6,7 +6,6 @@ import Map from '$lib/components/Map.svelte'; import LayerControl from '$lib/components/layer-control/LayerControl.svelte'; import OpenIn from '$lib/components/embedding/OpenIn.svelte'; - import { gpxStatistics, slicedGPXStatistics, @@ -22,6 +21,7 @@ import { selection } from '$lib/components/file-list/Selection'; import { ListFileItem } from '$lib/components/file-list/FileList'; import { allowedEmbeddingBasemaps, type EmbeddingOptions } from './Embedding'; + import { mode, setMode } from 'mode-watcher'; $embedding = true; @@ -44,7 +44,8 @@ directionMarkers: false, distanceUnits: 'metric', velocityUnits: 'speed', - temperatureUnits: 'celsius' + temperatureUnits: 'celsius', + theme: 'system' }; function applyOptions() { @@ -160,6 +161,10 @@ if (options.temperatureUnits !== $temperatureUnits) { $temperatureUnits = options.temperatureUnits; } + + if (options.theme !== $mode) { + setMode(options.theme); + } } onMount(() => { @@ -168,6 +173,7 @@ prevSettings.distanceUnits = $distanceUnits; prevSettings.velocityUnits = $velocityUnits; prevSettings.temperatureUnits = $temperatureUnits; + prevSettings.theme = $mode ?? 'system'; }); $: if (options) { @@ -199,6 +205,10 @@ $temperatureUnits = prevSettings.temperatureUnits; } + if ($mode !== prevSettings.theme) { + setMode(prevSettings.theme); + } + $selection.clear(); $fileObservers.clear(); $fileOrder = $fileOrder.filter((id) => !id.includes('embed')); diff --git a/website/src/lib/components/embedding/Embedding.ts b/website/src/lib/components/embedding/Embedding.ts index 3fe1870c..fd69a1b3 100644 --- a/website/src/lib/components/embedding/Embedding.ts +++ b/website/src/lib/components/embedding/Embedding.ts @@ -20,6 +20,7 @@ export type EmbeddingOptions = { distanceUnits: 'metric' | 'imperial', velocityUnits: 'speed' | 'pace', temperatureUnits: 'celsius' | 'fahrenheit', + theme: 'system' | 'light' | 'dark', }; export const defaultEmbeddingOptions = { @@ -42,6 +43,7 @@ export const defaultEmbeddingOptions = { distanceUnits: 'metric', velocityUnits: 'speed', temperatureUnits: 'celsius', + theme: 'system', }; export function getDefaultEmbeddingOptions(): EmbeddingOptions { diff --git a/website/src/lib/components/embedding/EmbeddingPlayground.svelte b/website/src/lib/components/embedding/EmbeddingPlayground.svelte index bfea7b9c..12dc83c9 100644 --- a/website/src/lib/components/embedding/EmbeddingPlayground.svelte +++ b/website/src/lib/components/embedding/EmbeddingPlayground.svelte @@ -243,6 +243,23 @@ +