Skip to content

feat: DS-input-2 — migrate the fleet's hand-rolled inputs onto .bs-input (baseline 29→2) - #68

Merged
th3-br41n merged 1 commit into
mainfrom
feat/ds-input-2
Jul 2, 2026
Merged

th3-br41n merged 1 commit into
mainfrom
feat/ds-input-2

Conversation

@th3-br41n

Copy link
Copy Markdown
Contributor

Completes the DS-input-2 drain the friction log flagged as the #1 recurring complaint class (inputs that don't match the design system's height/border/focus). Migrates the 21 remaining baselined files across 14 apps onto the shared .bs-input face; the control-faces ratchet is now at its floor.

What moved

Every ordinary text control across automations, browser (omnibox + find-bar), chat, contacts (hero name --lg, add-company, search), database in-cell rename, files search, form-designer + invoices (~15 fields), graph (where-editor + subject), journal reminder-time, mailbox (To/Cc/Subject/From + all IMAP credential fields + search), notes select-field option input, preview sidebar search, and theme-editor (name / CSS textarea / typography / token value inputs) → .bs-input / --sm / --lg / --multiline. Enumerated choices already ride the shared <SelectMenu>. Per-app box CSS (height/border/padding/background/focus-ring) deleted; only genuine layout deltas kept — net −230 lines.

Composite searchbars, now first-class

Icon-in-field searchbars (Files/Contacts/Mailbox) put .bs-input on the wrapper (owns the box + :focus-within ring) and mark the inner control .bs-input__control — a shared bare slot. The ratchet recognizes bs-input__control as a face token, so this is a sanctioned pattern, not a per-app opt-out.

Baseline: 29 → 2

control-faces-baseline.json now holds exactly two files — the Agent and Mailbox compose <textarea>s, the two deliberately-distinct primary compose surfaces (documented exceptions). Any new native control anywhere else now fails CI.

Verification

bun run verify + bun run lint (control-faces + css-tokens + reactivity + i18n ratchets) green. Every touched app's suite passed. Docs updated (implementation-plan DS-input-2 ✅, SDK catalog composite pattern).

🤖 Generated with Claude Code

…put (baseline 29→2)

Migrated the 21 remaining baselined files across 14 apps onto the shared
.bs-input face (+ --sm/--lg/--multiline; enumerated choices already ride
<SelectMenu>): automations, browser (omnibox + find-bar), chat, contacts
(hero name/add-company/search), database in-cell rename, files search,
form-designer + invoices, graph (where-editor/subject), journal reminder-time,
mailbox (headers + all IMAP credential fields + search), notes select-field
option input, preview sidebar search, theme-editor (name/CSS/typography/token
value inputs). Per-app box CSS (height/border/padding/background/focus-ring)
deleted; only genuine layout deltas kept.

Composite searchbars (icon + input in one box) made first-class: .bs-input on
the wrapper (owns the box + :focus-within ring), a shared .bs-input__control
inner slot, recognized by the ratchet as a face token (Files/Contacts/Mailbox).

control-faces-baseline.json now holds exactly 2 files — the Agent and Mailbox
compose <textarea>s, the two deliberately-distinct primary surfaces. The
ratchet is at its floor: any new native control elsewhere fails CI.

verify + lint green; every touched app's suite passed (263/787/705/960/121/... ).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@th3-br41n
th3-br41n merged commit d9098c6 into main Jul 2, 2026
3 checks passed
@th3-br41n
th3-br41n deleted the feat/ds-input-2 branch July 2, 2026 14:49
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.

1 participant