+
+
+ ⚠️ Experimental Features
+
+ These features may change, break, or be removed without notice, use at your own
+ risk.
+
+
+
+
+
+
+
+
+
+
diff --git a/ts/routes/preferences/+page.ts b/ts/routes/preferences/+page.ts
new file mode 100644
index 00000000000..03d19aa0ee8
--- /dev/null
+++ b/ts/routes/preferences/+page.ts
@@ -0,0 +1,16 @@
+// Copyright: Ankitects Pty Ltd and contributors
+// License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
+import { autoSavingPrefs } from "$lib/sveltelib/preferences";
+import type { PageLoad } from "./$types";
+import { getConfigJsonObject, setConfigJsonObject } from "./json";
+
+const CONFIG_KEY = "experimentalFeatures";
+
+export const load = (async () => {
+ const labPerfs = await autoSavingPrefs(
+ () => getConfigJsonObject(CONFIG_KEY),
+ ($config) => setConfigJsonObject(CONFIG_KEY, $config),
+ );
+
+ return { labPerfs };
+}) satisfies PageLoad;
diff --git a/ts/routes/preferences/LabItem.svelte b/ts/routes/preferences/LabItem.svelte
new file mode 100644
index 00000000000..ca285b977e9
--- /dev/null
+++ b/ts/routes/preferences/LabItem.svelte
@@ -0,0 +1,47 @@
+
+
+
+