Public: anyone can read this; the crew can change it.
A frozen mirror's notice and reconnect form draw §5's card, row and btn, and .frozen, .frozen-form, .frozen-sentence leave the markup #4187
Check · Review · Land · Live done — Landed and live in production.
A frozen mirror's notice and reconnect form are now drawn with §5's `card`, `row` and `field-row`. None of `.frozen`, `.frozen-form` or `.frozen-sentence` appears in the page's HTML any more. `bun test test/origins-reconnect.test.ts test/design-lint.test.ts` passes (22 tests). `bun x tsc --noEmit` could not run: it fails here with `Cannot find type definition file for 'bun'`, even after `bun insta…
shipped production is serving it deploy 8c46a8d
A frozen mirror's notice and reconnect form are now drawn with §5's card, row and field-row. None of .frozen, .frozen-form or .frozen-sentence appears in the page's HTML any more. bun test test/origins-reconnect.test.ts test/design-lint.test.ts passes (22 tests). bun x tsc --noEmit could not run: it fails here with Cannot find type definition file for 'bun', even after bun install.
What changed (src/web/pages/frozen.ts, test/origins-reconnect.test.ts)
frozenBlockreturns acardwithpad: falseholding aul.listofli.rowrows. The first row is the sentence. The second is whichever of three actions applies: the Reconnect form for an admin with a matching origin, the "Connect an account under Settings → Origins" link for an admin without one, or "An admin of this repository can reconnect it." for a non-admin.- The
id="frozen"anchor stays, because the fork page links to#frozen. - The form still posts
originto…/settings/origin/reconnect, with the same select, label and "Reconnect" button. Its class is nowfield-row. - The tests assert the old class names are absent from the page. They also assert the sentence, the form action,
name="origin", the origin option, "Reconnect through" and the "Reconnect" button are present. The other two actions' wording was already asserted and still passes.
What I left alone
- The
.frozen*rules insrc/web/style/content.tsanddocs/DESIGN.md, as the issue says; that is part two. - The old
margin-top: 12pxon the block and the select's flex sizing went with those rules. Spacing may differ slightly until part two, and I had no browser here to check it.
To try it
- Open a frozen mirror's home or branches page as its admin.
- Or run
bun test test/origins-reconnect.test.ts.
🤖 Generated with Claude Code
Approved. frozenBlock now draws card(pad:false) > ul.list > li.row, and the reconnect form uses field-row. No .frozen* class reaches the markup. The form keeps its POST, a same-origin button and the id="frozen" anchor, and it works with JavaScript off. The tests would fail without the change. The preview answers 200. li.row has precedent in accounts.ts and boards.ts. Next: (1) part two should delete .frozen* from content.ts:306-309 and DESIGN.md, and its tests should check the Reconnect select on a 360px phone, because .field-row gives the select min-width 160px but the old max-width 22rem cap is gone. (2) The local row helper in frozen.ts hand-rolls li.row > div.row-main. Move it into ui.ts if a second block needs it, so it stays a named component rather than a local copy.
A frozen mirror's notice and reconnect form are now drawn with §5's
card,rowandfield-row. None of.frozen,.frozen-formor.frozen-sentenceappears in the page's HTML any more.bun test test/origins-reconnect.test.ts test/design-lint.test.tspasses (22 tests).bun x tsc --noEmitcould not run: it fails here withCannot find type definition file for 'bun', even afterbun install.What changed (
src/web/pages/frozen.ts,test/origins-reconnect.test.ts)frozenBlockreturns acardwithpad: falseholding aul.listofli.rowrows. The first row is the sentence. The second is whichever of three actions applies: the Reconnect form for an admin with a matching origin, the "Connect an account under Settings → Origins" link for an admin without one, or "An admin of this repository can reconnect it." for a non-admin.id="frozen"anchor stays, because the fork page links to#frozen.originto…/settings/origin/reconnect, with the same select, label and "Reconnect" button. Its class is nowfield-row.name="origin", the origin option, "Reconnect through" and the "Reconnect" button are present. The other two actions' wording was already asserted and still passes.What I left alone
.frozen*rules insrc/web/style/content.tsanddocs/DESIGN.md, as the issue says; that is part two.margin-top: 12pxon the block and the select's flex sizing went with those rules. Spacing may differ slightly until part two, and I had no browser here to check it.To try it
bun test test/origins-reconnect.test.ts.🤖 Generated with Claude Code
Closes #4128