@thibezer/ui-components-kit 2.17.1 → 2.17.3

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 (126) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/dist/camadas.cjs +80 -83
  3. package/dist/camadas.js +1131 -869
  4. package/dist/components/ui-camadas/camadas-arvore-renderer.d.ts +1 -0
  5. package/dist/components/ui-camadas/camadas-atualizacao-incremental.d.ts +1 -0
  6. package/dist/components/ui-camadas/camadas-colecao.d.ts +1 -0
  7. package/dist/components/ui-camadas/camadas-drag-drop.d.ts +2 -0
  8. package/dist/components/ui-camadas/camadas-drop-ops.d.ts +34 -0
  9. package/dist/components/ui-camadas/camadas-lembranca.d.ts +2 -1
  10. package/dist/components/ui-camadas/camadas-persistencia.d.ts +3 -0
  11. package/dist/components/ui-camadas/ui-camadas.d.ts +1 -0
  12. package/dist/custom-elements.json +4531 -4079
  13. package/dist/tipos-elementos.d.ts +3 -0
  14. package/dist/tipos-vue.d.ts +3 -0
  15. package/package.json +1 -1
  16. package/dist/form-validacao-BIOXxt-1.js +0 -140
  17. package/dist/form-validacao-ytRYSF3E.cjs +0 -1
  18. package/dist/gerencigeo-canvas/layer_defaults.d.ts +0 -3
  19. package/dist/gerencigeo-canvas/layer_instance_ops.d.ts +0 -6
  20. package/dist/gerencigeo-canvas/layer_state_ops.d.ts +0 -6
  21. package/dist/leaflet-DcO7uRC-.cjs +0 -1
  22. package/dist/leaflet-PPDKB6Dd.js +0 -69
  23. package/dist/motor-BCWqlv3e.cjs +0 -1
  24. package/dist/motor-CXjQjVba.js +0 -1386
  25. package/dist/svg-seguro-BsbNQqpd.js +0 -50
  26. package/dist/svg-seguro-C76iLlAZ.cjs +0 -1
  27. package/dist/ui-badge-1UU8vT-b.js +0 -198
  28. package/dist/ui-badge-B5J_c5P5.js +0 -197
  29. package/dist/ui-badge-BxT-sDmV.cjs +0 -28
  30. package/dist/ui-badge-C0eKBI8E.js +0 -183
  31. package/dist/ui-badge-CKKKPdt8.cjs +0 -28
  32. package/dist/ui-badge-DC4y6Dik.cjs +0 -28
  33. package/dist/ui-botao-BOOnP8ds.cjs +0 -12
  34. package/dist/ui-botao-D24oXySA.cjs +0 -12
  35. package/dist/ui-botao-DfqSivHl.js +0 -165
  36. package/dist/ui-botao-Dsj08jjw.js +0 -165
  37. package/dist/ui-botao-OGJV6Vfk.js +0 -165
  38. package/dist/ui-botao-bU_bf6SU.js +0 -166
  39. package/dist/ui-botao-psS1juof.cjs +0 -12
  40. package/dist/ui-botao-xTbH5mpH.cjs +0 -12
  41. package/dist/ui-campo-texto-19tIrmBK.js +0 -377
  42. package/dist/ui-campo-texto-CH8mzX61.cjs +0 -16
  43. package/dist/ui-campo-texto-Cnn2UAkS.cjs +0 -16
  44. package/dist/ui-campo-texto-DVU_sWV1.cjs +0 -16
  45. package/dist/ui-campo-texto-Uu2dJE_0.js +0 -379
  46. package/dist/ui-campo-texto-W5M0gNE4.js +0 -377
  47. package/dist/ui-card-0wu4rjEX.cjs +0 -20
  48. package/dist/ui-card-B86lJXTP.cjs +0 -20
  49. package/dist/ui-card-BYyYxxY1.cjs +0 -20
  50. package/dist/ui-card-C_o5_0cB.js +0 -111
  51. package/dist/ui-card-CojoGXaT.js +0 -144
  52. package/dist/ui-card-DRtpOo3l.js +0 -143
  53. package/dist/ui-controle-cores-B4R6ct4I.js +0 -291
  54. package/dist/ui-controle-cores-BS0WYPdi.js +0 -572
  55. package/dist/ui-controle-cores-Bq_XUrIQ.cjs +0 -32
  56. package/dist/ui-controle-cores-BtA6yzu3.js +0 -291
  57. package/dist/ui-controle-cores-C8um-If9.cjs +0 -32
  58. package/dist/ui-controle-cores-CHMKGemo.cjs +0 -141
  59. package/dist/ui-controle-cores-C_cVXxCn.js +0 -291
  60. package/dist/ui-controle-cores-CuDFS8Y8.cjs +0 -32
  61. package/dist/ui-controle-cores-Dog7ERYv.js +0 -697
  62. package/dist/ui-controle-cores-Er6ZcQ7U.cjs +0 -111
  63. package/dist/ui-linha-BxhEBn27.js +0 -749
  64. package/dist/ui-linha-C306zxWG.cjs +0 -19
  65. package/dist/ui-linha-C_azWkcG.js +0 -517
  66. package/dist/ui-linha-CcalUBDw.cjs +0 -38
  67. package/dist/ui-linha-DAz6DBcl.cjs +0 -38
  68. package/dist/ui-linha-DkxwMhD-.js +0 -749
  69. package/dist/ui-modal-4nU-tXjO.cjs +0 -18
  70. package/dist/ui-modal-BkYvNP0G.js +0 -214
  71. package/dist/ui-modal-BwB9fksp.js +0 -214
  72. package/dist/ui-modal-CUNbpbZ1.cjs +0 -18
  73. package/dist/ui-modal-CvGFGh1h.cjs +0 -18
  74. package/dist/ui-modal-DBOtSTbR.js +0 -238
  75. package/dist/ui-paleta-ferramentas-BXXrI1Y7.js +0 -1233
  76. package/dist/ui-paleta-ferramentas-CEZYcN4J.js +0 -624
  77. package/dist/ui-paleta-ferramentas-CU4icLl0.js +0 -1171
  78. package/dist/ui-paleta-ferramentas-Ccmo-rB5.cjs +0 -21
  79. package/dist/ui-paleta-ferramentas-CsPMTY0G.cjs +0 -21
  80. package/dist/ui-paleta-ferramentas-DLwZHIDv.cjs +0 -21
  81. package/dist/ui-paleta-ferramentas-DNN5i6nL.js +0 -860
  82. package/dist/ui-paleta-ferramentas-Dbj1kBS9.cjs +0 -18
  83. package/dist/ui-paleta-ferramentas-DbwdWVtT.js +0 -1173
  84. package/dist/ui-paleta-ferramentas-bvqxj1Yd.cjs +0 -21
  85. package/dist/ui-segmented-D6b6zxVs.cjs +0 -19
  86. package/dist/ui-segmented-DyF5YLsV.js +0 -418
  87. package/dist/ui-segmented-rn9RxRGM.cjs +0 -19
  88. package/dist/ui-segmented-wUraId2e.js +0 -412
  89. package/dist/ui-seletor-cor-C4U2eqxY.cjs +0 -82
  90. package/dist/ui-seletor-cor-D2_C6Aor.js +0 -391
  91. package/dist/ui-seletor-cor-DPKqf5wb.cjs +0 -82
  92. package/dist/ui-seletor-cor-FYtRccnK.js +0 -396
  93. package/dist/ui-skeleton-B2Rgrv8o.js +0 -648
  94. package/dist/ui-skeleton-DEHwpDqa.js +0 -648
  95. package/dist/ui-skeleton-DI4_9WOX.js +0 -428
  96. package/dist/ui-skeleton-DiOxTBZK.cjs +0 -52
  97. package/dist/ui-skeleton-SPYqku8P.cjs +0 -52
  98. package/dist/ui-skeleton-W9uwIceA.js +0 -585
  99. package/dist/ui-skeleton-elhKIh2B.cjs +0 -33
  100. package/dist/ui-skeleton-sIphhOSx.cjs +0 -52
  101. package/dist/ui-switch-BL-x_-SM.js +0 -1202
  102. package/dist/ui-switch-BcOqOkiV.js +0 -856
  103. package/dist/ui-switch-C0i_3QXu.cjs +0 -66
  104. package/dist/ui-switch-D7iPKDj-.cjs +0 -53
  105. package/dist/ui-switch-DAIgOhqr.cjs +0 -66
  106. package/dist/ui-switch-_F8yubdX.js +0 -1203
  107. package/dist/ui-tabela-propriedades-2bq2nX-b.js +0 -3202
  108. package/dist/ui-tabela-propriedades-8IAYmk3P.cjs +0 -142
  109. package/dist/ui-tabela-propriedades-B8AwlpqL.cjs +0 -141
  110. package/dist/ui-tabela-propriedades-BBr5sqki.cjs +0 -145
  111. package/dist/ui-tabela-propriedades-BecPqC-e.cjs +0 -141
  112. package/dist/ui-tabela-propriedades-BoYXzP5Z.js +0 -3191
  113. package/dist/ui-tabela-propriedades-BokvDD3b.js +0 -2648
  114. package/dist/ui-tabela-propriedades-Boy7I5yW.js +0 -2412
  115. package/dist/ui-tabela-propriedades-C-PeuW1i.cjs +0 -141
  116. package/dist/ui-tabela-propriedades-C5YYnod1.js +0 -3053
  117. package/dist/ui-tabela-propriedades-CnfW9DZG.cjs +0 -142
  118. package/dist/ui-tabela-propriedades-CyPyKXtB.js +0 -3013
  119. package/dist/ui-tabela-propriedades-DWOKznMN.cjs +0 -142
  120. package/dist/ui-tabela-propriedades-Df9ajC6M.js +0 -2648
  121. package/dist/ui-tabela-propriedades-DqvPilK_.cjs +0 -142
  122. package/dist/ui-tabela-propriedades-DuaC4sFX.js +0 -2767
  123. package/dist/ui-toast-Bp_NlM5G.js +0 -156
  124. package/dist/ui-toast-DGTZKne5.cjs +0 -20
  125. package/dist/zero-js-triggers-C_KrvFOQ.js +0 -244
  126. package/dist/zero-js-triggers-C_gtaojZ.cjs +0 -1
