feat: refine branded operator experience
Add the MBN-branded startup intro, semantic sidebar icons, and refined card-based operator visuals. Strengthen packaged UI and input smoke coverage for the updated experience.
This commit is contained in:
@@ -13,6 +13,7 @@
|
||||
const settingsWorkspace = document.getElementById("settings-workspace");
|
||||
const marketTabs = document.getElementById("market-tabs");
|
||||
const title = document.getElementById("workspace-title");
|
||||
const titleIcon = document.querySelector(".workspace-heading-icon");
|
||||
const shell = document.querySelector(".operator-shell");
|
||||
const splitter = document.getElementById("workspace-splitter");
|
||||
const playlistPanel = document.querySelector(".playlist-panel");
|
||||
@@ -102,6 +103,15 @@
|
||||
return null;
|
||||
}
|
||||
|
||||
function syncHeadingIcon(button) {
|
||||
const source = button && button.querySelector("svg.workspace-nav-icon[data-icon]");
|
||||
if (!titleIcon || !source) return;
|
||||
const next = source.cloneNode(true);
|
||||
next.removeAttribute("aria-hidden");
|
||||
titleIcon.dataset.icon = source.dataset.icon || "";
|
||||
titleIcon.replaceChildren(next);
|
||||
}
|
||||
|
||||
function refreshCurrentMenu() {
|
||||
const selected = selectedMenuButton(activeWorkspace);
|
||||
Array.from(navigation.querySelectorAll(".workspace-nav-item")).forEach(function (button) {
|
||||
@@ -143,6 +153,7 @@
|
||||
|
||||
activeWorkspace = name;
|
||||
refreshCurrentMenu();
|
||||
syncHeadingIcon(selectedButton);
|
||||
title.textContent = name === "catalog"
|
||||
? marketLabel(selectedMenuButton(name))
|
||||
: selected.title;
|
||||
@@ -306,6 +317,7 @@
|
||||
region.dataset.activeMarketTab = tabId;
|
||||
if (activeWorkspace === "catalog") {
|
||||
refreshCurrentMenu();
|
||||
syncHeadingIcon(button);
|
||||
title.textContent = marketLabel(button);
|
||||
}
|
||||
const authoritativeNativeRender = options &&
|
||||
|
||||
Reference in New Issue
Block a user