@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
package/dist/mapa.js ADDED
@@ -0,0 +1,264 @@
1
+ var v = Object.defineProperty;
2
+ var T = (s, n, t) => n in s ? v(s, n, { enumerable: !0, configurable: !0, writable: !0, value: t }) : s[n] = t;
3
+ var a = (s, n, t) => T(s, typeof n != "symbol" ? n + "" : n, t);
4
+ /* empty css */
5
+ import { c as _, o as h } from "./leaflet-loader-Cjcdgj5R.js";
6
+ import { l as x, p as y } from "./leaflet-DkaFZYc5.js";
7
+ import { d as u, S as d } from "./ssr-safe-5cWfJP-s.js";
8
+ const M = ":host{display:block;width:100%;height:400px;position:relative;border-radius:var(--border-radius-md, 8px);overflow:hidden;box-shadow:var(--shadow-sm, 0 1px 3px rgba(0,0,0,.1))}.ui-mapa-container{width:100%;height:100%;z-index:1}.leaflet-top,.leaflet-bottom{z-index:1000}.ui-mapa-popup{font-family:inherit;font-size:13px;font-weight:500;color:#111827;padding:2px 4px}.ui-mapa-svg-pin,.ui-mapa-div-marker{background:transparent!important;border:none!important;cursor:pointer;transition:transform .15s ease,filter .15s ease}.ui-mapa-svg-pin:hover,.ui-mapa-div-marker:hover{transform:scale(1.15);filter:brightness(1.2)}";
9
+ function w(s) {
10
+ return {
11
+ osm: {
12
+ nome: "OpenStreetMap",
13
+ layer: () => s.tileLayer("https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png", {
14
+ attribution: '&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'
15
+ })
16
+ },
17
+ satelite: {
18
+ nome: "Satélite (Esri)",
19
+ layer: () => s.tileLayer("https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}", {
20
+ attribution: "Tiles &copy; Esri &mdash; Source: Esri, i-cubed, USDA, USGS, AEX, GeoEye, Getmapping, Aerogrid, IGN, IGP, UPR-EGP, and the GIS User Community"
21
+ })
22
+ },
23
+ topografia: {
24
+ nome: "Topografia",
25
+ layer: () => s.tileLayer("https://{s}.tile.opentopomap.org/{z}/{x}/{y}.png", {
26
+ attribution: 'Map data: &copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors, <a href="http://viewfinderpanoramas.org">SRTM</a> | Map style: &copy; <a href="https://opentopomap.org">OpenTopoMap</a> (<a href="https://creativecommons.org/licenses/by-sa/3.0/">CC-BY-SA</a>)'
27
+ })
28
+ },
29
+ ruas: {
30
+ nome: "Ruas (Esri)",
31
+ layer: () => s.tileLayer("https://server.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer/tile/{z}/{y}/{x}", {
32
+ attribution: "Tiles &copy; Esri &mdash; Source: Esri, DeLorme, NAVTEQ, USGS, Intermap, iPC, NRCAN, Esri Japan, METI, Esri China (Hong Kong), Esri (Thailand), TomTom, 2012"
33
+ })
34
+ }
35
+ };
36
+ }
37
+ class C extends d {
38
+ constructor() {
39
+ super();
40
+ a(this, "mapContainer");
41
+ a(this, "mapInstance", null);
42
+ a(this, "_initTimer", null);
43
+ a(this, "_resizeObserver");
44
+ a(this, "_resizeTimer");
45
+ const t = this.attachShadow({ mode: "open" });
46
+ t.innerHTML = `
47
+ <style>
48
+ ${x}
49
+ ${M}
50
+ </style>
51
+ <div class="ui-mapa-container" id="map-container"></div>
52
+ <div style="display: none;"><slot></slot></div>
53
+ `, this.mapContainer = t.getElementById("map-container");
54
+ }
55
+ static get observedAttributes() {
56
+ return ["lat", "lng", "zoom"];
57
+ }
58
+ connectedCallback() {
59
+ this._initTimer = window.setTimeout(() => {
60
+ this.initMap();
61
+ }, 0);
62
+ }
63
+ disconnectedCallback() {
64
+ this._initTimer && (window.clearTimeout(this._initTimer), this._initTimer = null), this._resizeObserver && (this._resizeObserver.disconnect(), this._resizeObserver = void 0), this._resizeTimer && (window.clearTimeout(this._resizeTimer), this._resizeTimer = null), this.mapInstance && (this.mapInstance.remove(), this.mapInstance = null);
65
+ }
66
+ attributeChangedCallback(t, e, r) {
67
+ if (e !== r && this.mapInstance) {
68
+ const i = parseFloat(this.getAttribute("lat") || "-23.550520"), o = parseFloat(this.getAttribute("lng") || "-46.633308"), c = parseInt(this.getAttribute("zoom") || "13", 10);
69
+ !isNaN(i) && !isNaN(o) && this.mapInstance.setView([i, o], c);
70
+ }
71
+ }
72
+ async initMap() {
73
+ var g;
74
+ if (this.mapInstance) return;
75
+ const t = await _();
76
+ if (!t) {
77
+ this.mapContainer.innerHTML = `
78
+ <div style="display: flex; flex-direction: column; align-items: center; justify-content: center; height: 100%; min-height: 140px; padding: 16px; box-sizing: border-box; text-align: center; color: var(--ui-cor-texto-secundario, #888899); font-family: var(--ui-fonte-base, 'Inter', sans-serif); font-size: 12px; background: var(--ui-cor-superficie, #141417); border-radius: var(--ui-raio-borda, 6px); border: 1px dashed var(--ui-cor-borda, rgba(255,255,255,0.15));">
79
+ <span style="font-size: 20px; margin-bottom: 6px;">🗺️</span>
80
+ <strong style="color: var(--ui-cor-texto, #e1e1e6); margin-bottom: 4px;">Leaflet não encontrado</strong>
81
+ <span style="max-width: 320px; line-height: 1.4;">Para utilizar o componente <code>&lt;ui-mapa&gt;</code>, instale a biblioteca <code>leaflet</code> ou inclua seu script no HTML: <code>&lt;script src=".../leaflet.js"&gt;&lt;/script&gt;</code>.</span>
82
+ </div>
83
+ `;
84
+ return;
85
+ }
86
+ const e = w(t), r = parseFloat(this.getAttribute("lat") || "-23.550520"), i = parseFloat(this.getAttribute("lng") || "-46.633308"), o = parseInt(this.getAttribute("zoom") || "13", 10);
87
+ this.mapInstance = t.map(this.mapContainer).setView([r, i], o);
88
+ const c = this.getAttribute("camadas");
89
+ let p = ["osm"];
90
+ c && (p = c.split(",").map((l) => l.trim().toLowerCase()).filter((l) => e[l]), p.length === 0 && (p = ["osm"]));
91
+ const f = e[p[0]].layer();
92
+ if (f.addTo(this.mapInstance), p.length > 1) {
93
+ const l = {};
94
+ l[e[p[0]].nome] = f;
95
+ for (let m = 1; m < p.length; m++) {
96
+ const b = p[m];
97
+ l[e[b].nome] = e[b].layer();
98
+ }
99
+ t.control.layers(l, void 0, { position: "topright" }).addTo(this.mapInstance);
100
+ }
101
+ (g = t.Icon) != null && g.Default && (t.Icon.Default.imagePath = "https://unpkg.com/leaflet@1.9.4/dist/images/"), typeof ResizeObserver < "u" && this.mapContainer && (this._resizeObserver = new ResizeObserver(() => {
102
+ this._resizeTimer && clearTimeout(this._resizeTimer), this._resizeTimer = setTimeout(() => {
103
+ this.mapInstance && this.mapInstance.invalidateSize();
104
+ }, 60);
105
+ }), this._resizeObserver.observe(this.mapContainer)), setTimeout(() => {
106
+ this.mapInstance && this.mapInstance.invalidateSize();
107
+ }, 100), this.dispatchEvent(new CustomEvent("ui-mapa-pronto", {
108
+ detail: { map: this.mapInstance },
109
+ bubbles: !0,
110
+ composed: !0
111
+ }));
112
+ }
113
+ getMap() {
114
+ return this.mapInstance;
115
+ }
116
+ }
117
+ u("ui-mapa", C);
118
+ class I extends d {
119
+ constructor() {
120
+ super(...arguments);
121
+ a(this, "marker", null);
122
+ a(this, "_initTimer", null);
123
+ a(this, "_retryCount", 0);
124
+ a(this, "_parentMap", null);
125
+ a(this, "handleMapReady", () => {
126
+ this.marker && (this.marker.remove(), this.marker = null), this.initMarker();
127
+ });
128
+ }
129
+ static get observedAttributes() {
130
+ return ["lat", "lng", "titulo", "cor", "formato"];
131
+ }
132
+ connectedCallback() {
133
+ this._parentMap = this.closest("ui-mapa"), this._parentMap && this._parentMap.addEventListener("ui-mapa-pronto", this.handleMapReady), this._initTimer = setTimeout(() => this.initMarker(), 0);
134
+ }
135
+ disconnectedCallback() {
136
+ this._initTimer && (clearTimeout(this._initTimer), this._initTimer = null), this._parentMap && (this._parentMap.removeEventListener("ui-mapa-pronto", this.handleMapReady), this._parentMap = null), this.marker && (this.marker.remove(), this.marker = null);
137
+ }
138
+ attributeChangedCallback(t, e, r) {
139
+ if (e !== r && this.marker) {
140
+ if (t === "lat" || t === "lng") {
141
+ const i = y(this.getAttribute("lat"), this.getAttribute("lng"));
142
+ i && this.marker.setLatLng([i.lat, i.lon]);
143
+ }
144
+ if (t === "titulo" && (this.marker.unbindPopup(), r && this.marker.bindPopup(this.createPopupContent(r))), t === "cor" || t === "formato") {
145
+ const i = h() || window.L;
146
+ i && this.marker.setIcon(this.createIcon(i));
147
+ }
148
+ }
149
+ }
150
+ createPopupContent(t) {
151
+ const e = document.createElement("div");
152
+ return e.className = "ui-mapa-popup", e.textContent = t, e;
153
+ }
154
+ createIcon(t) {
155
+ const e = this.getAttribute("cor") || "#00f5a0";
156
+ if ((this.getAttribute("formato") || "pin") === "circle") {
157
+ const o = `<div style="width:14px; height:14px; background-color:${e}; border-radius:50%; border:2px solid #ffffff; box-shadow:0 1px 4px rgba(0,0,0,0.6);"></div>`;
158
+ return t.divIcon({
159
+ className: "ui-mapa-div-marker",
160
+ html: o,
161
+ iconSize: [14, 14],
162
+ iconAnchor: [7, 7]
163
+ });
164
+ }
165
+ const i = `
166
+ <svg width="24" height="32" viewBox="0 0 24 32" fill="none" xmlns="http://www.w3.org/2000/svg" style="filter: drop-shadow(0 2px 4px rgba(0,0,0,0.45));">
167
+ <path d="M12 0C5.372 0 0 5.372 0 12C0 21 12 32 12 32C12 32 24 21 24 12C24 5.372 18.628 0 12 0Z" fill="${e}"/>
168
+ <circle cx="12" cy="11" r="4.5" fill="#ffffff"/>
169
+ </svg>
170
+ `;
171
+ return t.divIcon({
172
+ className: "ui-mapa-svg-pin",
173
+ html: i,
174
+ iconSize: [24, 32],
175
+ iconAnchor: [12, 32],
176
+ popupAnchor: [0, -30]
177
+ });
178
+ }
179
+ initMarker() {
180
+ const t = this._parentMap || this.closest("ui-mapa");
181
+ if (!t) {
182
+ console.warn("<ui-mapa-marcador> deve estar dentro de um elemento <ui-mapa>");
183
+ return;
184
+ }
185
+ const e = t.getMap();
186
+ if (!e) {
187
+ if (this._retryCount >= 30) {
188
+ console.warn("<ui-mapa-marcador> Tempo limite esgotado aguardando inicialização do mapa pai.");
189
+ return;
190
+ }
191
+ this._retryCount++, this._initTimer = setTimeout(() => this.initMarker(), 50);
192
+ return;
193
+ }
194
+ this._retryCount = 0;
195
+ const r = y(this.getAttribute("lat"), this.getAttribute("lng"));
196
+ if (!r) return;
197
+ const i = this.getAttribute("titulo"), o = h() || window.L;
198
+ o && (this.marker = o.marker([r.lat, r.lon], {
199
+ icon: this.createIcon(o)
200
+ }), this.marker && (i && this.marker.bindPopup(this.createPopupContent(i)), this.marker.addTo(e)));
201
+ }
202
+ }
203
+ u("ui-mapa-marcador", I);
204
+ class A extends d {
205
+ constructor() {
206
+ super(...arguments);
207
+ a(this, "polyline", null);
208
+ a(this, "_initTimer", null);
209
+ a(this, "_retryCount", 0);
210
+ }
211
+ static get observedAttributes() {
212
+ return ["pontos", "cor", "espessura"];
213
+ }
214
+ connectedCallback() {
215
+ this._initTimer = setTimeout(() => this.initLinha(), 0);
216
+ }
217
+ disconnectedCallback() {
218
+ this._initTimer && (clearTimeout(this._initTimer), this._initTimer = null), this.polyline && (this.polyline.remove(), this.polyline = null);
219
+ }
220
+ attributeChangedCallback(t, e, r) {
221
+ e !== r && this.polyline && (t === "pontos" ? this.polyline.setLatLngs(this.getPontos()) : (t === "cor" || t === "espessura") && this.polyline.setStyle({
222
+ color: this.getAttribute("cor") || "#3388ff",
223
+ weight: parseInt(this.getAttribute("espessura") || "3", 10)
224
+ }));
225
+ }
226
+ getPontos() {
227
+ try {
228
+ const t = this.getAttribute("pontos");
229
+ if (t)
230
+ return JSON.parse(t);
231
+ } catch (t) {
232
+ console.error('Formato inválido para atributo pontos no <ui-mapa-linha>. Deve ser um JSON array, ex: "[[lat, lng], ...]"', t);
233
+ }
234
+ return [];
235
+ }
236
+ initLinha() {
237
+ const t = this.closest("ui-mapa");
238
+ if (!t) {
239
+ console.warn("<ui-mapa-linha> deve estar dentro de um elemento <ui-mapa>");
240
+ return;
241
+ }
242
+ const e = t.getMap();
243
+ if (!e) {
244
+ if (this._retryCount >= 30) {
245
+ console.warn("<ui-mapa-linha> Tempo limite esgotado aguardando inicialização do mapa pai.");
246
+ return;
247
+ }
248
+ this._retryCount++, this._initTimer = setTimeout(() => this.initLinha(), 50);
249
+ return;
250
+ }
251
+ this._retryCount = 0;
252
+ const r = this.getAttribute("cor") || "#3388ff", i = parseInt(this.getAttribute("espessura") || "3", 10), o = h() || window.L;
253
+ o && (this.polyline = o.polyline(this.getPontos(), {
254
+ color: r,
255
+ weight: i
256
+ }), this.polyline && this.polyline.addTo(e));
257
+ }
258
+ }
259
+ u("ui-mapa-linha", A);
260
+ export {
261
+ C as UIMapa,
262
+ A as UIMapaLinha,
263
+ I as UIMapaMarcador
264
+ };
package/dist/modal.cjs ADDED
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});;/* empty css */const o=require("./ui-modal-Bi4isGYh.cjs");exports.UIDialog=o.UIDialog;exports.UIModal=o.UIModal;exports.aplicarInertForaDoModal=o.aplicarInertForaDoModal;exports.removerInertForaDoModal=o.removerInertForaDoModal;
@@ -0,0 +1,8 @@
1
+ import { UIModal, UIDialog } from './components/ui-modal';
2
+ export * from './components/ui-modal';
3
+ declare global {
4
+ interface HTMLElementTagNameMap {
5
+ 'ui-modal': UIModal;
6
+ 'ui-dialog': UIDialog;
7
+ }
8
+ }
package/dist/modal.js ADDED
@@ -0,0 +1,8 @@
1
+ /* empty css */
2
+ import { U as e, a as l, b as s, r as t } from "./ui-modal-DV-pw2x1.js";
3
+ export {
4
+ e as UIDialog,
5
+ l as UIModal,
6
+ s as aplicarInertForaDoModal,
7
+ t as removerInertForaDoModal
8
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./ssr-safe-CiHD1adl.cjs"),e=require("./zero-js-triggers-QGD7FOTv.cjs");require("./ui-botao-DF1yuUUD.cjs");require("./ui-switch-C6o4yZUF.cjs");require("./ui-segmented-NC5cBXLh.cjs");require("./ui-campo-texto-BCh5HyCM.cjs");require("./ui-paleta-ferramentas-B6dJ0O6K.cjs");require("./ui-badge-B95jSECC.cjs");require("./ui-card-Bhm6k91e.cjs");require("./ui-modal-Bi4isGYh.cjs");require("./ui-skeleton-D42oQufF.cjs");require("./ui-toast-CQBqvUm3.cjs");require("./ui-tabela-propriedades-7yJ9g7ti.cjs");function i(){r.isBrowser&&e.initZeroJSTriggers()}r.isBrowser&&e.initZeroJSTriggers();exports.isBrowser=r.isBrowser;exports.registrarTodosComponentes=i;
@@ -0,0 +1,7 @@
1
+ import { isBrowser } from './core/ssr-safe';
2
+ export { isBrowser };
3
+ /**
4
+ * Registra manualmente todos os componentes do kit caso ainda não estejam registrados.
5
+ * Seguro para chamar múltiplas vezes ou no ciclo de montagem de frameworks client-side (Next.js 'use client', Vue onMounted, etc.).
6
+ */
7
+ export declare function registrarTodosComponentes(): void;
@@ -0,0 +1,21 @@
1
+ import { i as r } from "./ssr-safe-5cWfJP-s.js";
2
+ import { i } from "./zero-js-triggers-DdESy0tk.js";
3
+ import "./ui-botao-BShEouvi.js";
4
+ import "./ui-switch-CO9MoS8x.js";
5
+ import "./ui-segmented-C8wuycjJ.js";
6
+ import "./ui-campo-texto-B_JF6POq.js";
7
+ import "./ui-paleta-ferramentas-Bpp4XBVg.js";
8
+ import "./ui-badge-92yelKls.js";
9
+ import "./ui-card-BJ8SmvVf.js";
10
+ import "./ui-modal-DV-pw2x1.js";
11
+ import "./ui-skeleton-B3xQyn0Z.js";
12
+ import "./ui-toast-CwUmiqyG.js";
13
+ import "./ui-tabela-propriedades-D-XKNVwK.js";
14
+ function d() {
15
+ r && i();
16
+ }
17
+ r && i();
18
+ export {
19
+ r as isBrowser,
20
+ d as registrarTodosComponentes
21
+ };
@@ -0,0 +1,53 @@
1
+ "use strict";var d=Object.defineProperty;var h=(o,p,e)=>p in o?d(o,p,{enumerable:!0,configurable:!0,writable:!0,value:e}):o[p]=e;var r=(o,p,e)=>h(o,typeof p!="symbol"?p+"":p,e);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});;/* empty css */const n=require("./ssr-safe-CiHD1adl.cjs"),f=require("./listener-bag-D5omxZ9h.cjs"),g=':host{display:inline-block;font-family:var(--ui-fonte-principal, "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif);color:var(--ui-cor-texto, #f1f1f5);box-sizing:border-box;-webkit-user-select:none;user-select:none}:host *,:host *:before,:host *:after{box-sizing:border-box}:host([posicao="bottom-right"]){position:absolute;bottom:16px;right:16px;z-index:var(--ui-z-workspace-hud, 500)}:host([posicao="bottom-left"]){position:absolute;bottom:16px;left:16px;z-index:var(--ui-z-workspace-hud, 500)}:host([posicao="top-right"]){position:absolute;top:16px;right:16px;z-index:var(--ui-z-workspace-hud, 500)}:host([posicao="top-left"]){position:absolute;top:16px;left:16px;z-index:var(--ui-z-workspace-hud, 500)}:host([posicao="inline"]){position:relative;display:inline-flex}.ui-basemap-wrapper{position:relative;display:inline-flex;align-items:center}.ui-basemap-trigger{display:inline-flex;align-items:center;gap:8px;height:34px;padding:0 12px 0 6px;background:var(--ui-cor-fundo-elevado, rgba(18, 18, 24, .88));backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .12));border-radius:9999px;color:var(--ui-cor-texto, #f1f1f5);cursor:pointer;outline:none;font-size:11.5px;font-weight:500;letter-spacing:.2px;box-shadow:0 4px 14px #00000059,0 1px 3px #0003;transition:all .18s cubic-bezier(.16,1,.3,1)}.ui-basemap-trigger:hover{background:var(--ui-cor-fundo-hover, rgba(28, 28, 36, .95));border-color:var(--ui-cor-primaria, #00E08A);transform:translateY(-1px);box-shadow:0 6px 20px #00000073,0 0 12px #00e08a33}.ui-basemap-trigger:focus-visible{border-color:var(--ui-cor-primaria, #00E08A);box-shadow:0 0 0 2px #00e08a59}.ui-basemap-trigger.active{border-color:var(--ui-cor-primaria, #00E08A);background:var(--ui-cor-fundo-ativo, rgba(22, 26, 32, .95));box-shadow:0 4px 16px #0006,0 0 10px #00e08a40}:host([compacto]) .ui-basemap-trigger,.ui-basemap-trigger.compacto{width:36px;height:36px;padding:0;justify-content:center;border-radius:50%}:host([compacto]) .ui-basemap-label,:host([compacto]) .ui-basemap-chevron,.ui-basemap-trigger.compacto .ui-basemap-label,.ui-basemap-trigger.compacto .ui-basemap-chevron{display:none!important}.ui-basemap-thumb-mini{width:22px;height:22px;border-radius:50%;object-fit:cover;flex-shrink:0;border:1.5px solid var(--ui-cor-borda, rgba(255, 255, 255, .2));box-shadow:0 1px 3px #0006}.ui-basemap-thumb-mini.fallback{display:flex;align-items:center;justify-content:center;background:#ffffff14;color:var(--ui-cor-primaria, #00E08A)}.ui-basemap-thumb-mini.fallback svg{width:13px;height:13px}.ui-basemap-label{white-space:nowrap;max-width:130px;overflow:hidden;text-overflow:ellipsis}.ui-basemap-chevron{display:inline-flex;align-items:center;justify-content:center;color:var(--ui-cor-texto-secundario, #888899);transition:transform .2s cubic-bezier(.16,1,.3,1);margin-left:2px}.ui-basemap-chevron svg{width:12px;height:12px}.ui-basemap-trigger.active .ui-basemap-chevron{transform:rotate(180deg);color:var(--ui-cor-primaria, #00E08A)}.ui-basemap-popover{position:absolute;min-width:210px;max-width:250px;background:var(--ui-cor-fundo-elevado, rgba(16, 16, 22, .95));backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .12));border-radius:12px;padding:6px;box-shadow:0 12px 32px #0009,0 2px 8px #0000004d;z-index:var(--ui-z-popover, 1050);display:flex;flex-direction:column;gap:3px;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(8px) scale(.97);transition:opacity .18s cubic-bezier(.16,1,.3,1),transform .18s cubic-bezier(.16,1,.3,1),visibility .18s}.ui-basemap-wrapper.pos-bottom-right .ui-basemap-popover,.ui-basemap-wrapper.pos-bottom-left .ui-basemap-popover,.ui-basemap-wrapper.pos-bottom .ui-basemap-popover{bottom:calc(100% + 8px);transform:translateY(8px) scale(.97)}.ui-basemap-wrapper.pos-bottom-right .ui-basemap-popover{right:0}.ui-basemap-wrapper.pos-bottom-left .ui-basemap-popover{left:0}.ui-basemap-wrapper.pos-top-right .ui-basemap-popover,.ui-basemap-wrapper.pos-top-left .ui-basemap-popover,.ui-basemap-wrapper.pos-top .ui-basemap-popover{top:calc(100% + 8px);transform:translateY(-8px) scale(.97)}.ui-basemap-wrapper.pos-top-right .ui-basemap-popover{right:0}.ui-basemap-wrapper.pos-top-left .ui-basemap-popover{left:0}.ui-basemap-popover.aberto{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0) scale(1)}.ui-basemap-popover-header{display:flex;align-items:center;justify-content:space-between;padding:4px 8px 6px;border-bottom:1px solid rgba(255,255,255,.06);margin-bottom:2px}.ui-basemap-popover-titulo{font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--ui-cor-texto-secundario, #888899)}.ui-basemap-popover-badge{font-size:9px;font-weight:600;padding:1px 5px;border-radius:4px;background:#00e08a1f;color:var(--ui-cor-primaria, #00E08A);font-variant-numeric:tabular-nums}.ui-basemap-list{display:flex;flex-direction:column;gap:2px;max-height:280px;overflow-y:auto;overflow-x:hidden;padding-right:2px}.ui-basemap-list::-webkit-scrollbar{width:4px}.ui-basemap-list::-webkit-scrollbar-track{background:transparent}.ui-basemap-list::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:2px}.ui-basemap-item{display:flex;align-items:center;gap:8px;padding:5px 8px;border-radius:7px;background:transparent;border:1px solid transparent;cursor:pointer;transition:all .12s ease;outline:none}.ui-basemap-item:hover{background:#ffffff0f;border-color:#ffffff14}.ui-basemap-item:focus-visible{border-color:var(--ui-cor-primaria, #00E08A);background:#00e08a0f}.ui-basemap-item.active{background:#00e08a1f;border-color:#00e08a59}.ui-basemap-item-preview{width:32px;height:24px;border-radius:4px;object-fit:cover;flex-shrink:0;border:1px solid rgba(255,255,255,.1);box-shadow:0 1px 3px #0000004d}.ui-basemap-item-preview-none{width:32px;height:24px;border-radius:4px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);color:var(--ui-cor-texto-secundario, #888899)}.ui-basemap-item-preview-none svg{width:14px;height:14px}.ui-basemap-item-info{display:flex;flex-direction:column;min-width:0;flex:1}.ui-basemap-item-nome{font-size:11px;font-weight:500;color:var(--ui-cor-texto, #f1f1f5);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ui-basemap-item.active .ui-basemap-item-nome{color:var(--ui-cor-primaria, #00E08A);font-weight:600}.ui-basemap-item-desc{font-size:9.5px;color:var(--ui-cor-texto-secundario, #77778b);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ui-basemap-item-check{display:flex;align-items:center;justify-content:center;width:14px;height:14px;flex-shrink:0;color:var(--ui-cor-primaria, #00E08A);opacity:0;transform:scale(.6);transition:all .15s cubic-bezier(.16,1,.3,1)}.ui-basemap-item.active .ui-basemap-item-check{opacity:1;transform:scale(1)}.ui-basemap-item-check svg{width:13px;height:13px}:host-context([data-tema="claro"]),:host-context(.light),:host([data-tema="claro"]){--ui-cor-texto: #1a1a1e;--ui-cor-texto-secundario: #666677}:host-context([data-tema="claro"]) .ui-basemap-trigger,:host([data-tema="claro"]) .ui-basemap-trigger{background:#ffffffeb;border-color:#0000001f;color:#1a1a1e;box-shadow:0 4px 14px #0000001a}:host-context([data-tema="claro"]) .ui-basemap-popover,:host([data-tema="claro"]) .ui-basemap-popover{background:#fffffff7;border-color:#0000001f;box-shadow:0 12px 32px #0000002e}:host-context([data-tema="claro"]) .ui-basemap-item:hover,:host([data-tema="claro"]) .ui-basemap-item:hover{background:#0000000a}:host-context([data-tema="claro"]) .ui-basemap-item.active,:host([data-tema="claro"]) .ui-basemap-item.active{background:#00b46e1f;border-color:#00b46e59}',b=[{id:"none",nome:"Sem Mapa",descricao:"Tela CAD neutra com grade quadriculada"},{id:"google_satelite_puro",nome:"Google Puro",descricao:"Satélite limpo sem ruas ou rótulos",thumbnailUrl:"https://images.unsplash.com/photo-1524661135-423995f22d0b?w=160&auto=format&fit=crop&q=80"},{id:"google_satelite",nome:"Google Híbrido",descricao:"Satélite com nomes de ruas e divisas",thumbnailUrl:"https://images.unsplash.com/photo-1524661135-423995f22d0b?w=160&auto=format&fit=crop&q=80"},{id:"satelite",nome:"Esri Satélite",descricao:"Imagens orbitais de alta resolução",thumbnailUrl:"https://images.unsplash.com/photo-1451187580459-43490279c0fa?w=160&auto=format&fit=crop&q=80"},{id:"osm",nome:"OpenStreetMap",descricao:"Mapa viário e urbano colaborativo",thumbnailUrl:"https://images.unsplash.com/photo-1569336415962-a4bd9f69cd83?w=160&auto=format&fit=crop&q=80"},{id:"topografia",nome:"Topografia",descricao:"Curvas de nível e relevo sombreado",thumbnailUrl:"https://images.unsplash.com/photo-1464822759023-fed622ff2c3b?w=160&auto=format&fit=crop&q=80"},{id:"dark",nome:"Dark Canvas",descricao:"Mapa escuro de alto contraste para CAD",thumbnailUrl:"https://images.unsplash.com/photo-1518709268805-4e9042af9f23?w=160&auto=format&fit=crop&q=80"}],x=`
2
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
3
+ <circle cx="12" cy="12" r="10"></circle>
4
+ <line x1="2" y1="12" x2="22" y2="12"></line>
5
+ <path d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"></path>
6
+ </svg>
7
+ `,v=`
8
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">
9
+ <polyline points="6 9 12 15 18 9"></polyline>
10
+ </svg>
11
+ `,w=`
12
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round">
13
+ <polyline points="20 6 9 17 4 12"></polyline>
14
+ </svg>
15
+ `,u=`
16
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
17
+ <rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect>
18
+ <line x1="3" y1="9" x2="21" y2="9"></line>
19
+ <line x1="3" y1="15" x2="21" y2="15"></line>
20
+ <line x1="9" y1="3" x2="9" y2="21"></line>
21
+ <line x1="15" y1="3" x2="15" y2="21"></line>
22
+ </svg>
23
+ `;class c extends n.SafeHTMLElement{constructor(){super();r(this,"shadow");r(this,"listeners",new f.ListenerBag);r(this,"_mapasBase",[...b]);r(this,"wrapperEl");r(this,"triggerBtn");r(this,"popoverEl");r(this,"listEl");r(this,"thumbEl");r(this,"labelEl");this.shadow=this.attachShadow({mode:"open"}),this.shadow.innerHTML=`
24
+ <style>${g}</style>
25
+ <div class="ui-basemap-wrapper" id="basemap-wrapper">
26
+ <button class="ui-basemap-trigger" id="basemap-trigger" type="button" aria-haspopup="listbox" aria-expanded="false" title="Alternar Mapa Base">
27
+ <span class="ui-basemap-thumb-container" id="thumb-container"></span>
28
+ <span class="ui-basemap-label" id="basemap-label">Esri Satélite</span>
29
+ <span class="ui-basemap-chevron">${v}</span>
30
+ </button>
31
+
32
+ <div class="ui-basemap-popover" id="basemap-popover" role="listbox" aria-label="Selecione o Mapa Base">
33
+ <div class="ui-basemap-popover-header">
34
+ <span class="ui-basemap-popover-titulo">Mapa Base</span>
35
+ <span class="ui-basemap-popover-badge" id="popover-count">7 opções</span>
36
+ </div>
37
+ <div class="ui-basemap-list" id="basemap-list"></div>
38
+ </div>
39
+ </div>
40
+ `,this.wrapperEl=this.shadow.getElementById("basemap-wrapper"),this.triggerBtn=this.shadow.getElementById("basemap-trigger"),this.popoverEl=this.shadow.getElementById("basemap-popover"),this.listEl=this.shadow.getElementById("basemap-list"),this.thumbEl=this.shadow.getElementById("thumb-container"),this.labelEl=this.shadow.getElementById("basemap-label")}static get observedAttributes(){return["mapa-base-ativo","valor","posicao","aberto","compacto","desabilitado"]}connectedCallback(){this.atualizarPosicaoClasses(),this.renderizarOpcoes(),this.atualizarGatilho(),this.conectarEventos()}disconnectedCallback(){this.listeners.cleanup()}attributeChangedCallback(e,t,a){if(t!==a)if(e==="mapa-base-ativo"||e==="valor")this.atualizarSelecaoVisual(),this.atualizarGatilho();else if(e==="posicao")this.atualizarPosicaoClasses();else if(e==="aberto"){const i=a!==null&&a!=="false";this.aplicarEstadoAberto(i)}else e==="compacto"&&this.triggerBtn.classList.toggle("compacto",a!==null&&a!=="false")}get mapaBaseAtivo(){return this.getAttribute("mapa-base-ativo")||this.getAttribute("valor")||"satelite"}set mapaBaseAtivo(e){this.setAttribute("mapa-base-ativo",e),this.setAttribute("valor",e)}get valor(){return this.mapaBaseAtivo}set valor(e){this.mapaBaseAtivo=e}get posicao(){return this.getAttribute("posicao")||"inline"}set posicao(e){this.setAttribute("posicao",e)}get aberto(){return this.hasAttribute("aberto")&&this.getAttribute("aberto")!=="false"}set aberto(e){e?this.setAttribute("aberto",""):this.removeAttribute("aberto")}get compacto(){return this.hasAttribute("compacto")&&this.getAttribute("compacto")!=="false"}set compacto(e){e?this.setAttribute("compacto",""):this.removeAttribute("compacto")}get mapasBase(){return this._mapasBase}definirMapasBase(e){Array.isArray(e)&&(this._mapasBase=[...e],this.renderizarOpcoes(),this.atualizarGatilho())}abrir(){this.aberto=!0}fechar(){this.aberto=!1}alternar(){this.aberto=!this.aberto}selecionar(e){if(!e||this.mapaBaseAtivo===e){this.fechar();return}this.mapaBaseAtivo=e;const t=this._mapasBase.find(i=>i.id===e),a={mapaBaseId:e,item:t};this.dispatchEvent(new CustomEvent("ui-mapa-base-alterado",{detail:a,bubbles:!0,composed:!0})),this.dispatchEvent(new CustomEvent("change",{detail:{value:e},bubbles:!0,composed:!0})),this.fechar()}atualizarPosicaoClasses(){const e=this.posicao;this.wrapperEl.className=`ui-basemap-wrapper pos-${e}`}aplicarEstadoAberto(e){this.popoverEl.classList.toggle("aberto",e),this.triggerBtn.classList.toggle("active",e),this.triggerBtn.setAttribute("aria-expanded",String(e))}atualizarGatilho(){const e=this.mapaBaseAtivo,t=this._mapasBase.find(a=>a.id===e)||this._mapasBase[0];t?(this.labelEl.textContent=t.nome,this.triggerBtn.title=`Mapa Base: ${t.nome} (${t.descricao||""})`,t.thumbnailUrl?this.thumbEl.innerHTML=`<img class="ui-basemap-thumb-mini" src="${l(t.thumbnailUrl)}" alt="${l(t.nome)}" />`:this.thumbEl.innerHTML=`<span class="ui-basemap-thumb-mini fallback">${u}</span>`):(this.labelEl.textContent="Mapa Base",this.thumbEl.innerHTML=`<span class="ui-basemap-thumb-mini fallback">${x}</span>`)}renderizarOpcoes(){const e=this.shadow.getElementById("popover-count");e&&(e.textContent=`${this._mapasBase.length} opções`);const t=this.mapaBaseAtivo;this.listEl.innerHTML=this._mapasBase.map(a=>{const i=a.id===t,s=a.thumbnailUrl?`<img class="ui-basemap-item-preview" src="${l(a.thumbnailUrl)}" alt="${l(a.nome)}" loading="lazy" />`:`<div class="ui-basemap-item-preview-none">${u}</div>`;return`
41
+ <div class="ui-basemap-item ${i?"active":""}"
42
+ data-id="${l(a.id)}"
43
+ role="option"
44
+ aria-selected="${i}"
45
+ tabindex="0">
46
+ ${s}
47
+ <div class="ui-basemap-item-info">
48
+ <span class="ui-basemap-item-nome">${l(a.nome)}</span>
49
+ ${a.descricao?`<span class="ui-basemap-item-desc">${l(a.descricao)}</span>`:""}
50
+ </div>
51
+ <span class="ui-basemap-item-check">${w}</span>
52
+ </div>
53
+ `}).join("")}atualizarSelecaoVisual(){const e=this.mapaBaseAtivo;this.listEl.querySelectorAll(".ui-basemap-item").forEach(a=>{const s=a.getAttribute("data-id")===e;a.classList.toggle("active",s),a.setAttribute("aria-selected",String(s))})}conectarEventos(){this.listeners.add(this.triggerBtn,"click",a=>{a.stopPropagation(),this.alternar()}),this.listeners.add(this.listEl,"click",a=>{const i=a.target.closest(".ui-basemap-item");if(!i)return;const s=i.getAttribute("data-id");s&&this.selecionar(s)}),this.listeners.add(this.listEl,"keydown",a=>{if(a.key==="Enter"||a.key===" "){const i=a.target.closest(".ui-basemap-item");if(i){a.preventDefault();const s=i.getAttribute("data-id");s&&this.selecionar(s)}}});const e=a=>{if(!this.aberto)return;a.composedPath().includes(this)||this.fechar()};this.listeners.add(document,"click",e);const t=a=>{a.key==="Escape"&&this.aberto&&(this.fechar(),this.triggerBtn.focus())};this.listeners.add(document,"keydown",t)}}function l(o){return o?String(o).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#039;"):""}class m extends c{}n.definirCustomElement("ui-seletor-mapa-base",c);n.definirCustomElement("ui-mapa-base",m);exports.MAPAS_BASE_PADRAO=b;exports.UIMapaBase=m;exports.UISeletorMapaBase=c;
@@ -0,0 +1,8 @@
1
+ import { UISeletorMapaBase } from './components/ui-seletor-mapa-base';
2
+ export * from './components/ui-seletor-mapa-base';
3
+ declare global {
4
+ interface HTMLElementTagNameMap {
5
+ 'ui-seletor-mapa-base': UISeletorMapaBase;
6
+ 'ui-mapa-base': UISeletorMapaBase;
7
+ }
8
+ }