feat(ui): render every application template except the loading screen as a Vue view

The scene chrome, cockpit, Display controls, command dock, layer panels,
Context rail, welcome card and Provider Settings move verbatim into
src/ui/views and mount into their hosts before the page is translated and
wired. Each view renders the same elements, attributes and text as its
template; Vue keeps whitespace between elements as one space, and no view
markup sits under a white-space: pre rule.

Template asset URLs stay literal, view files are left out of Prettier so
the markup is not reflowed, and the Node component loader moves to build/
and is exported as build/register-vue for host test runners. Hosts that do
not initialize Core's locale pass localePicker: false instead of editing
the markup.
This commit is contained in:
Sameh Khamis committed 2026-10-30 17:47:52 -07:00
1 parent 9d24945143
commit 6802c9c8b0
46 files changed
+258 -97

No files matched your search

+18
View File
@@ -136,3 +136,21 @@ test('the language already active neither asks nor reloads', () => {
view.restore();
}
});
test('a host without Core locales removes the picker instead of mounting it', () => {
const previous = globalThis.document;
let removed = 0;
const root = { remove: () => removed++ };
globalThis.document = {
getElementById: (id) => (id === 'locale-picker' ? root : null),
};
const shell = { services: {}, _localePickerEnabled: false };
try {
StyleManager.prototype._initLocaleSelector.call(shell);
assert.equal(removed, 1);
assert.equal(shell._localePicker, undefined);
} finally {
for (const unregister of shell._unsavedWorkChecks) unregister();
globalThis.document = previous;
}
});