refactor(ui): documentexport krijgt een tegelrooster i.p.v. keuzechips #2098

Merged
brenno merged 1 commit from feature/document-export-tile-grid into main 2026-09-15 13:12:01 +00:00
Owner

Samenvatting

Het documentexport-dialoog (DocumentExportDialog) verving zijn zeven formaat-ChoiceChips in een Wrap door een gecentreerd tegelrooster: elke tegel toont icoon + naam, geselecteerd = accentrand + lichte accenttint.

Waarom: de chips braken ongelijkmatig af en oogden volgestouwd, zeker in talen met langere woorden of bij 200% tekstgrootte. De tegels zijn gelijkmatig, even hoog, en horen bij dezelfde accentfamilie die de app al gebruikt voor selectie (de categoriepillen in add_slide_dialog_pills.dart).

Wat bleef:

  • De profielkeuze (Volledig / Geredigeerd) blijft een SegmentedButton.
  • De eerlijke bewoording (export = geredigeerde kopie, Opslaan = meester) blijft.
  • De per-formaat-toelichting onder het rooster blijft.
  • Alle bestaande labels en teksten ongewijzigd — geen nieuwe l10n-sleutels.

Toegankelijkheid: InkWell (focus + Enter) en Semantics(button, selected), net als de categoriepillen. De label breekt binnen de tegel af: een lange vertaling of 200% tekst maakt de tegel hoger, niet breder — geen vaste breedte die knelt.

Bewaker: niet aangeroepen — de wijziging raakt uitsluitend de dialoog-presentatie, niet het bestandsformaat, de opslag, een afhankelijkheid, uitgaand verkeer of een publieke belofte.

Testplan

  • make check groen (format, analyze, conventies, volledige suite, dekkingsvloer, goldens)
  • Bestaande document_conversion_dialogs_test.dart — tikken op PDF/HTML selecteert het formaat, profiel+formaat stroomt door bij bevestigen, mislukte export zegt het, geen presentatiepakket
  • Lay-out visueel geverifieerd: 3 tegels per rij (md/html/pdf → epub/odt/docx → latex), laatste regel gecentreerd

Generated with Devin

## Samenvatting Het documentexport-dialoog (`DocumentExportDialog`) verving zijn zeven formaat-`ChoiceChip`s in een `Wrap` door een gecentreerd **tegelrooster**: elke tegel toont icoon + naam, geselecteerd = accentrand + lichte accenttint. **Waarom:** de chips braken ongelijkmatig af en oogden volgestouwd, zeker in talen met langere woorden of bij 200% tekstgrootte. De tegels zijn gelijkmatig, even hoog, en horen bij dezelfde accentfamilie die de app al gebruikt voor selectie (de categoriepillen in `add_slide_dialog_pills.dart`). **Wat bleef:** - De profielkeuze (Volledig / Geredigeerd) blijft een `SegmentedButton`. - De eerlijke bewoording (export = geredigeerde kopie, Opslaan = meester) blijft. - De per-formaat-toelichting onder het rooster blijft. - Alle bestaande labels en teksten ongewijzigd — geen nieuwe l10n-sleutels. **Toegankelijkheid:** `InkWell` (focus + Enter) en `Semantics(button, selected)`, net als de categoriepillen. De label breekt binnen de tegel af: een lange vertaling of 200% tekst maakt de tegel hoger, niet breder — geen vaste breedte die knelt. **Bewaker:** niet aangeroepen — de wijziging raakt uitsluitend de dialoog-presentatie, niet het bestandsformaat, de opslag, een afhankelijkheid, uitgaand verkeer of een publieke belofte. #### Testplan - [x] `make check` groen (format, analyze, conventies, volledige suite, dekkingsvloer, goldens) - [x] Bestaande `document_conversion_dialogs_test.dart` — tikken op PDF/HTML selecteert het formaat, profiel+formaat stroomt door bij bevestigen, mislukte export zegt het, geen presentatiepakket - [x] Lay-out visueel geverifieerd: 3 tegels per rij (md/html/pdf → epub/odt/docx → latex), laatste regel gecentreerd Generated with [Devin](https://devin.ai)
refactor(ui): documentexport krijgt een tegelrooster i.p.v. keuzechips
All checks were successful
scans / scans (pull_request) Successful in 3m32s
static-gate / static-gate (pull_request) Successful in 6m53s
a345bd4376
De zeven formaat-chips in een Wrap braken ongelijkmatig af en oogden
volgestouwd, zeker in talen met langere woorden of bij 200% tekst. Vervangen
door een gecentreerd rooster van tegels (icoon + naam) met de accenttint die
de app al voor selectie gebruikt (add_slide_dialog_pills), zodat de keuzes
één visuele familie vormen. De label breekt binnen de tegel af: een lange
vertaling maakt de tegel hoger, niet breder. Toetsenbord-toegankelijk via
InkWell, schermlezer via Semantics. Profielkeuze (Volledig/Geredigeerd)
blijft een SegmentedButton.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
brenno merged commit 6fb4ec8230 into main 2026-09-15 13:12:01 +00:00
Sign in to join this conversation.
No description provided.