@thibezer/ui-components-kit 2.6.1 → 2.7.0

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 (142) hide show
  1. package/CHANGELOG.md +49 -0
  2. package/dist/acessibilidade-CSzX-DkG.cjs +1 -0
  3. package/dist/acessibilidade-CUlSXc2X.js +38 -0
  4. package/dist/camadas.cjs +94 -94
  5. package/dist/camadas.js +1218 -1124
  6. package/dist/campo-texto.cjs +1 -1
  7. package/dist/campo-texto.js +1 -1
  8. package/dist/canvas.cjs +66 -65
  9. package/dist/canvas.js +3769 -3389
  10. package/dist/card.cjs +1 -1
  11. package/dist/card.js +1 -1
  12. package/dist/components/ui-alerta/ui-toast.d.ts +4 -15
  13. package/dist/components/ui-avatar/ui-avatar.d.ts +11 -0
  14. package/dist/components/ui-badge/ui-badge.d.ts +2 -0
  15. package/dist/components/ui-barra-ferramentas/paleta-atalhos.d.ts +16 -0
  16. package/dist/components/ui-barra-ferramentas/paleta-pressao-longa.d.ts +24 -0
  17. package/dist/components/ui-barra-ferramentas/ribbon-render.d.ts +14 -0
  18. package/dist/components/ui-barra-ferramentas/ribbon-teclado.d.ts +17 -0
  19. package/dist/components/ui-barra-ferramentas/ui-paleta-ferramentas.d.ts +1 -7
  20. package/dist/components/ui-barra-ferramentas/ui-ribbon.d.ts +0 -1
  21. package/dist/components/ui-camadas/camadas-arraste-controles.d.ts +2 -0
  22. package/dist/components/ui-camadas/camadas-arvore-renderer.d.ts +4 -11
  23. package/dist/components/ui-camadas/camadas-colecao.d.ts +27 -0
  24. package/dist/components/ui-camadas/camadas-drag-drop.d.ts +13 -1
  25. package/dist/components/ui-camadas/camadas-drop-ops.d.ts +31 -0
  26. package/dist/components/ui-camadas/camadas-hierarquia.d.ts +10 -0
  27. package/dist/components/ui-camadas/camadas-lembranca.d.ts +34 -0
  28. package/dist/components/ui-camadas/camadas-render.d.ts +14 -0
  29. package/dist/components/ui-camadas/camadas-renomear.d.ts +12 -0
  30. package/dist/components/ui-camadas/camadas-selecao-api.d.ts +17 -0
  31. package/dist/components/ui-camadas/camadas-thumb.d.ts +1 -0
  32. package/dist/components/ui-camadas/ui-camadas.d.ts +3 -5
  33. package/dist/components/ui-canvas-cad/cad-acessibilidade.d.ts +15 -0
  34. package/dist/components/ui-canvas-cad/cad-atributos-sync.d.ts +2 -1
  35. package/dist/components/ui-canvas-cad/cad-broadcast.d.ts +1 -1
  36. package/dist/components/ui-canvas-cad/cad-evento-coordenadas.d.ts +22 -0
  37. package/dist/components/ui-canvas-cad/cad-eventos-canvas.d.ts +3 -8
  38. package/dist/components/ui-canvas-cad/cad-feicoes-camera.d.ts +26 -0
  39. package/dist/components/ui-canvas-cad/cad-feicoes-consulta.d.ts +21 -0
  40. package/dist/components/ui-canvas-cad/cad-feicoes-dados.d.ts +39 -0
  41. package/dist/components/ui-canvas-cad/cad-feicoes-desenho.d.ts +68 -0
  42. package/dist/components/ui-canvas-cad/cad-feicoes-edicao.d.ts +37 -0
  43. package/dist/components/ui-canvas-cad/cad-feicoes-operacoes.d.ts +48 -0
  44. package/dist/components/ui-canvas-cad/cad-feicoes-ponteiro.d.ts +24 -0
  45. package/dist/components/ui-canvas-cad/cad-feicoes-selecao-regiao.d.ts +22 -0
  46. package/dist/components/ui-canvas-cad/cad-feicoes-tipos.d.ts +53 -0
  47. package/dist/components/ui-canvas-cad/cad-feicoes-versoes.d.ts +33 -0
  48. package/dist/components/ui-canvas-cad/cad-feicoes.d.ts +26 -106
  49. package/dist/components/ui-canvas-cad/cad-inicializador.d.ts +3 -1
  50. package/dist/components/ui-canvas-cad/cad-leaflet-adaptador.d.ts +5 -0
  51. package/dist/components/ui-canvas-cad/cad-selecao-pontos.d.ts +5 -0
  52. package/dist/components/ui-canvas-cad/tipos.d.ts +37 -0
  53. package/dist/components/ui-canvas-cad/ui-canvas-cad.d.ts +4 -1
  54. package/dist/components/ui-checkbox/ui-checkbox.d.ts +4 -1
  55. package/dist/components/ui-mapa/mapa-atributos.d.ts +14 -0
  56. package/dist/components/ui-mapa/mapa-basemaps.d.ts +7 -0
  57. package/dist/components/ui-mapa/mapa-icones.d.ts +4 -0
  58. package/dist/components/ui-mapa/mapa-leaflet.d.ts +5 -0
  59. package/dist/components/ui-mapa/mapa-vinculo-pai.d.ts +22 -0
  60. package/dist/components/ui-mapa/tipos.d.ts +13 -0
  61. package/dist/components/ui-mapa/ui-mapa-linha.d.ts +12 -5
  62. package/dist/components/ui-mapa/ui-mapa-marcador.d.ts +15 -6
  63. package/dist/components/ui-mapa/ui-mapa.d.ts +14 -1
  64. package/dist/components/ui-modal/modal-acessibilidade.d.ts +5 -5
  65. package/dist/components/ui-modal/modal-foco.d.ts +28 -0
  66. package/dist/components/ui-modal/ui-modal.d.ts +1 -11
  67. package/dist/components/ui-radio/radio-grupo-registry.d.ts +10 -0
  68. package/dist/components/ui-radio/ui-radio.d.ts +9 -2
  69. package/dist/components/ui-skeleton/ui-skeleton.d.ts +9 -0
  70. package/dist/components/ui-switch/ui-switch.d.ts +3 -1
  71. package/dist/components/ui-tabela/tabela-estados.d.ts +16 -0
  72. package/dist/components/ui-tabela/tabela-rolagem.d.ts +44 -0
  73. package/dist/components/ui-tabela/tabela-teclado.d.ts +16 -0
  74. package/dist/components/ui-tabela/ui-tabela.d.ts +1 -19
  75. package/dist/components/ui-tooltip/tooltip-popover.d.ts +7 -0
  76. package/dist/components/ui-tooltip/tooltip-posicionamento.d.ts +29 -0
  77. package/dist/components/ui-tooltip/ui-tooltip.d.ts +24 -1
  78. package/dist/core/opcoes.d.ts +9 -0
  79. package/dist/core/rotulo-controle.d.ts +13 -0
  80. package/dist/core/tipos-toast.d.ts +16 -0
  81. package/dist/core/ui-bus.d.ts +9 -1
  82. package/dist/core.cjs +1 -1
  83. package/dist/core.js +12 -11
  84. package/dist/custom-elements.json +19484 -14657
  85. package/dist/data.cjs +1 -1
  86. package/dist/data.js +2 -2
  87. package/dist/feedback.cjs +1 -1
  88. package/dist/feedback.js +21 -21
  89. package/dist/form-validacao-BlQFxUVj.js +104 -0
  90. package/dist/form-validacao-DIeyQVH5.cjs +1 -0
  91. package/dist/forms.cjs +1 -1
  92. package/dist/forms.js +2 -2
  93. package/dist/index.cjs +1 -1
  94. package/dist/index.js +46 -46
  95. package/dist/mapa.cjs +11 -16
  96. package/dist/mapa.js +242 -170
  97. package/dist/modal.cjs +1 -1
  98. package/dist/modal.js +1 -1
  99. package/dist/opcoes-CJYLi6kd.js +12 -0
  100. package/dist/opcoes-CkyDxBuQ.cjs +1 -0
  101. package/dist/register.cjs +1 -1
  102. package/dist/register.js +12 -13
  103. package/dist/tabela.cjs +1 -1
  104. package/dist/tabela.js +1 -1
  105. package/dist/tipos-elementos.d.ts +8 -3
  106. package/dist/tipos-vue.d.ts +8 -3
  107. package/dist/tools.cjs +1 -1
  108. package/dist/tools.js +1 -1
  109. package/dist/ui-badge-ChiiiO1r.js +197 -0
  110. package/dist/ui-badge-DUCxyAG6.cjs +28 -0
  111. package/dist/{zero-js-triggers-C_KrvFOQ.js → ui-bus-CUd99VJi.js} +36 -103
  112. package/dist/ui-bus-XqBLlTYQ.cjs +1 -0
  113. package/dist/ui-campo-texto-CHTfMO-H.cjs +16 -0
  114. package/dist/ui-campo-texto-gum_jDdI.js +380 -0
  115. package/dist/ui-card-BNYCQ7g-.js +119 -0
  116. package/dist/ui-card-BrjBL-yo.cjs +20 -0
  117. package/dist/ui-controle-cores-BS0WYPdi.js +572 -0
  118. package/dist/ui-controle-cores-Er6ZcQ7U.cjs +111 -0
  119. package/dist/ui-modal-BkYvNP0G.js +214 -0
  120. package/dist/ui-modal-CUNbpbZ1.cjs +18 -0
  121. package/dist/ui-paleta-ferramentas-Ksh6gMW3.js +890 -0
  122. package/dist/ui-paleta-ferramentas-bDLPbiGA.cjs +21 -0
  123. package/dist/ui-segmented-BOaGRQw4.cjs +19 -0
  124. package/dist/ui-segmented-kbO1BLVs.js +439 -0
  125. package/dist/ui-skeleton-B2Rgrv8o.js +648 -0
  126. package/dist/ui-skeleton-BilwGdOm.js +634 -0
  127. package/dist/ui-skeleton-DiOxTBZK.cjs +52 -0
  128. package/dist/ui-skeleton-SPYqku8P.cjs +52 -0
  129. package/dist/ui-skeleton-W9uwIceA.js +585 -0
  130. package/dist/ui-skeleton-gZrJipCC.cjs +52 -0
  131. package/dist/ui-switch-BX6U5Ykm.cjs +53 -0
  132. package/dist/ui-switch-DO5jR0hy.js +915 -0
  133. package/dist/ui-tabela-propriedades-D9Echt2X.js +2667 -0
  134. package/dist/ui-tabela-propriedades-DzZlyNZ_.cjs +141 -0
  135. package/dist/zero-js-triggers-CJT988bR.js +83 -0
  136. package/dist/zero-js-triggers-CgM9IIQB.cjs +1 -0
  137. package/package.json +10 -3
  138. package/dist/ui-skeleton-DI4_9WOX.js +0 -428
  139. package/dist/ui-skeleton-elhKIh2B.cjs +0 -33
  140. package/dist/ui-toast-Bp_NlM5G.js +0 -156
  141. package/dist/ui-toast-DGTZKne5.cjs +0 -20
  142. package/dist/zero-js-triggers-C_gtaojZ.cjs +0 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,54 @@
