Release 1.0.1: foco do ark-toaster, disabled do ark-toggle-group e cobertura de testes - #13
Merged
Merged
Conversation
…ao reabilitar o grupo Ao tirar `disabled` do grupo, os itens desabilitados por conta propria voltavam habilitados: syncToggles marcava todo item com data-group-disabled, inclusive os que ja estavam desabilitados, e a marca e o que autoriza a remocao. Um item ja desabilitado agora nao leva a marca, entao so o disabled que o grupo aplicou e retirado. - ark-toggle.stories.ts: KeyboardAndDisabled (Enter/Espaco, tecla vinda de um filho, clique cancelado e setters com a regra dos wrappers), ClassAndTestHooks (reescrever class mantem as classes do host; hooks no host) e GroupPropagation (value por propriedade, size/intent/theme/disabled descendo para os itens, regressao acima). - CHANGELOG: entrada em Unreleased. Signed-off-by: Paulo Freitas <paulosfjunior@gmail.com>
…um toast novo Cada toast novo refazia a pilha inteira (innerHTML = "" e todos os cards recriados): o botao que o usuario de teclado estava lendo era destruido e o foco caia no body, ao contrario do que o README promete, e o raise() que deveria preservar o foco nunca via foco dentro da pilha. Um card em saida tambem era recriado oculto e perdia a animacao. O render passou a ser incremental: cards ja montados ficam onde estao, os que sairam da lista sao removidos e so o novo e criado, na posicao da lista (o mais novo no topo). O corpo do loop antigo virou buildCard(). Mudar um atributo do host (position, rich-colors, close-button, lang, testid) continua recriando todos os cards, sem reanimar a entrada; um id repetido tira o card antigo e volta ao topo como novo. cardOf() centraliza o seletor com CSS.escape. - ark-toaster.stories.ts: FocoNoTeclado (o foco fica e o card e o mesmo no), TiposAcoesERichColors (icone e paleta por tipo, acao emite ark-toast-action, cancelamento so fecha, excedente de max-visible), Posicoes (seis posicoes, valor invalido e maiusculas, entrada e saida em cada uma), AutoDismissEFila (duration do host, timers cancelados ao sair da fila ou do DOM, mesmo id, atributos invalidos, evento sem titulo) e TestHooks. - CHANGELOG: entrada em Unreleased. Signed-off-by: Paulo Freitas <paulosfjunior@gmail.com>
…e swipe) O arquivo nao tinha nenhuma play function: as demos montavam os helpers, mas nada os executava, e o pacote ficava em 42% de linhas (arkFlip em 0%, arkSwipe em 35%). Cada story ganhou um play, e entraram duas de cobertura: RevealOnce (once padrao) e TargetsAndOptions (seletor, elemento, lista, NodeList, SVG ignorado, presets, distancia em rem/em/px, easing por token, curva e nome da lib, from, movimento reduzido). - Swipe usa PointerEvent feito a mao (pointerId 1, isPrimary) com setTimeout entre os eventos para a velocidade, como o ark-split-pane; movimento reduzido no JS entra por um stub de matchMedia em try/finally. - settled() espera transform (JS) e opacity (WAAPI) na mesma waitFor: o transform chega a none um frame antes. - O pacote sobe para 99% de linhas e 93% de branches. Signed-off-by: Paulo Freitas <paulosfjunior@gmail.com>
O guard `if (once && revealed) return` nunca rodava: o inView da Motion documenta que, sem cleanup devolvido pelo callback, o elemento deixa de ser observado depois da primeira entrada. A flag e o guard cobriam um caso que a lib garante que nao acontece; o comentario passa a apontar o contrato. Signed-off-by: Paulo Freitas <paulosfjunior@gmail.com>
…opy-button - ark-code-editor.stories.ts: Properties cobre todos os setters e getters (reflexo no atributo, validacao de faixa, booleanos com a regra dos wrappers), variableKeys/completions/completionSource/formatter depois de montado e focus(). Os 19 setters nunca eram chamados; o componente sobe de 77% para 98% de linhas. - ark-copy-button.stories.ts: PropertiesAndFallbacks cobre value/feedbackMs por propriedade, `for` em input e sem alvo, locale-json com lang="custom", copia repetida dentro do feedback, fallback de execCommand quando a Clipboard API nega, icon-only com aria-label proprio e do usuario, comentarios e filhos do usuario. Signed-off-by: Paulo Freitas <paulosfjunior@gmail.com>
Seis padroes que custaram uma rodada cada nesta leva de testes: o instrumentador do storybook/test embrulha funcoes passadas ao expect, userEvent.click recusa pointer-events: none, setTimeout em handler de demo vaza para a story seguinte, PointerEvent sintetico com setPointerCapture, corrida transform/opacity dos helpers da Motion e o stub de matchMedia para movimento reduzido no JS. Signed-off-by: Paulo Freitas <paulosfjunior@gmail.com>
Versao raiz e dos dez pacotes (scripts/sync-versions.mjs); o CHANGELOG fecha a secao 1.0.1 com as correcoes do ark-wysiwyg-editor, ark-carousel, ark-toggle-group e ark-toaster. O release.yml publica no push para a main. Signed-off-by: Paulo Freitas <paulosfjunior@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Release 1.0.1
Duas correcoes encontradas ao subir a cobertura de testes, mais as stories que as expuseram. O
release.ymlpublica os dez pacotes em1.0.1no push para amaine cria a release com a secao doCHANGELOG.md.Correcoes
ark-toastermantem o foco do teclado. Cada toast novo refazia a pilha inteira e destruia o botao que o usuario de teclado estava lendo (o README ja prometia o contrario, e oraise()que deveria preservar o foco nunca via foco dentro da pilha). O render virou incremental: cards existentes ficam, so o novo e criado no topo, os dispensados saem; um card em saida mantem a animacao. Mudar atributo do host continua recriando os cards, sem reanimar.ark-toggle-grouppreserva odisabledindividual. Ao reabilitar o grupo, itens desabilitados por conta propria voltavam habilitados, porque o grupo marcava todos como desabilitados por ele.arkReveal(@tooark/motion): guard morto removido; ooncee garantido pelo contrato doinView.Testes
Suite: 376 -> 388 stories. Cobertura: linhas 90,7% -> 93,6%, branches 76,4% -> 80,1%.
motion/flip.ts/swipe.ts/stagger.ts/reveal.tsmotion/internal.tsark-toaster.tsark-code-editor.tsark-toggle.ts/ark-copy-button.tsark-toggle-group.tsark-motion-plus.stories.ts:playnas quatro stories +RevealOnceeTargetsAndOptions.ark-toaster.stories.ts:FocoNoTeclado,TiposAcoesERichColors,Posicoes,AutoDismissEFila,TestHooks.ark-code-editor.stories.ts:Properties.ark-copy-button.stories.ts:PropertiesAndFallbacks.ark-toggle.stories.ts:KeyboardAndDisabled,ClassAndTestHooks,GroupPropagation.CLAUDE.md: armadilhas das play functions (instrumentador doexpect,pointer-events: none, timers de demo,PointerEventsintetico, corrida transform/opacity, stub dematchMedia).Verificacao local
biome ci .limpo;pnpm -r build(10 pacotes) epnpm check:publishOK na 1.0.1; suite completa 388/388 com coverage.