banco-edicao-linha.html · bancada do §67 · preview v0.2 —
catálogo de ESTADOS da edição em linha (IL1–IL14), do seed-componentes.md. Bancada, não
tela (CP31). Dado sintético: nenhuma ordem, cliente ou pessoa real.
O valor exibido vira campo no próprio lugar, sem abrir formulário nem modal. O §48 já tinha o caso da grade (PN37: “a lente Tabela é planilha… Enter abre editor na própria célula”); o que faltava era o componente que a grade consome — e que também serve fora dela: título de registro, campo do painel de detalhe, item de lista.
A decisão que mais custa está aqui, e ela tem lado: clicar fora confirma. Clicar fora é o acidente mais comum num campo em linha, e as duas escolhas erram de formas muito diferentes — blur cancela destrói o que a pessoa digitou, sem recuperação; blur confirma grava um valor que o desfazer de 8 segundos (PN28) traz de volta. Entre um erro reversível e um irreversível, o sistema escolhe o reversível. E o Esc continua ali para quem quer descartar de propósito.
O catálogo acima é o controle vivo — e, por natureza, ele mostra
um estado por vez. A lei CP31 diz que bancada imprime os estados
lado a lado: avaliar o estado de erro não pode exigir que o avaliador
reproduza o erro, porque gate que depende de reprodução não acontece.
São cópias estáticas, e isso é contrato: aqui não há button, não
há input e não há tabindex — um controle de verdade impresso nesta
galeria seria um botão morto, que é a classe de defeito que este projeto persegue
desde a v1.4. A suíte mede essa ausência.
Este componente especifica a passagem entre ler e editar. Qual controle aparece na edição não é decisão dele (IL13). A bancada exercita texto e número; os demais são delegados, e delegado aqui significa declarado, não simulado — simular componente que já existe é criar uma segunda verdade que ninguém mantém.
| Tipo de valor | Quem edita | Nesta bancada |
|---|---|---|
| Texto curto | campo de texto do §13 | exercitado aqui |
| Número / horas | campo de duração do §59 (VD10) | exercitado aqui, na forma simples |
| Valor monetário | campo monetário do §59 (VD1–VD9) | DELEGADO — não se simula aqui |
| Data ou intervalo | seletor de data do §61 (DH1–DH18) | DELEGADO |
| Escolha fechada | escolha segmentada do §60 (SG1–SG14) | DELEGADO |
| Pessoa | seletor de pessoa do §62 (PS1–PS16) | DELEGADO |
| Prioridade | escala ordinal do §63 (PR1–PR12) | DELEGADO |
| # | Contrato | Onde se prova |
|---|---|---|
| IL1 | O valor em repouso é um BOTÃO, e o nome diz a AÇÃO e o VALOR | “Editar Descrição da ordem: Inspeção termográfica do QGBT” |
| IL2 | Entra na edição por clique SIMPLES e por Enter/Espaço | Duplo clique como caminho único não tem equivalente de teclado (SC 2.1.1) |
| IL3 | Ao entrar, o foco vai para o campo e o texto fica SELECIONADO | Substituir é o caso comum; começar com o cursor no fim cobra uma seleção extra |
| IL4 | Enter confirma · Esc cancela e restaura · clicar fora CONFIRMA | Erro reversível (grava, e o desfazer volta) contra irreversível (some o que se digitou) |
| IL5 | Confirmar e cancelar também existem como BOTÕES visíveis na edição | Toque não tem Esc; teclado tem. Dois caminhos, mesma mutação |
| IL6 | Sem salto de layout: a caixa de edição tem a mesma altura do repouso | Medido pela suíte — tolerância declarada de 2px |
| IL7 | Confirmar devolve o FOCO ao gatilho e anuncia o RESULTADO | “Descrição da ordem alterada para …” — resultado, não percurso (herda PN28) |
| IL8 | Erro de validação NÃO sai do modo de edição | Digite vazio e confirme: o texto digitado nunca se perde |
| IL9 | Estados salvando e salvo declarados; o valor não pisca | Mutação otimista, herdada do PN27 |
| IL10 | A affordance aparece no hover E no foco — nunca só no hover | Quem navega por teclado não passa o mouse |
| IL11 | Digitar não salva a cada tecla e não move o foco sozinho | SC 3.2.2: auto-avanço só com aviso prévio declarado |
| IL12 | Alvo do gatilho ≥ 44px de altura | Medido pela suíte; SC 2.5.8 pede 24, o piso do projeto é 44 |
| IL13 | O controle da edição é o do DOMÍNIO, não texto livre para tudo | A tabela de delegação: §59 · §60 · §61 · §62 · §63 |
| IL14 | Campo que não se edita NÃO vira gatilho — e diz por quê | “Código da ordem”: sem botão, com o motivo ao lado (herda PN29) |