Merge branch 'dev'

This commit is contained in:
Jeff Emmett 2026-02-27 17:16:40 -08:00
commit d64bedf647
7 changed files with 26 additions and 2 deletions

View File

@ -72,6 +72,7 @@ export function renderShell(opts: ShellOptions): string {
<body data-theme="${theme}">
<header class="rstack-header" data-theme="${theme}">
<div class="rstack-header__left">
<a href="/" style="display:flex;align-items:center;margin-right:4px"><img src="/logo.png" alt="rSpace" class="rstack-header__logo"></a>
<rstack-app-switcher current="${escapeAttr(moduleId)}"></rstack-app-switcher>
<rstack-space-switcher current="${escapeAttr(spaceSlug)}" name="${escapeAttr(spaceName || spaceSlug)}"></rstack-space-switcher>
</div>
@ -467,6 +468,7 @@ export function renderModuleLanding(opts: ModuleLandingOptions): string {
<body data-theme="${theme}">
<header class="rstack-header" data-theme="${theme}">
<div class="rstack-header__left">
<a href="/" style="display:flex;align-items:center;margin-right:4px"><img src="/logo.png" alt="rSpace" class="rstack-header__logo"></a>
<rstack-app-switcher current="${escapeAttr(mod.id)}"></rstack-app-switcher>
<a class="rstack-header__demo-btn" href="${demoUrl}">Try Demo</a>
</div>

View File

@ -363,6 +363,7 @@
<body data-theme="dark">
<header class="rstack-header" data-theme="dark">
<div class="rstack-header__left">
<a href="/" style="display:flex;align-items:center;margin-right:4px"><img src="/logo.png" alt="rSpace" class="rstack-header__logo"></a>
<rstack-app-switcher current=""></rstack-app-switcher>
<rstack-space-switcher current="" name="Spaces"></rstack-space-switcher>
</div>
@ -428,10 +429,12 @@
import { RStackIdentity } from "@shared/components/rstack-identity";
import { RStackAppSwitcher } from "@shared/components/rstack-app-switcher";
import { RStackSpaceSwitcher } from "@shared/components/rstack-space-switcher";
import { RStackMi } from "@shared/components/rstack-mi";
RStackIdentity.define();
RStackAppSwitcher.define();
RStackSpaceSwitcher.define();
RStackMi.define();
fetch("/api/modules").then(r => r.json()).then(data => {
document.querySelector("rstack-app-switcher")?.setModules(data.modules || []);

View File

@ -754,6 +754,7 @@
<body data-theme="light">
<header class="rstack-header" data-theme="light">
<div class="rstack-header__left">
<a href="/" style="display:flex;align-items:center;margin-right:4px"><img src="/logo.png" alt="rSpace" class="rstack-header__logo"></a>
<rstack-app-switcher current="canvas"></rstack-app-switcher>
<rstack-space-switcher current="" name=""></rstack-space-switcher>
</div>

View File

@ -167,6 +167,7 @@
<body data-theme="dark">
<header class="rstack-header" data-theme="dark">
<div class="rstack-header__left">
<a href="/" style="display:flex;align-items:center;margin-right:4px"><img src="/logo.png" alt="rSpace" class="rstack-header__logo"></a>
<rstack-app-switcher current=""></rstack-app-switcher>
<rstack-space-switcher current="" name="Spaces"></rstack-space-switcher>
</div>
@ -225,11 +226,13 @@
import { RStackIdentity } from "@shared/components/rstack-identity";
import { RStackAppSwitcher } from "@shared/components/rstack-app-switcher";
import { RStackSpaceSwitcher } from "@shared/components/rstack-space-switcher";
import { RStackMi } from "@shared/components/rstack-mi";
import { requireAuth, isAuthenticated, getAccessToken } from "@shared/components/rstack-identity";
RStackIdentity.define();
RStackAppSwitcher.define();
RStackSpaceSwitcher.define();
RStackMi.define();
fetch("/api/modules").then(r => r.json()).then(data => {
document.querySelector("rstack-app-switcher")?.setModules(data.modules || []);

View File

@ -362,6 +362,7 @@
<body data-theme="dark">
<header class="rstack-header" data-theme="dark">
<div class="rstack-header__left">
<a href="/" style="display:flex;align-items:center;margin-right:4px"><img src="/logo.png" alt="rSpace" class="rstack-header__logo"></a>
<rstack-app-switcher current=""></rstack-app-switcher>
<rstack-space-switcher current="" name="Spaces"></rstack-space-switcher>
</div>
@ -369,7 +370,7 @@
<rstack-mi></rstack-mi>
</div>
<div class="rstack-header__right">
<a class="rstack-header__demo-btn" href="https://rspace.online/rspace">Try Demo</a>
<a class="rstack-header__demo-btn" href="https://demo.rspace.online/rspace">Try Demo</a>
<rstack-identity></rstack-identity>
</div>
</header>
@ -607,10 +608,17 @@
import { RStackIdentity, isAuthenticated, getAccessToken } from "@shared/components/rstack-identity";
import { RStackAppSwitcher } from "@shared/components/rstack-app-switcher";
import { RStackSpaceSwitcher } from "@shared/components/rstack-space-switcher";
import { RStackMi } from "@shared/components/rstack-mi";
RStackIdentity.define();
RStackAppSwitcher.define();
RStackSpaceSwitcher.define();
RStackMi.define();
// Reload space list when user signs in/out
document.addEventListener("auth-change", () => {
document.querySelector("rstack-space-switcher")?.reload?.();
});
fetch("/api/modules").then(r => r.json()).then(data => {
document.querySelector("rstack-app-switcher")?.setModules(data.modules || []);

File diff suppressed because one or more lines are too long

View File

@ -75,6 +75,13 @@ body {
/* Hide the demo button when already on demo space */
.rstack-header__demo-btn[data-hide] { display: none; }
.rstack-header__logo {
width: 28px;
height: 28px;
border-radius: 6px;
flex-shrink: 0;
}
.rstack-header__brand {
display: flex;
align-items: center;