feat(site-builder): command registry, shortcut matcher, tree walkers and top-bar command menu

Library only; nothing is mounted. Adds minimal DeviceContext/NoticeContext
stubs (owned by W0-breakpoints / W0-registry-notices) that expose the
agreed interfaces.

Refs #39 #49 #34

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
shadowdaoandClaude Sonnet 5.5 committed 2026-10-07 11:14:52 -07:00
1 parent 97ccbee461
commit 73aa35ac96
11 files changed
+1005

No files matched your search

+44
View File
@@ -2054,3 +2054,47 @@ body {
padding: 4px 12px;
}
.conflict-modal-actions button:disabled { opacity: 0.5; cursor: default; }
/* W0-commands: topbar command menu */
.topbar-command-menu { position: relative; display: inline-flex; }
.topbar-command-btn {
background: transparent;
border: 1px solid transparent;
color: inherit;
border-radius: var(--radius-lg);
padding: 4px 10px;
cursor: pointer;
}
.topbar-command-btn:hover, .topbar-command-btn[aria-expanded="true"] { border-color: var(--color-border); }
.topbar-command-dropdown {
position: absolute;
top: calc(100% + 6px);
right: 0;
z-index: var(--z-overflow, 1000);
min-width: 240px;
background: var(--color-bg-elevated);
border: 1px solid var(--color-border);
border-radius: var(--radius-lg);
box-shadow: 0 8px 28px rgba(0, 0, 0, 0.5);
padding: 6px;
display: flex;
flex-direction: column;
gap: 2px;
}
.topbar-command-item {
display: flex;
align-items: center;
justify-content: space-between;
gap: 16px;
background: transparent;
border: 0;
color: inherit;
text-align: left;
padding: 8px 10px;
border-radius: var(--radius-md, 6px);
cursor: pointer;
}
.topbar-command-item:hover:not(:disabled) { background: var(--color-bg-hover); }
.topbar-command-item:disabled { opacity: 0.45; cursor: default; }
.topbar-command-shortcut { font-size: 12px; opacity: 0.6; }
.topbar-command-empty { padding: 8px 10px; font-size: 12px; opacity: 0.6; }