@thibezer/ui-components-kit 2.15.0 → 2.17.1
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 +57 -0
- package/README.md +1 -1
- package/dist/botao.cjs +1 -1
- package/dist/botao.js +1 -1
- package/dist/camadas.cjs +89 -89
- package/dist/camadas.js +1376 -1320
- package/dist/campo-texto.cjs +1 -1
- package/dist/campo-texto.js +1 -1
- package/dist/canvas.cjs +24 -24
- package/dist/canvas.js +757 -751
- package/dist/card.cjs +1 -1
- package/dist/card.js +1 -1
- package/dist/components/ui-avatar/ui-avatar.d.ts +7 -0
- package/dist/components/ui-barra-ferramentas/ui-paleta-ferramentas.d.ts +2 -0
- package/dist/components/ui-camadas/camadas-colecao.d.ts +3 -0
- package/dist/components/ui-camadas/camadas-drag-drop.d.ts +3 -1
- package/dist/components/ui-camadas/camadas-selecao-api.d.ts +1 -0
- package/dist/components/ui-canvas-cad/ui-canvas-cad.d.ts +7 -0
- package/dist/components/ui-mapa/ui-mapa.d.ts +1 -0
- package/dist/components/ui-seletor-mapa-base/ui-seletor-mapa-base.d.ts +6 -0
- package/dist/components/ui-skeleton/ui-skeleton.d.ts +9 -0
- package/dist/components/ui-stat/ui-stat.d.ts +12 -0
- package/dist/components/ui-tabela-propriedades/propriedades-dom-utils.d.ts +2 -1
- package/dist/components/ui-tabela-propriedades/propriedades-persistencia.d.ts +63 -0
- package/dist/components/ui-tabela-propriedades/propriedades-render-arvore.d.ts +1 -0
- package/dist/components/ui-tabela-propriedades/tipos.d.ts +16 -0
- package/dist/components/ui-tabela-propriedades/ui-tabela-propriedades.d.ts +40 -1
- package/dist/core/degrade.d.ts +34 -0
- package/dist/core/index.d.ts +1 -0
- package/dist/core.cjs +1 -1
- package/dist/core.js +33 -24
- package/dist/cores.cjs +1 -1
- package/dist/cores.js +2 -2
- package/dist/custom-elements.json +6896 -5351
- package/dist/data.cjs +1 -1
- package/dist/data.js +89 -79
- package/dist/degrade-CIxvOTUv.cjs +1 -0
- package/dist/degrade-gDa5sW__.js +119 -0
- package/dist/feedback.cjs +1 -1
- package/dist/feedback.js +2 -2
- package/dist/forms.cjs +1 -1
- package/dist/forms.js +2 -2
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +215 -196
- package/dist/mapa.cjs +1 -1
- package/dist/mapa.js +1 -1
- package/dist/modal.cjs +1 -1
- package/dist/modal.js +1 -1
- package/dist/register.cjs +1 -1
- package/dist/register.js +12 -12
- package/dist/seletor-mapa-base.cjs +10 -10
- package/dist/seletor-mapa-base.js +34 -28
- package/dist/tabela.cjs +1 -1
- package/dist/tabela.js +83 -73
- package/dist/tipos-elementos.d.ts +33 -3
- package/dist/tipos-vue.d.ts +30 -3
- package/dist/tools.cjs +1 -1
- package/dist/tools.js +1 -1
- package/dist/ui-badge-1UU8vT-b.js +198 -0
- package/dist/ui-badge-CKKKPdt8.cjs +28 -0
- package/dist/ui-badge-DE58YSBY.cjs +28 -0
- package/dist/ui-badge-KgmI3jOD.js +201 -0
- package/dist/ui-botao-Dz8YvmiA.cjs +12 -0
- package/dist/ui-botao-bU_bf6SU.js +166 -0
- package/dist/ui-botao-xTbH5mpH.cjs +12 -0
- package/dist/ui-botao-zLkcMMyP.js +168 -0
- package/dist/ui-campo-texto-DVU_sWV1.cjs +16 -0
- package/dist/ui-campo-texto-Dliyt9qr.cjs +16 -0
- package/dist/ui-campo-texto-W5M0gNE4.js +377 -0
- package/dist/ui-campo-texto-btevggO3.js +379 -0
- package/dist/ui-card-BYyYxxY1.cjs +20 -0
- package/dist/ui-card-CojoGXaT.js +144 -0
- package/dist/ui-card-DFnRp9bl.js +146 -0
- package/dist/ui-card-DrWVJQKw.cjs +20 -0
- package/dist/ui-controle-cores-B1w_Yl69.cjs +32 -0
- package/dist/ui-controle-cores-BRjMvmMn.js +291 -0
- package/dist/ui-controle-cores-Bq_XUrIQ.cjs +32 -0
- package/dist/ui-controle-cores-BtA6yzu3.js +291 -0
- package/dist/ui-kit.css +1 -1
- package/dist/ui-linha-2kY7TNUJ.cjs +38 -0
- package/dist/ui-linha-DAz6DBcl.cjs +38 -0
- package/dist/ui-linha-DkxwMhD-.js +749 -0
- package/dist/ui-linha-KFF86FW5.js +752 -0
- package/dist/ui-modal-4nU-tXjO.cjs +18 -0
- package/dist/ui-modal-BrXzVZ65.js +216 -0
- package/dist/ui-modal-BwB9fksp.js +214 -0
- package/dist/ui-modal-lARKzEVZ.cjs +18 -0
- package/dist/ui-paleta-ferramentas-Bu6JaT0s.js +1245 -0
- package/dist/ui-paleta-ferramentas-D3Jhwt26.cjs +21 -0
- package/dist/ui-seletor-cor-CMuuW-Ym.cjs +83 -0
- package/dist/ui-seletor-cor-DFIQ1sin.js +405 -0
- package/dist/ui-skeleton-BLEV6h3k.js +653 -0
- package/dist/ui-skeleton-B_XTaGrX.cjs +52 -0
- package/dist/ui-skeleton-DEHwpDqa.js +648 -0
- package/dist/ui-skeleton-sIphhOSx.cjs +52 -0
- package/dist/ui-switch-BXIDwC-Y.cjs +66 -0
- package/dist/ui-switch-Ctxk-jKS.js +1212 -0
- package/dist/ui-switch-DAIgOhqr.cjs +66 -0
- package/dist/ui-switch-_F8yubdX.js +1203 -0
- package/dist/ui-tabela-propriedades-2bq2nX-b.js +3202 -0
- package/dist/ui-tabela-propriedades-CJyo568n.js +3517 -0
- package/dist/ui-tabela-propriedades-CnfW9DZG.cjs +142 -0
- package/dist/ui-tabela-propriedades-Wa34hfIr.cjs +142 -0
- package/package.json +187 -187
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,62 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 2.17.1 — 2026-11-12
|
|
4
|
+
|
|
5
|
+
### `<ui-camadas>` & `<ui-seletor-cor>`: correções de seleção, bloqueio, teclado, DnD touch e usabilidade do seletor de cores
|
|
6
|
+
|
|
7
|
+
- **`<ui-camadas>`:**
|
|
8
|
+
- **Seleção em intervalo (`Shift+Clique`):** `selecionarFeicao` agora respeita o limite expandido por *"Mostrar mais (+80)"* (`expandedFeatureLimits`), permitindo selecionar em intervalo feições além das 80 iniciais.
|
|
9
|
+
- **Proteção de bloqueio (`locked`):** movimentação e exclusão em lote pelo rodapé, bem como transferência de feições por Drag & Drop, agora ignoram feições individualmente bloqueadas ou pertencentes a camadas/grupos bloqueados; bloquear/desbloquear camada atualiza imediatamente o `<select>` de destino no rodapé.
|
|
10
|
+
- **Sincronização cirúrgica de DOM:** alterar a cor de uma camada atualiza *in-place* a barra lateral e a miniatura SVG das feições filhas que herdam a cor da camada; o círculo de seleção da camada (`.ui-target-circle`) respeita o filtro de busca ativo; `Escape` limpa o timer e restaura imediatamente os rótulos dos botões de exclusão em confirmação.
|
|
11
|
+
- **Navegação WAI-ARIA e Touch DnD:** `ArrowRight` em camada expandida move o foco para a primeira linha filha visível e `ArrowLeft` em feição/subcamada recolhida move o foco para a camada-mãe; arraste por toque (`touch`) suporta aninhamento hierárquico (`drop-into`) e emite `ui-camada-mover-hierarquia`; `.ui-col-actions` fica visível em `:focus-within` e com gaveta ativa.
|
|
12
|
+
- **Tokens e limpeza de estado:** substituição de variáveis CSS inexistentes em `.ui-truncate-notice` / `.ui-truncate-more-btn` pelos tokens oficiais `--ui-cor-fundo-elevado` e `--ui-cor-hover-menu`; limpeza automática de estados órfãos (`activeSettingsLayerId`, `editingLayerId`, `editingFeatureId`, `expandedFeatureLimits`) ao remover ou redefinir camadas/feições.
|
|
13
|
+
- **`<ui-seletor-cor>`:**
|
|
14
|
+
- Substituição do ícone de círculo vazio com contorno duplo no botão do seletor do sistema (`.nativo`) por um ícone de conta-gotas (`pipeta`) claro e sem anéis fantasmas extras.
|
|
15
|
+
- Clique direto na metade `"NOVA"` da prévia (`.previa-metade--nova`) também abre o seletor de cor do sistema.
|
|
16
|
+
- No modo simples com `mostrarOpacidade: false`, a prévia antes/depois exibe a cor sólida real em vez de aplicar opacidade padrão de `35%`.
|
|
17
|
+
|
|
18
|
+
## 2.17.0 — 2026-11-10
|
|
19
|
+
|
|
20
|
+
### Customização: suporte completo a degradê interno (`degrade`) e `::part()` estruturais
|
|
21
|
+
|
|
22
|
+
- **Design Tokens ($L_0$):**
|
|
23
|
+
- Novos tokens temáticos `--ui-gradiente-*` (`superficie`, `card`, `elevado`, `primario`, `secundario`, `destaque`, `destrutivo`, `sucesso`, `erro`, `alerta`, `info`, `texto`) declarados de forma consistente nos temas escuro, claro forçado (`[data-tema="claro"]`) e claro automático (`prefers-color-scheme: light`) em `src/tokens/colors.css`.
|
|
24
|
+
- Novo módulo `src/tokens/gradients.css` (importado por `src/tokens/index.css`) com utilitários `.degrade`, `.ui-degrade`, `.gradiente`, `.ui-gradiente` e `[data-degrade]` mapeando `--ui-fundo-*` para gradientes do tema ativo.
|
|
25
|
+
- **Fundação Core ($L_1$):**
|
|
26
|
+
- Novo módulo puro e SSR-safe `src/core/degrade.ts` (re-exportado em `src/core/index.ts` e `src/index.ts`) com resolução de presets semânticos, validação anti-XSS/CSS-injection (`gradienteSeguro`, `resolverDegrade`) e sincronização declarativa (`aplicarDegradeNoElemento`) aceitando atributos `degrade`, `gradiente`, `gradient` e classes `.degrade` / `.gradiente`.
|
|
27
|
+
- **Estilização e APIs de Componentes ($L_3 / L_4$):**
|
|
28
|
+
- Substituição das declarações bloqueantes `background-color: var(--ui-*)` por `background: var(--ui-degrade-interno, var(--ui-*-fundo, var(--ui-fundo-*, var(--ui-cor-*))))` nos CSS dos componentes, preservando variantes `outline`/`ghost`/`transparent`, shimmer de `<ui-skeleton>`, rótulos flutuantes (`<ui-campo-texto>`, `<ui-area-texto>`), chevrons SVG de `<select>` (`<ui-camadas>`, `<ui-tabela-propriedades>`) e recorte de texto por gradiente (`background-clip: text` opt-in no `<ui-texto>`).
|
|
29
|
+
- Exposição de `::part(base)` e subparts estruturais com documentação `@csspart` em `<ui-stat>`, `<ui-avatar>`, `<ui-skeleton>`, `<ui-ribbon>`, `<ui-paleta-ferramentas>`, `<ui-seletor-mapa-base>`, `<ui-canvas-cad>` e `<ui-mapa>`.
|
|
30
|
+
- **Testes e Contratos:**
|
|
31
|
+
- Suíte unitária e adversarial em `src/core/degrade.test.ts` e cobertura de tokens, parts estruturais, classes, presets e bloqueio de CSS hostil em `tests/customizacao.test.ts`.
|
|
32
|
+
|
|
33
|
+
## 2.16.1 — 2026-11-10
|
|
34
|
+
|
|
35
|
+
### `<ui-tabela-propriedades>`: memória e persistência automática das abas/categorias abertas
|
|
36
|
+
|
|
37
|
+
- **Memória em execução + persistência no `localStorage`:**
|
|
38
|
+
- Novo módulo puro e SSR-safe `propriedades-persistencia.ts` (`LembrancaCategoriasPropriedades` e helpers de normalização, chave de storage e proteção contra `Object.freeze`, `JSON` corrompido e poluição de protótipo).
|
|
39
|
+
- Preserva automaticamente quais categorias/abas estavam abertas ou fechadas ao reatribuir `categorias` em memória (mesmo com `persistir="false"` ou antes de conectar ao DOM) e entre sessões no `localStorage` usando o prefixo `ui_tabela_propriedades_estado_`.
|
|
40
|
+
- Suporte aos atributos/propriedades `persistir` (padrão `true`; defina `persistir="false"` para manter apenas em memória) e `storage-key` (com fallback para `id` do elemento ou `'default'`, emitindo `console.warn` caso múltiplos painéis persistentes sem identificador compartilhem a mesma chave padrão), alinhado ao contrato de `<ui-camadas>`.
|
|
41
|
+
- A busca/filtragem continua expandindo temporariamente categorias filtradas na visualização sem sobrescrever nem corromper as preferências salvas.
|
|
42
|
+
- **API programática e evento unificado (`ui-categorias-estado`):**
|
|
43
|
+
- Novos métodos públicos `obterEstadoCategorias()`, `definirEstadoCategorias(estado, opcoes?)`, `limparEstadoCategorias()`, `limparLembranca()` e `obterChaveStorageAtual()`, além de `expandirTudo()`, `colapsarTudo()` e `toggleCategoria(id)` sincronizados com a lembrança e tolerantes a objetos `Object.freeze`.
|
|
44
|
+
- Emissão do evento `CustomEvent<UICategoriasEstadoDetail>('ui-categorias-estado')` (`{ estado, abertas, fechadas }`) nas alternâncias de abas e ações em lote, com sincronização cirúrgica do DOM (`sincronizarDomCategorias`) para preservar foco de campos em edição.
|
|
45
|
+
- **Testes:**
|
|
46
|
+
- Novos testes unitários em `propriedades-persistencia.test.ts` e ampliação das suítes `ui-tabela-propriedades.test.ts` e `ui-tabela-propriedades.regressao.test.ts` (103 testes no módulo).
|
|
47
|
+
|
|
48
|
+
## 2.16.0 — 2026-11-08
|
|
49
|
+
|
|
50
|
+
### Customização: classe e formato `squarecircles` (Squircle / Cantos Suaves)
|
|
51
|
+
|
|
52
|
+
- **Tokens Globais ($L_0$):** Adicionado token `--ui-raio-squircle: 24%` em `src/tokens/spacing.css` e suporte às classes utilitárias/contextuais `.squarecircles`, `.squarecircle`, `.ui-squarecircles` e `.ui-squarecircle` que elevam os raios base e derivam uma escala contínua com curvatura orgânica.
|
|
53
|
+
- **Componentes ($L_3$):** Suporte nativo ao formato e classe nos componentes:
|
|
54
|
+
- `<ui-avatar>`: atributo `formato="squarecircle" | "squircle"` e classe `.squarecircle` aplicando o squircle (~24%).
|
|
55
|
+
- `<ui-botao>`: suporte a `:host(.squarecircle)` e `:host([formato="squarecircle"])` (raio refinado para botões e squircle simétrico para variantes `icone` / `icon-only`).
|
|
56
|
+
- `<ui-badge>`: suporte a formato squircle além da tradicional pílula.
|
|
57
|
+
- `<ui-card>`, `<ui-checkbox>`, `<ui-campo-texto>`, `<ui-area-texto>`, `<ui-modal>` e `<ui-alerta>`: cantos suaves estilizados.
|
|
58
|
+
- **Testes e Contratos:** Nova suíte em `tests/customizacao.test.ts` e testes de regressão em `src/components/ui-avatar/ui-avatar.regressao.test.ts`.
|
|
59
|
+
|
|
3
60
|
## 2.15.0 — 2026-11-05
|
|
4
61
|
|
|
5
62
|
### `<ui-tabela>`: células interativas (botão, checkbox, campo editável) sem perder foco nem texto
|
package/README.md
CHANGED
|
@@ -753,7 +753,7 @@ window.addEventListener('message', (event) => {
|
|
|
753
753
|
| `<ui-skeleton>` | Placeholder de carregamento animado com pulsos. | `tipo`, `largura`, `altura`, `animado` | - |
|
|
754
754
|
| `<ui-stat>` | Cartão KPI de estatísticas, métricas e tendências. | `rotulo`, `valor`, `variacao`, `tendencia` (`alta`, `baixa`, `neutro`) | - |
|
|
755
755
|
| `<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) |
|
|
756
|
-
| `<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
|
|
756
|
+
| `<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, editores CAD e **memória/persistência automática das abas abertas** (preservada entre recargas de `categorias` e salva no `localStorage` por padrão via `persistir`/`storage-key`). 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`, `persistir`, `storage-key`; métodos `aplicar()`, `desfazer()`, `redefinirValor(id)`, `definirValor()`, `expandirTudo()`, `colapsarTudo()`, `toggleCategoria()`, `obterEstadoCategorias()`, `definirEstadoCategorias()`, `limparEstadoCategorias()`, `limparLembranca()`, `obterChaveStorageAtual()` | `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-categorias-estado`, `ui-splitter-resize` |
|
|
757
757
|
| `<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` |
|
|
758
758
|
| `<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` |
|
|
759
759
|
| `<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` |
|
package/dist/botao.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});;/* empty css */const o=require("./ui-botao-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});;/* empty css */const o=require("./ui-botao-Dz8YvmiA.cjs");exports.UIBotao=o.UIBotao;exports.UIBotaoPrimario=o.UIBotaoPrimario;
|
package/dist/botao.js
CHANGED