Provas Largura

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.

Edição em linha

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 — mexa nele

Estado 1 · repouso, com um campo bloqueado no fim
Descrição da ordem
Horas previstas
Responsável
Código da ordem OS-2274 O código é gerado na abertura e não muda — ele é a referência que o cliente já recebeu
Teclado: Tab chega ao valor, Enter ou Espaço abre a edição com o texto já selecionado, Enter confirma, Esc cancela e restaura. Ponteiro e toque: um clique simples abre — nunca duplo clique como caminho único, porque duplo clique não tem equivalente de teclado (SC 2.1.1) — e os botões ✓ e ✕ existem porque em toque não há Esc.
Passe o mouse e navegue por Tab: a affordance aparece nos dois, nunca só no hover (IL10).

Os seis estados, impressos lado a lado

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.

Repouso Inspeção termográfica do QGBT Parece texto. É o estado em que a lista passa 99% do tempo
Hover / foco — a affordance Inspeção termográfica do QGBT Borda e lápis aparecem nos DOIS: mouse e teclado (IL10)
Em edição Inspeção termográfica do QGBT Mesma altura do repouso (IL6) e os dois botões, porque toque não tem Esc (IL5)
Erro de validação Descrição da ordem não pode ficar em branco. O modo de edição NÃO fecha: o texto digitado nunca se perde (IL8)
Salvando Inspeção termográfica do QGBTSalvando… O valor novo já está na tela — mutação otimista (IL9, herda PN27)
Bloqueado OS-2274O código é gerado na abertura e não muda Sem botão, sem foco, com o motivo dito (IL14)

Quem edita o quê — a fronteira, escrita

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 valorQuem editaNesta bancada
Texto curtocampo de texto do §13exercitado aqui
Número / horascampo de duração do §59 (VD10)exercitado aqui, na forma simples
Valor monetáriocampo monetário do §59 (VD1–VD9)DELEGADO — não se simula aqui
Data ou intervaloseletor de data do §61 (DH1–DH18)DELEGADO
Escolha fechadaescolha segmentada do §60 (SG1–SG14)DELEGADO
Pessoaseletor de pessoa do §62 (PS1–PS16)DELEGADO
Prioridadeescala ordinal do §63 (PR1–PR12)DELEGADO

Os contratos, e onde cada um se prova

#ContratoOnde se prova
IL1O 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”
IL2Entra na edição por clique SIMPLES e por Enter/EspaçoDuplo clique como caminho único não tem equivalente de teclado (SC 2.1.1)
IL3Ao entrar, o foco vai para o campo e o texto fica SELECIONADOSubstituir é o caso comum; começar com o cursor no fim cobra uma seleção extra
IL4Enter confirma · Esc cancela e restaura · clicar fora CONFIRMAErro reversível (grava, e o desfazer volta) contra irreversível (some o que se digitou)
IL5Confirmar e cancelar também existem como BOTÕES visíveis na ediçãoToque não tem Esc; teclado tem. Dois caminhos, mesma mutação
IL6Sem salto de layout: a caixa de edição tem a mesma altura do repousoMedido pela suíte — tolerância declarada de 2px
IL7Confirmar devolve o FOCO ao gatilho e anuncia o RESULTADO“Descrição da ordem alterada para …” — resultado, não percurso (herda PN28)
IL8Erro de validação NÃO sai do modo de ediçãoDigite vazio e confirme: o texto digitado nunca se perde
IL9Estados salvando e salvo declarados; o valor não piscaMutação otimista, herdada do PN27
IL10A affordance aparece no hover E no foco — nunca só no hoverQuem navega por teclado não passa o mouse
IL11Digitar não salva a cada tecla e não move o foco sozinhoSC 3.2.2: auto-avanço só com aviso prévio declarado
IL12Alvo do gatilho ≥ 44px de alturaMedido pela suíte; SC 2.5.8 pede 24, o piso do projeto é 44
IL13O controle da edição é o do DOMÍNIO, não texto livre para tudoA tabela de delegação: §59 · §60 · §61 · §62 · §63
IL14Campo 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)