diff --git a/website/package-lock.json b/website/package-lock.json
index 0a1cc80a..76a349ba 100644
--- a/website/package-lock.json
+++ b/website/package-lock.json
@@ -10,7 +10,7 @@
"dependencies": {
"@internationalized/date": "^3.5.4",
"@mapbox/mapbox-gl-geocoder": "^5.0.2",
- "bits-ui": "^0.21.11",
+ "bits-ui": "^0.21.12",
"chart.js": "^4.4.3",
"clsx": "^2.1.1",
"dexie": "^4.0.7",
@@ -2419,9 +2419,9 @@
}
},
"node_modules/bits-ui": {
- "version": "0.21.11",
- "resolved": "https://registry.npmjs.org/bits-ui/-/bits-ui-0.21.11.tgz",
- "integrity": "sha512-pFS/9z1qLaPZwb+9Tm0YS4iBp+ClsJBARMZWFOjv0lGCYpzAN7lx4eNk3SbSB5QMBUKwoVjr9Rai71ROq3RD1Q==",
+ "version": "0.21.12",
+ "resolved": "https://registry.npmjs.org/bits-ui/-/bits-ui-0.21.12.tgz",
+ "integrity": "sha512-Cf0iB+ZKwA0ZjkpixrhrZK9PC6pGPFleW/65Xc/z0lpGvWaFtdOhiYEntCHHxZ0VihP3aJaG0OBhUBIbmAePaA==",
"dependencies": {
"@internationalized/date": "^3.5.1",
"@melt-ui/svelte": "0.76.2",
diff --git a/website/package.json b/website/package.json
index 2d946283..8b6376d5 100644
--- a/website/package.json
+++ b/website/package.json
@@ -48,7 +48,7 @@
"dependencies": {
"@internationalized/date": "^3.5.4",
"@mapbox/mapbox-gl-geocoder": "^5.0.2",
- "bits-ui": "^0.21.11",
+ "bits-ui": "^0.21.12",
"chart.js": "^4.4.3",
"clsx": "^2.1.1",
"dexie": "^4.0.7",
diff --git a/website/src/lib/components/Welcome.svelte b/website/src/lib/components/Welcome.svelte
new file mode 100644
index 00000000..4d3a344a
--- /dev/null
+++ b/website/src/lib/components/Welcome.svelte
@@ -0,0 +1,29 @@
+
+
+ ($showWelcomeMessage = false)}
+>
+
+
+
+
+ Welcome to the new version of gpx.studio!
+
+
+ The website is still under development and may contain bugs.
+ Please report any issues you find by email or on GitHub.
+
+
+
+ Let's go!
+
+
+
diff --git a/website/src/lib/components/ui/alert-dialog/alert-dialog-action.svelte b/website/src/lib/components/ui/alert-dialog/alert-dialog-action.svelte
new file mode 100644
index 00000000..57d643b4
--- /dev/null
+++ b/website/src/lib/components/ui/alert-dialog/alert-dialog-action.svelte
@@ -0,0 +1,21 @@
+
+
+
+
+
diff --git a/website/src/lib/components/ui/alert-dialog/alert-dialog-cancel.svelte b/website/src/lib/components/ui/alert-dialog/alert-dialog-cancel.svelte
new file mode 100644
index 00000000..ef0a953c
--- /dev/null
+++ b/website/src/lib/components/ui/alert-dialog/alert-dialog-cancel.svelte
@@ -0,0 +1,21 @@
+
+
+
+
+
diff --git a/website/src/lib/components/ui/alert-dialog/alert-dialog-content.svelte b/website/src/lib/components/ui/alert-dialog/alert-dialog-content.svelte
new file mode 100644
index 00000000..256a5fff
--- /dev/null
+++ b/website/src/lib/components/ui/alert-dialog/alert-dialog-content.svelte
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
diff --git a/website/src/lib/components/ui/alert-dialog/alert-dialog-description.svelte b/website/src/lib/components/ui/alert-dialog/alert-dialog-description.svelte
new file mode 100644
index 00000000..18acce96
--- /dev/null
+++ b/website/src/lib/components/ui/alert-dialog/alert-dialog-description.svelte
@@ -0,0 +1,16 @@
+
+
+
+
+
diff --git a/website/src/lib/components/ui/alert-dialog/alert-dialog-footer.svelte b/website/src/lib/components/ui/alert-dialog/alert-dialog-footer.svelte
new file mode 100644
index 00000000..a235d1f8
--- /dev/null
+++ b/website/src/lib/components/ui/alert-dialog/alert-dialog-footer.svelte
@@ -0,0 +1,16 @@
+
+
+
+
+
diff --git a/website/src/lib/components/ui/alert-dialog/alert-dialog-header.svelte b/website/src/lib/components/ui/alert-dialog/alert-dialog-header.svelte
new file mode 100644
index 00000000..2650ef9f
--- /dev/null
+++ b/website/src/lib/components/ui/alert-dialog/alert-dialog-header.svelte
@@ -0,0 +1,13 @@
+
+
+
+
+
diff --git a/website/src/lib/components/ui/alert-dialog/alert-dialog-overlay.svelte b/website/src/lib/components/ui/alert-dialog/alert-dialog-overlay.svelte
new file mode 100644
index 00000000..3081d756
--- /dev/null
+++ b/website/src/lib/components/ui/alert-dialog/alert-dialog-overlay.svelte
@@ -0,0 +1,21 @@
+
+
+
diff --git a/website/src/lib/components/ui/alert-dialog/alert-dialog-portal.svelte b/website/src/lib/components/ui/alert-dialog/alert-dialog-portal.svelte
new file mode 100644
index 00000000..e2272192
--- /dev/null
+++ b/website/src/lib/components/ui/alert-dialog/alert-dialog-portal.svelte
@@ -0,0 +1,9 @@
+
+
+
+
+
diff --git a/website/src/lib/components/ui/alert-dialog/alert-dialog-title.svelte b/website/src/lib/components/ui/alert-dialog/alert-dialog-title.svelte
new file mode 100644
index 00000000..7f98004c
--- /dev/null
+++ b/website/src/lib/components/ui/alert-dialog/alert-dialog-title.svelte
@@ -0,0 +1,14 @@
+
+
+
+
+
diff --git a/website/src/lib/components/ui/alert-dialog/index.ts b/website/src/lib/components/ui/alert-dialog/index.ts
new file mode 100644
index 00000000..be56dd7b
--- /dev/null
+++ b/website/src/lib/components/ui/alert-dialog/index.ts
@@ -0,0 +1,40 @@
+import { AlertDialog as AlertDialogPrimitive } from "bits-ui";
+
+import Title from "./alert-dialog-title.svelte";
+import Action from "./alert-dialog-action.svelte";
+import Cancel from "./alert-dialog-cancel.svelte";
+import Portal from "./alert-dialog-portal.svelte";
+import Footer from "./alert-dialog-footer.svelte";
+import Header from "./alert-dialog-header.svelte";
+import Overlay from "./alert-dialog-overlay.svelte";
+import Content from "./alert-dialog-content.svelte";
+import Description from "./alert-dialog-description.svelte";
+
+const Root = AlertDialogPrimitive.Root;
+const Trigger = AlertDialogPrimitive.Trigger;
+
+export {
+ Root,
+ Title,
+ Action,
+ Cancel,
+ Portal,
+ Footer,
+ Header,
+ Trigger,
+ Overlay,
+ Content,
+ Description,
+ //
+ Root as AlertDialog,
+ Title as AlertDialogTitle,
+ Action as AlertDialogAction,
+ Cancel as AlertDialogCancel,
+ Portal as AlertDialogPortal,
+ Footer as AlertDialogFooter,
+ Header as AlertDialogHeader,
+ Trigger as AlertDialogTrigger,
+ Overlay as AlertDialogOverlay,
+ Content as AlertDialogContent,
+ Description as AlertDialogDescription,
+};
diff --git a/website/src/lib/db.ts b/website/src/lib/db.ts
index 53a24f0a..3f44184f 100644
--- a/website/src/lib/db.ts
+++ b/website/src/lib/db.ts
@@ -108,6 +108,7 @@ export const settings = {
defaultWeight: dexieSettingStore('defaultWeight', 5),
bottomPanelSize: dexieSettingStore('bottomPanelSize', 170),
rightPanelSize: dexieSettingStore('rightPanelSize', 240),
+ showWelcomeMessage: dexieUninitializedSettingStore('showWelcomeMessage', true),
};
// Wrap Dexie live queries in a Svelte store to avoid triggering the query for every subscriber
diff --git a/website/src/routes/[...language]/app/+page.svelte b/website/src/routes/[...language]/app/+page.svelte
index a034ab0b..8f2a7769 100644
--- a/website/src/routes/[...language]/app/+page.svelte
+++ b/website/src/routes/[...language]/app/+page.svelte
@@ -17,6 +17,7 @@
import { page } from '$app/stores';
import { languages } from '$lib/languages';
import { getURLForLanguage } from '$lib/utils';
+ import Welcome from '$lib/components/Welcome.svelte';
const {
verticalFileView,
@@ -99,6 +100,7 @@
{/if}
+