vitral 0.7.2 → 0.8.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 (59) hide show
  1. package/README.md +2 -0
  2. package/dist/angular.d.ts +2 -2
  3. package/dist/angular.js +8 -6
  4. package/dist/auto.js +5 -4
  5. package/dist/chunk-4IWZIFAL.js +165 -0
  6. package/dist/chunk-6AFVJCQG.js +311 -0
  7. package/dist/{chunk-72H4FXMD.js → chunk-6T25WKNK.js} +44 -13
  8. package/dist/chunk-EQZOJU3B.js +48 -0
  9. package/dist/{chunk-O7DV3EVB.js → chunk-NTXMEZIZ.js} +9 -46
  10. package/dist/{chunk-4NSPG6NK.js → chunk-PQXS2UDM.js} +1 -1
  11. package/dist/{chunk-TXSHK3SK.js → chunk-ZJ4IM2PZ.js} +2 -2
  12. package/dist/{chunk-V24ZNHUF.js → chunk-ZRAGLT3I.js} +4 -4
  13. package/dist/cli.js +1 -1
  14. package/dist/{contract-46EZFQPQ.js → contract-OMHCH6LI.js} +1 -1
  15. package/dist/{dedupe-S7BHQMOZ.js → dedupe-PZCSKL3L.js} +1 -1
  16. package/dist/edge.d.ts +1 -1
  17. package/dist/element.d.ts +2 -2
  18. package/dist/element.js +5 -4
  19. package/dist/embed.js +2 -2
  20. package/dist/{events-DLdbFqBM.d.ts → events-Cieg_far.d.ts} +1 -1
  21. package/dist/{expose-ZLYQZUP2.js → expose-V5ASGX4E.js} +2 -2
  22. package/dist/federation.d.ts +1 -1
  23. package/dist/{hydrate-NFZZMYWT.js → hydrate-6NE4MYOD.js} +7 -5
  24. package/dist/iframe.js +9 -7
  25. package/dist/index.d.ts +6 -19
  26. package/dist/index.js +6 -4
  27. package/dist/loader-BIXjuvvp.d.ts +25 -0
  28. package/dist/next-config.d.ts +95 -0
  29. package/dist/next-config.js +149 -0
  30. package/dist/next-host.d.ts +26 -0
  31. package/dist/next-host.js +92 -0
  32. package/dist/next.d.ts +190 -0
  33. package/dist/next.js +287 -0
  34. package/dist/preact.d.ts +4 -4
  35. package/dist/preact.js +7 -5
  36. package/dist/prefetch.js +2 -2
  37. package/dist/react-server.d.ts +1 -1
  38. package/dist/react.d.ts +11 -4
  39. package/dist/react.js +17 -144
  40. package/dist/{reframe-7K5S6JC6.js → reframe-3ZN5CHEG.js} +4 -4
  41. package/dist/routes.d.ts +2 -2
  42. package/dist/routes.js +6 -4
  43. package/dist/single-spa.d.ts +1 -1
  44. package/dist/{slot-Ddzp7AgL.d.ts → slot-Dhczjs1E.d.ts} +1 -1
  45. package/dist/solid.d.ts +3 -3
  46. package/dist/solid.js +7 -5
  47. package/dist/{sri-576GTDIA.js → sri-TBZ6PYYY.js} +39 -24
  48. package/dist/svelte.d.ts +4 -4
  49. package/dist/svelte.js +6 -4
  50. package/dist/sw.d.ts +8 -0
  51. package/dist/sw.js +21 -0
  52. package/dist/testing.d.ts +1 -1
  53. package/dist/testing.js +3 -2
  54. package/dist/{types-EOz1rOHs.d.ts → types-wsKR1gfx.d.ts} +19 -3
  55. package/dist/vite.d.ts +33 -1
  56. package/dist/vite.js +353 -158
  57. package/dist/vue.d.ts +3 -3
  58. package/dist/vue.js +6 -4
  59. package/package.json +28 -12
@@ -0,0 +1,48 @@
1
+ import {
2
+ protocol
3
+ } from "./chunk-GNPFWISJ.js";
4
+
5
+ // src/core/events.ts
6
+ var events = {
7
+ emit: (t, p) => protocol().events.emit(t, p),
8
+ on: (t, h) => protocol().events.on(t, h),
9
+ last: (t) => protocol().events.last(t)
10
+ };
11
+ function scopedEvents() {
12
+ const offs = /* @__PURE__ */ new Set();
13
+ const track = (off) => {
14
+ const wrapped = () => (offs.delete(wrapped), off());
15
+ offs.add(wrapped);
16
+ return wrapped;
17
+ };
18
+ return {
19
+ bus: {
20
+ emit: (t, p) => events.emit(t, p),
21
+ last: (t) => events.last(t),
22
+ on: (t, h) => track(events.on(t, h))
23
+ },
24
+ track,
25
+ dispose() {
26
+ for (const off of [...offs]) off();
27
+ }
28
+ };
29
+ }
30
+
31
+ // src/core/navigate.ts
32
+ function navigate(url, options = {}) {
33
+ const target = new URL(url, location.href);
34
+ if (target.origin !== location.origin) {
35
+ location.assign(target.href);
36
+ return;
37
+ }
38
+ if (options.replace) history.replaceState(history.state, "", target.href);
39
+ else history.pushState(history.state, "", target.href);
40
+ dispatchEvent(new PopStateEvent("popstate", { state: history.state }));
41
+ events.emit("vitral:navigate", target.pathname + target.search + target.hash);
42
+ }
43
+
44
+ export {
45
+ events,
46
+ scopedEvents,
47
+ navigate
48
+ };
@@ -1,9 +1,14 @@
1
+ import {
2
+ events,
3
+ navigate,
4
+ scopedEvents
5
+ } from "./chunk-EQZOJU3B.js";
1
6
  import {
2
7
  load,
3
8
  loadFile,
4
9
  registerSrc,
5
10
  resolveEntry
6
- } from "./chunk-72H4FXMD.js";
11
+ } from "./chunk-6T25WKNK.js";
7
12
  import {
8
13
  injectStyles
9
14
  } from "./chunk-KU6HF2EW.js";
@@ -22,45 +27,6 @@ import {
22
27
  protocol
23
28
  } from "./chunk-GNPFWISJ.js";
24
29
 
25
- // src/core/events.ts
26
- var events = {
27
- emit: (t, p) => protocol().events.emit(t, p),
28
- on: (t, h) => protocol().events.on(t, h),
29
- last: (t) => protocol().events.last(t)
30
- };
31
- function scopedEvents() {
32
- const offs = /* @__PURE__ */ new Set();
33
- const track2 = (off) => {
34
- const wrapped = () => (offs.delete(wrapped), off());
35
- offs.add(wrapped);
36
- return wrapped;
37
- };
38
- return {
39
- bus: {
40
- emit: (t, p) => events.emit(t, p),
41
- last: (t) => events.last(t),
42
- on: (t, h) => track2(events.on(t, h))
43
- },
44
- track: track2,
45
- dispose() {
46
- for (const off of [...offs]) off();
47
- }
48
- };
49
- }
50
-
51
- // src/core/navigate.ts
52
- function navigate(url, options = {}) {
53
- const target = new URL(url, location.href);
54
- if (target.origin !== location.origin) {
55
- location.assign(target.href);
56
- return;
57
- }
58
- if (options.replace) history.replaceState(history.state, "", target.href);
59
- else history.pushState(history.state, "", target.href);
60
- dispatchEvent(new PopStateEvent("popstate", { state: history.state }));
61
- events.emit("vitral:navigate", target.pathname + target.search + target.hash);
62
- }
63
-
64
30
  // src/core/updates.ts
65
31
  var versions = /* @__PURE__ */ new Map();
66
32
  var live = /* @__PURE__ */ new Map();
@@ -119,7 +85,7 @@ var noop = () => {
119
85
  async function checkUpdates() {
120
86
  const p = protocol();
121
87
  const found = [];
122
- const { splitName } = await import("./expose-ZLYQZUP2.js");
88
+ const { splitName } = await import("./expose-V5ASGX4E.js");
123
89
  const remotes = /* @__PURE__ */ new Map();
124
90
  for (const name of live.keys()) {
125
91
  const root = splitName(name)[0];
@@ -164,8 +130,8 @@ async function mountOnce(target, name, props, options) {
164
130
  const p = protocol();
165
131
  await p.pending();
166
132
  const isolate = options.isolate ?? registered(name)?.isolate ?? p.settings().isolate;
167
- if (isolate === "iframe") return (frames ?? (await import("./reframe-7K5S6JC6.js")).noFrames)(target, name, props, options).catch(fail);
168
- const { module: mod, ...resolved } = await (isolate == "reframe" ? (await import("./reframe-7K5S6JC6.js")).load : load)(name, isolate, options.priority);
133
+ if (isolate === "iframe") return (frames ?? (await import("./reframe-3ZN5CHEG.js")).noFrames)(target, name, props, options).catch(fail);
134
+ const { module: mod, ...resolved } = await (isolate == "reframe" ? (await import("./reframe-3ZN5CHEG.js")).load : load)(name, isolate, options.priority);
169
135
  const untrack = track(name, resolved);
170
136
  ctxHooks.watch?.(name);
171
137
  const label = resolved.name ?? name;
@@ -607,9 +573,6 @@ function serializeShared(values) {
607
573
  }
608
574
 
609
575
  export {
610
- events,
611
- scopedEvents,
612
- navigate,
613
576
  track,
614
577
  refresh,
615
578
  refreshable,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  mountable
3
- } from "./chunk-72H4FXMD.js";
3
+ } from "./chunk-6T25WKNK.js";
4
4
  import {
5
5
  RemoteError
6
6
  } from "./chunk-463H6B56.js";
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  createSlot
3
- } from "./chunk-O7DV3EVB.js";
3
+ } from "./chunk-NTXMEZIZ.js";
4
4
  import {
5
5
  preload,
6
6
  registerSrc
7
- } from "./chunk-72H4FXMD.js";
7
+ } from "./chunk-6T25WKNK.js";
8
8
 
9
9
  // src/core/host-slot.ts
10
10
  var noop = () => {
@@ -1,17 +1,17 @@
1
1
  import {
2
2
  hostSlot,
3
3
  timings
4
- } from "./chunk-TXSHK3SK.js";
4
+ } from "./chunk-ZJ4IM2PZ.js";
5
5
  import {
6
6
  defineRemote,
7
7
  memoSelect,
8
8
  same,
9
9
  shared
10
- } from "./chunk-O7DV3EVB.js";
10
+ } from "./chunk-NTXMEZIZ.js";
11
11
  import {
12
12
  registerSrc,
13
13
  warmSsr
14
- } from "./chunk-72H4FXMD.js";
14
+ } from "./chunk-6T25WKNK.js";
15
15
 
16
16
  // src/element.ts
17
17
  var Base = typeof HTMLElement === "undefined" ? class {
@@ -69,7 +69,7 @@ var VitralRemoteElement = class extends Base {
69
69
  }
70
70
  };
71
71
  const ssr = true ? this.querySelector(":scope>[data-vitral-ssr]") : null;
