@wrrdev/fenix-ui 1.0.16 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (226) hide show
  1. package/README.md +2 -2
  2. package/dist/_virtual/preload-helper.js +68 -0
  3. package/dist/_virtual/preload-helper.js.map +1 -0
  4. package/dist/assets/base-css-BifSeW2H.js +31 -0
  5. package/dist/assets/base-css-BifSeW2H.js.map +1 -0
  6. package/dist/components/alert/alert.d.ts +2 -1
  7. package/dist/components/alert/alert.d.ts.map +1 -1
  8. package/dist/components/alert/alert.js +10 -2
  9. package/dist/components/alert/alert.js.map +1 -1
  10. package/dist/components/avatar/avatar.d.ts +21 -0
  11. package/dist/components/avatar/avatar.d.ts.map +1 -0
  12. package/dist/components/avatar/avatar.js +91 -0
  13. package/dist/components/avatar/avatar.js.map +1 -0
  14. package/dist/components/avatar/index.d.ts +8 -0
  15. package/dist/components/avatar/index.d.ts.map +1 -0
  16. package/dist/components/avatar/index.js +7 -0
  17. package/dist/components/avatar/index.js.map +1 -0
  18. package/dist/components/breadcrumb/breadcrumb.d.ts +35 -0
  19. package/dist/components/breadcrumb/breadcrumb.d.ts.map +1 -0
  20. package/dist/components/breadcrumb/breadcrumb.js +113 -0
  21. package/dist/components/breadcrumb/breadcrumb.js.map +1 -0
  22. package/dist/components/breadcrumb/index.d.ts +8 -0
  23. package/dist/components/breadcrumb/index.d.ts.map +1 -0
  24. package/dist/components/breadcrumb/index.js +7 -0
  25. package/dist/components/breadcrumb/index.js.map +1 -0
  26. package/dist/components/card/card.d.ts +15 -0
  27. package/dist/components/card/card.d.ts.map +1 -0
  28. package/dist/components/card/card.js +80 -0
  29. package/dist/components/card/card.js.map +1 -0
  30. package/dist/components/card/index.d.ts +8 -0
  31. package/dist/components/card/index.d.ts.map +1 -0
  32. package/dist/components/card/index.js +7 -0
  33. package/dist/components/card/index.js.map +1 -0
  34. package/dist/components/carousel/carousel.d.ts +28 -0
  35. package/dist/components/carousel/carousel.d.ts.map +1 -0
  36. package/dist/components/carousel/carousel.js +176 -0
  37. package/dist/components/carousel/carousel.js.map +1 -0
  38. package/dist/components/carousel/index.d.ts +8 -0
  39. package/dist/components/carousel/index.d.ts.map +1 -0
  40. package/dist/components/carousel/index.js +7 -0
  41. package/dist/components/carousel/index.js.map +1 -0
  42. package/dist/components/chip/chip.d.ts +19 -0
  43. package/dist/components/chip/chip.d.ts.map +1 -0
  44. package/dist/components/chip/chip.js +126 -0
  45. package/dist/components/chip/chip.js.map +1 -0
  46. package/dist/components/chip/index.d.ts +8 -0
  47. package/dist/components/chip/index.d.ts.map +1 -0
  48. package/dist/components/chip/index.js +7 -0
  49. package/dist/components/chip/index.js.map +1 -0
  50. package/dist/components/confirmpopup/confirmpopup.d.ts +44 -0
  51. package/dist/components/confirmpopup/confirmpopup.d.ts.map +1 -0
  52. package/dist/components/confirmpopup/confirmpopup.js +233 -0
  53. package/dist/components/confirmpopup/confirmpopup.js.map +1 -0
  54. package/dist/components/confirmpopup/index.d.ts +8 -0
  55. package/dist/components/confirmpopup/index.d.ts.map +1 -0
  56. package/dist/components/confirmpopup/index.js +7 -0
  57. package/dist/components/confirmpopup/index.js.map +1 -0
  58. package/dist/components/empty-state/empty-state.d.ts +14 -0
  59. package/dist/components/empty-state/empty-state.d.ts.map +1 -0
  60. package/dist/components/empty-state/empty-state.js +71 -0
  61. package/dist/components/empty-state/empty-state.js.map +1 -0
  62. package/dist/components/empty-state/index.d.ts +8 -0
  63. package/dist/components/empty-state/index.d.ts.map +1 -0
  64. package/dist/components/empty-state/index.js +7 -0
  65. package/dist/components/empty-state/index.js.map +1 -0
  66. package/dist/components/fileupload/fileupload.d.ts +42 -0
  67. package/dist/components/fileupload/fileupload.d.ts.map +1 -0
  68. package/dist/components/fileupload/fileupload.js +284 -0
  69. package/dist/components/fileupload/fileupload.js.map +1 -0
  70. package/dist/components/fileupload/index.d.ts +8 -0
  71. package/dist/components/fileupload/index.d.ts.map +1 -0
  72. package/dist/components/fileupload/index.js +7 -0
  73. package/dist/components/fileupload/index.js.map +1 -0
  74. package/dist/components/menu/index.d.ts +8 -0
  75. package/dist/components/menu/index.d.ts.map +1 -0
  76. package/dist/components/menu/index.js +7 -0
  77. package/dist/components/menu/index.js.map +1 -0
  78. package/dist/components/menu/menu.d.ts +23 -0
  79. package/dist/components/menu/menu.d.ts.map +1 -0
  80. package/dist/components/menu/menu.js +155 -0
  81. package/dist/components/menu/menu.js.map +1 -0
  82. package/dist/components/orderlist/orderlist.d.ts +1 -1
  83. package/dist/components/orderlist/orderlist.d.ts.map +1 -1
  84. package/dist/components/orderlist/orderlist.js +2 -2
  85. package/dist/components/orderlist/orderlist.js.map +1 -1
  86. package/dist/components/password-strength/index.d.ts +8 -0
  87. package/dist/components/password-strength/index.d.ts.map +1 -0
  88. package/dist/components/password-strength/index.js +7 -0
  89. package/dist/components/password-strength/index.js.map +1 -0
  90. package/dist/components/password-strength/password-strength.d.ts +23 -0
  91. package/dist/components/password-strength/password-strength.d.ts.map +1 -0
  92. package/dist/components/password-strength/password-strength.js +109 -0
  93. package/dist/components/password-strength/password-strength.js.map +1 -0
  94. package/dist/components/picklist/picklist.d.ts +1 -1
  95. package/dist/components/picklist/picklist.d.ts.map +1 -1
  96. package/dist/components/picklist/picklist.js +2 -2
  97. package/dist/components/picklist/picklist.js.map +1 -1
  98. package/dist/components/popover/index.d.ts +8 -0
  99. package/dist/components/popover/index.d.ts.map +1 -0
  100. package/dist/components/popover/index.js +7 -0
  101. package/dist/components/popover/index.js.map +1 -0
  102. package/dist/components/popover/popover.d.ts +39 -0
  103. package/dist/components/popover/popover.d.ts.map +1 -0
  104. package/dist/components/popover/popover.js +228 -0
  105. package/dist/components/popover/popover.js.map +1 -0
  106. package/dist/components/rating/index.d.ts +8 -0
  107. package/dist/components/rating/index.d.ts.map +1 -0
  108. package/dist/components/rating/index.js +7 -0
  109. package/dist/components/rating/index.js.map +1 -0
  110. package/dist/components/rating/rating.d.ts +25 -0
  111. package/dist/components/rating/rating.d.ts.map +1 -0
  112. package/dist/components/rating/rating.js +119 -0
  113. package/dist/components/rating/rating.js.map +1 -0
  114. package/dist/components/slider/index.d.ts +8 -0
  115. package/dist/components/slider/index.d.ts.map +1 -0
  116. package/dist/components/slider/index.js +7 -0
  117. package/dist/components/slider/index.js.map +1 -0
  118. package/dist/components/slider/slider.d.ts +33 -0
  119. package/dist/components/slider/slider.d.ts.map +1 -0
  120. package/dist/components/slider/slider.js +260 -0
  121. package/dist/components/slider/slider.js.map +1 -0
  122. package/dist/components/stepper/index.d.ts +8 -0
  123. package/dist/components/stepper/index.d.ts.map +1 -0
  124. package/dist/components/stepper/index.js +7 -0
  125. package/dist/components/stepper/index.js.map +1 -0
  126. package/dist/components/stepper/stepper.d.ts +33 -0
  127. package/dist/components/stepper/stepper.d.ts.map +1 -0
  128. package/dist/components/stepper/stepper.js +162 -0
  129. package/dist/components/stepper/stepper.js.map +1 -0
  130. package/dist/components/timeline/index.d.ts +8 -0
  131. package/dist/components/timeline/index.d.ts.map +1 -0
  132. package/dist/components/timeline/index.js +7 -0
  133. package/dist/components/timeline/index.js.map +1 -0
  134. package/dist/components/timeline/timeline.d.ts +30 -0
  135. package/dist/components/timeline/timeline.d.ts.map +1 -0
  136. package/dist/components/timeline/timeline.js +146 -0
  137. package/dist/components/timeline/timeline.js.map +1 -0
  138. package/dist/components/toast/toast.d.ts.map +1 -1
  139. package/dist/components/toast/toast.js +21 -2
  140. package/dist/components/toast/toast.js.map +1 -1
  141. package/dist/components/toggle-button-group/index.d.ts +8 -0
  142. package/dist/components/toggle-button-group/index.d.ts.map +1 -0
  143. package/dist/components/toggle-button-group/index.js +7 -0
  144. package/dist/components/toggle-button-group/index.js.map +1 -0
  145. package/dist/components/toggle-button-group/toggle-button-group.d.ts +21 -0
  146. package/dist/components/toggle-button-group/toggle-button-group.d.ts.map +1 -0
  147. package/dist/components/toggle-button-group/toggle-button-group.js +103 -0
  148. package/dist/components/toggle-button-group/toggle-button-group.js.map +1 -0
  149. package/dist/components/tree/index.d.ts +8 -0
  150. package/dist/components/tree/index.d.ts.map +1 -0
  151. package/dist/components/tree/index.js +7 -0
  152. package/dist/components/tree/index.js.map +1 -0
  153. package/dist/components/tree/tree.d.ts +34 -0
  154. package/dist/components/tree/tree.d.ts.map +1 -0
  155. package/dist/components/tree/tree.js +149 -0
  156. package/dist/components/tree/tree.js.map +1 -0
  157. package/dist/core/base.d.ts +1 -1
  158. package/dist/core/base.d.ts.map +1 -1
  159. package/dist/core/base.js +1 -1
  160. package/dist/core/base.js.map +1 -1
  161. package/dist/docs/app.d.ts.map +1 -1
  162. package/dist/docs/componentes/avatar.doc.d.ts +6 -0
  163. package/dist/docs/componentes/avatar.doc.d.ts.map +1 -0
  164. package/dist/docs/componentes/breadcrumb.doc.d.ts +6 -0
  165. package/dist/docs/componentes/breadcrumb.doc.d.ts.map +1 -0
  166. package/dist/docs/componentes/card.doc.d.ts +6 -0
  167. package/dist/docs/componentes/card.doc.d.ts.map +1 -0
  168. package/dist/docs/componentes/carousel.doc.d.ts +6 -0
  169. package/dist/docs/componentes/carousel.doc.d.ts.map +1 -0
  170. package/dist/docs/componentes/chip.doc.d.ts +6 -0
  171. package/dist/docs/componentes/chip.doc.d.ts.map +1 -0
  172. package/dist/docs/componentes/confirmpopup.doc.d.ts +6 -0
  173. package/dist/docs/componentes/confirmpopup.doc.d.ts.map +1 -0
  174. package/dist/docs/componentes/empty-state.doc.d.ts +6 -0
  175. package/dist/docs/componentes/empty-state.doc.d.ts.map +1 -0
  176. package/dist/docs/componentes/fileupload.doc.d.ts +6 -0
  177. package/dist/docs/componentes/fileupload.doc.d.ts.map +1 -0
  178. package/dist/docs/componentes/index.d.ts.map +1 -1
  179. package/dist/docs/componentes/menu.doc.d.ts +6 -0
  180. package/dist/docs/componentes/menu.doc.d.ts.map +1 -0
  181. package/dist/docs/componentes/password-strength.doc.d.ts +6 -0
  182. package/dist/docs/componentes/password-strength.doc.d.ts.map +1 -0
  183. package/dist/docs/componentes/popover.doc.d.ts +6 -0
  184. package/dist/docs/componentes/popover.doc.d.ts.map +1 -0
  185. package/dist/docs/componentes/rating.doc.d.ts +6 -0
  186. package/dist/docs/componentes/rating.doc.d.ts.map +1 -0
  187. package/dist/docs/componentes/slider.doc.d.ts +6 -0
  188. package/dist/docs/componentes/slider.doc.d.ts.map +1 -0
  189. package/dist/docs/componentes/stepper.doc.d.ts +6 -0
  190. package/dist/docs/componentes/stepper.doc.d.ts.map +1 -0
  191. package/dist/docs/componentes/timeline.doc.d.ts +6 -0
  192. package/dist/docs/componentes/timeline.doc.d.ts.map +1 -0
  193. package/dist/docs/componentes/toggle-button-group.doc.d.ts +6 -0
  194. package/dist/docs/componentes/toggle-button-group.doc.d.ts.map +1 -0
  195. package/dist/docs/componentes/tree.doc.d.ts +6 -0
  196. package/dist/docs/componentes/tree.doc.d.ts.map +1 -0
  197. package/dist/fenix-icons.woff2 +0 -0
  198. package/dist/fenix-ui.umd.min.js +1317 -160
  199. package/dist/fenix-ui2.esm.js +4317 -7816
  200. package/dist/fenix-ui2.esm.js.map +1 -1
  201. package/dist/fenix-ui3.esm.js +10396 -84
  202. package/dist/fenix-ui3.esm.js.map +1 -1
  203. package/dist/fenix-ui4.esm.js +110 -0
  204. package/dist/fenix-ui4.esm.js.map +1 -0
  205. package/dist/icons/base-css.d.ts +21 -0
  206. package/dist/icons/base-css.d.ts.map +1 -0
  207. package/dist/icons/base-css.js +32 -0
  208. package/dist/icons/base-css.js.map +1 -0
  209. package/dist/icons/fenix-icons.woff2 +0 -0
  210. package/dist/icons/index.d.ts +31 -0
  211. package/dist/icons/index.d.ts.map +1 -0
  212. package/dist/icons/index.js +47 -0
  213. package/dist/icons/index.js.map +1 -0
  214. package/dist/icons/names.d.ts +11 -0
  215. package/dist/icons/names.d.ts.map +1 -0
  216. package/dist/icons/names.js +4283 -0
  217. package/dist/icons/names.js.map +1 -0
  218. package/dist/index.d.ts +17 -0
  219. package/dist/index.d.ts.map +1 -1
  220. package/dist/index.js +51 -0
  221. package/dist/index.js.map +1 -1
  222. package/dist/plugins/auto-import.d.ts +2 -0
  223. package/dist/plugins/auto-import.d.ts.map +1 -1
  224. package/dist/plugins/auto-import.js +23 -0
  225. package/dist/plugins/auto-import.js.map +1 -1
  226. package/package.json +74 -1
@@ -1,10 +1,10 @@
1
- (function(S){typeof define=="function"&&define.amd?define(S):S()})(function(){"use strict";var Yt=S=>{throw TypeError(S)};var Re=(S,A,v)=>A.has(S)||Yt("Cannot "+v);var Ut=(S,A,v)=>A.has(S)?Yt("Cannot add the same private member more than once"):A instanceof WeakSet?A.add(S):A.set(S,v);var Xt=(S,A,v)=>(Re(S,A,"access private method"),v);var T,Jt;const S=new Map;function A(l){return S.set(l.name,l),l}A({name:"fenix",label:"Fenix (padrão)",tokens:{}}),A({name:"seiya",label:"Seiya",tokens:{color:{primary:"#e11d48",secondary:"#fb7185",info:"#f43f5e",danger:"#be123c"},radius:{sm:"6px",md:"10px",lg:"16px"},effect:{"focus-ring":"none"}}}),A({name:"shiryu",label:"Shiryu",tokens:{color:{primary:"#0d9488",secondary:"#2dd4bf",success:"#059669",info:"#14b8a6"},radius:{sm:"4px",md:"8px",lg:"14px"},effect:{"focus-ring":"none"}}}),A({name:"hyoga",label:"Hyoga",tokens:{color:{primary:"#0284c7",secondary:"#38bdf8",info:"#06b6d4",danger:"#e11d48"},surface:{surface:"#f0f9ff","surface-hover":"#e0f2fe"},radius:{sm:"8px",md:"12px",lg:"18px"}}}),A({name:"shun",label:"Shun",tokens:{color:{primary:"#db2777",secondary:"#f472b6",info:"#ec4899",warning:"#c026d3"},radius:{sm:"10px",md:"14px",lg:"20px"}}}),A({name:"ikki",label:"Ikki",tokens:{color:{primary:"#ea580c",secondary:"#fb923c",danger:"#dc2626",warning:"#f59e0b"},radius:{sm:"2px",md:"4px",lg:"6px"}}}),A({name:"aiolia",label:"Aiolia",tokens:{color:{primary:"#b45309",secondary:"#f59e0b",warning:"#eab308",info:"#84cc16"},radius:{sm:"6px",md:"12px",lg:"20px"},effect:{"focus-ring":"none"}}});function v(l,...t){return l.reduce((e,r,s)=>e+r+(s<t.length?String(t[s]):""),"")}const dt=class dt extends HTMLElement{static get observedAttributes(){return[]}constructor(){super(),this.root=this.attachShadow({mode:"open"})}attributeChangedCallback(){this.isConnected&&this.render()}connectedCallback(){this.render()}disconnectedCallback(){}hasAttr(t){return this.hasAttribute(t)}getAttr(t,e=""){var r;return(r=this.getAttribute(t))!=null?r:e}toggleAttr(t,e){e?this.setAttribute(t,""):this.removeAttribute(t)}setTemplate(t){const e=this.constructor.styles;this.root.innerHTML=`<style>${e}</style>${t}`}};dt.styles="";let y=dt;function k(l,t){var e;return typeof customElements!="undefined"&&!customElements.get(l)&&customElements.define(l,t),(e=customElements.get(l))!=null?e:t}const Wt={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","/":"&#x2F;","`":"&#x60;","=":"&#x3D;"},Zt=/[&<>"'`=/]/g;function u(l){return l==null?"":String(l).replace(Zt,t=>Wt[t]||t)}const ht=class ht extends y{constructor(){super(...arguments),this.spawnRipple=t=>{if(this.hasAttr("disabled")||this.hasAttr("loading"))return;const e=getComputedStyle(this).getPropertyValue("--fx-effect-ripple").trim();if(e==="0"||e==="false")return;const r=this.root.querySelector(".btn");if(!r)return;const s=r.getBoundingClientRect(),i=Math.max(s.width,s.height),a=document.createElement("span");a.className="btn__ripple",a.style.width=a.style.height=`${i}px`,a.style.left=`${t.clientX-s.left-i/2}px`,a.style.top=`${t.clientY-s.top-i/2}px`,r.appendChild(a),a.addEventListener("animationend",()=>a.remove())}}static get observedAttributes(){return["variant","size","disabled","loading","type","full"]}get size(){const t=this.getAttr("size","md");return t==="sm"||t==="lg"?t:"md"}set size(t){this.setAttribute("size",t)}get disabled(){return this.hasAttr("disabled")}set disabled(t){this.toggleAttr("disabled",!!t)}get loading(){return this.hasAttr("loading")}set loading(t){this.toggleAttr("loading",!!t)}render(){const t=this.hasAttr("loading"),e=this.hasAttr("disabled")||t,r=this.getAttr("type","button");this.setTemplate(`
1
+ (function(z){typeof define=="function"&&define.amd?define(z):z()})(function(){"use strict";var Nt=z=>{throw TypeError(z)};var ea=(z,k,m)=>k.has(z)||Nt("Cannot "+m);var jt=(z,k,m)=>k.has(z)?Nt("Cannot add the same private member more than once"):k instanceof WeakSet?k.add(z):k.set(z,m);var It=(z,k,m)=>(ea(z,k,"access private method"),m);var D,Ft;const z=new Map;function k(d){return z.set(d.name,d),d}k({name:"fenix",label:"Fenix (padrão)",tokens:{}}),k({name:"seiya",label:"Seiya",tokens:{color:{primary:"#e11d48",secondary:"#fb7185",info:"#f43f5e",danger:"#be123c"},radius:{sm:"6px",md:"10px",lg:"16px"},effect:{"focus-ring":"none"}}}),k({name:"shiryu",label:"Shiryu",tokens:{color:{primary:"#0d9488",secondary:"#2dd4bf",success:"#059669",info:"#14b8a6"},radius:{sm:"4px",md:"8px",lg:"14px"},effect:{"focus-ring":"none"}}}),k({name:"hyoga",label:"Hyoga",tokens:{color:{primary:"#0284c7",secondary:"#38bdf8",info:"#06b6d4",danger:"#e11d48"},surface:{surface:"#f0f9ff","surface-hover":"#e0f2fe"},radius:{sm:"8px",md:"12px",lg:"18px"}}}),k({name:"shun",label:"Shun",tokens:{color:{primary:"#db2777",secondary:"#f472b6",info:"#ec4899",warning:"#c026d3"},radius:{sm:"10px",md:"14px",lg:"20px"}}}),k({name:"ikki",label:"Ikki",tokens:{color:{primary:"#ea580c",secondary:"#fb923c",danger:"#dc2626",warning:"#f59e0b"},radius:{sm:"2px",md:"4px",lg:"6px"}}}),k({name:"aiolia",label:"Aiolia",tokens:{color:{primary:"#b45309",secondary:"#f59e0b",warning:"#eab308",info:"#84cc16"},radius:{sm:"6px",md:"12px",lg:"20px"},effect:{"focus-ring":"none"}}});function m(d,...e){return d.reduce((t,r,a)=>t+r+(a<e.length?String(e[a]):""),"")}const qe=class qe extends HTMLElement{static get observedAttributes(){return[]}constructor(){super(),this.root=this.attachShadow({mode:"open"})}attributeChangedCallback(e,t,r){this.isConnected&&this.render()}connectedCallback(){this.render()}disconnectedCallback(){}hasAttr(e){return this.hasAttribute(e)}getAttr(e,t=""){var r;return(r=this.getAttribute(e))!=null?r:t}toggleAttr(e,t){t?this.setAttribute(e,""):this.removeAttribute(e)}setTemplate(e){const t=this.constructor.styles;this.root.innerHTML=`<style>${t}</style>${e}`}};qe.styles="";let g=qe;function b(d,e){var t;return typeof customElements!="undefined"&&!customElements.get(d)&&customElements.define(d,e),(t=customElements.get(d))!=null?t:e}const Pt={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","/":"&#x2F;","`":"&#x60;","=":"&#x3D;"},Vt=/[&<>"'`=/]/g;function c(d){return d==null?"":String(d).replace(Vt,e=>Pt[e]||e)}const De=class De extends g{constructor(){super(...arguments),this.spawnRipple=e=>{if(this.hasAttr("disabled")||this.hasAttr("loading"))return;const t=getComputedStyle(this).getPropertyValue("--fx-effect-ripple").trim();if(t==="0"||t==="false")return;const r=this.root.querySelector(".btn");if(!r)return;const a=r.getBoundingClientRect(),i=Math.max(a.width,a.height),o=document.createElement("span");o.className="btn__ripple",o.style.width=o.style.height=`${i}px`,o.style.left=`${e.clientX-a.left-i/2}px`,o.style.top=`${e.clientY-a.top-i/2}px`,r.appendChild(o),o.addEventListener("animationend",()=>o.remove())}}static get observedAttributes(){return["variant","size","disabled","loading","type","full"]}get size(){const e=this.getAttr("size","md");return e==="sm"||e==="lg"?e:"md"}set size(e){this.setAttribute("size",e)}get disabled(){return this.hasAttr("disabled")}set disabled(e){this.toggleAttr("disabled",!!e)}get loading(){return this.hasAttr("loading")}set loading(e){this.toggleAttr("loading",!!e)}render(){const e=this.hasAttr("loading"),t=this.hasAttr("disabled")||e,r=this.getAttr("type","button");this.setTemplate(`
2
2
  <button class="btn" part="button" type="${r}">
3
3
  <span class="btn__icon" part="icon"><slot name="icon"></slot></span>
4
4
  <span class="btn__label" part="label"><slot></slot></span>
5
- ${t?'<span class="btn__spinner" aria-hidden="true"></span>':""}
5
+ ${e?'<span class="btn__spinner" aria-hidden="true"></span>':""}
6
6
  </button>
7
- `);const s=this.root.querySelector(".btn");if(!s)return;const i=s.querySelector(".btn__icon slot"),a=this.root.querySelector(".btn__icon"),o=!!(i!=null&&i.assignedNodes({flatten:!0}).some(n=>{var c;return n.nodeType===Node.ELEMENT_NODE||((c=n.textContent)!=null?c:"").trim()!==""}));a==null||a.toggleAttribute("hidden",!o),e?(s.setAttribute("disabled",""),s.setAttribute("aria-disabled","true")):(s.removeAttribute("disabled"),s.removeAttribute("aria-disabled")),t?s.setAttribute("aria-busy","true"):s.removeAttribute("aria-busy")}connectedCallback(){super.connectedCallback(),this.addEventListener("pointerdown",this.spawnRipple)}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("pointerdown",this.spawnRipple)}};ht.styles=v`
7
+ `);const a=this.root.querySelector(".btn");if(!a)return;const i=a.querySelector(".btn__icon slot"),o=this.root.querySelector(".btn__icon"),s=!!(i!=null&&i.assignedNodes({flatten:!0}).some(n=>{var l;return n.nodeType===Node.ELEMENT_NODE||((l=n.textContent)!=null?l:"").trim()!==""}));o==null||o.toggleAttribute("hidden",!s),t?(a.setAttribute("disabled",""),a.setAttribute("aria-disabled","true")):(a.removeAttribute("disabled"),a.removeAttribute("aria-disabled")),e?a.setAttribute("aria-busy","true"):a.removeAttribute("aria-busy")}connectedCallback(){super.connectedCallback(),this.addEventListener("pointerdown",this.spawnRipple)}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("pointerdown",this.spawnRipple)}};De.styles=m`
8
8
  :host {
9
9
  display: inline-block;
10
10
  vertical-align: middle;
@@ -105,7 +105,7 @@
105
105
  @media (prefers-reduced-motion: reduce) {
106
106
  .btn__ripple { display: none; }
107
107
  }
108
- `;let D=ht;function Gt(){return k("fx-button",D)}Gt();const ut=class ut extends y{static get observedAttributes(){return["variant","round"]}render(){this.setTemplate('<span class="badge" part="badge"><slot></slot></span>')}};ut.styles=v`
108
+ `;let M=De;function Rt(){return b("fx-button",M)}Rt();const Me=class Me extends g{static get observedAttributes(){return["variant","round"]}render(){this.setTemplate('<span class="badge" part="badge"><slot></slot></span>')}};Me.styles=m`
109
109
  :host {
110
110
  display: inline-flex;
111
111
  vertical-align: middle;
@@ -130,7 +130,7 @@
130
130
  :host([variant='danger']) .badge { background: var(--fx-color-danger); color: #fff; border-color: transparent; }
131
131
  :host([variant='info']) .badge { background: var(--fx-color-info); color: #fff; border-color: transparent; }
132
132
  :host(:not([round])) .badge { border-radius: var(--fx-radius-sm); }
133
- `;let q=ut;function Qt(){return k("fx-badge",q)}Qt();const pt=class pt extends y{static get observedAttributes(){return["size"]}get size(){const t=this.getAttr("size","md");return t==="sm"||t==="lg"?t:"md"}set size(t){this.setAttribute("size",t)}render(){this.setTemplate('<span class="spinner" part="spinner" role="status" aria-label="Carregando"></span>')}};pt.styles=v`
133
+ `;let N=Me;function Bt(){return b("fx-badge",N)}Bt();const Ne=class Ne extends g{static get observedAttributes(){return["size"]}get size(){const e=this.getAttr("size","md");return e==="sm"||e==="lg"?e:"md"}set size(e){this.setAttribute("size",e)}render(){this.setTemplate('<span class="spinner" part="spinner" role="status" aria-label="Carregando"></span>')}};Ne.styles=m`
134
134
  :host {
135
135
  display: inline-block;
136
136
  vertical-align: middle;
@@ -151,22 +151,22 @@
151
151
  @media (prefers-reduced-motion: reduce) {
152
152
  .spinner { animation-duration: 2.5s; }
153
153
  }
154
- `;let M=pt;function te(){return k("fx-spinner",M)}te();const ft=class ft extends y{static get observedAttributes(){return["size","disabled","placeholder","searchable","clearable","error","success"]}get size(){const t=this.getAttr("size","md");return t==="sm"||t==="lg"?t:"md"}set size(t){this.setAttribute("size",t)}get value(){return this.getAttr("value")}set value(t){this.setAttribute("value",t)}get disabled(){return this.hasAttr("disabled")}set disabled(t){this.toggleAttr("disabled",!!t)}get options(){return[...this.querySelectorAll("option")].map(t=>{var e,r,s,i,a;return{value:(s=(r=t.getAttribute("value"))!=null?r:(e=t.textContent)==null?void 0:e.trim())!=null?s:"",label:(a=(i=t.textContent)==null?void 0:i.trim())!=null?a:""}})}connectedCallback(){super.connectedCallback(),this.observer=new MutationObserver(()=>this.render()),this.observer.observe(this,{childList:!0,subtree:!0,characterData:!0}),this.docListener=t=>{this.hasAttr("open")&&(t.composedPath().includes(this)||(this.removeAttribute("open"),this.render()))},document.addEventListener("click",this.docListener)}disconnectedCallback(){var t;super.disconnectedCallback(),(t=this.observer)==null||t.disconnect(),this.docListener&&document.removeEventListener("click",this.docListener)}select(t){this.value=t,this.removeAttribute("open"),this.render(),this.dispatchEvent(new CustomEvent("change",{bubbles:!0,composed:!0,detail:{value:t}}))}_navigateOptions(t){var i;t.preventDefault(),this.hasAttr("open")||(this.toggleAttribute("open"),this.render());const e=Array.from(this.root.querySelectorAll(".opt"));if(!e.length)return;const r=e.indexOf(this.root.activeElement);let s=0;t.key==="ArrowDown"?s=r===-1?0:Math.min(r+1,e.length-1):t.key==="ArrowUp"?s=r===-1?e.length-1:Math.max(r-1,0):t.key==="Home"?s=0:t.key==="End"&&(s=e.length-1),(i=e[s])==null||i.focus()}render(){var d,m,p,b,w,z,_;const t=this.hasAttr("open"),e=this.root.querySelector(".search"),r=(d=e==null?void 0:e.value)!=null?d:"",s=e!=null&&this.root.activeElement===e,i=s?e.selectionStart:null,a=this.options;let o=this.getAttr("value");if(!o){const x=this.querySelector("option[selected]");o=(b=(p=x==null?void 0:x.getAttribute("value"))!=null?p:(m=x==null?void 0:x.textContent)==null?void 0:m.trim())!=null?b:""}const n=(z=(w=a.find(x=>x.value===o))==null?void 0:w.label)!=null?z:"",c=this.getAttr("placeholder","Selecione…"),h=r?a.filter(x=>x.label.toLowerCase().includes(r.toLowerCase())):a;this.setTemplate(`
155
- <span class="trigger" part="trigger" role="button" tabindex="${this.disabled?-1:0}" aria-haspopup="listbox" aria-expanded="${t}">
156
- <span class="${n?"label":"placeholder"}">${u(n)||u(c)}</span>
154
+ `;let j=Ne;function Ot(){return b("fx-spinner",j)}Ot();const je=class je extends g{static get observedAttributes(){return["size","disabled","placeholder","searchable","clearable","error","success"]}get size(){const e=this.getAttr("size","md");return e==="sm"||e==="lg"?e:"md"}set size(e){this.setAttribute("size",e)}get value(){return this.getAttr("value")}set value(e){this.setAttribute("value",e)}get disabled(){return this.hasAttr("disabled")}set disabled(e){this.toggleAttr("disabled",!!e)}get options(){return[...this.querySelectorAll("option")].map(e=>{var t,r,a,i,o;return{value:(a=(r=e.getAttribute("value"))!=null?r:(t=e.textContent)==null?void 0:t.trim())!=null?a:"",label:(o=(i=e.textContent)==null?void 0:i.trim())!=null?o:""}})}connectedCallback(){super.connectedCallback(),this.observer=new MutationObserver(()=>this.render()),this.observer.observe(this,{childList:!0,subtree:!0,characterData:!0}),this.docListener=e=>{this.hasAttr("open")&&(e.composedPath().includes(this)||(this.removeAttribute("open"),this.render()))},document.addEventListener("click",this.docListener)}disconnectedCallback(){var e;super.disconnectedCallback(),(e=this.observer)==null||e.disconnect(),this.docListener&&document.removeEventListener("click",this.docListener)}select(e){this.value=e,this.removeAttribute("open"),this.render(),this.dispatchEvent(new CustomEvent("change",{bubbles:!0,composed:!0,detail:{value:e}}))}_navigateOptions(e){var i;e.preventDefault(),this.hasAttr("open")||(this.toggleAttribute("open"),this.render());const t=Array.from(this.root.querySelectorAll(".opt"));if(!t.length)return;const r=t.indexOf(this.root.activeElement);let a=0;e.key==="ArrowDown"?a=r===-1?0:Math.min(r+1,t.length-1):e.key==="ArrowUp"?a=r===-1?t.length-1:Math.max(r-1,0):e.key==="Home"?a=0:e.key==="End"&&(a=t.length-1),(i=t[a])==null||i.focus()}render(){var p,v,f,x,w,S,A;const e=this.hasAttr("open"),t=this.root.querySelector(".search"),r=(p=t==null?void 0:t.value)!=null?p:"",a=t!=null&&this.root.activeElement===t,i=a?t.selectionStart:null,o=this.options;let s=this.getAttr("value");if(!s){const y=this.querySelector("option[selected]");s=(x=(f=y==null?void 0:y.getAttribute("value"))!=null?f:(v=y==null?void 0:y.textContent)==null?void 0:v.trim())!=null?x:""}const n=(S=(w=o.find(y=>y.value===s))==null?void 0:w.label)!=null?S:"",l=this.getAttr("placeholder","Selecione…"),h=r?o.filter(y=>y.label.toLowerCase().includes(r.toLowerCase())):o;this.setTemplate(`
155
+ <span class="trigger" part="trigger" role="button" tabindex="${this.disabled?-1:0}" aria-haspopup="listbox" aria-expanded="${e}">
156
+ <span class="${n?"label":"placeholder"}">${c(n)||c(l)}</span>
157
157
  <span class="actions">
158
- ${this.hasAttr("clearable")&&o?'<button type="button" class="clear" part="clear" aria-label="Limpar">×</button>':""}
158
+ ${this.hasAttr("clearable")&&s?'<button type="button" class="clear" part="clear" aria-label="Limpar">×</button>':""}
159
159
  <span class="caret">▼</span>
160
160
  </span>
161
161
  </span>
162
162
  <div class="panel" part="panel" role="listbox">
163
- ${this.hasAttr("searchable")?`<input class="search" part="search" type="text" placeholder="${u(this.getAttr("search-placeholder","Pesquisar…"))}">`:""}
164
- ${h.map(x=>`
165
- <button type="button" class="opt" role="option" data-value="${u(x.value)}"
166
- aria-selected="${x.value===o}">${u(x.label)}</button>`).join("")}
167
- ${h.length===0?`<div class="empty">${u(this.getAttr("no-results","Nenhum resultado"))}</div>`:""}
163
+ ${this.hasAttr("searchable")?`<input class="search" part="search" type="text" placeholder="${c(this.getAttr("search-placeholder","Pesquisar…"))}">`:""}
164
+ ${h.map(y=>`
165
+ <button type="button" class="opt" role="option" data-value="${c(y.value)}"
166
+ aria-selected="${y.value===s}">${c(y.label)}</button>`).join("")}
167
+ ${h.length===0?`<div class="empty">${c(this.getAttr("no-results","Nenhum resultado"))}</div>`:""}
168
168
  </div>
169
- `),t&&this.setAttribute("open","");const g=this.root.querySelector(".search");if(g&&(g.value=r,g.addEventListener("input",()=>this.render()),g.addEventListener("click",x=>x.stopPropagation()),s)){g.focus();try{g.setSelectionRange(i,i)}catch(x){}}const f=this.root.querySelector(".trigger");f&&(this.disabled&&f.setAttribute("aria-disabled","true"),f.addEventListener("click",x=>{var L;this.disabled||x.target.closest(".clear")||(this.toggleAttribute("open"),this.render(),(L=this.root.querySelector(".search"))==null||L.focus())}),f.addEventListener("keydown",x=>{var L;if(!this.disabled){if(x.key==="Enter"||x.key===" "){x.preventDefault(),f.click();return}if(x.key==="Escape"){this.hasAttr("open")&&(this.removeAttribute("open"),this.render(),(L=this.root.querySelector(".trigger"))==null||L.focus());return}(x.key==="ArrowDown"||x.key==="ArrowUp"||x.key==="Home"||x.key==="End")&&this._navigateOptions(x)}}),(_=this.root.querySelector(".clear"))==null||_.addEventListener("click",x=>{x.stopPropagation(),this.value="",this.removeAttribute("open"),this.render(),this.dispatchEvent(new CustomEvent("change",{bubbles:!0,composed:!0,detail:{value:""}}))}),this.root.querySelectorAll(".opt").forEach(x=>{x.addEventListener("click",()=>this.select(x.dataset.value))}))}};ft.styles=v`
169
+ `),e&&this.setAttribute("open","");const _=this.root.querySelector(".search");if(_&&(_.value=r,_.addEventListener("input",()=>this.render()),_.addEventListener("click",y=>y.stopPropagation()),a)){_.focus();try{_.setSelectionRange(i,i)}catch(y){}}const u=this.root.querySelector(".trigger");u&&(this.disabled&&u.setAttribute("aria-disabled","true"),u.addEventListener("click",y=>{var C;this.disabled||y.target.closest(".clear")||(this.toggleAttribute("open"),this.render(),(C=this.root.querySelector(".search"))==null||C.focus())}),u.addEventListener("keydown",y=>{var C;if(!this.disabled){if(y.key==="Enter"||y.key===" "){y.preventDefault(),u.click();return}if(y.key==="Escape"){this.hasAttr("open")&&(this.removeAttribute("open"),this.render(),(C=this.root.querySelector(".trigger"))==null||C.focus());return}(y.key==="ArrowDown"||y.key==="ArrowUp"||y.key==="Home"||y.key==="End")&&this._navigateOptions(y)}}),(A=this.root.querySelector(".clear"))==null||A.addEventListener("click",y=>{y.stopPropagation(),this.value="",this.removeAttribute("open"),this.render(),this.dispatchEvent(new CustomEvent("change",{bubbles:!0,composed:!0,detail:{value:""}}))}),this.root.querySelectorAll(".opt").forEach(y=>{y.addEventListener("click",()=>this.select(y.dataset.value))}))}};je.styles=m`
170
170
  :host {
171
171
  display: inline-block;
172
172
  vertical-align: middle;
@@ -308,14 +308,14 @@
308
308
  }
309
309
  .clear:hover { color: var(--fx-color-danger); }
310
310
  .clear[hidden] { display: none; }
311
- `;let I=ft;function ee(){return k("fx-select",I)}ee();const gt=class gt extends y{static get observedAttributes(){return["type","size","placeholder","disabled","readonly","min","max","step"]}get size(){const t=this.getAttr("size","md");return t==="sm"||t==="lg"?t:"md"}set size(t){this.setAttribute("size",t)}get value(){return this.getAttr("value")}set value(t){this.setAttribute("value",t)}get disabled(){return this.hasAttr("disabled")}set disabled(t){this.toggleAttr("disabled",!!t)}render(){const t=this.getAttr("type","text"),e=this.getAttr("placeholder"),r=this.hasAttr("readonly"),s=this.hasAttr("disabled"),i=this.getAttr("min"),a=this.getAttr("max"),o=this.getAttr("step");this.setTemplate(`
311
+ `;let I=je;function Kt(){return b("fx-select",I)}Kt();const Ie=class Ie extends g{static get observedAttributes(){return["type","size","placeholder","disabled","readonly","min","max","step"]}get size(){const e=this.getAttr("size","md");return e==="sm"||e==="lg"?e:"md"}set size(e){this.setAttribute("size",e)}get value(){return this.getAttr("value")}set value(e){this.setAttribute("value",e)}get disabled(){return this.hasAttr("disabled")}set disabled(e){this.toggleAttr("disabled",!!e)}render(){const e=this.getAttr("type","text"),t=this.getAttr("placeholder"),r=this.hasAttr("readonly"),a=this.hasAttr("disabled"),i=this.getAttr("min"),o=this.getAttr("max"),s=this.getAttr("step");this.setTemplate(`
312
312
  ${this.hasAttr("clearable")?'<div class="wrap">':""}
313
- <input class="field" part="input" type="${u(t)}"
314
- ${e?`placeholder="${u(e)}"`:""}
315
- ${i?`min="${u(i)}"`:""} ${a?`max="${u(a)}"`:""} ${o?`step="${u(o)}"`:""}
313
+ <input class="field" part="input" type="${c(e)}"
314
+ ${t?`placeholder="${c(t)}"`:""}
315
+ ${i?`min="${c(i)}"`:""} ${o?`max="${c(o)}"`:""} ${s?`step="${c(s)}"`:""}
316
316
  />
317
317
  ${this.hasAttr("clearable")?'<button type="button" class="clear" part="clear" aria-label="Limpar" tabindex="-1">×</button></div>':""}
318
- `);const n=this.root.querySelector(".field");if(!n)return;n.value=this.getAttr("value"),s&&n.setAttribute("disabled",""),r&&n.setAttribute("readonly","");const c=f=>{this.value=n.value,this.dispatchEvent(new CustomEvent(f,{bubbles:!0,composed:!0,detail:{value:n.value}}))};n.addEventListener("input",f=>{f.stopPropagation(),c("input")}),n.addEventListener("change",f=>{f.stopPropagation(),c("change")});const h=this.root.querySelector(".clear"),g=()=>{h==null||h.toggleAttribute("hidden",n.value==="")};g(),h==null||h.addEventListener("click",()=>{n.value="",g(),c("input"),c("change"),n.focus()}),n.addEventListener("input",g)}};gt.styles=v`
318
+ `);const n=this.root.querySelector(".field");if(!n)return;n.value=this.getAttr("value"),a&&n.setAttribute("disabled",""),r&&n.setAttribute("readonly","");const l=u=>{this.value=n.value,this.dispatchEvent(new CustomEvent(u,{bubbles:!0,composed:!0,detail:{value:n.value}}))};n.addEventListener("input",u=>{u.stopPropagation(),l("input")}),n.addEventListener("change",u=>{u.stopPropagation(),l("change")});const h=this.root.querySelector(".clear"),_=()=>{h==null||h.toggleAttribute("hidden",n.value==="")};_(),h==null||h.addEventListener("click",()=>{n.value="",_(),l("input"),l("change"),n.focus()}),n.addEventListener("input",_)}};Ie.styles=m`
319
319
  :host {
320
320
  display: inline-block;
321
321
  vertical-align: middle;
@@ -386,13 +386,13 @@
386
386
  }
387
387
  .clear:hover { color: var(--fx-color-danger); }
388
388
  .clear[hidden] { display: none; }
389
- `;let N=gt;function re(){return k("fx-input",N)}re();const bt=class bt extends y{static get observedAttributes(){return["checked","disabled","size"]}get size(){const t=this.getAttr("size","md");return t==="sm"||t==="lg"?t:"md"}set size(t){this.setAttribute("size",t)}get checked(){return this.hasAttr("checked")}set checked(t){this.toggleAttr("checked",!!t)}get disabled(){return this.hasAttr("disabled")}set disabled(t){this.toggleAttr("disabled",!!t)}render(){this.setTemplate(`
389
+ `;let F=Ie;function Ht(){return b("fx-input",F)}Ht();const Fe=class Fe extends g{static get observedAttributes(){return["checked","disabled","size"]}get size(){const e=this.getAttr("size","md");return e==="sm"||e==="lg"?e:"md"}set size(e){this.setAttribute("size",e)}get checked(){return this.hasAttr("checked")}set checked(e){this.toggleAttr("checked",!!e)}get disabled(){return this.hasAttr("disabled")}set disabled(e){this.toggleAttr("disabled",!!e)}render(){this.setTemplate(`
390
390
  <button class="switch" part="switch" type="button" role="switch"
391
391
  aria-checked="${this.checked}" ${this.hasAttr("disabled")?"disabled":""}>
392
392
  <span class="track" part="track"><span class="thumb" part="thumb"></span></span>
393
393
  <span class="label" part="label"><slot></slot></span>
394
394
  </button>
395
- `);const t=this.root.querySelector(".switch");t&&t.addEventListener("click",()=>{this.hasAttr("disabled")||(this.checked=!this.checked,t.setAttribute("aria-checked",String(this.checked)),this.dispatchEvent(new CustomEvent("change",{bubbles:!0,composed:!0,detail:{checked:this.checked}})))})}};bt.styles=v`
395
+ `);const e=this.root.querySelector(".switch");e&&e.addEventListener("click",()=>{this.hasAttr("disabled")||(this.checked=!this.checked,e.setAttribute("aria-checked",String(this.checked)),this.dispatchEvent(new CustomEvent("change",{bubbles:!0,composed:!0,detail:{checked:this.checked}})))})}};Fe.styles=m`
396
396
  :host {
397
397
  display: inline-flex;
398
398
  vertical-align: middle;
@@ -446,36 +446,36 @@
446
446
  :host([size='lg']) .track { width: 48px; height: 26px; }
447
447
  :host([size='lg']) .thumb { top: 4px; left: 4px; width: 18px; height: 18px; }
448
448
  :host([size='lg'][checked]) .thumb { transform: translateX(22px); }
449
- `;let j=bt;function se(){return k("fx-switch",j)}se();const vt=class vt extends y{constructor(){super(...arguments),this.selected=new Set}static get observedAttributes(){return["disabled","placeholder"]}get values(){const t=this.getAttr("values");return t?t.split(",").map(e=>e.trim()).filter(Boolean):[]}set values(t){this.setAttribute("values",t.join(","))}get disabled(){return this.hasAttr("disabled")}set disabled(t){this.toggleAttr("disabled",!!t)}get options(){return[...this.querySelectorAll("option")].map(t=>{var e,r,s,i,a;return{value:(s=(r=t.getAttribute("value"))!=null?r:(e=t.textContent)==null?void 0:e.trim())!=null?s:"",label:(a=(i=t.textContent)==null?void 0:i.trim())!=null?a:""}})}connectedCallback(){this.selected=new Set(this.values),super.connectedCallback(),this.observer=new MutationObserver(()=>this.render()),this.observer.observe(this,{childList:!0,subtree:!0,characterData:!0}),this.docListener=t=>{this.hasAttr("open")&&(t.composedPath().includes(this)||(this.removeAttribute("open"),this.render()))},document.addEventListener("click",this.docListener)}disconnectedCallback(){var t;super.disconnectedCallback(),(t=this.observer)==null||t.disconnect(),this.docListener&&document.removeEventListener("click",this.docListener)}commit(){this.values=[...this.selected],this.render(),this.dispatchEvent(new CustomEvent("change",{bubbles:!0,composed:!0,detail:{values:[...this.selected]}}))}toggleValue(t){this.selected.has(t)?this.selected.delete(t):this.selected.add(t),this.commit()}_navigateOptions(t){var i;t.preventDefault(),this.hasAttr("open")||(this.toggleAttribute("open"),this.render());const e=Array.from(this.root.querySelectorAll(".opt"));if(!e.length)return;const r=e.indexOf(this.root.activeElement);let s=0;t.key==="ArrowDown"?s=r===-1?0:Math.min(r+1,e.length-1):t.key==="ArrowUp"?s=r===-1?e.length-1:Math.max(r-1,0):t.key==="Home"?s=0:t.key==="End"&&(s=e.length-1),(i=e[s])==null||i.focus()}render(){var c,h,g,f;const t=this.hasAttr("open"),e=(h=(c=this.root.querySelector(".search"))==null?void 0:c.value)!=null?h:"",r=this.options;for(const d of[...this.selected])r.some(m=>m.value===d)||this.selected.delete(d);const s=r.filter(d=>this.selected.has(d.value)),i=this.getAttr("placeholder","Selecione…"),a=e?r.filter(d=>d.label.toLowerCase().includes(e.toLowerCase())):r;this.setTemplate(`
450
- <span class="trigger" part="trigger" role="button" tabindex="${this.disabled?-1:0}" aria-haspopup="listbox" aria-expanded="${t}" aria-disabled="${this.disabled}">
449
+ `;let P=Fe;function Yt(){return b("fx-switch",P)}Yt();const Pe=class Pe extends g{constructor(){super(...arguments),this.selected=new Set}static get observedAttributes(){return["disabled","placeholder"]}get values(){const e=this.getAttr("values");return e?e.split(",").map(t=>t.trim()).filter(Boolean):[]}set values(e){this.setAttribute("values",e.join(","))}get disabled(){return this.hasAttr("disabled")}set disabled(e){this.toggleAttr("disabled",!!e)}get options(){return[...this.querySelectorAll("option")].map(e=>{var t,r,a,i,o;return{value:(a=(r=e.getAttribute("value"))!=null?r:(t=e.textContent)==null?void 0:t.trim())!=null?a:"",label:(o=(i=e.textContent)==null?void 0:i.trim())!=null?o:""}})}connectedCallback(){this.selected=new Set(this.values),super.connectedCallback(),this.observer=new MutationObserver(()=>this.render()),this.observer.observe(this,{childList:!0,subtree:!0,characterData:!0}),this.docListener=e=>{this.hasAttr("open")&&(e.composedPath().includes(this)||(this.removeAttribute("open"),this.render()))},document.addEventListener("click",this.docListener)}disconnectedCallback(){var e;super.disconnectedCallback(),(e=this.observer)==null||e.disconnect(),this.docListener&&document.removeEventListener("click",this.docListener)}commit(){this.values=[...this.selected],this.render(),this.dispatchEvent(new CustomEvent("change",{bubbles:!0,composed:!0,detail:{values:[...this.selected]}}))}toggleValue(e){this.selected.has(e)?this.selected.delete(e):this.selected.add(e),this.commit()}_navigateOptions(e){var i;e.preventDefault(),this.hasAttr("open")||(this.toggleAttribute("open"),this.render());const t=Array.from(this.root.querySelectorAll(".opt"));if(!t.length)return;const r=t.indexOf(this.root.activeElement);let a=0;e.key==="ArrowDown"?a=r===-1?0:Math.min(r+1,t.length-1):e.key==="ArrowUp"?a=r===-1?t.length-1:Math.max(r-1,0):e.key==="Home"?a=0:e.key==="End"&&(a=t.length-1),(i=t[a])==null||i.focus()}render(){var l,h,_,u;const e=this.hasAttr("open"),t=(h=(l=this.root.querySelector(".search"))==null?void 0:l.value)!=null?h:"",r=this.options;for(const p of[...this.selected])r.some(v=>v.value===p)||this.selected.delete(p);const a=r.filter(p=>this.selected.has(p.value)),i=this.getAttr("placeholder","Selecione…"),o=t?r.filter(p=>p.label.toLowerCase().includes(t.toLowerCase())):r;this.setTemplate(`
450
+ <span class="trigger" part="trigger" role="button" tabindex="${this.disabled?-1:0}" aria-haspopup="listbox" aria-expanded="${e}" aria-disabled="${this.disabled}">
451
451
  <span class="lead">
452
- ${s.length?s.map(d=>`
453
- <span class="chip" data-value="${u(d.value)}">
454
- ${u(d.label)}
455
- <span class="chip__x" role="button" aria-label="Remover ${u(d.label)}">×</span>
456
- </span>`).join(""):`<span class="placeholder">${u(i)}</span>`}
452
+ ${a.length?a.map(p=>`
453
+ <span class="chip" data-value="${c(p.value)}">
454
+ ${c(p.label)}
455
+ <span class="chip__x" role="button" aria-label="Remover ${c(p.label)}">×</span>
456
+ </span>`).join(""):`<span class="placeholder">${c(i)}</span>`}
457
457
  </span>
458
458
  <span class="trigger-right">
459
- ${this.hasAttr("clearable")&&s.length?'<button type="button" class="icon-btn clear" part="clear" aria-label="Limpar seleção">×</button>':""}
459
+ ${this.hasAttr("clearable")&&a.length?'<button type="button" class="icon-btn clear" part="clear" aria-label="Limpar seleção">×</button>':""}
460
460
  <span class="caret">▼</span>
461
461
  </span>
462
462
  </span>
463
463
  <div class="panel" part="panel" role="listbox" aria-multiselectable="true">
464
464
  <div class="panel-header">
465
- <span class="count">${s.length} selecionado${s.length===1?"":"s"}</span>
466
- ${this.hasAttr("clearable")&&s.length?'<button type="button" class="clear-all">Limpar tudo</button>':""}
465
+ <span class="count">${a.length} selecionado${a.length===1?"":"s"}</span>
466
+ ${this.hasAttr("clearable")&&a.length?'<button type="button" class="clear-all">Limpar tudo</button>':""}
467
467
  </div>
468
- ${this.hasAttr("searchable")?`<input class="search" part="search" type="text" placeholder="${u(this.getAttr("search-placeholder","Pesquisar…"))}">`:""}
468
+ ${this.hasAttr("searchable")?`<input class="search" part="search" type="text" placeholder="${c(this.getAttr("search-placeholder","Pesquisar…"))}">`:""}
469
469
  <ul class="list">
470
- ${a.map(d=>`
471
- <li><button type="button" class="opt" role="option" data-value="${u(d.value)}"
472
- aria-selected="${this.selected.has(d.value)}">
473
- <span class="box" aria-hidden="true"></span>${u(d.label)}
470
+ ${o.map(p=>`
471
+ <li><button type="button" class="opt" role="option" data-value="${c(p.value)}"
472
+ aria-selected="${this.selected.has(p.value)}">
473
+ <span class="box" aria-hidden="true"></span>${c(p.label)}
474
474
  </button></li>`).join("")}
475
- ${a.length===0?`<li class="empty">${u(this.getAttr("no-results","Nenhum resultado"))}</li>`:""}
475
+ ${o.length===0?`<li class="empty">${c(this.getAttr("no-results","Nenhum resultado"))}</li>`:""}
476
476
  </ul>
477
477
  </div>
478
- `),t&&this.setAttribute("open","");const o=this.root.querySelector(".search");o&&(o.value=e,o.addEventListener("input",()=>{var p;const d=(p=o.selectionStart)!=null?p:o.value.length;this.render();const m=this.root.querySelector(".search");m&&(m.focus(),m.setSelectionRange(d,d))}),o.addEventListener("click",d=>d.stopPropagation()));const n=this.root.querySelector(".trigger");n&&(n.addEventListener("click",d=>{if(!this.disabled&&!d.target.closest(".clear")&&!d.target.closest(".chip__x")){if(this.toggleAttribute("open"),this.hasAttr("open")){const m=this.getBoundingClientRect();this.toggleAttribute("up",m.bottom+300>window.innerHeight&&m.top>300)}else this.removeAttribute("up");this.render()}}),n.addEventListener("keydown",d=>{var m;if(!this.disabled){if(d.key==="Enter"||d.key===" "){d.preventDefault(),n.dispatchEvent(new MouseEvent("click",{bubbles:!0}));return}if(d.key==="Escape"){this.hasAttr("open")&&(this.removeAttribute("open"),this.render(),(m=this.root.querySelector(".trigger"))==null||m.focus());return}(d.key==="ArrowDown"||d.key==="ArrowUp"||d.key==="Home"||d.key==="End")&&this._navigateOptions(d)}}),(g=this.root.querySelector(".clear"))==null||g.addEventListener("click",d=>{d.stopPropagation(),this.selected.clear(),this.commit()}),(f=this.root.querySelector(".clear-all"))==null||f.addEventListener("click",d=>{d.stopPropagation(),this.selected.clear(),this.commit()}),this.root.querySelectorAll(".chip").forEach(d=>{var m;(m=d.querySelector(".chip__x"))==null||m.addEventListener("click",p=>{p.stopPropagation(),this.toggleValue(d.dataset.value)})}),this.root.querySelectorAll(".opt").forEach(d=>{d.addEventListener("click",()=>this.toggleValue(d.dataset.value))}))}};vt.styles=v`
478
+ `),e&&this.setAttribute("open","");const s=this.root.querySelector(".search");s&&(s.value=t,s.addEventListener("input",()=>{var f;const p=(f=s.selectionStart)!=null?f:s.value.length;this.render();const v=this.root.querySelector(".search");v&&(v.focus(),v.setSelectionRange(p,p))}),s.addEventListener("click",p=>p.stopPropagation()));const n=this.root.querySelector(".trigger");n&&(n.addEventListener("click",p=>{if(!this.disabled&&!p.target.closest(".clear")&&!p.target.closest(".chip__x")){if(this.toggleAttribute("open"),this.hasAttr("open")){const v=this.getBoundingClientRect();this.toggleAttribute("up",v.bottom+300>window.innerHeight&&v.top>300)}else this.removeAttribute("up");this.render()}}),n.addEventListener("keydown",p=>{var v;if(!this.disabled){if(p.key==="Enter"||p.key===" "){p.preventDefault(),n.dispatchEvent(new MouseEvent("click",{bubbles:!0}));return}if(p.key==="Escape"){this.hasAttr("open")&&(this.removeAttribute("open"),this.render(),(v=this.root.querySelector(".trigger"))==null||v.focus());return}(p.key==="ArrowDown"||p.key==="ArrowUp"||p.key==="Home"||p.key==="End")&&this._navigateOptions(p)}}),(_=this.root.querySelector(".clear"))==null||_.addEventListener("click",p=>{p.stopPropagation(),this.selected.clear(),this.commit()}),(u=this.root.querySelector(".clear-all"))==null||u.addEventListener("click",p=>{p.stopPropagation(),this.selected.clear(),this.commit()}),this.root.querySelectorAll(".chip").forEach(p=>{var v;(v=p.querySelector(".chip__x"))==null||v.addEventListener("click",f=>{f.stopPropagation(),this.toggleValue(p.dataset.value)})}),this.root.querySelectorAll(".opt").forEach(p=>{p.addEventListener("click",()=>this.toggleValue(p.dataset.value))}))}};Pe.styles=m`
479
479
  :host {
480
480
  display: inline-block;
481
481
  vertical-align: middle;
@@ -690,14 +690,14 @@
690
690
  .opt[aria-selected='true'] .box::after { content: '✓'; }
691
691
  .empty { padding: var(--fx-space-md); color: var(--fx-text-muted); text-align: center; }
692
692
  :host([disabled]) .trigger { opacity: 0.55; cursor: not-allowed; background: var(--fx-surface-surface-hover); }
693
- `;let P=vt;function ie(){return k("fx-multiselect",P)}ie();const $=(l,t,e)=>l*1e4+t*100+e;function E(l){const t=/^(\d{4})(?:-(\d{2}))?(?:-(\d{2}))?$/.exec(l.trim());if(!t)return null;const e=+t[1],r=t[2]?+t[2]:1,s=t[3]?+t[3]:null;return s!==null?{lo:$(e,r,s),hi:$(e,r,s)}:t[2]?{lo:$(e,r,1),hi:$(e,r,31)}:{lo:$(e,1,1),hi:$(e,12,31)}}const mt=class mt extends y{constructor(){super(...arguments),this.view="days",this.cursor={y:new Date().getFullYear(),m:new Date().getMonth()},this.pickStart=null,this.pickEnd=null}static get observedAttributes(){return["value","start","end","min","max","range","mode","values","locale","disabled"]}get mode(){const t=this.getAttr("mode");return t==="range"||t==="multiple"?t:this.hasAttr("range")?"range":"single"}set mode(t){this.setAttribute("mode",t)}get range(){return this.mode==="range"}set range(t){this.toggleAttr("range",!!t)}get values(){const t=this.getAttr("values");return t?t.split(",").map(e=>e.trim()).filter(Boolean):[]}set values(t){this.setAttribute("values",t.join(","))}get value(){return this.getAttr("value")}set value(t){this.setAttribute("value",t)}bounds(){return{min:E(this.getAttr("min","")),max:E(this.getAttr("max",""))}}locale(){return this.getAttr("locale","pt-BR")}fmt(t,e){try{return new Intl.DateTimeFormat(this.locale(),t).format(e)}catch(r){return new Intl.DateTimeFormat("pt-BR",t).format(e)}}dayDisabled(t,e,r){const{min:s,max:i}=this.bounds(),a=$(t,e+1,r);return s!==null&&a<s.lo||i!==null&&a>i.hi}monthDisabled(t,e){const{min:r,max:s}=this.bounds(),i=$(t,e,1),a=$(t,e,31);return r!==null&&a<r.lo||s!==null&&i>s.hi}yearDisabled(t){const{min:e,max:r}=this.bounds(),s=$(t,1,1),i=$(t,12,31);return e!==null&&i<e.lo||r!==null&&s>r.hi}dayKeyOf(t){return $(t.getFullYear(),t.getMonth()+1,t.getDate())}keyToDate(t){return new Date(Math.floor(t/1e4),Math.floor(t/100)%100-1,t%100)}iso(t){const e=this.keyToDate(t),r=s=>String(s).padStart(2,"0");return`${e.getFullYear()}-${r(e.getMonth()+1)}-${r(e.getDate())}`}selection(){const t=new Set(this.values.map(r=>{var s,i;return(i=(s=E(r))==null?void 0:s.lo)!=null?i:0}).filter(Boolean));if(this.mode==="range"){let r=this.pickStart,s=this.pickEnd;const i=E(this.getAttr("start","")),a=E(this.getAttr("end",""));return r===null&&i&&(r=i.lo),s===null&&a&&(s=a.lo),{start:r,end:s,single:null,multi:t}}if(this.mode==="multiple")return{start:null,end:null,single:null,multi:t};const e=E(this.getAttr("value",""));return{start:null,end:null,single:e?e.lo:null,multi:t}}emit(){if(this.mode==="range"){const t={start:this.pickStart!==null?this.iso(this.pickStart):this.getAttr("start",""),end:this.pickEnd!==null?this.iso(this.pickEnd):this.getAttr("end","")};this.setAttribute("start",t.start),this.setAttribute("end",t.end),this.dispatchEvent(new CustomEvent("change",{bubbles:!0,composed:!0,detail:t}))}else if(this.mode==="multiple"){const t=this.values;this.dispatchEvent(new CustomEvent("change",{bubbles:!0,composed:!0,detail:{values:t}}))}else{const t=this.getAttr("value");this.dispatchEvent(new CustomEvent("change",{bubbles:!0,composed:!0,detail:{value:t}}))}}pickDay(t){if(this.mode==="range"){if(this.pickStart===null||this.pickEnd!==null){this.pickStart=t,this.pickEnd=null,this.setAttribute("start",this.iso(t)),this.removeAttribute("end"),this.render();return}t<this.pickStart?[this.pickStart,this.pickEnd]=[t,this.pickStart]:this.pickEnd=t,this.emit()}else if(this.mode==="multiple"){const e=new Set(this.values),r=this.iso(t);e.has(r)?e.delete(r):e.add(r),this.values=[...e].sort(),this.emit()}else this.value=this.iso(t),this.emit();this.render()}navigate(t){if(this.view==="days"){const e=new Date(this.cursor.y,this.cursor.m+t,1);this.cursor={y:e.getFullYear(),m:e.getMonth()}}else this.view==="months"?this.cursor.y+=t:this.cursor.y+=t*12;this.render()}render(){const t=this.dayKeyOf(new Date),e=this.selection(),r=this.locale(),s={days:this.fmt({month:"long",year:"numeric"},new Date(this.cursor.y,this.cursor.m,1)),months:String(this.cursor.y),years:`${Math.floor(this.cursor.y/12)*12} – ${Math.floor(this.cursor.y/12)*12+11}`};let i="";if(this.view==="days")i=[...Array(7)].map((c,h)=>this.fmt({weekday:"short"},new Date(2024,8,1+h))).map(c=>`<span class="wd">${c}</span>`).join("")+this.daysHtml(t,e,r);else if(this.view==="months")i=[...Array(12)].map((n,c)=>{const h=this.monthDisabled(this.cursor.y,c+1);return`<button type="button" class="cell" data-month="${c}" ${h?"disabled":""}>${this.fmt({month:"short"},new Date(this.cursor.y,c,1))}</button>`}).join("");else{const n=Math.floor(this.cursor.y/12)*12;i=[...Array(12)].map((c,h)=>{const g=n+h,f=this.yearDisabled(g);return`<button type="button" class="cell" data-year="${g}" ${f?"disabled":""}>${g}</button>`}).join("")}const a=this.view==="days"?'data-goto="months"':this.view==="months"?'data-goto="years"':"";this.setTemplate(`
693
+ `;let V=Pe;function Xt(){return b("fx-multiselect",V)}Xt();const $=(d,e,t)=>d*1e4+e*100+t;function E(d){const e=/^(\d{4})(?:-(\d{2}))?(?:-(\d{2}))?$/.exec(d.trim());if(!e)return null;const t=+e[1],r=e[2]?+e[2]:1,a=e[3]?+e[3]:null;return a!==null?{lo:$(t,r,a),hi:$(t,r,a)}:e[2]?{lo:$(t,r,1),hi:$(t,r,31)}:{lo:$(t,1,1),hi:$(t,12,31)}}const Ve=class Ve extends g{constructor(){super(...arguments),this.view="days",this.cursor={y:new Date().getFullYear(),m:new Date().getMonth()},this.pickStart=null,this.pickEnd=null}static get observedAttributes(){return["value","start","end","min","max","range","mode","values","locale","disabled"]}get mode(){const e=this.getAttr("mode");return e==="range"||e==="multiple"?e:this.hasAttr("range")?"range":"single"}set mode(e){this.setAttribute("mode",e)}get range(){return this.mode==="range"}set range(e){this.toggleAttr("range",!!e)}get values(){const e=this.getAttr("values");return e?e.split(",").map(t=>t.trim()).filter(Boolean):[]}set values(e){this.setAttribute("values",e.join(","))}get value(){return this.getAttr("value")}set value(e){this.setAttribute("value",e)}bounds(){return{min:E(this.getAttr("min","")),max:E(this.getAttr("max",""))}}locale(){return this.getAttr("locale","pt-BR")}fmt(e,t){try{return new Intl.DateTimeFormat(this.locale(),e).format(t)}catch(r){return new Intl.DateTimeFormat("pt-BR",e).format(t)}}dayDisabled(e,t,r){const{min:a,max:i}=this.bounds(),o=$(e,t+1,r);return a!==null&&o<a.lo||i!==null&&o>i.hi}monthDisabled(e,t){const{min:r,max:a}=this.bounds(),i=$(e,t,1),o=$(e,t,31);return r!==null&&o<r.lo||a!==null&&i>a.hi}yearDisabled(e){const{min:t,max:r}=this.bounds(),a=$(e,1,1),i=$(e,12,31);return t!==null&&i<t.lo||r!==null&&a>r.hi}dayKeyOf(e){return $(e.getFullYear(),e.getMonth()+1,e.getDate())}keyToDate(e){return new Date(Math.floor(e/1e4),Math.floor(e/100)%100-1,e%100)}iso(e){const t=this.keyToDate(e),r=a=>String(a).padStart(2,"0");return`${t.getFullYear()}-${r(t.getMonth()+1)}-${r(t.getDate())}`}selection(){const e=new Set(this.values.map(r=>{var a,i;return(i=(a=E(r))==null?void 0:a.lo)!=null?i:0}).filter(Boolean));if(this.mode==="range"){let r=this.pickStart,a=this.pickEnd;const i=E(this.getAttr("start","")),o=E(this.getAttr("end",""));return r===null&&i&&(r=i.lo),a===null&&o&&(a=o.lo),{start:r,end:a,single:null,multi:e}}if(this.mode==="multiple")return{start:null,end:null,single:null,multi:e};const t=E(this.getAttr("value",""));return{start:null,end:null,single:t?t.lo:null,multi:e}}emit(){if(this.mode==="range"){const e={start:this.pickStart!==null?this.iso(this.pickStart):this.getAttr("start",""),end:this.pickEnd!==null?this.iso(this.pickEnd):this.getAttr("end","")};this.setAttribute("start",e.start),this.setAttribute("end",e.end),this.dispatchEvent(new CustomEvent("change",{bubbles:!0,composed:!0,detail:e}))}else if(this.mode==="multiple"){const e=this.values;this.dispatchEvent(new CustomEvent("change",{bubbles:!0,composed:!0,detail:{values:e}}))}else{const e=this.getAttr("value");this.dispatchEvent(new CustomEvent("change",{bubbles:!0,composed:!0,detail:{value:e}}))}}pickDay(e){if(this.mode==="range"){if(this.pickStart===null||this.pickEnd!==null){this.pickStart=e,this.pickEnd=null,this.setAttribute("start",this.iso(e)),this.removeAttribute("end"),this.render();return}e<this.pickStart?[this.pickStart,this.pickEnd]=[e,this.pickStart]:this.pickEnd=e,this.emit()}else if(this.mode==="multiple"){const t=new Set(this.values),r=this.iso(e);t.has(r)?t.delete(r):t.add(r),this.values=[...t].sort(),this.emit()}else this.value=this.iso(e),this.emit();this.render()}navigate(e){if(this.view==="days"){const t=new Date(this.cursor.y,this.cursor.m+e,1);this.cursor={y:t.getFullYear(),m:t.getMonth()}}else this.view==="months"?this.cursor.y+=e:this.cursor.y+=e*12;this.render()}render(){const e=this.dayKeyOf(new Date),t=this.selection(),r=this.locale(),a={days:this.fmt({month:"long",year:"numeric"},new Date(this.cursor.y,this.cursor.m,1)),months:String(this.cursor.y),years:`${Math.floor(this.cursor.y/12)*12} – ${Math.floor(this.cursor.y/12)*12+11}`};let i="";if(this.view==="days")i=[...Array(7)].map((l,h)=>this.fmt({weekday:"short"},new Date(2024,8,1+h))).map(l=>`<span class="wd">${l}</span>`).join("")+this.daysHtml(e,t,r);else if(this.view==="months")i=[...Array(12)].map((n,l)=>{const h=this.monthDisabled(this.cursor.y,l+1);return`<button type="button" class="cell" data-month="${l}" ${h?"disabled":""}>${this.fmt({month:"short"},new Date(this.cursor.y,l,1))}</button>`}).join("");else{const n=Math.floor(this.cursor.y/12)*12;i=[...Array(12)].map((l,h)=>{const _=n+h,u=this.yearDisabled(_);return`<button type="button" class="cell" data-year="${_}" ${u?"disabled":""}>${_}</button>`}).join("")}const o=this.view==="days"?'data-goto="months"':this.view==="months"?'data-goto="years"':"";this.setTemplate(`
694
694
  <div class="head">
695
695
  <button type="button" class="nav" data-nav="-1" aria-label="Anterior">‹</button>
696
- <button type="button" class="title" part="title" ${a}>${s[this.view]}</button>
696
+ <button type="button" class="title" part="title" ${o}>${a[this.view]}</button>
697
697
  <button type="button" class="nav" data-nav="1" aria-label="Próximo">›</button>
698
698
  </div>
699
699
  <div class="grid ${this.view}">${i}</div>
700
- `),this.root.querySelectorAll("[data-nav]").forEach(n=>n.addEventListener("click",()=>this.navigate(Number(n.dataset.nav))));const o=this.root.querySelector("[data-goto]");o==null||o.addEventListener("click",()=>{this.view=o.dataset.goto,this.render()}),this.root.querySelectorAll("[data-day]").forEach(n=>n.addEventListener("click",()=>this.pickDay(Number(n.dataset.day)))),this.root.querySelectorAll("[data-month]").forEach(n=>n.addEventListener("click",()=>{this.cursor.m=Number(n.dataset.month),this.view="days",this.render()})),this.root.querySelectorAll("[data-year]").forEach(n=>n.addEventListener("click",()=>{this.cursor.y=Number(n.dataset.year),this.view="months",this.render()}))}daysHtml(t,e,r){const{y:s,m:i}=this.cursor,a=new Date(s,i,1).getDay(),o=new Date(s,i+1,0).getDate(),n=new Date(s,i,0).getDate();let c="";for(let h=a-1;h>=0;h--)c+=`<span class="cell muted">${n-h}</span>`;for(let h=1;h<=o;h++){const g=$(s,i+1,h),f=e.single===g||e.start===g||e.end===g||e.multi.has(g),d=e.start!==null&&e.end!==null&&g>e.start&&g<e.end,m=["cell",f?"sel":"",d?"in-range":"",g===t?"today":""].filter(Boolean).join(" ");c+=`<button type="button" class="${m}" data-day="${g}" ${this.dayDisabled(s,i,h)?"disabled":""}>${h}</button>`}return c}};mt.styles=v`
700
+ `),this.root.querySelectorAll("[data-nav]").forEach(n=>n.addEventListener("click",()=>this.navigate(Number(n.dataset.nav))));const s=this.root.querySelector("[data-goto]");s==null||s.addEventListener("click",()=>{this.view=s.dataset.goto,this.render()}),this.root.querySelectorAll("[data-day]").forEach(n=>n.addEventListener("click",()=>this.pickDay(Number(n.dataset.day)))),this.root.querySelectorAll("[data-month]").forEach(n=>n.addEventListener("click",()=>{this.cursor.m=Number(n.dataset.month),this.view="days",this.render()})),this.root.querySelectorAll("[data-year]").forEach(n=>n.addEventListener("click",()=>{this.cursor.y=Number(n.dataset.year),this.view="months",this.render()}))}daysHtml(e,t,r){const{y:a,m:i}=this.cursor,o=new Date(a,i,1).getDay(),s=new Date(a,i+1,0).getDate(),n=new Date(a,i,0).getDate();let l="";for(let h=o-1;h>=0;h--)l+=`<span class="cell muted">${n-h}</span>`;for(let h=1;h<=s;h++){const _=$(a,i+1,h),u=t.single===_||t.start===_||t.end===_||t.multi.has(_),p=t.start!==null&&t.end!==null&&_>t.start&&_<t.end,v=["cell",u?"sel":"",p?"in-range":"",_===e?"today":""].filter(Boolean).join(" ");l+=`<button type="button" class="${v}" data-day="${_}" ${this.dayDisabled(a,i,h)?"disabled":""}>${h}</button>`}return l}};Ve.styles=m`
701
701
  :host {
702
702
  display: inline-block;
703
703
  font-family: var(--fx-font-family);
@@ -827,13 +827,13 @@
827
827
  cursor: not-allowed;
828
828
  pointer-events: none;
829
829
  }
830
- `;let F=mt;function ae(){return k("fx-calendar",F)}ae();const xt=class xt extends y{constructor(){super(...arguments),this.time={h:0,m:0,s:0}}static get observedAttributes(){return["value","start","end","values","mode","min","max","placeholder","disabled","format","show-time","free-text"]}get mode(){const t=this.getAttr("mode","single");return["single","range","multiple"].includes(t)?t:"single"}set mode(t){this.setAttribute("mode",t)}get value(){return this.getAttr("value")}set value(t){this.setAttribute("value",t)}get values(){const t=this.getAttr("values");return t?t.split(",").map(e=>e.trim()).filter(Boolean):[]}set values(t){this.setAttribute("values",t.join(","))}get disabled(){return this.hasAttr("disabled")}set disabled(t){this.toggleAttr("disabled",!!t)}connectedCallback(){super.connectedCallback(),this.docListener=t=>{this.hasAttr("open")&&(t.composedPath().includes(this)||this.removeAttribute("open"))},document.addEventListener("click",this.docListener)}disconnectedCallback(){super.disconnectedCallback(),this.docListener&&document.removeEventListener("click",this.docListener)}formatDate(t){if(!t)return"";const e=this.getAttr("format");if(!e)return t.split("T")[0];const[r,s]=t.split("T"),[i="",a="",o=""]=r.split("-"),[n="00",c="00",h="00"]=(s!=null?s:"").split(":");return e.replace(/yyyy/gi,"").replace(/MM/g,"").replace(/mm/g,"").replace(/dd/gi,"").replace(/HH/g,"").replace(/SS/gi,"").replace(/\u0001/g,i).replace(/\u0002/g,a).replace(/\u0003/g,o).replace(/\u0004/g,n).replace(/\u0005/g,c).replace(/\u0006/g,h)}displayText(){if(this.mode==="range"){const e=this.getAttr("start"),r=this.getAttr("end");if(this.hasAttr("show-time"),!e&&!r)return"";if(this.hasAttr("show-time")){const s=i=>i?`${this.formatDate(i)} ${this.timeText()}`:i?`${this.formatDate(i)} …`:"";return e&&r?`${s(e)} → ${s(r)}`:s(e)}return e&&r?`${this.formatDate(e)} → ${this.formatDate(r)}`:e?`${this.formatDate(e)} → …`:""}if(this.mode==="multiple")return this.values.map(e=>this.formatDate(e)).join(", ");const t=this.formatDate(this.value);return t&&this.hasAttr("show-time")?`${t} ${this.timeText()}`:t}timeText(){const t=e=>String(e).padStart(2,"0");return`${t(this.time.h)}:${t(this.time.m)}:${t(this.time.s)}`}loadTimeFromValue(){const e=(this.value||this.getAttr("start")||"").split("T")[1];if(!e)return;const[r,s,i]=e.split(":").map(a=>parseInt(a,10));this.time={h:r||0,m:s||0,s:i||0}}withTime(t){return t&&(this.hasAttr("show-time")?`${t}T${this.timeText()}`:t)}render(){var h,g;const t=this.disabled,e=this.hasAttr("clearable"),r=this.displayText(),s=r.length>0,i=this.hasAttr("show-time");this.loadTimeFromValue();let a=`min="${u(this.getAttr("min"))}" max="${u(this.getAttr("max"))}"`;if(this.mode==="range")a+=` range start="${u(this.getAttr("start"))}" end="${u(this.getAttr("end"))}"`;else if(this.mode==="multiple"){const f=this.values.map(d=>d.split("T")[0]).join(",");a+=` mode="multiple" values="${u(f)}"`}else{const f=(h=this.value.split("T")[0])!=null?h:"";a+=` value="${u(f)}"`}this.setTemplate(`
830
+ `;let R=Ve;function Ut(){return b("fx-calendar",R)}Ut();const Re=class Re extends g{constructor(){super(...arguments),this.time={h:0,m:0,s:0}}static get observedAttributes(){return["value","start","end","values","mode","min","max","placeholder","disabled","format","show-time","free-text"]}get mode(){const e=this.getAttr("mode","single");return["single","range","multiple"].includes(e)?e:"single"}set mode(e){this.setAttribute("mode",e)}get value(){return this.getAttr("value")}set value(e){this.setAttribute("value",e)}get values(){const e=this.getAttr("values");return e?e.split(",").map(t=>t.trim()).filter(Boolean):[]}set values(e){this.setAttribute("values",e.join(","))}get disabled(){return this.hasAttr("disabled")}set disabled(e){this.toggleAttr("disabled",!!e)}connectedCallback(){super.connectedCallback(),this.docListener=e=>{this.hasAttr("open")&&(e.composedPath().includes(this)||this.removeAttribute("open"))},document.addEventListener("click",this.docListener)}disconnectedCallback(){super.disconnectedCallback(),this.docListener&&document.removeEventListener("click",this.docListener)}formatDate(e){if(!e)return"";const t=this.getAttr("format");if(!t)return e.split("T")[0];const[r,a]=e.split("T"),[i="",o="",s=""]=r.split("-"),[n="00",l="00",h="00"]=(a!=null?a:"").split(":");return t.replace(/yyyy/gi,"").replace(/MM/g,"").replace(/mm/g,"").replace(/dd/gi,"").replace(/HH/g,"").replace(/SS/gi,"").replace(/\u0001/g,i).replace(/\u0002/g,o).replace(/\u0003/g,s).replace(/\u0004/g,n).replace(/\u0005/g,l).replace(/\u0006/g,h)}displayText(){if(this.mode==="range"){const t=this.getAttr("start"),r=this.getAttr("end");if(this.hasAttr("show-time"),!t&&!r)return"";if(this.hasAttr("show-time")){const a=i=>i?`${this.formatDate(i)} ${this.timeText()}`:i?`${this.formatDate(i)} …`:"";return t&&r?`${a(t)} → ${a(r)}`:a(t)}return t&&r?`${this.formatDate(t)} → ${this.formatDate(r)}`:t?`${this.formatDate(t)} → …`:""}if(this.mode==="multiple")return this.values.map(t=>this.formatDate(t)).join(", ");const e=this.formatDate(this.value);return e&&this.hasAttr("show-time")?`${e} ${this.timeText()}`:e}timeText(){const e=t=>String(t).padStart(2,"0");return`${e(this.time.h)}:${e(this.time.m)}:${e(this.time.s)}`}loadTimeFromValue(){const t=(this.value||this.getAttr("start")||"").split("T")[1];if(!t)return;const[r,a,i]=t.split(":").map(o=>parseInt(o,10));this.time={h:r||0,m:a||0,s:i||0}}withTime(e){return e&&(this.hasAttr("show-time")?`${e}T${this.timeText()}`:e)}render(){var h,_;const e=this.disabled,t=this.hasAttr("clearable"),r=this.displayText(),a=r.length>0,i=this.hasAttr("show-time");this.loadTimeFromValue();let o=`min="${c(this.getAttr("min"))}" max="${c(this.getAttr("max"))}"`;if(this.mode==="range")o+=` range start="${c(this.getAttr("start"))}" end="${c(this.getAttr("end"))}"`;else if(this.mode==="multiple"){const u=this.values.map(p=>p.split("T")[0]).join(",");o+=` mode="multiple" values="${c(u)}"`}else{const u=(h=this.value.split("T")[0])!=null?h:"";o+=` value="${c(u)}"`}this.setTemplate(`
831
831
  <div class="field" part="field">
832
- <input class="display" part="display" type="text" ${this.hasAttr("free-text")&&!t?"":"readonly"}
833
- placeholder="${u(this.getAttr("placeholder","dd/mm/aaaa"))}"
834
- value="${u(r)}" ${t?"disabled":""}>
832
+ <input class="display" part="display" type="text" ${this.hasAttr("free-text")&&!e?"":"readonly"}
833
+ placeholder="${c(this.getAttr("placeholder","dd/mm/aaaa"))}"
834
+ value="${c(r)}" ${e?"disabled":""}>
835
835
  <button type="button" class="clear" part="clear" aria-label="Limpar"
836
- ${e&&s?"":"hidden"}>
836
+ ${t&&a?"":"hidden"}>
837
837
  ×
838
838
  </button>
839
839
  <span class="cal-icon" part="icon" aria-hidden="true">
@@ -845,14 +845,14 @@
845
845
  </span>
846
846
  </div>
847
847
  <div class="pop" part="popover">
848
- <fx-calendar ${a}></fx-calendar>
848
+ <fx-calendar ${o}></fx-calendar>
849
849
  ${i?`<div class="time-row" part="time">
850
850
  <input class="t-h" type="number" min="0" max="23" value="${this.time.h}" aria-label="Hora"><span class="sep">:</span>
851
851
  <input class="t-m" type="number" min="0" max="59" value="${this.time.m}" aria-label="Minuto"><span class="sep">:</span>
852
852
  <input class="t-s" type="number" min="0" max="59" value="${this.time.s}" aria-label="Segundo">
853
853
  </div>`:""}
854
854
  </div>
855
- `);const o=this.root.querySelector(".field");if(!o||t)return;o.addEventListener("click",f=>{if(!f.target.closest(".clear")&&!(this.hasAttr("free-text")&&f.target.classList.contains("display")))if(this.toggleAttribute("open"),this.hasAttr("open")){const d=this.getBoundingClientRect();this.toggleAttribute("up",d.bottom+340>window.innerHeight&&d.top>340)}else this.removeAttribute("up")}),(g=this.root.querySelector(".clear"))==null||g.addEventListener("click",f=>{f.stopPropagation(),this.removeAttribute("value"),this.removeAttribute("start"),this.removeAttribute("end"),this.removeAttribute("values"),this.removeAttribute("open"),this.render(),this.emitChange({})});const n=this.root.querySelector(".pop fx-calendar");n==null||n.addEventListener("change",f=>{var m;const d=(m=f.detail)!=null?m:{};(d.start!==void 0||d.end!==void 0)&&(d.start?this.setAttribute("start",this.withTime(d.start)):this.removeAttribute("start"),d.end?this.setAttribute("end",this.withTime(d.end)):this.removeAttribute("end")),d.values!==void 0&&(this.values=d.values.map(p=>this.withTime(p))),d.value!==void 0&&(d.value?this.setAttribute("value",this.withTime(d.value)):this.removeAttribute("value"),this.mode==="single"&&this.removeAttribute("open")),this.render(),this.emitChange(d)});const c=this.root.querySelector(".display");if(c&&this.hasAttr("free-text")&&!t&&(c.addEventListener("keydown",f=>{f.key==="Enter"&&(f.preventDefault(),this.commitTyped(c))}),c.addEventListener("blur",()=>this.commitTyped(c))),i){const f=()=>{const d=this.root.querySelector(".t-h"),m=this.root.querySelector(".t-m"),p=this.root.querySelector(".t-s"),b=(_,x)=>Math.min(x,Math.max(0,parseInt(_!=null?_:"0",10)||0));this.time={h:b(d==null?void 0:d.value,23),m:b(m==null?void 0:m.value,59),s:b(p==null?void 0:p.value,59)};const w=_=>_.split("T")[0]?`${_.split("T")[0]}T${this.timeText()}`:_;this.value&&this.setAttribute("value",w(this.value)),this.getAttr("start")&&this.setAttribute("start",w(this.getAttr("start"))),this.getAttr("end")&&this.setAttribute("end",w(this.getAttr("end"))),this.values.length&&(this.values=this.values.map(_=>w(_)));const z=this.root.querySelector(".display");z&&(z.value=this.displayText()),this.emitChange({value:this.value})};[".t-h",".t-m",".t-s"].forEach(d=>{var m;(m=this.root.querySelector(d))==null||m.addEventListener("input",f)})}}emitChange(t){this.dispatchEvent(new CustomEvent("change",{bubbles:!0,composed:!0,detail:t}))}parseTyped(t){var p,b;const e=t.trim();if(!e)return null;const r=this.getAttr("format","dd/mm/yyyy").toLowerCase(),s=["dd","mm","yyyy"].filter(w=>r.includes(w));if(s.length<3)return null;const i=e.split(new RegExp("[^0-9]+")).filter(Boolean);if(i.length!==3)return null;const a={};s.forEach((w,z)=>a[w]=i[z]);const o=`${a.yyyy}-${((p=a.mm)!=null?p:"").padStart(2,"0")}-${((b=a.dd)!=null?b:"").padStart(2,"0")}`,n=new Date(`${o}T12:00:00`);if(Number.isNaN(n.getTime()))return null;const[c,h,g]=o.split("-").map(w=>parseInt(w,10));if(n.getFullYear()!==c||n.getMonth()+1!==h||n.getDate()!==g)return null;const f=(w,z)=>w.split("T")[0].localeCompare(z.split("T")[0]),d=this.getAttr("min"),m=this.getAttr("max");return d&&f(o,d)<0||m&&f(o,m)>0?null:o}commitTyped(t){const e=this.parseTyped(t.value);if(!e){t.classList.add("invalid"),this.dispatchEvent(new CustomEvent("invalid",{bubbles:!0,composed:!0,detail:{text:t.value}})),t.value=this.displayText(),setTimeout(()=>t.classList.remove("invalid"),1500);return}if(this.mode==="single")this.setAttribute("value",this.withTime(e)),this.emitChange({value:this.value});else if(this.mode==="range"){if(!this.getAttr("start")||this.getAttr("start")&&this.getAttr("end"))this.setAttribute("start",this.withTime(e)),this.removeAttribute("end");else{const[r,s]=[this.getAttr("start").split("T")[0],e].sort();this.setAttribute("start",this.withTime(r)),this.setAttribute("end",this.withTime(s))}this.emitChange({start:this.getAttr("start"),end:this.getAttr("end")})}else{const r=this.values.filter(s=>s.split("T")[0]!==e);r.push(this.withTime(e)),this.values=r,this.emitChange({values:this.values})}this.render()}};xt.styles=v`
855
+ `);const s=this.root.querySelector(".field");if(!s||e)return;s.addEventListener("click",u=>{if(!u.target.closest(".clear")&&!(this.hasAttr("free-text")&&u.target.classList.contains("display")))if(this.toggleAttribute("open"),this.hasAttr("open")){const p=this.getBoundingClientRect();this.toggleAttribute("up",p.bottom+340>window.innerHeight&&p.top>340)}else this.removeAttribute("up")}),(_=this.root.querySelector(".clear"))==null||_.addEventListener("click",u=>{u.stopPropagation(),this.removeAttribute("value"),this.removeAttribute("start"),this.removeAttribute("end"),this.removeAttribute("values"),this.removeAttribute("open"),this.render(),this.emitChange({})});const n=this.root.querySelector(".pop fx-calendar");n==null||n.addEventListener("change",u=>{var v;const p=(v=u.detail)!=null?v:{};(p.start!==void 0||p.end!==void 0)&&(p.start?this.setAttribute("start",this.withTime(p.start)):this.removeAttribute("start"),p.end?this.setAttribute("end",this.withTime(p.end)):this.removeAttribute("end")),p.values!==void 0&&(this.values=p.values.map(f=>this.withTime(f))),p.value!==void 0&&(p.value?this.setAttribute("value",this.withTime(p.value)):this.removeAttribute("value"),this.mode==="single"&&this.removeAttribute("open")),this.render(),this.emitChange(p)});const l=this.root.querySelector(".display");if(l&&this.hasAttr("free-text")&&!e&&(l.addEventListener("keydown",u=>{u.key==="Enter"&&(u.preventDefault(),this.commitTyped(l))}),l.addEventListener("blur",()=>this.commitTyped(l))),i){const u=()=>{const p=this.root.querySelector(".t-h"),v=this.root.querySelector(".t-m"),f=this.root.querySelector(".t-s"),x=(A,y)=>Math.min(y,Math.max(0,parseInt(A!=null?A:"0",10)||0));this.time={h:x(p==null?void 0:p.value,23),m:x(v==null?void 0:v.value,59),s:x(f==null?void 0:f.value,59)};const w=A=>A.split("T")[0]?`${A.split("T")[0]}T${this.timeText()}`:A;this.value&&this.setAttribute("value",w(this.value)),this.getAttr("start")&&this.setAttribute("start",w(this.getAttr("start"))),this.getAttr("end")&&this.setAttribute("end",w(this.getAttr("end"))),this.values.length&&(this.values=this.values.map(A=>w(A)));const S=this.root.querySelector(".display");S&&(S.value=this.displayText()),this.emitChange({value:this.value})};[".t-h",".t-m",".t-s"].forEach(p=>{var v;(v=this.root.querySelector(p))==null||v.addEventListener("input",u)})}}emitChange(e){this.dispatchEvent(new CustomEvent("change",{bubbles:!0,composed:!0,detail:e}))}parseTyped(e){var f,x;const t=e.trim();if(!t)return null;const r=this.getAttr("format","dd/mm/yyyy").toLowerCase(),a=["dd","mm","yyyy"].filter(w=>r.includes(w));if(a.length<3)return null;const i=t.split(new RegExp("[^0-9]+")).filter(Boolean);if(i.length!==3)return null;const o={};a.forEach((w,S)=>o[w]=i[S]);const s=`${o.yyyy}-${((f=o.mm)!=null?f:"").padStart(2,"0")}-${((x=o.dd)!=null?x:"").padStart(2,"0")}`,n=new Date(`${s}T12:00:00`);if(Number.isNaN(n.getTime()))return null;const[l,h,_]=s.split("-").map(w=>parseInt(w,10));if(n.getFullYear()!==l||n.getMonth()+1!==h||n.getDate()!==_)return null;const u=(w,S)=>w.split("T")[0].localeCompare(S.split("T")[0]),p=this.getAttr("min"),v=this.getAttr("max");return p&&u(s,p)<0||v&&u(s,v)>0?null:s}commitTyped(e){const t=this.parseTyped(e.value);if(!t){e.classList.add("invalid"),this.dispatchEvent(new CustomEvent("invalid",{bubbles:!0,composed:!0,detail:{text:e.value}})),e.value=this.displayText(),setTimeout(()=>e.classList.remove("invalid"),1500);return}if(this.mode==="single")this.setAttribute("value",this.withTime(t)),this.emitChange({value:this.value});else if(this.mode==="range"){if(!this.getAttr("start")||this.getAttr("start")&&this.getAttr("end"))this.setAttribute("start",this.withTime(t)),this.removeAttribute("end");else{const[r,a]=[this.getAttr("start").split("T")[0],t].sort();this.setAttribute("start",this.withTime(r)),this.setAttribute("end",this.withTime(a))}this.emitChange({start:this.getAttr("start"),end:this.getAttr("end")})}else{const r=this.values.filter(a=>a.split("T")[0]!==t);r.push(this.withTime(t)),this.values=r,this.emitChange({values:this.values})}this.render()}};Re.styles=m`
856
856
  :host {
857
857
  display: inline-block;
858
858
  vertical-align: middle;
@@ -995,7 +995,7 @@
995
995
  :host([disabled]) .display { cursor: not-allowed; }
996
996
  :host([free-text]) .display { cursor: text; }
997
997
  :host([free-text]) .display.invalid { border-bottom: 2px solid var(--fx-color-danger); }
998
- `;let V=xt;function oe(){return k("fx-datepicker",V)}oe();const yt=class yt extends y{static get observedAttributes(){return["checked","disabled","indeterminate"]}get checked(){return this.hasAttr("checked")}set checked(t){this.toggleAttr("checked",!!t)}get indeterminate(){return this.hasAttr("indeterminate")}set indeterminate(t){this.toggleAttr("indeterminate",!!t)}get disabled(){return this.hasAttr("disabled")}set disabled(t){this.toggleAttr("disabled",!!t)}get size(){const t=this.getAttr("size","md");return t==="sm"||t==="lg"?t:"md"}set size(t){this.setAttribute("size",t)}render(){const t=this.size==="sm"?"14px":this.size==="lg"?"22px":"18px";this.style.getPropertyValue("--fx-size-checkbox")||this.style.setProperty("--fx-size-checkbox",t),this.setTemplate(`
998
+ `;let B=Re;function Jt(){return b("fx-datepicker",B)}Jt();const Be=class Be extends g{static get observedAttributes(){return["checked","disabled","indeterminate"]}get checked(){return this.hasAttr("checked")}set checked(e){this.toggleAttr("checked",!!e)}get indeterminate(){return this.hasAttr("indeterminate")}set indeterminate(e){this.toggleAttr("indeterminate",!!e)}get disabled(){return this.hasAttr("disabled")}set disabled(e){this.toggleAttr("disabled",!!e)}get size(){const e=this.getAttr("size","md");return e==="sm"||e==="lg"?e:"md"}set size(e){this.setAttribute("size",e)}render(){const e=this.size==="sm"?"14px":this.size==="lg"?"22px":"18px";this.style.getPropertyValue("--fx-size-checkbox")||this.style.setProperty("--fx-size-checkbox",e),this.setTemplate(`
999
999
  <span class="box" part="box" role="checkbox" tabindex="0"
1000
1000
  aria-checked="${this.indeterminate?"mixed":this.checked}"
1001
1001
  aria-disabled="${this.disabled}">
@@ -1004,7 +1004,7 @@
1004
1004
  </span>
1005
1005
  <span class="label" part="label"><slot></slot></span>
1006
1006
  </span>
1007
- `);const e=this.root.querySelector(".box");e&&(e.addEventListener("click",()=>this.toggle()),e.addEventListener("keydown",r=>{(r.key===" "||r.key==="Enter")&&(r.preventDefault(),this.toggle())}))}toggle(){this.disabled||(this.indeterminate=!1,this.checked=!this.checked,this.dispatchEvent(new CustomEvent("change",{bubbles:!0,composed:!0,detail:{checked:this.checked,value:this.getAttr("value")}})))}};yt.styles=v`
1007
+ `);const t=this.root.querySelector(".box");t&&(t.addEventListener("click",()=>this.toggle()),t.addEventListener("keydown",r=>{(r.key===" "||r.key==="Enter")&&(r.preventDefault(),this.toggle())}))}toggle(){this.disabled||(this.indeterminate=!1,this.checked=!this.checked,this.dispatchEvent(new CustomEvent("change",{bubbles:!0,composed:!0,detail:{checked:this.checked,value:this.getAttr("value")}})))}};Be.styles=m`
1008
1008
  :host {
1009
1009
  display: inline-flex;
1010
1010
  vertical-align: middle;
@@ -1065,13 +1065,13 @@
1065
1065
  cursor: not-allowed;
1066
1066
  pointer-events: none;
1067
1067
  }
1068
- `;let B=yt;function ne(){return k("fx-checkbox",B)}ne();const kt=class kt extends y{static get observedAttributes(){return["checked","disabled"]}get checked(){return this.hasAttr("checked")}set checked(t){this.toggleAttr("checked",!!t)}get disabled(){return this.hasAttr("disabled")}set disabled(t){this.toggleAttr("disabled",!!t)}get size(){const t=this.getAttr("size","md");return t==="sm"||t==="lg"?t:"md"}set size(t){this.setAttribute("size",t)}render(){const t=this.size==="sm"?"14px":this.size==="lg"?"22px":"18px";this.style.getPropertyValue("--fx-size-radio")||this.style.setProperty("--fx-size-radio",t),this.setTemplate(`
1068
+ `;let O=Be;function Wt(){return b("fx-checkbox",O)}Wt();const Oe=class Oe extends g{static get observedAttributes(){return["checked","disabled"]}get checked(){return this.hasAttr("checked")}set checked(e){this.toggleAttr("checked",!!e)}get disabled(){return this.hasAttr("disabled")}set disabled(e){this.toggleAttr("disabled",!!e)}get size(){const e=this.getAttr("size","md");return e==="sm"||e==="lg"?e:"md"}set size(e){this.setAttribute("size",e)}render(){const e=this.size==="sm"?"14px":this.size==="lg"?"22px":"18px";this.style.getPropertyValue("--fx-size-radio")||this.style.setProperty("--fx-size-radio",e),this.setTemplate(`
1069
1069
  <span class="box" part="box" role="radio" tabindex="0"
1070
1070
  aria-checked="${this.checked}" aria-disabled="${this.disabled}">
1071
1071
  <span class="control" part="control"><span class="dot" part="dot"></span></span>
1072
1072
  <span class="label" part="label"><slot></slot></span>
1073
1073
  </span>
1074
- `);const e=this.root.querySelector(".box");e&&(e.addEventListener("click",()=>this.select()),e.addEventListener("keydown",r=>{(r.key===" "||r.key==="Enter")&&(r.preventDefault(),this.select())}))}select(){if(this.disabled||this.checked)return;const t=this.getAttr("name");t&&document.querySelectorAll(`fx-radio[name="${CSS.escape(t)}"]`).forEach(e=>{e.checked=!1}),this.checked=!0,this.dispatchEvent(new CustomEvent("change",{bubbles:!0,composed:!0,detail:{checked:!0,value:this.getAttr("value")}}))}};kt.styles=v`
1074
+ `);const t=this.root.querySelector(".box");t&&(t.addEventListener("click",()=>this.select()),t.addEventListener("keydown",r=>{(r.key===" "||r.key==="Enter")&&(r.preventDefault(),this.select())}))}select(){if(this.disabled||this.checked)return;const e=this.getAttr("name");e&&document.querySelectorAll(`fx-radio[name="${CSS.escape(e)}"]`).forEach(t=>{t.checked=!1}),this.checked=!0,this.dispatchEvent(new CustomEvent("change",{bubbles:!0,composed:!0,detail:{checked:!0,value:this.getAttr("value")}}))}};Oe.styles=m`
1075
1075
  :host {
1076
1076
  display: inline-flex;
1077
1077
  vertical-align: middle;
@@ -1127,30 +1127,30 @@
1127
1127
  cursor: not-allowed;
1128
1128
  pointer-events: none;
1129
1129
  }
1130
- `;let K=kt;function le(){return k("fx-radio",K)}le();const C="pt-BR",ce={currency:l=>{if(l==null||l==="")return"";try{return new Intl.NumberFormat(C,{style:"currency",currency:"BRL"}).format(Number(l))}catch(t){return String(l)}},date:(l,t)=>{const e=Kt(l);if(!e)return String(l!=null?l:"");const r={short:{dateStyle:"short"},medium:{dateStyle:"medium"},long:{dateStyle:"long"},full:{dateStyle:"full"}},s=t&&r[t]?r[t]:r.medium;try{return new Intl.DateTimeFormat(C,s).format(e)}catch(i){return e.toLocaleDateString(C)}},dateTime:l=>{const t=Kt(l);if(!t)return String(l!=null?l:"");try{return new Intl.DateTimeFormat(C,{dateStyle:"medium",timeStyle:"short"}).format(t)}catch(e){return t.toLocaleString(C)}},number:(l,t)=>{if(l==null||l==="")return"";try{const e={};if(t!==void 0){const r=Number(t);e.minimumFractionDigits=r,e.maximumFractionDigits=r}return new Intl.NumberFormat(C,e).format(Number(l))}catch(e){return String(l)}}};function Kt(l){if(l==null||l==="")return null;if(l instanceof Date)return isNaN(l.getTime())?null:l;if(typeof l=="number"){const t=new Date(l);return isNaN(t.getTime())?null:t}if(typeof l=="string"){const t=new Date(l);return isNaN(t.getTime())?null:t}return null}const de=l=>/[a-z_$]/i.test(l),he=l=>/[a-z0-9_$]/i.test(l);function ue(l){const t=[];let e=0;for(;e<l.length;){const r=l[e];if(/\s/.test(r)){e++;continue}if(r==="'"||r==='"'){const i=r;let a="";for(e++;e<l.length&&l[e]!==i;)l[e]==="\\"&&e+1<l.length?(a+=l[e+1],e+=2):(a+=l[e],e++);e++,t.push({type:"str",value:a});continue}if(r>="0"&&r<="9"){let i="";for(;e<l.length&&(l[e]>="0"&&l[e]<="9"||l[e]===".");)i+=l[e],e++;t.push({type:"num",value:i});continue}if(de(r)){let i="";for(;e<l.length&&he(l[e]);)i+=l[e],e++;i==="true"||i==="false"||i==="null"?t.push({type:"kw",value:i}):t.push({type:"id",value:i});continue}const s=l.slice(e,e+2);if(s==="=="||s==="!="||s===">="||s==="<="){t.push({type:"cmp",value:s}),e+=2;continue}if(r==="+"){t.push({type:"op",value:"+"}),e++;continue}if(r==="-"){t.push({type:"op",value:"-"}),e++;continue}if(r==="*"){t.push({type:"op",value:"*"}),e++;continue}if(r==="/"){t.push({type:"op",value:"/"}),e++;continue}if(r===">"){t.push({type:"cmp",value:">"}),e++;continue}if(r==="<"){t.push({type:"cmp",value:"<"}),e++;continue}if(r==="!"){t.push({type:"op",value:"!"}),e++;continue}if(r==="?"){t.push({type:"qm",value:"?"}),e++;continue}if(r===":"){t.push({type:"colon",value:":"}),e++;continue}if(r==="|"){t.push({type:"pipe",value:"|"}),e++;continue}if(r==="("){t.push({type:"lparen",value:"("}),e++;continue}if(r===")"){t.push({type:"rparen",value:")"}),e++;continue}if(r==="."){t.push({type:"dot",value:"."}),e++;continue}e++}return t}class pe{constructor(t,e){this.tokens=t,this.ctx=e,this.pos=0}peek(){return this.pos<this.tokens.length?this.tokens[this.pos]:null}next(){return this.pos<this.tokens.length?this.tokens[this.pos++]:null}matchType(t){var e;return((e=this.peek())==null?void 0:e.type)===t?this.next():null}parse(){return this.parsePipe()}parsePipe(){var e,r;let t=this.parseTernary();for(;((e=this.peek())==null?void 0:e.type)==="pipe";){this.next();const s=this.matchType("id");if(!s)break;let i;if(((r=this.peek())==null?void 0:r.type)==="colon"){this.next();const a=this.peek();a&&(a.type==="str"||a.type==="num"||a.type==="id")&&(i=a.type==="str"?a.value:String(a.value),this.next())}t=this.applyPipe(s.value,i,t)}return t}parseTernary(){var e,r;const t=this.parseComparison();if(((e=this.peek())==null?void 0:e.type)==="qm"){this.next();const s=this.parsePipe();if(((r=this.peek())==null?void 0:r.type)==="colon"){this.next();const i=this.parsePipe();return t?s:i}return s}return t}parseComparison(){const t=this.parseAdditive(),e=this.peek();if((e==null?void 0:e.type)==="cmp"){this.next();const r=this.parseAdditive();return this.compare(t,e.value,r)}return t}compare(t,e,r){const s=Rt(t),i=Rt(r);switch(e){case"==":return s==i;case"!=":return s!=i;case">":return s>i;case"<":return s<i;case">=":return s>=i;case"<=":return s<=i}return!1}parseAdditive(){let t=this.parseMultiplicative();for(;;){const e=this.peek();if((e==null?void 0:e.type)==="op"&&(e.value==="+"||e.value==="-")){this.next();const r=this.parseMultiplicative();t=e.value==="+"?this.add(t,r):this.subtract(t,r)}else break}return t}add(t,e){return typeof t=="string"||typeof e=="string"?String(t!=null?t:"")+String(e!=null?e:""):Number(t)+Number(e)}subtract(t,e){return Number(t)-Number(e)}parseMultiplicative(){let t=this.parseUnary();for(;;){const e=this.peek();if((e==null?void 0:e.type)==="op"&&(e.value==="*"||e.value==="/")){this.next();const r=this.parseUnary();t=e.value==="*"?Number(t)*Number(r):Number(t)/Number(r)}else break}return t}parseUnary(){const t=this.peek();if((t==null?void 0:t.type)==="op"&&(t.value==="+"||t.value==="-")){this.next();const e=Number(this.parseUnary());return t.value==="-"?-e:e}return(t==null?void 0:t.type)==="op"&&t.value==="!"?(this.next(),!this.parseUnary()):this.parsePrimary()}parsePrimary(){var e;const t=this.peek();if(t){if(t.type==="lparen"){this.next();const r=this.parsePipe();return this.matchType("rparen"),r}if(t.type==="str")return this.next(),t.value;if(t.type==="num")return this.next(),Number(t.value);if(t.type==="kw")return this.next(),t.value==="true"?!0:t.value==="false"?!1:null;if(t.type==="id"){this.next();let r=this.resolveId(t.value);for(;((e=this.peek())==null?void 0:e.type)==="dot";){this.next();const s=this.peek();if((s==null?void 0:s.type)==="id")this.next(),r=r==null?void 0:r[s.value];else break}return r}this.next()}}resolveId(t){switch(t){case"value":return this.ctx.value;case"row":return this.ctx.row;case"true":return!0;case"false":return!1;case"null":return null;default:return this.ctx.row[t]}}applyPipe(t,e,r){const s=ce[t];if(!s)return R(r);try{return s(r,e)}catch(i){return R(r)}}}function Rt(l){return typeof l=="number"?l:typeof l=="boolean"?l?1:0:String(l!=null?l:"")}function R(l){return l==null?"":typeof l=="object"?"[object Object]":String(l)}function fe(l,t){try{const e=ue(l),s=new pe(e,t).parse();return R(s)}catch(e){return""}}function ge(l,t,e){const r={value:t[e],row:t};return l.replace(/\{\{([^}]+)\}\}/g,(s,i)=>u(fe(be(i.trim()),r)))}function be(l){return l.replace(/&amp;/g,"&").replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/&quot;/g,'"').replace(/&#39;/g,"'")}const wt=class wt extends y{constructor(){super(...arguments),this._data=[],this.page=0,this.sortField="",this.sortDir=1,this.filters={},this.globalSearch=""}static get observedAttributes(){return["pagination","rows","rows-options","striped","empty-message","pagination-position","lazy","total","loading","loading-message"]}get data(){return this._data}set data(t){this._data=Array.isArray(t)?t:[],this.render()}get total(){var t;return(t=this._total)!=null?t:this._data.length}set total(t){this._total=t,this.setAttribute("total",String(t))}get rowsPerPage(){const t=Number(this.getAttr("rows","10"));return t>0?t:10}set rowsPerPage(t){this.setAttribute("rows",String(t))}get lazy(){return this.hasAttr("lazy")}get columns(){return[...this.querySelectorAll("fx-column")].map(t=>{var i,a,o,n;const e=t.querySelector("template"),r=e?void 0:t.innerHTML.trim(),s=(i=t.getAttribute("align"))!=null?i:"left";return{field:(a=t.getAttribute("field"))!=null?a:"",header:(n=(o=t.getAttribute("header"))!=null?o:t.getAttribute("field"))!=null?n:"",sortable:t.hasAttribute("sortable"),filterable:t.hasAttribute("filterable"),align:["left","center","right","justify","start","end"].includes(s)?s:"left",template:e!=null?e:void 0,directTemplate:r||void 0}})}get toolbarTemplate(){return this.querySelector('template[slot="toolbar"]')}connectedCallback(){this._parseDataAttribute(),super.connectedCallback(),this._columnObserver=new MutationObserver(()=>this.render()),this._columnObserver.observe(this,{childList:!0,subtree:!0})}disconnectedCallback(){var t;(t=this._columnObserver)==null||t.disconnect(),super.disconnectedCallback()}_parseDataAttribute(){if(!this._data.length)try{const e=this.getAttr("data");e&&(this._data=JSON.parse(e))}catch(e){}const t=this.getAttr("total");if(t){const e=Number(t);isNaN(e)||(this._total=e)}}computeRows(){let t=[...this._data];for(const[r,s]of Object.entries(this.filters)){if(!s)continue;const i=s.toLowerCase();t=t.filter(a=>{var o;return String((o=a[r])!=null?o:"").toLowerCase().includes(i)})}if(this.globalSearch){const r=this.globalSearch.toLowerCase(),s=this._getSearchFields();t=t.filter(i=>(s.length?s:Object.keys(i)).some(o=>{var n;return String((n=i[o])!=null?n:"").toLowerCase().includes(r)}))}const e=this.lazy?this.total:t.length;if(this.sortField&&t.sort((r,s)=>{const i=r[this.sortField],a=s[this.sortField];return typeof i=="number"&&typeof a=="number"?(i-a)*this.sortDir:String(i!=null?i:"").localeCompare(String(a!=null?a:""),"pt-BR")*this.sortDir}),this.hasAttr("pagination")&&!this.lazy){const r=this.page*this.rowsPerPage;t=t.slice(r,r+this.rowsPerPage)}return{rows:t,total:e}}_getSearchFields(){const t=this.root.querySelector("[data-search-fields]");if(!t)return[];const e=t.getAttribute("data-search-fields");return e===null?[]:e.split(",").map(r=>r.trim()).filter(Boolean)}cellHtml(t,e){var s,i,a;const r=(i=(s=t.template)==null?void 0:s.innerHTML)!=null?i:t.directTemplate;return r?ge(r,e,t.field):u(String((a=e[t.field])!=null?a:""))}render(){var m;const t=this.columns.filter(p=>p.field),{rows:e,total:r}=this.computeRows(),s=this.hasAttr("pagination"),i=Math.max(1,Math.ceil(r/this.rowsPerPage));this.page>=i&&(this.page=i-1);const a=this.toolbarTemplate,o=a?`<div class="toolbar" part="toolbar">${a.innerHTML}</div>`:"",n=t.map(p=>{const b=this.sortField===p.field,w=b?this.sortDir===1?"▲":"▼":p.sortable?"⇅":"",z=b?"active":"";return`<th part="header" class="${p.sortable?"sortable":""}" style="text-align:${p.align}" data-field="${u(p.field)}">${u(p.header)}${w?`<span class="sort-ind ${z}">${w}</span>`:""}</th>`}).join(""),c=t.some(p=>p.filterable)?`<tr class="filter-row">${t.map(p=>{var b;return`<th style="text-align:${p.align}">${p.filterable?`<input class="filter" data-field="${u(p.field)}" placeholder="${u("Filtrar…")}" value="${u((b=this.filters[p.field])!=null?b:"")}">`:""}</th>`}).join("")}</tr>`:"",h=e.length?e.map((p,b)=>`<tr part="row" data-index="${b}">${t.map(w=>`<td part="cell" style="text-align:${w.align}">${this.cellHtml(w,p)}</td>`).join("")}</tr>`).join(""):`<tr><td class="empty" colspan="${t.length||1}">${u(this.getAttr("empty-message","Nenhum registro encontrado"))}</td></tr>`,g=s?`
1130
+ `;let K=Oe;function Gt(){return b("fx-radio",K)}Gt();const L="pt-BR",Zt={currency:d=>{if(d==null||d==="")return"";try{return new Intl.NumberFormat(L,{style:"currency",currency:"BRL"}).format(Number(d))}catch(e){return String(d)}},date:(d,e)=>{const t=$t(d);if(!t)return String(d!=null?d:"");const r={short:{dateStyle:"short"},medium:{dateStyle:"medium"},long:{dateStyle:"long"},full:{dateStyle:"full"}},a=e&&r[e]?r[e]:r.medium;try{return new Intl.DateTimeFormat(L,a).format(t)}catch(i){return t.toLocaleDateString(L)}},dateTime:d=>{const e=$t(d);if(!e)return String(d!=null?d:"");try{return new Intl.DateTimeFormat(L,{dateStyle:"medium",timeStyle:"short"}).format(e)}catch(t){return e.toLocaleString(L)}},number:(d,e)=>{if(d==null||d==="")return"";try{const t={};if(e!==void 0){const r=Number(e);t.minimumFractionDigits=r,t.maximumFractionDigits=r}return new Intl.NumberFormat(L,t).format(Number(d))}catch(t){return String(d)}}};function $t(d){if(d==null||d==="")return null;if(d instanceof Date)return isNaN(d.getTime())?null:d;if(typeof d=="number"){const e=new Date(d);return isNaN(e.getTime())?null:e}if(typeof d=="string"){const e=new Date(d);return isNaN(e.getTime())?null:e}return null}const Qt=d=>/[a-z_$]/i.test(d),er=d=>/[a-z0-9_$]/i.test(d);function tr(d){const e=[];let t=0;for(;t<d.length;){const r=d[t];if(/\s/.test(r)){t++;continue}if(r==="'"||r==='"'){const i=r;let o="";for(t++;t<d.length&&d[t]!==i;)d[t]==="\\"&&t+1<d.length?(o+=d[t+1],t+=2):(o+=d[t],t++);t++,e.push({type:"str",value:o});continue}if(r>="0"&&r<="9"){let i="";for(;t<d.length&&(d[t]>="0"&&d[t]<="9"||d[t]===".");)i+=d[t],t++;e.push({type:"num",value:i});continue}if(Qt(r)){let i="";for(;t<d.length&&er(d[t]);)i+=d[t],t++;i==="true"||i==="false"||i==="null"?e.push({type:"kw",value:i}):e.push({type:"id",value:i});continue}const a=d.slice(t,t+2);if(a==="=="||a==="!="||a===">="||a==="<="){e.push({type:"cmp",value:a}),t+=2;continue}if(r==="+"){e.push({type:"op",value:"+"}),t++;continue}if(r==="-"){e.push({type:"op",value:"-"}),t++;continue}if(r==="*"){e.push({type:"op",value:"*"}),t++;continue}if(r==="/"){e.push({type:"op",value:"/"}),t++;continue}if(r===">"){e.push({type:"cmp",value:">"}),t++;continue}if(r==="<"){e.push({type:"cmp",value:"<"}),t++;continue}if(r==="!"){e.push({type:"op",value:"!"}),t++;continue}if(r==="?"){e.push({type:"qm",value:"?"}),t++;continue}if(r===":"){e.push({type:"colon",value:":"}),t++;continue}if(r==="|"){e.push({type:"pipe",value:"|"}),t++;continue}if(r==="("){e.push({type:"lparen",value:"("}),t++;continue}if(r===")"){e.push({type:"rparen",value:")"}),t++;continue}if(r==="."){e.push({type:"dot",value:"."}),t++;continue}t++}return e}class rr{constructor(e,t){this.tokens=e,this.ctx=t,this.pos=0}peek(){return this.pos<this.tokens.length?this.tokens[this.pos]:null}next(){return this.pos<this.tokens.length?this.tokens[this.pos++]:null}matchType(e){var t;return((t=this.peek())==null?void 0:t.type)===e?this.next():null}parse(){return this.parsePipe()}parsePipe(){var t,r;let e=this.parseTernary();for(;((t=this.peek())==null?void 0:t.type)==="pipe";){this.next();const a=this.matchType("id");if(!a)break;let i;if(((r=this.peek())==null?void 0:r.type)==="colon"){this.next();const o=this.peek();o&&(o.type==="str"||o.type==="num"||o.type==="id")&&(i=o.type==="str"?o.value:String(o.value),this.next())}e=this.applyPipe(a.value,i,e)}return e}parseTernary(){var t,r;const e=this.parseComparison();if(((t=this.peek())==null?void 0:t.type)==="qm"){this.next();const a=this.parsePipe();if(((r=this.peek())==null?void 0:r.type)==="colon"){this.next();const i=this.parsePipe();return e?a:i}return a}return e}parseComparison(){const e=this.parseAdditive(),t=this.peek();if((t==null?void 0:t.type)==="cmp"){this.next();const r=this.parseAdditive();return this.compare(e,t.value,r)}return e}compare(e,t,r){const a=Et(e),i=Et(r);switch(t){case"==":return a==i;case"!=":return a!=i;case">":return a>i;case"<":return a<i;case">=":return a>=i;case"<=":return a<=i}return!1}parseAdditive(){let e=this.parseMultiplicative();for(;;){const t=this.peek();if((t==null?void 0:t.type)==="op"&&(t.value==="+"||t.value==="-")){this.next();const r=this.parseMultiplicative();e=t.value==="+"?this.add(e,r):this.subtract(e,r)}else break}return e}add(e,t){return typeof e=="string"||typeof t=="string"?String(e!=null?e:"")+String(t!=null?t:""):Number(e)+Number(t)}subtract(e,t){return Number(e)-Number(t)}parseMultiplicative(){let e=this.parseUnary();for(;;){const t=this.peek();if((t==null?void 0:t.type)==="op"&&(t.value==="*"||t.value==="/")){this.next();const r=this.parseUnary();e=t.value==="*"?Number(e)*Number(r):Number(e)/Number(r)}else break}return e}parseUnary(){const e=this.peek();if((e==null?void 0:e.type)==="op"&&(e.value==="+"||e.value==="-")){this.next();const t=Number(this.parseUnary());return e.value==="-"?-t:t}return(e==null?void 0:e.type)==="op"&&e.value==="!"?(this.next(),!this.parseUnary()):this.parsePrimary()}parsePrimary(){var t;const e=this.peek();if(e){if(e.type==="lparen"){this.next();const r=this.parsePipe();return this.matchType("rparen"),r}if(e.type==="str")return this.next(),e.value;if(e.type==="num")return this.next(),Number(e.value);if(e.type==="kw")return this.next(),e.value==="true"?!0:e.value==="false"?!1:null;if(e.type==="id"){this.next();let r=this.resolveId(e.value);for(;((t=this.peek())==null?void 0:t.type)==="dot";){this.next();const a=this.peek();if((a==null?void 0:a.type)==="id")this.next(),r=r==null?void 0:r[a.value];else break}return r}this.next()}}resolveId(e){switch(e){case"value":return this.ctx.value;case"row":return this.ctx.row;case"true":return!0;case"false":return!1;case"null":return null;default:return this.ctx.row[e]}}applyPipe(e,t,r){const a=Zt[e];if(!a)return H(r);try{return a(r,t)}catch(i){return H(r)}}}function Et(d){return typeof d=="number"?d:typeof d=="boolean"?d?1:0:String(d!=null?d:"")}function H(d){return d==null?"":typeof d=="object"?"[object Object]":String(d)}function ar(d,e){try{const t=tr(d),a=new rr(t,e).parse();return H(a)}catch(t){return""}}function ir(d,e,t){const r={value:e[t],row:e};return d.replace(/\{\{([^}]+)\}\}/g,(a,i)=>c(ar(or(i.trim()),r)))}function or(d){return d.replace(/&amp;/g,"&").replace(/&gt;/g,">").replace(/&lt;/g,"<").replace(/&quot;/g,'"').replace(/&#39;/g,"'")}const Ke=class Ke extends g{constructor(){super(...arguments),this._data=[],this.page=0,this.sortField="",this.sortDir=1,this.filters={},this.globalSearch=""}static get observedAttributes(){return["pagination","rows","rows-options","striped","empty-message","pagination-position","lazy","total","loading","loading-message"]}get data(){return this._data}set data(e){this._data=Array.isArray(e)?e:[],this.render()}get total(){var e;return(e=this._total)!=null?e:this._data.length}set total(e){this._total=e,this.setAttribute("total",String(e))}get rowsPerPage(){const e=Number(this.getAttr("rows","10"));return e>0?e:10}set rowsPerPage(e){this.setAttribute("rows",String(e))}get lazy(){return this.hasAttr("lazy")}get columns(){return[...this.querySelectorAll("fx-column")].map(e=>{var i,o,s,n;const t=e.querySelector("template"),r=t?void 0:e.innerHTML.trim(),a=(i=e.getAttribute("align"))!=null?i:"left";return{field:(o=e.getAttribute("field"))!=null?o:"",header:(n=(s=e.getAttribute("header"))!=null?s:e.getAttribute("field"))!=null?n:"",sortable:e.hasAttribute("sortable"),filterable:e.hasAttribute("filterable"),align:["left","center","right","justify","start","end"].includes(a)?a:"left",template:t!=null?t:void 0,directTemplate:r||void 0}})}get toolbarTemplate(){return this.querySelector('template[slot="toolbar"]')}connectedCallback(){this._parseDataAttribute(),super.connectedCallback(),this._columnObserver=new MutationObserver(()=>this.render()),this._columnObserver.observe(this,{childList:!0,subtree:!0})}disconnectedCallback(){var e;(e=this._columnObserver)==null||e.disconnect(),super.disconnectedCallback()}_parseDataAttribute(){if(!this._data.length)try{const t=this.getAttr("data");t&&(this._data=JSON.parse(t))}catch(t){}const e=this.getAttr("total");if(e){const t=Number(e);isNaN(t)||(this._total=t)}}computeRows(){let e=[...this._data];for(const[r,a]of Object.entries(this.filters)){if(!a)continue;const i=a.toLowerCase();e=e.filter(o=>{var s;return String((s=o[r])!=null?s:"").toLowerCase().includes(i)})}if(this.globalSearch){const r=this.globalSearch.toLowerCase(),a=this._getSearchFields();e=e.filter(i=>(a.length?a:Object.keys(i)).some(s=>{var n;return String((n=i[s])!=null?n:"").toLowerCase().includes(r)}))}const t=this.lazy?this.total:e.length;if(this.sortField&&e.sort((r,a)=>{const i=r[this.sortField],o=a[this.sortField];return typeof i=="number"&&typeof o=="number"?(i-o)*this.sortDir:String(i!=null?i:"").localeCompare(String(o!=null?o:""),"pt-BR")*this.sortDir}),this.hasAttr("pagination")&&!this.lazy){const r=this.page*this.rowsPerPage;e=e.slice(r,r+this.rowsPerPage)}return{rows:e,total:t}}_getSearchFields(){const e=this.root.querySelector("[data-search-fields]");if(!e)return[];const t=e.getAttribute("data-search-fields");return t===null?[]:t.split(",").map(r=>r.trim()).filter(Boolean)}cellHtml(e,t){var a,i,o;const r=(i=(a=e.template)==null?void 0:a.innerHTML)!=null?i:e.directTemplate;return r?ir(r,t,e.field):c(String((o=t[e.field])!=null?o:""))}render(){var v;const e=this.columns.filter(f=>f.field),{rows:t,total:r}=this.computeRows(),a=this.hasAttr("pagination"),i=Math.max(1,Math.ceil(r/this.rowsPerPage));this.page>=i&&(this.page=i-1);const o=this.toolbarTemplate,s=o?`<div class="toolbar" part="toolbar">${o.innerHTML}</div>`:"",n=e.map(f=>{const x=this.sortField===f.field,w=x?this.sortDir===1?"▲":"▼":f.sortable?"⇅":"",S=x?"active":"";return`<th part="header" class="${f.sortable?"sortable":""}" style="text-align:${f.align}" data-field="${c(f.field)}">${c(f.header)}${w?`<span class="sort-ind ${S}">${w}</span>`:""}</th>`}).join(""),l=e.some(f=>f.filterable)?`<tr class="filter-row">${e.map(f=>{var x;return`<th style="text-align:${f.align}">${f.filterable?`<input class="filter" data-field="${c(f.field)}" placeholder="${c("Filtrar…")}" value="${c((x=this.filters[f.field])!=null?x:"")}">`:""}</th>`}).join("")}</tr>`:"",h=t.length?t.map((f,x)=>`<tr part="row" data-index="${x}">${e.map(w=>`<td part="cell" style="text-align:${w.align}">${this.cellHtml(w,f)}</td>`).join("")}</tr>`).join(""):`<tr><td class="empty" colspan="${e.length||1}">${c(this.getAttr("empty-message","Nenhum registro encontrado"))}</td></tr>`,_=a?`
1131
1131
  <div class="pager" part="pager">
1132
1132
  <span class="info">Página ${this.page+1} de ${i} · ${r} registros</span>
1133
1133
  <button type="button" class="pg-btn" data-pg="first" ${this.page===0?"disabled":""}>«</button>
1134
1134
  <button type="button" class="pg-btn" data-pg="prev" ${this.page===0?"disabled":""}>‹</button>
1135
- ${Array.from({length:i},(p,b)=>`<button type="button" class="pg-btn" data-pg="${b}" aria-current="${b===this.page}">${b+1}</button>`).join("")}
1135
+ ${Array.from({length:i},(f,x)=>`<button type="button" class="pg-btn" data-pg="${x}" aria-current="${x===this.page}">${x+1}</button>`).join("")}
1136
1136
  <button type="button" class="pg-btn" data-pg="next" ${this.page>=i-1?"disabled":""}>›</button>
1137
1137
  <button type="button" class="pg-btn" data-pg="last" ${this.page>=i-1?"disabled":""}>»</button>
1138
- <label class="info">${u("Por página:")}
1139
- <fx-select class="rows-sel" size="sm" value="${this.rowsPerPage}" aria-label="Itens por página">${this.getAttr("rows-options","5,10,20,50").split(",").map(p=>p.trim()).map(p=>`<option value="${u(p)}">${u(p)}</option>`).join("")}</fx-select>
1138
+ <label class="info">${c("Por página:")}
1139
+ <fx-select class="rows-sel" size="sm" value="${this.rowsPerPage}" aria-label="Itens por página">${this.getAttr("rows-options","5,10,20,50").split(",").map(f=>f.trim()).map(f=>`<option value="${c(f)}">${c(f)}</option>`).join("")}</fx-select>
1140
1140
  </label>
1141
- </div>`:"",d=this.hasAttr("loading")?`<div class="loading-overlay" part="loading-overlay"><div class="tbl-spinner" part="spinner"></div><span class="loading-text">${u(this.getAttr("loading-message","Carregando…"))}</span></div>`:"";this.setTemplate(`
1142
- ${o}
1141
+ </div>`:"",p=this.hasAttr("loading")?`<div class="loading-overlay" part="loading-overlay"><div class="tbl-spinner" part="spinner"></div><span class="loading-text">${c(this.getAttr("loading-message","Carregando…"))}</span></div>`:"";this.setTemplate(`
1142
+ ${s}
1143
1143
  <div class="table-wrap">
1144
1144
  <div class="scroll">
1145
1145
  <table part="table">
1146
- <thead><tr>${n}</tr>${c}</thead>
1146
+ <thead><tr>${n}</tr>${l}</thead>
1147
1147
  <tbody>${h}</tbody>
1148
1148
  </table>
1149
1149
  </div>
1150
- ${d}
1150
+ ${p}
1151
1151
  </div>
1152
- ${g}
1153
- `),this.root.querySelectorAll("th.sortable").forEach(p=>{p.addEventListener("click",()=>{const b=p.dataset.field;this.sortField===b?this.sortDir=this.sortDir===1?-1:1:(this.sortField=b,this.sortDir=1),this.render(),this.dispatchEvent(new CustomEvent("sort-change",{bubbles:!0,composed:!0,detail:{field:this.sortField,direction:this.sortDir===1?"asc":"desc",lazy:this.lazy}}))})}),this.root.querySelectorAll(".filter").forEach(p=>{p.addEventListener("input",()=>{const b=p.dataset.field,w=p.value,z=p.selectionStart;this.filters[b]=w,this.page=0,this.render(),this.dispatchEvent(new CustomEvent("filter-change",{bubbles:!0,composed:!0,detail:{field:b,value:w,lazy:this.lazy}}));const _=this.root.querySelector(`.filter[data-field="${u(b)}"]`);_&&(_.focus(),_.setSelectionRange(z,z))}),p.addEventListener("click",b=>b.stopPropagation())}),this.root.querySelectorAll("[data-search-fields]").forEach(p=>{p.addEventListener("input",()=>{this.globalSearch=p.value,this.page=0;const b=p.selectionStart;this.render();const w=this.root.querySelector("[data-search-fields]");w&&(w.focus(),w.setSelectionRange(b,b))})}),this.root.querySelectorAll(".pg-btn").forEach(p=>{p.addEventListener("click",()=>{const b=p.dataset.pg;this.page=b==="first"?0:b==="prev"?Math.max(0,this.page-1):b==="next"?Math.min(i-1,this.page+1):b==="last"?i-1:Number(b),this.render(),this.dispatchEvent(new CustomEvent("page-change",{bubbles:!0,composed:!0,detail:{page:this.page+1,pages:i,rowsPerPage:this.rowsPerPage,total:r,lazy:this.lazy}}))})}),(m=this.root.querySelector("fx-select.rows-sel"))==null||m.addEventListener("change",p=>{var w;const b=Number((w=p.detail)==null?void 0:w.value);!b||b===this.rowsPerPage||(this.rowsPerPage=b,this.page=0,this.render())}),this.root.querySelectorAll("tbody tr[data-index]").forEach(p=>{p.addEventListener("click",()=>{this.dispatchEvent(new CustomEvent("row-click",{bubbles:!0,composed:!0,detail:{row:e[Number(p.dataset.index)],index:Number(p.dataset.index)}}))})}),this._restoreToolbarSearch()}_restoreToolbarSearch(){const t=this.root.querySelector("[data-search-fields]");t&&this.globalSearch&&(t.value=this.globalSearch)}};wt.styles=v`
1152
+ ${_}
1153
+ `),this.root.querySelectorAll("th.sortable").forEach(f=>{f.addEventListener("click",()=>{const x=f.dataset.field;this.sortField===x?this.sortDir=this.sortDir===1?-1:1:(this.sortField=x,this.sortDir=1),this.render(),this.dispatchEvent(new CustomEvent("sort-change",{bubbles:!0,composed:!0,detail:{field:this.sortField,direction:this.sortDir===1?"asc":"desc",lazy:this.lazy}}))})}),this.root.querySelectorAll(".filter").forEach(f=>{f.addEventListener("input",()=>{const x=f.dataset.field,w=f.value,S=f.selectionStart;this.filters[x]=w,this.page=0,this.render(),this.dispatchEvent(new CustomEvent("filter-change",{bubbles:!0,composed:!0,detail:{field:x,value:w,lazy:this.lazy}}));const A=this.root.querySelector(`.filter[data-field="${c(x)}"]`);A&&(A.focus(),A.setSelectionRange(S,S))}),f.addEventListener("click",x=>x.stopPropagation())}),this.root.querySelectorAll("[data-search-fields]").forEach(f=>{f.addEventListener("input",()=>{this.globalSearch=f.value,this.page=0;const x=f.selectionStart;this.render();const w=this.root.querySelector("[data-search-fields]");w&&(w.focus(),w.setSelectionRange(x,x))})}),this.root.querySelectorAll(".pg-btn").forEach(f=>{f.addEventListener("click",()=>{const x=f.dataset.pg;this.page=x==="first"?0:x==="prev"?Math.max(0,this.page-1):x==="next"?Math.min(i-1,this.page+1):x==="last"?i-1:Number(x),this.render(),this.dispatchEvent(new CustomEvent("page-change",{bubbles:!0,composed:!0,detail:{page:this.page+1,pages:i,rowsPerPage:this.rowsPerPage,total:r,lazy:this.lazy}}))})}),(v=this.root.querySelector("fx-select.rows-sel"))==null||v.addEventListener("change",f=>{var w;const x=Number((w=f.detail)==null?void 0:w.value);!x||x===this.rowsPerPage||(this.rowsPerPage=x,this.page=0,this.render())}),this.root.querySelectorAll("tbody tr[data-index]").forEach(f=>{f.addEventListener("click",()=>{this.dispatchEvent(new CustomEvent("row-click",{bubbles:!0,composed:!0,detail:{row:t[Number(f.dataset.index)],index:Number(f.dataset.index)}}))})}),this._restoreToolbarSearch()}_restoreToolbarSearch(){const e=this.root.querySelector("[data-search-fields]");e&&this.globalSearch&&(e.value=this.globalSearch)}};Ke.styles=m`
1154
1154
  :host {
1155
1155
  display: block;
1156
1156
  font-family: var(--fx-font-family);
@@ -1352,16 +1352,16 @@
1352
1352
  color: var(--fx-text-muted);
1353
1353
  font-size: calc(var(--fx-font-size) - 1px);
1354
1354
  }
1355
- `;let H=wt;function ve(){return k("fx-table",H)}ve();const At=class At extends y{constructor(){super(...arguments),this.targetControl=null,this.observer=null,this.listenersReady=!1}static get observedAttributes(){return["variant","error","invalid","success","valid"]}render(){var o;const t=this.findControl(),r=this.findLabel(),s=r?(o=r.textContent)==null?void 0:o.replace(/\s+/g," ").trim():"",i=r&&r.getAttribute("for")||"",a=this.getAttribute("variant")==="over";this.setTemplate(`
1355
+ `;let Y=Ke;function sr(){return b("fx-table",Y)}sr();const He=class He extends g{constructor(){super(...arguments),this.targetControl=null,this.observer=null,this.listenersReady=!1}static get observedAttributes(){return["variant","error","invalid","success","valid"]}render(){var s;const e=this.findControl(),r=this.findLabel(),a=r?(s=r.textContent)==null?void 0:s.replace(/\s+/g," ").trim():"",i=r&&r.getAttribute("for")||"",o=this.getAttribute("variant")==="over";this.setTemplate(`
1356
1356
  <div class="wrapper" part="wrapper">
1357
- ${a?`<label class="flabel" part="label" for="${i}">${s}</label>`:""}
1357
+ ${o?`<label class="flabel" part="label" for="${i}">${a}</label>`:""}
1358
1358
  <div class="field-box" part="field">
1359
1359
  <slot></slot>
1360
- ${a?"":`<label class="flabel" part="label" for="${i}">${s}</label>`}
1360
+ ${o?"":`<label class="flabel" part="label" for="${i}">${a}</label>`}
1361
1361
  </div>
1362
1362
  <div class="error-message" part="error"></div>
1363
1363
  </div>
1364
- `),r&&r.setAttribute("hidden",""),this.attachEvents(),this.syncControlReference(t),this.syncState(),this.applyError()}disconnectedCallback(){var t;super.disconnectedCallback(),(t=this.observer)==null||t.disconnect()}findControl(){var t;return(t=Array.from(this.children).find(e=>e.tagName.toLowerCase()!=="label"))!=null?t:null}findLabel(){var t;return(t=Array.from(this.children).find(e=>e.tagName.toLowerCase()==="label"))!=null?t:null}attachEvents(){const t=this.root.querySelector("slot");t&&t.addEventListener("slotchange",()=>{const e=this.findControl();this.syncControlReference(e),this.syncState(),this.applyError()}),!this.listenersReady&&(this.listenersReady=!0,this.addEventListener("focusin",()=>this.syncState()),this.addEventListener("focusout",()=>setTimeout(()=>this.syncState(),60)),this.addEventListener("input",()=>this.syncState()),this.addEventListener("change",()=>this.syncState()))}syncControlReference(t=this.targetControl){var e;t!==this.targetControl&&((e=this.observer)==null||e.disconnect(),this.observer=null,this.targetControl=t,t&&(this.observer=new MutationObserver(()=>this.syncState()),this.observer.observe(t,{attributes:!0,attributeFilter:["value","values","start","end","open"]})))}syncState(){var a,o,n;if(this.targetControl&&!this.targetControl.isConnected&&(this.targetControl=null,(a=this.observer)==null||a.disconnect(),this.observer=null),!this.targetControl){this.removeAttribute("active"),this.removeAttribute("focus");return}const t=this.targetControl,e=t.getAttribute?((o=t.getAttribute("value"))!=null?o:"").trim():"",r=t.getAttribute?((n=t.getAttribute("values"))!=null?n:"").trim():"",s=!!(typeof t.value=="string"&&t.value.trim()!==""||Array.isArray(t.values)&&t.values.length>0||e!==""||r!==""||t.hasAttribute&&(t.hasAttribute("open")||t.hasAttribute("start"))),i=this.isFocusedInside();s||i?(this.setAttribute("active",""),i?this.setAttribute("focus",""):this.removeAttribute("focus")):(this.removeAttribute("active"),this.removeAttribute("focus"))}applyError(){var r;const t=this.hasAttr("error")||this.hasAttr("invalid"),e=this.root.querySelector(".error-message");if(e&&(e.textContent=t?((r=this.getAttribute("error-text"))==null?void 0:r.trim())||"Valor inválido":""),this.targetControl&&typeof this.targetControl.setAttribute=="function"){const s=this.targetControl;t?(s.setAttribute("error",""),s.removeAttribute("success")):this.hasAttr("success")||this.hasAttr("valid")?(s.setAttribute("success",""),s.removeAttribute("error")):(s.removeAttribute("error"),s.removeAttribute("success"))}}isWithin(t){let e=t;for(;e&&e!==this;)e=e.parentElement;return e===this}isFocusedInside(){const t=document.activeElement;return!!(t&&this.isWithin(t))}};At.styles=v`
1364
+ `),r&&r.setAttribute("hidden",""),this.attachEvents(),this.syncControlReference(e),this.syncState(),this.applyError()}disconnectedCallback(){var e;super.disconnectedCallback(),(e=this.observer)==null||e.disconnect()}findControl(){var e;return(e=Array.from(this.children).find(t=>t.tagName.toLowerCase()!=="label"))!=null?e:null}findLabel(){var e;return(e=Array.from(this.children).find(t=>t.tagName.toLowerCase()==="label"))!=null?e:null}attachEvents(){const e=this.root.querySelector("slot");e&&e.addEventListener("slotchange",()=>{const t=this.findControl();this.syncControlReference(t),this.syncState(),this.applyError()}),!this.listenersReady&&(this.listenersReady=!0,this.addEventListener("focusin",()=>this.syncState()),this.addEventListener("focusout",()=>setTimeout(()=>this.syncState(),60)),this.addEventListener("input",()=>this.syncState()),this.addEventListener("change",()=>this.syncState()))}syncControlReference(e=this.targetControl){var t;e!==this.targetControl&&((t=this.observer)==null||t.disconnect(),this.observer=null,this.targetControl=e,e&&(this.observer=new MutationObserver(()=>this.syncState()),this.observer.observe(e,{attributes:!0,attributeFilter:["value","values","start","end","open"]})))}syncState(){var o,s,n;if(this.targetControl&&!this.targetControl.isConnected&&(this.targetControl=null,(o=this.observer)==null||o.disconnect(),this.observer=null),!this.targetControl){this.removeAttribute("active"),this.removeAttribute("focus");return}const e=this.targetControl,t=e.getAttribute?((s=e.getAttribute("value"))!=null?s:"").trim():"",r=e.getAttribute?((n=e.getAttribute("values"))!=null?n:"").trim():"",a=!!(typeof e.value=="string"&&e.value.trim()!==""||Array.isArray(e.values)&&e.values.length>0||t!==""||r!==""||e.hasAttribute&&(e.hasAttribute("open")||e.hasAttribute("start"))),i=this.isFocusedInside();a||i?(this.setAttribute("active",""),i?this.setAttribute("focus",""):this.removeAttribute("focus")):(this.removeAttribute("active"),this.removeAttribute("focus"))}applyError(){var r;const e=this.hasAttr("error")||this.hasAttr("invalid"),t=this.root.querySelector(".error-message");if(t&&(t.textContent=e?((r=this.getAttribute("error-text"))==null?void 0:r.trim())||"Valor inválido":""),this.targetControl&&typeof this.targetControl.setAttribute=="function"){const a=this.targetControl;e?(a.setAttribute("error",""),a.removeAttribute("success")):this.hasAttr("success")||this.hasAttr("valid")?(a.setAttribute("success",""),a.removeAttribute("error")):(a.removeAttribute("error"),a.removeAttribute("success"))}}isWithin(e){let t=e;for(;t&&t!==this;)t=t.parentElement;return t===this}isFocusedInside(){const e=document.activeElement;return!!(e&&this.isWithin(e))}};He.styles=m`
1365
1365
  :host {
1366
1366
  display: inline-block;
1367
1367
  position: relative;
@@ -1473,11 +1473,11 @@
1473
1473
  :host([invalid]) .error-message {
1474
1474
  display: block;
1475
1475
  }
1476
- `;let O=At;function me(){return k("fx-floatlabel",O)}me();const _t=class _t extends y{static get observedAttributes(){return["size","placeholder","disabled","readonly","rows","maxlength"]}get size(){const t=this.getAttr("size","md");return t==="sm"||t==="lg"?t:"md"}set size(t){this.setAttribute("size",t)}get value(){return this.getAttr("value")}set value(t){this.setAttribute("value",t)}render(){const t=this.getAttr("placeholder"),e=this.hasAttr("readonly"),r=this.hasAttr("disabled"),s=this.getAttr("rows"),i=this.getAttr("maxlength");this.setTemplate(`<textarea class="field" part="textarea"
1477
- ${t?`placeholder="${u(t)}"`:""}
1478
- ${s?`rows="${u(s)}"`:""}
1479
- ${i?`maxlength="${u(i)}"`:""}
1480
- ></textarea>`);const a=this.root.querySelector(".field");if(!a)return;a.value=this.getAttr("value"),r&&a.setAttribute("disabled",""),e&&a.setAttribute("readonly","");const o=n=>{this.value=a.value,this.dispatchEvent(new CustomEvent(n,{bubbles:!0,composed:!0,detail:{value:a.value}}))};a.addEventListener("input",n=>{n.stopPropagation(),o("input")}),a.addEventListener("change",n=>{n.stopPropagation(),o("change")})}};_t.styles=v`
1476
+ `;let X=He;function nr(){return b("fx-floatlabel",X)}nr();const Ye=class Ye extends g{static get observedAttributes(){return["size","placeholder","disabled","readonly","rows","maxlength"]}get size(){const e=this.getAttr("size","md");return e==="sm"||e==="lg"?e:"md"}set size(e){this.setAttribute("size",e)}get value(){return this.getAttr("value")}set value(e){this.setAttribute("value",e)}render(){const e=this.getAttr("placeholder"),t=this.hasAttr("readonly"),r=this.hasAttr("disabled"),a=this.getAttr("rows"),i=this.getAttr("maxlength");this.setTemplate(`<textarea class="field" part="textarea"
1477
+ ${e?`placeholder="${c(e)}"`:""}
1478
+ ${a?`rows="${c(a)}"`:""}
1479
+ ${i?`maxlength="${c(i)}"`:""}
1480
+ ></textarea>`);const o=this.root.querySelector(".field");if(!o)return;o.value=this.getAttr("value"),r&&o.setAttribute("disabled",""),t&&o.setAttribute("readonly","");const s=n=>{this.value=o.value,this.dispatchEvent(new CustomEvent(n,{bubbles:!0,composed:!0,detail:{value:o.value}}))};o.addEventListener("input",n=>{n.stopPropagation(),s("input")}),o.addEventListener("change",n=>{n.stopPropagation(),s("change")})}};Ye.styles=m`
1481
1481
  :host {
1482
1482
  display: inline-block;
1483
1483
  vertical-align: middle;
@@ -1524,18 +1524,18 @@
1524
1524
  }
1525
1525
  :host([size='sm']) .field { width: 220px; min-height: var(--fx-size-sm); padding: var(--fx-space-sm) var(--fx-space-md); }
1526
1526
  :host([size='lg']) .field { width: 300px; min-height: calc(var(--fx-size-lg) + 80px); }
1527
- `;let Y=_t;function xe(){return k("fx-textarea",Y)}xe();const St=class St extends y{constructor(){super(...arguments),this._previouslyFocused=null}static get observedAttributes(){return["open","size","heading"]}get open(){return this.hasAttr("open")}set open(t){this.toggleAttr("open",t)}render(){const t=this.open,e=this.getAttr("heading");if(this.setTemplate(`
1528
- <div class="overlay" part="overlay" ${t?"":"hidden"}>
1529
- <div class="dialog" role="dialog" aria-modal="true" aria-label="${u(e)}" tabindex="-1">
1527
+ `;let U=Ye;function lr(){return b("fx-textarea",U)}lr();const Xe=class Xe extends g{constructor(){super(...arguments),this._previouslyFocused=null}static get observedAttributes(){return["open","size","heading"]}get open(){return this.hasAttr("open")}set open(e){this.toggleAttr("open",e)}render(){const e=this.open,t=this.getAttr("heading");if(this.setTemplate(`
1528
+ <div class="overlay" part="overlay" ${e?"":"hidden"}>
1529
+ <div class="dialog" role="dialog" aria-modal="true" aria-label="${c(t)}" tabindex="-1">
1530
1530
  <header>
1531
- <h2>${u(e)}</h2>
1531
+ <h2>${c(t)}</h2>
1532
1532
  <button type="button" class="close" part="close" aria-label="Fechar">×</button>
1533
1533
  </header>
1534
1534
  <div class="body"><slot></slot></div>
1535
1535
  <footer part="footer"><slot name="footer"></slot></footer>
1536
1536
  </div>
1537
1537
  </div>
1538
- `),!t)return;const r=this.root.querySelector(".overlay"),s=this.root.querySelector(".close"),i=()=>{var o;this.open=!1,(o=this._cleanup)==null||o.call(this),this._cleanup=void 0,this._restoreFocus(),this.dispatchEvent(new CustomEvent("close",{bubbles:!0,composed:!0}))};r==null||r.addEventListener("click",o=>{o.target===r&&i()}),s==null||s.addEventListener("click",i);const a=o=>{if(o.key==="Escape"){o.stopPropagation(),i();return}o.key==="Tab"&&this._trapFocus(o)};document.addEventListener("keydown",a),this._cleanup=()=>document.removeEventListener("keydown",a),requestAnimationFrame(()=>{var o;this._previouslyFocused=document.activeElement,(o=this.root.querySelector(".dialog"))==null||o.focus()}),this.dispatchEvent(new CustomEvent("open",{bubbles:!0,composed:!0}))}_trapFocus(t){const e=this.root.querySelector(".dialog");if(!e)return;const r=e.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])');if(!r.length)return;const s=r[0],i=r[r.length-1],a=this.root.activeElement;t.shiftKey&&(a===s||a===e)?(t.preventDefault(),i.focus()):!t.shiftKey&&a===i&&(t.preventDefault(),s.focus())}_restoreFocus(){var t;(t=this._previouslyFocused)!=null&&t.isConnected&&this._previouslyFocused.focus(),this._previouslyFocused=null}disconnectedCallback(){var t;super.disconnectedCallback(),(t=this._cleanup)==null||t.call(this),this._cleanup=void 0,this._restoreFocus()}};St.styles=v`
1538
+ `),!e)return;const r=this.root.querySelector(".overlay"),a=this.root.querySelector(".close"),i=()=>{var s;this.open=!1,(s=this._cleanup)==null||s.call(this),this._cleanup=void 0,this._restoreFocus(),this.dispatchEvent(new CustomEvent("close",{bubbles:!0,composed:!0}))};r==null||r.addEventListener("click",s=>{s.target===r&&i()}),a==null||a.addEventListener("click",i);const o=s=>{if(s.key==="Escape"){s.stopPropagation(),i();return}s.key==="Tab"&&this._trapFocus(s)};document.addEventListener("keydown",o),this._cleanup=()=>document.removeEventListener("keydown",o),requestAnimationFrame(()=>{var s;this._previouslyFocused=document.activeElement,(s=this.root.querySelector(".dialog"))==null||s.focus()}),this.dispatchEvent(new CustomEvent("open",{bubbles:!0,composed:!0}))}_trapFocus(e){const t=this.root.querySelector(".dialog");if(!t)return;const r=t.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])');if(!r.length)return;const a=r[0],i=r[r.length-1],o=this.root.activeElement;e.shiftKey&&(o===a||o===t)?(e.preventDefault(),i.focus()):!e.shiftKey&&o===i&&(e.preventDefault(),a.focus())}_restoreFocus(){var e;(e=this._previouslyFocused)!=null&&e.isConnected&&this._previouslyFocused.focus(),this._previouslyFocused=null}disconnectedCallback(){var e;super.disconnectedCallback(),(e=this._cleanup)==null||e.call(this),this._cleanup=void 0,this._restoreFocus()}};Xe.styles=m`
1539
1539
  :host { display: contents; }
1540
1540
  .overlay {
1541
1541
  position: fixed;
@@ -1604,8 +1604,1163 @@
1604
1604
  gap: var(--fx-space-sm);
1605
1605
  }
1606
1606
  footer[hidden] { display: none; }
1607
- `;let U=St;function ye(){return k("fx-dialog",U)}ye();const Ht={success:"var(--fx-color-success, #10b981)",error:"var(--fx-color-danger, #f43f5e)",info:"var(--fx-color-info, #0ea5e9)",warning:"var(--fx-color-warning, #f59e0b)"},Ot={success:"✓",error:"✕",warning:"!",info:"i"},ke=`
1607
+ `;let J=Xe;function cr(){return b("fx-dialog",J)}cr();const W="Fenix Icons",T=`
1608
+ .fx-icon {
1609
+ font-family: ${`var(--fx-icon-font, ${W})`};
1610
+ font-weight: normal;
1611
+ font-style: normal;
1612
+ line-height: 1;
1613
+ letter-spacing: normal;
1614
+ text-transform: none;
1615
+ display: inline-block;
1616
+ white-space: nowrap;
1617
+ word-wrap: normal;
1618
+ direction: ltr;
1619
+ font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;
1620
+ -webkit-font-smoothing: antialiased;
1621
+ text-rendering: optimizeLegibility;
1622
+ user-select: none;
1623
+ }
1624
+ .fx-icon.fx-icon-fill { font-variation-settings: 'FILL' 1, 'wght' 400, 'GRAD' 0, 'opsz' 24; }
1625
+ .fx-icon.fx-icon-bold { font-variation-settings: 'FILL' 0, 'wght' 600, 'GRAD' 0, 'opsz' 24; }
1626
+ `;function q(d){return/^[a-z][a-z0-9_]*$/.test(d.trim())}const Ue=class Ue extends g{constructor(){super(...arguments),this._previouslyFocused=null,this._onReposition=()=>{if(!this.open)return;const e=this.root.querySelector(".popup");e&&!e.hidden&&this._position(e)}}static get observedAttributes(){return["open","target","message","icon","accept-label","reject-label","position"]}get open(){return this.hasAttr("open")}set open(e){this.toggleAttr("open",e)}render(){var h,_;const e=this.getAttr("message"),t=this.getAttr("icon"),r=q(t);r&&Promise.resolve().then(()=>Te);const a=this.getAttr("accept-label","Sim"),i=this.getAttr("reject-label","Não");if(this.setTemplate(`
1627
+ <div class="popup" part="popup" role="alertdialog" aria-modal="false" ${this.open?"":"hidden"}>
1628
+ <div class="message" part="message">
1629
+ ${t?`<span class="icon${r?" fx-icon":""}" aria-hidden="true">${c(t)}</span>`:""}
1630
+ <p class="text"><slot>${c(e)}</slot></p>
1631
+ </div>
1632
+ <footer part="footer">
1633
+ <slot name="reject">
1634
+ <button type="button" class="reject" part="reject-button">${c(i)}</button>
1635
+ </slot>
1636
+ <slot name="accept">
1637
+ <button type="button" class="accept" part="accept-button">${c(a)}</button>
1638
+ </slot>
1639
+ </footer>
1640
+ </div>
1641
+ `),!this.open)return;const o=this.root.querySelector(".popup");if(!o)return;const s=u=>{var p;this.open=!1,(p=this._cleanup)==null||p.call(this),this._cleanup=void 0,this._restoreFocus(),this.dispatchEvent(new CustomEvent(u,{bubbles:!0,composed:!0}))};(h=this.root.querySelector(".reject"))==null||h.addEventListener("click",()=>s("reject")),(_=this.root.querySelector(".accept"))==null||_.addEventListener("click",()=>s("accept"));const n=u=>{u.key==="Escape"&&(u.stopPropagation(),s("reject"))},l=u=>{const p=u.composedPath(),v=this._anchor(),f=v?p.includes(v):!1;!p.includes(o)&&!f&&s("reject")};document.addEventListener("keydown",n),document.addEventListener("pointerdown",l,!0),this._cleanup=()=>{document.removeEventListener("keydown",n),document.removeEventListener("pointerdown",l,!0)},this._position(o),this._previouslyFocused=document.activeElement,requestAnimationFrame(()=>{var u;(u=this.root.querySelector("button.accept"))==null||u.focus()})}_anchor(){const e=this.getAttr("target");if(!e)return null;try{return document.querySelector(e)}catch(t){return null}}_position(e){const t=this._anchor();if(!t)return;e.hidden=!1;const r=t.getBoundingClientRect(),a=e.getBoundingClientRect(),i=8,o=8;let s;const n=this.getAttr("position","auto");n==="top"?s="top":n==="bottom"?s="bottom":s=r.bottom+i+a.height<=window.innerHeight-o?"bottom":"top";const l=Math.min(Math.max(o,r.left+r.width/2-a.width/2),window.innerWidth-a.width-o),h=s==="bottom"?r.bottom+i:r.top-i-a.height;e.dataset.side=s,e.style.left=`${Math.round(l)}px`,e.style.top=`${Math.round(Math.max(o,h))}px`;const _=Math.min(Math.max(r.left+r.width/2-l,16),a.width-16);e.style.setProperty("--fxcp-arrow-x",`${Math.round(_)}px`)}_restoreFocus(){var e;(e=this._previouslyFocused)!=null&&e.isConnected&&this._previouslyFocused.focus(),this._previouslyFocused=null}connectedCallback(){super.connectedCallback(),window.addEventListener("scroll",this._onReposition,!0),window.addEventListener("resize",this._onReposition)}disconnectedCallback(){var e;super.disconnectedCallback(),window.removeEventListener("scroll",this._onReposition,!0),window.removeEventListener("resize",this._onReposition),(e=this._cleanup)==null||e.call(this),this._cleanup=void 0,this._restoreFocus()}};Ue.styles=m`
1642
+ :host { display: contents; }
1643
+ .popup {
1644
+ position: fixed;
1645
+ margin: 0;
1646
+ background: var(--fx-surface-background);
1647
+ border: 1px solid var(--fx-border-default);
1648
+ border-radius: var(--fx-radius-md);
1649
+ box-shadow: var(--fx-shadow-lg);
1650
+ padding: var(--fx-space-md) var(--fx-space-lg);
1651
+ min-width: 220px;
1652
+ max-width: min(380px, calc(100vw - 24px));
1653
+ font-family: var(--fx-font-family);
1654
+ font-size: var(--fx-font-size);
1655
+ color: var(--fx-text-default);
1656
+ z-index: var(--fx-z-modal, 1100);
1657
+ animation: fxcp-pop var(--fx-motion-duration-fast, 150ms) var(--fx-motion-easing, ease);
1658
+ }
1659
+ .popup[hidden] { display: none; }
1660
+ @keyframes fxcp-pop { from { opacity: 0; transform: scale(0.96); } to { opacity: 1; transform: scale(1); } }
1661
+ /* seta indicadora */
1662
+ .popup::before {
1663
+ content: '';
1664
+ position: absolute;
1665
+ left: var(--fxcp-arrow-x, 50%);
1666
+ border: 7px solid transparent;
1667
+ }
1668
+ .popup[data-side='bottom']::before {
1669
+ top: -14px;
1670
+ border-bottom-color: var(--fx-border-default);
1671
+ }
1672
+ .popup[data-side='top']::before {
1673
+ bottom: -14px;
1674
+ border-top-color: var(--fx-border-default);
1675
+ }
1676
+ .popup::after {
1677
+ content: '';
1678
+ position: absolute;
1679
+ left: var(--fxcp-arrow-x, 50%);
1680
+ border: 6px solid transparent;
1681
+ }
1682
+ .popup[data-side='bottom']::after {
1683
+ top: -12px;
1684
+ border-bottom-color: var(--fx-surface-background);
1685
+ }
1686
+ .popup[data-side='top']::after {
1687
+ bottom: -12px;
1688
+ border-top-color: var(--fx-surface-background);
1689
+ }
1690
+ .message {
1691
+ display: flex;
1692
+ align-items: flex-start;
1693
+ gap: var(--fx-space-sm);
1694
+ }
1695
+ .icon { font-size: calc(var(--fx-font-size) + 4px); line-height: 1.2; }
1696
+ ${T}
1697
+ .icon.fx-icon { font-size: calc(var(--fx-font-size) + 6px); color: var(--fx-color-primary); }
1698
+ .text { margin: 0; }
1699
+ footer {
1700
+ display: flex;
1701
+ justify-content: flex-end;
1702
+ gap: var(--fx-space-sm);
1703
+ margin-top: var(--fx-space-md);
1704
+ }
1705
+ footer button {
1706
+ font-family: var(--fx-font-family);
1707
+ font-size: calc(var(--fx-font-size) - 2px);
1708
+ padding: var(--fx-space-xs) var(--fx-space-md);
1709
+ border-radius: var(--fx-radius-sm);
1710
+ border: 1px solid var(--fx-border-default);
1711
+ background: var(--fx-surface-background);
1712
+ color: var(--fx-text-default);
1713
+ cursor: pointer;
1714
+ transition: background var(--fx-motion-duration-fast) var(--fx-motion-easing);
1715
+ }
1716
+ footer button:hover { background: var(--fx-surface-surface-hover, rgba(0, 0, 0, 0.04)); }
1717
+ footer button.accept {
1718
+ background: var(--fx-color-primary);
1719
+ border-color: var(--fx-color-primary);
1720
+ color: #fff;
1721
+ }
1722
+ footer button.accept:hover { filter: brightness(0.92); background: var(--fx-color-primary); }
1723
+ `;let G=Ue;function dr(){return b("fx-confirmpopup",G)}dr();const Je=class Je extends g{constructor(){super(...arguments),this._files=[],this._done=!1}static get observedAttributes(){return["mode","size","severity","label","icon","accept","multiple","disabled","show-progress","progress","value"]}get size(){const e=this.getAttr("size","md");return e==="sm"||e==="lg"?e:"md"}set size(e){this.setAttribute("size",e)}get value(){return this.getAttr("value")}set value(e){this.setAttribute("value",e)}get progress(){return Math.min(100,Math.max(0,Number(this.getAttr("progress","0"))||0))}set progress(e){this.setAttribute("progress",String(e))}get files(){return this._files}set files(e){this._files=Array.from(e),this.value=this._files.map(t=>t.name).join(", "),this._syncFilesArea()}render(){const t=this.getAttr("mode","basic")==="advanced",r=this.getAttr("label","Escolher arquivo"),a=this.getAttr("icon"),i=this.getAttr("accept"),o=this.hasAttr("multiple"),s=this.hasAttr("disabled"),n=this.hasAttr("show-progress"),l=this.progress,h=`<input type="file" class="picker" ${i?`accept="${c(i)}"`:""} ${o?"multiple":""} ${s?"disabled":""} />`;this.setTemplate(`
1724
+ ${t?`<div class="drop" part="dropzone" role="button" tabindex="0" aria-label="${c(r)}">
1725
+ ${a?`<span class="icon" aria-hidden="true">${c(a)}</span>`:""}
1726
+ <span>${c(r)}</span>
1727
+ <span class="hint">ou arraste e solte aqui</span>
1728
+ </div>`:`<button type="button" class="btn" part="button">
1729
+ ${a?`<span class="icon" aria-hidden="true">${c(a)}</span>`:""}
1730
+ <span>${c(r)}</span>
1731
+ </button>`}
1732
+ ${h}
1733
+ <div class="files" part="files"></div>
1734
+ ${n?`
1735
+ <div class="progress-row" part="progress">
1736
+ <div class="track" role="progressbar" aria-valuenow="${l}" aria-valuemin="0" aria-valuemax="100">
1737
+ <div class="bar" style="width: ${l}%"></div>
1738
+ </div>
1739
+ <span class="pct">${l}%</span>
1740
+ </div>`:""}
1741
+ `),this._bindPicker(),this._syncFilesArea(),!this._done&&n&&l>=100&&this._files.length&&(this._done=!0,this.dispatchEvent(new CustomEvent("complete",{bubbles:!0,composed:!0}))),l<100&&(this._done=!1)}_picker(){return this.root.querySelector(".picker")}_bindPicker(){var a;const e=this._picker();if(!e)return;const t=(a=this.root.querySelector(".btn"))!=null?a:this.root.querySelector(".drop");t==null||t.addEventListener("click",()=>e.click()),t==null||t.addEventListener("keydown",i=>{(i.key==="Enter"||i.key===" ")&&(i.preventDefault(),e.click())}),e.addEventListener("change",()=>{var i;return this._acceptFiles((i=e.files)!=null?i:[])});const r=this.root.querySelector(".drop");r&&(r.addEventListener("dragover",i=>{i.preventDefault(),r.classList.add("over")}),r.addEventListener("dragleave",()=>r.classList.remove("over")),r.addEventListener("drop",i=>{var o;i.preventDefault(),r.classList.remove("over"),(o=i.dataTransfer)!=null&&o.files.length&&this._acceptFiles(i.dataTransfer.files)}))}_acceptFiles(e){const t=this.hasAttr("multiple")?Array.from(e):[e[0]].filter(Boolean);this.files=t;const r=this._picker();r&&(r.value=""),this.dispatchEvent(new CustomEvent("select",{bubbles:!0,composed:!0,detail:{files:t}}))}_fmtSize(e){return e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(1)} MB`}_syncFilesArea(){var t,r;const e=(r=(t=this.root)==null?void 0:t.querySelector)==null?void 0:r.call(t,".files");e&&(e.innerHTML=this._files.map((a,i)=>`
1742
+ <div class="file" part="file">
1743
+ <span class="name">${c(a.name)}</span>
1744
+ <span class="size">${this._fmtSize(a.size)}</span>
1745
+ <button type="button" class="remove" data-i="${i}" part="remove" aria-label="Remover ${c(a.name)}">×</button>
1746
+ </div>`).join(""),e.querySelectorAll(".remove").forEach(a=>a.addEventListener("click",()=>{const i=this._files.splice(Number(a.dataset.i),1)[0];this.value=this._files.map(o=>o.name).join(", "),this.progress=0,this._syncFilesArea(),this.dispatchEvent(new CustomEvent("remove",{bubbles:!0,composed:!0,detail:{file:i}}))})))}};Je.styles=m`
1747
+ :host {
1748
+ display: inline-block;
1749
+ font-family: var(--fx-font-family);
1750
+ font-size: var(--fx-font-size);
1751
+ }
1752
+ :host([disabled]) { opacity: 0.55; pointer-events: none; }
1753
+ input[type='file'] { display: none; }
1754
+
1755
+ /* ---- botão (basic) ---- */
1756
+ .btn {
1757
+ display: inline-flex;
1758
+ align-items: center;
1759
+ justify-content: center;
1760
+ gap: var(--fx-space-sm);
1761
+ min-height: var(--fx-size-md);
1762
+ padding: var(--fx-space-md) var(--fx-space-lg);
1763
+ font-family: inherit;
1764
+ font-size: inherit;
1765
+ font-weight: var(--fx-font-weight);
1766
+ color: var(--fx-text-default);
1767
+ background-color: var(--fx-surface-background);
1768
+ border: 1px solid var(--fx-border-default);
1769
+ border-radius: var(--fx-radius-md);
1770
+ cursor: pointer;
1771
+ box-sizing: border-box;
1772
+ transition:
1773
+ border-color var(--fx-motion-duration-normal) var(--fx-motion-easing),
1774
+ box-shadow var(--fx-motion-duration-normal) var(--fx-motion-easing),
1775
+ background var(--fx-motion-duration-normal) var(--fx-motion-easing);
1776
+ }
1777
+ .btn:hover { border-color: var(--fx-border-hover); background: var(--fx-surface-surface-hover, rgba(0,0,0,0.03)); }
1778
+ .btn:focus-visible {
1779
+ outline: none;
1780
+ border-color: var(--fx-color-primary);
1781
+ box-shadow: var(--fx-effect-focus-ring, none);
1782
+ }
1783
+ /* Severities (como no <fx-button>) — aplicam-se ao botão do modo basic */
1784
+ :host([severity='primary']) .btn { background: var(--fx-color-primary); border-color: transparent; color: #fff; }
1785
+ :host([severity='secondary']) .btn { background: var(--fx-color-secondary); border-color: transparent; color: #fff; }
1786
+ :host([severity='success']) .btn { background: var(--fx-color-success); border-color: transparent; color: #fff; }
1787
+ :host([severity='warning']) .btn { background: var(--fx-color-warning); border-color: transparent; color: #fff; }
1788
+ :host([severity='danger']) .btn { background: var(--fx-color-danger); border-color: transparent; color: #fff; }
1789
+ :host([severity='info']) .btn { background: var(--fx-color-info); border-color: transparent; color: #fff; }
1790
+ :host([severity]) .btn:hover { filter: brightness(0.88); }
1791
+ :host([severity]) .btn:focus-visible { border-color: transparent; }
1792
+ :host([size='sm']) .btn { min-height: var(--fx-size-sm); padding: var(--fx-space-sm) var(--fx-space-md); font-size: calc(var(--fx-font-size) - 2px); }
1793
+ :host([size='lg']) .btn { min-height: var(--fx-size-lg); padding: var(--fx-space-lg) var(--fx-space-xl); font-size: calc(var(--fx-font-size) + 4px); }
1794
+ :host([size='sm']) .drop { min-height: 72px; }
1795
+ :host([size='lg']) .drop { min-height: 132px; }
1796
+
1797
+ /* ---- dropzone (advanced) ---- */
1798
+ .drop {
1799
+ display: flex;
1800
+ flex-direction: column;
1801
+ align-items: center;
1802
+ justify-content: center;
1803
+ gap: var(--fx-space-sm);
1804
+ min-height: 100px;
1805
+ padding: var(--fx-space-lg);
1806
+ border: 2px dashed var(--fx-border-default);
1807
+ border-radius: var(--fx-radius-md);
1808
+ color: var(--fx-text-muted);
1809
+ cursor: pointer;
1810
+ text-align: center;
1811
+ transition: border-color var(--fx-motion-duration-normal) var(--fx-motion-easing), background var(--fx-motion-duration-normal) var(--fx-motion-easing);
1812
+ }
1813
+ .drop:hover, .drop.over {
1814
+ border-color: var(--fx-color-primary);
1815
+ background: color-mix(in srgb, var(--fx-color-primary) 6%, transparent);
1816
+ }
1817
+ .drop .icon { font-size: calc(var(--fx-font-size) + 12px); line-height: 1; }
1818
+ .drop .hint { font-size: calc(var(--fx-font-size) - 2px); }
1819
+
1820
+ /* ---- ícone comum ---- */
1821
+ .icon { line-height: 1; }
1822
+
1823
+ /* ---- arquivo(s) selecionado(s) ---- */
1824
+ .files { display: flex; flex-direction: column; gap: var(--fx-space-xs); margin-top: var(--fx-space-sm); }
1825
+ .file {
1826
+ display: flex;
1827
+ align-items: center;
1828
+ gap: var(--fx-space-sm);
1829
+ padding: var(--fx-space-xs) var(--fx-space-sm);
1830
+ border: 1px solid var(--fx-border-default);
1831
+ border-radius: var(--fx-radius-sm);
1832
+ font-size: calc(var(--fx-font-size) - 2px);
1833
+ color: var(--fx-text-default);
1834
+ }
1835
+ .file .name { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
1836
+ .file .size { color: var(--fx-text-muted); white-space: nowrap; }
1837
+ .file .remove {
1838
+ border: none;
1839
+ background: transparent;
1840
+ color: var(--fx-text-muted);
1841
+ cursor: pointer;
1842
+ font-size: calc(var(--fx-font-size) + 2px);
1843
+ line-height: 1;
1844
+ padding: 0 var(--fx-space-xs);
1845
+ border-radius: var(--fx-radius-full);
1846
+ }
1847
+ .file .remove:hover { color: var(--fx-color-danger); }
1848
+
1849
+ /* ---- progresso ---- */
1850
+ .progress-row { display: flex; align-items: center; gap: var(--fx-space-sm); margin-top: var(--fx-space-sm); }
1851
+ .track {
1852
+ flex: 1;
1853
+ height: 6px;
1854
+ background: var(--fx-surface-surface-hover);
1855
+ border-radius: var(--fx-radius-full);
1856
+ overflow: hidden;
1857
+ }
1858
+ .bar {
1859
+ height: 100%;
1860
+ width: 0%;
1861
+ background: var(--fx-color-primary);
1862
+ border-radius: var(--fx-radius-full);
1863
+ transition: width var(--fx-motion-duration-normal) var(--fx-motion-easing);
1864
+ }
1865
+ :host([progress='100']) .bar { background: var(--fx-color-success); }
1866
+ .pct {
1867
+ font-size: calc(var(--fx-font-size) - 2px);
1868
+ font-weight: 600;
1869
+ color: var(--fx-text-default);
1870
+ min-width: 34px;
1871
+ text-align: right;
1872
+ }
1873
+ `;let Z=Je;function pr(){return b("fx-fileupload",Z)}pr();const We=class We extends g{constructor(){super(...arguments),this._dragging=!1}static get observedAttributes(){return["min","max","step","size","disabled","show-value","label"]}get min(){return this._num("min",0)}get max(){return this._num("max",100)}get step(){return this._num("step",1)}get value(){return this._clamp(this._num("value",this.min))}set value(e){const t=this._snap(e);this.setAttribute("value",String(t)),this.isConnected&&this._syncVisual()}_num(e,t){const r=this.getAttribute(e);if(r===null||r==="")return t;const a=Number(r);return Number.isFinite(a)?a:t}_clamp(e){return Math.min(this.max,Math.max(this.min,e))}_snap(e){const t=this.step||1,r=Math.round((this._clamp(e)-this.min)/t)*t+this.min;return Number(this._clamp(r).toFixed(10))}_pct(){const e=this.max-this.min;return e<=0?0:(this.value-this.min)/e*100}render(){const e=this._pct(),t=this.getAttr("label"),r=this.hasAttr("show-value");this.setTemplate(`
1874
+ ${t?`<div class="label" part="label"><span>${t}</span>${r?`<span>${this.value}</span>`:""}</div>`:""}
1875
+ <div class="track-wrap" part="track" tabindex="0" role="slider"
1876
+ aria-valuemin="${this.min}" aria-valuemax="${this.max}" aria-valuenow="${this.value}"
1877
+ aria-label="${t||"Slider"}" ${this.hasAttr("disabled")?'aria-disabled="true"':""}>
1878
+ <div class="track"><div class="fill" part="fill" style="width: ${e}%"></div></div>
1879
+ <div class="thumb" part="thumb" style="left: ${e}%"></div>
1880
+ ${r?`<span class="value" style="left: ${e}%">${this.value}</span>`:""}
1881
+ </div>
1882
+ `),this._bindPointer(),this._bindKeyboard()}_wrap(){return this.root.querySelector(".track-wrap")}_bindPointer(){const e=this._wrap();if(!e)return;const t=i=>{const o=e.getBoundingClientRect(),s=o.width<=0?0:(i.clientX-o.left)/o.width;return this.min+s*(this.max-this.min)},r=i=>{this._dragging&&(this.value=t(i),this._syncVisual(),this.dispatchEvent(new CustomEvent("input",{bubbles:!0,composed:!0,detail:{value:this.value}})))},a=i=>{this._dragging&&(this._dragging=!1,e.classList.remove("dragging"),window.removeEventListener("pointermove",r),window.removeEventListener("pointerup",a),this.value=t(i),this._syncVisual(),this.dispatchEvent(new CustomEvent("change",{bubbles:!0,composed:!0,detail:{value:this.value}})))};e.addEventListener("pointerdown",i=>{this.hasAttr("disabled")||(this._dragging=!0,e.classList.add("dragging"),e.focus(),this.value=t(i),this._syncVisual(),this.dispatchEvent(new CustomEvent("input",{bubbles:!0,composed:!0,detail:{value:this.value}})),window.addEventListener("pointermove",r),window.addEventListener("pointerup",a))})}_bindKeyboard(){const e=this._wrap();e&&e.addEventListener("keydown",t=>{if(this.hasAttr("disabled"))return;const r=t,a=(this.max-this.min)/10;let i=null;switch(r.key){case"ArrowRight":case"ArrowUp":i=this.value+this.step;break;case"ArrowLeft":case"ArrowDown":i=this.value-this.step;break;case"PageUp":i=this.value+a;break;case"PageDown":i=this.value-a;break;case"Home":i=this.min;break;case"End":i=this.max;break;default:return}r.preventDefault(),this.value=i,this._syncVisual(),this.dispatchEvent(new CustomEvent("input",{bubbles:!0,composed:!0,detail:{value:this.value}})),this.dispatchEvent(new CustomEvent("change",{bubbles:!0,composed:!0,detail:{value:this.value}}))})}_syncVisual(){const e=this._pct(),t=this._wrap();if(!t)return;const r=t.querySelector(".fill"),a=t.querySelector(".thumb"),i=t.querySelector(".value");r&&(r.style.width=`${e}%`),a&&(a.style.left=`${e}%`),i&&(i.style.left=`${e}%`,i.textContent=String(this.value)),t.setAttribute("aria-valuenow",String(this.value));const o=this.root.querySelector(".label span:last-child");o&&(o.textContent=String(this.value))}};We.styles=m`
1883
+ :host {
1884
+ display: block;
1885
+ font-family: var(--fx-font-family);
1886
+ font-size: var(--fx-font-size);
1887
+ --_track-h: 6px;
1888
+ --_thumb: 18px;
1889
+ }
1890
+ :host([size='sm']) { --_track-h: 4px; --_thumb: 14px; }
1891
+ :host([size='lg']) { --_track-h: 8px; --_thumb: 22px; }
1892
+ :host([disabled]) { opacity: 0.55; pointer-events: none; }
1893
+
1894
+ .label {
1895
+ font-size: calc(var(--fx-font-size) - 2px);
1896
+ color: var(--fx-text-muted);
1897
+ margin-bottom: var(--fx-space-xs);
1898
+ display: flex;
1899
+ justify-content: space-between;
1900
+ gap: var(--fx-space-md);
1901
+ align-items: center;
1902
+ }
1903
+ .track-wrap {
1904
+ position: relative;
1905
+ display: flex;
1906
+ align-items: center;
1907
+ height: var(--_thumb);
1908
+ cursor: pointer;
1909
+ touch-action: none;
1910
+ }
1911
+ .track {
1912
+ width: 100%;
1913
+ height: var(--_track-h);
1914
+ border-radius: var(--fx-radius-full);
1915
+ background: var(--fx-surface-surface-hover, rgba(0, 0, 0, 0.08));
1916
+ overflow: hidden;
1917
+ }
1918
+ .fill {
1919
+ height: 100%;
1920
+ background: var(--fx-color-primary);
1921
+ border-radius: var(--fx-radius-full);
1922
+ }
1923
+ .thumb {
1924
+ position: absolute;
1925
+ top: 50%;
1926
+ width: var(--_thumb);
1927
+ height: var(--_thumb);
1928
+ border-radius: var(--fx-radius-full);
1929
+ background: var(--fx-surface-background);
1930
+ border: 2px solid var(--fx-color-primary);
1931
+ box-shadow: var(--fx-shadow-sm);
1932
+ transform: translate(-50%, -50%);
1933
+ transition: box-shadow var(--fx-motion-duration-fast) var(--fx-motion-easing);
1934
+ box-sizing: border-box;
1935
+ }
1936
+ .track-wrap:hover .thumb,
1937
+ .track-wrap.dragging .thumb { box-shadow: var(--fx-effect-focus-ring, none); }
1938
+ .track-wrap:focus-visible { outline: none; }
1939
+ .track-wrap:focus-visible .thumb {
1940
+ box-shadow: var(--fx-effect-focus-ring, none);
1941
+ }
1942
+ .value {
1943
+ position: absolute;
1944
+ bottom: calc(100% + 6px);
1945
+ transform: translateX(-50%);
1946
+ background: var(--fx-text-default, #1e293b);
1947
+ color: var(--fx-surface-background, #fff);
1948
+ font-size: calc(var(--fx-font-size) - 3px);
1949
+ font-weight: 600;
1950
+ padding: 2px var(--fx-space-xs);
1951
+ border-radius: var(--fx-radius-sm);
1952
+ white-space: nowrap;
1953
+ pointer-events: none;
1954
+ opacity: 0;
1955
+ transition: opacity var(--fx-motion-duration-fast) var(--fx-motion-easing);
1956
+ }
1957
+ .track-wrap:hover .value,
1958
+ .track-wrap.dragging .value,
1959
+ .track-wrap:focus-visible .value { opacity: 1; }
1960
+ `;let Q=We;function hr(){return b("fx-slider",Q)}hr();const Ge=class Ge extends g{static get observedAttributes(){return["variant","size","removable","selectable","selected","disabled","icon"]}get selected(){return this.hasAttr("selected")}set selected(e){this.toggleAttr("selected",e)}render(){const e=this.getAttr("icon"),t=this.hasAttr("removable"),r=this.hasAttr("disabled"),a=(this.hasAttr("selectable")||this.hasAttr("href"))&&!r;this.setTemplate(`
1961
+ <span class="chip ${a?"clickable":""}" part="chip" role="${a?"button":"status"}"
1962
+ ${a?`tabindex="0" aria-pressed="${this.selected}"`:""} ${r?'aria-disabled="true"':""}>
1963
+ ${e?`<span class="icon" aria-hidden="true">${c(e)}</span>`:""}
1964
+ <slot></slot>
1965
+ <button type="button" class="remove" part="remove" aria-label="Remover" ${t?"":"hidden"}>×</button>
1966
+ </span>
1967
+ `);const i=this.root.querySelector(".chip"),o=this.root.querySelector(".remove");if(!(!i||!o)&&(o.addEventListener("click",s=>{s.stopPropagation(),this.dispatchEvent(new CustomEvent("remove",{bubbles:!0,composed:!0}))}),a)){const s=()=>{this.hasAttr("selectable")&&(this.selected=!this.selected,i.setAttribute("aria-pressed",String(this.selected))),this.dispatchEvent(new CustomEvent("chip-click",{bubbles:!0,composed:!0}))};i.addEventListener("click",s),i.addEventListener("keydown",n=>{const l=n;(l.key==="Enter"||l.key===" ")&&(l.preventDefault(),s())})}}};Ge.styles=m`
1968
+ :host {
1969
+ display: inline-block;
1970
+ font-family: var(--fx-font-family);
1971
+ font-size: var(--fx-font-size);
1972
+ }
1973
+ .chip {
1974
+ display: inline-flex;
1975
+ align-items: center;
1976
+ gap: var(--fx-space-xs);
1977
+ padding: var(--fx-space-xs) var(--fx-space-md);
1978
+ min-height: var(--fx-size-sm);
1979
+ box-sizing: border-box;
1980
+ font-size: calc(var(--fx-font-size) - 2px);
1981
+ font-weight: var(--fx-font-weight);
1982
+ color: var(--fx-text-default);
1983
+ background: var(--fx-surface-surface-hover, rgba(0, 0, 0, 0.06));
1984
+ border: 1px solid transparent;
1985
+ border-radius: var(--fx-radius-full);
1986
+ user-select: none;
1987
+ transition:
1988
+ background var(--fx-motion-duration-fast) var(--fx-motion-easing),
1989
+ border-color var(--fx-motion-duration-fast) var(--fx-motion-easing),
1990
+ filter var(--fx-motion-duration-fast) var(--fx-motion-easing);
1991
+ }
1992
+ :host([size='md']) .chip { min-height: var(--fx-size-md); padding: var(--fx-space-xs) var(--fx-space-lg); }
1993
+ :host([size='lg']) .chip { min-height: var(--fx-size-lg); font-size: var(--fx-font-size); padding: var(--fx-space-sm) var(--fx-space-xl); }
1994
+
1995
+ :host([variant='primary']) .chip { background: color-mix(in srgb, var(--fx-color-primary) 14%, transparent); color: var(--fx-color-primary); }
1996
+ :host([variant='secondary']) .chip { background: color-mix(in srgb, var(--fx-color-secondary) 14%, transparent); color: var(--fx-color-secondary); }
1997
+ :host([variant='success']) .chip { background: color-mix(in srgb, var(--fx-color-success) 14%, transparent); color: var(--fx-color-success); }
1998
+ :host([variant='warning']) .chip { background: color-mix(in srgb, var(--fx-color-warning) 14%, transparent); color: var(--fx-color-warning); }
1999
+ :host([variant='danger']) .chip { background: color-mix(in srgb, var(--fx-color-danger) 14%, transparent); color: var(--fx-color-danger); }
2000
+ :host([variant='info']) .chip { background: color-mix(in srgb, var(--fx-color-info) 14%, transparent); color: var(--fx-color-info); }
2001
+
2002
+ .chip.clickable { cursor: pointer; }
2003
+ .chip.clickable:hover { filter: brightness(0.95); }
2004
+ :host([selected]) .chip {
2005
+ background: var(--fx-color-primary);
2006
+ color: #fff;
2007
+ }
2008
+ :host([selected]) .chip:hover { filter: brightness(0.92); }
2009
+ :host([disabled]) .chip { opacity: 0.55; cursor: not-allowed; }
2010
+ .chip.clickable:active { transform: scale(0.97); }
2011
+
2012
+ .icon { line-height: 1; }
2013
+ .remove {
2014
+ display: inline-flex;
2015
+ align-items: center;
2016
+ justify-content: center;
2017
+ width: 16px;
2018
+ height: 16px;
2019
+ border: none;
2020
+ border-radius: var(--fx-radius-full);
2021
+ background: transparent;
2022
+ color: inherit;
2023
+ font-size: calc(var(--fx-font-size) + 2px);
2024
+ line-height: 1;
2025
+ cursor: pointer;
2026
+ padding: 0;
2027
+ }
2028
+ .remove:hover { background: rgba(0, 0, 0, 0.18); }
2029
+ .remove[hidden] { display: none; }
2030
+ `;let ee=Ge;function ur(){return b("fx-chip",ee)}ur();const Ze=class Ze extends g{static get observedAttributes(){return["size","shape","variant","src","alt"]}get variant(){return this.getAttr("variant","text")}get src(){return this.getAttr("src")}set src(e){this.setAttribute("src",e)}render(){const e=this.variant,t=this.getAttr("src"),r=this.getAttr("alt",""),a=e==="icon",i=e==="image"&&t;this.setTemplate(`
2031
+ <span class="avatar${i?" image":a?" icon-slot":" text"}" part="avatar" aria-label="${c(r)}" role="img">
2032
+ ${i?`<img src="${c(t)}" alt="${c(r)}">`:a?'<slot name="icon" class="slot-icon"></slot>':"<slot></slot>"}
2033
+ </span>
2034
+ `)}};Ze.styles=m`
2035
+ :host {
2036
+ display: inline-block;
2037
+ font-family: var(--fx-font-family);
2038
+ font-size: var(--fx-font-size);
2039
+ --_size: var(--fx-size-md, 36px);
2040
+ --_bg: var(--fx-surface-surface-hover, rgba(0, 0, 0, 0.08));
2041
+ --_color: var(--fx-text-default, #1e293b);
2042
+ }
2043
+ :host([size='sm']) { --_size: var(--fx-size-sm, 24px); }
2044
+ :host([size='lg']) { --_size: var(--fx-size-lg, 48px); }
2045
+
2046
+ .avatar {
2047
+ display: inline-flex;
2048
+ align-items: center;
2049
+ justify-content: center;
2050
+ width: var(--_size);
2051
+ height: var(--_size);
2052
+ min-width: var(--_size);
2053
+ box-sizing: border-box;
2054
+ background: var(--_bg);
2055
+ color: var(--_color);
2056
+ font-weight: 700;
2057
+ font-size: calc(var(--_size) / 2.2);
2058
+ line-height: 1;
2059
+ overflow: hidden;
2060
+ text-decoration: none;
2061
+ /* border-radius definido por shape abaixo */
2062
+ }
2063
+ :host([shape='square']) .avatar { border-radius: var(--fx-radius-sm); }
2064
+ :host([shape='rounded']) .avatar { border-radius: var(--fx-radius-md); }
2065
+ :host([shape='circle']) .avatar, :host([shape='']) .avatar { border-radius: var(--fx-radius-full); }
2066
+
2067
+ .avatar img {
2068
+ width: 100%;
2069
+ height: 100%;
2070
+ object-fit: cover;
2071
+ display: block;
2072
+ }
2073
+ .avatar.text { font-size: calc(var(--_size) / 2.6); }
2074
+ .avatar .slot-icon { font-size: calc(var(--_size) / 2.4); }
2075
+
2076
+ /* grupo empilhado */
2077
+ :host(.avatar-group) { display: inline-flex; }
2078
+ :host(.avatar-group) > .avatar {
2079
+ border: 2px solid var(--fx-surface-background);
2080
+ margin-left: calc(var(--_size) / -3);
2081
+ z-index: 1;
2082
+ }
2083
+ :host(.avatar-group) > .avatar:last-child { margin-left: 0; }
2084
+ :host(.avatar-group) > .avatar:hover { z-index: 2; }
2085
+ `;let te=Ze;function fr(){return b("fx-avatar",te)}fr();const Qe=class Qe extends g{static get observedAttributes(){return["variant","size","padded","heading"]}render(){const e=this.getAttr("heading");this.setTemplate(`
2086
+ <div class="card" part="card">
2087
+ <header part="header" ${e?"":"hidden"}>${c(e)}<slot name="header"></slot></header>
2088
+ <div class="body" part="content"><slot></slot></div>
2089
+ <footer part="footer"><slot name="footer"></slot></footer>
2090
+ </div>
2091
+ `)}};Qe.styles=m`
2092
+ :host {
2093
+ display: block;
2094
+ font-family: var(--fx-font-family);
2095
+ font-size: var(--fx-font-size);
2096
+ box-sizing: border-box;
2097
+ }
2098
+ .card {
2099
+ background: var(--fx-surface-background);
2100
+ border: 1px solid var(--fx-border-default);
2101
+ border-radius: var(--fx-radius-lg);
2102
+ box-shadow: var(--fx-shadow-sm);
2103
+ display: flex;
2104
+ flex-direction: column;
2105
+ overflow: hidden;
2106
+ transition: box-shadow var(--fx-motion-duration-normal) var(--fx-motion-easing);
2107
+ }
2108
+ /* Elevado: sombra principal; Flat: sem sombra mas cor plana; Outline: sem sombra e borda sólida */
2109
+ :host([variant='elevated']) .card { box-shadow: var(--fx-shadow-md); }
2110
+ :host([variant='elevated']) .card:hover { box-shadow: var(--fx-shadow-xl); }
2111
+ :host([variant='flat']) .card { box-shadow: none; border-color: transparent; }
2112
+ :host([variant='outline']) .card { box-shadow: none; border-style: solid; border-width: 1px; }
2113
+ :host([variant='ghost']) .card { box-shadow: none; border-color: transparent; background: transparent; }
2114
+
2115
+ /* Tamanhos */
2116
+ :host([size='sm']) .card { border-radius: var(--fx-radius-sm); }
2117
+ :host([size='lg']) .card { border-radius: var(--fx-radius-xl); }
2118
+
2119
+ header {
2120
+ padding: var(--fx-space-md) var(--fx-space-xl);
2121
+ border-bottom: 1px solid var(--fx-border-default);
2122
+ font-weight: 600;
2123
+ color: var(--fx-text-default);
2124
+ font-size: calc(var(--fx-font-size) + 2px);
2125
+ }
2126
+ header[hidden] { display: none; }
2127
+
2128
+ .body {
2129
+ flex: 1 1 auto;
2130
+ }
2131
+ :host([padded]) .body { padding: var(--fx-space-lg) var(--fx-space-xl); }
2132
+ :host([padded]) .body:empty { padding: 0; }
2133
+
2134
+ footer {
2135
+ padding: var(--fx-space-md) var(--fx-space-xl);
2136
+ border-top: 1px solid var(--fx-border-default);
2137
+ display: flex;
2138
+ justify-content: flex-end;
2139
+ gap: var(--fx-space-sm);
2140
+ }
2141
+ footer[hidden] { display: none; }
2142
+ `;let re=Qe;function _r(){return b("fx-card",re)}_r();const et=class et extends g{constructor(){super(...arguments),this._items=[]}static get observedAttributes(){return["size","separator","label"]}render(){const e=this.getAttr("label","Breadcrumb");this.setTemplate(`
2143
+ <nav part="nav" aria-label="${c(e)}"></nav>
2144
+ `),this._decorateItems()}_decorateItems(){var r;const e=(r=this.shadowRoot)==null?void 0:r.querySelector("nav");if(!e)return;const t=this.getAttr("separator","/");this._items.length===0&&(this._items=Array.from(this.children).filter(a=>a.matches('[slot="item"]'))),e.innerHTML="",this._items.forEach((a,i)=>{const o=i===this._items.length-1;if(a.setAttribute("aria-current",o?"page":"false"),e.appendChild(a),o)return;const s=document.createElement("span");s.className="sep",s.setAttribute("part","separator"),s.setAttribute("aria-hidden","true"),s.textContent=t,e.appendChild(s)})}connectedCallback(){super.connectedCallback();const e=new MutationObserver(()=>{this.children.length>0&&(e.disconnect(),this._decorateItems())});e.observe(this,{childList:!0}),this.children.length>0&&this._decorateItems()}disconnectedCallback(){super.disconnectedCallback(),this._items=[]}};et.styles=m`
2145
+ :host {
2146
+ display: block;
2147
+ font-family: var(--fx-font-family);
2148
+ font-size: var(--fx-font-size);
2149
+ }
2150
+ nav {
2151
+ display: flex;
2152
+ align-items: center;
2153
+ flex-wrap: wrap;
2154
+ gap: var(--fx-space-xs);
2155
+ }
2156
+ :host([size='sm']) nav { font-size: calc(var(--fx-font-size) - 2px); }
2157
+ :host([size='lg']) nav { font-size: calc(var(--fx-font-size) + 2px); }
2158
+
2159
+ /* itens (movidos para o nav no shadow DOM) */
2160
+ nav [slot='item'] {
2161
+ display: inline-flex;
2162
+ align-items: center;
2163
+ gap: var(--fx-space-xs);
2164
+ color: var(--fx-text-muted);
2165
+ text-decoration: none;
2166
+ cursor: pointer;
2167
+ transition: color var(--fx-motion-duration-fast) var(--fx-motion-easing);
2168
+ }
2169
+ nav [slot='item']:hover { color: var(--fx-color-primary); }
2170
+ nav [slot='item'][aria-current='page'] {
2171
+ color: var(--fx-text-default);
2172
+ font-weight: 600;
2173
+ cursor: default;
2174
+ }
2175
+ nav [slot='item'][aria-current='page']:hover { color: var(--fx-text-default); }
2176
+
2177
+ .sep {
2178
+ color: var(--fx-text-muted);
2179
+ user-select: none;
2180
+ display: inline-flex;
2181
+ align-items: center;
2182
+ }
2183
+ `;let ae=et;function mr(){return b("fx-breadcrumb",ae)}mr();const tt=class tt extends g{constructor(){super(...arguments),this._previouslyFocused=null,this._onReposition=()=>{if(!this.open)return;const e=this.root.querySelector(".popup");e&&!e.hidden&&this._position(e)},this._onEnter=()=>{this.open=!0},this._onLeave=()=>{this.open=!1},this._onClick=()=>{this.open=!this.open}}static get observedAttributes(){return["open","target","trigger","position","dismissible"]}get open(){return this.hasAttr("open")}set open(e){this.toggleAttr("open",e)}render(){if(this.setTemplate(`
2184
+ <div class="popup" part="popover" role="dialog" aria-modal="false" ${this.open?"":"hidden"}>
2185
+ <header part="header" hidden><slot name="header"></slot></header>
2186
+ <div class="body" part="content"><slot></slot></div>
2187
+ <footer part="footer" hidden><slot name="footer"></slot></footer>
2188
+ </div>
2189
+ `),!this.open)return;const e=this.root.querySelector(".popup");if(!e)return;const t=()=>{var i;this.open=!1,(i=this._cleanup)==null||i.call(this),this._cleanup=void 0,this._restoreFocus(),this.dispatchEvent(new CustomEvent("hide",{bubbles:!0,composed:!0}))},r=i=>{i.key==="Escape"&&(i.stopPropagation(),t())},a=i=>{if(!this.hasAttr("dismissible"))return;const o=i.composedPath(),s=this._anchor(),n=s?o.includes(s):!1;!o.includes(e)&&!n&&t()};document.addEventListener("keydown",r),document.addEventListener("pointerdown",a,!0),this._cleanup=()=>{document.removeEventListener("keydown",r),document.removeEventListener("pointerdown",a,!0)},this._syncSlots(),this._position(e),this._previouslyFocused=document.activeElement,requestAnimationFrame(()=>e.focus({preventScroll:!0})),this.dispatchEvent(new CustomEvent("show",{bubbles:!0,composed:!0}))}_anchor(){const e=this.getAttr("target");if(!e)return null;try{return document.querySelector(e)}catch(t){return null}}_syncSlots(){const e=this.root.querySelector('slot[name="header"]'),t=this.root.querySelector('slot[name="footer"]'),r=this.root.querySelector("header"),a=this.root.querySelector("footer"),i=!!e&&e.assignedNodes().length>0,o=!!t&&t.assignedNodes().length>0;r==null||r.toggleAttribute("hidden",!i),a==null||a.toggleAttribute("hidden",!o)}_position(e){const t=this._anchor();if(!t)return;e.hidden=!1;const r=t.getBoundingClientRect(),a=e.getBoundingClientRect(),i=8,o=8;let s;const n=this.getAttr("position","auto");n==="top"?s="top":n==="bottom"?s="bottom":s=r.bottom+i+a.height<=window.innerHeight-o?"bottom":"top",s==="top"&&r.top-i-a.height<o&&r.bottom+i+a.height<=window.innerHeight-o?s="bottom":s==="bottom"&&r.bottom+i+a.height>window.innerHeight-o&&r.top-i-a.height>=o&&(s="top");const l=Math.min(Math.max(o,r.left+r.width/2-a.width/2),window.innerWidth-a.width-o),h=s==="bottom"?r.bottom+i:r.top-i-a.height;e.dataset.side=s,e.style.left=`${Math.round(l)}px`,e.style.top=`${Math.round(Math.max(o,h))}px`;const _=Math.min(Math.max(r.left+r.width/2-l,16),a.width-16);e.style.setProperty("--fxpp-arrow-x",`${Math.round(_)}px`)}_restoreFocus(){var e;(e=this._previouslyFocused)!=null&&e.isConnected&&this._previouslyFocused.focus(),this._previouslyFocused=null}connectedCallback(){super.connectedCallback(),window.addEventListener("scroll",this._onReposition,!0),window.addEventListener("resize",this._onReposition),this._bindTrigger()}disconnectedCallback(){var e,t;super.disconnectedCallback(),window.removeEventListener("scroll",this._onReposition,!0),window.removeEventListener("resize",this._onReposition),(e=this._triggerCleanup)==null||e.call(this),this._triggerCleanup=void 0,(t=this._cleanup)==null||t.call(this),this._cleanup=void 0,this._restoreFocus()}_bindTrigger(){const e=this._anchor();if(!e)return;this.getAttr("trigger","click")==="hover"?(e.addEventListener("mouseenter",this._onEnter),e.addEventListener("mouseleave",this._onLeave),this._triggerCleanup=()=>{e.removeEventListener("mouseenter",this._onEnter),e.removeEventListener("mouseleave",this._onLeave)}):(e.addEventListener("pointerdown",this._onClick),this._triggerCleanup=()=>e.removeEventListener("pointerdown",this._onClick))}};tt.styles=m`
2190
+ :host { display: contents; }
2191
+ .popup {
2192
+ position: fixed;
2193
+ margin: 0;
2194
+ background: var(--fx-surface-background);
2195
+ border: 1px solid var(--fx-border-default);
2196
+ border-radius: var(--fx-radius-md);
2197
+ box-shadow: var(--fx-shadow-lg);
2198
+ padding: 0;
2199
+ min-width: 220px;
2200
+ max-width: min(380px, calc(100vw - 24px));
2201
+ font-family: var(--fx-font-family);
2202
+ font-size: var(--fx-font-size);
2203
+ color: var(--fx-text-default);
2204
+ z-index: var(--fx-z-modal, 1100);
2205
+ animation: fxpp-pop var(--fx-motion-duration-fast, 150ms) var(--fx-motion-easing, ease);
2206
+ overflow: hidden;
2207
+ }
2208
+ .popup[hidden] { display: none; }
2209
+ @keyframes fxpp-pop { from { opacity: 0; transform: scale(0.96); } to { opacity: 1; transform: scale(1); } }
2210
+ .popup::before, .popup::after {
2211
+ content: '';
2212
+ position: absolute;
2213
+ border: 7px solid transparent;
2214
+ }
2215
+ .popup[data-side='bottom']::before {
2216
+ top: -14px; left: var(--fxpp-arrow-x, 50%);
2217
+ border-bottom-color: var(--fx-border-default);
2218
+ }
2219
+ .popup[data-side='bottom']::after {
2220
+ top: -12px; left: var(--fxpp-arrow-x, 50%);
2221
+ border-bottom-color: var(--fx-surface-background);
2222
+ }
2223
+ .popup[data-side='top']::before {
2224
+ bottom: -14px; left: var(--fxpp-arrow-x, 50%);
2225
+ border-top-color: var(--fx-border-default);
2226
+ }
2227
+ .popup[data-side='top']::after {
2228
+ bottom: -12px; left: var(--fxpp-arrow-x, 50%);
2229
+ border-top-color: var(--fx-surface-background);
2230
+ }
2231
+ header {
2232
+ padding: var(--fx-space-md) var(--fx-space-lg);
2233
+ border-bottom: 1px solid var(--fx-border-default);
2234
+ font-weight: 600;
2235
+ font-size: calc(var(--fx-font-size) + 1px);
2236
+ color: var(--fx-text-default);
2237
+ }
2238
+ header[hidden] { display: none; }
2239
+ .body { padding: var(--fx-space-md) var(--fx-space-lg); }
2240
+ footer {
2241
+ padding: var(--fx-space-md) var(--fx-space-lg);
2242
+ border-top: 1px solid var(--fx-border-default);
2243
+ display: flex;
2244
+ justify-content: flex-end;
2245
+ gap: var(--fx-space-sm);
2246
+ }
2247
+ footer[hidden] { display: none; }
2248
+ `;let ie=tt;function gr(){return b("fx-popover",ie)}gr();const rt=class rt extends g{constructor(){super(...arguments),this._titles=[],this._panels=[]}static get observedAttributes(){return["active","linear","show-numbers"]}get stepCount(){return this._titles.length}get active(){const e=Number(this.getAttr("active","0"));return Math.min(this.stepCount-1,Math.max(0,Number.isFinite(e)?e:0))}set active(e){this.setAttribute("active",String(Math.min(this.stepCount-1,Math.max(0,e))))}get isLast(){return this.active>=this.stepCount-1}goTo(e){const t=Math.min(this.stepCount-1,Math.max(0,e));this.hasAttr("linear")&&t>this.active+1||(this.active=t,this.dispatchEvent(new CustomEvent("change",{bubbles:!0,composed:!0,detail:{index:this.active}})),this.isLast&&this.dispatchEvent(new CustomEvent("complete",{bubbles:!0,composed:!0})))}next(){this.goTo(this.active+1)}prev(){this.goTo(this.active-1)}render(){this._panels=Array.from(this.children).filter(a=>a.matches('[slot^="step-"]')),this._titles=this._panels.map((a,i)=>a.getAttribute("step-title")||`Paso ${i+1}`);const e=Math.min(this.active,Math.max(0,this._titles.length-1)),t=this._titles.map((a,i)=>{const o=i===e?"active":i<e?"done":"",s=i<e&&!this.hasAttr("show-numbers")?"✓":String(i+1);return`<span class="step ${o}" part="step" data-i="${i}"><span class="num">${s}</span>${c(a)}</span>`}).join(""),r=this._panels.map((a,i)=>`<section class="panel" part="panel" ${i===e?"":"hidden"}>${a.innerHTML}</section>`).join("");this.setTemplate(`
2249
+ <div class="steps" part="steps">${t}</div>
2250
+ <div class="panel-wrap">${r}</div>
2251
+ <div class="actions" part="actions">
2252
+ <button type="button" class="nav-btn prev" part="prev" ${e===0?"disabled":""}>Anterior</button>
2253
+ <button type="button" class="nav-btn primary next" part="next">${e===this._titles.length-1?"Concluir":"Próximo"}</button>
2254
+ </div>
2255
+ `),this._bindSteps()}_bindSteps(){var t,r;Array.from(this.root.querySelectorAll(".step")).forEach(a=>{const i=Number(a.dataset.i);a.addEventListener("click",()=>{this.hasAttr("linear")&&i>this.active+1||this.goTo(i)}),a.addEventListener("keydown",o=>{o.key==="Enter"&&(o.preventDefault(),this.goTo(i))})}),(t=this.root.querySelector(".nav-btn.prev"))==null||t.addEventListener("click",()=>this.prev()),(r=this.root.querySelector(".nav-btn.next"))==null||r.addEventListener("click",()=>this.next())}connectedCallback(){super.connectedCallback(),this._titles.length===0&&this.render()}};rt.styles=m`
2256
+ :host { display: block; font-family: var(--fx-font-family); font-size: var(--fx-font-size); }
2257
+ :host([linear]) .step-num.activated { cursor: not-allowed; }
2258
+
2259
+ .steps {
2260
+ display: flex;
2261
+ align-items: center;
2262
+ gap: var(--fx-space-md);
2263
+ flex-wrap: wrap;
2264
+ padding: var(--fx-space-md) var(--fx-space-lg);
2265
+ }
2266
+ .step {
2267
+ display: inline-flex;
2268
+ align-items: center;
2269
+ gap: var(--fx-space-sm);
2270
+ padding: var(--fx-space-xs) var(--fx-space-md);
2271
+ border-radius: var(--fx-radius-full);
2272
+ color: var(--fx-text-muted);
2273
+ font-weight: 600;
2274
+ user-select: none;
2275
+ cursor: pointer;
2276
+ transition: background var(--fx-motion-duration-fast) var(--fx-motion-easing), color var(--fx-motion-duration-fast) var(--fx-motion-easing);
2277
+ }
2278
+ .step.active { background: var(--fx-color-primary); color: #fff; }
2279
+ .step.done { color: var(--fx-color-primary); }
2280
+ .step[hidden] { display: none; }
2281
+ .num {
2282
+ display: inline-flex; align-items: center; justify-content: center;
2283
+ width: 24px; height: 24px; min-width: 24px;
2284
+ border: 1.5px solid currentColor;
2285
+ border-radius: var(--fx-radius-full);
2286
+ font-size: calc(var(--fx-font-size) - 2px);
2287
+ line-height: 1;
2288
+ }
2289
+
2290
+ .panel { padding: var(--fx-space-lg) var(--fx-space-xl); min-height: 80px; }
2291
+ .actions {
2292
+ display: flex;
2293
+ justify-content: space-between;
2294
+ gap: var(--fx-space-sm);
2295
+ padding: var(--fx-space-md) var(--fx-space-lg);
2296
+ border-top: 1px solid var(--fx-border-default);
2297
+ }
2298
+ .nav-btn {
2299
+ font-family: var(--fx-font-family);
2300
+ font-size: calc(var(--fx-font-size) - 2px);
2301
+ padding: var(--fx-space-xs) var(--fx-space-lg);
2302
+ min-height: var(--fx-size-sm);
2303
+ border-radius: var(--fx-radius-sm);
2304
+ border: 1px solid var(--fx-border-default);
2305
+ background: var(--fx-surface-background);
2306
+ color: var(--fx-text-default);
2307
+ cursor: pointer;
2308
+ transition: background var(--fx-motion-duration-fast) var(--fx-motion-easing);
2309
+ }
2310
+ .nav-btn:hover:not(:disabled) { background: var(--fx-surface-surface-hover, rgba(0, 0, 0, 0.04)); }
2311
+ .nav-btn:disabled { opacity: 0.5; cursor: not-allowed; }
2312
+ .nav-btn.primary {
2313
+ background: var(--fx-color-primary);
2314
+ border-color: var(--fx-color-primary);
2315
+ color: #fff;
2316
+ }
2317
+ .nav-btn.primary:hover:not(:disabled) { filter: brightness(0.92); background: var(--fx-color-primary); }
2318
+ `;let oe=rt;function br(){return b("fx-stepper",oe)}br();const at=class at extends g{static get observedAttributes(){return["value","max","readonly","disabled","allow-half","size"]}get value(){const e=Number(this.getAttr("value","0"));return Number.isFinite(e)?Math.min(this.max,Math.max(0,e)):0}set value(e){this.setAttribute("value",String(Math.min(this.max,Math.max(0,e)))),this._syncVisual()}get max(){const e=Number(this.getAttr("max","5")),t=Number.isFinite(e)?Math.round(e):5;return Math.min(10,Math.max(1,t))}set max(e){this.setAttribute("max",String(e))}render(){const e=this.max,t=Array.from({length:e},(r,a)=>a+1).map(r=>`<span class="star" data-n="${r}" part="star" title="${r} ${this._label(r)}">★</span>`).join("");this.setTemplate(`
2319
+ <span class="stars" part="stars" role="radiogroup">
2320
+ ${t}
2321
+ </span>
2322
+ `),this._bindStars(),this._syncVisual()}_starNodes(){return Array.from(this.root.querySelectorAll(".star"))}_label(e){return e===1?"estrella":"estrellas"}_syncVisual(){const e=this.value;this._starNodes().forEach(t=>{const r=Number(t.dataset.n);t.classList.toggle("filled",e>=r)})}_bindStars(){this._starNodes().forEach(t=>{const r=Number(t.dataset.n);t.addEventListener("click",()=>{if(this.hasAttr("readonly")||this.hasAttr("disabled"))return;let a=r;this.hasAttr("allow-half")&&(a+=-.5),this.value=a,this.dispatchEvent(new CustomEvent("change",{bubbles:!0,composed:!0,detail:{value:this.value}}))}),t.addEventListener("mouseenter",()=>{this.hasAttr("readonly")||this.hasAttr("disabled")||this._hover(r)}),t.addEventListener("mouseleave",()=>this._syncVisual())})}_hover(e){this._starNodes().forEach(t=>{const r=Number(t.dataset.n);t.classList.toggle("hovered",r<=e)})}};at.styles=m`
2323
+ :host {
2324
+ display: inline-flex;
2325
+ font-family: var(--fx-font-family);
2326
+ font-size: var(--fx-font-size);
2327
+ --_star: calc(var(--fx-font-size) + 8px);
2328
+ }
2329
+ :host([size='sm']) { --_star: calc(var(--fx-font-size) + 4px); }
2330
+ :host([size='lg']) { --_star: calc(var(--fx-font-size) + 14px); }
2331
+ :host([disabled]) { opacity: 0.55; }
2332
+ :host([disabled]) .stars { pointer-events: none; }
2333
+ :host([readonly]) .stars { pointer-events: none; }
2334
+
2335
+ .stars {
2336
+ display: inline-flex;
2337
+ align-items: center;
2338
+ gap: 2px;
2339
+ cursor: pointer;
2340
+ }
2341
+ .star {
2342
+ position: relative;
2343
+ display: inline-flex;
2344
+ width: var(--_star);
2345
+ height: var(--_star);
2346
+ font-size: var(--_star);
2347
+ line-height: 1;
2348
+ color: var(--fx-text-muted);
2349
+ cursor: pointer;
2350
+ user-select: none;
2351
+ transition: transform var(--fx-motion-duration-fast) var(--fx-motion-easing), color var(--fx-motion-duration-fast) var(--fx-motion-easing);
2352
+ }
2353
+ .star:hover { transform: scale(1.1); }
2354
+ .star[hidden] { display: none; }
2355
+ .star.filled { color: var(--fx-color-warning); }
2356
+ .star.hovered { color: var(--fx-color-warning); }
2357
+ `;let se=at;function vr(){return b("fx-rating",se)}vr();const it=class it extends g{constructor(){super(...arguments),this._onOutside=e=>{const t=e.composedPath();this.root.querySelectorAll(".dropdown.open").forEach(r=>{t.includes(r)||r.classList.remove("open")})}}static get observedAttributes(){return["orientation","size","dense","titles"]}get orientation(){return this.getAttr("orientation","horizontal")}get items(){return Array.from(this.children).filter(e=>e.matches('[slot="item"]')).map(e=>e)}render(){const e=this.getAttr("titles"),t=e?e.split(",").map(i=>i.trim()):[],a=this.items.map((i,o)=>{var _;const s=t[o]||((_=i.textContent)==null?void 0:_.trim())||`Item ${o+1}`,n=i.matches("[submenu]"),l=i.hasAttribute("disabled"),h=`
2358
+ <span class="item" part="item" data-i="${o}" ${l?'aria-disabled="true"':""}>
2359
+ ${c(s)}${n?'<span class="caret">▾</span>':""}
2360
+ </span>`;return n?`
2361
+ <span class="submenu-wrap" part="submenu-wrap">
2362
+ ${h}
2363
+ <div class="dropdown" part="submenu"><slot name="submenu-${o}"></slot></div>
2364
+ </span>`:h}).join("");this.setTemplate(`
2365
+ <nav part="menu" aria-label="Menu">
2366
+ ${a}
2367
+ </nav>
2368
+ `),this._bindItems()}_bindItems(){Array.from(this.root.querySelectorAll(".item")).forEach(t=>{const r=Number(t.dataset.i);t.addEventListener("click",()=>{var o,s,n,l;if(t.getAttribute("aria-disabled")==="true")return;const a=this.items[r];if(a==null?void 0:a.hasAttribute("submenu")){this.root.querySelectorAll(".dropdown.open").forEach(h=>{var _;h!==((_=t.parentElement)==null?void 0:_.querySelector(".dropdown"))&&h.classList.remove("open")}),(s=(o=t.parentElement)==null?void 0:o.querySelector(".dropdown"))==null||s.classList.toggle("open");return}this._setActive(t),this.dispatchEvent(new CustomEvent("select",{bubbles:!0,composed:!0,detail:{index:r,label:(l=(n=t.textContent)==null?void 0:n.trim())!=null?l:""}}))}),t.addEventListener("keydown",a=>{const i=a;(i.key==="Enter"||i.key===" ")&&(i.preventDefault(),t.click())})})}connectedCallback(){super.connectedCallback(),document.addEventListener("pointerdown",this._onOutside)}disconnectedCallback(){super.disconnectedCallback(),document.removeEventListener("pointerdown",this._onOutside)}_setActive(e){Array.from(this.root.querySelectorAll(".item")).forEach(t=>{t.classList.toggle("active",t===e)})}};it.styles=m`
2369
+ :host { display: block; font-family: var(--fx-font-family); font-size: var(--fx-font-size); }
2370
+ :host([orientation='vertical']) { border: 1px solid var(--fx-border-default); border-radius: var(--fx-radius-md); }
2371
+ nav {
2372
+ display: flex;
2373
+ align-items: center;
2374
+ gap: var(--fx-space-xs);
2375
+ flex-wrap: wrap;
2376
+ background: var(--fx-surface-background);
2377
+ }
2378
+ :host([orientation='vertical']) nav { flex-direction: column; align-items: stretch; }
2379
+ .item {
2380
+ display: inline-flex;
2381
+ align-items: center;
2382
+ gap: var(--fx-space-xs);
2383
+ padding: var(--fx-space-sm) var(--fx-space-md);
2384
+ min-height: var(--fx-size-sm);
2385
+ border-radius: var(--fx-radius-sm);
2386
+ color: var(--fx-text-default);
2387
+ cursor: pointer;
2388
+ user-select: none;
2389
+ white-space: nowrap;
2390
+ transition: background var(--fx-motion-duration-fast) var(--fx-motion-easing), color var(--fx-motion-duration-fast) var(--fx-motion-easing);
2391
+ }
2392
+ :host([size='sm']) .item { min-height: var(--fx-size-sm); padding: var(--fx-space-xs) var(--fx-space-sm); font-size: calc(var(--fx-font-size) - 2px); }
2393
+ :host([size='lg']) .item { min-height: var(--fx-size-lg); padding: var(--fx-space-md) var(--fx-space-lg); font-size: calc(var(--fx-font-size) + 1px); }
2394
+ .item:hover { background: var(--fx-surface-surface-hover, rgba(0,0,0,0.06)); }
2395
+ .item.active { background: var(--fx-color-primary); color: #fff; font-weight: 600; }
2396
+ .item[aria-disabled='true'] { opacity: 0.5; cursor: not-allowed; }
2397
+ .item[aria-disabled='true']:hover { background: none; }
2398
+ .item .caret { font-size: calc(var(--fx-font-size) - 2px); color: var(--fx-text-muted); }
2399
+
2400
+ /* submenú ancorado ao item */
2401
+ .submenu-wrap { position: relative; display: inline-flex; }
2402
+ :host([orientation='vertical']) .submenu-wrap { width: 100%; }
2403
+ .dropdown {
2404
+ position: absolute;
2405
+ left: 0;
2406
+ top: calc(100% + 4px);
2407
+ min-width: 180px;
2408
+ background: var(--fx-surface-background);
2409
+ border: 1px solid var(--fx-border-default);
2410
+ border-radius: var(--fx-radius-sm);
2411
+ box-shadow: var(--fx-shadow-lg);
2412
+ padding: var(--fx-space-xs);
2413
+ z-index: var(--fx-z-dropdown, 1060);
2414
+ display: none;
2415
+ flex-direction: column;
2416
+ }
2417
+ .dropdown.open { display: flex; }
2418
+ :host([orientation='vertical']) .dropdown { left: 100%; top: 0; }
2419
+ `;let ne=it;function xr(){return b("fx-menu",ne)}xr();const ot=class ot extends g{static get observedAttributes(){return["multiple","size"]}get value(){const e=this.getAttr("value");return e?e.split(",").map(t=>t.trim()).filter(Boolean):[]}set value(e){this.setAttribute("value",e.join(","))}get multiple(){return this.hasAttr("multiple")}get options(){return Array.from(this.children).filter(e=>e.matches('[slot="option"]')).map(e=>e)}render(){const e=this.options,t=this.value,r=e.map((a,i)=>{var n,l;const o=(n=a.getAttribute("value"))!=null?n:"",s=t.includes(o);return`<button type="button" class="option ${s?"active":""}" part="option" data-v="${c(o)}" aria-pressed="${s}">${c(((l=a.textContent)==null?void 0:l.trim())||`Opción ${i+1}`)}</button>`}).join("");this.setTemplate(`
2420
+ <div class="options" part="options" role="group" aria-label="Toggle buttons">
2421
+ ${r}
2422
+ </div>
2423
+ `),this._bindOptions()}_bindOptions(){Array.from(this.root.querySelectorAll(".option")||[]).forEach(e=>{e.addEventListener("click",()=>this._toggle(e)),e.addEventListener("keydown",t=>{const r=t;(r.key==="Enter"||r.key===" ")&&(r.preventDefault(),this._toggle(e))})})}_toggle(e){var a;const t=(a=e.dataset.v)!=null?a:"";let r=this.value;this.multiple?r.includes(t)?r=r.filter(i=>i!==t):r.push(t):r=r.includes(t)?[]:[t],this.value=r,this.root.querySelectorAll(".option").forEach(i=>{var s;const o=r.includes((s=i.dataset.v)!=null?s:"");i.classList.toggle("active",o),i.setAttribute("aria-pressed",String(o))}),this.dispatchEvent(new CustomEvent("change",{bubbles:!0,composed:!0,detail:{value:r}}))}};ot.styles=m`
2424
+ :host { display: inline-flex; font-family: var(--fx-font-family); font-size: var(--fx-font-size); gap: var(--fx-space-xs); }
2425
+ .option {
2426
+ display: inline-flex;
2427
+ align-items: center;
2428
+ justify-content: center;
2429
+ gap: var(--fx-space-xs);
2430
+ min-height: var(--fx-size-md);
2431
+ padding: var(--fx-space-sm) var(--fx-space-lg);
2432
+ font-weight: var(--fx-font-weight);
2433
+ color: var(--fx-text-default);
2434
+ background: var(--fx-surface-background);
2435
+ border: 1px solid var(--fx-border-default);
2436
+ border-radius: var(--fx-radius-md);
2437
+ cursor: pointer;
2438
+ user-select: none;
2439
+ transition: background var(--fx-motion-duration-fast) var(--fx-motion-easing), border-color var(--fx-motion-duration-fast) var(--fx-motion-easing), color var(--fx-motion-duration-fast) var(--fx-motion-easing);
2440
+ }
2441
+ :host([size='sm']) .option { min-height: var(--fx-size-sm); padding: var(--fx-space-xs) var(--fx-space-md); font-size: calc(var(--fx-font-size) - 2px); }
2442
+ :host([size='lg']) .option { min-height: var(--fx-size-lg); padding: var(--fx-space-md) var(--fx-space-xl); font-size: calc(var(--fx-font-size) + 2px); }
2443
+ .option:hover { border-color: var(--fx-color-primary); }
2444
+ .option.active {
2445
+ background: var(--fx-color-primary);
2446
+ border-color: var(--fx-color-primary);
2447
+ color: #fff;
2448
+ }
2449
+ .option.active:hover { filter: brightness(0.92); }
2450
+ `;let le=ot;function yr(){return b("fx-toggle-button-group",le)}yr();const st=class st extends g{static get observedAttributes(){return["icon","heading","description"]}render(){const e=this.getAttr("icon","📭"),t=this.getAttr("heading"),r=this.getAttr("description");this.setTemplate(`
2451
+ <div class="wrap" part="wrap">
2452
+ <span class="icon" part="icon" aria-hidden="true">${c(e)}</span>
2453
+ <h4 part="heading" ${t?"":"hidden"}>${c(t)}</h4>
2454
+ <p part="description" ${r?"":"hidden"}>${c(r)}</p>
2455
+ <slot name="icon"></slot>
2456
+ <span class="action"><slot name="action"></slot></span>
2457
+ </div>
2458
+ `)}};st.styles=m`
2459
+ :host {
2460
+ display: flex;
2461
+ justify-content: center;
2462
+ font-family: var(--fx-font-family);
2463
+ font-size: var(--fx-font-size);
2464
+ }
2465
+ .wrap {
2466
+ display: flex;
2467
+ flex-direction: column;
2468
+ align-items: center;
2469
+ gap: var(--fx-space-sm);
2470
+ padding: var(--fx-space-2xl, 48px) var(--fx-space-xl);
2471
+ text-align: center;
2472
+ max-width: 420px;
2473
+ }
2474
+ .icon {
2475
+ font-size: calc(var(--fx-font-size) + 28px);
2476
+ line-height: 1;
2477
+ color: var(--fx-text-muted);
2478
+ }
2479
+ .icon[hidden] { display: none; }
2480
+ h4 {
2481
+ margin: 0;
2482
+ font-size: calc(var(--fx-font-size) + 3px);
2483
+ font-weight: 600;
2484
+ color: var(--fx-text-default);
2485
+ }
2486
+ h4[hidden] { display: none; }
2487
+ p {
2488
+ margin: 0;
2489
+ font-size: calc(var(--fx-font-size) - 1px);
2490
+ color: var(--fx-text-muted);
2491
+ line-height: 1.5;
2492
+ }
2493
+ p[hidden] { display: none; }
2494
+ .action { margin-top: var(--fx-space-sm); }
2495
+ .action:empty { display: none; }
2496
+ `;let ce=st;function wr(){return b("fx-empty-state",ce)}wr();const nt=class nt extends g{constructor(){super(...arguments),this._prevScore=-1}static get observedAttributes(){return["value","label","size"]}get value(){return this.getAttr("value")}set value(e){this.setAttribute("value",e)}_score(){const e=this.value;if(!e)return 0;let t=0;return e.length>=6&&t++,e.length>=10&&t++,/[A-Z]/.test(e)&&/[a-z]/.test(e)&&t++,/\d/.test(e)&&/[^A-Za-z0-9]/.test(e)&&t++,Math.min(4,t)}_labelFor(e){return["Muito fraca","Fraca","Razoável","Forte","Muito forte"][e]}render(){this._paint()}_paint(){const e=this._score(),t=this.getAttr("label","Força da senha");this.setTemplate(`
2497
+ <div class="label" part="label">
2498
+ <span>${t}</span>
2499
+ <strong>${e>0?this._labelFor(e):""}</strong>
2500
+ </div>
2501
+ <div class="bars" part="bars" role="progressbar" aria-valuemin="0" aria-valuemax="4" aria-valuenow="${e}">
2502
+ ${Array.from({length:4},(r,a)=>`<span class="bar ${a<e?"on":""}" part="bar"></span>`).join("")}
2503
+ </div>
2504
+ `),this.dataset.score=String(e)}attributeChangedCallback(){if(this.isConnected){const e=this._prevScore;this._paint();const t=this._score();t!==e&&(this.dispatchEvent(new CustomEvent("change",{bubbles:!0,composed:!0,detail:{score:t,value:this.value}})),this._prevScore=t)}}};nt.styles=m`
2505
+ :host {
2506
+ display: block;
2507
+ font-family: var(--fx-font-family);
2508
+ font-size: var(--fx-font-size);
2509
+ }
2510
+ .label {
2511
+ font-size: calc(var(--fx-font-size) - 2px);
2512
+ color: var(--fx-text-muted);
2513
+ margin-bottom: var(--fx-space-xs);
2514
+ display: flex;
2515
+ justify-content: space-between;
2516
+ gap: var(--fx-space-md);
2517
+ }
2518
+ .label strong { color: var(--_color); }
2519
+ .bars {
2520
+ display: flex;
2521
+ gap: 4px;
2522
+ --_color: var(--fx-text-muted);
2523
+ }
2524
+ .bar {
2525
+ flex: 1;
2526
+ height: 6px;
2527
+ border-radius: var(--fx-radius-full);
2528
+ background: var(--fx-surface-surface-hover, rgba(0, 0, 0, 0.08));
2529
+ transition: background var(--fx-motion-duration-normal) var(--fx-motion-easing);
2530
+ }
2531
+ .bar.on { background: var(--_color); }
2532
+ :host([size='sm']) .bar { height: 4px; }
2533
+ :host([size='lg']) .bar { height: 8px; }
2534
+ /* cores por nível via data-score no host */
2535
+ :host([data-score='1']) { --_color: var(--fx-color-danger); }
2536
+ :host([data-score='2']) { --_color: var(--fx-color-warning); }
2537
+ :host([data-score='3']) { --_color: var(--fx-color-info); }
2538
+ :host([data-score='4']) { --_color: var(--fx-color-success); }
2539
+ `;let de=nt;function kr(){return b("fx-password-strength",de)}kr();const lt=class lt extends g{static get observedAttributes(){return["marker","size","orientation"]}render(){this.setTemplate('<ol class="tl" part="timeline"></ol>'),this._decorate()}_decorate(){var a;const e=(a=this.shadowRoot)==null?void 0:a.querySelector("ol");if(!e)return;const t=this.getAttr("marker","●"),r=Array.from(this.querySelectorAll('[slot="item"]'));r.length&&(e.innerHTML=r.map(i=>{var l,h;const o=(l=i.getAttribute("time"))!=null?l:"",s=(h=i.getAttribute("title"))!=null?h:"",n=[o?`<span class="time">${c(o)}</span>`:"",s?`<span class="title">${c(s)}</span>`:""].join("");return`<li class="event" part="event"><span class="dot" part="marker" aria-hidden="true">${c(t)}</span><div class="head">${n}</div><div class="content">${i.innerHTML}</div></li>`}).join(""))}connectedCallback(){super.connectedCallback(),this._observer=new MutationObserver(()=>this._decorate()),this._observer.observe(this,{childList:!0,subtree:!1}),this._decorate()}disconnectedCallback(){var e;super.disconnectedCallback(),(e=this._observer)==null||e.disconnect(),this._observer=void 0}};lt.styles=m`
2540
+ :host {
2541
+ display: block;
2542
+ font-family: var(--fx-font-family);
2543
+ font-size: var(--fx-font-size);
2544
+ --_marker: calc(var(--fx-font-size) - 1px);
2545
+ }
2546
+ :host([size='sm']) { --_marker: calc(var(--fx-font-size) - 3px); }
2547
+ :host([size='lg']) { --_marker: calc(var(--fx-font-size) + 2px); }
2548
+
2549
+ .tl {
2550
+ list-style: none;
2551
+ margin: 0;
2552
+ padding: 0;
2553
+ position: relative;
2554
+ }
2555
+ /* linha vertical centralizada no eixo dos marcadores */
2556
+ .tl::before {
2557
+ content: '';
2558
+ position: absolute;
2559
+ left: calc(var(--_marker) / 2 - 1px);
2560
+ top: calc(var(--_marker) / 2);
2561
+ bottom: 6px;
2562
+ width: 2px;
2563
+ background: var(--fx-border-default);
2564
+ }
2565
+ .event {
2566
+ position: relative;
2567
+ padding: 0 0 var(--fx-space-lg) calc(var(--_marker) + var(--fx-space-lg));
2568
+ }
2569
+ .event:last-child { padding-bottom: 0; }
2570
+ /* marcador circular centralizado no eixo da linha */
2571
+ .dot {
2572
+ position: absolute;
2573
+ left: 0;
2574
+ top: 0;
2575
+ width: var(--_marker);
2576
+ height: var(--_marker);
2577
+ display: inline-flex;
2578
+ align-items: center;
2579
+ justify-content: center;
2580
+ font-size: calc(var(--_marker) * 0.55);
2581
+ color: var(--fx-color-primary);
2582
+ line-height: 1;
2583
+ }
2584
+ .head {
2585
+ display: flex;
2586
+ align-items: baseline;
2587
+ gap: var(--fx-space-sm);
2588
+ flex-wrap: wrap;
2589
+ min-height: var(--_marker);
2590
+ }
2591
+ .time {
2592
+ font-size: calc(var(--fx-font-size) - 2px);
2593
+ color: var(--fx-text-muted);
2594
+ white-space: nowrap;
2595
+ }
2596
+ .title {
2597
+ font-weight: 600;
2598
+ color: var(--fx-text-default);
2599
+ }
2600
+ .content {
2601
+ margin-top: 2px;
2602
+ color: var(--fx-text-default);
2603
+ line-height: 1.5;
2604
+ }
2605
+ .event[hidden] { display: none; }
2606
+
2607
+ /* ---- modo horizontal ---- */
2608
+ :host([orientation='horizontal']) .tl {
2609
+ display: flex;
2610
+ }
2611
+ :host([orientation='horizontal']) .tl::before {
2612
+ left: calc(var(--_marker) / 2 - 1px);
2613
+ right: calc(var(--_marker) / 2);
2614
+ top: calc(var(--_marker) / 2 - 1px);
2615
+ bottom: auto;
2616
+ width: auto;
2617
+ height: 2px;
2618
+ }
2619
+ :host([orientation='horizontal']) .event {
2620
+ flex: 1;
2621
+ display: flex;
2622
+ flex-direction: column;
2623
+ padding: 0 var(--fx-space-lg) 0 0;
2624
+ }
2625
+ :host([orientation='horizontal']) .event:last-child { padding-right: 0; }
2626
+ :host([orientation='horizontal']) .event .dot {
2627
+ position: static;
2628
+ margin-bottom: var(--fx-space-sm);
2629
+ }
2630
+ `;let pe=lt;function Ar(){return b("fx-timeline",pe)}Ar();const ct=class ct extends g{constructor(){super(...arguments),this._slides=[]}static get observedAttributes(){return["active","autoplay","loop","show-arrows","show-indicators"]}get active(){const e=Number(this.getAttr("active","0"));return Math.min(this.slideCount-1,Math.max(0,Number.isFinite(e)?e:0))}set active(e){this.setAttribute("active",String(Math.min(this.slideCount-1,Math.max(0,e))))}get slideCount(){return this._slides.length}render(){this._slides=Array.from(this.children).filter(t=>t.matches('[slot="slide"]'));const e=this._slides.map((t,r)=>`<div class="slide" part="slide" data-i="${r}" ${r===this.active?"":"hidden"}>${t.innerHTML}</div>`).join("");this.setTemplate(`
2631
+ <div class="viewport" part="viewport">
2632
+ ${e}
2633
+ <button type="button" class="arrow prev" part="arrow" aria-label="Anterior" ${this.hasAttr("show-arrows")?"":"hidden"}>‹</button>
2634
+ <button type="button" class="arrow next" part="arrow" aria-label="Próximo" ${this.hasAttr("show-arrows")?"":"hidden"}>›</button>
2635
+ </div>
2636
+ <div class="indicators" part="indicators" ${this.hasAttr("show-indicators")?"":"hidden"}>
2637
+ ${this._slides.map((t,r)=>`<button type="button" class="dot ${r===this.active?"on":""}" data-i="${r}" aria-label="Slide ${r+1}"></button>`).join("")}
2638
+ </div>
2639
+ `),this._bind(),this._restartAutoplay()}attributeChangedCallback(e,t,r){if(!(!this.isConnected||t===r)){if(e==="active"&&this._slides.length){this._go(this.active,!1),this._restartAutoplay();return}this.render()}}_go(e,t=!0){const r=this._slides.length;if(!r)return;let a;this.hasAttr("loop")?a=(e%r+r)%r:a=Math.min(r-1,Math.max(0,e)),String(a)!==this.getAttribute("active")&&(this.active=a,this.root.querySelectorAll(".slide").forEach(i=>{i.toggleAttribute("hidden",Number(i.dataset.i)!==a)}),this.root.querySelectorAll(".dot").forEach(i=>{i.classList.toggle("on",Number(i.dataset.i)===a)}),t&&this.dispatchEvent(new CustomEvent("change",{bubbles:!0,composed:!0,detail:{index:a}})))}next(){this._go(this.active+1)}prev(){this._go(this.active-1)}_bind(){var e,t;(e=this.root.querySelector(".arrow.prev"))==null||e.addEventListener("click",()=>this.prev()),(t=this.root.querySelector(".arrow.next"))==null||t.addEventListener("click",()=>this.next()),this.root.querySelectorAll(".dot").forEach(r=>{r.addEventListener("click",()=>this._go(Number(r.dataset.i)))})}_restartAutoplay(){this._timer&&(clearInterval(this._timer),this._timer=void 0);const e=Number(this.getAttr("autoplay","0"));e>0&&(this._timer=setInterval(()=>this._go(this.active+1),e))}disconnectedCallback(){super.disconnectedCallback(),this._timer&&(clearInterval(this._timer),this._timer=void 0)}};ct.styles=m`
2640
+ :host {
2641
+ display: block;
2642
+ font-family: var(--fx-font-family);
2643
+ font-size: var(--fx-font-size);
2644
+ }
2645
+ .viewport {
2646
+ position: relative;
2647
+ overflow: hidden;
2648
+ border-radius: var(--fx-radius-lg);
2649
+ border: 1px solid var(--fx-border-default);
2650
+ background: var(--fx-surface-surface-hover, rgba(0, 0, 0, 0.04));
2651
+ }
2652
+ .slide {
2653
+ min-height: 200px;
2654
+ display: flex;
2655
+ align-items: center;
2656
+ justify-content: center;
2657
+ padding: var(--fx-space-xl);
2658
+ box-sizing: border-box;
2659
+ color: var(--fx-text-default);
2660
+ }
2661
+ .slide[hidden] { display: none; }
2662
+ .arrow {
2663
+ position: absolute;
2664
+ top: 50%;
2665
+ transform: translateY(-50%);
2666
+ width: 34px;
2667
+ height: 34px;
2668
+ border: 1px solid var(--fx-border-default);
2669
+ border-radius: var(--fx-radius-full);
2670
+ background: color-mix(in srgb, var(--fx-surface-background, #fff) 82%, transparent);
2671
+ color: var(--fx-text-default);
2672
+ font-size: calc(var(--fx-font-size) + 4px);
2673
+ cursor: pointer;
2674
+ display: inline-flex;
2675
+ align-items: center;
2676
+ justify-content: center;
2677
+ backdrop-filter: blur(2px);
2678
+ transition: background var(--fx-motion-duration-fast) var(--fx-motion-easing), border-color var(--fx-motion-duration-fast) var(--fx-motion-easing), color var(--fx-motion-duration-fast) var(--fx-motion-easing), transform var(--fx-motion-duration-fast) var(--fx-motion-easing);
2679
+ }
2680
+ .arrow:hover {
2681
+ background: var(--fx-color-primary);
2682
+ border-color: var(--fx-color-primary);
2683
+ color: #fff;
2684
+ transform: translateY(-50%) scale(1.08);
2685
+ }
2686
+ .arrow[hidden] { display: none; }
2687
+ .arrow.prev { left: var(--fx-space-md); }
2688
+ .arrow.next { right: var(--fx-space-md); }
2689
+ .indicators {
2690
+ display: flex;
2691
+ justify-content: center;
2692
+ gap: 6px;
2693
+ padding: var(--fx-space-md) 0 var(--fx-space-xs);
2694
+ }
2695
+ .indicators[hidden] { display: none; }
2696
+ .dot {
2697
+ width: 8px;
2698
+ height: 8px;
2699
+ border-radius: var(--fx-radius-full);
2700
+ border: none;
2701
+ padding: 0;
2702
+ background: var(--fx-surface-surface-hover, rgba(0, 0, 0, 0.15));
2703
+ cursor: pointer;
2704
+ transition: background var(--fx-motion-duration-fast) var(--fx-motion-easing), width var(--fx-motion-duration-fast) var(--fx-motion-easing);
2705
+ }
2706
+ .dot.on { background: var(--fx-color-primary); width: 20px; }
2707
+ `;let he=ct;function zr(){return b("fx-carousel",he)}zr();const dt=class dt extends g{constructor(){super(...arguments),this._expanded=new Set,this._selected=null}static get observedAttributes(){return["data","expand-all","size"]}render(){this.setTemplate(`<ul part="tree">${this._renderNodes(this.data,"")}</ul>`),this._bind()}_path(e,t){return t?`${t}.${e}`:`${e}`}_renderNodes(e,t){const r=this.hasAttr("expand-all");return e.map((a,i)=>{const o=this._path(i,t),s=Array.isArray(a.children)&&a.children.length>0,n=r||this._expanded.has(o),l=this._selected===o?" selected":"",h=s?`<ul class="children" ${n?"":"hidden"}>${this._renderNodes(a.children,o)}</ul>`:"";return`<li><span class="row${l}" data-path="${o}" role="treeitem" tabindex="0"><span class="caret ${s?n?"open":"":"leaf"}" data-toggle="${s?o:""}">▸</span>${a.icon?`<span class="icon">${c(a.icon)}</span>`:""}<span class="label">${c(a.label)}</span></span>${h}</li>`}).join("")}get data(){try{const e=JSON.parse(this.getAttr("data","[]"));return Array.isArray(e)?e:[]}catch(e){return[]}}set data(e){this.setAttribute("data",JSON.stringify(e))}_bind(){this.root.querySelectorAll(".caret[data-toggle]").forEach(e=>{const t=e.dataset.toggle;t&&e.addEventListener("click",r=>{r.stopPropagation(),this._toggle(t,e)})}),this.root.querySelectorAll(".row").forEach(e=>{var r;const t=(r=e.dataset.path)!=null?r:"";e.addEventListener("click",()=>{this._selected=t,this.root.querySelectorAll(".row").forEach(a=>a.classList.toggle("selected",a===e)),this.dispatchEvent(new CustomEvent("select",{bubbles:!0,composed:!0,detail:{node:this._findNode(t)}}))}),e.addEventListener("keydown",a=>{a.key==="Enter"&&e.click()})})}_toggle(e,t){var i;this._expanded.has(e)?this._expanded.delete(e):this._expanded.add(e);const r=this._expanded.has(e);t.classList.toggle("open",r);const a=t.closest("li");(i=a==null?void 0:a.querySelector(":scope > ul.children"))==null||i.toggleAttribute("hidden",!r)}_findNode(e){var a;let t=this.data,r;for(const i of e.split(".")){if(r=t[Number(i)],!r)return;t=(a=r.children)!=null?a:[]}return r}setAllExpanded(e){e?this.setAttribute("expand-all",""):(this.removeAttribute("expand-all"),this._expanded.clear()),this.render()}};dt.styles=m`
2708
+ :host {
2709
+ display: block;
2710
+ font-family: var(--fx-font-family);
2711
+ font-size: var(--fx-font-size);
2712
+ }
2713
+ ul { list-style: none; margin: 0; padding: 0; }
2714
+ ul ul { padding-left: var(--fx-space-xl); }
2715
+ li { margin: 2px 0; }
2716
+ .row {
2717
+ display: inline-flex;
2718
+ align-items: center;
2719
+ gap: var(--fx-space-xs);
2720
+ padding: var(--fx-space-xs) var(--fx-space-sm);
2721
+ border-radius: var(--fx-radius-sm);
2722
+ color: var(--fx-text-default);
2723
+ cursor: pointer;
2724
+ user-select: none;
2725
+ width: 100%;
2726
+ box-sizing: border-box;
2727
+ transition: background var(--fx-motion-duration-fast) var(--fx-motion-easing);
2728
+ }
2729
+ .row:hover { background: var(--fx-surface-surface-hover, rgba(0, 0, 0, 0.05)); }
2730
+ .row.selected { background: color-mix(in srgb, var(--fx-color-primary) 12%, transparent); color: var(--fx-color-primary); font-weight: 600; }
2731
+ .caret {
2732
+ display: inline-flex;
2733
+ align-items: center;
2734
+ justify-content: center;
2735
+ width: 16px;
2736
+ min-width: 16px;
2737
+ font-size: calc(var(--fx-font-size) - 2px);
2738
+ color: var(--fx-text-muted);
2739
+ cursor: pointer;
2740
+ transition: transform var(--fx-motion-duration-fast) var(--fx-motion-easing);
2741
+ user-select: none;
2742
+ }
2743
+ .caret.open { transform: rotate(90deg); }
2744
+ .caret.leaf { visibility: hidden; }
2745
+ .icon { line-height: 1; }
2746
+ .children[hidden] { display: none; }
2747
+ :host([size='sm']) .row { padding: 2px var(--fx-space-xs); font-size: calc(var(--fx-font-size) - 2px); }
2748
+ :host([size='lg']) .row { padding: var(--fx-space-sm) var(--fx-space-md); font-size: calc(var(--fx-font-size) + 1px); }
2749
+ `;let ue=dt;function Sr(){return b("fx-tree",ue)}Sr();const Lt={success:"var(--fx-color-success, #10b981)",error:"var(--fx-color-danger, #f43f5e)",info:"var(--fx-color-info, #0ea5e9)",warning:"var(--fx-color-warning, #f59e0b)"},Ct={success:"✓",error:"✕",warning:"!",info:"i"},$r=`
1608
2750
  :host { display: contents; }
2751
+ .fx-icon {
2752
+ font-family: var(--fx-icon-font, 'Fenix Icons');
2753
+ font-weight: normal;
2754
+ font-style: normal;
2755
+ line-height: 1;
2756
+ letter-spacing: normal;
2757
+ display: inline-block;
2758
+ white-space: nowrap;
2759
+ direction: ltr;
2760
+ font-variation-settings: 'FILL' 0, 'wght' 500, 'GRAD' 0, 'opsz' 24;
2761
+ -webkit-font-smoothing: antialiased;
2762
+ user-select: none;
2763
+ }
1609
2764
  .card {
1610
2765
  display: flex; align-items: flex-start; gap: 10px;
1611
2766
  min-width: 260px; max-width: 360px;
@@ -1638,19 +2793,19 @@
1638
2793
  color: var(--fx-text-muted, #64748b); font-size: 15px; padding: 2px 4px; border-radius: 4px;
1639
2794
  }
1640
2795
  .close:hover { color: var(--fx-color-danger, #f43f5e); background: var(--fx-surface-surface-hover, rgba(0,0,0,.05)); }
1641
- `;class we extends HTMLElement{constructor(){super();Ut(this,T);this.timer=null,this.attachShadow({mode:"open"})}static get observedAttributes(){return["kind","title","message","duration"]}connectedCallback(){var s;this.shadowRoot.firstChild||Xt(this,T,Jt).call(this);const e=Number((s=this.getAttribute("duration"))!=null?s:"4000"),r=e===0?0:Math.max(Number.isNaN(e)?4e3:e,1e3);!Number.isNaN(r)&&r>0&&!this.timer&&(this.timer=setTimeout(()=>this.dismiss(),r))}disconnectedCallback(){this.timer&&clearTimeout(this.timer),this.timer=null}dismiss(){this.timer&&clearTimeout(this.timer),this.timer=null;const e=this.shadowRoot.querySelector(".card");e?(e.classList.add("leaving"),setTimeout(()=>this.remove(),200)):this.remove()}}T=new WeakSet,Jt=function(){var n,c,h,g;const e=this.getAttribute("kind")||"info",r=(n=this.getAttribute("title"))!=null?n:"",s=(c=this.getAttribute("message"))!=null?c:"",i=(h=Ht[e])!=null?h:Ht.info;this.shadowRoot.innerHTML=`
1642
- <style>${ke}</style>
2796
+ `;class Er extends HTMLElement{constructor(){super();jt(this,D);this.timer=null,this.attachShadow({mode:"open"})}static get observedAttributes(){return["kind","title","message","duration","icon"]}connectedCallback(){var a;this.shadowRoot.firstChild||It(this,D,Ft).call(this);const t=Number((a=this.getAttribute("duration"))!=null?a:"4000"),r=t===0?0:Math.max(Number.isNaN(t)?4e3:t,1e3);!Number.isNaN(r)&&r>0&&!this.timer&&(this.timer=setTimeout(()=>this.dismiss(),r))}disconnectedCallback(){this.timer&&clearTimeout(this.timer),this.timer=null}dismiss(){this.timer&&clearTimeout(this.timer),this.timer=null;const t=this.shadowRoot.querySelector(".card");t?(t.classList.add("leaving"),setTimeout(()=>this.remove(),200)):this.remove()}}D=new WeakSet,Ft=function(){var _,u,p,v;const t=this.getAttribute("kind")||"info",r=(_=this.getAttribute("title"))!=null?_:"",a=(u=this.getAttribute("message"))!=null?u:"",i=(p=Lt[t])!=null?p:Lt.info,o=this.getAttribute("icon"),s=!!o&&/^[a-z][a-z0-9_]*$/.test(o);s&&Promise.resolve().then(()=>Te);const n=s?o:(v=Ct[t])!=null?v:Ct.info;this.shadowRoot.innerHTML=`
2797
+ <style>${$r}</style>
1643
2798
  <div class="card" style="--kind:${i}" role="status" part="card">
1644
- <span class="icon">${(g=Ot[e])!=null?g:Ot.info}</span>
2799
+ <span class="icon${s?" fx-icon":""}">${n}</span>
1645
2800
  <div class="body">
1646
2801
  ${r?'<div class="title"></div>':""}
1647
- ${s?'<div class="msg"></div>':""}
2802
+ ${a?'<div class="msg"></div>':""}
1648
2803
  </div>
1649
2804
  <button class="close" aria-label="Fechar">✕</button>
1650
- </div>`;const a=this.shadowRoot.querySelector(".title"),o=this.shadowRoot.querySelector(".msg");a&&(a.textContent=r),o&&(o.textContent=s),this.shadowRoot.querySelector(".close").addEventListener("click",()=>this.dismiss())};function Ae(l){let t=document.querySelector(`[data-fx-toast-region="${l}"]`);if(!t){t=document.createElement("div"),t.setAttribute("data-fx-toast-region",l);const[e,r]=l.split("-"),s=t.style;s.position="fixed",s[e]="16px",r==="center"?(s.left="50%",s.transform="translateX(-50%)"):s[r]="16px",s.display="flex",s.flexDirection="column",s.gap="8px",s.zIndex="1100",s.pointerEvents="none",new MutationObserver(()=>{t.querySelectorAll("*").forEach(i=>i.style.pointerEvents="auto")}).observe(t,{childList:!0}),document.body.appendChild(t)}return t}class _e{constructor(){this.seq=0,this.map=new Map,this.success=(t,e,r)=>this.push("success",t,e,r),this.error=(t,e,r)=>this.push("error",t,e,r),this.info=(t,e,r)=>this.push("info",t,e,r),this.warning=(t,e,r)=>this.push("warning",t,e,r)}push(t,e,r,s){var c,h,g;const i=++this.seq,a=typeof r=="string"?r:r==null?void 0:r.message,o={...typeof r=="object"&&r?r:void 0,...s},n=document.createElement("fx-toast");return n.setAttribute("kind",t),n.setAttribute("title",e),a&&n.setAttribute("message",a),n.setAttribute("position",(c=o.position)!=null?c:"top-right"),n.setAttribute("duration",String((h=o.duration)!=null?h:4e3)),Ae((g=o.position)!=null?g:"top-right").appendChild(n),this.map.set(i,n),i}close(t){var e;(e=this.map.get(t))==null||e.dismiss(),this.map.delete(t)}}const Se=new _e;globalThis.FenixToast=Se;function ze(){customElements.get("fx-toast")||customElements.define("fx-toast",we)}ze();const zt=class zt extends y{static get observedAttributes(){return["content","position"]}render(){const t=this.getAttr("content");this.setTemplate(`
2805
+ </div>`;const l=this.shadowRoot.querySelector(".title"),h=this.shadowRoot.querySelector(".msg");l&&(l.textContent=r),h&&(h.textContent=a),this.shadowRoot.querySelector(".close").addEventListener("click",()=>this.dismiss())};function Lr(d){let e=document.querySelector(`[data-fx-toast-region="${d}"]`);if(!e){e=document.createElement("div"),e.setAttribute("data-fx-toast-region",d);const[t,r]=d.split("-"),a=e.style;a.position="fixed",a[t]="16px",r==="center"?(a.left="50%",a.transform="translateX(-50%)"):a[r]="16px",a.display="flex",a.flexDirection="column",a.gap="8px",a.zIndex="1100",a.pointerEvents="none",new MutationObserver(()=>{e.querySelectorAll("*").forEach(i=>i.style.pointerEvents="auto")}).observe(e,{childList:!0}),document.body.appendChild(e)}return e}class Cr{constructor(){this.seq=0,this.map=new Map,this.success=(e,t,r)=>this.push("success",e,t,r),this.error=(e,t,r)=>this.push("error",e,t,r),this.info=(e,t,r)=>this.push("info",e,t,r),this.warning=(e,t,r)=>this.push("warning",e,t,r)}push(e,t,r,a){var l,h,_;const i=++this.seq,o=typeof r=="string"?r:r==null?void 0:r.message,s={...typeof r=="object"&&r?r:void 0,...a},n=document.createElement("fx-toast");return n.setAttribute("kind",e),n.setAttribute("title",t),o&&n.setAttribute("message",o),n.setAttribute("position",(l=s.position)!=null?l:"top-right"),n.setAttribute("duration",String((h=s.duration)!=null?h:4e3)),Lr((_=s.position)!=null?_:"top-right").appendChild(n),this.map.set(i,n),i}close(e){var t;(t=this.map.get(e))==null||t.dismiss(),this.map.delete(e)}}const Tr=new Cr;globalThis.FenixToast=Tr;function qr(){customElements.get("fx-toast")||customElements.define("fx-toast",Er)}qr();const pt=class pt extends g{static get observedAttributes(){return["content","position"]}render(){const e=this.getAttr("content");this.setTemplate(`
1651
2806
  <slot></slot>
1652
- <span class="bubble" part="bubble" role="tooltip">${u(t)}</span>
1653
- `)}};zt.styles=v`
2807
+ <span class="bubble" part="bubble" role="tooltip">${c(e)}</span>
2808
+ `)}};pt.styles=m`
1654
2809
  :host {
1655
2810
  position: relative;
1656
2811
  display: inline-flex;
@@ -1711,14 +2866,14 @@
1711
2866
  top: 50%; left: auto; right: 100%; transform: translateY(-50%);
1712
2867
  border: 5px solid transparent; border-right-color: var(--fx-text-default, #1e293b);
1713
2868
  }
1714
- `;let X=zt;function $e(){return k("fx-tooltip",X)}$e();const $t=class $t extends y{static get observedAttributes(){return["value"]}get value(){return this.getAttr("value")}set value(t){this.setAttribute("value",t)}render(){var r;const t=Array.from(this.querySelectorAll("fx-tab")),e=this.value||((r=t[0])==null?void 0:r.getAttribute("tab"))||"";this.setTemplate(`
2869
+ `;let fe=pt;function Dr(){return b("fx-tooltip",fe)}Dr();const ht=class ht extends g{static get observedAttributes(){return["value"]}get value(){return this.getAttr("value")}set value(e){this.setAttribute("value",e)}render(){var r;const e=Array.from(this.querySelectorAll("fx-tab")),t=this.value||((r=e[0])==null?void 0:r.getAttribute("tab"))||"";this.setTemplate(`
1715
2870
  <div class="list" role="tablist">
1716
- ${t.map(s=>{var o,n,c;const i=(o=s.getAttribute("tab"))!=null?o:"",a=s.hasAttribute("disabled");return`<button type="button" class="tab" role="tab" part="tab"
1717
- data-tab="${u(i)}" aria-selected="${i===e}"
1718
- ${a?'aria-disabled="true" data-disabled="true"':""}>${u((c=(n=s.textContent)==null?void 0:n.trim())!=null?c:"")}</button>`}).join("")}
2871
+ ${e.map(a=>{var s,n,l;const i=(s=a.getAttribute("tab"))!=null?s:"",o=a.hasAttribute("disabled");return`<button type="button" class="tab" role="tab" part="tab"
2872
+ data-tab="${c(i)}" aria-selected="${i===t}"
2873
+ ${o?'aria-disabled="true" data-disabled="true"':""}>${c((l=(n=a.textContent)==null?void 0:n.trim())!=null?l:"")}</button>`}).join("")}
1719
2874
  </div>
1720
2875
  <slot></slot>
1721
- `),this.panels.forEach(s=>{s.getAttribute("tab")===e?s.removeAttribute("hidden"):s.setAttribute("hidden","")}),this.root.querySelectorAll(".tab").forEach(s=>{s.addEventListener("click",()=>{var i;s.hasAttribute("data-disabled")||(this.value=(i=s.dataset.tab)!=null?i:"",this.dispatchEvent(new CustomEvent("change",{bubbles:!0,composed:!0,detail:{value:this.value}})))})})}get panels(){const t=Array.from(this.querySelectorAll("fx-tab-panel"));if(t.length)return t;const e=[];let r=this.nextElementSibling;for(;r&&!r.matches("fx-tabs");)r.matches("fx-tab-panel")?e.push(r):e.push(...Array.from(r.querySelectorAll(":scope > fx-tab-panel"))),r=r.nextElementSibling;return e}};$t.styles=v`
2876
+ `),this.panels.forEach(a=>{a.getAttribute("tab")===t?a.removeAttribute("hidden"):a.setAttribute("hidden","")}),this.root.querySelectorAll(".tab").forEach(a=>{a.addEventListener("click",()=>{var i;a.hasAttribute("data-disabled")||(this.value=(i=a.dataset.tab)!=null?i:"",this.dispatchEvent(new CustomEvent("change",{bubbles:!0,composed:!0,detail:{value:this.value}})))})})}get panels(){const e=Array.from(this.querySelectorAll("fx-tab-panel"));if(e.length)return e;const t=[];let r=this.nextElementSibling;for(;r&&!r.matches("fx-tabs");)r.matches("fx-tab-panel")?t.push(r):t.push(...Array.from(r.querySelectorAll(":scope > fx-tab-panel"))),r=r.nextElementSibling;return t}};ht.styles=m`
1722
2877
  :host {
1723
2878
  display: block;
1724
2879
  font-family: var(--fx-font-family);
@@ -1769,19 +2924,19 @@
1769
2924
  ::slotted(fx-tab) {
1770
2925
  display: none !important;
1771
2926
  }
1772
- `;let J=$t;const Et=class Et extends y{constructor(){super(...arguments),this._initialized=!1}static get observedAttributes(){return["tab"]}get tab(){return this.getAttr("tab")}set tab(t){this.setAttribute("tab",t)}get visible(){return!this.hasAttr("hidden")}set visible(t){this.toggleAttr("hidden",!t)}render(){var t;if(this.setTemplate("<slot></slot>"),!this._initialized){const e=(t=this.closest("fx-tabs"))!=null?t:(()=>{let s=this.previousElementSibling;for(;s;){if(s.matches("fx-tabs"))return s;s=s.previousElementSibling}return null})(),r=e&&e.getAttribute("value")||"";this.getAttribute("tab")!==r&&this.setAttribute("hidden",""),this._initialized=!0}}};Et.styles=v`
2927
+ `;let _e=ht;const ut=class ut extends g{constructor(){super(...arguments),this._initialized=!1}static get observedAttributes(){return["tab"]}get tab(){return this.getAttr("tab")}set tab(e){this.setAttribute("tab",e)}get visible(){return!this.hasAttr("hidden")}set visible(e){this.toggleAttr("hidden",!e)}render(){var e;if(this.setTemplate("<slot></slot>"),!this._initialized){const t=(e=this.closest("fx-tabs"))!=null?e:(()=>{let a=this.previousElementSibling;for(;a;){if(a.matches("fx-tabs"))return a;a=a.previousElementSibling}return null})(),r=t&&t.getAttribute("value")||"";this.getAttribute("tab")!==r&&this.setAttribute("hidden",""),this._initialized=!0}}};ut.styles=m`
1773
2928
  :host { display: block; padding: var(--fx-space-lg) 0; font-family: var(--fx-font-family); color: var(--fx-text-default); }
1774
2929
  :host([hidden]) { display: none; }
1775
- `;let W=Et;function Ee(){return k("fx-tabs",J)}function Ce(){return k("fx-tab-panel",W)}Ee(),Ce();const Ct=class Ct extends y{constructor(){super(...arguments),this._done=!1}static get observedAttributes(){return["value","indeterminate","variant","label","hide-label","size"]}get value(){return Number(this.getAttr("value","0"))||0}set value(t){this.setAttribute("value",String(Math.min(100,Math.max(0,t))))}render(){const t=Math.min(100,Math.max(0,this.value)),e=this.hasAttr("indeterminate"),r=this.getAttr("label"),s=!e&&!this.hasAttr("hide-label");this.setTemplate(`
1776
- ${r?`<div class="caption" part="caption">${u(r)}</div>`:""}
2930
+ `;let me=ut;function Mr(){return b("fx-tabs",_e)}function Nr(){return b("fx-tab-panel",me)}Mr(),Nr();const ft=class ft extends g{constructor(){super(...arguments),this._done=!1}static get observedAttributes(){return["value","indeterminate","variant","label","hide-label","size"]}get value(){return Number(this.getAttr("value","0"))||0}set value(e){this.setAttribute("value",String(Math.min(100,Math.max(0,e))))}render(){const e=Math.min(100,Math.max(0,this.value)),t=this.hasAttr("indeterminate"),r=this.getAttr("label"),a=!t&&!this.hasAttr("hide-label");this.setTemplate(`
2931
+ ${r?`<div class="caption" part="caption">${c(r)}</div>`:""}
1777
2932
  <div class="row">
1778
2933
  <div class="track" part="track" role="progressbar"
1779
- aria-valuenow="${t}" aria-valuemin="0" aria-valuemax="100">
1780
- <div class="bar" part="bar" style="width: ${e?"40%":`${t}%`}"></div>
2934
+ aria-valuenow="${e}" aria-valuemin="0" aria-valuemax="100">
2935
+ <div class="bar" part="bar" style="width: ${t?"40%":`${e}%`}"></div>
1781
2936
  </div>
1782
- ${s?`<span class="pct">${t}%</span>`:""}
2937
+ ${a?`<span class="pct">${e}%</span>`:""}
1783
2938
  </div>
1784
- `),!this._done&&!this.hasAttr("indeterminate")&&t>=100&&(this._done=!0,this.dispatchEvent(new CustomEvent("complete",{bubbles:!0,composed:!0}))),t<100&&(this._done=!1)}};Ct.styles=v`
2939
+ `),!this._done&&!this.hasAttr("indeterminate")&&e>=100&&(this._done=!0,this.dispatchEvent(new CustomEvent("complete",{bubbles:!0,composed:!0}))),e<100&&(this._done=!1)}};ft.styles=m`
1785
2940
  :host {
1786
2941
  display: block;
1787
2942
  font-family: var(--fx-font-family);
@@ -1831,9 +2986,9 @@
1831
2986
  color: var(--fx-text-muted);
1832
2987
  margin-bottom: var(--fx-space-xs);
1833
2988
  }
1834
- `;let Z=Ct;function Le(){return k("fx-progress",Z)}Le();const Lt=class Lt extends y{static get observedAttributes(){return["variant","width","height","lines"]}safeSize(t){const e=t.trim();return/^-?\d*\.?\d+(px|em|rem|%|vw|vh|vmin|vmax|ch|ex|cm|mm|in|pt|pc)$/.test(e)?e:""}render(){const t=this.getAttr("variant","text"),e=this.safeSize(this.getAttr("width")),r=this.safeSize(this.getAttr("height")),s=`${e?`width:${e};`:""}${r?`height:${r};`:""}`;if(t==="circle"){const a=r||e||"40px",o=s.includes("height")?s:`width:${a};height:${a};`;this.setTemplate(`<div class="bone circle" part="bone" style="${o}"></div>`);return}if(t==="rect"){const a=s||"width:100%;height:80px;";this.setTemplate(`<div class="bone" part="bone" style="${a}"></div>`);return}const i=Number(this.getAttr("lines","3"))||3;this.setTemplate(`
2989
+ `;let ge=ft;function jr(){return b("fx-progress",ge)}jr();const _t=class _t extends g{static get observedAttributes(){return["variant","width","height","lines"]}safeSize(e){const t=e.trim();return/^-?\d*\.?\d+(px|em|rem|%|vw|vh|vmin|vmax|ch|ex|cm|mm|in|pt|pc)$/.test(t)?t:""}render(){const e=this.getAttr("variant","text"),t=this.safeSize(this.getAttr("width")),r=this.safeSize(this.getAttr("height")),a=`${t?`width:${t};`:""}${r?`height:${r};`:""}`;if(e==="circle"){const o=r||t||"40px",s=a.includes("height")?a:`width:${o};height:${o};`;this.setTemplate(`<div class="bone circle" part="bone" style="${s}"></div>`);return}if(e==="rect"){const o=a||"width:100%;height:80px;";this.setTemplate(`<div class="bone" part="bone" style="${o}"></div>`);return}const i=Number(this.getAttr("lines","3"))||3;this.setTemplate(`
1835
2990
  ${Array.from({length:i},()=>'<div class="bone text"></div>').join("")}
1836
- `)}};Lt.styles=v`
2991
+ `)}};_t.styles=m`
1837
2992
  :host { display: block; width: 100%; min-width: 80px; font-family: var(--fx-font-family); }
1838
2993
  .bone {
1839
2994
  background: linear-gradient(
@@ -1851,16 +3006,16 @@
1851
3006
  .text { height: 12px; width: 100%; margin-bottom: var(--fx-space-sm); }
1852
3007
  .text:last-of-type { width: 60%; margin-bottom: 0; }
1853
3008
  .circle { border-radius: var(--fx-radius-full); }
1854
- `;let G=Lt;function Te(){return k("fx-skeleton",G)}Te();const Tt=class Tt extends y{static get observedAttributes(){return["variant","title","dismissible"]}render(){var s,i;const t=this.getAttr("variant","info"),e=this.getAttr("title"),r={info:"ℹ",success:"✓",warning:"⚠",danger:"✕"};this.setTemplate(`
3009
+ `;let be=_t;function Ir(){return b("fx-skeleton",be)}Ir();const mt=class mt extends g{static get observedAttributes(){return["variant","title","dismissible","icon"]}render(){var o,s;const e=this.getAttr("variant","info"),t=this.getAttr("title"),r=this.getAttr("icon");q(r)&&Promise.resolve().then(()=>Te);const i=r?`<span class="icon${q(r)?" fx-icon":""}" part="icon" aria-hidden="true">${c(r)}</span>`:`<span class="icon">${(o={info:"ℹ",success:"✓",warning:"⚠",danger:"✕"}[e])!=null?o:"ℹ"}</span>`;this.setTemplate(`
1855
3010
  <div class="alert" part="alert" role="alert">
1856
- <span class="icon">${(s=r[t])!=null?s:"ℹ"}</span>
3011
+ ${i}
1857
3012
  <div class="content">
1858
- ${e?`<div class="title">${u(e)}</div>`:""}
3013
+ ${t?`<div class="title">${c(t)}</div>`:""}
1859
3014
  <div class="body"><slot></slot></div>
1860
3015
  </div>
1861
3016
  ${this.hasAttr("dismissible")?'<button type="button" class="close" aria-label="Fechar">×</button>':""}
1862
3017
  </div>
1863
- `),(i=this.root.querySelector(".close"))==null||i.addEventListener("click",()=>{this.hidden=!0,this.dispatchEvent(new CustomEvent("dismiss",{bubbles:!0,composed:!0}))})}};Tt.styles=v`
3018
+ `),(s=this.root.querySelector(".close"))==null||s.addEventListener("click",()=>{this.hidden=!0,this.dispatchEvent(new CustomEvent("dismiss",{bubbles:!0,composed:!0}))})}};mt.styles=m`
1864
3019
  :host {
1865
3020
  display: block;
1866
3021
  font-family: var(--fx-font-family);
@@ -1884,6 +3039,8 @@
1884
3039
  }
1885
3040
  :host([hidden]) { display: none; }
1886
3041
  .icon { color: var(--_color); font-weight: bold; line-height: 1.4; }
3042
+ ${T}
3043
+ .icon.fx-icon { font-size: 20px; line-height: 1.2; }
1887
3044
  .content { flex: 1; }
1888
3045
  .title { font-weight: 600; }
1889
3046
  .body { margin-top: 2px; }
@@ -1893,16 +3050,16 @@
1893
3050
  line-height: 1; padding: 0; border-radius: var(--fx-radius-full);
1894
3051
  }
1895
3052
  .close:hover { color: var(--_color); }
1896
- `;let Q=Tt;function De(){return k("fx-alert",Q)}De();const Dt=class Dt extends y{constructor(){super(...arguments),this._listenersAttached=!1}static get observedAttributes(){return["label","position","open"]}get open(){return this.hasAttr("open")}set open(t){this.toggleAttr("open",t)}render(){const t=this.getAttr("label","Ações"),e=Array.from(this.querySelectorAll("fx-dropdown-item"));this.setTemplate(`
3053
+ `;let ve=mt;function Fr(){return b("fx-alert",ve)}Fr();const gt=class gt extends g{constructor(){super(...arguments),this._listenersAttached=!1}static get observedAttributes(){return["label","position","open"]}get open(){return this.hasAttr("open")}set open(e){this.toggleAttr("open",e)}render(){const e=this.getAttr("label","Ações"),t=Array.from(this.querySelectorAll("fx-dropdown-item"));this.setTemplate(`
1897
3054
  <span class="trigger" role="button" tabindex="0" part="trigger"
1898
3055
  aria-haspopup="menu" aria-expanded="${this.open}">
1899
- ${u(t)} ▾
3056
+ ${c(e)} ▾
1900
3057
  </span>
1901
3058
  <div class="panel" role="menu" part="panel">
1902
- ${e.length?"":'<div class="empty">Nenhuma ação</div>'}
3059
+ ${t.length?"":'<div class="empty">Nenhuma ação</div>'}
1903
3060
  <slot></slot>
1904
3061
  </div>
1905
- `);const r=this.root.querySelector(".trigger");r==null||r.addEventListener("click",s=>{s.stopPropagation(),document.querySelectorAll("fx-dropdown[open]").forEach(i=>{i!==this&&(i.open=!1)}),this.open=!this.open}),r==null||r.addEventListener("keydown",s=>{s.key==="Enter"||s.key===" "?(s.preventDefault(),this.open=!this.open):s.key==="Escape"&&(this.open=!1)}),this._attachDelegatedListeners()}_attachDelegatedListeners(){this._listenersAttached||(this._listenersAttached=!0,this.addEventListener("click",t=>{var r;const e=t.composedPath().find(s=>{var i;return((i=s.tagName)==null?void 0:i.toLowerCase())==="fx-dropdown-item"});e&&(this.open=!1,this.dispatchEvent(new CustomEvent("select",{bubbles:!0,composed:!0,detail:{value:(r=e.getAttribute("value"))!=null?r:""}})))}),this.docListener=t=>{this.contains(t.target)||(this.open=!1)},document.addEventListener("click",this.docListener))}disconnectedCallback(){super.disconnectedCallback(),this.docListener&&document.removeEventListener("click",this.docListener),this.docListener=void 0}};Dt.styles=v`
3062
+ `);const r=this.root.querySelector(".trigger");r==null||r.addEventListener("click",a=>{a.stopPropagation(),document.querySelectorAll("fx-dropdown[open]").forEach(i=>{i!==this&&(i.open=!1)}),this.open=!this.open}),r==null||r.addEventListener("keydown",a=>{a.key==="Enter"||a.key===" "?(a.preventDefault(),this.open=!this.open):a.key==="Escape"&&(this.open=!1)}),this._attachDelegatedListeners()}_attachDelegatedListeners(){this._listenersAttached||(this._listenersAttached=!0,this.addEventListener("click",e=>{var r;const t=e.composedPath().find(a=>{var i;return((i=a.tagName)==null?void 0:i.toLowerCase())==="fx-dropdown-item"});t&&(this.open=!1,this.dispatchEvent(new CustomEvent("select",{bubbles:!0,composed:!0,detail:{value:(r=t.getAttribute("value"))!=null?r:""}})))}),this.docListener=e=>{this.contains(e.target)||(this.open=!1)},document.addEventListener("click",this.docListener))}disconnectedCallback(){super.disconnectedCallback(),this.docListener&&document.removeEventListener("click",this.docListener),this.docListener=void 0}};gt.styles=m`
1906
3063
  :host {
1907
3064
  position: relative;
1908
3065
  display: inline-block;
@@ -1935,7 +3092,7 @@
1935
3092
  :host(:not([position])) .panel { left: 0; right: auto; }
1936
3093
  ::slotted(fx-dropdown-item) { display: block; }
1937
3094
  .empty { color: var(--fx-text-muted); font-size: calc(var(--fx-font-size) - 2px); padding: var(--fx-space-sm); }
1938
- `;let tt=Dt;const qt=class qt extends y{static get observedAttributes(){return["value"]}get value(){return this.getAttr("value")}set value(t){this.setAttribute("value",t)}render(){this.setTemplate('<button type="button" class="item" part="item" role="menuitem"><slot></slot></button>')}};qt.styles=v`
3095
+ `;let xe=gt;const bt=class bt extends g{static get observedAttributes(){return["value"]}get value(){return this.getAttr("value")}set value(e){this.setAttribute("value",e)}render(){this.setTemplate('<button type="button" class="item" part="item" role="menuitem"><slot></slot></button>')}};bt.styles=m`
1939
3096
  :host {
1940
3097
  display: block;
1941
3098
  font-family: var(--fx-font-family);
@@ -1956,13 +3113,13 @@
1956
3113
  transition: background var(--fx-motion-duration-fast) var(--fx-motion-easing);
1957
3114
  }
1958
3115
  .item:hover { background: color-mix(in srgb, var(--fx-color-primary) 12%, var(--fx-surface-background)); color: var(--fx-color-primary); }
1959
- `;let et=qt;function qe(){return k("fx-dropdown",tt)}function Me(){return k("fx-dropdown-item",et)}qe(),Me();const Mt=class Mt extends y{constructor(){super(...arguments),this._onKeydown=()=>{},this._previouslyFocused=null,this._close=()=>{this.open&&(this.open=!1,this._restoreFocus(),this.dispatchEvent(new CustomEvent("close",{bubbles:!0,composed:!0})))}}static get observedAttributes(){return["open","title","position"]}get open(){return this.hasAttr("open")}set open(t){this.toggleAttr("open",t)}get title(){return this.getAttr("title")}set title(t){this.setAttribute("title",t)}get position(){const t=this.getAttr("position");return["left","right","top","bottom"].includes(t)?t:"right"}set position(t){this.setAttribute("position",t)}render(){var e,r;const t=this.getAttr("title");this.setTemplate(`
3116
+ `;let ye=bt;function Pr(){return b("fx-dropdown",xe)}function Vr(){return b("fx-dropdown-item",ye)}Pr(),Vr();const vt=class vt extends g{constructor(){super(...arguments),this._onKeydown=()=>{},this._previouslyFocused=null,this._close=()=>{this.open&&(this.open=!1,this._restoreFocus(),this.dispatchEvent(new CustomEvent("close",{bubbles:!0,composed:!0})))}}static get observedAttributes(){return["open","title","position"]}get open(){return this.hasAttr("open")}set open(e){this.toggleAttr("open",e)}get title(){return this.getAttr("title")}set title(e){this.setAttribute("title",e)}get position(){const e=this.getAttr("position");return["left","right","top","bottom"].includes(e)?e:"right"}set position(e){this.setAttribute("position",e)}render(){var t,r;const e=this.getAttr("title");this.setTemplate(`
1960
3117
  <div class="overlay" part="overlay"></div>
1961
- <div class="panel" part="panel" role="dialog" aria-modal="true" aria-label="${u(t||"Drawer")}" tabindex="-1">
1962
- ${t!==""?`<div class="header" part="header"><span class="title">${u(t)}</span><button type="button" class="close" part="close" aria-label="Fechar">✕</button></div>`:""}
3118
+ <div class="panel" part="panel" role="dialog" aria-modal="true" aria-label="${c(e||"Drawer")}" tabindex="-1">
3119
+ ${e!==""?`<div class="header" part="header"><span class="title">${c(e)}</span><button type="button" class="close" part="close" aria-label="Fechar">✕</button></div>`:""}
1963
3120
  <div class="body" part="body"><slot></slot></div>
1964
3121
  </div>
1965
- `),(e=this.root.querySelector(".overlay"))==null||e.addEventListener("click",this._close),(r=this.root.querySelector(".close"))==null||r.addEventListener("click",this._close),this.open&&requestAnimationFrame(()=>{var s;this._previouslyFocused===null&&(this._previouslyFocused=document.activeElement),(s=this.root.querySelector(".panel"))==null||s.focus()})}connectedCallback(){var t;(t=super.connectedCallback)==null||t.call(this),this._onKeydown=e=>{e.key==="Escape"&&this.open?this._close():e.key==="Tab"&&this.open&&this._trapFocus(e)},document.addEventListener("keydown",this._onKeydown)}disconnectedCallback(){var t;document.removeEventListener("keydown",this._onKeydown),this._restoreFocus(),(t=super.disconnectedCallback)==null||t.call(this)}_trapFocus(t){const e=this.root.querySelector(".panel");if(!e)return;const r=e.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])');if(!r.length)return;const s=r[0],i=r[r.length-1],a=this.root.activeElement;t.shiftKey&&(a===s||a===e)?(t.preventDefault(),i.focus()):!t.shiftKey&&a===i&&(t.preventDefault(),s.focus())}_restoreFocus(){var t;(t=this._previouslyFocused)!=null&&t.isConnected&&this._previouslyFocused.focus(),this._previouslyFocused=null}};Mt.styles=v`
3122
+ `),(t=this.root.querySelector(".overlay"))==null||t.addEventListener("click",this._close),(r=this.root.querySelector(".close"))==null||r.addEventListener("click",this._close),this.open&&requestAnimationFrame(()=>{var a;this._previouslyFocused===null&&(this._previouslyFocused=document.activeElement),(a=this.root.querySelector(".panel"))==null||a.focus()})}connectedCallback(){var e;(e=super.connectedCallback)==null||e.call(this),this._onKeydown=t=>{t.key==="Escape"&&this.open?this._close():t.key==="Tab"&&this.open&&this._trapFocus(t)},document.addEventListener("keydown",this._onKeydown)}disconnectedCallback(){var e;document.removeEventListener("keydown",this._onKeydown),this._restoreFocus(),(e=super.disconnectedCallback)==null||e.call(this)}_trapFocus(e){const t=this.root.querySelector(".panel");if(!t)return;const r=t.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])');if(!r.length)return;const a=r[0],i=r[r.length-1],o=this.root.activeElement;e.shiftKey&&(o===a||o===t)?(e.preventDefault(),i.focus()):!e.shiftKey&&o===i&&(e.preventDefault(),a.focus())}_restoreFocus(){var e;(e=this._previouslyFocused)!=null&&e.isConnected&&this._previouslyFocused.focus(),this._previouslyFocused=null}};vt.styles=m`
1966
3123
  :host {
1967
3124
  display: contents;
1968
3125
  font-family: var(--fx-font-family);
@@ -2080,18 +3237,18 @@
2080
3237
  padding: var(--fx-space-md);
2081
3238
  flex: 1;
2082
3239
  }
2083
- `;let rt=Mt;function Ie(){return k("fx-drawer",rt)}Ie();const It=class It extends y{static get observedAttributes(){return["page","total","rows","rows-options","position"]}get page(){return Number(this.getAttr("page","1"))||1}set page(t){this.setAttribute("page",String(t))}get total(){return Number(this.getAttr("total","0"))||0}set total(t){this.setAttribute("total",String(t))}get rows(){return Number(this.getAttr("rows","10"))||10}set rows(t){this.setAttribute("rows",String(t))}get pages(){return Math.max(1,Math.ceil(this.total/this.rows))}render(){const t=this.pages,e=Math.min(Math.max(1,this.page),t),r=(this.getAttr("rows-options","5,10,20,50")||"").split(",").map(c=>c.trim()).filter(Boolean),s=[];for(let c=Math.max(1,e-2);c<=Math.min(t,e+2);c++)s.push(c);const i=o(e,this.rows),a=Math.min(e*this.rows,this.total);this.setTemplate(`
2084
- <span class="info">${this.total?`${i}-${a} de ${this.total}`:"0 itens"}</span>
2085
- <button type="button" class="nav" part="prev" data-go="${e-1}" ${e<=1?"disabled":""}>‹</button>
2086
- ${s[0]!==1&&t>5?'<button type="button" class="nav" data-go="1">1</button>':""}
2087
- ${s.map(c=>`<button type="button" class="nav ${c===e?"active":""}" data-go="${c}">${c}</button>`).join("")}
2088
- ${s[s.length-1]!==t&&t>5?`<button type="button" class="nav" data-go="${t}">${t}</button>`:""}
2089
- <button type="button" class="nav" part="next" data-go="${e+1}" ${e>=t?"disabled":""}>›</button>
3240
+ `;let we=vt;function Rr(){return b("fx-drawer",we)}Rr();const xt=class xt extends g{static get observedAttributes(){return["page","total","rows","rows-options","position"]}get page(){return Number(this.getAttr("page","1"))||1}set page(e){this.setAttribute("page",String(e))}get total(){return Number(this.getAttr("total","0"))||0}set total(e){this.setAttribute("total",String(e))}get rows(){return Number(this.getAttr("rows","10"))||10}set rows(e){this.setAttribute("rows",String(e))}get pages(){return Math.max(1,Math.ceil(this.total/this.rows))}render(){const e=this.pages,t=Math.min(Math.max(1,this.page),e),r=(this.getAttr("rows-options","5,10,20,50")||"").split(",").map(l=>l.trim()).filter(Boolean),a=[];for(let l=Math.max(1,t-2);l<=Math.min(e,t+2);l++)a.push(l);const i=s(t,this.rows),o=Math.min(t*this.rows,this.total);this.setTemplate(`
3241
+ <span class="info">${this.total?`${i}-${o} de ${this.total}`:"0 itens"}</span>
3242
+ <button type="button" class="nav" part="prev" data-go="${t-1}" ${t<=1?"disabled":""}>‹</button>
3243
+ ${a[0]!==1&&e>5?'<button type="button" class="nav" data-go="1">1</button>':""}
3244
+ ${a.map(l=>`<button type="button" class="nav ${l===t?"active":""}" data-go="${l}">${l}</button>`).join("")}
3245
+ ${a[a.length-1]!==e&&e>5?`<button type="button" class="nav" data-go="${e}">${e}</button>`:""}
3246
+ <button type="button" class="nav" part="next" data-go="${t+1}" ${t>=e?"disabled":""}>›</button>
2090
3247
  ${r.length?`
2091
3248
  <fx-select class="rows-sel" part="rows" size="sm" value="${this.rows}" aria-label="Itens por página">
2092
- ${r.map(c=>`<option value="${u(c)}">${u(c)}</option>`).join("")}
3249
+ ${r.map(l=>`<option value="${c(l)}">${c(l)}</option>`).join("")}
2093
3250
  </fx-select>`:""}
2094
- `);function o(c,h){return(c-1)*h+1}this.root.querySelectorAll(".nav[data-go]").forEach(c=>{c.addEventListener("click",()=>{const h=Number(c.dataset.go);h>=1&&h<=t&&h!==e&&(this.page=h,this.emit())})});const n=this.root.querySelector("fx-select.rows-sel");n==null||n.addEventListener("change",c=>{var g;const h=Number((g=c.detail)==null?void 0:g.value);!h||h===this.rows||(this.rows=h,this.page=1,this.emit())})}emit(){this.dispatchEvent(new CustomEvent("page-change",{bubbles:!0,composed:!0,detail:{page:this.page,rows:this.rows}}))}};It.styles=v`
3251
+ `);function s(l,h){return(l-1)*h+1}this.root.querySelectorAll(".nav[data-go]").forEach(l=>{l.addEventListener("click",()=>{const h=Number(l.dataset.go);h>=1&&h<=e&&h!==t&&(this.page=h,this.emit())})});const n=this.root.querySelector("fx-select.rows-sel");n==null||n.addEventListener("change",l=>{var _;const h=Number((_=l.detail)==null?void 0:_.value);!h||h===this.rows||(this.rows=h,this.page=1,this.emit())})}emit(){this.dispatchEvent(new CustomEvent("page-change",{bubbles:!0,composed:!0,detail:{page:this.page,rows:this.rows}}))}};xt.styles=m`
2095
3252
  :host {
2096
3253
  display: flex;
2097
3254
  align-items: center;
@@ -2134,11 +3291,11 @@
2134
3291
  border-radius: var(--fx-radius-sm) !important;
2135
3292
  font-size: calc(var(--fx-font-size) - 2px) !important;
2136
3293
  }
2137
- `;let st=It;function Ne(){return k("fx-pagination",st)}Ne();const Nt=class Nt extends y{static get observedAttributes(){return["size","placeholder","source","disabled","min-chars"]}get size(){const t=this.getAttr("size","md");return t==="sm"||t==="lg"?t:"md"}set size(t){this.setAttribute("size",t)}get value(){return this.getAttr("value")}set value(t){this.setAttribute("value",t)}get source(){try{const t=JSON.parse(this.getAttr("source","[]"));return Array.isArray(t)?t.map(String):[]}catch(t){return[]}}set source(t){this.setAttribute("source",typeof t=="string"?t:JSON.stringify(t))}connectedCallback(){super.connectedCallback(),this.docListener=t=>{this.contains(t.target)||this.toggleAttr("open",!1)},document.addEventListener("click",this.docListener)}disconnectedCallback(){super.disconnectedCallback(),this.docListener&&document.removeEventListener("click",this.docListener),this.docListener=void 0}render(){const t=this.getAttr("placeholder");this.setTemplate(`
3294
+ `;let ke=xt;function Br(){return b("fx-pagination",ke)}Br();const yt=class yt extends g{static get observedAttributes(){return["size","placeholder","source","disabled","min-chars"]}get size(){const e=this.getAttr("size","md");return e==="sm"||e==="lg"?e:"md"}set size(e){this.setAttribute("size",e)}get value(){return this.getAttr("value")}set value(e){this.setAttribute("value",e)}get source(){try{const e=JSON.parse(this.getAttr("source","[]"));return Array.isArray(e)?e.map(String):[]}catch(e){return[]}}set source(e){this.setAttribute("source",typeof e=="string"?e:JSON.stringify(e))}connectedCallback(){super.connectedCallback(),this.docListener=e=>{this.contains(e.target)||this.toggleAttr("open",!1)},document.addEventListener("click",this.docListener)}disconnectedCallback(){super.disconnectedCallback(),this.docListener&&document.removeEventListener("click",this.docListener),this.docListener=void 0}render(){const e=this.getAttr("placeholder");this.setTemplate(`
2138
3295
  <input class="field" part="input" type="text"
2139
- ${t?`placeholder="${u(t)}"`:""} autocomplete="off"/>
3296
+ ${e?`placeholder="${c(e)}"`:""} autocomplete="off"/>
2140
3297
  <div class="list" part="list" role="listbox"></div>
2141
- `);const e=this.root.querySelector(".field");if(!e)return;e.value=this.value,this.hasAttr("disabled")&&e.setAttribute("disabled","");const r=this.root.querySelector(".list"),s=Number(this.getAttr("min-chars","1"))||1,i=()=>{if(!r)return;const a=e.value.toLowerCase(),o=this.source.filter(n=>n.toLowerCase().includes(a)).slice(0,8);r.innerHTML=o.length?o.map(n=>`<button type="button" class="opt" role="option" data-v="${u(n)}">${u(n)}</button>`).join(""):'<div class="empty">Nenhum resultado</div>',r.querySelectorAll(".opt").forEach(n=>{n.addEventListener("click",()=>{var c;e.value=(c=n.dataset.v)!=null?c:"",this.value=e.value,this.toggleAttr("open",!1),this.dispatchEvent(new CustomEvent("select",{bubbles:!0,composed:!0,detail:{value:this.value}}))})}),this.toggleAttr("open",!0)};e.addEventListener("input",()=>{this.value=e.value,i()}),e.addEventListener("focus",()=>{e.value.length>=s&&i()}),e.addEventListener("keydown",a=>{var h;if(a.key==="Escape"){this.toggleAttr("open",!1);return}if(a.key!=="ArrowDown"&&a.key!=="ArrowUp")return;a.preventDefault(),this.hasAttr("open")||i();const o=Array.from(this.root.querySelectorAll(".opt"));if(!o.length)return;const n=o.indexOf(this.root.activeElement),c=a.key==="ArrowDown"?n===-1?0:Math.min(n+1,o.length-1):n===-1?o.length-1:Math.max(n-1,0);(h=o[c])==null||h.focus()})}};Nt.styles=v`
3298
+ `);const t=this.root.querySelector(".field");if(!t)return;t.value=this.value,this.hasAttr("disabled")&&t.setAttribute("disabled","");const r=this.root.querySelector(".list"),a=Number(this.getAttr("min-chars","1"))||1,i=()=>{if(!r)return;const o=t.value.toLowerCase(),s=this.source.filter(n=>n.toLowerCase().includes(o)).slice(0,8);r.innerHTML=s.length?s.map(n=>`<button type="button" class="opt" role="option" data-v="${c(n)}">${c(n)}</button>`).join(""):'<div class="empty">Nenhum resultado</div>',r.querySelectorAll(".opt").forEach(n=>{n.addEventListener("click",()=>{var l;t.value=(l=n.dataset.v)!=null?l:"",this.value=t.value,this.toggleAttr("open",!1),this.dispatchEvent(new CustomEvent("select",{bubbles:!0,composed:!0,detail:{value:this.value}}))})}),this.toggleAttr("open",!0)};t.addEventListener("input",()=>{this.value=t.value,i()}),t.addEventListener("focus",()=>{t.value.length>=a&&i()}),t.addEventListener("keydown",o=>{var h;if(o.key==="Escape"){this.toggleAttr("open",!1);return}if(o.key!=="ArrowDown"&&o.key!=="ArrowUp")return;o.preventDefault(),this.hasAttr("open")||i();const s=Array.from(this.root.querySelectorAll(".opt"));if(!s.length)return;const n=s.indexOf(this.root.activeElement),l=o.key==="ArrowDown"?n===-1?0:Math.min(n+1,s.length-1):n===-1?s.length-1:Math.max(n-1,0);(h=s[l])==null||h.focus()})}};yt.styles=m`
2142
3299
  :host {
2143
3300
  position: relative;
2144
3301
  display: inline-block;
@@ -2200,22 +3357,22 @@
2200
3357
  }
2201
3358
  .opt:hover { background: color-mix(in srgb, var(--fx-color-primary) 12%, var(--fx-surface-background)); color: var(--fx-color-primary); }
2202
3359
  .empty { color: var(--fx-text-muted); font-size: calc(var(--fx-font-size) - 2px); padding: var(--fx-space-sm) var(--fx-space-md); }
2203
- `;let it=Nt;function je(){return k("fx-autocomplete",it)}je();const jt=class jt extends y{constructor(){super(...arguments),this._isDragging=!1,this._startY=0,this._startValue=0,this._onMouseMove=t=>{if(!this._isDragging)return;const e=this._startY-t.clientY,r=(this.max-this.min)/100;this.emitChange(this._startValue+e*r)},this._onMouseUp=()=>{this._isDragging=!1,document.removeEventListener("mousemove",this._onMouseMove),document.removeEventListener("mouseup",this._onMouseUp)}}static get observedAttributes(){return["value","min","max","step","size","stroke-width","value-color","range-color","readonly","disabled","value-template"]}get value(){return this.clampValue(Number(this.getAttr("value","0"))||0)}set value(t){if(this.readonly||this.disabled)return;const e=this.clampValue(t),r=this.clampValue(Number(this.getAttr("value","0"))||0);e!==r&&(this.setAttribute("value",String(e)),this.dispatchEvent(new CustomEvent("change",{bubbles:!0,composed:!0,detail:{value:e}})))}get min(){return Number(this.getAttr("min","0"))||0}set min(t){this.setAttribute("min",String(t))}get max(){return Number(this.getAttr("max","100"))||100}set max(t){this.setAttribute("max",String(t))}get step(){return Number(this.getAttr("step","1"))||1}set step(t){this.setAttribute("step",String(t))}get size(){const t=this.getAttr("size","md");return t==="sm"||t==="lg"?t:"md"}set size(t){this.setAttribute("size",t)}get strokeWidth(){return Number(this.getAttr("stroke-width","8"))||8}set strokeWidth(t){this.setAttribute("stroke-width",String(t))}get valueColor(){return this.getAttr("value-color","")}set valueColor(t){this.setAttribute("value-color",t)}get rangeColor(){return this.getAttr("range-color","")}set rangeColor(t){this.setAttribute("range-color",t)}get readonly(){return this.hasAttr("readonly")}set readonly(t){this.toggleAttr("readonly",!!t)}get disabled(){return this.hasAttr("disabled")}set disabled(t){this.toggleAttr("disabled",!!t)}get valueTemplate(){return this.getAttr("value-template","{value}")}set valueTemplate(t){this.setAttribute("value-template",t)}render(){const t=this.min,e=this.max,r=this.clampValue(this.value),s=e-t,i=s>0?(r-t)/s:0,a=this.getSizeNum(),o=this.strokeWidth,n=(a-o)/2,c=2*Math.PI*n,h=c*(1-i),g=this.valueColor?this.safeColor(this.valueColor):"",f=this.rangeColor?this.safeColor(this.rangeColor):"",d=g?`--_value-color: ${g};`:"",m=f?`--_range-color: ${f};`:"",p=this.valueTemplate.replace("{value}",String(Math.round(r)));this.setTemplate(`
3360
+ `;let Ae=yt;function Or(){return b("fx-autocomplete",Ae)}Or();const wt=class wt extends g{constructor(){super(...arguments),this._isDragging=!1,this._startY=0,this._startValue=0,this._onMouseMove=e=>{if(!this._isDragging)return;const t=this._startY-e.clientY,r=(this.max-this.min)/100;this.emitChange(this._startValue+t*r)},this._onMouseUp=()=>{this._isDragging=!1,document.removeEventListener("mousemove",this._onMouseMove),document.removeEventListener("mouseup",this._onMouseUp)}}static get observedAttributes(){return["value","min","max","step","size","stroke-width","value-color","range-color","readonly","disabled","value-template"]}get value(){return this.clampValue(Number(this.getAttr("value","0"))||0)}set value(e){if(this.readonly||this.disabled)return;const t=this.clampValue(e),r=this.clampValue(Number(this.getAttr("value","0"))||0);t!==r&&(this.setAttribute("value",String(t)),this.dispatchEvent(new CustomEvent("change",{bubbles:!0,composed:!0,detail:{value:t}})))}get min(){return Number(this.getAttr("min","0"))||0}set min(e){this.setAttribute("min",String(e))}get max(){return Number(this.getAttr("max","100"))||100}set max(e){this.setAttribute("max",String(e))}get step(){return Number(this.getAttr("step","1"))||1}set step(e){this.setAttribute("step",String(e))}get size(){const e=this.getAttr("size","md");return e==="sm"||e==="lg"?e:"md"}set size(e){this.setAttribute("size",e)}get strokeWidth(){return Number(this.getAttr("stroke-width","8"))||8}set strokeWidth(e){this.setAttribute("stroke-width",String(e))}get valueColor(){return this.getAttr("value-color","")}set valueColor(e){this.setAttribute("value-color",e)}get rangeColor(){return this.getAttr("range-color","")}set rangeColor(e){this.setAttribute("range-color",e)}get readonly(){return this.hasAttr("readonly")}set readonly(e){this.toggleAttr("readonly",!!e)}get disabled(){return this.hasAttr("disabled")}set disabled(e){this.toggleAttr("disabled",!!e)}get valueTemplate(){return this.getAttr("value-template","{value}")}set valueTemplate(e){this.setAttribute("value-template",e)}render(){const e=this.min,t=this.max,r=this.clampValue(this.value),a=t-e,i=a>0?(r-e)/a:0,o=this.getSizeNum(),s=this.strokeWidth,n=(o-s)/2,l=2*Math.PI*n,h=l*(1-i),_=this.valueColor?this.safeColor(this.valueColor):"",u=this.rangeColor?this.safeColor(this.rangeColor):"",p=_?`--_value-color: ${_};`:"",v=u?`--_range-color: ${u};`:"",f=this.valueTemplate.replace("{value}",String(Math.round(r)));this.setTemplate(`
2204
3361
  <div class="knob" part="knob" tabindex="${this.disabled?"-1":"0"}"
2205
- role="slider" aria-valuenow="${r}" aria-valuemin="${t}" aria-valuemax="${e}"
3362
+ role="slider" aria-valuenow="${r}" aria-valuemin="${e}" aria-valuemax="${t}"
2206
3363
  aria-readonly="${this.readonly}" aria-disabled="${this.disabled}"
2207
- style="${d}${m}">
2208
- <svg viewBox="0 0 ${a} ${a}" part="svg">
3364
+ style="${p}${v}">
3365
+ <svg viewBox="0 0 ${o} ${o}" part="svg">
2209
3366
  <circle class="track" part="track"
2210
- cx="${a/2}" cy="${a/2}" r="${n}" />
3367
+ cx="${o/2}" cy="${o/2}" r="${n}" />
2211
3368
  <circle class="value" part="value"
2212
- cx="${a/2}" cy="${a/2}" r="${n}"
2213
- stroke-dasharray="${c}"
3369
+ cx="${o/2}" cy="${o/2}" r="${n}"
3370
+ stroke-dasharray="${l}"
2214
3371
  stroke-dashoffset="${h}" />
2215
3372
  </svg>
2216
- <div class="label" part="label">${u(p)}</div>
3373
+ <div class="label" part="label">${c(f)}</div>
2217
3374
  </div>
2218
- `),this.attachListeners()}getSizeNum(){const t=this.size;return t==="sm"?60:t==="lg"?140:100}safeColor(t){const e=t.trim();return/^#[0-9a-fA-F]{3,8}$/.test(e)||/^(rgb|rgba|hsl|hsla)\([\d\s.,%()]+\)$/i.test(e)||/^var\(--[\w-]+(,\s*[^)]*)?\)$/.test(e)||/^[a-zA-Z]+$/.test(e)?e:""}clampValue(t){const e=this.min,r=this.max,s=this.step;let i=Math.min(r,Math.max(e,t));return s>0&&(i=Math.round((i-e)/s)*s+e,i=Math.min(r,Math.max(e,i))),i}emitChange(t){const e=this.clampValue(t);e!==this.value&&(this.value=e,this.dispatchEvent(new CustomEvent("change",{bubbles:!0,composed:!0,detail:{value:e}})))}attachListeners(){const t=this.root.querySelector(".knob");t&&(t.addEventListener("mousedown",e=>{this.readonly||this.disabled||(e.preventDefault(),this._isDragging=!0,this._startY=e.clientY,this._startValue=this.value,t.focus(),document.addEventListener("mousemove",this._onMouseMove),document.addEventListener("mouseup",this._onMouseUp))}),t.addEventListener("touchstart",e=>{this.readonly||this.disabled||(e.preventDefault(),this._isDragging=!0,this._startY=e.touches[0].clientY,this._startValue=this.value,t.focus())},{passive:!1}),t.addEventListener("touchmove",e=>{if(!this._isDragging||this.readonly||this.disabled)return;e.preventDefault();const r=this._startY-e.touches[0].clientY,s=(this.max-this.min)/100;this.emitChange(this._startValue+r*s)},{passive:!1}),t.addEventListener("touchend",()=>{this._isDragging=!1}),t.addEventListener("keydown",e=>{if(this.readonly||this.disabled)return;const r=this.step;switch(e.key){case"ArrowUp":case"ArrowRight":e.preventDefault(),this.emitChange(this.value+r);break;case"ArrowDown":case"ArrowLeft":e.preventDefault(),this.emitChange(this.value-r);break;case"Home":e.preventDefault(),this.emitChange(this.min);break;case"End":e.preventDefault(),this.emitChange(this.max);break;case"PageUp":e.preventDefault(),this.emitChange(this.value+r*10);break;case"PageDown":e.preventDefault(),this.emitChange(this.value-r*10);break}}))}disconnectedCallback(){document.removeEventListener("mousemove",this._onMouseMove),document.removeEventListener("mouseup",this._onMouseUp),super.disconnectedCallback()}};jt.styles=v`
3375
+ `),this.attachListeners()}getSizeNum(){const e=this.size;return e==="sm"?60:e==="lg"?140:100}safeColor(e){const t=e.trim();return/^#[0-9a-fA-F]{3,8}$/.test(t)||/^(rgb|rgba|hsl|hsla)\([\d\s.,%()]+\)$/i.test(t)||/^var\(--[\w-]+(,\s*[^)]*)?\)$/.test(t)||/^[a-zA-Z]+$/.test(t)?t:""}clampValue(e){const t=this.min,r=this.max,a=this.step;let i=Math.min(r,Math.max(t,e));return a>0&&(i=Math.round((i-t)/a)*a+t,i=Math.min(r,Math.max(t,i))),i}emitChange(e){const t=this.clampValue(e);t!==this.value&&(this.value=t,this.dispatchEvent(new CustomEvent("change",{bubbles:!0,composed:!0,detail:{value:t}})))}attachListeners(){const e=this.root.querySelector(".knob");e&&(e.addEventListener("mousedown",t=>{this.readonly||this.disabled||(t.preventDefault(),this._isDragging=!0,this._startY=t.clientY,this._startValue=this.value,e.focus(),document.addEventListener("mousemove",this._onMouseMove),document.addEventListener("mouseup",this._onMouseUp))}),e.addEventListener("touchstart",t=>{this.readonly||this.disabled||(t.preventDefault(),this._isDragging=!0,this._startY=t.touches[0].clientY,this._startValue=this.value,e.focus())},{passive:!1}),e.addEventListener("touchmove",t=>{if(!this._isDragging||this.readonly||this.disabled)return;t.preventDefault();const r=this._startY-t.touches[0].clientY,a=(this.max-this.min)/100;this.emitChange(this._startValue+r*a)},{passive:!1}),e.addEventListener("touchend",()=>{this._isDragging=!1}),e.addEventListener("keydown",t=>{if(this.readonly||this.disabled)return;const r=this.step;switch(t.key){case"ArrowUp":case"ArrowRight":t.preventDefault(),this.emitChange(this.value+r);break;case"ArrowDown":case"ArrowLeft":t.preventDefault(),this.emitChange(this.value-r);break;case"Home":t.preventDefault(),this.emitChange(this.min);break;case"End":t.preventDefault(),this.emitChange(this.max);break;case"PageUp":t.preventDefault(),this.emitChange(this.value+r*10);break;case"PageDown":t.preventDefault(),this.emitChange(this.value-r*10);break}}))}disconnectedCallback(){document.removeEventListener("mousemove",this._onMouseMove),document.removeEventListener("mouseup",this._onMouseUp),super.disconnectedCallback()}};wt.styles=m`
2219
3376
  :host {
2220
3377
  display: inline-flex;
2221
3378
  align-items: center;
@@ -2281,13 +3438,13 @@
2281
3438
  .knob:focus-visible svg {
2282
3439
  filter: drop-shadow(var(--fx-effect-focus-ring, 0 0 0 3px color-mix(in srgb, var(--fx-color-primary) 22%, transparent)));
2283
3440
  }
2284
- `;let at=jt;function Pe(){return k("fx-knob",at)}Pe();const Pt=class Pt extends y{constructor(){super(...arguments),this._data=[],this._filteredData=null,this._selection=[],this._filterValue="",this._draggedIndex=null,this._listenersAttached=!1,this._optionTemplate=null}static get observedAttributes(){return["data","data-key","filter","filter-by","filter-placeholder","breakpoint","controls-location","dragdrop","striped","selection-mode","show-select-all"]}set data(t){this._data=t,this._filteredData=null,this.render()}get data(){return this._data}set selection(t){this._selection=t,this.render()}get selection(){return this._selection}get dataKey(){return this.getAttr("data-key","")}set dataKey(t){this.setAttribute("data-key",t)}get filter(){return this.hasAttr("filter")}set filter(t){this.toggleAttr("filter",t)}get filterBy(){return this.getAttr("filter-by","label")}set filterBy(t){this.setAttribute("filter-by",t)}get filterPlaceholder(){return this.getAttr("filter-placeholder","Buscar...")}set filterPlaceholder(t){this.setAttribute("filter-placeholder",t)}get breakpoint(){return this.getAttr("breakpoint","960px")}set breakpoint(t){this.setAttribute("breakpoint",t)}get dragdrop(){return this.hasAttr("dragdrop")}set dragdrop(t){this.toggleAttr("dragdrop",t)}get striped(){return this.hasAttr("striped")}set striped(t){this.toggleAttr("striped",t)}get selectionMode(){const t=this.getAttr("selection-mode","");return t==="single"||t==="multiple"?t:""}set selectionMode(t){this.setAttribute("selection-mode",t)}get showSelectAll(){return this.hasAttr("show-select-all")}set showSelectAll(t){this.toggleAttr("show-select-all",t)}get filterValue(){return this._filterValue}set filterValue(t){this._filterValue=t,this._applyFilter(),this._updateListDisplay()}setOptionTemplate(t){this._optionTemplate=t,this.render()}connectedCallback(){this._parseDataAttribute(),super.connectedCallback()}attributeChangedCallback(){this.getAttr("data","")!==""&&this._parseDataAttribute(),super.attributeChangedCallback()}_parseDataAttribute(){const t=this.getAttr("data","");if(t)try{this._data=JSON.parse(t),this._filteredData=null}catch(e){this._data=[]}}_applyFilter(){if(!this._filterValue){this._filteredData=null;return}const t=this.filterBy.split(",").map(e=>e.trim());this._filteredData=this._data.filter(e=>t.some(r=>{const s=e[r];return s==null?!1:String(s).toLowerCase().includes(this._filterValue.toLowerCase())}))}_getDisplayData(){return this._filteredData||this._data}_getItemKey(t,e){return this.dataKey&&t[this.dataKey]!=null?String(t[this.dataKey]):t.id!=null?String(t.id):t.key!=null?String(t.key):t.label!=null?String(t.label):t.name!=null?String(t.name):t.value!=null?String(t.value):String(e)}_getItemLabel(t){const e=["label","name","title","text","value"];for(const r of e)if(t[r]!=null)return String(t[r]);return JSON.stringify(t)}_isSelected(t){return this._selection.some(e=>this._getItemKey(e,-1)===this._getItemKey(t,-1))}_moveItem(t,e){const r=this._getActualIndex(t),s=this._getActualIndex(e);if(r===-1||s===-1)return;const i=this._data.splice(r,1)[0];this._data.splice(s,0,i),this._applyFilter(),this._updateListDisplay(),this._updateControlsState(),this._emitReorder()}_getActualIndex(t){if(this._filteredData){const e=this._filteredData[t];return this._data.findIndex(r=>this._getItemKey(r,-1)===this._getItemKey(e,-1))}return t}_emitReorder(){this.dispatchEvent(new CustomEvent("reorder",{bubbles:!0,composed:!0,detail:{items:[...this._data]}}))}_emitSelectionChange(){this.dispatchEvent(new CustomEvent("selection-change",{bubbles:!0,composed:!0,detail:{selection:[...this._selection]}}))}_toggleSelection(t){const e=this._getItemKey(t,-1),r=this._selection.findIndex(s=>this._getItemKey(s,-1)===e);r>=0?this._selection.splice(r,1):this.selectionMode==="multiple"?this._selection.push(t):this._selection=[t],this._emitSelectionChange(),this._updateListDisplay(),this._updateControlsState()}_selectAll(){const t=this._getDisplayData();this._selection=[...t],this._emitSelectionChange(),this._updateListDisplay(),this._updateControlsState()}_deselectAll(){this._selection=[],this._emitSelectionChange(),this._updateListDisplay(),this._updateControlsState()}_toggleSelectAll(){const t=this._getDisplayData();this._selection.length===t.length?this._deselectAll():this._selectAll()}render(){const t=this._getDisplayData(),e=this.selectionMode,r=this.selectionMode==="multiple",s=r&&t.length>0&&this._selection.length===t.length;this.setTemplate(`
3441
+ `;let ze=wt;function Kr(){return b("fx-knob",ze)}Kr();const kt=class kt extends g{constructor(){super(...arguments),this._data=[],this._filteredData=null,this._selection=[],this._filterValue="",this._draggedIndex=null,this._listenersAttached=!1,this._optionTemplate=null}static get observedAttributes(){return["data","data-key","filter","filter-by","filter-placeholder","breakpoint","controls-location","dragdrop","striped","selection-mode","show-select-all"]}set data(e){this._data=e,this._filteredData=null,this.render()}get data(){return this._data}set selection(e){this._selection=e,this.render()}get selection(){return this._selection}get dataKey(){return this.getAttr("data-key","")}set dataKey(e){this.setAttribute("data-key",e)}get filter(){return this.hasAttr("filter")}set filter(e){this.toggleAttr("filter",e)}get filterBy(){return this.getAttr("filter-by","label")}set filterBy(e){this.setAttribute("filter-by",e)}get filterPlaceholder(){return this.getAttr("filter-placeholder","Buscar...")}set filterPlaceholder(e){this.setAttribute("filter-placeholder",e)}get breakpoint(){return this.getAttr("breakpoint","960px")}set breakpoint(e){this.setAttribute("breakpoint",e)}get dragdrop(){return this.hasAttr("dragdrop")}set dragdrop(e){this.toggleAttr("dragdrop",e)}get striped(){return this.hasAttr("striped")}set striped(e){this.toggleAttr("striped",e)}get selectionMode(){const e=this.getAttr("selection-mode","");return e==="single"||e==="multiple"?e:""}set selectionMode(e){this.setAttribute("selection-mode",e)}get showSelectAll(){return this.hasAttr("show-select-all")}set showSelectAll(e){this.toggleAttr("show-select-all",e)}get filterValue(){return this._filterValue}set filterValue(e){this._filterValue=e,this._applyFilter(),this._updateListDisplay()}setOptionTemplate(e){this._optionTemplate=e,this.render()}connectedCallback(){this._parseDataAttribute(),super.connectedCallback()}attributeChangedCallback(e,t,r){this.getAttr("data","")!==""&&this._parseDataAttribute(),super.attributeChangedCallback(e,t,r)}_parseDataAttribute(){const e=this.getAttr("data","");if(e)try{this._data=JSON.parse(e),this._filteredData=null}catch(t){this._data=[]}}_applyFilter(){if(!this._filterValue){this._filteredData=null;return}const e=this.filterBy.split(",").map(t=>t.trim());this._filteredData=this._data.filter(t=>e.some(r=>{const a=t[r];return a==null?!1:String(a).toLowerCase().includes(this._filterValue.toLowerCase())}))}_getDisplayData(){return this._filteredData||this._data}_getItemKey(e,t){return this.dataKey&&e[this.dataKey]!=null?String(e[this.dataKey]):e.id!=null?String(e.id):e.key!=null?String(e.key):e.label!=null?String(e.label):e.name!=null?String(e.name):e.value!=null?String(e.value):String(t)}_getItemLabel(e){const t=["label","name","title","text","value"];for(const r of t)if(e[r]!=null)return String(e[r]);return JSON.stringify(e)}_isSelected(e){return this._selection.some(t=>this._getItemKey(t,-1)===this._getItemKey(e,-1))}_moveItem(e,t){const r=this._getActualIndex(e),a=this._getActualIndex(t);if(r===-1||a===-1)return;const i=this._data.splice(r,1)[0];this._data.splice(a,0,i),this._applyFilter(),this._updateListDisplay(),this._updateControlsState(),this._emitReorder()}_getActualIndex(e){if(this._filteredData){const t=this._filteredData[e];return this._data.findIndex(r=>this._getItemKey(r,-1)===this._getItemKey(t,-1))}return e}_emitReorder(){this.dispatchEvent(new CustomEvent("reorder",{bubbles:!0,composed:!0,detail:{items:[...this._data]}}))}_emitSelectionChange(){this.dispatchEvent(new CustomEvent("selection-change",{bubbles:!0,composed:!0,detail:{selection:[...this._selection]}}))}_toggleSelection(e){const t=this._getItemKey(e,-1),r=this._selection.findIndex(a=>this._getItemKey(a,-1)===t);r>=0?this._selection.splice(r,1):this.selectionMode==="multiple"?this._selection.push(e):this._selection=[e],this._emitSelectionChange(),this._updateListDisplay(),this._updateControlsState()}_selectAll(){const e=this._getDisplayData();this._selection=[...e],this._emitSelectionChange(),this._updateListDisplay(),this._updateControlsState()}_deselectAll(){this._selection=[],this._emitSelectionChange(),this._updateListDisplay(),this._updateControlsState()}_toggleSelectAll(){const e=this._getDisplayData();this._selection.length===e.length?this._deselectAll():this._selectAll()}render(){const e=this._getDisplayData(),t=this.selectionMode,r=this.selectionMode==="multiple",a=r&&e.length>0&&this._selection.length===e.length;this.setTemplate(`
2285
3442
  <div class="container" part="container">
2286
3443
  ${this.filter?`
2287
3444
  <div class="filter-wrapper" part="filter-wrapper">
2288
3445
  <input type="text" class="filter-input" part="filter-input"
2289
3446
  placeholder="${this.filterPlaceholder}"
2290
- value="${u(this._filterValue)}"
3447
+ value="${c(this._filterValue)}"
2291
3448
  aria-label="Filtrar lista" />
2292
3449
  </div>
2293
3450
  `:""}
@@ -2315,7 +3472,7 @@
2315
3472
  <div class="select-all-bar" part="select-all-bar">
2316
3473
  <label>
2317
3474
  <input type="checkbox" class="select-all-checkbox"
2318
- ${s?"checked":""}
3475
+ ${a?"checked":""}
2319
3476
  aria-label="Selecionar todos" />
2320
3477
  Selecionar Todos
2321
3478
  </label>
@@ -2325,21 +3482,21 @@
2325
3482
  <ul class="list" part="list" role="listbox"
2326
3483
  aria-multiselectable="${r}"
2327
3484
  tabindex="0">
2328
- ${t.length===0?`
3485
+ ${e.length===0?`
2329
3486
  <li class="empty-message" part="empty-message">
2330
3487
  ${this.filter?"Nenhum resultado encontrado":"Nenhum item disponivel"}
2331
3488
  </li>
2332
- `:t.map((i,a)=>{const o=this._getItemKey(i,a),n=this._getItemLabel(i),c=this._isSelected(i),h=this._optionTemplate?this._optionTemplate(i):u(n);return`
2333
- <li class="list-item${c?" selected":""}" part="list-item"
2334
- data-index="${a}" data-key="${u(o)}"
2335
- role="option" aria-selected="${c}"
3489
+ `:e.map((i,o)=>{const s=this._getItemKey(i,o),n=this._getItemLabel(i),l=this._isSelected(i),h=this._optionTemplate?this._optionTemplate(i):c(n);return`
3490
+ <li class="list-item${l?" selected":""}" part="list-item"
3491
+ data-index="${o}" data-key="${c(s)}"
3492
+ role="option" aria-selected="${l}"
2336
3493
  ${this.dragdrop?'draggable="true"':""}
2337
3494
  tabindex="0">
2338
3495
  ${this.dragdrop?'<span class="drag-handle" part="drag-handle" aria-label="Arrastar">⋮⋮</span>':""}
2339
- ${e?`
3496
+ ${t?`
2340
3497
  <input type="checkbox" class="checkbox" part="checkbox"
2341
- ${c?"checked":""}
2342
- aria-label="Selecionar ${u(n)}" />
3498
+ ${l?"checked":""}
3499
+ aria-label="Selecionar ${c(n)}" />
2343
3500
  `:""}
2344
3501
  <span class="item-content" part="item-content">${h}</span>
2345
3502
  </li>
@@ -2348,8 +3505,8 @@
2348
3505
  </div>
2349
3506
  </div>
2350
3507
  </div>
2351
- `),this._attachListeners(),this._attachItemListeners(this.root.querySelector(".list")),this._updateControlsState()}_attachListeners(){if(this._listenersAttached)return;this._listenersAttached=!0;const t=this.root;t.addEventListener("input",r=>{const s=r.target;s.classList.contains("filter-input")&&(this.filterValue=s.value)}),t.addEventListener("change",r=>{r.target.classList.contains("select-all-checkbox")&&this._toggleSelectAll()}),t.addEventListener("click",r=>{const i=r.target.closest(".control-btn");i&&this._handleMoveAction(i.dataset.action)});let e=null;t.addEventListener("dragstart",r=>{const s=r.target.closest(".list-item");s&&(this._draggedIndex=Number(s.dataset.index),s.classList.add("dragging"),r.dataTransfer.effectAllowed="move")}),t.addEventListener("dragend",r=>{r.target.classList.remove("dragging"),this._draggedIndex=null,t.querySelectorAll(".drag-over").forEach(i=>i.classList.remove("drag-over")),e=null}),t.addEventListener("dragover",r=>{r.preventDefault();const s=r.target.closest(".list-item");!s||s.classList.contains("dragging")||(e&&e.classList.remove("drag-over"),s.classList.add("drag-over"),e=s)}),t.addEventListener("drop",r=>{if(r.preventDefault(),this._draggedIndex===null)return;const s=r.target.closest(".list-item");if(!s)return;const i=Number(s.dataset.index);s.classList.remove("drag-over"),e=null,this._moveItem(this._draggedIndex,i),this._draggedIndex=null}),this._updateControlsState()}_attachItemListeners(t){t&&(t.addEventListener("click",e=>{const r=e.target,s=r.closest(".list-item");if(!s)return;if(r.classList.contains("checkbox")){e.stopPropagation();const a=Number(s.dataset.index);this._toggleSelection(this._getDisplayData()[a]);return}const i=Number(s.dataset.index);this._toggleSelection(this._getDisplayData()[i])}),t.addEventListener("keydown",e=>{const r=e.target;if(!r.classList.contains("list-item"))return;const s=Array.from(t.querySelectorAll(".list-item")),i=s.indexOf(r);switch(e.key){case"ArrowUp":e.preventDefault(),i>0&&s[i-1].focus();break;case"ArrowDown":e.preventDefault(),i<s.length-1&&s[i+1].focus();break;case" ":case"Enter":if(e.preventDefault(),this.selectionMode){const o=Number(r.dataset.index);this._toggleSelection(this._getDisplayData()[o])}break}}))}_updateListDisplay(){const t=this.root.querySelector(".list-wrapper");if(!t){this.render();return}const e=this._getDisplayData(),r=this.selectionMode,s=this.selectionMode==="multiple",i=s&&e.length>0&&this._selection.length===e.length;t.innerHTML=`
2352
- ${s&&this.showSelectAll?`
3508
+ `),this._attachListeners(),this._attachItemListeners(this.root.querySelector(".list")),this._updateControlsState()}_attachListeners(){if(this._listenersAttached)return;this._listenersAttached=!0;const e=this.root;e.addEventListener("input",r=>{const a=r.target;a.classList.contains("filter-input")&&(this.filterValue=a.value)}),e.addEventListener("change",r=>{r.target.classList.contains("select-all-checkbox")&&this._toggleSelectAll()}),e.addEventListener("click",r=>{const i=r.target.closest(".control-btn");i&&this._handleMoveAction(i.dataset.action)});let t=null;e.addEventListener("dragstart",r=>{const a=r.target.closest(".list-item");a&&(this._draggedIndex=Number(a.dataset.index),a.classList.add("dragging"),r.dataTransfer.effectAllowed="move")}),e.addEventListener("dragend",r=>{r.target.classList.remove("dragging"),this._draggedIndex=null,e.querySelectorAll(".drag-over").forEach(i=>i.classList.remove("drag-over")),t=null}),e.addEventListener("dragover",r=>{r.preventDefault();const a=r.target.closest(".list-item");!a||a.classList.contains("dragging")||(t&&t.classList.remove("drag-over"),a.classList.add("drag-over"),t=a)}),e.addEventListener("drop",r=>{if(r.preventDefault(),this._draggedIndex===null)return;const a=r.target.closest(".list-item");if(!a)return;const i=Number(a.dataset.index);a.classList.remove("drag-over"),t=null,this._moveItem(this._draggedIndex,i),this._draggedIndex=null}),this._updateControlsState()}_attachItemListeners(e){e&&(e.addEventListener("click",t=>{const r=t.target,a=r.closest(".list-item");if(!a)return;if(r.classList.contains("checkbox")){t.stopPropagation();const o=Number(a.dataset.index);this._toggleSelection(this._getDisplayData()[o]);return}const i=Number(a.dataset.index);this._toggleSelection(this._getDisplayData()[i])}),e.addEventListener("keydown",t=>{const r=t.target;if(!r.classList.contains("list-item"))return;const a=Array.from(e.querySelectorAll(".list-item")),i=a.indexOf(r);switch(t.key){case"ArrowUp":t.preventDefault(),i>0&&a[i-1].focus();break;case"ArrowDown":t.preventDefault(),i<a.length-1&&a[i+1].focus();break;case" ":case"Enter":if(t.preventDefault(),this.selectionMode){const s=Number(r.dataset.index);this._toggleSelection(this._getDisplayData()[s])}break}}))}_updateListDisplay(){const e=this.root.querySelector(".list-wrapper");if(!e){this.render();return}const t=this._getDisplayData(),r=this.selectionMode,a=this.selectionMode==="multiple",i=a&&t.length>0&&this._selection.length===t.length;e.innerHTML=`
3509
+ ${a&&this.showSelectAll?`
2353
3510
  <div class="select-all-bar" part="select-all-bar">
2354
3511
  <label>
2355
3512
  <input type="checkbox" class="select-all-checkbox"
@@ -2361,15 +3518,15 @@
2361
3518
  </div>
2362
3519
  `:""}
2363
3520
  <ul class="list" part="list" role="listbox"
2364
- aria-multiselectable="${s}"
3521
+ aria-multiselectable="${a}"
2365
3522
  tabindex="0">
2366
- ${e.length===0?`
3523
+ ${t.length===0?`
2367
3524
  <li class="empty-message" part="empty-message">
2368
3525
  ${this.filter?"Nenhum resultado encontrado":"Nenhum item disponivel"}
2369
3526
  </li>
2370
- `:e.map((a,o)=>{const n=this._getItemKey(a,o),c=this._getItemLabel(a),h=this._isSelected(a),g=this._optionTemplate?this._optionTemplate(a):u(c);return`
3527
+ `:t.map((o,s)=>{const n=this._getItemKey(o,s),l=this._getItemLabel(o),h=this._isSelected(o),_=this._optionTemplate?this._optionTemplate(o):c(l);return`
2371
3528
  <li class="list-item${h?" selected":""}" part="list-item"
2372
- data-index="${o}" data-key="${u(n)}"
3529
+ data-index="${s}" data-key="${c(n)}"
2373
3530
  role="option" aria-selected="${h}"
2374
3531
  ${this.dragdrop?'draggable="true"':""}
2375
3532
  tabindex="0">
@@ -2377,13 +3534,13 @@
2377
3534
  ${r?`
2378
3535
  <input type="checkbox" class="checkbox" part="checkbox"
2379
3536
  ${h?"checked":""}
2380
- aria-label="Selecionar ${u(c)}" />
3537
+ aria-label="Selecionar ${c(l)}" />
2381
3538
  `:""}
2382
- <span class="item-content" part="item-content">${g}</span>
3539
+ <span class="item-content" part="item-content">${_}</span>
2383
3540
  </li>
2384
3541
  `}).join("")}
2385
3542
  </ul>
2386
- `,this._attachListeners(),this._attachItemListeners(this.root.querySelector(".list"))}_handleMoveAction(t){if(!this._selection.length)return;const e=this._getDisplayData(),r=this._selection.map(s=>e.findIndex(i=>this._getItemKey(i,-1)===this._getItemKey(s,-1))).filter(s=>s>=0).sort((s,i)=>s-i);if(r.length!==0)switch(t){case"top":this._moveSelectedToStart(r);break;case"up":this._moveSelectedByOne(r,-1);break;case"down":this._moveSelectedByOne(r,1);break;case"bottom":this._moveSelectedToEnd(r);break}}_moveSelectedToStart(t){const e=[],r=[];for(const i of t){const a=this._getActualIndex(i);e.push(this._data[a]),r.push(a)}r.sort((i,a)=>a-i).forEach(i=>this._data.splice(i,1));const s=this._getActualIndex(0);this._data.splice(s,0,...e),this._applyFilter(),this._updateListDisplay(),this._updateControlsState(),this._emitReorder()}_moveSelectedToEnd(t){const e=[],r=[];for(const a of t){const o=this._getActualIndex(a);e.push(this._data[o]),r.push(o)}r.sort((a,o)=>o-a).forEach(a=>this._data.splice(a,1));const s=this._getDisplayData(),i=this._getActualIndex(s.length-1);this._data.splice(i+1,0,...e),this._applyFilter(),this._updateListDisplay(),this._updateControlsState(),this._emitReorder()}_moveSelectedByOne(t,e){if(this._getDisplayData().length===0)return;const s=t.map(o=>this._getActualIndex(o)).filter(o=>o>=0).sort((o,n)=>o-n);if(s.length===0||e<0&&s[0]<=0||e>0&&s[s.length-1]>=this._data.length-1)return;const i=s.map(o=>this._data[o]);for(let o=s.length-1;o>=0;o--)this._data.splice(s[o],1);let a;e<0?a=s[0]-1:a=s[s.length-1]-s.length+1+1,a=Math.max(0,Math.min(a,this._data.length)),this._data.splice(a,0,...i),this._applyFilter(),this._updateListDisplay(),this._updateControlsState(),this._emitReorder()}_updateControlsState(){const t=this._getDisplayData(),e=this._selection.map(s=>t.findIndex(i=>this._getItemKey(i,-1)===this._getItemKey(s,-1))).filter(s=>s>=0);this.root.querySelectorAll(".control-btn").forEach(s=>{const i=s.dataset.action;let a=e.length===0;if(!a)switch(i){case"top":case"up":a=e[0]===0;break;case"bottom":case"down":a=e[e.length-1]===t.length-1;break}s.disabled=a})}};Pt.styles=v`
3543
+ `,this._attachListeners(),this._attachItemListeners(this.root.querySelector(".list"))}_handleMoveAction(e){if(!this._selection.length)return;const t=this._getDisplayData(),r=this._selection.map(a=>t.findIndex(i=>this._getItemKey(i,-1)===this._getItemKey(a,-1))).filter(a=>a>=0).sort((a,i)=>a-i);if(r.length!==0)switch(e){case"top":this._moveSelectedToStart(r);break;case"up":this._moveSelectedByOne(r,-1);break;case"down":this._moveSelectedByOne(r,1);break;case"bottom":this._moveSelectedToEnd(r);break}}_moveSelectedToStart(e){const t=[],r=[];for(const i of e){const o=this._getActualIndex(i);t.push(this._data[o]),r.push(o)}r.sort((i,o)=>o-i).forEach(i=>this._data.splice(i,1));const a=this._getActualIndex(0);this._data.splice(a,0,...t),this._applyFilter(),this._updateListDisplay(),this._updateControlsState(),this._emitReorder()}_moveSelectedToEnd(e){const t=[],r=[];for(const o of e){const s=this._getActualIndex(o);t.push(this._data[s]),r.push(s)}r.sort((o,s)=>s-o).forEach(o=>this._data.splice(o,1));const a=this._getDisplayData(),i=this._getActualIndex(a.length-1);this._data.splice(i+1,0,...t),this._applyFilter(),this._updateListDisplay(),this._updateControlsState(),this._emitReorder()}_moveSelectedByOne(e,t){if(this._getDisplayData().length===0)return;const a=e.map(s=>this._getActualIndex(s)).filter(s=>s>=0).sort((s,n)=>s-n);if(a.length===0||t<0&&a[0]<=0||t>0&&a[a.length-1]>=this._data.length-1)return;const i=a.map(s=>this._data[s]);for(let s=a.length-1;s>=0;s--)this._data.splice(a[s],1);let o;t<0?o=a[0]-1:o=a[a.length-1]-a.length+1+1,o=Math.max(0,Math.min(o,this._data.length)),this._data.splice(o,0,...i),this._applyFilter(),this._updateListDisplay(),this._updateControlsState(),this._emitReorder()}_updateControlsState(){const e=this._getDisplayData(),t=this._selection.map(a=>e.findIndex(i=>this._getItemKey(i,-1)===this._getItemKey(a,-1))).filter(a=>a>=0);this.root.querySelectorAll(".control-btn").forEach(a=>{const i=a.dataset.action;let o=t.length===0;if(!o)switch(i){case"top":case"up":o=t[0]===0;break;case"bottom":case"down":o=t[t.length-1]===e.length-1;break}a.disabled=o})}};kt.styles=m`
2387
3544
 
2388
3545
  :host {
2389
3546
  display: block;
@@ -2458,7 +3615,7 @@
2458
3615
  @media (max-width: 640px) { .main-row { flex-direction: column; } .controls-bar { flex-direction: row; flex-wrap: wrap; justify-content: center; position: relative; } .control-group { flex-direction: row; } .control-group + .control-group { margin-top: 0; margin-left: 4px; padding-top: 0; padding-left: 4px; border-top: none; border-left: 1px solid var(--orderlist-border); } button.control-btn { width: 44px; height: 40px; } button.control-btn::after { display: none; } .list { max-height: 300px; } }
2459
3616
  @keyframes slideIn { from { opacity: 0; transform: translateX(-10px); } to { opacity: 1; transform: translateX(0); } }
2460
3617
  .list-item { animation: slideIn 0.2s ease-out; }
2461
- `;let ot=Pt;function Fe(){return k("fx-orderlist",ot)}Fe();const Ft=class Ft extends y{constructor(){super(...arguments),this._source=[],this._filteredSource=null,this._target=[],this._filteredTarget=null,this._sourceSelection=[],this._targetSelection=[],this._sourceFilterValue="",this._targetFilterValue="",this._filterListenersAttached=!1,this._optionTemplate=null}static get observedAttributes(){return["source","target","source-key","target-key","filter","filter-by","filter-placeholder","dragdrop","striped","selection-mode","show-select-all","source-label","target-label"]}set source(t){this._source=t,this._filteredSource=null,this.render()}get source(){return this._source}set target(t){this._target=t,this._filteredTarget=null,this.render()}get target(){return this._target}set sourceSelection(t){this._sourceSelection=t,this.render()}get sourceSelection(){return this._sourceSelection}set targetSelection(t){this._targetSelection=t,this.render()}get targetSelection(){return this._targetSelection}get sourceKey(){return this.getAttr("source-key","")}set sourceKey(t){this.setAttribute("source-key",t)}get targetKey(){return this.getAttr("target-key","")}set targetKey(t){this.setAttribute("target-key",t)}get filter(){return this.hasAttr("filter")}set filter(t){this.toggleAttr("filter",t)}get filterBy(){return this.getAttr("filter-by","label")}set filterBy(t){this.setAttribute("filter-by",t)}get filterPlaceholder(){return this.getAttr("filter-placeholder","Buscar...")}set filterPlaceholder(t){this.setAttribute("filter-placeholder",t)}get dragdrop(){return this.hasAttr("dragdrop")}set dragdrop(t){this.toggleAttr("dragdrop",t)}get striped(){return this.hasAttr("striped")}set striped(t){this.toggleAttr("striped",t)}get selectionMode(){const t=this.getAttr("selection-mode","");return t==="single"||t==="multiple"?t:""}set selectionMode(t){this.setAttribute("selection-mode",t)}get showSelectAll(){return this.hasAttr("show-select-all")}set showSelectAll(t){this.toggleAttr("show-select-all",t)}get sourceLabel(){return this.getAttr("source-label","Disponíveis")}set sourceLabel(t){this.setAttribute("source-label",t)}get targetLabel(){return this.getAttr("target-label","Selecionados")}set targetLabel(t){this.setAttribute("target-label",t)}get sourceFilterValue(){return this._sourceFilterValue}set sourceFilterValue(t){this._sourceFilterValue=t,this._applySourceFilter(),this._updateListDisplay()}get targetFilterValue(){return this._targetFilterValue}set targetFilterValue(t){this._targetFilterValue=t,this._applyTargetFilter(),this._updateListDisplay()}setOptionTemplate(t){this._optionTemplate=t,this.render()}connectedCallback(){this._parseSourceAttribute(),this._parseTargetAttribute(),super.connectedCallback()}attributeChangedCallback(){this.getAttr("source","")!==""&&this._parseSourceAttribute(),this.getAttr("target","")!==""&&this._parseTargetAttribute(),super.attributeChangedCallback()}_parseSourceAttribute(){const t=this.getAttr("source","");if(t)try{this._source=JSON.parse(t),this._filteredSource=null}catch(e){this._source=[]}}_parseTargetAttribute(){const t=this.getAttr("target","");if(t)try{this._target=JSON.parse(t),this._filteredTarget=null}catch(e){this._target=[]}}_applySourceFilter(){if(!this._sourceFilterValue){this._filteredSource=null;return}const t=this.filterBy.split(",").map(e=>e.trim());this._filteredSource=this._source.filter(e=>t.some(r=>{const s=e[r];return s==null?!1:String(s).toLowerCase().includes(this._sourceFilterValue.toLowerCase())}))}_applyTargetFilter(){if(!this._targetFilterValue){this._filteredTarget=null;return}const t=this.filterBy.split(",").map(e=>e.trim());this._filteredTarget=this._target.filter(e=>t.some(r=>{const s=e[r];return s==null?!1:String(s).toLowerCase().includes(this._targetFilterValue.toLowerCase())}))}_getDisplaySource(){return this._filteredSource||this._source}_getDisplayTarget(){return this._filteredTarget||this._target}_getItemKey(t,e,r){const s=r?this.sourceKey:this.targetKey;return s&&t[s]!=null?String(t[s]):t.id!=null?String(t.id):t.key!=null?String(t.key):t.label!=null?String(t.label):t.name!=null?String(t.name):t.value!=null?String(t.value):String(e)}_getItemLabel(t){const e=["label","name","title","text","value"];for(const r of e)if(t[r]!=null)return String(t[r]);return JSON.stringify(t)}_isSourceSelected(t,e){return this._sourceSelection.some(r=>this._getItemKey(r,-1,!0)===this._getItemKey(t,e,!0))}_isTargetSelected(t,e){return this._targetSelection.some(r=>this._getItemKey(r,-1,!1)===this._getItemKey(t,e,!1))}_emitMoveToTarget(){this.dispatchEvent(new CustomEvent("move-to-target",{bubbles:!0,composed:!0,detail:{items:[...this._sourceSelection],source:[...this._source],target:[...this._target]}}))}_emitMoveToSource(){this.dispatchEvent(new CustomEvent("move-to-source",{bubbles:!0,composed:!0,detail:{items:[...this._targetSelection],source:[...this._source],target:[...this._target]}}))}_emitSelectionChangeSource(){this.dispatchEvent(new CustomEvent("selection-change-source",{bubbles:!0,composed:!0,detail:{selection:[...this._sourceSelection]}}))}_emitSelectionChangeTarget(){this.dispatchEvent(new CustomEvent("selection-change-target",{bubbles:!0,composed:!0,detail:{selection:[...this._targetSelection]}}))}render(){const t=this._getDisplaySource(),e=this._getDisplayTarget(),r=this.selectionMode,s=r==="multiple"&&this.showSelectAll,i=t.length===0?`<li class="empty-message">${this.filter?"Nenhum resultado":"Nenhum item"}</li>`:t.map((c,h)=>`<li class="list-item${this._isSourceSelected(c,h)?" selected":""}" data-index="${h}" data-list="source" tabindex="0">${r?'<input type="checkbox" class="checkbox"'+(this._isSourceSelected(c,h)?" checked":"")+" />":""}<span class="item-content">${this._optionTemplate?this._optionTemplate(c):u(this._getItemLabel(c))}</span></li>`).join(""),a=e.length===0?`<li class="empty-message">${this.filter?"Nenhum resultado":"Nenhum selecionado"}</li>`:e.map((c,h)=>`<li class="list-item${this._isTargetSelected(c,h)?" selected":""}" data-index="${h}" data-list="target" tabindex="0">${r?'<input type="checkbox" class="checkbox"'+(this._isTargetSelected(c,h)?" checked":"")+" />":""}<span class="item-content">${this._optionTemplate?this._optionTemplate(c):u(this._getItemLabel(c))}</span></li>`).join(""),o=s?`<div class="select-all-bar" part="select-all-bar"><label><input type="checkbox" class="select-all-checkbox" data-list="source" ${this._sourceSelection.length>0&&this._sourceSelection.length===this._source.length?"checked":""} aria-label="Selecionar todos da origem" /> Selecionar Todos</label><span class="selection-count">${this._sourceSelection.length} selecionado(s)</span></div>`:"",n=s?`<div class="select-all-bar" part="select-all-bar"><label><input type="checkbox" class="select-all-checkbox" data-list="target" ${this._targetSelection.length>0&&this._targetSelection.length===this._target.length?"checked":""} aria-label="Selecionar todos do destino" /> Selecionar Todos</label><span class="selection-count">${this._targetSelection.length} selecionado(s)</span></div>`:"";this.setTemplate(`<div class="container"><div class="list-container"><div class="list-label">${u(this.sourceLabel)} (${this._source.length})</div>${this.filter?'<div class="filter-wrapper"><input type="text" class="filter-input source-filter" placeholder="'+this.filterPlaceholder+'" value="'+u(this._sourceFilterValue)+'" /></div>':""}${o}<div class="list-wrapper"><ul class="list source-list" role="listbox" tabindex="0">${i}</ul></div></div><div class="controls"><div class="control-group"><button class="control-btn" data-action="move-all-target" part="control-btn" aria-label="Mover todos para destino"><span class="control-btn-icon">»</span></button><button class="control-btn" data-action="move-target" part="control-btn" aria-label="Mover para destino"><span class="control-btn-icon">→</span></button></div><div class="control-group"><button class="control-btn" data-action="move-source" part="control-btn" aria-label="Mover para origem"><span class="control-btn-icon">←</span></button><button class="control-btn" data-action="move-all-source" part="control-btn" aria-label="Mover todos para origem"><span class="control-btn-icon">«</span></button></div></div><div class="list-container"><div class="list-label">${u(this.targetLabel)} (${this._target.length})</div>${this.filter?'<div class="filter-wrapper"><input type="text" class="filter-input target-filter" placeholder="'+this.filterPlaceholder+'" value="'+u(this._targetFilterValue)+'" /></div>':""}${n}<div class="list-wrapper"><ul class="list target-list" role="listbox" tabindex="0">${a}</ul></div></div></div>`),this._attachListeners()}_attachListeners(){this._filterListenersAttached||(this._filterListenersAttached=!0,this.root.addEventListener("input",t=>{const e=t.target;if(e.classList.contains("select-all-checkbox")){this._handleSelectAll(e);return}e.classList.contains("source-filter")?this.sourceFilterValue=e.value:e.classList.contains("target-filter")&&(this.targetFilterValue=e.value)}),this.root.addEventListener("click",t=>{const e=t.target,r=e.closest(".control-btn");if(r){switch(r.dataset.action){case"move-target":this._moveToTarget();break;case"move-all-target":this._moveAllToTarget();break;case"move-source":this._moveToSource();break;case"move-all-source":this._moveAllToSource();break}return}const s=e.closest(".list-item");if(!s)return;const i=s.dataset.list==="source",a=Number(s.dataset.index),o=(i?this._getDisplaySource():this._getDisplayTarget())[a];i?this._toggleSourceSelection(o,a):this._toggleTargetSelection(o,a)})),this._updateControlsState()}_handleSelectAll(t){t.dataset.list==="source"?(this._sourceSelection=t.checked?[...this._getDisplaySource()]:[],this._emitSelectionChangeSource()):(this._targetSelection=t.checked?[...this._getDisplayTarget()]:[],this._emitSelectionChangeTarget()),this._updateSelectionDisplay(),this._updateControlsState()}_updateSelectionDisplay(){const t=(e,r,s)=>{e&&e.querySelectorAll(".list-item").forEach(i=>{const a=Number(i.dataset.index),o=r(s()[a],a);i.classList.toggle("selected",o),i.setAttribute("aria-selected",String(o));const n=i.querySelector(".checkbox");n&&(n.checked=o)})};t(this.root.querySelector(".source-list"),(e,r)=>this._isSourceSelected(e,r),()=>this._getDisplaySource()),t(this.root.querySelector(".target-list"),(e,r)=>this._isTargetSelected(e,r),()=>this._getDisplayTarget()),this._updateSelectAllBars()}_updateSelectAllBars(){if(!(this.selectionMode==="multiple"&&this.showSelectAll))return;[{el:this.root.querySelector('.select-all-checkbox[data-list="source"]'),total:this._source.length,sel:this._sourceSelection.length},{el:this.root.querySelector('.select-all-checkbox[data-list="target"]'),total:this._target.length,sel:this._targetSelection.length}].forEach(({el:e,total:r,sel:s})=>{var a;if(!e)return;e.checked=r>0&&s===r;const i=(a=e.closest(".select-all-bar"))==null?void 0:a.querySelector(".selection-count");i&&(i.textContent=`${s} selecionado(s)`)})}_updateControlsState(){this.root.querySelectorAll(".control-btn").forEach(t=>{const e=t.dataset.action;t.disabled=e==="move-target"&&this._sourceSelection.length===0||e==="move-all-target"&&this._source.length===0||e==="move-source"&&this._targetSelection.length===0||e==="move-all-source"&&this._target.length===0})}_moveToTarget(){if(!this._sourceSelection.length)return;const t=[...this._sourceSelection];this._source=this._source.filter(e=>!t.some(r=>this._getItemKey(r,-1,!0)===this._getItemKey(e,-1,!0))),this._target=[...this._target,...t],this._sourceSelection=[],this._filteredSource=null,this._filteredTarget=null,this._updateListDisplay(),this._updateControlsState(),this._emitMoveToTarget()}_moveToSource(){if(!this._targetSelection.length)return;const t=[...this._targetSelection];this._target=this._target.filter(e=>!t.some(r=>this._getItemKey(r,-1,!1)===this._getItemKey(e,-1,!1))),this._source=[...this._source,...t],this._targetSelection=[],this._filteredSource=null,this._filteredTarget=null,this._updateListDisplay(),this._updateControlsState(),this._emitMoveToSource()}_moveAllToTarget(){const t=[...this._source];this._source=[],this._target=[...this._target,...t],this._sourceSelection=[],this._filteredSource=null,this._filteredTarget=null,this._updateListDisplay(),this._updateControlsState(),this._emitMoveToTarget()}_moveAllToSource(){const t=[...this._target];this._target=[],this._source=[...this._source,...t],this._targetSelection=[],this._filteredSource=null,this._filteredTarget=null,this._updateListDisplay(),this._updateControlsState(),this._emitMoveToSource()}_toggleSourceSelection(t,e){const r=this.selectionMode||"single",s=this._getItemKey(t,e,!0),i=this._sourceSelection.findIndex(a=>this._getItemKey(a,-1,!0)===s);i>=0?this._sourceSelection.splice(i,1):r==="multiple"?this._sourceSelection.push(t):this._sourceSelection=[t],this._emitSelectionChangeSource(),this._updateSelectionDisplay(),this._updateControlsState()}_toggleTargetSelection(t,e){const r=this.selectionMode||"single",s=this._getItemKey(t,e,!1),i=this._targetSelection.findIndex(a=>this._getItemKey(a,-1,!1)===s);i>=0?this._targetSelection.splice(i,1):r==="multiple"?this._targetSelection.push(t):this._targetSelection=[t],this._emitSelectionChangeTarget(),this._updateSelectionDisplay(),this._updateControlsState()}_updateListDisplay(){var h,g;const t=(h=this.root.querySelector(".source-list"))==null?void 0:h.parentElement,e=(g=this.root.querySelector(".target-list"))==null?void 0:g.parentElement,r=this.root.querySelector(".list-container:first-of-type .list-label"),s=this.root.querySelector(".list-container:last-of-type .list-label");if(!t||!e){this.render();return}const i=this._getDisplaySource(),a=this._getDisplayTarget(),o=this.selectionMode,n=i.length===0?`<li class="empty-message" part="empty-message">${this.filter?"Nenhum resultado":"Nenhum item"}</li>`:i.map((f,d)=>`<li class="list-item${this._isSourceSelected(f,d)?" selected":""}" part="list-item" data-index="${d}" data-list="source" role="option" aria-selected="${this._isSourceSelected(f,d)}" tabindex="0">${o?'<input type="checkbox" class="checkbox" part="checkbox"'+(this._isSourceSelected(f,d)?" checked":"")+" />":""}<span class="item-content" part="item-content">${this._optionTemplate?this._optionTemplate(f):u(this._getItemLabel(f))}</span></li>`).join(""),c=a.length===0?`<li class="empty-message" part="empty-message">${this.filter?"Nenhum resultado":"Nenhum selecionado"}</li>`:a.map((f,d)=>`<li class="list-item${this._isTargetSelected(f,d)?" selected":""}" part="list-item" data-index="${d}" data-list="target" role="option" aria-selected="${this._isTargetSelected(f,d)}" tabindex="0">${o?'<input type="checkbox" class="checkbox" part="checkbox"'+(this._isTargetSelected(f,d)?" checked":"")+" />":""}<span class="item-content" part="item-content">${this._optionTemplate?this._optionTemplate(f):u(this._getItemLabel(f))}</span></li>`).join("");t.innerHTML=`<ul class="list source-list" role="listbox" tabindex="0">${n}</ul>`,e.innerHTML=`<ul class="list target-list" role="listbox" tabindex="0">${c}</ul>`,r&&(r.textContent=`${this.sourceLabel} (${this._source.length})`),s&&(s.textContent=`${this.targetLabel} (${this._target.length})`),this._updateSelectAllBars(),this._attachListeners()}};Ft.styles=v`
3618
+ `;let Se=kt;function Hr(){return b("fx-orderlist",Se)}Hr();const At=class At extends g{constructor(){super(...arguments),this._source=[],this._filteredSource=null,this._target=[],this._filteredTarget=null,this._sourceSelection=[],this._targetSelection=[],this._sourceFilterValue="",this._targetFilterValue="",this._filterListenersAttached=!1,this._optionTemplate=null}static get observedAttributes(){return["source","target","source-key","target-key","filter","filter-by","filter-placeholder","dragdrop","striped","selection-mode","show-select-all","source-label","target-label"]}set source(e){this._source=e,this._filteredSource=null,this.render()}get source(){return this._source}set target(e){this._target=e,this._filteredTarget=null,this.render()}get target(){return this._target}set sourceSelection(e){this._sourceSelection=e,this.render()}get sourceSelection(){return this._sourceSelection}set targetSelection(e){this._targetSelection=e,this.render()}get targetSelection(){return this._targetSelection}get sourceKey(){return this.getAttr("source-key","")}set sourceKey(e){this.setAttribute("source-key",e)}get targetKey(){return this.getAttr("target-key","")}set targetKey(e){this.setAttribute("target-key",e)}get filter(){return this.hasAttr("filter")}set filter(e){this.toggleAttr("filter",e)}get filterBy(){return this.getAttr("filter-by","label")}set filterBy(e){this.setAttribute("filter-by",e)}get filterPlaceholder(){return this.getAttr("filter-placeholder","Buscar...")}set filterPlaceholder(e){this.setAttribute("filter-placeholder",e)}get dragdrop(){return this.hasAttr("dragdrop")}set dragdrop(e){this.toggleAttr("dragdrop",e)}get striped(){return this.hasAttr("striped")}set striped(e){this.toggleAttr("striped",e)}get selectionMode(){const e=this.getAttr("selection-mode","");return e==="single"||e==="multiple"?e:""}set selectionMode(e){this.setAttribute("selection-mode",e)}get showSelectAll(){return this.hasAttr("show-select-all")}set showSelectAll(e){this.toggleAttr("show-select-all",e)}get sourceLabel(){return this.getAttr("source-label","Disponíveis")}set sourceLabel(e){this.setAttribute("source-label",e)}get targetLabel(){return this.getAttr("target-label","Selecionados")}set targetLabel(e){this.setAttribute("target-label",e)}get sourceFilterValue(){return this._sourceFilterValue}set sourceFilterValue(e){this._sourceFilterValue=e,this._applySourceFilter(),this._updateListDisplay()}get targetFilterValue(){return this._targetFilterValue}set targetFilterValue(e){this._targetFilterValue=e,this._applyTargetFilter(),this._updateListDisplay()}setOptionTemplate(e){this._optionTemplate=e,this.render()}connectedCallback(){this._parseSourceAttribute(),this._parseTargetAttribute(),super.connectedCallback()}attributeChangedCallback(e,t,r){this.getAttr("source","")!==""&&this._parseSourceAttribute(),this.getAttr("target","")!==""&&this._parseTargetAttribute(),super.attributeChangedCallback(e,t,r)}_parseSourceAttribute(){const e=this.getAttr("source","");if(e)try{this._source=JSON.parse(e),this._filteredSource=null}catch(t){this._source=[]}}_parseTargetAttribute(){const e=this.getAttr("target","");if(e)try{this._target=JSON.parse(e),this._filteredTarget=null}catch(t){this._target=[]}}_applySourceFilter(){if(!this._sourceFilterValue){this._filteredSource=null;return}const e=this.filterBy.split(",").map(t=>t.trim());this._filteredSource=this._source.filter(t=>e.some(r=>{const a=t[r];return a==null?!1:String(a).toLowerCase().includes(this._sourceFilterValue.toLowerCase())}))}_applyTargetFilter(){if(!this._targetFilterValue){this._filteredTarget=null;return}const e=this.filterBy.split(",").map(t=>t.trim());this._filteredTarget=this._target.filter(t=>e.some(r=>{const a=t[r];return a==null?!1:String(a).toLowerCase().includes(this._targetFilterValue.toLowerCase())}))}_getDisplaySource(){return this._filteredSource||this._source}_getDisplayTarget(){return this._filteredTarget||this._target}_getItemKey(e,t,r){const a=r?this.sourceKey:this.targetKey;return a&&e[a]!=null?String(e[a]):e.id!=null?String(e.id):e.key!=null?String(e.key):e.label!=null?String(e.label):e.name!=null?String(e.name):e.value!=null?String(e.value):String(t)}_getItemLabel(e){const t=["label","name","title","text","value"];for(const r of t)if(e[r]!=null)return String(e[r]);return JSON.stringify(e)}_isSourceSelected(e,t){return this._sourceSelection.some(r=>this._getItemKey(r,-1,!0)===this._getItemKey(e,t,!0))}_isTargetSelected(e,t){return this._targetSelection.some(r=>this._getItemKey(r,-1,!1)===this._getItemKey(e,t,!1))}_emitMoveToTarget(){this.dispatchEvent(new CustomEvent("move-to-target",{bubbles:!0,composed:!0,detail:{items:[...this._sourceSelection],source:[...this._source],target:[...this._target]}}))}_emitMoveToSource(){this.dispatchEvent(new CustomEvent("move-to-source",{bubbles:!0,composed:!0,detail:{items:[...this._targetSelection],source:[...this._source],target:[...this._target]}}))}_emitSelectionChangeSource(){this.dispatchEvent(new CustomEvent("selection-change-source",{bubbles:!0,composed:!0,detail:{selection:[...this._sourceSelection]}}))}_emitSelectionChangeTarget(){this.dispatchEvent(new CustomEvent("selection-change-target",{bubbles:!0,composed:!0,detail:{selection:[...this._targetSelection]}}))}render(){const e=this._getDisplaySource(),t=this._getDisplayTarget(),r=this.selectionMode,a=r==="multiple"&&this.showSelectAll,i=e.length===0?`<li class="empty-message">${this.filter?"Nenhum resultado":"Nenhum item"}</li>`:e.map((l,h)=>`<li class="list-item${this._isSourceSelected(l,h)?" selected":""}" data-index="${h}" data-list="source" tabindex="0">${r?'<input type="checkbox" class="checkbox"'+(this._isSourceSelected(l,h)?" checked":"")+" />":""}<span class="item-content">${this._optionTemplate?this._optionTemplate(l):c(this._getItemLabel(l))}</span></li>`).join(""),o=t.length===0?`<li class="empty-message">${this.filter?"Nenhum resultado":"Nenhum selecionado"}</li>`:t.map((l,h)=>`<li class="list-item${this._isTargetSelected(l,h)?" selected":""}" data-index="${h}" data-list="target" tabindex="0">${r?'<input type="checkbox" class="checkbox"'+(this._isTargetSelected(l,h)?" checked":"")+" />":""}<span class="item-content">${this._optionTemplate?this._optionTemplate(l):c(this._getItemLabel(l))}</span></li>`).join(""),s=a?`<div class="select-all-bar" part="select-all-bar"><label><input type="checkbox" class="select-all-checkbox" data-list="source" ${this._sourceSelection.length>0&&this._sourceSelection.length===this._source.length?"checked":""} aria-label="Selecionar todos da origem" /> Selecionar Todos</label><span class="selection-count">${this._sourceSelection.length} selecionado(s)</span></div>`:"",n=a?`<div class="select-all-bar" part="select-all-bar"><label><input type="checkbox" class="select-all-checkbox" data-list="target" ${this._targetSelection.length>0&&this._targetSelection.length===this._target.length?"checked":""} aria-label="Selecionar todos do destino" /> Selecionar Todos</label><span class="selection-count">${this._targetSelection.length} selecionado(s)</span></div>`:"";this.setTemplate(`<div class="container"><div class="list-container"><div class="list-label">${c(this.sourceLabel)} (${this._source.length})</div>${this.filter?'<div class="filter-wrapper"><input type="text" class="filter-input source-filter" placeholder="'+this.filterPlaceholder+'" value="'+c(this._sourceFilterValue)+'" /></div>':""}${s}<div class="list-wrapper"><ul class="list source-list" role="listbox" tabindex="0">${i}</ul></div></div><div class="controls"><div class="control-group"><button class="control-btn" data-action="move-all-target" part="control-btn" aria-label="Mover todos para destino"><span class="control-btn-icon">»</span></button><button class="control-btn" data-action="move-target" part="control-btn" aria-label="Mover para destino"><span class="control-btn-icon">→</span></button></div><div class="control-group"><button class="control-btn" data-action="move-source" part="control-btn" aria-label="Mover para origem"><span class="control-btn-icon">←</span></button><button class="control-btn" data-action="move-all-source" part="control-btn" aria-label="Mover todos para origem"><span class="control-btn-icon">«</span></button></div></div><div class="list-container"><div class="list-label">${c(this.targetLabel)} (${this._target.length})</div>${this.filter?'<div class="filter-wrapper"><input type="text" class="filter-input target-filter" placeholder="'+this.filterPlaceholder+'" value="'+c(this._targetFilterValue)+'" /></div>':""}${n}<div class="list-wrapper"><ul class="list target-list" role="listbox" tabindex="0">${o}</ul></div></div></div>`),this._attachListeners()}_attachListeners(){this._filterListenersAttached||(this._filterListenersAttached=!0,this.root.addEventListener("input",e=>{const t=e.target;if(t.classList.contains("select-all-checkbox")){this._handleSelectAll(t);return}t.classList.contains("source-filter")?this.sourceFilterValue=t.value:t.classList.contains("target-filter")&&(this.targetFilterValue=t.value)}),this.root.addEventListener("click",e=>{const t=e.target,r=t.closest(".control-btn");if(r){switch(r.dataset.action){case"move-target":this._moveToTarget();break;case"move-all-target":this._moveAllToTarget();break;case"move-source":this._moveToSource();break;case"move-all-source":this._moveAllToSource();break}return}const a=t.closest(".list-item");if(!a)return;const i=a.dataset.list==="source",o=Number(a.dataset.index),s=(i?this._getDisplaySource():this._getDisplayTarget())[o];i?this._toggleSourceSelection(s,o):this._toggleTargetSelection(s,o)})),this._updateControlsState()}_handleSelectAll(e){e.dataset.list==="source"?(this._sourceSelection=e.checked?[...this._getDisplaySource()]:[],this._emitSelectionChangeSource()):(this._targetSelection=e.checked?[...this._getDisplayTarget()]:[],this._emitSelectionChangeTarget()),this._updateSelectionDisplay(),this._updateControlsState()}_updateSelectionDisplay(){const e=(t,r,a)=>{t&&t.querySelectorAll(".list-item").forEach(i=>{const o=Number(i.dataset.index),s=r(a()[o],o);i.classList.toggle("selected",s),i.setAttribute("aria-selected",String(s));const n=i.querySelector(".checkbox");n&&(n.checked=s)})};e(this.root.querySelector(".source-list"),(t,r)=>this._isSourceSelected(t,r),()=>this._getDisplaySource()),e(this.root.querySelector(".target-list"),(t,r)=>this._isTargetSelected(t,r),()=>this._getDisplayTarget()),this._updateSelectAllBars()}_updateSelectAllBars(){if(!(this.selectionMode==="multiple"&&this.showSelectAll))return;[{el:this.root.querySelector('.select-all-checkbox[data-list="source"]'),total:this._source.length,sel:this._sourceSelection.length},{el:this.root.querySelector('.select-all-checkbox[data-list="target"]'),total:this._target.length,sel:this._targetSelection.length}].forEach(({el:t,total:r,sel:a})=>{var o;if(!t)return;t.checked=r>0&&a===r;const i=(o=t.closest(".select-all-bar"))==null?void 0:o.querySelector(".selection-count");i&&(i.textContent=`${a} selecionado(s)`)})}_updateControlsState(){this.root.querySelectorAll(".control-btn").forEach(e=>{const t=e.dataset.action;e.disabled=t==="move-target"&&this._sourceSelection.length===0||t==="move-all-target"&&this._source.length===0||t==="move-source"&&this._targetSelection.length===0||t==="move-all-source"&&this._target.length===0})}_moveToTarget(){if(!this._sourceSelection.length)return;const e=[...this._sourceSelection];this._source=this._source.filter(t=>!e.some(r=>this._getItemKey(r,-1,!0)===this._getItemKey(t,-1,!0))),this._target=[...this._target,...e],this._sourceSelection=[],this._filteredSource=null,this._filteredTarget=null,this._updateListDisplay(),this._updateControlsState(),this._emitMoveToTarget()}_moveToSource(){if(!this._targetSelection.length)return;const e=[...this._targetSelection];this._target=this._target.filter(t=>!e.some(r=>this._getItemKey(r,-1,!1)===this._getItemKey(t,-1,!1))),this._source=[...this._source,...e],this._targetSelection=[],this._filteredSource=null,this._filteredTarget=null,this._updateListDisplay(),this._updateControlsState(),this._emitMoveToSource()}_moveAllToTarget(){const e=[...this._source];this._source=[],this._target=[...this._target,...e],this._sourceSelection=[],this._filteredSource=null,this._filteredTarget=null,this._updateListDisplay(),this._updateControlsState(),this._emitMoveToTarget()}_moveAllToSource(){const e=[...this._target];this._target=[],this._source=[...this._source,...e],this._targetSelection=[],this._filteredSource=null,this._filteredTarget=null,this._updateListDisplay(),this._updateControlsState(),this._emitMoveToSource()}_toggleSourceSelection(e,t){const r=this.selectionMode||"single",a=this._getItemKey(e,t,!0),i=this._sourceSelection.findIndex(o=>this._getItemKey(o,-1,!0)===a);i>=0?this._sourceSelection.splice(i,1):r==="multiple"?this._sourceSelection.push(e):this._sourceSelection=[e],this._emitSelectionChangeSource(),this._updateSelectionDisplay(),this._updateControlsState()}_toggleTargetSelection(e,t){const r=this.selectionMode||"single",a=this._getItemKey(e,t,!1),i=this._targetSelection.findIndex(o=>this._getItemKey(o,-1,!1)===a);i>=0?this._targetSelection.splice(i,1):r==="multiple"?this._targetSelection.push(e):this._targetSelection=[e],this._emitSelectionChangeTarget(),this._updateSelectionDisplay(),this._updateControlsState()}_updateListDisplay(){var h,_;const e=(h=this.root.querySelector(".source-list"))==null?void 0:h.parentElement,t=(_=this.root.querySelector(".target-list"))==null?void 0:_.parentElement,r=this.root.querySelector(".list-container:first-of-type .list-label"),a=this.root.querySelector(".list-container:last-of-type .list-label");if(!e||!t){this.render();return}const i=this._getDisplaySource(),o=this._getDisplayTarget(),s=this.selectionMode,n=i.length===0?`<li class="empty-message" part="empty-message">${this.filter?"Nenhum resultado":"Nenhum item"}</li>`:i.map((u,p)=>`<li class="list-item${this._isSourceSelected(u,p)?" selected":""}" part="list-item" data-index="${p}" data-list="source" role="option" aria-selected="${this._isSourceSelected(u,p)}" tabindex="0">${s?'<input type="checkbox" class="checkbox" part="checkbox"'+(this._isSourceSelected(u,p)?" checked":"")+" />":""}<span class="item-content" part="item-content">${this._optionTemplate?this._optionTemplate(u):c(this._getItemLabel(u))}</span></li>`).join(""),l=o.length===0?`<li class="empty-message" part="empty-message">${this.filter?"Nenhum resultado":"Nenhum selecionado"}</li>`:o.map((u,p)=>`<li class="list-item${this._isTargetSelected(u,p)?" selected":""}" part="list-item" data-index="${p}" data-list="target" role="option" aria-selected="${this._isTargetSelected(u,p)}" tabindex="0">${s?'<input type="checkbox" class="checkbox" part="checkbox"'+(this._isTargetSelected(u,p)?" checked":"")+" />":""}<span class="item-content" part="item-content">${this._optionTemplate?this._optionTemplate(u):c(this._getItemLabel(u))}</span></li>`).join("");e.innerHTML=`<ul class="list source-list" role="listbox" tabindex="0">${n}</ul>`,t.innerHTML=`<ul class="list target-list" role="listbox" tabindex="0">${l}</ul>`,r&&(r.textContent=`${this.sourceLabel} (${this._source.length})`),a&&(a.textContent=`${this.targetLabel} (${this._target.length})`),this._updateSelectAllBars(),this._attachListeners()}};At.styles=m`
2462
3619
  :host {
2463
3620
  display: block;
2464
3621
  font-family: var(--fx-font-family);
@@ -2710,13 +3867,13 @@
2710
3867
  to { opacity: 1; transform: translateX(0); }
2711
3868
  }
2712
3869
  .list-item { animation: slideIn 0.2s ease-out; }
2713
- `;let nt=Ft;function Ve(){return k("fx-picklist",nt)}Ve();const Vt=class Vt extends y{constructor(){super(...arguments),this._mo=null,this._clickListenerAttached=!1}static get observedAttributes(){return["header","expanded","disabled"]}get header(){return this.getAttr("header","")}set header(t){this.setAttribute("header",t)}get value(){return this.getAttr("value","")}set value(t){this.setAttribute("value",t)}get expanded(){return this.hasAttr("expanded")}set expanded(t){this.toggleAttr("expanded",t)}get disabled(){return this.hasAttr("disabled")}set disabled(t){this.toggleAttr("disabled",t)}connectedCallback(){super.connectedCallback(),this._clickListenerAttached||(this._clickListenerAttached=!0,this.addEventListener("click",t=>{t.composedPath().some(r=>{var s;return(s=r.classList)==null?void 0:s.contains("header")})&&(this.disabled||this.dispatchEvent(new CustomEvent("fx-accordion-toggle",{bubbles:!0,composed:!0,detail:{panel:this}})))})),this._mo=new MutationObserver(()=>this.render()),this._mo.observe(this,{attributes:!0,attributeFilter:["expanded","header","disabled"]})}disconnectedCallback(){var t;(t=this._mo)==null||t.disconnect(),this._mo=null}render(){this.setTemplate(`
3870
+ `;let $e=At;function Yr(){return b("fx-picklist",$e)}Yr();const zt=class zt extends g{constructor(){super(...arguments),this._mo=null,this._clickListenerAttached=!1}static get observedAttributes(){return["header","expanded","disabled"]}get header(){return this.getAttr("header","")}set header(e){this.setAttribute("header",e)}get value(){return this.getAttr("value","")}set value(e){this.setAttribute("value",e)}get expanded(){return this.hasAttr("expanded")}set expanded(e){this.toggleAttr("expanded",e)}get disabled(){return this.hasAttr("disabled")}set disabled(e){this.toggleAttr("disabled",e)}connectedCallback(){super.connectedCallback(),this._clickListenerAttached||(this._clickListenerAttached=!0,this.addEventListener("click",e=>{e.composedPath().some(r=>{var a;return(a=r.classList)==null?void 0:a.contains("header")})&&(this.disabled||this.dispatchEvent(new CustomEvent("fx-accordion-toggle",{bubbles:!0,composed:!0,detail:{panel:this}})))})),this._mo=new MutationObserver(()=>this.render()),this._mo.observe(this,{attributes:!0,attributeFilter:["expanded","header","disabled"]})}disconnectedCallback(){var e;(e=this._mo)==null||e.disconnect(),this._mo=null}render(){this.setTemplate(`
2714
3871
  <div class="panel" part="panel">
2715
3872
  <button type="button" class="header" part="header" role="button"
2716
3873
  aria-expanded="${this.expanded}"
2717
3874
  ${this.disabled?'aria-disabled="true"':""}>
2718
3875
  <span class="header-text" part="header-text">
2719
- <slot name="header">${u(this.header)}</slot>
3876
+ <slot name="header">${c(this.header)}</slot>
2720
3877
  </span>
2721
3878
  <span class="chevron" part="chevron" aria-hidden="true">
2722
3879
  <svg width="14" height="14" viewBox="0 0 24 24" fill="none"
@@ -2731,7 +3888,7 @@
2731
3888
  </div>
2732
3889
  </div>
2733
3890
  </div>
2734
- `)}};Vt.styles=v`
3891
+ `)}};zt.styles=m`
2735
3892
  :host {
2736
3893
  display: block;
2737
3894
  font-family: var(--fx-font-family);
@@ -2799,11 +3956,11 @@
2799
3956
  color: var(--fx-text-muted);
2800
3957
  line-height: 1.6;
2801
3958
  }
2802
- `;let lt=Vt;const Bt=class Bt extends y{constructor(){super(...arguments),this._observer=null,this._initialized=!1,this._listenersAttached=!1}static get observedAttributes(){return["value","multiple"]}get multiple(){return this.hasAttr("multiple")}set multiple(t){this.toggleAttr("multiple",t)}get values(){return this.getAttr("value","").split(",").map(t=>t.trim()).filter(Boolean)}set values(t){this.setAttribute("value",t.join(","))}connectedCallback(){this._observer=new MutationObserver(()=>this._sync()),this._observer.observe(this,{childList:!0,subtree:!0}),super.connectedCallback(),queueMicrotask(()=>this._sync())}disconnectedCallback(){var t;(t=this._observer)==null||t.disconnect(),this._observer=null}render(){this.setTemplate(`
3959
+ `;let Ee=zt;const St=class St extends g{constructor(){super(...arguments),this._observer=null,this._initialized=!1,this._listenersAttached=!1}static get observedAttributes(){return["value","multiple"]}get multiple(){return this.hasAttr("multiple")}set multiple(e){this.toggleAttr("multiple",e)}get values(){return this.getAttr("value","").split(",").map(e=>e.trim()).filter(Boolean)}set values(e){this.setAttribute("value",e.join(","))}connectedCallback(){this._observer=new MutationObserver(()=>this._sync()),this._observer.observe(this,{childList:!0,subtree:!0}),super.connectedCallback(),queueMicrotask(()=>this._sync())}disconnectedCallback(){var e;(e=this._observer)==null||e.disconnect(),this._observer=null}render(){this.setTemplate(`
2803
3960
  <div class="accordion" part="accordion">
2804
3961
  <slot></slot>
2805
3962
  </div>
2806
- `),this._sync(),this._attachListeners()}get panels(){return Array.from(this.querySelectorAll("fx-accordion-panel"))}_sync(){const t=this.values,e=Array.from(this.querySelectorAll("fx-accordion-panel"));if(!this._initialized&&t.length===0&&e.length>0){this._initialized=!0;const r=e.find(s=>!s.hasAttribute("disabled"));if(r){this.values=[r.getAttribute("value")||"0"];return}}this._initialized=!0,e.forEach((r,s)=>{const i=r.getAttribute("value")||String(s);r.hasAttribute("value")||r.setAttribute("value",i),r.toggleAttribute("expanded",t.includes(i))})}_attachListeners(){this._listenersAttached||(this._listenersAttached=!0,this.addEventListener("fx-accordion-toggle",t=>{var r;const e=(r=t.detail)==null?void 0:r.panel;!e||e.disabled||this.toggle(e)}))}toggle(t){const e=t.value;let r=this.values;t.expanded?r=r.filter(s=>s!==e):this.multiple?r=[...r,e]:r=[e],this.values=r,this._sync(),this.dispatchEvent(new CustomEvent("change",{bubbles:!0,composed:!0,detail:{value:r}}))}open(t){const e=this.panels.find((r,s)=>(r.value||String(s))===t);e&&!e.expanded&&this.toggle(e)}close(t){const e=this.panels.find((r,s)=>(r.value||String(s))===t);e&&e.expanded&&this.toggle(e)}};Bt.styles=v`
3963
+ `),this._sync(),this._attachListeners()}get panels(){return Array.from(this.querySelectorAll("fx-accordion-panel"))}_sync(){const e=this.values,t=Array.from(this.querySelectorAll("fx-accordion-panel"));if(!this._initialized&&e.length===0&&t.length>0){this._initialized=!0;const r=t.find(a=>!a.hasAttribute("disabled"));if(r){this.values=[r.getAttribute("value")||"0"];return}}this._initialized=!0,t.forEach((r,a)=>{const i=r.getAttribute("value")||String(a);r.hasAttribute("value")||r.setAttribute("value",i),r.toggleAttribute("expanded",e.includes(i))})}_attachListeners(){this._listenersAttached||(this._listenersAttached=!0,this.addEventListener("fx-accordion-toggle",e=>{var r;const t=(r=e.detail)==null?void 0:r.panel;!t||t.disabled||this.toggle(t)}))}toggle(e){const t=e.value;let r=this.values;e.expanded?r=r.filter(a=>a!==t):this.multiple?r=[...r,t]:r=[t],this.values=r,this._sync(),this.dispatchEvent(new CustomEvent("change",{bubbles:!0,composed:!0,detail:{value:r}}))}open(e){const t=this.panels.find((r,a)=>(r.value||String(a))===e);t&&!t.expanded&&this.toggle(t)}close(e){const t=this.panels.find((r,a)=>(r.value||String(a))===e);t&&t.expanded&&this.toggle(t)}};St.styles=m`
2807
3964
  :host {
2808
3965
  display: block;
2809
3966
  font-family: var(--fx-font-family);
@@ -2816,4 +3973,4 @@
2816
3973
  overflow: hidden;
2817
3974
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
2818
3975
  }
2819
- `;let ct=Bt;function Be(){return k("fx-accordion",ct)}function Ke(){return k("fx-accordion-panel",lt)}Be(),Ke()});
3976
+ `;let Le=St;function Xr(){return b("fx-accordion",Le)}function Ur(){return b("fx-accordion-panel",Ee)}Xr(),Ur();const Tt=["10k","10mp","11mp","123","12mp","13mp","14mp","15mp","16mp","17mp","18_up_rating","18mp","19mp","1k","1k_plus","1x_mobiledata","1x_mobiledata_badge","20mp","21mp","22mp","23mp","24fps_select","24mp","2d","2d_2","2k","2k_plus","2mp","30fps","30fps_select","360","3d","3d_2","3d_rotation","3g_mobiledata","3g_mobiledata_badge","3k","3k_plus","3mp","3p","4g_mobiledata","4g_mobiledata_badge","4g_plus_mobiledata","4k","4k_plus","4mp","50mp","5g","5g_mobiledata_badge","5k","5k_plus","5mp","60fps","60fps_select","6_ft_apart","6k","6k_plus","6mp","7k","7k_plus","7mp","8k","8k_plus","8mp","9k","9k_plus","9mp","abc","ac_unit","access_alarm","access_alarms","access_time","access_time_filled","accessibility","accessibility_new","accessible","accessible_forward","accessible_menu","account_balance","account_balance_wallet","account_box","account_child","account_child_invert","account_circle","account_circle_filled","account_circle_off","account_tree","action_key","activity_zone","acupuncture","acute","ad","ad_group","ad_group_off","ad_off","ad_units","adaptive_audio_mic","adaptive_audio_mic_off","adb","add","add_2","add_a_photo","add_ad","add_alarm","add_alert","add_box","add_business","add_call","add_card","add_chart","add_circle","add_circle_outline","add_column_left","add_column_right","add_comment","add_diamond","add_home","add_home_work","add_ic_call","add_link","add_location","add_location_alt","add_moderator","add_notes","add_photo_alternate","add_reaction","add_road","add_row_above","add_row_below","add_shopping_cart","add_task","add_to_drive","add_to_home_screen","add_to_photos","add_to_queue","add_triangle","addchart","adf_scanner","adjust","admin_meds","admin_panel_settings","ads_click","agender","agriculture","air","air_freshener","air_purifier","air_purifier_gen","airline_seat_flat","airline_seat_flat_angled","airline_seat_individual_suite","airline_seat_legroom_extra","airline_seat_legroom_normal","airline_seat_legroom_reduced","airline_seat_recline_extra","airline_seat_recline_normal","airline_stops","airlines","airplane_ticket","airplanemode_active","airplanemode_inactive","airplay","airport_shuttle","airware","airwave","alarm","alarm_add","alarm_off","alarm_on","alarm_pause","alarm_smart_wake","album","align_center","align_end","align_flex_center","align_flex_end","align_flex_start","align_horizontal_center","align_horizontal_left","align_horizontal_right","align_items_stretch","align_justify_center","align_justify_flex_end","align_justify_flex_start","align_justify_space_around","align_justify_space_between","align_justify_space_even","align_justify_stretch","align_self_stretch","align_space_around","align_space_between","align_space_even","align_start","align_stretch","align_vertical_bottom","align_vertical_center","align_vertical_top","all_inbox","all_inclusive","all_match","all_out","allergies","allergy","alt_route","alternate_email","altitude","ambient_screen","ambulance","amend","amp_stories","analytics","anchor","android","android_cell_4_bar","android_cell_4_bar_alert","android_cell_4_bar_off","android_cell_4_bar_plus","android_cell_5_bar","android_cell_5_bar_alert","android_cell_5_bar_off","android_cell_5_bar_plus","android_cell_dual_4_bar","android_cell_dual_4_bar_alert","android_cell_dual_4_bar_plus","android_cell_dual_5_bar","android_cell_dual_5_bar_alert","android_cell_dual_5_bar_plus","android_wifi_3_bar","android_wifi_3_bar_alert","android_wifi_3_bar_lock","android_wifi_3_bar_off","android_wifi_3_bar_plus","android_wifi_3_bar_question","android_wifi_4_bar","android_wifi_4_bar_alert","android_wifi_4_bar_lock","android_wifi_4_bar_off","android_wifi_4_bar_plus","android_wifi_4_bar_question","animated_images","animation","announcement","antigravity","aod","aod_tablet","aod_watch","apartment","api","apk_document","apk_install","app_badging","app_blocking","app_promo","app_registration","app_settings_alt","app_shortcut","apparel","approval","approval_delegation","approval_delegation_off","apps","apps_outage","aq","aq_indoor","ar_on_you","ar_stickers","architecture","archive","area_chart","arming_countdown","arrow_and_edge","arrow_back","arrow_back_2","arrow_back_ios","arrow_back_ios_new","arrow_circle_down","arrow_circle_left","arrow_circle_right","arrow_circle_up","arrow_cool_down","arrow_downward","arrow_downward_alt","arrow_drop_down","arrow_drop_down_circle","arrow_drop_up","arrow_forward","arrow_forward_ios","arrow_insert","arrow_left","arrow_left_alt","arrow_menu_close","arrow_menu_open","arrow_or_edge","arrow_outward","arrow_range","arrow_right","arrow_right_alt","arrow_selector_tool","arrow_shape_up","arrow_shape_up_stack","arrow_shape_up_stack_2","arrow_split","arrow_top_left","arrow_top_right","arrow_upload_progress","arrow_upload_ready","arrow_upward","arrow_upward_alt","arrow_warm_up","arrows_input","arrows_left_right_circle","arrows_more_down","arrows_more_up","arrows_output","arrows_outward","arrows_up_down_circle","art_track","article","article_person","article_shortcut","artist","aspect_ratio","assessment","assignment","assignment_add","assignment_globe","assignment_ind","assignment_late","assignment_return","assignment_returned","assignment_turned_in","assist_walker","assistant","assistant_device","assistant_direction","assistant_navigation","assistant_on_hub","assistant_photo","assured_workload","asterisk","astrophotography_auto","astrophotography_off","atm","atr","attach_email","attach_file","attach_file_add","attach_file_off","attach_money","attachment","attractions","attribution","audio_capture","audio_description","audio_file","audio_video_receiver","audiotrack","auto_activity_zone","auto_awesome","auto_awesome_mosaic","auto_awesome_motion","auto_delete","auto_detect_voice","auto_draw_solid","auto_fix","auto_fix_high","auto_fix_normal","auto_fix_off","auto_graph","auto_label","auto_meeting_room","auto_mode","auto_read_pause","auto_read_play","auto_schedule","auto_stories","auto_stories_off","auto_timer","auto_towing","auto_transmission","auto_videocam","autofps_select","automation","autopause","autopay","autoplay","autorenew","autostop","av1","av_timer","avc","avg_pace","avg_time","avocado_bean","award_meal","award_star","azm","b_circle","baby_changing_station","back_hand","back_to_tab","background_dot_large","background_dot_small","background_grid_small","background_replace","backlight_high","backlight_high_off","backlight_low","backpack","backspace","backup","backup_table","badge","badge_critical_battery","badminton","bakery_dining","balance","balcony","ballot","bar_chart","bar_chart_4_bars","bar_chart_off","barcode","barcode_reader","barcode_scanner","barefoot","batch_prediction","bath_bedrock","bath_outdoor","bath_private","bath_public_large","bath_soak","bathroom","bathtub","battery_0_bar","battery_1_bar","battery_20","battery_2_bar","battery_30","battery_3_bar","battery_4_bar","battery_50","battery_5_bar","battery_60","battery_6_bar","battery_80","battery_90","battery_alert","battery_android_0","battery_android_1","battery_android_2","battery_android_3","battery_android_4","battery_android_5","battery_android_6","battery_android_alert","battery_android_bolt","battery_android_frame_1","battery_android_frame_2","battery_android_frame_3","battery_android_frame_4","battery_android_frame_5","battery_android_frame_6","battery_android_frame_alert","battery_android_frame_bolt","battery_android_frame_full","battery_android_frame_plus","battery_android_frame_question","battery_android_frame_share","battery_android_frame_shield","battery_android_full","battery_android_plus","battery_android_question","battery_android_share","battery_android_shield","battery_change","battery_charging_20","battery_charging_20_2","battery_charging_30","battery_charging_30_2","battery_charging_50","battery_charging_50_2","battery_charging_60","battery_charging_60_2","battery_charging_80","battery_charging_80_2","battery_charging_90","battery_charging_full","battery_charging_full_2","battery_error","battery_full","battery_full_alt","battery_horiz_000","battery_horiz_050","battery_horiz_075","battery_low","battery_plus","battery_profile","battery_saver","battery_share","battery_status_good","battery_std","battery_unknown","battery_vert_005","battery_vert_020","battery_vert_050","battery_very_low","beach_access","bed","bedroom_baby","bedroom_child","bedroom_parent","bedtime","bedtime_off","beenhere","beer_meal","bento","bia","bid_landscape","bid_landscape_disabled","bigtop_updates","bike_dock","bike_lane","bike_scooter","biotech","blanket","blender","blind","blinds","blinds_2","blinds_2_closed","blinds_closed","block","blood_pressure","bloodtype","bluetooth","bluetooth_audio","bluetooth_connected","bluetooth_disabled","bluetooth_drive","bluetooth_searching","blur_circular","blur_linear","blur_medium","blur_off","blur_on","blur_short","boat_bus","boat_railway","body_fat","body_system","bolt","bolt_boost","bomb","book","book_2","book_3","book_4","book_5","book_6","book_online","book_ribbon","bookmark","bookmark_add","bookmark_added","bookmark_bag","bookmark_border","bookmark_check","bookmark_flag","bookmark_heart","bookmark_manager","bookmark_remove","bookmark_stacks","bookmark_star","bookmarks","books_movies_and_music","border_all","border_bottom","border_clear","border_color","border_horizontal","border_inner","border_left","border_outer","border_right","border_style","border_top","border_vertical","borg","bottom_app_bar","bottom_drawer","bottom_navigation","bottom_panel_close","bottom_panel_open","bottom_right_click","bottom_sheets","box","box_add","box_edit","boy","brand_awareness","brand_family","branding_watermark","breakfast_dining","breaking_news","breaking_news_alt_1","breastfeeding","brick","briefcase_meal","brightness_1","brightness_2","brightness_3","brightness_4","brightness_5","brightness_6","brightness_7","brightness_alert","brightness_auto","brightness_empty","brightness_high","brightness_low","brightness_medium","bring_your_own_ip","broadcast_on_home","broadcast_on_personal","broken_image","browse","browse_activity","browse_gallery","browser_not_supported","browser_updated","brunch_dining","brush","bubble","bubble_chart","bubbles","bucket_check","bug_report","build","build_circle","bullet_chart","bungalow","burst_mode","bus_alert","bus_map_pin","bus_railway","business","business_center","business_chip","business_messages","buttons_alt","cabin","cable","cable_car","cached","cadence","cake","cake_add","calculate","calendar_add_on","calendar_apps_script","calendar_check","calendar_clock","calendar_lock","calendar_meal","calendar_meal_2","calendar_month","calendar_today","calendar_view_day","calendar_view_month","calendar_view_week","call","call_end","call_end_alt","call_log","call_made","call_merge","call_missed","call_missed_outgoing","call_quality","call_received","call_split","call_to_action","camera","camera_alt","camera_enhance","camera_front","camera_indoor","camera_outdoor","camera_rear","camera_roll","camera_video","cameraswitch","campaign","camping","cancel","cancel_presentation","cancel_schedule_send","candle","candlestick_chart","cannabis","captive_portal","capture","car_crash","car_defrost_left","car_defrost_low_left","car_defrost_low_right","car_defrost_mid_left","car_defrost_mid_low_left","car_defrost_mid_low_right","car_defrost_mid_right","car_defrost_right","car_fan_low_left","car_fan_low_mid_left","car_fan_low_right","car_fan_mid_left","car_fan_mid_low_right","car_fan_mid_right","car_fan_recirculate","car_fan_recirculate_2","car_gear","car_lock","car_mirror_heat","car_rental","car_repair","car_seat_off","car_tag","card_giftcard","card_membership","card_travel","cardio_load","cardiology","cards","cards_stack","cards_star","carpenter","carry_on_bag","carry_on_bag_checked","carry_on_bag_inactive","carry_on_bag_question","cases","casino","cast","cast_connected","cast_for_education","cast_pause","cast_warning","castle","category","category_search","celebration","cell_merge","cell_tower","cell_wifi","center_focus_strong","center_focus_weak","chair","chair_alt","chair_counter","chair_fireplace","chair_umbrella","chalet","change_circle","change_history","charger","charging_station","chart_data","chat","chat_add_on","chat_apps_script","chat_bubble","chat_bubble_off","chat_bubble_outline","chat_dashed","chat_error","chat_info","chat_paste_go","chat_paste_go_2","check","check_alert","check_box","check_box_outline_blank","check_circle","check_circle_filled","check_circle_outline","check_circle_unread","check_in_out","check_indeterminate_small","check_small","checkbook","checked_bag","checked_bag_question","checklist","checklist_rtl","checkroom","cheer","chef_hat","chess","chess_bishop","chess_bishop_2","chess_king","chess_king_2","chess_knight","chess_pawn","chess_pawn_2","chess_queen","chess_rook","chevron_backward","chevron_forward","chevron_left","chevron_line_up","chevron_right","child_care","child_friendly","child_hat","chip_extraction","chips","chrome_reader_mode","chromecast_2","chromecast_device","chronic","church","cinematic_blur","circle","circle_circle","circle_notifications","circles","circles_ext","clarify","class","clean_hands","cleaning","cleaning_bucket","cleaning_services","clear","clear_all","clear_day","clear_night","climate_mini_split","clinical_notes","clock_arrow_down","clock_arrow_up","clock_loader_10","clock_loader_20","clock_loader_40","clock_loader_60","clock_loader_80","clock_loader_90","close","close_fullscreen","close_small","closed_caption","closed_caption_add","closed_caption_disabled","closed_caption_off","cloud","cloud_alert","cloud_circle","cloud_done","cloud_download","cloud_lock","cloud_off","cloud_queue","cloud_sync","cloud_upload","cloudy","cloudy_filled","cloudy_snowing","co2","co_present","code","code_blocks","code_off","code_xml","coffee","coffee_maker","cognition","cognition_2","collapse_all","collapse_content","collections","collections_bookmark","color_lens","colorize","colors","combine_columns","comedy_mask","comic_bubble","comment","comment_bank","comments_disabled","commit","communication","communities","communities_filled","commute","compare","compare_arrows","compass_calibration","component_exchange","compost","compress","computer","computer_arrow_up","computer_cancel","computer_sound","concierge","conditions","confirmation_number","congenital","connect_without_contact","connected_tv","connecting_airports","construction","contact_emergency","contact_mail","contact_page","contact_phone","contact_phone_filled","contact_support","contactless","contactless_off","contacts","contacts_product","content_copy","content_cut","content_paste","content_paste_go","content_paste_off","content_paste_search","contextual_token","contextual_token_add","contract","contract_delete","contract_edit","contrast","contrast_circle","contrast_rtl_off","contrast_square","control_camera","control_point","control_point_duplicate","controller_gen","conversation","conversion_path","conversion_path_off","convert_to_text","conveyor_belt","cookie","cookie_off","cooking","cool_to_dry","copy_all","copyright","coronavirus","corporate_fare","cottage","counter_0","counter_1","counter_2","counter_3","counter_4","counter_5","counter_6","counter_7","counter_8","counter_9","countertops","create","create_new_folder","credit_card","credit_card_clock","credit_card_gear","credit_card_heart","credit_card_off","credit_score","crib","crisis_alert","crop","crop_16_9","crop_21_9","crop_2_3","crop_3_2","crop_5_4","crop_7_5","crop_9_16","crop_din","crop_free","crop_landscape","crop_original","crop_portrait","crop_rotate","crop_square","crossword","crowdsource","crown","cruelty_free","css","csv","currency_bitcoin","currency_exchange","currency_franc","currency_lira","currency_pound","currency_ruble","currency_rupee","currency_rupee_circle","currency_yen","currency_yuan","curtains","curtains_closed","custom_typography","cut","cycle","cyclone","dangerous","dark_mode","dashboard","dashboard_2","dashboard_2_add","dashboard_2_edit","dashboard_2_gear","dashboard_customize","data_alert","data_array","data_check","data_exploration","data_info_alert","data_loss_prevention","data_object","data_saver_off","data_saver_on","data_table","data_thresholding","data_usage","database","database_off","database_search","database_upload","dataset","dataset_linked","date_range","deblur","deceased","decimal_decrease","decimal_increase","deck","dehaze","delete","delete_forever","delete_history","delete_outline","delete_sweep","delivery_dining","delivery_truck_bolt","delivery_truck_speed","demography","density_large","density_medium","density_small","dentistry","departure_board","deployed_code","deployed_code_account","deployed_code_alert","deployed_code_history","deployed_code_update","dermatology","description","deselect","design_services","desk","deskphone","desktop_access_disabled","desktop_cloud","desktop_cloud_stack","desktop_landscape","desktop_landscape_add","desktop_mac","desktop_portrait","desktop_windows","destruction","details","detection_and_zone","detection_and_zone_off","detector","detector_alarm","detector_battery","detector_co","detector_offline","detector_smoke","detector_status","developer_board","developer_board_off","developer_guide","developer_mode","developer_mode_tv","device_band","device_hub","device_reset","device_thermostat","device_unknown","devices","devices_fold","devices_fold_2","devices_off","devices_other","devices_wearables","dew_point","diagnosis","diagonal_line","dialer_sip","dialogs","dialpad","diamond","diamond_shine","dictionary","difference","digital_out_of_home","digital_wellbeing","dine_heart","dine_in","dine_lamp","dining","dinner_dining","directions","directions_alt","directions_alt_off","directions_bike","directions_boat","directions_boat_filled","directions_bus","directions_bus_filled","directions_car","directions_car_filled","directions_off","directions_railway","directions_railway_2","directions_railway_filled","directions_run","directions_subway","directions_subway_filled","directions_transit","directions_transit_filled","directions_walk","directory_sync","dirty_lens","disabled_by_default","disabled_visible","disc_full","discover_tune","dishwasher","dishwasher_gen","display_add","display_external_input","display_settings","distance","diversity_1","diversity_2","diversity_3","diversity_4","dns","do_disturb","do_disturb_alt","do_disturb_off","do_disturb_on","do_not_disturb","do_not_disturb_alt","do_not_disturb_off","do_not_disturb_on","do_not_disturb_on_total_silence","do_not_step","do_not_touch","dock","dock_to_bottom","dock_to_left","dock_to_right","docs","docs_add_on","docs_apps_script","document_scanner","document_search","domain","domain_add","domain_disabled","domain_disabled_check","domain_verification","domain_verification_off","domino_mask","done","done_all","done_outline","donut_large","donut_small","door_back","door_front","door_open","door_sensor","door_sliding","doorbell","doorbell_3p","doorbell_chime","double_arrow","downhill_skiing","download","download_2","download_done","download_for_offline","downloading","draft","draft_orders","drafts","drag_click","drag_handle","drag_indicator","drag_pan","draw","draw_abstract","draw_collage","drawing_recognition","dresser","drive_eta","drive_export","drive_file_move","drive_file_move_outline","drive_file_move_rtl","drive_file_rename","drive_file_rename_outline","drive_folder_upload","drone","drone_2","dropdown","dropdown_menu","dropper_eye","dry","dry_cleaning","dual_screen","duo","dvr","dynamic_feed","dynamic_form","e911_avatar","e911_emergency","e_mobiledata","e_mobiledata_badge","ear_sound","earbud_case","earbud_left","earbud_right","earbuds","earbuds_2","earbuds_battery","early_on","earthquake","east","ecg","ecg_heart","eco","eda","edgesensor_high","edgesensor_low","edit","edit_arrow_down","edit_arrow_up","edit_attributes","edit_audio","edit_calendar","edit_document","edit_location","edit_location_alt","edit_note","edit_notifications","edit_off","edit_road","edit_square","editor_choice","egg","egg_alt","eject","elderly","elderly_woman","electric_bike","electric_bolt","electric_car","electric_meter","electric_moped","electric_rickshaw","electric_scooter","electrical_services","elevation","elevator","email","emergency","emergency_heat","emergency_heat_2","emergency_home","emergency_recording","emergency_share","emergency_share_off","emoji_emotions","emoji_events","emoji_flags","emoji_food_beverage","emoji_language","emoji_nature","emoji_objects","emoji_people","emoji_symbols","emoji_transportation","emoticon","empty_dashboard","enable","encrypted","encrypted_add","encrypted_add_circle","encrypted_minus_circle","encrypted_off","endocrinology","energy","energy_program_saving","energy_program_time_used","energy_savings_leaf","engineering","enhanced_encryption","ent","enterprise","enterprise_off","equal","equalizer","eraser_size_1","eraser_size_2","eraser_size_3","eraser_size_4","eraser_size_5","error","error_circle_rounded","error_med","error_outline","escalator","escalator_warning","euro","euro_symbol","ev_charger","ev_mobiledata_badge","ev_shadow","ev_shadow_add","ev_shadow_minus","ev_station","event","event_available","event_busy","event_list","event_note","event_repeat","event_seat","event_upcoming","exclamation","exercise","exit_to_app","expand","expand_all","expand_circle_down","expand_circle_right","expand_circle_up","expand_content","expand_less","expand_more","expansion_panels","expension_panels","experiment","explicit","explore","explore_nearby","explore_off","explosion","export_notes","exposure","exposure_neg_1","exposure_neg_2","exposure_plus_1","exposure_plus_2","exposure_zero","extension","extension_off","eye_tracking","eyebrow","eyeglasses","eyeglasses_2","eyeglasses_2_sound","eyeglasses_3","face","face_2","face_3","face_4","face_5","face_6","face_down","face_left","face_nod","face_retouching_natural","face_retouching_off","face_right","face_shake","face_unlock","face_up","fact_check","factory","falling","familiar_face_and_zone","family_group","family_history","family_home","family_link","family_restroom","family_star","fan_focus","fan_indirect","farsight_digital","fast_forward","fast_rewind","fastfood","faucet","favorite","favorite_border","fax","feature_search","featured_play_list","featured_seasonal_and_gifts","featured_video","feed","feedback","female","femur","femur_alt","fence","fertile","festival","fiber_dvr","fiber_manual_record","fiber_new","fiber_pin","fiber_smart_record","file_copy","file_copy_off","file_download","file_download_done","file_download_off","file_export","file_json","file_map","file_map_stack","file_open","file_png","file_present","file_save","file_save_off","file_upload","file_upload_off","files","filter","filter_1","filter_2","filter_3","filter_4","filter_5","filter_6","filter_7","filter_8","filter_9","filter_9_plus","filter_alt","filter_alt_off","filter_arrow_right","filter_b_and_w","filter_center_focus","filter_drama","filter_frames","filter_hdr","filter_list","filter_list_alt","filter_list_off","filter_none","filter_retrolux","filter_tilt_shift","filter_vintage","finance","finance_chip","finance_mode","find_in_page","find_replace","fingerprint","fingerprint_off","fire_check","fire_extinguisher","fire_hydrant","fire_truck","fireplace","first_page","fit_page","fit_page_height","fit_page_width","fit_screen","fit_width","fitness_center","fitness_tracker","fitness_trackers","flag","flag_2","flag_check","flag_circle","flag_filled","flaky","flare","flash_auto","flash_off","flash_on","flashlight_off","flashlight_on","flatware","flex_direction","flex_no_wrap","flex_wrap","flight","flight_class","flight_land","flight_takeoff","flights_and_hotels","flightsmode","flip","flip_camera_android","flip_camera_ios","flip_to_back","flip_to_front","float_landscape_2","float_portrait_2","flood","floor","floor_lamp","flourescent","flowchart","flowsheet","fluid","fluid_balance","fluid_med","fluorescent","flutter","flutter_dash","flyover","fmd_bad","fmd_good","foggy","folded_hands","folder","folder_check","folder_check_2","folder_code","folder_copy","folder_data","folder_delete","folder_eye","folder_info","folder_limited","folder_managed","folder_match","folder_off","folder_open","folder_shared","folder_special","folder_supervised","folder_zip","follow_the_signs","font_download","font_download_off","food_bank","foot_bones","footprint","for_you","forest","fork_chart","fork_left","fork_right","fork_spoon","forklift","format_align_center","format_align_justify","format_align_left","format_align_right","format_bold","format_clear","format_color_fill","format_color_reset","format_color_text","format_h1","format_h2","format_h3","format_h4","format_h5","format_h6","format_image_back","format_image_break_left","format_image_break_right","format_image_front","format_image_inline_left","format_image_inline_right","format_image_left","format_image_right","format_indent_decrease","format_indent_increase","format_ink_highlighter","format_italic","format_letter_spacing","format_letter_spacing_2","format_letter_spacing_standard","format_letter_spacing_wide","format_letter_spacing_wider","format_line_spacing","format_list_bulleted","format_list_bulleted_add","format_list_numbered","format_list_numbered_rtl","format_overline","format_paint","format_paint_off","format_paragraph","format_quote","format_quote_off","format_shapes","format_size","format_strikethrough","format_text_clip","format_text_overflow","format_text_wrap","format_textdirection_l_to_r","format_textdirection_r_to_l","format_textdirection_vertical","format_underlined","format_underlined_squiggle","forms_add_on","forms_apps_script","fort","forum","forward","forward_10","forward_30","forward_5","forward_circle","forward_media","forward_to_inbox","foundation","fragrance","frame_bug","frame_exclamation","frame_inspect","frame_person","frame_person_mic","frame_person_off","frame_reload","frame_source","free_breakfast","free_cancellation","front_hand","front_loader","full_coverage","full_hd","full_stacked_bar_chart","fullscreen","fullscreen_exit","fullscreen_portrait","function","functions","funicular","g_mobiledata","g_mobiledata_badge","g_translate","gallery_thumbnail","game_bumper_left","game_bumper_right","game_button_l","game_button_l1","game_button_l2","game_button_r","game_button_r1","game_button_r2","game_button_zl","game_button_zr","game_stick_l3","game_stick_left","game_stick_r3","game_stick_right","game_trigger_left","game_trigger_right","gamepad","gamepad_circle_down","gamepad_circle_left","gamepad_circle_right","gamepad_circle_up","gamepad_down","gamepad_left","gamepad_right","gamepad_up","games","garage","garage_check","garage_door","garage_door_open","garage_home","garage_money","garden_cart","gas_meter","gastroenterology","gate","gavel","general_device","generating_tokens","genetics","genres","gesture","gesture_select","get_app","gif","gif_2","gif_box","girl","gite","glass_cup","globe","globe_2_cancel","globe_2_question","globe_asia","globe_book","globe_clock","globe_location_pin","globe_uk","glucose","glyphs","go_to_line","golf_course","gondola_lift","google_home_devices","google_plus_reshare","google_tv_remote","google_wifi","gpp_bad","gpp_good","gpp_maybe","gps_fixed","gps_not_fixed","gps_off","grade","gradient","grading","grain","graph_1","graph_2","graph_3","graph_4","graph_5","graph_6","graph_7","graph_8","graphic_eq","graphic_eq_off","grass","grid_3x3","grid_3x3_off","grid_4x4","grid_goldenratio","grid_guides","grid_layout_side","grid_off","grid_on","grid_view","grocery","group","group_add","group_off","group_remove","group_search","group_work","grouped_bar_chart","groups","groups_2","groups_3","guardian","gynecology","h_mobiledata","h_mobiledata_badge","h_plus_mobiledata","h_plus_mobiledata_badge","hail","hallway","hanami_dango","hand_bones","hand_gesture","hand_gesture_off","hand_meal","hand_package","handheld_controller","handshake","handwriting_recognition","handyman","hangout_video","hangout_video_off","hard_disk","hard_drive","hard_drive_2","hardware","hd","hdr_auto","hdr_auto_select","hdr_enhanced_select","hdr_off","hdr_off_select","hdr_on","hdr_on_select","hdr_plus","hdr_plus_off","hdr_strong","hdr_weak","head_mounted_device","headphones","headphones_battery","headset","headset_mic","headset_off","healing","health_and_beauty","health_and_safety","health_cross","health_metrics","heap_snapshot_large","heap_snapshot_multiple","heap_snapshot_thumbnail","hearing","hearing_aid","hearing_aid_disabled","hearing_aid_disabled_left","hearing_aid_left","hearing_disabled","heart_broken","heart_check","heart_minus","heart_plus","heart_smile","heat","heat_pump","heat_pump_balance","height","helicopter","help","help_center","help_clinic","help_outline","hematology","hevc","hexagon","hide","hide_image","hide_source","high_chair","high_density","high_quality","high_quality_off","high_res","highlight","highlight_alt","highlight_keyboard_focus","highlight_mouse_cursor","highlight_off","highlight_text_cursor","highlighter_size_1","highlighter_size_2","highlighter_size_3","highlighter_size_4","highlighter_size_5","hiking","history","history_2","history_edu","history_off","history_toggle_off","hive","hls","hls_off","holiday_village","home","home_and_garden","home_app_logo","home_filled","home_health","home_improvement_and_tools","home_iot_device","home_max","home_max_dots","home_mini","home_pin","home_repair_service","home_speaker","home_storage","home_storage_gear","home_work","horizontal_align_center","horizontal_align_left","horizontal_align_right","horizontal_distribute","horizontal_rule","horizontal_split","host","hot_tub","hotel","hotel_class","hourglass","hourglass_arrow_down","hourglass_arrow_up","hourglass_bottom","hourglass_check","hourglass_disabled","hourglass_empty","hourglass_full","hourglass_pause","hourglass_top","house","house_siding","house_with_shield","houseboat","household_supplies","hov","how_to_reg","how_to_vote","hr_resting","html","http","https","hub","humerus","humerus_alt","humidity_high","humidity_indoor","humidity_low","humidity_mid","humidity_percentage","hvac","hvac_max_defrost","ice_skating","icecream","id_card","id_card_2","identity_aware_proxy","identity_platform","ifl","iframe","iframe_off","image","image_arrow_up","image_aspect_ratio","image_inset","image_not_supported","image_search","imagesearch_roller","imagesmode","immunology","import_contacts","import_export","important_devices","in_home_mode","inactive_order","inbox","inbox_customize","inbox_text","inbox_text_asterisk","inbox_text_person","inbox_text_share","incomplete_circle","indeterminate_check_box","indeterminate_question_box","info","info_i","infrared","ink_eraser","ink_eraser_off","ink_highlighter","ink_highlighter_move","ink_highlighter_off","ink_marker","ink_pen","ink_selection","inpatient","input","input_circle","insert_chart","insert_chart_filled","insert_chart_outlined","insert_comment","insert_drive_file","insert_emoticon","insert_invitation","insert_link","insert_page_break","insert_photo","insert_text","insights","install_desktop","install_mobile","instant_mix","integration_instructions","interactive_space","interests","interpreter_mode","inventory","inventory_2","invert_colors","invert_colors_off","ios","ios_share","iron","iso","jamboard_kiosk","japanese_curry","japanese_flag","javascript","jewelry","join","join_full","join_inner","join_left","join_right","joystick","jump_to_element","kanji_alcohol","kayaking","kebab_dining","keep","keep_off","keep_pin","keep_public","kettle","key","key_off","key_vertical","key_visualizer","keyboard","keyboard_alt","keyboard_arrow_down","keyboard_arrow_left","keyboard_arrow_right","keyboard_arrow_up","keyboard_backspace","keyboard_capslock","keyboard_capslock_badge","keyboard_command_key","keyboard_control_key","keyboard_double_arrow_down","keyboard_double_arrow_left","keyboard_double_arrow_right","keyboard_double_arrow_up","keyboard_external_input","keyboard_full","keyboard_hide","keyboard_keys","keyboard_lock","keyboard_lock_off","keyboard_off","keyboard_onscreen","keyboard_option_key","keyboard_previous_language","keyboard_return","keyboard_tab","keyboard_tab_rtl","keyboard_voice","kid_star","king_bed","kitchen","kitesurfing","lab_panel","lab_profile","lab_research","label","label_important","label_important_outline","label_off","label_outline","labs","lan","landscape","landscape_2","landscape_2_edit","landscape_2_off","landslide","language","language_chinese_array","language_chinese_cangjie","language_chinese_dayi","language_chinese_pinyin","language_chinese_quick","language_chinese_wubi","language_french","language_gb_english","language_international","language_japanese_kana","language_korean_latin","language_pinyin","language_spanish","language_us","language_us_colemak","language_us_dvorak","laps","laptop","laptop_car","laptop_chromebook","laptop_mac","laptop_windows","lasso_select","last_page","launch","laundry","layers","layers_clear","lda","leaderboard","leak_add","leak_remove","left_click","left_panel_close","left_panel_open","legend_toggle","lens","lens_blur","letter_switch","library_add","library_add_check","library_books","library_music","license","lift_to_talk","light","light_group","light_group_2","light_mode","light_mode_auto","light_off","lightbulb","lightbulb_2","lightbulb_circle","lightbulb_outline","lightning_stand","lightstrip","line_axis","line_curve","line_end","line_end_arrow","line_end_arrow_notch","line_end_circle","line_end_diamond","line_end_square","line_start","line_start_arrow","line_start_arrow_notch","line_start_circle","line_start_diamond","line_start_square","line_style","line_weight","linear_scale","link","link_2","link_off","linked_camera","linked_services","lips","liquor","list","list_2","list_alt","list_alt_add","list_alt_check","list_arrow","lists","live_help","live_tv","living","local_activity","local_airport","local_atm","local_bar","local_cafe","local_car_wash","local_convenience_store","local_dining","local_drink","local_fire_department","local_florist","local_gas_station","local_grocery_store","local_hospital","local_hotel","local_laundry_service","local_library","local_mall","local_movies","local_offer","local_parking","local_pharmacy","local_phone","local_pizza","local_play","local_police","local_post_office","local_printshop","local_see","local_shipping","local_taxi","location_automation","location_away","location_chip","location_city","location_disabled","location_home","location_off","location_on","location_pin","location_searching","locator_tag","lock","lock_clock","lock_open","lock_open_circle","lock_open_right","lock_outline","lock_person","lock_reset","login","logo_dev","logout","looks","looks_3","looks_4","looks_5","looks_6","looks_one","looks_two","loop","loupe","low_density","low_priority","lowercase","loyalty","lte_mobiledata","lte_mobiledata_badge","lte_plus_mobiledata","lte_plus_mobiledata_badge","luggage","lunch_dining","lyrics","macro_auto","macro_off","magic_button","magic_exchange","magic_tether","magnification_large","magnification_small","magnify_docked","magnify_fullscreen","mail","mail_asterisk","mail_lock","mail_off","mail_outline","mail_shield","male","man","man_2","man_3","man_4","manage_accounts","manage_history","manage_search","manga","manufacturing","map","map_pin_heart","map_pin_review","map_search","maps_home_work","maps_ugc","margin","mark_as_unread","mark_chat_read","mark_chat_unread","mark_email_read","mark_email_unread","mark_unread_chat_alt","markdown","markdown_copy","markdown_paste","markunread","markunread_mailbox","masked_transitions","masked_transitions_add","masks","massage","match_case","match_case_off","match_word","matter","maximize","meal_dinner","meal_lunch","measuring_tape","media_bluetooth_off","media_bluetooth_on","media_link","media_output","media_output_off","mediation","medical_information","medical_mask","medical_services","medication","medication_liquid","meeting_room","memory","memory_alt","menstrual_health","menu","menu_book","menu_book_2","menu_open","merge","merge_type","message","metabolism","metro","mfg_nest_yale_lock","mic","mic_alert","mic_double","mic_external_off","mic_external_on","mic_gear","mic_none","mic_off","microbiology","microwave","microwave_gen","military_tech","mimo","mimo_disconnect","mindfulness","minimize","minor_crash","mintmark","missed_video_call","missed_video_call_filled","missing_controller","mist","mitre","mixture_med","mms","mobile","mobile_2","mobile_3","mobile_alert","mobile_arrow_down","mobile_arrow_right","mobile_arrow_up_right","mobile_block","mobile_camera","mobile_camera_front","mobile_camera_rear","mobile_cancel","mobile_cast","mobile_charge","mobile_chat","mobile_check","mobile_code","mobile_dock","mobile_dots","mobile_friendly","mobile_gear","mobile_hand","mobile_hand_left","mobile_hand_left_off","mobile_hand_off","mobile_info","mobile_landscape","mobile_layout","mobile_lock_landscape","mobile_lock_portrait","mobile_loupe","mobile_menu","mobile_off","mobile_question","mobile_rotate","mobile_rotate_lock","mobile_screen_share","mobile_screensaver","mobile_sensor_hi","mobile_sensor_lo","mobile_share","mobile_share_stack","mobile_sound","mobile_sound_2","mobile_sound_off","mobile_speaker","mobile_text","mobile_text_2","mobile_theft","mobile_ticket","mobile_unlock","mobile_vibrate","mobile_wrench","mobiledata_arrows","mobiledata_off","mode","mode_comment","mode_cool","mode_cool_off","mode_dual","mode_edit","mode_edit_outline","mode_fan","mode_fan_2","mode_fan_off","mode_heat","mode_heat_cool","mode_heat_off","mode_night","mode_of_travel","mode_off_on","mode_standby","model_training","modeling","monetization_on","money","money_bag","money_off","money_off_csred","money_range","monitor","monitor_heart","monitor_weight","monitor_weight_gain","monitor_weight_loss","monitoring","monochrome_photos","monorail","mood","mood_bad","mood_heart","moon_stars","mop","moped","moped_package","more","more_down","more_horiz","more_time","more_up","more_vert","mosque","motion_blur","motion_mode","motion_photos_auto","motion_photos_off","motion_photos_on","motion_photos_pause","motion_photos_paused","motion_play","motion_sensor_active","motion_sensor_alert","motion_sensor_idle","motion_sensor_urgent","motorcycle","mountain_flag","mountain_steam","mouse","mouse_lock","mouse_lock_off","move","move_down","move_group","move_item","move_location","move_selection_down","move_selection_left","move_selection_right","move_selection_up","move_to_inbox","move_up","moved_location","movie","movie_creation","movie_edit","movie_edit_off","movie_filter","movie_info","movie_off","movie_speaker","moving","moving_beds","moving_ministry","mp","multicooker","multiline_chart","multimodal_hand_eye","multiple_airports","multiple_stop","museum","music_cast","music_history","music_note","music_note_2","music_note_add","music_off","music_video","my_location","mystery","nat","nature","nature_people","navigate_before","navigate_next","navigation","near_me","near_me_disabled","nearby","nearby_error","nearby_off","nephrology","nest_audio","nest_cam_floodlight","nest_cam_indoor","nest_cam_iq","nest_cam_iq_outdoor","nest_cam_magnet_mount","nest_cam_outdoor","nest_cam_stand","nest_cam_wall_mount","nest_cam_wired_stand","nest_clock_farsight_analog","nest_clock_farsight_digital","nest_connect","nest_detect","nest_display","nest_display_max","nest_doorbell_visitor","nest_eco_leaf","nest_farsight_cool","nest_farsight_dual","nest_farsight_eco","nest_farsight_heat","nest_farsight_seasonal","nest_farsight_weather","nest_found_savings","nest_gale_wifi","nest_heat_link_e","nest_heat_link_gen_3","nest_hello_doorbell","nest_locator_tag","nest_mini","nest_multi_room","nest_protect","nest_remote","nest_remote_comfort_sensor","nest_secure_alarm","nest_sunblock","nest_tag","nest_thermostat","nest_thermostat_e_eu","nest_thermostat_gen_3","nest_thermostat_sensor","nest_thermostat_sensor_eu","nest_thermostat_zirconium_eu","nest_true_radiant","nest_wake_on_approach","nest_wake_on_press","nest_wifi_gale","nest_wifi_mistral","nest_wifi_point","nest_wifi_point_vento","nest_wifi_pro","nest_wifi_pro_2","nest_wifi_router","network_cell","network_check","network_intel_node","network_intelligence","network_intelligence_history","network_intelligence_update","network_locked","network_manage","network_node","network_ping","network_wifi","network_wifi_1_bar","network_wifi_1_bar_locked","network_wifi_2_bar","network_wifi_2_bar_locked","network_wifi_3_bar","network_wifi_3_bar_locked","network_wifi_locked","neurology","new_label","new_releases","new_window","news","newsmode","newspaper","newsstand","next_plan","next_week","nfc","nfc_off","night_shelter","night_sight_auto","night_sight_auto_off","night_sight_max","nightlife","nightlight","nightlight_round","nights_stay","no_accounts","no_adult_content","no_backpack","no_crash","no_drinks","no_encryption","no_encryption_gmailerrorred","no_flash","no_food","no_luggage","no_meals","no_meeting_room","no_photography","no_sim","no_sound","no_stroller","no_transfer","noise_aware","noise_control_off","noise_control_on","nordic_walking","north","north_east","north_west","not_accessible","not_accessible_forward","not_interested","not_listed_location","not_started","note","note_add","note_alt","note_stack","note_stack_add","notes","notification_add","notification_audio","notification_audio_off","notification_important","notification_multiple","notification_settings","notification_sound","notifications","notifications_active","notifications_none","notifications_off","notifications_paused","notifications_unread","numbers","nutrition","ods","odt","offline_bolt","offline_pin","offline_pin_off","offline_share","oil_barrel","okonomiyaki","on_device_training","on_hub_device","oncology","ondemand_video","online_prediction","onsen","opacity","open_in_browser","open_in_full","open_in_new","open_in_new_down","open_in_new_off","open_in_phone","open_jam","open_run","open_with","ophthalmology","oral_disease","orbit","order_approve","order_play","orders","orthopedics","other_admission","other_houses","outbound","outbox","outbox_alt","outdoor_garden","outdoor_grill","outgoing_mail","outlet","outlined_flag","outpatient","outpatient_med","output","output_circle","oven","oven_gen","overview","overview_key","owl","oxygen_saturation","p2p","pace","pacemaker","package","package_2","padding","padel","page_control","page_footer","page_header","page_info","page_menu_ios","pageless","pages","pageview","paid","palette","pallet","pan_tool","pan_tool_alt","pan_zoom","panorama","panorama_fish_eye","panorama_horizontal","panorama_photosphere","panorama_vertical","panorama_wide_angle","paragliding","parent_child_dining","park","parking_meter","parking_sign","parking_valet","partly_cloudy_day","partly_cloudy_night","partner_exchange","partner_heart","partner_reports","party_mode","passkey","passport","password","password_2","password_2_off","patient_list","pattern","pause","pause_circle","pause_circle_filled","pause_circle_outline","pause_presentation","payment","payment_arrow_down","payment_card","payments","pedal_bike","pediatrics","pen_size_1","pen_size_2","pen_size_3","pen_size_4","pen_size_5","pending","pending_actions","pentagon","people","people_alt","people_outline","percent","percent_discount","performance_max","pergola","perm_camera_mic","perm_contact_calendar","perm_data_setting","perm_device_information","perm_identity","perm_media","perm_phone_msg","perm_scan_wifi","person","person_2","person_3","person_4","person_add","person_add_alt","person_add_disabled","person_alert","person_apron","person_book","person_cancel","person_celebrate","person_check","person_edit","person_filled","person_heart","person_off","person_outline","person_pin","person_pin_circle","person_play","person_raised_hand","person_remove","person_search","person_shield","person_text","personal_bag","personal_bag_off","personal_bag_question","personal_injury","personal_places","personal_video","pest_control","pest_control_rodent","pet_supplies","pets","phishing","phone","phone_alt","phone_android","phone_bluetooth_speaker","phone_callback","phone_cancel","phone_disabled","phone_enabled","phone_forwarded","phone_in_talk","phone_iphone","phone_locked","phone_missed","phone_paused","phonelink","phonelink_erase","phonelink_lock","phonelink_off","phonelink_ring","phonelink_ring_off","phonelink_setup","photo","photo_album","photo_auto_merge","photo_camera","photo_camera_back","photo_camera_front","photo_filter","photo_frame","photo_library","photo_prints","photo_size_select_actual","photo_size_select_large","photo_size_select_small","php","physical_therapy","piano","piano_off","pickleball","picture_as_pdf","picture_in_picture","picture_in_picture_alt","picture_in_picture_center","picture_in_picture_large","picture_in_picture_medium","picture_in_picture_mobile","picture_in_picture_off","picture_in_picture_small","pie_chart","pie_chart_filled","pie_chart_outline","pie_chart_outlined","pill","pill_off","pin","pin_drop","pin_end","pin_history","pin_invoke","pin_road","pin_road_2","pinboard","pinboard_unread","pinch","pinch_zoom_in","pinch_zoom_out","pip","pip_exit","pivot_table_chart","place","place_item","plagiarism","plane_contrails","planet","planner_banner_ad_pt","planner_review","play_arrow","play_circle","play_disabled","play_for_work","play_lesson","play_music","play_pause","play_shapes","playground","playground_2","playing_cards","playlist_add","playlist_add_check","playlist_add_check_circle","playlist_add_circle","playlist_play","playlist_remove","plug_connect","plumbing","plus_one","podcasts","podiatry","podium","point_of_sale","point_scan","poker_chip","policy","policy_alert","poll","polyline","polymer","pool","portable_wifi_off","portrait","position_bottom_left","position_bottom_right","position_top_right","post","post_add","potted_plant","power","power_input","power_off","power_rounded","power_settings_circle","power_settings_new","prayer_times","precision_manufacturing","pregnancy","pregnant_woman","preliminary","prescriptions","present_to_all","preview","preview_off","price_change","price_check","print","print_add","print_connect","print_disabled","print_error","print_lock","priority","priority_high","privacy","privacy_tip","private_connectivity","problem","procedure","process_chart","production_quantity_limits","productivity","progress_activity","prompt_suggestion","propane","propane_tank","psychiatry","psychology","psychology_alt","public","public_off","publish","published_with_changes","pulmonology","pulse_alert","punch_clock","push_pin","qr_code","qr_code_2","qr_code_2_add","qr_code_scanner","query_builder","query_stats","question_answer","question_exchange","question_mark","queue","queue_music","queue_play_next","quick_phrases","quick_reference","quick_reference_all","quick_reorder","quickreply","quiet_time","quiet_time_active","quiz","r_mobiledata","radar","radio","radio_button_checked","radio_button_partial","radio_button_unchecked","radiology","railway_alert","railway_alert_2","rainy","rainy_heavy","rainy_light","rainy_snow","ramen_dining","ramp_left","ramp_right","range_hood","rate_review","rate_review_rtl","raven","raw_off","raw_on","read_more","readiness_score","real_estate_agent","rear_camera","rebase","rebase_edit","receipt","receipt_long","receipt_long_off","recent_actors","recent_patient","recenter","recommend","record_voice_over","rectangle","rectangle_add","recycling","redeem","redo","reduce_capacity","refresh","regular_expression","relax","release_alert","remember_me","reminder","reminders_alt","remote_gen","remove","remove_circle","remove_circle_outline","remove_done","remove_from_queue","remove_moderator","remove_red_eye","remove_road","remove_selection","remove_shopping_cart","reopen_window","reorder","repartition","repeat","repeat_on","repeat_one","repeat_one_on","replace_audio","replace_image","replace_video","replay","replay_10","replay_30","replay_5","replay_circle_filled","reply","reply_all","report","report_gmailerrorred","report_off","report_problem","request_page","request_quote","reset_brightness","reset_colors","reset_exposure","reset_focus","reset_image","reset_iso","reset_settings","reset_shadow","reset_shutter_speed","reset_tv","reset_white_balance","reset_wrench","resize","resize_window","respiratory_rate","responsive_layout","rest_area","restart_alt","restaurant","restaurant_menu","restore","restore_from_trash","restore_page","resume","reviews","rewarded_ads","rheumatology","rib_cage","rice_bowl","right_click","right_panel_close","right_panel_open","ring_volume","ring_volume_filled","ripples","road","robot","robot_2","rocket","rocket_launch","roller_shades","roller_shades_closed","roller_skating","roofing","room","room_preferences","room_service","rotate_90_degrees_ccw","rotate_90_degrees_cw","rotate_auto","rotate_left","rotate_right","roundabout_left","roundabout_right","rounded_corner","route","router","router_off","routine","rowing","rss_feed","rsvp","rtt","rubric","rule","rule_folder","rule_settings","run_circle","running_with_errors","rv_hookup","safety_check","safety_check_off","safety_divider","sailing","salinity","sanitizer","satellite","satellite_alt","sauna","save","save_alt","save_as","save_clock","saved_search","savings","scale","scan","scan_delete","scanner","scatter_plot","scene","schedule","schedule_send","schema","school","science","science_off","scooter","score","scoreboard","screen_lock_landscape","screen_lock_portrait","screen_lock_rotation","screen_record","screen_rotation","screen_rotation_alt","screen_rotation_up","screen_search_desktop","screen_share","screenshot","screenshot_frame","screenshot_frame_2","screenshot_keyboard","screenshot_monitor","screenshot_region","screenshot_tablet","script","scrollable_header","scuba_diving","sd","sd_card","sd_card_alert","sd_storage","sdk","search","search_activity","search_check","search_check_2","search_gear","search_hands_free","search_insights","search_off","seat_cool_left","seat_cool_right","seat_heat_left","seat_heat_right","seat_read","seat_vent_left","seat_vent_right","seat_window","security","security_key","security_update","security_update_good","security_update_warning","segment","select","select_all","select_check_box","select_to_speak","select_window","select_window_2","select_window_off","self_care","self_improvement","sell","sell_cloud","send","send_and_archive","send_money","send_time_extension","send_to_mobile","sensor_door","sensor_occupied","sensor_window","sensors","sensors_krx","sensors_krx_off","sensors_off","sentiment_calm","sentiment_content","sentiment_dissatisfied","sentiment_excited","sentiment_extremely_dissatisfied","sentiment_frustrated","sentiment_neutral","sentiment_sad","sentiment_satisfied","sentiment_satisfied_alt","sentiment_stressed","sentiment_very_dissatisfied","sentiment_very_satisfied","sentiment_worried","serif","server_person","service_toolbox","set_meal","settings","settings_accessibility","settings_account_box","settings_alert","settings_applications","settings_b_roll","settings_backup_restore","settings_bluetooth","settings_brightness","settings_cell","settings_cinematic_blur","settings_ethernet","settings_heart","settings_input_antenna","settings_input_component","settings_input_composite","settings_input_hdmi","settings_input_svideo","settings_motion_mode","settings_night_sight","settings_overscan","settings_panorama","settings_phone","settings_photo_camera","settings_power","settings_remote","settings_screen","settings_seating","settings_slow_motion","settings_suggest","settings_system_daydream","settings_timelapse","settings_video_camera","settings_voice","settop_component","severe_cold","shades","shades_closed","shadow","shadow_add","shadow_minus","shape_line","shape_recognition","shapes","share","share_eta","share_location","share_off","share_reviews","share_windows","shaved_ice","sheets_rtl","shelf_auto_hide","shelf_position","shelves","shield","shield_card","shield_lock","shield_locked","shield_moon","shield_person","shield_question","shield_radar","shield_toggle","shield_watch","shield_with_heart","shield_with_house","shift","shift_lock","shift_lock_off","shoe_cleats","shop","shop_2","shop_two","shopping_bag","shopping_bag_speed","shopping_basket","shopping_cart","shopping_cart_checkout","shopping_cart_off","shoppingmode","short_stay","short_text","shortcut","show_chart","shower","shuffle","shuffle_on","shutter_speed","shutter_speed_add","shutter_speed_minus","sick","side_navigation","sign_language","sign_language_2","sign_language_off","signal_cellular_0_bar","signal_cellular_1_bar","signal_cellular_2_bar","signal_cellular_3_bar","signal_cellular_4_bar","signal_cellular_add","signal_cellular_alt","signal_cellular_alt_1_bar","signal_cellular_alt_2_bar","signal_cellular_alt_off","signal_cellular_connected_no_internet_0_bar","signal_cellular_connected_no_internet_4_bar","signal_cellular_no_sim","signal_cellular_nodata","signal_cellular_null","signal_cellular_off","signal_cellular_pause","signal_disconnected","signal_wifi_0_bar","signal_wifi_4_bar","signal_wifi_4_bar_lock","signal_wifi_bad","signal_wifi_connected_no_internet_4","signal_wifi_off","signal_wifi_statusbar_4_bar","signal_wifi_statusbar_not_connected","signal_wifi_statusbar_null","signature","signpost","sim_card","sim_card_alert","sim_card_download","sim_card_lock","simulation","single_arrow","single_bed","sip","siren","siren_check","siren_open","siren_question","skateboarding","skeleton","skillet","skillet_cooktop","skip_next","skip_previous","skull","skull_list","slab_serif","sledding","sleep","sleep_score","slide_library","sliders","slideshow","slow_motion_video","smart_button","smart_card_reader","smart_card_reader_off","smart_display","smart_outlet","smart_screen","smart_toy","smartphone","smartphone_camera","smb_share","smoke_free","smoking_rooms","sms","sms_failed","snail","snippet_folder","snooze","snowboarding","snowflake","snowing","snowing_heavy","snowmobile","snowshoeing","soap","soba","social_distance","social_leaderboard","solar_power","solo_dining","sort","sort_by_alpha","sos","sound_detection_dog_barking","sound_detection_glass_break","sound_detection_loud_sound","sound_sampler","soundbar","soup_kitchen","source","source_environment","source_notes","south","south_america","south_east","south_west","spa","space_bar","space_dashboard","space_dashboard_2","spatial_audio","spatial_audio_off","spatial_speaker","spatial_tracking","speaker","speaker_2","speaker_group","speaker_notes","speaker_notes_off","speaker_phone","special_character","specific_gravity","speech_to_text","speech_to_text_2","speed","speed_0_25","speed_0_2x","speed_0_5","speed_0_5x","speed_0_75","speed_0_7x","speed_1_2","speed_1_25","speed_1_2x","speed_1_5","speed_1_5x","speed_1_75","speed_1_7x","speed_2","speed_2x","speed_3","speed_4","speed_camera","spellcheck","split_scene","split_scene_2","split_scene_down","split_scene_left","split_scene_right","split_scene_up","splitscreen","splitscreen_add","splitscreen_bottom","splitscreen_landscape","splitscreen_landscape_add","splitscreen_left","splitscreen_portrait","splitscreen_right","splitscreen_top","splitscreen_vertical_add","spo2","spoke","sports","sports_and_outdoors","sports_bar","sports_baseball","sports_basketball","sports_cricket","sports_esports","sports_football","sports_golf","sports_gymnastics","sports_handball","sports_hockey","sports_kabaddi","sports_martial_arts","sports_mma","sports_motorsports","sports_rugby","sports_score","sports_soccer","sports_tennis","sports_volleyball","sprinkler","sprint","sql","square","square_circle","square_dot","square_foot","ssid_chart","stack","stack_group","stack_hexagon","stack_off","stack_star","stacked_bar_chart","stacked_email","stacked_inbox","stacked_line_chart","stacks","stadia_controller","stadium","stairs","stairs_2","star","star_border","star_border_purple500","star_half","star_outline","star_purple500","star_rate","star_rate_half","star_shine","stars","stars_2","start","stat_0","stat_1","stat_2","stat_3","stat_minus_1","stat_minus_2","stat_minus_3","stay_current_landscape","stay_current_portrait","stay_primary_landscape","stay_primary_portrait","steering_wheel_cool","steering_wheel_heat","step","step_into","step_out","step_over","steppers","steps","stethoscope","stethoscope_arrow","stethoscope_check","sticker","sticker_add","sticky_note","sticky_note_2","stock_media","stockpot","stop","stop_circle","stop_screen_share","storage","store","store_mall_directory","storefront","storm","straight","straighten","strategy","stream","stream_apps","streetview","stress_management","strikethrough_s","stroke_full","stroke_partial","stroller","style","styler","stylus","stylus_brush","stylus_fountain_pen","stylus_highlighter","stylus_laser_pointer","stylus_note","stylus_pen","stylus_pencil","subdirectory_arrow_left","subdirectory_arrow_right","subheader","subject","subscript","subscriptions","subtitles","subtitles_gear","subtitles_off","subway","subway_walk","subwoofer","summarize","sunny","sunny_snowing","superscript","supervised_user_circle","supervised_user_circle_off","supervisor_account","support","support_agent","surfing","surgical","surround_sound","swap_calls","swap_driving_apps","swap_driving_apps_wheel","swap_horiz","swap_horizontal_circle","swap_vert","swap_vertical_circle","sweep","swipe","swipe_down","swipe_down_alt","swipe_left","swipe_left_2","swipe_left_alt","swipe_right","swipe_right_2","swipe_right_alt","swipe_up","swipe_up_alt","swipe_vertical","switch","switch_access","switch_access_2","switch_access_3","switch_access_shortcut","switch_access_shortcut_add","switch_account","switch_camera","switch_left","switch_off","switch_right","switch_video","switches","sword_rose","swords","symptoms","synagogue","sync","sync_alt","sync_arrow_down","sync_arrow_up","sync_desktop","sync_disabled","sync_lock","sync_problem","sync_saved_locally","sync_saved_locally_off","syringe","system_security_update","system_security_update_good","system_security_update_warning","system_update","system_update_alt","tab","tab_close","tab_close_inactive","tab_close_right","tab_duplicate","tab_group","tab_inactive","tab_move","tab_new_right","tab_recent","tab_search","tab_unselected","table","table_bar","table_chart","table_chart_view","table_convert","table_edit","table_eye","table_lamp","table_large","table_restaurant","table_rows","table_rows_narrow","table_sign","table_view","tablet","tablet_android","tablet_camera","tablet_mac","tabs","tactic","tag","tag_faces","takeout_dining","takeout_dining_2","tamper_detection_off","tamper_detection_on","tap_and_play","tapas","target","task","task_alt","tatami_seat","taunt","taxi_alert","team_dashboard","temp_preferences_custom","temp_preferences_eco","temple_buddhist","temple_hindu","tenancy","terminal","terminal_2","terminal_add","terrain","text_ad","text_ad_off","text_compare","text_decrease","text_fields","text_fields_alt","text_format","text_increase","text_rotate_up","text_rotate_vertical","text_rotation_angledown","text_rotation_angleup","text_rotation_down","text_rotation_none","text_select_end","text_select_jump_to_beginning","text_select_jump_to_end","text_select_move_back_character","text_select_move_back_word","text_select_move_down","text_select_move_forward_character","text_select_move_forward_word","text_select_move_up","text_select_start","text_snippet","text_to_speech","text_up","textsms","texture","texture_add","texture_minus","theater_comedy","theaters","thermometer","thermometer_add","thermometer_alert","thermometer_gain","thermometer_loss","thermometer_minus","thermostat","thermostat_arrow_down","thermostat_arrow_up","thermostat_auto","thermostat_carbon","things_to_do","thread_unread","threat_intelligence","thumb_down","thumb_down_alt","thumb_down_filled","thumb_down_off","thumb_down_off_alt","thumb_up","thumb_up_alt","thumb_up_filled","thumb_up_off","thumb_up_off_alt","thumbnail_bar","thumbs_up_double","thumbs_up_down","thunderstorm","tibia","tibia_alt","tile_large","tile_medium","tile_small","tilt_arrow_down","tilt_arrow_up","time_auto","time_to_leave","timelapse","timeline","timer","timer_1","timer_10","timer_10_alt_1","timer_10_select","timer_2","timer_3","timer_3_alt_1","timer_3_select","timer_5","timer_5_shutter","timer_arrow_down","timer_arrow_up","timer_off","timer_pause","timer_play","tips_and_updates","tire_repair","title","titlecase","toast","toc","today","toggle_off","toggle_on","token","toll","tonality","tonality_2","toolbar","tools_flat_head","tools_installation_kit","tools_ladder","tools_level","tools_phillips","tools_pliers_wire_stripper","tools_power_drill","tools_wrench","tooltip","tooltip_2","top_panel_close","top_panel_open","topic","tornado","total_dissolved_solids","touch_app","touch_double","touch_double_2","touch_long","touch_triple","touchpad_mouse","touchpad_mouse_off","tour","toys","toys_and_games","toys_fan","track_changes","trackpad_input","trackpad_input_2","trackpad_input_3","traffic","traffic_jam","trail_length","trail_length_medium","trail_length_short","train","tram","transcribe","transfer_within_a_station","transform","transgender","transit_enterexit","transit_ticket","transition_chop","transition_dissolve","transition_fade","transition_push","transition_slide","translate","translate_indic","transportation","travel","travel_explore","travel_luggage_and_bags","trending_down","trending_flat","trending_up","triangle_circle","trip","trip_origin","trolley","trolley_cable_car","trophy","troubleshoot","try","tsunami","tsv","tty","tune","tungsten","turn_left","turn_right","turn_sharp_left","turn_sharp_right","turn_slight_left","turn_slight_right","turned_in","turned_in_not","tv","tv_displays","tv_gen","tv_guide","tv_next","tv_off","tv_options_edit_channels","tv_options_input_settings","tv_remote","tv_signin","tv_with_assistant","two_pager","two_pager_store","two_wheeler","type_specimen","u_turn_left","u_turn_right","udon","ulna_radius","ulna_radius_alt","umbrella","unarchive","undereye","undo","unfold_less","unfold_less_double","unfold_more","unfold_more_double","ungroup","universal_currency","universal_currency_alt","universal_local","unknown_2","unknown_5","unknown_7","unknown_document","unknown_med","unlicense","unpaved_road","unpin","unpublished","unsubscribe","upcoming","update","update_disabled","upgrade","upi_pay","upload","upload_2","upload_file","uppercase","urology","usb","usb_off","user_attributes","vaccines","vacuum","vacuum_2","vacuum_2_on","valve","vape_free","vaping_rooms","variable_add","variable_insert","variable_remove","variables","ventilator","verified","verified_off","verified_user","vertical_align_bottom","vertical_align_center","vertical_align_top","vertical_distribute","vertical_shades","vertical_shades_closed","vertical_split","vibration","video_call","video_camera_back","video_camera_back_add","video_camera_front","video_camera_front_off","video_chat","video_file","video_frame_copy","video_frame_save","video_label","video_library","video_search","video_settings","video_stable","video_template","videocam","videocam_alert","videocam_off","videogame_asset","videogame_asset_off","view_agenda","view_apps","view_array","view_carousel","view_column","view_column_2","view_comfy","view_comfy_alt","view_compact","view_compact_alt","view_cozy","view_day","view_headline","view_in_ar","view_in_ar_new","view_in_ar_off","view_kanban","view_list","view_module","view_object_track","view_quilt","view_real_size","view_sidebar","view_stream","view_timeline","view_week","vignette","vignette_2","villa","visibility","visibility_lock","visibility_off","vital_signs","vitals","vo2_max","voice_chat","voice_chat_off","voice_over_off","voice_selection","voice_selection_off","voicemail","voicemail_2","volcano","volume_down","volume_down_alt","volume_mute","volume_off","volume_up","volunteer_activism","voting_chip","vpn_key","vpn_key_alert","vpn_key_off","vpn_lock","vpn_lock_2","vr180_create2d","vr180_create2d_off","vrpano","walk_bike","wall_art","wall_lamp","wallet","wallpaper","wallpaper_slideshow","wand_shine","wand_stars","ward","warehouse","warning","warning_amber","warning_off","wash","washoku","watch","watch_alert","watch_arrow","watch_arrow_down","watch_button","watch_button_press","watch_check","watch_later","watch_lock","watch_off","watch_screentime","watch_vibration","watch_wake","water","water_bottle","water_bottle_large","water_damage","water_do","water_drop","water_drops","water_ec","water_full","water_heater","water_lock","water_loss","water_lux","water_medium","water_orp","water_ph","water_pump","water_voc","waterfall_chart","waves","waving_hand","wb_auto","wb_cloudy","wb_incandescent","wb_iridescent","wb_shade","wb_sunny","wb_twilight","wb_twilight_2","wc","weather_hail","weather_mix","weather_snowy","web","web_asset","web_asset_off","web_stories","web_traffic","webhook","weekend","weight","west","whatshot","wheat","wheelchair_pickup","where_to_vote","widget_medium","widget_menu","widget_small","widget_width","widgets","width","width_full","width_normal","width_wide","wifi","wifi_1_bar","wifi_2_bar","wifi_add","wifi_calling","wifi_calling_1","wifi_calling_2","wifi_calling_3","wifi_calling_bar_1","wifi_calling_bar_2","wifi_calling_bar_3","wifi_channel","wifi_device","wifi_find","wifi_home","wifi_lock","wifi_notification","wifi_off","wifi_password","wifi_protected_setup","wifi_proxy","wifi_tethering","wifi_tethering_error","wifi_tethering_off","wind_power","window","window_closed","window_open","window_sensor","windshield_defrost_auto","windshield_defrost_front","windshield_defrost_rear","windshield_heat_front","wine_bar","woman","woman_2","work","work_alert","work_history","work_off","work_outline","work_update","workflow","workspace_premium","workspaces","workspaces_outline","wounds_injuries","wrap_text","wrist","wrong_location","wysiwyg","x_circle","y_circle","yakitori","yard","yoshoku","your_trips","youtube_activity","youtube_searched_for","zone_person_alert","zone_person_idle","zone_person_urgent","zoom_in","zoom_in_map","zoom_out","zoom_out_map"];function Jr(){return"./fenix-icons.woff2"}const Wr=Jr(),Gr="fenix-icons",qt=T;function Zr(){let d="";for(const e of Tt)d+=`.fx-icon-${e}::before{content:"${e}"}`;return d}function Dt(){return`@font-face{font-family:'${W}';font-style:normal;font-weight:100 700;font-display:block;src:url('${Wr}') format('woff2');}`+qt+Zr()}let Ce=!1;function Mt(d=typeof document!="undefined"?document:void 0){if(Ce||!d)return;const e=d.createElement("style");e.id=Gr,e.textContent=Dt(),d.head.appendChild(e),Ce=!0}function Qr(){Ce=!1}Mt();const Te=Object.freeze(Object.defineProperty({__proto__:null,FENIX_ICON_BASE_CSS:T,FENIX_ICON_DOC_BASE_CSS:qt,FENIX_ICON_FONT_FAMILY:W,FENIX_ICON_NAMES:Tt,__resetFenixIconsInjection:Qr,buildFenixIconsCss:Dt,isFenixIconName:q,loadFenixIcons:Mt},Symbol.toStringTag,{value:"Module"}))});