# História 25 — Editor da home (rascunho por seções)

## Objetivo

Provar que o operador monta o **rascunho** da home pelo painel: adiciona uma seção do catálogo,
edita os campos num `<dialog>` nativo, salva e vê a estrutura do documento salvo — com a home
pública intocada (publicação é da S2.2) e sem depender de JavaScript.

## Pré-condições

- `make up` + `php artisan db:seed` (o perfil demo recebe as permissões declaradas, incluindo
  `home.ver`/`home.editar`).
- Assets compilados (`make check`).
- Nenhum rascunho é exigido: sem `home.home_documents(draft)`, o editor abre com o documento
  padrão da home.

## Passos

1. Entrar no painel (`cms.<host>/login`) e abrir `/home`.
2. Conferir o título da tela (do shell), a lista de seções e o axe.
3. Escolher o tipo **Texto** em “Tipo de seção” e clicar **Adicionar seção** (GET: a seção nova é
   apenas estado de tela).
4. Clicar **Editar seção** na seção nova; preencher **Título** e **Conteúdo** (AST JSON) no
   diálogo e **Concluir edição**.
5. Clicar **Salvar rascunho** e conferir o aviso e a **prévia** com o título salvo; axe de novo.
6. Sem JavaScript: abrir `/home?novo=text` e conferir que os campos da seção nova continuam
   visíveis/editáveis e que **Salvar rascunho** continua acessível.

## Contrato verificado

- O editor é **só do painel** (`cms.<host>/home`), com `home.ver` para ler e `home.editar` para
  gravar (ADR-033) — deny-by-default.
- A view usa **um** shell (`<x-layout::cms>`); o `<h1>` é do shell e a seção editada é um
  `<dialog>` nativo **sem `<form>` aninhado** (os campos pertencem ao formulário do editor).
- Sem JS as ações (subir/descer/ocultar/remover/salvar) continuam sendo submit de formulário e os
  campos ficam visíveis no fluxo (WCAG 2.2, ADR-010/ADR-025).
- O documento salvo é `{version, sections[]}` (jsonb), sem HTML/CSS/Blade; a **home pública** não
  lê o rascunho (S2.2 publica).
- Zero violações de acessibilidade (axe) na tela com e sem o diálogo aberto.
