docs(B184): agenda exception (C101 strip) after rebase
This commit is contained in:
parent
324e1c3c51
commit
426d14bbb2
1 changed files with 1 additions and 1 deletions
|
|
@ -46,7 +46,7 @@ flowchart LR
|
|||
- **`CampaignListOmnibox`** (`src/components/campaign/shared/CampaignListOmnibox.tsx`) — sem prop nova; abaixo de `md`:
|
||||
- `label` → `hidden md:block` (o `<label>` some só visualmente); `input` ganha `aria-label={label}` **sempre** (nome acessível idêntico ao do label — desktop inalterado na prática; mobile sem label continua nomeado).
|
||||
- Box (PopoverAnchor div) → base `border-0 shadow-none` + `md:border md:border-input md:shadow-xs`; `rounded-lg`, `px-2 py-1.5`, `min-h-11` e o ring de foco (`focus-within:ring-3`) permanecem (a11y).
|
||||
- **A barra sticky mora no `<form role="search">` do caller** via constante compartilhada `campaignListOmniboxFormClassName` (exportada do chassis; precedente `campaignCellEditTriggerClassName`): `sticky top-0 z-20 -mx-4 border-b border-border bg-background px-4 py-2 md:static md:z-auto md:mx-0 md:border-b-0 md:bg-transparent md:px-0 md:py-0`. **Por quê no form e não na coluna do input:** um elemento `sticky` nunca escapa do seu containing block (o pai) — a coluna do input vive dentro do wrapper curto do omnibox (73px), então ela "grudaria" só pela própria altura e rolaria junto (medido no browser: posição computada `sticky`, comportamento de scroll mostrou a barra saindo da tela). O form é o único wrapper cujo pai é o `CampaignPageShell` (altura da página inteira) — aí o sticky vale o scroll todo. O trailing (picker de colunas) é `hidden md:flex` (B137) — no mobile o trailing é vazio, então nada fora da barra "gruda" por engano (verificado: `CampaignColumnPickerTrailing` é desktop-only). Os 11 call sites aplicam a constante no próprio `<form>`; o `ActivityAgendaFilters` não tinha form e ganhou o wrapper no mesmo padrão.
|
||||
- **A barra sticky mora no `<form role="search">` do caller** via constante compartilhada `campaignListOmniboxFormClassName` (exportada do chassis; precedente `campaignCellEditTriggerClassName`): `sticky top-0 z-20 -mx-4 border-b border-border bg-background px-4 py-2 md:static md:z-auto md:mx-0 md:border-b-0 md:bg-transparent md:px-0 md:py-0`. **Por quê no form e não na coluna do input:** um elemento `sticky` nunca escapa do seu containing block (o pai) — a coluna do input vive dentro do wrapper curto do omnibox (73px), então ela "grudaria" só pela própria altura e rolaria junto (medido no browser: posição computada `sticky`, comportamento de scroll mostrou a barra saindo da tela). O form é o único wrapper cujo pai é o `CampaignPageShell` (altura da página inteira) — aí o sticky vale o scroll todo. O trailing (picker de colunas) é `hidden md:flex` (B137) — no mobile o trailing é vazio, então nada fora da barra "gruda" por engano (verificado: `CampaignColumnPickerTrailing` é desktop-only). **10 call sites** aplicam a constante no próprio `<form>`; a **agenda é a exceção** — o rebase em `main` (2026-08-10) encontrou a `activity-agenda-filter-strip` entregue pelo **C101** (strip sticky próprio, merge anterior): o wrapper do B184 foi descartado no conflito e a agenda mantém o dono existente (o chassis ainda a cobre no campo/X/Limpar).
|
||||
- X circular de limpar dentro do box (após o input): `onClearAll && (hasChips || query.length > 0)` → `<button type="button" aria-label="Limpar" className="…rounded-full bg-muted… md:hidden" onClick={onClearAll + setActiveChipId(null) + refocus}>`. **`aria-label="Limpar"`** = paridade de nome com o botão desktop que substitui (consistência de voz/leitor de tela entre viewports) e mantém o e2e mobile do `campaignActivity` (que clica `Limpar` em 390px) verde sem edição.
|
||||
- Botão texto "Limpar" (trailing) → `hidden md:inline-flex`.
|
||||
- **Ajustes do `/simplify` (2026-08-09):** o X é renderizado sempre que `onClearAll` existe, alternando `invisible pointer-events-none` quando não há o que limpar (a largura do input não pula na fronteira vazio↔digitado — revisor de performance); hit target `size-11` com círculo visual de 28px interno (convenção `min-h-11` de toque do repo) + `focus-visible:ring-2`; live region própria com `key` (remount re-anuncia "Busca e filtros limpos." — limpar só busca não navega e o pending region ficaria mudo para AT, P1 do revisor de a11y).
|
||||
|
|
|
|||
Loading…
Reference in a new issue