@thibezer/ui-components-kit 1.0.0 → 2.1.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 (161) hide show
  1. package/CHANGELOG.md +92 -0
  2. package/LICENSE +21 -21
  3. package/README.md +150 -14
  4. package/dist/botao.cjs +1 -1
  5. package/dist/botao.js +1 -1
  6. package/dist/camadas.cjs +65 -65
  7. package/dist/camadas.js +762 -729
  8. package/dist/campo-texto.cjs +1 -1
  9. package/dist/campo-texto.js +1 -1
  10. package/dist/canvas.cjs +105 -146
  11. package/dist/canvas.js +5132 -1199
  12. package/dist/card.cjs +1 -1
  13. package/dist/card.js +1 -1
  14. package/dist/components/ui-botao/ui-botao.d.ts +15 -0
  15. package/dist/components/ui-camadas/camadas-persistencia.d.ts +4 -0
  16. package/dist/components/ui-camadas/ui-camadas.d.ts +10 -0
  17. package/dist/components/ui-campo-texto/ui-campo-texto.d.ts +5 -0
  18. package/dist/components/ui-canvas-cad/cad-estilos-externos.d.ts +16 -0
  19. package/dist/components/ui-canvas-cad/cad-eventos-canvas.d.ts +4 -0
  20. package/dist/components/ui-canvas-cad/cad-feicoes.d.ts +262 -0
  21. package/dist/components/ui-canvas-cad/cad-ferramentas-barra.d.ts +15 -0
  22. package/dist/components/ui-canvas-cad/cad-snap.d.ts +32 -0
  23. package/dist/components/ui-canvas-cad/cad-toolbar-painel.d.ts +1 -0
  24. package/dist/components/ui-canvas-cad/ui-canvas-cad.d.ts +143 -0
  25. package/dist/components/ui-lista-flutuante/lista-flutuante-posicionamento.d.ts +2 -0
  26. package/dist/components/ui-lista-flutuante/ui-lista-flutuante.d.ts +1 -0
  27. package/dist/components/ui-modal/modal-pilha.d.ts +3 -0
  28. package/dist/components/ui-modal/ui-modal.d.ts +19 -4
  29. package/dist/components/ui-seletor-mapa-base/ui-seletor-mapa-base.d.ts +3 -0
  30. package/dist/components/ui-tabela/tabela-atributos-sync.d.ts +3 -0
  31. package/dist/components/ui-tabela/tabela-corpo.d.ts +2 -0
  32. package/dist/components/ui-tabela/tabela-localizador.d.ts +8 -1
  33. package/dist/components/ui-tabela/tabela-orquestrador-dados.d.ts +4 -0
  34. package/dist/components/ui-tabela/tabela-renderizador.d.ts +1 -0
  35. package/dist/components/ui-tabela/tabela-selecao.d.ts +21 -6
  36. package/dist/components/ui-tabela/tipos.d.ts +6 -0
  37. package/dist/components/ui-tabela/ui-tabela.d.ts +56 -2
  38. package/dist/components/ui-tabela-propriedades/avaliador-expressao.d.ts +0 -5
  39. package/dist/components/ui-tabela-propriedades/propriedades-dom-utils.d.ts +17 -1
  40. package/dist/components/ui-tabela-propriedades/propriedades-flutuante.d.ts +2 -0
  41. package/dist/components/ui-tabela-propriedades/propriedades-gerenciador-valores.d.ts +10 -1
  42. package/dist/components/ui-tabela-propriedades/propriedades-render-arvore.d.ts +3 -1
  43. package/dist/components/ui-tabela-propriedades/ui-tabela-propriedades.d.ts +5 -1
  44. package/dist/components/ui-tooltip/ui-tooltip.d.ts +15 -0
  45. package/dist/core/alvo-digitavel.d.ts +1 -0
  46. package/dist/core/form-submissao.d.ts +16 -0
  47. package/dist/core/index.d.ts +1 -0
  48. package/dist/core/parts.d.ts +6 -0
  49. package/dist/core/rotulo.d.ts +6 -0
  50. package/dist/core/svg-seguro.d.ts +10 -0
  51. package/dist/core/ui-bus.d.ts +13 -2
  52. package/dist/core.cjs +1 -1
  53. package/dist/core.js +14 -12
  54. package/dist/custom-elements.json +32905 -0
  55. package/dist/data.cjs +1 -1
  56. package/dist/data.js +51 -46
  57. package/dist/feedback.cjs +1 -1
  58. package/dist/feedback.js +3 -3
  59. package/dist/form-submissao-C-SPRKgT.js +61 -0
  60. package/dist/form-submissao-DxKO5MHI.cjs +1 -0
  61. package/dist/forms.cjs +1 -1
  62. package/dist/forms.js +2 -2
  63. package/dist/gerencigeo-canvas/canvas_interacao.d.ts +18 -0
  64. package/dist/gerencigeo-canvas/feature_adapters.d.ts +35 -0
  65. package/dist/gerencigeo-canvas/feature_algoritmos.d.ts +45 -0
  66. package/dist/gerencigeo-canvas/feature_amostra.d.ts +4 -0
  67. package/dist/gerencigeo-canvas/feature_caixa.d.ts +19 -0
  68. package/dist/gerencigeo-canvas/feature_cluster.d.ts +61 -0
  69. package/dist/gerencigeo-canvas/feature_cursores.d.ts +17 -0
  70. package/dist/gerencigeo-canvas/feature_desenho.d.ts +53 -0
  71. package/dist/gerencigeo-canvas/feature_desenho_controle.d.ts +91 -0
  72. package/dist/gerencigeo-canvas/feature_edicao_ops.d.ts +19 -0
  73. package/dist/gerencigeo-canvas/feature_editor_vertices.d.ts +62 -0
  74. package/dist/gerencigeo-canvas/feature_formas.d.ts +7 -0
  75. package/dist/gerencigeo-canvas/feature_hud.d.ts +23 -0
  76. package/dist/gerencigeo-canvas/feature_indice.d.ts +36 -0
  77. package/dist/gerencigeo-canvas/feature_metricas.d.ts +16 -0
  78. package/dist/gerencigeo-canvas/feature_popup.d.ts +31 -0
  79. package/dist/gerencigeo-canvas/feature_selecao.d.ts +38 -0
  80. package/dist/gerencigeo-canvas/feature_simplificacao.d.ts +14 -0
  81. package/dist/gerencigeo-canvas/feature_snap.d.ts +25 -0
  82. package/dist/gerencigeo-canvas/feature_types.d.ts +86 -0
  83. package/dist/gerencigeo-canvas/feature_versoes.d.ts +19 -0
  84. package/dist/gerencigeo-canvas/index.d.ts +21 -0
  85. package/dist/gerencigeo-canvas/layer_hit_test.d.ts +30 -0
  86. package/dist/gerencigeo-canvas/layer_manager.d.ts +11 -3
  87. package/dist/gerencigeo-canvas/layer_pane_ops.d.ts +9 -0
  88. package/dist/gerencigeo-canvas/mapa_controller.d.ts +1 -0
  89. package/dist/gerencigeo-canvas/mapa_pontos_shapes.d.ts +24 -5
  90. package/dist/gerencigeo-canvas/renderers/feicoes_renderer.d.ts +89 -0
  91. package/dist/gerencigeo-canvas/renderers/vector_points_renderer.d.ts +1 -0
  92. package/dist/gerencigeo-canvas/renderers/vector_polygons_renderer.d.ts +2 -2
  93. package/dist/gerencigeo-canvas/types.d.ts +12 -0
  94. package/dist/gerencigeo-canvas/utils.d.ts +3 -1
  95. package/dist/index.cjs +1 -1
  96. package/dist/index.d.ts +2 -2
  97. package/dist/index.js +117 -112
  98. package/dist/leaflet-DcO7uRC-.cjs +1 -0
  99. package/dist/{leaflet-DkaFZYc5.js → leaflet-PPDKB6Dd.js} +37 -37
  100. package/dist/mapa.cjs +4 -4
  101. package/dist/mapa.js +2 -2
  102. package/dist/modal.cjs +1 -1
  103. package/dist/modal.js +1 -1
  104. package/dist/parts-CaoQiCfI.js +7 -0
  105. package/dist/parts-vQa2873h.cjs +1 -0
  106. package/dist/register.cjs +1 -1
  107. package/dist/register.js +12 -12
  108. package/dist/seletor-mapa-base.cjs +16 -16
  109. package/dist/seletor-mapa-base.js +111 -61
  110. package/dist/svg-seguro-BsbNQqpd.js +50 -0
  111. package/dist/svg-seguro-C76iLlAZ.cjs +1 -0
  112. package/dist/tabela.cjs +1 -1
  113. package/dist/tabela.js +41 -36
  114. package/dist/tipos-elementos.d.ts +1232 -0
  115. package/dist/tipos-react.d.ts +113 -0
  116. package/dist/tipos-vue.d.ts +1201 -0
  117. package/dist/tools.cjs +1 -1
  118. package/dist/tools.js +1 -1
  119. package/dist/ui-badge-BxT-sDmV.cjs +28 -0
  120. package/dist/ui-badge-C0eKBI8E.js +183 -0
  121. package/dist/ui-botao-OGJV6Vfk.js +165 -0
  122. package/dist/ui-botao-psS1juof.cjs +12 -0
  123. package/dist/ui-campo-texto-Cnn2UAkS.cjs +16 -0
  124. package/dist/{ui-campo-texto-B_JF6POq.js → ui-campo-texto-Uu2dJE_0.js} +81 -63
  125. package/dist/{ui-card-Bhm6k91e.cjs → ui-card-B86lJXTP.cjs} +7 -7
  126. package/dist/{ui-card-BJ8SmvVf.js → ui-card-C_o5_0cB.js} +14 -14
  127. package/dist/ui-kit.css +1 -1
  128. package/dist/ui-modal-CvGFGh1h.cjs +18 -0
  129. package/dist/ui-modal-DBOtSTbR.js +238 -0
  130. package/dist/{ui-paleta-ferramentas-Bpp4XBVg.js → ui-paleta-ferramentas-CEZYcN4J.js} +18 -27
  131. package/dist/{ui-paleta-ferramentas-B6dJ0O6K.cjs → ui-paleta-ferramentas-Dbj1kBS9.cjs} +6 -6
  132. package/dist/ui-segmented-D6b6zxVs.cjs +19 -0
  133. package/dist/{ui-segmented-C8wuycjJ.js → ui-segmented-wUraId2e.js} +68 -67
  134. package/dist/ui-skeleton-DI4_9WOX.js +428 -0
  135. package/dist/ui-skeleton-elhKIh2B.cjs +33 -0
  136. package/dist/{ui-switch-CO9MoS8x.js → ui-switch-BcOqOkiV.js} +92 -62
  137. package/dist/ui-switch-D7iPKDj-.cjs +53 -0
  138. package/dist/ui-tabela-propriedades-BBr5sqki.cjs +145 -0
  139. package/dist/ui-tabela-propriedades-Boy7I5yW.js +2412 -0
  140. package/dist/{ui-toast-CwUmiqyG.js → ui-toast-Bp_NlM5G.js} +51 -51
  141. package/dist/ui-toast-DGTZKne5.cjs +20 -0
  142. package/dist/zero-js-triggers-C_KrvFOQ.js +244 -0
  143. package/dist/zero-js-triggers-C_gtaojZ.cjs +1 -0
  144. package/package.json +27 -7
  145. package/dist/leaflet-Cw6tqYFh.cjs +0 -1
  146. package/dist/ui-badge-92yelKls.js +0 -183
  147. package/dist/ui-badge-B95jSECC.cjs +0 -28
  148. package/dist/ui-botao-BShEouvi.js +0 -124
  149. package/dist/ui-botao-DF1yuUUD.cjs +0 -12
  150. package/dist/ui-campo-texto-BCh5HyCM.cjs +0 -16
  151. package/dist/ui-modal-Bi4isGYh.cjs +0 -18
  152. package/dist/ui-modal-DV-pw2x1.js +0 -194
  153. package/dist/ui-segmented-NC5cBXLh.cjs +0 -19
  154. package/dist/ui-skeleton-B3xQyn0Z.js +0 -396
  155. package/dist/ui-skeleton-D42oQufF.cjs +0 -33
  156. package/dist/ui-switch-C6o4yZUF.cjs +0 -53
  157. package/dist/ui-tabela-propriedades-7yJ9g7ti.cjs +0 -145
  158. package/dist/ui-tabela-propriedades-D-XKNVwK.js +0 -2078
  159. package/dist/ui-toast-CQBqvUm3.cjs +0 -20
  160. package/dist/zero-js-triggers-DdESy0tk.js +0 -205
  161. package/dist/zero-js-triggers-QGD7FOTv.cjs +0 -1
