@thibezer/ui-components-kit 2.0.0 → 2.2.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 (115) hide show
  1. package/CHANGELOG.md +78 -0
  2. package/README.md +760 -739
  3. package/dist/botao.cjs +1 -1
  4. package/dist/botao.js +1 -1
  5. package/dist/camadas.cjs +175 -142
  6. package/dist/camadas.js +1335 -1054
  7. package/dist/canvas.cjs +99 -140
  8. package/dist/canvas.js +5552 -1283
  9. package/dist/components/ui-barra-ferramentas/tipos.d.ts +2 -2
  10. package/dist/components/ui-barra-ferramentas/ui-paleta-ferramentas.d.ts +2 -2
  11. package/dist/components/ui-camadas/camadas-adapters.d.ts +45 -0
  12. package/dist/components/ui-camadas/camadas-arvore-renderer.d.ts +9 -0
  13. package/dist/components/ui-camadas/camadas-drag-drop.d.ts +4 -0
  14. package/dist/components/ui-camadas/camadas-metricas.d.ts +8 -1
  15. package/dist/components/ui-camadas/camadas-persistencia.d.ts +5 -0
  16. package/dist/components/ui-camadas/camadas-rodape.d.ts +5 -0
  17. package/dist/components/ui-camadas/index.d.ts +1 -0
  18. package/dist/components/ui-camadas/tipos.d.ts +8 -0
  19. package/dist/components/ui-camadas/ui-camadas.d.ts +11 -0
  20. package/dist/components/ui-canvas-cad/cad-estilos-externos.d.ts +16 -0
  21. package/dist/components/ui-canvas-cad/cad-eventos-canvas.d.ts +4 -0
  22. package/dist/components/ui-canvas-cad/cad-feicoes.d.ts +262 -0
  23. package/dist/components/ui-canvas-cad/cad-ferramentas-barra.d.ts +15 -0
  24. package/dist/components/ui-canvas-cad/cad-snap.d.ts +32 -0
  25. package/dist/components/ui-canvas-cad/cad-toolbar-painel.d.ts +1 -0
  26. package/dist/components/ui-canvas-cad/ui-canvas-cad.d.ts +143 -0
  27. package/dist/components/ui-lista-flutuante/lista-flutuante-posicionamento.d.ts +2 -0
  28. package/dist/components/ui-lista-flutuante/ui-lista-flutuante.d.ts +1 -0
  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-localizador.d.ts +8 -1
  32. package/dist/components/ui-tabela/tabela-orquestrador-dados.d.ts +4 -0
  33. package/dist/components/ui-tabela/tabela-selecao.d.ts +19 -9
  34. package/dist/components/ui-tabela/tipos.d.ts +6 -0
  35. package/dist/components/ui-tabela/ui-tabela.d.ts +41 -2
  36. package/dist/components/ui-tabela-propriedades/avaliador-expressao.d.ts +0 -5
  37. package/dist/components/ui-tabela-propriedades/propriedades-dom-utils.d.ts +17 -1
  38. package/dist/components/ui-tabela-propriedades/propriedades-flutuante.d.ts +2 -0
  39. package/dist/components/ui-tabela-propriedades/propriedades-gerenciador-valores.d.ts +10 -1
  40. package/dist/components/ui-tabela-propriedades/propriedades-render-arvore.d.ts +3 -1
  41. package/dist/components/ui-tabela-propriedades/ui-tabela-propriedades.d.ts +5 -1
  42. package/dist/core/alvo-digitavel.d.ts +1 -0
  43. package/dist/core/index.d.ts +1 -0
  44. package/dist/core/svg-seguro.d.ts +10 -0
  45. package/dist/core.cjs +1 -1
  46. package/dist/core.js +12 -10
  47. package/dist/custom-elements.json +16586 -12150
  48. package/dist/data.cjs +1 -1
  49. package/dist/data.js +51 -46
  50. package/dist/forms.cjs +1 -1
  51. package/dist/forms.js +1 -1
  52. package/dist/gerencigeo-canvas/canvas_interacao.d.ts +18 -0
  53. package/dist/gerencigeo-canvas/curva_leaflet.d.ts +21 -0
  54. package/dist/gerencigeo-canvas/feature_adapters.d.ts +35 -0
  55. package/dist/gerencigeo-canvas/feature_algoritmos.d.ts +45 -0
  56. package/dist/gerencigeo-canvas/feature_amostra.d.ts +4 -0
  57. package/dist/gerencigeo-canvas/feature_caixa.d.ts +19 -0
  58. package/dist/gerencigeo-canvas/feature_cluster.d.ts +61 -0
  59. package/dist/gerencigeo-canvas/feature_cursores.d.ts +17 -0
  60. package/dist/gerencigeo-canvas/feature_curvas.d.ts +43 -0
  61. package/dist/gerencigeo-canvas/feature_desenho.d.ts +55 -0
  62. package/dist/gerencigeo-canvas/feature_desenho_controle.d.ts +91 -0
  63. package/dist/gerencigeo-canvas/feature_edicao_ops.d.ts +46 -0
  64. package/dist/gerencigeo-canvas/feature_editor_vertices.d.ts +80 -0
  65. package/dist/gerencigeo-canvas/feature_formas.d.ts +7 -0
  66. package/dist/gerencigeo-canvas/feature_hud.d.ts +23 -0
  67. package/dist/gerencigeo-canvas/feature_indice.d.ts +36 -0
  68. package/dist/gerencigeo-canvas/feature_metricas.d.ts +16 -0
  69. package/dist/gerencigeo-canvas/feature_popup.d.ts +31 -0
  70. package/dist/gerencigeo-canvas/feature_selecao.d.ts +38 -0
  71. package/dist/gerencigeo-canvas/feature_simplificacao.d.ts +15 -0
  72. package/dist/gerencigeo-canvas/feature_snap.d.ts +25 -0
  73. package/dist/gerencigeo-canvas/feature_types.d.ts +101 -0
  74. package/dist/gerencigeo-canvas/feature_versoes.d.ts +19 -0
  75. package/dist/gerencigeo-canvas/index.d.ts +21 -0
  76. package/dist/gerencigeo-canvas/layer_hit_test.d.ts +30 -0
  77. package/dist/gerencigeo-canvas/layer_manager.d.ts +11 -3
  78. package/dist/gerencigeo-canvas/layer_pane_ops.d.ts +9 -0
  79. package/dist/gerencigeo-canvas/mapa_controller.d.ts +1 -0
  80. package/dist/gerencigeo-canvas/mapa_pontos_shapes.d.ts +24 -5
  81. package/dist/gerencigeo-canvas/renderers/feicoes_renderer.d.ts +89 -0
  82. package/dist/gerencigeo-canvas/renderers/vector_points_renderer.d.ts +1 -0
  83. package/dist/gerencigeo-canvas/renderers/vector_polygons_renderer.d.ts +2 -2
  84. package/dist/gerencigeo-canvas/types.d.ts +12 -0
  85. package/dist/gerencigeo-canvas/utils.d.ts +4 -2
  86. package/dist/index.cjs +1 -1
  87. package/dist/index.js +132 -121
  88. package/dist/leaflet-DcO7uRC-.cjs +1 -0
  89. package/dist/{leaflet-DkaFZYc5.js → leaflet-PPDKB6Dd.js} +37 -37
  90. package/dist/mapa.cjs +1 -1
  91. package/dist/mapa.js +1 -1
  92. package/dist/register.cjs +1 -1
  93. package/dist/register.js +4 -4
  94. package/dist/seletor-mapa-base.cjs +13 -13
  95. package/dist/seletor-mapa-base.js +101 -51
  96. package/dist/svg-seguro-BsbNQqpd.js +50 -0
  97. package/dist/svg-seguro-C76iLlAZ.cjs +1 -0
  98. package/dist/tabela.cjs +1 -1
  99. package/dist/tabela.js +41 -36
  100. package/dist/tipos-elementos.d.ts +26 -7
  101. package/dist/tipos-vue.d.ts +24 -7
  102. package/dist/tools.cjs +1 -1
  103. package/dist/tools.js +1 -1
  104. package/dist/ui-botao-BOOnP8ds.cjs +12 -0
  105. package/dist/ui-botao-DfqSivHl.js +165 -0
  106. package/dist/{ui-paleta-ferramentas-BIytXQLh.js → ui-paleta-ferramentas-CEZYcN4J.js} +18 -27
  107. package/dist/{ui-paleta-ferramentas-DqLY51qa.cjs → ui-paleta-ferramentas-Dbj1kBS9.cjs} +6 -6
  108. package/dist/{ui-switch-DWLgVVnT.js → ui-switch-BcOqOkiV.js} +124 -96
  109. package/dist/ui-switch-D7iPKDj-.cjs +53 -0
  110. package/dist/ui-tabela-propriedades-BBr5sqki.cjs +145 -0
  111. package/dist/{ui-tabela-propriedades-BNcE6VLX.js → ui-tabela-propriedades-Boy7I5yW.js} +1304 -1072
  112. package/package.json +169 -169
  113. package/dist/leaflet-Cw6tqYFh.cjs +0 -1
  114. package/dist/ui-switch-yZIn3IW0.cjs +0 -53
  115. package/dist/ui-tabela-propriedades-D3pyQvyy.cjs +0 -145
