@thibezer/ui-components-kit 1.0.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 (249) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +624 -0
  3. package/dist/botao.cjs +1 -0
  4. package/dist/botao.d.ts +8 -0
  5. package/dist/botao.js +6 -0
  6. package/dist/camadas.cjs +296 -0
  7. package/dist/camadas.d.ts +14 -0
  8. package/dist/camadas.js +1857 -0
  9. package/dist/campo-texto.cjs +1 -0
  10. package/dist/campo-texto.d.ts +8 -0
  11. package/dist/campo-texto.js +11 -0
  12. package/dist/canvas.cjs +254 -0
  13. package/dist/canvas.d.ts +8 -0
  14. package/dist/canvas.js +3082 -0
  15. package/dist/card.cjs +1 -0
  16. package/dist/card.d.ts +7 -0
  17. package/dist/card.js +5 -0
  18. package/dist/components/ui-alerta/index.d.ts +2 -0
  19. package/dist/components/ui-alerta/ui-alerta-base.d.ts +23 -0
  20. package/dist/components/ui-alerta/ui-alerta.d.ts +2 -0
  21. package/dist/components/ui-alerta/ui-toast.d.ts +34 -0
  22. package/dist/components/ui-avatar/index.d.ts +1 -0
  23. package/dist/components/ui-avatar/ui-avatar.d.ts +12 -0
  24. package/dist/components/ui-badge/index.d.ts +1 -0
  25. package/dist/components/ui-badge/ui-badge.d.ts +20 -0
  26. package/dist/components/ui-barra-ferramentas/ferramentas-comum.d.ts +22 -0
  27. package/dist/components/ui-barra-ferramentas/ferramentas-icones.d.ts +24 -0
  28. package/dist/components/ui-barra-ferramentas/index.d.ts +4 -0
  29. package/dist/components/ui-barra-ferramentas/tipos.d.ts +55 -0
  30. package/dist/components/ui-barra-ferramentas/ui-paleta-ferramentas.d.ts +54 -0
  31. package/dist/components/ui-barra-ferramentas/ui-ribbon.d.ts +52 -0
  32. package/dist/components/ui-botao/index.d.ts +1 -0
  33. package/dist/components/ui-botao/ui-botao.d.ts +26 -0
  34. package/dist/components/ui-camadas/camadas-arvore-renderer.d.ts +18 -0
  35. package/dist/components/ui-camadas/camadas-drag-drop.d.ts +18 -0
  36. package/dist/components/ui-camadas/camadas-eventos-arvore.d.ts +2 -0
  37. package/dist/components/ui-camadas/camadas-eventos-camadas.d.ts +2 -0
  38. package/dist/components/ui-camadas/camadas-eventos-rodape.d.ts +2 -0
  39. package/dist/components/ui-camadas/camadas-host.d.ts +23 -0
  40. package/dist/components/ui-camadas/camadas-icones.d.ts +23 -0
  41. package/dist/components/ui-camadas/camadas-mapas-base.d.ts +3 -0
  42. package/dist/components/ui-camadas/camadas-metricas.d.ts +17 -0
  43. package/dist/components/ui-camadas/camadas-persistencia.d.ts +65 -0
  44. package/dist/components/ui-camadas/camadas-resizer.d.ts +16 -0
  45. package/dist/components/ui-camadas/camadas-rodape.d.ts +2 -0
  46. package/dist/components/ui-camadas/camadas-selecao.d.ts +24 -0
  47. package/dist/components/ui-camadas/camadas-sincronizacao-dom.d.ts +3 -0
  48. package/dist/components/ui-camadas/camadas-teclado.d.ts +3 -0
  49. package/dist/components/ui-camadas/camadas-utils.d.ts +26 -0
  50. package/dist/components/ui-camadas/index.d.ts +11 -0
  51. package/dist/components/ui-camadas/tipos.d.ts +116 -0
  52. package/dist/components/ui-camadas/ui-camadas.d.ts +112 -0
  53. package/dist/components/ui-campo-texto/campo-texto-estados.d.ts +12 -0
  54. package/dist/components/ui-campo-texto/campo-texto-template.d.ts +2 -0
  55. package/dist/components/ui-campo-texto/index.d.ts +1 -0
  56. package/dist/components/ui-campo-texto/ui-campo-texto.d.ts +57 -0
  57. package/dist/components/ui-canvas-cad/cad-atributos-sync.d.ts +13 -0
  58. package/dist/components/ui-canvas-cad/cad-broadcast.d.ts +19 -0
  59. package/dist/components/ui-canvas-cad/cad-colecoes-dados.d.ts +46 -0
  60. package/dist/components/ui-canvas-cad/cad-eventos-canvas.d.ts +26 -0
  61. package/dist/components/ui-canvas-cad/cad-inicializador.d.ts +19 -0
  62. package/dist/components/ui-canvas-cad/cad-painel-camadas.d.ts +9 -0
  63. package/dist/components/ui-canvas-cad/cad-tamanho-observer.d.ts +7 -0
  64. package/dist/components/ui-canvas-cad/cad-template.d.ts +1 -0
  65. package/dist/components/ui-canvas-cad/cad-toolbar-painel.d.ts +29 -0
  66. package/dist/components/ui-canvas-cad/index.d.ts +8 -0
  67. package/dist/components/ui-canvas-cad/ui-canvas-cad.d.ts +91 -0
  68. package/dist/components/ui-card/index.d.ts +1 -0
  69. package/dist/components/ui-card/ui-card.d.ts +18 -0
  70. package/dist/components/ui-checkbox/index.d.ts +1 -0
  71. package/dist/components/ui-checkbox/ui-checkbox.d.ts +36 -0
  72. package/dist/components/ui-drawer/drawer-acessibilidade.d.ts +16 -0
  73. package/dist/components/ui-drawer/index.d.ts +1 -0
  74. package/dist/components/ui-drawer/ui-drawer.d.ts +37 -0
  75. package/dist/components/ui-icone/index.d.ts +1 -0
  76. package/dist/components/ui-icone/ui-icone.d.ts +15 -0
  77. package/dist/components/ui-lista-flutuante/index.d.ts +1 -0
  78. package/dist/components/ui-lista-flutuante/lista-flutuante-posicionamento.d.ts +15 -0
  79. package/dist/components/ui-lista-flutuante/lista-flutuante-render.d.ts +9 -0
  80. package/dist/components/ui-lista-flutuante/lista-flutuante-teclado.d.ts +13 -0
  81. package/dist/components/ui-lista-flutuante/lista-flutuante-template.d.ts +2 -0
  82. package/dist/components/ui-lista-flutuante/tipos.d.ts +4 -0
  83. package/dist/components/ui-lista-flutuante/ui-lista-flutuante.d.ts +63 -0
  84. package/dist/components/ui-mapa/index.d.ts +3 -0
  85. package/dist/components/ui-mapa/ui-mapa-linha.d.ts +12 -0
  86. package/dist/components/ui-mapa/ui-mapa-marcador.d.ts +15 -0
  87. package/dist/components/ui-mapa/ui-mapa.d.ts +16 -0
  88. package/dist/components/ui-modal/index.d.ts +2 -0
  89. package/dist/components/ui-modal/modal-acessibilidade.d.ts +12 -0
  90. package/dist/components/ui-modal/ui-modal.d.ts +30 -0
  91. package/dist/components/ui-radio/index.d.ts +1 -0
  92. package/dist/components/ui-radio/radio-grupo-registry.d.ts +10 -0
  93. package/dist/components/ui-radio/ui-radio.d.ts +29 -0
  94. package/dist/components/ui-segmented/index.d.ts +1 -0
  95. package/dist/components/ui-segmented/segmented-indicador.d.ts +13 -0
  96. package/dist/components/ui-segmented/segmented-teclado.d.ts +4 -0
  97. package/dist/components/ui-segmented/segmented-template.d.ts +4 -0
  98. package/dist/components/ui-segmented/ui-segmented.d.ts +48 -0
  99. package/dist/components/ui-seletor-mapa-base/index.d.ts +2 -0
  100. package/dist/components/ui-seletor-mapa-base/tipos.d.ts +22 -0
  101. package/dist/components/ui-seletor-mapa-base/ui-seletor-mapa-base.d.ts +43 -0
  102. package/dist/components/ui-skeleton/index.d.ts +1 -0
  103. package/dist/components/ui-skeleton/ui-skeleton.d.ts +19 -0
  104. package/dist/components/ui-stat/index.d.ts +1 -0
  105. package/dist/components/ui-stat/ui-stat.d.ts +30 -0
  106. package/dist/components/ui-switch/index.d.ts +1 -0
  107. package/dist/components/ui-switch/ui-switch.d.ts +36 -0
  108. package/dist/components/ui-tabela/index.d.ts +7 -0
  109. package/dist/components/ui-tabela/tabela-atributos-sync.d.ts +14 -0
  110. package/dist/components/ui-tabela/tabela-corpo.d.ts +18 -0
  111. package/dist/components/ui-tabela/tabela-dom.d.ts +15 -0
  112. package/dist/components/ui-tabela/tabela-header.d.ts +18 -0
  113. package/dist/components/ui-tabela/tabela-interacao.d.ts +9 -0
  114. package/dist/components/ui-tabela/tabela-localizador.d.ts +4 -0
  115. package/dist/components/ui-tabela/tabela-ordenacao.d.ts +12 -0
  116. package/dist/components/ui-tabela/tabela-orquestrador-dados.d.ts +18 -0
  117. package/dist/components/ui-tabela/tabela-redimensionamento.d.ts +28 -0
  118. package/dist/components/ui-tabela/tabela-remota.d.ts +15 -0
  119. package/dist/components/ui-tabela/tabela-renderizador.d.ts +29 -0
  120. package/dist/components/ui-tabela/tabela-selecao.d.ts +24 -0
  121. package/dist/components/ui-tabela/tipos.d.ts +27 -0
  122. package/dist/components/ui-tabela/ui-tabela.d.ts +83 -0
  123. package/dist/components/ui-tabela-propriedades/avaliador-expressao.d.ts +6 -0
  124. package/dist/components/ui-tabela-propriedades/editores-basicos.d.ts +7 -0
  125. package/dist/components/ui-tabela-propriedades/editores-cad.d.ts +17 -0
  126. package/dist/components/ui-tabela-propriedades/index.d.ts +6 -0
  127. package/dist/components/ui-tabela-propriedades/propriedades-densidade.d.ts +5 -0
  128. package/dist/components/ui-tabela-propriedades/propriedades-dom-utils.d.ts +6 -0
  129. package/dist/components/ui-tabela-propriedades/propriedades-editores.d.ts +5 -0
  130. package/dist/components/ui-tabela-propriedades/propriedades-flutuante.d.ts +7 -0
  131. package/dist/components/ui-tabela-propriedades/propriedades-gerenciador-valores.d.ts +26 -0
  132. package/dist/components/ui-tabela-propriedades/propriedades-painel-controles.d.ts +15 -0
  133. package/dist/components/ui-tabela-propriedades/propriedades-render-arvore.d.ts +24 -0
  134. package/dist/components/ui-tabela-propriedades/propriedades-seletor-tipo.d.ts +13 -0
  135. package/dist/components/ui-tabela-propriedades/propriedades-splitter.d.ts +13 -0
  136. package/dist/components/ui-tabela-propriedades/propriedades-template.d.ts +1 -0
  137. package/dist/components/ui-tabela-propriedades/tipos.d.ts +48 -0
  138. package/dist/components/ui-tabela-propriedades/ui-tabela-propriedades.d.ts +66 -0
  139. package/dist/components/ui-texto/index.d.ts +1 -0
  140. package/dist/components/ui-texto/ui-texto.d.ts +15 -0
  141. package/dist/components/ui-tooltip/index.d.ts +1 -0
  142. package/dist/components/ui-tooltip/ui-tooltip.d.ts +25 -0
  143. package/dist/core/acessibilidade.d.ts +21 -0
  144. package/dist/core/form-associated-element.d.ts +33 -0
  145. package/dist/core/form-validacao.d.ts +34 -0
  146. package/dist/core/index.d.ts +7 -0
  147. package/dist/core/leaflet-loader.d.ts +7 -0
  148. package/dist/core/leaflet-style.d.ts +7 -0
  149. package/dist/core/listener-bag.d.ts +21 -0
  150. package/dist/core/ssr-safe.d.ts +20 -0
  151. package/dist/core/ui-bus.d.ts +85 -0
  152. package/dist/core/zero-js-triggers.d.ts +1 -0
  153. package/dist/core.cjs +1 -0
  154. package/dist/core.js +22 -0
  155. package/dist/data.cjs +1 -0
  156. package/dist/data.d.ts +22 -0
  157. package/dist/data.js +63 -0
  158. package/dist/feedback.cjs +1 -0
  159. package/dist/feedback.d.ts +26 -0
  160. package/dist/feedback.js +25 -0
  161. package/dist/form-validacao-BIOXxt-1.js +140 -0
  162. package/dist/form-validacao-ytRYSF3E.cjs +1 -0
  163. package/dist/forms.cjs +1 -0
  164. package/dist/forms.d.ts +22 -0
  165. package/dist/forms.js +25 -0
  166. package/dist/gerencigeo-canvas/canvas_destaque.d.ts +13 -0
  167. package/dist/gerencigeo-canvas/canvas_destaque_marcadores.d.ts +8 -0
  168. package/dist/gerencigeo-canvas/canvas_interacao.d.ts +56 -0
  169. package/dist/gerencigeo-canvas/canvas_selecao_box.d.ts +23 -0
  170. package/dist/gerencigeo-canvas/controller_dados_ops.d.ts +15 -0
  171. package/dist/gerencigeo-canvas/index.d.ts +17 -0
  172. package/dist/gerencigeo-canvas/layer_defaults.d.ts +3 -0
  173. package/dist/gerencigeo-canvas/layer_instance_ops.d.ts +6 -0
  174. package/dist/gerencigeo-canvas/layer_manager.d.ts +37 -0
  175. package/dist/gerencigeo-canvas/layer_pane_ops.d.ts +8 -0
  176. package/dist/gerencigeo-canvas/layer_renderer_factory.d.ts +14 -0
  177. package/dist/gerencigeo-canvas/layer_state_ops.d.ts +6 -0
  178. package/dist/gerencigeo-canvas/mapa_config.d.ts +11 -0
  179. package/dist/gerencigeo-canvas/mapa_controller.d.ts +53 -0
  180. package/dist/gerencigeo-canvas/mapa_core.d.ts +30 -0
  181. package/dist/gerencigeo-canvas/mapa_linhas.d.ts +14 -0
  182. package/dist/gerencigeo-canvas/mapa_marcadores.d.ts +18 -0
  183. package/dist/gerencigeo-canvas/mapa_pontos_shapes.d.ts +8 -0
  184. package/dist/gerencigeo-canvas/renderers/grid_renderer.d.ts +9 -0
  185. package/dist/gerencigeo-canvas/renderers/tile_renderer.d.ts +8 -0
  186. package/dist/gerencigeo-canvas/renderers/vector_lines_builder.d.ts +4 -0
  187. package/dist/gerencigeo-canvas/renderers/vector_lines_renderer.d.ts +9 -0
  188. package/dist/gerencigeo-canvas/renderers/vector_points_renderer.d.ts +11 -0
  189. package/dist/gerencigeo-canvas/renderers/vector_polygons_renderer.d.ts +9 -0
  190. package/dist/gerencigeo-canvas/renderers/wms_renderer.d.ts +8 -0
  191. package/dist/gerencigeo-canvas/sigef_consultor.d.ts +9 -0
  192. package/dist/gerencigeo-canvas/tile_preloader.d.ts +2 -0
  193. package/dist/gerencigeo-canvas/types.d.ts +169 -0
  194. package/dist/gerencigeo-canvas/utils.d.ts +46 -0
  195. package/dist/index.cjs +1 -0
  196. package/dist/index.d.ts +116 -0
  197. package/dist/index.js +186 -0
  198. package/dist/leaflet-Cw6tqYFh.cjs +1 -0
  199. package/dist/leaflet-DkaFZYc5.js +69 -0
  200. package/dist/leaflet-loader-94z5VsdY.cjs +2 -0
  201. package/dist/leaflet-loader-Cjcdgj5R.js +21 -0
  202. package/dist/listener-bag-D5omxZ9h.cjs +1 -0
  203. package/dist/listener-bag-DQgv7OON.js +34 -0
  204. package/dist/mapa.cjs +19 -0
  205. package/dist/mapa.d.ts +11 -0
  206. package/dist/mapa.js +264 -0
  207. package/dist/modal.cjs +1 -0
  208. package/dist/modal.d.ts +8 -0
  209. package/dist/modal.js +8 -0
  210. package/dist/register.cjs +1 -0
  211. package/dist/register.d.ts +7 -0
  212. package/dist/register.js +21 -0
  213. package/dist/seletor-mapa-base.cjs +53 -0
  214. package/dist/seletor-mapa-base.d.ts +8 -0
  215. package/dist/seletor-mapa-base.js +275 -0
  216. package/dist/ssr-safe-5cWfJP-s.js +10 -0
  217. package/dist/ssr-safe-CiHD1adl.cjs +1 -0
  218. package/dist/tabela.cjs +1 -0
  219. package/dist/tabela.d.ts +12 -0
  220. package/dist/tabela.js +56 -0
  221. package/dist/tools.cjs +1 -0
  222. package/dist/tools.d.ts +8 -0
  223. package/dist/tools.js +30 -0
  224. package/dist/ui-badge-92yelKls.js +183 -0
  225. package/dist/ui-badge-B95jSECC.cjs +28 -0
  226. package/dist/ui-botao-BShEouvi.js +124 -0
  227. package/dist/ui-botao-DF1yuUUD.cjs +12 -0
  228. package/dist/ui-campo-texto-BCh5HyCM.cjs +16 -0
  229. package/dist/ui-campo-texto-B_JF6POq.js +361 -0
  230. package/dist/ui-card-BJ8SmvVf.js +111 -0
  231. package/dist/ui-card-Bhm6k91e.cjs +20 -0
  232. package/dist/ui-kit.css +1 -0
  233. package/dist/ui-modal-Bi4isGYh.cjs +18 -0
  234. package/dist/ui-modal-DV-pw2x1.js +194 -0
  235. package/dist/ui-paleta-ferramentas-B6dJ0O6K.cjs +18 -0
  236. package/dist/ui-paleta-ferramentas-Bpp4XBVg.js +633 -0
  237. package/dist/ui-segmented-C8wuycjJ.js +411 -0
  238. package/dist/ui-segmented-NC5cBXLh.cjs +19 -0
  239. package/dist/ui-skeleton-B3xQyn0Z.js +396 -0
  240. package/dist/ui-skeleton-D42oQufF.cjs +33 -0
  241. package/dist/ui-switch-C6o4yZUF.cjs +53 -0
  242. package/dist/ui-switch-CO9MoS8x.js +826 -0
  243. package/dist/ui-tabela-propriedades-7yJ9g7ti.cjs +145 -0
  244. package/dist/ui-tabela-propriedades-D-XKNVwK.js +2078 -0
  245. package/dist/ui-toast-CQBqvUm3.cjs +20 -0
  246. package/dist/ui-toast-CwUmiqyG.js +156 -0
  247. package/dist/zero-js-triggers-DdESy0tk.js +205 -0
  248. package/dist/zero-js-triggers-QGD7FOTv.cjs +1 -0
  249. package/package.json +149 -0
