@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
@@ -1,5 +1,4 @@
1
1
  import { CanvasLayerManager } from '../../gerencigeo-canvas/layer_manager';
2
- import { LayerStyleDef } from '../../gerencigeo-canvas/types';
3
2
  import { Feicao, EstiloFeicao, LatLonPar } from '../../gerencigeo-canvas/feature_types';
4
3
  import { RegraVersoes } from '../../gerencigeo-canvas/feature_versoes';
5
4
  import { UsuarioRemoto } from '../../gerencigeo-canvas/feature_cursores';
@@ -7,48 +6,15 @@ import { RefFeicao } from '../../gerencigeo-canvas/feature_selecao';
7
6
  import { CaixaPx, ModoCaixa } from '../../gerencigeo-canvas/feature_caixa';
8
7
  import { MargensPopup } from '../../gerencigeo-canvas/feature_popup';
9
8
  import { default as L } from 'leaflet';
10
- import { MotivoRecusaEdicao } from '../../gerencigeo-canvas/feature_edicao_ops';
11
9
  import { ExcluirSnap } from '../../gerencigeo-canvas/feature_snap';
10
+ import { EditorVertices } from '../../gerencigeo-canvas/feature_editor_vertices';
11
+ import { ControleDesenho } from '../../gerencigeo-canvas/feature_desenho_controle';
12
12
  import { Ferramenta } from '../../gerencigeo-canvas/feature_desenho';
13
13
  import { MargensHud } from '../../gerencigeo-canvas/feature_hud';