package/dist/mapa.cjs CHANGED
@@ -1,4 +1,4 @@
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-Cw6tqYFh.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=`
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}
package/dist/mapa.js CHANGED
@@ -3,7 +3,7 @@ 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
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) {
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-C_gtaojZ.cjs");require("./ui-botao-psS1juof.cjs");require("./ui-switch-yZIn3IW0.cjs");require("./ui-segmented-D6b6zxVs.cjs");require("./ui-campo-texto-Cnn2UAkS.cjs");require("./ui-paleta-ferramentas-DqLY51qa.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-D3pyQvyy.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-BOOnP8ds.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
2
  import { i } from "./zero-js-triggers-C_KrvFOQ.js";
3
- import "./ui-botao-OGJV6Vfk.js";
4
- import "./ui-switch-DWLgVVnT.js";
3
+ import "./ui-botao-DfqSivHl.js";
4
+ import "./ui-switch-BcOqOkiV.js";
5
5
  import "./ui-segmented-wUraId2e.js";
6
6
  import "./ui-campo-texto-Uu2dJE_0.js";
7
- import "./ui-paleta-ferramentas-BIytXQLh.js";
7
+ import "./ui-paleta-ferramentas-CEZYcN4J.js";
8
8
  import "./ui-badge-C0eKBI8E.js";
9
9
  import "./ui-card-C_o5_0cB.js";
10
10
  import "./ui-modal-DBOtSTbR.js";
11
11
  import "./ui-skeleton-DI4_9WOX.js";
12
12
  import "./ui-toast-Bp_NlM5G.js";
13
- import "./ui-tabela-propriedades-BNcE6VLX.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=(r,p,e)=>p in r?d(r,p,{enumerable:!0,configurable:!0,writable:!0,value:e}):r[p]=e;var s=(r,p,e)=>h(r,typeof p!="symbol"?p+"":p,e);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});;/* empty css */const l=require("./ssr-safe-CiHD1adl.cjs"),g=require("./listener-bag-D5omxZ9h.cjs"),v=':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}',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
- `,f=`
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 l.SafeHTMLElement{constructor(){super();s(this,"shadow");s(this,"listeners",new g.ListenerBag);s(this,"_mapasBase",[...b]);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>${v}</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">${f}</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="${n(t.thumbnailUrl)}" alt="${n(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,o=a.thumbnailUrl?`<img class="ui-basemap-item-preview" src="${n(a.thumbnailUrl)}" alt="${n(a.nome)}" loading="lazy" />`:`<div class="ui-basemap-item-preview-none">${u}</div>`;return`
41
- <div class="ui-basemap-item ${i?"active":""}"
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
42
  data-id="${n(a.id)}"