72
- if (ssr) warmSsr(ssr), import("./hydrate-NFZZMYWT.js").then((m) => this.isConnected && !this.#slot && (this.#slot = m.hydrateSlot(this, ssr, { ...options, props: this.#props })));
72
+ if (ssr) warmSsr(ssr), import("./hydrate-6NE4MYOD.js").then((m) => this.isConnected && !this.#slot && (this.#slot = m.hydrateSlot(this, ssr, { ...options, props: this.#props })));
73
73
  else this.#slot = hostSlot(this, options);
74
74
  }
75
75
  /**
package/dist/cli.js CHANGED
@@ -843,7 +843,7 @@ async function remotesOf(o, f, cwd, timeout) {
843
843
  }
844
844
  async function doctor(options = {}) {
845
845
  ;
846
- ({ satisfies } = await import("./dedupe-S7BHQMOZ.js"));
846
+ ({ satisfies } = await import("./dedupe-PZCSKL3L.js"));
847
847
  const cwd = options.cwd ?? process.cwd();
848
848
  const f = options.fetch ?? fetch;
849
849
  const timeout = options.timeout ?? 15e3;
@@ -4,7 +4,7 @@ import {
4
4
 
5
5
  // src/core/contract.ts
6
6
  async function checkContract(c, range = protocol().settings().contract) {
7
- const { satisfies } = await import("./dedupe-S7BHQMOZ.js");
7
+ const { satisfies } = await import("./dedupe-PZCSKL3L.js");
8
8
  if (c.version && !satisfies(c.version, range)) return `o host aceita contrato ${range}, o remote publica ${c.version}`;
9
9
  const offered = protocol().settings().offered ?? {};
10
10
  for (const dep in c.peers) {
@@ -71,7 +71,7 @@ function shared(p) {
71
71
  function offer(p, groups) {
72
72
  for (const name in groups) {
73
73
  const { version, modules } = groups[name];
74
- shared(p)(name, version, { version, load: async () => modules });
74
+ shared(p)(name, version, { version, load: typeof modules === "function" ? modules : async () => modules });
75
75
  p.configure({ offered: { ...p.settings().offered, [name]: version } });
76
76
  }
77
77
  }
package/dist/edge.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { R as Routes } from './match-CMBM_jLW.js';
2
- import { P as Props } from './types-EOz1rOHs.js';
2
+ import { P as Props } from './types-wsKR1gfx.js';
3
3
  import './errors-kjBv6IH_.js';
4
4
 
5
5
  /**
package/dist/element.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { P as Props, S as Shared, a as RemoteModule } from './types-EOz1rOHs.js';
2
- import { S as SlotStatus } from './slot-Ddzp7AgL.js';
1
+ import { P as Props, S as Shared, a as RemoteModule } from './types-wsKR1gfx.js';
2
+ import { S as SlotStatus } from './slot-Dhczjs1E.js';
3
3
  import './errors-kjBv6IH_.js';
4
4
 
5
5
  /**
package/dist/element.js CHANGED
@@ -3,10 +3,11 @@ import {
3
3
  VitralRemoteElement,
4
4
  defineVitralElement,
5
5
  elementRemote
6
- } from "./chunk-V24ZNHUF.js";
7
- import "./chunk-TXSHK3SK.js";
8
- import "./chunk-O7DV3EVB.js";
9
- import "./chunk-72H4FXMD.js";
6
+ } from "./chunk-ZRAGLT3I.js";
7
+ import "./chunk-ZJ4IM2PZ.js";
8
+ import "./chunk-NTXMEZIZ.js";
9
+ import "./chunk-EQZOJU3B.js";
10
+ import "./chunk-6T25WKNK.js";
10
11
  import "./chunk-KU6HF2EW.js";
11
12
  import "./chunk-TW7KYJQ6.js";
12
13
  import "./chunk-463H6B56.js";
package/dist/embed.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";(()=>{var po=Object.defineProperty;var h=(t,e)=>()=>(t&&(e=t(t=0)),e);var x=(t,e)=>{for(var o in e)po(t,o,{get:e[o],enumerable:!0})};var O,X=h(()=>{"use strict";O={}});function Ht(){let t=new Map,e=new Map;return{emit(o,r){e.set(o,r);for(let n of[...t.get(o)??[]])try{n(r)}catch(s){console.error(`[vitral] handler de "${o}" falhou`,s)}},on(o,r){let n=t.get(o);return n||t.set(o,n=new Set),n.add(r),()=>n.delete(r)},last(o){return e.get(o)}}}var _t=h(()=>{"use strict"});function fo(){let t={timeout:15e3,retries:1,isolate:"none",allowedOrigins:null},e=new Map,o=new Map,r=Promise.resolve();return{protocol:jt,events:Ht(),settings:()=>t,configure(n){Object.assign(t,n)},register(n,s){e.set(n,s),o.delete(n)},entry:n=>e.get(n),origins:()=>[...e.values()].filter(n=>n.url).map(n=>new URL(n.url).origin),pending(n){return n&&(r=Promise.all([r,n])),r.then(()=>{})},load(n,s){let a=o.get(n);if(!a){a=s();let i=a;i.catch(()=>o.get(n)===i&&o.delete(n)),o.set(n,a)}return a}}}function d(){let t=Nt[Ut];return t&&typeof t.protocol=="number"&&t.protocol>=jt?t:Nt[Ut]=fo()}var jt,Ut,Nt,R=h(()=>{"use strict";_t();jt=1,Ut=Symbol.for("vitral"),Nt=globalThis});function M(t,e){if(S(t)&&!j.has(t)){j.add(t),t.cause instanceof Object&&j.add(t.cause),t.entry??=e?.entry??d().entry(t.remote)?.url,t.version??=e?.version;try{d().settings().onError?.(t)}catch{}O.watch?.(t.remote,t)}return t}var Bt,f,S,$,j,Z,w=h(()=>{"use strict";X();R();Bt="https://joaogabriel15.github.io/vitral/erros/",f=class extends Error{constructor(o,r,n,s){super(`[vitral] ${r}: ${n} (${Bt}${o})`);this.code=o;this.remote=r;this.cause=s;this.name="RemoteError",this.docs=`${Bt}${o}`,typeof location<"u"&&(this.route=location.pathname)}},S=t=>t?.name==="RemoteError",$=new Map,j=new WeakSet;Z=t=>{throw M(t)}});function B(){return typeof location<"u"?location.origin:null}function b(t,e){return new URL(t,e??(typeof location<"u"?location.href:void 0)).href}async function Vt(t,e){for(let o=0;;o++)try{return await e()}catch(r){if(!(S(r)&&(r.code==="LOAD_FAILED"||r.code==="TIMEOUT"))||o>=t)throw r;await new Promise(s=>setTimeout(s,200*2**o))}}function V(t,e,o){return new Promise((r,n)=>{let s=setTimeout(()=>n(new f("TIMEOUT",e,`n\xE3o respondeu em ${t}ms`)),t);o.then(r,n).finally(()=>clearTimeout(s))})}function q(t,e,o,r){let n=new AbortController,s=fetch(t,{signal:n.signal,credentials:"omit",...r}).then(a=>{if(!a.ok)throw new f("LOAD_FAILED",o,`HTTP ${a.status} em ${t}`);return a.arrayBuffer()},a=>{throw new f("LOAD_FAILED",o,`falha ao baixar ${t}`,a)});return V(e,o,s).catch(a=>{throw n.abort(),a})}async function Q(t,e,o,r){let n=new TextDecoder().decode(await q(t,e,o,r));try{return JSON.parse(n)}catch(s){throw new f("INVALID_MODULE",o,`JSON inv\xE1lido em ${t}`,s)}}function C(t,e,o={},r=document.head){return r.appendChild(Object.assign(document.createElement("link"),{rel:t,crossOrigin:"anonymous",href:e},o))}function D(t,e,o){try{let r=`vitral:${t}:${e}`;performance.clearMeasures(r),performance.measure(r,{start:o}),d().settings().onMetric?.({name:t,stage:e,start:o,duration:performance.now()-o})}catch{}}var k=h(()=>{"use strict";w();R()});var Jt={};x(Jt,{capture:()=>go,owner:()=>Kt});function go(){qt||typeof addEventListener>"u"||(qt=!0,addEventListener("error",t=>Ft(t.error,t.filename)),addEventListener("unhandledrejection",t=>Ft(t.reason)))}function Kt(t,e){let o=e||String(t?.stack??"").match(/(?:https?|file):\/\/[^\s)'"]+/)?.[0];if(!o)return;let r=[...document.querySelectorAll("script[src],link[rel=modulepreload]")].map(a=>a.src||a.href),n,s=0;for(let[a,{entry:i}]of $){let l=new URL(".",i).href;l.length>s&&o.startsWith(l)&&!r.some(u=>u.startsWith(l))&&(n=a,s=l.length)}return n}function Ft(t,e){if(!d().settings().captureGlobalErrors||S(t)||t instanceof Object&&j.has(t))return;let o=Kt(t,e);o&&M(new f("RENDER_FAILED",o,String(t?.message??t),t),$.get(o))}var qt,Gt=h(()=>{"use strict";w();R();qt=!1});function ct(t,e){if(e==="*")return!0;let[,o="",r=""]=/^(\^|~|>=|=)?(.*)$/.exec(e.trim());if(!o||o==="="||t.includes("-"))return t===r;let[n,s]=[t,r].map(i=>(i+".0.0").split(".",3).map(Number));for(let i=0;i<3;i++)if(n[i]!==s[i]){if(!(n[i]>s[i]))return!1;break}if(o===">=")return!0;let a=Math.min(r.split(".").length,o==="~"?2:s[0]?1:s[1]?2:3);return n.slice(0,a).join(".")===s.slice(0,a).join(".")}var Yt=h(()=>{"use strict"});var F={};x(F,{offer:()=>vo,satisfies:()=>ct,shared:()=>zt});function zt(t){if(!t.dedupe){let e=new Map,o=new Map,r=(s,a)=>s.includes(a)&&s.splice(s.indexOf(a),1),n=(s,a,i)=>(i.p||((i.p=i.load()).catch(()=>r(a,i)),i.url&&i.p.then(()=>yo(`${s}@${i.version}`,i.url),()=>{})),i.p);t.dedupe=(s,a,i)=>{let l=i,u=e.get(s)??[];e.set(s,u),l?.url&&o.get(s+l.url)?.(l);let m=u.find(c=>ct(c.version,a));if(!m&&l){m=u[u.push(l)-1];let c=l.url&&ho(`${s}@${l.version}`);c&&c!==l.url&&(l.p=new Promise(g=>{o.set(s+c,g),setTimeout(g,300,l)}).then(g=>(o.delete(s+c),g===l&&(l.p=void 0),n(s,u,g))),l.p.catch(()=>r(u,l)))}return m&&n(s,u,m)}}return t.dedupe}function vo(t,e){for(let o in e){let{version:r,modules:n}=e[o];zt(t)(o,r,{version:r,load:async()=>n}),t.configure({offered:{...t.settings().offered,[o]:r}})}}var Wt,ho,yo,K=h(()=>{"use strict";Yt();Wt="vitral:dedupe:",ho=t=>{try{return localStorage.getItem(Wt+t)}catch{return null}},yo=(t,e)=>{try{localStorage.setItem(Wt+t,e)}catch{}}});function ut(t){let e=d(),{remotes:o,dedupe:r,...n}=t;if(e.configure(n),n.captureGlobalErrors&&Promise.resolve().then(()=>(Gt(),Jt)).then(s=>s.capture()),r&&e.pending(Promise.resolve().then(()=>(K(),F)).then(s=>s.offer(e,r)).catch(()=>{})),typeof o=="string"){let s=b(o);e.pending(Q(s,e.settings().timeout,"remotes",{cache:"no-cache"}).then(a=>Xt(a,s))).catch(()=>{})}else o&&Xt(o)}function Zt(t,e){let o=typeof e=="string"?{url:e}:e;if(!o.url&&!o.module)throw new f("NOT_REGISTERED",t,"informe url ou module");if(!o.url)return d().register(t,o);let r=b(o.url);d().register(t,{...o,url:r});let{origin:n}=new URL(r);typeof document<"u"&&n!==B()&&n!=="null"&&!document.querySelector(`link[href="${n}"]`)&&C("preconnect",n)}function A(t,e,o=!0){let r=d(),n=b(t),s=e||n;r.entry(s)?.url!==n&&r.register(s,{url:n});let a=new URL(n).origin,i=r.settings().trusted??[];return o&&!i.includes(a)&&r.configure({trusted:[...i,a]}),s}function Xt(t,e){for(let[o,r]of Object.entries(t)){let n=typeof r=="string"?{url:r}:r;Zt(o,n.url?{...n,url:b(n.url,e)}:n)}}function tt(t,e){let o=d(),r=new URL(e).origin,{allowedOrigins:n,trusted:s=[]}=o.settings(),a=[...n??[B(),...o.origins()].filter(Boolean),...s];if(!(a.includes("*")||a.includes(r)||e.startsWith("blob:")))throw new f("ORIGIN_BLOCKED",t,`origem ${r} n\xE3o est\xE1 em allowedOrigins`)}var H=h(()=>{"use strict";w();R();k()});var gt={};x(gt,{attachShadowRoot:()=>bo,prefetch:()=>So,registryFor:()=>ft});function re({css:t,shadow:e}){let o=n=>new URL(n,t[0]).href,r=e?e.css.map(o):[];return[e?[...(e.imports??[]).map(o),...r,...t.slice(r.length)]:t,r,(e?.global??[]).map(o)]}function So(t,e){let[o,,r]=re(t);for(let n of o)yt(n,t.sri?.[n],e).catch(Eo);J(r,null,t.sri)}async function bo(t,e,o,r={},n={}){let s=e().getAttribute("data-vitral-root"),a=ft(s),i=t.shadowRoot;if(!i&&!te(a))try{i=t.attachShadow({mode:"open",customElementRegistry:a})}catch{pt=!0,mt.delete(s),a=ft(s)}i??=t.attachShadow({mode:"open"});let l=i.customElementRegistry??a,u=e();if(!te(l))try{u=e({customElementRegistry:l})}catch{}return u.isConnected||i.appendChild(u),[...await xo(i,u,o,r,n),i,l,u]}function ft(t){let e=mt.get(t);if(e)return e;let o=customElements;if(!pt&&"initialize"in CustomElementRegistry.prototype)try{o=new CustomElementRegistry}catch{pt=!0}let r=o===customElements,n=e=r?Object.create(o):o;if(r)for(let a of["get","getName","upgrade","whenDefined"])a in o&&(n[a]=o[a].bind(o));let s=o.define;return n.define=(a,i,l)=>{let u=o.get(a),m=ee.get(a);if(!u)return r&&ee.set(a,t),s.call(o,a,i,l);r&&u!==i&&m!==t&&Po()&&console.warn(`[vitral] ${t}: <${a}> j\xE1 foi definido por ${m??"outro c\xF3digo"}; fica essa defini\xE7\xE3o. Sem Scoped Custom Element Registries, os remotes dividem o registro global.`)},mt.set(t,e),e}function Po(){try{return process.env.NODE_ENV!=="production"}catch{return!1}}async function xo(t,e,o,r={},n={}){let s=o.sri??{},[a,i,l]=re(o),u=e.cloneNode();u.setAttribute("data-vitral-portal",""),e.after(u);let m=[...r.inherit??[],...n.inherit??[]].map(p=>new URL(p,document.baseURI).href).concat(a),c=J(l,null,s);if(typeof CSSStyleSheet<"u"&&"replaceSync"in CSSStyleSheet.prototype){let p=await Promise.all(m.map(y=>ne(y,[],s[y],i.includes(y)?!!o.shadow.rebase:void 0)));t.adoptedStyleSheets=[...new Set([...t.adoptedStyleSheets,...p.flat()])]}else await J(m,t,s);await c;let g=(n.mirrorTheme??r.mirrorTheme)===!1?[]:[oe(e),oe(u)];return[()=>(g.forEach(p=>p()),u.remove()),u]}function ne(t,e,o,r){let n=dt.get(t);return n||(n=yt(t,o).then(s=>{let a=new CSSStyleSheet;if(r!==!1&&(s=s.replace(Ro,(c,g,p)=>`url(${g}${new URL(p,t).href}${g})`)),r!=null)return a.replaceSync(s),[a];let i=[],l=[],u=s.replace(wo,(c,g,p,y,L)=>{let v=y??L;return v?l.push(new URL(v,t).href):Qt.has(g??c)||(Qt.add(g??c),i.push(c)),""});if(i.length){let c=document.createElement("style");c.setAttribute("data-vitral-properties",""),c.textContent=i.join(`
2
- `),document.head.appendChild(c)}a.replaceSync(u);let m=[...e,t];return Promise.all(l.filter(c=>!m.includes(c)).map(c=>ne(c,m))).then(c=>[...c.flat(),a])}).catch(()=>(dt.delete(t),[])),dt.set(t,n)),n}function oe(t){let e=document.documentElement,o=[],r=()=>{t.classList.remove(...o),o=[...e.classList].filter(a=>!t.classList.contains(a)),t.classList.add(...o);let s=e.getAttribute("data-theme");s===null?t.removeAttribute("data-theme"):t.setAttribute("data-theme",s)};r();let n=new MutationObserver(r);return n.observe(e,{attributeFilter:["class","data-theme"]}),()=>n.disconnect()}var dt,Eo,Qt,Ro,wo,mt,pt,te,ee,ht=h(()=>{"use strict";et();dt=new Map,Eo=()=>{},Qt=new Set,Ro=/url\(\s*(['"]?)(?![a-z]+:|\/\/|#)([^'")]+)\1\s*\)/gi,wo=/@property\s+(--[\w-]+)\s*\{[^}]*\}|@font-face\s*\{[^}]*\}|@import\s+(?:url\(\s*)?(?:(['"])(.*?)\2|([^'"\s);]+))\s*\)?[^;]*;/gi;mt=new Map,pt=!1,te=t=>Object.getPrototypeOf(t)===customElements,ee=new Map});function yt(t,e,o){let r=`${t} ${e??""}`,n=vt.get(r);return n||(n=q(t,d().settings().timeout,t,{integrity:e,priority:o}).then(s=>new TextDecoder().decode(s)),n.catch(()=>vt.delete(r)),vt.set(r,n)),n}function ae(t,e,o="auto"){if(e&&Lo())Promise.resolve().then(()=>(ht(),gt)).then(r=>r.prefetch(t,o),ie);else for(let r of t.css)document.querySelector(`link[href="${r}"]`)||C("preload",r,{as:"style",integrity:t.sri?.[r]??"",fetchPriority:o})}function le(t,e,o,r){return e?Promise.resolve().then(()=>(ht(),gt)).then(n=>n.attachShadowRoot(e,o,t,d().settings().styles,r)):J(t.css,null,t.sri).then(()=>[ie])}function J(t,e,o={}){let r=e??document,n=se.get(r);n||se.set(r,n=new Map);let s=e??document.head,a=d().settings().timeout;return Promise.all(t.map(i=>{let l=n.get(i);return l||(l=new Promise(u=>{let m=C("stylesheet",i,{integrity:o[i]??""},s);setTimeout(u,a),m.onload=()=>u(),m.onerror=()=>{m.remove(),n.delete(i),u()}}),n.set(i,l)),l}))}var se,vt,ie,Lo,et=h(()=>{"use strict";R();k();se=new WeakMap,vt=new Map,ie=()=>{},Lo=()=>typeof CSSStyleSheet<"u"&&"replaceSync"in CSSStyleSheet.prototype});async function ue(t,e,o){let r=o.split(/\s+/).map(i=>/^sha(256|384|512)-([\w+/=-]+)/.exec(i)).filter(i=>!!i);if(!r.length)throw new f("INTEGRITY",t,`formato de integrity inv\xE1lido: ${o}`);let n=Math.max(...r.map(i=>+i[1])),s=btoa(String.fromCharCode(...new Uint8Array(await crypto.subtle.digest("SHA-"+n,e)))),a=r.filter(i=>+i[1]===n).map(i=>i[2]);if(!a.some(i=>ce(i)===ce(s)))throw new f("INTEGRITY",t,`o hash n\xE3o confere: esperado sha${n}-${a.join(" ou ")}, obtido sha${n}-${s}`)}var ce,de=h(()=>{"use strict";w();ce=t=>t.replace(/-/g,"+").replace(/_/g,"/").replace(/=/g,"")});var we={};x(we,{importVerified:()=>Oo,verified:()=>Ee});async function Oo(t,e,o,r){let{entry:n,integrity:s,priority:a}=e;if(!Et.has(n))try{let m=await V(r,t,(async()=>{let c=await Ee(e.split??{entry:n,chunks:[],sri:{[n]:s},priority:a},o);return c&&{ns:await o(c)}})());if(m)return m.ns}catch(u){if(Et.add(n),u instanceof f&&u.code==="TIMEOUT")throw u}let i=await q(n,r,t,Et.has(n)?{priority:a,cache:"reload"}:{priority:a});await ue(t,i,s);let l=URL.createObjectURL(new Blob([i],{type:"text/javascript"}));try{return await o(l)}finally{URL.revokeObjectURL(l)}}async function To(t){if(Rt)return await Rt&&ye(t,!1);let e=!1;try{e=localStorage[ge]===navigator.userAgent}catch{}let o=await(Rt=ye(t,!e));if(o&&!e)try{localStorage[ge]=navigator.userAgent}catch{}return o}async function Ee(t,e){let{entry:o,chunks:r,sri:n,priority:s="auto",dedupe:a=[]}=t,i=a.flatMap(m=>[...m.chunks??[],m.file]);if(![o,...r,...i].every(m=>Mo.test(n[m]??"")))return;let l=globalThis[Symbol.for("vitral")],u=async m=>{if(!e||!a.length)return;let{shared:c}=await Promise.resolve().then(()=>(K(),F));for(let g of a)c(l)(g.name,g.range,{version:g.version,url:g.file,load:async()=>(m&&await Promise.all([...g.chunks??[],g.file].map(p=>wt(p,n[p],s))),(await e(g.file)).default)})};if(pe!==!1&&(pe=await To(n))){await u();for(let m of r)fetch(m,{priority:s}).catch(()=>{});return o}if(await(ko??=Co()))return l.sri={...l.sri,...n},await u(!0),await Promise.all([...r,o].map(m=>wt(m,n[m],s))),o}async function ye(t,e){if(!HTMLScriptElement.supports?.("importmap"))return!1;let o={};for(let s in t)!/\.css([?#]|$)/.test(s)&&!fe.has(s)&&(fe.add(s),o[s]=t[s]);let r=e?["export{}","export{}//"].map(s=>URL.createObjectURL(new Blob([s],{type:"text/javascript"}))):[];for(let s of r)o[s]=ve;let n=!0;try{let s=document.createElement("script");s.type="importmap",s.nonce=document.querySelector("script[nonce]")?.nonce??"",s.onerror=()=>n=!1,s.addEventListener("securitypolicyviolation",()=>n=!1),s.textContent=JSON.stringify({integrity:o}),document.head.append(s),await he(),await he(),n&&e&&(n=await Re(a=>import(a),r[0],r[1]))}catch{n=!1}for(let s of r)URL.revokeObjectURL(s);return n}function wt(t,e,o="auto"){return new Promise((r,n)=>{let s=C("modulepreload",t,{integrity:e,fetchPriority:o});s.onload=r,s.onerror=n})}function Co(){return document.createElement("link").relList.supports("modulepreload")?Re(t=>wt(t,ve),me,me+"//"):Promise.resolve(!1)}function Re(t,e,o){return Promise.race([Promise.all([t(e).then(()=>!0,()=>!1),t(o).then(()=>!1,()=>!0)]).then(([r,n])=>r&&n),new Promise(r=>setTimeout(r,3e3,!1))])}var Et,Mo,me,ve,pe,fe,Rt,ko,ge,he,Se=h(()=>{"use strict";de();w();k();Et=new Set;Mo=/^(sha(256|384|512)-[A-Za-z0-9+/]+={0,2}( +|$))+$/,me="data:text/javascript,export{}",ve="sha256-d3bjIZdvLjBurwdLwkSVOnEBPFFly+T1SR9r3VVHBGg=",fe=new Set,ge="vitral:sri-map";he=()=>new Promise(t=>{let e=new MessageChannel;e.port1.onmessage=()=>t(),e.port2.postMessage(0)})});var xe={};x(xe,{resolveModule:()=>Io,resolveTarget:()=>Ao,splitName:()=>be});function be(t){let e=d(),o=t.length;if(!e.entry(t))for(;(o=t.lastIndexOf("/",o-1))>0&&!e.entry(t.slice(0,o)););return o>0&&o<t.length?[t.slice(0,o),"."+t.slice(o)]:[t,null]}function Ao(t,e){return Pe(t,e).then(o=>St(t,o))}function Pe(t,e){let o=d();return o.entry(t)||!t.includes("/")?e(t):o.pending().then(async()=>{let[r,n]=be(t);if(!n)return e(t);let s=await e(r),a=s.exports?.exposes;if(!a?.[n])throw new f("NOT_EXPOSED",t,`${r} n\xE3o exp\xF5e ${n}. Expostos: ${Object.keys(a??{}).join(", ")}`);try{let i=a[n],l=await(typeof i=="function"?i():i);return{...s,module:l?.default??l,exports:l}}catch(i){throw new f("LOAD_FAILED",t,String(i),i)}})}async function Io(t,e){let o=await Pe(t,e);if(!o.exports)throw new f("INVALID_MODULE",t,"o remote foi carregado por uma c\xF3pia antiga da lib, que n\xE3o guarda os exports");return o.exports}var Le=h(()=>{"use strict";w();ot();R()});var Ae={};x(Ae,{OVERRIDES_KEY:()=>rt,activeOverrides:()=>Ce,clearOverrides:()=>ke,dropOverride:()=>Ho,isRef:()=>bt,manifestUrl:()=>nt,overrideFor:()=>_o,overridesEnabled:()=>Me,resolveOverride:()=>Te,storeOverride:()=>$o,storedOverrides:()=>xt});function Me(){return!!d().settings().devOverrides||typeof location<"u"&&/^(localhost|127\.0\.0\.1|\[::1\])$/.test(location.hostname)}function $o(t,e){let o=xt();e?o[t]=bt(e)?e:nt(e):delete o[t],G(it,o)}function Do(){let t=Pt(st),e=new URLSearchParams(location.search).getAll("vitral").join(",").split(",");if(!e.some(Boolean))return t;for(let o of e){let r=o.indexOf("@");o==="off"?(ke(),Object.keys(t).forEach(n=>delete t[n])):r>0&&o.slice(r+1)==="off"?delete t[o.slice(0,r)]:r>0&&(t[o.slice(0,r)]=o.slice(r+1))}return G(st,t),t}function ke(){G(st,{}),G(it,{})}function Ho(t){for(let e of[st,it]){let o=Pt(e);delete o[t],G(e,o)}}function Te(t,e){if(!bt(e))return new URL(nt(e),location.href).href;let o=d().settings().devOverrides,r=typeof o=="object"?o.preview:void 0;if(!r)return;let n=r.replace(/\{name\}/g,encodeURIComponent(t)).replace(/\{ref\}/g,encodeURIComponent(e));return new URL(nt(n),location.href).href}function Ce(){let t=Do(),e={};for(let[o,r]of[["navegador",xt()],["aba",t]])for(let[n,s]of Object.entries(r))e[n]={name:n,value:s,url:Te(n,s),source:o};return Object.values(e)}function _o(t){if(!Me())return;let e=Ce().find(a=>a.name===t);if(!e)return;let o=!Oe.has(t)&&Oe.add(t);if(!e.url){o&&console.warn(`[vitral] override ${t}@${e.value} ignorado: falta configure({ devOverrides: { preview } })`);return}let r=d(),n=r.settings().trusted??[],s=new URL(e.url).origin;return n.includes(s)||r.configure({trusted:[...n,s]}),o&&console.warn(`[vitral] override ativo: ${t} \u2192 ${e.url} (${e.source}). Para limpar: ?vitral=off`),{url:e.url}}var rt,nt,bt,Pt,G,it,st,xt,Oe,Ie=h(()=>{"use strict";R();rt="vitral:overrides";nt=t=>/\.(json|m?js)(\?|$)/.test(t)?t:t.replace(/\/?$/,"/vitral.json"),bt=t=>/^[\w.-]+$/.test(t),Pt=t=>{try{return JSON.parse(t().getItem(rt)??"{}")??{}}catch{return{}}},G=(t,e)=>{try{Object.keys(e).length?t().setItem(rt,JSON.stringify(e)):t().removeItem(rt)}catch{}},it=()=>localStorage,st=()=>sessionStorage,xt=()=>Pt(it);Oe=new Set});var Ne={};x(Ne,{bucket:()=>_e,pick:()=>Uo,resetChannels:()=>Vo,versionUrl:()=>He});async function Uo(t,e,o){if(typeof o.stable!="string")throw new f("INVALID_MODULE",t,`canal inv\xE1lido em ${e.url}: falta "stable"`);O.watch=jo;let r={name:t,bucket:_e(t)},{canary:n,stable:s}=o,a=await e.resolve?.(o,r)??(n&&r.bucket<n.percent?n.version:s);return a!==s&&Ue()[t]===a&&(a=s),a===s||e.rollback===!1?U.delete(t):U.get(t)?.from!==a&&U.set(t,{from:a,to:s,errors:0,mounts:0,max:{errors:3,mounts:20,...e.rollback}}),{...e,url:He(a,e.url),integrity:void 0,manifest:void 0}}function _e(t){let e=d().settings().canaryKey??No(),o=2166136261;for(let r of`${e}:${t}`)o=Math.imul(o^r.charCodeAt(0),16777619);return(o>>>0)%100}function No(){try{_??=localStorage.getItem($e)??void 0}catch{}if(!_){_=Math.random().toString(36).slice(2);try{localStorage.setItem($e,_)}catch{}}return _}function Ue(){try{return{...JSON.parse(sessionStorage.getItem(De)||"{}"),...Y}}catch{return Y}}function jo(t,e){for(let[o,r]of U)t!==o&&!t.startsWith(o+"/")||(e?++r.errors>=r.max.errors&&Bo(o,r):++r.mounts>r.max.mounts&&(r.mounts=1,r.errors=0))}function Bo(t,e){U.delete(t),Y={...Ue(),[t]:e.from};try{sessionStorage.setItem(De,JSON.stringify(Y))}catch{}console.warn(`[vitral] ${t}: ${e.errors} erros em ${e.mounts} montagens da vers\xE3o ${e.from}; voltando para ${e.to}`);try{d().settings().onRollback?.({name:t,from:e.from,to:e.to,errors:e.errors,mounts:e.mounts})}catch{}let o=d();o.register(t,o.entry(t)),o.events.emit("vitral:refresh",t)}function Vo(){U.clear(),Y={},_=void 0}var De,$e,U,Y,_,He,je=h(()=>{"use strict";w();X();R();k();De="vitral:rollback",$e="vitral:id",U=new Map,Y={};He=(t,e)=>b(/[/:]|\.(m?js|json)$/.test(t)?t:`${t}/vitral.json`,e)});var Be={};x(Be,{checkContract:()=>qo});async function qo(t,e=d().settings().contract){let{satisfies:o}=await Promise.resolve().then(()=>(K(),F));if(t.version&&!o(t.version,e))return`o host aceita contrato ${e}, o remote publica ${t.version}`;let r=d().settings().offered??{};for(let n in t.peers){let s=r[n];if(s&&!o(s,t.peers[n]))return`o remote espera ${n} ${t.peers[n]}, o host oferece ${s}`}}var Ve=h(()=>{"use strict";R()});var qe={};x(qe,{stale:()=>Fo});function Fo(t,e,o){let r="vitral:manifest:"+t;e.then(n=>localStorage[r]=JSON.stringify({t:Date.now(),m:n})).catch(()=>{});try{let n=JSON.parse(localStorage[r]);if(Date.now()-n.t<o*1e3)return n.m}catch{}return e}var Fe=h(()=>{"use strict"});function Ke(t){Mt(t).catch(()=>{})}function Ko(){Lt||(Lt=Promise.resolve().then(()=>(Se(),we)).catch(()=>null),Promise.resolve().then(()=>(K(),F)).catch(()=>{}))}function Mt(t,e,o){let r=n=>Jo(n,e,o);return(d().entry(t)||!t.includes("/")?r(t).then(n=>St(t,n)):Promise.resolve().then(()=>(Le(),xe)).then(n=>n.resolveTarget(t,r))).catch(Z)}function Jo(t,e,o){let r=d();return r.load(t,async()=>{Ko();let n;try{await r.pending();let s=await Je(t),a=s?{isolate:r.entry(t)?.isolate,...s}:r.entry(t);if(!a)throw new f("NOT_REGISTERED",t,"remote n\xE3o registrado. Use configure({ remotes }).");if(a.module)return await Go(t,a);let i=performance.now();n=await Ot(t,a,o),D(t,"manifest",i),ae(n,(e??n.isolate??r.settings().isolate)==="shadow",o),i=performance.now();let l=await Vt(r.settings().retries,()=>Wo(t,n));return D(t,"js",i),{...n,module:l?.default??l,exports:l}}catch(s){throw M(S(s)?s:new f("LOAD_FAILED",t,String(s?.message??s),s),n)}})}function Je(t){try{let e="vitral:overrides";if(/[?&]vitral=/.test(location.search)||localStorage[e]||sessionStorage[e])return Promise.resolve().then(()=>(Ie(),Ae)).then(o=>o.overrideFor(t))}catch{}}async function Go(t,e){let o=e.module;return typeof o=="function"&&(o=await o()),{module:o?.default??o,exports:o,entry:typeof location<"u"?location.href:"http://localhost/",css:e.css??[],isolate:e.isolate}}async function Ot(t,e,o){tt(t,e.url);let r=e.manifest??(new URL(e.url).pathname.endsWith(".json")?await Yo(e.url,t,o):{name:t,entry:e.url});if(r?.stable)return Ot(t,await(await Promise.resolve().then(()=>(je(),Ne))).pick(t,e,r),o);if(typeof r?.entry!="string")throw new f("INVALID_MODULE",t,`manifesto inv\xE1lido em ${e.url}`);if(r.contract&&(e.contract||d().settings().contract)){let i=await(await Promise.resolve().then(()=>(Ve(),Be))).checkContract(r.contract,e.contract);if(i)throw new f("CONTRACT_MISMATCH",t,i)}let n=i=>b(i,e.url),s={};for(let i in r.files??{})s[n(i)]=r.files[i];let a={entry:n(r.entry),css:[...r.css??[],...e.css??[]].map(n),shadow:r.shadow,integrity:e.integrity??r.integrity,isolate:e.isolate,scope:r.scope,version:r.version,sri:s,priority:o,split:r.split&&!e.integrity?{entry:n(r.split.entry),chunks:(r.split.chunks??[]).map(n),sri:s,priority:o,dedupe:r.dedupe?.map(i=>({...i,file:n(i.file),chunks:i.chunks?.map(n)}))}:void 0};tt(t,a.entry);for(let i of[a.split?.entry,...(a.split?.dedupe??[]).map(l=>l.file)])i&&tt(t,i);if(t===e.url&&r.name){let i=await Je(r.name);if(i)return{...await Ot(t,i),name:r.name};a.name=r.name,d().entry(r.name)||d().register(r.name,e)}return a}function Yo(t,e,o){let{timeout:r,maxStale:n}=d().settings(),s=Q(t,r,e,{cache:"no-cache",priority:o});return n?Promise.resolve().then(()=>(Fe(),qe)).then(a=>a.stale(t,s,n),()=>s):s}async function Wo(t,e){let{timeout:o}=d().settings(),r=s=>V(o,t,import(s)).catch(a=>{throw S(a)?a:new f("LOAD_FAILED",t,`falha ao importar ${e.entry}`,a)});if(!e.integrity)return r(e.entry);let n=await Lt;if(!n)throw new f("LOAD_FAILED",t,"n\xE3o foi poss\xEDvel carregar o verificador de integrity");return n.importVerified(t,e,r,o)}function St(t,e){if(typeof e.module?.mount!="function")throw new f("INVALID_MODULE",t,"o m\xF3dulo n\xE3o exporta mount(). Use defineRemote(), ou loadModule() para m\xF3dulo sem UI.");return e}var Lt,ot=h(()=>{"use strict";et();w();H();R();k()});var kt={};x(kt,{load:()=>to,noFrames:()=>zo});function to(t){throw new f("MOUNT_FAILED",t,"isolate sem suporte no embed.js")}var zo,Tt=h(()=>{"use strict";w();zo=(t,e)=>to(e)});H();et();w();R();var I={emit:(t,e)=>d().events.emit(t,e),on:(t,e)=>d().events.on(t,e),last:t=>d().events.last(t)};function Ge(){let t=new Set,e=o=>{let r=()=>(t.delete(r),o());return t.add(r),r};return{bus:{emit:(o,r)=>I.emit(o,r),last:o=>I.last(o),on:(o,r)=>e(I.on(o,r))},track:e,dispose(){for(let o of[...t])o()}}}X();ot();function Ye(t,e={}){let o=new URL(t,location.href);if(o.origin!==location.origin){location.assign(o.href);return}e.replace?history.replaceState(history.state,"",o.href):history.pushState(history.state,"",o.href),dispatchEvent(new PopStateEvent("popstate",{state:history.state})),I.emit("vitral:navigate",o.pathname+o.search+o.hash)}R();w();var We=new Map,W=new Map;function Ze(t,e){return We.set(t,e.entry),$.set(t,e),W.set(t,(W.get(t)??0)+1),()=>{let o=W.get(t)-1;o?W.set(t,o):(W.delete(t),We.delete(t),$.delete(t))}}var ze=null;function Qe(t,e,o,r){let n=0,s=I.on("vitral:refresh",a=>{if(a!==e&&!e.startsWith(a+"/"))return;let i=++n,l=o,u=r(l).then(m=>{if(t.unmount===Xe||i!==n)return m.unmount();let c=t;t=m,c.unmount(),o!==l&&m.update?.(o)});ze?ze.push(u):u.catch(console.error)});return{update(a){o=a,t.update?.(a)},unmount(){s(),t.unmount(),t={unmount:Xe}}}}var Xe=()=>{};k();async function oo(t,e,o,r={}){return Qe(await eo(t,e,o,r),e,o,n=>eo(t,e,n,r))}var Xo;async function eo(t,e,o,r){let n=d();await n.pending();let s=r.isolate??Zo(e)?.isolate??n.settings().isolate;if(s==="iframe")return(Xo??(await Promise.resolve().then(()=>(Tt(),kt))).noFrames)(t,e,o,r).catch(Z);let{module:a,...i}=await(s=="reframe"?(await Promise.resolve().then(()=>(Tt(),kt))).load:Mt)(e,s,r.priority),l=Ze(e,i);O.watch?.(e);let u=i.name??e,m=E=>{let P=document.createElement("div",E);return P.setAttribute("data-vitral-root",u),i.scope&&P.setAttribute("data-vitral-scope",i.scope),P.style.display="contents",P},c=performance.now(),[g,p=document.body,y=null,L=customElements,v=t.appendChild(m())]=await le(i,s>"q"&&t,m,r.styles);D(e,"css",c),c=performance.now();let z=Ge(),$t=E=>P=>(v.addEventListener(E,P),()=>v.removeEventListener(E,P)),Dt={name:u,baseUrl:new URL(".",i.entry).href,events:z.bus,shadowRoot:y,portalContainer:p,customElements:L,reportError(E){let P=M(S(E)?E:new f("RENDER_FAILED",u,String(E?.message??E),E),i);r.onError?r.onError(P):console.error(P)},navigate:Ye,protocol:n.protocol,onActivate:$t("vitral:activate"),onDeactivate:$t("vitral:deactivate")};O.shared&&(Dt.shared=O.shared(e,z.track));let at;try{at=await a.mount(v,o,Dt),D(e,"mount",c)}catch(E){throw l(),z.dispose(),g(),v.remove(),M(new f("MOUNT_FAILED",u,"erro ao montar",E),i)}let lt=!0;return{update(E){lt&&at.update?.(E)},unmount(){if(lt){lt=!1;try{at.unmount()}finally{l(),z.dispose(),g(),v.remove()}}}}}function Zo(t){let e=d(),o=t;for(;o&&!e.entry(o);)o=o.slice(0,Math.max(0,o.lastIndexOf("/")));return o?e.entry(o):void 0}w();H();function ro(t,e){let{isolate:o}=e,r=p=>p.src?A(p.src,p.name):p.name??"",n=r(e),s=e.props??{},a=null,i=null,l=0,u="loading",m=(p,y=null)=>{u=p,i&&(i.style.display=p==="error"?"none":""),e.onStatus?.(p,y)},c=()=>{a?.unmount(),a=null,i?.remove(),i=null},g=()=>{let p=++l;c(),i=document.createElement("div"),i.setAttribute("data-vitral-slot",n),t.appendChild(i),m("loading");let y=v=>{p===l&&m("error",S(v)?v:new f("MOUNT_FAILED",n,String(v),v))},L=s;oo(i,n,s,{isolate:o,priority:e.priority,styles:e.styles,onError:y}).then(v=>{if(p!==l)return v.unmount();a=v,s!==L&&v.update?.(s),m("ready")},y)};return g(),{update(p){s=p,a?.update?.(p)},set(p){let y=p.src||p.name!==void 0?r(p):n,L=y!==n||"isolate"in p&&p.isolate!==o;n=y,"isolate"in p&&(o=p.isolate),L&&g()},retry:g,destroy(){l++,c()},get status(){return u}}}ot();H();var Ct=()=>{};function so(t){let e={};if(typeof performance>"u"||!performance.getEntriesByName)return e;for(let o of["manifest","js","css","mount"]){let r=performance.getEntriesByName(`vitral:${t}:${o}`,"measure").pop();r&&(e[o]=Math.round(r.duration*10)/10)}return e}function no(t,e,o){if(e==="lazy"||e==="visible"){if(typeof IntersectionObserver>"u")return o(),Ct;let r=new IntersectionObserver(n=>{n.some(s=>s.isIntersecting)&&(r.disconnect(),o())},{rootMargin:"200px"});return r.observe(t),()=>r.disconnect()}if(e==="idle"){if(typeof requestIdleCallback>"u"){let n=setTimeout(o,1);return()=>clearTimeout(n)}let r=requestIdleCallback(o,{timeout:2e3});return()=>cancelIdleCallback(r)}if(e==="hover"){let r=()=>(n(),o()),n=()=>{t.removeEventListener("pointerenter",r),t.removeEventListener("focusin",r)};return t.addEventListener("pointerenter",r),t.addEventListener("focusin",r),n}return o(),Ct}var T=new Map,N=null;function io(t,e){try{t.moveBefore(e,null)}catch{t.appendChild(e)}}function At(t,e){for(let o of t.querySelectorAll("*"))o.hasAttribute("data-vitral-root")&&o.dispatchEvent(new Event(e)),o.shadowRoot&&At(o.shadowRoot,e)}function Qo(t,e,o){T.get(t)?.slot.destroy(),T.delete(t),N?.isConnected||(N=document.createElement("div"),N.hidden=!0,N.setAttribute("data-vitral-keep-alive",""),document.body.appendChild(N)),io(N,e.box),At(e.box,"vitral:deactivate"),T.set(t,e);for(let[r,n]of T){if(T.size<=o)break;T.delete(r),n.slot.destroy(),n.box.remove()}}function ao(t,e){let{props:o={},keepAlive:r}=e,n=c=>c.src?A(c.src,c.name):c.name??"",s=n(e),a="loading",i=null,l=(c,g)=>{a=c,e.onStatus?.(c,g)},u=e.prefetch?no(t,e.prefetch,()=>Ke(s)):Ct,m=no(t,e.loading,()=>{u();let c=r?T.get(s):void 0;if(c){T.delete(s),i=c,i.on=l,io(t,i.box),i.slot.update(o),At(i.box,"vitral:activate"),l(i.slot.status,null);return}let g=t;r&&(g=t.appendChild(document.createElement("div")),g.style.display="contents");let p={box:g,on:l,slot:null};p.slot=ro(g,{...e,name:s,src:void 0,props:o,onStatus:(y,L)=>p.on(y,L)}),i=p});return{update(c){o=c,i?.slot.update(c)},set(c){(c.src||c.name!==void 0)&&(s=n(c)),i?.slot.set({...c,src:void 0,name:s})},retry:()=>i?.slot.retry(),destroy(){m(),u(),i&&(r&&a==="ready"?Qo(s,i,r===!0?5:r):(i.slot.destroy(),i.box!==t&&i.box.remove()),i=null)},get status(){return a}}}H();var tr=typeof HTMLElement>"u"?class{}:HTMLElement,It=class extends tr{static{this.observedAttributes=["name","src","props","isolate"]}#t=null;#e={};get props(){return this.#e}set props(e){this.#e=e??{},this.#t?.update(this.#e)}get status(){return this.#t?.status??"loading"}retry(){this.#t?.retry()}connectedCallback(){if(this.#t)return;let e=this.#r();if(!e)return;this.hasAttribute("props")&&!Object.keys(this.#e).length&&(this.#e=lo(this.getAttribute("props")));let o=this.getAttribute("keep-alive"),r={name:e,props:this.#e,isolate:this.getAttribute("isolate")||void 0,loading:this.getAttribute("loading"),prefetch:this.getAttribute("prefetch"),priority:this.getAttribute("priority")||void 0,keepAlive:o===null?!1:Number(o)||!0,styles:{inherit:this.getAttribute("inherit-styles")?.split(/\s+/).filter(Boolean)},onStatus:(s,a)=>{this.setAttribute("data-vitral-status",s),s==="loading"?this.setAttribute("aria-busy","true"):this.removeAttribute("aria-busy");let i=l=>{let u=this.querySelectorAll(`:scope > [slot="${l}"]`);for(let m of u)m.hidden=s!==(l==="fallback"?"loading":"error");return u.length>0};queueMicrotask(()=>{if(this.#t?.status!==s)return;let l={loading:i("fallback"),error:i("error"),ready:!0};this.#n(l[s]?null:s)}),s==="ready"&&this.dispatchEvent(new CustomEvent("vitral-ready",{bubbles:!0,detail:{timings:so(e)}})),s==="error"&&this.dispatchEvent(new CustomEvent("vitral-error",{bubbles:!0,detail:{error:a}}))}},n=null;this.#t=ao(this,r)}#r(){let e=this.getAttribute("src"),o=this.getAttribute("name");return e?A(e,o??void 0,!1):o}#o=null;#n(e){if(this.#o?.remove(),this.#o=null,!e)return;let o=document.createElement("div");if(o.setAttribute("data-vitral-default",e),e==="loading")o.setAttribute("role","status"),o.textContent="Carregando\u2026";else{o.setAttribute("role","alert");let r=document.createElement("button");r.type="button",r.textContent="Tentar de novo",r.onclick=()=>this.retry(),o.append("N\xE3o foi poss\xEDvel carregar. ",r)}this.prepend(this.#o=o)}disconnectedCallback(){queueMicrotask(()=>{this.isConnected||(this.#t?.destroy(),this.#t=null,this.#n(null))})}attributeChangedCallback(e,o,r){if(e==="props")return void(this.props=lo(r));if(!this.#t)return void(this.isConnected&&this.connectedCallback());if(e==="name"||e==="src"){let n=this.#r();n&&this.#t.set({name:n})}e==="isolate"&&this.#t.set({isolate:r||void 0})}};function lo(t){if(!t)return{};try{return JSON.parse(t)}catch{return console.error("[vitral] atributo props n\xE3o \xE9 JSON v\xE1lido:",t),{}}}function co(t="vitral-remote"){typeof customElements<"u"&&!customElements.get(t)&&customElements.define(t,class extends It{})}R();k();var uo="data-vitral-embed";function mo(t){let e=t.dataset;if(!e.remote||t.hasAttribute(uo))return null;let o=e.target?document.querySelector(e.target):t.closest("body")?t:document.body;if(!o)return document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>mo(t),{once:!0}):console.error(`[vitral] data-target n\xE3o encontrado: ${e.target}`),null;t.setAttribute(uo,"");let r=b(e.remote);er([new URL(r).origin,...e.origins?.split(/\s+/).filter(Boolean)??[]]),co();let n=document.createElement("vitral-remote");return n.setAttribute("isolate",e.isolate||"shadow"),e.loading&&n.setAttribute("loading",e.loading),e.props&&n.setAttribute("props",e.props),e.name&&n.setAttribute("name",e.name),n.setAttribute("src",r),o===t?t.after(n):o.appendChild(n),n}function er(t){let e=d(),o=e.settings().allowedOrigins??[B(),...e.origins()].filter(Boolean);ut({allowedOrigins:[...new Set([...o,...t])]})}var or=Symbol.for("vitral:embed"),rr=globalThis[or]??=mo;typeof document<"u"&&document.currentScript instanceof HTMLScriptElement&&rr(document.currentScript);})();
1
+ "use strict";(()=>{var fo=Object.defineProperty;var y=(t,e)=>()=>(t&&(e=t(t=0)),e);var x=(t,e)=>{for(var o in e)fo(t,o,{get:e[o],enumerable:!0})};var O,X=y(()=>{"use strict";O={}});function Ut(){let t=new Map,e=new Map;return{emit(o,r){e.set(o,r);for(let n of[...t.get(o)??[]])try{n(r)}catch(s){console.error(`[vitral] handler de "${o}" falhou`,s)}},on(o,r){let n=t.get(o);return n||t.set(o,n=new Set),n.add(r),()=>n.delete(r)},last(o){return e.get(o)}}}var Nt=y(()=>{"use strict"});function go(){let t={timeout:15e3,retries:1,isolate:"none",allowedOrigins:null},e=new Map,o=new Map,r=Promise.resolve();return{protocol:qt,events:Ut(),settings:()=>t,configure(n){Object.assign(t,n)},register(n,s){e.set(n,s),o.delete(n)},entry:n=>e.get(n),origins:()=>[...e.values()].filter(n=>n.url).map(n=>new URL(n.url).origin),pending(n){return n&&(r=Promise.all([r,n])),r.then(()=>{})},load(n,s){let a=o.get(n);if(!a){a=s();let i=a;i.catch(()=>o.get(n)===i&&o.delete(n)),o.set(n,a)}return a}}}function d(){let t=Bt[jt];return t&&typeof t.protocol=="number"&&t.protocol>=qt?t:Bt[jt]=go()}var qt,jt,Bt,E=y(()=>{"use strict";Nt();qt=1,jt=Symbol.for("vitral"),Bt=globalThis});function M(t,e){if(b(t)&&!q.has(t)){q.add(t),t.cause instanceof Object&&q.add(t.cause),t.entry??=e?.entry??d().entry(t.remote)?.url,t.version??=e?.version;try{d().settings().onError?.(t)}catch{}O.watch?.(t.remote,t)}return t}var Vt,f,b,$,q,Z,w=y(()=>{"use strict";X();E();Vt="https://joaogabriel15.github.io/vitral/erros/",f=class extends Error{constructor(o,r,n,s){super(`[vitral] ${r}: ${n} (${Vt}${o})`);this.code=o;this.remote=r;this.cause=s;this.name="RemoteError",this.docs=`${Vt}${o}`,typeof location<"u"&&(this.route=location.pathname)}},b=t=>t?.name==="RemoteError",$=new Map,q=new WeakSet;Z=t=>{throw M(t)}});function V(){return typeof location<"u"?location.origin:null}function S(t,e){return new URL(t,e??(typeof location<"u"?location.href:void 0)).href}async function Ft(t,e){for(let o=0;;o++)try{return await e()}catch(r){if(!(b(r)&&(r.code==="LOAD_FAILED"||r.code==="TIMEOUT"))||o>=t)throw r;await new Promise(s=>setTimeout(s,200*2**o))}}function F(t,e,o){return new Promise((r,n)=>{let s=setTimeout(()=>n(new f("TIMEOUT",e,`n\xE3o respondeu em ${t}ms`)),t);o.then(r,n).finally(()=>clearTimeout(s))})}function K(t,e,o,r){let n=new AbortController,s=fetch(t,{signal:n.signal,credentials:"omit",...r}).then(a=>{if(!a.ok)throw new f("LOAD_FAILED",o,`HTTP ${a.status} em ${t}`);return a.arrayBuffer()},a=>{throw new f("LOAD_FAILED",o,`falha ao baixar ${t}`,a)});return F(e,o,s).catch(a=>{throw n.abort(),a})}async function Q(t,e,o,r){let n=new TextDecoder().decode(await K(t,e,o,r));try{return JSON.parse(n)}catch(s){throw new f("INVALID_MODULE",o,`JSON inv\xE1lido em ${t}`,s)}}function C(t,e,o={},r=document.head){return r.appendChild(Object.assign(document.createElement("link"),{rel:t,crossOrigin:"anonymous",href:e},o))}function D(t,e,o){try{let r=`vitral:${t}:${e}`;performance.clearMeasures(r),performance.measure(r,{start:o}),d().settings().onMetric?.({name:t,stage:e,start:o,duration:performance.now()-o})}catch{}}var k=y(()=>{"use strict";w();E()});var Wt={};x(Wt,{capture:()=>ho,owner:()=>Jt});function ho(){Kt||typeof addEventListener>"u"||(Kt=!0,addEventListener("error",t=>zt(t.error,t.filename)),addEventListener("unhandledrejection",t=>zt(t.reason)))}function Jt(t,e){let o=e||String(t?.stack??"").match(/(?:https?|file):\/\/[^\s)'"]+/)?.[0];if(!o)return;let r=[...document.querySelectorAll("script[src],link[rel=modulepreload]")].map(a=>a.src||a.href),n,s=0;for(let[a,{entry:i}]of $){let l=new URL(".",i).href;l.length>s&&o.startsWith(l)&&!r.some(u=>u.startsWith(l))&&(n=a,s=l.length)}return n}function zt(t,e){if(!d().settings().captureGlobalErrors||b(t)||t instanceof Object&&q.has(t))return;let o=Jt(t,e);o&&M(new f("RENDER_FAILED",o,String(t?.message??t),t),$.get(o))}var Kt,Gt=y(()=>{"use strict";w();E();Kt=!1});function dt(t,e){if(e==="*")return!0;let[,o="",r=""]=/^(\^|~|>=|=)?(.*)$/.exec(e.trim());if(!o||o==="="||t.includes("-"))return t===r;let[n,s]=[t,r].map(i=>(i+".0.0").split(".",3).map(Number));for(let i=0;i<3;i++)if(n[i]!==s[i]){if(!(n[i]>s[i]))return!1;break}if(o===">=")return!0;let a=Math.min(r.split(".").length,o==="~"?2:s[0]?1:s[1]?2:3);return n.slice(0,a).join(".")===s.slice(0,a).join(".")}var Yt=y(()=>{"use strict"});var H={};x(H,{offer:()=>Ro,satisfies:()=>dt,shared:()=>Zt});function Zt(t){if(!t.dedupe){let e=new Map,o=new Map,r=(s,a)=>s.includes(a)&&s.splice(s.indexOf(a),1),n=(s,a,i)=>(i.p||((i.p=i.load()).catch(()=>r(a,i)),i.url&&i.p.then(()=>vo(`${s}@${i.version}`,i.url),()=>{})),i.p);t.dedupe=(s,a,i)=>{let l=i,u=e.get(s)??[];e.set(s,u),l?.url&&o.get(s+l.url)?.(l);let m=u.find(c=>dt(c.version,a));if(!m&&l){m=u[u.push(l)-1];let c=l.url&&yo(`${s}@${l.version}`);c&&c!==l.url&&(l.p=new Promise(g=>{o.set(s+c,g),setTimeout(g,300,l)}).then(g=>(o.delete(s+c),g===l&&(l.p=void 0),n(s,u,g))),l.p.catch(()=>r(u,l)))}return m&&n(s,u,m)}}return t.dedupe}function Ro(t,e){for(let o in e){let{version:r,modules:n}=e[o];Zt(t)(o,r,{version:r,load:typeof n=="function"?n:async()=>n}),t.configure({offered:{...t.settings().offered,[o]:r}})}}var Xt,yo,vo,_=y(()=>{"use strict";Yt();Xt="vitral:dedupe:",yo=t=>{try{return localStorage.getItem(Xt+t)}catch{return null}},vo=(t,e)=>{try{localStorage.setItem(Xt+t,e)}catch{}}});function pt(t){let e=d(),{remotes:o,dedupe:r,...n}=t;if(e.configure(n),n.captureGlobalErrors&&Promise.resolve().then(()=>(Gt(),Wt)).then(s=>s.capture()),r&&e.pending(Promise.resolve().then(()=>(_(),H)).then(s=>s.offer(e,r)).catch(()=>{})),typeof o=="string"){let s=S(o);e.pending(Q(s,e.settings().timeout,"remotes",{cache:"no-cache"}).then(a=>Qt(a,s))).catch(()=>{})}else o&&Qt(o)}function te(t,e){let o=typeof e=="string"?{url:e}:e;if(!o.url&&!o.module)throw new f("NOT_REGISTERED",t,"informe url ou module");if(!o.url)return d().register(t,o);let r=S(o.url);d().register(t,{...o,url:r});let{origin:n}=new URL(r);typeof document<"u"&&n!==V()&&n!=="null"&&!document.querySelector(`link[href="${n}"]`)&&C("preconnect",n)}function A(t,e,o=!0){let r=d(),n=S(t),s=e||n;r.entry(s)?.url!==n&&r.register(s,{url:n});let a=new URL(n).origin,i=r.settings().trusted??[];return o&&!i.includes(a)&&r.configure({trusted:[...i,a]}),s}function Qt(t,e){for(let[o,r]of Object.entries(t)){let n=typeof r=="string"?{url:r}:r;te(o,n.url?{...n,url:S(n.url,e)}:n)}}function tt(t,e){let o=d(),r=new URL(e).origin,{allowedOrigins:n,trusted:s=[]}=o.settings(),a=[...n??[V(),...o.origins()].filter(Boolean),...s];if(!(a.includes("*")||a.includes(r)||e.startsWith("blob:")))throw new f("ORIGIN_BLOCKED",t,`origem ${r} n\xE3o est\xE1 em allowedOrigins`)}var U=y(()=>{"use strict";w();E();k()});var yt={};x(yt,{attachShadowRoot:()=>Po,prefetch:()=>So,registryFor:()=>ht});function se({css:t,shadow:e}){let o=n=>new URL(n,t[0]).href,r=e?e.css.map(o):[];return[e?[...(e.imports??[]).map(o),...r,...t.slice(r.length)]:t,r,(e?.global??[]).map(o)]}function So(t,e){let[o,,r]=se(t);for(let n of o)Rt(n,t.sri?.[n],e).catch(Eo);z(r,null,t.sri)}async function Po(t,e,o,r={},n={}){let s=e().getAttribute("data-vitral-root"),a=ht(s),i=t.shadowRoot;if(!i&&!oe(a))try{i=t.attachShadow({mode:"open",customElementRegistry:a})}catch{gt=!0,ft.delete(s),a=ht(s)}i??=t.attachShadow({mode:"open"});let l=i.customElementRegistry??a,u=e();if(!oe(l))try{u=e({customElementRegistry:l})}catch{}return u.isConnected||i.appendChild(u),[...await Lo(i,u,o,r,n),i,l,u]}function ht(t){let e=ft.get(t);if(e)return e;let o=customElements;if(!gt&&"initialize"in CustomElementRegistry.prototype)try{o=new CustomElementRegistry}catch{gt=!0}let r=o===customElements,n=e=r?Object.create(o):o;if(r)for(let a of["get","getName","upgrade","whenDefined"])a in o&&(n[a]=o[a].bind(o));let s=o.define;return n.define=(a,i,l)=>{let u=o.get(a),m=re.get(a);if(!u)return r&&re.set(a,t),s.call(o,a,i,l);r&&u!==i&&m!==t&&xo()&&console.warn(`[vitral] ${t}: <${a}> j\xE1 foi definido por ${m??"outro c\xF3digo"}; fica essa defini\xE7\xE3o. Sem Scoped Custom Element Registries, os remotes dividem o registro global.`)},ft.set(t,e),e}function xo(){try{return process.env.NODE_ENV!=="production"}catch{return!1}}async function Lo(t,e,o,r={},n={}){let s=o.sri??{},[a,i,l]=se(o),u=e.cloneNode();u.setAttribute("data-vitral-portal",""),e.after(u);let m=[...r.inherit??[],...n.inherit??[]].map(p=>new URL(p,document.baseURI).href).concat(a),c=z(l,null,s);if(typeof CSSStyleSheet<"u"&&"replaceSync"in CSSStyleSheet.prototype){let p=await Promise.all(m.map(h=>ie(h,[],s[h],i.includes(h)?!!o.shadow.rebase:void 0)));t.adoptedStyleSheets=[...new Set([...t.adoptedStyleSheets,...p.flat()])]}else await z(m,t,s);await c;let g=(n.mirrorTheme??r.mirrorTheme)===!1?[]:[ne(e),ne(u)];return[()=>(g.forEach(p=>p()),u.remove()),u]}function ie(t,e,o,r){let n=mt.get(t);return n||(n=Rt(t,o).then(s=>{let a=new CSSStyleSheet;if(r!==!1&&(s=s.replace(wo,(c,g,p)=>`url(${g}${new URL(p,t).href}${g})`)),r!=null)return a.replaceSync(s),[a];let i=[],l=[],u=s.replace(bo,(c,g,p,h,L)=>{let v=h??L;return v?l.push(new URL(v,t).href):ee.has(g??c)||(ee.add(g??c),i.push(c)),""});if(i.length){let c=document.createElement("style");c.setAttribute("data-vitral-properties",""),c.textContent=i.join(`
2
+ `),document.head.appendChild(c)}a.replaceSync(u);let m=[...e,t];return Promise.all(l.filter(c=>!m.includes(c)).map(c=>ie(c,m))).then(c=>[...c.flat(),a])}).catch(()=>(mt.delete(t),[])),mt.set(t,n)),n}function ne(t){let e=document.documentElement,o=[],r=()=>{t.classList.remove(...o),o=[...e.classList].filter(a=>!t.classList.contains(a)),t.classList.add(...o);let s=e.getAttribute("data-theme");s===null?t.removeAttribute("data-theme"):t.setAttribute("data-theme",s)};r();let n=new MutationObserver(r);return n.observe(e,{attributeFilter:["class","data-theme"]}),()=>n.disconnect()}var mt,Eo,ee,wo,bo,ft,gt,oe,re,vt=y(()=>{"use strict";et();mt=new Map,Eo=()=>{},ee=new Set,wo=/url\(\s*(['"]?)(?![a-z]+:|\/\/|#)([^'")]+)\1\s*\)/gi,bo=/@property\s+(--[\w-]+)\s*\{[^}]*\}|@font-face\s*\{[^}]*\}|@import\s+(?:url\(\s*)?(?:(['"])(.*?)\2|([^'"\s);]+))\s*\)?[^;]*;/gi;ft=new Map,gt=!1,oe=t=>Object.getPrototypeOf(t)===customElements,re=new Map});function Rt(t,e,o){let r=`${t} ${e??""}`,n=Et.get(r);return n||(n=K(t,d().settings().timeout,t,{integrity:e,priority:o}).then(s=>new TextDecoder().decode(s)),n.catch(()=>Et.delete(r)),Et.set(r,n)),n}function ce(t,e,o="auto"){if(e&&Oo())Promise.resolve().then(()=>(vt(),yt)).then(r=>r.prefetch(t,o),le);else for(let r of t.css)document.querySelector(`link[href="${r}"]`)||C("preload",r,{as:"style",integrity:t.sri?.[r]??"",fetchPriority:o})}function ue(t,e,o,r){return e?Promise.resolve().then(()=>(vt(),yt)).then(n=>n.attachShadowRoot(e,o,t,d().settings().styles,r)):z(t.css,null,t.sri).then(()=>[le])}function z(t,e,o={}){let r=e??document,n=ae.get(r);n||ae.set(r,n=new Map);let s=e??document.head,a=d().settings().timeout;return Promise.all(t.map(i=>{let l=n.get(i);return l||(l=new Promise(u=>{let m=C("stylesheet",i,{integrity:o[i]??""},s);setTimeout(u,a),m.onload=()=>u(),m.onerror=()=>{m.remove(),n.delete(i),u()}}),n.set(i,l)),l}))}var ae,Et,le,Oo,et=y(()=>{"use strict";E();k();ae=new WeakMap,Et=new Map,le=()=>{},Oo=()=>typeof CSSStyleSheet<"u"&&"replaceSync"in CSSStyleSheet.prototype});async function pe(t,e,o){let r=o.split(/\s+/).map(i=>/^sha(256|384|512)-([\w+/=-]+)/.exec(i)).filter(i=>!!i);if(!r.length)throw new f("INTEGRITY",t,`formato de integrity inv\xE1lido: ${o}`);let n=Math.max(...r.map(i=>+i[1])),s=btoa(String.fromCharCode(...new Uint8Array(await crypto.subtle.digest("SHA-"+n,e)))),a=r.filter(i=>+i[1]===n).map(i=>i[2]);if(!a.some(i=>de(i)===de(s)))throw new f("INTEGRITY",t,`o hash n\xE3o confere: esperado sha${n}-${a.join(" ou ")}, obtido sha${n}-${s}`)}var de,me=y(()=>{"use strict";w();de=t=>t.replace(/-/g,"+").replace(/_/g,"/").replace(/=/g,"")});var be={};x(be,{importVerified:()=>Mo,verified:()=>we});async function Mo(t,e,o,r){let{entry:n,integrity:s,priority:a}=e;if(!wt.has(n))try{let m=await F(r,t,(async()=>{let c=await we(e.split??{entry:n,chunks:[],sri:{[n]:s},priority:a},o);return c&&{ns:await o(c)}})());if(m)return m.ns}catch(u){if(wt.add(n),u instanceof f&&u.code==="TIMEOUT")throw u}let i=await K(n,r,t,wt.has(n)?{priority:a,cache:"reload"}:{priority:a});await pe(t,i,s);let l=URL.createObjectURL(new Blob([i],{type:"text/javascript"}));try{return await o(l)}finally{URL.revokeObjectURL(l)}}async function Co(t,e){if(bt)return await bt&&Re(t,!1);let o=!1;try{o=localStorage[ye]===navigator.userAgent}catch{}let r=await(bt=Re(t,!o,e));if(r&&!o)try{localStorage[ye]=navigator.userAgent}catch{}return r}async function we(t,e){let{entry:o,chunks:r,sri:n,priority:s="auto",dedupe:a=[]}=t,i=a.flatMap(c=>[...c.chunks??[],c.file]);if(![o,...r,...i].every(c=>ko.test(n[c]??"")))return;let l=globalThis[Symbol.for("vitral")],u=async c=>{if(!e||!a.length)return;let{shared:g}=await Promise.resolve().then(()=>(_(),H));for(let p of a)g(l)(p.name,p.range,{version:p.version,url:p.file,load:async()=>(c&&await Promise.all([...p.chunks??[],p.file].map(h=>St(h,n[h],s))),(await e(p.file)).default)})},m=t.probe?.every(c=>c.startsWith("data:")||new URL(c,location.href).origin===location.origin)?t.probe:void 0;if(ge!==!1&&(ge=await Co(n,m))){await u();for(let c of r)fetch(c,{priority:s}).catch(()=>{});return o}if(await(To??=Ao(m)))return l.sri={...l.sri,...n},await u(!0),await Promise.all([...r,o].map(c=>St(c,n[c],s))),o}async function Re(t,e,o){if(!HTMLScriptElement.supports?.("importmap"))return!1;let r={};for(let l in t)!/\.css([?#]|$)/.test(l)&&!he.has(l)&&(he.add(l),r[l]=t[l]);let n=e?["export{}","export{}//"].map(l=>URL.createObjectURL(new Blob([l],{type:"text/javascript"}))):[];for(let l of n)r[l]=ot;let s=!0,a=()=>s=!1,i=l=>import(l);try{if(await Ee(r,a),s&&e){let l=await rt(i,n[0],n[1]);l===void 0&&o&&(await Ee({[o[0]]:ot,[o[1]]:ot},a),l=s&&await rt(i,o[0],o[1])),s=!!l}}catch{s=!1}for(let l of n)URL.revokeObjectURL(l);return s}async function Ee(t,e){let o=document.createElement("script");o.type="importmap",o.nonce=document.querySelector("script[nonce]")?.nonce??"",o.onerror=e,o.addEventListener("securitypolicyviolation",e),o.textContent=JSON.stringify({integrity:t}),document.head.append(o),await ve(),await ve()}function St(t,e,o="auto"){return new Promise((r,n)=>{let s=C("modulepreload",t,{integrity:e,fetchPriority:o});s.onload=r,s.onerror=n})}async function Ao(t){if(!document.createElement("link").relList.supports("modulepreload"))return!1;let e=r=>St(r,ot),o=await rt(e,fe,fe+"//");return!!(o===void 0&&t?await rt(e,...t.map(r=>r+(r.includes("?")?"&":"?")+"preload")):o)}function rt(t,e,o){return Promise.race([Promise.all([t(e).then(()=>!0,()=>!1),t(o).then(()=>!1,()=>!0)]).then(([r,n])=>r?n:void 0),new Promise(r=>setTimeout(r,3e3,!1))])}var wt,ko,fe,ot,ge,he,bt,To,ye,ve,Se=y(()=>{"use strict";me();w();k();wt=new Set;ko=/^(sha(256|384|512)-[A-Za-z0-9+/]+={0,2}( +|$))+$/,fe="data:text/javascript,export{}",ot="sha256-d3bjIZdvLjBurwdLwkSVOnEBPFFly+T1SR9r3VVHBGg=",he=new Set,ye="vitral:sri-map";ve=()=>new Promise(t=>{let e=new MessageChannel;e.port1.onmessage=()=>t(),e.port2.postMessage(0)})});var Le={};x(Le,{resolveModule:()=>$o,resolveTarget:()=>Io,splitName:()=>Pe});function Pe(t){let e=d(),o=t.length;if(!e.entry(t))for(;(o=t.lastIndexOf("/",o-1))>0&&!e.entry(t.slice(0,o)););return o>0&&o<t.length?[t.slice(0,o),"."+t.slice(o)]:[t,null]}function Io(t,e){return xe(t,e).then(o=>Pt(t,o))}function xe(t,e){let o=d();return o.entry(t)||!t.includes("/")?e(t):o.pending().then(async()=>{let[r,n]=Pe(t);if(!n)return e(t);let s=await e(r),a=s.exports?.exposes;if(!a?.[n])throw new f("NOT_EXPOSED",t,`${r} n\xE3o exp\xF5e ${n}. Expostos: ${Object.keys(a??{}).join(", ")}`);try{let i=a[n],l=await(typeof i=="function"?i():i);return{...s,module:l?.default??l,exports:l}}catch(i){throw new f("LOAD_FAILED",t,String(i),i)}})}async function $o(t,e){let o=await xe(t,e);if(!o.exports)throw new f("INVALID_MODULE",t,"o remote foi carregado por uma c\xF3pia antiga da lib, que n\xE3o guarda os exports");return o.exports}var Oe=y(()=>{"use strict";w();nt();E()});var Ie={};x(Ie,{OVERRIDES_KEY:()=>st,activeOverrides:()=>Ae,clearOverrides:()=>Te,dropOverride:()=>_o,isRef:()=>xt,manifestUrl:()=>it,overrideFor:()=>Uo,overridesEnabled:()=>ke,resolveOverride:()=>Ce,storeOverride:()=>Do,storedOverrides:()=>Ot});function ke(){return!!d().settings().devOverrides||typeof location<"u"&&/^(localhost|127\.0\.0\.1|\[::1\])$/.test(location.hostname)}function Do(t,e){let o=Ot();e?o[t]=xt(e)?e:it(e):delete o[t],J(lt,o)}function Ho(){let t=Lt(at),e=new URLSearchParams(location.search).getAll("vitral").join(",").split(",");if(!e.some(Boolean))return t;for(let o of e){let r=o.indexOf("@");o==="off"?(Te(),Object.keys(t).forEach(n=>delete t[n])):r>0&&o.slice(r+1)==="off"?delete t[o.slice(0,r)]:r>0&&(t[o.slice(0,r)]=o.slice(r+1))}return J(at,t),t}function Te(){J(at,{}),J(lt,{})}function _o(t){for(let e of[at,lt]){let o=Lt(e);delete o[t],J(e,o)}}function Ce(t,e){if(!xt(e))return new URL(it(e),location.href).href;let o=d().settings().devOverrides,r=typeof o=="object"?o.preview:void 0;if(!r)return;let n=r.replace(/\{name\}/g,encodeURIComponent(t)).replace(/\{ref\}/g,encodeURIComponent(e));return new URL(it(n),location.href).href}function Ae(){let t=Ho(),e={};for(let[o,r]of[["navegador",Ot()],["aba",t]])for(let[n,s]of Object.entries(r))e[n]={name:n,value:s,url:Ce(n,s),source:o};return Object.values(e)}function Uo(t){if(!ke())return;let e=Ae().find(a=>a.name===t);if(!e)return;let o=!Me.has(t)&&Me.add(t);if(!e.url){o&&console.warn(`[vitral] override ${t}@${e.value} ignorado: falta configure({ devOverrides: { preview } })`);return}let r=d(),n=r.settings().trusted??[],s=new URL(e.url).origin;return n.includes(s)||r.configure({trusted:[...n,s]}),o&&console.warn(`[vitral] override ativo: ${t} \u2192 ${e.url} (${e.source}). Para limpar: ?vitral=off`),{url:e.url}}var st,it,xt,Lt,J,lt,at,Ot,Me,$e=y(()=>{"use strict";E();st="vitral:overrides";it=t=>/\.(json|m?js)(\?|$)/.test(t)?t:t.replace(/\/?$/,"/vitral.json"),xt=t=>/^[\w.-]+$/.test(t),Lt=t=>{try{return JSON.parse(t().getItem(st)??"{}")??{}}catch{return{}}},J=(t,e)=>{try{Object.keys(e).length?t().setItem(st,JSON.stringify(e)):t().removeItem(st)}catch{}},lt=()=>localStorage,at=()=>sessionStorage,Ot=()=>Lt(lt);Me=new Set});var je={};x(je,{bucket:()=>Ue,pick:()=>No,resetChannels:()=>Vo,versionUrl:()=>_e});async function No(t,e,o){if(typeof o.stable!="string")throw new f("INVALID_MODULE",t,`canal inv\xE1lido em ${e.url}: falta "stable"`);O.watch=Bo;let r={name:t,bucket:Ue(t)},{canary:n,stable:s}=o,a=await e.resolve?.(o,r)??(n&&r.bucket<n.percent?n.version:s);return a!==s&&Ne()[t]===a&&(a=s),a===s||e.rollback===!1?j.delete(t):j.get(t)?.from!==a&&j.set(t,{from:a,to:s,errors:0,mounts:0,max:{errors:3,mounts:20,...e.rollback}}),{...e,url:_e(a,e.url),integrity:void 0,manifest:void 0}}function Ue(t){let e=d().settings().canaryKey??jo(),o=2166136261;for(let r of`${e}:${t}`)o=Math.imul(o^r.charCodeAt(0),16777619);return(o>>>0)%100}function jo(){try{N??=localStorage.getItem(De)??void 0}catch{}if(!N){N=Math.random().toString(36).slice(2);try{localStorage.setItem(De,N)}catch{}}return N}function Ne(){try{return{...JSON.parse(sessionStorage.getItem(He)||"{}"),...W}}catch{return W}}function Bo(t,e){for(let[o,r]of j)t!==o&&!t.startsWith(o+"/")||(e?++r.errors>=r.max.errors&&qo(o,r):++r.mounts>r.max.mounts&&(r.mounts=1,r.errors=0))}function qo(t,e){j.delete(t),W={...Ne(),[t]:e.from};try{sessionStorage.setItem(He,JSON.stringify(W))}catch{}console.warn(`[vitral] ${t}: ${e.errors} erros em ${e.mounts} montagens da vers\xE3o ${e.from}; voltando para ${e.to}`);try{d().settings().onRollback?.({name:t,from:e.from,to:e.to,errors:e.errors,mounts:e.mounts})}catch{}let o=d();o.register(t,o.entry(t)),o.events.emit("vitral:refresh",t)}function Vo(){j.clear(),W={},N=void 0}var He,De,j,W,N,_e,Be=y(()=>{"use strict";w();X();E();k();He="vitral:rollback",De="vitral:id",j=new Map,W={};_e=(t,e)=>S(/[/:]|\.(m?js|json)$/.test(t)?t:`${t}/vitral.json`,e)});var qe={};x(qe,{checkContract:()=>Fo});async function Fo(t,e=d().settings().contract){let{satisfies:o}=await Promise.resolve().then(()=>(_(),H));if(t.version&&!o(t.version,e))return`o host aceita contrato ${e}, o remote publica ${t.version}`;let r=d().settings().offered??{};for(let n in t.peers){let s=r[n];if(s&&!o(s,t.peers[n]))return`o remote espera ${n} ${t.peers[n]}, o host oferece ${s}`}}var Ve=y(()=>{"use strict";E()});var Fe={};x(Fe,{stale:()=>Ko});function Ko(t,e,o){let r="vitral:manifest:"+t;e.then(n=>localStorage[r]=JSON.stringify({t:Date.now(),m:n})).catch(()=>{});try{let n=JSON.parse(localStorage[r]);if(Date.now()-n.t<o*1e3)return n.m}catch{}return e}var Ke=y(()=>{"use strict"});function ze(t,e={}){let o=Tt(t);o.catch(()=>{}),e.routes&&o.then(Jo,()=>{})}function zo(t){let e=t.split;if(!e)return[];if(e.lazy)return e.lazy;let o=e.entry.slice(0,e.entry.lastIndexOf("/")+1),r=new Set([e.entry,...e.chunks,...e.probe??[],...(e.dedupe??[]).flatMap(n=>[n.file,...n.chunks??[]])]);return Object.keys(t.sri??{}).filter(n=>n.startsWith(o)&&n.endsWith(".js")&&!r.has(n))}function Jo(t){let e=navigator.connection;if(e?.saveData||/2g/.test(e?.effectiveType))return;let o=zo(t).slice(),r=()=>o.length&&fetch(o.shift(),{priority:"low"}).then(s=>s.arrayBuffer()).catch(()=>{}).then(r),n=()=>[0,0,0].map(r);typeof requestIdleCallback=="function"?requestIdleCallback(n,{timeout:1e4}):setTimeout(n,1)}function Wo(){Mt||(Mt=Promise.resolve().then(()=>(Se(),be)).catch(()=>null),Promise.resolve().then(()=>(_(),H)).catch(()=>{}))}function Tt(t,e,o){let r=n=>Go(n,e,o);return(d().entry(t)||!t.includes("/")?r(t).then(n=>Pt(t,n)):Promise.resolve().then(()=>(Oe(),Le)).then(n=>n.resolveTarget(t,r))).catch(Z)}function Go(t,e,o){let r=d();return r.load(t,async()=>{Wo();let n;try{await r.pending();let s=await Je(t),a=s?{isolate:r.entry(t)?.isolate,...s}:r.entry(t);if(!a)throw new f("NOT_REGISTERED",t,"remote n\xE3o registrado. Use configure({ remotes }).");if(a.module)return await Yo(t,a);let i=performance.now();n=await kt(t,a,o),D(t,"manifest",i),ce(n,(e??n.isolate??r.settings().isolate)==="shadow",o),i=performance.now();let l=await Ft(r.settings().retries,()=>Zo(t,n));return D(t,"js",i),{...n,module:l?.default??l,exports:l}}catch(s){throw M(b(s)?s:new f("LOAD_FAILED",t,String(s?.message??s),s),n)}})}function Je(t){try{let e="vitral:overrides";if(/[?&]vitral=/.test(location.search)||localStorage[e]||sessionStorage[e])return Promise.resolve().then(()=>($e(),Ie)).then(o=>o.overrideFor(t))}catch{}}async function Yo(t,e){let o=e.module;return typeof o=="function"&&(o=await o()),{module:o?.default??o,exports:o,entry:typeof location<"u"?location.href:"http://localhost/",css:e.css??[],isolate:e.isolate}}async function kt(t,e,o){tt(t,e.url);let r=e.manifest??(new URL(e.url).pathname.endsWith(".json")?await Xo(e.url,t,o):{name:t,entry:e.url});if(r?.stable)return kt(t,await(await Promise.resolve().then(()=>(Be(),je))).pick(t,e,r),o);if(typeof r?.entry!="string")throw new f("INVALID_MODULE",t,`manifesto inv\xE1lido em ${e.url}`);if(r.contract&&(e.contract||d().settings().contract)){let i=await(await Promise.resolve().then(()=>(Ve(),qe))).checkContract(r.contract,e.contract);if(i)throw new f("CONTRACT_MISMATCH",t,i)}let n=i=>S(i,e.url),s={};for(let i in r.files??{})s[n(i)]=r.files[i];let a={entry:n(r.entry),css:[...r.css??[],...e.css??[]].map(n),shadow:r.shadow,integrity:e.integrity===!1?void 0:e.integrity??r.integrity,isolate:e.isolate,scope:r.scope,version:r.version,sri:s,priority:o,split:r.split&&typeof e.integrity!="string"?{entry:n(r.split.entry),chunks:(r.split.chunks??[]).map(n),...r.split.lazy&&{lazy:r.split.lazy.map(n)},sri:s,priority:o,...r.probe&&{probe:r.probe.map(n)},dedupe:r.dedupe?.map(i=>({...i,file:n(i.file),chunks:i.chunks?.map(n)}))}:void 0};tt(t,a.entry);for(let i of[a.split?.entry,...(a.split?.dedupe??[]).map(l=>l.file)])i&&tt(t,i);if(t===e.url&&r.name){let i=await Je(r.name);if(i)return{...await kt(t,i),name:r.name};a.name=r.name,d().entry(r.name)||d().register(r.name,e)}return a}function Xo(t,e,o){let{timeout:r,maxStale:n}=d().settings(),s=Q(t,r,e,{cache:"no-cache",priority:o});return n?Promise.resolve().then(()=>(Ke(),Fe)).then(a=>a.stale(t,s,n),()=>s):s}async function Zo(t,e){let{timeout:o}=d().settings(),r=s=>F(o,t,import(s)).catch(a=>{throw b(a)?a:new f("LOAD_FAILED",t,`falha ao importar ${e.entry}`,a)});if(!e.integrity){if(!e.split)return r(e.entry);if(e.split.dedupe?.length){let{shared:s}=await Promise.resolve().then(()=>(_(),H));for(let a of e.split.dedupe)s(d())(a.name,a.range,{version:a.version,url:a.file,load:async()=>(await r(a.file)).default})}return r(e.split.entry)}let n=await Mt;if(!n)throw new f("LOAD_FAILED",t,"n\xE3o foi poss\xEDvel carregar o verificador de integrity");return n.importVerified(t,e,r,o)}function Pt(t,e){if(typeof e.module?.mount!="function")throw new f("INVALID_MODULE",t,"o m\xF3dulo n\xE3o exporta mount(). Use defineRemote(), ou loadModule() para m\xF3dulo sem UI.");return e}var Mt,nt=y(()=>{"use strict";et();w();U();E();k()});var Ct={};x(Ct,{load:()=>eo,noFrames:()=>Qo});function eo(t){throw new f("MOUNT_FAILED",t,"isolate sem suporte no embed.js")}var Qo,At=y(()=>{"use strict";w();Qo=(t,e)=>eo(e)});U();et();w();E();var I={emit:(t,e)=>d().events.emit(t,e),on:(t,e)=>d().events.on(t,e),last:t=>d().events.last(t)};function We(){let t=new Set,e=o=>{let r=()=>(t.delete(r),o());return t.add(r),r};return{bus:{emit:(o,r)=>I.emit(o,r),last:o=>I.last(o),on:(o,r)=>e(I.on(o,r))},track:e,dispose(){for(let o of[...t])o()}}}X();nt();function Ge(t,e={}){let o=new URL(t,location.href);if(o.origin!==location.origin){location.assign(o.href);return}e.replace?history.replaceState(history.state,"",o.href):history.pushState(history.state,"",o.href),dispatchEvent(new PopStateEvent("popstate",{state:history.state})),I.emit("vitral:navigate",o.pathname+o.search+o.hash)}E();w();var Ye=new Map,G=new Map;function Qe(t,e){return Ye.set(t,e.entry),$.set(t,e),G.set(t,(G.get(t)??0)+1),()=>{let o=G.get(t)-1;o?G.set(t,o):(G.delete(t),Ye.delete(t),$.delete(t))}}var Xe=null;function to(t,e,o,r){let n=0,s=I.on("vitral:refresh",a=>{if(a!==e&&!e.startsWith(a+"/"))return;let i=++n,l=o,u=r(l).then(m=>{if(t.unmount===Ze||i!==n)return m.unmount();let c=t;t=m,c.unmount(),o!==l&&m.update?.(o)});Xe?Xe.push(u):u.catch(console.error)});return{update(a){o=a,t.update?.(a)},unmount(){s(),t.unmount(),t={unmount:Ze}}}}var Ze=()=>{};k();async function ro(t,e,o,r={}){return to(await oo(t,e,o,r),e,o,n=>oo(t,e,n,r))}var tr;async function oo(t,e,o,r){let n=d();await n.pending();let s=r.isolate??er(e)?.isolate??n.settings().isolate;if(s==="iframe")return(tr??(await Promise.resolve().then(()=>(At(),Ct))).noFrames)(t,e,o,r).catch(Z);let{module:a,...i}=await(s=="reframe"?(await Promise.resolve().then(()=>(At(),Ct))).load:Tt)(e,s,r.priority),l=Qe(e,i);O.watch?.(e);let u=i.name??e,m=R=>{let P=document.createElement("div",R);return P.setAttribute("data-vitral-root",u),i.scope&&P.setAttribute("data-vitral-scope",i.scope),P.style.display="contents",P},c=performance.now(),[g,p=document.body,h=null,L=customElements,v=t.appendChild(m())]=await ue(i,s>"q"&&t,m,r.styles);D(e,"css",c),c=performance.now();let Y=We(),Ht=R=>P=>(v.addEventListener(R,P),()=>v.removeEventListener(R,P)),_t={name:u,baseUrl:new URL(".",i.entry).href,events:Y.bus,shadowRoot:h,portalContainer:p,customElements:L,reportError(R){let P=M(b(R)?R:new f("RENDER_FAILED",u,String(R?.message??R),R),i);r.onError?r.onError(P):console.error(P)},navigate:Ge,protocol:n.protocol,onActivate:Ht("vitral:activate"),onDeactivate:Ht("vitral:deactivate")};O.shared&&(_t.shared=O.shared(e,Y.track));let ct;try{ct=await a.mount(v,o,_t),D(e,"mount",c)}catch(R){throw l(),Y.dispose(),g(),v.remove(),M(new f("MOUNT_FAILED",u,"erro ao montar",R),i)}let ut=!0;return{update(R){ut&&ct.update?.(R)},unmount(){if(ut){ut=!1;try{ct.unmount()}finally{l(),Y.dispose(),g(),v.remove()}}}}}function er(t){let e=d(),o=t;for(;o&&!e.entry(o);)o=o.slice(0,Math.max(0,o.lastIndexOf("/")));return o?e.entry(o):void 0}w();U();function no(t,e){let{isolate:o}=e,r=p=>p.src?A(p.src,p.name):p.name??"",n=r(e),s=e.props??{},a=null,i=null,l=0,u="loading",m=(p,h=null)=>{u=p,i&&(i.style.display=p==="error"?"none":""),e.onStatus?.(p,h)},c=()=>{a?.unmount(),a=null,i?.remove(),i=null},g=()=>{let p=++l;c(),i=document.createElement("div"),i.setAttribute("data-vitral-slot",n),t.appendChild(i),m("loading");let h=v=>{p===l&&m("error",b(v)?v:new f("MOUNT_FAILED",n,String(v),v))},L=s;ro(i,n,s,{isolate:o,priority:e.priority,styles:e.styles,onError:h}).then(v=>{if(p!==l)return v.unmount();a=v,s!==L&&v.update?.(s),m("ready")},h)};return g(),{update(p){s=p,a?.update?.(p)},set(p){let h=p.src||p.name!==void 0?r(p):n,L=h!==n||"isolate"in p&&p.isolate!==o;n=h,"isolate"in p&&(o=p.isolate),L&&g()},retry:g,destroy(){l++,c()},get status(){return u}}}nt();U();var It=()=>{};function io(t){let e={};if(typeof performance>"u"||!performance.getEntriesByName)return e;for(let o of["manifest","js","css","mount"]){let r=performance.getEntriesByName(`vitral:${t}:${o}`,"measure").pop();r&&(e[o]=Math.round(r.duration*10)/10)}return e}function so(t,e,o){if(e==="lazy"||e==="visible"){if(typeof IntersectionObserver>"u")return o(),It;let r=new IntersectionObserver(n=>{n.some(s=>s.isIntersecting)&&(r.disconnect(),o())},{rootMargin:"200px"});return r.observe(t),()=>r.disconnect()}if(e==="idle"){if(typeof requestIdleCallback>"u"){let n=setTimeout(o,1);return()=>clearTimeout(n)}let r=requestIdleCallback(o,{timeout:2e3});return()=>cancelIdleCallback(r)}if(e==="hover"){let r=()=>(n(),o()),n=()=>{t.removeEventListener("pointerenter",r),t.removeEventListener("focusin",r)};return t.addEventListener("pointerenter",r),t.addEventListener("focusin",r),n}return o(),It}var T=new Map,B=null;function ao(t,e){try{t.moveBefore(e,null)}catch{t.appendChild(e)}}function $t(t,e){for(let o of t.querySelectorAll("*"))o.hasAttribute("data-vitral-root")&&o.dispatchEvent(new Event(e)),o.shadowRoot&&$t(o.shadowRoot,e)}function or(t,e,o){T.get(t)?.slot.destroy(),T.delete(t),B?.isConnected||(B=document.createElement("div"),B.hidden=!0,B.setAttribute("data-vitral-keep-alive",""),document.body.appendChild(B)),ao(B,e.box),$t(e.box,"vitral:deactivate"),T.set(t,e);for(let[r,n]of T){if(T.size<=o)break;T.delete(r),n.slot.destroy(),n.box.remove()}}function lo(t,e){let{props:o={},keepAlive:r}=e,n=c=>c.src?A(c.src,c.name):c.name??"",s=n(e),a="loading",i=null,l=(c,g)=>{a=c,e.onStatus?.(c,g)},u=e.prefetch?so(t,e.prefetch,()=>ze(s)):It,m=so(t,e.loading,()=>{u();let c=r?T.get(s):void 0;if(c){T.delete(s),i=c,i.on=l,ao(t,i.box),i.slot.update(o),$t(i.box,"vitral:activate"),l(i.slot.status,null);return}let g=t;r&&(g=t.appendChild(document.createElement("div")),g.style.display="contents");let p={box:g,on:l,slot:null};p.slot=no(g,{...e,name:s,src:void 0,props:o,onStatus:(h,L)=>p.on(h,L)}),i=p});return{update(c){o=c,i?.slot.update(c)},set(c){(c.src||c.name!==void 0)&&(s=n(c)),i?.slot.set({...c,src:void 0,name:s})},retry:()=>i?.slot.retry(),destroy(){m(),u(),i&&(r&&a==="ready"?or(s,i,r===!0?5:r):(i.slot.destroy(),i.box!==t&&i.box.remove()),i=null)},get status(){return a}}}U();var rr=typeof HTMLElement>"u"?class{}:HTMLElement,Dt=class extends rr{static{this.observedAttributes=["name","src","props","isolate"]}#t=null;#e={};get props(){return this.#e}set props(e){this.#e=e??{},this.#t?.update(this.#e)}get status(){return this.#t?.status??"loading"}retry(){this.#t?.retry()}connectedCallback(){if(this.#t)return;let e=this.#r();if(!e)return;this.hasAttribute("props")&&!Object.keys(this.#e).length&&(this.#e=co(this.getAttribute("props")));let o=this.getAttribute("keep-alive"),r={name:e,props:this.#e,isolate:this.getAttribute("isolate")||void 0,loading:this.getAttribute("loading"),prefetch:this.getAttribute("prefetch"),priority:this.getAttribute("priority")||void 0,keepAlive:o===null?!1:Number(o)||!0,styles:{inherit:this.getAttribute("inherit-styles")?.split(/\s+/).filter(Boolean)},onStatus:(s,a)=>{this.setAttribute("data-vitral-status",s),s==="loading"?this.setAttribute("aria-busy","true"):this.removeAttribute("aria-busy");let i=l=>{let u=this.querySelectorAll(`:scope > [slot="${l}"]`);for(let m of u)m.hidden=s!==(l==="fallback"?"loading":"error");return u.length>0};queueMicrotask(()=>{if(this.#t?.status!==s)return;let l={loading:i("fallback"),error:i("error"),ready:!0};this.#n(l[s]?null:s)}),s==="ready"&&this.dispatchEvent(new CustomEvent("vitral-ready",{bubbles:!0,detail:{timings:io(e)}})),s==="error"&&this.dispatchEvent(new CustomEvent("vitral-error",{bubbles:!0,detail:{error:a}}))}},n=null;this.#t=lo(this,r)}#r(){let e=this.getAttribute("src"),o=this.getAttribute("name");return e?A(e,o??void 0,!1):o}#o=null;#n(e){if(this.#o?.remove(),this.#o=null,!e)return;let o=document.createElement("div");if(o.setAttribute("data-vitral-default",e),e==="loading")o.setAttribute("role","status"),o.textContent="Carregando\u2026";else{o.setAttribute("role","alert");let r=document.createElement("button");r.type="button",r.textContent="Tentar de novo",r.onclick=()=>this.retry(),o.append("N\xE3o foi poss\xEDvel carregar. ",r)}this.prepend(this.#o=o)}disconnectedCallback(){queueMicrotask(()=>{this.isConnected||(this.#t?.destroy(),this.#t=null,this.#n(null))})}attributeChangedCallback(e,o,r){if(e==="props")return void(this.props=co(r));if(!this.#t)return void(this.isConnected&&this.connectedCallback());if(e==="name"||e==="src"){let n=this.#r();n&&this.#t.set({name:n})}e==="isolate"&&this.#t.set({isolate:r||void 0})}};function co(t){if(!t)return{};try{return JSON.parse(t)}catch{return console.error("[vitral] atributo props n\xE3o \xE9 JSON v\xE1lido:",t),{}}}function uo(t="vitral-remote"){typeof customElements<"u"&&!customElements.get(t)&&customElements.define(t,class extends Dt{})}E();k();var po="data-vitral-embed";function mo(t){let e=t.dataset;if(!e.remote||t.hasAttribute(po))return null;let o=e.target?document.querySelector(e.target):t.closest("body")?t:document.body;if(!o)return document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>mo(t),{once:!0}):console.error(`[vitral] data-target n\xE3o encontrado: ${e.target}`),null;t.setAttribute(po,"");let r=S(e.remote);nr([new URL(r).origin,...e.origins?.split(/\s+/).filter(Boolean)??[]]),uo();let n=document.createElement("vitral-remote");return n.setAttribute("isolate",e.isolate||"shadow"),e.loading&&n.setAttribute("loading",e.loading),e.props&&n.setAttribute("props",e.props),e.name&&n.setAttribute("name",e.name),n.setAttribute("src",r),o===t?t.after(n):o.appendChild(n),n}function nr(t){let e=d(),o=e.settings().allowedOrigins??[V(),...e.origins()].filter(Boolean);pt({allowedOrigins:[...new Set([...o,...t])]})}var sr=Symbol.for("vitral:embed"),ir=globalThis[sr]??=mo;typeof document<"u"&&document.currentScript instanceof HTMLScriptElement&&ir(document.currentScript);})();
@@ -1,4 +1,4 @@
1
- import { E as EventBus } from './types-EOz1rOHs.js';
1
+ import { E as EventBus } from './types-wsKR1gfx.js';
2
2
 
3
3
  /** Barramento global. É o mesmo objeto que os remotes recebem em `ctx.events`. */
4
4
  declare const events: EventBus;
@@ -2,8 +2,8 @@ import {
2
2
  resolveModule,
3
3
  resolveTarget,
4
4
  splitName
5
- } from "./chunk-4NSPG6NK.js";
6
- import "./chunk-72H4FXMD.js";
5
+ } from "./chunk-PQXS2UDM.js";
6
+ import "./chunk-6T25WKNK.js";
7
7
  import "./chunk-KU6HF2EW.js";
