Skip to content

feat(ui): Bulk Export matches the Figma Export frames - #743

Merged
smunini merged 1 commit into
mainfrom
feat/735-bulk-export-design
Aug 28, 2026
Merged

feat(ui): Bulk Export matches the Figma Export frames#743
smunini merged 1 commit into
mainfrom
feat/735-bulk-export-design

Conversation

@angela-helios

Copy link
Copy Markdown
Contributor

Closes #735.

First, a correction for the record: the issue's Figma link (node-id=330-719) lands on the Batch/Transaction section. The authoritative frames are in the Export section: Export (390:621) and Export — Active Exports (392:1275). Neither shows a job detail view, so per the issue's sequencing note the flow question stays with #609 — this change is presentation only.

Frame: create Built Frame: active Built
f1 b1 f2 b2

Create form

  • Scope is a radio-card rowchoice-grid/choice-card, the app's first designed radio-group treatment (:has(:checked) accent state, accent-color on the radio itself), documented in the README vocabulary as the issue asks. Group ID keeps riding the existing :has() show/hide.
  • Resource types and Narrow it down become icon-headed card-head cards (layers/sliders), the filter fields side-by-side with the frame's uppercase labels, and a Clear button — a native type=reset (this page ships no JS; the form's defaults are exactly "system scope, nothing checked", so reset is clear).
  • Actions move to a footer row: the Active exports pill (count included) + Start export with its icon. btn--accent metrics so the row lines up — button-scale unification stays with ui: .btn--primary overrides the base button height, so Cancel and Execute mismatch on Batch/Transaction — unify the button size scale app-wide #728. The frame's top-right "New submission" reads as the shared-header CTA slot; on the create page itself it would self-link, so the footer's Start export is the CTA — flagged for Brett.

Active Exports

  • Job cards per the frame: name + action row (Cancel/Retry and the status tag--*), a full-width progress track recolored by terminal state, one meta line. JobCard derives progress_pct from the recipient's X-Progress so the track has a width; terminal states fill it.
  • The completed-files list — the payoff the issue calls out as an unstyled <ul> — becomes download pills with the import glyph. (The frame's single Download button is ambiguous for multi-file manifests, and a zip endpoint would be an API change; the pills are the designed treatment for N files.)
  • The header count collapses to one idiom: title + "N exports · M running" lede, mirroring the frame.

Checks

Rust ring green (the .form-panel assert now pins the three choice-cards); design-system (new classes documented, no duplicate selectors), a11y light+dark, and nojs Playwright projects green; 5s polling and the cancel/retry/kick-off flows untouched. New catalog keys (bulk-export-clear, -files-word, -exports-word) in all three locales.

No Playwright spec for bulk export existed before and none is added here — per the issue that split is fine; happy to follow up.

Closes #735.

The create form takes the frame's shape: scope as a radio-card row (the
app's first designed radio-group treatment - choice-grid/choice-card,
documented in the README vocabulary), the resource-type grid and the
narrow-down filters as icon-headed cards with a Clear reset, and the
actions on a footer row (Active exports pill + Start export). The Group
ID show/hide keeps riding the same :has() rule.

Active Exports becomes the frame's job cards: name and the action row
(Cancel/Retry plus the status tag) up top, a full-width progress track
recolored by terminal state, one meta line, and the completed files as
designed download pills - the payoff list was a bare ul. The card view
model derives progress_pct from the recipient's X-Progress so the track
has a width.

The issue's Figma link points at the Batch/Transaction section; the
authoritative frames are Export (390:621) and Export - Active Exports
(392:1275). Neither shows a job detail view, so the flow question stays
with #609 and this change is presentation only.
@codecov

codecov Bot commented Aug 27, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@smunini
smunini merged commit e410818 into main Aug 28, 2026
26 checks passed
@smunini
smunini deleted the feat/735-bulk-export-design branch August 28, 2026 00:47
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.

ui: Bulk Export create form and job list do not match the design

2 participants