14
- export declare const TIPO_CAMADA_FEICOES = "feicoes";
15
- export interface OpcoesCamadaFeicoes {
16
- nome?: string;
17
- zIndex?: number;
18
- opacidade?: number;
19
- interativo?: boolean;
20
- estilo?: Partial<LayerStyleDef>;
21
- }
22
- /** Opções de `aplicarLote` / `atualizarFeicao`. */
23
- export interface OpcoesLote extends OpcoesCamadaFeicoes {
24
- /**
25
- * Em atualizações, `propriedades` informadas SUBSTITUEM as atuais (o padrão é mesclar, e chaves apagadas
26
- * pelo consumidor ficam para trás). Sem `propriedades` no item, nada muda.
27
- */
28
- substituirPropriedades?: boolean;
29
- }
30
- /** Itens de atualização: `id` aponta a feição; o resto é mesclado como em `atualizarFeicao`. */
31
- export type AtualizacaoFeicao = Record<string, any> & {
32
- id: string;
33
- };
34
- export interface LoteFeicoes {
35
- adicionar?: unknown[];
36
- atualizar?: AtualizacaoFeicao[];
37
- remover?: string[];
38
- }
39
- export interface ResultadoLote {
40
- adicionadas: number;
41
- atualizadas: number;
42
- removidas: number;
43
- /** Ids (ou posições, quando não há id) recusados: geometria inválida, feição inexistente numa atualização, camada que não é de feições. */
44
- recusadas: string[];
45
- }
46
- export interface ResultadoFeicoes {
47
- /** Quantas feições entraram na camada. */
48
- aceitas: number;
49
- /** Ids (ou posições, quando não há id) das feições recusadas por geometria inválida. */
50
- recusadas: string[];
51
- }
14
+ import { ModoPopups } from '../../gerencigeo-canvas/popup_gate';
15
+ import { TIPO_CAMADA_FEICOES, OpcoesCamadaFeicoes, OpcoesLote, AtualizacaoFeicao, LoteFeicoes, ResultadoLote, ResultadoFeicoes, OpcoesPopup, ResultadoFerramenta, ResultadoEdicao } from './cad-feicoes-tipos';
16
+ export { TIPO_CAMADA_FEICOES };
17
+ export type { OpcoesCamadaFeicoes, OpcoesLote, AtualizacaoFeicao, LoteFeicoes, ResultadoLote, ResultadoFeicoes, OpcoesPopup, ResultadoFerramenta, ResultadoEdicao };
52
18
  interface Contexto {
53
19
  obterLayerManager: () => CanvasLayerManager;
54
20
  obterMapa: () => L.Map | null;
@@ -60,37 +26,29 @@ interface Contexto {
60
26
  aoFerramenta?: (ferramenta: Ferramenta | null) => void;
61
27
  /** Regra de oficial × prévia compartilhada com o renderizador (o componente a põe no contexto de renderização). */
62
28
  regra?: RegraVersoes;
63
- }
64
- /** Opções do popup da feição. */
65
- export interface OpcoesPopup {
66
- /** A ação "copiar" grava as coordenadas na área de transferência (padrão `true`); `cad-feicao-acao` sai de qualquer jeito. */
67
- copiarParaAreaDeTransferencia?: boolean;
68
- }
69
- export interface ResultadoFerramenta {
70
- ok: boolean;
71
- motivo?: 'ferramenta-invalida' | 'sem-mapa' | 'sem-camada' | 'camada-invalida' | 'camada-bloqueada';
72
- }
73
- export interface ResultadoEdicao {
74
- ok: boolean;
75
- motivo?: MotivoRecusaEdicao | 'inexistente' | 'sem-mapa';
29
+ /**
30
+ * Quando o popup da feição abre: `sob-demanda` (padrão do componente) só por duplo clique ou `abrirPopupFeicao`;
31
+ * `automatico` também ao selecionar uma feição. Sem esta função (uso direto do gerenciador), vale `automatico`.
32
+ */
33
+ modoPopups?: () => ModoPopups;
34
+ /** Executa a abertura de um popup como pedido explícito, passando pelo portão de popups do mapa. */
35
+ liberarPopups?: <T>(fn: () => T) => T;
76
36
  }
77
37
  export declare class GerenciadorFeicoes {
78
38
  private contexto;
39
+ private operacoes;
79
40
  private selecao;
80
41
  private popup;
81
- private editor;
42
+ private edicao;
43
+ private consulta;
44
+ private ponteiro;
45
+ private regiao;
82
46
  private snap;
83
- private desenho;
84
- private camadaDesenho;
85
- private estiloDesenho;
86
- private sequenciaId;
87
- private regra;
88
- private cacheOficiais;
89
- /** id -> posição na lista da camada (válido enquanto `lista` for a lista atual); evita varrer a camada a cada consulta. */
90
- private posicoes;
47
+ private ferramentas;
48
+ private versoes;
49
+ private camera;
50
+ private repositorio;
91
51
  private cursores;
92
- private hoverId;
93
- private hoverAgendado;
94
52
  private margensHud;
95
53
  /** Aceita a coordenada (0, 0) exata nas feições de entrada (atributo `aceitar-origem`). */
96
54
  aceitarOrigem: boolean;
@@ -99,28 +57,18 @@ export declare class GerenciadorFeicoes {
99
57
  /** Depois de qualquer mudança nos dados: descarta seleção órfã e atualiza/fecha o popup aberto. */
100
58
  private aposDados;
101
59
  private lista;
102
- private posicaoDe;
103
60
  /** Feição da camada pelo id (O(1)); `undefined` se não existe. */
104
61
  buscar(camadaId: string, id: string): Feicao | undefined;
105
- private garantirCamada;
106
62
  private opcoesNormalizacao;
107
63
  definirFeicoes(camadaId: string, brutas: unknown[], opcoes?: OpcoesCamadaFeicoes): ResultadoFeicoes;
108
64
  adicionarFeicao(camadaId: string, bruta: unknown, opcoes?: OpcoesCamadaFeicoes): Feicao | null;
109
- /**
110
- * Mescla campos de primeiro nível; `estilo` e `propriedades` também são mesclados. Com `substituirPropriedades`,
111
- * `propriedades` informadas trocam as atuais por inteiro (atributos ausentes somem).
112
- */
65
+ /** Mescla campos de primeiro nível; `estilo` e `propriedades` também são mesclados. Ver `RepositorioFeicoes`. */
113
66
  atualizarFeicao(camadaId: string, id: string, parcial: Record<string, any>, opcoes?: Pick<OpcoesLote, 'substituirPropriedades'>): Feicao | null;
114
67
  /** Grava uma feição já normalizada (usado quando o próprio mapa a altera, como ao arrastar um texto). */
115
68
  substituir(camadaId: string, feicao: Feicao): void;
116
69
  removerFeicao(camadaId: string, id: string): boolean;
117
- /**
118
- * Várias mudanças numa só regravação e num só `aposDados`: remove, depois atualiza, depois adiciona.
119
- * Adicionar um id que já existe substitui a feição mantendo a posição (a ordem de empilhamento não muda).
120
- */
70
+ /** Várias mudanças numa só regravação e num só `aposDados`: remove, depois atualiza, depois adiciona. */
121
71
  aplicarLote(camadaId: string, lote: LoteFeicoes, opcoes?: OpcoesLote): ResultadoLote;
122
- private mesclar;
123
- private aplicar;
124
72
  obterFeicoes(camadaId: string): Feicao[];
125
73
  /** Traduz as ações vindas do renderizador no evento a disparar pelo componente. */
126
74
  tratarAcaoCamada(acao: string, detalhe: {
@@ -134,12 +82,17 @@ export declare class GerenciadorFeicoes {
134
82
  /** Esc ou clique no vazio: durante a edição só encerra a edição; fora dela, limpa a seleção. */
135
83
  aoPedirLimpeza(): void;
136
84
  obterFeicoesSelecionadas(): Feicao[];
137
- /** Laço: seleciona (substituindo) as feições de camadas selecionáveis tocadas pelo polígono; a ferramenta encerra. */
85
+ /** Laço: seleciona (substituindo) as feições tocadas pelo polígono; a ferramenta encerra. */
138
86
  private selecionarNoLaco;
139
87
  /** Caixa de seleção: só feições de camadas visíveis, interativas e desbloqueadas, com toque geométrico real. */
140
88
  selecionarNaCaixa(caixa: CaixaPx, modo: ModoCaixa, aditivo: boolean): void;
141
89
  definirMargensPopup(m: Partial<MargensPopup>): void;
142
90
  fecharPopup(): void;
91
+ private modoPopups;
92
+ /** Pedido explícito: abre o popup da feição (vale em qualquer modo). `false` se não existe, foi excluída ou não está na tela. */
93
+ abrirPopupFeicao(camadaId: string, id: string): boolean;
94
+ /** Duplo clique no mapa: abre o popup da feição sob o cursor (a não ser que os popups estejam desligados). */
95
+ aoDuploClique(e: MouseEvent): void;
143
96
  /** Opções do popup (hoje: se "copiar" escreve na área de transferência). Mescla com o que já foi definido. */
144
97
  definirOpcoesPopup(opcoes: OpcoesPopup): void;
145
98
  obterOpcoesPopup(): Required<OpcoesPopup>;
@@ -150,14 +103,12 @@ export declare class GerenciadorFeicoes {
150
103
  definirMargensHud(m: Partial<MargensHud>): void;
151
104
  private aplicarMargensHud;
152
105
  get regraVersoes(): RegraVersoes;
153
- private oficiaisDe;
154
106
  /** Aparece segundo a regra de oficial × prévia? */
155
107
  visivelPorVersao(f: Feicao): boolean;
156
108
  /** Vai para a tela e responde a clique, caixa, laço, snap e hover: não excluída, não oculta e visível pela regra de versões. */
157
109
  desenhada(f: Feicao): boolean;
158
110
  /** Regra da seleção: a feição em edição continua selecionada mesmo se for ocultada no meio da edição. */
159
111
  private selecionavelAgora;
160
- private aplicarVersoes;
161
112
  get previasGlobais(): boolean;
162
113
  /** Mostra (ou esconde) as prévias de todas as entidades. Prévias de entidades sem oficial aparecem sempre. */
163
114
  definirPreviasGlobais(ligado: boolean): void;
@@ -170,10 +121,6 @@ export declare class GerenciadorFeicoes {
170
121
  removerCursorRemoto(id: string): boolean;
171
122
  limparCursoresRemotos(): void;
172
123
  get cursoresRemotos(): number;
173
- /** Mostra o que estava escondido (camada oculta, prévia não solicitada) para a feição poder ser vista. */
174
- private garantirVisivel;
175
- private limitesDe;
176
- private enquadrar;
177
124
  /** Aproxima da feição; liga a camada e a prévia, se estiverem escondidas. Ponto: voa até z ≥ 17. */
178
125
  zoomParaFeicao(camadaId: string, id: string): boolean;
179
126
  zoomParaFeicoes(refs: RefFeicao[]): boolean;
@@ -181,7 +128,6 @@ export declare class GerenciadorFeicoes {
181
128
  ajustarTudo(): boolean;
182
129
  /** Enquadra a camada inteira; se estava oculta, torna-a visível. */
183
130
  ajustarCamada(camadaId: string): boolean;
184
- private feicaoSob;
185
131
  /** Emite `cad-feicao-hover` quando a feição sob o mouse muda (uma checagem por quadro). */
186
132
  aoMoverMouse(e: MouseEvent): void;
187
133
  /** Botão direito: emite `cad-feicao-menu` com a feição sob o cursor (ou `null`), para o consumidor abrir o próprio menu. */
@@ -194,13 +140,19 @@ export declare class GerenciadorFeicoes {
194
140
  alternarSnap(): void;
195
141
  conectarTeclado(): void;
196
142
  desconectarTeclado(): void;
197
- /** Feições visíveis das camadas de feições cujo envelope toca um quadrado de `tolPx` px em volta de `coord`. */
143
+ /** Feições visíveis cujo envelope toca um quadrado de `tolPx` px em volta de `coord`. */
198
144
  private candidatasEm;
199
145
  /** Snap de uma coordenada contra as feições visíveis de todas as camadas de feições (via índice espacial). */
200
146
  buscarSnapEm(coord: [number, number], excluir?: ExcluirSnap): import('../../gerencigeo-canvas').ResultadoSnap | null;
147
+ /** @internal Editor de vértices (usado pelos testes de caracterização). */
148
+ get editor(): EditorVertices | null;
201
149
  get editando(): boolean;
202
150
  iniciarEdicao(camadaId: string, id: string): ResultadoEdicao;
203
151
  pararEdicao(): void;
152
+ /** @internal Controle de desenho (usado pelos testes de caracterização). */
153
+ get desenho(): ControleDesenho | null;
154
+ /** @internal Conta-gotas (usado pelos testes de caracterização). */
155
+ amostrarEstilo(coord: LatLonPar): void;
204
156
  get ferramentaAtiva(): Ferramenta | null;
205
157
  /** Camada que recebe o que for desenhado. Não existe camada padrão: o consumidor escolhe. */
206
158
  definirCamadaDesenho(camadaId: string | null): void;
@@ -220,22 +172,8 @@ export declare class GerenciadorFeicoes {
220
172
  desfazerVerticeDesenho(): boolean;
221
173
  /** Liga/desliga a tecla S do snap (o botão e `definirSnap` continuam valendo). */
222
174
  definirAtalhoSnap(ligado: boolean): void;
223
- private motivoCamadaDesenhoInvalida;
224
- private novoId;
225
175
  private idLivre;
226
- /**
227
- * Clique da ferramenta texto: emite `cad-texto-solicitado` (cancelável). Com `preventDefault()` o consumidor assume a
228
- * entrada do texto e depois chama `detalhe.concluir(texto)` (cria na camada de desenho, com o estilo de desenho) ou
229
- * simplesmente não faz nada para cancelar. Sem `preventDefault()`, aparece o campo inline.
230
- */
231
- private solicitarTexto;
232
- private concluirFerramenta;
233
- /** Conta-gotas: copia o estilo da feição sob o clique para o estilo de desenho. */
234
- private amostrarEstilo;
235
- /**
236
- * Divide polígonos pela linha de corte. Alvos: os polígonos selecionados; sem seleção, o primeiro
237
- * polígono (de camada visível, interativa e desbloqueada) que a linha corta.
238
- */
176
+ /** Divide polígonos pela linha de corte (selecionados; sem seleção, o primeiro cortado). Ver `OperacoesFeicoes`. */
239
177
  dividirComLinha(linha: LatLonPar[]): boolean;
240
178
  /** Cria um polígono de buffer ao redor da feição (na camada dela, ou em `camadaDestino`). */
241
179
  gerarBuffer(camadaId: string, id: string, metros: number, opcoes?: {
@@ -249,14 +187,9 @@ export declare class GerenciadorFeicoes {
249
187
  }, opcoes?: {
250
188
  id?: string;
251
189
  }): Feicao | null;
252
- /**
253
- * Junta linhas (encadeando pontas) ou dois polígonos (por uma ponte) numa feição só; as originais saem.
254
- * Linhas com pontas a até `toleranciaM` se ligam; polígonos precisam estar a até `toleranciaM` e
255
- * não podem ter bordas que se cruzam.
256
- */
190
+ /** Junta linhas (encadeando pontas) ou dois polígonos numa feição só; as originais saem. Ver `OperacoesFeicoes`. */
257
191
  juntarFeicoes(camadaId: string, ids: string[], opcoes?: {
258
192
  toleranciaM?: number;
259
193
  id?: string;
260
194
  }): Feicao | null;
261
195
  }
262
- export {};
@@ -3,6 +3,8 @@ import { GerenciGeoMapaController } from '../../gerencigeo-canvas/mapa_controlle
3
3
  import { GerenciadorToolbarPainel } from './cad-toolbar-painel';
4
4
  import { GerenciadorColecoesDados } from './cad-colecoes-dados';
5
5
  import { ContextoEventosCanvas } from './cad-eventos-canvas';
6
+ import { EventoMapaCad, LatLngEvento } from './tipos';
7
+ import { PontoPixel } from './cad-evento-coordenadas';
6
8
  export interface ContextoInicializadorCAD {
7
9
  host: UICanvasCAD;
8
10
  shadow: ShadowRoot;
@@ -13,7 +15,7 @@ export interface ContextoInicializadorCAD {
13
15
  obterContextoEventos: () => ContextoEventosCanvas;
14
16
  renderLayersUI: () => void;
15
17
  invalidateSizeSafely: () => void;
16
- tratarCliqueLivreCanvas: (e: any, latlng?: any, containerPoint?: any) => void;
18
+ tratarCliqueLivreCanvas: (e: MouseEvent | EventoMapaCad, latlng?: LatLngEvento, containerPoint?: PontoPixel) => void;
17
19
  dispararAcaoPopup: (acaoId: string, elementoId: string | number, elemento?: any) => void;
18
20
  }
19
21
  export declare function inicializarCAD(ctx: ContextoInicializadorCAD): void;
@@ -0,0 +1,5 @@
1
+ /**
2
+ * O Leaflet recusa inicializar um contêiner já marcado com `_leaflet_id` ("Map container is already initialized").
3
+ * Limpa a marca; devolve `true` se havia uma.
4
+ */
5
+ export declare function liberarContainerLeaflet(container: HTMLElement | null | undefined): boolean;
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Textos (pt-BR) das recusas do <ui-canvas-cad>: o motivo que sai em `cad-desenho-recusado` e `cad-edicao-recusada`
3
+ * vira uma frase para o aviso visível e para o leitor de tela. Funções puras; motivo desconhecido recebe um texto genérico.
4
+ */
5
+ export declare function textoDesenhoRecusado(motivo: unknown): string;
6
+ export declare function textoEdicaoRecusada(motivo: unknown): string;
@@ -0,0 +1,5 @@
1
+ import { GerenciGeoMapaController } from '../../gerencigeo-canvas/mapa_controller';
2
+ type IdPonto = string | number;
3
+ export declare function lerPontosSelecionados(controller: GerenciGeoMapaController): IdPonto[];
4
+ export declare function gravarPontosSelecionados(controller: GerenciGeoMapaController, ids: IdPonto[]): void;
5
+ export {};
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Tipos "emprestados" do Leaflet e do contexto do mapa usados pelo <ui-canvas-cad>.
3
+ * Responsabilidade única: descrever, em um só lugar, as formas dinâmicas que o código antes acessava com `as any`.
4
+ */
5
+ /** Contêiner de mapa do Leaflet: o Leaflet marca o elemento com `_leaflet_id` ao inicializar. */
6
+ export type ContainerLeaflet = HTMLElement & {
7
+ _leaflet_id?: number;
8
+ };
9
+ export interface PontoPixelEvento {
10
+ x?: number;
11
+ y?: number;
12
+ }
13
+ export interface LatLngEvento {
14
+ lat?: number;
15
+ lng?: number;
16
+ /** Alguns emissores usam `lon`. */
17
+ lon?: number;
18
+ }
19
+ /** Evento de mapa/DOM como chega ao canvas: pode ser do Leaflet (com `originalEvent`) ou um MouseEvent cru. */
20
+ export interface EventoMapaCad {
21
+ originalEvent?: EventoMapaCad;
22
+ target?: EventTarget | null;
23
+ composedPath?: () => EventTarget[];
24
+ clientX?: number;
25
+ clientY?: number;
26
+ containerPoint?: PontoPixelEvento;
27
+ layerPoint?: PontoPixelEvento;
28
+ latlng?: LatLngEvento;
29
+ }
30
+ /** Elemento com coordenadas em qualquer das grafias aceitas na entrada. */
31
+ export interface ElementoComCoordenadas {
32
+ lat?: number | string;
33
+ lon?: number | string;
34
+ lng?: number | string;
35
+ latitude?: number | string;
36
+ longitude?: number | string;
37
+ }
@@ -2,7 +2,12 @@ import { default as L } from 'leaflet';
2
2
  import { Ponto, Segmento, BancoPonto, Confrontante, CanvasLayerState, CanvasGraphicScale, ScaleMode, PontoCAD, ConexaoCAD, PoligonoCAD, DestacarElementoOpcoes } from '../../gerencigeo-canvas/types';
3
3
  import { GerenciGeoMapaController } from '../../gerencigeo-canvas/mapa_controller';
4
4
  import { CanvasLayerManager } from '../../gerencigeo-canvas/layer_manager';
5
+ import { ModoPopups } from '../../gerencigeo-canvas/popup_gate';
6
+ import { ModoRenderizador } from '../../gerencigeo-canvas/renderers/feicoes_despachante';
7
+ import { EstatisticasFeicoes } from '../../gerencigeo-canvas/renderers/renderizador_feicoes_tipos';
5
8
  import { UsuarioRemoto } from '../../gerencigeo-canvas/feature_cursores';
9
+ import { EventoMapaCad, LatLngEvento } from './tipos';
10
+ import { PontoPixel } from './cad-evento-coordenadas';
6
11
  import { OpcoesCamadaFeicoes, OpcoesLote, LoteFeicoes, ResultadoLote, ResultadoFeicoes, ResultadoEdicao, ResultadoFerramenta } from './cad-feicoes';
7
12
  import { EstiloFeicao, Feicao } from '../../gerencigeo-canvas/feature_types';
8
13
  import { SafeHTMLElement } from '../../core/ssr-safe';
@@ -20,6 +25,7 @@ export declare class UICanvasCAD extends SafeHTMLElement {
20
25
  private feicoes;
21
26
  private barraFerramentas;
22
27
  private hoverListeners;
28
+ private desligarAnuncios;
23
29
  private layerItemListeners;
24
30
  private initTimeout?;
25
31
  private estilosExternos;
@@ -46,7 +52,7 @@ export declare class UICanvasCAD extends SafeHTMLElement {
46
52
  definirEstilosExternos(css: EstilosExternos): void;
47
53
  private initCAD;
48
54
  private obterContextoEventos;
49
- tratarCliqueLivreCanvas(e: MouseEvent | any, latLng?: any, pt?: any): void;
55
+ tratarCliqueLivreCanvas(e: MouseEvent | EventoMapaCad, latLng?: LatLngEvento, pt?: PontoPixel): void;
50
56
  dispararAcaoPopup(acaoId: string, elementoId: string | number, elemento?: any): void;
51
57
  toggleLayersPanel(): void;
52
58
  closeLayersPanel(): void;
@@ -69,6 +75,26 @@ export declare class UICanvasCAD extends SafeHTMLElement {
69
75
  */
70
76
  get aceitarOrigem(): boolean;
71
77
  set aceitarOrigem(val: boolean);
78
+ /**
79
+ * Quando os popups abrem (atributo `popups`): `sob-demanda` (padrão) só por duplo clique sobre a feição/camada ou por
80
+ * `abrirPopupFeicao()`, sem mover o mapa; `automatico` abre ao clicar e o Leaflet ajusta a vista (comportamento antigo);
81
+ * `desligado` só por `abrirPopupFeicao()`. Valor inválido usa o padrão.
82
+ */
83
+ get popups(): ModoPopups;
84
+ set popups(val: ModoPopups);
85
+ /**
86
+ * Quem desenha as camadas de feições (atributo `renderizador`): `leaflet` (padrão; um objeto Leaflet por feição) ou
87
+ * `canvas` (motor sem DOM + Canvas 2D: um canvas por camada e um de sobreposição para seleção, formas minúsculas
88
+ * como marcas em lote, só um objeto Leaflet por marcador de ícone, texto, cluster e rótulo). Valor inválido usa
89
+ * `leaflet`. Ao mudar, as camadas de feições são recriadas; a API, os eventos e os dados não mudam.
90
+ */
91
+ get renderizador(): ModoRenderizador;
92
+ set renderizador(val: ModoRenderizador);
93
+ /**
94
+ * Contadores do desenho de uma camada de feições (`total`, `materializadas`, `desenhadas`, `marcasLOD`, `clusters`,
95
+ * `canvases`, `renderizador`...), para diagnóstico e benchmark. `null` se a camada não está desenhada.
96
+ */
97
+ estatisticasFeicoes(camadaId: string): EstatisticasFeicoes | null;
72
98
  get modoSequencial(): boolean;
73
99
  set modoSequencial(val: boolean);
74
100
  get chaveGrupo(): string | undefined;
@@ -79,6 +105,7 @@ export declare class UICanvasCAD extends SafeHTMLElement {
79
105
  set canalConfiguracao(val: string | null);
80
106
  fitBounds(pontos?: Ponto[], padding?: [number, number], incluirVizinhos?: boolean): void;
81
107
  zoomExtents(): void;
108
+ /** Seleciona o vértice. A vista só se move (e o popup abre) se `zoomLevel` for informado: é o pedido de "ir até o ponto". */
82
109
  selectPonto(id: string | number, zoomLevel?: number): void;
83
110
  selecionarPonto(id: string | number, zoomLevel?: number): void;
84
111
  get pontosSelecionados(): (string | number)[];
@@ -203,6 +230,8 @@ export declare class UICanvasCAD extends SafeHTMLElement {
203
230
  removerCursorRemoto(id: string): boolean;
204
231
  limparCursoresRemotos(): void;
205
232
  fecharPopupFeicao(): void;
233
+ /** Abre o popup da feição (pedido explícito, vale em qualquer modo de `popups`). `false` se ela não existe ou não está na tela. */
234
+ abrirPopupFeicao(camadaId: string, id: string): boolean;
206
235
  /**
207
236
  * Opções do popup. `copiarParaAreaDeTransferencia` (padrão `true`): a ação "copiar" também grava as coordenadas na área de
208
237
  * transferência; com `false` só sai `cad-feicao-acao` e o consumidor decide (ex.: para mostrar o próprio aviso).
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Quando um clique ou uma tecla vinda de dentro do card deve ativá-lo.
3
+ * Responsabilidade única: decidir, sem tocar no DOM, se o evento pertence ao card ou a um controle interno.
4
+ */
5
+ /**
6
+ * O alvo é (ou está dentro de) um controle com comportamento próprio, entre ele e a `raiz` (o host do card)?
7
+ * Aceita `Element`, e não só `HTMLElement`: o alvo de um clique num ícone é o `<path>` do SVG.
8
+ * Controles fora da `raiz` não contam (um card dentro de um `<a>` ou `<label>` continua clicável), e o próprio
9
+ * host e o `role="button"` da base do card não são "controle interno".
10
+ */
11
+ export declare function ehControleInterno(alvo: EventTarget | null | undefined, raiz: Element): boolean;
12
+ /**
13
+ * A tecla ativa o card? Só Enter/Espaço pressionados no próprio card, sem repetição (tecla mantida) e sem
14
+ * Ctrl/Alt/Meta. Teclas vindas de controles internos (campo, botão) não são do card: ativá-lo e chamar
15
+ * `preventDefault` impediria digitar espaço num `<input>` ou acionar o botão.
16
+ */
17
+ export declare function teclaAtivaCard(e: Pick<KeyboardEvent, 'key' | 'repeat' | 'ctrlKey' | 'altKey' | 'metaKey' | 'target'>, base: EventTarget): boolean;
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Seções opcionais do card (mídia, cabeçalho, rodapé).
3
+ * Responsabilidade única: dizer se um grupo de slots (nome em português e alias em inglês) tem conteúdo.
4
+ */
5
+ /**
6
+ * Há conteúdo atribuído a algum dos slots `nomes`? Conta elementos e texto não vazio (espaços e quebras de linha
7
+ * entre as tags não contam). Também olha os filhos diretos do host com `slot="..."`, que cobre o intervalo antes do
8
+ * `slotchange`. Só filhos diretos: um `[slot]` aninhado em outro elemento pertence a outro componente.
9
+ */
10
+ export declare function secaoTemConteudo(raiz: ShadowRoot | null, host: Element, nomes: readonly string[]): boolean;
@@ -1,4 +1,24 @@
1
1
  import { SafeHTMLElement } from '../../core/ssr-safe';
2
+ /**
3
+ * Cartão de conteúdo com mídia, cabeçalho, corpo e rodapé opcionais; pode ser clicável (vira um botão).
4
+ *
5
+ * @attr {'plano'|'elevado'|'destaque'} elevacao - Profundidade visual (alias `elevation`).
6
+ * @attr {'plano'|'elevado'|'destaque'} variante - Estilo adicional (alias `variant`); valores desconhecidos são ignorados.
7
+ * @attr {boolean} clicavel - Torna o card um botão focável que emite `ui-clique` (alias `clickable`).
8
+ * @attr {boolean} compacto - Reduz os espaçamentos internos (alias `compact`).
9
+ * @attr {boolean} disabled - Desativa a interação e reduz a opacidade.
10
+ * @attr {string} aria-label - Nome acessível do card clicável (um card sem clique não é anunciado como controle).
11
+ * @slot - Corpo do card.
12
+ * @slot midia - Imagem ou vídeo no topo (alias `media`).
13
+ * @slot cabecalho - Título e ações (alias `header`); a seção some quando vazia.
14
+ * @slot rodape - Ações e metadados (alias `footer`); a seção some quando vazia.
15
+ * @csspart base - O contêiner do card.
16
+ * @csspart midia - A seção de mídia.
17
+ * @csspart cabecalho - A seção de cabeçalho.
18
+ * @csspart corpo - A seção do corpo.
19
+ * @csspart rodape - A seção de rodapé.
20
+ * @fires ui-clique - Card clicável ativado por clique, Enter ou Espaço (`detail.id`); também emitido como `ui-click`.
21
+ */
2
22
  export declare class UICard extends SafeHTMLElement {
3
23
  static get observedAttributes(): string[];
4
24
  private cardElement;
@@ -8,6 +28,8 @@ export declare class UICard extends SafeHTMLElement {
8
28
  disconnectedCallback(): void;
9
29
  attributeChangedCallback(_name: string, _old: string | null, _value: string | null): void;
10
30
  private handleSlotChange;
31
+ /** Leva o foco ao card clicável e habilitado; nos demais casos mantém o comportamento nativo do host. */
32
+ focus(options?: FocusOptions): void;
11
33
  get clicavel(): boolean;
12
34
  set clicavel(val: boolean);
13
35
  get disabled(): boolean;
@@ -15,4 +37,5 @@ export declare class UICard extends SafeHTMLElement {
15
37
  private syncState;
16
38
  private handleClick;
17
39
  private handleKeyDown;
40
+ private emitirClique;
18
41
  }
@@ -25,11 +25,14 @@ export declare class UICheckbox extends FormAssociatedElement {
25
25
  set disabled(val: boolean);
26
26
  get type(): string;
27
27
  atualizarValidade(): void;
28
+ /** `focus()` no host leva o foco ao controle interno (necessário para o foco de validação do formulário). */
29
+ focus(options?: FocusOptions): void;
28
30
  alternar(): void;
29
31
  protected syncState(): void;
30
32
  formResetCallback(): void;
31
- formStateRestoreCallback(state: any, _mode: 'restore' | 'autocomplete'): void;
33
+ formStateRestoreCallback(state: unknown, _mode: 'restore' | 'autocomplete'): void;
32
34
  private handleClick;
35
+ private handleHostClick;
33
36
  private handleKeyDown;
34
37
  private handleFocus;
35
38
  private handleBlur;
@@ -41,6 +41,8 @@ export interface OpcoesSeletorCor {
41
41
  coresProjeto?: ValorCor[];
42
42
  /** Substitui a paleta padrão. */
43
43
  paleta?: ValorCor[];
44
+ /** Leva o foco do teclado para o painel ao abrir (ao fechar, o foco volta para a âncora). Padrão: `false`. */
45
+ focar?: boolean;
44
46
  /** Cada alteração (pré-visualização, ainda não confirmada). */
45
47
  aoAlterar?: (detalhe: DetalheSeletorCor) => void;
46
48
  /** Ao fechar confirmando: Concluir, ✕, Enter no hexadecimal, Esc ou clique fora. */
@@ -79,11 +79,16 @@ export declare class UIControleCores extends SafeHTMLElement {
79
79
  semCor(alvo?: AlvoCor): void;
80
80
  /** Volta às cores de `padrao-preenchimento` e `padrao-traco`; emite `ui-cores-change` confirmado. */
81
81
  restaurarPadrao(): void;
82
- /** Abre o seletor de cor ancorado na amostra do alvo (que passa a ser o ativo). */
83
- abrirSeletor(alvo?: AlvoCor): void;
84
- /** Fecha o seletor aberto por este controle (confirmando, por padrão). */
82
+ /** Abre o seletor de cor ancorado na amostra do alvo (que passa a ser o ativo). Com `focar`, leva o foco do teclado para o painel. */
83
+ abrirSeletor(alvo?: AlvoCor, focar?: boolean): void;
84
+ /**
85
+ * Fecha o seletor aberto por este controle. Com `confirmar` (padrão), grava o que foi editado;
86
+ * sem ele, cancela: as cores iniciais voltam (com um `ui-cores-change` não confirmado) e nada é confirmado.
87
+ */
85
88
  fecharSeletor(confirmar?: boolean): void;
86
89
  private mudarAlvo;
90
+ /** Mantém a aba do seletor aberto igual ao alvo do controle. */
91
+ private sincronizarSeletor;
87
92
  private aplicarDoSeletor;
88
93
  private emitirCores;
89
94
  private dica;
@@ -1,7 +1,7 @@
1
1
  import { SafeHTMLElement } from '../../core/ssr-safe';
2
2
  import { AlvoCor, DetalheSeletorCor, OpcoesSeletorCor, SeletorCorAberto, ValorCor } from './tipos';
3
3
  /** Configuração aceita por `UISeletorCor.configurar()` (as opções de `abrirSeletorCor` sem âncora e callbacks). */
4
- export type ConfiguracaoSeletorCor = Omit<OpcoesSeletorCor, 'ancora' | 'aoAlterar' | 'aoConfirmar' | 'aoCancelar' | 'aoTrocarAlvo'>;
4
+ export type ConfiguracaoSeletorCor = Omit<OpcoesSeletorCor, 'ancora' | 'focar' | 'aoAlterar' | 'aoConfirmar' | 'aoCancelar' | 'aoTrocarAlvo'>;
5
5
  /**
6
6
  * <ui-seletor-cor> — painel de cor no estilo Illustrator: abas Preenchimento/Traço, prévia
7
7
  * antes × depois, hexadecimal, seletor do sistema, opacidade do preenchimento, cores do projeto,
@@ -51,6 +51,8 @@ export declare class UISeletorCor extends SafeHTMLElement {
51
51
  private get opacidadeVisivel();
52
52
  private renderizar;
53
53
  private atualizarVisual;
54
+ /** `activeElement` lança em alguns DOMs simulados quando o foco está em outra árvore de sombra. */
55
+ private campoEmFoco;
54
56
  private vincularEventos;
55
57
  private emitir;
56
58
  }
@@ -0,0 +1 @@
1
+ export * from './ui-linha';
@@ -0,0 +1,48 @@
1
+ import { SafeHTMLElement } from '../../core/ssr-safe';
2
+ export type AlinhamentoLinha = 'inicio' | 'centro' | 'fim' | 'esticar';
3
+ export type JustificacaoLinha = 'inicio' | 'centro' | 'fim' | 'entre' | 'ao-redor';
4
+ export type EspacoLinha = 'nenhum' | 'xs' | 'sm' | 'md' | 'lg';
5
+ /**
6
+ * Contêiner de controles na mesma linha: um único lugar define altura, alinhamento, espaço e quebra, e todos os
7
+ * filhos (`ui-botao`, `ui-campo-texto`, `ui-lista-flutuante`, `ui-segmented`, `ui-badge[controle]`...) se alinham sozinhos.
8
+ *
9
+ * A altura segue o contrato `--ui-campo-altura` (ver `core/altura-controle.ts`): `tamanho`/`altura` aqui valem para
10
+ * todos os filhos; um filho com `tamanho`/`altura` próprio vence só ele.
11
+ *
12
+ * @element ui-linha
13
+ *
14
+ * @attr {string} tamanho - Altura dos controles filhos: `sm` (26px), `md` (34px), `lg` (42px); aceita também `compacta`, `padrao`, `relaxada`.
15
+ * @attr {string} densidade - Sinônimo de `tamanho`.
16
+ * @attr {string} altura - Altura explícita dos controles filhos (px, rem ou em); vence `tamanho`.
17
+ * @attr {string} alinhar - Alinhamento vertical: `centro` (padrão), `inicio`, `fim`, `esticar`.
18
+ * @attr {string} justificar - Distribuição horizontal: `inicio` (padrão), `centro`, `fim`, `entre`, `ao-redor`.
19
+ * @attr {string} espaco - Espaço entre os filhos: `nenhum`, `xs`, `sm` (padrão), `md`, `lg`.
20
+ * @attr {boolean} sem-quebra - Não quebra para a linha de baixo (por padrão a linha quebra).
21
+ * @attr {boolean} inline - Ocupa só a largura do conteúdo (`inline-flex`).
22
+ *
23
+ * @slot - Os controles da linha. Qualquer filho com o atributo `expandir` ocupa o espaço restante.
24
+ *
25
+ * @cssprop --ui-linha-espaco - Espaço entre os filhos (substitui `espaco`).
26
+ * @cssprop --ui-linha-campo-base - Largura-base de campos e listas antes de quebrar (padrão `12rem`).
27
+ * @cssprop --ui-campo-altura - Altura dos controles filhos (definida por `tamanho`/`altura`).
28
+ */
29
+ export declare class UILinha extends SafeHTMLElement {
30
+ static get observedAttributes(): string[];
31
+ constructor();
32
+ connectedCallback(): void;
33
+ attributeChangedCallback(_name: string, old: string | null, value: string | null): void;
34
+ private lerTexto;
35
+ private definirTexto;
36
+ get tamanho(): string | null;
37
+ set tamanho(v: string | null);
38
+ get altura(): string | null;
39
+ set altura(v: string | number | null);
40
+ get alinhar(): AlinhamentoLinha | null;
41
+ set alinhar(v: AlinhamentoLinha | null);
42
+ get justificar(): JustificacaoLinha | null;
43
+ set justificar(v: JustificacaoLinha | null);
44
+ get espaco(): EspacoLinha | null;
45
+ set espaco(v: EspacoLinha | null);
46
+ get semQuebra(): boolean;
47
+ set semQuebra(v: boolean);
48
+ }
@@ -0,0 +1,14 @@
1
+ import { VistaMapa } from './tipos';
2
+ export declare const VISTA_PADRAO: VistaMapa;
3
+ export declare const COR_MARCADOR_PADRAO = "#00f5a0";
4
+ export declare const COR_LINHA_PADRAO = "#3388ff";
5
+ export declare const ESPESSURA_PADRAO = 3;
6
+ /** Lê lat/lng/zoom; cada campo inválido (ou fora de -90..90, -180..180, 0..22) cai no padrão. */
7
+ export declare function lerVista(lat: string | null, lng: string | null, zoom: string | null): VistaMapa;
8
+ export declare function lerInteiroPositivo(valor: string | null, padrao: number): number;
9
+ /** Aceita só cores CSS conhecidas (hex, rgb/hsl, nome); qualquer outra coisa vira `padrao`. Impede injeção em estilo/atributo. */
10
+ export declare function corSegura(cor: string | null | undefined, padrao: string): string;
11
+ /** Lista de camadas base pedidas, filtrada pelas conhecidas; vazia → `['osm']`. */
12
+ export declare function lerCamadas(texto: string | null, conhecidas: string[]): string[];
13
+ /** Interpreta `pontos` (JSON `[[lat, lng], ...]`); descarta pares inválidos e devolve `[]` se o JSON não for um array. */
14
+ export declare function lerPontos(texto: string | null): Array<[number, number]>;
@@ -0,0 +1,7 @@
1
+ import { TileLayer } from 'leaflet';
2
+ import { LeafletModulo } from './tipos';
3
+ export interface Basemap {
4
+ nome: string;
5
+ layer: () => TileLayer;
6
+ }
7
+ export declare function obterBasemaps(L: LeafletModulo): Record<string, Basemap>;
@@ -0,0 +1,4 @@
1
+ import { DivIcon } from 'leaflet';
2
+ import { FormatoMarcador, LeafletModulo } from './tipos';
3
+ /** `cor` já deve ter passado por `corSegura`. */
4
+ export declare function criarIconeMarcador(L: LeafletModulo, cor: string, formato: FormatoMarcador): DivIcon;
@@ -0,0 +1,5 @@
1
+ import { LeafletModulo } from './tipos';
2
+ /** `L` se o Leaflet já estiver carregado (global ou importado), senão `null`. */
3
+ export declare function obterLeaflet(): LeafletModulo | null;
4
+ /** Carrega o Leaflet sob demanda; `null` se não estiver instalado. */
5
+ export declare function carregarLeafletTipado(): Promise<LeafletModulo | null>;