@@ -1,585 +0,0 @@
1
- var N = Object.defineProperty;
2
- var q = (n, l, t) => l in n ? N(n, l, { enumerable: !0, configurable: !0, writable: !0, value: t }) : n[l] = t;
3
- var r = (n, l, t) => q(n, typeof l != "symbol" ? l + "" : l, t);
4
- import { L as C } from "./listener-bag-DQgv7OON.js";
5
- import { d as h, S as g } from "./ssr-safe-5cWfJP-s.js";
6
- import { U as z } from "./ui-bus-CUd99VJi.js";
7
- const R = ':host{display:block;box-sizing:border-box;font-family:var(--ui-fonte-base, "Inter", sans-serif)}.ui-drawer__backdrop{position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:#000000a6;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:calc(var(--ui-z-drawer, 700) - 1);opacity:0;pointer-events:none;transition:opacity .25s ease}:host([aberto]) .ui-drawer__backdrop,:host([open]) .ui-drawer__backdrop{opacity:1;pointer-events:auto}.ui-drawer__painel{position:fixed;z-index:var(--ui-z-drawer, 700);background-color:var(--ui-cor-fundo-card, #18181c);border:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .12));box-shadow:var(--ui-sombra-lg, 0 16px 40px rgba(0, 0, 0, .7));display:flex;flex-direction:column;opacity:0;visibility:hidden;pointer-events:none;transition:transform .25s cubic-bezier(.16,1,.3,1),opacity .2s ease,visibility .2s ease;box-sizing:border-box;color:var(--ui-cor-texto, #e1e1e6)}:host(:not([posicao])) .ui-drawer__painel,:host([posicao="direita"]) .ui-drawer__painel,:host([position="right"]) .ui-drawer__painel{top:0;right:0;bottom:0;width:var(--ui-drawer-largura, 480px);max-width:92vw;height:100vh;transform:translate(100%);border-left:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .16))}:host([aberto]:not([posicao])) .ui-drawer__painel,:host([open]:not([posicao])) .ui-drawer__painel,:host([aberto][posicao="direita"]) .ui-drawer__painel,:host([open][posicao="direita"]) .ui-drawer__painel,:host([aberto][position="right"]) .ui-drawer__painel,:host([open][position="right"]) .ui-drawer__painel{transform:translate(0);opacity:1;visibility:visible;pointer-events:auto}:host([posicao="esquerda"]) .ui-drawer__painel,:host([position="left"]) .ui-drawer__painel{top:0;left:0;bottom:0;width:var(--ui-drawer-largura, 480px);max-width:92vw;height:100vh;transform:translate(-100%);border-right:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .16))}:host([aberto][posicao="esquerda"]) .ui-drawer__painel,:host([open][posicao="esquerda"]) .ui-drawer__painel,:host([aberto][position="left"]) .ui-drawer__painel,:host([open][position="left"]) .ui-drawer__painel{transform:translate(0);opacity:1;visibility:visible;pointer-events:auto}:host([posicao="baixo"]) .ui-drawer__painel,:host([position="bottom"]) .ui-drawer__painel{bottom:0;left:0;right:0;width:100vw;max-height:85vh;transform:translateY(100%);border-top:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .16));border-top-left-radius:14px;border-top-right-radius:14px}:host([aberto][posicao="baixo"]) .ui-drawer__painel,:host([open][posicao="baixo"]) .ui-drawer__painel,:host([aberto][position="bottom"]) .ui-drawer__painel,:host([open][position="bottom"]) .ui-drawer__painel{transform:translateY(0);opacity:1;visibility:visible;pointer-events:auto}:host([posicao="cima"]) .ui-drawer__painel,:host([position="top"]) .ui-drawer__painel{top:0;left:0;right:0;width:100vw;max-height:85vh;transform:translateY(-100%);border-bottom:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .16));border-bottom-left-radius:14px;border-bottom-right-radius:14px}:host([aberto][posicao="cima"]) .ui-drawer__painel,:host([open][posicao="cima"]) .ui-drawer__painel,:host([aberto][position="top"]) .ui-drawer__painel,:host([open][position="top"]) .ui-drawer__painel{transform:translateY(0);opacity:1;visibility:visible;pointer-events:auto}.ui-drawer__header{padding:16px 20px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .08));flex-shrink:0}.ui-drawer__titulo-container{display:flex;flex-direction:column;gap:2px}.ui-drawer__titulo{margin:0;font-size:16px;font-weight:600;color:var(--ui-cor-texto, #ffffff)}.ui-drawer__descricao{margin:0;font-size:13px;color:var(--ui-cor-texto-secundario, #888899)}.ui-drawer__close{background:transparent;border:none;color:var(--ui-cor-texto-secundario, #888899);font-size:16px;cursor:pointer;padding:6px;border-radius:6px;line-height:1;display:flex;align-items:center;justify-content:center;transition:color .15s ease,background-color .15s ease}.ui-drawer__close svg,.ui-drawer__close ::slotted(svg){shape-rendering:geometricPrecision}.ui-drawer__close:hover{color:var(--ui-cor-texto, #ffffff);background-color:var(--ui-cor-hover-menu, rgba(255, 255, 255, .08))}.ui-drawer__close:focus-visible{outline:none;box-shadow:0 0 0 2px var(--ui-cor-primaria, #00E08A)}.ui-drawer__body{padding:20px;overflow-y:auto;flex:1;box-sizing:border-box}.ui-drawer__footer{padding:14px 20px;border-top:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .08));display:flex;align-items:center;justify-content:flex-end;gap:10px;background-color:var(--ui-cor-fundo-recuado, rgba(0, 0, 0, .15));flex-shrink:0}@starting-style{:host([aberto]:not([posicao])) .ui-drawer__painel,:host([open]:not([posicao])) .ui-drawer__painel,:host([aberto][posicao="direita"]) .ui-drawer__painel,:host([open][posicao="direita"]) .ui-drawer__painel{transform:translate(100%);opacity:0}:host([aberto][posicao="esquerda"]) .ui-drawer__painel,:host([open][posicao="esquerda"]) .ui-drawer__painel{transform:translate(-100%);opacity:0}:host([aberto][posicao="baixo"]) .ui-drawer__painel,:host([open][posicao="baixo"]) .ui-drawer__painel{transform:translateY(100%);opacity:0}:host([aberto]) .ui-drawer__backdrop,:host([open]) .ui-drawer__backdrop{opacity:0}}', _ = 'a[href], button, input, textarea, select, details, [tabindex]:not([tabindex="-1"]), ui-campo-texto, ui-botao, ui-botao-primario, ui-checkbox, ui-switch, ui-lista-flutuante, ui-radio, ui-select, ui-segmented';
8
- function y(n, l) {
9
- let t = Array.from(n.querySelectorAll(_));
10
- t = t.filter((o) => {
11
- try {
12
- return window.getComputedStyle(o).display !== "none";
13
- } catch {
14
- return !0;
15
- }
16
- });
17
- const i = n.querySelectorAll("slot"), e = [];
18
- return i.forEach((o) => {
19
- o.assignedElements({ flatten: !0 }).forEach((s) => {
20
- s instanceof HTMLElement && (s.matches(_) && e.push(s), e.push(...Array.from(s.querySelectorAll(_))));
21
- });
22
- }), [...t, ...e].filter((o) => !o.hasAttribute("disabled") && o.getAttribute("aria-hidden") !== "true");
23
- }
24
- function M(n) {
25
- if (typeof document > "u") return !0;
26
- const l = Array.from(
27
- document.querySelectorAll("ui-drawer[aberto], ui-drawer[open], ui-sheet[aberto], ui-sheet[open]")
28
- );
29
- return l[l.length - 1] === n;
30
- }
31
- function D(n, l, t, i) {
32
- if (l.length === 0) {
33
- n.preventDefault();
34
- return;
35
- }
36
- const e = l[0], o = l[l.length - 1], a = t.getRootNode(), s = a == null ? void 0 : a.activeElement;
37
- n.shiftKey ? (s === e || !t.contains(s) && !i.contains(s)) && (n.preventDefault(), o.focus()) : (s === o || !t.contains(s) && !i.contains(s)) && (n.preventDefault(), e.focus());
38
- }
39
- function I() {
40
- if (typeof document > "u") return;
41
- document.querySelectorAll(
42
- "ui-modal[aberto], ui-modal[open], ui-dialog[aberto], ui-dialog[open], ui-drawer[aberto], ui-drawer[open], ui-sheet[aberto], ui-sheet[open]"
43
- ).length > 0 ? document.body.style.overflow = "hidden" : document.body.style.overflow = "";
44
- }
45
- class b extends g {
46
- constructor() {
47
- super();
48
- r(this, "backdropElement");
49
- r(this, "painelElement");
50
- r(this, "tituloElement");
51
- r(this, "descricaoElement");
52
- r(this, "closeElement");
53
- r(this, "listeners", new C());
54
- r(this, "_elementoGatilho", null);
55
- r(this, "_focables", []);
56
- r(this, "handleSlotChange", () => {
57
- this.syncState();
58
- });
59
- r(this, "handleBackdropClick", (t) => {
60
- t.stopPropagation(), this.hasAttribute("estatico") || this.hasAttribute("static") || this.fechar();
61
- });
62
- r(this, "handleCloseClick", (t) => {
63
- t.stopPropagation(), this.fechar();
64
- });
65
- r(this, "handleKeyDown", (t) => {
66
- this.aberto && M(this) && (t.key === "Escape" ? this.hasAttribute("estatico") || this.hasAttribute("static") || (this.fechar(), t.stopImmediatePropagation()) : t.key === "Tab" && (this._focables = y(this.shadowRoot), D(t, this._focables, this, this.shadowRoot)));
67
- });
68
- const t = this.attachShadow({ mode: "open" });
69
- t.innerHTML = `
70
- <style>${R}</style>
71
- <div class="ui-drawer__backdrop" part="fundo"></div>
72
- <aside class="ui-drawer__painel" part="painel" role="dialog" aria-modal="true" tabindex="-1">
73
- <div class="ui-drawer__header" part="cabecalho">
74
- <div class="ui-drawer__titulo-container">
75
- <h3 class="ui-drawer__titulo" part="titulo"></h3>
76
- <p class="ui-drawer__descricao" part="descricao" style="display: none;"></p>
77
- </div>
78
- <button type="button" class="ui-drawer__close" part="fechar" aria-label="Fechar painel lateral" title="Fechar">✕</button>
79
- </div>
80
- <div class="ui-drawer__body" part="corpo">
81
- <slot></slot>
82
- </div>
83
- <div class="ui-drawer__footer" part="rodape">
84
- <slot name="rodape"></slot>
85
- <slot name="footer"></slot>
86
- </div>
87
- </aside>
88
- `, this.backdropElement = t.querySelector(".ui-drawer__backdrop"), this.painelElement = t.querySelector(".ui-drawer__painel"), this.tituloElement = t.querySelector(".ui-drawer__titulo"), this.descricaoElement = t.querySelector(".ui-drawer__descricao"), this.closeElement = t.querySelector(".ui-drawer__close");
89
- }
90
- static get observedAttributes() {
91
- return [
92
- "aberto",
93
- "open",
94
- "posicao",
95
- "position",
96
- "titulo",
97
- "title",
98
- "descricao",
99
- "description",
100
- "largura",
101
- "width",
102
- "estatico",
103
- "static"
104
- ];
105
- }
106
- connectedCallback() {
107
- this.listeners.cleanup(), this.listeners.add(this.backdropElement, "click", this.handleBackdropClick), this.listeners.add(this.closeElement, "click", this.handleCloseClick), this.listeners.add(window, "keydown", this.handleKeyDown), this.shadowRoot.querySelectorAll("slot").forEach((i) => {
108
- this.listeners.add(i, "slotchange", this.handleSlotChange);
109
- }), this.syncState();
110
- }
111
- disconnectedCallback() {
112
- this.listeners.cleanup(), b.atualizarScrollLock();
113
- }
114
- attributeChangedCallback(t, i, e) {
115
- (t === "aberto" || t === "open") && e !== null && (document.activeElement && document.activeElement !== document.body && (this._elementoGatilho = document.activeElement), setTimeout(() => {
116
- this._focables = y(this.shadowRoot), this._focables.length > 0 ? this._focables[0].focus() : this.painelElement.focus();
117
- }, 0)), this.syncState();
118
- }
119
- get aberto() {
120
- return this.hasAttribute("aberto") || this.hasAttribute("open");
121
- }
122
- set aberto(t) {
123
- t ? this.setAttribute("aberto", "") : (this.removeAttribute("aberto"), this.removeAttribute("open")), this.syncState();
124
- }
125
- get posicao() {
126
- const t = (this.getAttribute("posicao") || this.getAttribute("position") || "direita").toLowerCase();
127
- return t === "esquerda" || t === "left" ? "esquerda" : t === "baixo" || t === "bottom" ? "baixo" : t === "cima" || t === "top" ? "cima" : "direita";
128
- }
129
- set posicao(t) {
130
- this.setAttribute("posicao", t);
131
- }
132
- abrir() {
133
- this.aberto || (document.activeElement && document.activeElement !== document.body && (this._elementoGatilho = document.activeElement), this.aberto = !0, this.dispatchEvent(
134
- new CustomEvent("ui-abrir", {
135
- bubbles: !0,
136
- composed: !0
137
- })
138
- ), setTimeout(() => {
139
- this._focables = y(this.shadowRoot), this._focables.length > 0 ? this._focables[0].focus() : this.painelElement.focus();
140
- }, 0));
141
- }
142
- fechar() {
143
- this.aberto && (this.aberto = !1, this.dispatchEvent(
144
- new CustomEvent("ui-fechar", {
145
- bubbles: !0,
146
- composed: !0
147
- })
148
- ), this._elementoGatilho && (this._elementoGatilho.focus(), this._elementoGatilho = null));
149
- }
150
- alternar() {
151
- this.aberto ? this.fechar() : this.abrir();
152
- }
153
- syncState() {
154
- var s, c;
155
- const t = this.aberto, i = this.getAttribute("titulo") || this.getAttribute("title") || "", e = this.getAttribute("descricao") || this.getAttribute("description") || "", o = this.getAttribute("largura") || this.getAttribute("width"), a = (s = this.shadowRoot) == null ? void 0 : s.querySelector(".ui-drawer__footer");
156
- if (this.painelElement.setAttribute("aria-hidden", String(!t)), i ? (this.tituloElement.textContent = i, this.tituloElement.style.display = "block") : this.tituloElement.style.display = "none", e ? (this.descricaoElement.textContent = e, this.descricaoElement.style.display = "block") : this.descricaoElement.style.display = "none", o ? this.style.setProperty("--ui-drawer-largura", isNaN(Number(o)) ? o : `${o}px`) : this.style.removeProperty("--ui-drawer-largura"), a) {
157
- const u = Array.from(((c = this.shadowRoot) == null ? void 0 : c.querySelectorAll('slot[name="rodape"], slot[name="footer"]')) || []).some((p) => p.assignedNodes({ flatten: !0 }).some((f) => f.nodeType === Node.ELEMENT_NODE || f.textContent && f.textContent.trim() !== "")) || this.querySelector('[slot="rodape"], [slot="footer"]') !== null;
158
- a.style.display = u ? "flex" : "none";
159
- }
160
- b.atualizarScrollLock();
161
- }
162
- static atualizarScrollLock() {
163
- I();
164
- }
165
- }
166
- class P extends b {
167
- }
168
- class $ extends b {
169
- }
170
- class B extends b {
171
- }
172
- h("ui-drawer", b);
173
- h("ui-sheet", P);
174
- h("ui-painel-lateral", $);
175
- h("ui-gaveta", B);
176
- const O = ':host{display:block;box-sizing:border-box;font-family:var(--ui-fonte-base, "Inter", sans-serif)}.ui-alerta{display:flex;align-items:flex-start;gap:12px;padding:12px 16px;border-radius:var(--ui-raio-borda, 8px);border:1px solid transparent;background-color:var(--ui-cor-fundo-elevado, #1a1a1e);color:var(--ui-cor-texto, #e1e1e6);box-sizing:border-box;position:relative;transition:opacity .2s ease,transform .2s ease;line-height:1.4}.ui-alerta__icone{display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:2px;line-height:1}.ui-alerta__icone svg,.ui-alerta__icone ::slotted(svg),.ui-alerta__icone ::slotted(ui-icone){shape-rendering:geometricPrecision}.ui-alerta__conteudo{flex:1}.ui-alerta__titulo{font-size:14px;font-weight:600;margin:0 0 2px;line-height:1.2}.ui-alerta__mensagem{font-size:13px;margin:0;opacity:.9}.ui-alerta__close{background:transparent;border:none;color:currentColor;opacity:.7;font-size:14px;cursor:pointer;padding:2px 6px;border-radius:var(--ui-raio-sm, 4px);line-height:1;flex-shrink:0;margin-top:-2px;margin-right:-4px;transition:opacity .15s ease,background-color .15s ease}.ui-alerta__close:hover{opacity:1;background-color:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 15%,transparent)}.ui-alerta--sucesso{background-color:color-mix(in srgb,var(--ui-cor-texto-sucesso, #00E08A) 12%,transparent);border-color:color-mix(in srgb,var(--ui-cor-texto-sucesso, #00E08A) 30%,transparent);color:var(--ui-cor-texto-sucesso, #00E08A)}.ui-alerta--sucesso .ui-alerta__mensagem{color:var(--ui-cor-texto, #e1e1e6)}.ui-alerta--erro{background-color:color-mix(in srgb,var(--ui-cor-texto-erro, #ff5555) 12%,transparent);border-color:color-mix(in srgb,var(--ui-cor-texto-erro, #ff5555) 30%,transparent);color:var(--ui-cor-texto-erro, #ff5555)}.ui-alerta--erro .ui-alerta__mensagem{color:var(--ui-cor-texto, #e1e1e6)}.ui-alerta--alerta{background-color:color-mix(in srgb,var(--ui-cor-texto-alerta, #ffb86c) 12%,transparent);border-color:color-mix(in srgb,var(--ui-cor-texto-alerta, #ffb86c) 30%,transparent);color:var(--ui-cor-texto-alerta, #ffb86c)}.ui-alerta--alerta .ui-alerta__mensagem{color:var(--ui-cor-texto, #e1e1e6)}.ui-alerta--info{background-color:color-mix(in srgb,var(--ui-cor-texto-info, #33b5ff) 12%,transparent);border-color:color-mix(in srgb,var(--ui-cor-texto-info, #33b5ff) 30%,transparent);color:var(--ui-cor-texto-info, #33b5ff)}.ui-alerta--info .ui-alerta__mensagem{color:var(--ui-cor-texto, #e1e1e6)}.ui-alerta__acoes{display:flex;align-items:center;flex-shrink:0;margin-left:4px}.ui-alerta__botao-acao{background:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 8%,transparent);border:1px solid color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 16%,transparent);color:inherit;font-family:inherit;font-size:12px;font-weight:600;padding:4px 10px;border-radius:5px;cursor:pointer;line-height:1;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;transition:background-color .15s ease,border-color .15s ease,transform .1s ease}.ui-alerta__botao-acao:hover{background:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 18%,transparent);border-color:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 30%,transparent)}.ui-alerta__botao-acao:active{transform:scale(.96)}.ui-alerta__botao-acao:focus-visible{outline:none;box-shadow:0 0 0 2px var(--ui-cor-fundo, #0b0b0d),0 0 0 4px var(--ui-cor-primaria, #00E08A)}.ui-alerta__botao-acao--primario{background:color-mix(in srgb,var(--ui-cor-texto-sucesso, #00E08A) 15%,transparent);border-color:color-mix(in srgb,var(--ui-cor-texto-sucesso, #00E08A) 35%,transparent);color:var(--ui-cor-primaria, #00E08A)}.ui-alerta__botao-acao--primario:hover{background:color-mix(in srgb,var(--ui-cor-texto-sucesso, #00E08A) 25%,transparent);border-color:color-mix(in srgb,var(--ui-cor-texto-sucesso, #00E08A) 50%,transparent)}.ui-alerta__botao-acao--destrutivo{background:color-mix(in srgb,var(--ui-cor-texto-erro, #ff5555) 15%,transparent);border-color:color-mix(in srgb,var(--ui-cor-texto-erro, #ff5555) 35%,transparent);color:var(--ui-cor-texto-erro, #ff5555)}.ui-alerta__botao-acao--destrutivo:hover{background:color-mix(in srgb,var(--ui-cor-texto-erro, #ff5555) 25%,transparent);border-color:color-mix(in srgb,var(--ui-cor-texto-erro, #ff5555) 50%,transparent)}:host(ui-toast){display:block;width:100%;box-sizing:border-box;pointer-events:auto;transition:transform .25s cubic-bezier(.16,1,.3,1),opacity .25s ease}.ui-toast__banner{box-shadow:var(--ui-sombra-lg, 0 10px 30px rgba(0, 0, 0, .3)),0 0 0 1px var(--ui-cor-borda, rgba(255, 255, 255, .1));animation:ui-toast-slide .3s cubic-bezier(.16,1,.3,1);position:relative;overflow:hidden;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.ui-toast__banner.ui-alerta--sucesso{background-color:color-mix(in srgb,color-mix(in srgb,var(--ui-cor-fundo-elevado, #1a1a1e) 88%,var(--ui-cor-texto-sucesso, #00E08A) 12%) 60%,transparent);border-color:color-mix(in srgb,var(--ui-cor-texto-sucesso, #00E08A) 40%,transparent)}.ui-toast__banner.ui-alerta--erro{background-color:color-mix(in srgb,color-mix(in srgb,var(--ui-cor-fundo-elevado, #1a1a1e) 88%,var(--ui-cor-texto-erro, #ff5555) 12%) 60%,transparent);border-color:color-mix(in srgb,var(--ui-cor-texto-erro, #ff5555) 40%,transparent)}.ui-toast__banner.ui-alerta--alerta{background-color:color-mix(in srgb,color-mix(in srgb,var(--ui-cor-fundo-elevado, #1a1a1e) 88%,var(--ui-cor-texto-alerta, #ffb86c) 12%) 60%,transparent);border-color:color-mix(in srgb,var(--ui-cor-texto-alerta, #ffb86c) 40%,transparent)}.ui-toast__banner.ui-alerta--info{background-color:color-mix(in srgb,color-mix(in srgb,var(--ui-cor-fundo-elevado, #1a1a1e) 88%,var(--ui-cor-texto-info, #33b5ff) 12%) 60%,transparent);border-color:color-mix(in srgb,var(--ui-cor-texto-info, #33b5ff) 40%,transparent)}.ui-toast__progresso{position:absolute;bottom:0;left:0;right:0;height:2px;background:color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 8%,transparent);overflow:hidden}.ui-toast__progresso-barra{width:100%;height:100%;background:currentColor;opacity:.7;transform-origin:left;animation:ui-toast-timer linear forwards}:host(ui-toast:hover) .ui-toast__progresso-barra,:host(ui-toast:focus-within) .ui-toast__progresso-barra{animation-play-state:paused}@keyframes ui-toast-timer{0%{transform:scaleX(1)}to{transform:scaleX(0)}}@keyframes ui-toast-slide{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@starting-style{:host(ui-toast){opacity:0;transform:translateY(12px) scale(.96)}}', A = {
177
- sucesso: '<svg viewBox="0 0 24 24" width="20" height="20" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>',
178
- erro: '<svg viewBox="0 0 24 24" width="20" height="20" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="15" y1="9" x2="9" y2="15"></line><line x1="9" y1="9" x2="15" y2="15"></line></svg>',
179
- alerta: '<svg viewBox="0 0 24 24" width="20" height="20" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>',
180
- info: '<svg viewBox="0 0 24 24" width="20" height="20" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="16" x2="12" y2="12"></line><line x1="12" y1="8" x2="12.01" y2="8"></line></svg>'
181
- };
182
- class S extends g {
183
- constructor() {
184
- super();
185
- r(this, "alertaElement");
186
- r(this, "iconeElement");
187
- r(this, "tituloElement");
188
- r(this, "mensagemElement");
189
- r(this, "mensagemTextoElement");
190
- r(this, "closeElement");
191
- r(this, "acoesElement");
192
- r(this, "botaoAcaoElement");
193
- r(this, "progressoContainer");
194
- r(this, "progressoBarra");
195
- r(this, "listeners", new C());
196
- const t = this.attachShadow({ mode: "open" });
197
- t.innerHTML = `
198
- <style>${O}</style>
199
- <div class="ui-alerta" part="base" role="alert">
200
- <span class="ui-alerta__icone" part="icone"></span>
201
- <div class="ui-alerta__conteudo" part="conteudo">
202
- <h4 class="ui-alerta__titulo" part="titulo" style="display: none;"></h4>
203
- <p class="ui-alerta__mensagem" part="mensagem">
204
- <span class="ui-alerta__mensagem-texto" style="display: none;"></span>
205
- <slot></slot>
206
- </p>
207
- </div>
208
- <div class="ui-alerta__acoes" style="display: none;">
209
- <button type="button" class="ui-alerta__botao-acao" part="acao"></button>
210
- </div>
211
- <button class="ui-alerta__close" part="fechar" type="button" aria-label="Fechar alerta" style="display: none;" title="Fechar">✕</button>
212
- <div class="ui-toast__progresso" part="progresso" style="display: none;">
213
- <div class="ui-toast__progresso-barra"></div>
214
- </div>
215
- </div>
216
- `, this.alertaElement = t.querySelector(".ui-alerta"), this.iconeElement = t.querySelector(".ui-alerta__icone"), this.tituloElement = t.querySelector(".ui-alerta__titulo"), this.mensagemElement = t.querySelector(".ui-alerta__mensagem"), this.mensagemTextoElement = t.querySelector(".ui-alerta__mensagem-texto"), this.closeElement = t.querySelector(".ui-alerta__close"), this.acoesElement = t.querySelector(".ui-alerta__acoes"), this.botaoAcaoElement = t.querySelector(".ui-alerta__botao-acao"), this.progressoContainer = t.querySelector(".ui-toast__progresso"), this.progressoBarra = t.querySelector(".ui-toast__progresso-barra");
217
- }
218
- static get observedAttributes() {
219
- return [
220
- "tipo",
221
- "variante",
222
- "variant",
223
- "titulo",
224
- "title",
225
- "mensagem",
226
- "fechavel",
227
- "dismissible"
228
- ];
229
- }
230
- connectedCallback() {
231
- this.listeners.cleanup(), this.listeners.add(this.closeElement, "click", () => this.fechar()), this.syncState();
232
- }
233
- disconnectedCallback() {
234
- this.listeners.cleanup();
235
- }
236
- attributeChangedCallback(t, i, e) {
237
- this.syncState();
238
- }
239
- fechar() {
240
- this.dispatchEvent(
241
- new CustomEvent("ui-fechar", {
242
- bubbles: !0,
243
- composed: !0
244
- })
245
- ), this.remove();
246
- }
247
- syncState() {
248
- const t = this.getAttribute("tipo") || this.getAttribute("variante") || this.getAttribute("variant") || "info", i = this.getAttribute("titulo") || this.getAttribute("title"), e = this.getAttribute("mensagem"), o = this.hasAttribute("fechavel") || this.hasAttribute("dismissible");
249
- this.alertaElement.className = `ui-alerta ui-alerta--${t}`;
250
- const a = A[t] || A.info;
251
- this.iconeElement.innerHTML = a, i ? (this.tituloElement.textContent = i, this.tituloElement.style.display = "block") : (this.tituloElement.style.display = "none", this.tituloElement.textContent = ""), e ? (this.mensagemTextoElement.textContent = e, this.mensagemTextoElement.style.display = "inline") : (this.mensagemTextoElement.style.display = "none", this.mensagemTextoElement.textContent = ""), o ? this.closeElement.style.display = "block" : this.closeElement.style.display = "none";
252
- }
253
- }
254
- h("ui-alerta", S);
255
- class x extends S {
256
- constructor() {
257
- super(...arguments);
258
- r(this, "timerId", null);
259
- r(this, "tempoRestante", 4e3);
260
- r(this, "inicioTimestamp", 0);
261
- r(this, "isPausado", !1);
262
- r(this, "acaoConfig");
263
- r(this, "containerRef", null);
264
- r(this, "handleAcaoClick", (t) => {
265
- var i, e, o;
266
- t.stopPropagation(), (i = this.acaoConfig) != null && i.onClick && this.acaoConfig.onClick(t), this.dispatchEvent(
267
- new CustomEvent("ui-toast-acao", {
268
- detail: {
269
- rotulo: (e = this.acaoConfig) == null ? void 0 : e.rotulo,
270
- tipo: (o = this.acaoConfig) == null ? void 0 : o.tipo
271
- },
272
- bubbles: !0,
273
- composed: !0
274
- })
275
- ), this.fechar();
276
- });
277
- r(this, "pausarTimer", () => {
278
- if (this.isPausado || this.tempoRestante <= 0) return;
279
- this.isPausado = !0, this.timerId && (clearTimeout(this.timerId), this.timerId = null);
280
- const t = Date.now() - this.inicioTimestamp;
281
- this.tempoRestante = Math.max(0, this.tempoRestante - t), this.progressoBarra.style.animationPlayState = "paused";
282
- });
283
- r(this, "retomarTimer", () => {
284
- !this.isPausado || this.tempoRestante <= 0 || (this.isPausado = !1, this.progressoBarra.style.animationPlayState = "running", this.iniciarTimer(Math.max(this.tempoRestante, 300)));
285
- });
286
- }
287
- configurarAcao(t) {
288
- this.acaoConfig = t, this.botaoAcaoElement.textContent = t.rotulo, this.acoesElement.style.display = "flex";
289
- const i = t.tipo || "primario";
290
- this.botaoAcaoElement.className = `ui-alerta__botao-acao ui-alerta__botao-acao--${i}`;
291
- }
292
- connectedCallback() {
293
- super.connectedCallback(), this.containerRef = this.parentElement, this.alertaElement.classList.add("ui-toast__banner"), this.acaoConfig && this.listeners.add(this.botaoAcaoElement, "click", this.handleAcaoClick);
294
- const t = this.getAttribute("duracao") || this.getAttribute("duration") || "4000", i = parseInt(t, 10);
295
- this.tempoRestante = isNaN(i) ? 4e3 : i, this.tempoRestante > 0 ? (this.progressoContainer.style.display = "block", this.progressoBarra.style.animationDuration = `${this.tempoRestante}ms`, this.getAttribute("pausar-no-hover") !== "false" && (this.listeners.add(this, "mouseenter", this.pausarTimer), this.listeners.add(this, "mouseleave", this.retomarTimer), this.listeners.add(this, "focusin", this.pausarTimer), this.listeners.add(this, "focusout", this.retomarTimer)), this.iniciarTimer(this.tempoRestante)) : this.progressoContainer.style.display = "none";
296
- }
297
- fechar() {
298
- const t = this.parentElement || this.containerRef;
299
- super.fechar(), t && t.id.startsWith("ui-toast-container-") && t.children.length === 0 && t.remove();
300
- }
301
- disconnectedCallback() {
302
- super.disconnectedCallback(), this.timerId && (clearTimeout(this.timerId), this.timerId = null), this.containerRef && this.containerRef.id.startsWith("ui-toast-container-") && this.containerRef.children.length === 0 && (this.containerRef.remove(), this.containerRef = null);
303
- }
304
- iniciarTimer(t) {
305
- this.timerId && clearTimeout(this.timerId), this.inicioTimestamp = Date.now(), this.timerId = setTimeout(() => {
306
- this.fechar();
307
- }, t);
308
- }
309
- static obterContainer(t) {
310
- const i = `ui-toast-container-${t}`;
311
- let e = document.getElementById(i);
312
- return e || (e = document.createElement("div"), e.id = i, e.style.position = "fixed", e.style.setProperty("z-index", "var(--ui-z-toast, 1100)"), e.style.display = "flex", e.style.gap = "10px", e.style.maxWidth = "400px", e.style.width = "calc(100vw - 32px)", e.style.pointerEvents = "none", e.style.boxSizing = "border-box", e.style.transition = "all 0.2s ease", t === "top-right" ? (e.style.top = "20px", e.style.right = "20px", e.style.flexDirection = "column") : t === "top-left" ? (e.style.top = "20px", e.style.left = "20px", e.style.flexDirection = "column") : t === "bottom-left" ? (e.style.bottom = "20px", e.style.left = "20px", e.style.flexDirection = "column-reverse") : t === "top-center" ? (e.style.top = "20px", e.style.left = "50%", e.style.transform = "translateX(-50%)", e.style.flexDirection = "column") : t === "bottom-center" ? (e.style.bottom = "20px", e.style.left = "50%", e.style.transform = "translateX(-50%)", e.style.flexDirection = "column-reverse") : (e.style.bottom = "20px", e.style.right = "20px", e.style.flexDirection = "column-reverse"), document.body.appendChild(e)), e;
313
- }
314
- // Utilitário estático para disparo imperativo de Toasts de qualquer lugar no código
315
- static notificar(t) {
316
- if (typeof document > "u") return null;
317
- const i = t.posicao || "bottom-right", e = document.createElement("ui-toast");
318
- return t.tipo && e.setAttribute("tipo", t.tipo), t.titulo && e.setAttribute("titulo", t.titulo), t.mensagem && e.setAttribute("mensagem", t.mensagem), t.duracao !== void 0 && e.setAttribute("duracao", String(t.duracao)), t.pausarNoHover === !1 && e.setAttribute("pausar-no-hover", "false"), e.setAttribute("posicao", i), t.fechavel !== !1 && e.setAttribute("fechavel", ""), t.acao && e.configurarAcao(t.acao), x.obterContainer(i).appendChild(e), e;
319
- }
320
- }
321
- h("ui-toast", x);
322
- function F() {
323
- z.registrarProvedorToast((n) => {
324
- x.notificar(n);
325
- });
326
- }
327
- F();
328
- const H = ":host{display:inline-flex;position:relative;align-items:center;justify-content:center;vertical-align:middle;box-sizing:border-box;--ui-tooltip-texto-distancia: 260px;--ui-tooltip-seta-espaco: 70px}.ui-tooltip__bubble{position:fixed;z-index:var(--ui-z-tooltip, 1200);padding:6px 10px;border-radius:6px;font-size:11px;font-weight:500;background-color:var(--ui-cor-fundo-elevado, #1e1e24);color:var(--ui-cor-texto, #e1e1e6);border:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .16));box-shadow:var(--ui-sombra-md, 0 4px 16px rgba(0, 0, 0, .5));white-space:normal;max-width:var(--ui-tooltip-texto-distancia, 260px);width:max-content;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .15s ease,visibility .15s ease;line-height:1.35;box-sizing:border-box;-webkit-user-select:none;user-select:none;margin:0}.ui-tooltip__bubble[popover]{margin:0;border:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .16));background-color:var(--ui-cor-fundo-elevado, #1e1e24);color:var(--ui-cor-texto, #e1e1e6);padding:6px 10px;overflow:visible;max-width:var(--ui-tooltip-texto-distancia, 260px);width:max-content;white-space:normal}.ui-tooltip__texto{display:inline-block;max-width:100%}.ui-tooltip__arrow{position:absolute;width:0;height:0;border-style:solid}.ui-tooltip--topo .ui-tooltip__arrow{bottom:-5px;left:50%;transform:translate(-50%);border-width:5px 5px 0 5px;border-color:var(--ui-cor-fundo-elevado, #1e1e24) transparent transparent transparent}.ui-tooltip--baixo .ui-tooltip__arrow{top:-5px;left:50%;transform:translate(-50%);border-width:0 5px 5px 5px;border-color:transparent transparent var(--ui-cor-fundo-elevado, #1e1e24) transparent}.ui-tooltip--esquerda .ui-tooltip__arrow{right:-5px;top:50%;transform:translateY(-50%);border-width:5px 0 5px 5px;border-color:transparent transparent transparent var(--ui-cor-fundo-elevado, #1e1e24)}.ui-tooltip--direita .ui-tooltip__arrow{left:-5px;top:50%;transform:translateY(-50%);border-width:5px 5px 5px 0;border-color:transparent var(--ui-cor-fundo-elevado, #1e1e24) transparent transparent}.ui-tooltip--visivel .ui-tooltip__bubble{opacity:1;visibility:visible;pointer-events:auto;transform:scale(1)}@starting-style{.ui-tooltip--visivel .ui-tooltip__bubble,.ui-tooltip__bubble:popover-open{opacity:0;transform:scale(.94)}}", j = 120;
329
- class L extends g {
330
- constructor() {
331
- super();
332
- r(this, "containerElement");
333
- r(this, "bubbleElement");
334
- r(this, "_posicionamentoAtivo", !1);
335
- r(this, "_timerOcultar", null);
336
- /** Gatilho que recebeu `aria-description` deste tooltip (para remover depois). */
337
- r(this, "_gatilhoDescrito", null);
338
- r(this, "posicionarBubble", () => {
339
- if (!this.aberto) return;
340
- const t = this.getBoundingClientRect(), i = this.bubbleElement.getBoundingClientRect(), e = this.getAttribute("posicao") || this.getAttribute("position") || "topo";
341
- let o = "topo";
342
- ["topo", "top"].includes(e) ? o = "topo" : ["baixo", "bottom"].includes(e) ? o = "baixo" : ["esquerda", "left"].includes(e) ? o = "esquerda" : ["direita", "right"].includes(e) && (o = "direita");
343
- let a = 0, s = 0;
344
- const c = 8;
345
- o === "topo" ? (a = t.top - i.height - c, s = t.left + t.width / 2 - i.width / 2) : o === "baixo" ? (a = t.bottom + c, s = t.left + t.width / 2 - i.width / 2) : o === "esquerda" ? (a = t.top + t.height / 2 - i.height / 2, s = t.left - i.width - c) : o === "direita" && (a = t.top + t.height / 2 - i.height / 2, s = t.right + c), s = Math.max(8, Math.min(s, window.innerWidth - i.width - 8)), a = Math.max(8, Math.min(a, window.innerHeight - i.height - 8)), this.bubbleElement.style.top = `${Math.round(a)}px`, this.bubbleElement.style.left = `${Math.round(s)}px`;
346
- });
347
- r(this, "handleMouseEnter", () => {
348
- const t = this.getAttribute("gatilho") || this.getAttribute("trigger") || "hover";
349
- (t === "hover" || t === "passar-mouse") && (this.cancelarOcultar(), this.mostrar());
350
- });
351
- r(this, "handleMouseLeave", () => {
352
- const t = this.getAttribute("gatilho") || this.getAttribute("trigger") || "hover";
353
- (t === "hover" || t === "passar-mouse") && (this.cancelarOcultar(), this._timerOcultar = setTimeout(() => {
354
- this._timerOcultar = null, this.ocultar();
355
- }, j));
356
- });
357
- /**
358
- * Escape fecha o tooltip sem mover o foco (WCAG 1.4.13). Ouvido na captura e interrompido,
359
- * para que dentro de um modal o primeiro Escape feche só o tooltip.
360
- */
361
- r(this, "handleEscape", (t) => {
362
- t.key !== "Escape" || !this.aberto || (t.stopPropagation(), this.cancelarOcultar(), this.ocultar());
363
- });
364
- r(this, "handleClick", (t) => {
365
- const i = this.getAttribute("gatilho") || this.getAttribute("trigger") || "hover", e = window.matchMedia("(pointer: coarse)").matches;
366
- (i === "clique" || i === "click" || e) && (t.stopPropagation(), this.aberto = !this.aberto);
367
- });
368
- r(this, "handleClickOutside", (t) => {
369
- t.composedPath().includes(this) || this.ocultar();
370
- });
371
- const t = this.attachShadow({ mode: "open" });
372
- t.innerHTML = `
373
- <style>${H}</style>
374
- <div class="ui-tooltip ui-tooltip--topo">
375
- <slot></slot>
376
- <div class="ui-tooltip__bubble" part="balao" role="tooltip" popover="manual">
377
- <span class="ui-tooltip__texto" part="texto"></span>
378
- <slot name="conteudo"></slot>
379
- <span class="ui-tooltip__arrow" part="seta"></span>
380
- </div>
381
- </div>
382
- `, this.containerElement = t.querySelector(".ui-tooltip"), this.bubbleElement = t.querySelector(".ui-tooltip__bubble"), t.querySelectorAll("slot").forEach((i) => i.addEventListener("slotchange", () => this.sincronizarDescricao()));
383
- }
384
- static get observedAttributes() {
385
- return [
386
- "texto",
387
- "text",
388
- "posicao",
389
- "position",
390
- "gatilho",
391
- "trigger",
392
- "aberto",
393
- "open",
394
- "disabled"
395
- ];
396
- }
397
- connectedCallback() {
398
- this.addEventListener("mouseenter", this.handleMouseEnter), this.addEventListener("mouseleave", this.handleMouseLeave), this.addEventListener("focusin", this.handleMouseEnter), this.addEventListener("focusout", this.handleMouseLeave), this.addEventListener("click", this.handleClick), this.syncState();
399
- }
400
- disconnectedCallback() {
401
- this.removeEventListener("mouseenter", this.handleMouseEnter), this.removeEventListener("mouseleave", this.handleMouseLeave), this.removeEventListener("focusin", this.handleMouseEnter), this.removeEventListener("focusout", this.handleMouseLeave), this.removeEventListener("click", this.handleClick), document.removeEventListener("click", this.handleClickOutside), document.removeEventListener("keydown", this.handleEscape, !0), this.cancelarOcultar(), this.removerDescricao(), this._posicionamentoAtivo && (this._posicionamentoAtivo = !1, window.removeEventListener("scroll", this.posicionarBubble, { capture: !0 }), window.removeEventListener("resize", this.posicionarBubble)), this.ocultar();
402
- }
403
- attributeChangedCallback(t, i, e) {
404
- this.syncState();
405
- }
406
- get aberto() {
407
- return this.hasAttribute("aberto") || this.hasAttribute("open");
408
- }
409
- set aberto(t) {
410
- t ? this.setAttribute("aberto", "") : (this.removeAttribute("aberto"), this.removeAttribute("open")), this.syncState();
411
- }
412
- get disabled() {
413
- return this.hasAttribute("disabled");
414
- }
415
- set disabled(t) {
416
- t ? this.setAttribute("disabled", "") : this.removeAttribute("disabled"), this.syncState();
417
- }
418
- mostrar() {
419
- this.disabled || (this.aberto = !0);
420
- }
421
- ocultar() {
422
- this.aberto = !1;
423
- }
424
- syncState() {
425
- var s;
426
- const t = this.aberto, i = this.getAttribute("posicao") || this.getAttribute("position") || "topo", e = this.getAttribute("texto") || this.getAttribute("text") || "", o = (s = this.shadowRoot) == null ? void 0 : s.querySelector(".ui-tooltip__texto");
427
- let a = "topo";
428
- if (["topo", "top"].includes(i) ? a = "topo" : ["baixo", "bottom"].includes(i) ? a = "baixo" : ["esquerda", "left"].includes(i) ? a = "esquerda" : ["direita", "right"].includes(i) && (a = "direita"), this.containerElement.className = `ui-tooltip ui-tooltip--${a}`, o && (e ? (o.textContent = e, o.style.display = "inline") : o.style.display = "none"), this.sincronizarDescricao(), t) {
429
- if (document.addEventListener("click", this.handleClickOutside), document.addEventListener("keydown", this.handleEscape, !0), typeof this.bubbleElement.showPopover == "function")
430
- try {
431
- this.bubbleElement.showPopover();
432
- } catch {
433
- }
434
- this.containerElement.classList.add("ui-tooltip--visivel"), requestAnimationFrame(() => {
435
- this.posicionarBubble();
436
- }), this._posicionamentoAtivo || (this._posicionamentoAtivo = !0, window.addEventListener("scroll", this.posicionarBubble, { capture: !0, passive: !0 }), window.addEventListener("resize", this.posicionarBubble, { passive: !0 }));
437
- } else {
438
- if (document.removeEventListener("click", this.handleClickOutside), document.removeEventListener("keydown", this.handleEscape, !0), typeof this.bubbleElement.hidePopover == "function")
439
- try {
440
- this.bubbleElement.hidePopover();
441
- } catch {
442
- }
443
- this.containerElement.classList.remove("ui-tooltip--visivel"), this._posicionamentoAtivo && (this._posicionamentoAtivo = !1, window.removeEventListener("scroll", this.posicionarBubble, { capture: !0 }), window.removeEventListener("resize", this.posicionarBubble));
444
- }
445
- }
446
- cancelarOcultar() {
447
- this._timerOcultar && (clearTimeout(this._timerOcultar), this._timerOcultar = null);
448
- }
449
- /**
450
- * O balão vive no Shadow DOM, fora do alcance de `aria-describedby` do gatilho (light DOM).
451
- * O texto é exposto como `aria-description` no gatilho, sem sobrescrever uma descrição do consumidor.
452
- */
453
- sincronizarDescricao() {
454
- var o;
455
- if (!this.isConnected) {
456
- this.removerDescricao();
457
- return;
458
- }
459
- const t = Array.from(this.children).find((a) => !a.hasAttribute("slot")), i = (this.getAttribute("texto") || this.getAttribute("text") || ((o = this.querySelector('[slot="conteudo"]')) == null ? void 0 : o.textContent) || "").replace(/\s+/g, " ").trim();
460
- this._gatilhoDescrito && this._gatilhoDescrito !== t && this.removerDescricao(), !(!t || this._gatilhoDescrito !== t && (t.hasAttribute("aria-describedby") || t.hasAttribute("aria-description"))) && (i && !this.disabled ? (t.setAttribute("aria-description", i), this._gatilhoDescrito = t) : this.removerDescricao());
461
- }
462
- removerDescricao() {
463
- var t;
464
- (t = this._gatilhoDescrito) == null || t.removeAttribute("aria-description"), this._gatilhoDescrito = null;
465
- }
466
- }
467
- class U extends L {
468
- }
469
- h("ui-tooltip", L);
470
- h("ui-popover", U);
471
- const Y = ":host{display:block;box-sizing:border-box}:host([inline]){display:inline-block}.ui-skeleton{background:var(--ui-cor-fundo-elevado, #1e1e24);background-image:linear-gradient(90deg,#fff0,color-mix(in srgb,var(--ui-cor-texto, #e1e1e6) 7%,transparent),#fff0);background-size:200% 100%;background-repeat:no-repeat;border-radius:var(--ui-raio-borda, 6px);position:relative;overflow:hidden;box-sizing:border-box;animation:ui-skeleton-shimmer 1.6s ease-in-out infinite}@keyframes ui-skeleton-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.ui-skeleton--pulso{background-image:none;animation:ui-skeleton-pulse 1.8s ease-in-out infinite}@keyframes ui-skeleton-pulse{0%,to{opacity:1}50%{opacity:.45}}.ui-skeleton--estatico{animation:none;background-image:none}.ui-skeleton--texto{height:1.1em;border-radius:var(--ui-raio-sm, 4px)}.ui-skeleton--circular{border-radius:50%!important;aspect-ratio:1;width:var(--ui-skeleton-largura, 40px);height:var(--ui-skeleton-altura, 40px)}.ui-skeleton--retangular{border-radius:var(--ui-raio-borda, 6px);min-height:20px}.ui-skeleton__linhas{display:flex;flex-direction:column;gap:8px;width:100%}.ui-skeleton__linhas .ui-skeleton{width:100%}.ui-skeleton__linhas .ui-skeleton:last-child:not(:first-child){width:65%}.ui-skeleton--card{display:flex;flex-direction:column;gap:12px;padding:16px;border-radius:var(--ui-raio-borda, 10px);border:1px solid var(--ui-cor-borda, rgba(255, 255, 255, .08));background:var(--ui-cor-fundo-card, #18181c);animation:none}.ui-skeleton__card-media{width:100%;height:120px;border-radius:6px}.ui-skeleton__card-header{display:flex;align-items:center;gap:10px}.ui-skeleton__card-avatar{width:36px;height:36px;border-radius:50%;flex-shrink:0}.ui-skeleton__card-title{width:50%;height:16px}@media (prefers-reduced-motion: reduce){.ui-skeleton{animation:none!important;background-image:none!important;opacity:.7}}";
472
- class T extends g {
473
- constructor() {
474
- super();
475
- r(this, "rootElement");
476
- const t = this.attachShadow({ mode: "open" });
477
- t.innerHTML = `
478
- <style>${Y}</style>
479
- <div class="ui-skeleton-container" role="status" aria-label="Carregando..."></div>
480
- `, this.rootElement = t.querySelector(".ui-skeleton-container");
481
- }
482
- static get observedAttributes() {
483
- return [
484
- "variante",
485
- "variant",
486
- "largura",
487
- "width",
488
- "altura",
489
- "height",
490
- "raio",
491
- "radius",
492
- "linhas",
493
- "lines",
494
- "count",
495
- "animado",
496
- "animated"
497
- ];
498
- }
499
- connectedCallback() {
500
- this.hasAttribute("aria-hidden") || this.setAttribute("aria-hidden", "true"), this.syncState();
501
- }
502
- attributeChangedCallback(t, i, e) {
503
- this.syncState();
504
- }
505
- get variante() {
506
- const t = (this.getAttribute("variante") || this.getAttribute("variant") || "texto").toLowerCase();
507
- return t === "circulo" || t === "circular" ? "circular" : t === "retangulo" || t === "retangular" ? "retangular" : t === "card" ? "card" : "texto";
508
- }
509
- set variante(t) {
510
- this.setAttribute("variante", t);
511
- }
512
- get animado() {
513
- const t = (this.getAttribute("animado") || this.getAttribute("animated") || "shimmer").toLowerCase();
514
- return t === "pulse" || t === "pulso" ? "pulso" : t === "none" || t === "nenhum" || t === "estatico" ? "nenhum" : "shimmer";
515
- }
516
- set animado(t) {
517
- this.setAttribute("animado", t);
518
- }
519
- get linhas() {
520
- const t = parseInt(this.getAttribute("linhas") || this.getAttribute("lines") || this.getAttribute("count") || "1", 10);
521
- return isNaN(t) || t < 1 ? 1 : t;
522
- }
523
- set linhas(t) {
524
- this.setAttribute("linhas", String(t));
525
- }
526
- syncState() {
527
- const t = this.variante, i = this.animado, e = this.getAttribute("largura") || this.getAttribute("width"), o = this.getAttribute("altura") || this.getAttribute("height"), a = this.getAttribute("raio") || this.getAttribute("radius"), s = this.linhas;
528
- this.rootElement.innerHTML = "";
529
- const c = i === "pulso" ? "ui-skeleton--pulso" : i === "nenhum" ? "ui-skeleton--estatico" : "";
530
- if (t === "card") {
531
- const u = document.createElement("div");
532
- u.className = "ui-skeleton ui-skeleton--card";
533
- const p = document.createElement("div");
534
- p.className = `ui-skeleton ui-skeleton__card-media ${c}`;
535
- const d = document.createElement("div");
536
- d.className = "ui-skeleton__card-header";
537
- const f = document.createElement("div");
538
- f.className = `ui-skeleton ui-skeleton__card-avatar ${c}`;
539
- const w = document.createElement("div");
540
- w.className = `ui-skeleton ui-skeleton__card-title ${c}`, d.appendChild(f), d.appendChild(w);
541
- const v = document.createElement("div");
542
- v.className = "ui-skeleton__linhas";
543
- for (let k = 0; k < 2; k++) {
544
- const E = document.createElement("div");
545
- E.className = `ui-skeleton ui-skeleton--texto ${c}`, v.appendChild(E);
546
- }
547
- u.appendChild(p), u.appendChild(d), u.appendChild(v), this.rootElement.appendChild(u);
548
- return;
549
- }
550
- if (s > 1 && t === "texto") {
551
- const u = document.createElement("div");
552
- u.className = "ui-skeleton__linhas";
553
- for (let p = 0; p < s; p++) {
554
- const d = document.createElement("div");
555
- d.className = `ui-skeleton ui-skeleton--texto ${c}`, o && (d.style.height = isNaN(Number(o)) ? o : `${o}px`), a && (d.style.borderRadius = isNaN(Number(a)) ? a : `${a}px`), u.appendChild(d);
556
- }
557
- e && (u.style.width = isNaN(Number(e)) ? e : `${e}px`), this.rootElement.appendChild(u);
558
- return;
559
- }
560
- const m = document.createElement("div");
561
- m.className = `ui-skeleton ui-skeleton--${t} ${c}`.trim(), e && (m.style.width = isNaN(Number(e)) ? e : `${e}px`), o && (m.style.height = isNaN(Number(o)) ? o : `${o}px`), a && (m.style.borderRadius = isNaN(Number(a)) ? a : `${a}px`), this.rootElement.appendChild(m);
562
- }
563
- }
564
- class G extends T {
565
- }
566
- h("ui-skeleton", T);
567
- h("ui-esqueleto", G);
568
- export {
569
- A as I,
570
- S as U,
571
- b as a,
572
- G as b,
573
- B as c,
574
- $ as d,
575
- U as e,
576
- P as f,
577
- T as g,
578
- x as h,
579
- L as i,
580
- I as j,
581
- D as k,
582
- M as l,
583
- y as o,
584
- F as r
585
- };