Skip to content

fix(ui): counterparty + series forms off the settings vocabulary, and a brand-profile detail redesign - #1907

Merged
canalesb93 merged 2 commits into
mainfrom
fix/substrate-form-detail-layout
Jun 24, 2026
Merged

fix(ui): counterparty + series forms off the settings vocabulary, and a brand-profile detail redesign#1907
canalesb93 merged 2 commits into
mainfrom
fix/substrate-form-detail-layout

Conversation

@canalesb93

@canalesb93 canalesb93 commented Jun 24, 2026

Copy link
Copy Markdown
Owner

Brings the counterparty + recurring-series surfaces up to the design system, in two parts.

1 · Forms — off the settings vocabulary

The new /counterparties/new, /recurring/new create forms and the counterparty detail enrichment panel were built with the settings two-column vocabulary (SettingsSection/SettingsRow), reserved for /settings/*. On full pages it rendered as a near-empty left gutter, the form crushed into a narrow right card, captions wrapping one word per line, and stray SettingsRow divider rules.

Rebuilt in the standard page-form vocabulary (single bb-card, stacked bb-form-input fields, helper text, bb-action-row footer) — matching the category/tag forms.

2 · Counterparty detail — read-only brand profile + edit-in-drawer

The detail page led with the edit form (≈60% of the page was always-visible enrichment chrome). Redesigned per design-system principle #5 (edit in a slide-over):

  • Header is now a brand profile — logo avatar · name · a quiet category chip · a bullet facts line (website ↗ · MCC · charge count). The brand identity that was buried in form fields now reads at a glance.
  • Body is the page's job — the two-column Linked charges / Governing rules.
  • Enrichment moved into a right-side Drawer opened by an Edit button, the same shape as the series detail's edit drawer — so the two thin-entity detail pages are now true siblings. Plain POST → UpdateCounterparty; no behavior change, just where it lives.

Two .templ files + one helper. No Go handler/schema change. All three build-tag matrices (full / headless / lite) compile; go vet + pages tests green.

After

Counterparty detail — read-only brand profile
counterparty detail redesign

Edit drawer (slide-over)
counterparty edit drawer

New counterparty form
new counterparty form

New recurring series form
new recurring series form

🤖 Generated with Claude Code

@canalesb93 canalesb93 added the rules-substrate Rules-as-universal-substrate sprint (base: feat/rules-substrate) label Jun 24, 2026
…vocabulary

The new /counterparties and /recurring create forms — and the
counterparty detail enrichment panel — were built with the settings
two-column SettingsSection/SettingsRow vocabulary, which is reserved for
/settings/* tabs. On these full-page surfaces it rendered as a near-empty
left gutter with the form crushed into a narrow right card, the inline
label+caption column so tight that captions wrapped one word per line,
and a stack of hairline SettingsRow dividers reading as stray horizontal
rules.

Rebuild all three in the standard page-form vocabulary used by the
category/tag forms: a single bb-card with stacked label-over-input
fields (bb-form-input / bb-form-select), helper text beneath each field,
and a bb-action-row footer. No gutter, no dividers. The counterparty
enrichment pairs Name + Category on one responsive row and stacks
MCC/Website/Logo full-width. Matches the already-correct series detail
page, so the two detail pages now read as siblings.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012fRHZ1CTjEZ1xFwQmW27jU
@canalesb93
canalesb93 force-pushed the fix/substrate-form-detail-layout branch from 536f0f9 to 441f3ac Compare June 24, 2026 03:27
…drawer

Redesign /counterparties/{id} to lead with the entity, not the edit form
(design-system principle #5: edit in a slide-over). The header now reads
as a brand profile — logo avatar, name, a quiet category chip, and a
bullet facts line (website link · MCC · charge count). The body is the
page's actual job: the two-column Linked charges / Governing rules.

Enrichment (name, category, mcc, website, logo) moves out of the
always-visible inline form into a right-side Drawer opened by an Edit
button in the header — the same shape as the series detail's edit drawer,
so the two thin-entity detail pages are now true siblings. The form is a
plain POST → UpdateCounterparty inside the Drawer shell; no behavior
change, just where it lives.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012fRHZ1CTjEZ1xFwQmW27jU
@canalesb93 canalesb93 changed the title fix(ui): rebuild counterparty + series forms/detail off the settings vocabulary fix(ui): counterparty + series forms off the settings vocabulary, and a brand-profile detail redesign Jun 24, 2026
@canalesb93
canalesb93 merged commit 487400c into main Jun 24, 2026
8 checks passed
@canalesb93
canalesb93 deleted the fix/substrate-form-detail-layout branch June 24, 2026 04:16
canalesb93 added a commit that referenced this pull request Jun 24, 2026
Pull in main (#1907#1919). Two changes interact with this PR:

- #1918 fully removed series tags (AddSeriesTag/RemoveSeriesTag service
  methods gone). Reverted this PR's update_series tag fold: update_series
  is back to name/type only, and the tags_to_add/tags_to_remove input +
  handler loops are removed. Series no longer have a tag dimension.
- #1913 added four series/counterparty workflow preset prompts written
  against main's older tool surface. Scrubbed their stale refs to match
  the consolidated tools: breadbox://overview → get_overview;
  batch_create_rules → create_transaction_rule rules array; set_series_type
  / split_series / review_series / explain_series_candidates (all removed
  upstream) → update_series / unlink_series_transactions / get_series.

Resolved the docs/mcp-tools-reference.md conflict by taking main's
series-unlink description (no tags). The counterparty create→assign fold
and unlink rename from the prior commit are preserved.

Verified: go build ./..., go vet ./..., and the full internal/mcp
integration suite green on a clean DB.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Y7qg4TN9ZPcHsXR714UrjG
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

rules-substrate Rules-as-universal-substrate sprint (base: feat/rules-substrate)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant