feat(ui): add a desktop panel rail to each sidebar

Each side stack hosts a Vue rail listing its panels; selecting one opens it
through PanelChrome. The shell owns one Vue runtime and Pinia instance, and a
panel store mirrors each side's panels from the DOM. The rail hides with its
stack, in Cockpit, clean view and recording, and on phones. Panels without a
catalog entry get a generic item, and Data Layers leaves the rail while the
f shortcut hides it.
This commit is contained in:
Sameh Khamis committed 2026-10-30 16:41:29 -07:00
1 parent eed7657516
commit 3d5d3ef014
29 files changed
+627 -32

No files matched your search

+23 -2
View File
@@ -876,9 +876,18 @@
"src/ui/statusBadge.js",
"src/scopeMaskPolicy.js",
"src/visualStylePolicy.js",
"src/ui/stores/panels.js",
"src/ui/panelRailCatalog.js",
"src/ui/vueRuntime.js",
"src/ui/kit/UiIcon.vue",
"src/ui/kit/rail.js",
"src/ui/kit/UiTooltip.vue",
"src/ui/kit/UiRail.vue",
"src/ui/PanelRailView.vue",
"src/ui/panelNavigation.js",
"src/ui/panelAccordion.js"
],
"external": ["cesium"]
"external": ["cesium", "vue", "pinia"]
},
"ui-styles": {
"exports": ["./ui/styles"],
@@ -2813,6 +2822,15 @@
"src/sceneCommandRelease.js",
"src/scopeMaskPolicy.js",
"src/visualStylePolicy.js",
"src/ui/stores/panels.js",
"src/ui/panelRailCatalog.js",
"src/ui/vueRuntime.js",
"src/ui/kit/UiIcon.vue",
"src/ui/kit/UiTooltip.vue",
"src/ui/kit/rail.js",
"src/ui/kit/UiRail.vue",
"src/ui/PanelRailView.vue",
"src/ui/panelNavigation.js",
"src/ui/panelAccordion.js"
],
"external": [
@@ -2824,7 +2842,9 @@
"pbf",
"satellite.js",
"mapillary-js",
"@jtarrio/webrtlsdr"
"@jtarrio/webrtlsdr",
"vue",
"pinia"
]
},
"application-catalog": {
@@ -3607,6 +3627,7 @@
"src/i18n/locales/uk.json",
"src/i18n/locales/zh-CN.json",
"src/i18n/locales/zh-Hant.json",
"src/ui/panelRailCatalog.js",
"src/ui/panelAccordion.js"
],
"external": []