diff --git a/starpilot/system/the_galaxy/assets/mobile/css/material.css b/starpilot/system/the_galaxy/assets/mobile/css/material.css index cf9ad1bed1..a7c25e3948 100644 --- a/starpilot/system/the_galaxy/assets/mobile/css/material.css +++ b/starpilot/system/the_galaxy/assets/mobile/css/material.css @@ -544,7 +544,7 @@ ul { list-style: none; margin: 0; padding: 0; } width: 100%; } -.liquid-glass-nav { +.blur-nav { position: fixed; bottom: calc(18px + env(safe-area-inset-bottom, 0px)); left: 50%; @@ -571,11 +571,11 @@ ul { list-style: none; margin: 0; padding: 0; } max-width: calc(100vw - 32px); } -[data-theme="light"] .liquid-glass-nav { +[data-theme="light"] .blur-nav { border: 1.5px solid var(--primary); } -.liquid-glass-nav .nav-item { +.blur-nav .nav-item { display: flex; flex-direction: column; align-items: center; @@ -592,28 +592,28 @@ ul { list-style: none; margin: 0; padding: 0; } cursor: pointer; } -.liquid-glass-nav .nav-item i { +.blur-nav .nav-item i { font-size: 1.3rem; margin-bottom: 2px; transition: transform var(--motion-fast); } -.liquid-glass-nav .nav-item:hover { +.blur-nav .nav-item:hover { color: var(--on-surface); background: rgba(255, 255, 255, 0.08); } -.liquid-glass-nav .nav-item:active i { +.blur-nav .nav-item:active i { transform: scale(0.88); } -.liquid-glass-nav .nav-item.active { +.blur-nav .nav-item.active { background: var(--glass-active-bg); color: var(--primary); font-weight: var(--fw-bold); } -.liquid-glass-nav .nav-item.active i { +.blur-nav .nav-item.active i { transform: translateY(-2px); } @@ -791,7 +791,7 @@ body.is-scrolling .gx-tile { .gx-row__desc { color: var(--text-muted); font-size: var(--fs-sm); - margin-top: 2px; + margin-top: 4px; line-height: 1.4; } @@ -807,14 +807,6 @@ body.is-scrolling .gx-tile { .gx-row--favorites { align-items: stretch; flex-direction: column; } .gx-row--favorites .gx-row__info { flex: none; } .gx-row--stack { align-items: stretch; flex-direction: column; } -/* Keep the native keyboard/touch picker, but wrap its verified label instead - of clipping Conditional Experimental at enlarged phone UI scales. */ -.gx-mode-select { position: relative; width: 100%; } -.gx-mode-select__label { display: flex; align-items: center; justify-content: space-between; gap: 12px; white-space: normal; } -.gx-mode-select__label span { min-width: 0; overflow-wrap: anywhere; } -.gx-mode-select__label i { flex-shrink: 0; } -.gx-mode-select select { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; } -.gx-mode-select:focus-within { outline: 2px solid var(--primary); outline-offset: 3px; border-radius: 16px; } .gx-row--stack .gx-row__info { flex: none; } .gx-row--stack .gx-field, .gx-row--stack .gx-slider-row { width: 100%; } @@ -981,7 +973,6 @@ input[type="range"].gx-slider:active::-webkit-slider-thumb { background: rgba(255, 255, 255, 0.9); } -select.gx-field { background: var(--surface-container-high); } textarea.gx-field { padding: var(--sp-3); border-radius: var(--radius-md); } input[type="color"].gx-color { @@ -1285,7 +1276,7 @@ button.gx-chip:hover { .gx-drawer.open { transform: translateX(0); } -.gx-drawer.open ~ .liquid-glass-nav { +.gx-drawer.open ~ .blur-nav { opacity: 0; pointer-events: none; transform: translateX(-50%) translateY(12px) translateZ(0); @@ -1935,75 +1926,6 @@ button.gx-chip:hover { flex: 0 1 240px; } -/* Custom dropdown standing in for a native + - + diff --git a/starpilot/system/the_galaxy/assets/mobile/js/components/LanguageSelector.js b/starpilot/system/the_galaxy/assets/mobile/js/components/LanguageSelector.js index 7878bc6248..ffd7ecda93 100644 --- a/starpilot/system/the_galaxy/assets/mobile/js/components/LanguageSelector.js +++ b/starpilot/system/the_galaxy/assets/mobile/js/components/LanguageSelector.js @@ -57,9 +57,9 @@ export const LanguageSelector = { {{ tr("Select language") }} {{ tr("Galaxy uses English when no language is selected.") }} - + diff --git a/starpilot/system/the_galaxy/assets/mobile/js/components/LongitudinalMode.js b/starpilot/system/the_galaxy/assets/mobile/js/components/LongitudinalMode.js index 6da0e8fcfc..fe9fbd1e53 100644 --- a/starpilot/system/the_galaxy/assets/mobile/js/components/LongitudinalMode.js +++ b/starpilot/system/the_galaxy/assets/mobile/js/components/LongitudinalMode.js @@ -10,7 +10,6 @@ export const LongitudinalMode = { data() { return { snapshot: null, pending: false, reading: false, expanded: {}, open: false, error: "", generation: 0, timer: null, disposed: false, modes: LONGITUDINAL_MODES } }, computed: { mode() { return this.snapshot?.mode || "" }, - label() { return this.modes.find(m => m.value === this.mode)?.label || "Unavailable" }, reason() { return this.snapshot?.locked ? this.snapshot.reason : this.snapshot ? "" : "Speed control state unavailable." }, locked() { return this.pending || !this.snapshot || this.snapshot.locked }, conditional() { return this.mode === "conditional_experimental" || this.mode === "conditional_chill" }, @@ -66,13 +65,10 @@ export const LongitudinalMode = { {{ reason }} {{ error }} -
- - -
+ + + + diff --git a/starpilot/system/the_galaxy/assets/mobile/js/components/SystemMonitor.js b/starpilot/system/the_galaxy/assets/mobile/js/components/SystemMonitor.js index cc55bea3f2..7b33ad3d75 100644 --- a/starpilot/system/the_galaxy/assets/mobile/js/components/SystemMonitor.js +++ b/starpilot/system/the_galaxy/assets/mobile/js/components/SystemMonitor.js @@ -164,7 +164,7 @@ export const SystemMonitor = {
eGPU VRAM{{ vramUsed == null ? '—' : number(vramUsed / 1073741824) + ' GiB' }}{{ number(vramTotal / 1073741824) }} GiB total · {{ number(100 * vramUsed / vramTotal, '%') }}
CPU cores
{{ core.name.toUpperCase() }} {{ number(core.percent, '%') }}
-
+

{{ rows.length }} processes shown. {{ snapshot.cpuPercent == null ? 'Collecting the first CPU sample…' : '' }}

diff --git a/starpilot/system/the_galaxy/assets/mobile/js/views/Logs.js b/starpilot/system/the_galaxy/assets/mobile/js/views/Logs.js index 3620d382ce..4201655d7e 100644 --- a/starpilot/system/the_galaxy/assets/mobile/js/views/Logs.js +++ b/starpilot/system/the_galaxy/assets/mobile/js/views/Logs.js @@ -11,6 +11,7 @@ const TABS = { errors: "Error Logs", tmux: "Tmux Live Log", monitor: "System Monitor", + discord: "Get Help via Discord", } function parseLogDate(filename) { @@ -38,7 +39,7 @@ export const Logs = { } }, setup() { - return useTabRouting("/logs", { troubleshoot: "troubleshoot", errors: "errors", tmux: "tmux", monitor: "monitor" }) + return useTabRouting("/logs", { troubleshoot: "troubleshoot", errors: "errors", tmux: "tmux", monitor: "monitor", discord: "discord" }) }, created() { this.stream = useLogStream({ endpoint: "/api/tmux_log/live", snapshotFn: () => api.tmuxSnapshot(), interval: 2000 }) @@ -228,6 +229,21 @@ export const Logs = { + + diff --git a/starpilot/system/the_galaxy/assets/mobile/js/views/ModelLaboratory.js b/starpilot/system/the_galaxy/assets/mobile/js/views/ModelLaboratory.js index af482000be..6e0d1c1abf 100644 --- a/starpilot/system/the_galaxy/assets/mobile/js/views/ModelLaboratory.js +++ b/starpilot/system/the_galaxy/assets/mobile/js/views/ModelLaboratory.js @@ -237,18 +237,18 @@ export const ModelLaboratory = {
{{ modelLabel(configuration.lateralModel) }}steers diff --git a/starpilot/system/the_galaxy/assets/mobile/js/views/ModelManager.js b/starpilot/system/the_galaxy/assets/mobile/js/views/ModelManager.js index 9dc4b2816a..3c6243c09b 100644 --- a/starpilot/system/the_galaxy/assets/mobile/js/views/ModelManager.js +++ b/starpilot/system/the_galaxy/assets/mobile/js/views/ModelManager.js @@ -281,47 +281,47 @@ export const ModelManager = {
Active Small - +
Active Big - +
Sort - +
- +
- - +
diff --git a/starpilot/system/the_galaxy/assets/mobile/js/views/Recordings.js b/starpilot/system/the_galaxy/assets/mobile/js/views/Recordings.js index 6037e43134..9d92f89948 100644 --- a/starpilot/system/the_galaxy/assets/mobile/js/views/Recordings.js +++ b/starpilot/system/the_galaxy/assets/mobile/js/views/Recordings.js @@ -63,7 +63,6 @@ export const Recordings = { playerError: "", segments: [], current: 0, - segmentMenuOpen: false, cameras: [], selectedCamera: "", logsRoute: null, @@ -213,7 +212,6 @@ export const Recordings = { if (!cameras.length) throw new Error("No camera video for this route.") this.segments = segments this.current = 0 - this.segmentMenuOpen = false this.cameras = cameras this.selectedCamera = cameras.includes("forward") ? "forward" : cameras[0] this.$nextTick(() => this.playSegment()) @@ -246,14 +244,7 @@ export const Recordings = { video.load() video.play().catch(() => {}) }, - toggleSegmentMenu() { - this.segmentMenuOpen = !this.segmentMenuOpen - if (this.segmentMenuOpen) { - this.$nextTick(() => this.$el.querySelector(".gx-segment-picker__item.active")?.scrollIntoView({ block: "nearest" })) - } - }, selectSegment(i) { - this.segmentMenuOpen = false if (i === this.current) return this.current = i this.playSegment() @@ -272,7 +263,6 @@ export const Recordings = { this.playerLoading = false this.playerError = "" this.segments = [] - this.segmentMenuOpen = false this.cameras = [] }, async openLogs(route) { @@ -368,12 +358,12 @@ export const Recordings = {
- +
@@ -469,7 +459,7 @@ export const Recordings = {
-