@thibezer/ui-components-kit 2.12.2 → 2.12.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/CHANGELOG.md +42 -0
  2. package/README.md +1 -1
  3. package/dist/camadas.cjs +60 -60
  4. package/dist/camadas.js +676 -579
  5. package/dist/components/ui-camadas/camadas-drag-drop.d.ts +2 -0
  6. package/dist/components/ui-camadas/camadas-hierarquia.d.ts +10 -0
  7. package/dist/components/ui-camadas/camadas-persistencia.d.ts +6 -1
  8. package/dist/components/ui-camadas/camadas-sincronizacao-dom.d.ts +5 -0
  9. package/dist/components/ui-cores/ui-seletor-cor.d.ts +2 -0
  10. package/dist/components/ui-tabela-propriedades/editores-basicos.d.ts +6 -0
  11. package/dist/components/ui-tabela-propriedades/propriedades-gerenciador-valores.d.ts +5 -2
  12. package/dist/components/ui-tabela-propriedades/propriedades-render-arvore.d.ts +2 -0
  13. package/dist/components/ui-tabela-propriedades/tipos.d.ts +6 -0
  14. package/dist/components/ui-tabela-propriedades/ui-tabela-propriedades.d.ts +6 -1
  15. package/dist/cores.cjs +1 -1
  16. package/dist/cores.js +2 -2
  17. package/dist/custom-elements.json +11821 -11639
  18. package/dist/data.cjs +1 -1
  19. package/dist/data.js +39 -38
  20. package/dist/index.cjs +1 -1
  21. package/dist/index.js +100 -98
  22. package/dist/register.cjs +1 -1
  23. package/dist/register.js +3 -3
  24. package/dist/tabela.cjs +1 -1
  25. package/dist/tabela.js +31 -30
  26. package/dist/tipos-elementos.d.ts +3 -3
  27. package/dist/tipos-vue.d.ts +3 -3
  28. package/dist/ui-controle-cores-C_cVXxCn.js +291 -0
  29. package/dist/ui-controle-cores-CuDFS8Y8.cjs +32 -0
  30. package/dist/ui-seletor-cor-DPKqf5wb.cjs +82 -0
  31. package/dist/ui-seletor-cor-FYtRccnK.js +396 -0
  32. package/dist/ui-tabela-propriedades-C5YYnod1.js +3053 -0
  33. package/dist/ui-tabela-propriedades-DWOKznMN.cjs +142 -0
  34. package/package.json +187 -187
package/CHANGELOG.md CHANGED
@@ -1,5 +1,47 @@
1
1
  # Changelog
2
2
 