package/dist/mapa.cjs CHANGED
@@ -1,19 +1,19 @@
1
- "use strict";var M=Object.defineProperty;var _=(s,o,t)=>o in s?M(s,o,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[o]=t;var a=(s,o,t)=>_(s,typeof o!="symbol"?o+"":o,t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});;/* empty css */const h=require("./leaflet-loader-94z5VsdY.cjs"),d=require("./leaflet-Cw6tqYFh.cjs"),m=require("./ssr-safe-CiHD1adl.cjs"),C=":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)}";function I(s){return{osm:{nome:"OpenStreetMap",layer:()=>s.tileLayer("https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",{attribution:'&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'})},satelite:{nome:"Satélite (Esri)",layer:()=>s.tileLayer("https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}",{attribution:"Tiles &copy; Esri &mdash; Source: Esri, i-cubed, USDA, USGS, AEX, GeoEye, Getmapping, Aerogrid, IGN, IGP, UPR-EGP, and the GIS User Community"})},topografia:{nome:"Topografia",layer:()=>s.tileLayer("https://{s}.tile.opentopomap.org/{z}/{x}/{y}.png",{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>)'})},ruas:{nome:"Ruas (Esri)",layer:()=>s.tileLayer("https://server.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer/tile/{z}/{y}/{x}",{attribution:"Tiles &copy; Esri &mdash; Source: Esri, DeLorme, NAVTEQ, USGS, Intermap, iPC, NRCAN, Esri Japan, METI, Esri China (Hong Kong), Esri (Thailand), TomTom, 2012"})}}}class y extends m.SafeHTMLElement{constructor(){super();a(this,"mapContainer");a(this,"mapInstance",null);a(this,"_initTimer",null);a(this,"_resizeObserver");a(this,"_resizeTimer");const t=this.attachShadow({mode:"open"});t.innerHTML=`
1
+ "use strict";var M=Object.defineProperty;var _=(n,o,t)=>o in n?M(n,o,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[o]=t;var a=(n,o,t)=>_(n,typeof o!="symbol"?o+"":o,t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});;/* empty css */const h=require("./leaflet-loader-94z5VsdY.cjs"),d=require("./leaflet-DcO7uRC-.cjs"),m=require("./ssr-safe-CiHD1adl.cjs"),C=":host{display:block;width:100%;height:400px;position:relative;border-radius:var(--ui-raio-lg, 10px);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)}";function I(n){return{osm:{nome:"OpenStreetMap",layer:()=>n.tileLayer("https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",{attribution:'&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'})},satelite:{nome:"Satélite (Esri)",layer:()=>n.tileLayer("https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}",{attribution:"Tiles &copy; Esri &mdash; Source: Esri, i-cubed, USDA, USGS, AEX, GeoEye, Getmapping, Aerogrid, IGN, IGP, UPR-EGP, and the GIS User Community"})},topografia:{nome:"Topografia",layer:()=>n.tileLayer("https://{s}.tile.opentopomap.org/{z}/{x}/{y}.png",{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>)'})},ruas:{nome:"Ruas (Esri)",layer:()=>n.tileLayer("https://server.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer/tile/{z}/{y}/{x}",{attribution:"Tiles &copy; Esri &mdash; Source: Esri, DeLorme, NAVTEQ, USGS, Intermap, iPC, NRCAN, Esri Japan, METI, Esri China (Hong Kong), Esri (Thailand), TomTom, 2012"})}}}class y extends m.SafeHTMLElement{constructor(){super();a(this,"mapContainer");a(this,"mapInstance",null);a(this,"_initTimer",null);a(this,"_resizeObserver");a(this,"_resizeTimer");const t=this.attachShadow({mode:"open"});t.innerHTML=`
2
2
  <style>
3
3
  ${d.leafletCss}
4
4
  ${C}
5
5
  </style>
6
6
  <div class="ui-mapa-container" id="map-container"></div>
7
7
  <div style="display: none;"><slot></slot></div>
8
- `,this.mapContainer=t.getElementById("map-container")}static get observedAttributes(){return["lat","lng","zoom"]}connectedCallback(){this._initTimer=window.setTimeout(()=>{this.initMap()},0)}disconnectedCallback(){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)}attributeChangedCallback(t,e,r){if(e!==r&&this.mapInstance){const i=parseFloat(this.getAttribute("lat")||"-23.550520"),n=parseFloat(this.getAttribute("lng")||"-46.633308"),c=parseInt(this.getAttribute("zoom")||"13",10);!isNaN(i)&&!isNaN(n)&&this.mapInstance.setView([i,n],c)}}async initMap(){var g;if(this.mapInstance)return;const t=await h.carregarLeaflet();if(!t){this.mapContainer.innerHTML=`
8
+ `,this.mapContainer=t.getElementById("map-container")}static get observedAttributes(){return["lat","lng","zoom"]}connectedCallback(){this._initTimer=window.setTimeout(()=>{this.initMap()},0)}disconnectedCallback(){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)}attributeChangedCallback(t,e,r){if(e!==r&&this.mapInstance){const i=parseFloat(this.getAttribute("lat")||"-23.550520"),s=parseFloat(this.getAttribute("lng")||"-46.633308"),c=parseInt(this.getAttribute("zoom")||"13",10);!isNaN(i)&&!isNaN(s)&&this.mapInstance.setView([i,s],c)}}async initMap(){var g;if(this.mapInstance)return;const t=await h.carregarLeaflet();if(!t){this.mapContainer.innerHTML=`
9
9
  <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));">
10
10
  <span style="font-size: 20px; margin-bottom: 6px;">🗺️</span>
11
11
  <strong style="color: var(--ui-cor-texto, #e1e1e6); margin-bottom: 4px;">Leaflet não encontrado</strong>
12
12
  <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>
13
13
  </div>
14
- `;return}const e=I(t),r=parseFloat(this.getAttribute("lat")||"-23.550520"),i=parseFloat(this.getAttribute("lng")||"-46.633308"),n=parseInt(this.getAttribute("zoom")||"13",10);this.mapInstance=t.map(this.mapContainer).setView([r,i],n);const c=this.getAttribute("camadas");let l=["osm"];c&&(l=c.split(",").map(p=>p.trim().toLowerCase()).filter(p=>e[p]),l.length===0&&(l=["osm"]));const f=e[l[0]].layer();if(f.addTo(this.mapInstance),l.length>1){const p={};p[e[l[0]].nome]=f;for(let u=1;u<l.length;u++){const b=l[u];p[e[b].nome]=e[b].layer()}t.control.layers(p,void 0,{position:"topright"}).addTo(this.mapInstance)}(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(()=>{this._resizeTimer&&clearTimeout(this._resizeTimer),this._resizeTimer=setTimeout(()=>{this.mapInstance&&this.mapInstance.invalidateSize()},60)}),this._resizeObserver.observe(this.mapContainer)),setTimeout(()=>{this.mapInstance&&this.mapInstance.invalidateSize()},100),this.dispatchEvent(new CustomEvent("ui-mapa-pronto",{detail:{map:this.mapInstance},bubbles:!0,composed:!0}))}getMap(){return this.mapInstance}}m.definirCustomElement("ui-mapa",y);class v extends m.SafeHTMLElement{constructor(){super(...arguments);a(this,"marker",null);a(this,"_initTimer",null);a(this,"_retryCount",0);a(this,"_parentMap",null);a(this,"handleMapReady",()=>{this.marker&&(this.marker.remove(),this.marker=null),this.initMarker()})}static get observedAttributes(){return["lat","lng","titulo","cor","formato"]}connectedCallback(){this._parentMap=this.closest("ui-mapa"),this._parentMap&&this._parentMap.addEventListener("ui-mapa-pronto",this.handleMapReady),this._initTimer=setTimeout(()=>this.initMarker(),0)}disconnectedCallback(){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)}attributeChangedCallback(t,e,r){if(e!==r&&this.marker){if(t==="lat"||t==="lng"){const i=d.parseCoordenada(this.getAttribute("lat"),this.getAttribute("lng"));i&&this.marker.setLatLng([i.lat,i.lon])}if(t==="titulo"&&(this.marker.unbindPopup(),r&&this.marker.bindPopup(this.createPopupContent(r))),t==="cor"||t==="formato"){const i=h.obterLeafletSincrono()||window.L;i&&this.marker.setIcon(this.createIcon(i))}}}createPopupContent(t){const e=document.createElement("div");return e.className="ui-mapa-popup",e.textContent=t,e}createIcon(t){const e=this.getAttribute("cor")||"#00f5a0";if((this.getAttribute("formato")||"pin")==="circle"){const n=`<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>`;return t.divIcon({className:"ui-mapa-div-marker",html:n,iconSize:[14,14],iconAnchor:[7,7]})}const i=`
14
+ `;return}const e=I(t),r=parseFloat(this.getAttribute("lat")||"-23.550520"),i=parseFloat(this.getAttribute("lng")||"-46.633308"),s=parseInt(this.getAttribute("zoom")||"13",10);this.mapInstance=t.map(this.mapContainer).setView([r,i],s);const c=this.getAttribute("camadas");let l=["osm"];c&&(l=c.split(",").map(p=>p.trim().toLowerCase()).filter(p=>e[p]),l.length===0&&(l=["osm"]));const f=e[l[0]].layer();if(f.addTo(this.mapInstance),l.length>1){const p={};p[e[l[0]].nome]=f;for(let u=1;u<l.length;u++){const b=l[u];p[e[b].nome]=e[b].layer()}t.control.layers(p,void 0,{position:"topright"}).addTo(this.mapInstance)}(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(()=>{this._resizeTimer&&clearTimeout(this._resizeTimer),this._resizeTimer=setTimeout(()=>{this.mapInstance&&this.mapInstance.invalidateSize()},60)}),this._resizeObserver.observe(this.mapContainer)),setTimeout(()=>{this.mapInstance&&this.mapInstance.invalidateSize()},100),this.dispatchEvent(new CustomEvent("ui-mapa-pronto",{detail:{map:this.mapInstance},bubbles:!0,composed:!0}))}getMap(){return this.mapInstance}}m.definirCustomElement("ui-mapa",y);class v extends m.SafeHTMLElement{constructor(){super(...arguments);a(this,"marker",null);a(this,"_initTimer",null);a(this,"_retryCount",0);a(this,"_parentMap",null);a(this,"handleMapReady",()=>{this.marker&&(this.marker.remove(),this.marker=null),this.initMarker()})}static get observedAttributes(){return["lat","lng","titulo","cor","formato"]}connectedCallback(){this._parentMap=this.closest("ui-mapa"),this._parentMap&&this._parentMap.addEventListener("ui-mapa-pronto",this.handleMapReady),this._initTimer=setTimeout(()=>this.initMarker(),0)}disconnectedCallback(){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)}attributeChangedCallback(t,e,r){if(e!==r&&this.marker){if(t==="lat"||t==="lng"){const i=d.parseCoordenada(this.getAttribute("lat"),this.getAttribute("lng"));i&&this.marker.setLatLng([i.lat,i.lon])}if(t==="titulo"&&(this.marker.unbindPopup(),r&&this.marker.bindPopup(this.createPopupContent(r))),t==="cor"||t==="formato"){const i=h.obterLeafletSincrono()||window.L;i&&this.marker.setIcon(this.createIcon(i))}}}createPopupContent(t){const e=document.createElement("div");return e.className="ui-mapa-popup",e.textContent=t,e}createIcon(t){const e=this.getAttribute("cor")||"#00f5a0";if((this.getAttribute("formato")||"pin")==="circle"){const s=`<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>`;return t.divIcon({className:"ui-mapa-div-marker",html:s,iconSize:[14,14],iconAnchor:[7,7]})}const i=`
15
15
  <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));">
16
16
  <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}"/>
17
17
  <circle cx="12" cy="11" r="4.5" fill="#ffffff"/>
18
18
  </svg>
19
- `;return t.divIcon({className:"ui-mapa-svg-pin",html:i,iconSize:[24,32],iconAnchor:[12,32],popupAnchor:[0,-30]})}initMarker(){const t=this._parentMap||this.closest("ui-mapa");if(!t){console.warn("<ui-mapa-marcador> deve estar dentro de um elemento <ui-mapa>");return}const e=t.getMap();if(!e){if(this._retryCount>=30){console.warn("<ui-mapa-marcador> Tempo limite esgotado aguardando inicialização do mapa pai.");return}this._retryCount++,this._initTimer=setTimeout(()=>this.initMarker(),50);return}this._retryCount=0;const r=d.parseCoordenada(this.getAttribute("lat"),this.getAttribute("lng"));if(!r)return;const i=this.getAttribute("titulo"),n=h.obterLeafletSincrono()||window.L;n&&(this.marker=n.marker([r.lat,r.lon],{icon:this.createIcon(n)}),this.marker&&(i&&this.marker.bindPopup(this.createPopupContent(i)),this.marker.addTo(e)))}}m.definirCustomElement("ui-mapa-marcador",v);class T extends m.SafeHTMLElement{constructor(){super(...arguments);a(this,"polyline",null);a(this,"_initTimer",null);a(this,"_retryCount",0)}static get observedAttributes(){return["pontos","cor","espessura"]}connectedCallback(){this._initTimer=setTimeout(()=>this.initLinha(),0)}disconnectedCallback(){this._initTimer&&(clearTimeout(this._initTimer),this._initTimer=null),this.polyline&&(this.polyline.remove(),this.polyline=null)}attributeChangedCallback(t,e,r){e!==r&&this.polyline&&(t==="pontos"?this.polyline.setLatLngs(this.getPontos()):(t==="cor"||t==="espessura")&&this.polyline.setStyle({color:this.getAttribute("cor")||"#3388ff",weight:parseInt(this.getAttribute("espessura")||"3",10)}))}getPontos(){try{const t=this.getAttribute("pontos");if(t)return JSON.parse(t)}catch(t){console.error('Formato inválido para atributo pontos no <ui-mapa-linha>. Deve ser um JSON array, ex: "[[lat, lng], ...]"',t)}return[]}initLinha(){const t=this.closest("ui-mapa");if(!t){console.warn("<ui-mapa-linha> deve estar dentro de um elemento <ui-mapa>");return}const e=t.getMap();if(!e){if(this._retryCount>=30){console.warn("<ui-mapa-linha> Tempo limite esgotado aguardando inicialização do mapa pai.");return}this._retryCount++,this._initTimer=setTimeout(()=>this.initLinha(),50);return}this._retryCount=0;const r=this.getAttribute("cor")||"#3388ff",i=parseInt(this.getAttribute("espessura")||"3",10),n=h.obterLeafletSincrono()||window.L;n&&(this.polyline=n.polyline(this.getPontos(),{color:r,weight:i}),this.polyline&&this.polyline.addTo(e))}}m.definirCustomElement("ui-mapa-linha",T);exports.UIMapa=y;exports.UIMapaLinha=T;exports.UIMapaMarcador=v;
19
+ `;return t.divIcon({className:"ui-mapa-svg-pin",html:i,iconSize:[24,32],iconAnchor:[12,32],popupAnchor:[0,-30]})}initMarker(){const t=this._parentMap||this.closest("ui-mapa");if(!t){console.warn("<ui-mapa-marcador> deve estar dentro de um elemento <ui-mapa>");return}const e=t.getMap();if(!e){if(this._retryCount>=30){console.warn("<ui-mapa-marcador> Tempo limite esgotado aguardando inicialização do mapa pai.");return}this._retryCount++,this._initTimer=setTimeout(()=>this.initMarker(),50);return}this._retryCount=0;const r=d.parseCoordenada(this.getAttribute("lat"),this.getAttribute("lng"));if(!r)return;const i=this.getAttribute("titulo"),s=h.obterLeafletSincrono()||window.L;s&&(this.marker=s.marker([r.lat,r.lon],{icon:this.createIcon(s)}),this.marker&&(i&&this.marker.bindPopup(this.createPopupContent(i)),this.marker.addTo(e)))}}m.definirCustomElement("ui-mapa-marcador",v);class T extends m.SafeHTMLElement{constructor(){super(...arguments);a(this,"polyline",null);a(this,"_initTimer",null);a(this,"_retryCount",0)}static get observedAttributes(){return["pontos","cor","espessura"]}connectedCallback(){this._initTimer=setTimeout(()=>this.initLinha(),0)}disconnectedCallback(){this._initTimer&&(clearTimeout(this._initTimer),this._initTimer=null),this.polyline&&(this.polyline.remove(),this.polyline=null)}attributeChangedCallback(t,e,r){e!==r&&this.polyline&&(t==="pontos"?this.polyline.setLatLngs(this.getPontos()):(t==="cor"||t==="espessura")&&this.polyline.setStyle({color:this.getAttribute("cor")||"#3388ff",weight:parseInt(this.getAttribute("espessura")||"3",10)}))}getPontos(){try{const t=this.getAttribute("pontos");if(t)return JSON.parse(t)}catch(t){console.error('Formato inválido para atributo pontos no <ui-mapa-linha>. Deve ser um JSON array, ex: "[[lat, lng], ...]"',t)}return[]}initLinha(){const t=this.closest("ui-mapa");if(!t){console.warn("<ui-mapa-linha> deve estar dentro de um elemento <ui-mapa>");return}const e=t.getMap();if(!e){if(this._retryCount>=30){console.warn("<ui-mapa-linha> Tempo limite esgotado aguardando inicialização do mapa pai.");return}this._retryCount++,this._initTimer=setTimeout(()=>this.initLinha(),50);return}this._retryCount=0;const r=this.getAttribute("cor")||"#3388ff",i=parseInt(this.getAttribute("espessura")||"3",10),s=h.obterLeafletSincrono()||window.L;s&&(this.polyline=s.polyline(this.getPontos(),{color:r,weight:i}),this.polyline&&this.polyline.addTo(e))}}m.definirCustomElement("ui-mapa-linha",T);exports.UIMapa=y;exports.UIMapaLinha=T;exports.UIMapaMarcador=v;
package/dist/mapa.js CHANGED
@@ -3,9 +3,9 @@ var T = (s, n, t) => n in s ? v(s, n, { enumerable: !0, configurable: !0, writab
3
3
  var a = (s, n, t) => T(s, typeof n != "symbol" ? n + "" : n, t);
4
4
  /* empty css */
5
5
  import { c as _, o as h } from "./leaflet-loader-Cjcdgj5R.js";
6
- import { l as x, p as y } from "./leaflet-DkaFZYc5.js";
6
+ import { l as x, p as y } from "./leaflet-PPDKB6Dd.js";
7
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)}";
8
+ const M = ":host{display:block;width:100%;height:400px;position:relative;border-radius:var(--ui-raio-lg, 10px);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
9
  function w(s) {
10
10
  return {
11
11
  osm: {
package/dist/modal.cjs CHANGED
@@ -1 +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;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});;/* empty css */const o=require("./ui-modal-CvGFGh1h.cjs");exports.UIDialog=o.UIDialog;exports.UIModal=o.UIModal;exports.aplicarInertForaDoModal=o.aplicarInertForaDoModal;exports.removerInertForaDoModal=o.removerInertForaDoModal;
package/dist/modal.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /* empty css */
2
- import { U as e, a as l, b as s, r as t } from "./ui-modal-DV-pw2x1.js";
2
+ import { U as e, a as l, b as s, r as t } from "./ui-modal-DBOtSTbR.js";
3
3
  export {
4
4
  e as UIDialog,
5
5
  l as UIModal,
@@ -0,0 +1,7 @@
1
+ function i(e, r, a) {
2
+ const t = new Set((e.getAttribute("part") || "").split(/\s+/).filter(Boolean));
3
+ a ? t.add(r) : t.delete(r), e.setAttribute("part", Array.from(t).join(" "));
4
+ }
5
+ export {
6
+ i as a
7
+ };
@@ -0,0 +1 @@
1
+ "use strict";function i(e,r,a){const t=new Set((e.getAttribute("part")||"").split(/\s+/).filter(Boolean));a?t.add(r):t.delete(r),e.setAttribute("part",Array.from(t).join(" "))}exports.alternarPart=i;
package/dist/register.cjs CHANGED
@@ -1 +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;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./ssr-safe-CiHD1adl.cjs"),e=require("./zero-js-triggers-C_gtaojZ.cjs");require("./ui-botao-psS1juof.cjs");require("./ui-switch-D7iPKDj-.cjs");require("./ui-segmented-D6b6zxVs.cjs");require("./ui-campo-texto-Cnn2UAkS.cjs");require("./ui-paleta-ferramentas-Dbj1kBS9.cjs");require("./ui-badge-BxT-sDmV.cjs");require("./ui-card-B86lJXTP.cjs");require("./ui-modal-CvGFGh1h.cjs");require("./ui-skeleton-elhKIh2B.cjs");require("./ui-toast-DGTZKne5.cjs");require("./ui-tabela-propriedades-BBr5sqki.cjs");function i(){r.isBrowser&&e.initZeroJSTriggers()}r.isBrowser&&e.initZeroJSTriggers();exports.isBrowser=r.isBrowser;exports.registrarTodosComponentes=i;
package/dist/register.js CHANGED
@@ -1,16 +1,16 @@
1
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";
2
+ import { i } from "./zero-js-triggers-C_KrvFOQ.js";
3
+ import "./ui-botao-OGJV6Vfk.js";
4
+ import "./ui-switch-BcOqOkiV.js";
5
+ import "./ui-segmented-wUraId2e.js";
6
+ import "./ui-campo-texto-Uu2dJE_0.js";
7
+ import "./ui-paleta-ferramentas-CEZYcN4J.js";
8
+ import "./ui-badge-C0eKBI8E.js";
9
+ import "./ui-card-C_o5_0cB.js";
10
+ import "./ui-modal-DBOtSTbR.js";
11
+ import "./ui-skeleton-DI4_9WOX.js";
12
+ import "./ui-toast-Bp_NlM5G.js";
13
+ import "./ui-tabela-propriedades-Boy7I5yW.js";
14
14
  function d() {
15
15
  r && i();
16
16
  }
@@ -1,18 +1,18 @@
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=`
1
+ "use strict";var h=Object.defineProperty;var g=(o,p,e)=>p in o?h(o,p,{enumerable:!0,configurable:!0,writable:!0,value:e}):o[p]=e;var s=(o,p,e)=>g(o,typeof p!="symbol"?p+"":p,e);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});;/* empty css */const l=require("./ssr-safe-CiHD1adl.cjs"),v=require("./listener-bag-D5omxZ9h.cjs"),x=':host{display:inline-block;font-family:var(--ui-fonte-base, "Inter", 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:var(--ui-raio-pill, 999px);color:var(--ui-cor-texto, #f1f1f5);cursor:pointer;outline:none;font-size:11.5px;font-weight:500;letter-spacing:.2px;box-shadow:var(--ui-sombra-md, 0 4px 14px rgba(0, 0, 0, .35)),0 1px 3px #0003;transition:all .18s cubic-bezier(.16,1,.3,1)}.ui-basemap-trigger:hover{background:var(--ui-cor-botao-secundario-hover, rgba(28, 28, 36, .95));border-color:var(--ui-cor-primaria, #00E08A);transform:translateY(-1px);box-shadow:var(--ui-sombra-md, 0 6px 20px rgba(0, 0, 0, .45)),0 0 12px color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 20%,transparent)}.ui-basemap-trigger:focus-visible{border-color:var(--ui-cor-primaria, #00E08A);box-shadow:0 0 0 2px color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 35%,transparent)}.ui-basemap-trigger.active{border-color:var(--ui-cor-primaria, #00E08A);background:var(--ui-cor-fundo-elevado, rgba(22, 26, 32, .95));box-shadow:var(--ui-sombra-md, 0 4px 16px rgba(0, 0, 0, .4)),0 0 10px color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 25%,transparent)}: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:var(--ui-sombra-sm, 0 1px 3px rgba(0, 0, 0, .4))}.ui-basemap-thumb-mini.fallback{display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 8%,transparent);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:var(--ui-sombra-lg, 0 12px 32px rgba(0, 0, 0, .6)),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 color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 6%,transparent);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:var(--ui-raio-sm, 4px);background:color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 12%,transparent);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:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 15%,transparent);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:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 6%,transparent);border-color:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 8%,transparent)}.ui-basemap-item:focus-visible{border-color:var(--ui-cor-primaria, #00E08A);background:color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 6%,transparent)}.ui-basemap-item.active{background:color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 12%,transparent);border-color:color-mix(in srgb,var(--ui-cor-primaria, #00E08A) 35%,transparent)}.ui-basemap-item-preview{width:32px;height:24px;border-radius:var(--ui-raio-sm, 4px);object-fit:cover;flex-shrink:0;border:1px solid color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 10%,transparent);box-shadow:var(--ui-sombra-sm, 0 1px 3px rgba(0, 0, 0, .3))}.ui-basemap-item-preview-none{width:32px;height:24px;border-radius:var(--ui-raio-sm, 4px);flex-shrink:0;display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 4%,transparent);border:1px solid color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 8%,transparent);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}',m=[{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"}],f=`
2
2
  <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
3
3
  <circle cx="12" cy="12" r="10"></circle>
4
4
  <line x1="2" y1="12" x2="22" y2="12"></line>
5
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
6
  </svg>
7
- `,v=`
7
+ `,w=`
8
8
  <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">
9
9
  <polyline points="6 9 12 15 18 9"></polyline>
10
10
  </svg>
11
- `,w=`
11
+ `,A=`
12
12
  <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round">
13
13
  <polyline points="20 6 9 17 4 12"></polyline>
14
14
  </svg>
15
- `,u=`
15
+ `,b=`
16
16
  <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
17
17
  <rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect>
18
18
  <line x1="3" y1="9" x2="21" y2="9"></line>
@@ -20,13 +20,13 @@
20
20
  <line x1="9" y1="3" x2="9" y2="21"></line>
21
21
  <line x1="15" y1="3" x2="15" y2="21"></line>
22
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>
23
+ `;class c extends l.SafeHTMLElement{constructor(){super();s(this,"shadow");s(this,"listeners",new v.ListenerBag);s(this,"_mapasBase",[...m]);s(this,"wrapperEl");s(this,"triggerBtn");s(this,"popoverEl");s(this,"listEl");s(this,"thumbEl");s(this,"labelEl");this.shadow=this.attachShadow({mode:"open"}),this.shadow.innerHTML=`
24
+ <style>${x}</style>
25
25
  <div class="ui-basemap-wrapper" id="basemap-wrapper">
26
26
  <button class="ui-basemap-trigger" id="basemap-trigger" type="button" aria-haspopup="listbox" aria-expanded="false" title="Alternar Mapa Base">
27
27
  <span class="ui-basemap-thumb-container" id="thumb-container"></span>
28
28
  <span class="ui-basemap-label" id="basemap-label">Esri Satélite</span>
29
- <span class="ui-basemap-chevron">${v}</span>
29
+ <span class="ui-basemap-chevron">${w}</span>
30
30
  </button>
31
31
 
32
32
  <div class="ui-basemap-popover" id="basemap-popover" role="listbox" aria-label="Selecione o Mapa Base">
@@ -37,17 +37,17 @@
37
37
  <div class="ui-basemap-list" id="basemap-list"></div>
38
38
  </div>
39
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)}"
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,i,a){if(i!==a){if(e==="mapa-base-ativo"||e==="valor")this.atualizarSelecaoVisual(),this.atualizarGatilho();else if(e==="posicao")this.atualizarPosicaoClasses();else if(e==="aberto"){const t=a!==null&&a!=="false";this.aplicarEstadoAberto(t)}else if(e==="compacto")this.triggerBtn.classList.toggle("compacto",a!==null&&a!=="false");else if(e==="desabilitado"){const t=a!==null&&a!=="false";this.triggerBtn.disabled=t,t&&this.fechar()}}}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 desabilitado(){return this.hasAttribute("desabilitado")&&this.getAttribute("desabilitado")!=="false"}set desabilitado(e){e?this.setAttribute("desabilitado",""):this.removeAttribute("desabilitado")}get mapasBase(){return this._mapasBase}definirMapasBase(e){Array.isArray(e)&&(this._mapasBase=[...e],this.renderizarOpcoes(),this.atualizarGatilho())}abrir(){this.desabilitado||(this.aberto=!0)}fechar(){this.aberto=!1}alternar(){this.aberto?this.fechar():this.abrir()}selecionar(e){if(!e||this.mapaBaseAtivo===e){this.fechar();return}const i=this._mapasBase.find(t=>t.id===e);if(!i)return;this.mapaBaseAtivo=e;const a={mapaBaseId:e,item:i};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,i=this._mapasBase.find(a=>a.id===e)||this._mapasBase[0];i?(this.labelEl.textContent=i.nome,this.triggerBtn.title=`Mapa Base: ${i.nome} (${i.descricao||""})`,i.thumbnailUrl?this.thumbEl.innerHTML=`<img class="ui-basemap-thumb-mini" src="${n(i.thumbnailUrl)}" alt="${n(i.nome)}" referrerpolicy="no-referrer" decoding="async" />`:this.thumbEl.innerHTML=`<span class="ui-basemap-thumb-mini fallback">${b}</span>`):(this.labelEl.textContent="Mapa Base",this.thumbEl.innerHTML=`<span class="ui-basemap-thumb-mini fallback">${f}</span>`)}renderizarOpcoes(){const e=this.shadow.getElementById("popover-count");e&&(e.textContent=`${this._mapasBase.length} opções`);const i=this.mapaBaseAtivo;this.listEl.innerHTML=this._mapasBase.map(a=>{const t=a.id===i,r=a.thumbnailUrl?`<img class="ui-basemap-item-preview" src="${n(a.thumbnailUrl)}" alt="${n(a.nome)}" loading="lazy" referrerpolicy="no-referrer" decoding="async" />`:`<div class="ui-basemap-item-preview-none">${b}</div>`;return`
41
+ <div class="ui-basemap-item ${t?"active":""}"
42
+ data-id="${n(a.id)}"
43
43
  role="option"
44
- aria-selected="${i}"
44
+ aria-selected="${t}"
45
45
  tabindex="0">
46
- ${s}
46
+ ${r}
47
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>`:""}
48
+ <span class="ui-basemap-item-nome">${n(a.nome)}</span>
49
+ ${a.descricao?`<span class="ui-basemap-item-desc">${n(a.descricao)}</span>`:""}
50
50
  </div>
51
- <span class="ui-basemap-item-check">${w}</span>
51
+ <span class="ui-basemap-item-check">${A}</span>
52
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;
53
+ `}).join("")}focarItem(e){const i=Array.from(this.listEl.querySelectorAll(".ui-basemap-item"));if(i.length===0)return;const a=i.indexOf(this.shadow.activeElement);let t;switch(e){case"ativo":t=Math.max(0,i.findIndex(r=>r.classList.contains("active")));break;case"proximo":t=Math.min(i.length-1,a+1);break;case"anterior":t=Math.max(0,a-1);break;case"primeiro":t=0;break;default:t=i.length-1}i[t].focus()}atualizarSelecaoVisual(){const e=this.mapaBaseAtivo;this.listEl.querySelectorAll(".ui-basemap-item").forEach(a=>{const r=a.getAttribute("data-id")===e;a.classList.toggle("active",r),a.setAttribute("aria-selected",String(r))})}conectarEventos(){this.listeners.add(this.triggerBtn,"click",a=>{a.stopPropagation(),this.alternar(),this.aberto&&a.detail===0&&this.focarItem("ativo")}),this.listeners.add(this.listEl,"click",a=>{const t=a.target.closest(".ui-basemap-item");if(!t)return;const r=t.getAttribute("data-id");r&&this.selecionar(r)}),this.listeners.add(this.listEl,"keydown",a=>{const t={ArrowDown:"proximo",ArrowUp:"anterior",Home:"primeiro",End:"ultimo"};if(t[a.key]){a.preventDefault(),this.focarItem(t[a.key]);return}if(a.key==="Enter"||a.key===" "){const r=a.target.closest(".ui-basemap-item");if(r){a.preventDefault();const u=r.getAttribute("data-id");u&&this.selecionar(u)}}});const e=a=>{if(!this.aberto)return;a.composedPath().includes(this)||this.fechar()};this.listeners.add(document,"click",e),this.listeners.add(this.wrapperEl,"focusout",a=>{const t=a.relatedTarget;this.aberto&&t&&!this.shadow.contains(t)&&!this.contains(t)&&this.fechar()});const i=a=>{a.key==="Escape"&&this.aberto&&(this.fechar(),this.triggerBtn.focus())};this.listeners.add(document,"keydown",i)}}function n(o){return o?String(o).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#039;"):""}class d extends c{}l.definirCustomElement("ui-seletor-mapa-base",c);l.definirCustomElement("ui-mapa-base",d);exports.MAPAS_BASE_PADRAO=m;exports.UIMapaBase=d;exports.UISeletorMapaBase=c;