Skip to content

feat(app): the window controls and the prompt from @frostyard/lodge-ui 0.6.0 - #85

Merged
bketelsen merged 2 commits into
mainfrom
ui/lodge-ui-window-controls-prompt
Oct 22, 2026
Merged

bketelsen merged 2 commits into
mainfrom
ui/lodge-ui-window-controls-prompt

Conversation

@frostyard-machines

@frostyard-machines frostyard-machines commented Oct 22, 2026 •

Copy link
Copy Markdown
Contributor

frostnotes takes two new primitives of @frostyard/lodge-ui 0.6.0, pinned to the tag ui/v0.6.0 (ADR-0030, lodge ADR-0018): WindowControls and Prompt. Zero visual change.

What

  • WindowControls: the three window buttons now come from lodge-ui.
    • features/chrome/WindowControls.tsx is renamed TitleBarEnd.tsx (the name was lodge-ui's now). It keeps its outer row and Toggle right sidebar, and draws lodge-ui's WindowControls for Minimize, Maximize/Restore and Close. New TitleBarEnd.test.tsx (3 tests).
    • TitleBar.tsx (the Connecting window's bar) draws lodge-ui's WindowControls with className="px-2", in place of its own copy.
    • frostnotes keeps its own WindowCommand type; lodge-ui's kinds are a subset of it.
  • Prompt: features/prompt/Prompt.tsx and its test are deleted; lodge-ui's Prompt is the same frame, moved, and lodge's test/Prompt.test.tsx holds every case. QuickSwitcher, CommandPalette, FolderChooser and TemplateChooser stay here and import Prompt, highlight and PromptMods from @frostyard/lodge-ui/react. Commands, data and ranking (lib/fuzzy, lib/switcher, lib/palette) stay in frostnotes.
  • docs/specs/ui.md: "Title bar row" item 5 and "Prompts" say where the frame and the buttons come from.
  • 81 lines added, 396 removed.

Proof of no visual change

Screenshots before (origin/main 5f2db75) and after, taken with a headless browser by a script, deterministic over two runs, 1280×800 and 390×844, light and dark, with the window controls forced on by a local, uncommitted change (a browser does not draw them):

/var/home/bjk/projects/odrade/reports/2026-10-22-ui-0.6.0/frostnotes/ (before/, after/, shoot.py)

  • All 14 PNGs are byte-identical: the title bar and a 2× zoom of its right end, the quick switcher (Ctrl+O, "alp"), the command palette (Ctrl+P), the narrow quick switcher, and the Connecting title bar and its zoom.
  • The outerHTML dumps differ in two ways only:
    1. role="group" aria-label="Window controls" on the buttons' row (a nested div with the same flex shrink-0 items-center gap-1 in the main title bar; on the existing div in the Connecting bar).
    2. The prompt footer's class text-status is text-[11px]/[14px] in lodge-ui (the same 11px/14px; text-status is a frostnotes type role).

Gates

  • make check: pass.
  • make ui-check (nsl): 762 tests in 93 files pass. make web-build passes.

Do not deploy until Brian says so.

…i 0.6.0

Pin @frostyard/lodge-ui to lodge bf1ad3e (0.6.0), which carries the window's
three buttons and the prompt's modal frame.

- The title bar row's right end, which drew Toggle right sidebar and the
  three buttons, is now TitleBarEnd and draws lodge-ui's WindowControls for
  the buttons; TitleBar does the same for its own copy. Frostnotes keeps its
  WindowCommand type.
- Prompt, highlight and PromptMods come from lodge-ui; features/prompt/Prompt.tsx
  and its test (lodge-ui has the same tests) are gone. The quick switcher,
  command palette and choosers, and their ranking, stay here.
- docs/specs/ui.md says where the two primitives come from.

No visual change: the screenshots of the title bar, the quick switcher and
the command palette, light and dark, desktop and narrow, are byte-identical.
The markup differs by role="group" and aria-label="Window controls" on the
buttons' container, and the prompt footer's text-status written as
text-[11px]/[14px] (the same 11/14).
@bketelsen
bketelsen merged commit 1b63ff7 into main Oct 22, 2026
4 checks passed
@frostyard-machines
frostyard-machines deleted the ui/lodge-ui-window-controls-prompt branch October 23, 2026 15:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants