From 2f2c8563a5f127aac52d32b5960493ffb44365b8 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Sun, 2 Aug 2026 23:04:36 +0000 Subject: [PATCH 1/8] =?UTF-8?q?B136=20=E2=80=94=20corrigir=20grade=203?= =?UTF-8?q?=C3=972=20no=20In=C3=ADcio=20e=20FAB=20overlay?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - layout=grid no botão com w-full/min-w-0 sem box-content no mobile - li min-w-0, gap-2, data-layout=grid-3 no strip - e2e com geometria (boundingBox) em viewport 390 - impl plan docs/plans/inicio-acoes-grade-3cols-2rows-impl.md Co-authored-by: Francisco Solla --- .../inicio-acoes-grade-3cols-2rows-impl.md | 62 ++++++++++++++++ .../dashboard/CampaignHomeActionButton.tsx | 22 ++++-- .../dashboard/CampaignHomeActionStrip.tsx | 16 +++-- tests/e2e/campaignHomeActions.e2e.spec.ts | 10 +++ tests/e2e/campaignMunicipalities.e2e.spec.ts | 35 ++++++++++ tests/e2e/helpers/actionGridGeometry.ts | 70 +++++++++++++++++++ .../campaignHomeActionButton.unit.spec.tsx | 12 ++++ .../campaignQuickActionsDrawer.unit.spec.tsx | 1 + 8 files changed, 218 insertions(+), 10 deletions(-) create mode 100644 docs/plans/inicio-acoes-grade-3cols-2rows-impl.md create mode 100644 tests/e2e/helpers/actionGridGeometry.ts diff --git a/docs/plans/inicio-acoes-grade-3cols-2rows-impl.md b/docs/plans/inicio-acoes-grade-3cols-2rows-impl.md new file mode 100644 index 00000000..4d0b6e58 --- /dev/null +++ b/docs/plans/inicio-acoes-grade-3cols-2rows-impl.md @@ -0,0 +1,62 @@ +# Impl: Início / FAB — grade 3 colunas × 2 linhas (corrigir orientação) + +Status: aprovado +Atualizado em: 2026-08-02 +Issue: #302 +Intenção: docs/plans/inicio-acoes-grade-3cols-2rows.md +Appetite restante: ~0,5d (causa real + testes de geometria) + +## Leitura da intenção + +- **Outcome:** Início mobile e overlay FAB mostram 6 ações staff em **3 colunas × 2 linhas** (verificável em viewport ~390), não 2×3; `md+` Início mantém strip. +- **O que NÃO negociar:** catálogo/lockdown; sem migration; não reabrir snap/peek; liderança sem layout paralelo. +- **O que reavaliar:** B132 já trocou `grid-cols-2` → `grid-cols-3`, mas testes só assertam `className` — a causa visual provável é **min-width dos itens da grade** (`min-width: auto` + `box-content` + `w-[5.5rem]` residual) comprimindo para 2 colunas percebidas ou clip pelo `overflow-hidden` do shell de retraction. + +## Abordagem recomendada + +```mermaid +flowchart LR + Strip["CampaignHomeActionStrip"] + Strip -->|grid/responsive lt-md| G["grid-cols-3 + li min-w-0"] + Btn["CampaignHomeActionButton"] + Btn -->|layout=grid| W["w-full min-w-0 border-box"] + E2E["e2e viewport 390"] + E2E --> Geo["boundingBox: 3 por linha"] +``` + +**Opções consideradas:** A) só reafirmar `grid-cols-3` | B) `min-w-0` + `layout=grid` no botão | C) reduzir círculo/gap +**Recomendação:** **B** — corrige sizing real sem redesign; gap-2 só se critique pedir. +**Rejeitadas:** A (já feito em B132, insuficiente); C (fora do apetite salvo falha em 390). + +### Componentes / mudanças + +- **`CampaignHomeActionButton`:** `layout: 'grid'` — `w-full min-w-0 max-w-full`, `box-border` (sem `box-content` na grade). +- **`CampaignHomeActionStrip`:** `li` com `min-w-0`; `layout='grid'` quando `variant` é `grid` ou `responsive`; `gap-2` no mobile grid (mais folga horizontal em 390px); `data-layout="grid-3"` no `