diff --git a/server/shell.ts b/server/shell.ts index 4d1dec29..7a72ee95 100644 --- a/server/shell.ts +++ b/server/shell.ts @@ -55,6 +55,7 @@ const FAVICON_BADGE_MAP: Record = { rdata: { badge: "r📊", color: "#d8b4fe" }, ragents: { badge: "r🤖", color: "#6ee7b7" }, rids: { badge: "r🪪", color: "#6ee7b7" }, + rcred: { badge: "r⭐", color: "#fbbf24" }, rstack: { badge: "r✨", color: "#c4b5fd" }, }; @@ -63,7 +64,7 @@ function faviconScript(moduleId: string): string { const b = FAVICON_BADGE_MAP[moduleId]; if (!b) return ''; const json = JSON.stringify(b); - return ``; + return ``; } // ── Content-hash cache busting ── diff --git a/shared/components/rstack-app-switcher.ts b/shared/components/rstack-app-switcher.ts index 52f283d0..b1ac517d 100644 --- a/shared/components/rstack-app-switcher.ts +++ b/shared/components/rstack-app-switcher.ts @@ -54,6 +54,7 @@ const MODULE_BADGES: Record = { rauctions: { badge: "r🎭", color: "#fca5a5" }, // red-300 // Govern rgov: { badge: "r⚖️", color: "#94a3b8" }, // slate-400 + rcred: { badge: "r⭐", color: "#fbbf24" }, // amber-400 // Media rphotos: { badge: "r📸", color: "#f9a8d4" }, // pink-200 rfiles: { badge: "r📁", color: "#67e8f9" }, // cyan-300 @@ -351,7 +352,7 @@ export class RStackAppSwitcher extends HTMLElement { #renderCatalogItem(m: AppSwitcherModule, enabled: boolean): string { const badgeInfo = MODULE_BADGES[m.id]; const badgeHtml = badgeInfo - ? `${badgeInfo.badge}` + ? `r${badgeInfo.badge.slice(1)}` : `${m.icon}`; const cat = MODULE_CATEGORIES[m.id] || ''; @@ -375,7 +376,7 @@ export class RStackAppSwitcher extends HTMLElement { #renderItem(m: AppSwitcherModule, current: string): string { const badgeInfo = MODULE_BADGES[m.id]; const badgeHtml = badgeInfo - ? `${badgeInfo.badge}` + ? `r${badgeInfo.badge.slice(1)}` : `${m.icon}`; const space = this.#getSpaceSlug(); @@ -400,7 +401,7 @@ export class RStackAppSwitcher extends HTMLElement { ${badgeHtml}
- ${brandR(m.name)} + ${m.name} ${scopeBadge} ${m.description} @@ -419,10 +420,10 @@ export class RStackAppSwitcher extends HTMLElement { const badgeInfo = currentMod ? MODULE_BADGES[currentMod.id] : null; const triggerContent = badgeInfo - ? `${badgeInfo.badge} ${brandR(currentMod!.name)}` + ? `r${badgeInfo.badge.slice(1)} ${currentMod!.name}` : currentMod - ? `${currentMod.icon} ${brandR(currentMod.name)}` - : `r✨ rSpace`; + ? `${currentMod.icon} ${currentMod.name}` + : `r rSpace`; this.#shadow.innerHTML = ` diff --git a/shared/components/rstack-tab-bar.ts b/shared/components/rstack-tab-bar.ts index c39d66e8..3426fb6a 100644 --- a/shared/components/rstack-tab-bar.ts +++ b/shared/components/rstack-tab-bar.ts @@ -55,6 +55,7 @@ const MODULE_BADGES: Record = { rtasks: { badge: "r📋", color: "#cbd5e1" }, rschedule: { badge: "r⏱", color: "#a5b4fc" }, rids: { badge: "r🪪", color: "#6ee7b7" }, + rcred: { badge: "r⭐", color: "#fbbf24" }, rstack: { badge: "r✨", color: "" }, }; @@ -464,7 +465,7 @@ export class RStackTabBar extends HTMLElement { ${isSpaceLayer ? `data-space-slug="${layer.spaceSlug}"` : ""} draggable="true"> - ${badge?.badge || layer.moduleId.slice(0, 2)} + ${badge ? `r${badge.badge.slice(1)}` : layer.moduleId.slice(0, 2)} ${layer.label} ${spaceTag}${readOnlyTag} @@ -538,7 +539,7 @@ export class RStackTabBar extends HTMLElement { #renderAddMenuItem(m: { id: string; name: string; icon: string; description: string }, isOpen: boolean): string { const badge = MODULE_BADGES[m.id]; const badgeHtml = badge - ? `${badge.badge}` + ? `r${badge.badge.slice(1)}` : `${m.icon}`; const openClass = isOpen ? " add-menu-item--open" : ""; @@ -605,7 +606,7 @@ export class RStackTabBar extends HTMLElement { data-layer-id="${layer.id}" style="--layer-color:${color}; transform: translateZ(${z}px);">
- ${badge?.badge || layer.moduleId.slice(0, 2)} + ${badge ? `r${badge.badge.slice(1)}` : layer.moduleId.slice(0, 2)} ${layer.label}
${hasIO ? `