Two-slot shell topbar (home, left, center, bell, user menu) with SDK API (setLeft/setSlot/setTitle/hide/show). All 4 primary surfaces migrated: Settings and Team Admin to Pattern B (flat tabs), Admin to Pattern C (category tabs + sidebar), Docs to Pattern A (default). Backend WS events: package.changed (broadcast), auth.changed (targeted), notification.all_read. User menu re-fetches on package/auth changes. Bell syncs read state across tabs. Error handling pass with .sw-inline-error CSS primitive. Empty state guidance for Admin Workflows/Groups. Announcement global dismiss via localStorage. Rebrand assets deployed (both b/e icon variants, wordmarks, full icon library). Docs outline scroll-to-heading fix. Bug fixes: ICD security assertion tightened, workflow-demo error surfacing, signoff display names, hello-dashboard + team-admin/groups.js deleted. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
37 lines
1.3 KiB
HTML
37 lines
1.3 KiB
HTML
{{/*
|
|
Team Admin surface — v0.37.7: Native Preact component tree.
|
|
10 sections: members, providers, personas, knowledge, groups,
|
|
workflows, tasks, settings, usage, activity.
|
|
*/}}
|
|
|
|
{{define "surface-team-admin"}}
|
|
<div id="shell-topbar"></div>
|
|
<div id="team-admin-mount" class="surface-team-admin" style="height:100%;overflow:hidden;">
|
|
<div class="settings-placeholder" style="padding:40px;text-align:center;">Loading team admin…</div>
|
|
</div>
|
|
{{end}}
|
|
|
|
{{define "css-team-admin"}}{{end}}
|
|
|
|
{{define "scripts-team-admin"}}
|
|
<script nonce="{{.CSPNonce}}">
|
|
window.__SECTION__ = '{{.Section}}';
|
|
window.__CONFIG_SECTIONS__ = {{.Data.ConfigSections | toJSON}};
|
|
</script>
|
|
|
|
<script type="module" nonce="{{.CSPNonce}}">
|
|
const { h, render } = await import('{{.BasePath}}/js/sw/vendor/preact.module.js');
|
|
const hooksModule = await import('{{.BasePath}}/js/sw/vendor/hooks.module.js');
|
|
const { default: htm } = await import('{{.BasePath}}/js/sw/vendor/htm.module.js');
|
|
const html = htm.bind(h);
|
|
window.preact = window.preact || { h, render };
|
|
window.hooks = window.hooks || hooksModule;
|
|
window.html = window.html || html;
|
|
|
|
const { boot } = await import('{{.BasePath}}/js/sw/sdk/index.js?v={{.Version}}');
|
|
await boot();
|
|
|
|
await import('{{.BasePath}}/js/sw/surfaces/team-admin/index.js?v={{.Version}}');
|
|
</script>
|
|
{{end}}
|