@thibezer/ui-components-kit 2.8.2 → 2.10.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 (244) hide show
  1. package/CHANGELOG.md +233 -0
  2. package/README.md +37 -10
  3. package/dist/acessibilidade-CSzX-DkG.cjs +1 -0
  4. package/dist/acessibilidade-CUlSXc2X.js +38 -0
  5. package/dist/altura-controle-ukMRPckR.cjs +1 -0
  6. package/dist/altura-controle-vxQiXG4q.js +62 -0
  7. package/dist/botao.cjs +1 -1
  8. package/dist/botao.js +1 -1
  9. package/dist/camadas.cjs +111 -109
  10. package/dist/camadas.js +1360 -1182
  11. package/dist/campo-texto.cjs +1 -1
  12. package/dist/campo-texto.js +1 -1
  13. package/dist/canvas.cjs +88 -86
  14. package/dist/canvas.js +4695 -3395
  15. package/dist/card.cjs +1 -1
  16. package/dist/card.js +1 -1
  17. package/dist/components/ui-area-texto/area-texto-altura.d.ts +16 -0
  18. package/dist/components/ui-area-texto/area-texto-contador.d.ts +6 -0
  19. package/dist/components/ui-area-texto/area-texto-template.d.ts +2 -0
  20. package/dist/components/ui-area-texto/index.d.ts +3 -0
  21. package/dist/components/ui-area-texto/tipos.d.ts +19 -0
  22. package/dist/components/ui-area-texto/ui-area-texto.d.ts +100 -0
  23. package/dist/components/ui-avatar/ui-avatar.d.ts +11 -0
  24. package/dist/components/ui-badge/ui-badge.d.ts +2 -0
  25. package/dist/components/ui-barra-ferramentas/ferramentas-comum.d.ts +3 -1
  26. package/dist/components/ui-barra-ferramentas/paleta-atalhos.d.ts +23 -0
  27. package/dist/components/ui-barra-ferramentas/paleta-pressao-longa.d.ts +24 -0
  28. package/dist/components/ui-barra-ferramentas/ribbon-render.d.ts +22 -0
  29. package/dist/components/ui-barra-ferramentas/ribbon-teclado.d.ts +24 -0
  30. package/dist/components/ui-barra-ferramentas/ui-paleta-ferramentas.d.ts +3 -7
  31. package/dist/components/ui-barra-ferramentas/ui-ribbon.d.ts +0 -1
  32. package/dist/components/ui-camadas/camadas-arraste-controles.d.ts +2 -0
  33. package/dist/components/ui-camadas/camadas-arvore-renderer.d.ts +4 -11
  34. package/dist/components/ui-camadas/camadas-colecao.d.ts +27 -0
  35. package/dist/components/ui-camadas/camadas-drag-drop.d.ts +13 -1
  36. package/dist/components/ui-camadas/camadas-drop-ops.d.ts +31 -0
  37. package/dist/components/ui-camadas/camadas-hierarquia.d.ts +10 -0
  38. package/dist/components/ui-camadas/camadas-host.d.ts +1 -0
  39. package/dist/components/ui-camadas/camadas-lembranca.d.ts +34 -0
  40. package/dist/components/ui-camadas/camadas-mapas-base.d.ts +3 -1
  41. package/dist/components/ui-camadas/camadas-render.d.ts +15 -0
  42. package/dist/components/ui-camadas/camadas-renomear.d.ts +12 -0
  43. package/dist/components/ui-camadas/camadas-selecao-api.d.ts +17 -0
  44. package/dist/components/ui-camadas/camadas-selecao.d.ts +12 -0
  45. package/dist/components/ui-camadas/camadas-thumb.d.ts +1 -0
  46. package/dist/components/ui-camadas/ui-camadas.d.ts +8 -5
  47. package/dist/components/ui-campo-texto/campo-texto-estados.d.ts +5 -1
  48. package/dist/components/ui-campo-texto/ui-campo-texto.d.ts +1 -0
  49. package/dist/components/ui-canvas-cad/cad-acessibilidade.d.ts +21 -0
  50. package/dist/components/ui-canvas-cad/cad-atributos-sync.d.ts +2 -1
  51. package/dist/components/ui-canvas-cad/cad-broadcast.d.ts +1 -1
  52. package/dist/components/ui-canvas-cad/cad-evento-coordenadas.d.ts +22 -0
  53. package/dist/components/ui-canvas-cad/cad-eventos-canvas.d.ts +3 -8
  54. package/dist/components/ui-canvas-cad/cad-feicoes-camera.d.ts +26 -0
  55. package/dist/components/ui-canvas-cad/cad-feicoes-consulta.d.ts +21 -0
  56. package/dist/components/ui-canvas-cad/cad-feicoes-dados.d.ts +39 -0
  57. package/dist/components/ui-canvas-cad/cad-feicoes-desenho.d.ts +68 -0
  58. package/dist/components/ui-canvas-cad/cad-feicoes-edicao.d.ts +37 -0
  59. package/dist/components/ui-canvas-cad/cad-feicoes-operacoes.d.ts +48 -0
  60. package/dist/components/ui-canvas-cad/cad-feicoes-ponteiro.d.ts +28 -0
  61. package/dist/components/ui-canvas-cad/cad-feicoes-selecao-regiao.d.ts +22 -0
  62. package/dist/components/ui-canvas-cad/cad-feicoes-tipos.d.ts +53 -0
  63. package/dist/components/ui-canvas-cad/cad-feicoes-versoes.d.ts +33 -0
  64. package/dist/components/ui-canvas-cad/cad-feicoes.d.ts +39 -106
  65. package/dist/components/ui-canvas-cad/cad-inicializador.d.ts +3 -1
  66. package/dist/components/ui-canvas-cad/cad-leaflet-adaptador.d.ts +5 -0
  67. package/dist/components/ui-canvas-cad/cad-recusas.d.ts +6 -0
  68. package/dist/components/ui-canvas-cad/cad-selecao-pontos.d.ts +5 -0
  69. package/dist/components/ui-canvas-cad/tipos.d.ts +37 -0
  70. package/dist/components/ui-canvas-cad/ui-canvas-cad.d.ts +30 -1
  71. package/dist/components/ui-card/card-interacao.d.ts +17 -0
  72. package/dist/components/ui-card/card-secoes.d.ts +10 -0
  73. package/dist/components/ui-card/ui-card.d.ts +23 -0
  74. package/dist/components/ui-checkbox/ui-checkbox.d.ts +4 -1
  75. package/dist/components/ui-cores/tipos.d.ts +2 -0
  76. package/dist/components/ui-cores/ui-controle-cores.d.ts +8 -3
  77. package/dist/components/ui-cores/ui-seletor-cor.d.ts +3 -1
  78. package/dist/components/ui-linha/index.d.ts +1 -0
  79. package/dist/components/ui-linha/ui-linha.d.ts +48 -0
  80. package/dist/components/ui-mapa/mapa-atributos.d.ts +14 -0
  81. package/dist/components/ui-mapa/mapa-basemaps.d.ts +7 -0
  82. package/dist/components/ui-mapa/mapa-icones.d.ts +4 -0
  83. package/dist/components/ui-mapa/mapa-leaflet.d.ts +5 -0
  84. package/dist/components/ui-mapa/mapa-vinculo-pai.d.ts +22 -0
  85. package/dist/components/ui-mapa/tipos.d.ts +13 -0
  86. package/dist/components/ui-mapa/ui-mapa-linha.d.ts +12 -5
  87. package/dist/components/ui-mapa/ui-mapa-marcador.d.ts +15 -6
  88. package/dist/components/ui-mapa/ui-mapa.d.ts +14 -1
  89. package/dist/components/ui-modal/modal-acessibilidade.d.ts +5 -5
  90. package/dist/components/ui-modal/modal-foco.d.ts +28 -0
  91. package/dist/components/ui-modal/ui-modal.d.ts +1 -11
  92. package/dist/components/ui-radio/radio-grupo-registry.d.ts +10 -0
  93. package/dist/components/ui-radio/ui-radio.d.ts +9 -2
  94. package/dist/components/ui-skeleton/ui-skeleton.d.ts +9 -0
  95. package/dist/components/ui-switch/ui-switch.d.ts +3 -1
  96. package/dist/components/ui-tabela/tabela-estados.d.ts +16 -0
  97. package/dist/components/ui-tabela/tabela-rolagem.d.ts +44 -0
  98. package/dist/components/ui-tabela/tabela-teclado.d.ts +16 -0
  99. package/dist/components/ui-tabela/ui-tabela.d.ts +1 -19
  100. package/dist/components/ui-texto/ui-texto.d.ts +16 -0
  101. package/dist/components/ui-tooltip/tooltip-popover.d.ts +7 -0
  102. package/dist/components/ui-tooltip/tooltip-posicionamento.d.ts +29 -0
  103. package/dist/components/ui-tooltip/ui-tooltip.d.ts +24 -1
  104. package/dist/core/altura-controle.d.ts +34 -0
  105. package/dist/core/alvo-digitavel.d.ts +5 -0
  106. package/dist/core/index.d.ts +1 -0
  107. package/dist/core/opcoes.d.ts +16 -0
  108. package/dist/core/rotulo-controle.d.ts +13 -0
  109. package/dist/core.cjs +1 -1
  110. package/dist/core.js +28 -18
  111. package/dist/cores.cjs +1 -1
  112. package/dist/cores.js +9 -8
  113. package/dist/custom-elements.json +28294 -20127
  114. package/dist/data.cjs +1 -1
  115. package/dist/data.js +2 -2
  116. package/dist/feedback.cjs +1 -1
  117. package/dist/feedback.js +2 -2
  118. package/dist/form-validacao-BlQFxUVj.js +104 -0
  119. package/dist/form-validacao-DIeyQVH5.cjs +1 -0
  120. package/dist/forms.cjs +1 -1
  121. package/dist/forms.d.ts +4 -0
  122. package/dist/forms.js +15 -12
  123. package/dist/gerencigeo-canvas/canvas_interacao.d.ts +2 -1
  124. package/dist/gerencigeo-canvas/curva_leaflet.d.ts +2 -2
  125. package/dist/gerencigeo-canvas/feature_curvas.d.ts +3 -1
  126. package/dist/gerencigeo-canvas/feature_desenho.d.ts +13 -1
  127. package/dist/gerencigeo-canvas/feature_desenho_controle.d.ts +3 -0
  128. package/dist/gerencigeo-canvas/feature_edicao_ops.d.ts +9 -0
  129. package/dist/gerencigeo-canvas/feature_editor_vertices.d.ts +13 -2
  130. package/dist/gerencigeo-canvas/feature_lod.d.ts +38 -0
  131. package/dist/gerencigeo-canvas/feature_popup.d.ts +2 -0
  132. package/dist/gerencigeo-canvas/feature_simplificacao.d.ts +16 -8
  133. package/dist/gerencigeo-canvas/index.d.ts +7 -0
  134. package/dist/gerencigeo-canvas/layer_hit_test.d.ts +22 -0
  135. package/dist/gerencigeo-canvas/layer_manager.d.ts +5 -0
  136. package/dist/gerencigeo-canvas/mapa_core.d.ts +10 -0
  137. package/dist/gerencigeo-canvas/motor/dados-camada.d.ts +39 -0
  138. package/dist/gerencigeo-canvas/motor/estilo.d.ts +28 -0
  139. package/dist/gerencigeo-canvas/motor/geometria-px.d.ts +27 -0
  140. package/dist/gerencigeo-canvas/motor/index.d.ts +5 -0
  141. package/dist/gerencigeo-canvas/motor/motor-formas.d.ts +107 -0
  142. package/dist/gerencigeo-canvas/motor/tipos.d.ts +100 -0
  143. package/dist/gerencigeo-canvas/popup_gate.d.ts +30 -0
  144. package/dist/gerencigeo-canvas/popup_residual.d.ts +5 -0
  145. package/dist/gerencigeo-canvas/renderers/canvas_formas_leaflet.d.ts +87 -0
  146. package/dist/gerencigeo-canvas/renderers/feicoes_canvas_renderer.d.ts +58 -0
  147. package/dist/gerencigeo-canvas/renderers/feicoes_despachante.d.ts +31 -0
  148. package/dist/gerencigeo-canvas/renderers/feicoes_renderer.d.ts +48 -9
  149. package/dist/gerencigeo-canvas/renderers/marcadores_feicoes.d.ts +11 -0
  150. package/dist/gerencigeo-canvas/renderers/marcas_lod_layer.d.ts +19 -0
  151. package/dist/gerencigeo-canvas/renderers/renderizador_feicoes_tipos.d.ts +44 -0
  152. package/dist/gerencigeo-canvas/renderers/renderizador_formas.d.ts +95 -0
  153. package/dist/gerencigeo-canvas/renderers/selecao_visual.d.ts +6 -0
  154. package/dist/gerencigeo-canvas/types.d.ts +2 -0
  155. package/dist/gerencigeo-canvas/zoom_opcoes.d.ts +10 -0
  156. package/dist/index.cjs +1 -1
  157. package/dist/index.d.ts +7 -0
  158. package/dist/index.js +196 -189
  159. package/dist/mapa.cjs +11 -16
  160. package/dist/mapa.js +242 -170
  161. package/dist/modal.cjs +1 -1
  162. package/dist/modal.js +1 -1
  163. package/dist/motor-BB6tB6U-.cjs +1 -0
  164. package/dist/motor-CFI84lM2.js +1301 -0
  165. package/dist/motor.cjs +1 -0
  166. package/dist/motor.d.ts +7 -0
  167. package/dist/motor.js +52 -0
  168. package/dist/opcoes-CupvWVIm.js +24 -0
  169. package/dist/opcoes-vdAUY5OI.cjs +1 -0
  170. package/dist/register.cjs +1 -1
  171. package/dist/register.js +14 -13
  172. package/dist/tabela.cjs +1 -1
  173. package/dist/tabela.js +1 -1
  174. package/dist/tipos-elementos.d.ts +123 -8
  175. package/dist/tipos-react.d.ts +6 -0
  176. package/dist/tipos-vue.d.ts +119 -8
  177. package/dist/tools.cjs +1 -1
  178. package/dist/tools.js +1 -1
  179. package/dist/ui-badge-B5J_c5P5.js +197 -0
  180. package/dist/ui-badge-DC4y6Dik.cjs +28 -0
  181. package/dist/ui-botao-D24oXySA.cjs +12 -0
  182. package/dist/ui-botao-Dsj08jjw.js +165 -0
  183. package/dist/ui-campo-texto-19tIrmBK.js +377 -0
  184. package/dist/ui-campo-texto-CH8mzX61.cjs +16 -0
  185. package/dist/ui-card-0wu4rjEX.cjs +20 -0
  186. package/dist/ui-card-DRtpOo3l.js +143 -0
  187. package/dist/ui-controle-cores-BEUKOq4n.js +275 -0
  188. package/dist/ui-controle-cores-BLhrZHMh.cjs +32 -0
  189. package/dist/ui-kit.css +1 -1
  190. package/dist/ui-linha-C306zxWG.cjs +19 -0
  191. package/dist/ui-linha-C_azWkcG.js +517 -0
  192. package/dist/{ui-modal-DBOtSTbR.js → ui-modal-BkYvNP0G.js} +116 -140
  193. package/dist/ui-modal-CUNbpbZ1.cjs +18 -0
  194. package/dist/{ui-paleta-ferramentas-DbwdWVtT.js → ui-paleta-ferramentas-BXXrI1Y7.js} +491 -431
  195. package/dist/ui-paleta-ferramentas-CsPMTY0G.cjs +21 -0
  196. package/dist/ui-seletor-cor-2yGryC_Z.cjs +86 -0
  197. package/dist/ui-seletor-cor-BuyhoDZz.js +345 -0
  198. package/dist/{ui-skeleton-W9uwIceA.js → ui-skeleton-B2Rgrv8o.js} +254 -191
  199. package/dist/{ui-skeleton-SPYqku8P.cjs → ui-skeleton-DiOxTBZK.cjs} +10 -10
  200. package/dist/ui-switch-BL-x_-SM.js +1202 -0
  201. package/dist/ui-switch-C0i_3QXu.cjs +66 -0
  202. package/dist/{ui-tabela-propriedades-C-PeuW1i.cjs → ui-tabela-propriedades-CjK2gG14.cjs} +10 -10
  203. package/dist/{ui-tabela-propriedades-BokvDD3b.js → ui-tabela-propriedades-DoL4SE0r.js} +845 -826
  204. package/package.json +8 -3
  205. package/dist/form-validacao-BIOXxt-1.js +0 -140
  206. package/dist/form-validacao-ytRYSF3E.cjs +0 -1
  207. package/dist/svg-seguro-BsbNQqpd.js +0 -50
  208. package/dist/svg-seguro-C76iLlAZ.cjs +0 -1
  209. package/dist/ui-badge-BxT-sDmV.cjs +0 -28
  210. package/dist/ui-badge-C0eKBI8E.js +0 -183
  211. package/dist/ui-botao-BOOnP8ds.cjs +0 -12
  212. package/dist/ui-botao-DfqSivHl.js +0 -165
  213. package/dist/ui-botao-OGJV6Vfk.js +0 -165
  214. package/dist/ui-botao-psS1juof.cjs +0 -12
  215. package/dist/ui-campo-texto-Cnn2UAkS.cjs +0 -16
  216. package/dist/ui-campo-texto-Uu2dJE_0.js +0 -379
  217. package/dist/ui-card-B86lJXTP.cjs +0 -20
  218. package/dist/ui-card-C_o5_0cB.js +0 -111
  219. package/dist/ui-controle-cores-BS0WYPdi.js +0 -572
  220. package/dist/ui-controle-cores-Er6ZcQ7U.cjs +0 -111
  221. package/dist/ui-modal-CvGFGh1h.cjs +0 -18
  222. package/dist/ui-paleta-ferramentas-CEZYcN4J.js +0 -624
  223. package/dist/ui-paleta-ferramentas-CU4icLl0.js +0 -1171
  224. package/dist/ui-paleta-ferramentas-Ccmo-rB5.cjs +0 -21
  225. package/dist/ui-paleta-ferramentas-DLwZHIDv.cjs +0 -21
  226. package/dist/ui-paleta-ferramentas-DNN5i6nL.js +0 -860
  227. package/dist/ui-paleta-ferramentas-Dbj1kBS9.cjs +0 -18
  228. package/dist/ui-paleta-ferramentas-bvqxj1Yd.cjs +0 -21
  229. package/dist/ui-segmented-D6b6zxVs.cjs +0 -19
  230. package/dist/ui-segmented-DyF5YLsV.js +0 -418
  231. package/dist/ui-segmented-rn9RxRGM.cjs +0 -19
  232. package/dist/ui-segmented-wUraId2e.js +0 -412
  233. package/dist/ui-skeleton-DI4_9WOX.js +0 -428
  234. package/dist/ui-skeleton-elhKIh2B.cjs +0 -33
  235. package/dist/ui-switch-BcOqOkiV.js +0 -856
  236. package/dist/ui-switch-D7iPKDj-.cjs +0 -53
  237. package/dist/ui-tabela-propriedades-BBr5sqki.cjs +0 -145
  238. package/dist/ui-tabela-propriedades-BecPqC-e.cjs +0 -141
  239. package/dist/ui-tabela-propriedades-Boy7I5yW.js +0 -2412
  240. package/dist/ui-tabela-propriedades-Df9ajC6M.js +0 -2648
  241. package/dist/ui-toast-Bp_NlM5G.js +0 -156
  242. package/dist/ui-toast-DGTZKne5.cjs +0 -20
  243. package/dist/zero-js-triggers-C_KrvFOQ.js +0 -244
  244. package/dist/zero-js-triggers-C_gtaojZ.cjs +0 -1