8
8
  import "./chunk-TW7KYJQ6.js";
9
9
  import "./chunk-463H6B56.js";
@@ -1,4 +1,4 @@
1
- import { a as RemoteModule, b as SharedModules, c as RemoteEntry } from './types-EOz1rOHs.js';
1
+ import { a as RemoteModule, b as SharedModules, c as RemoteEntry } from './types-wsKR1gfx.js';
2
2
  import './errors-kjBv6IH_.js';
3
3
 
4
4
  /**
@@ -1,17 +1,19 @@
1
1
  import {
2
2
  hostSlot
3
- } from "./chunk-TXSHK3SK.js";
3
+ } from "./chunk-ZJ4IM2PZ.js";
4
4
  import {
5
5
  mountOnce,
6
- navigate,
7
6
  refreshable,
8
7
  registered,
9
- scopedEvents,
10
8
  track
11
- } from "./chunk-O7DV3EVB.js";
9
+ } from "./chunk-NTXMEZIZ.js";
10
+ import {
11
+ navigate,
12
+ scopedEvents
13
+ } from "./chunk-EQZOJU3B.js";
12
14
  import {
13
15
  load
14
- } from "./chunk-72H4FXMD.js";
16
+ } from "./chunk-6T25WKNK.js";
15
17
  import {
16
18
  injectStyles
17
19
  } from "./chunk-KU6HF2EW.js";
package/dist/iframe.js CHANGED
@@ -1,18 +1,20 @@
1
- import {
2
- splitName
3
- } from "./chunk-4NSPG6NK.js";
4
1
  import {
5
2
  verifyIntegrity
6
3
  } from "./chunk-UYOPJ4XQ.js";
7
4
  import {
8
- events,
9
- navigate,
5
+ splitName
6
+ } from "./chunk-PQXS2UDM.js";
7
+ import {
10
8
  setFrameMounter,
11
9
  track
12
- } from "./chunk-O7DV3EVB.js";
10
+ } from "./chunk-NTXMEZIZ.js";
11
+ import {
12
+ events,
13
+ navigate
14
+ } from "./chunk-EQZOJU3B.js";
13
15
  import {
14
16
  resolveEntry
15
- } from "./chunk-72H4FXMD.js";
17
+ } from "./chunk-6T25WKNK.js";
16
18
  import "./chunk-KU6HF2EW.js";
17
19
  import {
18
20
  fetchBytes,
package/dist/index.d.ts CHANGED
@@ -1,9 +1,10 @@
1
- import { V as VitralConfig, c as RemoteEntry, P as Props, a as RemoteModule, I as Isolation, d as StyleOptions, M as MountedRemote, E as EventBus, R as RemoteContext, e as SharedValue } from './types-EOz1rOHs.js';
2
- export { f as Channel, g as ChannelContext, C as CheckedProps, D as DevOverrides, H as Handler, h as McpAppBridge, i as PropsOf, j as ProvideOptions, k as ProvidedValue, l as RemoteContract, m as RemoteManifest, n as RemoteMetric, o as Remotes, p as RollbackInfo, S as Shared, q as SharedApi, b as SharedModules, r as SharedType, s as batch, t as provide, u as shared } from './types-EOz1rOHs.js';
1
+ import { V as VitralConfig, c as RemoteEntry, I as Isolation, d as StyleOptions, P as Props, M as MountedRemote, a as RemoteModule, E as EventBus, R as RemoteContext, e as SharedValue } from './types-wsKR1gfx.js';
2
+ export { f as Channel, g as ChannelContext, C as CheckedProps, D as DevOverrides, H as Handler, h as McpAppBridge, i as PropsOf, j as ProvideOptions, k as ProvidedValue, l as RemoteContract, m as RemoteManifest, n as RemoteMetric, o as Remotes, p as RollbackInfo, S as Shared, q as SharedApi, b as SharedModules, r as SharedType, s as batch, t as provide, u as shared } from './types-wsKR1gfx.js';
3
3
  import { R as RemoteError } from './errors-kjBv6IH_.js';
4
4
  export { a as RemoteErrorCode } from './errors-kjBv6IH_.js';
5
- export { R as RemoteSlot, a as SlotOptions, S as SlotStatus, c as createSlot } from './slot-Ddzp7AgL.js';
6
- export { e as events } from './events-DLdbFqBM.js';
5
+ export { P as PreloadOptions, l as loadModule, a as loadRemote, p as preload } from './loader-BIXjuvvp.js';
6
+ export { R as RemoteSlot, a as SlotOptions, S as SlotStatus, c as createSlot } from './slot-Dhczjs1E.js';
7
+ export { e as events } from './events-Cieg_far.js';
7
8
  export { n as navigate } from './navigate-BRG1WJUM.js';
8
9
  export { r as __reset } from './state-BDdCwc21.js';
9
10
 
@@ -60,20 +61,6 @@ declare function register(name: string, entry: string | RemoteEntry): void;
60
61
  */