3
+ ## 2.12.3 — 2026-10-31
4
+
5
+ Junta à 2.12.2 o que estava fora do npm: os complementos do `<ui-tabela-propriedades>` (PR #16) e o restante da revisão do `<ui-camadas>`. Corrige também o CI, que falhava desde a 2.12.0.
6
+
7
+ ### `<ui-camadas>`: estado herdado do grupo e robustez
8
+
9
+ O que a 2.12.0 ainda não cobria (cada item com teste de regressão em `ui-camadas.regressao.test.ts` ou `camadas-drop-ops.test.ts`):
10
+
11
+ - **Estado herdado do grupo:** sob um grupo oculto, subcamadas e feições ficam esmaecidas (classe `herdado-oculto`) sem mudar o próprio estado; sob um grupo travado, as feições das subcamadas ficam travadas ("Bloqueada pela camada") e a linha da subcamada ganha `herdado-travado`. Vale na renderização e na troca do olho/cadeado do grupo, sem redesenhar a árvore.
12
+ - **Camada travada não recebe nem perde feições:** o arraste é recusado e, no "Mover para..." do rodapé, a camada aparece desabilitada com 🔒.
13
+ - **Ciclo ao reordenar:** soltar um grupo acima/abaixo de um descendente dele é recusado (antes o grupo virava filho de si mesmo).
14
+ - **`localStorage` corrompido** (listas que não são listas, opacidade fora de [0, 1], JSON que não é objeto) não derruba mais o painel: o estado é validado campo a campo (`normalizarEstadoPersistido`).
15
+ - `adicionarCamada` com `children` cadastra as subcamadas (antes apareciam na árvore sem existir na lista, e o olho/cadeado delas não respondiam).
16
+ - Remover ou trocar as feições solta a âncora do Shift, que não aponta mais para uma feição que saiu.
17
+ - `F2`: ao confirmar (Enter) ou cancelar (Esc) a renomeação, o foco volta para a linha.
18
+ - O chip de contagem de um grupo soma as feições das subcamadas (o título detalha quantas são da própria camada).
19
+ - `aria-level` nos itens da árvore.
20
+ - Camada sem itens diz "Camada vazia" (antes, "Nenhum elemento neste grupo"); o aviso "Mostrar mais" perde os estilos inline, que sobrepunham o CSS com tokens já existente.
21
+ - O botão "Excluir" do drawer volta ao rótulo original quando a confirmação expira (voltava como "Excluir Camada").
22
+
23
+ ### `<ui-seletor-cor>`
24
+
25
+ - Removido do DOM por fora (sem `fechar()`), o seletor aberto por `abrirSeletorCor()` mantinha os ouvintes de `window`, e o de teclado continuava engolindo o Esc da página inteira. Agora solta ao desconectar (Regra #2).
26
+
27
+ ### CI
28
+
29
+ - `package-lock.json` regerado com npm 10: o lock gerado com npm 11 omitia os *peers* opcionais `@emnapi/core`/`@emnapi/runtime`, e o `npm ci` do workflow (Node 20) falhava desde a 2.12.0.
30
+
31
+ ### `<ui-tabela-propriedades>`: complementos à revisão da 2.12.0
32
+
33
+ **Correções**
34
+
35
+ - Só focar e sair de um campo numérico não altera mais o valor: um valor com mais casas que `casasDecimais` era arredondado e um número guardado como texto (`"10"`) virava `10`, marcando a linha como alterada e emitindo `ui-propriedade-alterada`.
36
+ - `tipoSelecionado` devolve o tipo que o seletor mostra (o primeiro, sem seleção válida), em vez de `''`.
37
+
38
+ **Melhorias**
39
+
40
+ - A unidade pode ser digitada junto do número (`"25 mm"`, `"90°"`), e o resultado de uma expressão sai sem ruído de ponto flutuante (`0.1+0.2` = `0.3`). Função pura `interpretarEntradaNumerica(texto, prop)`.
41
+ - Prévia visível do resultado ao lado do campo enquanto se digita uma expressão (`= 15`, ou `= ?` se ainda inválida), além do `title`. Expressão inválida volta ao valor e o campo pisca em vermelho (`.ui-prop__editor-input--invalido`).
42
+ - Linha alterada ganha uma faixa à esquerda e o botão **↺ Restaurar valor original** (`::part(restaurar)`), que chama `redefinirValor(id)`. `redefinirValor` agora devolve `false` quando não havia o que restaurar.
43
+ - `ui-aplicar` traz `alterados` (só o que mudou) além de `valores`; novo tipo `UIAplicarDetail`.
44
+
3
45
  ## 2.12.2 — 2026-10-30
4
46
 
5
47
  ### `<ui-camadas>`: cabeçalho e rodapé simplificados
package/README.md CHANGED
@@ -751,7 +751,7 @@ window.addEventListener('message', (event) => {
751
751
  | `<ui-skeleton>` | Placeholder de carregamento animado com pulsos. | `tipo`, `largura`, `altura`, `animado` | - |
752
752
  | `<ui-stat>` | Cartão KPI de estatísticas, métricas e tendências. | `rotulo`, `valor`, `variacao`, `tendencia` (`alta`, `baixa`, `neutro`) | - |
753
753
  | `<ui-tabela>` | Tabela orientada a dados, virtualizada tipo Excel. **Teclado**: cabeçalhos ordenáveis são botões (Tab + Enter/Espaço, com `aria-sort`); nas linhas, ↑/↓, Home/End e PageUp/PageDown movem o foco e Enter/Espaço selecionam (`aria-current`). A seleção é mantida ao ordenar e filtrar. Nome acessível via `aria-label`. | `colunas`, `dados`, `src`, `densidade`, `aria-label` | `ui-sort`, `ui-column-resize`, `ui-linha-clique` (demais eventos: ver seção 4) |
754
- | `<ui-tabela-propriedades>` | Inspetor de propriedades técnicas padrão AutoCAD & Revit com cálculos matemáticos inline (+, -, *, /, ^, %), arraste de valor contínuo (scrubbing), splitter redimensionável e editores CAD. Seleção múltipla: propriedade com valores diferentes entre os objetos (`VALOR_MISTO`, `misto: true` ou `combinarValores()`) mostra "Varia" (texto via `texto-misto`); as iguais mostram o valor comum. | `categorias`, `tipo-objeto`, `splitter-pos`, `modo-aplicar`, `filtro` | `ui-propriedade-alterada`, `ui-aplicar`, `ui-desfazer`, `ui-editar-tipo`, `ui-acao-clique`, `ui-quick-select`, `ui-calculadora` |
754
+ | `<ui-tabela-propriedades>` | Inspetor de propriedades técnicas padrão AutoCAD & Revit com cálculos matemáticos inline (+, -, *, /, ^, %), arraste de valor contínuo (scrubbing), splitter redimensionável e editores CAD. Seleção múltipla: propriedade com valores diferentes entre os objetos (`VALOR_MISTO`, `misto: true` ou `combinarValores()`) mostra "Varia" (texto via `texto-misto`); as iguais mostram o valor comum. Números com `min`/`max`/`passo` e unidade digitável ("25 mm"), prévia do cálculo, ↺ para restaurar o valor original, busca sem acentos, Shift+Enter / Ctrl+Enter e splitter pelo teclado. | `categorias`, `tipos`, `tipoSelecionado`, `valores`, `estilo-visual`, `modo-aplicar`, `filtro`, `largura-rotulo`, `densidade`, `flutuante`, `colapsado`, `fechavel`, `texto-misto`; métodos `aplicar()`, `desfazer()`, `redefinirValor(id)`, `definirValor()` | `ui-propriedade-alterada`, `ui-aplicar` (`valores`, `alterados`), `ui-desfazer`, `ui-tipo-alterado`, `ui-editar-tipo-clique`, `ui-acao-clique`, `ui-quick-select`, `ui-selecionar-objetos`, `ui-calculadora`, `ui-categoria-toggle`, `ui-splitter-resize` |
755
755
  | `<ui-ribbon>` | Barra de ferramentas em abas e grupos (estilo AutoCAD / Word / Excel): botões grandes e pequenos em colunas de 3, split buttons (`item.dividido`), toggles, exclusividade configurável (`grupo.exclusivo`), menus suspensos com submenus aninhados, lançador de diálogo (`grupo.lancadorDialogo`), colapso automático responsivo de grupos (`ResizeObserver` + `grupo.prioridade`), abas contextuais, ativação manual de abas (`ativacao-manual`), atalhos de teclado e KeyTips (`keytips`), modo controlado sem mutação (`copiar-dados`), tooltips estilizados e navegação por teclado (roving tabindex). `aba-ativa` pode ser definido antes de `abas` (fica pendente); `aria-label` e `rotulo-abas` rotulam a toolbar e o tablist; `ui-ferramenta` é cancelável (`preventDefault()` reverte o toggle). Use `id` únicos e `rotulo`/`rotuloAcessivel` em botões só de ícone. | `abas`, `aba-ativa`, `recolhido`, `compacto`, `ativacao-manual`, `copiar-dados`, `atalhos`, `keytips`, `aria-label`, `rotulo-abas` | `ui-ferramenta`, `ui-aba-change`, `ui-recolhido-change`, `ui-grupo-dialogo` |
756
756
  | `<ui-paleta-ferramentas>` | Paleta de ferramentas gráficas (estilo Illustrator / Photoshop): seleção exclusiva, grupos com flyout expansível e submenus aninhados, navegação em grade bidimensional para `colunas="2"`, suporte a atalhos compostos (`Ctrl+Z`, `Shift+V`, `Esc`) com isolamento multi-paleta, modo controlado sem mutação (`copiar-dados`), orientações vertical/horizontal e tooltips leves integrados no Shadow DOM. `valor` pode vir antes de `ferramentas` (pendente) e `valor = ''` / `limpar()` remove a seleção; `ui-ferramenta` dispara sempre e é cancelável (`preventDefault()` reverte), `ui-change`/`ui-selecionar` só quando a seleção muda (ouça um deles, não ambos). | `ferramentas`, `valor`, `orientacao`, `colunas`, `tamanho`, `atalhos`, `copiar-dados`, `aria-label` | `ui-change`, `ui-selecionar`, `ui-ferramenta` |
757
757
  | `<ui-controle-cores>` | Par de cores de desenho (estilo Illustrator): preenchimento na frente, traço atrás, botões de inverter, "sem cor" e restaurar padrão, estado misto (`?`) e modo só traço. Clique no alvo ativo abre o `<ui-seletor-cor>`. Não registra atalhos: quem usa chama `alternarAlvo()`, `inverter()`, `semCor()`, `restaurarPadrao()` e pode exibir as teclas via `atalhos`. Tamanho ajustável com `--ui-controle-cores-amostra`. Entrada: `@thibezer/ui-components-kit/cores`. | `preenchimento`, `traco`, `opacidade`, `alvo`, `padrao-preenchimento`, `padrao-traco`, `titulo-seletor`, `so-traco`, `desabilitado`, `coresProjeto`, `definirCores()`, `definirMisto()` | `ui-cores-change` (`confirmado` false = pré-visualização), `ui-alvo-change` |