package/dist/card.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});;/* empty css */const e=require("./ui-card-B86lJXTP.cjs");exports.UICard=e.UICard;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});;/* empty css */const e=require("./ui-card-0wu4rjEX.cjs");exports.UICard=e.UICard;
package/dist/card.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /* empty css */
2
- import { U as m } from "./ui-card-C_o5_0cB.js";
2
+ import { U as m } from "./ui-card-DRtpOo3l.js";
3
3
  export {
4
4
  m as UICard
5
5
  };
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Altura automática da área de texto (atributo `auto-altura`).
3
+ * `calcularAlturaAutomatica` é pura; `ajustarAlturaAutomatica` aplica o resultado no DOM.
4
+ */
5
+ /**
6
+ * Altura (px) a aplicar para o conteúdo caber sem rolagem, ou `null` quando o conteúdo cabe nas linhas
7
+ * mínimas (a altura volta a ser definida por `rows`). Medidas inválidas resultam em `null`.
8
+ */
9
+ export declare function calcularAlturaAutomatica(alturaConteudo: number, alturaVisivel: number): number | null;
10
+ /**
11
+ * Faz o `textarea` crescer com o conteúdo. O envoltorio segura a altura atual durante a medição, para a
12
+ * página não encolher (e rolar sozinha) quando a área está no fim de um documento comprido.
13
+ */
14
+ export declare function ajustarAlturaAutomatica(textarea: HTMLTextAreaElement, envoltorio: HTMLElement): void;
15
+ /** Devolve a altura ao controle de `rows`/redimensionamento do navegador. */
16
+ export declare function limparAlturaAutomatica(textarea: HTMLTextAreaElement, envoltorio: HTMLElement): void;
@@ -0,0 +1,6 @@
1
+ import { EstadoContador } from './tipos';
2
+ /**
3
+ * Estado do contador de caracteres. Função pura: tolera tamanho/limite inválidos (`NaN`, negativos, `Infinity`)
4
+ * e só gera anúncio para leitores de tela perto do limite, evitando falar a cada tecla.
5
+ */
6
+ export declare function calcularContador(tamanho: number, limite: number | null): EstadoContador;
@@ -0,0 +1,2 @@
1
+ export declare const ATRIBUTOS_OBSERVADOS_AREA_TEXTO: string[];
2
+ export declare function criarTemplateAreaTexto(): string;
@@ -0,0 +1,3 @@
1
+ export * from './ui-area-texto';
2
+ export * from './tipos';
3
+ export { calcularContador } from './area-texto-contador';
@@ -0,0 +1,19 @@
1
+ /** Direções em que o usuário pode redimensionar a área de texto (atributo `redimensionar`). */
2
+ export type RedimensionamentoAreaTexto = 'nenhum' | 'vertical' | 'horizontal' | 'ambos';
3
+ /** `detail` de `ui-input` e `ui-change`. */
4
+ export interface DetalheValorAreaTexto {
5
+ value: string;
6
+ }
7
+ /** `detail` de `ui-enviar` (Ctrl/Cmd + Enter). */
8
+ export interface DetalheEnviarAreaTexto {
9
+ value: string;
10
+ }
11
+ /** Nível visual do contador de caracteres. */
12
+ export type NivelContador = 'normal' | 'aviso' | 'excedido';
13
+ export interface EstadoContador {
14
+ /** Texto visível: `42` ou `42 / 500`. */
15
+ texto: string;
16
+ nivel: NivelContador;
17
+ /** Mensagem para leitores de tela; vazia enquanto o nível for `normal`. */
18
+ anuncio: string;
19
+ }
@@ -0,0 +1,100 @@
1
+ import { FormAssociatedElement } from '../../core/form-associated-element';
2
+ /**
3
+ * Área de texto de várias linhas (descrições, observações, laudos) com rótulo, ajuda/erro, contador de
4
+ * caracteres e altura automática. Participa de `<form>` (FACE).
5
+ *
6
+ * @element ui-area-texto
7
+ *
8
+ * @attr {string} label - Rótulo visível (sempre texto puro).
9
+ * @attr {string} placeholder - Texto de apoio quando vazio.
10
+ * @attr {string} value - Valor inicial (também restaurado por `form.reset()`).
11
+ * @attr {boolean} obrigatorio - Campo obrigatório (alias `required`).
12
+ * @attr {number} minlength - Mínimo de caracteres.
13
+ * @attr {number} maxlength - Máximo de caracteres; também é o limite do contador.
14
+ * @attr {string} helper-text - Texto de ajuda abaixo do campo.
15
+ * @attr {boolean} erro - Marca o campo como inválido.
16
+ * @attr {string} mensagem-erro - Mensagem exibida junto com `erro`.
17
+ * @attr {string} mensagem-validacao - Substitui as mensagens de validação nativas.
18
+ * @attr {boolean} disabled - Desabilita o campo.
19
+ * @attr {boolean} readonly - Somente leitura (continua focável e selecionável).
20
+ * @attr {number} linhas - Linhas visíveis (1–50, padrão 4).
21
+ * @attr {boolean} auto-altura - O campo cresce com o conteúdo.
22
+ * @attr {number} linhas-max - Com `auto-altura`, limite de linhas antes de rolar.
23
+ * @attr {string} redimensionar - `nenhum` | `vertical` (padrão) | `horizontal` | `ambos`.
24
+ * @attr {boolean} contador - Exibe o contador de caracteres.
25
+ *
26
+ * @fires ui-input - A cada edição. `detail: { value }`.
27
+ * @fires ui-change - Ao confirmar a edição (blur). `detail: { value }`.
28
+ * @fires ui-enviar - Ctrl/Cmd + Enter. `detail: { value }`. Enter comum insere quebra de linha.
29
+ * @fires input - Evento nativo, reemitido no host.
30
+ * @fires change - Evento nativo, reemitido no host.
31
+ *
32
+ * @csspart rotulo - Rótulo.
33
+ * @csspart campo - Invólucro com borda.
34
+ * @csspart input - O `<textarea>` interno.
35
+ * @csspart rodape - Linha de ajuda e contador.
36
+ * @csspart ajuda - Texto de ajuda ou erro.
37
+ * @csspart contador - Contador de caracteres.
38
+ */
39
+ export declare class UIAreaTexto extends FormAssociatedElement {
40
+ static get observedAttributes(): string[];
41
+ private labelElement;
42
+ private wrapperElement;
43
+ private textareaElement;
44
+ private helperElement;
45
+ private contadorElement;
46
+ private anuncioElement;
47
+ private listeners;
48
+ private _focado;
49
+ private _textareaId;
50
+ private _defaultValue;
51
+ private _nivelAnunciado;
52
+ constructor();
53
+ connectedCallback(): void;
54
+ disconnectedCallback(): void;
55
+ attributeChangedCallback(name: string, _old: string | null, value: string | null): void;
56
+ focus(options?: FocusOptions): void;
57
+ blur(): void;
58
+ /** Seleciona todo o texto. */
59
+ select(): void;
60
+ /** Define a seleção; índices inválidos são ignorados pelo navegador, nunca lançam. */
61
+ setSelectionRange(inicio: number, fim: number, direcao?: 'forward' | 'backward' | 'none'): void;
62
+ /** Apaga o texto programaticamente (sem disparar eventos de edição). */
63
+ limpar(): void;
64
+ get value(): string;
65
+ set value(val: string);
66
+ get name(): string;
67
+ set name(val: string);
68
+ get type(): string;
69
+ get disabled(): boolean;
70
+ set disabled(val: boolean);
71
+ get readOnly(): boolean;
72
+ set readOnly(val: boolean);
73
+ get minLength(): number;
74
+ set minLength(val: number);
75
+ get maxLength(): number;
76
+ set maxLength(val: number);
77
+ formResetCallback(): void;
78
+ formStateRestoreCallback(state: unknown, _mode: 'restore' | 'autocomplete'): void;
79
+ atualizarValidade(): void;
80
+ protected syncState(): void;
81
+ private sincronizarRotulo;
82
+ private sincronizarLimites;
83
+ private sincronizarEstadoInterativo;
84
+ private sincronizarFeedback;
85
+ private sincronizarContador;
86
+ private sincronizarAltura;
87
+ private emitirEdicao;
88
+ private handleInput;
89
+ private handleChange;
90
+ private handleFocus;
91
+ private handleBlur;
92
+ /** Ctrl/Cmd + Enter pede o envio sem submeter o `<form>`; Enter comum continua inserindo quebra de linha. */
93
+ private handleKeyDown;
94
+ /** Clique em `<label>` externo associado ao host foca o textarea. */
95
+ private handleHostClick;
96
+ private handleResize;
97
+ }
98
+ /** Alias semântico: `<ui-textarea>` é idêntico a `<ui-area-texto>`. */
99
+ export declare class UITextarea extends UIAreaTexto {
100
+ }
@@ -3,10 +3,21 @@ export declare class UIAvatar extends SafeHTMLElement {
3
3
  static get observedAttributes(): string[];
4
4
  private avatarElement;
5
5
  private statusElement;
6
+ /** O que este componente escreveu em aria-label / aria-hidden (para distinguir do que o consumidor definiu). */
7
+ private _rotuloAuto;
8
+ private _ocultoAuto;
9
+ private _sincronizando;
6
10
  constructor();
7
11
  connectedCallback(): void;
8
12
  attributeChangedCallback(_name: string, _old: string | null, _value: string | null): void;
13
+ /** Iniciais por ponto de código (emoji e caracteres fora do BMP não são cortados ao meio). */
9
14
  private extrairIniciais;
15
+ private lerNome;
16
+ /**
17
+ * Nome acessível: com nome, o host é uma imagem nomeada ("Ana, online"); sem nome, é decorativo.
18
+ * Um `aria-label`/`aria-hidden` definido pelo consumidor nunca é sobrescrito.
19
+ */
20
+ private sincronizarAcessibilidade;
10
21
  private syncState;
11
22
  private renderFallback;
12
23
  }