61
62
  declare function registerSrc(src: string, name?: string, trusted?: boolean): string;
62
63
 
63
- /** Baixa (uma vez só) e devolve o módulo de um remote. */
64
- declare function loadRemote<P extends Props = Props>(name: string): Promise<RemoteModule<P>>;
65
- /**
66
- * Carrega um módulo sem UI que um remote expõe (funções, stores, constantes),
67
- * com a mesma verificação de SRI e de origem dos componentes.
68
- *
69
- * const api = await loadModule<typeof import('./tipos/carrinho-api')>('carrinho/api')
70
- *
71
- * Sem `/`, devolve os exports do arquivo principal do remote.
72
- */
73
- declare function loadModule<T = Record<string, unknown>>(name: string): Promise<T>;
74
- /** Começa a baixar um remote (JS e CSS) sem montar (ex.: no hover de um link). */
75
- declare function preload(name: string): void;
76
-
77
64
  interface MountOptions {
78
65
  isolate?: Isolation;
79
66
  /** `'high'` para o remote que aparece logo ao abrir a página: vira `fetchpriority` nos downloads. */
@@ -185,4 +172,4 @@ declare function syncTabs<V extends SharedValue<any>>(value: V): V;
185
172
  */
186
173
  declare function serializeShared(values: Record<string, unknown>): string;
187
174
 
188
- export { type ComponentOptions, EventBus, Isolation, type MountOptions, MountedRemote, type PersistOptions, Props, RemoteContext, RemoteEntry, RemoteError, RemoteModule, type RenderFn, type SharedEntry, type SharedStore, SharedValue, StyleOptions, type Template, type View, VitralConfig, checkUpdates, component, configure, createEventBus, defineRemote, html, loadModule, loadRemote, mountRemote, persist, preload, refresh, register, registerSrc, render, serializeShared, syncTabs, unsafeHTML, watchUpdates };
175
+ export { type ComponentOptions, EventBus, Isolation, type MountOptions, MountedRemote, type PersistOptions, Props, RemoteContext, RemoteEntry, RemoteError, RemoteModule, type RenderFn, type SharedEntry, type SharedStore, SharedValue, StyleOptions, type Template, type View, VitralConfig, checkUpdates, component, configure, createEventBus, defineRemote, html, mountRemote, persist, refresh, register, registerSrc, render, serializeShared, syncTabs, unsafeHTML, watchUpdates };
package/dist/index.js CHANGED
@@ -4,10 +4,8 @@ import {
4
4
  component,
5
5
  createSlot,
6
6
  defineRemote,
7
- events,
8
7
  html,
9
8
  mountRemote,
10
- navigate,
11
9
  persist,
12
10
  provide,
13
11
  refresh,
@@ -17,7 +15,11 @@ import {
17
15
  syncTabs,
18
16
  unsafeHTML,
19
17
  watchUpdates
20
- } from "./chunk-O7DV3EVB.js";
18
+ } from "./chunk-NTXMEZIZ.js";
19
+ import {
20
+ events,
21
+ navigate
22
+ } from "./chunk-EQZOJU3B.js";
21
23
  import {
22
24
  configure,
23
25
  loadModule,
@@ -25,7 +27,7 @@ import {
25
27
  preload,
26
28
  register,
27
29
  registerSrc
28
- } from "./chunk-72H4FXMD.js";
30
+ } from "./chunk-6T25WKNK.js";
29
31
  import "./chunk-KU6HF2EW.js";
30
32
  import "./chunk-TW7KYJQ6.js";
31
33
  import {
@@ -0,0 +1,25 @@
1
+ import { P as Props, a as RemoteModule } from './types-wsKR1gfx.js';
2
+
3
+ /** Baixa (uma vez só) e devolve o módulo de um remote. */
4
+ declare function loadRemote<P extends Props = Props>(name: string): Promise<RemoteModule<P>>;
5
+ /**
6
+ * Carrega um módulo sem UI que um remote expõe (funções, stores, constantes),
7
+ * com a mesma verificação de SRI e de origem dos componentes.
8
+ *
9
+ * const api = await loadModule<typeof import('./tipos/carrinho-api')>('carrinho/api')
10
+ *
11
+ * Sem `/`, devolve os exports do arquivo principal do remote.
12
+ */
13
+ declare function loadModule<T = Record<string, unknown>>(name: string): Promise<T>;
14
+ /** Começa a baixar um remote (JS e CSS) sem montar (ex.: no hover de um link). */
15
+ declare function preload(name: string, options?: PreloadOptions): void;
16
+ interface PreloadOptions {
17
+ /**
18
+ * Depois do remote, aquece no cache HTTP, com o navegador ocioso, os
19
+ * chunks que ele só carrega depois (`import()` das rotas). Não baixa as
20
+ * cópias de `dedupe`. Padrão: false.
21
+ */
22
+ routes?: boolean;
23
+ }
24
+
25
+ export { type PreloadOptions as P, loadRemote as a, loadModule as l, preload as p };