43
43
  role="option"
44
- aria-selected="${i}"
44
+ aria-selected="${t}"
45
45
  tabindex="0">
46
- ${o}
46
+ ${r}
47
47
  <div class="ui-basemap-item-info">
48
48
  <span class="ui-basemap-item-nome">${n(a.nome)}</span>
49
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 o=a.getAttribute("data-id")===e;a.classList.toggle("active",o),a.setAttribute("aria-selected",String(o))})}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 o=i.getAttribute("data-id");o&&this.selecionar(o)}),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 o=i.getAttribute("data-id");o&&this.selecionar(o)}}});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 n(r){return r?String(r).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#039;"):""}class m extends c{}l.definirCustomElement("ui-seletor-mapa-base",c);l.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;
@@ -1,10 +1,10 @@
1
- var b = Object.defineProperty;
2
- var m = (r, p, e) => p in r ? b(r, p, { enumerable: !0, configurable: !0, writable: !0, value: e }) : r[p] = e;
3
- var s = (r, p, e) => m(r, typeof p != "symbol" ? p + "" : p, e);
1
+ var m = Object.defineProperty;
2
+ var d = (o, p, e) => p in o ? m(o, p, { enumerable: !0, configurable: !0, writable: !0, value: e }) : o[p] = e;
3
+ var s = (o, p, e) => d(o, typeof p != "symbol" ? p + "" : p, e);
4
4
  /* empty css */
5
- import { d as c, S as d } from "./ssr-safe-5cWfJP-s.js";
6
- import { L as h } from "./listener-bag-DQgv7OON.js";
7
- const g = ':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}', x = [
5
+ import { d as u, S as h } from "./ssr-safe-5cWfJP-s.js";
6
+ import { L as g } from "./listener-bag-DQgv7OON.js";
7
+ const v = ':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}', x = [
8
8
  {
9
9
  id: "none",
10
10
  nome: "Sem Mapa",
@@ -46,21 +46,21 @@ const g = ':host{display:inline-block;font-family:var(--ui-fonte-base, "Inter",
46
46
  descricao: "Mapa escuro de alto contraste para CAD",
47
47
  thumbnailUrl: "https://images.unsplash.com/photo-1518709268805-4e9042af9f23?w=160&auto=format&fit=crop&q=80"
48
48
  }
49
- ], v = `
49
+ ], f = `
50
50
  <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
51
51
  <circle cx="12" cy="12" r="10"></circle>
52
52
  <line x1="2" y1="12" x2="22" y2="12"></line>
53
53
  <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>
54
54
  </svg>
55
- `, f = `
55
+ `, w = `
56
56
  <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">
57
57
  <polyline points="6 9 12 15 18 9"></polyline>
58
58
  </svg>
59
- `, w = `
59
+ `, k = `
60
60
  <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round">
61
61
  <polyline points="20 6 9 17 4 12"></polyline>
62
62
  </svg>
63
- `, l = `
63
+ `, c = `
64
64
  <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
65
65
  <rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect>
66
66
  <line x1="3" y1="9" x2="21" y2="9"></line>
@@ -69,11 +69,11 @@ const g = ':host{display:inline-block;font-family:var(--ui-fonte-base, "Inter",
69
69
  <line x1="15" y1="3" x2="15" y2="21"></line>
70
70
  </svg>
71
71
  `;
72
- class u extends d {
72
+ class b extends h {
73
73
  constructor() {
74
74
  super();
75
75
  s(this, "shadow");
76
- s(this, "listeners", new h());
76
+ s(this, "listeners", new g());
77
77
  s(this, "_mapasBase", [...x]);
78
78
  s(this, "wrapperEl");
79
79
  s(this, "triggerBtn");
@@ -82,12 +82,12 @@ class u extends d {
82
82
  s(this, "thumbEl");
83
83
  s(this, "labelEl");
84
84
  this.shadow = this.attachShadow({ mode: "open" }), this.shadow.innerHTML = `
85
- <style>${g}</style>
85
+ <style>${v}</style>
86
86
  <div class="ui-basemap-wrapper" id="basemap-wrapper">
87
87
  <button class="ui-basemap-trigger" id="basemap-trigger" type="button" aria-haspopup="listbox" aria-expanded="false" title="Alternar Mapa Base">
88
88
  <span class="ui-basemap-thumb-container" id="thumb-container"></span>
89
89
  <span class="ui-basemap-label" id="basemap-label">Esri Satélite</span>
90
- <span class="ui-basemap-chevron">${f}</span>
90
+ <span class="ui-basemap-chevron">${w}</span>
91
91
  </button>
92
92
 
93
93
  <div class="ui-basemap-popover" id="basemap-popover" role="listbox" aria-label="Selecione o Mapa Base">
@@ -116,16 +116,22 @@ class u extends d {
116
116
  disconnectedCallback() {
117
117
  this.listeners.cleanup();
118
118
  }
119
- attributeChangedCallback(e, t, a) {
120
- if (t !== a)
119
+ attributeChangedCallback(e, i, a) {
120
+ if (i !== a) {
121
121
  if (e === "mapa-base-ativo" || e === "valor")
122
122
  this.atualizarSelecaoVisual(), this.atualizarGatilho();
123
123
  else if (e === "posicao")
124
124
  this.atualizarPosicaoClasses();
125
125
  else if (e === "aberto") {
126
- const i = a !== null && a !== "false";
127
- this.aplicarEstadoAberto(i);
128
- } else e === "compacto" && this.triggerBtn.classList.toggle("compacto", a !== null && a !== "false");
126
+ const t = a !== null && a !== "false";
127
+ this.aplicarEstadoAberto(t);
128
+ } else if (e === "compacto")
129
+ this.triggerBtn.classList.toggle("compacto", a !== null && a !== "false");
130
+ else if (e === "desabilitado") {
131
+ const t = a !== null && a !== "false";
132
+ this.triggerBtn.disabled = t, t && this.fechar();
133
+ }
134
+ }
129
135
  }
130
136
  // --- Getters e Setters de Propriedades ---
131
137
  get mapaBaseAtivo() {
@@ -158,6 +164,12 @@ class u extends d {
158
164
  set compacto(e) {
159
165
  e ? this.setAttribute("compacto", "") : this.removeAttribute("compacto");
160
166
  }
167
+ get desabilitado() {
168
+ return this.hasAttribute("desabilitado") && this.getAttribute("desabilitado") !== "false";
169
+ }
170
+ set desabilitado(e) {
171
+ e ? this.setAttribute("desabilitado", "") : this.removeAttribute("desabilitado");
172
+ }
161
173
  get mapasBase() {
162
174
  return this._mapasBase;
163
175
  }
@@ -166,21 +178,23 @@ class u extends d {
166
178
  }
167
179
  // --- Ações Públicas ---
168
180
  abrir() {
169
- this.aberto = !0;
181
+ this.desabilitado || (this.aberto = !0);
170
182
  }
171
183
  fechar() {
172
184
  this.aberto = !1;
173
185
  }
174
186
  alternar() {
175
- this.aberto = !this.aberto;
187
+ this.aberto ? this.fechar() : this.abrir();
176
188
  }
177
189
  selecionar(e) {
178
190
  if (!e || this.mapaBaseAtivo === e) {
179
191
  this.fechar();
180
192
  return;
181
193
  }
194
+ const i = this._mapasBase.find((t) => t.id === e);
195
+ if (!i) return;
182
196
  this.mapaBaseAtivo = e;
183
- const t = this._mapasBase.find((i) => i.id === e), a = { mapaBaseId: e, item: t };
197
+ const a = { mapaBaseId: e, item: i };
184
198
  this.dispatchEvent(new CustomEvent("ui-mapa-base-alterado", {
185
199
  detail: a,
186
200
  bubbles: !0,
@@ -200,53 +214,86 @@ class u extends d {
200
214
  this.popoverEl.classList.toggle("aberto", e), this.triggerBtn.classList.toggle("active", e), this.triggerBtn.setAttribute("aria-expanded", String(e));
201
215
  }
202
216
  atualizarGatilho() {
203
- const e = this.mapaBaseAtivo, t = this._mapasBase.find((a) => a.id === e) || this._mapasBase[0];
204
- 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="${n(t.thumbnailUrl)}" alt="${n(t.nome)}" />` : this.thumbEl.innerHTML = `<span class="ui-basemap-thumb-mini fallback">${l}</span>`) : (this.labelEl.textContent = "Mapa Base", this.thumbEl.innerHTML = `<span class="ui-basemap-thumb-mini fallback">${v}</span>`);
217
+ const e = this.mapaBaseAtivo, i = this._mapasBase.find((a) => a.id === e) || this._mapasBase[0];
218
+ 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">${c}</span>`) : (this.labelEl.textContent = "Mapa Base", this.thumbEl.innerHTML = `<span class="ui-basemap-thumb-mini fallback">${f}</span>`);
205
219
  }
206
220
  renderizarOpcoes() {
207
221
  const e = this.shadow.getElementById("popover-count");
208
222
  e && (e.textContent = `${this._mapasBase.length} opções`);
209
- const t = this.mapaBaseAtivo;
223
+ const i = this.mapaBaseAtivo;
210
224
  this.listEl.innerHTML = this._mapasBase.map((a) => {
211
- const i = a.id === t, o = a.thumbnailUrl ? `<img class="ui-basemap-item-preview" src="${n(a.thumbnailUrl)}" alt="${n(a.nome)}" loading="lazy" />` : `<div class="ui-basemap-item-preview-none">${l}</div>`;
225
+ 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">${c}</div>`;
212
226
  return `
213
- <div class="ui-basemap-item ${i ? "active" : ""}"
227
+ <div class="ui-basemap-item ${t ? "active" : ""}"
214
228
  data-id="${n(a.id)}"
215
229
  role="option"
216
- aria-selected="${i}"
230
+ aria-selected="${t}"
217
231
  tabindex="0">
218
- ${o}
232
+ ${r}
219
233
  <div class="ui-basemap-item-info">
220
234
  <span class="ui-basemap-item-nome">${n(a.nome)}</span>
221
235
  ${a.descricao ? `<span class="ui-basemap-item-desc">${n(a.descricao)}</span>` : ""}
222
236
  </div>
223
- <span class="ui-basemap-item-check">${w}</span>
237
+ <span class="ui-basemap-item-check">${k}</span>
224
238
  </div>
225
239
  `;
226
240
  }).join("");
227
241
  }
242
+ focarItem(e) {
243
+ const i = Array.from(this.listEl.querySelectorAll(".ui-basemap-item"));
244
+ if (i.length === 0) return;
245
+ const a = i.indexOf(this.shadow.activeElement);
246
+ let t;
247
+ switch (e) {
248
+ case "ativo":
249
+ t = Math.max(0, i.findIndex((r) => r.classList.contains("active")));
250
+ break;
251
+ case "proximo":
252
+ t = Math.min(i.length - 1, a + 1);
253
+ break;
254
+ case "anterior":
255
+ t = Math.max(0, a - 1);
256
+ break;
257
+ case "primeiro":
258
+ t = 0;
259
+ break;
260
+ default:
261
+ t = i.length - 1;
262
+ }
263
+ i[t].focus();
264
+ }
228
265
  atualizarSelecaoVisual() {
229
266
  const e = this.mapaBaseAtivo;
230
267
  this.listEl.querySelectorAll(".ui-basemap-item").forEach((a) => {
231
- const o = a.getAttribute("data-id") === e;
232
- a.classList.toggle("active", o), a.setAttribute("aria-selected", String(o));
268
+ const r = a.getAttribute("data-id") === e;
269
+ a.classList.toggle("active", r), a.setAttribute("aria-selected", String(r));
233
270
  });
234
271
  }
235
272
  conectarEventos() {
236
273
  this.listeners.add(this.triggerBtn, "click", (a) => {
237
- a.stopPropagation(), this.alternar();
274
+ a.stopPropagation(), this.alternar(), this.aberto && a.detail === 0 && this.focarItem("ativo");
238
275
  }), this.listeners.add(this.listEl, "click", (a) => {
239
- const i = a.target.closest(".ui-basemap-item");
240
- if (!i) return;
241
- const o = i.getAttribute("data-id");
242
- o && this.selecionar(o);
276
+ const t = a.target.closest(".ui-basemap-item");
277
+ if (!t) return;
278
+ const r = t.getAttribute("data-id");
279
+ r && this.selecionar(r);
243
280
  }), this.listeners.add(this.listEl, "keydown", (a) => {
281
+ const t = {
282
+ ArrowDown: "proximo",
283
+ ArrowUp: "anterior",
284
+ Home: "primeiro",
285
+ End: "ultimo"
286
+ };
287
+ if (t[a.key]) {
288
+ a.preventDefault(), this.focarItem(t[a.key]);
289
+ return;
290
+ }
244
291
  if (a.key === "Enter" || a.key === " ") {
245
- const i = a.target.closest(".ui-basemap-item");
246
- if (i) {
292
+ const r = a.target.closest(".ui-basemap-item");
293
+ if (r) {
247
294
  a.preventDefault();
248
- const o = i.getAttribute("data-id");
249
- o && this.selecionar(o);
295
+ const l = r.getAttribute("data-id");
296
+ l && this.selecionar(l);
250
297
  }
251
298
  }
252
299
  });
@@ -254,22 +301,25 @@ class u extends d {
254
301
  if (!this.aberto) return;
255
302
  a.composedPath().includes(this) || this.fechar();
256
303
  };
257
- this.listeners.add(document, "click", e);
258
- const t = (a) => {
304
+ this.listeners.add(document, "click", e), this.listeners.add(this.wrapperEl, "focusout", (a) => {
305
+ const t = a.relatedTarget;
306
+ this.aberto && t && !this.shadow.contains(t) && !this.contains(t) && this.fechar();
307
+ });
308
+ const i = (a) => {
259
309
  a.key === "Escape" && this.aberto && (this.fechar(), this.triggerBtn.focus());
260
310
  };
261
- this.listeners.add(document, "keydown", t);
311
+ this.listeners.add(document, "keydown", i);
262
312
  }
263
313
  }
264
- function n(r) {
265
- return r ? String(r).replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&#039;") : "";
314
+ function n(o) {
315
+ return o ? String(o).replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&#039;") : "";
266
316
  }
267
- class k extends u {
317
+ class y extends b {
268
318
  }
269
- c("ui-seletor-mapa-base", u);
270
- c("ui-mapa-base", k);
319
+ u("ui-seletor-mapa-base", b);
320
+ u("ui-mapa-base", y);
271
321
  export {
272
322
  x as MAPAS_BASE_PADRAO,
273
- k as UIMapaBase,
274
- u as UISeletorMapaBase
323
+ y as UIMapaBase,
324
+ b as UISeletorMapaBase
275
325
  };
@@ -0,0 +1,50 @@
1
+ const i = /* @__PURE__ */ new Set([
2
+ "svg",
3
+ "g",
4
+ "path",
5
+ "rect",
6
+ "circle",
7
+ "ellipse",
8
+ "line",
9
+ "polyline",
10
+ "polygon",
11
+ "text",
12
+ "tspan",
13
+ "title",
14
+ "desc",
15
+ "defs",
16
+ "symbol",
17
+ "use",
18
+ "lineargradient",
19
+ "radialgradient",
20
+ "stop",
21
+ "clippath",
22
+ "mask"
23
+ ]), a = /^(javascript|data|vbscript):/i, o = /url\s*\(\s*['"]?\s*(?!#)/i;
24
+ function u(t, e) {
25
+ const r = t.toLowerCase();
26
+ if (r.startsWith("on")) return !1;
27
+ const n = e.replace(/[\s\u0000-\u001f]+/g, "");
28
+ return a.test(n) ? !1 : r === "href" || r === "xlink:href" ? n.startsWith("#") : !o.test(e);
29
+ }
30
+ function s(t) {
31
+ Array.from(t.children).forEach((e) => {
32
+ if (!i.has(e.localName.toLowerCase())) {
33
+ e.remove();
34
+ return;
35
+ }
36
+ s(e);
37
+ }), Array.from(t.attributes).forEach((e) => {
38
+ u(e.name, e.value) || t.removeAttribute(e.name);
39
+ });
40
+ }
41
+ function c(t) {
42
+ if (!t || typeof t != "string" || typeof document > "u") return null;
43
+ const e = document.createElement("template");
44
+ e.innerHTML = t.trim();
45
+ const r = e.content.querySelector("svg");
46
+ return r ? (s(r), r) : null;
47
+ }
48
+ export {
49
+ c as h
50
+ };
@@ -0,0 +1 @@
1
+ "use strict";const s=new Set(["svg","g","path","rect","circle","ellipse","line","polyline","polygon","text","tspan","title","desc","defs","symbol","use","lineargradient","radialgradient","stop","clippath","mask"]),a=/^(javascript|data|vbscript):/i,o=/url\s*\(\s*['"]?\s*(?!#)/i;function u(t,e){const r=t.toLowerCase();if(r.startsWith("on"))return!1;const n=e.replace(/[\s\u0000-\u001f]+/g,"");return a.test(n)?!1:r==="href"||r==="xlink:href"?n.startsWith("#"):!o.test(e)}function i(t){Array.from(t.children).forEach(e=>{if(!s.has(e.localName.toLowerCase())){e.remove();return}i(e)}),Array.from(t.attributes).forEach(e=>{u(e.name,e.value)||t.removeAttribute(e.name)})}function c(t){if(!t||typeof t!="string"||typeof document>"u")return null;const e=document.createElement("template");e.innerHTML=t.trim();const r=e.content.querySelector("svg");return r?(i(r),r):null}exports.higienizarSvg=c;
package/dist/tabela.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});;/* empty css */const r=require("./ui-tabela-propriedades-D3pyQvyy.cjs");exports.GerenciadorValoresPropriedades=r.GerenciadorValoresPropriedades;exports.TabelaOrquestradorDados=r.TabelaOrquestradorDados;exports.TabelaRemotaController=r.TabelaRemotaController;exports.TabelaSelecaoController=r.TabelaSelecaoController;exports.UITabela=r.UITabela;exports.UITabelaPropriedades=r.UITabelaPropriedades;exports.abrirPopoverRedimensionamento=r.abrirPopoverRedimensionamento;exports.alternarCategoria=r.alternarCategoria;exports.alternarDirecaoOrdenacao=r.alternarDirecaoOrdenacao;exports.alternarPosicionamentoFlutuante=r.alternarPosicionamentoFlutuante;exports.aplicarOrdenacaoTabela=r.aplicarOrdenacaoTabela;exports.atualizarCampoVisual=r.atualizarCampoVisual;exports.avaliarExpressaoMatematica=r.avaliarExpressaoMatematica;exports.colapsarTodasCategorias=r.colapsarTodasCategorias;exports.conectarArrastoFlutuante=r.conectarArrastoFlutuante;exports.conectarPainelControles=r.conectarPainelControles;exports.criarControladorSplitter=r.criarControladorSplitter;exports.criarEditorAcao=r.criarEditorAcao;exports.criarEditorBooleano=r.criarEditorBooleano;exports.criarEditorCorCad=r.criarEditorCorCad;exports.criarEditorCorSwatch=r.criarEditorCorSwatch;exports.criarEditorLinetype=r.criarEditorLinetype;exports.criarEditorLineweight=r.criarEditorLineweight;exports.criarEditorNumero=r.criarEditorNumero;exports.criarEditorReadonly=r.criarEditorReadonly;exports.criarEditorSelecao=r.criarEditorSelecao;exports.criarEditorTexto=r.criarEditorTexto;exports.criarEditorValor=r.criarEditorValor;exports.criarLinhaPropriedade=r.criarLinhaPropriedade;exports.executarOrquestracaoCorpo=r.executarOrquestracaoCorpo;exports.executarOrquestracaoHeader=r.executarOrquestracaoHeader;exports.executarRedimensionamentoColuna=r.executarRedimensionamentoColuna;exports.exibirPromptPopoverRedimensionamento=r.exibirPromptPopoverRedimensionamento;exports.expandirTodasCategorias=r.expandirTodasCategorias;exports.focarProximoEditor=r.focarProximoEditor;exports.formatWidth=r.formatWidth;exports.getAlignmentClass=r.getAlignmentClass;exports.getRowHeight=r.getRowHeight;exports.getTextAlign=r.getTextAlign;exports.inicializarScrollVirtualizacao=r.inicializarScrollVirtualizacao;exports.iniciarRedimensionamentoColuna=r.iniciarRedimensionamentoColuna;exports.localizarIndiceItem=r.localizarIndiceItem;exports.montarEstruturaDOM=r.montarEstruturaDOM;exports.orquestrarEstruturaInicial=r.orquestrarEstruturaInicial;exports.proximaDensidade=r.proximaDensidade;exports.renderizarCategoriasETree=r.renderizarCategoriasETree;exports.renderizarCorpoTabela=r.renderizarCorpoTabela;exports.renderizarHeaderTabela=r.renderizarHeaderTabela;exports.renderizarSeletorTipos=r.renderizarSeletorTipos;exports.sincronizarAtributosTabela=r.sincronizarAtributosTabela;exports.sincronizarPainelControles=r.sincronizarPainelControles;exports.tratarMudancaAtributoTabela=r.tratarMudancaAtributoTabela;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});;/* empty css */const r=require("./ui-tabela-propriedades-BBr5sqki.cjs");exports.GerenciadorValoresPropriedades=r.GerenciadorValoresPropriedades;exports.TabelaOrquestradorDados=r.TabelaOrquestradorDados;exports.TabelaRemotaController=r.TabelaRemotaController;exports.TabelaSelecaoController=r.TabelaSelecaoController;exports.UITabela=r.UITabela;exports.UITabelaPropriedades=r.UITabelaPropriedades;exports.abrirPopoverRedimensionamento=r.abrirPopoverRedimensionamento;exports.alternarCategoria=r.alternarCategoria;exports.alternarDirecaoOrdenacao=r.alternarDirecaoOrdenacao;exports.alternarPosicionamentoFlutuante=r.alternarPosicionamentoFlutuante;exports.aplicarOrdenacaoTabela=r.aplicarOrdenacaoTabela;exports.atualizarCampoVisual=r.atualizarCampoVisual;exports.avaliarExpressaoMatematica=r.avaliarExpressaoMatematica;exports.buscarLinhaPropriedade=r.buscarLinhaPropriedade;exports.colapsarTodasCategorias=r.colapsarTodasCategorias;exports.conectarArrastoFlutuante=r.conectarArrastoFlutuante;exports.conectarPainelControles=r.conectarPainelControles;exports.criarControladorSplitter=r.criarControladorSplitter;exports.criarEditorAcao=r.criarEditorAcao;exports.criarEditorBooleano=r.criarEditorBooleano;exports.criarEditorCorCad=r.criarEditorCorCad;exports.criarEditorCorSwatch=r.criarEditorCorSwatch;exports.criarEditorLinetype=r.criarEditorLinetype;exports.criarEditorLineweight=r.criarEditorLineweight;exports.criarEditorNumero=r.criarEditorNumero;exports.criarEditorReadonly=r.criarEditorReadonly;exports.criarEditorSelecao=r.criarEditorSelecao;exports.criarEditorTexto=r.criarEditorTexto;exports.criarEditorValor=r.criarEditorValor;exports.criarLinhaPropriedade=r.criarLinhaPropriedade;exports.executarOrquestracaoCorpo=r.executarOrquestracaoCorpo;exports.executarOrquestracaoHeader=r.executarOrquestracaoHeader;exports.executarRedimensionamentoColuna=r.executarRedimensionamentoColuna;exports.exibirPromptPopoverRedimensionamento=r.exibirPromptPopoverRedimensionamento;exports.expandirTodasCategorias=r.expandirTodasCategorias;exports.focarProximoEditor=r.focarProximoEditor;exports.formatWidth=r.formatWidth;exports.getAlignmentClass=r.getAlignmentClass;exports.getRowHeight=r.getRowHeight;exports.getTextAlign=r.getTextAlign;exports.inicializarScrollVirtualizacao=r.inicializarScrollVirtualizacao;exports.iniciarRedimensionamentoColuna=r.iniciarRedimensionamentoColuna;exports.interpretarIndice=r.interpretarIndice;exports.localizarIndiceItem=r.localizarIndiceItem;exports.montarEstruturaDOM=r.montarEstruturaDOM;exports.orquestrarEstruturaInicial=r.orquestrarEstruturaInicial;exports.proximaDensidade=r.proximaDensidade;exports.registrarAtualizadorEditor=r.registrarAtualizadorEditor;exports.renderizarCategoriasETree=r.renderizarCategoriasETree;exports.renderizarCorpoTabela=r.renderizarCorpoTabela;exports.renderizarHeaderTabela=r.renderizarHeaderTabela;exports.renderizarSeletorTipos=r.renderizarSeletorTipos;exports.sincronizarAtributosTabela=r.sincronizarAtributosTabela;exports.sincronizarPainelControles=r.sincronizarPainelControles;exports.sincronizarSelect=r.sincronizarSelect;exports.tratarMudancaAtributoTabela=r.tratarMudancaAtributoTabela;exports.valoresIguais=r.valoresIguais;