@@ -12,6 +12,8 @@ export declare class UIBadge extends SafeHTMLElement {
12
12
  get removivel(): boolean;
13
13
  set removivel(val: boolean);
14
14
  private syncState;
15
+ get disabled(): boolean;
16
+ set disabled(val: boolean);
15
17
  private handleRemove;
16
18
  }
17
19
  export declare class UIChip extends UIBadge {
@@ -11,7 +11,9 @@ export declare function criarBotaoFerramenta(item: FerramentaItem, variante: Var
11
11
  /** Cria um botão dividido (split button) com ação principal + seta dropdown separada. */
12
12
  export declare function criarBotaoDividido(item: FerramentaItem, variante: VarianteBotaoFerramenta, tamanhoIcone: number): HTMLElement;
13
13
  export declare function acharItem(itens: FerramentaItem[], id: string): FerramentaItem | undefined;
14
- export declare function correspondeAtalho(e: KeyboardEvent, atalho: string | undefined): boolean;
14
+ /** O que `correspondeAtalho` lê de um evento de teclado (permite testar com objetos simples). */
15
+ export type TeclaAtalho = Pick<KeyboardEvent, 'key' | 'ctrlKey' | 'metaKey' | 'altKey' | 'shiftKey'>;
16
+ export declare function correspondeAtalho(e: TeclaAtalho, atalho: string | undefined): boolean;
15
17
  export declare function definirRoving(botoes: HTMLButtonElement[]): void;
16
18
  /** Garante um único botão com tabindex 0, preservando o atual se ainda estiver habilitado. */
17
19
  export declare function atualizarRoving(botoes: HTMLButtonElement[]): void;
@@ -0,0 +1,23 @@
1
+ import { FerramentaItem } from './tipos';
2
+ import { TeclaAtalho } from './ferramentas-comum';
3
+ /**
4
+ * Várias paletas com `atalhos` na mesma página: só a "dona" responde, a que contém o foco ou, sem foco em nenhuma, a
5
+ * primeira na ordem do DOM. `temFoco` diz se uma paleta contém o foco.
6
+ */
7
+ export declare function paletaDonaDosAtalhos<T>(paletas: T[], temFoco: (p: T) => boolean): T | undefined;
8
+ /**
9
+ * `true` se o foco está num campo de digitação (nativo, editável ou customizado) ou dentro de um diálogo modal;
10
+ * nesses lugares as letras pertencem ao usuário/ao diálogo.
11
+ */
12
+ export declare function atalhoBloqueadoPeloContexto(caminho: EventTarget[]): boolean;
13
+ export interface AtalhoResolvido {
14
+ alvo: FerramentaItem;
15
+ /** Grupo que contém o alvo, se houver. */
16
+ pai?: FerramentaItem;
17
+ }
18
+ /**
19
+ * Ferramenta ativada pela tecla. `tecla` é o evento de teclado (atalhos compostos: `Ctrl+Z`, `Shift+V`, `Esc`, via
20
+ * `correspondeAtalho`) ou só o `key` (uma tecla sem modificadores). Sem diferenciar caixa. Com várias candidatas,
21
+ * alterna entre elas a partir da ativa. `todas` é a lista plana (grupos expandidos); `grupos` serve para achar o pai.
22
+ */
23
+ export declare function resolverAtalho(tecla: string | TeclaAtalho, todas: FerramentaItem[], grupos: FerramentaItem[], idAtivo: string): AtalhoResolvido | null;
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Clique longo (pressão) da <ui-paleta-ferramentas>: abre o flyout de um grupo sem ativar a ferramenta.
3
+ * Responsabilidade única: temporizadores e limiar de movimento da pressão, mais a supressão do `click` residual
4
+ * que o navegador dispara ao soltar. Não conhece botões nem menus: quem usa decide o que fazer ao disparar.
5
+ */
6
+ export declare const TEMPO_PRESSAO_LONGA_MS = 380;
7
+ export declare const DISTANCIA_CANCELA_PRESSAO_PX = 8;
8
+ export declare const TEMPO_LIMPA_SUPRESSAO_MS = 50;
9
+ export declare class PressaoLonga {
10
+ private timer;
11
+ private timerSupressao;
12
+ private inicio;
13
+ private suprimir;
14
+ /** Começa a contar; `aoDisparar` roda se o ponteiro ficar parado até `TEMPO_PRESSAO_LONGA_MS`. */
15
+ iniciar(x: number, y: number, aoDisparar: () => void): void;
16
+ /** Arrastar/rolar com o dedo cancela o clique longo. */
17
+ mover(x: number, y: number): void;
18
+ /** Fim do gesto: cancela a contagem e, se o flyout abriu, descarta a supressão logo após o `click` residual. */
19
+ fim(): void;
20
+ cancelar(): void;
21
+ /** `true` (uma única vez) se o próximo `click` deve ser ignorado por ser o resíduo de uma pressão longa. */
22
+ consumirSupressao(): boolean;
23
+ destruir(): void;
24
+ }
@@ -0,0 +1,22 @@
1
+ import { FerramentaItem, RibbonAba, RibbonGrupo } from './tipos';
2
+ /** Botões pequenos consecutivos formam colunas de até 3 (padrão Office/CAD). */
3
+ export declare const MAX_BOTOES_POR_COLUNA = 3;
4
+ export interface OpcoesBotaoAba {
5
+ aba: RibbonAba;
6
+ ativa: boolean;
7
+ /** `id` do botão (para `aria-labelledby` do painel). */
8
+ idBotao: string;
9
+ /** `id` do painel (para `aria-controls` da aba ativa). */
10
+ idPainel: string;
11
+ }
12
+ export declare function criarBotaoAba({ aba, ativa, idBotao, idPainel }: OpcoesBotaoAba): HTMLButtonElement;
13
+ export type CriarBotaoFerramenta = (item: FerramentaItem, variante: 'grande' | 'pequeno', tamanhoIcone: number) => HTMLElement;
14
+ export interface OpcoesGrupoRibbon {
15
+ /** Sem espaço: o grupo vira um botão único com flyout (o clique é tratado por quem delega os cliques do painel). */
16
+ colapsado?: boolean;
17
+ /** Item `dividido` com `filhos`: ação principal + gatilho de menu (`criarBotaoDividido`). */
18
+ criarDividido?: CriarBotaoFerramenta;
19
+ }
20
+ /** Rótulo acessível do lançador de diálogo do grupo. */
21
+ export declare const rotuloLancador: (grupo: RibbonGrupo) => string;
22
+ export declare function criarGrupoRibbon(grupo: RibbonGrupo, criarBotao: CriarBotaoFerramenta, opcoes?: OpcoesGrupoRibbon): HTMLElement;
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Teclado das abas do <ui-ribbon> (padrão WAI-ARIA de abas, com ativação automática ou manual).
3
+ * Responsabilidade única: traduzir uma tecla em uma ação; quem chama executa (foco, seleção, painel).
4
+ */
5
+ export type AcaoTeclaAba =
6
+ /** Automática: foca e seleciona a aba. Manual (`ativacao-manual`): só move o foco. */
7
+ {
8
+ tipo: 'ir-para';
9
+ indice: number;
10
+ }
11
+ /** Ativação manual: Enter/Espaço selecionam a aba focada. */
12
+ | {
13
+ tipo: 'ativar';
14
+ indice: number;
15
+ }
16
+ /** Seta para baixo: leva o foco aos botões do painel (abrindo o painel flutuante se recolhido). */
17
+ | {
18
+ tipo: 'descer';
19
+ };
20
+ /**
21
+ * `indiceAtual` < 0 (foco fora das abas) ou lista vazia não produzem ação. Em RTL as setas se invertem.
22
+ * Navegação circular; Home/End vão às pontas.
23
+ */
24
+ export declare function acaoDaTeclaAba(key: string, indiceAtual: number, total: number, rtl: boolean, manual?: boolean): AcaoTeclaAba | null;
@@ -26,10 +26,7 @@ export declare class UIPaletaFerramentas extends SafeHTMLElement {
26
26
  private _pendente;
27
27
  private visiveis;
28
28
  private menu;
29
- private timerPressao;
30
- private timerSupressao;
31
- private inicioPressao;
32
- private suprimirClique;
29
+ private pressao;
33
30
  private listeners;
34
31
  private tooltip;
35
32
  private _modoControlado;
@@ -81,13 +78,12 @@ export declare class UIPaletaFerramentas extends SafeHTMLElement {
81
78
  private handleClick;
82
79
  private handleFocusIn;
83
80
  private handlePointerDown;
84
- /** Arrastar/rolar com o dedo cancela o clique longo. */
85
81
  private handlePointerMove;
86
- /** Fim do gesto: cancela o timer e, se o flyout abriu, descarta a supressão logo após o `click` residual. */
87
82
  private handlePointerFim;
88
- private cancelarPressao;
89
83
  private handleContextMenu;
90
84
  private handleKeyDown;
85
+ /** Várias paletas com `atalhos` na página: só a que contém o foco (ou a primeira no DOM) responde. */
86
+ private donaDosAtalhos;
91
87
  private handleAtalho;
92
88
  private abrirFlyout;
93
89
  private fecharMenu;
@@ -54,7 +54,6 @@ export declare class UIRibbon extends SafeHTMLElement {
54
54
  private iniciarResizeObserver;
55
55
  private ajustarColapsoGrupos;
56
56
  private alternarMenuGrupoColapsado;
57
- private criarGrupo;
58
57
  private criarBotao;
59
58
  private botoesPainel;
60
59
  private handleClickAbas;
@@ -1,2 +1,4 @@
1
1
  import { CamadasHostCompleto } from './camadas-host';
2
+ /** Cancela o gesto do `host`, soltando os ouvintes de `window` e devolvendo `user-select` ao `body`. */
3
+ export declare function cancelarArrasteControles(host: CamadasHostCompleto): void;
2
4
  export declare function conectarArrasteControles(host: CamadasHostCompleto, shadow: ShadowRoot): void;
@@ -1,5 +1,7 @@
1
1
  import { CamadaItem, FeicaoItem } from './tipos';
2
2
  import { escapeHtml } from './camadas-utils';
3
+ import { renderizarThumbGeometria } from './camadas-thumb';
4
+ import { construirHierarquiaCamadas, CamadaNodoHierarquico } from './camadas-hierarquia';
3
5
  export interface ParametrosRenderArvore {
4
6
  camadas: CamadaItem[];
5
7
  feicoes: FeicaoItem[];
@@ -13,15 +15,6 @@ export interface ParametrosRenderArvore {
13
15
  limiteFeicoesPorCamada?: number;
14
16
  mostrarBotaoColapsar?: boolean;
15
17
  }
16
- export { escapeHtml };
17
- export declare function renderizarThumbGeometria(tipo: string | undefined, cor: string, coords?: unknown): string;
18
- export interface CamadaNodoHierarquico {
19
- camada: CamadaItem;
20
- depth: number;
21
- subcamadas: CamadaNodoHierarquico[];
22
- }
23
- /**
24
- * Organiza a lista de camadas em uma árvore hierárquica de nós baseada em parentId ou children
25
- */
26
- export declare function construirHierarquiaCamadas(camadas: CamadaItem[]): CamadaNodoHierarquico[];
18
+ export { escapeHtml, renderizarThumbGeometria, construirHierarquiaCamadas };
19
+ export type { CamadaNodoHierarquico };
27
20
  export declare function renderizarArvoreCamadas(params: ParametrosRenderArvore): string;
@@ -0,0 +1,27 @@
1
+ import { CamadaItem, FeicaoItem } from './tipos';
2
+ import { LembrancaCamadas } from './camadas-lembranca';
3
+ /** Estado e ações do painel que as coleções usam. */
4
+ export interface HostColecao {
5
+ camadas: CamadaItem[];
6
+ feicoes: FeicaoItem[];
7
+ expandedLayers: Set<string>;
8
+ selectedFeatureIds: Set<string>;
9
+ lastClickedFeatureId: string | null;
10
+ activeSettingsLayerId: string | null;
11
+ camadaAtivaId: string | null;
12
+ readonly persistir: boolean;
13
+ /** @internal Guarda de origens/remoções e acesso ao storage. */
14
+ readonly lembranca: LembrancaCamadas;
15
+ getAttribute(nome: string): string | null;
16
+ salvarLembrancaEstado(): void;
17
+ solicitarRenderizacao(): void;
18
+ }
19
+ /** Transforma a árvore (`children`) em lista plana, herdando `parentId` do pai quando não informado. */
20
+ export declare function achatarCamadas(camadas: CamadaItem[], parentId?: string | null): CamadaItem[];
21
+ export declare function definirCamadasNoHost(host: HostColecao, camadas: CamadaItem[], feicoes?: FeicaoItem[]): void;
22
+ export declare function definirFeicoesNoHost(host: HostColecao, feicoes: FeicaoItem[]): void;
23
+ export declare function adicionarCamadaNoHost(host: HostColecao, camada: CamadaItem): void;
24
+ export declare function removerCamadaNoHost(host: HostColecao, camadaId: string): void;
25
+ export declare function adicionarFeicaoNoHost(host: HostColecao, feicao: FeicaoItem): void;
26
+ export declare function atualizarFeicaoNoHost(host: HostColecao, feicaoAtualizada: FeicaoItem): void;
27
+ export declare function removerFeicaoNoHost(host: HostColecao, feicaoId: string): void;
@@ -4,6 +4,8 @@ export interface UICamadasHost {
4
4
  feicoes: FeicaoItem[];
5
5
  editingLayerId: string | null;
6
6
  editingFeatureId: string | null;
7
+ /** Camadas expandidas; ao aninhar uma camada, o pai se expande. */
8
+ expandedLayers?: Set<string>;
7
9
  solicitarRenderizacao(): void;
8
10
  dispararEvento(nome: string, detalhe: unknown): void;
9
11
  salvarLembrancaEstado?(): void;
@@ -11,12 +13,22 @@ export interface UICamadasHost {
11
13
  export declare class CamadasDragDropManager {
12
14
  private host;
13
15
  private shadow;
16
+ /** Cancela um arraste por toque em andamento (remove os ouvintes de `window`). */
17
+ private cancelarToque;
14
18
  constructor(host: UICamadasHost, shadow: ShadowRoot);
15
19
  bindAll(): void;
20
+ /** Solta o que ficou em `window` (arraste por toque interrompido pela desconexão do componente). */
21
+ destruir(): void;
16
22
  bindInlineRename(): void;
23
+ private limparClassesDeArraste;
24
+ /** Depois de qualquer mudança na ordem/hierarquia de camadas. */
25
+ private aposReordenarCamadas;
26
+ private emitirFeicaoMovida;
27
+ private arrasteBloqueado;
17
28
  bindDragAndDrop(): void;
18
29
  /**
19
- * Suporte a arraste por toque e ponteiro no handle (.ui-col-drag) para tablets e mobile
30
+ * Suporte a arraste por toque e ponteiro no handle (.ui-col-drag) para tablets e mobile.
31
+ * Os ouvintes de `window` existem só durante o gesto e são soltos em `destruir()`.
20
32
  */
21
33
  bindTouchDragAndDrop(): void;
22
34
  }
@@ -0,0 +1,31 @@
1
+ import { CamadaItem, FeicaoItem } from './tipos';
2
+ export type ZonaDrop = 'acima' | 'abaixo' | 'dentro';
3
+ /** Evita ciclos hierárquicos ao mover uma camada para dentro de outra. */
4
+ export declare function ehDescendente(camadas: CamadaItem[], possivelDescendenteId: string, ancestralId: string): boolean;
5
+ /** Zona do alvo pela posição vertical relativa (0..1): 25% de cima, 25% de baixo e o meio (aninhar). */
6
+ export declare function zonaDeDropCamada(posicaoRelativa: number): ZonaDrop;
7
+ export type ResultadoMoverCamada = {
8
+ tipo: 'hierarquia';
9
+ camada: CamadaItem;
10
+ novoParentId: string;
11
+ } | {
12
+ tipo: 'ordem';
13
+ camada: CamadaItem;
14
+ };
15
+ /**
16
+ * Move `movidaId` em relação a `alvoId`. `dentro` torna-a subcamada (recusa ciclos); `acima`/`abaixo`
17
+ * reordena e adota o pai do alvo. Muta `camadas`; devolve `null` se nada mudou.
18
+ */
19
+ export declare function moverCamada(camadas: CamadaItem[], movidaId: string, alvoId: string, zona: ZonaDrop): ResultadoMoverCamada | null;
20
+ /** Reordena apenas (sem aninhar), como no arraste por toque. Muta `camadas`; `false` se nada mudou. */
21
+ export declare function reordenarCamada(camadas: CamadaItem[], movidaId: string, alvoId: string, acima: boolean): boolean;
22
+ export interface ResultadoMoverFeicao {
23
+ feicao: FeicaoItem;
24
+ camadaOrigemId: string | undefined;
25
+ camadaDestinoId: string | undefined;
26
+ mudouDeCamada: boolean;
27
+ }
28
+ /** Move a feição para outra camada (sem reordenar). `null` se a feição/camada não existe ou já está lá. */
29
+ export declare function moverFeicaoParaCamada(feicoes: FeicaoItem[], camadas: CamadaItem[], feicaoId: string, camadaDestinoId: string): ResultadoMoverFeicao | null;
30
+ /** Reordena a feição em relação a outra, adotando a camada do alvo. Muta `feicoes`; `null` se nada mudou. */
31
+ export declare function reordenarFeicao(feicoes: FeicaoItem[], movidaId: string, alvoId: string, acima: boolean): ResultadoMoverFeicao | null;
@@ -0,0 +1,10 @@
1
+ import { CamadaItem } from './tipos';
2
+ export interface CamadaNodoHierarquico {
3
+ camada: CamadaItem;
4
+ depth: number;
5
+ subcamadas: CamadaNodoHierarquico[];
6
+ }
7
+ /**
8
+ * Organiza a lista de camadas em uma árvore hierárquica de nós baseada em parentId ou children
9
+ */
10
+ export declare function construirHierarquiaCamadas(camadas: CamadaItem[]): CamadaNodoHierarquico[];
@@ -12,6 +12,7 @@ export interface CamadasHostCompleto extends UICamadasHost {
12
12
  readonly mapaBaseAtivo: string;
13
13
  definirCamadaAtiva(camadaId: string, emitirEvento?: boolean): void;
14
14
  selecionarMapaBase(id: string, emitirEvento?: boolean): void;
15
+ alternarMapasBaseRecolhido(emitirEvento?: boolean): void;
15
16
  selecionarFeicao(feicaoId: string, acumular?: boolean, intervalo?: boolean, emitirEvento?: boolean): void;
16
17
  limparSelecao(emitirEvento?: boolean): void;
17
18
  notificarMudancaSelecao(): void;
@@ -0,0 +1,34 @@
1
+ import { CamadaItem } from './tipos';
2
+ import { EstadoPersistidoCamadas as EstadoPersistido } from './camadas-persistencia';
3
+ /** Leitura do estado atual do painel no momento de gravar. */
4
+ export interface InstantaneoPainel {
5
+ persistir: boolean;
6
+ conectado: boolean;
7
+ storageKey: string | null;
8
+ id: string;
9
+ camadas: CamadaItem[];
10
+ expandedLayers: Set<string>;
11
+ camadaAtivaId: string | null;
12
+ painelColapsado: boolean;
13
+ mapaBaseAtivo: string;
14
+ densidade: 'compacto' | 'normal';
15
+ altura: number | null;
16
+ }
17
+ export declare class LembrancaCamadas {
18
+ private instantaneo;
19
+ private origens;
20
+ private removidas;
21
+ private salvarComDebounce;
22
+ constructor(instantaneo: () => InstantaneoPainel);
23
+ chaveAtual(): string;
24
+ carregar(): EstadoPersistido | null;
25
+ /** Versão com debounce, para interações contínuas (seletor de cor, slider de opacidade). */
26
+ agendar(): void;
27
+ salvar(): void;
28
+ limpar(): void;
29
+ limparOrigens(): void;
30
+ registrarOrigem(camada: CamadaItem): void;
31
+ esquecerCamada(camadaId: string): void;
32
+ /** Aplica por cima de `camadas` o que foi lembrado (expansão, visibilidade, travas, opacidade, cor, ordem). */
33
+ reidratar(camadas: CamadaItem[], estado: EstadoPersistido | null, expandedLayers: Set<string>): void;
34
+ }
@@ -1,3 +1,5 @@
1
1
  import { MapaBaseItem } from './tipos';
2
2
  export declare const MAPAS_BASE_PADRAO: MapaBaseItem[];
3
- export declare function renderizarGridMapasBase(mapasBase?: MapaBaseItem[], mapaBaseAtivo?: string): string;
3
+ /** Nome do mapa base ativo, para o cabeçalho da seção (vazio se o id não existir na lista). */
4
+ export declare function nomeDoMapaBase(mapasBase: MapaBaseItem[], id: string): string;
5
+ export declare function renderizarGridMapasBase(mapasBase?: MapaBaseItem[], mapaBaseAtivo?: string, recolhido?: boolean): string;
@@ -0,0 +1,15 @@
1
+ import { MapaBaseItem } from './tipos';
2
+ import { CamadasHostCompleto } from './camadas-host';
3
+ import { CamadasDragDropManager } from './camadas-drag-drop';
4
+ /** O que a renderização lê do componente (além do contrato de eventos). */
5
+ export interface HostRenderizavel extends CamadasHostCompleto {
6
+ mapasBase: MapaBaseItem[];
7
+ editingLayerId: string | null;
8
+ editingFeatureId: string | null;
9
+ readonly flutuante: boolean;
10
+ readonly mostrarMapasBase: boolean;
11
+ readonly mapasBaseRecolhido: boolean;
12
+ readonly mostrarRodape: boolean;
13
+ getAttribute(nome: string): string | null;
14
+ }
15
+ export declare function renderizarPainel(host: HostRenderizavel, shadow: ShadowRoot, corpo: HTMLElement, dragDrop: CamadasDragDropManager): void;
@@ -0,0 +1,12 @@
1
+ import { CamadaItem, FeicaoItem } from './tipos';
2
+ /** O que o renomear lê e altera no painel. */
3
+ export interface HostRenomear {
4
+ camadas: CamadaItem[];
5
+ feicoes: FeicaoItem[];
6
+ editingLayerId: string | null;
7
+ editingFeatureId: string | null;
8
+ solicitarRenderizacao(): void;
9
+ dispararEvento(nome: string, detalhe: unknown): void;
10
+ salvarLembrancaEstado?(): void;
11
+ }
12
+ export declare function vincularRenomearInline(host: HostRenomear, shadow: ShadowRoot): void;
@@ -0,0 +1,17 @@
1
+ import { CamadaItem, FeicaoItem } from './tipos';
2
+ /** Estado e ações do painel que a seleção usa. */
3
+ export interface HostSelecao {
4
+ camadas: CamadaItem[];
5
+ feicoes: FeicaoItem[];
6
+ expandedLayers: Set<string>;
7
+ selectedFeatureIds: Set<string>;
8
+ lastClickedFeatureId: string | null;
9
+ searchQuery: string;
10
+ sincronizarSelecaoDOM(): void;
11
+ notificarMudancaSelecao(): void;
12
+ dispararEvento(nome: string, detalhe: unknown): void;
13
+ }
14
+ export declare function selecionarFeicaoNoHost(host: HostSelecao, feicaoId: string, acumular: boolean, intervalo: boolean, emitirEvento: boolean): void;
15
+ export declare function selecionarFeicoesNoHost(host: HostSelecao, ids: string[], emitirEvento: boolean): void;
16
+ export declare function limparSelecaoNoHost(host: HostSelecao, emitirEvento: boolean): void;
17
+ export declare function emitirEventosSelecao(host: HostSelecao): void;
@@ -8,6 +8,18 @@ export declare const LIMITE_FEICOES_POR_CAMADA = 80;
8
8
  * Filtra feições pelo termo de busca (nome, categoria ou tipo). Sem termo, retorna todas.
9
9
  */
10
10
  export declare function filtrarFeicoesPorBusca(feicoes: FeicaoItem[], termo: string): FeicaoItem[];
11
+ export interface ResultadoBuscaCamadas {
12
+ /** Camadas que permanecem na árvore: as que casam, seus ancestrais e as subcamadas de quem casa pelo nome. */
13
+ camadasVisiveis: Set<string>;
14
+ /** Feições mostradas em cada camada visível (todas, se a camada casa pelo nome; senão, só as que casam). */
15
+ feicoesPorCamada: Map<string, FeicaoItem[]>;
16
+ }
17
+ /**
18
+ * Busca em toda a árvore: casa pelo nome da camada ou pelos dados das feições (ver `filtrarFeicoesPorBusca`).
19
+ * Mantém os grupos ancestrais de cada resultado e, quando um grupo casa pelo nome, suas subcamadas.
20
+ * Sem termo, retorna `null` (nada a filtrar). Tolera nomes ausentes e ciclos de `parentId`.
21
+ */
22
+ export declare function filtrarCamadasPorBusca(camadas: CamadaItem[], feicoes: FeicaoItem[], termo: string): ResultadoBuscaCamadas | null;
11
23
  /**
12
24
  * IDs de feições efetivamente exibidas na árvore, na ordem da tela:
13
25
  * respeita camadas expandidas (todas, durante uma busca), o filtro de busca e o limite de linhas.
@@ -0,0 +1 @@
1
+ export declare function renderizarThumbGeometria(tipo: string | undefined, cor: string, coords?: unknown): string;