@@ -0,0 +1,33 @@
1
+ import { SafeHTMLElement } from './ssr-safe';
2
+ /**
3
+ * Base para Form-Associated Custom Elements (W3C FACE).
4
+ * Concentra o que é idêntico em todos os campos de formulário da biblioteca:
5
+ * ElementInternals, estado desabilitado pelo <form>, erro customizado,
6
+ * atributo obrigatório e a API de validação nativa (validity, checkValidity, etc.).
7
+ *
8
+ * Cada componente fornece apenas o que é específico: a regra de validação
9
+ * (`atualizarValidade`), a sincronização visual (`syncState`) e o valor do formulário.
10
+ */
11
+ export declare abstract class FormAssociatedElement extends SafeHTMLElement {
12
+ static formAssociated: boolean;
13
+ protected internals: ReturnType<HTMLElement['attachInternals']>;
14
+ protected _formDisabled: boolean;
15
+ protected _customErrorMessage: string;
16
+ constructor();
17
+ /** Sincroniza o DOM interno com atributos e estado atuais. */
18
+ protected abstract syncState(): void;
19
+ /** Aplica as regras de validação do componente em `internals.setValidity`. */
20
+ abstract atualizarValidade(): void;
21
+ formDisabledCallback(disabled: boolean): void;
22
+ get form(): HTMLFormElement | null;
23
+ get required(): boolean;
24
+ set required(val: boolean);
25
+ get obrigatorio(): boolean;
26
+ set obrigatorio(val: boolean);
27
+ get validity(): ValidityState | undefined;
28
+ get validationMessage(): string;
29
+ get willValidate(): boolean;
30
+ checkValidity(): boolean;
31
+ reportValidity(): boolean;
32
+ setCustomValidity(error: string): void;
33
+ }
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Utilitários para Form-Associated Custom Elements e validação nativa de restrições (HTML5 / W3C FACE).
3
+ */
4
+ export interface RegrasValidacaoCampoTexto {
5
+ val: string;
6
+ rawVal?: string;
7
+ badInput?: boolean;
8
+ disabled: boolean;
9
+ required: boolean;
10
+ tipo?: string;
11
+ minlength?: number | null;
12
+ maxlength?: number | null;
13
+ pattern?: string | null;
14
+ min?: number | null;
15
+ max?: number | null;
16
+ step?: string | null;
17
+ customError?: string;
18
+ mensagemValidacao?: string | null;
19
+ }
20
+ export interface ResultadoValidacao {
21
+ valido: boolean;
22
+ flags: ValidityStateFlags;
23
+ mensagem: string;
24
+ }
25
+ /**
26
+ * Valida o valor e restrições de um campo de texto conforme a especificação W3C / HTML5.
27
+ */
28
+ export declare function validarRestricoesCampoTexto(regras: RegrasValidacaoCampoTexto): ResultadoValidacao;
29
+ /**
30
+ * Aplica o resultado da validação na instância de ElementInternals
31
+ */
32
+ export declare function aplicarValidadeInternals(internals: {
33
+ setValidity?: (flags?: any, message?: string, anchor?: HTMLElement) => void;
34
+ } | any, resultado: ResultadoValidacao, anchor?: HTMLElement): void;
@@ -0,0 +1,7 @@
1
+ export * from './ui-bus';
2
+ export * from './zero-js-triggers';
3
+ export * from './listener-bag';
4
+ export * from './leaflet-loader';
5
+ export * from './ssr-safe';
6
+ export * from './form-validacao';
7
+ export * from './acessibilidade';
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Utilitário centralizado para carregamento dinâmico e desacoplado do Leaflet.
3
+ * Permite que a biblioteca funcione sem travar caso o Leaflet não esteja presente,
4
+ * carregando sob demanda via dynamic import() ou acessando window.L no navegador.
5
+ */
6
+ export declare function carregarLeaflet(): Promise<any>;
7
+ export declare function obterLeafletSincrono(): any | null;
@@ -0,0 +1,7 @@
1
+ import { default as leafletCss } from 'leaflet/dist/leaflet.css?inline';
2
+ export { leafletCss };
3
+ /**
4
+ * Retorna uma instância única compartilhada de CSSStyleSheet para o Leaflet (Constructable Stylesheets).
5
+ * Permite que múltiplos Web Components compartilhem a mesma folha de estilo em memória sem duplicação.
6
+ */
7
+ export declare function getLeafletStyleSheet(): CSSStyleSheet | null;
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Gerenciador utilitário de Event Listeners compartilhado para Web Components.
3
+ * Rastreia todas as assinaturas de eventos e garante remoção atômica no disconnectedCallback,
4
+ * prevenindo vazamentos de memória e duplicação de handlers.
5
+ */
6
+ export declare class ListenerBag {
7
+ private entries;
8
+ /**
9
+ * Adiciona um ouvinte de evento e rastreia sua referência para limpeza futura.
10
+ * Suporta handlers tipados (MouseEvent, KeyboardEvent, CustomEvent, etc.).
11
+ */
12
+ add<E extends Event = Event>(target: EventTarget | null | undefined, type: string, listener: ((evt: E) => void) | EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
13
+ /**
14
+ * Remove todos os ouvintes de eventos atualmente registrados e esvazia a coleção.
15
+ */
16
+ cleanup(): void;
17
+ /**
18
+ * Retorna a quantidade de ouvintes ativos rastreados.
19
+ */
20
+ get size(): number;
21
+ }
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Utilitários para compatibilidade universal com Server-Side Rendering (SSR).
3
+ * Permite que módulos e classes de Web Components sejam importados em ambientes Node.js
4
+ * (Next.js App/Pages Router, Nuxt, Remix, Astro, SvelteKit) sem lançar ReferenceError
5
+ * quando HTMLElement, customElements, window ou document não estiverem disponíveis.
6
+ */
7
+ export declare const isBrowser: boolean;
8
+ /**
9
+ * Base segura para Custom Elements no ambiente Node.js / SSR.
10
+ * No navegador, retorna o HTMLElement nativo da janela.
11
+ * No Node.js (SSR), provê uma classe vazia de fallback para que a instrução
12
+ * `class MinhaClasse extends SafeHTMLElement` seja avaliada sem erro durante imports no servidor.
13
+ */
14
+ export declare const SafeHTMLElement: typeof HTMLElement;
15
+ /**
16
+ * Registra um Custom Element de forma segura.
17
+ * No navegador, executa customElements.define caso a tag ainda não esteja registrada.
18
+ * No servidor (Node.js/SSR), a operação é ignorada silenciosamente sem ReferenceError.
19
+ */
20
+ export declare function definirCustomElement(tag: string, construtor: CustomElementConstructor): void;
@@ -0,0 +1,85 @@
1
+ import { UIToastOpcoes } from '../components/ui-alerta';
2
+ export interface UIBusEventsMap {
3
+ 'modal:aberto': {
4
+ id: string;
5
+ };
6
+ 'modal:fechado': {
7
+ id: string;
8
+ };
9
+ 'modal:fechado-todos': void;
10
+ 'drawer:aberto': {
11
+ id: string;
12
+ };
13
+ 'drawer:fechado': {
14
+ id: string;
15
+ };
16
+ 'drawer:fechado-todos': void;
17
+ 'clipboard:copiado': {
18
+ texto: string;
19
+ };
20
+ 'densidade:alterada': {
21
+ densidade: 'compacta' | 'normal' | 'padrao' | 'relaxada' | number;
22
+ alturaPx: number;
23
+ };
24
+ 'tema:alterado': {
25
+ tema: 'claro' | 'escuro';
26
+ };
27
+ }
28
+ export type UIEmitterCallback<T = any> = (dados?: T) => void;
29
+ declare class UIBusManager {
30
+ private listeners;
31
+ /**
32
+ * Registra um ouvinte para um canal ou evento global tipado.
33
+ */
34
+ on<K extends keyof UIBusEventsMap>(evento: K, callback: UIEmitterCallback<UIBusEventsMap[K]>): () => void;
35
+ on<T = any>(evento: string, callback: UIEmitterCallback<T>): () => void;
36
+ /**
37
+ * Registra um ouvinte que será executado apenas uma única vez.
38
+ */
39
+ once<K extends keyof UIBusEventsMap>(evento: K, callback: UIEmitterCallback<UIBusEventsMap[K]>): void;
40
+ once<T = any>(evento: string, callback: UIEmitterCallback<T>): void;
41
+ /**
42
+ * Remove um ouvinte previamente registrado.
43
+ */
44
+ off<K extends keyof UIBusEventsMap>(evento: K, callback: UIEmitterCallback<UIBusEventsMap[K]>): void;
45
+ off<T = any>(evento: string, callback: UIEmitterCallback<T>): void;
46
+ /**
47
+ * Emite um evento com dados para todos os ouvintes inscritos.
48
+ */
49
+ emit<K extends keyof UIBusEventsMap>(evento: K, dados?: UIBusEventsMap[K]): void;
50
+ emit<T = any>(evento: string, dados?: T): void;
51
+ /**
52
+ * Abre um modal pelo seu ID no documento.
53
+ */
54
+ abrirModal(idModal: string): boolean;
55
+ /**
56
+ * Fecha um modal pelo seu ID ou todos os modais abertos se nenhum ID for passado.
57
+ */
58
+ fecharModal(idModal?: string): boolean;
59
+ /**
60
+ * Abre um painel lateral (drawer / sheet) pelo seu ID no documento.
61
+ */
62
+ abrirDrawer(idDrawer: string): boolean;
63
+ /**
64
+ * Fecha um painel lateral (drawer / sheet) pelo seu ID ou todos se nenhum for passado.
65
+ */
66
+ fecharDrawer(idDrawer?: string): boolean;
67
+ /**
68
+ * Dispara uma notificação toast flutuante inteligente.
69
+ */
70
+ notificar(opcoes: UIToastOpcoes | string): void;
71
+ /**
72
+ * Copia um texto para a área de transferência do usuário e exibe feedback opcional.
73
+ */
74
+ copiar(texto: string, mensagemFeedback?: string): Promise<boolean>;
75
+ /**
76
+ * Altera a densidade visual global do kit (compacta, normal ou relaxada).
77
+ */
78
+ definirDensidade(densidade: 'compacta' | 'normal' | 'padrao' | 'relaxada' | number): void;
79
+ /**
80
+ * Alterna ou define o tema visual global.
81
+ */
82
+ definirTema(tema?: 'claro' | 'escuro'): string;
83
+ }
84
+ export declare const UIBus: UIBusManager;
85
+ export {};
@@ -0,0 +1 @@
1
+ export declare function initZeroJSTriggers(): void;
package/dist/core.cjs ADDED
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./zero-js-triggers-QGD7FOTv.cjs"),i=require("./listener-bag-D5omxZ9h.cjs"),t=require("./leaflet-loader-94z5VsdY.cjs"),o=require("./ssr-safe-CiHD1adl.cjs"),e=require("./form-validacao-ytRYSF3E.cjs");typeof document<"u"&&r.initZeroJSTriggers();exports.UIBus=r.UIBus;exports.initZeroJSTriggers=r.initZeroJSTriggers;exports.ListenerBag=i.ListenerBag;exports.carregarLeaflet=t.carregarLeaflet;exports.obterLeafletSincrono=t.obterLeafletSincrono;exports.SafeHTMLElement=o.SafeHTMLElement;exports.definirCustomElement=o.definirCustomElement;exports.isBrowser=o.isBrowser;exports.aplicarValidadeInternals=e.aplicarValidadeInternals;exports.cliqueVeioDeRotuloExterno=e.cliqueVeioDeRotuloExterno;exports.gerarIdUnico=e.gerarIdUnico;exports.obterRotuloExterno=e.obterRotuloExterno;exports.validarRestricoesCampoTexto=e.validarRestricoesCampoTexto;
package/dist/core.js ADDED
@@ -0,0 +1,22 @@
1
+ import { i as e } from "./zero-js-triggers-DdESy0tk.js";
2
+ import { U as t } from "./zero-js-triggers-DdESy0tk.js";
3
+ import { L as i } from "./listener-bag-DQgv7OON.js";
4
+ import { c as f, o as m } from "./leaflet-loader-Cjcdgj5R.js";
5
+ import { S as p, d as c, i as d } from "./ssr-safe-5cWfJP-s.js";
6
+ import { a as u, c as g, g as L, o as E, v as S } from "./form-validacao-BIOXxt-1.js";
7
+ typeof document < "u" && e();
8
+ export {
9
+ i as ListenerBag,
10
+ p as SafeHTMLElement,
11
+ t as UIBus,
12
+ u as aplicarValidadeInternals,
13
+ f as carregarLeaflet,
14
+ g as cliqueVeioDeRotuloExterno,
15
+ c as definirCustomElement,
16
+ L as gerarIdUnico,
17
+ e as initZeroJSTriggers,
18
+ d as isBrowser,
19
+ m as obterLeafletSincrono,
20
+ E as obterRotuloExterno,
21
+ S as validarRestricoesCampoTexto
22
+ };
package/dist/data.cjs ADDED
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});;/* empty css */const r=require("./ui-tabela-propriedades-7yJ9g7ti.cjs"),a=require("./ui-badge-B95jSECC.cjs");exports.GerenciadorValoresPropriedades=r.GerenciadorValoresPropriedades;exports.TabelaOrquestradorDados=r.TabelaOrquestradorDados;exports.TabelaRemotaController=r.TabelaRemotaController;exports.TabelaSelecaoController=r.TabelaSelecaoController;exports.UITabela=r.UITabela;exports.UITabelaPropriedades=r.UITabelaPropriedades;exports.abrirPopoverRedimensionamento=r.abrirPopoverRedimensionamento;exports.alternarCategoria=r.alternarCategoria;exports.alternarDirecaoOrdenacao=r.alternarDirecaoOrdenacao;exports.alternarPosicionamentoFlutuante=r.alternarPosicionamentoFlutuante;exports.aplicarOrdenacaoTabela=r.aplicarOrdenacaoTabela;exports.atualizarCampoVisual=r.atualizarCampoVisual;exports.avaliarExpressaoMatematica=r.avaliarExpressaoMatematica;exports.colapsarTodasCategorias=r.colapsarTodasCategorias;exports.conectarArrastoFlutuante=r.conectarArrastoFlutuante;exports.conectarPainelControles=r.conectarPainelControles;exports.criarControladorSplitter=r.criarControladorSplitter;exports.criarEditorAcao=r.criarEditorAcao;exports.criarEditorBooleano=r.criarEditorBooleano;exports.criarEditorCorCad=r.criarEditorCorCad;exports.criarEditorCorSwatch=r.criarEditorCorSwatch;exports.criarEditorLinetype=r.criarEditorLinetype;exports.criarEditorLineweight=r.criarEditorLineweight;exports.criarEditorNumero=r.criarEditorNumero;exports.criarEditorReadonly=r.criarEditorReadonly;exports.criarEditorSelecao=r.criarEditorSelecao;exports.criarEditorTexto=r.criarEditorTexto;exports.criarEditorValor=r.criarEditorValor;exports.criarLinhaPropriedade=r.criarLinhaPropriedade;exports.executarOrquestracaoCorpo=r.executarOrquestracaoCorpo;exports.executarOrquestracaoHeader=r.executarOrquestracaoHeader;exports.executarRedimensionamentoColuna=r.executarRedimensionamentoColuna;exports.exibirPromptPopoverRedimensionamento=r.exibirPromptPopoverRedimensionamento;exports.expandirTodasCategorias=r.expandirTodasCategorias;exports.focarProximoEditor=r.focarProximoEditor;exports.formatWidth=r.formatWidth;exports.getAlignmentClass=r.getAlignmentClass;exports.getRowHeight=r.getRowHeight;exports.getTextAlign=r.getTextAlign;exports.inicializarScrollVirtualizacao=r.inicializarScrollVirtualizacao;exports.iniciarRedimensionamentoColuna=r.iniciarRedimensionamentoColuna;exports.localizarIndiceItem=r.localizarIndiceItem;exports.montarEstruturaDOM=r.montarEstruturaDOM;exports.orquestrarEstruturaInicial=r.orquestrarEstruturaInicial;exports.proximaDensidade=r.proximaDensidade;exports.renderizarCategoriasETree=r.renderizarCategoriasETree;exports.renderizarCorpoTabela=r.renderizarCorpoTabela;exports.renderizarHeaderTabela=r.renderizarHeaderTabela;exports.renderizarSeletorTipos=r.renderizarSeletorTipos;exports.sincronizarAtributosTabela=r.sincronizarAtributosTabela;exports.sincronizarPainelControles=r.sincronizarPainelControles;exports.tratarMudancaAtributoTabela=r.tratarMudancaAtributoTabela;exports.UIBadge=a.UIBadge;exports.UIChip=a.UIChip;exports.UIKpi=a.UIKpi;exports.UIMetrica=a.UIMetrica;exports.UIStat=a.UIStat;exports.UITag=a.UITag;
package/dist/data.d.ts ADDED
@@ -0,0 +1,22 @@
1
+ import { UITabela } from './components/ui-tabela';
2
+ import { UITabelaPropriedades } from './components/ui-tabela-propriedades';
3
+ import { UIStat, UIKpi, UIMetrica } from './components/ui-stat';
4
+ import { UIBadge, UIChip, UITag } from './components/ui-badge';
5
+ export * from './components/ui-tabela';
6
+ export * from './components/ui-tabela-propriedades';
7
+ export * from './components/ui-stat';
8
+ export * from './components/ui-badge';
9
+ declare global {
10
+ interface HTMLElementTagNameMap {
11
+ 'ui-tabela': UITabela;
12
+ 'ui-tabela-propriedades': UITabelaPropriedades;
13
+ 'ui-painel-propriedades': UITabelaPropriedades;
14
+ 'ui-propriedades': UITabelaPropriedades;
15
+ 'ui-stat': UIStat;
16
+ 'ui-kpi': UIKpi;
17
+ 'ui-metrica': UIMetrica;
18
+ 'ui-badge': UIBadge;
19
+ 'ui-chip': UIChip;
20
+ 'ui-tag': UITag;
21
+ }
22
+ }
package/dist/data.js ADDED
@@ -0,0 +1,63 @@
1
+ /* empty css */
2
+ import { G as o, T as i, a as s, b as t, U as n, c as l, d as c, e as d, f as u, g as m, h as p, i as C, j as T, k as E, l as b, m as g, n as x, o as I, p as z, q as P, r as U, s as R, t as S, u as h, v as A, w as O, x as f, y as q, z as D, A as M, B as V, C as v, D as w, E as H, F as L, H as y, I as B, J as F, K as G, L as K, M as N, N as W, O as j, P as k, Q as J, R as Q, S as X, V as Y, W as Z, X as _, Y as $, Z as aa } from "./ui-tabela-propriedades-D-XKNVwK.js";
3
+ import { U as ea, a as oa, b as ia, c as sa, d as ta, e as na } from "./ui-badge-92yelKls.js";
4
+ export {
5
+ o as GerenciadorValoresPropriedades,
6
+ i as TabelaOrquestradorDados,
7
+ s as TabelaRemotaController,
8
+ t as TabelaSelecaoController,
9
+ ea as UIBadge,
10
+ oa as UIChip,
11
+ ia as UIKpi,
12
+ sa as UIMetrica,
13
+ ta as UIStat,
14
+ n as UITabela,
15
+ l as UITabelaPropriedades,
16
+ na as UITag,
17
+ c as abrirPopoverRedimensionamento,
18
+ d as alternarCategoria,
19
+ u as alternarDirecaoOrdenacao,
20
+ m as alternarPosicionamentoFlutuante,
21
+ p as aplicarOrdenacaoTabela,
22
+ C as atualizarCampoVisual,
23
+ T as avaliarExpressaoMatematica,
24
+ E as colapsarTodasCategorias,
25
+ b as conectarArrastoFlutuante,
26
+ g as conectarPainelControles,
27
+ x as criarControladorSplitter,
28
+ I as criarEditorAcao,
29
+ z as criarEditorBooleano,
30
+ P as criarEditorCorCad,
31
+ U as criarEditorCorSwatch,
32
+ R as criarEditorLinetype,
33
+ S as criarEditorLineweight,
34
+ h as criarEditorNumero,
35
+ A as criarEditorReadonly,
36
+ O as criarEditorSelecao,
37
+ f as criarEditorTexto,
38
+ q as criarEditorValor,
39
+ D as criarLinhaPropriedade,
40
+ M as executarOrquestracaoCorpo,
41
+ V as executarOrquestracaoHeader,
42
+ v as executarRedimensionamentoColuna,
43
+ w as exibirPromptPopoverRedimensionamento,
44
+ H as expandirTodasCategorias,
45
+ L as focarProximoEditor,
46
+ y as formatWidth,
47
+ B as getAlignmentClass,
48
+ F as getRowHeight,
49
+ G as getTextAlign,
50
+ K as inicializarScrollVirtualizacao,
51
+ N as iniciarRedimensionamentoColuna,
52
+ W as localizarIndiceItem,
53
+ j as montarEstruturaDOM,
54
+ k as orquestrarEstruturaInicial,
55
+ J as proximaDensidade,
56
+ Q as renderizarCategoriasETree,
57
+ X as renderizarCorpoTabela,
58
+ Y as renderizarHeaderTabela,
59
+ Z as renderizarSeletorTipos,
60
+ _ as sincronizarAtributosTabela,
61
+ $ as sincronizarPainelControles,
62
+ aa as tratarMudancaAtributoTabela
63
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});;/* empty css */const o=require("./ui-modal-Bi4isGYh.cjs"),e=require("./ui-skeleton-D42oQufF.cjs"),r=require("./ui-toast-CQBqvUm3.cjs");exports.UIDialog=o.UIDialog;exports.UIModal=o.UIModal;exports.aplicarInertForaDoModal=o.aplicarInertForaDoModal;exports.removerInertForaDoModal=o.removerInertForaDoModal;exports.UIDrawer=e.UIDrawer;exports.UIEsqueleto=e.UIEsqueleto;exports.UIGaveta=e.UIGaveta;exports.UIPainelLateral=e.UIPainelLateral;exports.UIPopover=e.UIPopover;exports.UISheet=e.UISheet;exports.UISkeleton=e.UISkeleton;exports.UITooltip=e.UITooltip;exports.atualizarScrollLockDrawer=e.atualizarScrollLockDrawer;exports.gerenciarTabTrap=e.gerenciarTabTrap;exports.isTopMostDrawer=e.isTopMostDrawer;exports.obterElementosFocaveis=e.obterElementosFocaveis;exports.ICONES_ALERTA=r.ICONES_ALERTA;exports.UIAlerta=r.UIAlerta;exports.UIToast=r.UIToast;
@@ -0,0 +1,26 @@
1
+ import { UIModal, UIDialog } from './components/ui-modal';
2
+ import { UIDrawer, UISheet, UIPainelLateral, UIGaveta } from './components/ui-drawer';
3
+ import { UIAlerta, UIToast } from './components/ui-alerta';
4
+ import { UITooltip, UIPopover } from './components/ui-tooltip';
5
+ import { UISkeleton, UIEsqueleto } from './components/ui-skeleton';
6
+ export * from './components/ui-modal';
7
+ export * from './components/ui-drawer';
8
+ export * from './components/ui-alerta';
9
+ export * from './components/ui-tooltip';
10
+ export * from './components/ui-skeleton';
11
+ declare global {
12
+ interface HTMLElementTagNameMap {
13
+ 'ui-modal': UIModal;
14
+ 'ui-dialog': UIDialog;
15
+ 'ui-drawer': UIDrawer;
16
+ 'ui-sheet': UISheet;
17
+ 'ui-painel-lateral': UIPainelLateral;
18
+ 'ui-gaveta': UIGaveta;
19
+ 'ui-alerta': UIAlerta;
20
+ 'ui-toast': UIToast;
21
+ 'ui-tooltip': UITooltip;
22
+ 'ui-popover': UIPopover;
23
+ 'ui-skeleton': UISkeleton;
24
+ 'ui-esqueleto': UIEsqueleto;
25
+ }
26
+ }
@@ -0,0 +1,25 @@
1
+ /* empty css */
2
+ import { U as e, a as s, b as t, r as I } from "./ui-modal-DV-pw2x1.js";
3
+ import { U, a as i, b as p, c, d as m, e as n, f as D, g as T, h as b, i as d, j as f, o as v } from "./ui-skeleton-B3xQyn0Z.js";
4
+ import { I as M, U as S, a as g } from "./ui-toast-CwUmiqyG.js";
5
+ export {
6
+ M as ICONES_ALERTA,
7
+ S as UIAlerta,
8
+ e as UIDialog,
9
+ U as UIDrawer,
10
+ i as UIEsqueleto,
11
+ p as UIGaveta,
12
+ s as UIModal,
13
+ c as UIPainelLateral,
14
+ m as UIPopover,
15
+ n as UISheet,
16
+ D as UISkeleton,
17
+ g as UIToast,
18
+ T as UITooltip,
19
+ t as aplicarInertForaDoModal,
20
+ b as atualizarScrollLockDrawer,
21
+ d as gerenciarTabTrap,
22
+ f as isTopMostDrawer,
23
+ v as obterElementosFocaveis,
24
+ I as removerInertForaDoModal
25
+ };
@@ -0,0 +1,140 @@
1
+ let f = 0;
2
+ function c(e = "ui") {
3
+ return f += 1, `${e}-${f.toString(36)}-${Math.random().toString(36).slice(2, 7)}`;
4
+ }
5
+ function d(e, t) {
6
+ if (e === t) return "";
7
+ if (e.nodeType === 3) return e.textContent ?? "";
8
+ let n = "";
9
+ return e.childNodes.forEach((l) => {
10
+ n += d(l, t);
11
+ }), n;
12
+ }
13
+ function v(e, t) {
14
+ var m, a, o;
15
+ const n = (m = e.getAttribute("aria-label")) == null ? void 0 : m.trim();
16
+ if (n) return n;
17
+ const l = /* @__PURE__ */ new Set();
18
+ try {
19
+ (a = t == null ? void 0 : t.labels) == null || a.forEach((i) => l.add(i));
20
+ } catch {
21
+ }
22
+ if (e.id) {
23
+ const i = e.getRootNode();
24
+ (o = i.querySelectorAll) == null || o.call(i, "label[for]").forEach((r) => {
25
+ r.htmlFor === e.id && l.add(r);
26
+ });
27
+ }
28
+ const u = e.closest("label");
29
+ return u && l.add(u), Array.from(l).map((i) => d(i, e).replace(/\s+/g, " ").trim()).filter(Boolean).join(" ");
30
+ }
31
+ function g(e, t) {
32
+ return t.composedPath()[0] === e;
33
+ }
34
+ function p(e) {
35
+ if (e.disabled)
36
+ return { valido: !0, flags: {}, mensagem: "" };
37
+ if (e.customError && e.customError.trim() !== "")
38
+ return {
39
+ valido: !1,
40
+ flags: { customError: !0 },
41
+ mensagem: e.customError
42
+ };
43
+ const { val: t, rawVal: n, badInput: l, required: u, tipo: m = "text", mensagemValidacao: a } = e;
44
+ if (l || m === "number" && n && isNaN(Number(n)))
45
+ return {
46
+ valido: !1,
47
+ flags: { badInput: !0 },
48
+ mensagem: a || "Insira um número válido."
49
+ };
50
+ if (u && t.trim() === "")
51
+ return {
52
+ valido: !1,
53
+ flags: { valueMissing: !0 },
54
+ mensagem: a || "Preencha este campo."
55
+ };
56
+ if (t === "")
57
+ return { valido: !0, flags: {}, mensagem: "" };
58
+ if (e.minlength !== null && e.minlength !== void 0 && !isNaN(e.minlength) && t.length < e.minlength)
59
+ return {
60
+ valido: !1,
61
+ flags: { tooShort: !0 },
62
+ mensagem: a || `Use pelo menos ${e.minlength} caracteres (atualmente você está usando ${t.length}).`
63
+ };
64
+ if (e.maxlength !== null && e.maxlength !== void 0 && !isNaN(e.maxlength) && t.length > e.maxlength)
65
+ return {
66
+ valido: !1,
67
+ flags: { tooLong: !0 },
68
+ mensagem: a || `Reduza o texto para no máximo ${e.maxlength} caracteres (atualmente você está usando ${t.length}).`
69
+ };
70
+ if (e.pattern)
71
+ try {
72
+ if (!new RegExp(`^(?:${e.pattern})$`).test(t))
73
+ return {
74
+ valido: !1,
75
+ flags: { patternMismatch: !0 },
76
+ mensagem: a || "O valor não corresponde ao padrão solicitado."
77
+ };
78
+ } catch {
79
+ }
80
+ if (m === "email" && !/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+$/.test(t))
81
+ return {
82
+ valido: !1,
83
+ flags: { typeMismatch: !0 },
84
+ mensagem: a || "Insira um endereço de e-mail válido."
85
+ };
86
+ if (m === "url")
87
+ try {
88
+ new URL(t);
89
+ } catch {
90
+ return {
91
+ valido: !1,
92
+ flags: { typeMismatch: !0 },
93
+ mensagem: a || "Insira uma URL válida."
94
+ };
95
+ }
96
+ if (m === "number") {
97
+ const o = Number(t);
98
+ if (isNaN(o))
99
+ return {
100
+ valido: !1,
101
+ flags: { badInput: !0 },
102
+ mensagem: a || "Insira um número válido."
103
+ };
104
+ if (e.min !== null && e.min !== void 0 && !isNaN(e.min) && o < e.min)
105
+ return {
106
+ valido: !1,
107
+ flags: { rangeUnderflow: !0 },
108
+ mensagem: a || `O valor deve ser maior ou igual a ${e.min}.`
109
+ };
110
+ if (e.max !== null && e.max !== void 0 && !isNaN(e.max) && o > e.max)
111
+ return {
112
+ valido: !1,
113
+ flags: { rangeOverflow: !0 },
114
+ mensagem: a || `O valor deve ser menor ou igual a ${e.max}.`
115
+ };
116
+ if (e.step && e.step !== "any") {
117
+ const i = parseFloat(e.step);
118
+ if (!isNaN(i) && i > 0) {
119
+ const r = e.min !== null && e.min !== void 0 && !isNaN(e.min) ? e.min : 0, s = Math.abs((o - r) % i);
120
+ if (s > 1e-6 && Math.abs(s - i) > 1e-6)
121
+ return {
122
+ valido: !1,
123
+ flags: { stepMismatch: !0 },
124
+ mensagem: a || "Insira um valor válido de acordo com o intervalo."
125
+ };
126
+ }
127
+ }
128
+ }
129
+ return { valido: !0, flags: {}, mensagem: "" };
130
+ }
131
+ function h(e, t, n) {
132
+ !e || typeof e.setValidity != "function" || (t.valido ? e.setValidity({}) : e.setValidity(t.flags, t.mensagem || "Valor inválido.", n));
133
+ }
134
+ export {
135
+ h as a,
136
+ g as c,
137
+ c as g,
138
+ v as o,
139
+ p as v
140
+ };
@@ -0,0 +1 @@
1
+ "use strict";let f=0;function c(e="ui"){return f+=1,`${e}-${f.toString(36)}-${Math.random().toString(36).slice(2,7)}`}function d(e,t){if(e===t)return"";if(e.nodeType===3)return e.textContent??"";let o="";return e.childNodes.forEach(l=>{o+=d(l,t)}),o}function v(e,t){var m,a,n;const o=(m=e.getAttribute("aria-label"))==null?void 0:m.trim();if(o)return o;const l=new Set;try{(a=t==null?void 0:t.labels)==null||a.forEach(i=>l.add(i))}catch{}if(e.id){const i=e.getRootNode();(n=i.querySelectorAll)==null||n.call(i,"label[for]").forEach(u=>{u.htmlFor===e.id&&l.add(u)})}const r=e.closest("label");return r&&l.add(r),Array.from(l).map(i=>d(i,e).replace(/\s+/g," ").trim()).filter(Boolean).join(" ")}function g(e,t){return t.composedPath()[0]===e}function p(e){if(e.disabled)return{valido:!0,flags:{},mensagem:""};if(e.customError&&e.customError.trim()!=="")return{valido:!1,flags:{customError:!0},mensagem:e.customError};const{val:t,rawVal:o,badInput:l,required:r,tipo:m="text",mensagemValidacao:a}=e;if(l||m==="number"&&o&&isNaN(Number(o)))return{valido:!1,flags:{badInput:!0},mensagem:a||"Insira um número válido."};if(r&&t.trim()==="")return{valido:!1,flags:{valueMissing:!0},mensagem:a||"Preencha este campo."};if(t==="")return{valido:!0,flags:{},mensagem:""};if(e.minlength!==null&&e.minlength!==void 0&&!isNaN(e.minlength)&&t.length<e.minlength)return{valido:!1,flags:{tooShort:!0},mensagem:a||`Use pelo menos ${e.minlength} caracteres (atualmente você está usando ${t.length}).`};if(e.maxlength!==null&&e.maxlength!==void 0&&!isNaN(e.maxlength)&&t.length>e.maxlength)return{valido:!1,flags:{tooLong:!0},mensagem:a||`Reduza o texto para no máximo ${e.maxlength} caracteres (atualmente você está usando ${t.length}).`};if(e.pattern)try{if(!new RegExp(`^(?:${e.pattern})$`).test(t))return{valido:!1,flags:{patternMismatch:!0},mensagem:a||"O valor não corresponde ao padrão solicitado."}}catch{}if(m==="email"&&!/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+$/.test(t))return{valido:!1,flags:{typeMismatch:!0},mensagem:a||"Insira um endereço de e-mail válido."};if(m==="url")try{new URL(t)}catch{return{valido:!1,flags:{typeMismatch:!0},mensagem:a||"Insira uma URL válida."}}if(m==="number"){const n=Number(t);if(isNaN(n))return{valido:!1,flags:{badInput:!0},mensagem:a||"Insira um número válido."};if(e.min!==null&&e.min!==void 0&&!isNaN(e.min)&&n<e.min)return{valido:!1,flags:{rangeUnderflow:!0},mensagem:a||`O valor deve ser maior ou igual a ${e.min}.`};if(e.max!==null&&e.max!==void 0&&!isNaN(e.max)&&n>e.max)return{valido:!1,flags:{rangeOverflow:!0},mensagem:a||`O valor deve ser menor ou igual a ${e.max}.`};if(e.step&&e.step!=="any"){const i=parseFloat(e.step);if(!isNaN(i)&&i>0){const u=e.min!==null&&e.min!==void 0&&!isNaN(e.min)?e.min:0,s=Math.abs((n-u)%i);if(s>1e-6&&Math.abs(s-i)>1e-6)return{valido:!1,flags:{stepMismatch:!0},mensagem:a||"Insira um valor válido de acordo com o intervalo."}}}}return{valido:!0,flags:{},mensagem:""}}function h(e,t,o){!e||typeof e.setValidity!="function"||(t.valido?e.setValidity({}):e.setValidity(t.flags,t.mensagem||"Valor inválido.",o))}exports.aplicarValidadeInternals=h;exports.cliqueVeioDeRotuloExterno=g;exports.gerarIdUnico=c;exports.obterRotuloExterno=v;exports.validarRestricoesCampoTexto=p;
package/dist/forms.cjs ADDED
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});;/* empty css */const a=require("./ui-campo-texto-BCh5HyCM.cjs"),e=require("./ui-switch-C6o4yZUF.cjs");exports.ATRIBUTOS_OBSERVADOS_CAMPO_TEXTO=a.ATRIBUTOS_OBSERVADOS_CAMPO_TEXTO;exports.UICampoTexto=a.UICampoTexto;exports.UIInput=a.UIInput;exports.criarTemplateCampoTexto=a.criarTemplateCampoTexto;exports.sincronizarFeedbackErro=a.sincronizarFeedbackErro;exports.sincronizarIconeSenha=a.sincronizarIconeSenha;exports.sincronizarLabelEPlaceholder=a.sincronizarLabelEPlaceholder;exports.ATRIBUTOS_OBSERVADOS_LISTA_FLUTUANTE=e.ATRIBUTOS_OBSERVADOS_LISTA_FLUTUANTE;exports.ListaFlutuantePosicionamento=e.ListaFlutuantePosicionamento;exports.ListaFlutuanteTeclado=e.ListaFlutuanteTeclado;exports.RadioGrupoRegistry=e.RadioGrupoRegistry;exports.UICheckbox=e.UICheckbox;exports.UIListaFlutuante=e.UIListaFlutuante;exports.UIRadio=e.UIRadio;exports.UISelect=e.UISelect;exports.UISwitch=e.UISwitch;exports.UIToggle=e.UIToggle;exports.atualizarEstadoSelecaoLista=e.atualizarEstadoSelecaoLista;exports.criarTemplateListaFlutuante=e.criarTemplateListaFlutuante;exports.renderizarItensLista=e.renderizarItensLista;
@@ -0,0 +1,22 @@
1
+ import { UICampoTexto, UIInput } from './components/ui-campo-texto';
2
+ import { UIListaFlutuante, UISelect } from './components/ui-lista-flutuante';
3
+ import { UICheckbox } from './components/ui-checkbox';
4
+ import { UIRadio } from './components/ui-radio';
5
+ import { UISwitch, UIToggle } from './components/ui-switch';
6
+ export * from './components/ui-campo-texto';
7
+ export * from './components/ui-lista-flutuante';
8
+ export * from './components/ui-checkbox';
9
+ export * from './components/ui-radio';
10
+ export * from './components/ui-switch';
11
+ declare global {
12
+ interface HTMLElementTagNameMap {
13
+ 'ui-campo-texto': UICampoTexto;
14
+ 'ui-input': UIInput;
15
+ 'ui-lista-flutuante': UIListaFlutuante;
16
+ 'ui-select': UISelect;
17
+ 'ui-checkbox': UICheckbox;
18
+ 'ui-radio': UIRadio;
19
+ 'ui-switch': UISwitch;
20
+ 'ui-toggle': UIToggle;
21
+ }
22
+ }
package/dist/forms.js ADDED
@@ -0,0 +1,25 @@
1
+ /* empty css */
2
+ import { A as t, U as o, a as r, c as i, s as n, b as c, d as T } from "./ui-campo-texto-B_JF6POq.js";
3
+ import { A as I, L as U, a as u, R as S, U as L, b as d, c as p, d as A, e as m, f as O, g as R, h as E, r as F } from "./ui-switch-CO9MoS8x.js";
4
+ export {
5
+ t as ATRIBUTOS_OBSERVADOS_CAMPO_TEXTO,
6
+ I as ATRIBUTOS_OBSERVADOS_LISTA_FLUTUANTE,
7
+ U as ListaFlutuantePosicionamento,
8
+ u as ListaFlutuanteTeclado,
9
+ S as RadioGrupoRegistry,
10
+ o as UICampoTexto,
11
+ L as UICheckbox,
12
+ r as UIInput,
13
+ d as UIListaFlutuante,
14
+ p as UIRadio,
15
+ A as UISelect,
16
+ m as UISwitch,
17
+ O as UIToggle,
18
+ R as atualizarEstadoSelecaoLista,
19
+ i as criarTemplateCampoTexto,
20
+ E as criarTemplateListaFlutuante,
21
+ F as renderizarItensLista,
22
+ n as sincronizarFeedbackErro,
23
+ c as sincronizarIconeSenha,
24
+ T as sincronizarLabelEPlaceholder
25
+ };
@@ -0,0 +1,13 @@
1
+ import { default as L } from 'leaflet';
2
+ import { DestacarElementoOpcoes } from './types';
3
+ export interface DestaqueState {
4
+ destaqueMarker: L.Marker | null;
5
+ destaqueTimeoutId: number | null;
6
+ }
7
+ /**
8
+ * Localiza a coordenada geográfica central de qualquer elemento geométrico do canvas pelo identificador (ID).
9
+ * Agnóstico a entidades pontuais, lineares e poligonais.
10
+ */
11
+ export declare function localizarCoordenadasElemento(controller: any, id: string | number): L.LatLng | null;
12
+ export declare function executarDestaqueElemento(controller: any, state: DestaqueState, id: string | number, opcoes?: DestacarElementoOpcoes): void;
13
+ export declare function limparDestaqueElemento(state: DestaqueState, map: L.Map | null): void;
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Converte IDs numéricos em string (ex.: "12") para number; mantém demais valores.
3
+ */
4
+ export declare function normalizarIdPonto(pId: string | number): string | number;
5
+ /**
6
+ * Sincroniza o destaque dos marcadores com os pontos selecionados (próprios e de vizinhos).
7
+ */
8
+ export declare function atualizarDestaqueMarcadores(controller: any): void;