1
1
  # Changelog
2
2
 
3
+ ## 2.7.0 — 2026-10-17
4
+
5
+ ### `UIBus`: independente do componente de toast
6
+
7
+ - `src/core/ui-bus.ts` (L1) deixou de importar `ui-alerta` (L3). Novo `UIBus.registrarProvedorToast(fn | null)`; o `ui-toast` se registra sozinho ao ser carregado (`registrarToastNoBus()`).
8
+ - **Mudança de comportamento:** quem importar apenas `core/ui-bus` sem carregar `ui-alerta` (ou o pacote principal) passa a ter `UIBus.notificar()` como no-op, sem erro. Exceções do provedor são capturadas (`console.error`).
9
+ - Contratos `UIToastOpcoes`/`UIToastAcao` movidos para `src/core/tipos-toast.ts` e reexportados por `ui-alerta` (nomes públicos inalterados).
10
+
11
+ ### `<ui-ribbon>`, `<ui-paleta-ferramentas>` e `<ui-tabela>`: organização interna
12
+
13
+ - **Sem mudança de comportamento nem de API.** Teclado, renderização, clique longo, atalhos, rolagem de linhas e estados (erro, anúncio do filtro, aria) passam a viver em módulos próprios com testes unitários.
14
+
15
+ ### Componentes simples e de formulário: robustez e acessibilidade
16
+
17
+ - **`<ui-skeleton>`:** `linhas` é limitado a 100 (um valor enorme derrubava a página). Decorativo por padrão (`aria-hidden`); com `aria-label` vira `role="status"`.
18
+ - **Classes por atributo:** `variante`, `cor`, `peso`, `alinhamento` (`ui-texto`), `elevacao` (`ui-stat`, `ui-card`), `variante`/`estilo` (`ui-badge`) só aceitam valores conhecidos; qualquer outro usa o padrão (antes, o texto virava classes CSS arbitrárias).
19
+ - **`<ui-avatar>`:** host com `role="img"` e `aria-label` (nome, e o status quando houver) ou `aria-hidden` sem nome; **a imagem interna agora tem `alt=""`** (antes `alt` = nome ou "Avatar"). `aria-label`/`aria-hidden` do consumidor são respeitados. Tamanho numérico aceito entre 8 e 512 px.
20
+ - **`<ui-stat>`:** grupo rotulado e indicador de variação como imagem nomeada. **`<ui-card clicavel>`:** `role="button"`, `aria-disabled`. **`<ui-badge>`:** `disabled` desativa o ✕; nome acessível "Remover …".
21
+ - **`<ui-radio>`:** o grupo agora acompanha `setAttribute('name')` depois de conectado, mudança de nome e remoção do formulário; o primeiro radio habilitado entra na ordem de Tab.
22
+ - **`<ui-checkbox>`, `<ui-switch>`, `<ui-radio>`:** `focus()` no host foca o controle; checkbox e radio passam a respeitar `<label for>`, `<label>` envolvente e `aria-label` (como o switch).
23
+
24
+ ### `<ui-tooltip>` e `<ui-modal>`: correções de comportamento
25
+
26
+ - **`<ui-tooltip>`:** o clique no gatilho deixa de ser interrompido (`stopPropagation`) e volta a chegar aos ouvintes de ancestrais; `disabled` fecha o balão aberto (e `aberto` + `disabled` não o mostra); ambientes sem `matchMedia` não lançam; o quadro de animação do posicionamento é cancelado ao fechar/desconectar.
27
+ - **`<ui-modal>`:** `Shift+Tab` no botão de fechar agora leva ao último controle do conteúdo (antes o foco escapava do modal); `Tab` no último controle volta ao primeiro. O foco real é lido atravessando Shadow DOMs.
28
+ - Ouvintes globais de ambos passam a ser gerenciados por `ListenerBag`. Sem mudança de API.
29
+
30
+ ### `<ui-camadas>`: arrastos interrompidos e organização interna
31
+
32
+ - Desconectar o painel durante a pintura de controles (olho, cadeado, seleção) deixava `user-select: none` no `body` da página e ouvintes em `window`; o gesto agora é cancelado. O mesmo vale para o arraste por toque de camadas.
33
+ - Dados com ciclo de `parentId` não travam mais a verificação de descendência ao aninhar camadas por arraste.
34
+ - **Sem mudança de API.** Código dividido em módulos de responsabilidade única (renderização, seleção, lembrança, coleções, regras de soltar, renomear, miniaturas e hierarquia).
35
+
36
+ ### `<ui-mapa>`, `<ui-mapa-marcador>` e `<ui-mapa-linha>`: robustez e acessibilidade
37
+
38
+ - **Segurança:** `cor` do `<ui-mapa-marcador>` era interpolada em HTML/estilo do ícone (injeção de atributo). O ícone agora é montado com DOM e `cor` só aceita hex, `rgb()`/`hsl()` ou nome de cor; outro valor usa a cor padrão (`#00f5a0`; `#3388ff` na linha).
39
+ - `lat`, `lng` e `zoom` inválidos (ou fora de -90..90, -180..180, 0..22) caem no padrão em vez de lançar; `espessura` inválida usa 3.
40
+ - Desconectar o `<ui-mapa>` antes de o Leaflet carregar não cria mais um mapa órfão. `<ui-mapa-linha>` reaparece quando o mapa é recriado e ignora pares inválidos em `pontos`.
41
+ - **Acessibilidade:** o mapa é uma região com nome (`aria-label` do host, padrão "Mapa"; o atributo passa a ser observado); marcadores são focáveis por teclado (`role=button`) e usam `titulo` como nome acessível.
42
+
43
+ ### `<ui-canvas-cad>`: organização interna e acessibilidade
44
+
45
+ - **Sem mudança de API.** `GerenciadorFeicoes` virou fachada sobre módulos de responsabilidade única (`cad-feicoes-dados`, `-operacoes`, `-versoes`, `-camera`, `-desenho`, `-edicao`, `-consulta`, `-ponteiro`, `-selecao-regiao`, `-tipos`); tipos do Leaflet em `tipos.ts`, `cad-leaflet-adaptador.ts` e `cad-selecao-pontos.ts` substituem casts `as any`.
46
+ - **Acessibilidade:** o canvas é uma região nomeada ("Mapa CAD"), a barra rápida é uma `toolbar` com botões nomeados, o botão de snap expõe `aria-pressed` e uma região viva anuncia a seleção ("2 feições selecionadas") e a ferramenta ativa.
47
+
48
+ ### Ferramentas de arquitetura
49
+
50
+ - `scripts/check-layers.mjs` verifica o DAG L0→L5 resolvendo imports (estáticos, de efeito colateral, re-exports e dinâmicos); `npm run gate` / `gate:full` agrupam as verificações.
51
+
3
52
  ## 2.6.1 — 2026-10-17
