@thibezer/ui-components-kit 2.12.0 → 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.
- package/CHANGELOG.md +140 -84
- package/README.md +1 -1
- package/dist/camadas.cjs +91 -113
- package/dist/camadas.js +785 -762
- package/dist/components/ui-camadas/camadas-drag-drop.d.ts +2 -0
- package/dist/components/ui-camadas/camadas-hierarquia.d.ts +10 -0
- package/dist/components/ui-camadas/camadas-persistencia.d.ts +6 -1
- package/dist/components/ui-camadas/camadas-rodape.d.ts +5 -0
- package/dist/components/ui-camadas/camadas-sincronizacao-dom.d.ts +5 -0
- package/dist/components/ui-cores/ui-seletor-cor.d.ts +2 -0
- package/dist/components/ui-tabela-propriedades/editores-basicos.d.ts +6 -0
- package/dist/components/ui-tabela-propriedades/propriedades-gerenciador-valores.d.ts +5 -2
- package/dist/components/ui-tabela-propriedades/propriedades-render-arvore.d.ts +2 -0
- package/dist/components/ui-tabela-propriedades/tipos.d.ts +6 -0
- package/dist/components/ui-tabela-propriedades/ui-tabela-propriedades.d.ts +6 -1
- package/dist/components/ui-texto-editavel/index.d.ts +2 -0
- package/dist/components/ui-texto-editavel/texto-editavel-teclado.d.ts +12 -0
- package/dist/components/ui-texto-editavel/texto-editavel-template.d.ts +2 -0
- package/dist/components/ui-texto-editavel/tipos.d.ts +14 -0
- package/dist/components/ui-texto-editavel/ui-texto-editavel.d.ts +82 -0
- package/dist/cores.cjs +1 -1
- package/dist/cores.js +2 -2
- package/dist/custom-elements.json +15585 -14630
- package/dist/data.cjs +1 -1
- package/dist/data.js +39 -38
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +195 -191
- package/dist/register.cjs +1 -1
- package/dist/register.js +4 -4
- package/dist/tabela.cjs +1 -1
- package/dist/tabela.js +31 -30
- package/dist/tipos-elementos.d.ts +29 -3
- package/dist/tipos-react.d.ts +2 -0
- package/dist/tipos-vue.d.ts +28 -3
- package/dist/ui-controle-cores-C_cVXxCn.js +291 -0
- package/dist/ui-controle-cores-CuDFS8Y8.cjs +32 -0
- package/dist/ui-linha-BxhEBn27.js +749 -0
- package/dist/ui-linha-CcalUBDw.cjs +38 -0
- package/dist/ui-seletor-cor-DPKqf5wb.cjs +82 -0
- package/dist/ui-seletor-cor-FYtRccnK.js +396 -0
- package/dist/ui-tabela-propriedades-C5YYnod1.js +3053 -0
- package/dist/ui-tabela-propriedades-DWOKznMN.cjs +142 -0
- package/package.json +187 -187
package/CHANGELOG.md
CHANGED
|
@@ -1,87 +1,143 @@
|
|
|
1
|
-
# Changelog
|
|
2
|
-
|
|
3
|
-
## 2.12.
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
- **
|
|
12
|
-
|
|
13
|
-
- **
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
-
|
|
71
|
-
-
|
|
72
|
-
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
-
|
|
79
|
-
-
|
|
80
|
-
-
|
|
81
|
-
-
|
|
82
|
-
-
|
|
83
|
-
-
|
|
84
|
-
|
|
1
|
+
# Changelog
|
|
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
|
+
|
|
45
|
+
## 2.12.2 — 2026-10-30
|
|
46
|
+
|
|
47
|
+
### `<ui-camadas>`: cabeçalho e rodapé simplificados
|
|
48
|
+
|
|
49
|
+
- **Barras unificadas**: cabeçalho (título + contador) e rodapé usam a mesma altura (`--camada-barra-altura`, 28px), coladas nas bordas do painel e com linha divisória de ponta a ponta.
|
|
50
|
+
- **Botões sem borda dupla**: olho, chevron, `Grupo` e `Camada` perdem a borda própria; ficam só com fundo sutil.
|
|
51
|
+
- **Criação no rodapé**: `Grupo` e `Camada` saíram da toolbar do topo e ficam à direita do rodapé (eventos `ui-camada-adicionar` e `ui-camada-grupo-adicionar` inalterados). Os ids `btn-add-layer` e `btn-add-group` deixam de existir; use `btn-footer-new-layer` e `btn-footer-new-group`.
|
|
52
|
+
- **Rodapé enxuto**: o texto "N camadas" virou ícone de camadas + número (o texto fica em `title`/`aria-label`). Saíram o olho e o cadeado coletivos, a bolinha de cor, a métrica de área e o botão "X" (o `Esc` limpa a seleção).
|
|
53
|
+
- **Ações em massa**: `visibilidade`, `bloqueio` e `cor` deixam de ser disparadas pelo painel; seguem `mover` e `excluir`. O seletor de camada de destino ocupa o espaço livre.
|
|
54
|
+
|
|
55
|
+
### `<ui-texto-editavel>` (novo)
|
|
56
|
+
|
|
57
|
+
- Novo componente de texto editável inline, exportado em `src/index.ts` e registrado em `src/register.ts`.
|
|
58
|
+
|
|
59
|
+
## 2.12.0 — 2026-10-26
|
|
60
|
+
|
|
61
|
+
### `<ui-camadas>`: Verificação e Correção Profunda, Robustez e UX Avançada
|
|
62
|
+
|
|
63
|
+
- **Proteção Numérica e Degradação Graciosa (Regra #0 do AGENTS.md)**:
|
|
64
|
+
- Eliminação de recursão infinita e loops em `construirHierarquiaCamadas` e `achatarCamadas`: proteção com detecção de ciclos via `Set` de nós visitados e quebra do ciclo elegendo a raiz sem perder camadas da árvore nem travar a UI.
|
|
65
|
+
- Correção do cálculo de área geodésica em `camadas-metricas.ts`: substituição da soma de produtos vetoriais de arestas por Shoelace projetado na esfera WGS84 com projeção local ($\phi_m$), blindagem contra `NaN`/`Infinity`, divisão por zero e clamp trigonométrico na distância esférica.
|
|
66
|
+
- Saneamento defensivo em `atualizarFeicaoNoHost`: proteção contra objetos `feicao` nulos ou indefinidos e clonagem segura de propriedades.
|
|
67
|
+
- **Persistência Completa de Hierarquia**:
|
|
68
|
+
- `montarEstadoPersistido` e `aplicarEstadoPersistido` agora salvam e restauram `parentId`, impedindo o "desaninhamento" de subcamadas após reload da página. Saneamento preventivo contra reidratação de ciclos (`ehDescendente`).
|
|
69
|
+
- **UX de Paginação Incremental ("Mostrar mais")**:
|
|
70
|
+
- Em camadas densas com centenas de feições, o componente limita a renderização inicial a 80 itens por camada e disponibiliza o botão "Mostrar mais (+80)" e o método público `incrementarLimiteFeicoes(camadaId)`.
|
|
71
|
+
- A seleção em intervalo (Shift+Clique) e seleções em lote respeitam estritamente a hierarquia real das subcamadas e o limite visível.
|
|
72
|
+
- **Acessibilidade e Atalhos de Teclado**:
|
|
73
|
+
- `F2`: Inicia a renomeação inline da camada ou feição focada.
|
|
74
|
+
- `Ctrl+A` / `Cmd+A`: Seleciona todas as feições visíveis na árvore (respeitando busca ativa e nós colapsados).
|
|
75
|
+
- `Delete`: Aciona o fluxo de exclusão segura das feições selecionadas com confirmação em dois passos.
|
|
76
|
+
- `Escape`: Cancela o estado de confirmação pendente ou fecha o drawer lateral de configurações.
|
|
77
|
+
- **Sincronização de Estado e Rodapé**:
|
|
78
|
+
- O alvo de seleção da camada (`ui-target-circle`) agora monitora a subárvore completa (camada pai e subcamadas filhas), aplicando corretamente os estados `selected`, `partial` ou vazio.
|
|
79
|
+
- O preview de cor do rodapé é atualizado com a cor real da primeira feição selecionada.
|
|
80
|
+
- O evento `ui-camada-mover-hierarquia` agora informa `parentAnteriorId` para rastreabilidade e histórico de operações.
|
|
81
|
+
- Adicionado método público `alternarExpansao(camadaId)`.
|
|
82
|
+
- **Customização e Shadow Parts (`::part()`)**:
|
|
83
|
+
- Exposição de partes padronizadas: `base`, `corpo`, `toolbar`, `busca`, `arvore`, `grupo`, `camada`, `camada-ativa`, `feicao`, `feicao-selecionada`, `mapas-base`, `rodape`, `drawer`, `resizer` e `botao-expandir`.
|
|
84
|
+
|
|
85
|
+
### `<ui-tabela-propriedades>`: Verificação e Correção Profunda, Robustez, UX e Acessibilidade CAD/Revit
|
|
86
|
+
|
|
87
|
+
- **Proteção e Degradação Graciosa (Regra #0 do AGENTS.md)**:
|
|
88
|
+
- Higienização e tolerância a entradas hostis em `categorias` e `tipos` (itens `null`, propriedades sem rótulo ou malformadas são aceitas sem disparar `TypeError`).
|
|
89
|
+
- Blindagem do parser matemático contra divisão por zero, `NaN`, `Infinity` e estouro de pilha por parênteses recursivos profundos (`MAX_PROFUNDIDADE = 64`).
|
|
90
|
+
- Tratamento seguro de `flutuante`: prevenção contra ciclo de recursão de mutação em `attributeChangedCallback`.
|
|
91
|
+
- **Motor Matemático e Expressões Inline CAD/Revit (`avaliador-expressao.ts`)**:
|
|
92
|
+
- Suporte a prefixo `=` opcional de fórmula (ex.: `=10.5 * 2 + (4 / 2)`).
|
|
93
|
+
- Suporte completo a números em notação científica (ex.: `1e-5`, `2.5e3`).
|
|
94
|
+
- Correção na avaliação contextual de porcentagem em termos compostos (`100 + 50 * 10% = 105`).
|
|
95
|
+
- Suporte a funções matemáticas avançadas: `min`, `max`, `pow`, `hypot`, `atan2`, `mod`, `trunc`, `sign`, `log`, `ln`, `deg`, `rad`.
|
|
96
|
+
- Preview visual em tempo real no atributo `title` do campo numérico enquanto uma fórmula é digitada (`.ui-prop__editor-input--calculando`).
|
|
97
|
+
- **Ergonomia e UX Técnica (AutoCAD, Revit, Blender e Figma)**:
|
|
98
|
+
- Suporte a limites numéricos `min` e `max` em propriedades numéricas (com clamp automático na digitação, no teclado e no scrubber).
|
|
99
|
+
- Suporte a `passo` e `step` customizados para ajuste fino e grosso via setas `ArrowUp`/`ArrowDown` e scrubber.
|
|
100
|
+
- Suporte a aliases `precisao` (para `casasDecimais`) e `aberta` (para `aberto` em categorias).
|
|
101
|
+
- Exibição de dicas técnicas (`dica?: string` em `ItemPropriedade`) no `title` do rótulo e em `aria-description` do editor.
|
|
102
|
+
- Formatação e cópia de valores somente leitura (`readonly`), suportando casas decimais, resolução de labels de seleção e booleanos.
|
|
103
|
+
- Novo método público `redefinirValor(propId)` para reverter uma propriedade individual ao seu valor original sem descartar as demais alterações.
|
|
104
|
+
- Novo botão de limpar busca (`#btn-limpar-filtro`) e atalho `Escape` para limpar o filtro de busca instantaneamente.
|
|
105
|
+
- Busca expandida: agora localiza propriedades também pelo título da categoria (`cat.titulo`) e pelo valor atual.
|
|
106
|
+
- Exibição de estado vazio informativo quando nenhum resultado coincidir com o filtro.
|
|
107
|
+
- Atalho `Ctrl+Enter` / `Cmd+Enter` para aplicar alterações no modo manual.
|
|
108
|
+
- Tecla `Escape` durante a edição de campos numéricos e de texto cancela a alteração sem propagar o evento para modais ou overlays pais.
|
|
109
|
+
- Suporte a `Shift+Enter` para navegar ao editor anterior, e navegação restrita estritamente a editores visíveis de categorias abertas.
|
|
110
|
+
- **Acessibilidade e WAI-ARIA**:
|
|
111
|
+
- Splitter vertical (`#splitter`) agora é um separador acessível (`role="separator"`, `tabindex="0"`, `aria-orientation="vertical"`, `aria-valuenow` dinâmico) ajustável via teclado com `ArrowLeft`, `ArrowRight`, `Home`, `End` e `Enter` para restaurar os 45% padrão.
|
|
112
|
+
- Cabeçalhos de categorias (`.ui-prop__categoria-header`) navegáveis por teclado via `ArrowDown`, `ArrowUp`, `ArrowLeft` (recolhe), `ArrowRight` (expande), `Home` e `End`.
|
|
113
|
+
- Correção de contraste para conformidade WCAG AA no tema claro (`[data-tema="claro"]`).
|
|
114
|
+
- Adição de `aria-label` descritivo nos seletores de tipo e de linha.
|
|
115
|
+
- **Shadow Parts (`::part()`) e Registro de Aliases**:
|
|
116
|
+
- Exposição completa de shadow parts: `base`, `faixa-estreita`, `cabecalho`, `titulo`, `acoes-cabecalho`, `seletor-tipo`, `filtro`, `filtro-input`, `splitter`, `corpo`, `lista-categorias`, `vazio`, `categoria`, `categoria-aberta`, `categoria-cabecalho`, `categoria-conteudo`, `linha`, `linha-modificada`, `linha-mista`, `rotulo`, `valor`, `editor`, `unidade`, `rodape`, `ajuda`, `desfazer`, `aplicar`.
|
|
117
|
+
- Registro oficial dos Custom Elements aliases `<ui-painel-propriedades>` e `<ui-propriedades>` (classes `UIPainelPropriedades` e `UIPropriedades`), com tipagem completa gerada para HTML nativo, React e Vue.
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
## 2.11.1 — 2026-10-23
|
|
121
|
+
|
|
122
|
+
Junta à 2.11.0 o que estava fora do npm (PR #14): o redesign compacto do seletor de cor no estilo Illustrator.
|
|
123
|
+
|
|
124
|
+
### `<ui-seletor-cor>`: painel mais compacto, campos no estilo Illustrator
|
|
125
|
+
|
|
126
|
+
- Opacidade e espessura do traçado viram **campos numéricos** compactos (rótulo à esquerda, campo com setas ▲▼ e unidade `%`/`px`), no lugar das faixas deslizantes e dos atalhos (25–100 % e 1–8 px). No campo: ↑/↓ e a roda do mouse (com o campo em foco) somam um passo (1 % ou 0,5 px), Shift soma dez; o valor digitado ("50", "50%", "2,5 px") vale no Enter, no Tab ou ao sair; texto inválido volta ao valor atual sem emitir evento. Enter no campo não fecha o seletor.
|
|
127
|
+
- "Sem cor" deixa de ser um botão largo com texto e vira uma amostra quadrada de 30 px (fundo neutro com diagonal vermelha, como o *None* do Illustrator) ao lado do hexadecimal e do seletor do sistema; mantém a classe `.sem-cor`, `data-cor="none"`, `aria-pressed` e o rótulo acessível.
|
|
128
|
+
- Saem as amostras "Cores do projeto" e "Paleta padrão". As opções `coresProjeto` e `paleta` de `abrirSeletorCor()`/`configurar()`, a propriedade `coresProjeto` do `<ui-controle-cores>` e a constante `PALETA_CORES_PADRAO` continuam aceitas, mas ficam obsoletas (`@deprecated`) e são ignoradas pelo seletor.
|
|
129
|
+
|
|
130
|
+
## 2.11.0 — 2026-10-23
|
|
131
|
+
|
|
132
|
+
### `<ui-canvas-cad>`: personalização da linha padrão (tipos de linha CAD)
|
|
133
|
+
|
|
134
|
+
- **Tipos de linha estilo CAD** (`tipoLinha`): `continua`, `tracejada`, `tracejada-curta`, `tracejada-longa`, `pontilhada`, `traco-ponto`, `traco-ponto-ponto`, `oculta`, `centro`, `fantasma` e `divisa`. Os nomes do AutoCAD (`Dashed`, `Hidden`, `Center`, `Phantom`...) também valem, inclusive os do editor de tipo de linha do `<ui-tabela-propriedades>`.
|
|
135
|
+
- **Novas opções de traço** em `EstiloFeicao`: `tipoLinha`, `escalaTipoLinha` (LTSCALE), `deslocamentoTracejado`, `opacidadeTraco`, `terminacaoTraco` (`arredondada`/`reta`/`quadrada`) e `juncaoTraco` (`arredondada`/`chanfrada`/`angular`). Em `LayerStyleDef`, como padrão da camada: `tipoLinha`, `escalaTipoLinha`, `opacidadeLinha`, `terminacaoLinha` e `juncaoLinha`. Valem nos renderizadores `leaflet` e `canvas`.
|
|
136
|
+
- **Linha padrão do componente**: atributos `linha-cor`, `linha-espessura`, `linha-tipo`, `linha-escala`, `linha-tracejado`, `linha-deslocamento`, `linha-opacidade`, `linha-terminacao` e `linha-juncao`, e os métodos `definirLinhaPadrao(opcoes)` / `obterLinhaPadrao()` (tipo `OpcoesLinhaPadrao`). Gravam no estilo de desenho: as feições desenhadas daqui para frente saem com essa linha.
|
|
137
|
+
- O conta-gotas copia também as novas opções.
|
|
138
|
+
- Entrada hostil: valor inválido não é aplicado (a opção volta ao padrão); cor e tracejado são saneados; `null` remove a opção. Feição selecionada sempre tem traço opaco.
|
|
139
|
+
- Utilitários puros em `gerencigeo-canvas`: `TIPOS_LINHA`, `normalizarTipoLinha`, `dashTipoLinha`, `escalaTipoLinhaSegura`, `terminacaoCanvas`, `juncaoCanvas`. `EstiloVetor` ganha os campos opcionais `opacidadeTraco`, `terminacao`, `juncao` e `deslocamentoDash`.
|
|
140
|
+
- Guia: [`docs/linha-padrao-cad.md`](docs/linha-padrao-cad.md).
|
|
85
141
|
|
|
86
142
|
## 2.10.1 — 2026-10-23
|
|
87
143
|
|
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`, `
|
|
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` |
|