-
+
+
+
+ Could not reach the spreadlab API at {{ apiBaseUrl }}
+
+
+
+
+
+
+
diff --git a/web/src/components/PlaceholderPage.vue b/web/src/components/PlaceholderPage.vue
new file mode 100644
index 0000000..568e5d0
--- /dev/null
+++ b/web/src/components/PlaceholderPage.vue
@@ -0,0 +1,97 @@
+
+
+
+
+ Coming soon
+ {{ content.title }}
+ {{ content.body }}
+
+ Part of the planned free public resource. The interactive model is live on the
+ tab.
+
+
+
+
+
diff --git a/web/src/components/PlayerBar.vue b/web/src/components/PlayerBar.vue
index 0090ef7..31faf26 100644
--- a/web/src/components/PlayerBar.vue
+++ b/web/src/components/PlayerBar.vue
@@ -11,7 +11,10 @@ import { useSimStore } from '@/composables/useSimStore'
// The modal docks a second PlayerBar over the same store; only the page
// instance owns the global keyboard map so keys are not handled twice.
-const props = withDefaults(defineProps<{ globalKeys?: boolean }>(), { globalKeys: true })
+const props = withDefaults(defineProps<{ globalKeys?: boolean; wide?: boolean }>(), {
+ globalKeys: true,
+ wide: false,
+})
const store = useSimStore()
const playback = usePlayback()
@@ -76,7 +79,7 @@ onBeforeUnmount(() => {
-
+