4
53
 
5
54
  ### `<ui-controle-cores>` e `<ui-seletor-cor>`: revisão de erros e visual
@@ -0,0 +1 @@
1
+ "use strict";let d=0;function m(t="ui"){return d+=1,`${t}-${d.toString(36)}-${Math.random().toString(36).slice(2,7)}`}function f(t,e){if(t===e)return"";if(t.nodeType===3)return t.textContent??"";let i="";return t.childNodes.forEach(r=>{i+=f(r,e)}),i}function b(t,e){var l,n,u;const i=(l=t.getAttribute("aria-label"))==null?void 0:l.trim();if(i)return i;const r=new Set;try{(n=e==null?void 0:e.labels)==null||n.forEach(o=>r.add(o))}catch{}if(t.id){const o=t.getRootNode();(u=o.querySelectorAll)==null||u.call(o,"label[for]").forEach(a=>{a.htmlFor===t.id&&r.add(a)})}const c=t.closest("label");return c&&r.add(c),Array.from(r).map(o=>f(o,t).replace(/\s+/g," ").trim()).filter(Boolean).join(" ")}function E(t,e){return e.composedPath()[0]===t}exports.cliqueVeioDeRotuloExterno=E;exports.gerarIdUnico=m;exports.obterRotuloExterno=b;
@@ -0,0 +1,38 @@
1
+ let d = 0;
2
+ function m(t = "ui") {
3
+ return d += 1, `${t}-${d.toString(36)}-${Math.random().toString(36).slice(2, 7)}`;
4
+ }
5
+ function f(t, e) {
6
+ if (t === e) return "";
7
+ if (t.nodeType === 3) return t.textContent ?? "";
8
+ let a = "";
9
+ return t.childNodes.forEach((r) => {
10
+ a += f(r, e);
11
+ }), a;
12
+ }
13
+ function b(t, e) {
14
+ var i, l, n;
15
+ const a = (i = t.getAttribute("aria-label")) == null ? void 0 : i.trim();
16
+ if (a) return a;
17
+ const r = /* @__PURE__ */ new Set();
18
+ try {
19
+ (l = e == null ? void 0 : e.labels) == null || l.forEach((o) => r.add(o));
20
+ } catch {
21
+ }
22
+ if (t.id) {
23
+ const o = t.getRootNode();
24
+ (n = o.querySelectorAll) == null || n.call(o, "label[for]").forEach((u) => {
25
+ u.htmlFor === t.id && r.add(u);
26
+ });
27
+ }
28
+ const c = t.closest("label");
29
+ return c && r.add(c), Array.from(r).map((o) => f(o, t).replace(/\s+/g, " ").trim()).filter(Boolean).join(" ");
30
+ }
31
+ function s(t, e) {
32
+ return e.composedPath()[0] === t;
33
+ }
34
+ export {
35
+ s as c,
36
+ m as g,
37
+ b as o
38
+ };