From 369888a7fd3e8e02541969c9051249f42fba7098 Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 11 Aug 2026 16:47:40 +0000 Subject: [PATCH 1/4] =?UTF-8?q?feat:=20redesign=20dashboard=20=E2=80=94=20?= =?UTF-8?q?React=2019=20+=20shadcn/ui,=20TanStack=20Table=20v9,=20RHF=20+?= =?UTF-8?q?=20zod?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Full rewrite of the embedded dashboard from the minimal Svelte page to a proper product UI, still compiled into the binary PocketBase-style (ui/dist committed, go:embed, zero deployment): - App shell: slim sidebar navigation (Overview, Tables, Backfill, Dead letters with a live count badge), brand mark, streaming status with uptime in the footer, sticky page header with LSN and readiness badges, dark/light theme toggle (system default, no flash on load). - shadcn/ui component system (zinc theme, new-york style): button, badge, card, input, label, table, dialog, form, and sonner toasts, with Radix primitives underneath. - TanStack Table v9 (the new tree-shakable useTable/tableFeatures API) powers every table — sinks, table activity, backfill status, and the dead-letter queue — with click-to-sort headers and global filtering. - react-hook-form + zod drive the backfill trigger dialog (validated schema.table identifier or empty for all); zod also validates every API response so a Go/UI contract drift fails loudly instead of rendering NaNs. - TanStack Query polls /api/stats and /dlq every 2s with mutations and cache invalidation for retry/discard/retry-all/backfill actions, each confirmed by a toast; retry-all sits behind a confirm dialog that explains the stale-state caveat. - Overview: stat cards with a live emerald throughput sparkline (client-computed from counter deltas), WAL lag, in-flight, DLQ depth; per-sink delivery table with health dots and breaker badges. Tables page adds share-of-traffic bars; every page has a designed empty state. - Toolchain: Vite 7 + TypeScript strict + Tailwind v4; the CI dashboard job (npm ci && npm run build) now type-checks the UI too via tsc -b. Docs updated (README, CLAUDE.md, CONTRIBUTING.md, embed.go). Verified by driving all four pages in headless Chromium against a mock API (light + dark) with zero console errors. Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_019dEj24Ta2o9QxzW9ZrSPtb --- CLAUDE.md | 2 +- CONTRIBUTING.md | 3 +- README.md | 6 +- ui/dist/assets/index-BM1bD9Wa.js | 1 - ui/dist/assets/index-BPcVYW95.css | 1 - ui/dist/assets/index-Bnpk0_J-.css | 1 + ui/dist/assets/index-DSwR8iQs.js | 112 ++ ui/dist/index.html | 6 +- ui/embed.go | 2 +- ui/index.html | 4 +- ui/package-lock.json | 1838 ++++++++++++++++++++---- ui/package.json | 32 +- ui/src/App.svelte | 306 ---- ui/src/app.css | 86 -- ui/src/app.tsx | 36 + ui/src/components/data-table.tsx | 78 + ui/src/components/shell.tsx | 170 +++ ui/src/components/spark.tsx | 46 + ui/src/components/stat-card.tsx | 44 + ui/src/components/ui/badge.tsx | 37 + ui/src/components/ui/button.tsx | 56 + ui/src/components/ui/card.tsx | 51 + ui/src/components/ui/dialog.tsx | 104 ++ ui/src/components/ui/form.tsx | 134 ++ ui/src/components/ui/input.tsx | 20 + ui/src/components/ui/label.tsx | 18 + ui/src/components/ui/sonner.tsx | 21 + ui/src/components/ui/table.tsx | 62 + ui/src/index.css | 140 ++ ui/src/lib/api.js | 25 - ui/src/lib/api.ts | 109 ++ ui/src/lib/components/Badge.svelte | 20 - ui/src/lib/components/Button.svelte | 33 - ui/src/lib/components/Card.svelte | 13 - ui/src/lib/components/Sparkline.svelte | 22 - ui/src/lib/components/StatCard.svelte | 16 - ui/src/lib/{format.js => format.ts} | 10 +- ui/src/lib/hooks.ts | 56 + ui/src/lib/table.ts | 32 + ui/src/lib/utils.ts | 6 + ui/src/main.js | 5 - ui/src/main.tsx | 24 + ui/src/pages/backfill.tsx | 220 +++ ui/src/pages/dlq.tsx | 240 ++++ ui/src/pages/overview.tsx | 187 +++ ui/src/pages/tables.tsx | 114 ++ ui/tsconfig.json | 22 + ui/tsconfig.tsbuildinfo | 1 + ui/vite.config.js | 16 - ui/vite.config.ts | 20 + 50 files changed, 3733 insertions(+), 875 deletions(-) delete mode 100644 ui/dist/assets/index-BM1bD9Wa.js delete mode 100644 ui/dist/assets/index-BPcVYW95.css create mode 100644 ui/dist/assets/index-Bnpk0_J-.css create mode 100644 ui/dist/assets/index-DSwR8iQs.js delete mode 100644 ui/src/App.svelte delete mode 100644 ui/src/app.css create mode 100644 ui/src/app.tsx create mode 100644 ui/src/components/data-table.tsx create mode 100644 ui/src/components/shell.tsx create mode 100644 ui/src/components/spark.tsx create mode 100644 ui/src/components/stat-card.tsx create mode 100644 ui/src/components/ui/badge.tsx create mode 100644 ui/src/components/ui/button.tsx create mode 100644 ui/src/components/ui/card.tsx create mode 100644 ui/src/components/ui/dialog.tsx create mode 100644 ui/src/components/ui/form.tsx create mode 100644 ui/src/components/ui/input.tsx create mode 100644 ui/src/components/ui/label.tsx create mode 100644 ui/src/components/ui/sonner.tsx create mode 100644 ui/src/components/ui/table.tsx create mode 100644 ui/src/index.css delete mode 100644 ui/src/lib/api.js create mode 100644 ui/src/lib/api.ts delete mode 100644 ui/src/lib/components/Badge.svelte delete mode 100644 ui/src/lib/components/Button.svelte delete mode 100644 ui/src/lib/components/Card.svelte delete mode 100644 ui/src/lib/components/Sparkline.svelte delete mode 100644 ui/src/lib/components/StatCard.svelte rename ui/src/lib/{format.js => format.ts} (77%) create mode 100644 ui/src/lib/hooks.ts create mode 100644 ui/src/lib/table.ts create mode 100644 ui/src/lib/utils.ts delete mode 100644 ui/src/main.js create mode 100644 ui/src/main.tsx create mode 100644 ui/src/pages/backfill.tsx create mode 100644 ui/src/pages/dlq.tsx create mode 100644 ui/src/pages/overview.tsx create mode 100644 ui/src/pages/tables.tsx create mode 100644 ui/tsconfig.json create mode 100644 ui/tsconfig.tsbuildinfo delete mode 100644 ui/vite.config.js create mode 100644 ui/vite.config.ts diff --git a/CLAUDE.md b/CLAUDE.md index 2f4f7c7..b487a7d 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -142,7 +142,7 @@ internal/ dlq/ # Dead-letter queue (Redis store, parking decorator, triage) server/ # HTTP server: health/readiness/metrics, APIs, dashboard metrics/ # Prometheus metrics -ui/ # Svelte 5 + Tailwind dashboard; dist/ committed + embedded +ui/ # React 19 + Tailwind dashboard; dist/ committed + embedded ``` ## Adding New Sinks diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index f948c6b..38bed0c 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -43,7 +43,8 @@ docker compose -f docker-compose-local.yml exec redis \ ## Working on the dashboard -The dashboard is a Svelte 5 + Tailwind SPA in `ui/`, embedded into the +The dashboard is a React 19 + TypeScript + Tailwind SPA in `ui/` (shadcn/ui, +TanStack Table/Query, react-hook-form + zod), embedded into the binary PocketBase-style: the built `ui/dist/` is **committed**, so plain `go build` needs no Node toolchain. diff --git a/README.md b/README.md index 96a8724..f649718 100644 --- a/README.md +++ b/README.md @@ -58,7 +58,7 @@ PostgreSQL ──logical replication──▶ GTC ──▶ Redis Streams (eve forever, then inspected, retried, or discarded over HTTP. Sink *outages* still stall (a down sink is not a poison event) — nothing is ever silently dropped. -- **Embedded live dashboard** — a Svelte dashboard served from the binary at +- **Embedded live dashboard** — a React dashboard served from the binary at `/` (PocketBase-style, no separate deployment): live throughput, WAL lag, sink health and breaker states, per-table activity, backfill progress, and DLQ triage with one-click retry/discard. Light and dark themes. @@ -401,7 +401,7 @@ Set `CDC_DLQ_ENABLED=false` to opt out and always stall on failure. Open `http://localhost:8080/` for the embedded dashboard: throughput with a live sparkline, WAL lag, in-flight events, sink health with circuit-breaker states, per-table operation counts, backfill progress (with a "sync all" -trigger), and dead-letter triage with retry/discard buttons. It's a Svelte +trigger), and dead-letter triage with retry/discard buttons. It's a React SPA compiled into the binary — nothing extra to deploy, and it polls the same public API you can script against. @@ -453,7 +453,7 @@ internal/ config/ # Env + sink YAML loading resilience/ # Retry + circuit breaker wrapper for sinks dlq/ # Dead-letter queue: parking decorator + triage API backend -ui/ # Svelte dashboard (built dist/ is committed and embedded) +ui/ # React dashboard (built dist/ is committed and embedded) server/ # HTTP health/readiness/metrics metrics/ # Prometheus collectors ``` diff --git a/ui/dist/assets/index-BM1bD9Wa.js b/ui/dist/assets/index-BM1bD9Wa.js deleted file mode 100644 index 5a5520e..0000000 --- a/ui/dist/assets/index-BM1bD9Wa.js +++ /dev/null @@ -1 +0,0 @@ -var Wi=Object.defineProperty;var zn=e=>{throw TypeError(e)};var Ji=(e,t,r)=>t in e?Wi(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var we=(e,t,r)=>Ji(e,typeof t!="symbol"?t+"":t,r),_n=(e,t,r)=>t.has(e)||zn("Cannot "+r);var l=(e,t,r)=>(_n(e,t,"read from private field"),r?r.call(e):t.get(e)),w=(e,t,r)=>t.has(e)?zn("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,r),b=(e,t,r,n)=>(_n(e,t,"write to private field"),n?n.call(e,r):t.set(e,r),r),A=(e,t,r)=>(_n(e,t,"access private method"),r);(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))n(i);new MutationObserver(i=>{for(const s of i)if(s.type==="childList")for(const o of s.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&n(o)}).observe(document,{childList:!0,subtree:!0});function r(i){const s={};return i.integrity&&(s.integrity=i.integrity),i.referrerPolicy&&(s.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?s.credentials="include":i.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function n(i){if(i.ep)return;i.ep=!0;const s=r(i);fetch(i.href,s)}})();const ni=!1;var ii=Array.isArray,Zi=Array.prototype.indexOf,Jr=Array.prototype.includes,ln=Array.from,Xi=Object.defineProperty,Zt=Object.getOwnPropertyDescriptor,es=Object.getOwnPropertyDescriptors,ts=Object.prototype,rs=Array.prototype,si=Object.getPrototypeOf,Un=Object.isExtensible;const Rr=()=>{};function ns(e){for(var t=0;t{e=n,t=i});return{promise:r,resolve:e,reject:t}}const ee=2,Sr=4,on=8,li=1<<24,He=16,Le=32,dt=64,xn=128,De=512,Z=1024,U=2048,Ge=4096,oe=8192,$e=16384,dr=32768,Hn=1<<25,Ht=65536,Zr=1<<17,is=1<<18,cr=1<<19,ss=1<<20,ft=1<<25,Vt=65536,Xr=1<<21,Xt=1<<22,Pt=1<<23,Vr=Symbol("$state"),as=Symbol("legacy props"),ls=Symbol(""),Yr=Symbol("attributes"),bn=Symbol("class"),os=Symbol("style"),mr=Symbol("text"),Cr=new class extends Error{constructor(){super(...arguments);we(this,"name","StaleReactionError");we(this,"message","The reaction that called `getAbortSignal()` was re-run or destroyed")}};function fs(){throw new Error("https://svelte.dev/e/async_derived_orphan")}function us(e,t,r){throw new Error("https://svelte.dev/e/each_key_duplicate")}function ds(e){throw new Error("https://svelte.dev/e/effect_in_teardown")}function cs(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}function vs(e){throw new Error("https://svelte.dev/e/effect_orphan")}function hs(){throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}function _s(e){throw new Error("https://svelte.dev/e/props_invalid_value")}function ps(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}function gs(){throw new Error("https://svelte.dev/e/state_prototype_fixed")}function ms(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}function xs(){throw new Error("https://svelte.dev/e/svelte_boundary_reset_onerror")}const bs=1,ys=2,ws=16,Es=1,ks=4,Ss=8,$s=16,Ts=1,Ps=2,W=Symbol("uninitialized"),As="http://www.w3.org/1999/xhtml";function Ms(){console.warn("https://svelte.dev/e/derived_inert")}function Ns(){console.warn("https://svelte.dev/e/svelte_boundary_reset_noop")}function oi(e){return e===this.v}function Os(e,t){return e!=e?t==t:e!==t||e!==null&&typeof e=="object"||typeof e=="function"}function fi(e){return!Os(e,this.v)}let Ds=!1,ge=null;function lr(e){ge=e}function Nn(e,t=!1,r){ge={p:ge,i:!1,c:null,e:null,s:e,x:null,r:P,l:null}}function On(e){var t=ge,r=t.e;if(r!==null){t.e=null;for(var n of r)Ai(n)}return t.i=!0,ge=t.p,{}}function ui(){return!0}let Wt=[];function Ls(){var e=Wt;Wt=[],ns(e)}function Ot(e){if(Wt.length===0){var t=Wt;queueMicrotask(()=>{t===Wt&&Ls()})}Wt.push(e)}function di(e){var t=P;if(t===null)return k.f|=Pt,e;if((t.f&dr)===0&&(t.f&Sr)===0)throw e;$t(e,t)}function $t(e,t){if(!(t!==null&&(t.f&$e)!==0)){for(;t!==null;){if((t.f&xn)!==0){if((t.f&dr)===0)throw e;try{t.b.error(e);return}catch(r){e=r}}t=t.parent}throw e}}const Rs=-7169;function B(e,t){e.f=e.f&Rs|t}function Dn(e){(e.f&De)!==0||e.deps===null?B(e,Z):B(e,Ge)}function ci(e){if(e!==null)for(const t of e)(t.f&ee)===0||(t.f&Vt)===0||(t.f^=Vt,ci(t.deps))}function vi(e,t,r){(e.f&U)!==0?t.add(e):(e.f&Ge)!==0&&r.add(e),ci(e.deps),B(e,Z)}let jr=!1;function Cs(e){var t=jr;try{return jr=!1,[e(),jr]}finally{jr=t}}function fn(e){var t=k,r=P;Re(null),Xe(null);try{return e()}finally{Re(t),Xe(r)}}function Is(e){let t=0,r=Gt(0),n;return()=>{In()&&(v(r),fa(()=>(t===0&&(n=Bi(()=>e(()=>kr(r)))),t+=1,()=>{Ot(()=>{t-=1,t===0&&(n==null||n(),n=void 0,kr(r))})})))}}var Fs=Ht|cr;function qs(e,t,r,n){new js(e,t,r,n)}var Ae,Mn,Me,Ct,ve,Ne,le,ke,st,It,kt,er,Mr,Nr,at,nn,I,Bs,zs,yn,Us,wn,Gr,Kr,En,kn;class js{constructor(t,r,n,i){w(this,I);we(this,"parent");we(this,"is_pending",!1);we(this,"transform_error");w(this,Ae);w(this,Mn,null);w(this,Me);w(this,Ct);w(this,ve);w(this,Ne,null);w(this,le,null);w(this,ke,null);w(this,st,null);w(this,It,0);w(this,kt,0);w(this,er,!1);w(this,Mr,new Set);w(this,Nr,new Set);w(this,at,null);w(this,nn,Is(()=>(b(this,at,Gt(l(this,It))),()=>{b(this,at,null)})));var s;b(this,Ae,t),b(this,Me,r),b(this,Ct,o=>{var a=P;a.b=this,a.f|=xn,n(o)}),this.parent=P.b,this.transform_error=i??((s=this.parent)==null?void 0:s.transform_error)??(o=>o),b(this,ve,un(()=>{A(this,I,wn).call(this)},Fs))}defer_effect(t){vi(t,l(this,Mr),l(this,Nr))}is_rendered(){return!this.is_pending&&(!this.parent||this.parent.is_rendered())}has_pending_snippet(){return!!l(this,Me).pending}update_pending_count(t,r){A(this,I,En).call(this,t,r),b(this,It,l(this,It)+t),!(!l(this,at)||l(this,er))&&(b(this,er,!0),Ot(()=>{b(this,er,!1),l(this,at)&&or(l(this,at),l(this,It))}))}get_effect_pending(){return l(this,nn).call(this),v(l(this,at))}error(t){if(!l(this,Me).onerror&&!l(this,Me).failed)throw t;y!=null&&y.is_fork?(l(this,Ne)&&y.skip_effect(l(this,Ne)),l(this,le)&&y.skip_effect(l(this,le)),l(this,ke)&&y.skip_effect(l(this,ke)),y.oncommit(()=>{A(this,I,kn).call(this,t)})):A(this,I,kn).call(this,t)}}Ae=new WeakMap,Mn=new WeakMap,Me=new WeakMap,Ct=new WeakMap,ve=new WeakMap,Ne=new WeakMap,le=new WeakMap,ke=new WeakMap,st=new WeakMap,It=new WeakMap,kt=new WeakMap,er=new WeakMap,Mr=new WeakMap,Nr=new WeakMap,at=new WeakMap,nn=new WeakMap,I=new WeakSet,Bs=function(){try{b(this,Ne,Oe(()=>l(this,Ct).call(this,l(this,Ae))))}catch(t){this.error(t)}},zs=function(t){const r=l(this,Me).failed,{reset:n,invoke_onerror:i}=A(this,I,yn).call(this,t);Ot(i),r&&b(this,ke,Oe(()=>{r(l(this,Ae),()=>t,()=>n)}))},yn=function(t){var r=!1,n=!1;const i=()=>{if(r){Ns();return}r=!0,n&&xs(),l(this,ke)!==null&&zt(l(this,ke),()=>{b(this,ke,null)}),A(this,I,Kr).call(this,()=>{A(this,I,wn).call(this)})};return{reset:i,invoke_onerror:()=>{var o,a;try{n=!0,(a=(o=l(this,Me)).onerror)==null||a.call(o,t,i),n=!1}catch(f){$t(f,l(this,ve)&&l(this,ve).parent)}}}},Us=function(){const t=l(this,Me).pending;t&&(this.is_pending=!0,b(this,le,Oe(()=>t(l(this,Ae)))),Ot(()=>{var r=b(this,st,document.createDocumentFragment()),n=ut();r.append(n),b(this,Ne,A(this,I,Kr).call(this,()=>Oe(()=>l(this,Ct).call(this,n)))),l(this,kt)===0&&(l(this,Ae).before(r),b(this,st,null),zt(l(this,le),()=>{b(this,le,null)}),A(this,I,Gr).call(this,y))}))},wn=function(){try{if(this.is_pending=this.has_pending_snippet(),b(this,kt,0),b(this,It,0),b(this,Ne,Oe(()=>{l(this,Ct).call(this,l(this,Ae))})),l(this,kt)>0){var t=b(this,st,document.createDocumentFragment());qn(l(this,Ne),t);const r=l(this,Me).pending;b(this,le,Oe(()=>r(l(this,Ae))))}else A(this,I,Gr).call(this,y)}catch(r){this.error(r)}},Gr=function(t){this.is_pending=!1,t.transfer_effects(l(this,Mr),l(this,Nr))},Kr=function(t){var r=P,n=k,i=ge;Xe(l(this,ve)),Re(l(this,ve)),lr(l(this,ve).ctx);try{return Yt.ensure(),t()}catch(s){return di(s),null}finally{Xe(r),Re(n),lr(i)}},En=function(t,r){var n;if(!this.has_pending_snippet()){this.parent&&A(n=this.parent,I,En).call(n,t,r);return}b(this,kt,l(this,kt)+t),l(this,kt)===0&&(A(this,I,Gr).call(this,r),l(this,le)&&zt(l(this,le),()=>{b(this,le,null)}),l(this,st)&&(l(this,Ae).before(l(this,st)),b(this,st,null)))},kn=function(t){l(this,Ne)&&(me(l(this,Ne)),b(this,Ne,null)),l(this,le)&&(me(l(this,le)),b(this,le,null)),l(this,ke)&&(me(l(this,ke)),b(this,ke,null));let r=l(this,Me).failed;const n=i=>{const{reset:s,invoke_onerror:o}=A(this,I,yn).call(this,i);o(),r&&b(this,ke,A(this,I,Kr).call(this,()=>{try{return Oe(()=>{var a=P;a.b=this,a.f|=xn,r(l(this,Ae),()=>i,()=>s)})}catch(a){return $t(a,l(this,ve).parent),null}}))};Ot(()=>{var i;try{i=this.transform_error(t)}catch(s){$t(s,l(this,ve)&&l(this,ve).parent);return}i!==null&&typeof i=="object"&&typeof i.then=="function"?i.then(n,s=>$t(s,l(this,ve)&&l(this,ve).parent)):n(i)})};function Hs(e,t,r,n){const i=$r;var s=e.filter(h=>!h.settled),o=t.map(i);if(r.length===0&&s.length===0){n(o);return}var a=P,f=Vs(),u=s.length===1?s[0].promise:s.length>1?Promise.all(s.map(h=>h.promise)):null;function _(h){if((a.f&$e)===0){f();try{n([...o,...h])}catch(c){$t(c,a)}en()}}var p=hi();if(r.length===0){u.then(()=>_([])).finally(p);return}function d(){Promise.all(r.map(h=>Ys(h))).then(_).catch(h=>$t(h,a)).finally(p)}u?u.then(()=>{f(),d(),en()}):d()}function Vs(){var e=P,t=k,r=ge,n=y;return function(s=!0){Xe(e),Re(t),lr(r),s&&(e.f&$e)===0&&(n==null||n.activate(),n==null||n.apply())}}function en(e=!0){Xe(null),Re(null),lr(null),e&&(y==null||y.deactivate())}function hi(){var e=P,t=e.b,r=y,n=!!(t!=null&&t.is_rendered());return t==null||t.update_pending_count(1,r),r.increment(n,e),()=>{t==null||t.update_pending_count(-1,r),r.decrement(n,e)}}function $r(e){var t=ee|U;return P!==null&&(P.f|=cr),{ctx:ge,deps:null,effects:null,equals:oi,f:t,fn:e,reactions:null,rv:0,v:W,wv:0,parent:P,ac:null}}const xr=Symbol("obsolete");function Ys(e,t,r){let n=P;n===null&&fs();var i=void 0,s=Gt(W),o=!k,a=new Set;return oa(()=>{var h,c;var f=P,u=ai();i=u.promise;try{Promise.resolve(e()).then(u.resolve,g=>{g!==Cr&&u.reject(g)}).finally(en)}catch(g){u.reject(g),en()}var _=y;if(o){if((f.f&dr)!==0)var p=hi();if((h=n.b)!=null&&h.is_rendered())(c=_.async_deriveds.get(f))==null||c.reject(xr);else for(const g of a.values())g.reject(xr);a.add(u),_.async_deriveds.set(f,u)}const d=(g,S=void 0)=>{p==null||p(),a.delete(u),S!==xr&&(_.activate(),S?(s.f|=Pt,or(s,S)):((s.f&Pt)!==0&&(s.f^=Pt),or(s,g)),_.deactivate())};u.promise.then(d,g=>d(null,g||"unknown"))}),sa(()=>{for(const f of a)f.reject(xr)}),new Promise(f=>{function u(_){function p(){_===i?f(s):u(i)}_.then(p,p)}u(i)})}function je(e){const t=$r(e);return Li(t),t}function _i(e){const t=$r(e);return t.equals=fi,t}function Gs(e){var t=e.effects;if(t!==null){e.effects=null;for(var r=0;r{r.ac.abort(Cr),r.ac=null}),r.fn!==null&&(r.teardown=Rr),Tr(r,0),Fn(r))}function gi(e){if(e.effects!==null)for(const t of e.effects)t.teardown&&t.fn!==null&&ur(t)}let pn=null,Kt=null,y=null,Er=null,te=null,Sn=null,gn=!1,Jt=null,Qr=null;var Vn=0;let Qs=1;var tr,St,Ft,rr,nr,ir,lt,sr,he,Or,ot,ze,We,ar,qt,D,$n,br,Tn,mi,xi,Qt,Ws,yr;const sn=class sn{constructor(){w(this,D);we(this,"id",Qs++);w(this,tr,!1);we(this,"linked",!0);w(this,St,null);w(this,Ft,null);we(this,"async_deriveds",new Map);we(this,"current",new Map);we(this,"previous",new Map);w(this,rr,new Set);w(this,nr,new Set);w(this,ir,0);w(this,lt,new Map);w(this,sr,null);w(this,he,[]);w(this,Or,[]);w(this,ot,new Set);w(this,ze,new Set);w(this,We,new Map);w(this,ar,new Set);we(this,"is_fork",!1);w(this,qt,!1);Kt===null?pn=Kt=this:(b(Kt,Ft,this),b(this,St,Kt)),Kt=this}skip_effect(t){l(this,We).has(t)||l(this,We).set(t,{d:[],m:[]}),l(this,ar).delete(t)}unskip_effect(t,r=n=>this.schedule(n)){var n=l(this,We).get(t);if(n){l(this,We).delete(t);for(var i of n.d)B(i,U),r(i);for(i of n.m)B(i,Ge),r(i)}l(this,ar).add(t)}capture(t,r,n=!1){t.v!==W&&!this.previous.has(t)&&this.previous.set(t,t.v),(t.f&Pt)===0&&(this.current.set(t,[r,n]),te==null||te.set(t,r)),this.is_fork||(t.v=r)}activate(){y=this}deactivate(){y=null,te=null}flush(){try{gn=!0,y=this,A(this,D,br).call(this)}finally{Vn=0,Sn=null,Jt=null,Qr=null,gn=!1,y=null,te=null,Bt.clear()}}discard(){var t;for(const r of l(this,nr))r(this);l(this,nr).clear();for(const r of this.async_deriveds.values())r.reject(xr);A(this,D,yr).call(this),(t=l(this,sr))==null||t.resolve()}register_created_effect(t){l(this,Or).push(t)}increment(t,r){if(b(this,ir,l(this,ir)+1),t){let n=l(this,lt).get(r)??0;l(this,lt).set(r,n+1)}}decrement(t,r){if(b(this,ir,l(this,ir)-1),t){let n=l(this,lt).get(r)??0;n===1?l(this,lt).delete(r):l(this,lt).set(r,n-1)}l(this,qt)||(b(this,qt,!0),Ot(()=>{b(this,qt,!1),this.linked&&this.flush()}))}transfer_effects(t,r){for(const n of t)l(this,ot).add(n);for(const n of r)l(this,ze).add(n);t.clear(),r.clear()}oncommit(t){l(this,rr).add(t)}ondiscard(t){l(this,nr).add(t)}settled(){return(l(this,sr)??b(this,sr,ai())).promise}static ensure(){if(y===null){const t=y=new sn;gn||Ot(()=>{l(t,tr)||t.flush()})}return y}apply(){{te=null;return}}schedule(t){var i;if(Sn=t,(i=t.b)!=null&&i.is_pending&&(t.f&(Sr|on|li))!==0&&(t.f&dr)===0){t.b.defer_effect(t);return}for(var r=t;r.parent!==null;){r=r.parent;var n=r.f;if(Jt!==null&&r===P&&(k===null||(k.f&ee)===0))return;if((n&(dt|Le))!==0){if((n&Z)===0)return;r.f^=Z}}l(this,he).push(r)}};tr=new WeakMap,St=new WeakMap,Ft=new WeakMap,rr=new WeakMap,nr=new WeakMap,ir=new WeakMap,lt=new WeakMap,sr=new WeakMap,he=new WeakMap,Or=new WeakMap,ot=new WeakMap,ze=new WeakMap,We=new WeakMap,ar=new WeakMap,qt=new WeakMap,D=new WeakSet,$n=function(){if(this.is_fork)return!0;for(const n of l(this,lt).keys()){for(var t=n,r=!1;t.parent!==null;){if(l(this,We).has(t)){r=!0;break}t=t.parent}if(!r)return!0}return!1},br=function(){var f,u,_,p;b(this,tr,!0),Vn++>1e3&&(A(this,D,yr).call(this),Js());for(const d of l(this,ot))l(this,ze).delete(d),B(d,U),this.schedule(d);for(const d of l(this,ze))B(d,Ge),this.schedule(d);const t=l(this,he);b(this,he,[]),this.apply();var r=Jt=[],n=[],i=Qr=[];for(const d of t)try{A(this,D,Tn).call(this,d,r,n)}catch(h){throw wi(d),A(this,D,$n).call(this)||this.discard(),h}if(y=null,i.length>0){var s=sn.ensure();for(const d of i)s.schedule(d)}if(Jt=null,Qr=null,A(this,D,$n).call(this)){A(this,D,Qt).call(this,n),A(this,D,Qt).call(this,r);for(const[d,h]of l(this,We))yi(d,h);i.length>0&&A(f=y,D,br).call(f);return}const o=A(this,D,mi).call(this);if(o){A(this,D,Qt).call(this,n),A(this,D,Qt).call(this,r),A(u=o,D,xi).call(u,this);return}l(this,ot).clear(),l(this,ze).clear();for(const d of l(this,rr))d(this);l(this,rr).clear(),Er=this,Yn(n),Yn(r),Er=null,(_=l(this,sr))==null||_.resolve();var a=y;if(l(this,ir)===0&&(l(this,he).length===0||a!==null)&&A(this,D,yr).call(this),l(this,he).length>0)if(a!==null){const d=a;l(d,he).push(...l(this,he).filter(h=>!l(d,he).includes(h)))}else a=this;a!==null&&A(p=a,D,br).call(p)},Tn=function(t,r,n){t.f^=Z;for(var i=t.first;i!==null;){var s=i.f,o=(s&(Le|dt))!==0,a=o&&(s&Z)!==0,f=a||(s&oe)!==0||l(this,We).has(i);if(!f&&i.fn!==null){o?i.f^=Z:(s&Sr)!==0?r.push(i):Fr(i)&&((s&He)!==0&&l(this,ze).add(i),ur(i));var u=i.first;if(u!==null){i=u;continue}}for(;i!==null;){var _=i.next;if(_!==null){i=_;break}i=i.parent}}},mi=function(){for(var t=l(this,St);t!==null;){if(!t.is_fork){for(const[r,[,n]]of this.current)if(t.current.has(r)&&!n)return t}t=l(t,St)}return null},xi=function(t){var n;for(const[i,s]of t.current)!this.previous.has(i)&&t.previous.has(i)&&this.previous.set(i,t.previous.get(i)),this.current.set(i,s);for(const[i,s]of t.async_deriveds){const o=this.async_deriveds.get(i);o&&s.promise.then(o.resolve).catch(o.reject)}t.async_deriveds.clear(),this.transfer_effects(l(t,ot),l(t,ze));const r=i=>{var s=i.reactions;if(s!==null&&!((i.f&ee)!==0&&(i.f&(U|Ge))===0))for(const f of s){var o=f.f;if((o&ee)!==0)r(f);else{var a=f;o&(Xt|He)&&!this.async_deriveds.has(a)&&(l(this,ze).delete(a),B(a,U),this.schedule(a))}}};for(const i of this.current.keys())r(i);this.oncommit(()=>t.discard()),A(n=t,D,yr).call(n),y=this,A(this,D,br).call(this)},Qt=function(t){for(var r=0;r!d.current.get(h)[1]);if(!(!l(d,tr)||i.length===0)){var s=i.filter(h=>!this.current.has(h));if(s.length===0)t&&d.discard();else if(r.length>0){if(t)for(const h of l(this,ar))d.unskip_effect(h,c=>{var g;(c.f&(He|Xt))!==0?d.schedule(c):A(g=d,D,Qt).call(g,[c])});d.activate();var o=new Set,a=new Map;for(var f of r)bi(f,s,o,a);a=new Map;var u=[...d.current].filter(([h,c])=>{const g=this.current.get(h);return g?g[0]!==c[0]||g[1]!==c[1]:!0}).map(([h])=>h);if(u.length>0)for(const h of l(this,Or))(h.f&($e|oe|Zr))===0&&Rn(h,u,a)&&((h.f&(Xt|He))!==0?(B(h,U),d.schedule(h)):l(d,ot).add(h));if(l(d,he).length>0&&!l(d,qt)){d.apply();for(var _ of l(d,he))A(p=d,D,Tn).call(p,_,[],[]);b(d,he,[])}d.deactivate()}}}},yr=function(){if(this.linked){var t=l(this,St),r=l(this,Ft);t===null?pn=r:b(t,Ft,r),r===null?Kt=t:b(r,St,t),this.linked=!1}};let Yt=sn;function Js(){try{hs()}catch(e){$t(e,Sn)}}let Be=null;function Yn(e){var t=e.length;if(t!==0){for(var r=0;r0)){Bt.clear();for(const i of Be){if((i.f&($e|oe))!==0)continue;const s=[i];let o=i.parent;for(;o!==null;)Be.has(o)&&(Be.delete(o),s.push(o)),o=o.parent;for(let a=s.length-1;a>=0;a--){const f=s[a];(f.f&($e|oe))===0&&ur(f)}}Be.clear()}}Be=null}}function bi(e,t,r,n){if(!r.has(e)&&(r.add(e),e.reactions!==null))for(const i of e.reactions){const s=i.f;(s&ee)!==0?bi(i,t,r,n):(s&(Xt|He))!==0&&(s&U)===0&&Rn(i,t,n)&&(B(i,U),Cn(i))}}function Rn(e,t,r){const n=r.get(e);if(n!==void 0)return n;if(e.deps!==null)for(const i of e.deps){if(Jr.call(t,i))return!0;if((i.f&ee)!==0&&Rn(i,t,r))return r.set(i,!0),!0}return r.set(e,!1),!1}function Cn(e){y.schedule(e)}function yi(e,t){if(!((e.f&Le)!==0&&(e.f&Z)!==0)){(e.f&U)!==0?t.d.push(e):(e.f&Ge)!==0&&t.m.push(e),B(e,Z);for(var r=e.first;r!==null;)yi(r,t),r=r.next}}function wi(e){B(e,Z);for(var t=e.first;t!==null;)wi(t),t=t.next}let tn=new Set;const Bt=new Map;let Ei=!1;function Gt(e,t){var r={f:0,v:e,reactions:null,equals:oi,rv:0,wv:0};return r}function _e(e,t){const r=Gt(e);return Li(r),r}function Zs(e,t=!1,r=!0){const n=Gt(e);return t||(n.equals=fi),n}function J(e,t,r=!1){k!==null&&(!Ve||(k.f&Zr)!==0)&&ui()&&(k.f&(ee|He|Xt|Zr))!==0&&(Ze===null||!Ze.has(e))&&ms();let n=r?Tt(t):t;return or(e,n,Qr)}function or(e,t,r=null){if(!e.equals(t)){Bt.set(e,ct?t:e.v);var n=Yt.ensure();if(n.capture(e,t),(e.f&ee)!==0){const i=e;(e.f&U)!==0&&Ln(i),te===null&&Dn(i)}e.wv=Ci(),ki(e,U,r),P!==null&&(P.f&Z)!==0&&(P.f&(Le|dt))===0&&(Pe===null?ca([e]):Pe.push(e)),!n.is_fork&&tn.size>0&&!Ei&&Xs()}return t}function Xs(){Ei=!1;for(const e of tn){(e.f&Z)!==0&&B(e,Ge);let t;try{t=Fr(e)}catch{t=!0}t&&ur(e)}tn.clear()}function kr(e){J(e,e.v+1)}function ki(e,t,r){var n=e.reactions;if(n!==null)for(var i=n.length,s=0;s{if(Ut===s)return a();var f=k,u=Ut;Re(null),Qn(s);var _=a();return Re(f),Qn(u),_};return n&&r.set("length",_e(e.length)),new Proxy(e,{defineProperty(a,f,u){(!("value"in u)||u.configurable===!1||u.enumerable===!1||u.writable===!1)&&ps();var _=r.get(f);return _===void 0?o(()=>{var p=_e(u.value);return r.set(f,p),p}):J(_,u.value,!0),!0},deleteProperty(a,f){var u=r.get(f);if(u===void 0){if(f in a){const _=o(()=>_e(W));r.set(f,_),kr(i)}}else J(u,W),kr(i);return!0},get(a,f,u){var h;if(f===Vr)return e;var _=r.get(f),p=f in a;if(_===void 0&&(!p||(h=Zt(a,f))!=null&&h.writable)&&(_=o(()=>{var c=Tt(p?a[f]:W),g=_e(c);return g}),r.set(f,_)),_!==void 0){var d=v(_);return d===W?void 0:d}return Reflect.get(a,f,u)},getOwnPropertyDescriptor(a,f){var u=Reflect.getOwnPropertyDescriptor(a,f);if(u&&"value"in u){var _=r.get(f);_&&(u.value=v(_))}else if(u===void 0){var p=r.get(f),d=p==null?void 0:p.v;if(p!==void 0&&d!==W)return{enumerable:!0,configurable:!0,value:d,writable:!0}}return u},has(a,f){var d;if(f===Vr)return!0;var u=r.get(f),_=u!==void 0&&u.v!==W||Reflect.has(a,f);if(u!==void 0||P!==null&&(!_||(d=Zt(a,f))!=null&&d.writable)){u===void 0&&(u=o(()=>{var h=_?Tt(a[f]):W,c=_e(h);return c}),r.set(f,u));var p=v(u);if(p===W)return!1}return _},set(a,f,u,_){var H;var p=r.get(f),d=f in a;if(n&&f==="length")for(var h=u;h_e(W)),r.set(h+"",c))}if(p===void 0)(!d||(H=Zt(a,f))!=null&&H.writable)&&(p=o(()=>_e(void 0)),J(p,Tt(u)),r.set(f,p));else{d=p.v!==W;var g=o(()=>Tt(u));J(p,g)}var S=Reflect.getOwnPropertyDescriptor(a,f);if(S!=null&&S.set&&S.set.call(_,u),!d){if(n&&typeof f=="string"){var $=r.get("length"),T=Number(f);Number.isInteger(T)&&T>=$.v&&J($,T+1)}kr(i)}return!0},ownKeys(a){v(i);var f=Reflect.ownKeys(a).filter(p=>{var d=r.get(p);return d===void 0||d.v!==W});for(var[u,_]of r)_.v!==W&&!(u in a)&&f.push(u);return f},setPrototypeOf(){gs()}})}var Gn,Si,$i,Ti;function ea(){if(Gn===void 0){Gn=window,Si=/Firefox/.test(navigator.userAgent);var e=Element.prototype,t=Node.prototype,r=Text.prototype;$i=Zt(t,"firstChild").get,Ti=Zt(t,"nextSibling").get,Un(e)&&(e[bn]=void 0,e[Yr]=null,e[os]=void 0,e.__e=void 0),Un(r)&&(r[mr]=void 0)}}function ut(e=""){return document.createTextNode(e)}function fr(e){return $i.call(e)}function Ir(e){return Ti.call(e)}function m(e,t){return fr(e)}function it(e,t=!1){{var r=fr(e);return r instanceof Comment&&r.data===""?Ir(r):r}}function E(e,t=1,r=!1){let n=e;for(;t--;)n=Ir(n);return n}function ta(e){e.textContent=""}function Pi(){return!1}function ra(e,t,r){return r?document.createElement(e,{is:r}):document.createElement(e)}function na(e){P===null&&(k===null&&vs(),cs()),ct&&ds()}function ia(e,t){var r=t.last;r===null?t.last=t.first=e:(r.next=e,e.prev=r,t.last=e)}function At(e,t){var r=P;r!==null&&(r.f&oe)!==0&&(e|=oe);var n={ctx:ge,deps:null,nodes:null,f:e|U|De,first:null,fn:t,last:null,next:null,parent:r,b:r&&r.b,prev:null,teardown:null,wv:0,ac:null};y==null||y.register_created_effect(n);var i=n;if((e&Sr)!==0)Jt!==null?Jt.push(n):Yt.ensure().schedule(n);else if(t!==null){try{ur(n)}catch(o){throw me(n),o}i.deps===null&&i.teardown===null&&i.nodes===null&&i.first===i.last&&(i.f&cr)===0&&(i=i.first,(e&He)!==0&&(e&Ht)!==0&&i!==null&&(i.f|=Ht))}if(i!==null&&(i.parent=r,r!==null&&ia(i,r),k!==null&&(k.f&ee)!==0&&(e&dt)===0)){var s=k;(s.effects??(s.effects=[])).push(i)}return n}function In(){return k!==null&&!Ve}function sa(e){const t=At(on,null);return B(t,Z),t.teardown=e,t}function aa(e){na();var t=P.f,r=!k&&(t&Le)!==0&&ge!==null&&!ge.i;if(r){var n=ge;(n.e??(n.e=[])).push(e)}else return Ai(e)}function Ai(e){return At(Sr|ss,e)}function la(e){Yt.ensure();const t=At(dt|cr,e);return(r={})=>new Promise(n=>{r.outro?zt(t,()=>{me(t),n(void 0)}):(me(t),n(void 0))})}function oa(e){return At(Xt|cr,e)}function fa(e,t=0){return At(on|t,e)}function q(e,t=[],r=[],n=[]){Hs(n,t,r,i=>{At(on,()=>{e(...i.map(v))})})}function un(e,t=0){var r=At(He|t,e);return r}function Oe(e){return At(Le|cr,e)}function Mi(e){var t=e.teardown;if(t!==null){const r=ct,n=k;Kn(!0),Re(null);try{t.call(null)}finally{Kn(r),Re(n)}}}function Fn(e,t=!1){var r=e.first;for(e.first=e.last=null;r!==null;){const i=r.ac;i!==null&&fn(()=>{i.abort(Cr)});var n=r.next;(r.f&dt)!==0?r.parent=null:me(r,t),r=n}}function ua(e){for(var t=e.first;t!==null;){var r=t.next;(t.f&Le)===0&&me(t),t=r}}function me(e,t=!0){var r=!1;(t||(e.f&is)!==0)&&e.nodes!==null&&e.nodes.end!==null&&(da(e.nodes.start,e.nodes.end),r=!0),e.f|=Hn,Fn(e,t&&!r),Tr(e,0);var n=e.nodes&&e.nodes.t;if(n!==null)for(const s of n)s.stop();Mi(e),e.f^=Hn,e.f|=$e;var i=e.parent;i!==null&&i.first!==null&&Ni(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes=e.ac=e.b=null}function da(e,t){for(;e!==null;){var r=e===t?null:Ir(e);e.remove(),e=r}}function Ni(e){var t=e.parent,r=e.prev,n=e.next;r!==null&&(r.next=n),n!==null&&(n.prev=r),t!==null&&(t.first===e&&(t.first=n),t.last===e&&(t.last=r))}function zt(e,t,r=!0){var n=[];Oi(e,n,!0);var i=()=>{r&&me(e),t&&t()},s=n.length;if(s>0){var o=()=>--s||i();for(var a of n)a.out(o)}else i()}function Oi(e,t,r){if((e.f&oe)===0){e.f^=oe;var n=e.nodes&&e.nodes.t;if(n!==null)for(const a of n)(a.is_global||r)&&t.push(a);for(var i=e.first;i!==null;){var s=i.next;if((i.f&dt)===0){var o=(i.f&Ht)!==0||(i.f&Le)!==0&&(e.f&He)!==0;Oi(i,t,o?r:!1)}i=s}}}function rn(e){Di(e,!0)}function Di(e,t){if((e.f&oe)!==0){e.f^=oe,(e.f&Z)===0&&(B(e,U),Yt.ensure().schedule(e));for(var r=e.first;r!==null;){var n=r.next,i=(r.f&Ht)!==0||(r.f&Le)!==0;Di(r,i?t:!1),r=n}var s=e.nodes&&e.nodes.t;if(s!==null)for(const o of s)(o.is_global||t)&&o.in()}}function qn(e,t){if(e.nodes)for(var r=e.nodes.start,n=e.nodes.end;r!==null;){var i=r===n?null:Ir(r);t.append(r),r=i}}let Wr=!1,ct=!1;function Kn(e){ct=e}let k=null,Ve=!1;function Re(e){k=e}let P=null;function Xe(e){P=e}let Ze=null;function Li(e){k!==null&&(Ze??(Ze=new Set)).add(e)}let pe=null,Ee=0,Pe=null;function ca(e){Pe=e}let Ri=1,Dt=0,Ut=Dt;function Qn(e){Ut=e}function Ci(){return++Ri}function Fr(e){var t=e.f;if((t&U)!==0)return!0;if(t&ee&&(e.f&=~Vt),(t&Ge)!==0){for(var r=e.deps,n=r.length,i=0;ie.wv)return!0}(t&De)!==0&&te===null&&B(e,Z)}return!1}function Ii(e,t,r=!0){var n=e.reactions;if(n!==null&&!(Ze!==null&&Ze.has(e)))for(var i=0;i{e.ac.abort(Cr)}),e.ac=null);try{e.f|=Xr;var _=e.fn,p=_();e.f|=dr;var d=e.deps,h=y==null?void 0:y.is_fork;if(pe!==null){var c;if(h||Tr(e,Ee),d!==null&&Ee>0)for(d.length=Ee+pe.length,c=0;c{s.ac.abort(Cr),s.ac=null,B(s,U)}),Ks(s),Tr(s,0)}}function Tr(e,t){var r=e.deps;if(r!==null)for(var n=t;n{throw $});throw d}}finally{e[Lt]=t,delete e.currentTarget,Re(_),Xe(p)}}}var ti;const mn=((ti=globalThis==null?void 0:globalThis.window)==null?void 0:ti.trustedTypes)&&globalThis.window.trustedTypes.createPolicy("svelte-trusted-html",{createHTML:e=>e});function ma(e){return(mn==null?void 0:mn.createHTML(e))??e}function Ui(e){var t=ra("template");return t.innerHTML=ma(e.replaceAll("","")),t.content}function Pr(e,t){var r=P;r.nodes===null&&(r.nodes={start:e,end:t,a:null,t:null})}function L(e,t){var r=(t&Ts)!==0,n=(t&Ps)!==0,i,s=!e.startsWith("");return()=>{i===void 0&&(i=Ui(s?e:""+e),r||(i=fr(i)));var o=n||Si?document.importNode(i,!0):i.cloneNode(!0);if(r){var a=fr(o),f=o.lastChild;Pr(a,f)}else Pr(o,o);return o}}function xa(e,t,r="svg"){var n=!e.startsWith(""),i=`<${r}>${n?e:""+e}`,s;return()=>{if(!s){var o=Ui(i),a=fr(o);s=fr(a)}var f=s.cloneNode(!0);return Pr(f,f),f}}function ba(e,t){return xa(e,t,"svg")}function Te(e=""){{var t=ut(e+"");return Pr(t,t),t}}function Nt(){var e=document.createDocumentFragment(),t=document.createComment(""),r=ut();return e.append(t,r),Pr(t,r),e}function x(e,t){e!==null&&e.before(t)}function O(e,t){var r=t==null?"":typeof t=="object"?`${t}`:t;r!==(e[mr]??(e[mr]=e.nodeValue))&&(e[mr]=r,e.nodeValue=`${r}`)}function ya(e,t){return wa(e,t)}const Br=new Map;function wa(e,{target:t,anchor:r,props:n={},events:i,context:s,intro:o=!0,transformError:a}){ea();var f=void 0,u=la(()=>{var _=r??t.appendChild(ut());qs(_,{pending:()=>{}},h=>{Nn({});var c=ge;s&&(c.c=s),i&&(n.$$events=i),f=e(h,n)||{},On()},a);var p=new Set,d=h=>{for(var c=0;c{var S;for(var h of p)for(const $ of[t,document]){var c=Br.get($),g=c.get(h);--g==0?($.removeEventListener(h,Jn),c.delete(h),c.size===0&&Br.delete($)):c.set(h,g)}Pn.delete(d),_!==r&&((S=_.parentNode)==null||S.removeChild(_))}});return Ea.set(f,u),f}let Ea=new WeakMap;var Ue,Je,Se,jt,Dr,Lr,an;class Hi{constructor(t,r=!0){we(this,"anchor");w(this,Ue,new Map);w(this,Je,new Map);w(this,Se,new Map);w(this,jt,new Set);w(this,Dr,!0);w(this,Lr,t=>{if(l(this,Ue).has(t)){var r=l(this,Ue).get(t),n=l(this,Je).get(r);if(n)rn(n),l(this,jt).delete(r);else{var i=l(this,Se).get(r);i&&(rn(i.effect),l(this,Je).set(r,i.effect),l(this,Se).delete(r),i.fragment.lastChild.remove(),this.anchor.before(i.fragment),n=i.effect)}for(const[s,o]of l(this,Ue)){if(l(this,Ue).delete(s),s===t)break;const a=l(this,Se).get(o);a&&(me(a.effect),l(this,Se).delete(o))}for(const[s,o]of l(this,Je)){if(s===r||l(this,jt).has(s))continue;const a=()=>{if(Array.from(l(this,Ue).values()).includes(s)){var u=document.createDocumentFragment();qn(o,u),u.append(ut()),l(this,Se).set(s,{effect:o,fragment:u})}else me(o);l(this,jt).delete(s),l(this,Je).delete(s)};l(this,Dr)||!n?(l(this,jt).add(s),zt(o,a,!1)):a()}}});w(this,an,t=>{l(this,Ue).delete(t);const r=Array.from(l(this,Ue).values());for(const[n,i]of l(this,Se))r.includes(n)||(me(i.effect),l(this,Se).delete(n))});this.anchor=t,b(this,Dr,r)}ensure(t,r){var n=y,i=Pi();if(r&&!l(this,Je).has(t)&&!l(this,Se).has(t))if(i){var s=document.createDocumentFragment(),o=ut();s.append(o),l(this,Se).set(t,{effect:Oe(()=>r(o)),fragment:s})}else l(this,Je).set(t,Oe(()=>r(this.anchor)));if(l(this,Ue).set(n,t),i){for(const[a,f]of l(this,Je))a===t?n.unskip_effect(f):n.skip_effect(f);for(const[a,f]of l(this,Se))a===t?n.unskip_effect(f.effect):n.skip_effect(f.effect);n.oncommit(l(this,Lr)),n.ondiscard(l(this,an))}else l(this,Lr).call(this,n)}}Ue=new WeakMap,Je=new WeakMap,Se=new WeakMap,jt=new WeakMap,Dr=new WeakMap,Lr=new WeakMap,an=new WeakMap;function Q(e,t,r=!1){var n=new Hi(e),i=r?Ht:0;function s(o,a){n.ensure(o,a)}un(()=>{var o=!1;t((a,f=0)=>{o=!0,s(f,a)}),o||s(-1,null)},i)}function ka(e,t,r){for(var n=[],i=t.length,s,o=t.length,a=0;a{if(s){if(s.pending.delete(p),s.done.add(p),s.pending.size===0){var d=e.outrogroups;An(e,ln(s.done)),d.delete(s),d.size===0&&(e.outrogroups=null)}}else o-=1},!1)}if(o===0){var f=n.length===0&&r!==null;if(f){var u=r,_=u.parentNode;ta(_),_.append(u),e.items.clear()}An(e,t,!f)}else s={pending:new Set(t),done:new Set},(e.outrogroups??(e.outrogroups=new Set)).add(s)}function An(e,t,r=!0){var n;if(e.pending.size>0){n=new Set;for(const o of e.pending.values())for(const a of o)n.add(e.items.get(a).e)}for(var i=0;i{var T=r();return ii(T)?T:T==null?[]:ln(T)}),p,d=new Map,h=!0;function c(T){($.effect.f&$e)===0&&($.pending.delete(T),$.fallback=u,Sa($,p,o,t,n),u!==null&&(p.length===0?(u.f&ft)===0?rn(u):(u.f^=ft,wr(u,null,o)):zt(u,()=>{u=null})))}function g(T){$.pending.delete(T)}var S=un(()=>{p=v(_);for(var T=p.length,H=new Set,se=y,z=Pi(),re=0;res(o)):(u=Oe(()=>s(Zn??(Zn=ut()))),u.f|=ft)),T>H.size&&us(),!h)if(d.set(se,H),z){for(const[cn,vn]of a)H.has(cn)||se.skip_effect(vn.e);se.oncommit(c),se.ondiscard(g)}else c(se);v(_)}),$={effect:S,items:a,pending:d,outrogroups:null,fallback:u};h=!1}function pr(e){for(;e!==null&&(e.f&Le)===0;)e=e.next;return e}function Sa(e,t,r,n,i){var Qe;var s=t.length,o=e.items,a=pr(e.effect.first),f,u=null,_=[],p=[],d,h,c,g;for(g=0;g0){var Ke=s===0?r:null;ka(e,z,Ke)}}}function $a(e,t,r,n,i,s,o,a){var f=(o&bs)!==0?(o&ws)===0?Zs(r,!1,!1):Gt(r):null,u=(o&ys)!==0?Gt(i):null;return{v:f,i:u,e:Oe(()=>(s(t,f??r,u??i,a),()=>{e.delete(n)}))}}function wr(e,t,r){if(e.nodes)for(var n=e.nodes.start,i=e.nodes.end,s=t&&(t.f&ft)===0?t.nodes.start:r;n!==null;){var o=Ir(n);if(s.before(n),n===i)return;n=o}}function wt(e,t,r){t===null?e.effect.first=r:t.next=r,r===null?e.effect.last=t:r.prev=t}function Ar(e,t,...r){var n=new Hi(e);un(()=>{const i=t()??null;n.ensure(i,i&&(s=>i(s,...r)))},Ht)}function Ta(e,t,r){var n=e==null?"":""+e;return n===""?null:n}function dn(e,t,r,n,i,s){var o=e[bn];if(o!==r||o===void 0){var a=Ta(r);a==null?e.removeAttribute("class"):e.className=a,e[bn]=r}return s}const Pa=Symbol("is custom element"),Aa=Symbol("is html");function Rt(e,t,r,n){var i=Ma(e);i[t]!==(i[t]=r)&&(t==="loading"&&(e[ls]=r),r==null?e.removeAttribute(t):typeof r!="string"&&Na(e).includes(t)?e[t]=r:e.setAttribute(t,r))}function Ma(e){return e[Yr]??(e[Yr]={[Pa]:e.nodeName.includes("-"),[Aa]:e.namespaceURI===As})}var Xn=new Map;function Na(e){var t=e.getAttribute("is")||e.nodeName,r=Xn.get(t);if(r)return r;Xn.set(t,r=[]);for(var n,i=e,s=Element.prototype;s!==i;){n=es(i);for(var o in n)n[o].set&&o!=="innerHTML"&&o!=="textContent"&&o!=="innerText"&&r.push(o);i=si(i)}return r}function Ye(e,t,r,n){var se;var i=!0,s=(r&Ss)!==0,o=(r&$s)!==0,a=n,f=!0,u=void 0,_=()=>o&&i?(u??(u=$r(n)),v(u)):(f&&(f=!1,a=o?Bi(n):n),a);let p;if(s){var d=Vr in e||as in e;p=((se=Zt(e,t))==null?void 0:se.set)??(d&&t in e?z=>e[t]=z:void 0)}var h,c=!1;s?[h,c]=Cs(()=>e[t]):h=e[t],h===void 0&&n!==void 0&&(h=_(),p&&(_s(),p(h)));var g;if(g=()=>{var z=e[t];return z===void 0?_():(f=!0,z)},(r&ks)===0)return g;if(p){var S=e.$$legacy;return(function(z,re){return arguments.length>0?((!re||S||c)&&p(re?g():z),z):g()})}var $=!1,T=((r&Es)!==0?$r:_i)(()=>($=!1,g()));s&&v(T);var H=P;return(function(z,re){if(arguments.length>0){const Ke=re?v(T):s?Tt(z):z;return J(T,Ke),$=!0,a!==void 0&&(a=Ke),z}return ct&&$||(H.f&$e)!==0?T.v:v(T)})}const Oa="5";var ri;typeof window<"u"&&((ri=window.__svelte??(window.__svelte={})).v??(ri.v=new Set)).add(Oa);async function vr(e,t={}){const r=await fetch(e,{headers:{"Content-Type":"application/json"},...t}),n=await r.json().catch(()=>({}));if(!r.ok)throw new Error(n.error||`${r.status} ${r.statusText}`);return n}const Da=()=>vr("/api/stats"),La=(e=50)=>vr(`/dlq?limit=${e}`),Ra=e=>vr("/dlq/retry",{method:"POST",body:JSON.stringify({id:e})}),Ca=()=>vr("/dlq/retry",{method:"POST",body:JSON.stringify({all:!0})}),Ia=e=>vr("/dlq/discard",{method:"POST",body:JSON.stringify({id:e})}),Fa=e=>vr("/backfill",{method:"POST",body:JSON.stringify({all:!0})});function ce(e){return e==null?"0":e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e4?`${(e/1e3).toFixed(1)}k`:Math.round(e).toLocaleString()}function qa(e){if(e==null||e<=0)return"0 B";const t=["B","KiB","MiB","GiB","TiB"];let r=0;for(;e>=1024&&r=100||r===0?0:1)} ${t[r]}`}function ja(e){if(e==null||e<0)return"–";const t=Math.floor(e);return t<60?`${t}s`:t<3600?`${Math.floor(t/60)}m ${t%60}s`:t<86400?`${Math.floor(t/3600)}h ${Math.floor(t%3600/60)}m`:`${Math.floor(t/86400)}d ${Math.floor(t%86400/3600)}h`}function Ba(e){return e==null||e<.05?"0/s":e<10?`${e.toFixed(1)}/s`:`${ce(e)}/s`}function za(e){if(!e)return"–";const t=(Date.now()-new Date(e).getTime())/1e3;return t<60?`${Math.max(0,Math.floor(t))}s ago`:t<3600?`${Math.floor(t/60)}m ago`:t<86400?`${Math.floor(t/3600)}h ago`:`${Math.floor(t/86400)}d ago`}var Ua=L('

'),Ha=L("
");function Ur(e,t){let r=Ye(t,"title",3,""),n=Ye(t,"class",3,"");var i=Ha(),s=m(i);{var o=f=>{var u=Ua(),_=m(u),p=m(_),d=E(_,2);{var h=c=>{var g=Nt(),S=it(g);Ar(S,()=>t.action),x(c,g)};Q(d,c=>{t.action&&c(h)})}q(()=>O(p,r())),x(f,u)};Q(s,f=>{(r()||t.action)&&f(o)})}var a=E(s,2);Ar(a,()=>t.children??Rr),q(()=>dn(i,1,`rounded-lg border border-border bg-card text-card-foreground shadow-sm ${n()??""}`)),x(e,i)}var Va=L("");function Et(e,t){let r=Ye(t,"variant",3,"secondary");const n={default:"bg-primary text-primary-foreground",secondary:"bg-secondary text-secondary-foreground",destructive:"bg-destructive/15 text-destructive",success:"bg-success/15 text-success",warning:"bg-warning/20 text-warning",outline:"border border-border text-foreground"};var i=Va(),s=m(i);Ar(s,()=>t.children??Rr),q(()=>dn(i,1,`inline-flex items-center gap-1 rounded-md px-2 py-0.5 text-xs font-medium whitespace-nowrap ${n[r()]??n.secondary??""}`)),x(e,i)}var Ya=L('');function gr(e,t){let r=Ye(t,"variant",3,"outline"),n=Ye(t,"size",3,"sm"),i=Ye(t,"disabled",3,!1),s=Ye(t,"title",3,"");const o={default:"bg-primary text-primary-foreground hover:bg-primary/90",outline:"border border-border bg-transparent hover:bg-accent hover:text-accent-foreground",destructive:"text-destructive border border-destructive/30 hover:bg-destructive/10",ghost:"hover:bg-accent hover:text-accent-foreground"},a={sm:"h-7 px-2.5 text-xs",md:"h-9 px-4 text-sm"};var f=Ya(),u=m(f);Ar(u,()=>t.children??Rr),q(()=>{Rt(f,"title",s()),f.disabled=i(),dn(f,1,`inline-flex items-center justify-center gap-1 rounded-md font-medium transition-colors focus-visible:ring-2 focus-visible:ring-ring focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50 ${o[r()]??o.outline??""} ${a[n()]??a.sm??""}`)}),pa("click",f,function(..._){var p;(p=t.onclick)==null||p.apply(this,_)}),x(e,f)}ga(["click"]);var Ga=L('

'),Ka=L('

');function Hr(e,t){let r=Ye(t,"sub",3,"");var n=Ka(),i=m(n),s=m(i),o=m(s),a=m(o),f=E(o,2),u=m(f),_=E(f,2);{var p=h=>{var c=Ga(),g=m(c);q(()=>O(g,r())),x(h,c)};Q(_,h=>{r()&&h(p)})}var d=E(s,2);Ar(d,()=>t.children??Rr),q(()=>{O(a,t.label),O(u,t.value)}),x(e,n)}var Qa=ba('');function Wa(e,t){Nn(t,!0);let r=Ye(t,"points",19,()=>[]),n=Ye(t,"width",3,96),i=Ye(t,"height",3,36),s=je(()=>{if(r().length<2)return"";const u=Math.max(...r(),1e-9),_=n()/(r().length-1);return r().map((p,d)=>{const h=(d*_).toFixed(1),c=(i()-2-p/u*(i()-4)).toFixed(1);return`${d===0?"M":"L"}${h},${c}`}).join(" ")});var o=Nt(),a=it(o);{var f=u=>{var _=Qa(),p=m(_);q(()=>{Rt(_,"width",n()),Rt(_,"height",i()),Rt(_,"viewBox",`0 0 ${n()??""} ${i()??""}`),Rt(p,"d",v(s))}),x(u,_)};Q(a,u=>{v(s)&&u(f)})}x(e,o),On()}var Ja=L(' Streaming',1),Za=L(" ",1),Xa=L('
'),el=L('
'),tl=L('

No sinks configured.

'),rl=L(' '),nl=L(' '),il=L(' '),sl=L('
'),al=L('
'),ll=L('

No events received yet.

'),ol=L(' '),fl=L('
TableINSUPDDELREADTotal
'),ul=L('

No backfills recorded.

'),dl=L(' '),cl=L('
'),ei=L('
'),vl=L('

DLQ is disabled (requires REDIS_URL). Sink failures stall the pipeline.

'),hl=L('

No parked events. 🎉

'),_l=L('

'),pl=L('
',1),gl=L('

Loading…

'),ml=L('
⚡

GTC

PostgreSQL change data capture

');function xl(e,t){Nn(t,!0);const r=2e3;let n=_e(null),i=_e(Tt({total:0,entries:[]})),s=_e(""),o=_e(""),a=_e(!1),f=_e(Tt([])),u=null,_=je(()=>v(f).length?v(f)[v(f).length-1]:0),p=M=>M>=2?"open":M>=1?"half-open":"closed";async function d(){var M;try{const F=await Da();if(u){const ne=(Date.now()-u.at)/1e3,Mt=F.events_total-u.total;ne>0&&Mt>=0&&J(f,[...v(f).slice(-59),Mt/ne],!0)}u={at:Date.now(),total:F.events_total},J(n,F,!0),J(s,""),(M=F.dlq)!=null&&M.enabled&&J(i,await La(50),!0)}catch(F){J(s,F.message,!0)}}async function h(M,F){J(a,!0),J(o,"");try{await M(),J(o,F,!0),await d()}catch(ne){J(o,`Error: ${ne.message}`)}finally{J(a,!1),setTimeout(()=>J(o,""),5e3)}}function c(){const M=document.documentElement.classList.toggle("dark");localStorage.setItem("gtc-theme",M?"dark":"light")}aa(()=>{d();const M=setInterval(d,r);return()=>clearInterval(M)});const g={done:"success",running:"default",pending:"secondary",failed:"destructive",skipped:"warning"};var S=ml(),$=m(S),T=E(m($),2),H=m(T);{var se=M=>{var F=Za(),ne=it(F);{var Mt=xe=>{Et(xe,{variant:"success",children:(vt,et)=>{var ht=Ja();x(vt,ht)},$$slots:{default:!0}})},qr=xe=>{Et(xe,{variant:"destructive",children:(vt,et)=>{var ht=Te("● Disconnected");x(vt,ht)},$$slots:{default:!0}})};Q(ne,xe=>{v(n).streaming?xe(Mt):xe(qr,-1)})}var hr=E(ne,2);Et(hr,{variant:"outline",children:(xe,vt)=>{var et=Te();q(()=>O(et,`LSN ${(v(n).current_lsn||"–")??""}`)),x(xe,et)},$$slots:{default:!0}});var hn=E(hr,2);Et(hn,{variant:"outline",children:(xe,vt)=>{var et=Te();q(ht=>O(et,`up ${ht??""}`),[()=>ja(v(n).uptime_seconds)]),x(xe,et)},$$slots:{default:!0}}),x(M,F)};Q(H,M=>{v(n)&&M(se)})}var z=E(H,2);gr(z,{variant:"ghost",onclick:c,title:"Toggle theme",children:(M,F)=>{var ne=Te("◐");x(M,ne)},$$slots:{default:!0}});var re=E($,2);{var Ke=M=>{var F=Xa(),ne=m(F);q(()=>O(ne,`Cannot reach GTC: ${v(s)??""}`)),x(M,F)};Q(re,M=>{v(s)&&M(Ke)})}var Qe=E(re,2);{var X=M=>{var F=el(),ne=m(F);q(()=>O(ne,v(o))),x(M,F)};Q(Qe,M=>{v(o)&&M(X)})}var cn=E(Qe,2);{var vn=M=>{var F=pl(),ne=it(F),Mt=m(ne);{let be=je(()=>Ba(v(_))),ae=je(()=>ce(v(n).events_total));Hr(Mt,{label:"Throughput",get value(){return v(be)},get sub(){return`${v(ae)??""} events total`},children:(fe,ye)=>{Wa(fe,{get points(){return v(f)}})},$$slots:{default:!0}})}var qr=E(Mt,2);{let be=je(()=>qa(v(n).wal_lag_bytes)),ae=je(()=>v(n).ready?"ready":"not ready");Hr(qr,{label:"WAL lag",get value(){return v(be)},get sub(){return v(ae)}})}var hr=E(qr,2);{let be=je(()=>ce(v(n).inflight));Hr(hr,{label:"In flight",get value(){return v(be)},sub:"events being processed"})}var hn=E(hr,2);{let be=je(()=>v(n).dlq.enabled?ce(v(n).dlq.entries):"off"),ae=je(()=>v(n).dlq.enabled?"parked events":"DLQ disabled");Hr(hn,{label:"Dead letters",get value(){return v(be)},get sub(){return v(ae)}})}var xe=E(ne,2),vt=m(xe);Ur(vt,{title:"Sinks",children:(be,ae)=>{var fe=Nt(),ye=it(fe);{var Ce=V=>{var Y=tl();x(V,Y)},Ie=V=>{var Y=al();zr(Y,21,()=>v(n).sinks,j=>j.name,(j,R)=>{var G=sl(),C=m(G),Fe=m(C),qe=E(Fe,2),_t=m(qe),tt=E(qe,2);{var pt=N=>{{let ie=je(()=>v(R).breaker_state>=2?"destructive":"warning");Et(N,{get variant(){return v(ie)},children:(K,yt)=>{var Bn=Te();q(Qi=>O(Bn,`breaker ${Qi??""}`),[()=>p(v(R).breaker_state)]),x(K,Bn)},$$slots:{default:!0}})}};Q(tt,N=>{v(R).breaker_state>=1&&N(pt)})}var rt=E(C,2),gt=m(rt),mt=m(gt),nt=E(gt,2);{var ue=N=>{var ie=rl(),K=m(ie);q(yt=>O(K,`✕ ${yt??""}`),[()=>ce(v(R).failed)]),x(N,ie)};Q(nt,N=>{v(R).failed>0&&N(ue)})}var de=E(nt,2);{var xt=N=>{var ie=nl(),K=m(ie);q(yt=>O(K,`↻ ${yt??""}`),[()=>ce(v(R).retries)]),x(N,ie)};Q(de,N=>{v(R).retries>0&&N(xt)})}var bt=E(de,2);{var _r=N=>{var ie=il(),K=m(ie);q(yt=>O(K,`⊘ ${yt??""}`),[()=>ce(v(R).filtered)]),x(N,ie)};Q(bt,N=>{v(R).filtered>0&&N(_r)})}q(N=>{dn(Fe,1,`h-2 w-2 rounded-full ${v(R).healthy?"bg-success":"bg-destructive"}`),O(_t,v(R).name),O(mt,`✓ ${N??""}`)},[()=>ce(v(R).succeeded)]),x(j,G)}),x(V,Y)};Q(ye,V=>{v(n).sinks.length===0?V(Ce):V(Ie,-1)})}x(be,fe)},$$slots:{default:!0}});var et=E(vt,2);Ur(et,{title:"Table activity",children:(be,ae)=>{var fe=Nt(),ye=it(fe);{var Ce=V=>{var Y=ll();x(V,Y)},Ie=V=>{var Y=fl(),j=m(Y),R=E(m(j));zr(R,21,()=>v(n).tables,G=>G.table,(G,C)=>{var Fe=ol(),qe=m(Fe),_t=m(qe),tt=E(qe),pt=m(tt),rt=E(tt),gt=m(rt),mt=E(rt),nt=m(mt),ue=E(mt),de=m(ue),xt=E(ue),bt=m(xt);q((_r,N,ie,K,yt)=>{O(_t,v(C).table),O(pt,_r),O(gt,N),O(nt,ie),O(de,K),O(bt,yt)},[()=>ce(v(C).insert),()=>ce(v(C).update),()=>ce(v(C).delete),()=>ce(v(C).read),()=>ce(v(C).total)]),x(G,Fe)}),x(V,Y)};Q(ye,V=>{v(n).tables.length===0?V(Ce):V(Ie,-1)})}x(be,fe)},$$slots:{default:!0}});var ht=E(xe,2),jn=m(ht);Ur(jn,{title:"Backfill",action:ae=>{gr(ae,{get busy(){return v(a)},get disabled(){return v(a)},onclick:()=>h(()=>Fa(),"Backfill of all tables enqueued."),children:(fe,ye)=>{var Ce=Te("Sync all tables");x(fe,Ce)},$$slots:{default:!0}})},children:(ae,fe)=>{var ye=Nt(),Ce=it(ye);{var Ie=Y=>{var j=ul();x(Y,j)},V=Y=>{var j=ei();zr(j,21,()=>v(n).backfill,R=>R.schema+"."+R.table,(R,G)=>{var C=cl(),Fe=m(C),qe=m(Fe),_t=m(qe),tt=E(qe,2);{let ue=je(()=>g[v(G).state]??"secondary");Et(tt,{get variant(){return v(ue)},children:(de,xt)=>{var bt=Te();q(()=>O(bt,v(G).state)),x(de,bt)},$$slots:{default:!0}})}var pt=E(Fe,2),rt=m(pt),gt=m(rt),mt=E(rt,2);{var nt=ue=>{var de=dl(),xt=m(de);q(()=>{Rt(de,"title",v(G).error),O(xt,v(G).error)}),x(ue,de)};Q(mt,ue=>{v(G).error&&ue(nt)})}q(ue=>{O(_t,`${v(G).schema??""}.${v(G).table??""}`),O(gt,`${ue??""} rows`)},[()=>ce(v(G).rows_copied)]),x(R,C)}),x(Y,j)};Q(Ce,Y=>{v(n).backfill.length===0?Y(Ie):Y(V,-1)})}x(ae,ye)},$$slots:{action:!0,default:!0}});var Yi=E(jn,2);Ur(Yi,{title:"Dead-letter queue",action:ae=>{var fe=Nt(),ye=it(fe);{var Ce=Ie=>{gr(Ie,{get disabled(){return v(a)},onclick:()=>h(Ca,"Retried all dead-letter entries."),children:(V,Y)=>{var j=Te("Retry all");x(V,j)},$$slots:{default:!0}})};Q(ye,Ie=>{v(i).total>0&&Ie(Ce)})}x(ae,fe)},children:(ae,fe)=>{var ye=Nt(),Ce=it(ye);{var Ie=j=>{var R=vl();x(j,R)},V=j=>{var R=hl();x(j,R)},Y=j=>{var R=ei();zr(R,21,()=>v(i).entries,G=>G.id,(G,C)=>{var Fe=_l(),qe=m(Fe),_t=m(qe),tt=m(_t);Et(tt,{variant:"outline",children:(N,ie)=>{var K=Te();q(()=>O(K,v(C).sink)),x(N,K)},$$slots:{default:!0}});var pt=E(tt,2),rt=m(pt),gt=E(pt,2);Et(gt,{variant:"secondary",children:(N,ie)=>{var K=Te();q(()=>O(K,v(C).operation)),x(N,K)},$$slots:{default:!0}});var mt=E(_t,2),nt=m(mt);gr(nt,{get disabled(){return v(a)},onclick:()=>h(()=>Ra(v(C).id),`Retried ${v(C).id}.`),children:(N,ie)=>{var K=Te("Retry");x(N,K)},$$slots:{default:!0}});var ue=E(nt,2);gr(ue,{variant:"destructive",get disabled(){return v(a)},onclick:()=>h(()=>Ia(v(C).id),`Discarded ${v(C).id}.`),children:(N,ie)=>{var K=Te("Discard");x(N,K)},$$slots:{default:!0}});var de=E(qe,2),xt=m(de),bt=E(de,2),_r=m(bt);q(N=>{O(rt,`${v(C).schema??""}.${v(C).table??""}`),Rt(de,"title",v(C).error),O(xt,v(C).error),O(_r,`${v(C).attempts??""} attempts · LSN ${v(C).lsn??""} · last failed ${N??""}`)},[()=>za(v(C).last_failed_at)]),x(G,Fe)}),x(j,R)};Q(Ce,j=>{v(n).dlq.enabled?v(i).entries.length===0?j(V,1):j(Y,-1):j(Ie)})}x(ae,ye)},$$slots:{action:!0,default:!0}});var Gi=E(ht,2),Ki=m(Gi);Ki.textContent="refreshes every 2s",x(M,F)},Vi=M=>{var F=gl();x(M,F)};Q(cn,M=>{v(n)?M(vn):v(s)||M(Vi,1)})}x(e,S),On()}ya(xl,{target:document.getElementById("app")}); diff --git a/ui/dist/assets/index-BPcVYW95.css b/ui/dist/assets/index-BPcVYW95.css deleted file mode 100644 index 90d4477..0000000 --- a/ui/dist/assets/index-BPcVYW95.css +++ /dev/null @@ -1 +0,0 @@ -/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--container-6xl:72rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--font-weight-medium:500;--font-weight-semibold:600;--tracking-tight:-.025em;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.sticky{position:sticky}.top-0{top:0}.mx-auto{margin-inline:auto}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.flex{display:flex}.grid{display:grid}.inline-flex{display:inline-flex}.table{display:table}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-7{height:calc(var(--spacing) * 7)}.h-9{height:calc(var(--spacing) * 9)}.max-h-72{max-height:calc(var(--spacing) * 72)}.w-1\.5{width:calc(var(--spacing) * 1.5)}.w-2{width:calc(var(--spacing) * 2)}.w-9{width:calc(var(--spacing) * 9)}.w-full{width:100%}.max-w-6xl{max-width:var(--container-6xl)}.max-w-40{max-width:calc(var(--spacing) * 40)}.min-w-0{min-width:0}.shrink-0{flex-shrink:0}.animate-pulse{animation:var(--animate-pulse)}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1{gap:var(--spacing)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-border>:not(:last-child)){border-color:var(--border)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-y-auto{overflow-y:auto}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.border{border-style:var(--tw-border-style);border-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-border{border-color:var(--border)}.border-destructive\/30{border-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.border-destructive\/30{border-color:color-mix(in oklab,var(--destructive) 30%,transparent)}}.bg-card{background-color:var(--card)}.bg-current{background-color:currentColor}.bg-destructive,.bg-destructive\/10{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.bg-destructive\/10{background-color:color-mix(in oklab,var(--destructive) 10%,transparent)}}.bg-destructive\/15{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.bg-destructive\/15{background-color:color-mix(in oklab,var(--destructive) 15%,transparent)}}.bg-muted{background-color:var(--muted)}.bg-primary{background-color:var(--primary)}.bg-secondary{background-color:var(--secondary)}.bg-success,.bg-success\/15{background-color:var(--success)}@supports (color:color-mix(in lab,red,red)){.bg-success\/15{background-color:color-mix(in oklab,var(--success) 15%,transparent)}}.bg-transparent{background-color:#0000}.bg-warning\/20{background-color:var(--warning)}@supports (color:color-mix(in lab,red,red)){.bg-warning\/20{background-color:color-mix(in oklab,var(--warning) 20%,transparent)}}.p-4{padding:calc(var(--spacing) * 4)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-4{padding-inline:calc(var(--spacing) * 4)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-16{padding-block:calc(var(--spacing) * 16)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.whitespace-nowrap{white-space:nowrap}.text-card-foreground{color:var(--card-foreground)}.text-destructive{color:var(--destructive)}.text-foreground{color:var(--foreground)}.text-muted-foreground,.text-muted-foreground\/70{color:var(--muted-foreground)}@supports (color:color-mix(in lab,red,red)){.text-muted-foreground\/70{color:color-mix(in oklab,var(--muted-foreground) 70%,transparent)}}.text-primary-foreground{color:var(--primary-foreground)}.text-secondary-foreground{color:var(--secondary-foreground)}.text-success{color:var(--success)}.text-warning{color:var(--warning)}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.last\:border-0:last-child{border-style:var(--tw-border-style);border-width:0}@media(hover:hover){.hover\:bg-accent:hover{background-color:var(--accent)}.hover\:bg-destructive\/10:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-destructive\/10:hover{background-color:color-mix(in oklab,var(--destructive) 10%,transparent)}}.hover\:bg-primary\/90:hover{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab,var(--primary) 90%,transparent)}}.hover\:text-accent-foreground:hover{color:var(--accent-foreground)}.hover\:text-foreground:hover{color:var(--foreground)}}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color:var(--ring)}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:opacity-50:disabled{opacity:.5}@media(min-width:64rem){.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}}:root{--background:oklch(100% 0 0);--foreground:oklch(14.1% .005 285.823);--card:oklch(100% 0 0);--card-foreground:oklch(14.1% .005 285.823);--primary:oklch(21% .006 285.885);--primary-foreground:oklch(98.5% 0 0);--secondary:oklch(96.7% .001 286.375);--secondary-foreground:oklch(21% .006 285.885);--muted:oklch(96.7% .001 286.375);--muted-foreground:oklch(55.2% .016 285.938);--accent:oklch(96.7% .001 286.375);--accent-foreground:oklch(21% .006 285.885);--destructive:oklch(57.7% .245 27.325);--destructive-foreground:oklch(98.5% 0 0);--success:oklch(62.7% .17 149.2);--warning:oklch(76.9% .155 70.08);--border:oklch(92% .004 286.32);--input:oklch(92% .004 286.32);--ring:oklch(70.5% .015 286.067);--radius:.625rem}.dark{--background:oklch(14.1% .005 285.823);--foreground:oklch(98.5% 0 0);--card:oklch(21% .006 285.885);--card-foreground:oklch(98.5% 0 0);--primary:oklch(92% .004 286.32);--primary-foreground:oklch(21% .006 285.885);--secondary:oklch(27.4% .006 286.033);--secondary-foreground:oklch(98.5% 0 0);--muted:oklch(27.4% .006 286.033);--muted-foreground:oklch(70.5% .015 286.067);--accent:oklch(27.4% .006 286.033);--accent-foreground:oklch(98.5% 0 0);--destructive:oklch(70.4% .191 22.216);--destructive-foreground:oklch(98.5% 0 0);--success:oklch(72.3% .192 149.579);--warning:oklch(82.8% .189 84.429);--border:oklch(100% 0 0/.1);--input:oklch(100% 0 0/.15);--ring:oklch(55.2% .016 285.938)}body{background-color:var(--background);color:var(--foreground);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,sans-serif}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@keyframes pulse{50%{opacity:.5}} diff --git a/ui/dist/assets/index-Bnpk0_J-.css b/ui/dist/assets/index-Bnpk0_J-.css new file mode 100644 index 0000000..ca3e87f --- /dev/null +++ b/ui/dist/assets/index-Bnpk0_J-.css @@ -0,0 +1 @@ +@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-pan-x:initial;--tw-pan-y:initial;--tw-pinch-zoom:initial;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-divide-x-reverse:0;--tw-border-style:solid;--tw-divide-y-reverse:0;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-orange-500:oklch(70.5% .213 47.604);--color-amber-400:oklch(82.8% .189 84.429);--color-emerald-400:oklch(76.5% .177 163.223);--color-emerald-500:oklch(69.6% .17 162.48);--color-emerald-600:oklch(59.6% .145 163.225);--color-sky-400:oklch(74.6% .16 232.661);--color-sky-600:oklch(58.8% .158 241.966);--color-violet-400:oklch(70.2% .183 293.541);--color-violet-600:oklch(54.1% .281 293.009);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-md:28rem;--container-xl:36rem;--container-6xl:72rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-wide:.025em;--leading-tight:1.25;--radius-xs:.125rem;--animate-spin:spin 1s linear infinite;--animate-ping:ping 1s cubic-bezier(0, 0, .2, 1) infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*{border-color:var(--border);outline-color:var(--ring)}@supports (color:color-mix(in lab,red,red)){*{outline-color:color-mix(in oklab,var(--ring) 50%,transparent)}}body{background-color:var(--background);color:var(--foreground);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"cv02","cv03","cv04","cv11";font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,sans-serif}}@layer components;@layer utilities{.\@container{container-type:inline-size}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.not-sr-only{clip-path:none;white-space:normal;width:auto;height:auto;margin:0;padding:0;position:static;overflow:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:0}.inset-y-0{inset-block:0}.top-0{top:0}.top-1\/2{top:50%}.top-4{top:calc(var(--spacing) * 4)}.right-4{right:calc(var(--spacing) * 4)}.left-0{left:0}.left-1\/2{left:50%}.left-2\.5{left:calc(var(--spacing) * 2.5)}.isolate{isolation:isolate}.isolation-auto{isolation:auto}.z-20{z-index:20}.z-30{z-index:30}.z-50{z-index:50}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.mx-auto{margin-inline:auto}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.ml-56{margin-left:calc(var(--spacing) * 56)}.ml-auto{margin-left:auto}.block{display:block}.contents{display:contents}.flex{display:flex}.flow-root{display:flow-root}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.inline-grid{display:inline-grid}.inline-table{display:inline-table}.list-item{display:list-item}.table{display:table}.table-caption{display:table-caption}.table-cell{display:table-cell}.table-column{display:table-column}.table-column-group{display:table-column-group}.table-footer-group{display:table-footer-group}.table-header-group{display:table-header-group}.table-row{display:table-row}.table-row-group{display:table-row-group}.size-1\.5{width:calc(var(--spacing) * 1.5);height:calc(var(--spacing) * 1.5)}.size-2{width:calc(var(--spacing) * 2);height:calc(var(--spacing) * 2)}.size-3{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.size-3\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-4\.5{width:calc(var(--spacing) * 4.5);height:calc(var(--spacing) * 4.5)}.size-5{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.size-full{width:100%;height:100%}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-5{height:calc(var(--spacing) * 5)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-14{height:calc(var(--spacing) * 14)}.h-28{height:calc(var(--spacing) * 28)}.min-h-screen{min-height:100vh}.w-16{width:calc(var(--spacing) * 16)}.w-56{width:calc(var(--spacing) * 56)}.w-fit{width:fit-content}.w-full{width:100%}.max-w-6xl{max-width:var(--container-6xl)}.max-w-\[calc\(100\%-2rem\)\]{max-width:calc(100% - 2rem)}.max-w-md{max-width:var(--container-md)}.max-w-xl{max-width:var(--container-xl)}.max-w-xs{max-width:var(--container-xs)}.min-w-0{min-width:0}.min-w-5{min-width:calc(var(--spacing) * 5)}.flex-1{flex:1}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.caption-bottom{caption-side:bottom}.border-collapse{border-collapse:collapse}.-translate-x-1\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-none{translate:none}.scale-3d{scale:var(--tw-scale-x) var(--tw-scale-y) var(--tw-scale-z)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-ping{animation:var(--animate-ping)}.animate-spin{animation:var(--animate-spin)}.cursor-pointer{cursor:pointer}.touch-pinch-zoom{--tw-pinch-zoom:pinch-zoom;touch-action:var(--tw-pan-x,) var(--tw-pan-y,) var(--tw-pinch-zoom,)}.resize{resize:both}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0{gap:0}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-reverse>:not(:last-child)){--tw-space-y-reverse:1}.gap-x-4{column-gap:calc(var(--spacing) * 4)}:where(.space-x-reverse>:not(:last-child)){--tw-space-x-reverse:1}.gap-y-1{row-gap:var(--spacing)}:where(.divide-x>:not(:last-child)){--tw-divide-x-reverse:0;border-inline-style:var(--tw-border-style);border-inline-start-width:calc(1px * var(--tw-divide-x-reverse));border-inline-end-width:calc(1px * calc(1 - var(--tw-divide-x-reverse)))}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-y-reverse>:not(:last-child)){--tw-divide-y-reverse:1}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-xl{border-radius:calc(var(--radius) + 4px)}.rounded-xs{border-radius:var(--radius-xs)}.rounded-s{border-start-start-radius:.25rem;border-end-start-radius:.25rem}.rounded-ss{border-start-start-radius:.25rem}.rounded-e{border-start-end-radius:.25rem;border-end-end-radius:.25rem}.rounded-se{border-start-end-radius:.25rem}.rounded-ee{border-end-end-radius:.25rem}.rounded-es{border-end-start-radius:.25rem}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.rounded-l{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.rounded-tl{border-top-left-radius:.25rem}.rounded-r{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.rounded-tr{border-top-right-radius:.25rem}.rounded-b{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.rounded-br{border-bottom-right-radius:.25rem}.rounded-bl{border-bottom-left-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.border-x{border-inline-style:var(--tw-border-style);border-inline-width:1px}.border-y{border-block-style:var(--tw-border-style);border-block-width:1px}.border-s{border-inline-start-style:var(--tw-border-style);border-inline-start-width:1px}.border-e{border-inline-end-style:var(--tw-border-style);border-inline-end-width:1px}.border-bs{border-block-start-style:var(--tw-border-style);border-block-start-width:1px}.border-be{border-block-end-style:var(--tw-border-style);border-block-end-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-input{border-color:var(--input)}.border-sidebar-border{border-color:var(--sidebar-border)}.border-transparent{border-color:#0000}.bg-background,.bg-background\/80{background-color:var(--background)}@supports (color:color-mix(in lab,red,red)){.bg-background\/80{background-color:color-mix(in oklab,var(--background) 80%,transparent)}}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab,red,red)){.bg-black\/50{background-color:color-mix(in oklab,var(--color-black) 50%,transparent)}}.bg-card{background-color:var(--card)}.bg-destructive,.bg-destructive\/10{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.bg-destructive\/10{background-color:color-mix(in oklab,var(--destructive) 10%,transparent)}}.bg-emerald-500{background-color:var(--color-emerald-500)}.bg-muted{background-color:var(--muted)}.bg-primary,.bg-primary\/70{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.bg-primary\/70{background-color:color-mix(in oklab,var(--primary) 70%,transparent)}}.bg-red-500{background-color:var(--color-red-500)}.bg-secondary{background-color:var(--secondary)}.bg-sidebar{background-color:var(--sidebar)}.bg-sidebar-accent{background-color:var(--sidebar-accent)}.bg-success\/10{background-color:var(--success)}@supports (color:color-mix(in lab,red,red)){.bg-success\/10{background-color:color-mix(in oklab,var(--success) 10%,transparent)}}.bg-transparent{background-color:#0000}.bg-warning\/15{background-color:var(--warning)}@supports (color:color-mix(in lab,red,red)){.bg-warning\/15{background-color:color-mix(in oklab,var(--warning) 15%,transparent)}}.bg-gradient-to-br{--tw-gradient-position:to bottom right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-amber-400{--tw-gradient-from:var(--color-amber-400);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-orange-500{--tw-gradient-to:var(--color-orange-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.bg-repeat{background-repeat:repeat}.mask-no-clip{-webkit-mask-clip:no-clip;mask-clip:no-clip}.mask-repeat{-webkit-mask-repeat:repeat;mask-repeat:repeat}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-6{padding:calc(var(--spacing) * 6)}.px-0{padding-inline:0}.px-1{padding-inline:var(--spacing)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-0{padding-block:0}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-6{padding-block:calc(var(--spacing) * 6)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-5{padding-top:calc(var(--spacing) * 5)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pl-8{padding-left:calc(var(--spacing) * 8)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.align-middle{vertical-align:middle}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[13px\]{font-size:13px}.text-\[15px\]{font-size:15px}.leading-none{--tw-leading:1;line-height:1}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.text-wrap{text-wrap:wrap}.text-clip{text-overflow:clip}.text-ellipsis{text-overflow:ellipsis}.whitespace-normal{white-space:normal}.whitespace-nowrap{white-space:nowrap}.text-card-foreground{color:var(--card-foreground)}.text-destructive{color:var(--destructive)}.text-emerald-500{color:var(--color-emerald-500)}.text-emerald-600{color:var(--color-emerald-600)}.text-foreground{color:var(--foreground)}.text-muted-foreground,.text-muted-foreground\/50{color:var(--muted-foreground)}@supports (color:color-mix(in lab,red,red)){.text-muted-foreground\/50{color:color-mix(in oklab,var(--muted-foreground) 50%,transparent)}}.text-primary{color:var(--primary)}.text-primary-foreground{color:var(--primary-foreground)}.text-primary\/80{color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.text-primary\/80{color:color-mix(in oklab,var(--primary) 80%,transparent)}}.text-red-600{color:var(--color-red-600)}.text-secondary-foreground{color:var(--secondary-foreground)}.text-sidebar-accent-foreground{color:var(--sidebar-accent-foreground)}.text-sidebar-foreground,.text-sidebar-foreground\/60{color:var(--sidebar-foreground)}@supports (color:color-mix(in lab,red,red)){.text-sidebar-foreground\/60{color:color-mix(in oklab,var(--sidebar-foreground) 60%,transparent)}}.text-sidebar-foreground\/65{color:var(--sidebar-foreground)}@supports (color:color-mix(in lab,red,red)){.text-sidebar-foreground\/65{color:color-mix(in oklab,var(--sidebar-foreground) 65%,transparent)}}.text-sky-600{color:var(--color-sky-600)}.text-success{color:var(--success)}.text-violet-600{color:var(--color-violet-600)}.text-warning{color:var(--warning)}.text-white{color:var(--color-white)}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.normal-case{text-transform:none}.uppercase{text-transform:uppercase}.italic{font-style:italic}.not-italic{font-style:normal}.diagonal-fractions{--tw-numeric-fraction:diagonal-fractions;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.lining-nums{--tw-numeric-figure:lining-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.oldstyle-nums{--tw-numeric-figure:oldstyle-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.ordinal{--tw-ordinal:ordinal;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.proportional-nums{--tw-numeric-spacing:proportional-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.slashed-zero{--tw-slashed-zero:slashed-zero;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.stacked-fractions{--tw-numeric-fraction:stacked-fractions;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.normal-nums{font-variant-numeric:normal}.line-through{text-decoration-line:line-through}.no-underline{text-decoration-line:none}.overline{text-decoration-line:overline}.underline{text-decoration-line:underline}.underline-offset-4{text-underline-offset:4px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.subpixel-antialiased{-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.inset-ring{--tw-inset-ring-shadow:inset 0 0 0 1px var(--tw-inset-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring-offset-background{--tw-ring-offset-color:var(--background)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.drop-shadow{--tw-drop-shadow-size:drop-shadow(0 1px 2px var(--tw-drop-shadow-color,#0000001a)) drop-shadow(0 1px 1px var(--tw-drop-shadow-color,#0000000f));--tw-drop-shadow:drop-shadow(0 1px 2px #0000001a) drop-shadow(0 1px 1px #0000000f);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-grayscale{--tw-backdrop-grayscale:grayscale(100%);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-invert{--tw-backdrop-invert:invert(100%);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-sepia{--tw-backdrop-sepia:sepia(100%);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition-\[color\,box-shadow\]{transition-property:color,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}:where(.divide-x-reverse>:not(:last-child)){--tw-divide-x-reverse:1}.paused{animation-play-state:paused}.ring-inset{--tw-ring-inset:inset}.running{animation-play-state:running}.zoom-in{--tw-enter-scale:0}.zoom-out{--tw-exit-scale:0}.group-data-\[disabled\=true\]\:pointer-events-none:is(:where(.group)[data-disabled=true] *){pointer-events:none}.group-data-\[disabled\=true\]\:opacity-50:is(:where(.group)[data-disabled=true] *){opacity:.5}.peer-disabled\:cursor-not-allowed:is(:where(.peer):disabled~*){cursor:not-allowed}.peer-disabled\:opacity-50:is(:where(.peer):disabled~*){opacity:.5}.selection\:bg-primary ::selection{background-color:var(--primary)}.selection\:bg-primary::selection{background-color:var(--primary)}.selection\:text-primary-foreground ::selection{color:var(--primary-foreground)}.selection\:text-primary-foreground::selection{color:var(--primary-foreground)}.file\:text-foreground::file-selector-button{color:var(--foreground)}.placeholder\:text-muted-foreground::placeholder{color:var(--muted-foreground)}.first\:pl-4:first-child{padding-left:calc(var(--spacing) * 4)}.last\:pr-4:last-child{padding-right:calc(var(--spacing) * 4)}@media(hover:hover){.hover\:bg-accent:hover{background-color:var(--accent)}.hover\:bg-destructive\/90:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab,var(--destructive) 90%,transparent)}}.hover\:bg-muted\/50:hover{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-muted\/50:hover{background-color:color-mix(in oklab,var(--muted) 50%,transparent)}}.hover\:bg-primary\/90:hover{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab,var(--primary) 90%,transparent)}}.hover\:bg-secondary\/80:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-secondary\/80:hover{background-color:color-mix(in oklab,var(--secondary) 80%,transparent)}}.hover\:bg-sidebar-accent:hover,.hover\:bg-sidebar-accent\/60:hover{background-color:var(--sidebar-accent)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-sidebar-accent\/60:hover{background-color:color-mix(in oklab,var(--sidebar-accent) 60%,transparent)}}.hover\:bg-transparent:hover{background-color:#0000}.hover\:text-accent-foreground:hover{color:var(--accent-foreground)}.hover\:text-destructive:hover{color:var(--destructive)}.hover\:text-foreground:hover{color:var(--foreground)}.hover\:text-sidebar-accent-foreground:hover{color:var(--sidebar-accent-foreground)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-ring:focus{--tw-ring-color:var(--ring)}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus\:outline-hidden:focus{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.focus\:outline-hidden:focus{outline-offset:2px;outline:2px solid #0000}}.focus-visible\:border-ring:focus-visible{border-color:var(--ring)}.focus-visible\:ring-\[3px\]:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab,red,red)){.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:color-mix(in oklab, var(--ring) 50%, transparent)}}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.has-\[\>svg\]\:px-2:has(>svg){padding-inline:calc(var(--spacing) * 2)}.has-\[\>svg\]\:px-2\.5:has(>svg){padding-inline:calc(var(--spacing) * 2.5)}.has-\[\>svg\]\:px-3:has(>svg){padding-inline:calc(var(--spacing) * 3)}.has-\[\>svg\]\:px-4:has(>svg){padding-inline:calc(var(--spacing) * 4)}.aria-invalid\:border-destructive[aria-invalid=true]{border-color:var(--destructive)}.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.data-\[error\=true\]\:text-destructive[data-error=true]{color:var(--destructive)}.data-\[state\=closed\]\:animate-out[data-state=closed]{animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.data-\[state\=open\]\:animate-in[data-state=open]{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:var(--accent)}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:var(--muted-foreground)}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity:0}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale:.95}.data-\[state\=selected\]\:bg-muted[data-state=selected]{background-color:var(--muted)}@media(min-width:40rem){.sm\:inline-flex{display:inline-flex}.sm\:max-w-md{max-width:var(--container-md)}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:justify-end{justify-content:flex-end}.sm\:whitespace-nowrap{white-space:nowrap}}@media(min-width:48rem){.md\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}}@media(min-width:80rem){.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}.dark\:block:is(.dark *){display:block}.dark\:hidden:is(.dark *){display:none}.dark\:border-input:is(.dark *){border-color:var(--input)}.dark\:bg-destructive\/20:is(.dark *){background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:bg-destructive\/20:is(.dark *){background-color:color-mix(in oklab,var(--destructive) 20%,transparent)}}.dark\:bg-input\/30:is(.dark *){background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:bg-input\/30:is(.dark *){background-color:color-mix(in oklab,var(--input) 30%,transparent)}}.dark\:bg-success\/15:is(.dark *){background-color:var(--success)}@supports (color:color-mix(in lab,red,red)){.dark\:bg-success\/15:is(.dark *){background-color:color-mix(in oklab,var(--success) 15%,transparent)}}.dark\:text-emerald-400:is(.dark *){color:var(--color-emerald-400)}.dark\:text-red-400:is(.dark *){color:var(--color-red-400)}.dark\:text-sky-400:is(.dark *){color:var(--color-sky-400)}.dark\:text-violet-400:is(.dark *){color:var(--color-violet-400)}@media(hover:hover){.dark\:hover\:bg-accent\/50:is(.dark *):hover{background-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-accent\/50:is(.dark *):hover{background-color:color-mix(in oklab,var(--accent) 50%,transparent)}}.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:color-mix(in oklab,var(--input) 50%,transparent)}}}.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:color-mix(in oklab, var(--destructive) 40%, transparent)}}.dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:color-mix(in oklab, var(--destructive) 40%, transparent)}}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*=size-]){width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\[\&_tr\]\:border-b tr{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-style:var(--tw-border-style);border-width:0}.\[\&\>svg\]\:pointer-events-none>svg{pointer-events:none}.\[\&\>svg\]\:size-3>svg{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}:root{--radius:.625rem;--background:oklch(98.5% 0 0);--foreground:oklch(14.1% .005 285.823);--card:oklch(100% 0 0);--card-foreground:oklch(14.1% .005 285.823);--popover:oklch(100% 0 0);--popover-foreground:oklch(14.1% .005 285.823);--primary:oklch(21% .006 285.885);--primary-foreground:oklch(98.5% 0 0);--secondary:oklch(96.7% .001 286.375);--secondary-foreground:oklch(21% .006 285.885);--muted:oklch(96.7% .001 286.375);--muted-foreground:oklch(55.2% .016 285.938);--accent:oklch(96.7% .001 286.375);--accent-foreground:oklch(21% .006 285.885);--destructive:oklch(57.7% .245 27.325);--success:oklch(62.7% .17 149.2);--warning:oklch(66.6% .179 58.318);--border:oklch(92% .004 286.32);--input:oklch(92% .004 286.32);--ring:oklch(70.5% .015 286.067);--chart-1:oklch(64.6% .222 41.116);--chart-2:oklch(60% .118 184.704);--chart-3:oklch(39.8% .07 227.392);--chart-4:oklch(82.8% .189 84.429);--chart-5:oklch(76.9% .188 70.08);--sidebar:oklch(100% 0 0);--sidebar-foreground:oklch(14.1% .005 285.823);--sidebar-primary:oklch(21% .006 285.885);--sidebar-primary-foreground:oklch(98.5% 0 0);--sidebar-accent:oklch(96.7% .001 286.375);--sidebar-accent-foreground:oklch(21% .006 285.885);--sidebar-border:oklch(92% .004 286.32);--sidebar-ring:oklch(70.5% .015 286.067)}.dark{--background:oklch(14.1% .005 285.823);--foreground:oklch(98.5% 0 0);--card:oklch(17.5% .006 285.885);--card-foreground:oklch(98.5% 0 0);--popover:oklch(21% .006 285.885);--popover-foreground:oklch(98.5% 0 0);--primary:oklch(92% .004 286.32);--primary-foreground:oklch(21% .006 285.885);--secondary:oklch(27.4% .006 286.033);--secondary-foreground:oklch(98.5% 0 0);--muted:oklch(24.4% .006 286.033);--muted-foreground:oklch(70.5% .015 286.067);--accent:oklch(27.4% .006 286.033);--accent-foreground:oklch(98.5% 0 0);--destructive:oklch(70.4% .191 22.216);--success:oklch(72.3% .192 149.579);--warning:oklch(82.8% .189 84.429);--border:oklch(100% 0 0/.1);--input:oklch(100% 0 0/.15);--ring:oklch(55.2% .016 285.938);--chart-1:oklch(48.8% .243 264.376);--chart-2:oklch(69.6% .17 162.48);--chart-3:oklch(76.9% .188 70.08);--chart-4:oklch(62.7% .265 303.9);--chart-5:oklch(64.5% .246 16.439);--sidebar:oklch(16.5% .006 285.885);--sidebar-foreground:oklch(98.5% 0 0);--sidebar-primary:oklch(48.8% .243 264.376);--sidebar-primary-foreground:oklch(98.5% 0 0);--sidebar-accent:oklch(27.4% .006 286.033);--sidebar-accent-foreground:oklch(98.5% 0 0);--sidebar-border:oklch(100% 0 0/.1);--sidebar-ring:oklch(55.2% .016 285.938)}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-pan-x{syntax:"*";inherits:false}@property --tw-pan-y{syntax:"*";inherits:false}@property --tw-pinch-zoom{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes ping{75%,to{opacity:0;transform:scale(2)}}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0));filter:blur(var(--tw-enter-blur,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0));filter:blur(var(--tw-exit-blur,0))}} diff --git a/ui/dist/assets/index-DSwR8iQs.js b/ui/dist/assets/index-DSwR8iQs.js new file mode 100644 index 0000000..9058359 --- /dev/null +++ b/ui/dist/assets/index-DSwR8iQs.js @@ -0,0 +1,112 @@ +function Bx(e,r){for(var a=0;as[l]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}(function(){const r=document.createElement("link").relList;if(r&&r.supports&&r.supports("modulepreload"))return;for(const l of document.querySelectorAll('link[rel="modulepreload"]'))s(l);new MutationObserver(l=>{for(const c of l)if(c.type==="childList")for(const f of c.addedNodes)f.tagName==="LINK"&&f.rel==="modulepreload"&&s(f)}).observe(document,{childList:!0,subtree:!0});function a(l){const c={};return l.integrity&&(c.integrity=l.integrity),l.referrerPolicy&&(c.referrerPolicy=l.referrerPolicy),l.crossOrigin==="use-credentials"?c.credentials="include":l.crossOrigin==="anonymous"?c.credentials="omit":c.credentials="same-origin",c}function s(l){if(l.ep)return;l.ep=!0;const c=a(l);fetch(l.href,c)}})();function _b(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Yf={exports:{}},Xs={};var zv;function qx(){if(zv)return Xs;zv=1;var e=Symbol.for("react.transitional.element"),r=Symbol.for("react.fragment");function a(s,l,c){var f=null;if(c!==void 0&&(f=""+c),l.key!==void 0&&(f=""+l.key),"key"in l){c={};for(var h in l)h!=="key"&&(c[h]=l[h])}else c=l;return l=c.ref,{$$typeof:e,type:s,key:f,ref:l!==void 0?l:null,props:c}}return Xs.Fragment=r,Xs.jsx=a,Xs.jsxs=a,Xs}var Mv;function $x(){return Mv||(Mv=1,Yf.exports=qx()),Yf.exports}var S=$x(),If={exports:{}},De={};var Nv;function Gx(){if(Nv)return De;Nv=1;var e=Symbol.for("react.transitional.element"),r=Symbol.for("react.portal"),a=Symbol.for("react.fragment"),s=Symbol.for("react.strict_mode"),l=Symbol.for("react.profiler"),c=Symbol.for("react.consumer"),f=Symbol.for("react.context"),h=Symbol.for("react.forward_ref"),p=Symbol.for("react.suspense"),m=Symbol.for("react.memo"),y=Symbol.for("react.lazy"),v=Symbol.for("react.activity"),_=Symbol.iterator;function E(R){return R===null||typeof R!="object"?null:(R=_&&R[_]||R["@@iterator"],typeof R=="function"?R:null)}var x={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,A={};function Z(R,I,se){this.props=R,this.context=I,this.refs=A,this.updater=se||x}Z.prototype.isReactComponent={},Z.prototype.setState=function(R,I){if(typeof R!="object"&&typeof R!="function"&&R!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,R,I,"setState")},Z.prototype.forceUpdate=function(R){this.updater.enqueueForceUpdate(this,R,"forceUpdate")};function k(){}k.prototype=Z.prototype;function P(R,I,se){this.props=R,this.context=I,this.refs=A,this.updater=se||x}var H=P.prototype=new k;H.constructor=P,C(H,Z.prototype),H.isPureReactComponent=!0;var G=Array.isArray;function te(){}var q={H:null,A:null,T:null,S:null},$=Object.prototype.hasOwnProperty;function de(R,I,se){var ne=se.ref;return{$$typeof:e,type:R,key:I,ref:ne!==void 0?ne:null,props:se}}function ze(R,I){return de(R.type,I,R.props)}function Ne(R){return typeof R=="object"&&R!==null&&R.$$typeof===e}function ie(R){var I={"=":"=0",":":"=2"};return"$"+R.replace(/[=:]/g,function(se){return I[se]})}var be=/\/+/g;function Ae(R,I){return typeof R=="object"&&R!==null&&R.key!=null?ie(""+R.key):I.toString(36)}function Te(R){switch(R.status){case"fulfilled":return R.value;case"rejected":throw R.reason;default:switch(typeof R.status=="string"?R.then(te,te):(R.status="pending",R.then(function(I){R.status==="pending"&&(R.status="fulfilled",R.value=I)},function(I){R.status==="pending"&&(R.status="rejected",R.reason=I)})),R.status){case"fulfilled":return R.value;case"rejected":throw R.reason}}throw R}function j(R,I,se,ne,le){var ue=typeof R;(ue==="undefined"||ue==="boolean")&&(R=null);var Oe=!1;if(R===null)Oe=!0;else switch(ue){case"bigint":case"string":case"number":Oe=!0;break;case"object":switch(R.$$typeof){case e:case r:Oe=!0;break;case y:return Oe=R._init,j(Oe(R._payload),I,se,ne,le)}}if(Oe)return le=le(R),Oe=ne===""?"."+Ae(R,0):ne,G(le)?(se="",Oe!=null&&(se=Oe.replace(be,"$&/")+"/"),j(le,I,se,"",function(kt){return kt})):le!=null&&(Ne(le)&&(le=ze(le,se+(le.key==null||R&&R.key===le.key?"":(""+le.key).replace(be,"$&/")+"/")+Oe)),I.push(le)),1;Oe=0;var $e=ne===""?".":ne+":";if(G(R))for(var me=0;me>>1,re=j[Ee];if(0>>1;Eel(se,he))nel(le,se)?(j[Ee]=le,j[ne]=he,Ee=ne):(j[Ee]=se,j[I]=he,Ee=I);else if(nel(le,he))j[Ee]=le,j[ne]=he,Ee=ne;else break e}}return ee}function l(j,ee){var he=j.sortIndex-ee.sortIndex;return he!==0?he:j.id-ee.id}if(e.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var c=performance;e.unstable_now=function(){return c.now()}}else{var f=Date,h=f.now();e.unstable_now=function(){return f.now()-h}}var p=[],m=[],y=1,v=null,_=3,E=!1,x=!1,C=!1,A=!1,Z=typeof setTimeout=="function"?setTimeout:null,k=typeof clearTimeout=="function"?clearTimeout:null,P=typeof setImmediate<"u"?setImmediate:null;function H(j){for(var ee=a(m);ee!==null;){if(ee.callback===null)s(m);else if(ee.startTime<=j)s(m),ee.sortIndex=ee.expirationTime,r(p,ee);else break;ee=a(m)}}function G(j){if(C=!1,H(j),!x)if(a(p)!==null)x=!0,te||(te=!0,ie());else{var ee=a(m);ee!==null&&Te(G,ee.startTime-j)}}var te=!1,q=-1,$=5,de=-1;function ze(){return A?!0:!(e.unstable_now()-de<$)}function Ne(){if(A=!1,te){var j=e.unstable_now();de=j;var ee=!0;try{e:{x=!1,C&&(C=!1,k(q),q=-1),E=!0;var he=_;try{t:{for(H(j),v=a(p);v!==null&&!(v.expirationTime>j&&ze());){var Ee=v.callback;if(typeof Ee=="function"){v.callback=null,_=v.priorityLevel;var re=Ee(v.expirationTime<=j);if(j=e.unstable_now(),typeof re=="function"){v.callback=re,H(j),ee=!0;break t}v===a(p)&&s(p),H(j)}else s(p);v=a(p)}if(v!==null)ee=!0;else{var R=a(m);R!==null&&Te(G,R.startTime-j),ee=!1}}break e}finally{v=null,_=he,E=!1}ee=void 0}}finally{ee?ie():te=!1}}}var ie;if(typeof P=="function")ie=function(){P(Ne)};else if(typeof MessageChannel<"u"){var be=new MessageChannel,Ae=be.port2;be.port1.onmessage=Ne,ie=function(){Ae.postMessage(null)}}else ie=function(){Z(Ne,0)};function Te(j,ee){q=Z(function(){j(e.unstable_now())},ee)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(j){j.callback=null},e.unstable_forceFrameRate=function(j){0>j||125Ee?(j.sortIndex=he,r(m,j),a(p)===null&&j===a(m)&&(C?(k(q),q=-1):C=!0,Te(G,he-Ee))):(j.sortIndex=re,r(p,j),x||E||(x=!0,te||(te=!0,ie()))),j},e.unstable_shouldYield=ze,e.unstable_wrapCallback=function(j){var ee=_;return function(){var he=_;_=ee;try{return j.apply(this,arguments)}finally{_=he}}}})(Xf)),Xf}var Fv;function Ix(){return Fv||(Fv=1,Pf.exports=Yx()),Pf.exports}var Kf={exports:{}},en={};var Uv;function Qx(){if(Uv)return en;Uv=1;var e=co();function r(p){var m="https://react.dev/errors/"+p;if(1"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(r){console.error(r)}}return e(),Kf.exports=Qx(),Kf.exports}var Lv;function Px(){if(Lv)return Ks;Lv=1;var e=Ix(),r=co(),a=Sb();function s(t){var n="https://react.dev/errors/"+t;if(1re||(t.current=Ee[re],Ee[re]=null,re--)}function se(t,n){re++,Ee[re]=t.current,t.current=n}var ne=R(null),le=R(null),ue=R(null),Oe=R(null);function $e(t,n){switch(se(ue,n),se(le,t),se(ne,null),n.nodeType){case 9:case 11:t=(t=n.documentElement)&&(t=t.namespaceURI)?ev(t):0;break;default:if(t=n.tagName,n=n.namespaceURI)n=ev(n),t=tv(n,t);else switch(t){case"svg":t=1;break;case"math":t=2;break;default:t=0}}I(ne),se(ne,t)}function me(){I(ne),I(le),I(ue)}function kt(t){t.memoizedState!==null&&se(Oe,t);var n=ne.current,i=tv(n,t.type);n!==i&&(se(le,t),se(ne,i))}function Jt(t){le.current===t&&(I(ne),I(le)),Oe.current===t&&(I(Oe),Ys._currentValue=he)}var Bt,nn;function bt(t){if(Bt===void 0)try{throw Error()}catch(i){var n=i.stack.trim().match(/\n( *(at )?)/);Bt=n&&n[1]||"",nn=-1)":-1u||O[o]!==U[u]){var Y=` +`+O[o].replace(" at new "," at ");return t.displayName&&Y.includes("")&&(Y=Y.replace("",t.displayName)),Y}while(1<=o&&0<=u);break}}}finally{xa=!1,Error.prepareStackTrace=i}return(i=t?t.displayName||t.name:"")?bt(i):""}function lr(t,n){switch(t.tag){case 26:case 27:case 5:return bt(t.type);case 16:return bt("Lazy");case 13:return t.child!==n&&n!==null?bt("Suspense Fallback"):bt("Suspense");case 19:return bt("SuspenseList");case 0:case 15:return or(t.type,!1);case 11:return or(t.type.render,!1);case 1:return or(t.type,!0);case 31:return bt("Activity");default:return""}}function ur(t){try{var n="",i=null;do n+=lr(t,i),i=t,t=t.return;while(t);return n}catch(o){return` +Error generating stack: `+o.message+` +`+o.stack}}var Wt=Object.prototype.hasOwnProperty,cr=e.unstable_scheduleCallback,fr=e.unstable_cancelCallback,Dt=e.unstable_shouldYield,wa=e.unstable_requestPaint,ht=e.unstable_now,ni=e.unstable_getCurrentPriorityLevel,Ea=e.unstable_ImmediatePriority,dr=e.unstable_UserBlockingPriority,hr=e.unstable_NormalPriority,ss=e.unstable_LowPriority,Ca=e.unstable_IdlePriority,$n=e.log,w=e.unstable_setDisableYieldValue,M=null,D=null;function W(t){if(typeof $n=="function"&&w(t),D&&typeof D.setStrictMode=="function")try{D.setStrictMode(M,t)}catch{}}var X=Math.clz32?Math.clz32:fe,ce=Math.log,ae=Math.LN2;function fe(t){return t>>>=0,t===0?32:31-(ce(t)/ae|0)|0}var ve=256,Se=262144,Xe=4194304;function mt(t){var n=t&42;if(n!==0)return n;switch(t&-t){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return t&261888;case 262144:case 524288:case 1048576:case 2097152:return t&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return t&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return t}}function qt(t,n,i){var o=t.pendingLanes;if(o===0)return 0;var u=0,d=t.suspendedLanes,g=t.pingedLanes;t=t.warmLanes;var b=o&134217727;return b!==0?(o=b&~d,o!==0?u=mt(o):(g&=b,g!==0?u=mt(g):i||(i=b&~t,i!==0&&(u=mt(i))))):(b=o&~d,b!==0?u=mt(b):g!==0?u=mt(g):i||(i=o&~t,i!==0&&(u=mt(i)))),u===0?0:n!==0&&n!==u&&(n&d)===0&&(d=u&-u,i=n&-n,d>=i||d===32&&(i&4194048)!==0)?n:u}function un(t,n){return(t.pendingLanes&~(t.suspendedLanes&~t.pingedLanes)&n)===0}function Re(t,n){switch(t){case 1:case 2:case 4:case 8:case 64:return n+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return n+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function tt(){var t=Xe;return Xe<<=1,(Xe&62914560)===0&&(Xe=4194304),t}function pt(t){for(var n=[],i=0;31>i;i++)n.push(t);return n}function ut(t,n){t.pendingLanes|=n,n!==268435456&&(t.suspendedLanes=0,t.pingedLanes=0,t.warmLanes=0)}function Oa(t,n,i,o,u,d){var g=t.pendingLanes;t.pendingLanes=i,t.suspendedLanes=0,t.pingedLanes=0,t.warmLanes=0,t.expiredLanes&=i,t.entangledLanes&=i,t.errorRecoveryDisabledLanes&=i,t.shellSuspendCounter=0;var b=t.entanglements,O=t.expirationTimes,U=t.hiddenUpdates;for(i=g&~i;0"u")return null;try{return t.activeElement||t.body}catch{return t.body}}var F1=/[\n"\\]/g;function Nn(t){return t.replace(F1,function(n){return"\\"+n.charCodeAt(0).toString(16)+" "})}function Lu(t,n,i,o,u,d,g,b){t.name="",g!=null&&typeof g!="function"&&typeof g!="symbol"&&typeof g!="boolean"?t.type=g:t.removeAttribute("type"),n!=null?g==="number"?(n===0&&t.value===""||t.value!=n)&&(t.value=""+Mn(n)):t.value!==""+Mn(n)&&(t.value=""+Mn(n)):g!=="submit"&&g!=="reset"||t.removeAttribute("value"),n!=null?Zu(t,g,Mn(n)):i!=null?Zu(t,g,Mn(i)):o!=null&&t.removeAttribute("value"),u==null&&d!=null&&(t.defaultChecked=!!d),u!=null&&(t.checked=u&&typeof u!="function"&&typeof u!="symbol"),b!=null&&typeof b!="function"&&typeof b!="symbol"&&typeof b!="boolean"?t.name=""+Mn(b):t.removeAttribute("name")}function Qh(t,n,i,o,u,d,g,b){if(d!=null&&typeof d!="function"&&typeof d!="symbol"&&typeof d!="boolean"&&(t.type=d),n!=null||i!=null){if(!(d!=="submit"&&d!=="reset"||n!=null)){Vu(t);return}i=i!=null?""+Mn(i):"",n=n!=null?""+Mn(n):i,b||n===t.value||(t.value=n),t.defaultValue=n}o=o??u,o=typeof o!="function"&&typeof o!="symbol"&&!!o,t.checked=b?t.checked:!!o,t.defaultChecked=!!o,g!=null&&typeof g!="function"&&typeof g!="symbol"&&typeof g!="boolean"&&(t.name=g),Vu(t)}function Zu(t,n,i){n==="number"&&xo(t.ownerDocument)===t||t.defaultValue===""+i||(t.defaultValue=""+i)}function ui(t,n,i,o){if(t=t.options,n){n={};for(var u=0;u"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Gu=!1;if(gr)try{var cs={};Object.defineProperty(cs,"passive",{get:function(){Gu=!0}}),window.addEventListener("test",cs,cs),window.removeEventListener("test",cs,cs)}catch{Gu=!1}var Hr=null,Yu=null,Eo=null;function tm(){if(Eo)return Eo;var t,n=Yu,i=n.length,o,u="value"in Hr?Hr.value:Hr.textContent,d=u.length;for(t=0;t=hs),om=" ",lm=!1;function um(t,n){switch(t){case"keyup":return cS.indexOf(n.keyCode)!==-1;case"keydown":return n.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function cm(t){return t=t.detail,typeof t=="object"&&"data"in t?t.data:null}var hi=!1;function dS(t,n){switch(t){case"compositionend":return cm(n);case"keypress":return n.which!==32?null:(lm=!0,om);case"textInput":return t=n.data,t===om&&lm?null:t;default:return null}}function hS(t,n){if(hi)return t==="compositionend"||!Ku&&um(t,n)?(t=tm(),Eo=Yu=Hr=null,hi=!1,t):null;switch(t){case"paste":return null;case"keypress":if(!(n.ctrlKey||n.altKey||n.metaKey)||n.ctrlKey&&n.altKey){if(n.char&&1=n)return{node:i,offset:n-t};t=o}e:{for(;i;){if(i.nextSibling){i=i.nextSibling;break e}i=i.parentNode}i=void 0}i=ym(i)}}function _m(t,n){return t&&n?t===n?!0:t&&t.nodeType===3?!1:n&&n.nodeType===3?_m(t,n.parentNode):"contains"in t?t.contains(n):t.compareDocumentPosition?!!(t.compareDocumentPosition(n)&16):!1:!1}function Sm(t){t=t!=null&&t.ownerDocument!=null&&t.ownerDocument.defaultView!=null?t.ownerDocument.defaultView:window;for(var n=xo(t.document);n instanceof t.HTMLIFrameElement;){try{var i=typeof n.contentWindow.location.href=="string"}catch{i=!1}if(i)t=n.contentWindow;else break;n=xo(t.document)}return n}function ec(t){var n=t&&t.nodeName&&t.nodeName.toLowerCase();return n&&(n==="input"&&(t.type==="text"||t.type==="search"||t.type==="tel"||t.type==="url"||t.type==="password")||n==="textarea"||t.contentEditable==="true")}var SS=gr&&"documentMode"in document&&11>=document.documentMode,mi=null,tc=null,vs=null,nc=!1;function xm(t,n,i){var o=i.window===i?i.document:i.nodeType===9?i:i.ownerDocument;nc||mi==null||mi!==xo(o)||(o=mi,"selectionStart"in o&&ec(o)?o={start:o.selectionStart,end:o.selectionEnd}:(o=(o.ownerDocument&&o.ownerDocument.defaultView||window).getSelection(),o={anchorNode:o.anchorNode,anchorOffset:o.anchorOffset,focusNode:o.focusNode,focusOffset:o.focusOffset}),vs&&gs(vs,o)||(vs=o,o=vl(tc,"onSelect"),0>=g,u-=g,Jn=1<<32-X(n)+u|i<je?(Le=_e,_e=null):Le=_e.sibling;var Be=V(N,_e,F[je],Q);if(Be===null){_e===null&&(_e=Le);break}t&&_e&&Be.alternate===null&&n(N,_e),T=d(Be,T,je),He===null?xe=Be:He.sibling=Be,He=Be,_e=Le}if(je===F.length)return i(N,_e),Ze&&yr(N,je),xe;if(_e===null){for(;jeje?(Le=_e,_e=null):Le=_e.sibling;var ua=V(N,_e,Be.value,Q);if(ua===null){_e===null&&(_e=Le);break}t&&_e&&ua.alternate===null&&n(N,_e),T=d(ua,T,je),He===null?xe=ua:He.sibling=ua,He=ua,_e=Le}if(Be.done)return i(N,_e),Ze&&yr(N,je),xe;if(_e===null){for(;!Be.done;je++,Be=F.next())Be=K(N,Be.value,Q),Be!==null&&(T=d(Be,T,je),He===null?xe=Be:He.sibling=Be,He=Be);return Ze&&yr(N,je),xe}for(_e=o(_e);!Be.done;je++,Be=F.next())Be=L(_e,N,je,Be.value,Q),Be!==null&&(t&&Be.alternate!==null&&_e.delete(Be.key===null?je:Be.key),T=d(Be,T,je),He===null?xe=Be:He.sibling=Be,He=Be);return t&&_e.forEach(function(Hx){return n(N,Hx)}),Ze&&yr(N,je),xe}function We(N,T,F,Q){if(typeof F=="object"&&F!==null&&F.type===C&&F.key===null&&(F=F.props.children),typeof F=="object"&&F!==null){switch(F.$$typeof){case E:e:{for(var xe=F.key;T!==null;){if(T.key===xe){if(xe=F.type,xe===C){if(T.tag===7){i(N,T.sibling),Q=u(T,F.props.children),Q.return=N,N=Q;break e}}else if(T.elementType===xe||typeof xe=="object"&&xe!==null&&xe.$$typeof===$&&Va(xe)===T.type){i(N,T.sibling),Q=u(T,F.props),ws(Q,F),Q.return=N,N=Q;break e}i(N,T);break}else n(N,T);T=T.sibling}F.type===C?(Q=Na(F.props.children,N.mode,Q,F.key),Q.return=N,N=Q):(Q=jo(F.type,F.key,F.props,null,N.mode,Q),ws(Q,F),Q.return=N,N=Q)}return g(N);case x:e:{for(xe=F.key;T!==null;){if(T.key===xe)if(T.tag===4&&T.stateNode.containerInfo===F.containerInfo&&T.stateNode.implementation===F.implementation){i(N,T.sibling),Q=u(T,F.children||[]),Q.return=N,N=Q;break e}else{i(N,T);break}else n(N,T);T=T.sibling}Q=uc(F,N.mode,Q),Q.return=N,N=Q}return g(N);case $:return F=Va(F),We(N,T,F,Q)}if(Te(F))return ye(N,T,F,Q);if(ie(F)){if(xe=ie(F),typeof xe!="function")throw Error(s(150));return F=xe.call(F),Ce(N,T,F,Q)}if(typeof F.then=="function")return We(N,T,Ho(F),Q);if(F.$$typeof===P)return We(N,T,Uo(N,F),Q);Bo(N,F)}return typeof F=="string"&&F!==""||typeof F=="number"||typeof F=="bigint"?(F=""+F,T!==null&&T.tag===6?(i(N,T.sibling),Q=u(T,F),Q.return=N,N=Q):(i(N,T),Q=lc(F,N.mode,Q),Q.return=N,N=Q),g(N)):i(N,T)}return function(N,T,F,Q){try{xs=0;var xe=We(N,T,F,Q);return Ci=null,xe}catch(_e){if(_e===Ei||_e===Lo)throw _e;var He=wn(29,_e,null,N.mode);return He.lanes=Q,He.return=N,He}}}var Za=Gm(!0),Ym=Gm(!1),Yr=!1;function Sc(t){t.updateQueue={baseState:t.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function xc(t,n){t=t.updateQueue,n.updateQueue===t&&(n.updateQueue={baseState:t.baseState,firstBaseUpdate:t.firstBaseUpdate,lastBaseUpdate:t.lastBaseUpdate,shared:t.shared,callbacks:null})}function Ir(t){return{lane:t,tag:0,payload:null,callback:null,next:null}}function Qr(t,n,i){var o=t.updateQueue;if(o===null)return null;if(o=o.shared,(qe&2)!==0){var u=o.pending;return u===null?n.next=n:(n.next=u.next,u.next=n),o.pending=n,n=No(t),Tm(t,null,i),n}return Mo(t,o,n,i),No(t)}function Es(t,n,i){if(n=n.updateQueue,n!==null&&(n=n.shared,(i&4194048)!==0)){var o=n.lanes;o&=t.pendingLanes,i|=o,n.lanes=i,rn(t,i)}}function wc(t,n){var i=t.updateQueue,o=t.alternate;if(o!==null&&(o=o.updateQueue,i===o)){var u=null,d=null;if(i=i.firstBaseUpdate,i!==null){do{var g={lane:i.lane,tag:i.tag,payload:i.payload,callback:null,next:null};d===null?u=d=g:d=d.next=g,i=i.next}while(i!==null);d===null?u=d=n:d=d.next=n}else u=d=n;i={baseState:o.baseState,firstBaseUpdate:u,lastBaseUpdate:d,shared:o.shared,callbacks:o.callbacks},t.updateQueue=i;return}t=i.lastBaseUpdate,t===null?i.firstBaseUpdate=n:t.next=n,i.lastBaseUpdate=n}var Ec=!1;function Cs(){if(Ec){var t=wi;if(t!==null)throw t}}function Os(t,n,i,o){Ec=!1;var u=t.updateQueue;Yr=!1;var d=u.firstBaseUpdate,g=u.lastBaseUpdate,b=u.shared.pending;if(b!==null){u.shared.pending=null;var O=b,U=O.next;O.next=null,g===null?d=U:g.next=U,g=O;var Y=t.alternate;Y!==null&&(Y=Y.updateQueue,b=Y.lastBaseUpdate,b!==g&&(b===null?Y.firstBaseUpdate=U:b.next=U,Y.lastBaseUpdate=O))}if(d!==null){var K=u.baseState;g=0,Y=U=O=null,b=d;do{var V=b.lane&-536870913,L=V!==b.lane;if(L?(Ve&V)===V:(o&V)===V){V!==0&&V===xi&&(Ec=!0),Y!==null&&(Y=Y.next={lane:0,tag:b.tag,payload:b.payload,callback:null,next:null});e:{var ye=t,Ce=b;V=n;var We=i;switch(Ce.tag){case 1:if(ye=Ce.payload,typeof ye=="function"){K=ye.call(We,K,V);break e}K=ye;break e;case 3:ye.flags=ye.flags&-65537|128;case 0:if(ye=Ce.payload,V=typeof ye=="function"?ye.call(We,K,V):ye,V==null)break e;K=v({},K,V);break e;case 2:Yr=!0}}V=b.callback,V!==null&&(t.flags|=64,L&&(t.flags|=8192),L=u.callbacks,L===null?u.callbacks=[V]:L.push(V))}else L={lane:V,tag:b.tag,payload:b.payload,callback:b.callback,next:null},Y===null?(U=Y=L,O=K):Y=Y.next=L,g|=V;if(b=b.next,b===null){if(b=u.shared.pending,b===null)break;L=b,b=L.next,L.next=null,u.lastBaseUpdate=L,u.shared.pending=null}}while(!0);Y===null&&(O=K),u.baseState=O,u.firstBaseUpdate=U,u.lastBaseUpdate=Y,d===null&&(u.shared.lanes=0),Wr|=g,t.lanes=g,t.memoizedState=K}}function Im(t,n){if(typeof t!="function")throw Error(s(191,t));t.call(n)}function Qm(t,n){var i=t.callbacks;if(i!==null)for(t.callbacks=null,t=0;td?d:8;var g=j.T,b={};j.T=b,qc(t,!1,n,i);try{var O=u(),U=j.S;if(U!==null&&U(b,O),O!==null&&typeof O=="object"&&typeof O.then=="function"){var Y=DS(O,o);Ts(t,n,Y,Rn(t))}else Ts(t,n,o,Rn(t))}catch(K){Ts(t,n,{then:function(){},status:"rejected",reason:K},Rn())}finally{ee.p=d,g!==null&&b.types!==null&&(g.types=b.types),j.T=g}}function FS(){}function Hc(t,n,i,o){if(t.tag!==5)throw Error(s(476));var u=Op(t).queue;Cp(t,u,n,he,i===null?FS:function(){return Ap(t),i(o)})}function Op(t){var n=t.memoizedState;if(n!==null)return n;n={memoizedState:he,baseState:he,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:xr,lastRenderedState:he},next:null};var i={};return n.next={memoizedState:i,baseState:i,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:xr,lastRenderedState:i},next:null},t.memoizedState=n,t=t.alternate,t!==null&&(t.memoizedState=n),n}function Ap(t){var n=Op(t);n.next===null&&(n=t.alternate.memoizedState),Ts(t,n.next.queue,{},Rn())}function Bc(){return Yt(Ys)}function Rp(){return St().memoizedState}function Tp(){return St().memoizedState}function US(t){for(var n=t.return;n!==null;){switch(n.tag){case 24:case 3:var i=Rn();t=Ir(i);var o=Qr(n,t,i);o!==null&&(vn(o,n,i),Es(o,n,i)),n={cache:vc()},t.payload=n;return}n=n.return}}function VS(t,n,i){var o=Rn();i={lane:o,revertLane:0,gesture:null,action:i,hasEagerState:!1,eagerState:null,next:null},Jo(t)?zp(n,i):(i=sc(t,n,i,o),i!==null&&(vn(i,t,o),Mp(i,n,o)))}function Dp(t,n,i){var o=Rn();Ts(t,n,i,o)}function Ts(t,n,i,o){var u={lane:o,revertLane:0,gesture:null,action:i,hasEagerState:!1,eagerState:null,next:null};if(Jo(t))zp(n,u);else{var d=t.alternate;if(t.lanes===0&&(d===null||d.lanes===0)&&(d=n.lastRenderedReducer,d!==null))try{var g=n.lastRenderedState,b=d(g,i);if(u.hasEagerState=!0,u.eagerState=b,xn(b,g))return Mo(t,n,u,0),nt===null&&zo(),!1}catch{}if(i=sc(t,n,u,o),i!==null)return vn(i,t,o),Mp(i,n,o),!0}return!1}function qc(t,n,i,o){if(o={lane:2,revertLane:xf(),gesture:null,action:o,hasEagerState:!1,eagerState:null,next:null},Jo(t)){if(n)throw Error(s(479))}else n=sc(t,i,o,2),n!==null&&vn(n,t,2)}function Jo(t){var n=t.alternate;return t===Me||n!==null&&n===Me}function zp(t,n){Ai=Go=!0;var i=t.pending;i===null?n.next=n:(n.next=i.next,i.next=n),t.pending=n}function Mp(t,n,i){if((i&4194048)!==0){var o=n.lanes;o&=t.pendingLanes,i|=o,n.lanes=i,rn(t,i)}}var Ds={readContext:Yt,use:Qo,useCallback:gt,useContext:gt,useEffect:gt,useImperativeHandle:gt,useLayoutEffect:gt,useInsertionEffect:gt,useMemo:gt,useReducer:gt,useRef:gt,useState:gt,useDebugValue:gt,useDeferredValue:gt,useTransition:gt,useSyncExternalStore:gt,useId:gt,useHostTransitionStatus:gt,useFormState:gt,useActionState:gt,useOptimistic:gt,useMemoCache:gt,useCacheRefresh:gt};Ds.useEffectEvent=gt;var Np={readContext:Yt,use:Qo,useCallback:function(t,n){return an().memoizedState=[t,n===void 0?null:n],t},useContext:Yt,useEffect:gp,useImperativeHandle:function(t,n,i){i=i!=null?i.concat([t]):null,Xo(4194308,4,_p.bind(null,n,t),i)},useLayoutEffect:function(t,n){return Xo(4194308,4,t,n)},useInsertionEffect:function(t,n){Xo(4,2,t,n)},useMemo:function(t,n){var i=an();n=n===void 0?null:n;var o=t();if(Ha){W(!0);try{t()}finally{W(!1)}}return i.memoizedState=[o,n],o},useReducer:function(t,n,i){var o=an();if(i!==void 0){var u=i(n);if(Ha){W(!0);try{i(n)}finally{W(!1)}}}else u=n;return o.memoizedState=o.baseState=u,t={pending:null,lanes:0,dispatch:null,lastRenderedReducer:t,lastRenderedState:u},o.queue=t,t=t.dispatch=VS.bind(null,Me,t),[o.memoizedState,t]},useRef:function(t){var n=an();return t={current:t},n.memoizedState=t},useState:function(t){t=Fc(t);var n=t.queue,i=Dp.bind(null,Me,n);return n.dispatch=i,[t.memoizedState,i]},useDebugValue:Lc,useDeferredValue:function(t,n){var i=an();return Zc(i,t,n)},useTransition:function(){var t=Fc(!1);return t=Cp.bind(null,Me,t.queue,!0,!1),an().memoizedState=t,[!1,t]},useSyncExternalStore:function(t,n,i){var o=Me,u=an();if(Ze){if(i===void 0)throw Error(s(407));i=i()}else{if(i=n(),nt===null)throw Error(s(349));(Ve&127)!==0||ep(o,n,i)}u.memoizedState=i;var d={value:i,getSnapshot:n};return u.queue=d,gp(np.bind(null,o,d,t),[t]),o.flags|=2048,Ti(9,{destroy:void 0},tp.bind(null,o,d,i,n),null),i},useId:function(){var t=an(),n=nt.identifierPrefix;if(Ze){var i=Wn,o=Jn;i=(o&~(1<<32-X(o)-1)).toString(32)+i,n="_"+n+"R_"+i,i=Yo++,0<\/script>",d=d.removeChild(d.firstChild);break;case"select":d=typeof o.is=="string"?g.createElement("select",{is:o.is}):g.createElement("select"),o.multiple?d.multiple=!0:o.size&&(d.size=o.size);break;default:d=typeof o.is=="string"?g.createElement(u,{is:o.is}):g.createElement(u)}}d[$t]=n,d[fn]=o;e:for(g=n.child;g!==null;){if(g.tag===5||g.tag===6)d.appendChild(g.stateNode);else if(g.tag!==4&&g.tag!==27&&g.child!==null){g.child.return=g,g=g.child;continue}if(g===n)break e;for(;g.sibling===null;){if(g.return===null||g.return===n)break e;g=g.return}g.sibling.return=g.return,g=g.sibling}n.stateNode=d;e:switch(Qt(d,u,o),u){case"button":case"input":case"select":case"textarea":o=!!o.autoFocus;break e;case"img":o=!0;break e;default:o=!1}o&&Er(n)}}return at(n),rf(n,n.type,t===null?null:t.memoizedProps,n.pendingProps,i),null;case 6:if(t&&n.stateNode!=null)t.memoizedProps!==o&&Er(n);else{if(typeof o!="string"&&n.stateNode===null)throw Error(s(166));if(t=ue.current,_i(n)){if(t=n.stateNode,i=n.memoizedProps,o=null,u=Gt,u!==null)switch(u.tag){case 27:case 5:o=u.memoizedProps}t[$t]=n,t=!!(t.nodeValue===i||o!==null&&o.suppressHydrationWarning===!0||Jg(t.nodeValue,i)),t||$r(n,!0)}else t=yl(t).createTextNode(o),t[$t]=n,n.stateNode=t}return at(n),null;case 31:if(i=n.memoizedState,t===null||t.memoizedState!==null){if(o=_i(n),i!==null){if(t===null){if(!o)throw Error(s(318));if(t=n.memoizedState,t=t!==null?t.dehydrated:null,!t)throw Error(s(557));t[$t]=n}else ja(),(n.flags&128)===0&&(n.memoizedState=null),n.flags|=4;at(n),t=!1}else i=hc(),t!==null&&t.memoizedState!==null&&(t.memoizedState.hydrationErrors=i),t=!0;if(!t)return n.flags&256?(Cn(n),n):(Cn(n),null);if((n.flags&128)!==0)throw Error(s(558))}return at(n),null;case 13:if(o=n.memoizedState,t===null||t.memoizedState!==null&&t.memoizedState.dehydrated!==null){if(u=_i(n),o!==null&&o.dehydrated!==null){if(t===null){if(!u)throw Error(s(318));if(u=n.memoizedState,u=u!==null?u.dehydrated:null,!u)throw Error(s(317));u[$t]=n}else ja(),(n.flags&128)===0&&(n.memoizedState=null),n.flags|=4;at(n),u=!1}else u=hc(),t!==null&&t.memoizedState!==null&&(t.memoizedState.hydrationErrors=u),u=!0;if(!u)return n.flags&256?(Cn(n),n):(Cn(n),null)}return Cn(n),(n.flags&128)!==0?(n.lanes=i,n):(i=o!==null,t=t!==null&&t.memoizedState!==null,i&&(o=n.child,u=null,o.alternate!==null&&o.alternate.memoizedState!==null&&o.alternate.memoizedState.cachePool!==null&&(u=o.alternate.memoizedState.cachePool.pool),d=null,o.memoizedState!==null&&o.memoizedState.cachePool!==null&&(d=o.memoizedState.cachePool.pool),d!==u&&(o.flags|=2048)),i!==t&&i&&(n.child.flags|=8192),rl(n,n.updateQueue),at(n),null);case 4:return me(),t===null&&Of(n.stateNode.containerInfo),at(n),null;case 10:return _r(n.type),at(n),null;case 19:if(I(_t),o=n.memoizedState,o===null)return at(n),null;if(u=(n.flags&128)!==0,d=o.rendering,d===null)if(u)Ms(o,!1);else{if(vt!==0||t!==null&&(t.flags&128)!==0)for(t=n.child;t!==null;){if(d=$o(t),d!==null){for(n.flags|=128,Ms(o,!1),t=d.updateQueue,n.updateQueue=t,rl(n,t),n.subtreeFlags=0,t=i,i=n.child;i!==null;)Dm(i,t),i=i.sibling;return se(_t,_t.current&1|2),Ze&&yr(n,o.treeForkCount),n.child}t=t.sibling}o.tail!==null&&ht()>ll&&(n.flags|=128,u=!0,Ms(o,!1),n.lanes=4194304)}else{if(!u)if(t=$o(d),t!==null){if(n.flags|=128,u=!0,t=t.updateQueue,n.updateQueue=t,rl(n,t),Ms(o,!0),o.tail===null&&o.tailMode==="hidden"&&!d.alternate&&!Ze)return at(n),null}else 2*ht()-o.renderingStartTime>ll&&i!==536870912&&(n.flags|=128,u=!0,Ms(o,!1),n.lanes=4194304);o.isBackwards?(d.sibling=n.child,n.child=d):(t=o.last,t!==null?t.sibling=d:n.child=d,o.last=d)}return o.tail!==null?(t=o.tail,o.rendering=t,o.tail=t.sibling,o.renderingStartTime=ht(),t.sibling=null,i=_t.current,se(_t,u?i&1|2:i&1),Ze&&yr(n,o.treeForkCount),t):(at(n),null);case 22:case 23:return Cn(n),Oc(),o=n.memoizedState!==null,t!==null?t.memoizedState!==null!==o&&(n.flags|=8192):o&&(n.flags|=8192),o?(i&536870912)!==0&&(n.flags&128)===0&&(at(n),n.subtreeFlags&6&&(n.flags|=8192)):at(n),i=n.updateQueue,i!==null&&rl(n,i.retryQueue),i=null,t!==null&&t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(i=t.memoizedState.cachePool.pool),o=null,n.memoizedState!==null&&n.memoizedState.cachePool!==null&&(o=n.memoizedState.cachePool.pool),o!==i&&(n.flags|=2048),t!==null&&I(Ua),null;case 24:return i=null,t!==null&&(i=t.memoizedState.cache),n.memoizedState.cache!==i&&(n.flags|=2048),_r(Ot),at(n),null;case 25:return null;case 30:return null}throw Error(s(156,n.tag))}function qS(t,n){switch(fc(n),n.tag){case 1:return t=n.flags,t&65536?(n.flags=t&-65537|128,n):null;case 3:return _r(Ot),me(),t=n.flags,(t&65536)!==0&&(t&128)===0?(n.flags=t&-65537|128,n):null;case 26:case 27:case 5:return Jt(n),null;case 31:if(n.memoizedState!==null){if(Cn(n),n.alternate===null)throw Error(s(340));ja()}return t=n.flags,t&65536?(n.flags=t&-65537|128,n):null;case 13:if(Cn(n),t=n.memoizedState,t!==null&&t.dehydrated!==null){if(n.alternate===null)throw Error(s(340));ja()}return t=n.flags,t&65536?(n.flags=t&-65537|128,n):null;case 19:return I(_t),null;case 4:return me(),null;case 10:return _r(n.type),null;case 22:case 23:return Cn(n),Oc(),t!==null&&I(Ua),t=n.flags,t&65536?(n.flags=t&-65537|128,n):null;case 24:return _r(Ot),null;case 25:return null;default:return null}}function rg(t,n){switch(fc(n),n.tag){case 3:_r(Ot),me();break;case 26:case 27:case 5:Jt(n);break;case 4:me();break;case 31:n.memoizedState!==null&&Cn(n);break;case 13:Cn(n);break;case 19:I(_t);break;case 10:_r(n.type);break;case 22:case 23:Cn(n),Oc(),t!==null&&I(Ua);break;case 24:_r(Ot)}}function Ns(t,n){try{var i=n.updateQueue,o=i!==null?i.lastEffect:null;if(o!==null){var u=o.next;i=u;do{if((i.tag&t)===t){o=void 0;var d=i.create,g=i.inst;o=d(),g.destroy=o}i=i.next}while(i!==u)}}catch(b){Qe(n,n.return,b)}}function Kr(t,n,i){try{var o=n.updateQueue,u=o!==null?o.lastEffect:null;if(u!==null){var d=u.next;o=d;do{if((o.tag&t)===t){var g=o.inst,b=g.destroy;if(b!==void 0){g.destroy=void 0,u=n;var O=i,U=b;try{U()}catch(Y){Qe(u,O,Y)}}}o=o.next}while(o!==d)}}catch(Y){Qe(n,n.return,Y)}}function ag(t){var n=t.updateQueue;if(n!==null){var i=t.stateNode;try{Qm(n,i)}catch(o){Qe(t,t.return,o)}}}function ig(t,n,i){i.props=Ba(t.type,t.memoizedProps),i.state=t.memoizedState;try{i.componentWillUnmount()}catch(o){Qe(t,n,o)}}function js(t,n){try{var i=t.ref;if(i!==null){switch(t.tag){case 26:case 27:case 5:var o=t.stateNode;break;case 30:o=t.stateNode;break;default:o=t.stateNode}typeof i=="function"?t.refCleanup=i(o):i.current=o}}catch(u){Qe(t,n,u)}}function er(t,n){var i=t.ref,o=t.refCleanup;if(i!==null)if(typeof o=="function")try{o()}catch(u){Qe(t,n,u)}finally{t.refCleanup=null,t=t.alternate,t!=null&&(t.refCleanup=null)}else if(typeof i=="function")try{i(null)}catch(u){Qe(t,n,u)}else i.current=null}function sg(t){var n=t.type,i=t.memoizedProps,o=t.stateNode;try{e:switch(n){case"button":case"input":case"select":case"textarea":i.autoFocus&&o.focus();break e;case"img":i.src?o.src=i.src:i.srcSet&&(o.srcset=i.srcSet)}}catch(u){Qe(t,t.return,u)}}function af(t,n,i){try{var o=t.stateNode;fx(o,t.type,i,n),o[fn]=n}catch(u){Qe(t,t.return,u)}}function og(t){return t.tag===5||t.tag===3||t.tag===26||t.tag===27&&aa(t.type)||t.tag===4}function sf(t){e:for(;;){for(;t.sibling===null;){if(t.return===null||og(t.return))return null;t=t.return}for(t.sibling.return=t.return,t=t.sibling;t.tag!==5&&t.tag!==6&&t.tag!==18;){if(t.tag===27&&aa(t.type)||t.flags&2||t.child===null||t.tag===4)continue e;t.child.return=t,t=t.child}if(!(t.flags&2))return t.stateNode}}function of(t,n,i){var o=t.tag;if(o===5||o===6)t=t.stateNode,n?(i.nodeType===9?i.body:i.nodeName==="HTML"?i.ownerDocument.body:i).insertBefore(t,n):(n=i.nodeType===9?i.body:i.nodeName==="HTML"?i.ownerDocument.body:i,n.appendChild(t),i=i._reactRootContainer,i!=null||n.onclick!==null||(n.onclick=pr));else if(o!==4&&(o===27&&aa(t.type)&&(i=t.stateNode,n=null),t=t.child,t!==null))for(of(t,n,i),t=t.sibling;t!==null;)of(t,n,i),t=t.sibling}function al(t,n,i){var o=t.tag;if(o===5||o===6)t=t.stateNode,n?i.insertBefore(t,n):i.appendChild(t);else if(o!==4&&(o===27&&aa(t.type)&&(i=t.stateNode),t=t.child,t!==null))for(al(t,n,i),t=t.sibling;t!==null;)al(t,n,i),t=t.sibling}function lg(t){var n=t.stateNode,i=t.memoizedProps;try{for(var o=t.type,u=n.attributes;u.length;)n.removeAttributeNode(u[0]);Qt(n,o,i),n[$t]=t,n[fn]=i}catch(d){Qe(t,t.return,d)}}var Cr=!1,Tt=!1,lf=!1,ug=typeof WeakSet=="function"?WeakSet:Set,Ut=null;function $S(t,n){if(t=t.containerInfo,Tf=Cl,t=Sm(t),ec(t)){if("selectionStart"in t)var i={start:t.selectionStart,end:t.selectionEnd};else e:{i=(i=t.ownerDocument)&&i.defaultView||window;var o=i.getSelection&&i.getSelection();if(o&&o.rangeCount!==0){i=o.anchorNode;var u=o.anchorOffset,d=o.focusNode;o=o.focusOffset;try{i.nodeType,d.nodeType}catch{i=null;break e}var g=0,b=-1,O=-1,U=0,Y=0,K=t,V=null;t:for(;;){for(var L;K!==i||u!==0&&K.nodeType!==3||(b=g+u),K!==d||o!==0&&K.nodeType!==3||(O=g+o),K.nodeType===3&&(g+=K.nodeValue.length),(L=K.firstChild)!==null;)V=K,K=L;for(;;){if(K===t)break t;if(V===i&&++U===u&&(b=g),V===d&&++Y===o&&(O=g),(L=K.nextSibling)!==null)break;K=V,V=K.parentNode}K=L}i=b===-1||O===-1?null:{start:b,end:O}}else i=null}i=i||{start:0,end:0}}else i=null;for(Df={focusedElem:t,selectionRange:i},Cl=!1,Ut=n;Ut!==null;)if(n=Ut,t=n.child,(n.subtreeFlags&1028)!==0&&t!==null)t.return=n,Ut=t;else for(;Ut!==null;){switch(n=Ut,d=n.alternate,t=n.flags,n.tag){case 0:if((t&4)!==0&&(t=n.updateQueue,t=t!==null?t.events:null,t!==null))for(i=0;i title"))),Qt(d,o,i),d[$t]=t,Ft(d),o=d;break e;case"link":var g=pv("link","href",u).get(o+(i.href||""));if(g){for(var b=0;bWe&&(g=We,We=Ce,Ce=g);var N=bm(b,Ce),T=bm(b,We);if(N&&T&&(L.rangeCount!==1||L.anchorNode!==N.node||L.anchorOffset!==N.offset||L.focusNode!==T.node||L.focusOffset!==T.offset)){var F=K.createRange();F.setStart(N.node,N.offset),L.removeAllRanges(),Ce>We?(L.addRange(F),L.extend(T.node,T.offset)):(F.setEnd(T.node,T.offset),L.addRange(F))}}}}for(K=[],L=b;L=L.parentNode;)L.nodeType===1&&K.push({element:L,left:L.scrollLeft,top:L.scrollTop});for(typeof b.focus=="function"&&b.focus(),b=0;bi?32:i,j.T=null,i=pf,pf=null;var d=ta,g=Dr;if(zt=0,ji=ta=null,Dr=0,(qe&6)!==0)throw Error(s(331));var b=qe;if(qe|=4,_g(d.current),vg(d,d.current,g,i),qe=b,Zs(0,!1),D&&typeof D.onPostCommitFiberRoot=="function")try{D.onPostCommitFiberRoot(M,d)}catch{}return!0}finally{ee.p=u,j.T=o,Vg(t,n)}}function Zg(t,n,i){n=kn(i,n),n=Ic(t.stateNode,n,2),t=Qr(t,n,2),t!==null&&(ut(t,2),tr(t))}function Qe(t,n,i){if(t.tag===3)Zg(t,t,i);else for(;n!==null;){if(n.tag===3){Zg(n,t,i);break}else if(n.tag===1){var o=n.stateNode;if(typeof n.type.getDerivedStateFromError=="function"||typeof o.componentDidCatch=="function"&&(ea===null||!ea.has(o))){t=kn(i,t),i=Hp(2),o=Qr(n,i,2),o!==null&&(Bp(i,o,n,t),ut(o,2),tr(o));break}}n=n.return}}function bf(t,n,i){var o=t.pingCache;if(o===null){o=t.pingCache=new IS;var u=new Set;o.set(n,u)}else u=o.get(n),u===void 0&&(u=new Set,o.set(n,u));u.has(i)||(ff=!0,u.add(i),t=JS.bind(null,t,n,i),n.then(t,t))}function JS(t,n,i){var o=t.pingCache;o!==null&&o.delete(n),t.pingedLanes|=t.suspendedLanes&i,t.warmLanes&=~i,nt===t&&(Ve&i)===i&&(vt===4||vt===3&&(Ve&62914560)===Ve&&300>ht()-ol?(qe&2)===0&&ki(t,0):df|=i,Ni===Ve&&(Ni=0)),tr(t)}function Hg(t,n){n===0&&(n=tt()),t=Ma(t,n),t!==null&&(ut(t,n),tr(t))}function WS(t){var n=t.memoizedState,i=0;n!==null&&(i=n.retryLane),Hg(t,i)}function ex(t,n){var i=0;switch(t.tag){case 31:case 13:var o=t.stateNode,u=t.memoizedState;u!==null&&(i=u.retryLane);break;case 19:o=t.stateNode;break;case 22:o=t.stateNode._retryCache;break;default:throw Error(s(314))}o!==null&&o.delete(n),Hg(t,i)}function tx(t,n){return cr(t,n)}var ml=null,Ui=null,_f=!1,pl=!1,Sf=!1,ra=0;function tr(t){t!==Ui&&t.next===null&&(Ui===null?ml=Ui=t:Ui=Ui.next=t),pl=!0,_f||(_f=!0,rx())}function Zs(t,n){if(!Sf&&pl){Sf=!0;do for(var i=!1,o=ml;o!==null;){if(t!==0){var u=o.pendingLanes;if(u===0)var d=0;else{var g=o.suspendedLanes,b=o.pingedLanes;d=(1<<31-X(42|t)+1)-1,d&=u&~(g&~b),d=d&201326741?d&201326741|1:d?d|2:0}d!==0&&(i=!0,Gg(o,d))}else d=Ve,d=qt(o,o===nt?d:0,o.cancelPendingCommit!==null||o.timeoutHandle!==-1),(d&3)===0||un(o,d)||(i=!0,Gg(o,d));o=o.next}while(i);Sf=!1}}function nx(){Bg()}function Bg(){pl=_f=!1;var t=0;ra!==0&&hx()&&(t=ra);for(var n=ht(),i=null,o=ml;o!==null;){var u=o.next,d=qg(o,n);d===0?(o.next=null,i===null?ml=u:i.next=u,u===null&&(Ui=i)):(i=o,(t!==0||(d&3)!==0)&&(pl=!0)),o=u}zt!==0&&zt!==5||Zs(t),ra!==0&&(ra=0)}function qg(t,n){for(var i=t.suspendedLanes,o=t.pingedLanes,u=t.expirationTimes,d=t.pendingLanes&-62914561;0b)break;var Y=O.transferSize,K=O.initiatorType;Y&&Wg(K)&&(O=O.responseEnd,g+=Y*(O"u"?null:document;function fv(t,n,i){var o=Vi;if(o&&typeof n=="string"&&n){var u=Nn(n);u='link[rel="'+t+'"][href="'+u+'"]',typeof i=="string"&&(u+='[crossorigin="'+i+'"]'),cv.has(u)||(cv.add(u),t={rel:t,crossOrigin:i,href:n},o.querySelector(u)===null&&(n=o.createElement("link"),Qt(n,"link",t),Ft(n),o.head.appendChild(n)))}}function xx(t){zr.D(t),fv("dns-prefetch",t,null)}function wx(t,n){zr.C(t,n),fv("preconnect",t,n)}function Ex(t,n,i){zr.L(t,n,i);var o=Vi;if(o&&t&&n){var u='link[rel="preload"][as="'+Nn(n)+'"]';n==="image"&&i&&i.imageSrcSet?(u+='[imagesrcset="'+Nn(i.imageSrcSet)+'"]',typeof i.imageSizes=="string"&&(u+='[imagesizes="'+Nn(i.imageSizes)+'"]')):u+='[href="'+Nn(t)+'"]';var d=u;switch(n){case"style":d=Li(t);break;case"script":d=Zi(t)}Hn.has(d)||(t=v({rel:"preload",href:n==="image"&&i&&i.imageSrcSet?void 0:t,as:n},i),Hn.set(d,t),o.querySelector(u)!==null||n==="style"&&o.querySelector($s(d))||n==="script"&&o.querySelector(Gs(d))||(n=o.createElement("link"),Qt(n,"link",t),Ft(n),o.head.appendChild(n)))}}function Cx(t,n){zr.m(t,n);var i=Vi;if(i&&t){var o=n&&typeof n.as=="string"?n.as:"script",u='link[rel="modulepreload"][as="'+Nn(o)+'"][href="'+Nn(t)+'"]',d=u;switch(o){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":d=Zi(t)}if(!Hn.has(d)&&(t=v({rel:"modulepreload",href:t},n),Hn.set(d,t),i.querySelector(u)===null)){switch(o){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(i.querySelector(Gs(d)))return}o=i.createElement("link"),Qt(o,"link",t),Ft(o),i.head.appendChild(o)}}}function Ox(t,n,i){zr.S(t,n,i);var o=Vi;if(o&&t){var u=oi(o).hoistableStyles,d=Li(t);n=n||"default";var g=u.get(d);if(!g){var b={loading:0,preload:null};if(g=o.querySelector($s(d)))b.loading=5;else{t=v({rel:"stylesheet",href:t,"data-precedence":n},i),(i=Hn.get(d))&&Uf(t,i);var O=g=o.createElement("link");Ft(O),Qt(O,"link",t),O._p=new Promise(function(U,Y){O.onload=U,O.onerror=Y}),O.addEventListener("load",function(){b.loading|=1}),O.addEventListener("error",function(){b.loading|=2}),b.loading|=4,_l(g,n,o)}g={type:"stylesheet",instance:g,count:1,state:b},u.set(d,g)}}}function Ax(t,n){zr.X(t,n);var i=Vi;if(i&&t){var o=oi(i).hoistableScripts,u=Zi(t),d=o.get(u);d||(d=i.querySelector(Gs(u)),d||(t=v({src:t,async:!0},n),(n=Hn.get(u))&&Vf(t,n),d=i.createElement("script"),Ft(d),Qt(d,"link",t),i.head.appendChild(d)),d={type:"script",instance:d,count:1,state:null},o.set(u,d))}}function Rx(t,n){zr.M(t,n);var i=Vi;if(i&&t){var o=oi(i).hoistableScripts,u=Zi(t),d=o.get(u);d||(d=i.querySelector(Gs(u)),d||(t=v({src:t,async:!0,type:"module"},n),(n=Hn.get(u))&&Vf(t,n),d=i.createElement("script"),Ft(d),Qt(d,"link",t),i.head.appendChild(d)),d={type:"script",instance:d,count:1,state:null},o.set(u,d))}}function dv(t,n,i,o){var u=(u=ue.current)?bl(u):null;if(!u)throw Error(s(446));switch(t){case"meta":case"title":return null;case"style":return typeof i.precedence=="string"&&typeof i.href=="string"?(n=Li(i.href),i=oi(u).hoistableStyles,o=i.get(n),o||(o={type:"style",instance:null,count:0,state:null},i.set(n,o)),o):{type:"void",instance:null,count:0,state:null};case"link":if(i.rel==="stylesheet"&&typeof i.href=="string"&&typeof i.precedence=="string"){t=Li(i.href);var d=oi(u).hoistableStyles,g=d.get(t);if(g||(u=u.ownerDocument||u,g={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},d.set(t,g),(d=u.querySelector($s(t)))&&!d._p&&(g.instance=d,g.state.loading=5),Hn.has(t)||(i={rel:"preload",as:"style",href:i.href,crossOrigin:i.crossOrigin,integrity:i.integrity,media:i.media,hrefLang:i.hrefLang,referrerPolicy:i.referrerPolicy},Hn.set(t,i),d||Tx(u,t,i,g.state))),n&&o===null)throw Error(s(528,""));return g}if(n&&o!==null)throw Error(s(529,""));return null;case"script":return n=i.async,i=i.src,typeof i=="string"&&n&&typeof n!="function"&&typeof n!="symbol"?(n=Zi(i),i=oi(u).hoistableScripts,o=i.get(n),o||(o={type:"script",instance:null,count:0,state:null},i.set(n,o)),o):{type:"void",instance:null,count:0,state:null};default:throw Error(s(444,t))}}function Li(t){return'href="'+Nn(t)+'"'}function $s(t){return'link[rel="stylesheet"]['+t+"]"}function hv(t){return v({},t,{"data-precedence":t.precedence,precedence:null})}function Tx(t,n,i,o){t.querySelector('link[rel="preload"][as="style"]['+n+"]")?o.loading=1:(n=t.createElement("link"),o.preload=n,n.addEventListener("load",function(){return o.loading|=1}),n.addEventListener("error",function(){return o.loading|=2}),Qt(n,"link",i),Ft(n),t.head.appendChild(n))}function Zi(t){return'[src="'+Nn(t)+'"]'}function Gs(t){return"script[async]"+t}function mv(t,n,i){if(n.count++,n.instance===null)switch(n.type){case"style":var o=t.querySelector('style[data-href~="'+Nn(i.href)+'"]');if(o)return n.instance=o,Ft(o),o;var u=v({},i,{"data-href":i.href,"data-precedence":i.precedence,href:null,precedence:null});return o=(t.ownerDocument||t).createElement("style"),Ft(o),Qt(o,"style",u),_l(o,i.precedence,t),n.instance=o;case"stylesheet":u=Li(i.href);var d=t.querySelector($s(u));if(d)return n.state.loading|=4,n.instance=d,Ft(d),d;o=hv(i),(u=Hn.get(u))&&Uf(o,u),d=(t.ownerDocument||t).createElement("link"),Ft(d);var g=d;return g._p=new Promise(function(b,O){g.onload=b,g.onerror=O}),Qt(d,"link",o),n.state.loading|=4,_l(d,i.precedence,t),n.instance=d;case"script":return d=Zi(i.src),(u=t.querySelector(Gs(d)))?(n.instance=u,Ft(u),u):(o=i,(u=Hn.get(d))&&(o=v({},i),Vf(o,u)),t=t.ownerDocument||t,u=t.createElement("script"),Ft(u),Qt(u,"link",o),t.head.appendChild(u),n.instance=u);case"void":return null;default:throw Error(s(443,n.type))}else n.type==="stylesheet"&&(n.state.loading&4)===0&&(o=n.instance,n.state.loading|=4,_l(o,i.precedence,t));return n.instance}function _l(t,n,i){for(var o=i.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),u=o.length?o[o.length-1]:null,d=u,g=0;g title"):null)}function Dx(t,n,i){if(i===1||n.itemProp!=null)return!1;switch(t){case"meta":case"title":return!0;case"style":if(typeof n.precedence!="string"||typeof n.href!="string"||n.href==="")break;return!0;case"link":if(typeof n.rel!="string"||typeof n.href!="string"||n.href===""||n.onLoad||n.onError)break;return n.rel==="stylesheet"?(t=n.disabled,typeof n.precedence=="string"&&t==null):!0;case"script":if(n.async&&typeof n.async!="function"&&typeof n.async!="symbol"&&!n.onLoad&&!n.onError&&n.src&&typeof n.src=="string")return!0}return!1}function vv(t){return!(t.type==="stylesheet"&&(t.state.loading&3)===0)}function zx(t,n,i,o){if(i.type==="stylesheet"&&(typeof o.media!="string"||matchMedia(o.media).matches!==!1)&&(i.state.loading&4)===0){if(i.instance===null){var u=Li(o.href),d=n.querySelector($s(u));if(d){n=d._p,n!==null&&typeof n=="object"&&typeof n.then=="function"&&(t.count++,t=xl.bind(t),n.then(t,t)),i.state.loading|=4,i.instance=d,Ft(d);return}d=n.ownerDocument||n,o=hv(o),(u=Hn.get(u))&&Uf(o,u),d=d.createElement("link"),Ft(d);var g=d;g._p=new Promise(function(b,O){g.onload=b,g.onerror=O}),Qt(d,"link",o),i.instance=d}t.stylesheets===null&&(t.stylesheets=new Map),t.stylesheets.set(i,n),(n=i.state.preload)&&(i.state.loading&3)===0&&(t.count++,i=xl.bind(t),n.addEventListener("load",i),n.addEventListener("error",i))}}var Lf=0;function Mx(t,n){return t.stylesheets&&t.count===0&&El(t,t.stylesheets),0Lf?50:800)+n);return t.unsuspend=i,function(){t.unsuspend=null,clearTimeout(o),clearTimeout(u)}}:null}function xl(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)El(this,this.stylesheets);else if(this.unsuspend){var t=this.unsuspend;this.unsuspend=null,t()}}}var wl=null;function El(t,n){t.stylesheets=null,t.unsuspend!==null&&(t.count++,wl=new Map,n.forEach(Nx,t),wl=null,xl.call(t))}function Nx(t,n){if(!(n.state.loading&4)){var i=wl.get(t);if(i)var o=i.get(null);else{i=new Map,wl.set(t,i);for(var u=t.querySelectorAll("link[data-precedence],style[data-precedence]"),d=0;d"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(r){console.error(r)}}return e(),Qf.exports=Px(),Qf.exports}var Kx=Xx(),es=class{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(e){return this.listeners.add(e),this.onSubscribe(),()=>{this.listeners.delete(e),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}},Jx=class extends es{#e;#t;#n;constructor(){super(),this.#n=e=>{if(typeof window<"u"&&window.addEventListener){const r=()=>e();return window.addEventListener("visibilitychange",r,!1),()=>{window.removeEventListener("visibilitychange",r)}}}}onSubscribe(){this.#t||this.setEventListener(this.#n)}onUnsubscribe(){this.hasListeners()||(this.#t?.(),this.#t=void 0)}setEventListener(e){this.#n=e,this.#t?.(),this.#t=e(r=>{typeof r=="boolean"?this.setFocused(r):this.onFocus()})}setFocused(e){this.#e!==e&&(this.#e=e,this.onFocus())}onFocus(){const e=this.isFocused();this.listeners.forEach(r=>{r(e)})}isFocused(){return typeof this.#e=="boolean"?this.#e:globalThis.document?.visibilityState!=="hidden"}},Pd=new Jx,Wx={setTimeout:(e,r)=>setTimeout(e,r),clearTimeout:e=>clearTimeout(e),setInterval:(e,r)=>setInterval(e,r),clearInterval:e=>clearInterval(e)},ew=class{#e=Wx;#t=!1;setTimeoutProvider(e){this.#e=e}setTimeout(e,r){return this.#e.setTimeout(e,r)}clearTimeout(e){this.#e.clearTimeout(e)}setInterval(e,r){return this.#e.setInterval(e,r)}clearInterval(e){this.#e.clearInterval(e)}},Ia=new ew;function tw(e){setTimeout(e,0)}var nw=typeof window>"u"||"Deno"in globalThis;function on(){}function rw(e,r){return typeof e=="function"?e(r):e}function gd(e){return typeof e=="number"&&e>=0&&e!==1/0}function xb(e,r){return Math.max(e+(r||0)-Date.now(),0)}function ha(e,r){return typeof e=="function"?e(r):e}function Tn(e,r){return typeof e=="function"?e(r):e}function Hv(e,r){const{type:a="all",exact:s,fetchStatus:l,predicate:c,queryKey:f,stale:h}=e;if(f){if(s){if(r.queryHash!==Xd(f,r.options))return!1}else if(!Ki(r.queryKey,f))return!1}if(a!=="all"){const p=r.isActive();if(a==="active"&&!p||a==="inactive"&&p)return!1}return!(typeof h=="boolean"&&r.isStale()!==h||l&&l!==r.state.fetchStatus||c&&!c(r))}function Bv(e,r){const{exact:a,status:s,predicate:l,mutationKey:c}=e;if(c){if(!r.options.mutationKey)return!1;if(a){if(Qa(r.options.mutationKey)!==Qa(c))return!1}else if(!Ki(r.options.mutationKey,c))return!1}return!(s&&r.state.status!==s||l&&!l(r))}function Xd(e,r){return(r?.queryKeyHashFn||Qa)(e)}function Qa(e){return JSON.stringify(e,(r,a)=>vd(a)?Object.keys(a).sort().reduce((s,l)=>(s[l]=a[l],s),{}):a)}function Ki(e,r){if(e===r)return!0;if(typeof e!=typeof r)return!1;if(e&&r&&typeof e=="object"&&typeof r=="object"){if(Array.isArray(e)&&Array.isArray(r)){for(let s=0;s500)return r;const s=qv(e)&&qv(r);if(!s&&!(vd(e)&&vd(r)))return r;const c=(s?e:Object.keys(e)).length,f=s?r:Object.keys(r),h=f.length,p=s?new Array(h):{};let m=0;for(let y=0;y{Ia.setTimeout(r,e)})}function yd(e,r,a){return typeof a.structuralSharing=="function"?a.structuralSharing(e,r):a.structuralSharing!==!1?wb(e,r):r}function sw(e,r,a=0){const s=[...e,r];return a&&s.length>a?s.slice(1):s}function ow(e,r,a=0){const s=[r,...e];return a&&s.length>a?s.slice(0,-1):s}var Kd=Symbol();function Eb(e,r){return!e.queryFn&&r?.initialPromise?()=>r.initialPromise:!e.queryFn||e.queryFn===Kd?()=>Promise.reject(new Error(`Missing queryFn: '${e.queryHash}'`)):e.queryFn}function Jd(e,r){return typeof e=="function"?e(...r):!!e}function lw(e,r,a){let s=!1,l;return Object.defineProperty(e,"signal",{enumerable:!0,get:()=>(l??=r(),s||(s=!0,l.aborted?a():l.addEventListener("abort",a,{once:!0})),l)}),e}var ao=(()=>{let e=()=>nw;return{isServer(){return e()},setIsServer(r){e=r}}})();function bd(){let e,r;const a=new Promise((l,c)=>{e=l,r=c});a.status="pending",a.catch(()=>{});function s(l){Object.assign(a,l),delete a.resolve,delete a.reject}return a.resolve=l=>{s({status:"fulfilled",value:l}),e(l)},a.reject=l=>{s({status:"rejected",reason:l}),r(l)},a}var uw=tw;function cw(){let e=[],r=0,a=h=>{h()},s=h=>{h()},l=uw;const c=h=>{r?e.push(h):l(()=>{a(h)})},f=()=>{const h=e;e=[],h.length&&l(()=>{s(()=>{h.forEach(p=>{a(p)})})})};return{batch:h=>{let p;r++;try{p=h()}finally{r--,r||f()}return p},batchCalls:h=>(...p)=>{c(()=>{h(...p)})},schedule:c,setNotifyFunction:h=>{a=h},setBatchNotifyFunction:h=>{s=h},setScheduler:h=>{l=h}}}var Nt=cw(),fw=class extends es{#e=!0;#t;#n;constructor(){super(),this.#n=e=>{if(typeof window<"u"&&window.addEventListener){const r=()=>e(!0),a=()=>e(!1);return window.addEventListener("online",r,!1),window.addEventListener("offline",a,!1),()=>{window.removeEventListener("online",r),window.removeEventListener("offline",a)}}}}onSubscribe(){this.#t||this.setEventListener(this.#n)}onUnsubscribe(){this.hasListeners()||(this.#t?.(),this.#t=void 0)}setEventListener(e){this.#n=e,this.#t?.(),this.#t=e(this.setOnline.bind(this))}setOnline(e){this.#e!==e&&(this.#e=e,this.listeners.forEach(a=>{a(e)}))}isOnline(){return this.#e}},au=new fw;function dw(e){return Math.min(1e3*2**e,3e4)}function Cb(e){return(e??"online")==="online"?au.isOnline():!0}var _d=class extends Error{constructor(e){super("CancelledError"),this.revert=e?.revert,this.silent=e?.silent}};function Ob(e){let r=!1,a=0,s;const l=bd(),c=()=>l.status!=="pending",f=C=>{if(!c()){const A=new _d(C);_(A),e.onCancel?.(A)}},h=()=>{r=!0},p=()=>{r=!1},m=()=>Pd.isFocused()&&(e.networkMode==="always"||au.isOnline())&&e.canRun(),y=()=>Cb(e.networkMode)&&e.canRun(),v=C=>{c()||(s?.(),l.resolve(C))},_=C=>{c()||(s?.(),l.reject(C))},E=()=>new Promise(C=>{s=A=>{(c()||m())&&C(A)},e.onPause?.()}).then(()=>{s=void 0,c()||e.onContinue?.()}),x=()=>{if(c())return;let C;const A=a===0?e.initialPromise:void 0;try{C=A??e.fn()}catch(Z){C=Promise.reject(Z)}Promise.resolve(C).then(v).catch(Z=>{if(c())return;const k=e.retry??(ao.isServer()?0:3),P=e.retryDelay??dw,H=typeof P=="function"?P(a,Z):P,G=k===!0||typeof k=="number"&&am()?void 0:E()).then(()=>{r?_(Z):x()})})};return{promise:l,status:()=>l.status,cancel:f,continue:()=>(s?.(),l),cancelRetry:h,continueRetry:p,canStart:y,start:()=>(y()?x():E().then(x),l)}}var Ab=class{#e;destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),gd(this.gcTime)&&(this.#e=Ia.setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(e){this.gcTime=Math.max(this.gcTime||0,e??(ao.isServer()?1/0:300*1e3))}clearGcTimeout(){this.#e!==void 0&&(Ia.clearTimeout(this.#e),this.#e=void 0)}};function hw(e){return{onFetch:(r,a)=>{const s=r.options,l=r.fetchOptions?.meta?.fetchMore?.direction,c=r.state.data?.pages||[],f=r.state.data?.pageParams||[];let h={pages:[],pageParams:[]},p=0;const m=async()=>{let y=!1;const v=x=>{lw(x,()=>r.signal,()=>y=!0)},_=Eb(r.options,r.fetchOptions),E=async(x,C,A)=>{if(y)return Promise.reject(r.signal.reason);if(C==null&&x.pages.length)return Promise.resolve(x);const k=(()=>{const te={client:r.client,queryKey:r.queryKey,pageParam:C,direction:A?"backward":"forward",meta:r.options.meta};return v(te),te})(),P=await _(k),{maxPages:H}=r.options,G=A?ow:sw;return{pages:G(x.pages,P,H),pageParams:G(x.pageParams,C,H)}};if(l&&c.length){const x=l==="backward",C=x?mw:Gv,A={pages:c,pageParams:f},Z=C(s,A);h=await E(A,Z,x)}else{const x=e??c.length;do{const C=p===0?f[0]??s.initialPageParam:Gv(s,h);if(p>0&&C==null)break;h=await E(h,C),p++}while(pr.options.persister?.(m,{client:r.client,queryKey:r.queryKey,meta:r.options.meta,signal:r.signal},a):r.fetchFn=m}}}function Gv(e,{pages:r,pageParams:a}){const s=r.length-1;return r.length>0?e.getNextPageParam(r[s],r,a[s],a):void 0}function mw(e,{pages:r,pageParams:a}){return r.length>0?e.getPreviousPageParam?.(r[0],r,a[0],a):void 0}var pw=class extends Ab{#e;#t;#n;#r;#i;#a;#o;#s;constructor(e){super(),this.#s=!1,this.#o=e.defaultOptions,this.setOptions(e.options),this.observers=[],this.#i=e.client,this.#r=this.#i.getQueryCache(),this.queryKey=e.queryKey,this.queryHash=e.queryHash,this.#t=Iv(this.options),this.state=e.state??this.#t,this.scheduleGc()}get meta(){return this.options.meta}get queryType(){return this.#e}get promise(){return this.#a?.promise}setOptions(e){if(this.options={...this.#o,...e},e?._type&&(this.#e=e._type),this.updateGcTime(this.options.gcTime),this.state&&this.state.data===void 0){const r=Iv(this.options);r.data!==void 0&&(this.setState(Yv(r.data,r.dataUpdatedAt)),this.#t=r)}}optionalRemove(){!this.observers.length&&this.state.fetchStatus==="idle"&&this.#r.remove(this)}setData(e,r){const a=yd(this.state.data,e,this.options);return this.#l({data:a,type:"success",dataUpdatedAt:r?.updatedAt,manual:r?.manual}),a}setState(e){this.#l({type:"setState",state:e})}cancel(e){const r=this.#a?.promise;return this.#a?.cancel(e),r?r.then(on).catch(on):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}get resetState(){return this.#t}reset(){this.destroy(),this.setState(this.resetState)}isActive(){return this.observers.some(e=>Tn(e.options.enabled,this)!==!1)}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===Kd||!this.isFetched()}isFetched(){return this.state.dataUpdateCount+this.state.errorUpdateCount>0}isStatic(){return this.getObserversCount()>0?this.observers.some(e=>ha(e.options.staleTime,this)==="static"):!1}isStale(){return this.getObserversCount()>0?this.observers.some(e=>e.getCurrentResult().isStale):this.state.data===void 0||this.state.isInvalidated}isStaleByTime(e=0){return this.state.data===void 0?!0:e==="static"?!1:this.state.isInvalidated?!0:!xb(this.state.dataUpdatedAt,e)}onFocus(){this.observers.find(r=>r.shouldFetchOnWindowFocus())?.refetch({cancelRefetch:!1}),this.#a?.continue()}onOnline(){this.observers.find(r=>r.shouldFetchOnReconnect())?.refetch({cancelRefetch:!1}),this.#a?.continue()}addObserver(e){this.observers.includes(e)||(this.observers.push(e),this.clearGcTimeout(),this.#r.notify({type:"observerAdded",query:this,observer:e}))}removeObserver(e){this.observers.includes(e)&&(this.observers=this.observers.filter(r=>r!==e),this.observers.length||(this.#a&&(this.#s||this.#c()?this.#a.cancel({revert:!0}):this.#a.cancelRetry()),this.scheduleGc()),this.#r.notify({type:"observerRemoved",query:this,observer:e}))}getObserversCount(){return this.observers.length}#c(){return this.state.fetchStatus==="paused"&&this.state.status==="pending"}invalidate(){this.state.isInvalidated||this.#l({type:"invalidate"})}async fetch(e,r){if(this.state.fetchStatus!=="idle"&&this.#a?.status()!=="rejected"){if(this.state.data!==void 0&&r?.cancelRefetch)this.cancel({silent:!0});else if(this.#a)return this.#a.continueRetry(),this.#a.promise}if(e&&this.setOptions(e),!this.options.queryFn){const p=this.observers.find(m=>m.options.queryFn);p&&this.setOptions(p.options)}const a=new AbortController,s=p=>{Object.defineProperty(p,"signal",{enumerable:!0,get:()=>(this.#s=!0,a.signal)})},l=()=>{const p=Eb(this.options,r),y=(()=>{const v={client:this.#i,queryKey:this.queryKey,meta:this.meta};return s(v),v})();return this.#s=!1,this.options.persister?this.options.persister(p,y,this):p(y)},f=(()=>{const p={fetchOptions:r,options:this.options,queryKey:this.queryKey,client:this.#i,state:this.state,fetchFn:l};return s(p),p})();(this.#e==="infinite"?hw(this.options.pages):this.options.behavior)?.onFetch(f,this),this.#n=this.state,(this.state.fetchStatus==="idle"||this.state.fetchMeta!==f.fetchOptions?.meta)&&this.#l({type:"fetch",meta:f.fetchOptions?.meta}),this.#a=Ob({initialPromise:r?.initialPromise,fn:f.fetchFn,onCancel:p=>{p instanceof _d&&p.revert&&this.setState({...this.#n,fetchStatus:"idle"}),a.abort()},onFail:(p,m)=>{this.#l({type:"failed",failureCount:p,error:m})},onPause:()=>{this.#l({type:"pause"})},onContinue:()=>{this.#l({type:"continue"})},retry:f.options.retry,retryDelay:f.options.retryDelay,networkMode:f.options.networkMode,canRun:()=>!0});try{const p=await this.#a.start();if(p===void 0)throw new Error(`${this.queryHash} data is undefined`);return this.setData(p),this.#r.config.onSuccess?.(p,this),this.#r.config.onSettled?.(p,this.state.error,this),p}catch(p){if(p instanceof _d){if(p.silent)return this.#a.promise;if(p.revert){if(this.state.data===void 0)throw p;return this.state.data}}throw this.#l({type:"error",error:p}),this.#r.config.onError?.(p,this),this.#r.config.onSettled?.(this.state.data,p,this),p}finally{this.scheduleGc()}}#l(e){const r=a=>{switch(e.type){case"failed":return{...a,fetchFailureCount:e.failureCount,fetchFailureReason:e.error};case"pause":return{...a,fetchStatus:"paused"};case"continue":return{...a,fetchStatus:"fetching"};case"fetch":return{...a,...Rb(a.data,this.options),fetchMeta:e.meta??null};case"success":const s={...a,...Yv(e.data,e.dataUpdatedAt),dataUpdateCount:a.dataUpdateCount+1,...!e.manual&&{fetchStatus:"idle",fetchFailureCount:0,fetchFailureReason:null}};return this.#n=e.manual?s:void 0,s;case"error":const l=e.error;return{...a,error:l,errorUpdateCount:a.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:a.fetchFailureCount+1,fetchFailureReason:l,fetchStatus:"idle",status:"error",isInvalidated:!0};case"invalidate":return{...a,isInvalidated:!0};case"setState":return{...a,...e.state}}};this.state=r(this.state),Nt.batch(()=>{this.observers.forEach(a=>{a.onQueryUpdate()}),this.#r.notify({query:this,type:"updated",action:e})})}};function Rb(e,r){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:Cb(r.networkMode)?"fetching":"paused",...e===void 0&&{error:null,status:"pending"}}}function Yv(e,r){return{data:e,dataUpdatedAt:r??Date.now(),error:null,isInvalidated:!1,status:"success"}}function Iv(e){const r=typeof e.initialData=="function"?e.initialData():e.initialData,a=r!==void 0,s=a?typeof e.initialDataUpdatedAt=="function"?e.initialDataUpdatedAt():e.initialDataUpdatedAt:0;return{data:r,dataUpdateCount:0,dataUpdatedAt:a?s??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:a?"success":"pending",fetchStatus:"idle"}}var gw=class extends es{constructor(e,r){super(),this.options=r,this.#e=e,this.#s=null,this.#o=bd(),this.bindMethods(),this.setOptions(r)}#e;#t=void 0;#n=void 0;#r=void 0;#i;#a;#o;#s;#c;#l;#m;#f;#d;#u;#p=new Set;bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){this.listeners.size===1&&(this.#t.addObserver(this),Qv(this.#t,this.options)?this.#h():this.updateResult(),this.#b())}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return Sd(this.#t,this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return Sd(this.#t,this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,this.#_(),this.#S(),this.#t.removeObserver(this)}setOptions(e){const r=this.options,a=this.#t;if(this.options=this.#e.defaultQueryOptions(e),this.options.enabled!==void 0&&typeof this.options.enabled!="boolean"&&typeof this.options.enabled!="function"&&typeof Tn(this.options.enabled,this.#t)!="boolean")throw new Error("Expected enabled to be a boolean or a callback that returns a boolean");this.#x(),this.#t.setOptions(this.options),r._defaulted&&!ru(this.options,r)&&this.#e.getQueryCache().notify({type:"observerOptionsUpdated",query:this.#t,observer:this});const s=this.hasListeners();s&&Pv(this.#t,a,this.options,r)&&this.#h(),this.updateResult(),s&&(this.#t!==a||Tn(this.options.enabled,this.#t)!==Tn(r.enabled,this.#t)||ha(this.options.staleTime,this.#t)!==ha(r.staleTime,this.#t))&&this.#g();const l=this.#v();s&&(this.#t!==a||Tn(this.options.enabled,this.#t)!==Tn(r.enabled,this.#t)||l!==this.#u)&&this.#y(l)}getOptimisticResult(e){const r=this.#e.getQueryCache().build(this.#e,e),a=this.createResult(r,e);return yw(this,a)&&(this.#r=a,this.#a=this.options,this.#i=this.#t.state),a}getCurrentResult(){return this.#r}trackResult(e,r){return new Proxy(e,{get:(a,s)=>(this.trackProp(s),r?.(s),s==="promise"&&(this.trackProp("data"),!this.options.experimental_prefetchInRender&&this.#o.status==="pending"&&this.#o.reject(new Error("experimental_prefetchInRender feature flag is not enabled"))),Reflect.get(a,s))})}trackProp(e){this.#p.add(e)}getCurrentQuery(){return this.#t}refetch({...e}={}){return this.fetch({...e})}fetchOptimistic(e){const r=this.#e.defaultQueryOptions(e),a=this.#e.getQueryCache().build(this.#e,r);return a.fetch().then(()=>this.createResult(a,r))}fetch(e){return this.#h({...e,cancelRefetch:e.cancelRefetch??!0}).then(()=>(this.updateResult(),this.#r))}#h(e){this.#x();let r=this.#t.fetch(this.options,e);return e?.throwOnError||(r=r.catch(on)),r}#g(){this.#_();const e=ha(this.options.staleTime,this.#t);if(ao.isServer()||this.#r.isStale||!gd(e))return;const a=xb(this.#r.dataUpdatedAt,e)+1;this.#f=Ia.setTimeout(()=>{this.#r.isStale||this.updateResult()},a)}#v(){return(typeof this.options.refetchInterval=="function"?this.options.refetchInterval(this.#t):this.options.refetchInterval)??!1}#y(e){this.#S(),this.#u=e,!(ao.isServer()||Tn(this.options.enabled,this.#t)===!1||!gd(this.#u)||this.#u===0)&&(this.#d=Ia.setInterval(()=>{(this.options.refetchIntervalInBackground||Pd.isFocused())&&this.#h()},this.#u))}#b(){this.#g(),this.#y(this.#v())}#_(){this.#f!==void 0&&(Ia.clearTimeout(this.#f),this.#f=void 0)}#S(){this.#d!==void 0&&(Ia.clearInterval(this.#d),this.#d=void 0)}createResult(e,r){const a=this.#t,s=this.options,l=this.#r,c=this.#i,f=this.#a,p=e!==a?e.state:this.#n,{state:m}=e;let y={...m},v=!1,_;if(r._optimisticResults){const $=this.hasListeners(),de=!$&&Qv(e,r),ze=$&&Pv(e,a,r,s);(de||ze)&&(y={...y,...Rb(m.data,e.options)}),r._optimisticResults==="isRestoring"&&(y.fetchStatus="idle")}let{error:E,errorUpdatedAt:x,status:C}=y;_=y.data;let A=!1;if(r.placeholderData!==void 0&&_===void 0&&C==="pending"){let $;l?.isPlaceholderData&&r.placeholderData===f?.placeholderData?($=l.data,A=!0):$=typeof r.placeholderData=="function"?r.placeholderData(this.#m?.state.data,this.#m):r.placeholderData,$!==void 0&&(C="success",_=yd(l?.data,$,r),v=!0)}if(r.select&&_!==void 0&&!A)if(l&&_===c?.data&&r.select===this.#c)_=this.#l;else try{this.#c=r.select,_=r.select(_),_=yd(l?.data,_,r),this.#l=_,this.#s=null}catch($){this.#s=$}this.#s&&(E=this.#s,_=this.#l,x=Date.now(),C="error");const Z=y.fetchStatus==="fetching",k=C==="pending",P=C==="error",H=k&&Z,G=_!==void 0,q={status:C,fetchStatus:y.fetchStatus,isPending:k,isSuccess:C==="success",isError:P,isInitialLoading:H,isLoading:H,data:_,dataUpdatedAt:y.dataUpdatedAt,error:E,errorUpdatedAt:x,failureCount:y.fetchFailureCount,failureReason:y.fetchFailureReason,errorUpdateCount:y.errorUpdateCount,isFetched:e.isFetched(),isFetchedAfterMount:y.dataUpdateCount>p.dataUpdateCount||y.errorUpdateCount>p.errorUpdateCount,isFetching:Z,isRefetching:Z&&!k,isLoadingError:P&&!G,isPaused:y.fetchStatus==="paused",isPlaceholderData:v,isRefetchError:P&&G,isStale:Wd(e,r),refetch:this.refetch,promise:this.#o,isEnabled:Tn(r.enabled,e)!==!1};if(this.options.experimental_prefetchInRender){const $=q.data!==void 0,de=q.status==="error"&&!$,ze=be=>{de?be.reject(q.error):$&&be.resolve(q.data)},Ne=()=>{const be=this.#o=q.promise=bd();ze(be)},ie=this.#o;switch(ie.status){case"pending":e.queryHash===a.queryHash&&ze(ie);break;case"fulfilled":(de||q.data!==ie.value)&&Ne();break;case"rejected":(!de||q.error!==ie.reason)&&Ne();break}}return q}updateResult(){const e=this.#r,r=this.createResult(this.#t,this.options);if(this.#i=this.#t.state,this.#a=this.options,this.#i.data!==void 0&&(this.#m=this.#t),ru(r,e))return;this.#r=r;const a=()=>{if(!e)return!0;const{notifyOnChangeProps:s}=this.options,l=typeof s=="function"?s():s;if(l==="all"||!l&&!this.#p.size)return!0;const c=new Set(l??this.#p);return this.options.throwOnError&&c.add("error"),Object.keys(this.#r).some(f=>{const h=f;return this.#r[h]!==e[h]&&c.has(h)})};this.#w({listeners:a()})}#x(){const e=this.#e.getQueryCache().build(this.#e,this.options);if(e===this.#t)return;const r=this.#t;this.#t=e,this.#n=e.state,this.hasListeners()&&(r?.removeObserver(this),e.addObserver(this))}onQueryUpdate(){this.updateResult(),this.hasListeners()&&this.#b()}#w(e){Nt.batch(()=>{e.listeners&&this.listeners.forEach(r=>{r(this.#r)}),this.#e.getQueryCache().notify({query:this.#t,type:"observerResultsUpdated"})})}};function vw(e,r){return Tn(r.enabled,e)!==!1&&e.state.data===void 0&&!(e.state.status==="error"&&Tn(r.retryOnMount,e)===!1)}function Qv(e,r){return vw(e,r)||e.state.data!==void 0&&Sd(e,r,r.refetchOnMount)}function Sd(e,r,a){if(Tn(r.enabled,e)!==!1&&ha(r.staleTime,e)!=="static"){const s=typeof a=="function"?a(e):a;return s==="always"||s!==!1&&Wd(e,r)}return!1}function Pv(e,r,a,s){return(e!==r||Tn(s.enabled,e)===!1)&&(!a.suspense||e.state.status!=="error")&&Wd(e,a)}function Wd(e,r){return Tn(r.enabled,e)!==!1&&e.isStaleByTime(ha(r.staleTime,e))}function yw(e,r){return!ru(e.getCurrentResult(),r)}var bw=class extends Ab{#e;#t;#n;#r;constructor(e){super(),this.#e=e.client,this.mutationId=e.mutationId,this.#n=e.mutationCache,this.#t=[],this.state=e.state||Tb(),this.setOptions(e.options),this.scheduleGc()}setOptions(e){this.options=e,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(e){this.#t.includes(e)||(this.#t.push(e),this.clearGcTimeout(),this.#n.notify({type:"observerAdded",mutation:this,observer:e}))}removeObserver(e){this.#t=this.#t.filter(r=>r!==e),this.scheduleGc(),this.#n.notify({type:"observerRemoved",mutation:this,observer:e})}optionalRemove(){this.#t.length||(this.state.status==="pending"?this.scheduleGc():this.#n.remove(this))}continue(){return this.#r?.continue()??this.execute(this.state.variables)}async execute(e){const r=()=>{this.#i({type:"continue"})},a={client:this.#e,meta:this.options.meta,mutationKey:this.options.mutationKey};this.#r=Ob({fn:()=>this.options.mutationFn?this.options.mutationFn(e,a):Promise.reject(new Error("No mutationFn found")),onFail:(c,f)=>{this.#i({type:"failed",failureCount:c,error:f})},onPause:()=>{this.#i({type:"pause"})},onContinue:r,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>this.#n.canRun(this)});const s=this.state.status==="pending",l=!this.#r.canStart();try{if(s)r();else{this.#i({type:"pending",variables:e,isPaused:l}),this.#n.config.onMutate&&await this.#n.config.onMutate(e,this,a);const f=await this.options.onMutate?.(e,a);f!==this.state.context&&this.#i({type:"pending",context:f,variables:e,isPaused:l})}const c=await this.#r.start();return await this.#n.config.onSuccess?.(c,e,this.state.context,this,a),await this.options.onSuccess?.(c,e,this.state.context,a),await this.#n.config.onSettled?.(c,null,this.state.variables,this.state.context,this,a),await this.options.onSettled?.(c,null,e,this.state.context,a),this.#i({type:"success",data:c}),c}catch(c){try{await this.#n.config.onError?.(c,e,this.state.context,this,a)}catch(f){Promise.reject(f)}try{await this.options.onError?.(c,e,this.state.context,a)}catch(f){Promise.reject(f)}try{await this.#n.config.onSettled?.(void 0,c,this.state.variables,this.state.context,this,a)}catch(f){Promise.reject(f)}try{await this.options.onSettled?.(void 0,c,e,this.state.context,a)}catch(f){Promise.reject(f)}throw this.#i({type:"error",error:c}),c}finally{this.#n.runNext(this)}}#i(e){const r=a=>{switch(e.type){case"failed":return{...a,failureCount:e.failureCount,failureReason:e.error};case"pause":return{...a,isPaused:!0};case"continue":return{...a,isPaused:!1};case"pending":return{...a,context:e.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:e.isPaused,status:"pending",variables:e.variables,submittedAt:Date.now()};case"success":return{...a,data:e.data,failureCount:0,failureReason:null,error:null,status:"success",isPaused:!1};case"error":return{...a,data:void 0,error:e.error,failureCount:a.failureCount+1,failureReason:e.error,isPaused:!1,status:"error"}}};this.state=r(this.state),Nt.batch(()=>{this.#t.forEach(a=>{a.onMutationUpdate(e)}),this.#n.notify({mutation:this,type:"updated",action:e})})}};function Tb(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:"idle",variables:void 0,submittedAt:0}}var _w=class extends es{constructor(e={}){super(),this.config=e,this.#e=new Set,this.#t=new Map,this.#n=0}#e;#t;#n;build(e,r,a){const s=new bw({client:e,mutationCache:this,mutationId:++this.#n,options:e.defaultMutationOptions(r),state:a});return this.add(s),s}add(e){this.#e.add(e);const r=Ml(e);if(typeof r=="string"){const a=this.#t.get(r);a?a.push(e):this.#t.set(r,[e])}this.notify({type:"added",mutation:e})}remove(e){if(this.#e.delete(e)){const r=Ml(e);if(typeof r=="string"){const a=this.#t.get(r);if(a)if(a.length>1){const s=a.indexOf(e);s!==-1&&a.splice(s,1)}else a[0]===e&&this.#t.delete(r)}}this.notify({type:"removed",mutation:e})}canRun(e){const r=Ml(e);if(typeof r=="string"){const s=this.#t.get(r)?.find(l=>l.state.status==="pending");return!s||s===e}else return!0}runNext(e){const r=Ml(e);return typeof r=="string"?this.#t.get(r)?.find(s=>s!==e&&s.state.isPaused)?.continue()??Promise.resolve():Promise.resolve()}clear(){Nt.batch(()=>{this.#e.forEach(e=>{this.notify({type:"removed",mutation:e})}),this.#e.clear(),this.#t.clear()})}getAll(){return Array.from(this.#e)}find(e){const r={exact:!0,...e};return this.getAll().find(a=>Bv(r,a))}findAll(e={}){return this.getAll().filter(r=>Bv(e,r))}notify(e){Nt.batch(()=>{this.listeners.forEach(r=>{r(e)})})}resumePausedMutations(){const e=this.getAll().filter(r=>r.state.isPaused);return Nt.batch(()=>Promise.all(e.map(r=>r.continue().catch(on))))}};function Ml(e){return e.options.scope?.id}var Sw=class extends es{#e;#t=void 0;#n;#r;constructor(r,a){super(),this.#e=r,this.setOptions(a),this.bindMethods(),this.#i()}bindMethods(){this.mutate=this.mutate.bind(this),this.reset=this.reset.bind(this)}setOptions(r){const a=this.options;this.options=this.#e.defaultMutationOptions(r),ru(this.options,a)||this.#e.getMutationCache().notify({type:"observerOptionsUpdated",mutation:this.#n,observer:this}),a?.mutationKey&&this.options.mutationKey&&Qa(a.mutationKey)!==Qa(this.options.mutationKey)?this.reset():this.#n?.state.status==="pending"&&this.#n.setOptions(this.options)}onUnsubscribe(){this.hasListeners()||this.#n?.removeObserver(this)}onMutationUpdate(r){this.#i(),this.#a(r)}getCurrentResult(){return this.#t}reset(){this.#n?.removeObserver(this),this.#n=void 0,this.#i(),this.#a()}mutate(r,a){return this.#r=a,this.#n?.removeObserver(this),this.#n=this.#e.getMutationCache().build(this.#e,this.options),this.#n.addObserver(this),this.#n.execute(r)}#i(){const r=this.#n?.state??Tb();this.#t={...r,isPending:r.status==="pending",isSuccess:r.status==="success",isError:r.status==="error",isIdle:r.status==="idle",mutate:this.mutate,reset:this.reset}}#a(r){Nt.batch(()=>{if(this.#r&&this.hasListeners()){const a=this.#t.variables,s=this.#t.context,l={client:this.#e,meta:this.options.meta,mutationKey:this.options.mutationKey};if(r?.type==="success"){try{this.#r.onSuccess?.(r.data,a,s,l)}catch(c){Promise.reject(c)}try{this.#r.onSettled?.(r.data,null,a,s,l)}catch(c){Promise.reject(c)}}else if(r?.type==="error"){try{this.#r.onError?.(r.error,a,s,l)}catch(c){Promise.reject(c)}try{this.#r.onSettled?.(void 0,r.error,a,s,l)}catch(c){Promise.reject(c)}}}this.listeners.forEach(a=>{a(this.#t)})})}},xw=class extends es{constructor(e={}){super(),this.config=e,this.#e=new Map}#e;build(e,r,a){const s=r.queryKey,l=r.queryHash??Xd(s,r);let c=this.get(l);return c||(c=new pw({client:e,queryKey:s,queryHash:l,options:e.defaultQueryOptions(r),state:a,defaultOptions:e.getQueryDefaults(s)}),this.add(c)),c}add(e){this.#e.has(e.queryHash)||(this.#e.set(e.queryHash,e),this.notify({type:"added",query:e}))}remove(e){const r=this.#e.get(e.queryHash);r&&(e.destroy(),r===e&&this.#e.delete(e.queryHash),this.notify({type:"removed",query:e}))}clear(){Nt.batch(()=>{this.getAll().forEach(e=>{this.remove(e)})})}get(e){return this.#e.get(e)}getAll(){return[...this.#e.values()]}find(e){const r={exact:!0,...e};return this.getAll().find(a=>Hv(r,a))}findAll(e={}){const r=this.getAll();return Object.keys(e).length>0?r.filter(a=>Hv(e,a)):r}notify(e){Nt.batch(()=>{this.listeners.forEach(r=>{r(e)})})}onFocus(){Nt.batch(()=>{this.getAll().forEach(e=>{e.onFocus()})})}onOnline(){Nt.batch(()=>{this.getAll().forEach(e=>{e.onOnline()})})}},ww=class{#e;#t;#n;#r;#i;#a;#o;#s;constructor(e={}){this.#e=e.queryCache||new xw,this.#t=e.mutationCache||new _w,this.#n=e.defaultOptions||{},this.#r=new Map,this.#i=new Map,this.#a=0}mount(){this.#a++,this.#a===1&&(this.#o=Pd.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#e.onFocus())}),this.#s=au.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#e.onOnline())}))}unmount(){this.#a--,this.#a===0&&(this.#o?.(),this.#o=void 0,this.#s?.(),this.#s=void 0)}isFetching(e){return this.#e.findAll({...e,fetchStatus:"fetching"}).length}isMutating(e){return this.#t.findAll({...e,status:"pending"}).length}getQueryData(e){const r=this.defaultQueryOptions({queryKey:e});return this.#e.get(r.queryHash)?.state.data}ensureQueryData(e){const r=this.defaultQueryOptions(e),a=this.#e.build(this,r),s=a.state.data;return s===void 0?this.fetchQuery(e):(e.revalidateIfStale&&a.isStaleByTime(ha(r.staleTime,a))&&this.prefetchQuery(r),Promise.resolve(s))}getQueriesData(e){return this.#e.findAll(e).map(({queryKey:r,state:a})=>{const s=a.data;return[r,s]})}setQueryData(e,r,a){const s=this.defaultQueryOptions({queryKey:e}),c=this.#e.get(s.queryHash)?.state.data,f=rw(r,c);if(f!==void 0)return this.#e.build(this,s).setData(f,{...a,manual:!0})}setQueriesData(e,r,a){return Nt.batch(()=>this.#e.findAll(e).map(({queryKey:s})=>[s,this.setQueryData(s,r,a)]))}getQueryState(e){const r=this.defaultQueryOptions({queryKey:e});return this.#e.get(r.queryHash)?.state}removeQueries(e){const r=this.#e;Nt.batch(()=>{r.findAll(e).forEach(a=>{r.remove(a)})})}resetQueries(e,r){const a=this.#e;return Nt.batch(()=>(a.findAll(e).forEach(s=>{s.reset()}),this.refetchQueries({type:"active",...e},r)))}cancelQueries(e,r={}){const a={revert:!0,...r},s=Nt.batch(()=>this.#e.findAll(e).map(l=>l.cancel(a)));return Promise.all(s).then(on).catch(on)}invalidateQueries(e,r={}){return Nt.batch(()=>(this.#e.findAll(e).forEach(a=>{a.invalidate()}),e?.refetchType==="none"?Promise.resolve():this.refetchQueries({...e,type:e?.refetchType??e?.type??"active"},r)))}refetchQueries(e,r={}){const a={...r,cancelRefetch:r.cancelRefetch??!0},s=Nt.batch(()=>this.#e.findAll(e).filter(l=>!l.isDisabled()&&!l.isStatic()).map(l=>{let c=l.fetch(void 0,a);return a.throwOnError||(c=c.catch(on)),l.state.fetchStatus==="paused"?Promise.resolve():c}));return Promise.all(s).then(on)}fetchQuery(e){const r=this.defaultQueryOptions(e);r.retry===void 0&&(r.retry=!1);const a=this.#e.build(this,r);return a.isStaleByTime(ha(r.staleTime,a))?a.fetch(r):Promise.resolve(a.state.data)}prefetchQuery(e){return this.fetchQuery(e).then(on).catch(on)}fetchInfiniteQuery(e){return e._type="infinite",this.fetchQuery(e)}prefetchInfiniteQuery(e){return this.fetchInfiniteQuery(e).then(on).catch(on)}ensureInfiniteQueryData(e){return e._type="infinite",this.ensureQueryData(e)}resumePausedMutations(){return au.isOnline()?this.#t.resumePausedMutations():Promise.resolve()}getQueryCache(){return this.#e}getMutationCache(){return this.#t}getDefaultOptions(){return this.#n}setDefaultOptions(e){this.#n=e}setQueryDefaults(e,r){this.#r.set(Qa(e),{queryKey:e,defaultOptions:r})}getQueryDefaults(e){const r=[...this.#r.values()],a={};return r.forEach(s=>{Ki(e,s.queryKey)&&Object.assign(a,s.defaultOptions)}),a}setMutationDefaults(e,r){this.#i.set(Qa(e),{mutationKey:e,defaultOptions:r})}getMutationDefaults(e){const r=[...this.#i.values()],a={};return r.forEach(s=>{Ki(e,s.mutationKey)&&Object.assign(a,s.defaultOptions)}),a}defaultQueryOptions(e){if(e._defaulted)return e;const r={...this.#n.queries,...this.getQueryDefaults(e.queryKey),...e,_defaulted:!0};return r.queryHash||(r.queryHash=Xd(r.queryKey,r)),r.refetchOnReconnect===void 0&&(r.refetchOnReconnect=r.networkMode!=="always"),r.throwOnError===void 0&&(r.throwOnError=!!r.suspense),!r.networkMode&&r.persister&&(r.networkMode="offlineFirst"),r.queryFn===Kd&&(r.enabled=!1),r}defaultMutationOptions(e){return e?._defaulted?e:{...this.#n.mutations,...e?.mutationKey&&this.getMutationDefaults(e.mutationKey),...e,_defaulted:!0}}clear(){this.#e.clear(),this.#t.clear()}},Db=z.createContext(void 0),ho=e=>{const r=z.useContext(Db);if(!r)throw new Error("No QueryClient set, use QueryClientProvider to set one");return r},Ew=({client:e,children:r})=>(z.useEffect(()=>(e.mount(),()=>{e.unmount()}),[e]),S.jsx(Db.Provider,{value:e,children:r})),zb=z.createContext(!1),Cw=()=>z.useContext(zb);zb.Provider;function Ow(){let e=!1;return{clearReset:()=>{e=!1},reset:()=>{e=!0},isReset:()=>e}}var Aw=z.createContext(Ow()),Rw=()=>z.useContext(Aw),Tw=(e,r,a)=>{const s=a?.state.error&&typeof e.throwOnError=="function"?Jd(e.throwOnError,[a.state.error,a]):e.throwOnError;(e.suspense||e.experimental_prefetchInRender||s)&&(r.isReset()||(e.retryOnMount=!1))},Dw=e=>{z.useEffect(()=>{e.clearReset()},[e])},zw=({result:e,errorResetBoundary:r,throwOnError:a,query:s,suspense:l})=>e.isError&&!r.isReset()&&!e.isFetching&&s&&(l&&e.data===void 0||Jd(a,[e.error,s])),Mw=e=>{if(e.suspense){const a=l=>l==="static"?l:Math.max(l??1e3,1e3),s=e.staleTime;e.staleTime=typeof s=="function"?(...l)=>a(s(...l)):a(s),typeof e.gcTime=="number"&&(e.gcTime=Math.max(e.gcTime,1e3))}},Nw=(e,r)=>e.isLoading&&e.isFetching&&!r,jw=(e,r)=>e?.suspense&&r.isPending,Xv=(e,r,a)=>r.fetchOptimistic(e).catch(()=>{a.clearReset()});function kw(e,r,a){const s=Cw(),l=Rw(),c=ho(),f=c.defaultQueryOptions(e);c.getDefaultOptions().queries?._experimental_beforeQuery?.(f);const h=c.getQueryCache().get(f.queryHash),p=e.subscribed!==!1;f._optimisticResults=s?"isRestoring":p?"optimistic":void 0,Mw(f),Tw(f,l,h),Dw(l);const m=!c.getQueryCache().get(f.queryHash),[y]=z.useState(()=>new r(c,f)),v=y.getOptimisticResult(f),_=!s&&p;if(z.useSyncExternalStore(z.useCallback(E=>{const x=_?y.subscribe(Nt.batchCalls(E)):on;return y.updateResult(),x},[y,_]),()=>y.getCurrentResult(),()=>y.getCurrentResult()),z.useEffect(()=>{y.setOptions(f)},[f,y]),jw(f,v))throw Xv(f,y,l);if(zw({result:v,errorResetBoundary:l,throwOnError:f.throwOnError,query:h,suspense:f.suspense}))throw v.error;return c.getDefaultOptions().queries?._experimental_afterQuery?.(f,v),f.experimental_prefetchInRender&&!ao.isServer()&&Nw(v,s)&&(m?Xv(f,y,l):h?.promise)?.catch(on).finally(()=>{y.updateResult()}),f.notifyOnChangeProps?v:y.trackResult(v)}function Mb(e,r){return kw(e,gw)}function iu(e,r){const a=ho(),[s]=z.useState(()=>new Sw(a,e));z.useEffect(()=>{s.setOptions(e)},[s,e]);const l=z.useSyncExternalStore(z.useCallback(f=>s.subscribe(Nt.batchCalls(f)),[s]),()=>s.getCurrentResult(),()=>s.getCurrentResult()),c=z.useCallback((f,h)=>{s.mutate(f,h).catch(on)},[s]);if(l.error&&Jd(s.options.throwOnError,[l.error]))throw l.error;return{...l,mutate:c,mutateAsync:l.mutate}}const Fw=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),Uw=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(r,a,s)=>s?s.toUpperCase():a.toLowerCase()),Kv=e=>{const r=Uw(e);return r.charAt(0).toUpperCase()+r.slice(1)},Nb=(...e)=>e.filter((r,a,s)=>!!r&&r.trim()!==""&&s.indexOf(r)===a).join(" ").trim(),Vw=e=>{for(const r in e)if(r.startsWith("aria-")||r==="role"||r==="title")return!0};var Lw={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};const Zw=z.forwardRef(({color:e="currentColor",size:r=24,strokeWidth:a=2,absoluteStrokeWidth:s,className:l="",children:c,iconNode:f,...h},p)=>z.createElement("svg",{ref:p,...Lw,width:r,height:r,stroke:e,strokeWidth:s?Number(a)*24/Number(r):a,className:Nb("lucide",l),...!c&&!Vw(h)&&{"aria-hidden":"true"},...h},[...f.map(([m,y])=>z.createElement(m,y)),...Array.isArray(c)?c:[c]]));const ft=(e,r)=>{const a=z.forwardRef(({className:s,...l},c)=>z.createElement(Zw,{ref:c,iconNode:r,className:Nb(`lucide-${Fw(Kv(e))}`,`lucide-${e}`,s),...l}));return a.displayName=Kv(e),a};const Hw=[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]],jb=ft("activity",Hw);const Bw=[["path",{d:"m3 16 4 4 4-4",key:"1co6wj"}],["path",{d:"M7 20V4",key:"1yoxec"}],["path",{d:"m21 8-4-4-4 4",key:"1c9v7m"}],["path",{d:"M17 4v16",key:"7dpous"}]],qw=ft("arrow-down-up",Bw);const $w=[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]],Gw=ft("arrow-down",$w);const Yw=[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]],Iw=ft("arrow-up",Yw);const Qw=[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["path",{d:"m19 9-5 5-4-4-3 3",key:"2osh9i"}]],Pw=ft("chart-line",Qw);const Xw=[["path",{d:"m7 15 5 5 5-5",key:"1hf1tw"}],["path",{d:"m7 9 5-5 5 5",key:"sgt6xg"}]],Kw=ft("chevrons-up-down",Xw);const Jw=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]],Ww=ft("circle-check",Jw);const eE=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]],tE=ft("circle-x",eE);const nE=[["ellipse",{cx:"12",cy:"5",rx:"9",ry:"3",key:"msslwz"}],["path",{d:"M3 12a9 3 0 0 0 5 2.69",key:"1ui2ym"}],["path",{d:"M21 9.3V5",key:"6k6cib"}],["path",{d:"M3 5v14a9 3 0 0 0 6.47 2.88",key:"i62tjy"}],["path",{d:"M12 12v4h4",key:"1bxaet"}],["path",{d:"M13 20a5 5 0 0 0 9-3 4.5 4.5 0 0 0-4.5-4.5c-1.33 0-2.54.54-3.41 1.41L12 16",key:"1f4ei9"}]],eh=ft("database-backup",nE);const rE=[["path",{d:"m12 14 4-4",key:"9kzdfg"}],["path",{d:"M3.34 19a10 10 0 1 1 17.32 0",key:"19p75a"}]],aE=ft("gauge",rE);const iE=[["path",{d:"M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4",key:"tonef"}],["path",{d:"M9 18c-4.51 2-5-2-7-2",key:"9comsn"}]],sE=ft("github",iE);const oE=[["polyline",{points:"22 12 16 12 14 15 10 15 8 12 2 12",key:"o97t9d"}],["path",{d:"M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z",key:"oot6mr"}]],th=ft("inbox",oE);const lE=[["path",{d:"M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z",key:"zw3jo"}],["path",{d:"M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12",key:"1wduqc"}],["path",{d:"M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17",key:"kqbvx6"}]],uE=ft("layers",lE);const cE=[["rect",{width:"7",height:"9",x:"3",y:"3",rx:"1",key:"10lvy0"}],["rect",{width:"7",height:"5",x:"14",y:"3",rx:"1",key:"16une8"}],["rect",{width:"7",height:"9",x:"14",y:"12",rx:"1",key:"1hutg5"}],["rect",{width:"7",height:"5",x:"3",y:"16",rx:"1",key:"ldoo1y"}]],fE=ft("layout-dashboard",cE);const dE=[["path",{d:"M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z",key:"a7tn18"}]],hE=ft("moon",dE);const mE=[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]],vu=ft("refresh-cw",mE);const pE=[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]],kb=ft("rotate-ccw",pE);const gE=[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]],Fb=ft("search",gE);const vE=[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]],yE=ft("sun",vE);const bE=[["path",{d:"M9 3H5a2 2 0 0 0-2 2v4m6-6h10a2 2 0 0 1 2 2v4M9 3v18m0 0h10a2 2 0 0 0 2-2V9M9 21H5a2 2 0 0 1-2-2V9m0 0h18",key:"gugj83"}]],Ub=ft("table-2",bE);const _E=[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}],["line",{x1:"10",x2:"10",y1:"11",y2:"17",key:"1uufr5"}],["line",{x1:"14",x2:"14",y1:"11",y2:"17",key:"xtxkd"}]],SE=ft("trash-2",_E);const xE=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],wE=ft("x",xE);const EE=[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]],CE=ft("zap",EE);var OE=Object.defineProperty,nh=(e,r)=>OE(e,"name",{value:r,configurable:!0});function xd(e,r){if(typeof e=="function")return e(r);e!=null&&(e.current=r)}nh(xd,"setRef");function Vb(...e){return r=>{let a=!1;const s=e.map(l=>{const c=xd(l,r);return!a&&typeof c=="function"&&(a=!0),c});if(a)return()=>{for(let l=0;lAE(e,"name",{value:r,configurable:!0});function yu(e){const r=z.forwardRef((a,s)=>{let{children:l,...c}=a,f=null,h=!1;const p=[];wd(l)&&typeof Nl=="function"&&(l=Nl(l._payload)),z.Children.forEach(l,_=>{if(Bb(_)){h=!0;const E=_;let x="child"in E.props?E.props.child:E.props.children;wd(x)&&typeof Nl=="function"&&(x=Nl(x._payload)),f=TE(E,x),p.push(f?.props?.children)}else p.push(_)}),f?f=z.cloneElement(f,void 0,p):!h&&z.Children.count(l)===1&&z.isValidElement(l)&&(f=l);const m=f?Hb(f):void 0,y=Ja(s,m);if(!f){if(l||l===0)throw new Error(h?ME(e):zE(e));return l}const v=Zb(c,f.props??{});return f.type!==z.Fragment&&(v.ref=s?y:m),z.cloneElement(f,v)});return r.displayName=`${e}.Slot`,r}Xn(yu,"createSlot");var rh=yu("Slot"),Lb=Symbol.for("radix.slottable");function RE(e){const r=Xn(a=>"child"in a?a.children(a.child):a.children,"Slottable");return r.displayName=`${e}.Slottable`,r.__radixId=Lb,r}Xn(RE,"createSlottable");var TE=Xn((e,r)=>{if("child"in e.props){const a=e.props.child;return z.isValidElement(a)?z.cloneElement(a,void 0,e.props.children(a.props.children)):null}return z.isValidElement(r)?r:null},"getSlottableElementFromSlottable");function Zb(e,r){const a={...r};for(const s in r){const l=e[s],c=r[s];/^on[A-Z]/.test(s)?l&&c?a[s]=(...h)=>{const p=c(...h);return l(...h),p}:l&&(a[s]=l):s==="style"?a[s]={...l,...c}:s==="className"&&(a[s]=[l,c].filter(Boolean).join(" "))}return{...e,...a}}Xn(Zb,"mergeProps");function Hb(e){let r=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,a=r&&"isReactWarning"in r&&r.isReactWarning;return a?e.ref:(r=Object.getOwnPropertyDescriptor(e,"ref")?.get,a=r&&"isReactWarning"in r&&r.isReactWarning,a?e.props.ref:e.props.ref||e.ref)}Xn(Hb,"getElementRef");function Bb(e){return z.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===Lb}Xn(Bb,"isSlottable");var DE=Symbol.for("react.lazy");function wd(e){return e!=null&&typeof e=="object"&&"$$typeof"in e&&e.$$typeof===DE&&"_payload"in e&&qb(e._payload)}Xn(wd,"isLazyComponent");function qb(e){return typeof e=="object"&&e!==null&&"then"in e}Xn(qb,"isPromiseLike");var zE=Xn(e=>`${e} failed to slot onto its children. Expected a single React element child or \`Slottable\`.`,"createSlotError"),ME=Xn(e=>`${e} failed to slot onto its \`Slottable\`. Expected \`Slottable\` to receive a single React element child.`,"createSlottableError"),Nl=fo[" use ".trim().toString()];function $b(e){var r,a,s="";if(typeof e=="string"||typeof e=="number")s+=e;else if(typeof e=="object")if(Array.isArray(e)){var l=e.length;for(r=0;rtypeof e=="boolean"?`${e}`:e===0?"0":e,Wv=Gb,Yb=(e,r)=>a=>{var s;if(r?.variants==null)return Wv(e,a?.class,a?.className);const{variants:l,defaultVariants:c}=r,f=Object.keys(l).map(m=>{const y=a?.[m],v=c?.[m];if(y===null)return null;const _=Jv(y)||Jv(v);return l[m][_]}),h=a&&Object.entries(a).reduce((m,y)=>{let[v,_]=y;return _===void 0||(m[v]=_),m},{}),p=r==null||(s=r.compoundVariants)===null||s===void 0?void 0:s.reduce((m,y)=>{let{class:v,className:_,...E}=y;return Object.entries(E).every(x=>{let[C,A]=x;return Array.isArray(A)?A.includes({...c,...h}[C]):{...c,...h}[C]===A})?[...m,v,_]:m},[]);return Wv(e,f,p,a?.class,a?.className)},NE=(e,r)=>{const a=new Array(e.length+r.length);for(let s=0;s({classGroupId:e,validator:r}),Ib=(e=new Map,r=null,a)=>({nextPart:e,validators:r,classGroupId:a}),su="-",ey=[],kE="arbitrary..",FE=e=>{const r=VE(e),{conflictingClassGroups:a,conflictingClassGroupModifiers:s}=e;return{getClassGroupId:f=>{if(f.startsWith("[")&&f.endsWith("]"))return UE(f);const h=f.split(su),p=h[0]===""&&h.length>1?1:0;return Qb(h,p,r)},getConflictingClassGroupIds:(f,h)=>{if(h){const p=s[f],m=a[f];return p?m?NE(m,p):p:m||ey}return a[f]||ey}}},Qb=(e,r,a)=>{if(e.length-r===0)return a.classGroupId;const l=e[r],c=a.nextPart.get(l);if(c){const m=Qb(e,r+1,c);if(m)return m}const f=a.validators;if(f===null)return;const h=r===0?e.join(su):e.slice(r).join(su),p=f.length;for(let m=0;me.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const r=e.slice(1,-1),a=r.indexOf(":"),s=r.slice(0,a);return s?kE+s:void 0})(),VE=e=>{const{theme:r,classGroups:a}=e;return LE(a,r)},LE=(e,r)=>{const a=Ib();for(const s in e){const l=e[s];ah(l,a,s,r)}return a},ah=(e,r,a,s)=>{const l=e.length;for(let c=0;c{if(typeof e=="string"){HE(e,r,a);return}if(typeof e=="function"){BE(e,r,a,s);return}qE(e,r,a,s)},HE=(e,r,a)=>{const s=e===""?r:Pb(r,e);s.classGroupId=a},BE=(e,r,a,s)=>{if($E(e)){ah(e(s),r,a,s);return}r.validators===null&&(r.validators=[]),r.validators.push(jE(a,e))},qE=(e,r,a,s)=>{const l=Object.entries(e),c=l.length;for(let f=0;f{let a=e;const s=r.split(su),l=s.length;for(let c=0;c"isThemeGetter"in e&&e.isThemeGetter===!0,GE=e=>{if(e<1)return{get:()=>{},set:()=>{}};let r=0,a=Object.create(null),s=Object.create(null);const l=(c,f)=>{a[c]=f,r++,r>e&&(r=0,s=a,a=Object.create(null))};return{get(c){let f=a[c];if(f!==void 0)return f;if((f=s[c])!==void 0)return l(c,f),f},set(c,f){c in a?a[c]=f:l(c,f)}}},Ed="!",ty=":",YE=[],ny=(e,r,a,s,l)=>({modifiers:e,hasImportantModifier:r,baseClassName:a,maybePostfixModifierPosition:s,isExternal:l}),IE=e=>{const{prefix:r,experimentalParseClassName:a}=e;let s=l=>{const c=[];let f=0,h=0,p=0,m;const y=l.length;for(let C=0;Cp?m-p:void 0;return ny(c,E,_,x)};if(r){const l=r+ty,c=s;s=f=>f.startsWith(l)?c(f.slice(l.length)):ny(YE,!1,f,void 0,!0)}if(a){const l=s;s=c=>a({className:c,parseClassName:l})}return s},QE=e=>{const r=new Map;return e.orderSensitiveModifiers.forEach((a,s)=>{r.set(a,1e6+s)}),a=>{const s=[];let l=[];for(let c=0;c0&&(l.sort(),s.push(...l),l=[]),s.push(f)):l.push(f)}return l.length>0&&(l.sort(),s.push(...l)),s}},PE=e=>({cache:GE(e.cacheSize),parseClassName:IE(e),sortModifiers:QE(e),postfixLookupClassGroupIds:XE(e),...FE(e)}),XE=e=>{const r=Object.create(null),a=e.postfixLookupClassGroups;if(a)for(let s=0;s{const{parseClassName:a,getClassGroupId:s,getConflictingClassGroupIds:l,sortModifiers:c,postfixLookupClassGroupIds:f}=r,h=[],p=e.trim().split(KE);let m="";for(let y=p.length-1;y>=0;y-=1){const v=p[y],{isExternal:_,modifiers:E,hasImportantModifier:x,baseClassName:C,maybePostfixModifierPosition:A}=a(v);if(_){m=v+(m.length>0?" "+m:m);continue}let Z=!!A,k;if(Z){const q=C.substring(0,A);k=s(q);const $=k&&f[k]?s(C):void 0;$&&$!==k&&(k=$,Z=!1)}else k=s(C);if(!k){if(!Z){m=v+(m.length>0?" "+m:m);continue}if(k=s(C),!k){m=v+(m.length>0?" "+m:m);continue}Z=!1}const P=E.length===0?"":E.length===1?E[0]:c(E).join(":"),H=x?P+Ed:P,G=H+k;if(h.indexOf(G)>-1)continue;h.push(G);const te=l(k,Z);for(let q=0;q0?" "+m:m)}return m},WE=(...e)=>{let r=0,a,s,l="";for(;r{if(typeof e=="string")return e;let r,a="";for(let s=0;s{let a,s,l,c;const f=p=>{const m=r.reduce((y,v)=>v(y),e());return a=PE(m),s=a.cache.get,l=a.cache.set,c=h,h(p)},h=p=>{const m=s(p);if(m)return m;const y=JE(p,a);return l(p,y),y};return c=f,(...p)=>c(WE(...p))},t2=[],Mt=e=>{const r=a=>a[e]||t2;return r.isThemeGetter=!0,r},Kb=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,Jb=/^\((?:(\w[\w-]*):)?(.+)\)$/i,n2=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,r2=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,a2=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,i2=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,s2=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,o2=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,ca=e=>n2.test(e),ke=e=>!!e&&!Number.isNaN(Number(e)),nr=e=>!!e&&Number.isInteger(Number(e)),Jf=e=>e.endsWith("%")&&ke(e.slice(0,-1)),Mr=e=>r2.test(e),Wb=()=>!0,l2=e=>a2.test(e)&&!i2.test(e),ih=()=>!1,u2=e=>s2.test(e),c2=e=>o2.test(e),f2=e=>!pe(e)&&!ge(e),d2=e=>e.startsWith("@container")&&(e[10]==="/"&&e[11]!==void 0||e[11]==="s"&&e[16]!==void 0&&e.startsWith("-size/",10)||e[11]==="n"&&e[18]!==void 0&&e.startsWith("-normal/",10)),h2=e=>ya(e,n0,ih),pe=e=>Kb.test(e),Ga=e=>ya(e,r0,l2),ry=e=>ya(e,S2,ke),m2=e=>ya(e,i0,Wb),p2=e=>ya(e,a0,ih),ay=e=>ya(e,e0,ih),g2=e=>ya(e,t0,c2),jl=e=>ya(e,s0,u2),ge=e=>Jb.test(e),Js=e=>Wa(e,r0),v2=e=>Wa(e,a0),iy=e=>Wa(e,e0),y2=e=>Wa(e,n0),b2=e=>Wa(e,t0),kl=e=>Wa(e,s0,!0),_2=e=>Wa(e,i0,!0),ya=(e,r,a)=>{const s=Kb.exec(e);return s?s[1]?r(s[1]):a(s[2]):!1},Wa=(e,r,a=!1)=>{const s=Jb.exec(e);return s?s[1]?r(s[1]):a:!1},e0=e=>e==="position"||e==="percentage",t0=e=>e==="image"||e==="url",n0=e=>e==="length"||e==="size"||e==="bg-size",r0=e=>e==="length",S2=e=>e==="number",a0=e=>e==="family-name",i0=e=>e==="number"||e==="weight",s0=e=>e==="shadow",x2=()=>{const e=Mt("color"),r=Mt("font"),a=Mt("text"),s=Mt("font-weight"),l=Mt("tracking"),c=Mt("leading"),f=Mt("breakpoint"),h=Mt("container"),p=Mt("spacing"),m=Mt("radius"),y=Mt("shadow"),v=Mt("inset-shadow"),_=Mt("text-shadow"),E=Mt("drop-shadow"),x=Mt("blur"),C=Mt("perspective"),A=Mt("aspect"),Z=Mt("ease"),k=Mt("animate"),P=()=>["auto","avoid","all","avoid-page","page","left","right","column"],H=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],G=()=>[...H(),ge,pe],te=()=>["auto","hidden","clip","visible","scroll"],q=()=>["auto","contain","none"],$=()=>[ge,pe,p],de=()=>[ca,"full","auto",...$()],ze=()=>[nr,"none","subgrid",ge,pe],Ne=()=>["auto",{span:["full",nr,ge,pe]},nr,ge,pe],ie=()=>[nr,"auto",ge,pe],be=()=>["auto","min","max","fr",ge,pe],Ae=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],Te=()=>["start","end","center","stretch","center-safe","end-safe"],j=()=>["auto",...$()],ee=()=>[ca,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...$()],he=()=>[ca,"screen","full","dvw","lvw","svw","min","max","fit",...$()],Ee=()=>[ca,"screen","full","lh","dvh","lvh","svh","min","max","fit",...$()],re=()=>[e,ge,pe],R=()=>[...H(),iy,ay,{position:[ge,pe]}],I=()=>["no-repeat",{repeat:["","x","y","space","round"]}],se=()=>["auto","cover","contain",y2,h2,{size:[ge,pe]}],ne=()=>[Jf,Js,Ga],le=()=>["","none","full",m,ge,pe],ue=()=>["",ke,Js,Ga],Oe=()=>["solid","dashed","dotted","double"],$e=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],me=()=>[ke,Jf,iy,ay],kt=()=>["","none",x,ge,pe],Jt=()=>["none",ke,ge,pe],Bt=()=>["none",ke,ge,pe],nn=()=>[ke,ge,pe],bt=()=>[ca,"full",...$()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[Mr],breakpoint:[Mr],color:[Wb],container:[Mr],"drop-shadow":[Mr],ease:["in","out","in-out"],font:[f2],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[Mr],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[Mr],shadow:[Mr],spacing:["px",ke],text:[Mr],"text-shadow":[Mr],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",ca,pe,ge,A]}],container:["container"],"container-type":[{"@container":["","normal","size",ge,pe]}],"container-named":[d2],columns:[{columns:[ke,pe,ge,h]}],"break-after":[{"break-after":P()}],"break-before":[{"break-before":P()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:G()}],overflow:[{overflow:te()}],"overflow-x":[{"overflow-x":te()}],"overflow-y":[{"overflow-y":te()}],overscroll:[{overscroll:q()}],"overscroll-x":[{"overscroll-x":q()}],"overscroll-y":[{"overscroll-y":q()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:de()}],"inset-x":[{"inset-x":de()}],"inset-y":[{"inset-y":de()}],start:[{"inset-s":de(),start:de()}],end:[{"inset-e":de(),end:de()}],"inset-bs":[{"inset-bs":de()}],"inset-be":[{"inset-be":de()}],top:[{top:de()}],right:[{right:de()}],bottom:[{bottom:de()}],left:[{left:de()}],visibility:["visible","invisible","collapse"],z:[{z:[nr,"auto",ge,pe]}],basis:[{basis:[ca,"full","auto",h,...$()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[ke,ca,"auto","initial","none",pe]}],grow:[{grow:["",ke,ge,pe]}],shrink:[{shrink:["",ke,ge,pe]}],order:[{order:[nr,"first","last","none",ge,pe]}],"grid-cols":[{"grid-cols":ze()}],"col-start-end":[{col:Ne()}],"col-start":[{"col-start":ie()}],"col-end":[{"col-end":ie()}],"grid-rows":[{"grid-rows":ze()}],"row-start-end":[{row:Ne()}],"row-start":[{"row-start":ie()}],"row-end":[{"row-end":ie()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":be()}],"auto-rows":[{"auto-rows":be()}],gap:[{gap:$()}],"gap-x":[{"gap-x":$()}],"gap-y":[{"gap-y":$()}],"justify-content":[{justify:[...Ae(),"normal"]}],"justify-items":[{"justify-items":[...Te(),"normal"]}],"justify-self":[{"justify-self":["auto",...Te()]}],"align-content":[{content:["normal",...Ae()]}],"align-items":[{items:[...Te(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...Te(),{baseline:["","last"]}]}],"place-content":[{"place-content":Ae()}],"place-items":[{"place-items":[...Te(),"baseline"]}],"place-self":[{"place-self":["auto",...Te()]}],p:[{p:$()}],px:[{px:$()}],py:[{py:$()}],ps:[{ps:$()}],pe:[{pe:$()}],pbs:[{pbs:$()}],pbe:[{pbe:$()}],pt:[{pt:$()}],pr:[{pr:$()}],pb:[{pb:$()}],pl:[{pl:$()}],m:[{m:j()}],mx:[{mx:j()}],my:[{my:j()}],ms:[{ms:j()}],me:[{me:j()}],mbs:[{mbs:j()}],mbe:[{mbe:j()}],mt:[{mt:j()}],mr:[{mr:j()}],mb:[{mb:j()}],ml:[{ml:j()}],"space-x":[{"space-x":$()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":$()}],"space-y-reverse":["space-y-reverse"],size:[{size:ee()}],"inline-size":[{inline:["auto",...he()]}],"min-inline-size":[{"min-inline":["auto",...he()]}],"max-inline-size":[{"max-inline":["none",...he()]}],"block-size":[{block:["auto",...Ee()]}],"min-block-size":[{"min-block":["auto",...Ee()]}],"max-block-size":[{"max-block":["none",...Ee()]}],w:[{w:[h,"screen",...ee()]}],"min-w":[{"min-w":[h,"screen","none",...ee()]}],"max-w":[{"max-w":[h,"screen","none","prose",{screen:[f]},...ee()]}],h:[{h:["screen","lh",...ee()]}],"min-h":[{"min-h":["screen","lh","none",...ee()]}],"max-h":[{"max-h":["screen","lh",...ee()]}],"font-size":[{text:["base",a,Js,Ga]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[s,_2,m2]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",Jf,pe]}],"font-family":[{font:[v2,p2,r]}],"font-features":[{"font-features":[pe]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[l,ge,pe]}],"line-clamp":[{"line-clamp":[ke,"none",ge,ry]}],leading:[{leading:[c,...$()]}],"list-image":[{"list-image":["none",ge,pe]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",ge,pe]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:re()}],"text-color":[{text:re()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...Oe(),"wavy"]}],"text-decoration-thickness":[{decoration:[ke,"from-font","auto",ge,Ga]}],"text-decoration-color":[{decoration:re()}],"underline-offset":[{"underline-offset":[ke,"auto",ge,pe]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:$()}],"tab-size":[{tab:[nr,ge,pe]}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",ge,pe]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",ge,pe]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:R()}],"bg-repeat":[{bg:I()}],"bg-size":[{bg:se()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},nr,ge,pe],radial:["",ge,pe],conic:[nr,ge,pe]},b2,g2]}],"bg-color":[{bg:re()}],"gradient-from-pos":[{from:ne()}],"gradient-via-pos":[{via:ne()}],"gradient-to-pos":[{to:ne()}],"gradient-from":[{from:re()}],"gradient-via":[{via:re()}],"gradient-to":[{to:re()}],rounded:[{rounded:le()}],"rounded-s":[{"rounded-s":le()}],"rounded-e":[{"rounded-e":le()}],"rounded-t":[{"rounded-t":le()}],"rounded-r":[{"rounded-r":le()}],"rounded-b":[{"rounded-b":le()}],"rounded-l":[{"rounded-l":le()}],"rounded-ss":[{"rounded-ss":le()}],"rounded-se":[{"rounded-se":le()}],"rounded-ee":[{"rounded-ee":le()}],"rounded-es":[{"rounded-es":le()}],"rounded-tl":[{"rounded-tl":le()}],"rounded-tr":[{"rounded-tr":le()}],"rounded-br":[{"rounded-br":le()}],"rounded-bl":[{"rounded-bl":le()}],"border-w":[{border:ue()}],"border-w-x":[{"border-x":ue()}],"border-w-y":[{"border-y":ue()}],"border-w-s":[{"border-s":ue()}],"border-w-e":[{"border-e":ue()}],"border-w-bs":[{"border-bs":ue()}],"border-w-be":[{"border-be":ue()}],"border-w-t":[{"border-t":ue()}],"border-w-r":[{"border-r":ue()}],"border-w-b":[{"border-b":ue()}],"border-w-l":[{"border-l":ue()}],"divide-x":[{"divide-x":ue()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":ue()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...Oe(),"hidden","none"]}],"divide-style":[{divide:[...Oe(),"hidden","none"]}],"border-color":[{border:re()}],"border-color-x":[{"border-x":re()}],"border-color-y":[{"border-y":re()}],"border-color-s":[{"border-s":re()}],"border-color-e":[{"border-e":re()}],"border-color-bs":[{"border-bs":re()}],"border-color-be":[{"border-be":re()}],"border-color-t":[{"border-t":re()}],"border-color-r":[{"border-r":re()}],"border-color-b":[{"border-b":re()}],"border-color-l":[{"border-l":re()}],"divide-color":[{divide:re()}],"outline-style":[{outline:[...Oe(),"none","hidden"]}],"outline-offset":[{"outline-offset":[ke,ge,pe]}],"outline-w":[{outline:["",ke,Js,Ga]}],"outline-color":[{outline:re()}],shadow:[{shadow:["","none",y,kl,jl]}],"shadow-color":[{shadow:re()}],"inset-shadow":[{"inset-shadow":["none",v,kl,jl]}],"inset-shadow-color":[{"inset-shadow":re()}],"ring-w":[{ring:ue()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:re()}],"ring-offset-w":[{"ring-offset":[ke,Ga]}],"ring-offset-color":[{"ring-offset":re()}],"inset-ring-w":[{"inset-ring":ue()}],"inset-ring-color":[{"inset-ring":re()}],"text-shadow":[{"text-shadow":["none",_,kl,jl]}],"text-shadow-color":[{"text-shadow":re()}],opacity:[{opacity:[ke,ge,pe]}],"mix-blend":[{"mix-blend":[...$e(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":$e()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[ke]}],"mask-image-linear-from-pos":[{"mask-linear-from":me()}],"mask-image-linear-to-pos":[{"mask-linear-to":me()}],"mask-image-linear-from-color":[{"mask-linear-from":re()}],"mask-image-linear-to-color":[{"mask-linear-to":re()}],"mask-image-t-from-pos":[{"mask-t-from":me()}],"mask-image-t-to-pos":[{"mask-t-to":me()}],"mask-image-t-from-color":[{"mask-t-from":re()}],"mask-image-t-to-color":[{"mask-t-to":re()}],"mask-image-r-from-pos":[{"mask-r-from":me()}],"mask-image-r-to-pos":[{"mask-r-to":me()}],"mask-image-r-from-color":[{"mask-r-from":re()}],"mask-image-r-to-color":[{"mask-r-to":re()}],"mask-image-b-from-pos":[{"mask-b-from":me()}],"mask-image-b-to-pos":[{"mask-b-to":me()}],"mask-image-b-from-color":[{"mask-b-from":re()}],"mask-image-b-to-color":[{"mask-b-to":re()}],"mask-image-l-from-pos":[{"mask-l-from":me()}],"mask-image-l-to-pos":[{"mask-l-to":me()}],"mask-image-l-from-color":[{"mask-l-from":re()}],"mask-image-l-to-color":[{"mask-l-to":re()}],"mask-image-x-from-pos":[{"mask-x-from":me()}],"mask-image-x-to-pos":[{"mask-x-to":me()}],"mask-image-x-from-color":[{"mask-x-from":re()}],"mask-image-x-to-color":[{"mask-x-to":re()}],"mask-image-y-from-pos":[{"mask-y-from":me()}],"mask-image-y-to-pos":[{"mask-y-to":me()}],"mask-image-y-from-color":[{"mask-y-from":re()}],"mask-image-y-to-color":[{"mask-y-to":re()}],"mask-image-radial":[{"mask-radial":[ge,pe]}],"mask-image-radial-from-pos":[{"mask-radial-from":me()}],"mask-image-radial-to-pos":[{"mask-radial-to":me()}],"mask-image-radial-from-color":[{"mask-radial-from":re()}],"mask-image-radial-to-color":[{"mask-radial-to":re()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":H()}],"mask-image-conic-pos":[{"mask-conic":[ke]}],"mask-image-conic-from-pos":[{"mask-conic-from":me()}],"mask-image-conic-to-pos":[{"mask-conic-to":me()}],"mask-image-conic-from-color":[{"mask-conic-from":re()}],"mask-image-conic-to-color":[{"mask-conic-to":re()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:R()}],"mask-repeat":[{mask:I()}],"mask-size":[{mask:se()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",ge,pe]}],filter:[{filter:["","none",ge,pe]}],blur:[{blur:kt()}],brightness:[{brightness:[ke,ge,pe]}],contrast:[{contrast:[ke,ge,pe]}],"drop-shadow":[{"drop-shadow":["","none",E,kl,jl]}],"drop-shadow-color":[{"drop-shadow":re()}],grayscale:[{grayscale:["",ke,ge,pe]}],"hue-rotate":[{"hue-rotate":[ke,ge,pe]}],invert:[{invert:["",ke,ge,pe]}],saturate:[{saturate:[ke,ge,pe]}],sepia:[{sepia:["",ke,ge,pe]}],"backdrop-filter":[{"backdrop-filter":["","none",ge,pe]}],"backdrop-blur":[{"backdrop-blur":kt()}],"backdrop-brightness":[{"backdrop-brightness":[ke,ge,pe]}],"backdrop-contrast":[{"backdrop-contrast":[ke,ge,pe]}],"backdrop-grayscale":[{"backdrop-grayscale":["",ke,ge,pe]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[ke,ge,pe]}],"backdrop-invert":[{"backdrop-invert":["",ke,ge,pe]}],"backdrop-opacity":[{"backdrop-opacity":[ke,ge,pe]}],"backdrop-saturate":[{"backdrop-saturate":[ke,ge,pe]}],"backdrop-sepia":[{"backdrop-sepia":["",ke,ge,pe]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":$()}],"border-spacing-x":[{"border-spacing-x":$()}],"border-spacing-y":[{"border-spacing-y":$()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",ge,pe]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[ke,"initial",ge,pe]}],ease:[{ease:["linear","initial",Z,ge,pe]}],delay:[{delay:[ke,ge,pe]}],animate:[{animate:["none",k,ge,pe]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[C,ge,pe]}],"perspective-origin":[{"perspective-origin":G()}],rotate:[{rotate:Jt()}],"rotate-x":[{"rotate-x":Jt()}],"rotate-y":[{"rotate-y":Jt()}],"rotate-z":[{"rotate-z":Jt()}],scale:[{scale:Bt()}],"scale-x":[{"scale-x":Bt()}],"scale-y":[{"scale-y":Bt()}],"scale-z":[{"scale-z":Bt()}],"scale-3d":["scale-3d"],skew:[{skew:nn()}],"skew-x":[{"skew-x":nn()}],"skew-y":[{"skew-y":nn()}],transform:[{transform:[ge,pe,"","none","gpu","cpu"]}],"transform-origin":[{origin:G()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:bt()}],"translate-x":[{"translate-x":bt()}],"translate-y":[{"translate-y":bt()}],"translate-z":[{"translate-z":bt()}],"translate-none":["translate-none"],zoom:[{zoom:[nr,ge,pe]}],accent:[{accent:re()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:re()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",ge,pe]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scrollbar-thumb-color":[{"scrollbar-thumb":re()}],"scrollbar-track-color":[{"scrollbar-track":re()}],"scrollbar-gutter":[{"scrollbar-gutter":["auto","stable","both"]}],"scrollbar-w":[{scrollbar:["auto","thin","none"]}],"scroll-m":[{"scroll-m":$()}],"scroll-mx":[{"scroll-mx":$()}],"scroll-my":[{"scroll-my":$()}],"scroll-ms":[{"scroll-ms":$()}],"scroll-me":[{"scroll-me":$()}],"scroll-mbs":[{"scroll-mbs":$()}],"scroll-mbe":[{"scroll-mbe":$()}],"scroll-mt":[{"scroll-mt":$()}],"scroll-mr":[{"scroll-mr":$()}],"scroll-mb":[{"scroll-mb":$()}],"scroll-ml":[{"scroll-ml":$()}],"scroll-p":[{"scroll-p":$()}],"scroll-px":[{"scroll-px":$()}],"scroll-py":[{"scroll-py":$()}],"scroll-ps":[{"scroll-ps":$()}],"scroll-pe":[{"scroll-pe":$()}],"scroll-pbs":[{"scroll-pbs":$()}],"scroll-pbe":[{"scroll-pbe":$()}],"scroll-pt":[{"scroll-pt":$()}],"scroll-pr":[{"scroll-pr":$()}],"scroll-pb":[{"scroll-pb":$()}],"scroll-pl":[{"scroll-pl":$()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",ge,pe]}],fill:[{fill:["none",...re()]}],"stroke-w":[{stroke:[ke,Js,Ga,ry]}],stroke:[{stroke:["none",...re()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{"container-named":["container-type"],overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","inset-bs","inset-be","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pbs","pbe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mbs","mbe","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-bs","border-w-be","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-bs","border-color-be","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mbs","scroll-mbe","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pbs","scroll-pbe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},postfixLookupClassGroups:["container-type"],orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}},w2=e2(x2);function Pe(...e){return w2(Gb(e))}const E2=Yb("inline-flex items-center justify-center rounded-md border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none transition-[color,box-shadow] overflow-hidden",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground",secondary:"border-transparent bg-secondary text-secondary-foreground",destructive:"border-transparent bg-destructive/10 text-destructive dark:bg-destructive/20",success:"border-transparent bg-success/10 text-success dark:bg-success/15",warning:"border-transparent bg-warning/15 text-warning",outline:"text-foreground"}},defaultVariants:{variant:"default"}});function ma({className:e,variant:r,asChild:a=!1,...s}){const l=a?rh:"span";return S.jsx(l,{"data-slot":"badge",className:Pe(E2({variant:r}),e),...s})}function jr(e){return e==null?"0":e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e4?`${(e/1e3).toFixed(1)}k`:Math.round(e).toLocaleString()}function C2(e){if(e==null||e<=0)return"0 B";const r=["B","KiB","MiB","GiB","TiB"];let a=0;for(;e>=1024&&a=100||a===0?0:1)} ${r[a]}`}function O2(e){if(e==null||e<0)return"–";const r=Math.floor(e);return r<60?`${r}s`:r<3600?`${Math.floor(r/60)}m ${r%60}s`:r<86400?`${Math.floor(r/3600)}h ${Math.floor(r%3600/60)}m`:`${Math.floor(r/86400)}d ${Math.floor(r%86400/3600)}h`}function A2(e){return e==null||e<.05?"0/s":e<10?`${e.toFixed(1)}/s`:`${jr(e)}/s`}function o0(e){if(!e)return"–";const r=(Date.now()-new Date(e).getTime())/1e3;return r<60?`${Math.max(0,Math.floor(r))}s ago`:r<3600?`${Math.floor(r/60)}m ago`:r<86400?`${Math.floor(r/3600)}h ago`:`${Math.floor(r/86400)}d ago`}const R2=[{id:"overview",label:"Overview",icon:fE},{id:"tables",label:"Tables",icon:Ub},{id:"backfill",label:"Backfill",icon:eh},{id:"dlq",label:"Dead letters",icon:th}];function T2(){const r=document.documentElement.classList.toggle("dark");localStorage.setItem("gtc-theme",r?"dark":"light")}function D2({page:e,onNavigate:r,stats:a,dlqCount:s,title:l,description:c,actions:f,children:h}){return S.jsxs("div",{className:"flex min-h-screen",children:[S.jsxs("aside",{className:"bg-sidebar text-sidebar-foreground border-sidebar-border fixed inset-y-0 left-0 z-30 flex w-56 flex-col border-r",children:[S.jsxs("div",{className:"flex items-center gap-2.5 px-4 pt-5 pb-4",children:[S.jsx("div",{className:"flex size-8 items-center justify-center rounded-lg bg-gradient-to-br from-amber-400 to-orange-500 text-white shadow-sm",children:S.jsx(CE,{className:"size-4.5",fill:"currentColor",strokeWidth:0})}),S.jsxs("div",{className:"leading-tight",children:[S.jsx("div",{className:"text-sm font-bold tracking-tight",children:"GTC"}),S.jsx("div",{className:"text-sidebar-foreground/60 text-[10px] font-medium tracking-wide uppercase",children:"Change Data Capture"})]})]}),S.jsx("nav",{className:"flex flex-1 flex-col gap-0.5 px-2.5 pt-2",children:R2.map(({id:p,label:m,icon:y})=>S.jsxs("button",{type:"button",onClick:()=>r(p),className:Pe("flex cursor-pointer items-center gap-2.5 rounded-md px-2.5 py-2 text-[13px] font-medium transition-colors",e===p?"bg-sidebar-accent text-sidebar-accent-foreground":"text-sidebar-foreground/65 hover:bg-sidebar-accent/60 hover:text-sidebar-accent-foreground"),children:[S.jsx(y,{className:"size-4",strokeWidth:e===p?2.25:2}),S.jsx("span",{className:"flex-1 text-left",children:m}),p==="dlq"&&s>0&&S.jsx(ma,{variant:"destructive",className:"h-5 min-w-5 px-1.5 tabular-nums",children:s})]},p))}),S.jsxs("div",{className:"border-sidebar-border space-y-3 border-t px-4 py-4",children:[S.jsxs("div",{className:"text-sidebar-foreground/60 flex items-center justify-between text-xs",children:[S.jsxs("span",{className:"flex items-center gap-1.5",children:[S.jsx("span",{className:Pe("relative flex size-2 rounded-full",a?.streaming?"bg-emerald-500":"bg-red-500"),children:a?.streaming&&S.jsx("span",{className:"absolute inline-flex size-full animate-ping rounded-full bg-emerald-500 opacity-60"})}),a?.streaming?"Streaming":"Disconnected"]}),S.jsx("span",{className:"tabular-nums",children:a?`up ${O2(a.uptime_seconds)}`:""})]}),S.jsxs("div",{className:"text-sidebar-foreground/60 flex items-center gap-1 text-xs",children:[S.jsxs("a",{href:"/metrics",target:"_blank",rel:"noreferrer",className:"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground flex items-center gap-1.5 rounded-md px-2 py-1",children:[S.jsx(Pw,{className:"size-3.5"})," Metrics"]}),S.jsxs("a",{href:"https://github.com/emoss08/gtc",target:"_blank",rel:"noreferrer",className:"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground flex items-center gap-1.5 rounded-md px-2 py-1",children:[S.jsx(sE,{className:"size-3.5"})," GitHub"]}),S.jsxs("button",{type:"button",onClick:T2,className:"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground ml-auto cursor-pointer rounded-md p-1.5","aria-label":"Toggle theme",children:[S.jsx(yE,{className:"size-3.5 dark:hidden"}),S.jsx(hE,{className:"hidden size-3.5 dark:block"})]})]})]})]}),S.jsxs("div",{className:"ml-56 flex min-w-0 flex-1 flex-col",children:[S.jsx("header",{className:"bg-background/80 sticky top-0 z-20 border-b backdrop-blur",children:S.jsxs("div",{className:"mx-auto flex h-14 w-full max-w-6xl items-center justify-between gap-4 px-6",children:[S.jsxs("div",{className:"min-w-0",children:[S.jsx("h1",{className:"truncate text-[15px] font-semibold tracking-tight",children:l}),S.jsx("p",{className:"text-muted-foreground truncate text-xs",children:c})]}),S.jsxs("div",{className:"flex shrink-0 items-center gap-2",children:[a&&S.jsxs(S.Fragment,{children:[S.jsxs(ma,{variant:"outline",className:"text-muted-foreground hidden font-mono text-[11px] sm:inline-flex",children:[S.jsx(jb,{className:"size-3"}),a.current_lsn]}),S.jsx(ma,{variant:a.ready?"success":"warning",children:a.ready?"Ready":"Not ready"})]}),f]})]})}),S.jsx("main",{className:"mx-auto w-full max-w-6xl flex-1 px-6 py-6",children:h})]})]})}function z2(e){return M2(e)||typeof e=="function"||N2(e)}function M2(e){return typeof e=="function"&&(()=>{const r=Object.getPrototypeOf(e);return r.prototype&&r.prototype.isReactComponent})()}function N2(e){return typeof e=="object"&&typeof e.$$typeof=="symbol"&&["react.memo","react.forward_ref"].includes(e.$$typeof.description)}function Fl(e,r){return e==null?null:z2(e)?B.createElement(e,r):e}function Xl(e){if("cell"in e&&e.cell){const r=e.cell,a=r.column.columnDef,s=r,l=a;return s.getIsAggregated?.()?Fl(l.aggregatedCell??a.cell,r.getContext()):s.getIsPlaceholder?.()?null:Fl(a.cell,r.getContext())}return"header"in e&&e.header?Fl(e.header.column.columnDef.header,e.header.getContext()):"footer"in e&&e.footer?Fl(e.footer.column.columnDef.footer,e.footer.getContext()):null}function j2({update:e,notify:r,unwatched:a}){return{link:s,unlink:l,propagate:c,checkDirty:f,shallowPropagate:h};function s(m,y,v){const _=y.depsTail;if(_!==void 0&&_.dep===m)return;const E=_!==void 0?_.nextDep:y.deps;if(E!==void 0&&E.dep===m){E.version=v,y.depsTail=E;return}const x=m.subsTail;if(x!==void 0&&x.version===v&&x.sub===y)return;const C=y.depsTail=m.subsTail={version:v,dep:m,sub:y,prevDep:_,nextDep:E,prevSub:x,nextSub:void 0};E!==void 0&&(E.prevDep=C),_!==void 0?_.nextDep=C:y.deps=C,x!==void 0?x.nextSub=C:m.subs=C}function l(m,y=m.sub){const v=m.dep,_=m.prevDep,E=m.nextDep,x=m.nextSub,C=m.prevSub;return E!==void 0?E.prevDep=_:y.depsTail=_,_!==void 0?_.nextDep=E:y.deps=E,x!==void 0?x.prevSub=C:v.subsTail=C,C!==void 0?C.nextSub=x:(v.subs=x)===void 0&&a(v),E}function c(m){let y=m.nextSub,v;e:do{const _=m.sub;let E=_.flags;if(E&60?E&12?E&4?!(E&48)&&p(m,_)?(_.flags=E|40,E&=1):E=0:_.flags=E&-9|32:E=0:_.flags=E|32,E&2&&r(_),E&1){const x=_.subs;if(x!==void 0){const C=(m=x).nextSub;C!==void 0&&(v={value:y,prev:v},y=C);continue}}if((m=y)!==void 0){y=m.nextSub;continue}for(;v!==void 0;)if(m=v.value,v=v.prev,m!==void 0){y=m.nextSub;continue e}break}while(!0)}function f(m,y){let v,_=0,E=!1;e:do{const x=m.dep,C=x.flags;if(y.flags&16)E=!0;else if((C&17)===17){if(e(x)){const A=x.subs;A.nextSub!==void 0&&h(A),E=!0}}else if((C&33)===33){(m.nextSub!==void 0||m.prevSub!==void 0)&&(v={value:m,prev:v}),m=x.deps,y=x,++_;continue}if(!E){const A=m.nextDep;if(A!==void 0){m=A;continue}}for(;_--;){const A=y.subs,Z=A.nextSub!==void 0;if(Z?(m=v.value,v=v.prev):m=A,E){if(e(y)){Z&&h(A),y=m.sub;continue}E=!1}else y.flags&=-33;y=m.sub;const k=m.nextDep;if(k!==void 0){m=k;continue e}}return E}while(!0)}function h(m){do{const y=m.sub,v=y.flags;(v&48)===32&&(y.flags=v|16,(v&6)===2&&r(y))}while((m=m.nextSub)!==void 0)}function p(m,y){let v=y.depsTail;for(;v!==void 0;){if(v===m)return!0;v=v.prevDep}return!1}}function k2(e,r,a){const s=typeof e=="object",l=s?e:void 0;return{next:(s?e.next:e)?.bind(l),error:(s?e.error:r)?.bind(l),complete:(s?e.complete:a)?.bind(l)}}const Cd=[];let Kl=0;const{link:sy,unlink:F2,propagate:U2,checkDirty:l0,shallowPropagate:oy}=j2({update(e){return e._update()},notify(e){Cd[Od++]=e,e.flags&=-3},unwatched(e){e.depsTail!==void 0&&(e.depsTail=void 0,e.flags=17,ou(e))}});let Ul=0,Od=0,ar,Ad=0;function V2(e){try{++Ad,e()}finally{--Ad||u0()}}function ou(e){const r=e.depsTail;let a=r!==void 0?r.nextDep:e.deps;for(;a!==void 0;)a=F2(a,e)}function u0(){if(!(Ad>0)){for(;Ul{l.get(),h.current?f.next?.(l._snapshot):h.current=!0});return{unsubscribe:()=>{p.stop()}}},_update(c){const f=ar,h=r?.compare??Object.is;if(a)ar=l,++Kl,l.depsTail=void 0;else if(c===void 0)return!1;a&&(l.flags=5);try{const p=l._snapshot,m=typeof c=="function"?c(p):c===void 0&&a?s(p):c;return p===void 0||!h(p,m)?(l._snapshot=m,!0):!1}finally{ar=f,a&&(l.flags&=-5),ou(l)}}};return a?(l.flags=17,l.get=function(){const c=l.flags;if(c&16||c&32&&l0(l.deps,l)){if(l._update()){const f=l.subs;f!==void 0&&oy(f)}}else c&32&&(l.flags=c&-33);return ar!==void 0&&sy(l,ar,Kl),l._snapshot}):l.set=function(c){if(l._update(c)){const f=l.subs;f!==void 0&&(U2(f),oy(f),u0())}},l}function Z2(e){const r=()=>{const s=ar;ar=a,++Kl,a.depsTail=void 0,a.flags=6;try{return e()}finally{ar=s,a.flags&=-5,ou(a)}},a={deps:void 0,depsTail:void 0,subs:void 0,subsTail:void 0,flags:6,notify(){const s=this.flags;s&16||s&32&&l0(this.deps,this)?r():this.flags=2},stop(){this.flags=0,this.depsTail=void 0,ou(this)}};return r(),a}function to(e,r){if(Object.is(e,r))return!0;if(typeof e!="object"||e===null||typeof r!="object"||r===null)return!1;if(e instanceof Map&&r instanceof Map){if(e.size!==r.size)return!1;for(const[s,l]of e)if(!r.has(s)||!Object.is(l,r.get(s)))return!1;return!0}if(e instanceof Set&&r instanceof Set){if(e.size!==r.size)return!1;for(const s of e)if(!r.has(s))return!1;return!0}if(e instanceof Date&&r instanceof Date)return e.getTime()===r.getTime();const a=ly(e);if(a.length!==ly(r).length)return!1;for(let s=0;s"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?m:h;return nd.useSyncExternalStore=e.useSyncExternalStore!==void 0?e.useSyncExternalStore:y,nd}var cy;function B2(){return cy||(cy=1,td.exports=H2()),td.exports}var fy;function q2(){if(fy)return ed;fy=1;var e=co(),r=B2();function a(m,y){return m===y&&(m!==0||1/m===1/y)||m!==m&&y!==y}var s=typeof Object.is=="function"?Object.is:a,l=r.useSyncExternalStore,c=e.useRef,f=e.useEffect,h=e.useMemo,p=e.useDebugValue;return ed.useSyncExternalStoreWithSelector=function(m,y,v,_,E){var x=c(null);if(x.current===null){var C={hasValue:!1,value:null};x.current=C}else C=x.current;x=h(function(){function Z(te){if(!k){if(k=!0,P=te,te=_(te),E!==void 0&&C.hasValue){var q=C.value;if(E(q,te))return H=q}return H=te}if(q=H,s(P,te))return q;var $=_(te);return E!==void 0&&E(q,$)?(P=te,q):(P=te,H=$)}var k=!1,P,H,G=v===void 0?null:v;return[function(){return Z(y())},G===null?void 0:function(){return Z(G())}]},[y,v,_,E]);var A=l(m,x[0],x[1]);return f(function(){C.hasValue=!0,C.value=A},[A]),p(A),A},ed}var dy;function $2(){return dy||(dy=1,Wf.exports=q2()),Wf.exports}var G2=$2();function Y2(e,r){return e===r}function c0(e,r=s=>s,a){const s=a?.compare??Y2,l=z.useCallback(f=>{const{unsubscribe:h}=e.subscribe(f);return h},[e]),c=z.useCallback(()=>e.get(),[e]);return G2.useSyncExternalStoreWithSelector(l,c,c,r,s)}function I2(e){const r=c0(e.source,e.selector,{compare:to});return typeof e.children=="function"?e.children(r):e.children}function Q2(e){const r=e;return Object.defineProperty(e,"state",{get(){return e.get()}}),"set"in e&&(r.setState=e.set.bind(e)),r}function P2(e){const{createAtom:r,batch:a}=e,s=r(0);return{createOptionsStore:!1,wrapExternalAtoms:!1,addSubscription:()=>{throw new Error("Feature not supported in current reactivity implementation")},unmount:()=>{throw new Error("Feature not supported in current reactivity implementation")},schedule:e.schedule??(l=>queueMicrotask(l)),batch:a,untrack:l=>l(),createReadonlyAtom:(l,c)=>{const f=c?.compare??Object.is;let h=!1,p;const m=()=>{const v=l();return(!h||!f(p,v))&&(p=v,h=!0),p},y=r(()=>(s.get(),m()),{compare:f});return{get:m,subscribe:y.subscribe.bind(y)}},createWritableAtom:(l,c)=>r(l,{compare:c?.compare}),commit:()=>{s.set(l=>l+1)}}}function X2(e,r=Object.is){let a=!1,s;return{get:e.get,markCommitted:l=>{s=l,a=!0},subscribe:l=>e.subscribe(c=>{(!a||!r(s,c))&&l(c)})}}function K2(){return P2({createAtom:L2,batch:V2})}function ts(e,r){return typeof e=="function"?e(r):e}function Ur(e){if(Array.isArray(e))return e.map(Ur);if(e&&typeof e=="object"){const r=Object.getPrototypeOf(e);if(r!==Object.prototype&&r!==null)return e;const a=r===null?Ht():{},s=Object.keys(e);for(let l=0;l{(r.options.atoms?.[e]??r.baseAtoms[e]).set(s=>ts(a,s))}}function hy(e){if(typeof e!="object"||e===null)return!1;if(Array.isArray(e))return!0;const r=Object.getPrototypeOf(e);return r===Object.prototype||r===null}function my(e){return Reflect.ownKeys(e).filter(r=>Object.prototype.propertyIsEnumerable.call(e,r))}const W2=3;function eC(e,r){return f0(e,r,W2)}function f0(e,r,a){if(Object.is(e,r))return!0;if(a<=0||!hy(e)||!hy(r)||(Array.isArray(e)||Array.isArray(r))&&(!Array.isArray(e)||!Array.isArray(r)||e.length!==r.length))return!1;const s=my(e),l=my(r);if(s.length!==l.length)return!1;const c=e,f=r;for(let h=0;h{const h=ts(a,f);return s(f,h)?f:h})}function oh(e){return e instanceof Function}function tC(e,r){const a=[],s=l=>{l.forEach(c=>{a.push(c);const f=r(c);f.length&&s(f)})};return s(e),a}const nC=({fn:e,memoDeps:r,onAfterCompare:a,onAfterUpdate:s,onBeforeCompare:l,onBeforeUpdate:c})=>{let f=[],h;return m=>{l?.();const y=r?.(m);let v=!y||y.length!==f?.length;if(!v&&y){for(let _=0;_{if(!r){r=!0;return}e()}}function po({feature:e,fnName:r,objectId:a,onAfterUpdate:s,table:l,...c}){const f=()=>{if(!s)return;const{schedule:p,untrack:m}=l._reactivity;p(()=>m(()=>s()))};return nC({...c,...{onAfterUpdate:()=>{f()}}})}function d0(e,r="_"){const[a,s]=e.split(r);return{fnKey:s,fnName:`${a}.${s}`,parentName:a}}function ba(e,r,a){for(const[s,{fn:l,memoDeps:c}]of Object.entries(a)){const{fnKey:f,fnName:h}=d0(s);r[f]=c?po({memoDeps:c,fn:l,fnName:h,table:r,feature:e}):l}}function ei(e,r,a,s){for(const[l,{fn:c,memoDeps:f}]of Object.entries(s)){const{fnKey:h,fnName:p}=d0(l);if(f){const m=`_memo_${h}`;r[h]=function(...y){if(!this[m]){const v=this;this[m]=po({memoDeps:_=>f(v,_),fn:(..._)=>c(v,..._),fnName:p,objectId:v.id,table:a,feature:e})}return this[m](...y)}}else r[h]=function(...m){return c(this,...m)}}}function sr(e,r,a,...s){return e[r]?.(...s)??a(e,...s)}function rC(e){return e.row.getValue(e.column.id)}function aC(e){return e.getValue()??e.table.options.renderFallbackValue}function iC(e){return{table:e.table,column:e.column,row:e.row,cell:e,getValue:()=>e.getValue(),renderValue:()=>e.renderValue()}}const sC={assignCellPrototype:(e,r)=>{ei("coreCellsFeature",e,r,{cell_getValue:{fn:a=>rC(a)},cell_renderValue:{fn:a=>aC(a)},cell_getContext:{fn:a=>iC(a),memoDeps:a=>[a]}})}};function oC(e){if(!e._headerPrototype){e._headerPrototype={table:e};const r=Object.values(e._features);for(let a=0;asr(s,"getIsVisible",Pa)):(bu(r,e.id)?r[e.id]:void 0)??!0}function uC(e){return e.getAllLeafColumns().filter(r=>sr(r,"getIsVisible",Pa))}function m0(e,r=1){let a=r;for(let s=0;s0&&p0(h,r-1,a,s,l,c)}function g0(e){for(let r=0;r{let x=E;for(let C=0;C<_.length;C++){const A=_[C];x=x?.[A]}return x}}else p=_=>_[l.accessorKey];if(!h)throw new Error;const m=hC(e),y=Object.create(m);y.accessorFn=p,y.columnDef=l,y.columns=[],y.depth=a,y.id=`${String(h)}`,y.parent=s;const v=e._columnInstanceInitFns;for(let _=0;_{let s=[];if(!r?.length)s=a;else{const l=new Map;for(let c=0;c!a.includes(h.id));if(s==="remove")return l;const c=new Map;for(let h=0;hr.getFlatColumns())]}function vC(e){if(e.columns.length){const r=e.columns.flatMap(a=>a.getLeafColumns());return sr(e.table,"getOrderColumns",v0)(r)}return[e]}function yC(e){return{header:r=>{const a=r.header.column.columnDef;return a.accessorKey?a.accessorKey:a.accessorFn?a.id:null},cell:r=>r.renderValue()?.toString?.()??null,...Object.values(e._features).reduce((r,a)=>Object.assign(r,a.getDefaultColumnDef?.()),{}),...e.options.defaultColumn}}function y0(e,r,a,s=0){const l=new Array(r.length);for(let c=0;cr.getFlatColumns())}function SC(e){const r=Ht(),a=e.getAllFlatColumns();for(let s=0;sa.getLeafColumns());return sr(e,"getOrderColumns",v0)(r)}function wC(e){const r=Ht(),a=e.getAllLeafColumns();for(let s=0;s{ei("coreColumnsFeature",e,r,{column_getFlatColumns:{fn:a=>gC(a),memoDeps:a=>[a.table.options.columns]},column_getLeafColumns:{fn:a=>vC(a),memoDeps:a=>[a.table.atoms.columnOrder?.get(),a.table.atoms.grouping?.get(),a.table.options.columns,a.table.options.groupedColumnMode]}})},constructTableAPIs:e=>{ba("coreColumnsFeature",e,{table_getDefaultColumnDef:{fn:()=>yC(e),memoDeps:()=>[e.options.defaultColumn]},table_getAllColumns:{fn:()=>bC(e),memoDeps:()=>[e.options.columns]},table_getAllFlatColumns:{fn:()=>_C(e),memoDeps:()=>[e.options.columns]},table_getAllFlatColumnsById:{fn:()=>SC(e),memoDeps:()=>[e.options.columns]},table_getAllLeafColumns:{fn:()=>xC(e),memoDeps:()=>[e.atoms.columnOrder?.get(),e.atoms.grouping?.get(),e.options.columns,e.options.groupedColumnMode]},table_getAllLeafColumnsById:{fn:()=>wC(e),memoDeps:()=>[e.getAllLeafColumns()]},table_getColumn:{fn:r=>b0(e,r)}})}};function _0(e,r){for(let a=0;a!r.includes(m.id)&&!a.includes(m.id));return py(s,[...f,...p,...h],e)}function RC(e){return[...e.getHeaderGroups()].reverse()}function TC(e){const r=e.getHeaderGroups(),a=[];for(let s=0;s{ei("coreHeadersFeature",e,r,{header_getLeafHeaders:{fn:a=>CC(a),memoDeps:a=>[a.column.table.options.columns]},header_getContext:{fn:a=>OC(a),memoDeps:a=>[a.column.table.options.columns]}})},constructTableAPIs:e=>{ba("coreHeadersFeature",e,{table_getHeaderGroups:{fn:()=>AC(e),memoDeps:()=>[e.options.columns,e.atoms.columnOrder?.get(),e.atoms.grouping?.get(),e.atoms.columnPinning?.get(),e.atoms.columnVisibility?.get(),e.options.groupedColumnMode]},table_getFooterGroups:{fn:()=>RC(e),memoDeps:()=>[e.getHeaderGroups()]},table_getFlatHeaders:{fn:()=>TC(e),memoDeps:()=>[e.getHeaderGroups()]},table_getLeafHeaders:{fn:()=>DC(e),memoDeps:()=>[e.getHeaderGroups()]}})}};function MC(e){if(!e._rowPrototype){e._rowPrototype={table:e};const r=Object.values(e._features);for(let a=0;a{const h=MC(e),p=Object.create(h);p._displayIndexCache=-1,p._uniqueValuesCache=Ht(),p._valuesCache=Ht(),p.depth=l,p.id=r,p.index=s,p.original=a,p.parentId=f,p.subRows=[];const m=e._rowInstanceInitFns;for(let y=0;y{let c=a.getValue(l),f=s.getValue(l);const h=r.resolveDataValue;return h&&(c=h(c),f=h(f)),r.sort(c,f,a,s,l)},e);return r}const jC=ns({resolveDataValue:e=>_u(e).toLowerCase(),sort:(e,r)=>S0(e,r)});ns({resolveDataValue:e=>_u(e),sort:(e,r)=>S0(e,r)});const kC=ns({resolveDataValue:e=>_u(e).toLowerCase(),sort:(e,r)=>fh(e,r)});ns({resolveDataValue:e=>_u(e),sort:(e,r)=>fh(e,r)});const FC=ns({resolveDataValue:e=>UC(e),sort:(e,r)=>e>r?1:efh(e,r)});function fh(e,r){return e===r?0:e>r?1:-1}function UC(e){return e instanceof Date?e.getTime():e}function _u(e){return typeof e=="number"?isNaN(e)||e===1/0||e===-1/0?"":String(e):typeof e=="string"?e:""}function S0(e,r){let a=0,s=0;const l=e.length,c=r.length;for(;a=48&&e<=57}function Rd(e,r,a){let s=r+1;for(;sv)return 1;if(v>y)return-1}return f>h?1:h>f?-1:0}function LC(e,r,a,s,l,c){let f=r;for(;fE?1:E>_?-1:0}const y=parseInt(e.slice(r,a),10),v=parseInt(s.slice(l,c),10);return y>v?1:v>y?-1:0}function gy(e,r,a){let s=0;for(let l=r;lHC(e))}function qC(e){e.atoms.expanded&&(e.options.autoResetAll??e.options.autoResetExpanded??!e.options.manualExpanding)&&e._reactivity.schedule(()=>$C(e))}function $C(e,r){const a=e.initialState.expanded;mo(e,"expanded",a===!0?!0:Object.assign(Ht(),Ur(a??{})))}const Td=0;function dh(e){if(e.options.autoResetAll??e.options.autoResetPageIndex??!e.options.manualPagination){if((e.atoms.pagination?.get()?.pageIndex??Td)===Td)return;IC(e)}}function GC(e,r){mo(e,"pagination",r)}function YC(e,r){GC(e,a=>{let s=ts(r,a.pageIndex);const l=typeof e.options.pageCount>"u"||e.options.pageCount===-1?Number.MAX_SAFE_INTEGER:e.options.pageCount-1;return s=Math.max(0,Math.min(s,l)),{...a,pageIndex:s}})}function IC(e,r){YC(e,Td)}function QC(){return[]}function Su(e,r){mo(e,"sorting",r)}function x0(e,r){Su(e,r?[]:Ur(e.initialState.sorting??[]))}function PC(e){e.atoms.sorting&&(e.options.autoResetAll??e.options.autoResetSorting??!1)&&x0(e)}function w0(e){const r=e.table._rowModelFns.sortFns,a=e.table.getFilteredRowModel().flatRows.slice(0,10);let s,l=!1;for(let c=0;c1)){s="alphanumeric";break}}if(!s&&l&&(s="text"),s){let c=r?.[s];if(c||s==="alphanumeric"&&(c=r?.text),c)return c}return ch}function E0(e){const r=e.table.getFilteredRowModel().flatRows.slice(0,10);for(let a=0;a{const f=c.findIndex(_=>_.id===e.id),h=f===-1?void 0:c[f];let p=[],m;const y=l?r:s==="desc",v=!!(c.length&&uu(e)&&a);return v?h?m="toggle":m="add":h?m="toggle":m="replace",m==="toggle"&&(l||s||(m="remove")),m==="add"?(p=[...c,{id:e.id,desc:y}],p.splice(0,p.length-(e.table.options.maxMultiSortColCount??Number.MAX_SAFE_INTEGER))):m==="toggle"?p=v?c.map(_=>_.id===e.id?{..._,desc:y}:_):[{id:e.id,desc:y}]:m==="remove"?p=v?c.filter(_=>_.id!==e.id):[]:p=[{id:e.id,desc:y}],p})}function A0(e){return e.columnDef.sortDescFirst??e.table.options.sortDescFirst??E0(e)==="desc"?"desc":"asc"}function R0(e,r){const a=A0(e),s=T0(e);return s?s!==a&&(e.table.options.enableSortingRemoval??!0)&&(!r||(e.table.options.enableMultiRemove??!0))?!1:s==="desc"?"asc":"desc":a}function hh(e){return(e.columnDef.enableSorting??!0)&&(e.table.options.enableSorting??!0)&&!!e.accessorFn}function uu(e){return e.columnDef.enableMultiSort??e.table.options.enableMultiSort??!!e.accessorFn}function T0(e){const r=e.table.atoms.sorting?.get()?.find(a=>a.id===e.id);return r?r.desc?"desc":"asc":!1}function XC(e){return e.table.atoms.sorting?.get()?.findIndex(r=>r.id===e.id)??-1}function KC(e){Su(e.table,r=>r.length?r.filter(a=>a.id!==e.id):[])}function JC(e){const r=hh(e);return a=>{r&&O0(e,void 0,uu(e)?e.table.options.isMultiSortEvent?.(a):!1)}}function WC(){return e=>po({feature:"coreRowModelsFeature",table:e,fnName:"table.getCoreRowModel",memoDeps:()=>[e.options.data],fn:()=>eO(e,e.options.data),onAfterUpdate:lh(()=>{qC(e),dh(e),PC(e),BC(e)})})}function D0(e,r,a,s=0,l){const c=[];for(let f=0;f{ba("coreRowModelsFeature",e,{table_getCoreRowModel:{fn:()=>tO(e)},table_getPreFilteredRowModel:{fn:()=>nO(e)},table_getFilteredRowModel:{fn:()=>rO(e)},table_getPreGroupedRowModel:{fn:()=>aO(e)},table_getGroupedRowModel:{fn:()=>iO(e)},table_getPreSortedRowModel:{fn:()=>sO(e)},table_getSortedRowModel:{fn:()=>oO(e)},table_getPreExpandedRowModel:{fn:()=>lO(e)},table_getExpandedRowModel:{fn:()=>uO(e)},table_getPrePaginatedRowModel:{fn:()=>cO(e)},table_getPaginatedRowModel:{fn:()=>fO(e)},table_getRowModel:{fn:()=>dO(e)}})}};function mO(e){if(!e._cellPrototype){e._cellPrototype={table:e};const r=Object.values(e._features);for(let a=0;a{l._displayIndexCache=a.length,a.push(l),l.subRows.length&&l.getIsExpanded?.()&&l.subRows.forEach(s)};return r.forEach(s),a}for(let a=0;ar.subRows)}function xO(e){const r=e.getCoreRowModel().flatRows;let a=0;for(let s=0;s{ei("coreRowsFeature",e,r,{row_getDisplayIndex:{fn:a=>gO(a)},row_getAllCellsByColumnId:{fn:a=>OO(a),memoDeps:a=>[a.getAllCells()]},row_getAllCells:{fn:a=>CO(a),memoDeps:a=>[a.table.getAllLeafColumns()]},row_getLeafRows:{fn:a=>SO(a),memoDeps:a=>[a.subRows]},row_getParentRow:{fn:a=>wO(a)},row_getParentRows:{fn:a=>EO(a)},row_getUniqueValues:{fn:(a,s)=>bO(a,s)},row_getValue:{fn:(a,s)=>yO(a,s)},row_renderValue:{fn:(a,s)=>_O(a,s)}})},constructTableAPIs:e=>{ba("coreRowsFeature",e,{table_getRowsInDisplayOrder:{fn:()=>vO(e),memoDeps:()=>[e.getPrePaginatedRowModel().rows,e.options.paginateExpandedRows,e.options.paginateExpandedRows===!1?e.atoms.expanded?.get():void 0]},table_getRowId:{fn:(r,a,s)=>AO(r,e,a,s)},table_getRow:{fn:(r,a)=>RO(e,r,a)},table_getMaxSubRowDepth:{fn:()=>xO(e),memoDeps:()=>[e.getCoreRowModel()]}})}};function z0(e,r,a=(s,l)=>s===l){const s=r===void 0?e.options.state:r;e._reactivity.batch(()=>{if(s)for(const l in s){const c=e.baseAtoms[l];if(!c)continue;const f=s[l],h=f===void 0?e.initialState[l]:f;a(e._reactivity.untrack(()=>c.get()),h)||c.set(()=>h)}})}function M0(e,r,a=(s,l)=>s===l){e._reactivity.batch(()=>{z0(e,r,a),e._reactivity.commit?.()})}function DO(e){const r=Ur(e.initialState);e._reactivity.batch(()=>{const s=Object.keys(r);for(let l=0;ls):e.options=s,a?.syncExternalState!==!1&&M0(e,s.state??null)}const MO={constructTableAPIs:e=>{ba("coreTablesFeature",e,{table_reset:{fn:()=>DO(e)},table_setOptions:{fn:r=>N0(e,r)}})}},NO={coreCellsFeature:sC,coreColumnsFeature:EC,coreHeadersFeature:zC,coreRowModelsFeature:hO,coreRowsFeature:TO,coreTablesFeature:MO};function jO(e,r={}){return Object.values(e).forEach(a=>{r=a.getInitialState?.(r)??r}),Ur(r)}function kO(e){const r=e.features.coreReactivityFeature,{aggregationFns:a,columnMeta:s,coreRowModel:l,expandedRowModel:c,facetedMinMaxValues:f,facetedRowModel:h,facetedUniqueValues:p,filterFns:m,filterMeta:y,filteredRowModel:v,groupedRowModel:_,paginatedRowModel:E,sortFns:x,sortedRowModel:C,tableMeta:A,...Z}=e.features,k={_cellInstanceInitFns:[],_columnInstanceInitFns:[],_features:{...NO,...Z},_headerGroupInstanceInitFns:[],_headerInstanceInitFns:[],_reactivity:r,_rowInstanceInitFns:[],_rowModelFns:{aggregationFns:a,filterFns:m,sortFns:x},_rowModels:{},atoms:{},baseAtoms:{}},P=Object.values(k._features),H={...P.reduce((te,q)=>Object.assign(te,q.getDefaultTableOptions?.(k)),{}),...e};if(r.wrapExternalAtoms&&H.atoms)for(const[te,q]of Object.entries(H.atoms)){const $=q,de=r.createWritableAtom($.get(),{debugName:`externalAtom/${te}`});H.atoms[te]=de;let ze=!1;const Ne=$.subscribe(be=>{ze||de.set(be)}),ie=de.subscribe(be=>{ze=!0,$.set(be),ze=!1});r.addSubscription(Ne),r.addSubscription(ie)}r.createOptionsStore?(k.optionsStore=r.createWritableAtom(H,{debugName:"table/optionsStore"}),Object.defineProperty(k,"options",{configurable:!0,enumerable:!0,get(){return k.optionsStore.get()},set(te){k.optionsStore.set(()=>te)}})):k.options=H,k.initialState=jO(k._features,k.options.initialState);const G=Object.keys(k.initialState);for(let te=0;te{const $=k.options,de=$.atoms?.[q],ze=de?de.get():k.baseAtoms[q].get();if(de)return ze;const Ne=$.state;if(Ne&&bu(Ne,q)){const ie=Ne[q];return ie===void 0?k.initialState[q]:ie}return ze},{debugName:`table/atoms/${q}`})}z0(k),k.store=Q2(r.createReadonlyAtom(()=>{const te={};for(let q=0;q-1}function LO(e){return e.table.atoms.columnFilters?.get()?.find(r=>r.id===e.id)?.value}function k0(e){return e.table.atoms.columnFilters?.get()?.findIndex(r=>r.id===e.id)??-1}function ZO(e,r){mh(e.table,a=>{const s=xu(e),l=a.find(h=>h.id===e.id),c=ts(r,l?l.value:void 0);if(F0(s,c,e))return a.filter(h=>h.id!==e.id);const f={id:e.id,value:c};return l?a.map(h=>h.id===e.id?f:h):a.length?[...a,f]:[f]})}function mh(e,r){const a=e.getAllLeafColumnsById();mo(e,"columnFilters",l=>ts(r,l).filter(c=>{const f=a[c.id];return!(f&&F0(xu(f),c.value,f))}))}function HO(e,r){mh(e,r?[]:Ur(e.initialState.columnFilters??[]))}function F0(e,r,a){return typeof r>"u"?!0:e?.autoRemove?!!e.autoRemove(r,a):typeof r=="string"&&!r}const BO={getInitialState:e=>({columnFilters:FO(),...e}),getDefaultColumnDef:()=>({filterFn:"auto"}),getDefaultTableOptions:e=>({onColumnFiltersChange:sh("columnFilters",e),filterFromLeafRows:!1,maxLeafRowFilterDepth:100}),assignColumnPrototype:(e,r)=>{ei("columnFilteringFeature",e,r,{column_getAutoFilterFn:{fn:a=>j0(a)},column_getFilterFn:{fn:a=>xu(a)},column_getCanFilter:{fn:a=>UO(a)},column_getIsFiltered:{fn:a=>VO(a)},column_getFilterValue:{fn:a=>LO(a)},column_getFilterIndex:{fn:a=>k0(a)},column_setFilterValue:{fn:(a,s)=>ZO(a,s)}})},initRowInstanceData:e=>{e.columnFilters=Ht(),e.columnFiltersMeta=Ht()},constructTableAPIs:e=>{ba("columnFilteringFeature",e,{table_setColumnFilters:{fn:r=>mh(e,r)},table_resetColumnFilters:{fn:r=>HO(e,r)}})}};function yt(e){const r=Object.assign((a,s,l,c)=>{const f=a.getValue(s),h=r.resolveDataValue?r.resolveDataValue(f):f;return r.filter(h,l,a,s,c)},e);return r}yt({filter:(e,r)=>e===r,autoRemove:e=>Ye(e)});yt({filter:(e,r)=>e==r,autoRemove:e=>Ye(e)});yt({filter:(e,r)=>!!e?.includes(r),autoRemove:e=>Ye(e),resolveFilterValue:e=>String(e),resolveDataValue:e=>e==null?void 0:String(e)});const U0=yt({filter:(e,r)=>!!e?.includes(r),autoRemove:e=>Ye(e),resolveFilterValue:e=>String(e).toLowerCase(),resolveDataValue:e=>e==null?void 0:String(e).toLowerCase()});yt({filter:(e,r)=>e===r,autoRemove:e=>Ye(e),resolveFilterValue:e=>String(e).toLowerCase(),resolveDataValue:e=>e==null?void 0:String(e).toLowerCase()});yt({filter:(e,r)=>e===r,autoRemove:e=>Ye(e),resolveFilterValue:e=>String(e),resolveDataValue:e=>e==null?void 0:String(e)});yt({filter:(e,r)=>!!e?.startsWith(r),autoRemove:e=>Ye(e),resolveFilterValue:e=>String(e).toLowerCase(),resolveDataValue:e=>e==null?void 0:String(e).toLowerCase()});yt({filter:(e,r)=>!!e?.endsWith(r),autoRemove:e=>Ye(e),resolveFilterValue:e=>String(e).toLowerCase(),resolveDataValue:e=>e==null?void 0:String(e).toLowerCase()});yt({filter:e=>V0(e),autoRemove:e=>Ye(e)||e===!1});yt({filter:e=>!V0(e),autoRemove:e=>Ye(e)||e===!1});yt({filter:(e,r)=>io(e,r),autoRemove:e=>Ye(e)});yt({filter:(e,r)=>cu(e,r),autoRemove:e=>Ye(e)});yt({filter:(e,r)=>!cu(e,r),autoRemove:e=>Ye(e)});yt({filter:(e,r)=>!io(e,r),autoRemove:e=>Ye(e)});yt({filter:(e,r)=>L0(e,r,!1),autoRemove:e=>Ye(e)||Array.isArray(e)&&Ye(e[0])&&Ye(e[1])});yt({filter:(e,r)=>L0(e,r,!0),autoRemove:e=>Ye(e)||Array.isArray(e)&&Ye(e[0])&&Ye(e[1])});yt({filter:(e,r)=>{if(typeof e!="number"||Number.isNaN(e))return!1;const[a,s]=r;return e>=a&&e<=s},resolveFilterValue:e=>{const[r,a]=e,s=typeof r!="number"?parseFloat(r):r,l=typeof a!="number"?parseFloat(a):a;let c=r===null||Number.isNaN(s)?-1/0:s,f=a===null||Number.isNaN(l)?1/0:l;if(c>f){const h=c;c=f,f=h}return[c,f]},autoRemove:e=>Ye(e)||Array.isArray(e)&&Ye(e[0])&&Ye(e[1])});yt({filter:(e,r)=>{const[a,s]=r;return e>=a&&e<=s},resolveFilterValue:e=>{const[r,a]=e,s=rd(r),l=rd(a);let c=Number.isNaN(s)?-1/0:s,f=Number.isNaN(l)?1/0:l;if(c>f){const h=c;c=f,f=h}return[c,f]},resolveDataValue:e=>rd(e),autoRemove:e=>Ye(e)||Array.isArray(e)&&Ye(e[0])&&Ye(e[1])});yt({filter:(e,r)=>{for(let a=0;aYe(e)||!e?.length});yt({filter:(e,r)=>{if(typeof e!="string"&&!Array.isArray(e))return!1;for(let a=0;aYe(e)||!e?.length});yt({filter:(e,r)=>{if(!Array.isArray(e))return!1;for(let a=0;aYe(e)||!e?.length});yt({filter:(e,r)=>{if(!Array.isArray(e))return!1;for(let a=0;aYe(e)||!e?.length});function Ye(e){return e==null||e===""}function V0(e){return e==null||String(e).trim()===""}function rd(e){return e instanceof Date?e.getTime():typeof e=="number"?e:e==null||e===""?NaN:new Date(e).getTime()}function io(e,r){const a=e==null?0:+e,s=Number(r);return!isNaN(s)&&!isNaN(a)?a>s:String(e??"").toLowerCase().trim()>String(r).toLowerCase().trim()}function cu(e,r){return e===r||io(e,r)}function L0(e,r,a){const s=r[0],l=s!==""&&s!==void 0;if(l&&!(a?cu(e,s):io(e,s)))return!1;const c=r[1];if(c===""||c===void 0)return!0;if(l){const f=Number(s),h=Number(c);if(!isNaN(f)&&!isNaN(h)&&f>h)return!0}return a?!io(e,c):!cu(e,c)}function Z0(e){return(e.columnDef.enableGlobalFilter??!0)&&(e.table.options.enableGlobalFilter??!0)&&(e.table.options.enableFilters??!0)&&(e.table.options.getColumnCanGlobalFilter?.(e)??!0)&&!!e.accessorFn}function H0(){return U0}function B0(e){const{globalFilterFn:r}=e.options,a=e._rowModelFns.filterFns;return oh(r)?r:r==="auto"?H0():a?.[r]}function q0(e,r){e.options.onGlobalFilterChange?.(r)}function qO(e,r){q0(e,r?void 0:Ur(e.initialState.globalFilter))}const $O={getInitialState:e=>({globalFilter:void 0,...e}),getDefaultTableOptions:e=>({onGlobalFilterChange:sh("globalFilter",e),globalFilterFn:"auto",getColumnCanGlobalFilter:r=>{if("enableGlobalFilter"in r.columnDef&&r.columnDef.enableGlobalFilter===!0)return!0;const a=e.getCoreRowModel().flatRows.find(s=>s.getAllCellsByColumnId()[r.id]?.getValue()!=null)?.getAllCellsByColumnId()[r.id]?.getValue();return typeof a=="string"||typeof a=="number"}}),assignColumnPrototype:(e,r)=>{ei("globalFilteringFeature",e,r,{column_getCanGlobalFilter:{fn:a=>Z0(a)}})},constructTableAPIs:e=>{ba("globalFilteringFeature",e,{table_getGlobalAutoFilterFn:{fn:()=>H0()},table_getGlobalFilterFn:{fn:()=>B0(e)},table_setGlobalFilter:{fn:r=>q0(e,r)},table_resetGlobalFilter:{fn:r=>qO(e,r)}})}},GO={getInitialState(e){return{sorting:QC(),...e}},getDefaultColumnDef(){return{sortFn:"auto",sortUndefined:1}},getDefaultTableOptions(e){return{autoResetSorting:!1,onSortingChange:sh("sorting",e),isMultiSortEvent:r=>r.shiftKey}},assignColumnPrototype(e,r){ei("rowSortingFeature",e,r,{column_getAutoSortFn:{fn:a=>w0(a)},column_getAutoSortDir:{fn:a=>E0(a)},column_getSortFn:{fn:a=>C0(a)},column_toggleSorting:{fn:(a,s,l)=>O0(a,s,l)},column_getFirstSortDir:{fn:a=>A0(a)},column_getNextSortingOrder:{fn:(a,s)=>R0(a,s)},column_getCanSort:{fn:a=>hh(a)},column_getCanMultiSort:{fn:a=>uu(a)},column_getIsSorted:{fn:a=>T0(a)},column_getSortIndex:{fn:a=>XC(a)},column_clearSorting:{fn:a=>KC(a)},column_getToggleSortingHandler:{fn:a=>JC(a)}})},constructTableAPIs(e){ba("rowSortingFeature",e,{table_setSorting:{fn:r=>Su(e,r)},table_resetSorting:{fn:r=>x0(e,r)}})}};function YO(e,r,a){return a.options.filterFromLeafRows?IO(e,r,a):QO(e,r,a)}function IO(e,r,a){const s=[],l=Ht(),c=a.options.maxLeafRowFilterDepth??100,f=(h,p=0)=>{const m=[];for(let y of h){const v=uh(a,y.id,y.original,y.index,y.depth,void 0,y.parentId);if(v.columnFilters=y.columnFilters,y.subRows.length&&p{const m=[];for(let y of h)if(r(y)){if(y.subRows.length&&p=c&&$0(y.subRows,s,l)}return m};return{rows:f(e),flatRows:s,rowsById:l}}function $0(e,r,a){for(const s of e)r.push(s),a[s.id]=s,s.subRows.length&&$0(s.subRows,r,a)}function PO(){return e=>{const r=e;return po({feature:"columnFilteringFeature",table:r,fnName:"table.getFilteredRowModel",memoDeps:()=>[r.getPreFilteredRowModel(),r.atoms.columnFilters?.get(),r.atoms.globalFilter?.get()],fn:()=>XO(r),onAfterUpdate:lh(()=>dh(r))})}}function XO(e){const r=e.getPreFilteredRowModel(),a=e.atoms.columnFilters?.get(),s=e.atoms.globalFilter?.get(),l=s!=null&&s!=="";if(!r.rows.length||!a?.length&&!l){const _=r.flatRows;for(let E=0;E<_.length;E++){const x=_[E];x.columnFilters=Ht(),x.columnFiltersMeta=Ht()}return r}const c=[],f=[];a?.forEach(_=>{const E=b0(e,_.id);if(!E)return;const x=xu(E);x&&c.push({id:_.id,filterFn:x,resolvedValue:x.resolveFilterValue?.(_.value)??_.value})});const h=a?.map(_=>_.id)??[],p=B0(e),m=e.getAllLeafColumns().filter(_=>Z0(_));l&&p&&m.length&&(h.push("__global__"),m.forEach(_=>{f.push({id:_.id,filterFn:p,resolvedValue:p.resolveFilterValue?.(s)??s})}));const y=r.flatRows;for(let _=0;_{E.columnFiltersMeta||(E.columnFiltersMeta=Ht()),E.columnFiltersMeta[A]=Z})}if(f.length){for(let x=0;x{E.columnFiltersMeta||(E.columnFiltersMeta=Ht()),E.columnFiltersMeta[A]=Z})){E.columnFilters.__global__=!0;break}}E.columnFilters.__global__!==!0&&(E.columnFilters.__global__=!1)}}const v=_=>{for(let E=0;E{const r=e;return po({feature:"rowSortingFeature",table:r,fnName:"table.getSortedRowModel",memoDeps:()=>[r.atoms.sorting?.get(),r.getPreSortedRowModel()],fn:()=>JO(r),onAfterUpdate:lh(()=>dh(r))})}}function JO(e){const r=e.getPreSortedRowModel(),a=e.atoms.sorting?.get();if(!r.rows.length||!a?.length)return r;const s=[],l=a.filter(p=>{const m=e.getColumn(p.id);return m?hh(m):!1});if(!l.length)return r;const c=[];for(let p=0;p{for(let y=0;y{const m=p.slice();m.sort(f);let y=!1;for(let v=0;v"u"?z.useEffect:z.useLayoutEffect;function wu(e,r){const[{table:a,rootSource:s}]=z.useState(()=>{const p=kO({...e,features:{coreReactivityFeature:K2(),...e.features}});return p.Subscribe=(m=>I2({...m,source:m.source??p.store})),p.FlexRender=Xl,{table:p,rootSource:X2(p.store,to)}}),l=a;N0(l,p=>({...p,...e}),{syncExternalState:!1});const c=l.options.state,f=s.get(),h=c0(s,r,{compare:to});return WO(()=>{s.markCommitted(f),M0(l,c??null,to)}),z.useMemo(()=>({...a,options:e,state:h}),[a,e,h])}function go({className:e,...r}){return S.jsx("div",{"data-slot":"card",className:Pe("bg-card text-card-foreground flex flex-col gap-4 rounded-xl border py-4 shadow-sm",e),...r})}function eA({className:e,...r}){return S.jsx("div",{"data-slot":"card-header",className:Pe("flex items-center justify-between gap-2 px-4",e),...r})}function tA({className:e,...r}){return S.jsx("div",{"data-slot":"card-title",className:Pe("text-sm leading-none font-semibold tracking-tight",e),...r})}function nA({className:e,...r}){return S.jsx("div",{"data-slot":"card-description",className:Pe("text-muted-foreground text-xs",e),...r})}function Eu({className:e,...r}){return S.jsx("div",{"data-slot":"card-content",className:Pe("px-4",e),...r})}function rA({points:e,width:r=120,height:a=40,className:s=""}){if(e.length<2)return S.jsx("div",{style:{width:r,height:a},className:s});const l=Math.max(...e,1e-9),c=r/(e.length-1),h=e.map((m,y)=>{const v=y*c,_=a-3-m/l*(a-6);return[v,_]}).map(([m,y],v)=>`${v===0?"M":"L"}${m.toFixed(1)},${y.toFixed(1)}`).join(" "),p=`${h} L${r},${a} L0,${a} Z`;return S.jsxs("svg",{width:r,height:a,viewBox:`0 0 ${r} ${a}`,className:s,"aria-hidden":"true",children:[S.jsx("defs",{children:S.jsxs("linearGradient",{id:"spark-fill",x1:"0",y1:"0",x2:"0",y2:"1",children:[S.jsx("stop",{offset:"0%",stopColor:"currentColor",stopOpacity:"0.25"}),S.jsx("stop",{offset:"100%",stopColor:"currentColor",stopOpacity:"0"})]})}),S.jsx("path",{d:p,fill:"url(#spark-fill)",stroke:"none"}),S.jsx("path",{d:h,fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinejoin:"round"})]})}function aA({className:e,...r}){return S.jsx("div",{"data-slot":"table-container",className:"relative w-full overflow-x-auto",children:S.jsx("table",{"data-slot":"table",className:Pe("w-full caption-bottom text-sm",e),...r})})}function iA({className:e,...r}){return S.jsx("thead",{"data-slot":"table-header",className:Pe("[&_tr]:border-b",e),...r})}function sA({className:e,...r}){return S.jsx("tbody",{"data-slot":"table-body",className:Pe("[&_tr:last-child]:border-0",e),...r})}function ad({className:e,...r}){return S.jsx("tr",{"data-slot":"table-row",className:Pe("hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors",e),...r})}function oA({className:e,...r}){return S.jsx("th",{"data-slot":"table-head",className:Pe("text-muted-foreground h-9 px-3 text-left align-middle text-xs font-medium whitespace-nowrap first:pl-4 last:pr-4",e),...r})}function yy({className:e,...r}){return S.jsx("td",{"data-slot":"table-cell",className:Pe("px-3 py-2.5 align-middle whitespace-nowrap first:pl-4 last:pr-4",e),...r})}function Cu({table:e,empty:r}){const a=e.getRowModel().rows,s=e.getAllLeafColumns().length;return S.jsxs(aA,{children:[S.jsx(iA,{children:e.getHeaderGroups().map(l=>S.jsx(ad,{className:"hover:bg-transparent",children:l.headers.map(c=>{const f=c.column.getCanSort(),h=c.column.getIsSorted();return S.jsx(oA,{children:c.isPlaceholder?null:f?S.jsxs("button",{type:"button",className:Pe("inline-flex cursor-pointer items-center gap-1 select-none hover:text-foreground",h&&"text-foreground"),onClick:c.column.getToggleSortingHandler(),children:[S.jsx(Xl,{header:c}),h==="asc"?S.jsx(Iw,{className:"size-3"}):h==="desc"?S.jsx(Gw,{className:"size-3"}):S.jsx(Kw,{className:"size-3 opacity-50"})]}):S.jsx(Xl,{header:c})},c.id)})},l.id))}),S.jsx(sA,{children:a.length===0?S.jsx(ad,{className:"hover:bg-transparent",children:S.jsx(yy,{colSpan:s,className:"h-28 text-center whitespace-normal",children:r??S.jsx("span",{className:"text-muted-foreground text-sm",children:"No results."})})}):a.map(l=>S.jsx(ad,{children:l.getAllCells().map(c=>S.jsx(yy,{children:S.jsx(Xl,{cell:c})},c.id))},l.id))})]})}function Vl({label:e,value:r,sub:a,icon:s,tone:l="default",children:c}){return S.jsx(go,{className:"gap-0 py-4",children:S.jsxs("div",{className:"flex items-start justify-between gap-3 px-4",children:[S.jsxs("div",{className:"min-w-0",children:[S.jsxs("div",{className:"text-muted-foreground flex items-center gap-1.5 text-xs font-medium",children:[S.jsx(s,{className:"size-3.5"}),e]}),S.jsx("div",{className:Pe("mt-1.5 truncate text-2xl font-semibold tracking-tight tabular-nums",l==="danger"&&"text-destructive",l==="success"&&"text-success"),children:r}),a&&S.jsx("div",{className:"text-muted-foreground mt-0.5 truncate text-xs",children:a})]}),c]})})}const Ou={rowSortingFeature:GO,sortedRowModel:KO(),sortFns:{alphanumeric:jC,basic:ch,text:kC,datetime:FC},columnFilteringFeature:BO,globalFilteringFeature:$O,filteredRowModel:PO(),filterFns:{includesString:U0}};var by;function J(e,r,a){function s(h,p){if(h._zod||Object.defineProperty(h,"_zod",{value:{def:p,constr:f,traits:new Set},enumerable:!1}),h._zod.traits.has(e))return;h._zod.traits.add(e),r(h,p);const m=f.prototype,y=Object.keys(m);for(let v=0;va?.Parent&&h instanceof a.Parent?!0:h?._zod?.traits?.has(e)}),Object.defineProperty(f,"name",{value:e}),f}class Pi extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}}class G0 extends Error{constructor(r){super(`Encountered unidirectional transform during encode: ${r}`),this.name="ZodEncodeError"}}(by=globalThis).__zod_globalConfig??(by.__zod_globalConfig={});const ph=globalThis.__zod_globalConfig;function Xa(e){return ph}function Y0(e){const r=Object.values(e).filter(s=>typeof s=="number");return Object.entries(e).filter(([s,l])=>r.indexOf(+s)===-1).map(([s,l])=>l)}function Dd(e,r){return typeof r=="bigint"?r.toString():r}function gh(e){return{get value(){{const r=e();return Object.defineProperty(this,"value",{value:r}),r}}}}function vh(e){return e==null}function yh(e){const r=e.startsWith("^")?1:0,a=e.endsWith("$")?e.length-1:e.length;return e.slice(r,a)}function lA(e,r){const a=e/r,s=Math.round(a),l=Number.EPSILON*Math.max(Math.abs(a),1);return Math.abs(a-s){};function fu(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}const cA=gh(()=>{if(ph.jitless||typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{const e=Function;return new e(""),!0}catch{return!1}});function so(e){if(fu(e)===!1)return!1;const r=e.constructor;if(r===void 0||typeof r!="function")return!0;const a=r.prototype;return!(fu(a)===!1||Object.prototype.hasOwnProperty.call(a,"isPrototypeOf")===!1)}function Q0(e){return so(e)?{...e}:Array.isArray(e)?[...e]:e instanceof Map?new Map(e):e instanceof Set?new Set(e):e}const fA=new Set(["string","number","symbol"]);function Au(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Sa(e,r,a){const s=new e._zod.constr(r??e._zod.def);return(!r||a?.parent)&&(s._zod.parent=e),s}function we(e){const r=e;if(!r)return{};if(typeof r=="string")return{error:()=>r};if(r?.message!==void 0){if(r?.error!==void 0)throw new Error("Cannot specify both `message` and `error` params");r.error=r.message}return delete r.message,typeof r.error=="string"?{...r,error:()=>r.error}:r}function dA(e){return Object.keys(e).filter(r=>e[r]._zod.optin==="optional"&&e[r]._zod.optout==="optional")}const hA={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]};function mA(e,r){const a=e._zod.def,s=a.checks;if(s&&s.length>0)throw new Error(".pick() cannot be used on object schemas containing refinements");const c=_a(e._zod.def,{get shape(){const f={};for(const h in r){if(!(h in a.shape))throw new Error(`Unrecognized key: "${h}"`);r[h]&&(f[h]=a.shape[h])}return ti(this,"shape",f),f},checks:[]});return Sa(e,c)}function pA(e,r){const a=e._zod.def,s=a.checks;if(s&&s.length>0)throw new Error(".omit() cannot be used on object schemas containing refinements");const c=_a(e._zod.def,{get shape(){const f={...e._zod.def.shape};for(const h in r){if(!(h in a.shape))throw new Error(`Unrecognized key: "${h}"`);r[h]&&delete f[h]}return ti(this,"shape",f),f},checks:[]});return Sa(e,c)}function gA(e,r){if(!so(r))throw new Error("Invalid input to extend: expected a plain object");const a=e._zod.def.checks;if(a&&a.length>0){const c=e._zod.def.shape;for(const f in r)if(Object.getOwnPropertyDescriptor(c,f)!==void 0)throw new Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}const l=_a(e._zod.def,{get shape(){const c={...e._zod.def.shape,...r};return ti(this,"shape",c),c}});return Sa(e,l)}function vA(e,r){if(!so(r))throw new Error("Invalid input to safeExtend: expected a plain object");const a=_a(e._zod.def,{get shape(){const s={...e._zod.def.shape,...r};return ti(this,"shape",s),s}});return Sa(e,a)}function yA(e,r){if(e._zod.def.checks?.length)throw new Error(".merge() cannot be used on object schemas containing refinements. Use .safeExtend() instead.");const a=_a(e._zod.def,{get shape(){const s={...e._zod.def.shape,...r._zod.def.shape};return ti(this,"shape",s),s},get catchall(){return r._zod.def.catchall},checks:r._zod.def.checks??[]});return Sa(e,a)}function bA(e,r,a){const l=r._zod.def.checks;if(l&&l.length>0)throw new Error(".partial() cannot be used on object schemas containing refinements");const f=_a(r._zod.def,{get shape(){const h=r._zod.def.shape,p={...h};if(a)for(const m in a){if(!(m in h))throw new Error(`Unrecognized key: "${m}"`);a[m]&&(p[m]=e?new e({type:"optional",innerType:h[m]}):h[m])}else for(const m in h)p[m]=e?new e({type:"optional",innerType:h[m]}):h[m];return ti(this,"shape",p),p},checks:[]});return Sa(r,f)}function _A(e,r,a){const s=_a(r._zod.def,{get shape(){const l=r._zod.def.shape,c={...l};if(a)for(const f in a){if(!(f in c))throw new Error(`Unrecognized key: "${f}"`);a[f]&&(c[f]=new e({type:"nonoptional",innerType:l[f]}))}else for(const f in l)c[f]=new e({type:"nonoptional",innerType:l[f]});return ti(this,"shape",c),c}});return Sa(r,s)}function Qi(e,r=0){if(e.aborted===!0)return!0;for(let a=r;a{var s;return(s=a).path??(s.path=[]),a.path.unshift(e),a})}function Ll(e){return typeof e=="string"?e:e?.message}function Ka(e,r,a){const s=e.message?e.message:Ll(e.inst?._zod.def?.error?.(e))??Ll(r?.error?.(e))??Ll(a.customError?.(e))??Ll(a.localeError?.(e))??"Invalid input",{inst:l,continue:c,input:f,...h}=e;return h.path??(h.path=[]),h.message=s,r?.reportInput&&(h.input=f),h}function bh(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}function oo(...e){const[r,a,s]=e;return typeof r=="string"?{message:r,code:"custom",input:a,inst:s}:{...r}}const X0=(e,r)=>{e.name="$ZodError",Object.defineProperty(e,"_zod",{value:e._zod,enumerable:!1}),Object.defineProperty(e,"issues",{value:r,enumerable:!1}),e.message=JSON.stringify(r,Dd,2),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},K0=J("$ZodError",X0),J0=J("$ZodError",X0,{Parent:Error});function xA(e,r=a=>a.message){const a={},s=[];for(const l of e.issues)l.path.length>0?(a[l.path[0]]=a[l.path[0]]||[],a[l.path[0]].push(r(l))):s.push(r(l));return{formErrors:s,fieldErrors:a}}function wA(e,r=a=>a.message){const a={_errors:[]},s=(l,c=[])=>{for(const f of l.issues)if(f.code==="invalid_union"&&f.errors.length)f.errors.map(h=>s({issues:h},[...c,...f.path]));else if(f.code==="invalid_key")s({issues:f.issues},[...c,...f.path]);else if(f.code==="invalid_element")s({issues:f.issues},[...c,...f.path]);else{const h=[...c,...f.path];if(h.length===0)a._errors.push(r(f));else{let p=a,m=0;for(;m(r,a,s,l)=>{const c=s?{...s,async:!1}:{async:!1},f=r._zod.run({value:a,issues:[]},c);if(f instanceof Promise)throw new Pi;if(f.issues.length){const h=new(l?.Err??e)(f.issues.map(p=>Ka(p,c,Xa())));throw I0(h,l?.callee),h}return f.value},Sh=e=>async(r,a,s,l)=>{const c=s?{...s,async:!0}:{async:!0};let f=r._zod.run({value:a,issues:[]},c);if(f instanceof Promise&&(f=await f),f.issues.length){const h=new(l?.Err??e)(f.issues.map(p=>Ka(p,c,Xa())));throw I0(h,l?.callee),h}return f.value},Ru=e=>(r,a,s)=>{const l=s?{...s,async:!1}:{async:!1},c=r._zod.run({value:a,issues:[]},l);if(c instanceof Promise)throw new Pi;return c.issues.length?{success:!1,error:new(e??K0)(c.issues.map(f=>Ka(f,l,Xa())))}:{success:!0,data:c.value}},EA=Ru(J0),Tu=e=>async(r,a,s)=>{const l=s?{...s,async:!0}:{async:!0};let c=r._zod.run({value:a,issues:[]},l);return c instanceof Promise&&(c=await c),c.issues.length?{success:!1,error:new e(c.issues.map(f=>Ka(f,l,Xa())))}:{success:!0,data:c.value}},CA=Tu(J0),OA=e=>(r,a,s)=>{const l=s?{...s,direction:"backward"}:{direction:"backward"};return _h(e)(r,a,l)},AA=e=>(r,a,s)=>_h(e)(r,a,s),RA=e=>async(r,a,s)=>{const l=s?{...s,direction:"backward"}:{direction:"backward"};return Sh(e)(r,a,l)},TA=e=>async(r,a,s)=>Sh(e)(r,a,s),DA=e=>(r,a,s)=>{const l=s?{...s,direction:"backward"}:{direction:"backward"};return Ru(e)(r,a,l)},zA=e=>(r,a,s)=>Ru(e)(r,a,s),MA=e=>async(r,a,s)=>{const l=s?{...s,direction:"backward"}:{direction:"backward"};return Tu(e)(r,a,l)},NA=e=>async(r,a,s)=>Tu(e)(r,a,s),jA=/^[cC][0-9a-z]{6,}$/,kA=/^[0-9a-z]+$/,FA=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,UA=/^[0-9a-vA-V]{20}$/,VA=/^[A-Za-z0-9]{27}$/,LA=/^[a-zA-Z0-9_-]{21}$/,ZA=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,HA=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,xy=e=>e?new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/,BA=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,qA="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function $A(){return new RegExp(qA,"u")}const GA=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,YA=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,IA=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,QA=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,PA=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,W0=/^[A-Za-z0-9_-]*$/,XA=/^https?$/,KA=/^\+[1-9]\d{6,14}$/,e_="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",JA=new RegExp(`^${e_}$`);function t_(e){const r="(?:[01]\\d|2[0-3]):[0-5]\\d";return typeof e.precision=="number"?e.precision===-1?`${r}`:e.precision===0?`${r}:[0-5]\\d`:`${r}:[0-5]\\d\\.\\d{${e.precision}}`:`${r}(?::[0-5]\\d(?:\\.\\d+)?)?`}function WA(e){return new RegExp(`^${t_(e)}$`)}function eR(e){const r=t_({precision:e.precision}),a=["Z"];e.local&&a.push(""),e.offset&&a.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");const s=`${r}(?:${a.join("|")})`;return new RegExp(`^${e_}T(?:${s})$`)}const tR=e=>{const r=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${r}$`)},nR=/^-?\d+$/,rR=/^-?\d+(?:\.\d+)?$/,aR=/^(?:true|false)$/i,iR=/^[^A-Z]*$/,sR=/^[^a-z]*$/,_n=J("$ZodCheck",(e,r)=>{var a;e._zod??(e._zod={}),e._zod.def=r,(a=e._zod).onattach??(a.onattach=[])}),n_={number:"number",bigint:"bigint",object:"date"},r_=J("$ZodCheckLessThan",(e,r)=>{_n.init(e,r);const a=n_[typeof r.value];e._zod.onattach.push(s=>{const l=s._zod.bag,c=(r.inclusive?l.maximum:l.exclusiveMaximum)??Number.POSITIVE_INFINITY;r.value{(r.inclusive?s.value<=r.value:s.value{_n.init(e,r);const a=n_[typeof r.value];e._zod.onattach.push(s=>{const l=s._zod.bag,c=(r.inclusive?l.minimum:l.exclusiveMinimum)??Number.NEGATIVE_INFINITY;r.value>c&&(r.inclusive?l.minimum=r.value:l.exclusiveMinimum=r.value)}),e._zod.check=s=>{(r.inclusive?s.value>=r.value:s.value>r.value)||s.issues.push({origin:a,code:"too_small",minimum:typeof r.value=="object"?r.value.getTime():r.value,input:s.value,inclusive:r.inclusive,inst:e,continue:!r.abort})}}),oR=J("$ZodCheckMultipleOf",(e,r)=>{_n.init(e,r),e._zod.onattach.push(a=>{var s;(s=a._zod.bag).multipleOf??(s.multipleOf=r.value)}),e._zod.check=a=>{if(typeof a.value!=typeof r.value)throw new Error("Cannot mix number and bigint in multiple_of check.");(typeof a.value=="bigint"?a.value%r.value===BigInt(0):lA(a.value,r.value)===0)||a.issues.push({origin:typeof a.value,code:"not_multiple_of",divisor:r.value,input:a.value,inst:e,continue:!r.abort})}}),lR=J("$ZodCheckNumberFormat",(e,r)=>{_n.init(e,r),r.format=r.format||"float64";const a=r.format?.includes("int"),s=a?"int":"number",[l,c]=hA[r.format];e._zod.onattach.push(f=>{const h=f._zod.bag;h.format=r.format,h.minimum=l,h.maximum=c,a&&(h.pattern=nR)}),e._zod.check=f=>{const h=f.value;if(a){if(!Number.isInteger(h)){f.issues.push({expected:s,format:r.format,code:"invalid_type",continue:!1,input:h,inst:e});return}if(!Number.isSafeInteger(h)){h>0?f.issues.push({input:h,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:s,inclusive:!0,continue:!r.abort}):f.issues.push({input:h,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:s,inclusive:!0,continue:!r.abort});return}}hc&&f.issues.push({origin:"number",input:h,code:"too_big",maximum:c,inclusive:!0,inst:e,continue:!r.abort})}}),uR=J("$ZodCheckMaxLength",(e,r)=>{var a;_n.init(e,r),(a=e._zod.def).when??(a.when=s=>{const l=s.value;return!vh(l)&&l.length!==void 0}),e._zod.onattach.push(s=>{const l=s._zod.bag.maximum??Number.POSITIVE_INFINITY;r.maximum{const l=s.value;if(l.length<=r.maximum)return;const f=bh(l);s.issues.push({origin:f,code:"too_big",maximum:r.maximum,inclusive:!0,input:l,inst:e,continue:!r.abort})}}),cR=J("$ZodCheckMinLength",(e,r)=>{var a;_n.init(e,r),(a=e._zod.def).when??(a.when=s=>{const l=s.value;return!vh(l)&&l.length!==void 0}),e._zod.onattach.push(s=>{const l=s._zod.bag.minimum??Number.NEGATIVE_INFINITY;r.minimum>l&&(s._zod.bag.minimum=r.minimum)}),e._zod.check=s=>{const l=s.value;if(l.length>=r.minimum)return;const f=bh(l);s.issues.push({origin:f,code:"too_small",minimum:r.minimum,inclusive:!0,input:l,inst:e,continue:!r.abort})}}),fR=J("$ZodCheckLengthEquals",(e,r)=>{var a;_n.init(e,r),(a=e._zod.def).when??(a.when=s=>{const l=s.value;return!vh(l)&&l.length!==void 0}),e._zod.onattach.push(s=>{const l=s._zod.bag;l.minimum=r.length,l.maximum=r.length,l.length=r.length}),e._zod.check=s=>{const l=s.value,c=l.length;if(c===r.length)return;const f=bh(l),h=c>r.length;s.issues.push({origin:f,...h?{code:"too_big",maximum:r.length}:{code:"too_small",minimum:r.length},inclusive:!0,exact:!0,input:s.value,inst:e,continue:!r.abort})}}),Du=J("$ZodCheckStringFormat",(e,r)=>{var a,s;_n.init(e,r),e._zod.onattach.push(l=>{const c=l._zod.bag;c.format=r.format,r.pattern&&(c.patterns??(c.patterns=new Set),c.patterns.add(r.pattern))}),r.pattern?(a=e._zod).check??(a.check=l=>{r.pattern.lastIndex=0,!r.pattern.test(l.value)&&l.issues.push({origin:"string",code:"invalid_format",format:r.format,input:l.value,...r.pattern?{pattern:r.pattern.toString()}:{},inst:e,continue:!r.abort})}):(s=e._zod).check??(s.check=()=>{})}),dR=J("$ZodCheckRegex",(e,r)=>{Du.init(e,r),e._zod.check=a=>{r.pattern.lastIndex=0,!r.pattern.test(a.value)&&a.issues.push({origin:"string",code:"invalid_format",format:"regex",input:a.value,pattern:r.pattern.toString(),inst:e,continue:!r.abort})}}),hR=J("$ZodCheckLowerCase",(e,r)=>{r.pattern??(r.pattern=iR),Du.init(e,r)}),mR=J("$ZodCheckUpperCase",(e,r)=>{r.pattern??(r.pattern=sR),Du.init(e,r)}),pR=J("$ZodCheckIncludes",(e,r)=>{_n.init(e,r);const a=Au(r.includes),s=new RegExp(typeof r.position=="number"?`^.{${r.position}}${a}`:a);r.pattern=s,e._zod.onattach.push(l=>{const c=l._zod.bag;c.patterns??(c.patterns=new Set),c.patterns.add(s)}),e._zod.check=l=>{l.value.includes(r.includes,r.position)||l.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:r.includes,input:l.value,inst:e,continue:!r.abort})}}),gR=J("$ZodCheckStartsWith",(e,r)=>{_n.init(e,r);const a=new RegExp(`^${Au(r.prefix)}.*`);r.pattern??(r.pattern=a),e._zod.onattach.push(s=>{const l=s._zod.bag;l.patterns??(l.patterns=new Set),l.patterns.add(a)}),e._zod.check=s=>{s.value.startsWith(r.prefix)||s.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:r.prefix,input:s.value,inst:e,continue:!r.abort})}}),vR=J("$ZodCheckEndsWith",(e,r)=>{_n.init(e,r);const a=new RegExp(`.*${Au(r.suffix)}$`);r.pattern??(r.pattern=a),e._zod.onattach.push(s=>{const l=s._zod.bag;l.patterns??(l.patterns=new Set),l.patterns.add(a)}),e._zod.check=s=>{s.value.endsWith(r.suffix)||s.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:r.suffix,input:s.value,inst:e,continue:!r.abort})}}),yR=J("$ZodCheckOverwrite",(e,r)=>{_n.init(e,r),e._zod.check=a=>{a.value=r.tx(a.value)}});class bR{constructor(r=[]){this.content=[],this.indent=0,this&&(this.args=r)}indented(r){this.indent+=1,r(this),this.indent-=1}write(r){if(typeof r=="function"){r(this,{execution:"sync"}),r(this,{execution:"async"});return}const s=r.split(` +`).filter(f=>f),l=Math.min(...s.map(f=>f.length-f.trimStart().length)),c=s.map(f=>f.slice(l)).map(f=>" ".repeat(this.indent*2)+f);for(const f of c)this.content.push(f)}compile(){const r=Function,a=this?.args,l=[...(this?.content??[""]).map(c=>` ${c}`)];return new r(...a,l.join(` +`))}}const _R={major:4,minor:4,patch:3},wt=J("$ZodType",(e,r)=>{var a;e??(e={}),e._zod.def=r,e._zod.bag=e._zod.bag||{},e._zod.version=_R;const s=[...e._zod.def.checks??[]];e._zod.traits.has("$ZodCheck")&&s.unshift(e);for(const l of s)for(const c of l._zod.onattach)c(e);if(s.length===0)(a=e._zod).deferred??(a.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{const l=(f,h,p)=>{let m=Qi(f),y;for(const v of h){if(v._zod.def.when){if(SA(f)||!v._zod.def.when(f))continue}else if(m)continue;const _=f.issues.length,E=v._zod.check(f);if(E instanceof Promise&&p?.async===!1)throw new Pi;if(y||E instanceof Promise)y=(y??Promise.resolve()).then(async()=>{await E,f.issues.length!==_&&(m||(m=Qi(f,_)))});else{if(f.issues.length===_)continue;m||(m=Qi(f,_))}}return y?y.then(()=>f):f},c=(f,h,p)=>{if(Qi(f))return f.aborted=!0,f;const m=l(h,s,p);if(m instanceof Promise){if(p.async===!1)throw new Pi;return m.then(y=>e._zod.parse(y,p))}return e._zod.parse(m,p)};e._zod.run=(f,h)=>{if(h.skipChecks)return e._zod.parse(f,h);if(h.direction==="backward"){const m=e._zod.parse({value:f.value,issues:[]},{...h,skipChecks:!0});return m instanceof Promise?m.then(y=>c(y,f,h)):c(m,f,h)}const p=e._zod.parse(f,h);if(p instanceof Promise){if(h.async===!1)throw new Pi;return p.then(m=>l(m,s,h))}return l(p,s,h)}}et(e,"~standard",()=>({validate:l=>{try{const c=EA(e,l);return c.success?{value:c.data}:{issues:c.error?.issues}}catch{return CA(e,l).then(f=>f.success?{value:f.data}:{issues:f.error?.issues})}},vendor:"zod",version:1}))}),xh=J("$ZodString",(e,r)=>{wt.init(e,r),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??tR(e._zod.bag),e._zod.parse=(a,s)=>{if(r.coerce)try{a.value=String(a.value)}catch{}return typeof a.value=="string"||a.issues.push({expected:"string",code:"invalid_type",input:a.value,inst:e}),a}}),lt=J("$ZodStringFormat",(e,r)=>{Du.init(e,r),xh.init(e,r)}),SR=J("$ZodGUID",(e,r)=>{r.pattern??(r.pattern=HA),lt.init(e,r)}),xR=J("$ZodUUID",(e,r)=>{if(r.version){const s={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[r.version];if(s===void 0)throw new Error(`Invalid UUID version: "${r.version}"`);r.pattern??(r.pattern=xy(s))}else r.pattern??(r.pattern=xy());lt.init(e,r)}),wR=J("$ZodEmail",(e,r)=>{r.pattern??(r.pattern=BA),lt.init(e,r)}),ER=J("$ZodURL",(e,r)=>{lt.init(e,r),e._zod.check=a=>{try{const s=a.value.trim();if(!r.normalize&&r.protocol?.source===XA.source&&!/^https?:\/\//i.test(s)){a.issues.push({code:"invalid_format",format:"url",note:"Invalid URL format",input:a.value,inst:e,continue:!r.abort});return}const l=new URL(s);r.hostname&&(r.hostname.lastIndex=0,r.hostname.test(l.hostname)||a.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:r.hostname.source,input:a.value,inst:e,continue:!r.abort})),r.protocol&&(r.protocol.lastIndex=0,r.protocol.test(l.protocol.endsWith(":")?l.protocol.slice(0,-1):l.protocol)||a.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:r.protocol.source,input:a.value,inst:e,continue:!r.abort})),r.normalize?a.value=l.href:a.value=s;return}catch{a.issues.push({code:"invalid_format",format:"url",input:a.value,inst:e,continue:!r.abort})}}}),CR=J("$ZodEmoji",(e,r)=>{r.pattern??(r.pattern=$A()),lt.init(e,r)}),OR=J("$ZodNanoID",(e,r)=>{r.pattern??(r.pattern=LA),lt.init(e,r)}),AR=J("$ZodCUID",(e,r)=>{r.pattern??(r.pattern=jA),lt.init(e,r)}),RR=J("$ZodCUID2",(e,r)=>{r.pattern??(r.pattern=kA),lt.init(e,r)}),TR=J("$ZodULID",(e,r)=>{r.pattern??(r.pattern=FA),lt.init(e,r)}),DR=J("$ZodXID",(e,r)=>{r.pattern??(r.pattern=UA),lt.init(e,r)}),zR=J("$ZodKSUID",(e,r)=>{r.pattern??(r.pattern=VA),lt.init(e,r)}),MR=J("$ZodISODateTime",(e,r)=>{r.pattern??(r.pattern=eR(r)),lt.init(e,r)}),NR=J("$ZodISODate",(e,r)=>{r.pattern??(r.pattern=JA),lt.init(e,r)}),jR=J("$ZodISOTime",(e,r)=>{r.pattern??(r.pattern=WA(r)),lt.init(e,r)}),kR=J("$ZodISODuration",(e,r)=>{r.pattern??(r.pattern=ZA),lt.init(e,r)}),FR=J("$ZodIPv4",(e,r)=>{r.pattern??(r.pattern=GA),lt.init(e,r),e._zod.bag.format="ipv4"}),UR=J("$ZodIPv6",(e,r)=>{r.pattern??(r.pattern=YA),lt.init(e,r),e._zod.bag.format="ipv6",e._zod.check=a=>{try{new URL(`http://[${a.value}]`)}catch{a.issues.push({code:"invalid_format",format:"ipv6",input:a.value,inst:e,continue:!r.abort})}}}),VR=J("$ZodCIDRv4",(e,r)=>{r.pattern??(r.pattern=IA),lt.init(e,r)}),LR=J("$ZodCIDRv6",(e,r)=>{r.pattern??(r.pattern=QA),lt.init(e,r),e._zod.check=a=>{const s=a.value.split("/");try{if(s.length!==2)throw new Error;const[l,c]=s;if(!c)throw new Error;const f=Number(c);if(`${f}`!==c)throw new Error;if(f<0||f>128)throw new Error;new URL(`http://[${l}]`)}catch{a.issues.push({code:"invalid_format",format:"cidrv6",input:a.value,inst:e,continue:!r.abort})}}});function i_(e){if(e==="")return!0;if(/\s/.test(e)||e.length%4!==0)return!1;try{return atob(e),!0}catch{return!1}}const ZR=J("$ZodBase64",(e,r)=>{r.pattern??(r.pattern=PA),lt.init(e,r),e._zod.bag.contentEncoding="base64",e._zod.check=a=>{i_(a.value)||a.issues.push({code:"invalid_format",format:"base64",input:a.value,inst:e,continue:!r.abort})}});function HR(e){if(!W0.test(e))return!1;const r=e.replace(/[-_]/g,s=>s==="-"?"+":"/"),a=r.padEnd(Math.ceil(r.length/4)*4,"=");return i_(a)}const BR=J("$ZodBase64URL",(e,r)=>{r.pattern??(r.pattern=W0),lt.init(e,r),e._zod.bag.contentEncoding="base64url",e._zod.check=a=>{HR(a.value)||a.issues.push({code:"invalid_format",format:"base64url",input:a.value,inst:e,continue:!r.abort})}}),qR=J("$ZodE164",(e,r)=>{r.pattern??(r.pattern=KA),lt.init(e,r)});function $R(e,r=null){try{const a=e.split(".");if(a.length!==3)return!1;const[s]=a;if(!s)return!1;const l=JSON.parse(atob(s));return!("typ"in l&&l?.typ!=="JWT"||!l.alg||r&&(!("alg"in l)||l.alg!==r))}catch{return!1}}const GR=J("$ZodJWT",(e,r)=>{lt.init(e,r),e._zod.check=a=>{$R(a.value,r.alg)||a.issues.push({code:"invalid_format",format:"jwt",input:a.value,inst:e,continue:!r.abort})}}),s_=J("$ZodNumber",(e,r)=>{wt.init(e,r),e._zod.pattern=e._zod.bag.pattern??rR,e._zod.parse=(a,s)=>{if(r.coerce)try{a.value=Number(a.value)}catch{}const l=a.value;if(typeof l=="number"&&!Number.isNaN(l)&&Number.isFinite(l))return a;const c=typeof l=="number"?Number.isNaN(l)?"NaN":Number.isFinite(l)?void 0:"Infinity":void 0;return a.issues.push({expected:"number",code:"invalid_type",input:l,inst:e,...c?{received:c}:{}}),a}}),YR=J("$ZodNumberFormat",(e,r)=>{lR.init(e,r),s_.init(e,r)}),IR=J("$ZodBoolean",(e,r)=>{wt.init(e,r),e._zod.pattern=aR,e._zod.parse=(a,s)=>{if(r.coerce)try{a.value=!!a.value}catch{}const l=a.value;return typeof l=="boolean"||a.issues.push({expected:"boolean",code:"invalid_type",input:l,inst:e}),a}}),QR=J("$ZodUnknown",(e,r)=>{wt.init(e,r),e._zod.parse=a=>a}),PR=J("$ZodNever",(e,r)=>{wt.init(e,r),e._zod.parse=(a,s)=>(a.issues.push({expected:"never",code:"invalid_type",input:a.value,inst:e}),a)});function wy(e,r,a){e.issues.length&&r.issues.push(...P0(a,e.issues)),r.value[a]=e.value}const XR=J("$ZodArray",(e,r)=>{wt.init(e,r),e._zod.parse=(a,s)=>{const l=a.value;if(!Array.isArray(l))return a.issues.push({expected:"array",code:"invalid_type",input:l,inst:e}),a;a.value=Array(l.length);const c=[];for(let f=0;fwy(m,a,f))):wy(p,a,f)}return c.length?Promise.all(c).then(()=>a):a}});function du(e,r,a,s,l,c){const f=a in s;if(e.issues.length){if(l&&c&&!f)return;r.issues.push(...P0(a,e.issues))}if(!f&&!l){e.issues.length||r.issues.push({code:"invalid_type",expected:"nonoptional",input:void 0,path:[a]});return}e.value===void 0?f&&(r.value[a]=void 0):r.value[a]=e.value}function o_(e){const r=Object.keys(e.shape);for(const s of r)if(!e.shape?.[s]?._zod?.traits?.has("$ZodType"))throw new Error(`Invalid element at key "${s}": expected a Zod schema`);const a=dA(e.shape);return{...e,keys:r,keySet:new Set(r),numKeys:r.length,optionalKeys:new Set(a)}}function l_(e,r,a,s,l,c){const f=[],h=l.keySet,p=l.catchall._zod,m=p.def.type,y=p.optin==="optional",v=p.optout==="optional";for(const _ in r){if(_==="__proto__"||h.has(_))continue;if(m==="never"){f.push(_);continue}const E=p.run({value:r[_],issues:[]},s);E instanceof Promise?e.push(E.then(x=>du(x,a,_,r,y,v))):du(E,a,_,r,y,v)}return f.length&&a.issues.push({code:"unrecognized_keys",keys:f,input:r,inst:c}),e.length?Promise.all(e).then(()=>a):a}const KR=J("$ZodObject",(e,r)=>{if(wt.init(e,r),!Object.getOwnPropertyDescriptor(r,"shape")?.get){const h=r.shape;Object.defineProperty(r,"shape",{get:()=>{const p={...h};return Object.defineProperty(r,"shape",{value:p}),p}})}const s=gh(()=>o_(r));et(e._zod,"propValues",()=>{const h=r.shape,p={};for(const m in h){const y=h[m]._zod;if(y.values){p[m]??(p[m]=new Set);for(const v of y.values)p[m].add(v)}}return p});const l=fu,c=r.catchall;let f;e._zod.parse=(h,p)=>{f??(f=s.value);const m=h.value;if(!l(m))return h.issues.push({expected:"object",code:"invalid_type",input:m,inst:e}),h;h.value={};const y=[],v=f.shape;for(const _ of f.keys){const E=v[_],x=E._zod.optin==="optional",C=E._zod.optout==="optional",A=E._zod.run({value:m[_],issues:[]},p);A instanceof Promise?y.push(A.then(Z=>du(Z,h,_,m,x,C))):du(A,h,_,m,x,C)}return c?l_(y,m,h,p,s.value,e):y.length?Promise.all(y).then(()=>h):h}}),JR=J("$ZodObjectJIT",(e,r)=>{KR.init(e,r);const a=e._zod.parse,s=gh(()=>o_(r)),l=_=>{const E=new bR(["shape","payload","ctx"]),x=s.value,C=P=>{const H=Sy(P);return`shape[${H}]._zod.run({ value: input[${H}], issues: [] }, ctx)`};E.write("const input = payload.value;");const A=Object.create(null);let Z=0;for(const P of x.keys)A[P]=`key_${Z++}`;E.write("const newResult = {};");for(const P of x.keys){const H=A[P],G=Sy(P),te=_[P],q=te?._zod?.optin==="optional",$=te?._zod?.optout==="optional";E.write(`const ${H} = ${C(P)};`),q&&$?E.write(` + if (${H}.issues.length) { + if (${G} in input) { + payload.issues = payload.issues.concat(${H}.issues.map(iss => ({ + ...iss, + path: iss.path ? [${G}, ...iss.path] : [${G}] + }))); + } + } + + if (${H}.value === undefined) { + if (${G} in input) { + newResult[${G}] = undefined; + } + } else { + newResult[${G}] = ${H}.value; + } + + `):q?E.write(` + if (${H}.issues.length) { + payload.issues = payload.issues.concat(${H}.issues.map(iss => ({ + ...iss, + path: iss.path ? [${G}, ...iss.path] : [${G}] + }))); + } + + if (${H}.value === undefined) { + if (${G} in input) { + newResult[${G}] = undefined; + } + } else { + newResult[${G}] = ${H}.value; + } + + `):E.write(` + const ${H}_present = ${G} in input; + if (${H}.issues.length) { + payload.issues = payload.issues.concat(${H}.issues.map(iss => ({ + ...iss, + path: iss.path ? [${G}, ...iss.path] : [${G}] + }))); + } + if (!${H}_present && !${H}.issues.length) { + payload.issues.push({ + code: "invalid_type", + expected: "nonoptional", + input: undefined, + path: [${G}] + }); + } + + if (${H}_present) { + if (${H}.value === undefined) { + newResult[${G}] = undefined; + } else { + newResult[${G}] = ${H}.value; + } + } + + `)}E.write("payload.value = newResult;"),E.write("return payload;");const k=E.compile();return(P,H)=>k(_,P,H)};let c;const f=fu,h=!ph.jitless,m=h&&cA.value,y=r.catchall;let v;e._zod.parse=(_,E)=>{v??(v=s.value);const x=_.value;return f(x)?h&&m&&E?.async===!1&&E.jitless!==!0?(c||(c=l(r.shape)),_=c(_,E),y?l_([],x,_,E,v,e):_):a(_,E):(_.issues.push({expected:"object",code:"invalid_type",input:x,inst:e}),_)}});function Ey(e,r,a,s){for(const c of e)if(c.issues.length===0)return r.value=c.value,r;const l=e.filter(c=>!Qi(c));return l.length===1?(r.value=l[0].value,l[0]):(r.issues.push({code:"invalid_union",input:r.value,inst:a,errors:e.map(c=>c.issues.map(f=>Ka(f,s,Xa())))}),r)}const WR=J("$ZodUnion",(e,r)=>{wt.init(e,r),et(e._zod,"optin",()=>r.options.some(s=>s._zod.optin==="optional")?"optional":void 0),et(e._zod,"optout",()=>r.options.some(s=>s._zod.optout==="optional")?"optional":void 0),et(e._zod,"values",()=>{if(r.options.every(s=>s._zod.values))return new Set(r.options.flatMap(s=>Array.from(s._zod.values)))}),et(e._zod,"pattern",()=>{if(r.options.every(s=>s._zod.pattern)){const s=r.options.map(l=>l._zod.pattern);return new RegExp(`^(${s.map(l=>yh(l.source)).join("|")})$`)}});const a=r.options.length===1?r.options[0]._zod.run:null;e._zod.parse=(s,l)=>{if(a)return a(s,l);let c=!1;const f=[];for(const h of r.options){const p=h._zod.run({value:s.value,issues:[]},l);if(p instanceof Promise)f.push(p),c=!0;else{if(p.issues.length===0)return p;f.push(p)}}return c?Promise.all(f).then(h=>Ey(h,s,e,l)):Ey(f,s,e,l)}}),eT=J("$ZodIntersection",(e,r)=>{wt.init(e,r),e._zod.parse=(a,s)=>{const l=a.value,c=r.left._zod.run({value:l,issues:[]},s),f=r.right._zod.run({value:l,issues:[]},s);return c instanceof Promise||f instanceof Promise?Promise.all([c,f]).then(([p,m])=>Cy(a,p,m)):Cy(a,c,f)}});function zd(e,r){if(e===r)return{valid:!0,data:e};if(e instanceof Date&&r instanceof Date&&+e==+r)return{valid:!0,data:e};if(so(e)&&so(r)){const a=Object.keys(r),s=Object.keys(e).filter(c=>a.indexOf(c)!==-1),l={...e,...r};for(const c of s){const f=zd(e[c],r[c]);if(!f.valid)return{valid:!1,mergeErrorPath:[c,...f.mergeErrorPath]};l[c]=f.data}return{valid:!0,data:l}}if(Array.isArray(e)&&Array.isArray(r)){if(e.length!==r.length)return{valid:!1,mergeErrorPath:[]};const a=[];for(let s=0;sh.l&&h.r).map(([h])=>h);if(c.length&&l&&e.issues.push({...l,keys:c}),Qi(e))return e;const f=zd(r.value,a.value);if(!f.valid)throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(f.mergeErrorPath)}`);return e.value=f.data,e}const tT=J("$ZodEnum",(e,r)=>{wt.init(e,r);const a=Y0(r.entries),s=new Set(a);e._zod.values=s,e._zod.pattern=new RegExp(`^(${a.filter(l=>fA.has(typeof l)).map(l=>typeof l=="string"?Au(l):l.toString()).join("|")})$`),e._zod.parse=(l,c)=>{const f=l.value;return s.has(f)||l.issues.push({code:"invalid_value",values:a,input:f,inst:e}),l}}),nT=J("$ZodTransform",(e,r)=>{wt.init(e,r),e._zod.optin="optional",e._zod.parse=(a,s)=>{if(s.direction==="backward")throw new G0(e.constructor.name);const l=r.transform(a.value,a);if(s.async)return(l instanceof Promise?l:Promise.resolve(l)).then(f=>(a.value=f,a.fallback=!0,a));if(l instanceof Promise)throw new Pi;return a.value=l,a.fallback=!0,a}});function Oy(e,r){return r===void 0&&(e.issues.length||e.fallback)?{issues:[],value:void 0}:e}const u_=J("$ZodOptional",(e,r)=>{wt.init(e,r),e._zod.optin="optional",e._zod.optout="optional",et(e._zod,"values",()=>r.innerType._zod.values?new Set([...r.innerType._zod.values,void 0]):void 0),et(e._zod,"pattern",()=>{const a=r.innerType._zod.pattern;return a?new RegExp(`^(${yh(a.source)})?$`):void 0}),e._zod.parse=(a,s)=>{if(r.innerType._zod.optin==="optional"){const l=a.value,c=r.innerType._zod.run(a,s);return c instanceof Promise?c.then(f=>Oy(f,l)):Oy(c,l)}return a.value===void 0?a:r.innerType._zod.run(a,s)}}),rT=J("$ZodExactOptional",(e,r)=>{u_.init(e,r),et(e._zod,"values",()=>r.innerType._zod.values),et(e._zod,"pattern",()=>r.innerType._zod.pattern),e._zod.parse=(a,s)=>r.innerType._zod.run(a,s)}),aT=J("$ZodNullable",(e,r)=>{wt.init(e,r),et(e._zod,"optin",()=>r.innerType._zod.optin),et(e._zod,"optout",()=>r.innerType._zod.optout),et(e._zod,"pattern",()=>{const a=r.innerType._zod.pattern;return a?new RegExp(`^(${yh(a.source)}|null)$`):void 0}),et(e._zod,"values",()=>r.innerType._zod.values?new Set([...r.innerType._zod.values,null]):void 0),e._zod.parse=(a,s)=>a.value===null?a:r.innerType._zod.run(a,s)}),iT=J("$ZodDefault",(e,r)=>{wt.init(e,r),e._zod.optin="optional",et(e._zod,"values",()=>r.innerType._zod.values),e._zod.parse=(a,s)=>{if(s.direction==="backward")return r.innerType._zod.run(a,s);if(a.value===void 0)return a.value=r.defaultValue,a;const l=r.innerType._zod.run(a,s);return l instanceof Promise?l.then(c=>Ay(c,r)):Ay(l,r)}});function Ay(e,r){return e.value===void 0&&(e.value=r.defaultValue),e}const sT=J("$ZodPrefault",(e,r)=>{wt.init(e,r),e._zod.optin="optional",et(e._zod,"values",()=>r.innerType._zod.values),e._zod.parse=(a,s)=>(s.direction==="backward"||a.value===void 0&&(a.value=r.defaultValue),r.innerType._zod.run(a,s))}),oT=J("$ZodNonOptional",(e,r)=>{wt.init(e,r),et(e._zod,"values",()=>{const a=r.innerType._zod.values;return a?new Set([...a].filter(s=>s!==void 0)):void 0}),e._zod.parse=(a,s)=>{const l=r.innerType._zod.run(a,s);return l instanceof Promise?l.then(c=>Ry(c,e)):Ry(l,e)}});function Ry(e,r){return!e.issues.length&&e.value===void 0&&e.issues.push({code:"invalid_type",expected:"nonoptional",input:e.value,inst:r}),e}const lT=J("$ZodCatch",(e,r)=>{wt.init(e,r),e._zod.optin="optional",et(e._zod,"optout",()=>r.innerType._zod.optout),et(e._zod,"values",()=>r.innerType._zod.values),e._zod.parse=(a,s)=>{if(s.direction==="backward")return r.innerType._zod.run(a,s);const l=r.innerType._zod.run(a,s);return l instanceof Promise?l.then(c=>(a.value=c.value,c.issues.length&&(a.value=r.catchValue({...a,error:{issues:c.issues.map(f=>Ka(f,s,Xa()))},input:a.value}),a.issues=[],a.fallback=!0),a)):(a.value=l.value,l.issues.length&&(a.value=r.catchValue({...a,error:{issues:l.issues.map(c=>Ka(c,s,Xa()))},input:a.value}),a.issues=[],a.fallback=!0),a)}}),uT=J("$ZodPipe",(e,r)=>{wt.init(e,r),et(e._zod,"values",()=>r.in._zod.values),et(e._zod,"optin",()=>r.in._zod.optin),et(e._zod,"optout",()=>r.out._zod.optout),et(e._zod,"propValues",()=>r.in._zod.propValues),e._zod.parse=(a,s)=>{if(s.direction==="backward"){const c=r.out._zod.run(a,s);return c instanceof Promise?c.then(f=>Zl(f,r.in,s)):Zl(c,r.in,s)}const l=r.in._zod.run(a,s);return l instanceof Promise?l.then(c=>Zl(c,r.out,s)):Zl(l,r.out,s)}});function Zl(e,r,a){return e.issues.length?(e.aborted=!0,e):r._zod.run({value:e.value,issues:e.issues,fallback:e.fallback},a)}const cT=J("$ZodReadonly",(e,r)=>{wt.init(e,r),et(e._zod,"propValues",()=>r.innerType._zod.propValues),et(e._zod,"values",()=>r.innerType._zod.values),et(e._zod,"optin",()=>r.innerType?._zod?.optin),et(e._zod,"optout",()=>r.innerType?._zod?.optout),e._zod.parse=(a,s)=>{if(s.direction==="backward")return r.innerType._zod.run(a,s);const l=r.innerType._zod.run(a,s);return l instanceof Promise?l.then(Ty):Ty(l)}});function Ty(e){return e.value=Object.freeze(e.value),e}const fT=J("$ZodCustom",(e,r)=>{_n.init(e,r),wt.init(e,r),e._zod.parse=(a,s)=>a,e._zod.check=a=>{const s=a.value,l=r.fn(s);if(l instanceof Promise)return l.then(c=>Dy(c,a,s,e));Dy(l,a,s,e)}});function Dy(e,r,a,s){if(!e){const l={code:"custom",input:a,inst:s,path:[...s._zod.def.path??[]],continue:!s._zod.def.abort};s._zod.def.params&&(l.params=s._zod.def.params),r.issues.push(oo(l))}}var zy;class dT{constructor(){this._map=new WeakMap,this._idmap=new Map}add(r,...a){const s=a[0];return this._map.set(r,s),s&&typeof s=="object"&&"id"in s&&this._idmap.set(s.id,r),this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(r){const a=this._map.get(r);return a&&typeof a=="object"&&"id"in a&&this._idmap.delete(a.id),this._map.delete(r),this}get(r){const a=r._zod.parent;if(a){const s={...this.get(a)??{}};delete s.id;const l={...s,...this._map.get(r)};return Object.keys(l).length?l:void 0}return this._map.get(r)}has(r){return this._map.has(r)}}function hT(){return new dT}(zy=globalThis).__zod_globalRegistry??(zy.__zod_globalRegistry=hT());const eo=globalThis.__zod_globalRegistry;function mT(e,r){return new e({type:"string",...we(r)})}function pT(e,r){return new e({type:"string",format:"email",check:"string_format",abort:!1,...we(r)})}function My(e,r){return new e({type:"string",format:"guid",check:"string_format",abort:!1,...we(r)})}function gT(e,r){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,...we(r)})}function vT(e,r){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...we(r)})}function yT(e,r){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...we(r)})}function bT(e,r){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...we(r)})}function _T(e,r){return new e({type:"string",format:"url",check:"string_format",abort:!1,...we(r)})}function ST(e,r){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,...we(r)})}function xT(e,r){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,...we(r)})}function wT(e,r){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,...we(r)})}function ET(e,r){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,...we(r)})}function CT(e,r){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,...we(r)})}function OT(e,r){return new e({type:"string",format:"xid",check:"string_format",abort:!1,...we(r)})}function AT(e,r){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,...we(r)})}function RT(e,r){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,...we(r)})}function TT(e,r){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,...we(r)})}function DT(e,r){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,...we(r)})}function zT(e,r){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,...we(r)})}function MT(e,r){return new e({type:"string",format:"base64",check:"string_format",abort:!1,...we(r)})}function NT(e,r){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,...we(r)})}function jT(e,r){return new e({type:"string",format:"e164",check:"string_format",abort:!1,...we(r)})}function kT(e,r){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,...we(r)})}function FT(e,r){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...we(r)})}function UT(e,r){return new e({type:"string",format:"date",check:"string_format",...we(r)})}function VT(e,r){return new e({type:"string",format:"time",check:"string_format",precision:null,...we(r)})}function LT(e,r){return new e({type:"string",format:"duration",check:"string_format",...we(r)})}function ZT(e,r){return new e({type:"number",checks:[],...we(r)})}function HT(e,r){return new e({type:"number",check:"number_format",abort:!1,format:"safeint",...we(r)})}function BT(e,r){return new e({type:"boolean",...we(r)})}function qT(e){return new e({type:"unknown"})}function $T(e,r){return new e({type:"never",...we(r)})}function Ny(e,r){return new r_({check:"less_than",...we(r),value:e,inclusive:!1})}function id(e,r){return new r_({check:"less_than",...we(r),value:e,inclusive:!0})}function jy(e,r){return new a_({check:"greater_than",...we(r),value:e,inclusive:!1})}function sd(e,r){return new a_({check:"greater_than",...we(r),value:e,inclusive:!0})}function ky(e,r){return new oR({check:"multiple_of",...we(r),value:e})}function c_(e,r){return new uR({check:"max_length",...we(r),maximum:e})}function hu(e,r){return new cR({check:"min_length",...we(r),minimum:e})}function f_(e,r){return new fR({check:"length_equals",...we(r),length:e})}function GT(e,r){return new dR({check:"string_format",format:"regex",...we(r),pattern:e})}function YT(e){return new hR({check:"string_format",format:"lowercase",...we(e)})}function IT(e){return new mR({check:"string_format",format:"uppercase",...we(e)})}function QT(e,r){return new pR({check:"string_format",format:"includes",...we(r),includes:e})}function PT(e,r){return new gR({check:"string_format",format:"starts_with",...we(r),prefix:e})}function XT(e,r){return new vR({check:"string_format",format:"ends_with",...we(r),suffix:e})}function rs(e){return new yR({check:"overwrite",tx:e})}function KT(e){return rs(r=>r.normalize(e))}function JT(){return rs(e=>e.trim())}function WT(){return rs(e=>e.toLowerCase())}function eD(){return rs(e=>e.toUpperCase())}function tD(){return rs(e=>uA(e))}function nD(e,r,a){return new e({type:"array",element:r,...we(a)})}function rD(e,r,a){return new e({type:"custom",check:"custom",fn:r,...we(a)})}function aD(e,r){const a=iD(s=>(s.addIssue=l=>{if(typeof l=="string")s.issues.push(oo(l,s.value,a._zod.def));else{const c=l;c.fatal&&(c.continue=!1),c.code??(c.code="custom"),c.input??(c.input=s.value),c.inst??(c.inst=a),c.continue??(c.continue=!a._zod.def.abort),s.issues.push(oo(c))}},e(s.value,s)),r);return a}function iD(e,r){const a=new _n({check:"custom",...we(r)});return a._zod.check=e,a}function d_(e){let r=e?.target??"draft-2020-12";return r==="draft-4"&&(r="draft-04"),r==="draft-7"&&(r="draft-07"),{processors:e.processors??{},metadataRegistry:e?.metadata??eo,target:r,unrepresentable:e?.unrepresentable??"throw",override:e?.override??(()=>{}),io:e?.io??"output",counter:0,seen:new Map,cycles:e?.cycles??"ref",reused:e?.reused??"inline",external:e?.external??void 0}}function Kt(e,r,a={path:[],schemaPath:[]}){var s;const l=e._zod.def,c=r.seen.get(e);if(c)return c.count++,a.schemaPath.includes(e)&&(c.cycle=a.path),c.schema;const f={schema:{},count:1,cycle:void 0,path:a.path};r.seen.set(e,f);const h=e._zod.toJSONSchema?.();if(h)f.schema=h;else{const y={...a,schemaPath:[...a.schemaPath,e],path:a.path};if(e._zod.processJSONSchema)e._zod.processJSONSchema(r,f.schema,y);else{const _=f.schema,E=r.processors[l.type];if(!E)throw new Error(`[toJSONSchema]: Non-representable type encountered: ${l.type}`);E(e,r,_,y)}const v=e._zod.parent;v&&(f.ref||(f.ref=v),Kt(v,r,y),r.seen.get(v).isParent=!0)}const p=r.metadataRegistry.get(e);return p&&Object.assign(f.schema,p),r.io==="input"&&sn(e)&&(delete f.schema.examples,delete f.schema.default),r.io==="input"&&"_prefault"in f.schema&&((s=f.schema).default??(s.default=f.schema._prefault)),delete f.schema._prefault,r.seen.get(e).schema}function h_(e,r){const a=e.seen.get(r);if(!a)throw new Error("Unprocessed schema. This is a bug in Zod.");const s=new Map;for(const f of e.seen.entries()){const h=e.metadataRegistry.get(f[0])?.id;if(h){const p=s.get(h);if(p&&p!==f[0])throw new Error(`Duplicate schema id "${h}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);s.set(h,f[0])}}const l=f=>{const h=e.target==="draft-2020-12"?"$defs":"definitions";if(e.external){const v=e.external.registry.get(f[0])?.id,_=e.external.uri??(x=>x);if(v)return{ref:_(v)};const E=f[1].defId??f[1].schema.id??`schema${e.counter++}`;return f[1].defId=E,{defId:E,ref:`${_("__shared")}#/${h}/${E}`}}if(f[1]===a)return{ref:"#"};const m=`#/${h}/`,y=f[1].schema.id??`__schema${e.counter++}`;return{defId:y,ref:m+y}},c=f=>{if(f[1].schema.$ref)return;const h=f[1],{ref:p,defId:m}=l(f);h.def={...h.schema},m&&(h.defId=m);const y=h.schema;for(const v in y)delete y[v];y.$ref=p};if(e.cycles==="throw")for(const f of e.seen.entries()){const h=f[1];if(h.cycle)throw new Error(`Cycle detected: #/${h.cycle?.join("/")}/ + +Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(const f of e.seen.entries()){const h=f[1];if(r===f[0]){c(f);continue}if(e.external){const m=e.external.registry.get(f[0])?.id;if(r!==f[0]&&m){c(f);continue}}if(e.metadataRegistry.get(f[0])?.id){c(f);continue}if(h.cycle){c(f);continue}if(h.count>1&&e.reused==="ref"){c(f);continue}}}function m_(e,r){const a=e.seen.get(r);if(!a)throw new Error("Unprocessed schema. This is a bug in Zod.");const s=h=>{const p=e.seen.get(h);if(p.ref===null)return;const m=p.def??p.schema,y={...m},v=p.ref;if(p.ref=null,v){s(v);const E=e.seen.get(v),x=E.schema;if(x.$ref&&(e.target==="draft-07"||e.target==="draft-04"||e.target==="openapi-3.0")?(m.allOf=m.allOf??[],m.allOf.push(x)):Object.assign(m,x),Object.assign(m,y),h._zod.parent===v)for(const A in m)A==="$ref"||A==="allOf"||A in y||delete m[A];if(x.$ref&&E.def)for(const A in m)A==="$ref"||A==="allOf"||A in E.def&&JSON.stringify(m[A])===JSON.stringify(E.def[A])&&delete m[A]}const _=h._zod.parent;if(_&&_!==v){s(_);const E=e.seen.get(_);if(E?.schema.$ref&&(m.$ref=E.schema.$ref,E.def))for(const x in m)x==="$ref"||x==="allOf"||x in E.def&&JSON.stringify(m[x])===JSON.stringify(E.def[x])&&delete m[x]}e.override({zodSchema:h,jsonSchema:m,path:p.path??[]})};for(const h of[...e.seen.entries()].reverse())s(h[0]);const l={};if(e.target==="draft-2020-12"?l.$schema="https://json-schema.org/draft/2020-12/schema":e.target==="draft-07"?l.$schema="http://json-schema.org/draft-07/schema#":e.target==="draft-04"?l.$schema="http://json-schema.org/draft-04/schema#":e.target,e.external?.uri){const h=e.external.registry.get(r)?.id;if(!h)throw new Error("Schema is missing an `id` property");l.$id=e.external.uri(h)}Object.assign(l,a.def??a.schema);const c=e.metadataRegistry.get(r)?.id;c!==void 0&&l.id===c&&delete l.id;const f=e.external?.defs??{};for(const h of e.seen.entries()){const p=h[1];p.def&&p.defId&&(p.def.id===p.defId&&delete p.def.id,f[p.defId]=p.def)}e.external||Object.keys(f).length>0&&(e.target==="draft-2020-12"?l.$defs=f:l.definitions=f);try{const h=JSON.parse(JSON.stringify(l));return Object.defineProperty(h,"~standard",{value:{...r["~standard"],jsonSchema:{input:mu(r,"input",e.processors),output:mu(r,"output",e.processors)}},enumerable:!1,writable:!1}),h}catch{throw new Error("Error converting schema to JSON.")}}function sn(e,r){const a=r??{seen:new Set};if(a.seen.has(e))return!1;a.seen.add(e);const s=e._zod.def;if(s.type==="transform")return!0;if(s.type==="array")return sn(s.element,a);if(s.type==="set")return sn(s.valueType,a);if(s.type==="lazy")return sn(s.getter(),a);if(s.type==="promise"||s.type==="optional"||s.type==="nonoptional"||s.type==="nullable"||s.type==="readonly"||s.type==="default"||s.type==="prefault")return sn(s.innerType,a);if(s.type==="intersection")return sn(s.left,a)||sn(s.right,a);if(s.type==="record"||s.type==="map")return sn(s.keyType,a)||sn(s.valueType,a);if(s.type==="pipe")return e._zod.traits.has("$ZodCodec")?!0:sn(s.in,a)||sn(s.out,a);if(s.type==="object"){for(const l in s.shape)if(sn(s.shape[l],a))return!0;return!1}if(s.type==="union"){for(const l of s.options)if(sn(l,a))return!0;return!1}if(s.type==="tuple"){for(const l of s.items)if(sn(l,a))return!0;return!!(s.rest&&sn(s.rest,a))}return!1}const sD=(e,r={})=>a=>{const s=d_({...a,processors:r});return Kt(e,s),h_(s,e),m_(s,e)},mu=(e,r,a={})=>s=>{const{libraryOptions:l,target:c}=s??{},f=d_({...l??{},target:c,io:r,processors:a});return Kt(e,f),h_(f,e),m_(f,e)},oD={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},lD=(e,r,a,s)=>{const l=a;l.type="string";const{minimum:c,maximum:f,format:h,patterns:p,contentEncoding:m}=e._zod.bag;if(typeof c=="number"&&(l.minLength=c),typeof f=="number"&&(l.maxLength=f),h&&(l.format=oD[h]??h,l.format===""&&delete l.format,h==="time"&&delete l.format),m&&(l.contentEncoding=m),p&&p.size>0){const y=[...p];y.length===1?l.pattern=y[0].source:y.length>1&&(l.allOf=[...y.map(v=>({...r.target==="draft-07"||r.target==="draft-04"||r.target==="openapi-3.0"?{type:"string"}:{},pattern:v.source}))])}},uD=(e,r,a,s)=>{const l=a,{minimum:c,maximum:f,format:h,multipleOf:p,exclusiveMaximum:m,exclusiveMinimum:y}=e._zod.bag;typeof h=="string"&&h.includes("int")?l.type="integer":l.type="number";const v=typeof y=="number"&&y>=(c??Number.NEGATIVE_INFINITY),_=typeof m=="number"&&m<=(f??Number.POSITIVE_INFINITY),E=r.target==="draft-04"||r.target==="openapi-3.0";v?E?(l.minimum=y,l.exclusiveMinimum=!0):l.exclusiveMinimum=y:typeof c=="number"&&(l.minimum=c),_?E?(l.maximum=m,l.exclusiveMaximum=!0):l.exclusiveMaximum=m:typeof f=="number"&&(l.maximum=f),typeof p=="number"&&(l.multipleOf=p)},cD=(e,r,a,s)=>{a.type="boolean"},fD=(e,r,a,s)=>{a.not={}},dD=(e,r,a,s)=>{},hD=(e,r,a,s)=>{const l=e._zod.def,c=Y0(l.entries);c.every(f=>typeof f=="number")&&(a.type="number"),c.every(f=>typeof f=="string")&&(a.type="string"),a.enum=c},mD=(e,r,a,s)=>{if(r.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")},pD=(e,r,a,s)=>{if(r.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")},gD=(e,r,a,s)=>{const l=a,c=e._zod.def,{minimum:f,maximum:h}=e._zod.bag;typeof f=="number"&&(l.minItems=f),typeof h=="number"&&(l.maxItems=h),l.type="array",l.items=Kt(c.element,r,{...s,path:[...s.path,"items"]})},vD=(e,r,a,s)=>{const l=a,c=e._zod.def;l.type="object",l.properties={};const f=c.shape;for(const m in f)l.properties[m]=Kt(f[m],r,{...s,path:[...s.path,"properties",m]});const h=new Set(Object.keys(f)),p=new Set([...h].filter(m=>{const y=c.shape[m]._zod;return r.io==="input"?y.optin===void 0:y.optout===void 0}));p.size>0&&(l.required=Array.from(p)),c.catchall?._zod.def.type==="never"?l.additionalProperties=!1:c.catchall?c.catchall&&(l.additionalProperties=Kt(c.catchall,r,{...s,path:[...s.path,"additionalProperties"]})):r.io==="output"&&(l.additionalProperties=!1)},yD=(e,r,a,s)=>{const l=e._zod.def,c=l.inclusive===!1,f=l.options.map((h,p)=>Kt(h,r,{...s,path:[...s.path,c?"oneOf":"anyOf",p]}));c?a.oneOf=f:a.anyOf=f},bD=(e,r,a,s)=>{const l=e._zod.def,c=Kt(l.left,r,{...s,path:[...s.path,"allOf",0]}),f=Kt(l.right,r,{...s,path:[...s.path,"allOf",1]}),h=m=>"allOf"in m&&Object.keys(m).length===1,p=[...h(c)?c.allOf:[c],...h(f)?f.allOf:[f]];a.allOf=p},_D=(e,r,a,s)=>{const l=e._zod.def,c=Kt(l.innerType,r,s),f=r.seen.get(e);r.target==="openapi-3.0"?(f.ref=l.innerType,a.nullable=!0):a.anyOf=[c,{type:"null"}]},SD=(e,r,a,s)=>{const l=e._zod.def;Kt(l.innerType,r,s);const c=r.seen.get(e);c.ref=l.innerType},xD=(e,r,a,s)=>{const l=e._zod.def;Kt(l.innerType,r,s);const c=r.seen.get(e);c.ref=l.innerType,a.default=JSON.parse(JSON.stringify(l.defaultValue))},wD=(e,r,a,s)=>{const l=e._zod.def;Kt(l.innerType,r,s);const c=r.seen.get(e);c.ref=l.innerType,r.io==="input"&&(a._prefault=JSON.parse(JSON.stringify(l.defaultValue)))},ED=(e,r,a,s)=>{const l=e._zod.def;Kt(l.innerType,r,s);const c=r.seen.get(e);c.ref=l.innerType;let f;try{f=l.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}a.default=f},CD=(e,r,a,s)=>{const l=e._zod.def,c=l.in._zod.traits.has("$ZodTransform"),f=r.io==="input"?c?l.out:l.in:l.out;Kt(f,r,s);const h=r.seen.get(e);h.ref=f},OD=(e,r,a,s)=>{const l=e._zod.def;Kt(l.innerType,r,s);const c=r.seen.get(e);c.ref=l.innerType,a.readOnly=!0},p_=(e,r,a,s)=>{const l=e._zod.def;Kt(l.innerType,r,s);const c=r.seen.get(e);c.ref=l.innerType},AD=J("ZodISODateTime",(e,r)=>{MR.init(e,r),dt.init(e,r)});function RD(e){return FT(AD,e)}const TD=J("ZodISODate",(e,r)=>{NR.init(e,r),dt.init(e,r)});function DD(e){return UT(TD,e)}const zD=J("ZodISOTime",(e,r)=>{jR.init(e,r),dt.init(e,r)});function MD(e){return VT(zD,e)}const ND=J("ZodISODuration",(e,r)=>{kR.init(e,r),dt.init(e,r)});function jD(e){return LT(ND,e)}const kD=(e,r)=>{K0.init(e,r),e.name="ZodError",Object.defineProperties(e,{format:{value:a=>wA(e,a)},flatten:{value:a=>xA(e,a)},addIssue:{value:a=>{e.issues.push(a),e.message=JSON.stringify(e.issues,Dd,2)}},addIssues:{value:a=>{e.issues.push(...a),e.message=JSON.stringify(e.issues,Dd,2)}},isEmpty:{get(){return e.issues.length===0}}})},qn=J("ZodError",kD,{Parent:Error}),FD=_h(qn),UD=Sh(qn),VD=Ru(qn),LD=Tu(qn),ZD=OA(qn),HD=AA(qn),BD=RA(qn),qD=TA(qn),$D=DA(qn),GD=zA(qn),YD=MA(qn),ID=NA(qn),Fy=new WeakMap;function vo(e,r,a){const s=Object.getPrototypeOf(e);let l=Fy.get(s);if(l||(l=new Set,Fy.set(s,l)),!l.has(r)){l.add(r);for(const c in a){const f=a[c];Object.defineProperty(s,c,{configurable:!0,enumerable:!1,get(){const h=f.bind(this);return Object.defineProperty(this,c,{configurable:!0,writable:!0,enumerable:!0,value:h}),h},set(h){Object.defineProperty(this,c,{configurable:!0,writable:!0,enumerable:!0,value:h})}})}}}const Et=J("ZodType",(e,r)=>(wt.init(e,r),Object.assign(e["~standard"],{jsonSchema:{input:mu(e,"input"),output:mu(e,"output")}}),e.toJSONSchema=sD(e,{}),e.def=r,e.type=r.type,Object.defineProperty(e,"_def",{value:r}),e.parse=(a,s)=>FD(e,a,s,{callee:e.parse}),e.safeParse=(a,s)=>VD(e,a,s),e.parseAsync=async(a,s)=>UD(e,a,s,{callee:e.parseAsync}),e.safeParseAsync=async(a,s)=>LD(e,a,s),e.spa=e.safeParseAsync,e.encode=(a,s)=>ZD(e,a,s),e.decode=(a,s)=>HD(e,a,s),e.encodeAsync=async(a,s)=>BD(e,a,s),e.decodeAsync=async(a,s)=>qD(e,a,s),e.safeEncode=(a,s)=>$D(e,a,s),e.safeDecode=(a,s)=>GD(e,a,s),e.safeEncodeAsync=async(a,s)=>YD(e,a,s),e.safeDecodeAsync=async(a,s)=>ID(e,a,s),vo(e,"ZodType",{check(...a){const s=this.def;return this.clone(_a(s,{checks:[...s.checks??[],...a.map(l=>typeof l=="function"?{_zod:{check:l,def:{check:"custom"},onattach:[]}}:l)]}),{parent:!0})},with(...a){return this.check(...a)},clone(a,s){return Sa(this,a,s)},brand(){return this},register(a,s){return a.add(this,s),this},refine(a,s){return this.check(Lz(a,s))},superRefine(a,s){return this.check(Zz(a,s))},overwrite(a){return this.check(rs(a))},optional(){return Zy(this)},exactOptional(){return Oz(this)},nullable(){return Hy(this)},nullish(){return Zy(Hy(this))},nonoptional(a){return Mz(this,a)},array(){return no(this)},or(a){return _z([this,a])},and(a){return xz(this,a)},transform(a){return By(this,Ez(a))},default(a){return Tz(this,a)},prefault(a){return zz(this,a)},catch(a){return jz(this,a)},pipe(a){return By(this,a)},readonly(){return Uz(this)},describe(a){const s=this.clone();return eo.add(s,{description:a}),s},meta(...a){if(a.length===0)return eo.get(this);const s=this.clone();return eo.add(s,a[0]),s},isOptional(){return this.safeParse(void 0).success},isNullable(){return this.safeParse(null).success},apply(a){return a(this)}}),Object.defineProperty(e,"description",{get(){return eo.get(e)?.description},configurable:!0}),e)),g_=J("_ZodString",(e,r)=>{xh.init(e,r),Et.init(e,r),e._zod.processJSONSchema=(s,l,c)=>lD(e,s,l);const a=e._zod.bag;e.format=a.format??null,e.minLength=a.minimum??null,e.maxLength=a.maximum??null,vo(e,"_ZodString",{regex(...s){return this.check(GT(...s))},includes(...s){return this.check(QT(...s))},startsWith(...s){return this.check(PT(...s))},endsWith(...s){return this.check(XT(...s))},min(...s){return this.check(hu(...s))},max(...s){return this.check(c_(...s))},length(...s){return this.check(f_(...s))},nonempty(...s){return this.check(hu(1,...s))},lowercase(s){return this.check(YT(s))},uppercase(s){return this.check(IT(s))},trim(){return this.check(JT())},normalize(...s){return this.check(KT(...s))},toLowerCase(){return this.check(WT())},toUpperCase(){return this.check(eD())},slugify(){return this.check(tD())}})}),QD=J("ZodString",(e,r)=>{xh.init(e,r),g_.init(e,r),e.email=a=>e.check(pT(PD,a)),e.url=a=>e.check(_T(XD,a)),e.jwt=a=>e.check(kT(fz,a)),e.emoji=a=>e.check(ST(KD,a)),e.guid=a=>e.check(My(Uy,a)),e.uuid=a=>e.check(gT(Hl,a)),e.uuidv4=a=>e.check(vT(Hl,a)),e.uuidv6=a=>e.check(yT(Hl,a)),e.uuidv7=a=>e.check(bT(Hl,a)),e.nanoid=a=>e.check(xT(JD,a)),e.guid=a=>e.check(My(Uy,a)),e.cuid=a=>e.check(wT(WD,a)),e.cuid2=a=>e.check(ET(ez,a)),e.ulid=a=>e.check(CT(tz,a)),e.base64=a=>e.check(MT(lz,a)),e.base64url=a=>e.check(NT(uz,a)),e.xid=a=>e.check(OT(nz,a)),e.ksuid=a=>e.check(AT(rz,a)),e.ipv4=a=>e.check(RT(az,a)),e.ipv6=a=>e.check(TT(iz,a)),e.cidrv4=a=>e.check(DT(sz,a)),e.cidrv6=a=>e.check(zT(oz,a)),e.e164=a=>e.check(jT(cz,a)),e.datetime=a=>e.check(RD(a)),e.date=a=>e.check(DD(a)),e.time=a=>e.check(MD(a)),e.duration=a=>e.check(jD(a))});function Vt(e){return mT(QD,e)}const dt=J("ZodStringFormat",(e,r)=>{lt.init(e,r),g_.init(e,r)}),PD=J("ZodEmail",(e,r)=>{wR.init(e,r),dt.init(e,r)}),Uy=J("ZodGUID",(e,r)=>{SR.init(e,r),dt.init(e,r)}),Hl=J("ZodUUID",(e,r)=>{xR.init(e,r),dt.init(e,r)}),XD=J("ZodURL",(e,r)=>{ER.init(e,r),dt.init(e,r)}),KD=J("ZodEmoji",(e,r)=>{CR.init(e,r),dt.init(e,r)}),JD=J("ZodNanoID",(e,r)=>{OR.init(e,r),dt.init(e,r)}),WD=J("ZodCUID",(e,r)=>{AR.init(e,r),dt.init(e,r)}),ez=J("ZodCUID2",(e,r)=>{RR.init(e,r),dt.init(e,r)}),tz=J("ZodULID",(e,r)=>{TR.init(e,r),dt.init(e,r)}),nz=J("ZodXID",(e,r)=>{DR.init(e,r),dt.init(e,r)}),rz=J("ZodKSUID",(e,r)=>{zR.init(e,r),dt.init(e,r)}),az=J("ZodIPv4",(e,r)=>{FR.init(e,r),dt.init(e,r)}),iz=J("ZodIPv6",(e,r)=>{UR.init(e,r),dt.init(e,r)}),sz=J("ZodCIDRv4",(e,r)=>{VR.init(e,r),dt.init(e,r)}),oz=J("ZodCIDRv6",(e,r)=>{LR.init(e,r),dt.init(e,r)}),lz=J("ZodBase64",(e,r)=>{ZR.init(e,r),dt.init(e,r)}),uz=J("ZodBase64URL",(e,r)=>{BR.init(e,r),dt.init(e,r)}),cz=J("ZodE164",(e,r)=>{qR.init(e,r),dt.init(e,r)}),fz=J("ZodJWT",(e,r)=>{GR.init(e,r),dt.init(e,r)}),v_=J("ZodNumber",(e,r)=>{s_.init(e,r),Et.init(e,r),e._zod.processJSONSchema=(s,l,c)=>uD(e,s,l),vo(e,"ZodNumber",{gt(s,l){return this.check(jy(s,l))},gte(s,l){return this.check(sd(s,l))},min(s,l){return this.check(sd(s,l))},lt(s,l){return this.check(Ny(s,l))},lte(s,l){return this.check(id(s,l))},max(s,l){return this.check(id(s,l))},int(s){return this.check(Vy(s))},safe(s){return this.check(Vy(s))},positive(s){return this.check(jy(0,s))},nonnegative(s){return this.check(sd(0,s))},negative(s){return this.check(Ny(0,s))},nonpositive(s){return this.check(id(0,s))},multipleOf(s,l){return this.check(ky(s,l))},step(s,l){return this.check(ky(s,l))},finite(){return this}});const a=e._zod.bag;e.minValue=Math.max(a.minimum??Number.NEGATIVE_INFINITY,a.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,e.maxValue=Math.min(a.maximum??Number.POSITIVE_INFINITY,a.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,e.isInt=(a.format??"").includes("int")||Number.isSafeInteger(a.multipleOf??.5),e.isFinite=!0,e.format=a.format??null});function jt(e){return ZT(v_,e)}const dz=J("ZodNumberFormat",(e,r)=>{YR.init(e,r),v_.init(e,r)});function Vy(e){return HT(dz,e)}const hz=J("ZodBoolean",(e,r)=>{IR.init(e,r),Et.init(e,r),e._zod.processJSONSchema=(a,s,l)=>cD(e,a,s)});function Jl(e){return BT(hz,e)}const mz=J("ZodUnknown",(e,r)=>{QR.init(e,r),Et.init(e,r),e._zod.processJSONSchema=(a,s,l)=>dD()});function Ly(){return qT(mz)}const pz=J("ZodNever",(e,r)=>{PR.init(e,r),Et.init(e,r),e._zod.processJSONSchema=(a,s,l)=>fD(e,a,s)});function gz(e){return $T(pz,e)}const vz=J("ZodArray",(e,r)=>{XR.init(e,r),Et.init(e,r),e._zod.processJSONSchema=(a,s,l)=>gD(e,a,s,l),e.element=r.element,vo(e,"ZodArray",{min(a,s){return this.check(hu(a,s))},nonempty(a){return this.check(hu(1,a))},max(a,s){return this.check(c_(a,s))},length(a,s){return this.check(f_(a,s))},unwrap(){return this.element}})});function no(e,r){return nD(vz,e,r)}const yz=J("ZodObject",(e,r)=>{JR.init(e,r),Et.init(e,r),e._zod.processJSONSchema=(a,s,l)=>vD(e,a,s,l),et(e,"shape",()=>r.shape),vo(e,"ZodObject",{keyof(){return y_(Object.keys(this._zod.def.shape))},catchall(a){return this.clone({...this._zod.def,catchall:a})},passthrough(){return this.clone({...this._zod.def,catchall:Ly()})},loose(){return this.clone({...this._zod.def,catchall:Ly()})},strict(){return this.clone({...this._zod.def,catchall:gz()})},strip(){return this.clone({...this._zod.def,catchall:void 0})},extend(a){return gA(this,a)},safeExtend(a){return vA(this,a)},merge(a){return yA(this,a)},pick(a){return mA(this,a)},omit(a){return pA(this,a)},partial(...a){return bA(b_,this,a[0])},required(...a){return _A(__,this,a[0])}})});function ga(e,r){const a={type:"object",shape:e??{},...we(r)};return new yz(a)}const bz=J("ZodUnion",(e,r)=>{WR.init(e,r),Et.init(e,r),e._zod.processJSONSchema=(a,s,l)=>yD(e,a,s,l),e.options=r.options});function _z(e,r){return new bz({type:"union",options:e,...we(r)})}const Sz=J("ZodIntersection",(e,r)=>{eT.init(e,r),Et.init(e,r),e._zod.processJSONSchema=(a,s,l)=>bD(e,a,s,l)});function xz(e,r){return new Sz({type:"intersection",left:e,right:r})}const Md=J("ZodEnum",(e,r)=>{tT.init(e,r),Et.init(e,r),e._zod.processJSONSchema=(s,l,c)=>hD(e,s,l),e.enum=r.entries,e.options=Object.values(r.entries);const a=new Set(Object.keys(r.entries));e.extract=(s,l)=>{const c={};for(const f of s)if(a.has(f))c[f]=r.entries[f];else throw new Error(`Key ${f} not found in enum`);return new Md({...r,checks:[],...we(l),entries:c})},e.exclude=(s,l)=>{const c={...r.entries};for(const f of s)if(a.has(f))delete c[f];else throw new Error(`Key ${f} not found in enum`);return new Md({...r,checks:[],...we(l),entries:c})}});function y_(e,r){const a=Array.isArray(e)?Object.fromEntries(e.map(s=>[s,s])):e;return new Md({type:"enum",entries:a,...we(r)})}const wz=J("ZodTransform",(e,r)=>{nT.init(e,r),Et.init(e,r),e._zod.processJSONSchema=(a,s,l)=>pD(e,a),e._zod.parse=(a,s)=>{if(s.direction==="backward")throw new G0(e.constructor.name);a.addIssue=c=>{if(typeof c=="string")a.issues.push(oo(c,a.value,r));else{const f=c;f.fatal&&(f.continue=!1),f.code??(f.code="custom"),f.input??(f.input=a.value),f.inst??(f.inst=e),a.issues.push(oo(f))}};const l=r.transform(a.value,a);return l instanceof Promise?l.then(c=>(a.value=c,a.fallback=!0,a)):(a.value=l,a.fallback=!0,a)}});function Ez(e){return new wz({type:"transform",transform:e})}const b_=J("ZodOptional",(e,r)=>{u_.init(e,r),Et.init(e,r),e._zod.processJSONSchema=(a,s,l)=>p_(e,a,s,l),e.unwrap=()=>e._zod.def.innerType});function Zy(e){return new b_({type:"optional",innerType:e})}const Cz=J("ZodExactOptional",(e,r)=>{rT.init(e,r),Et.init(e,r),e._zod.processJSONSchema=(a,s,l)=>p_(e,a,s,l),e.unwrap=()=>e._zod.def.innerType});function Oz(e){return new Cz({type:"optional",innerType:e})}const Az=J("ZodNullable",(e,r)=>{aT.init(e,r),Et.init(e,r),e._zod.processJSONSchema=(a,s,l)=>_D(e,a,s,l),e.unwrap=()=>e._zod.def.innerType});function Hy(e){return new Az({type:"nullable",innerType:e})}const Rz=J("ZodDefault",(e,r)=>{iT.init(e,r),Et.init(e,r),e._zod.processJSONSchema=(a,s,l)=>xD(e,a,s,l),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function Tz(e,r){return new Rz({type:"default",innerType:e,get defaultValue(){return typeof r=="function"?r():Q0(r)}})}const Dz=J("ZodPrefault",(e,r)=>{sT.init(e,r),Et.init(e,r),e._zod.processJSONSchema=(a,s,l)=>wD(e,a,s,l),e.unwrap=()=>e._zod.def.innerType});function zz(e,r){return new Dz({type:"prefault",innerType:e,get defaultValue(){return typeof r=="function"?r():Q0(r)}})}const __=J("ZodNonOptional",(e,r)=>{oT.init(e,r),Et.init(e,r),e._zod.processJSONSchema=(a,s,l)=>SD(e,a,s,l),e.unwrap=()=>e._zod.def.innerType});function Mz(e,r){return new __({type:"nonoptional",innerType:e,...we(r)})}const Nz=J("ZodCatch",(e,r)=>{lT.init(e,r),Et.init(e,r),e._zod.processJSONSchema=(a,s,l)=>ED(e,a,s,l),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function jz(e,r){return new Nz({type:"catch",innerType:e,catchValue:typeof r=="function"?r:()=>r})}const kz=J("ZodPipe",(e,r)=>{uT.init(e,r),Et.init(e,r),e._zod.processJSONSchema=(a,s,l)=>CD(e,a,s,l),e.in=r.in,e.out=r.out});function By(e,r){return new kz({type:"pipe",in:e,out:r})}const Fz=J("ZodReadonly",(e,r)=>{cT.init(e,r),Et.init(e,r),e._zod.processJSONSchema=(a,s,l)=>OD(e,a,s,l),e.unwrap=()=>e._zod.def.innerType});function Uz(e){return new Fz({type:"readonly",innerType:e})}const Vz=J("ZodCustom",(e,r)=>{fT.init(e,r),Et.init(e,r),e._zod.processJSONSchema=(a,s,l)=>mD(e,a)});function Lz(e,r={}){return rD(Vz,e,r)}function Zz(e,r){return aD(e,r)}const Hz=ga({name:Vt(),healthy:Jl(),breaker_state:jt(),succeeded:jt(),failed:jt(),filtered:jt(),retries:jt()}),Bz=ga({table:Vt(),insert:jt(),update:jt(),delete:jt(),read:jt(),truncate:jt(),total:jt()}),qz=ga({schema:Vt(),table:Vt(),state:y_(["pending","running","done","skipped","failed"]),rows_copied:jt(),started_at:Vt().optional().nullable(),completed_at:Vt().optional().nullable(),error:Vt().optional()}),$z=ga({uptime_seconds:jt(),ready:Jl(),streaming:Jl(),current_lsn:Vt(),wal_lag_bytes:jt(),inflight:jt(),events_total:jt(),sinks:no(Hz),tables:no(Bz),backfill:no(qz),dlq:ga({enabled:Jl(),entries:jt()})}),Gz=ga({id:Vt(),sink:Vt(),schema:Vt(),table:Vt(),operation:Vt(),lsn:Vt(),error:Vt(),attempts:jt(),first_failed_at:Vt().optional(),last_failed_at:Vt()}),Yz=ga({total:jt(),entries:no(Gz).nullable().transform(e=>e??[])});async function as(e,r){const a=await fetch(e,{headers:{"Content-Type":"application/json"},...r}),s=await a.json().catch(()=>({}));if(!a.ok)throw new Error(s.error??`${a.status} ${a.statusText}`);return s}const Iz=async()=>$z.parse(await as("/api/stats")),Qz=async(e=100)=>Yz.parse(await as(`/dlq?limit=${e}`)),Pz=e=>as("/dlq/retry",{method:"POST",body:JSON.stringify({id:e})}),Xz=()=>as("/dlq/retry",{method:"POST",body:JSON.stringify({all:!0})}),Kz=e=>as("/dlq/discard",{method:"POST",body:JSON.stringify({id:e})}),Jz=e=>as("/backfill",{method:"POST",body:JSON.stringify(e?{table:e}:{all:!0})}),S_=2e3;function Wz(){return Mb({queryKey:["stats"],queryFn:Iz,refetchInterval:S_})}function eM(e=!0){return Mb({queryKey:["dlq"],queryFn:()=>Qz(200),refetchInterval:S_,enabled:e})}function tM(e){const r=z.useRef([]),a=z.useRef([]),s=z.useRef(null);if(e){const c=Date.now(),f=e.events_total;if(s.current!==f||r.current.length===0){if(s.current!==null&&f2){const h=r.current[r.current.length-2],p=(c-h.t)/1e3;p>.2&&(a.current.push(Math.max(0,(f-h.total)/p)),a.current.length>40&&a.current.shift())}r.current.length>50&&r.current.shift()}}const l=a.current;return{rate:l.length>0?l[l.length-1]:0,history:[...l]}}const qy={0:{label:"closed",variant:"success"},1:{label:"half-open",variant:"warning"},2:{label:"open",variant:"destructive"}},nM=[{accessorKey:"name",header:"Sink",sortFn:"text",cell:({row:e})=>S.jsxs("span",{className:"flex items-center gap-2 font-medium",children:[S.jsx("span",{className:e.original.healthy?"size-1.5 rounded-full bg-emerald-500":"size-1.5 rounded-full bg-red-500"}),e.original.name]})},{accessorKey:"breaker_state",header:"Breaker",sortFn:"basic",cell:({getValue:e})=>{const r=qy[e()]??qy[0];return S.jsx(ma,{variant:r.variant,children:r.label})}},{accessorKey:"succeeded",header:()=>S.jsx("span",{className:"block text-right",children:"Delivered"}),sortFn:"basic",cell:({getValue:e})=>S.jsx("span",{className:"text-success block text-right tabular-nums",children:jr(e())})},{accessorKey:"failed",header:()=>S.jsx("span",{className:"block text-right",children:"Failed"}),sortFn:"basic",cell:({getValue:e})=>{const r=e();return S.jsx("span",{className:`block text-right tabular-nums ${r>0?"text-destructive":"text-muted-foreground"}`,children:jr(r)})}},{accessorKey:"retries",header:()=>S.jsx("span",{className:"block text-right",children:"Retries"}),sortFn:"basic",cell:({getValue:e})=>S.jsx("span",{className:"text-muted-foreground block text-right tabular-nums",children:jr(e())})},{accessorKey:"filtered",header:()=>S.jsx("span",{className:"block text-right",children:"Filtered"}),sortFn:"basic",cell:({getValue:e})=>S.jsx("span",{className:"text-muted-foreground block text-right tabular-nums",children:jr(e())})}];function rM({stats:e}){const{rate:r,history:a}=tM(e),s=z.useMemo(()=>e?.sinks??[],[e]),l=wu({features:Ou,columns:nM,data:s}),c=e?.dlq.entries??0;return S.jsxs("div",{className:"space-y-4",children:[S.jsxs("div",{className:"grid gap-4 sm:grid-cols-2 xl:grid-cols-4",children:[S.jsx(Vl,{label:"Throughput",value:A2(r),sub:`${jr(e?.events_total)} total`,icon:jb,children:S.jsx(rA,{points:a,width:96,height:46,className:"mt-1 shrink-0 text-emerald-500 dark:text-emerald-400"})}),S.jsx(Vl,{label:"WAL lag",value:C2(e?.wal_lag_bytes),sub:e?.streaming?"replication live":"replication down",icon:aE}),S.jsx(Vl,{label:"In flight",value:String(e?.inflight??0),sub:"events being processed",icon:uE}),S.jsx(Vl,{label:"Dead letters",value:String(c),sub:e?.dlq.enabled?c>0?"needs triage":"queue empty":"DLQ disabled",icon:th,tone:c>0?"danger":"default"})]}),S.jsxs(go,{className:"gap-3",children:[S.jsxs(eA,{children:[S.jsxs("div",{children:[S.jsx(tA,{children:"Sinks"}),S.jsx(nA,{className:"mt-1",children:"Delivery state per destination — the circuit breaker opens while a sink is down."})]}),S.jsxs(ma,{variant:"outline",className:"text-muted-foreground",children:[S.jsx(qw,{className:"size-3"}),s.length," active"]})]}),S.jsx(Eu,{className:"px-0",children:S.jsx(Cu,{table:l,empty:S.jsxs("div",{className:"text-muted-foreground flex flex-col items-center gap-1 text-sm",children:[S.jsx(tE,{className:"size-5"}),"No sinks configured — set REDIS_URL, REDIS_JSON_URL, or MEILISEARCH_URL."]})})})]}),e&&S.jsxs("div",{className:"text-muted-foreground flex flex-wrap items-center gap-x-4 gap-y-1 px-1 text-xs",children:[S.jsxs("span",{className:"flex items-center gap-1",children:[S.jsx(Ww,{className:"size-3.5"}),"at-least-once delivery"]}),S.jsxs("span",{children:["LSN ",e.current_lsn]}),S.jsx("span",{children:"refreshes every 2s"})]})]})}function wh({className:e,type:r,...a}){return S.jsx("input",{type:r,"data-slot":"input",className:Pe("file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input flex h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm","focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]","aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",e),...a})}function Bl(e,r){return S.jsx("span",{className:`block text-right tabular-nums ${e>0?r:"text-muted-foreground/50"}`,children:jr(e)})}function aM(e){return[{accessorKey:"table",header:"Table",sortFn:"text",cell:({getValue:r})=>S.jsx("span",{className:"font-medium",children:r()})},{accessorKey:"insert",header:()=>S.jsx("span",{className:"block text-right",children:"Inserts"}),sortFn:"basic",cell:({getValue:r})=>Bl(r(),"text-emerald-600 dark:text-emerald-400")},{accessorKey:"update",header:()=>S.jsx("span",{className:"block text-right",children:"Updates"}),sortFn:"basic",cell:({getValue:r})=>Bl(r(),"text-sky-600 dark:text-sky-400")},{accessorKey:"delete",header:()=>S.jsx("span",{className:"block text-right",children:"Deletes"}),sortFn:"basic",cell:({getValue:r})=>Bl(r(),"text-red-600 dark:text-red-400")},{accessorKey:"read",header:()=>S.jsx("span",{className:"block text-right",children:"Backfill reads"}),sortFn:"basic",cell:({getValue:r})=>Bl(r(),"text-violet-600 dark:text-violet-400")},{accessorKey:"total",header:()=>S.jsx("span",{className:"block text-right",children:"Total"}),sortFn:"basic",cell:({getValue:r})=>{const a=r(),s=e>0?a/e*100:0;return S.jsxs("div",{className:"flex items-center justify-end gap-2",children:[S.jsx("span",{className:"font-medium tabular-nums",children:jr(a)}),S.jsx("span",{className:"bg-muted relative h-1.5 w-16 overflow-hidden rounded-full",children:S.jsx("span",{className:"bg-primary/70 absolute inset-y-0 left-0 rounded-full",style:{width:`${Math.max(2,s)}%`}})})]})}}]}function iM({stats:e}){const[r,a]=z.useState(""),s=z.useMemo(()=>e?.tables??[],[e]),l=z.useMemo(()=>aM(e?.events_total??0),[e?.events_total]),c=wu({features:Ou,columns:l,data:s,globalFilterFn:"includesString",initialState:{sorting:[{id:"total",desc:!0}]},state:{globalFilter:r}});return S.jsxs("div",{className:"space-y-4",children:[S.jsxs("div",{className:"relative max-w-xs",children:[S.jsx(Fb,{className:"text-muted-foreground absolute top-1/2 left-2.5 size-4 -translate-y-1/2"}),S.jsx(wh,{placeholder:"Filter tables…",value:r,onChange:f=>a(f.target.value),className:"h-8 pl-8 text-sm"})]}),S.jsx(go,{className:"py-0",children:S.jsx(Eu,{className:"px-0",children:S.jsx(Cu,{table:c,empty:S.jsxs("div",{className:"text-muted-foreground flex flex-col items-center gap-1 text-sm",children:[S.jsx(Ub,{className:"size-5"}),"No change events observed yet."]})})})})]})}var yo=e=>e.type==="checkbox",zu=e=>e.type==="file",kr=e=>e instanceof Date,Lt=e=>e==null;const Eh=e=>typeof e=="object";var ct=e=>!Lt(e)&&!Array.isArray(e)&&Eh(e)&&!kr(e),Nd=e=>ct(e)&&e.target?yo(e.target)?e.target.checked:zu(e.target)?e.target.files:e.target.value:e,x_=(e,r)=>r.split(".").some((a,s,l)=>!isNaN(Number(a))&&e.has(l.slice(0,s).join("."))),w_=e=>{const r=e.constructor&&e.constructor.prototype;return ct(r)&&r.hasOwnProperty("isPrototypeOf")},Mu=typeof window<"u"&&typeof window.HTMLElement<"u"&&typeof document<"u";function ot(e){if(e instanceof Date)return new Date(e);const r=typeof FileList<"u"&&e instanceof FileList;if(Mu&&(e instanceof Blob||r))return e;const a=Array.isArray(e);if(!a&&!(ct(e)&&w_(e)))return e;const s=a?[]:Object.create(Object.getPrototypeOf(e));for(const l in e)Object.prototype.hasOwnProperty.call(e,l)&&(s[l]=ot(e[l]));return s}const fa={BLUR:"blur",FOCUS_OUT:"focusout",CHANGE:"change",SUBMIT:"submit",TRIGGER:"trigger",VALID:"valid"},Pn={onBlur:"onBlur",onChange:"onChange",onSubmit:"onSubmit",onTouched:"onTouched",all:"all"},Qn={max:"max",min:"min",maxLength:"maxLength",minLength:"minLength",pattern:"pattern",required:"required",validate:"validate"},E_="root",Ch=["__proto__","constructor","prototype"],sM=/^\w*$/;var Ji=e=>sM.test(e),it=e=>e===void 0;const oM=/[.[\]'"]/;var lo=e=>e.split(oM).filter(Boolean),oe=(e,r,a)=>{if(!r||!ct(e))return a;const s=Ji(r)?[r]:lo(r);if(s.some(c=>Ch.includes(c)))return a;const l=s.reduce((c,f)=>Lt(c)?void 0:c[f],e);return it(l)||l===e?it(e[r])?a:e[r]:l},Dn=e=>typeof e=="boolean",tn=e=>typeof e=="function",Ge=(e,r,a)=>{let s=-1;const l=Ji(r)?[r]:lo(r),c=l.length,f=c-1;for(;++sB.useContext(Oh);var C_=(e,r,a,s=!0)=>{const l={};for(const c in e)Object.defineProperty(l,c,{get:()=>{const f=c;return r._proxyFormState[f]!==Pn.all&&(r._proxyFormState[f]=!s||Pn.all),a&&(a[f]=!0),e[f]}});return l};const Rh=Mu?B.useLayoutEffect:B.useEffect;var jd=e=>Lt(e)||!Eh(e);const $y=(e,r)=>r.length===0&&!Array.isArray(e)&&!w_(e);function bn(e,r,a=new WeakMap){if(e===r)return!0;if(jd(e)||jd(r))return Object.is(e,r);if(kr(e)&&kr(r))return Object.is(e.getTime(),r.getTime());const s=Object.keys(e),l=Object.keys(r);if(s.length!==l.length)return!1;if($y(e,s)||$y(r,l))return Object.is(e,r);if(!s.length&&Array.isArray(e)!==Array.isArray(r))return!1;const c=a.get(e);if(c&&c.has(r))return!0;if(c)c.add(r);else{const f=new WeakSet;f.add(r),a.set(e,f)}for(const f of s){const h=e[f];if(!(f in r))return!1;if(f!=="ref"){const p=r[f];if(kr(h)&&kr(p)||(ct(h)||Array.isArray(h))&&(ct(p)||Array.isArray(p))?!bn(h,p,a):!Object.is(h,p))return!1}}return!0}function Th(){const e=B.useRef(!1),r=B.useRef(void 0),a=B.useCallback((l,c,f)=>{if(l&&e.current){const h=c();bn(r.current,h)||f(h)}e.current=!0},[]),s=B.useCallback((l,c)=>{l&&(r.current=ot(c()))},[]);return{resyncIfNeeded:a,snapshot:s}}function O_(e){const r=Ah(),{control:a=r,disabled:s,name:l,exact:c}=e||{},[f,h]=B.useState(()=>({...a._formState,defaultValues:a._defaultValues})),p=B.useRef({isDirty:!1,isLoading:!1,dirtyFields:!1,touchedFields:!1,validatingFields:!1,isValidating:!1,isValid:!1,errors:!1}),{resyncIfNeeded:m,snapshot:y}=Th();return Rh(()=>{const v=()=>({...a._formState,defaultValues:a._defaultValues});m(!s,v,h);const _=a._subscribe({name:l,formState:p.current,exact:c,callback:E=>{!s&&h({...a._formState,...E,defaultValues:a._defaultValues})}});return()=>{_(),y(!s,v)}},[l,s,c,m,y]),B.useEffect(()=>{p.current.isValid&&a._setValid(!0)},[a]),B.useMemo(()=>C_(f,a,p.current,!1),[f,a])}var Xt=e=>typeof e=="string",kd=(e,r,a,s,l)=>Xt(e)?(s&&r.watch.add(e),oe(a,e,l)):Array.isArray(e)?e.map(c=>(s&&r.watch.add(c),oe(a,c))):(s&&(r.watchAll=!0),a);function lM(e){const r=Ah(),{control:a=r,name:s,defaultValue:l,disabled:c,exact:f,compute:h}=e||{},p=B.useRef(l),m=B.useRef(h),y=B.useRef(void 0),v=B.useRef(a),_=B.useRef(s);m.current=h;const[E,x]=B.useState(()=>{const $=a._getWatch(s,p.current);return m.current?m.current($):$}),C=B.useCallback($=>{const de=kd(s,a._names,$||a._formValues,!1,p.current);return m.current?m.current(de):de},[a._formValues,a._names,s]),A=B.useCallback($=>{if(!c){const de=kd(s,a._names,$||a._formValues,!1,p.current);if(m.current){const ze=m.current(de);bn(ze,y.current)||(x(ze),y.current=ze)}else x(de)}},[a._formValues,a._names,c,s]),{resyncIfNeeded:Z,snapshot:k}=Th(),P=B.useRef(A);P.current=A;const H=B.useRef(C);H.current=C,Rh(()=>{v.current!==a||!bn(_.current,s)?(v.current=a,_.current=s,P.current()):Z(!c,()=>H.current(),de=>{x(de),y.current=de});const $=a._subscribe({name:s,formState:{values:!0},exact:f,callback:de=>{P.current(de.values)}});return()=>{$(),k(!c,()=>H.current())}},[a,f,s,c,Z,k]),B.useEffect(()=>a._removeUnmounted());const G=v.current!==a,te=_.current,q=B.useMemo(()=>{if(c)return null;const $=!G&&!bn(te,s);return G||$?C():null},[c,G,s,te,C]);return q!==null?q:E}function uM(e){const r=Ah(),{name:a,disabled:s,control:l=r,shouldUnregister:c,defaultValue:f,exact:h=!0}=e,p=x_(l._names.array,a),m=B.useMemo(()=>oe(l._formValues,a,oe(l._defaultValues,a,f)),[l,a,f]),y=lM({control:l,name:a,defaultValue:m,exact:h}),v=O_({control:l,name:a,exact:h}),_=B.useRef(e),E=B.useRef(null),x=B.useRef(l.register(a,{...e.rules,value:y,...Dn(e.disabled)?{disabled:e.disabled}:{}}));_.current=e;const C=B.useMemo(()=>Object.defineProperties({},{invalid:{enumerable:!0,get:()=>!!oe(v.errors,a)},isDirty:{enumerable:!0,get:()=>!!oe(v.dirtyFields,a)},isTouched:{enumerable:!0,get:()=>!!oe(v.touchedFields,a)},isValidating:{enumerable:!0,get:()=>!!oe(v.validatingFields,a)},error:{enumerable:!0,get:()=>oe(v.errors,a)}}),[v,a]),A=B.useCallback(H=>{const G=Nd(H);return oe(l._fields,a)||(x.current=l.register(a,{..._.current.rules,value:G})),x.current.onChange({target:{value:Nd(H),name:a},type:fa.CHANGE})},[a,l]),Z=B.useCallback(()=>x.current.onBlur({target:{value:oe(l._formValues,a),name:a},type:fa.BLUR}),[a,l._formValues]),k=B.useCallback(H=>{H&&(E.current={focus:()=>tn(H.focus)&&H.focus(),select:()=>tn(H.select)&&H.select(),setCustomValidity:te=>tn(H.setCustomValidity)&&H.setCustomValidity(te),reportValidity:()=>tn(H.reportValidity)&&H.reportValidity()});const G=oe(l._fields,a);G&&G._f&&H&&(G._f.ref=E.current)},[l._fields,a]),P=B.useMemo(()=>({name:a,value:y,...Dn(s)||v.disabled?{disabled:v.disabled||s}:{},onChange:A,onBlur:Z,ref:k}),[a,s,v.disabled,A,Z,k,y]);return B.useEffect(()=>{const H=l._options.shouldUnregister||c;x.current=l.register(a,{..._.current.rules,...Dn(_.current.disabled)?{disabled:_.current.disabled}:{}});const G=(te,q)=>{const $=oe(l._fields,te);$&&$._f&&($._f.mount=q)};if(G(a,!0),H){const te=ot(oe(c?l._defaultValues:l._options.values||l._defaultValues,a,oe(l._options.defaultValues,a,_.current.defaultValue)));Ge(l._defaultValues,a,te),it(oe(l._formValues,a))&&Ge(l._formValues,a,te)}if(!p&&l.register(a),E.current){const te=oe(l._fields,a);te&&te._f&&(te._f.ref=E.current)}return()=>{(p?H&&!l._state.action:H)?l.unregister(a):G(a,!1)}},[a,l,p,c]),B.useEffect(()=>{l._setDisabledField({disabled:s,name:a})},[s,a,l]),B.useMemo(()=>({field:P,formState:v,fieldState:C}),[P,v,C])}const cM=e=>e.render(uM(e));var ql=e=>({isOnSubmit:!e||e===Pn.onSubmit,isOnBlur:e===Pn.onBlur,isOnChange:e===Pn.onChange,isOnAll:e===Pn.all,isOnTouch:e===Pn.onTouched}),od=(e,r,a)=>{if(a)return!1;if(r.watchAll||r.watch.has(e))return!0;for(const s of r.watch)if(e.startsWith(s)&&e.charAt(s.length)===".")return!0;return!1};const ro=(e,r,a,s)=>{for(const l of a||Object.keys(e)){if(l==="_f")continue;const c=a?oe(e,l):e[l];if(c){const{_f:f}=c;if(f){if(f.refs&&f.refs[0]&&r(f.refs[0],l)&&!s)return!0;if(f.ref&&r(f.ref,f.name)&&!s)return!0;if(ro(c,r))break}else if((ct(c)||Array.isArray(c))&&ro(c,r))break}}};var Gy=(e,r,a)=>{const s=oe(e,a),l=Array.isArray(s)?s:[];return Ge(l,E_,r[a]),Ge(e,a,l),e},Pt=e=>ct(e)&&!Object.keys(e).length,pu=e=>{if(!Mu)return!1;const r=e?e.ownerDocument:0;return e instanceof(r&&r.defaultView?r.defaultView.HTMLElement:HTMLElement)},Dh=e=>e.type==="radio",gu=e=>e instanceof RegExp,zh=(e,r,a,s,l)=>r?{...a[e],types:{...a[e]&&a[e].types?a[e].types:{},[s]:l||!0}}:{};const Yy={value:!1,isValid:!1},Iy={value:!0,isValid:!0};var A_=e=>{if(Array.isArray(e)){if(e.length>1){const r=e.filter(a=>a&&a.checked&&!a.disabled).map(a=>a.value);return{value:r,isValid:!!r.length}}return e[0].checked&&!e[0].disabled?e[0].attributes&&!it(e[0].attributes.value)?it(e[0].value)||e[0].value===""?Iy:{value:e[0].value,isValid:!0}:Iy:Yy}return Yy};const Qy={isValid:!1,value:null};var R_=e=>Array.isArray(e)?e.reduce((r,a)=>a&&a.checked&&!a.disabled?{isValid:!0,value:a.value}:r,Qy):Qy;function Py(e,r,a="validate"){if(Xt(e)||Array.isArray(e)&&e.every(Xt)||Dn(e)&&!e)return{type:a,message:Xt(e)?e:"",ref:r}}var Bi=e=>ct(e)&&!gu(e)?e:{value:e,message:""},Xy=async(e,r,a,s,l,c)=>{const{ref:f,refs:h,required:p,maxLength:m,minLength:y,min:v,max:_,pattern:E,validate:x,name:C,valueAsNumber:A,mount:Z}=e._f,k=oe(a,C);if(!Z||r.has(C))return{};const P=h?h[0]:f,H=ie=>{if(l&&P.reportValidity){const be=Dn(ie)?"":ie||"";h?h.forEach(Ae=>Ae.setCustomValidity(be)):P.setCustomValidity(be),P.reportValidity()}},G={},te=Dh(f),q=yo(f),$=te||q,de=(A||zu(f))&&it(f.value)&&it(k)||pu(f)&&f.value===""||k===""||Array.isArray(k)&&!k.length,ze=zh.bind(null,C,s,G),Ne=(ie,be,Ae,Te=Qn.maxLength,j=Qn.minLength)=>{const ee=ie?be:Ae;G[C]={type:ie?Te:j,message:ee,ref:f,...ze(ie?Te:j,ee)}};if(c?!Array.isArray(k)||!k.length:p&&(!$&&(de||Lt(k))||Dn(k)&&!k||q&&!A_(h).isValid||te&&!R_(h).isValid)){const{value:ie,message:be}=Xt(p)?{value:!!p,message:p}:Bi(p);if(ie&&(G[C]={type:Qn.required,message:be,ref:P,...ze(Qn.required,be)},!s))return H(be),G}if(!de&&(!Lt(v)||!Lt(_))){let ie,be;const Ae=Bi(_),Te=Bi(v);if(!Lt(k)&&!kr(k)&&!isNaN(k)){const j=f.valueAsNumber||k&&+k;Lt(Ae.value)||(ie=j>Ae.value),Lt(Te.value)||(be=jnew Date(new Date().toDateString()+" "+re),he=f.type=="time",Ee=f.type=="week";Xt(Ae.value)&&k&&(ie=he?ee(k)>ee(Ae.value):Ee?k>Ae.value:j>new Date(Ae.value)),Xt(Te.value)&&k&&(be=he?ee(k)+ie.value,Te=!Lt(be.value)&&k.length<+be.value;if((Ae||Te)&&(Ne(Ae,ie.message,be.message),!s))return H(G[C].message),G}if(E&&!de&&Xt(k)){const{value:ie,message:be}=Bi(E);if(gu(ie)&&!k.match(ie)&&(G[C]={type:Qn.pattern,message:be,ref:f,...ze(Qn.pattern,be)},!s))return H(be),G}if(x){if(tn(x)){const ie=await x(k,a),be=Py(ie,P);if(be&&(G[C]={...be,...ze(Qn.validate,be.message)},!s))return H(be.message),G}else if(ct(x)){let ie={};for(const be in x){if(!Pt(ie)&&!s)break;const Ae=Py(await x[be](k,a),P,be);Ae&&(ie={...Ae,...ze(be,Ae.message)},H(Ae.message),s&&(G[C]=ie))}if(!Pt(ie)&&(G[C]={ref:P,...ie},!s))return G}}return H(!0),G},Wl=e=>Array.isArray(e)?e:[e],T_=e=>Array.isArray(e)?e.filter(Boolean):[];function fM(e,r){const a=r.length-1;let s=0;for(;sCh.includes(String(f))))return e;const s=a.length===1?e:fM(e,a),l=a.length-1,c=a[l];return s&&delete s[c],l!==0&&(ct(s)&&Pt(s)||Array.isArray(s)&&dM(s))&&xt(e,a.slice(0,-1)),e}const D_=e=>{const r={};for(const a of Object.keys(e))if(Eh(e[a])&&e[a]!==null&&!kr(e[a])){const s=D_(e[a]);for(const l of Object.keys(s))r[`${a}.${l}`]=s[l]}else r[a]=e[a];return r},Mh=B.createContext(null);Mh.displayName="HookFormContext";const hM=()=>B.useContext(Mh),mM=({children:e,watch:r,getValues:a,getFieldState:s,setError:l,clearErrors:c,setValue:f,setValues:h,trigger:p,formState:m,resetField:y,reset:v,resetDefaultValues:_,handleSubmit:E,unregister:x,control:C,register:A,setFocus:Z,subscribe:k})=>{const P=B.useMemo(()=>({watch:r,getValues:a,getFieldState:s,setError:l,clearErrors:c,setValue:f,setValues:h,trigger:p,formState:m,resetField:y,reset:v,resetDefaultValues:_,handleSubmit:E,unregister:x,control:C,register:A,setFocus:Z,subscribe:k}),[c,C,m,s,a,E,A,v,_,y,l,Z,f,h,k,p,x,r]);return B.createElement(Mh.Provider,{value:P},B.createElement(Oh.Provider,{value:P.control},e))};var Ky=()=>{let e=[];return{get observers(){return e},next:l=>{for(const c of e)c.next&&c.next(l)},subscribe:l=>(e.push(l),{unsubscribe:()=>{e=e.filter(c=>c!==l)}}),unsubscribe:()=>{e=[]}}};function z_(e,r){const a={};for(const s in e)if(e.hasOwnProperty(s)){const l=e[s],c=r[s];if(l&&ct(l)&&c){const f=z_(l,c);ct(f)&&(a[s]=f)}else e[s]&&(a[s]=c)}return a}var M_=e=>e.type==="select-multiple",pM=e=>Dh(e)||yo(e),ld=e=>pu(e)&&e.isConnected;function Jy(e){return Array.isArray(e)||ct(e)}function N_(e,r,a="",s=[]){for(const l in e){const c=a?`${a}.${l}`:l,f=e[l];Jy(f)&&Jy(oe(r,c))?N_(f,r,c,s):s.push(c)}return s}var gM=e=>{for(const r in e)if(tn(e[r]))return!0;return!1};function j_(e){return Array.isArray(e)||ct(e)&&!gM(e)}function k_(e){return!!(e&&"_f"in e)}function F_(e){return Array.isArray(e)?!e.some(r=>!it(r)):!Object.keys(e).length}function Fd(e,r){Array.isArray(e)?e[r]=void 0:delete e[r]}function Ud(e,r={},a){for(const s in e){const l=e[s],c=a&&a[s];j_(l)&&(!Array.isArray(l)||!k_(c))?(r[s]=Array.isArray(l)?[]:{},Ud(l,r[s],c),F_(r[s])&&Fd(r,s)):it(l)||(r[s]=!0)}return r}function Ya(e,r,a,s){a||(a=Ud(r,{},s));for(const l in e){const c=e[l],f=s&&s[l];j_(c)&&(!Array.isArray(c)||!k_(f))?(it(r)||jd(a[l])?a[l]=Ud(c,Array.isArray(c)?[]:{},f):Ya(c,Lt(r)?{}:r[l],a[l],f),F_(a[l])&&Fd(a,l)):bn(c,r[l])?Fd(a,l):a[l]=!0}return a}var U_=(e,{valueAsNumber:r,valueAsDate:a,setValueAs:s})=>it(e)?e:r?e===""?NaN:e&&+e:a&&Xt(e)?new Date(e):s?s(e):e;function Wy(e){const r=e.ref;return zu(r)?r.files:Dh(r)?R_(e.refs).value:M_(r)?[...r.selectedOptions].map(({value:a})=>a):yo(r)?A_(e.refs).value:U_(r.value,e)}var vM=(e,r,a,s)=>{const l={};for(const c of e){const f=oe(r,c);f&&Ge(l,c,f._f)}return{criteriaMode:a,names:[...e],fields:l,shouldUseNativeValidation:s}},Ws=e=>it(e)?e:gu(e)?e.source:ct(e)?gu(e.value)?e.value.source:e.value:e;const eb="AsyncFunction";var yM=e=>{if(!e||!e.validate)return!1;if(tn(e.validate))return e.validate.constructor.name===eb;if(ct(e.validate)){for(const r in e.validate)if(e.validate[r].constructor.name===eb)return!0}return!1},bM=e=>e.mount&&(e.required||e.min||e.max||e.maxLength||e.minLength||e.pattern||e.validate);function tb(e,r,a){const s=oe(e,a);if(s||Ji(a))return{error:s,name:a};const l=a.split(".");for(;l.length;){const c=l.join("."),f=oe(r,c),h=oe(e,c);if(f&&!Array.isArray(f)&&a!==c)return{name:a};if(h&&h.type)return{name:c,error:h};if(h&&h.root&&h.root.type)return{name:`${c}.root`,error:h.root};l.pop()}return{name:a}}var _M=(e,r,a,s)=>{a(e);const l=Object.keys(e).filter(c=>c!=="name");return!l.length||s&&l.length>=Object.keys(r).length||l.find(c=>r[c]===(!s||Pn.all))},SM=(e,r,a)=>!e||!r||e===r||Wl(e).some(s=>s&&(a?s===r||s.startsWith(r+"."):s.startsWith(r)||r.startsWith(s))),xM=(e,r,a,s,l)=>l.isOnAll?!1:!a&&l.isOnTouch?!(r||e):(a?s.isOnBlur:l.isOnBlur)?!e:(a?s.isOnChange:l.isOnChange)?e:!0,wM=(e,r)=>{const a=oe(e,r);!T_(a).length&&!a?.root&&xt(e,r)};const EM={mode:Pn.onSubmit,reValidateMode:Pn.onChange,shouldFocusError:!0},ud="form",CM=(e,r)=>{for(const a in e)a in r||delete e[a];Object.assign(e,r)},V_={submitCount:0,isDirty:!1,isReady:!1,isValidating:!1,isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,touchedFields:{},dirtyFields:{},validatingFields:{}};function OM(e={}){let r={...EM,...e},a={...ot(V_),isLoading:tn(r.defaultValues),errors:r.errors||{},disabled:r.disabled||!1},s={},l=ct(r.defaultValues)||ct(r.values)?ot(r.defaultValues||r.values)||{}:{},c=r.shouldUnregister?{}:ot(l),f={action:!1,actionArrayLengths:new Map,mount:!1,watch:!1,keepIsValid:!1},h={mount:new Set,disabled:new Set,unMount:new Set,array:new Set,watch:new Set,registerName:new Set};const p={},m={};let y=0,v=ql(r.mode),_=ql(r.reValidateMode);const E={isDirty:!1,dirtyFields:!1,validatingFields:!1,touchedFields:!1,isValidating:!1,isValid:!1,errors:!1},x={...E};let C={...x};const A={array:Ky(),state:Ky()};let Z=0;const k=r.criteriaMode===Pn.all,P=(w,M)=>D=>{clearTimeout(m[w]),m[w]=setTimeout(M,D)},H=async w=>{if(!f.keepIsValid&&!r.disabled&&(x.isValid||C.isValid||w)){const M=++Z;let D;r.resolver?(D=Pt((await Te()).errors),M===Z&&G()):D=await he({fields:s,onlyCheckValid:!0,eventType:fa.VALID}),M===Z&&D!==a.isValid&&A.state.next({isValid:D})}},G=(w,M)=>{!r.disabled&&(x.isValidating||x.validatingFields||C.isValidating||C.validatingFields)&&((w||Array.from(h.mount)).forEach(D=>{D&&(M?Ge(a.validatingFields,D,M):xt(a.validatingFields,D))}),A.state.next({validatingFields:a.validatingFields,isValidating:!Pt(a.validatingFields)}))},te=()=>{a.dirtyFields=Ya(l,c,void 0,s)},q=(w,M=[],D,W,X=!0,ce=!0)=>{if(W&&D&&!r.disabled){if(f.action=!0,!f.actionArrayLengths.has(w)){const ae=oe(s,w);f.actionArrayLengths.set(w,Array.isArray(ae)?ae.length:0)}if(ce&&Array.isArray(oe(s,w))){const ae=D(oe(s,w),W.argA,W.argB);X&&Ge(s,w,ae)}if(ce&&Array.isArray(oe(a.errors,w))){const ae=oe(a.errors,w),fe=ae.root,ve=D(ae,W.argA,W.argB)||ae;fe&&(ve.root=fe),X&&Ge(a.errors,w,ve),wM(a.errors,w)}if((x.touchedFields||C.touchedFields)&&ce&&Array.isArray(oe(a.touchedFields,w))){const ae=D(oe(a.touchedFields,w),W.argA,W.argB);X&&Ge(a.touchedFields,w,ae)}(x.dirtyFields||C.dirtyFields)&&te(),A.state.next({name:w,isDirty:re(w,M),dirtyFields:a.dirtyFields,errors:a.errors,isValid:a.isValid})}else Ge(c,w,M)},$=(w,M)=>{Ge(a.errors,w,M),a.errors={...a.errors},A.state.next({errors:a.errors})},de=w=>{a.errors=w,A.state.next({errors:a.errors,isValid:!1})},ze=w=>{const M=Ji(w)?[w]:lo(w);let D=c,W=l;for(let X=0;X{if(!f.actionArrayLengths.size)return!1;const M=Ji(w)?[w]:lo(w);let D=c,W="",X=-1,ce=0;for(let ae=0;ae=D.length)return X===-1?!1:ae===X?+fe{const X=oe(s,w);if(X){if(ze(w)||Ne(w))return;const ce=it(oe(c,w)),ae=oe(c,w,it(D)?oe(l,w):D);it(ae)||W&&W.defaultChecked||M?Ge(c,w,M?ae:Wy(X._f)):se(w,ae),f.mount&&!f.action&&(H(),ce&&a.isDirty&&(x.isDirty||C.isDirty)&&(re()||(a.isDirty=!1,A.state.next({...a}))),e.shouldUnregister&&ce&&!it(oe(c,w))&&od(w,h)&&(f.watch=!0))}},be=(w,M,D,W,X)=>{let ce=!1,ae=!1;const fe={name:w};if(!r.disabled||W===!0){if(!D||W){const ve=bn(oe(l,w),M);(x.isDirty||C.isDirty)&&(ae=a.isDirty,a.isDirty=fe.isDirty=!ve||re(),ce=ae!==fe.isDirty),ae=!!oe(a.dirtyFields,w),ve!==a.isDirty?CM(a.dirtyFields,Ya(l,c,void 0,s)):ve?xt(a.dirtyFields,w):Ge(a.dirtyFields,w,!0),fe.dirtyFields=a.dirtyFields,ce=ce||(x.dirtyFields||C.dirtyFields)&&ae!==!ve}if(D){const ve=oe(a.touchedFields,w);ve||(Ge(a.touchedFields,w,D),fe.touchedFields=a.touchedFields,ce=ce||(x.touchedFields||C.touchedFields)&&ve!==D)}ce&&X&&A.state.next(fe)}return ce?fe:{}},Ae=(w,M,D,W)=>{const X=oe(a.errors,w),ce=(x.isValid||C.isValid)&&Dn(M)&&a.isValid!==M;if(r.delayError&&D?(p[w]=P(w,()=>$(w,D)),p[w](r.delayError)):(clearTimeout(m[w]),delete p[w],D?Ge(a.errors,w,D):xt(a.errors,w),a.errors={...a.errors}),(D?!bn(X,D):X)||!Pt(W)||ce){const ae={...W,...ce&&Dn(M)?{isValid:M}:{},errors:a.errors,name:w};a={...a,...ae},A.state.next(ae)}},Te=async w=>(G(w,!0),await r.resolver(c,r.context,vM(w||h.mount,s,r.criteriaMode,r.shouldUseNativeValidation))),j=async w=>{const{errors:M}=await Te(w);if(G(w),w){for(const D of w){const W=oe(M,D);W?h.array.has(D)&&ct(W)&&!Object.keys(W).some(X=>!Number.isNaN(Number(X)))?Gy(a.errors,{[D]:W},D):Ge(a.errors,D,W):xt(a.errors,D)}a.errors={...a.errors}}else a.errors=M;return M},ee=async({name:w,eventType:M})=>{if(e.validate){const D=await e.validate({formValues:c,formState:a,name:w,eventType:M});if(ct(D))for(const W in D){const X=D[W];X&&bt(`${ud}.${W}`,{message:Xt(X.message)?X.message:"",type:X.type||Qn.validate})}else Xt(D)||!D?bt(ud,{message:D||"",type:Qn.validate}):nn(ud);return D}return!0},he=async({fields:w,onlyCheckValid:M,name:D,eventType:W,context:X={valid:!0,runRootValidation:!1}})=>{if(e.validate&&(X.runRootValidation=!0,!await ee({name:D,eventType:W})&&(X.valid=!1,M)))return X.valid;for(const ce in w){const ae=w[ce];if(ae){const{_f:fe,...ve}=ae;if(fe){const Se=h.array.has(fe.name),Xe=ae._f&&yM(ae._f),mt=x.validatingFields||x.isValidating||C.validatingFields||C.isValidating;Xe&&mt&&G([fe.name],!0);const qt=await Xy(ae,h.disabled,c,k,r.shouldUseNativeValidation&&!M,Se);if(Xe&&mt&&G([fe.name]),qt[fe.name]&&(X.valid=!1,M)||(!M&&(oe(qt,fe.name)?Se?Gy(a.errors,qt,fe.name):Ge(a.errors,fe.name,qt[fe.name]):xt(a.errors,fe.name)),e.shouldUseNativeValidation&&qt[fe.name]))break}!Pt(ve)&&await he({context:X,onlyCheckValid:M,fields:ve,name:ce,eventType:W})}}return X.valid},Ee=()=>{for(const w of h.unMount){const M=oe(s,w);M&&(M._f.refs?M._f.refs.every(D=>!ld(D)):!ld(M._f.ref))&&ur(w)}h.unMount=new Set},re=(w,M)=>(w&&M&&Ge(c,w,M),!bn(f.mount?c:l,l)),R=(w,M,D)=>kd(w,h,{...f.mount?c:it(M)||Xt(w)?l:M},D,M),I=w=>T_(oe(f.mount?c:l,w,r.shouldUnregister?oe(l,w,[]):[])),se=(w,M,D={},W=!1,X=!1,ce=!1)=>{const ae=oe(s,w);let fe=M;if(ae){const ve=ae._f;ve&&(!ve.disabled&&Ge(c,w,U_(M,ve)),fe=pu(ve.ref)&&Lt(M)?"":M,M_(ve.ref)?[...ve.ref.options].forEach(Se=>Se.selected=fe.includes(Se.value)):ve.refs?yo(ve.ref)?ve.refs.forEach(Se=>{(!Se.defaultChecked||!Se.disabled)&&(Array.isArray(fe)?Se.checked=!!fe.find(Xe=>Xe===Se.value):Se.checked=fe===Se.value||!!fe)}):ve.refs.forEach(Se=>Se.checked=Se.value===fe):zu(ve.ref)?ve.ref.value="":(ve.ref.value=fe,!ve.ref.type&&!X&&!ce&&A.state.next({name:w,values:W?c:ot(c)})))}(D.shouldDirty||D.shouldTouch)&&be(w,fe,D.shouldTouch,D.shouldDirty,!X),D.shouldValidate&&kt(w,{delayError:D.delayError})},ne=(w,M,D,W=!1,X=!1,ce=!1)=>{h.array.has(w)&&A.array.next({name:w,values:W?c:ot(c)});for(const ae in M){if(!M.hasOwnProperty(ae))return;const fe=M[ae],ve=w+"."+ae,Se=oe(s,ve);(h.array.has(w)||ct(fe)||Se&&!Se._f)&&!kr(fe)?ne(ve,fe,D,W,X,ce):se(ve,fe,D,W,X,ce)}},le=(w,M,D,W,X=!1)=>{const ce=oe(s,w),ae=h.array.has(w),fe=W?M:ot(M),ve=oe(c,w),Se=bn(ve,fe);if(Se||Ge(c,w,fe),ae)A.array.next({name:w,values:W?c:ot(c)}),(x.isDirty||x.dirtyFields||C.isDirty||C.dirtyFields)&&D.shouldDirty&&(te(),X||A.state.next({name:w,dirtyFields:a.dirtyFields,isDirty:re(w,fe)}));else{const Xe=Array.isArray(fe)&&!fe.length||Pt(fe),mt=!Se&&!X;!ce||ce._f||Lt(fe)||Xe?se(w,fe,D,W,X,mt):ne(w,fe,D,W,X,mt)}if(!Se&&!X){const Xe=od(w,h),mt=W?c:ot(c);A.state.next({...Xe&&a,name:f.mount||Xe?w:void 0,values:mt})}},ue=(w,M,D={})=>le(w,M,D,!1),Oe=(w,M={})=>{const D=tn(w)?w(c):w;if(!bn(c,D)){c={...c,...D};const W=D_(D);for(const X of h.mount)X in W&&le(X,W[X],M,!0,!0);A.state.next({...a,name:void 0,type:void 0,...y?{values:c}:{}}),M.shouldValidate&&H()}},$e=async w=>{f.mount=!0;const M=w.target;let D=M.name,W=!0;const X=oe(s,D),ce=ae=>{W=Number.isNaN(ae)||kr(ae)&&isNaN(ae.getTime())||bn(ae,oe(c,D,ae))};if(X){let ae,fe;const ve=M.type?Wy(X._f):Nd(w),Se=w.type===fa.BLUR||w.type===fa.FOCUS_OUT,Xe=!bM(X._f)&&!e.validate&&!r.resolver&&!oe(a.errors,D)&&!X._f.deps,mt=Xe||xM(Se,oe(a.touchedFields,D),a.isSubmitted,_,v),qt=od(D,h,Se);if(Ge(c,D,ve),Se){if(!M||!M.readOnly){X._f.onBlur&&X._f.onBlur(w);const tt=p[D];tt&&tt(0)}}else X._f.onChange&&X._f.onChange(w);const un=be(D,ve,Se),Re=!Pt(un)||qt;if(!Se&&A.state.next({name:D,type:w.type,...y?{values:ot(c)}:{}}),mt)return(!Xe||!a.isValid)&&(x.isValid||C.isValid)&&(r.mode==="onBlur"?Se&&H():Se||H()),Re&&A.state.next({name:D,...qt?{}:un});if(!r.resolver&&e.validate&&await ee({name:D,eventType:w.type}),!Se&&qt&&A.state.next({...a}),r.resolver){const{errors:tt}=await Te([D]);if(G([D]),ce(ve),!W){!Pt(un)&&A.state.next(un);return}const pt=tb(a.errors,s,D),ut=tb(tt,s,pt.name||D);ae=ut.error,D=ut.name,fe=Pt(tt)}else G([D],!0),ae=(await Xy(X,h.disabled,c,k,r.shouldUseNativeValidation))[D],G([D]),ce(ve),W&&(ae?fe=!1:(x.isValid||C.isValid)&&(fe=await he({fields:s,onlyCheckValid:!0,name:D,eventType:w.type})));W&&(X._f.deps&&(!Array.isArray(X._f.deps)||X._f.deps.length>0)&&kt(X._f.deps),Ae(D,fe,ae,un))}},me=(w,M)=>{if(oe(a.errors,M)&&w.focus)return w.focus(),1},kt=async(w,M={})=>{let D,W;const X=Wl(w);if(r.resolver){const ce=await j(it(w)?w:X);D=Pt(ce),W=w?!X.some(ae=>oe(ce,ae)):D}else w?(W=(await Promise.all(X.map(async ce=>{const ae=oe(s,ce);return await he({fields:ae&&ae._f?{[ce]:ae}:ae,eventType:fa.TRIGGER})}))).every(Boolean),!(!W&&!a.isValid)&&H()):W=D=await he({fields:s,name:w,eventType:fa.TRIGGER});if(M.delayError&&r.delayError&&Xt(w)){const ce=oe(a.errors,w);ce?(xt(a.errors,w),p[w]=P(w,()=>$(w,ce)),p[w](r.delayError)):(clearTimeout(m[w]),delete p[w])}return A.state.next({...!Xt(w)||(x.isValid||C.isValid)&&D!==a.isValid?{}:{name:w},...r.resolver||!w?{isValid:D}:{},errors:a.errors}),M.shouldFocus&&!W&&ro(s,me,w?X:h.mount),W},Jt=(w,M)=>{let D={...f.mount?c:l};return M&&(D=z_(M.dirtyFields?a.dirtyFields:a.touchedFields,D)),it(w)?D:Xt(w)?oe(D,w):w.map(W=>oe(D,W))},Bt=(w,M)=>({invalid:!!oe((M||a).errors,w),isDirty:!!oe((M||a).dirtyFields,w),error:oe((M||a).errors,w),isValidating:!!oe(a.validatingFields,w),isTouched:!!oe((M||a).touchedFields,w)}),nn=w=>{const M=w?Wl(w):void 0;M?.forEach(D=>xt(a.errors,D)),M?M.forEach(D=>{A.state.next({name:D,errors:a.errors})}):(a.errors={},A.state.next({errors:a.errors}))},bt=(w,M,D)=>{const W=(oe(s,w,{_f:{}})._f||{}).ref,X=oe(a.errors,w)||{},{ref:ce,message:ae,type:fe,...ve}=X;Ge(a.errors,w,{...ve,...M,ref:W}),A.state.next({name:w,errors:a.errors,isValid:!1}),D&&D.shouldFocus&&W&&W.focus&&W.focus()},xa=(w,M)=>{if(tn(w)){y++;const{unsubscribe:D}=A.state.subscribe({next:X=>"values"in X&&w(X.values||R(void 0,M),X)});let W=!1;return{unsubscribe:()=>{W||(W=!0,y--,D())}}}return R(w,M,!0)},or=w=>{var M;const D=!!(!((M=w.formState)===null||M===void 0)&&M.values);D&&y++;const{unsubscribe:W}=A.state.subscribe({next:ce=>{if(SM(w.name,ce.name,w.exact)&&_M(ce,w.formState||x,hr,w.reRenderRoot)){const ae={...c};w.callback({values:ae,...a,...ce,defaultValues:l})}}});if(!D)return W;let X=!1;return()=>{X||(X=!0,y--,W())}},lr=w=>(f.mount=!0,C={...C,...w.formState},or({...w,formState:{...E,...w.formState}})),ur=(w,M={})=>{for(const D of w?Wl(w):h.mount)h.mount.delete(D),h.array.delete(D),M.keepValue||(xt(s,D),xt(c,D)),!M.keepError&&xt(a.errors,D),!M.keepDirty&&xt(a.dirtyFields,D),!M.keepTouched&&xt(a.touchedFields,D),!M.keepIsValidating&&xt(a.validatingFields,D),!r.shouldUnregister&&!M.keepDefaultValue&&xt(l,D);A.state.next({values:ot(c)}),A.state.next({...a,...M.keepDirty?{isDirty:re()}:{}}),!M.keepIsValid&&H()},Wt=({disabled:w,name:M})=>{if(Dn(w)&&f.mount||w||h.disabled.has(M)){const X=h.disabled.has(M)!==!!w;w?h.disabled.add(M):h.disabled.delete(M),X&&f.mount&&!f.action&&H()}},cr=(w,M={})=>{let D=oe(s,w);const W=Dn(M.disabled)||Dn(r.disabled),X=!h.registerName.has(w)&&D&&D._f&&!D._f.mount;return Ge(s,w,{...D||{},_f:{...D&&D._f?D._f:{ref:{name:w}},name:w,mount:!0,...M}}),h.mount.add(w),D&&!X?Wt({disabled:Dn(M.disabled)?M.disabled:r.disabled,name:w}):ie(w,!0,M.value),{...W?{disabled:M.disabled||r.disabled}:{},...r.progressive?{required:!!M.required,min:Ws(M.min),max:Ws(M.max),minLength:Ws(M.minLength),maxLength:Ws(M.maxLength),pattern:Ws(M.pattern)}:{},name:w,onChange:$e,onBlur:$e,ref:ce=>{if(ce){h.registerName.add(w),cr(w,M),h.registerName.delete(w),D=oe(s,w);const ae=it(ce.value)&&ce.querySelectorAll&&ce.querySelectorAll("input,select,textarea")[0]||ce,fe=pM(ae),ve=D._f.refs||[];if(fe?ve.find(Xe=>Xe===ae):ae===D._f.ref)return;const Se={...D._f};fe?(Se.refs=[...ve.filter(ld),ae,...Array.isArray(oe(l,w))?[{}]:[]],Se.ref={type:ae.type,name:w}):(Se.ref=ae,delete Se.refs),Ge(s,w,{_f:Se}),ie(w,!1,void 0,ae)}else D=oe(s,w,{}),D._f&&(D._f.mount=!1),(r.shouldUnregister||M.shouldUnregister)&&!(x_(h.array,w)&&f.action)&&h.unMount.add(w)}}},fr=()=>r.shouldFocusError&&!r.shouldUseNativeValidation&&ro(s,me,h.mount),Dt=w=>{Dn(w)&&(A.state.next({disabled:w}),ro(s,(M,D)=>{const W=oe(s,D);W&&(M.disabled=W._f.disabled||w,Array.isArray(W._f.refs)&&W._f.refs.forEach(X=>{X.disabled=W._f.disabled||w}))},0,!1))},wa=(w,M)=>async D=>{let W,X;D&&(D.preventDefault&&D.preventDefault(),D.persist&&D.persist());let ce=ot(c);if(A.state.next({isSubmitting:!0}),r.resolver){const{errors:ae,values:fe}=await Te();G(),a.errors=ae,ce=ot(fe)}else await he({fields:s,eventType:fa.SUBMIT});if(h.disabled.size)for(const ae of h.disabled)xt(ce,ae);if(xt(a.errors,E_),Pt(a.errors)){A.state.next({errors:{}});try{W=await w(ce,D)}catch(ae){X=ae}}else M&&await M({...a.errors},D),fr(),setTimeout(fr);if(A.state.next({isSubmitted:!0,isSubmitting:!1,isSubmitSuccessful:Pt(a.errors)&&!X,submitCount:a.submitCount+1,errors:a.errors}),X)throw X;return W},ht=(w,M={})=>{oe(s,w)&&(it(M.defaultValue)?ue(w,ot(oe(l,w))):(ue(w,M.defaultValue),Ge(l,w,ot(M.defaultValue))),M.keepTouched||xt(a.touchedFields,w),M.keepDirty||(xt(a.dirtyFields,w),a.isDirty=M.defaultValue?re(w,ot(oe(l,w))):re()),M.keepError||(xt(a.errors,w),x.isValid&&H()),A.state.next({...a}))},ni=(w,M={})=>{const D=w?ot(w):l,W=ot(D),X=Pt(w),ce=W,ae=s;if(M.keepDefaultValues||(l=D),!M.keepValues){if(M.keepDirtyValues){const fe=new Set([...h.mount,...N_(Ya(l,c,void 0,ae),a.dirtyFields)]);for(const ve of Array.from(fe)){const Se=oe(a.dirtyFields,ve),Xe=oe(c,ve),mt=oe(ce,ve);Se&&!it(Xe)?Ge(ce,ve,Xe):!Se&&!it(mt)&&ue(ve,mt)}}else{if(Mu&&it(w))for(const fe of h.mount){const ve=oe(s,fe);if(ve&&ve._f){const Se=Array.isArray(ve._f.refs)?ve._f.refs[0]:ve._f.ref;if(pu(Se)){const Xe=Se.closest("form");if(Xe){Xe.reset();break}}}}if(M.keepFieldsRef)for(const fe of h.mount)ue(fe,oe(ce,fe));else s={}}if(r.shouldUnregister){if(c=M.keepDefaultValues?ot(l):{},M.keepFieldsRef)for(const fe of h.mount)Ge(c,fe,oe(ce,fe))}else c=ot(ce);A.array.next({values:{...ce}}),A.state.next({name:void 0,type:void 0,values:{...ce}})}h={mount:M.keepDirtyValues?h.mount:new Set,unMount:new Set,array:new Set,registerName:new Set,disabled:new Set,watch:new Set,watchAll:!1,focus:""},f.mount=!x.isValid||!!M.keepIsValid||!!M.keepDirtyValues||!r.shouldUnregister&&!Pt(ce),f.watch=!!r.shouldUnregister,f.keepIsValid=!!M.keepIsValid,f.action=!1,f.actionArrayLengths.clear(),M.keepErrors||(a.errors={}),A.state.next({submitCount:M.keepSubmitCount?a.submitCount:0,isDirty:X?!1:M.keepDirty?a.isDirty:M.keepValues?re():!!(M.keepDefaultValues&&!bn(w,l)),isSubmitted:M.keepIsSubmitted?a.isSubmitted:!1,dirtyFields:X?{}:M.keepDirtyValues?M.keepDefaultValues&&c?Ya(l,c,void 0,ae):a.dirtyFields:M.keepDefaultValues&&w?Ya(l,w,void 0,ae):M.keepDirty?a.dirtyFields:{},touchedFields:M.keepTouched?a.touchedFields:{},errors:M.keepErrors?a.errors:{},isSubmitSuccessful:M.keepIsSubmitSuccessful?a.isSubmitSuccessful:!1,isSubmitting:!1,defaultValues:l})},Ea=(w,M)=>ni(tn(w)?w(c):w,{...r.resetOptions,...M}),dr=(w,M={})=>{const D=oe(s,w),W=D&&D._f;if(W){const X=W.refs?W.refs[0]:W.ref;X.focus&&setTimeout(()=>{X.focus(),M.shouldSelect&&tn(X.select)&&X.select()})}},hr=w=>{const{name:M,type:D,values:W,...X}=w;a={...a,...X}};A.state.subscribe({next:hr});const $n={control:{register:cr,unregister:ur,getFieldState:Bt,handleSubmit:wa,setError:bt,_subscribe:or,_runSchema:Te,_updateIsValidating:G,_focusError:fr,_getWatch:R,_getDirty:re,_setValid:H,_setFieldArray:q,_setDisabledField:Wt,_setErrors:de,_getFieldArray:I,_reset:ni,_resetDefaultValues:()=>tn(r.defaultValues)&&r.defaultValues().then(w=>{Ea(w,r.resetOptions),A.state.next({isLoading:!1})}),_removeUnmounted:Ee,_disableForm:Dt,_subjects:A,_proxyFormState:x,get _fields(){return s},get _formValues(){return c},get _state(){return f},set _state(w){f=w},get _defaultValues(){return l},get _names(){return h},set _names(w){h=w},get _formState(){return a},get _options(){return r},set _options(w){r={...r,...w},v=ql(r.mode),_=ql(r.reValidateMode)}},subscribe:lr,trigger:kt,register:cr,handleSubmit:wa,watch:xa,setValue:ue,setValues:Oe,getValues:Jt,reset:Ea,resetField:ht,resetDefaultValues:(w,M={})=>{if(l=ot(w),!M.keepDirty){const D=Ya(l,c,void 0,s);a.dirtyFields=D,a.isDirty=!Pt(D)}M.keepIsValid||H(),A.state.next({...a,defaultValues:l})},clearErrors:nn,unregister:ur,setError:bt,setFocus:dr,getFieldState:Bt};return{...$n,formControl:$n}}function AM(e={}){const r=B.useRef(void 0),a=B.useRef(void 0),s=B.useRef(e.formControl),[l,c]=B.useState(()=>({...ot(V_),isLoading:tn(e.defaultValues),errors:e.errors||{},disabled:e.disabled||!1,defaultValues:tn(e.defaultValues)?void 0:e.defaultValues}));if(!r.current||e.formControl&&s.current!==e.formControl)if(s.current=e.formControl,e.formControl)r.current={...e.formControl,formState:l},e.defaultValues&&!tn(e.defaultValues)&&e.formControl.reset(e.defaultValues,e.resetOptions);else{const{formControl:m,...y}=OM(e);r.current={...y,formState:l}}const f=r.current.control;f._options=e;const{resyncIfNeeded:h,snapshot:p}=Th();return Rh(()=>{const m=()=>({...f._formState,defaultValues:f._defaultValues});h(!0,m,c);const y=f._subscribe({formState:f._proxyFormState,callback:()=>c({...f._formState,defaultValues:f._defaultValues}),reRenderRoot:!0});return c(v=>({...v,isReady:!0})),f._formState.isReady=!0,()=>{y(),p(!0,m)}},[f,h,p]),B.useEffect(()=>f._disableForm(e.disabled),[f,e.disabled]),B.useEffect(()=>{e.mode&&(f._options.mode=e.mode),e.reValidateMode&&(f._options.reValidateMode=e.reValidateMode)},[f,e.mode,e.reValidateMode]),B.useEffect(()=>{e.errors&&(f._setErrors(e.errors),f._focusError())},[f,e.errors]),B.useEffect(()=>{e.shouldUnregister&&f._subjects.state.next({values:f._getWatch()})},[f,e.shouldUnregister]),B.useEffect(()=>{if(f._proxyFormState.isDirty){const m=f._getDirty();m!==l.isDirty&&f._subjects.state.next({isDirty:m})}},[f,l.isDirty]),B.useEffect(()=>{var m;e.values&&!bn(e.values,a.current)?(f._reset(e.values,{keepFieldsRef:!0,...f._options.resetOptions}),!((m=f._options.resetOptions)===null||m===void 0)&&m.keepIsValid||f._setValid(),a.current=e.values,c(y=>({...y}))):f._resetDefaultValues()},[f,e.values]),B.useEffect(()=>{f._state.mount||(f._setValid(),f._state.mount=!0),f._state.watch&&(f._state.watch=!1,f._subjects.state.next({...f._formState})),f._removeUnmounted()}),r.current.formState=B.useMemo(()=>C_(l,f),[f,l]),r.current}const nb=(e,r,a)=>{if(e&&"reportValidity"in e){const s=oe(a,r);e.setCustomValidity(s&&s.message||""),e.reportValidity()}},Vd=(e,r)=>{for(const a in r.fields){const s=r.fields[a];s&&s.ref&&"reportValidity"in s.ref?nb(s.ref,a,e):s&&s.refs&&s.refs.forEach(l=>nb(l,a,e))}},rb=(e,r)=>{r.shouldUseNativeValidation&&Vd(e,r);const a={};for(const s in e){const l=oe(r.fields,s),c=Object.assign(e[s]||{},{ref:l&&l.refs?l.refs[0]:l&&l.ref});if(RM(r.names||Object.keys(e),s)){const f=Object.assign({},oe(a,s));Ge(f,"root",c),Ge(a,s,f)}else Ge(a,s,c)}return a},RM=(e,r)=>{const a=ab(r).replace(/[.*+?^${}()|\\]/g,"\\$&");return e.some(s=>ab(s).match(`^${a}\\.\\d+`))};function ab(e){return e.replace(/[\[\]]/g,"")}function Ld(){return Ld=Object.assign?Object.assign.bind():function(e){for(var r=1;r0){var p,m,y=l.errors.reduce(function(E,x){return x.length"u")return;let r=document.head||document.getElementsByTagName("head")[0],a=document.createElement("style");a.type="text/css",r.appendChild(a),a.styleSheet?a.styleSheet.cssText=e:a.appendChild(document.createTextNode(e))}const jM=e=>{switch(e){case"success":return UM;case"info":return LM;case"warning":return VM;case"error":return ZM;default:return null}},kM=Array(12).fill(0),FM=({visible:e,className:r})=>B.createElement("div",{className:["sonner-loading-wrapper",r].filter(Boolean).join(" "),"data-visible":e},B.createElement("div",{className:"sonner-spinner"},kM.map((a,s)=>B.createElement("div",{className:"sonner-loading-bar",key:`spinner-bar-${s}`})))),UM=B.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20","aria-hidden":"true"},B.createElement("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z",clipRule:"evenodd"})),VM=B.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",height:"20",width:"20","aria-hidden":"true"},B.createElement("path",{fillRule:"evenodd",d:"M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z",clipRule:"evenodd"})),LM=B.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20","aria-hidden":"true"},B.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z",clipRule:"evenodd"})),ZM=B.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20","aria-hidden":"true"},B.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z",clipRule:"evenodd"})),HM=B.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true"},B.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),B.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"})),BM=()=>{const[e,r]=B.useState(document.hidden);return B.useEffect(()=>{const a=()=>{r(document.hidden)};return document.addEventListener("visibilitychange",a),()=>document.removeEventListener("visibilitychange",a)},[]),e};let qM=1;const $M=100,sb=e=>{var r;return typeof e?.id=="number"||(e==null||(r=e.id)==null?void 0:r.length)>0?e.id:qM++};class GM{constructor(){this.subscribe=r=>(this.subscribers.push(r),this.getActiveToasts().forEach(a=>r(a)),()=>{const a=this.subscribers.indexOf(r);this.subscribers.splice(a,1)}),this.publish=r=>{this.subscribers.forEach(a=>a(r))},this.addToast=r=>{this.publish(r),this.toasts=[...this.toasts,r],this.trimHistory()},this.trimHistory=()=>{let r=this.toasts.length-$M;r<=0||(this.toasts=this.toasts.filter(a=>r>0&&this.dismissedToasts.has(a.id)?(this.dismissedToasts.delete(a.id),r--,!1):!0))},this.create=r=>{const{message:a,...s}=r,l=sb(r),c=this.pendingDismissals.get(l);c!==void 0&&(cancelAnimationFrame(c),this.pendingDismissals.delete(l),this.dismissedToasts.delete(l));const f=this.dismissedToasts.has(l),h=r.dismissible===void 0?!0:r.dismissible;return f&&(this.dismissedToasts.delete(l),this.toasts=this.toasts.filter(m=>m.id!==l)),(f?void 0:this.toasts.find(m=>m.id===l))?this.toasts=this.toasts.map(m=>m.id===l?(this.publish({...m,...r,id:l,title:a}),{...m,...r,id:l,dismissible:h,title:a}):m):this.addToast({title:a,...s,dismissible:h,id:l}),l},this.dismiss=r=>{if(r==null)return this.getActiveToasts().forEach(s=>{this.dismissedToasts.add(s.id),this.subscribers.forEach(l=>l({id:s.id,dismiss:!0}))}),r;this.dismissedToasts.add(r);const a=this.pendingDismissals.get(r);return a!==void 0&&cancelAnimationFrame(a),this.pendingDismissals.set(r,requestAnimationFrame(()=>{this.pendingDismissals.delete(r),this.subscribers.forEach(s=>s({id:r,dismiss:!0}))})),r},this.message=(r,a)=>this.create({...a,message:r,type:void 0}),this.error=(r,a)=>this.create({...a,message:r,type:"error"}),this.success=(r,a)=>this.create({...a,type:"success",message:r}),this.info=(r,a)=>this.create({...a,type:"info",message:r}),this.warning=(r,a)=>this.create({...a,type:"warning",message:r}),this.loading=(r,a)=>this.create({...a,type:"loading",message:r}),this.promise=(r,a)=>{if(!a)return;let s;a.loading!==void 0&&(s=this.create({...a,promise:r,type:"loading",message:a.loading,description:typeof a.description!="function"?a.description:void 0}));const l=Promise.resolve(r instanceof Function?r():r);let c=s!==void 0,f;const h=l.then(async m=>{if(f=["resolve",m],B.isValidElement(m))c=!1,this.create({id:s,type:"default",message:m});else if(IM(m)&&!m.ok){c=!1;const v=typeof a.error=="function"?await a.error(`HTTP error! status: ${m.status}`):a.error,_=typeof a.description=="function"?await a.description(`HTTP error! status: ${m.status}`):a.description,x=typeof v=="object"&&!B.isValidElement(v)?v:{message:v};this.create({id:s,type:"error",description:_,...x})}else if(m instanceof Error){c=!1;const v=typeof a.error=="function"?await a.error(m):a.error,_=typeof a.description=="function"?await a.description(m):a.description,x=typeof v=="object"&&!B.isValidElement(v)?v:{message:v};this.create({id:s,type:"error",description:_,...x})}else if(a.success!==void 0){c=!1;const v=typeof a.success=="function"?await a.success(m):a.success,_=typeof a.description=="function"?await a.description(m):a.description,x=typeof v=="object"&&!B.isValidElement(v)?v:{message:v};this.create({id:s,type:"success",description:_,...x})}}).catch(async m=>{if(f=["reject",m],a.error!==void 0){c=!1;const y=typeof a.error=="function"?await a.error(m):a.error,v=typeof a.description=="function"?await a.description(m):a.description,E=typeof y=="object"&&!B.isValidElement(y)?y:{message:y};this.create({id:s,type:"error",description:v,...E})}}).finally(()=>{c&&(this.dismiss(s),s=void 0),a.finally==null||a.finally.call(a)}),p=()=>new Promise((m,y)=>h.then(()=>f[0]==="reject"?y(f[1]):m(f[1])).catch(y));return typeof s!="string"&&typeof s!="number"?{unwrap:p}:Object.assign(s,{unwrap:p})},this.custom=(r,a)=>{const s=sb(a);return this.create({...a,jsx:r(s),id:s,type:void 0}),s},this.getActiveToasts=()=>this.toasts.filter(r=>!this.dismissedToasts.has(r.id)),this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set,this.pendingDismissals=new Map}}const yn=new GM,YM=(e,r)=>yn.message(e,r),IM=e=>e&&typeof e=="object"&&"ok"in e&&typeof e.ok=="boolean"&&"status"in e&&typeof e.status=="number",QM=YM,PM=()=>yn.toasts,XM=()=>yn.getActiveToasts(),da=Object.assign(QM,{success:yn.success,info:yn.info,warning:yn.warning,error:yn.error,custom:yn.custom,message:yn.message,promise:yn.promise,dismiss:yn.dismiss,loading:yn.loading},{getHistory:PM,getToasts:XM});NM("[data-sonner-toaster][dir=ltr],html[dir=ltr]{--toast-icon-margin-start:-3px;--toast-icon-margin-end:4px;--toast-svg-margin-start:-1px;--toast-svg-margin-end:0px;--toast-button-margin-start:auto;--toast-button-margin-end:0;--toast-close-button-start:0;--toast-close-button-end:unset;--toast-close-button-transform:translate(-35%, -35%)}[data-sonner-toaster][dir=rtl],html[dir=rtl]{--toast-icon-margin-start:4px;--toast-icon-margin-end:-3px;--toast-svg-margin-start:0px;--toast-svg-margin-end:-1px;--toast-button-margin-start:0;--toast-button-margin-end:auto;--toast-close-button-start:unset;--toast-close-button-end:0;--toast-close-button-transform:translate(35%, -35%)}[data-sonner-toaster]{position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1:hsl(0, 0%, 99%);--gray2:hsl(0, 0%, 97.3%);--gray3:hsl(0, 0%, 95.1%);--gray4:hsl(0, 0%, 93%);--gray5:hsl(0, 0%, 90.9%);--gray6:hsl(0, 0%, 88.7%);--gray7:hsl(0, 0%, 85.8%);--gray8:hsl(0, 0%, 78%);--gray9:hsl(0, 0%, 56.1%);--gray10:hsl(0, 0%, 52.3%);--gray11:hsl(0, 0%, 43.5%);--gray12:hsl(0, 0%, 9%);--border-radius:8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:0;z-index:999999999;transition:transform .4s ease}@media (hover:none) and (pointer:coarse){[data-sonner-toaster][data-lifted=true]{transform:none}}[data-sonner-toaster][data-x-position=right]{right:var(--offset-right)}[data-sonner-toaster][data-x-position=left]{left:var(--offset-left)}[data-sonner-toaster][data-x-position=center]{left:50%;transform:translateX(-50%)}[data-sonner-toaster][data-y-position=top]{top:var(--offset-top)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--offset-bottom)}[data-sonner-toast]{--y:translateY(100%);--lift-amount:calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:0;overflow-wrap:anywhere}[data-sonner-toast][data-styled=true]{padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px rgba(0,0,0,.1);width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}[data-sonner-toast]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-y-position=top]{top:0;--y:translateY(-100%);--lift:1;--lift-amount:calc(1 * var(--gap))}[data-sonner-toast][data-y-position=bottom]{bottom:0;--y:translateY(100%);--lift:-1;--lift-amount:calc(var(--lift) * var(--gap))}[data-sonner-toast][data-styled=true] [data-description]{font-weight:400;line-height:1.4;color:#3f3f3f}[data-rich-colors=true][data-sonner-toast][data-styled=true] [data-description]{color:inherit}[data-sonner-toaster][data-sonner-theme=dark] [data-description]{color:#e8e8e8}[data-sonner-toast][data-styled=true] [data-title]{font-weight:500;line-height:1.5;color:inherit}[data-sonner-toast][data-styled=true] [data-icon]{display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}[data-sonner-toast][data-promise=true] [data-icon]>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}[data-sonner-toast][data-styled=true] [data-icon]>*{flex-shrink:0}[data-sonner-toast][data-styled=true] [data-icon] svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}[data-sonner-toast][data-styled=true] [data-content]{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;font-weight:500;cursor:pointer;outline:0;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}[data-sonner-toast][data-styled=true] [data-button]:focus-visible{box-shadow:0 0 0 2px rgba(0,0,0,.4)}[data-sonner-toast][data-styled=true] [data-button]:first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}[data-sonner-toast][data-styled=true] [data-cancel]{color:var(--normal-text);background:rgba(0,0,0,.08)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-styled=true] [data-cancel]{background:rgba(255,255,255,.3)}[data-sonner-toast][data-styled=true] [data-close-button]{position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--normal-text);background:var(--normal-bg);border:1px solid var(--normal-border);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast][data-styled=true] [data-close-button]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-styled=true] [data-disabled=true]{cursor:not-allowed}[data-sonner-toast][data-styled=true]:hover [data-close-button]:hover{background:var(--gray2);border-color:var(--gray5)}[data-sonner-toast][data-swiping=true]::before{content:'';position:absolute;left:-100%;right:-100%;height:100%;z-index:-1}[data-sonner-toast][data-y-position=top][data-swiping=true]::before{bottom:50%;transform:scaleY(3) translateY(50%)}[data-sonner-toast][data-y-position=bottom][data-swiping=true]::before{top:50%;transform:scaleY(3) translateY(-50%)}[data-sonner-toast][data-swiping=false][data-removed=true]::before{content:'';position:absolute;inset:0;transform:scaleY(2)}[data-sonner-toast][data-expanded=true]::after{content:'';position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}[data-sonner-toast][data-mounted=true]{--y:translateY(0);opacity:1}[data-sonner-toast][data-expanded=false][data-front=false]{--scale:var(--toasts-before) * 0.05 + 1;--y:translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}[data-sonner-toast]>*{transition:opacity .4s}[data-sonner-toast][data-x-position=right]{right:0}[data-sonner-toast][data-x-position=left]{left:0}[data-sonner-toast][data-expanded=false][data-front=false][data-styled=true]>*{opacity:0}[data-sonner-toast][data-visible=false]{opacity:0;pointer-events:none}[data-sonner-toast][data-mounted=true][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}[data-sonner-toast][data-removed=true][data-front=true][data-swipe-out=false]{--y:translateY(calc(var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=false]{--y:translateY(40%);opacity:0;transition:transform .5s,opacity .2s}[data-sonner-toast][data-removed=true][data-front=false]::before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y,0)) translateX(var(--swipe-amount-x,0));transition:none}[data-sonner-toast][data-swiped=true]{-webkit-user-select:none;user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width:600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-sonner-theme=light]{--normal-bg:#fff;--normal-border:var(--gray4);--normal-text:var(--gray12);--success-bg:hsl(143, 85%, 96%);--success-border:hsl(145, 92%, 87%);--success-text:hsl(140, 100%, 27%);--info-bg:hsl(208, 100%, 97%);--info-border:hsl(221, 91%, 93%);--info-text:hsl(210, 92%, 45%);--warning-bg:hsl(49, 100%, 97%);--warning-border:hsl(49, 91%, 84%);--warning-text:hsl(31, 92%, 45%);--error-bg:hsl(359, 100%, 97%);--error-border:hsl(359, 100%, 94%);--error-text:hsl(360, 100%, 45%)}[data-sonner-toaster][data-sonner-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg:#000;--normal-border:hsl(0, 0%, 20%);--normal-text:var(--gray1)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg:#fff;--normal-border:var(--gray3);--normal-text:var(--gray12)}[data-sonner-toaster][data-sonner-theme=dark]{--normal-bg:#000;--normal-bg-hover:hsl(0, 0%, 12%);--normal-border:hsl(0, 0%, 20%);--normal-border-hover:hsl(0, 0%, 25%);--normal-text:var(--gray1);--success-bg:hsl(150, 100%, 6%);--success-border:hsl(147, 100%, 12%);--success-text:hsl(150, 86%, 65%);--info-bg:hsl(215, 100%, 6%);--info-border:hsl(223, 43%, 17%);--info-text:hsl(216, 87%, 65%);--warning-bg:hsl(64, 100%, 6%);--warning-border:hsl(60, 100%, 9%);--warning-text:hsl(46, 87%, 65%);--error-bg:hsl(358, 76%, 10%);--error-border:hsl(357, 89%, 16%);--error-text:hsl(358, 100%, 81%)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size:16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:first-child{animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}100%{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}100%{opacity:.15}}@media (prefers-reduced-motion){.sonner-loading-bar,[data-sonner-toast],[data-sonner-toast]>*{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}");function $l(e){return e.label!==void 0}const KM=3,JM="24px",WM="16px",ob=4e3,eN=356,tN=14,nN=45,rN=200;function rr(...e){return e.filter(Boolean).join(" ")}function aN(e){const[r,a]=e.split("-"),s=[];return r&&s.push(r),a&&s.push(a),s}const iN=e=>{var r,a,s,l,c,f,h,p,m;const{invert:y,toast:v,unstyled:_,interacting:E,setHeights:x,visibleToasts:C,heights:A,index:Z,toasts:k,expanded:P,removeToast:H,defaultRichColors:G,closeButton:te,style:q,cancelButtonStyle:$,actionButtonStyle:de,className:ze="",descriptionClassName:Ne="",duration:ie,position:be,gap:Ae,expandByDefault:Te,classNames:j,icons:ee,closeButtonAriaLabel:he="Close toast"}=e,[Ee,re]=B.useState(null),[R,I]=B.useState(null),[se,ne]=B.useState(!1),[le,ue]=B.useState(!1),[Oe,$e]=B.useState(!1),[me,kt]=B.useState(!1),[Jt,Bt]=B.useState(!1),[nn,bt]=B.useState(0),[xa,or]=B.useState(0),lr=B.useRef(v.duration||ie||ob),ur=B.useRef(null),Wt=B.useRef(null),cr=Z===0,fr=Z+1<=C,Dt=v.type,wa=Dt??"default",ht=v.dismissible!==!1,ni=v.className||"",Ea=v.descriptionClassName||"",dr=B.useMemo(()=>A.findIndex(Re=>Re.toastId===v.id)||0,[A,v.id]),hr=B.useMemo(()=>{var Re;return(Re=v.closeButton)!=null?Re:te},[v.closeButton,te]),ss=B.useMemo(()=>v.duration||ie||ob,[v.duration,ie]),Ca=B.useRef(0),$n=B.useRef(0),w=B.useRef(0),M=B.useRef(null),[D,W]=be.split("-"),X=B.useMemo(()=>A.reduce((Re,tt,pt)=>pt>=dr?Re:Re+tt.height,0),[A,dr]),ce=BM(),ae=B.useMemo(()=>{var Re;return(Re=e.swipeDirections)!=null?Re:aN(be)},[e.swipeDirections,be]),fe=v.invert||y,ve=Dt==="loading";$n.current=B.useMemo(()=>dr*Ae+X,[dr,X]),B.useEffect(()=>{lr.current=ss},[ss]),B.useEffect(()=>{ne(!0)},[]),B.useEffect(()=>{const Re=Wt.current;if(Re){const tt=Re.getBoundingClientRect().height;return or(tt),x(pt=>[{toastId:v.id,height:tt,position:v.position},...pt]),()=>x(pt=>pt.filter(ut=>ut.toastId!==v.id))}},[x,v.id]),B.useLayoutEffect(()=>{if(!se)return;const Re=Wt.current,tt=Re.style.height;Re.style.height="auto";const pt=Re.getBoundingClientRect().height;Re.style.height=tt,or(pt),x(ut=>ut.find(Ct=>Ct.toastId===v.id)?ut.map(Ct=>Ct.toastId===v.id?{...Ct,height:pt}:Ct):[{toastId:v.id,height:pt,position:v.position},...ut])},[se,v.title,v.description,x,v.id,v.jsx,v.action,v.cancel]);const Se=B.useCallback(()=>{ue(!0),bt($n.current),x(Re=>Re.filter(tt=>tt.toastId!==v.id)),setTimeout(()=>{H(v)},rN)},[v,H,x,$n]);B.useEffect(()=>{if(v.promise&&Dt==="loading"||v.duration===1/0||v.type==="loading")return;let Re;return P||E||ce?(()=>{if(w.current{v.onAutoClose==null||v.onAutoClose.call(v,v),Se()},lr.current)),()=>clearTimeout(Re)},[P,E,v,Dt,ce,Se]),B.useEffect(()=>{v.delete&&(Se(),v.onDismiss==null||v.onDismiss.call(v,v))},[Se,v.delete]);function Xe(){var Re;if(ee?.loading){var tt;return B.createElement("div",{className:rr(j?.loader,v==null||(tt=v.classNames)==null?void 0:tt.loader,"sonner-loader"),"data-visible":Dt==="loading"},ee.loading)}return B.createElement(FM,{className:rr(j?.loader,v==null||(Re=v.classNames)==null?void 0:Re.loader),visible:Dt==="loading"})}const mt=v.icon||ee?.[Dt]||jM(Dt);var qt,un;return B.createElement("li",{tabIndex:0,ref:Wt,className:rr(ze,ni,j?.toast,v==null||(r=v.classNames)==null?void 0:r.toast,j?.[wa],v==null||(a=v.classNames)==null?void 0:a[wa]),"data-sonner-toast":"","data-rich-colors":(qt=v.richColors)!=null?qt:G,"data-styled":!(v.jsx||v.unstyled||_),"data-mounted":se,"data-promise":!!v.promise,"data-swiped":Jt,"data-removed":le,"data-visible":fr,"data-y-position":D,"data-x-position":W,"data-index":Z,"data-front":cr,"data-swiping":Oe,"data-dismissible":ht,"data-type":Dt,"data-invert":fe,"data-swipe-out":me,"data-swipe-direction":R,"data-expanded":!!(P||Te&&se),"data-testid":v.testId,style:{"--index":Z,"--toasts-before":Z,"--z-index":k.length-Z,"--offset":`${le?nn:$n.current}px`,"--initial-height":Te?"auto":`${xa}px`,...q,...v.style},onDragEnd:()=>{$e(!1),re(null),M.current=null},onPointerDown:Re=>{Re.button!==2&&(ve||!ht||(ur.current=new Date,bt($n.current),Re.target.setPointerCapture(Re.pointerId),Re.target.tagName!=="BUTTON"&&($e(!0),M.current={x:Re.clientX,y:Re.clientY})))},onPointerUp:()=>{var Re,tt,pt;if(me||!ht)return;M.current=null;const ut=Number(((Re=Wt.current)==null?void 0:Re.style.getPropertyValue("--swipe-amount-x").replace("px",""))||0),Oa=Number(((tt=Wt.current)==null?void 0:tt.style.getPropertyValue("--swipe-amount-y").replace("px",""))||0),Ct=new Date().getTime()-((pt=ur.current)==null?void 0:pt.getTime()),rn=Ee==="x"?ut:Oa,Sn=Math.abs(rn)/Ct;if((Ee==="x"?ae.includes(ut>0?"right":"left"):ae.includes(Oa>0?"bottom":"top"))&&(Math.abs(rn)>=nN||Sn>.11)){bt($n.current),v.onDismiss==null||v.onDismiss.call(v,v),I(Ee==="x"?ut>0?"right":"left":Oa>0?"down":"up"),Se(),kt(!0);return}else{var cn,ri;(cn=Wt.current)==null||cn.style.setProperty("--swipe-amount-x","0px"),(ri=Wt.current)==null||ri.style.setProperty("--swipe-amount-y","0px")}Bt(!1),$e(!1),re(null)},onPointerMove:Re=>{var tt,pt,ut;if(!M.current||!ht||((tt=window.getSelection())==null?void 0:tt.toString().length)>0)return;const Ct=Re.clientY-M.current.y,rn=Re.clientX-M.current.x;!Ee&&(Math.abs(rn)>1||Math.abs(Ct)>1)&&re(Math.abs(rn)>Math.abs(Ct)?"x":"y");let Sn={x:0,y:0};const Aa=cn=>1/(1.5+Math.abs(cn)/20);if(Ee==="y"){if(ae.includes("top")||ae.includes("bottom"))if(ae.includes("top")&&Ct<0||ae.includes("bottom")&&Ct>0)Sn.y=Ct;else{const cn=Ct*Aa(Ct);Sn.y=Math.abs(cn)0)Sn.x=rn;else{const cn=rn*Aa(rn);Sn.x=Math.abs(cn)0||Math.abs(Sn.y)>0)&&Bt(!0),(pt=Wt.current)==null||pt.style.setProperty("--swipe-amount-x",`${Sn.x}px`),(ut=Wt.current)==null||ut.style.setProperty("--swipe-amount-y",`${Sn.y}px`)}},hr&&!v.jsx&&Dt!=="loading"?B.createElement("button",{"aria-label":he,"data-disabled":ve,"data-close-button":!0,onClick:ve||!ht?()=>{}:()=>{Se(),v.onDismiss==null||v.onDismiss.call(v,v)},className:rr(j?.closeButton,v==null||(s=v.classNames)==null?void 0:s.closeButton)},(un=ee?.close)!=null?un:HM):null,(Dt||v.icon||v.promise)&&v.icon!==null&&(ee?.[Dt]!==null||v.icon)?B.createElement("div",{"data-icon":"",className:rr(j?.icon,v==null||(l=v.classNames)==null?void 0:l.icon)},Dt==="loading"?v.icon||Xe():v.promise?Xe():null,Dt!=="loading"?mt:null):null,B.createElement("div",{"data-content":"",className:rr(j?.content,v==null||(c=v.classNames)==null?void 0:c.content)},B.createElement("div",{"data-title":"",className:rr(j?.title,v==null||(f=v.classNames)==null?void 0:f.title)},v.jsx?v.jsx:typeof v.title=="function"?v.title():v.title),v.description?B.createElement("div",{"data-description":"",className:rr(Ne,Ea,j?.description,v==null||(h=v.classNames)==null?void 0:h.description)},typeof v.description=="function"?v.description():v.description):null),B.isValidElement(v.cancel)?v.cancel:v.cancel&&$l(v.cancel)?B.createElement("button",{"data-button":!0,"data-cancel":!0,style:v.cancelButtonStyle||$,onClick:Re=>{$l(v.cancel)&&ht&&(v.cancel.onClick==null||v.cancel.onClick.call(v.cancel,Re),Se())},className:rr(j?.cancelButton,v==null||(p=v.classNames)==null?void 0:p.cancelButton)},v.cancel.label):null,B.isValidElement(v.action)?v.action:v.action&&$l(v.action)?B.createElement("button",{"data-button":!0,"data-action":!0,style:v.actionButtonStyle||de,onClick:Re=>{$l(v.action)&&(v.action.onClick==null||v.action.onClick.call(v.action,Re),!Re.defaultPrevented&&Se())},className:rr(j?.actionButton,v==null||(m=v.classNames)==null?void 0:m.actionButton)},v.action.label):null)};function lb(){if(typeof window>"u"||typeof document>"u")return"ltr";const e=document.documentElement.getAttribute("dir");return e==="auto"||!e?window.getComputedStyle(document.documentElement).direction:e}function sN(e,r){const a={};return[e,r].forEach((s,l)=>{const c=l===1,f=c?"--mobile-offset":"--offset",h=c?WM:JM;function p(m){["top","right","bottom","left"].forEach(y=>{a[`${f}-${y}`]=typeof m=="number"?`${m}px`:m})}typeof s=="number"||typeof s=="string"?p(s):typeof s=="object"?["top","right","bottom","left"].forEach(m=>{s[m]===void 0?a[`${f}-${m}`]=h:a[`${f}-${m}`]=typeof s[m]=="number"?`${s[m]}px`:s[m]}):p(h)}),a}const oN=B.forwardRef(function(r,a){const{id:s,invert:l,position:c="bottom-right",hotkey:f=["altKey","KeyT"],expand:h,closeButton:p,className:m,offset:y,mobileOffset:v,theme:_="light",richColors:E,duration:x,style:C,visibleToasts:A=KM,toastOptions:Z,dir:k=lb(),gap:P=tN,icons:H,customAriaLabel:G,containerAriaLabel:te="Notifications"}=r,[q,$]=B.useState([]),de=B.useMemo(()=>s?q.filter(ne=>ne.toasterId===s):q.filter(ne=>!ne.toasterId),[q,s]),ze=B.useMemo(()=>Array.from(new Set([c].concat(de.filter(ne=>ne.position).map(ne=>ne.position)))),[de,c]),[Ne,ie]=B.useState([]),[be,Ae]=B.useState(!1),[Te,j]=B.useState(!1),[ee,he]=B.useState(_!=="system"?_:typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"),Ee=B.useRef(null),re=f.join("+").replace(/Key/g,"").replace(/Digit/g,""),R=B.useRef(null),I=B.useRef(!1),se=B.useCallback(ne=>{$(le=>{var ue;return(ue=le.find(Oe=>Oe.id===ne.id))!=null&&ue.delete||yn.dismiss(ne.id),le.filter(({id:Oe})=>Oe!==ne.id)})},[]);return B.useEffect(()=>yn.subscribe(ne=>{if(ne.dismiss){requestAnimationFrame(()=>{$(le=>le.map(ue=>ue.id===ne.id?{...ue,delete:!0}:ue))});return}setTimeout(()=>{MM.flushSync(()=>{$(le=>{const ue=le.findIndex(Oe=>Oe.id===ne.id);return ue!==-1?[...le.slice(0,ue),{...le[ue],...ne},...le.slice(ue+1)]:[ne,...le]})})})}),[]),B.useEffect(()=>{if(_!=="system"){he(_);return}if(_==="system"&&(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?he("dark"):he("light")),typeof window>"u")return;const ne=window.matchMedia("(prefers-color-scheme: dark)");try{ne.addEventListener("change",({matches:le})=>{he(le?"dark":"light")})}catch{ne.addListener(({matches:ue})=>{try{he(ue?"dark":"light")}catch(Oe){console.error(Oe)}})}},[_]),B.useEffect(()=>{q.length<=1&&Ae(!1)},[q]),B.useEffect(()=>{const ne=le=>{var ue;if(f.length>0&&f.every(me=>le[me]||le.code===me)){var $e;Ae(!0),($e=Ee.current)==null||$e.focus()}le.code==="Escape"&&(document.activeElement===Ee.current||(ue=Ee.current)!=null&&ue.contains(document.activeElement))&&Ae(!1)};return document.addEventListener("keydown",ne),()=>document.removeEventListener("keydown",ne)},[f]),B.useEffect(()=>{if(Ee.current)return()=>{R.current&&(R.current.focus({preventScroll:!0}),R.current=null,I.current=!1)}},[Ee.current]),B.createElement("section",{ref:a,"aria-label":G??`${te} ${re}`,tabIndex:-1,"aria-live":"polite","aria-relevant":"additions text","aria-atomic":"false",suppressHydrationWarning:!0,"data-react-aria-top-layer":!0},ze.map((ne,le)=>{var ue;const[Oe,$e]=ne.split("-");return de.length?B.createElement("ol",{key:ne,dir:k==="auto"?lb():k,tabIndex:-1,ref:Ee,className:m,"data-sonner-toaster":!0,"data-sonner-theme":ee,"data-y-position":Oe,"data-x-position":$e,style:{"--front-toast-height":`${((ue=Ne[0])==null?void 0:ue.height)||0}px`,"--width":`${eN}px`,"--gap":`${P}px`,...C,...sN(y,v)},onBlur:me=>{I.current&&!me.currentTarget.contains(me.relatedTarget)&&(I.current=!1,R.current&&(R.current.focus({preventScroll:!0}),R.current=null))},onFocus:me=>{me.target instanceof HTMLElement&&me.target.dataset.dismissible==="false"||I.current||(I.current=!0,R.current=me.relatedTarget)},onMouseEnter:()=>Ae(!0),onMouseMove:()=>Ae(!0),onMouseLeave:()=>{Te||Ae(!1)},onDragEnd:()=>Ae(!1),onPointerDown:me=>{me.target instanceof HTMLElement&&me.target.dataset.dismissible==="false"||j(!0)},onPointerUp:()=>j(!1)},de.filter(me=>!me.position&&le===0||me.position===ne).map((me,kt)=>{var Jt,Bt;return B.createElement(iN,{key:me.id,icons:H,index:kt,toast:me,defaultRichColors:E,duration:(Jt=Z?.duration)!=null?Jt:x,className:Z?.className,descriptionClassName:Z?.descriptionClassName,invert:l,visibleToasts:A,closeButton:(Bt=Z?.closeButton)!=null?Bt:p,interacting:Te,position:ne,style:Z?.style,unstyled:Z?.unstyled,classNames:Z?.classNames,cancelButtonStyle:Z?.cancelButtonStyle,actionButtonStyle:Z?.actionButtonStyle,closeButtonAriaLabel:Z?.closeButtonAriaLabel,removeToast:se,toasts:de.filter(nn=>nn.position==me.position),heights:Ne.filter(nn=>nn.position==me.position),setHeights:ie,expandByDefault:h,gap:P,expanded:be,swipeDirections:r.swipeDirections})})):null}))}),lN=Yb("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive cursor-pointer",{variants:{variant:{default:"bg-primary text-primary-foreground shadow-xs hover:bg-primary/90",destructive:"bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40",outline:"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2 has-[>svg]:px-3",sm:"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",xs:"h-7 rounded-md gap-1 px-2.5 text-xs has-[>svg]:px-2",lg:"h-10 rounded-md px-6 has-[>svg]:px-4",icon:"size-9","icon-sm":"size-7"}},defaultVariants:{variant:"default",size:"default"}});function pa({className:e,variant:r,size:a,asChild:s=!1,...l}){const c=s?rh:"button";return S.jsx(c,{"data-slot":"button",className:Pe(lN({variant:r,size:a,className:e})),...l})}var uN=Object.defineProperty,is=(e,r)=>uN(e,"name",{value:r,configurable:!0}),L_=!!(typeof window<"u"&&window.document&&window.document.createElement);function Fr(e,r,{checkForDefaultPrevented:a=!0}={}){return is(function(l){if(e?.(l),a===!1||!l||!l.defaultPrevented)return r?.(l)},"handleEvent")}is(Fr,"composeEventHandlers");function cN(e){if(!L_)throw new Error("Cannot access window outside of the DOM");return e?.ownerDocument?.defaultView??window}is(cN,"getOwnerWindow");function Zd(e){if(!L_)throw new Error("Cannot access document outside of the DOM");return e?.ownerDocument??document}is(Zd,"getOwnerDocument");function Z_(e,r=!1){const{activeElement:a}=Zd(e);if(!a?.nodeName)return null;if(H_(a)&&a.contentDocument)return Z_(a.contentDocument.body,r);if(r){const s=a.getAttribute("aria-activedescendant");if(s){const l=Zd(a).getElementById(s);if(l)return l}}return a}is(Z_,"getActiveElement");function H_(e){return e.tagName==="IFRAME"}is(H_,"isFrame");var fN=Object.defineProperty,Bn=(e,r)=>fN(e,"name",{value:r,configurable:!0});function dN(e,r){const a=z.createContext(r);a.displayName=e+"Context";const s=Bn(c=>{const{children:f,...h}=c,p=z.useMemo(()=>h,Object.values(h));return S.jsx(a.Provider,{value:p,children:f})},"Provider");s.displayName=e+"Provider";function l(c,f={}){const{optional:h=!1}=f,p=z.useContext(a);if(p)return p;if(r!==void 0)return r;if(!h)throw new Error(`\`${c}\` must be used within \`${e}\``)}return Bn(l,"useContext"),[s,l]}Bn(dN,"createContext");function B_(e,r=[]){let a=[];function s(c,f){const h=z.createContext(f);h.displayName=c+"Context";const p=a.length;a=[...a,f];const m=Bn(v=>{const{scope:_,children:E,...x}=v,C=_?.[e]?.[p]||h,A=z.useMemo(()=>x,Object.values(x));return S.jsx(C.Provider,{value:A,children:E})},"Provider");m.displayName=c+"Provider";function y(v,_,E={}){const{optional:x=!1}=E,C=_?.[e]?.[p]||h,A=z.useContext(C);if(A)return A;if(f!==void 0)return f;if(!x)throw new Error(`\`${v}\` must be used within \`${c}\``)}return Bn(y,"useContext"),[m,y]}Bn(s,"createContext");const l=Bn(()=>{const c=a.map(f=>z.createContext(f));return Bn(function(h){const p=h?.[e]||c;return z.useMemo(()=>({[`__scope${e}`]:{...h,[e]:p}}),[h,p])},"useScope")},"createScope");return l.scopeName=e,[s,q_(l,...r)]}Bn(B_,"createContextScope");function q_(...e){const r=e[0];if(e.length===1)return r;const a=Bn(()=>{const s=e.map(l=>({useScope:l(),scopeName:l.scopeName}));return Bn(function(c){const f=s.reduce((h,{useScope:p,scopeName:m})=>{const v=p(c)[`__scope${m}`];return{...h,...v}},{});return z.useMemo(()=>({[`__scope${r.scopeName}`]:f}),[f])},"useComposedScopes")},"createScope");return a.scopeName=r.scopeName,a}Bn(q_,"composeContextScopes");var va=globalThis?.document?z.useLayoutEffect:()=>{},hN=Object.defineProperty,mN=(e,r)=>hN(e,"name",{value:r,configurable:!0}),pN=fo[" useId ".trim().toString()]||(()=>{}),gN=0;function eu(e){const[r,a]=z.useState(pN());return va(()=>{e||a(s=>s??String(gN++))},[e]),e||(r?`radix-${r}`:"")}mN(eu,"useId");var vN=Object.defineProperty,yN=(e,r)=>vN(e,"name",{value:r,configurable:!0}),ub=fo[" useEffectEvent ".trim().toString()],cb=fo[" useInsertionEffect ".trim().toString()];function $_(e){if(typeof ub=="function")return ub(e);const r=z.useRef(()=>{throw new Error("Cannot call an event handler while rendering.")});return typeof cb=="function"?cb(()=>{r.current=e}):va(()=>{r.current=e}),z.useMemo(()=>((...a)=>r.current?.(...a)),[])}yN($_,"useEffectEvent");var bN=Object.defineProperty,bo=(e,r)=>bN(e,"name",{value:r,configurable:!0}),_N=fo[" useInsertionEffect ".trim().toString()]||va;function G_({prop:e,defaultProp:r,onChange:a=bo(()=>{},"onChange"),caller:s}){const[l,c,f]=Y_({defaultProp:r,onChange:a}),h=e!==void 0,p=h?e:l,m=z.useCallback(y=>{if(h){const v=I_(y)?y(e):y;v!==e&&f.current?.(v)}else c(y)},[h,e,c,f]);return[p,m]}bo(G_,"useControllableState");function Y_({defaultProp:e,onChange:r}){const[a,s]=z.useState(e),l=z.useRef(a),c=z.useRef(r);return _N(()=>{c.current=r},[r]),z.useEffect(()=>{l.current!==a&&(c.current?.(a),l.current=a)},[a,l]),[a,s,c]}bo(Y_,"useUncontrolledState");function I_(e){return typeof e=="function"}bo(I_,"isFunction");var fb=Symbol("RADIX:SYNC_STATE");function SN(e,r,a,s){const{prop:l,defaultProp:c,onChange:f,caller:h}=r,p=l!==void 0,m=$_(f),y=[{...a,state:c}];s&&y.push(s);const[v,_]=z.useReducer((A,Z)=>{if(Z.type===fb)return{...A,state:Z.state};const k=e(A,Z);return p&&!Object.is(k.state,A.state)&&m(k.state),k},...y),E=v.state,x=z.useRef(E);z.useEffect(()=>{x.current!==E&&(x.current=E,p||m(E))},[E,x,p]);const C=z.useMemo(()=>l!==void 0?{...v,state:l}:v,[v,l]);return z.useEffect(()=>{p&&!Object.is(l,v.state)&&_({type:fb,state:l})},[l,v.state,p]),[C,_]}bo(SN,"useControllableStateReducer");var xN=Object.defineProperty,wN=(e,r)=>xN(e,"name",{value:r,configurable:!0}),EN=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],Lr=EN.reduce((e,r)=>{const a=yu(`Primitive.${r}`),s=z.forwardRef((l,c)=>{const{asChild:f,...h}=l,p=f?a:r;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),S.jsx(p,{...h,ref:c})});return s.displayName=`Primitive.${r}`,{...e,[r]:s}},{});function Q_(e,r){e&&Nh.flushSync(()=>e.dispatchEvent(r))}wN(Q_,"dispatchDiscreteCustomEvent");var CN=Object.defineProperty,ON=(e,r)=>CN(e,"name",{value:r,configurable:!0});function Wi(e){const r=z.useRef(e);return z.useEffect(()=>{r.current=e}),z.useMemo(()=>((...a)=>r.current?.(...a)),[])}ON(Wi,"useCallbackRef");var AN=Object.defineProperty,Zt=(e,r)=>AN(e,"name",{value:r,configurable:!0}),Hd="dismissableLayer.update",RN="dismissableLayer.pointerDownOutside",TN="dismissableLayer.focusOutside",db,P_=z.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set,dismissableSurfaces:new Set}),DN=z.forwardRef(Zt(function(r,a){const{disableOutsidePointerEvents:s=!1,deferPointerDownOutside:l=!1,onEscapeKeyDown:c,onPointerDownOutside:f,onFocusOutside:h,onInteractOutside:p,onDismiss:m,...y}=r,v=z.useContext(P_),[_,E]=z.useState(null),x=_?.ownerDocument??globalThis?.document,[,C]=z.useState({}),A=Ja(a,E),Z=Array.from(v.layers),[k]=[...v.layersWithOutsidePointerEventsDisabled].slice(-1),P=k?Z.indexOf(k):-1,H=_?Z.indexOf(_):-1,G=v.layersWithOutsidePointerEventsDisabled.size>0,te=H>=P,q=z.useRef(!1),$=K_(ie=>{f?.(ie),p?.(ie),ie.defaultPrevented||m?.()},{ownerDocument:x,deferPointerDownOutside:l,isDeferredPointerDownOutsideRef:q,dismissableSurfaces:v.dismissableSurfaces,shouldHandlePointerDownOutside:z.useCallback(ie=>{if(!(ie instanceof Node))return!1;const be=[...v.branches].some(Ae=>Ae.contains(ie));return te&&!be},[v.branches,te])}),de=J_(ie=>{if(l&&q.current)return;const be=ie.target;[...v.branches].some(Te=>Te.contains(be))||(h?.(ie),p?.(ie),ie.defaultPrevented||m?.())},x),ze=_?H===Z.length-1:!1,Ne=Wi(ie=>{ie.key==="Escape"&&(c?.(ie),!ie.defaultPrevented&&m&&(ie.preventDefault(),m()))});return z.useEffect(()=>{if(ze)return x.addEventListener("keydown",Ne,{capture:!0}),()=>x.removeEventListener("keydown",Ne,{capture:!0})},[x,ze,Ne]),z.useEffect(()=>{if(_)return s&&(v.layersWithOutsidePointerEventsDisabled.size===0&&(db=x.body.style.pointerEvents,x.body.style.pointerEvents="none"),v.layersWithOutsidePointerEventsDisabled.add(_)),v.layers.add(_),Bd(),()=>{s&&(v.layersWithOutsidePointerEventsDisabled.delete(_),v.layersWithOutsidePointerEventsDisabled.size===0&&(x.body.style.pointerEvents=db))}},[_,x,s,v]),z.useEffect(()=>()=>{_&&(v.layers.delete(_),v.layersWithOutsidePointerEventsDisabled.delete(_),Bd())},[_,v]),z.useEffect(()=>{const ie=Zt(()=>C({}),"handleUpdate");return document.addEventListener(Hd,ie),()=>document.removeEventListener(Hd,ie)},[]),S.jsx(Lr.div,{...y,ref:A,style:{pointerEvents:G?te?"auto":"none":void 0,...r.style},onFocusCapture:Fr(r.onFocusCapture,de.onFocusCapture),onBlurCapture:Fr(r.onBlurCapture,de.onBlurCapture),onPointerDownCapture:Fr(r.onPointerDownCapture,$.onPointerDownCapture)})},"DismissableLayer"));function X_(){const e=z.useContext(P_),[r,a]=z.useState(null);return z.useEffect(()=>{if(r)return e.dismissableSurfaces.add(r),()=>{e.dismissableSurfaces.delete(r)}},[r,e.dismissableSurfaces]),a}Zt(X_,"useDismissableLayerSurface");var zN=Zt(()=>!0,"IS_TRUE");function K_(e,r){const{ownerDocument:a=globalThis?.document,deferPointerDownOutside:s=!1,isDeferredPointerDownOutsideRef:l,dismissableSurfaces:c,shouldHandlePointerDownOutside:f=zN}=r,h=Wi(e),p=z.useRef(!1),m=z.useRef(!1),y=z.useRef(new Map),v=z.useRef(()=>{});return z.useEffect(()=>{function _(){m.current=!1,l.current=!1,y.current.clear()}Zt(_,"resetOutsideInteraction");function E(){return Array.from(y.current.values()).some(Boolean)}Zt(E,"isOutsideInteractionIntercepted");function x(P){if(!m.current)return;const H=P.target;H instanceof Node&&[...c].some(te=>te.contains(H))||y.current.set(P.type,!0),P.type==="click"&&window.setTimeout(()=>{m.current&&v.current()},0)}Zt(x,"handleInteractionCapture");function C(P){m.current&&y.current.set(P.type,!1)}Zt(C,"handleInteractionBubble");const A=Zt(P=>{if(P.target&&!p.current){let H=function(){a.removeEventListener("click",v.current);const te=E();_(),te||jh(RN,h,G,{discrete:!0})};if(Zt(H,"handleAndDispatchPointerDownOutsideEvent"),!f(P.target)){a.removeEventListener("click",v.current),_(),p.current=!1;return}const G={originalEvent:P};m.current=!0,l.current=s&&P.button===0,y.current.clear(),!s||P.button!==0?H():(a.removeEventListener("click",v.current),v.current=H,a.addEventListener("click",v.current,{once:!0}))}else a.removeEventListener("click",v.current),_();p.current=!1},"handlePointerDown"),Z=["pointerup","mousedown","mouseup","touchstart","touchend","click"];for(const P of Z)a.addEventListener(P,x,!0),a.addEventListener(P,C);const k=window.setTimeout(()=>{a.addEventListener("pointerdown",A)},0);return()=>{window.clearTimeout(k),a.removeEventListener("pointerdown",A),a.removeEventListener("click",v.current);for(const P of Z)a.removeEventListener(P,x,!0),a.removeEventListener(P,C)}},[a,h,s,l,c,f]),{onPointerDownCapture:Zt(()=>p.current=!0,"onPointerDownCapture")}}Zt(K_,"usePointerDownOutside");function J_(e,r=globalThis?.document){const a=Wi(e),s=z.useRef(!1);return z.useEffect(()=>{const l=Zt(c=>{c.target&&!s.current&&jh(TN,a,{originalEvent:c},{discrete:!1})},"handleFocus");return r.addEventListener("focusin",l),()=>r.removeEventListener("focusin",l)},[r,a]),{onFocusCapture:Zt(()=>s.current=!0,"onFocusCapture"),onBlurCapture:Zt(()=>s.current=!1,"onBlurCapture")}}Zt(J_,"useFocusOutside");function Bd(){const e=new CustomEvent(Hd);document.dispatchEvent(e)}Zt(Bd,"dispatchUpdate");function jh(e,r,a,{discrete:s}){const l=a.originalEvent.target,c=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:a});r&&l.addEventListener(e,r,{once:!0}),s?Q_(l,c):l.dispatchEvent(c)}Zt(jh,"handleAndDispatchCustomEvent");var MN=Object.defineProperty,ln=(e,r)=>MN(e,"name",{value:r,configurable:!0}),cd="focusScope.autoFocusOnMount",fd="focusScope.autoFocusOnUnmount",hb={bubbles:!1,cancelable:!0},NN=z.forwardRef(ln(function(r,a){const{loop:s=!1,trapped:l=!1,onMountAutoFocus:c,onUnmountAutoFocus:f,...h}=r,[p,m]=z.useState(null),y=Wi(c),v=Wi(f),_=z.useRef(null),E=Ja(a,m),x=z.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;z.useEffect(()=>{if(l){let A=function(H){if(x.paused||!p)return;const G=H.target;p.contains(G)?_.current=G:Nr(_.current,{select:!0})},Z=function(H){if(x.paused||!p)return;const G=H.relatedTarget;G!==null&&(p.contains(G)||Nr(_.current,{select:!0}))},k=function(H){if(document.activeElement===document.body)for(const te of H)te.removedNodes.length>0&&Nr(p)};ln(A,"handleFocusIn"),ln(Z,"handleFocusOut"),ln(k,"handleMutations"),document.addEventListener("focusin",A),document.addEventListener("focusout",Z);const P=new MutationObserver(k);return p&&P.observe(p,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",A),document.removeEventListener("focusout",Z),P.disconnect()}}},[l,p,x.paused]),z.useEffect(()=>{if(p){mb.add(x);const A=document.activeElement;if(!p.contains(A)){const k=new CustomEvent(cd,hb);p.addEventListener(cd,y),p.dispatchEvent(k),k.defaultPrevented||(W_(a1(kh(p)),{select:!0}),document.activeElement===A&&Nr(p))}return()=>{p.removeEventListener(cd,y),setTimeout(()=>{const k=new CustomEvent(fd,hb);p.addEventListener(fd,v),p.dispatchEvent(k),k.defaultPrevented||Nr(A??document.body,{select:!0}),p.removeEventListener(fd,v),mb.remove(x)},0)}}},[p,y,v,x]);const C=z.useCallback(A=>{if(!s&&!l||x.paused)return;const Z=A.key==="Tab"&&!A.altKey&&!A.ctrlKey&&!A.metaKey,k=document.activeElement;if(Z&&k){const P=A.currentTarget,[H,G]=e1(P);H&&G?!A.shiftKey&&k===G?(A.preventDefault(),s&&Nr(H,{select:!0})):A.shiftKey&&k===H&&(A.preventDefault(),s&&Nr(G,{select:!0})):k===P&&A.preventDefault()}},[s,l,x.paused]);return S.jsx(Lr.div,{tabIndex:-1,...h,ref:E,onKeyDown:C})},"FocusScope"));function W_(e,{select:r=!1}={}){const a=document.activeElement;for(const s of e)if(Nr(s,{select:r}),document.activeElement!==a)return}ln(W_,"focusFirst");function e1(e){const r=kh(e),a=qd(r,e),s=qd(r.reverse(),e);return[a,s]}ln(e1,"getTabbableEdges");function kh(e){const r=[],a=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:ln(s=>{const l=s.tagName==="INPUT"&&s.type==="hidden";return s.disabled||s.hidden||l?NodeFilter.FILTER_SKIP:s.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP},"acceptNode")});for(;a.nextNode();)r.push(a.currentNode);return r}ln(kh,"getTabbableCandidates");function qd(e,r){const a=typeof r.checkVisibility=="function"&&r.checkVisibility({checkVisibilityCSS:!0});for(const s of e)if(!(a?!s.checkVisibility({checkVisibilityCSS:!0}):t1(s,{upTo:r})))return s}ln(qd,"findVisible");function t1(e,{upTo:r}){if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(r!==void 0&&e===r)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1}ln(t1,"isHidden");function n1(e){return e instanceof HTMLInputElement&&"select"in e}ln(n1,"isSelectableInput");function Nr(e,{select:r=!1}={}){if(e&&e.focus){const a=document.activeElement;e.focus({preventScroll:!0}),e!==a&&n1(e)&&r&&e.select()}}ln(Nr,"focus");var mb=r1();function r1(){let e=[];return{add(r){const a=e[0];r!==a&&a?.pause(),e=$d(e,r),e.unshift(r)},remove(r){e=$d(e,r),e[0]?.resume()}}}ln(r1,"createFocusScopesStack");function $d(e,r){const a=[...e],s=a.indexOf(r);return s!==-1&&a.splice(s,1),a}ln($d,"arrayRemove");function a1(e){return e.filter(r=>r.tagName!=="A")}ln(a1,"removeLinks");var jN=Object.defineProperty,kN=(e,r)=>jN(e,"name",{value:r,configurable:!0}),FN=z.forwardRef(kN(function(r,a){const{container:s,...l}=r,[c,f]=z.useState(!1);va(()=>f(!0),[]);const h=s||c&&globalThis?.document?.body;return h?Nh.createPortal(S.jsx(Lr.div,{...l,ref:a}),h):null},"Portal")),UN=Object.defineProperty,Vr=(e,r)=>UN(e,"name",{value:r,configurable:!0});function i1(e,r){return z.useReducer((a,s)=>r[a][s]??a,e)}Vr(i1,"useStateMachine");var Fh=Vr(e=>{const{present:r,children:a}=e,s=s1(r),l=typeof a=="function"?a({present:s.isPresent}):z.Children.only(a),c=o1(s.ref,l1(l));return typeof a=="function"||s.isPresent?z.cloneElement(l,{ref:c}):null},"Presence");function s1(e){const[r,a]=z.useState(),s=z.useRef(null),l=z.useRef(e),c=z.useRef("none"),f=z.useRef(void 0),h=e?"mounted":"unmounted",[p,m]=i1(h,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return z.useEffect(()=>{p==="mounted"?(c.current=f.current??Ii(s.current),f.current=void 0):c.current="none"},[p]),va(()=>{const y=s.current,v=l.current;if(v!==e){const E=c.current,x=Ii(y);e?(f.current=x,m("MOUNT")):x==="none"||y?.display==="none"?m("UNMOUNT"):m(v&&E!==x?"ANIMATION_OUT":"UNMOUNT"),l.current=e}},[e,m]),va(()=>{if(r){let y;const v=r.ownerDocument.defaultView??window,_=Vr(x=>{const A=Ii(s.current).includes(CSS.escape(x.animationName));if(x.target===r&&A&&(m("ANIMATION_END"),!l.current)){const Z=r.style.animationFillMode;r.style.animationFillMode="forwards",y=v.setTimeout(()=>{r.style.animationFillMode==="forwards"&&(r.style.animationFillMode=Z)})}},"handleAnimationEnd"),E=Vr(x=>{x.target===r&&(c.current=Ii(s.current))},"handleAnimationStart");return r.addEventListener("animationstart",E),r.addEventListener("animationcancel",_),r.addEventListener("animationend",_),()=>{v.clearTimeout(y),r.removeEventListener("animationstart",E),r.removeEventListener("animationcancel",_),r.removeEventListener("animationend",_)}}else m("ANIMATION_END")},[r,m]),{isPresent:["mounted","unmountSuspended"].includes(p),ref:z.useCallback(y=>{if(y){const v=getComputedStyle(y);s.current=v,f.current=Ii(v)}else s.current=null;a(y)},[])}}Vr(s1,"usePresence");function Gd(e,r){if(typeof e=="function")return e(r);e!=null&&(e.current=r)}Vr(Gd,"setRef");function o1(...e){const r=z.useRef(e);return r.current=e,z.useCallback(a=>{const s=r.current;let l=!1;const c=s.map(f=>{const h=Gd(f,a);return!l&&typeof h=="function"&&(l=!0),h});if(l)return()=>{for(let f=0;fVN(e,"name",{value:r,configurable:!0}),Gl=0,qi=null;function LN(e){return Vh(),e.children}Uh(LN,"FocusGuards");function Vh(){z.useEffect(()=>{qi||(qi={start:Yd(),end:Yd()});const{start:e,end:r}=qi;return document.body.firstElementChild!==e&&document.body.insertAdjacentElement("afterbegin",e),document.body.lastElementChild!==r&&document.body.insertAdjacentElement("beforeend",r),Gl++,()=>{Gl===1&&(qi?.start.remove(),qi?.end.remove(),qi=null),Gl=Math.max(0,Gl-1)}},[])}Uh(Vh,"useFocusGuards");function Yd(){const e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}Uh(Yd,"createFocusGuard");var ir=function(){return ir=Object.assign||function(r){for(var a,s=1,l=arguments.length;s"u")return n4;var r=r4(e),a=document.documentElement.clientWidth,s=window.innerWidth;return{left:r[0],top:r[1],right:r[2],gap:Math.max(0,s-a+r[2]-r[0])}},i4=d1(),Xi="data-scroll-locked",s4=function(e,r,a,s){var l=e.left,c=e.top,f=e.right,h=e.gap;return a===void 0&&(a="margin"),` + .`.concat(HN,` { + overflow: hidden `).concat(s,`; + padding-right: `).concat(h,"px ").concat(s,`; + } + body[`).concat(Xi,`] { + overflow: hidden `).concat(s,`; + overscroll-behavior: contain; + `).concat([r&&"position: relative ".concat(s,";"),a==="margin"&&` + padding-left: `.concat(l,`px; + padding-top: `).concat(c,`px; + padding-right: `).concat(f,`px; + margin-left:0; + margin-top:0; + margin-right: `).concat(h,"px ").concat(s,`; + `),a==="padding"&&"padding-right: ".concat(h,"px ").concat(s,";")].filter(Boolean).join(""),` + } + + .`).concat(tu,` { + right: `).concat(h,"px ").concat(s,`; + } + + .`).concat(nu,` { + margin-right: `).concat(h,"px ").concat(s,`; + } + + .`).concat(tu," .").concat(tu,` { + right: 0 `).concat(s,`; + } + + .`).concat(nu," .").concat(nu,` { + margin-right: 0 `).concat(s,`; + } + + body[`).concat(Xi,`] { + `).concat(BN,": ").concat(h,`px; + } +`)},gb=function(){var e=parseInt(document.body.getAttribute(Xi)||"0",10);return isFinite(e)?e:0},o4=function(){z.useEffect(function(){return document.body.setAttribute(Xi,(gb()+1).toString()),function(){var e=gb()-1;e<=0?document.body.removeAttribute(Xi):document.body.setAttribute(Xi,e.toString())}},[])},l4=function(e){var r=e.noRelative,a=e.noImportant,s=e.gapMode,l=s===void 0?"margin":s;o4();var c=z.useMemo(function(){return a4(l)},[l]);return z.createElement(i4,{styles:s4(c,!r,l,a?"":"!important")})},Id=!1;if(typeof window<"u")try{var Yl=Object.defineProperty({},"passive",{get:function(){return Id=!0,!0}});window.addEventListener("test",Yl,Yl),window.removeEventListener("test",Yl,Yl)}catch{Id=!1}var $i=Id?{passive:!1}:!1,u4=function(e){return e.tagName==="TEXTAREA"},h1=function(e,r){if(!(e instanceof Element))return!1;var a=window.getComputedStyle(e);return a[r]!=="hidden"&&!(a.overflowY===a.overflowX&&!u4(e)&&a[r]==="visible")},c4=function(e){return h1(e,"overflowY")},f4=function(e){return h1(e,"overflowX")},vb=function(e,r){var a=r.ownerDocument,s=r;do{typeof ShadowRoot<"u"&&s instanceof ShadowRoot&&(s=s.host);var l=m1(e,s);if(l){var c=p1(e,s),f=c[1],h=c[2];if(f>h)return!0}s=s.parentNode}while(s&&s!==a.body);return!1},d4=function(e){var r=e.scrollTop,a=e.scrollHeight,s=e.clientHeight;return[r,a,s]},h4=function(e){var r=e.scrollLeft,a=e.scrollWidth,s=e.clientWidth;return[r,a,s]},m1=function(e,r){return e==="v"?c4(r):f4(r)},p1=function(e,r){return e==="v"?d4(r):h4(r)},m4=function(e,r){return e==="h"&&r==="rtl"?-1:1},p4=function(e,r,a,s,l){var c=m4(e,window.getComputedStyle(r).direction),f=c*s,h=a.target,p=r.contains(h),m=!1,y=f>0,v=0,_=0;do{if(!h)break;var E=p1(e,h),x=E[0],C=E[1],A=E[2],Z=C-A-c*x;(x||Z)&&m1(e,h)&&(v+=Z,_+=x);var k=h.parentNode;h=k&&k.nodeType===Node.DOCUMENT_FRAGMENT_NODE?k.host:k}while(!p&&h!==document.body||p&&(r.contains(h)||r===h));return(y&&Math.abs(v)<1||!y&&Math.abs(_)<1)&&(m=!0),m},Il=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},yb=function(e){return[e.deltaX,e.deltaY]},bb=function(e){return e&&"current"in e?e.current:e},g4=function(e,r){return e[0]===r[0]&&e[1]===r[1]},v4=function(e){return` + .block-interactivity-`.concat(e,` {pointer-events: none;} + .allow-interactivity-`).concat(e,` {pointer-events: all;} +`)},y4=0,Gi=[];function b4(e){var r=z.useRef([]),a=z.useRef([0,0]),s=z.useRef(),l=z.useState(y4++)[0],c=z.useState(d1)[0],f=z.useRef(e);z.useEffect(function(){f.current=e},[e]),z.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(l));var C=ZN([e.lockRef.current],(e.shards||[]).map(bb),!0).filter(Boolean);return C.forEach(function(A){return A.classList.add("allow-interactivity-".concat(l))}),function(){document.body.classList.remove("block-interactivity-".concat(l)),C.forEach(function(A){return A.classList.remove("allow-interactivity-".concat(l))})}}},[e.inert,e.lockRef.current,e.shards]);var h=z.useCallback(function(C,A){if("touches"in C&&C.touches.length===2||C.type==="wheel"&&C.ctrlKey)return!f.current.allowPinchZoom;var Z=Il(C),k=a.current,P="deltaX"in C?C.deltaX:k[0]-Z[0],H="deltaY"in C?C.deltaY:k[1]-Z[1],G,te=C.target,q=Math.abs(P)>Math.abs(H)?"h":"v";if("touches"in C&&q==="h"&&te.type==="range")return!1;var $=window.getSelection(),de=$&&$.anchorNode,ze=de?de===te||de.contains(te):!1;if(ze)return!1;var Ne=vb(q,te);if(!Ne)return!0;if(Ne?G=q:(G=q==="v"?"h":"v",Ne=vb(q,te)),!Ne)return!1;if(!s.current&&"changedTouches"in C&&(P||H)&&(s.current=G),!G)return!0;var ie=s.current||G;return p4(ie,A,C,ie==="h"?P:H)},[]),p=z.useCallback(function(C){var A=C;if(!(!Gi.length||Gi[Gi.length-1]!==c)){var Z="deltaY"in A?yb(A):Il(A),k=r.current.filter(function(G){return G.name===A.type&&(G.target===A.target||A.target===G.shadowParent)&&g4(G.delta,Z)})[0];if(k&&k.should){A.cancelable&&A.preventDefault();return}if(!k){var P=(f.current.shards||[]).map(bb).filter(Boolean).filter(function(G){return G.contains(A.target)}),H=P.length>0?h(A,P[0]):!f.current.noIsolation;H&&A.cancelable&&A.preventDefault()}}},[]),m=z.useCallback(function(C,A,Z,k){var P={name:C,delta:A,target:Z,should:k,shadowParent:_4(Z)};r.current.push(P),setTimeout(function(){r.current=r.current.filter(function(H){return H!==P})},1)},[]),y=z.useCallback(function(C){a.current=Il(C),s.current=void 0},[]),v=z.useCallback(function(C){m(C.type,yb(C),C.target,h(C,e.lockRef.current))},[]),_=z.useCallback(function(C){m(C.type,Il(C),C.target,h(C,e.lockRef.current))},[]);z.useEffect(function(){return Gi.push(c),e.setCallbacks({onScrollCapture:v,onWheelCapture:v,onTouchMoveCapture:_}),document.addEventListener("wheel",p,$i),document.addEventListener("touchmove",p,$i),document.addEventListener("touchstart",y,$i),function(){Gi=Gi.filter(function(C){return C!==c}),document.removeEventListener("wheel",p,$i),document.removeEventListener("touchmove",p,$i),document.removeEventListener("touchstart",y,$i)}},[]);var E=e.removeScrollBar,x=e.inert;return z.createElement(z.Fragment,null,x?z.createElement(c,{styles:v4(l)}):null,E?z.createElement(l4,{noRelative:e.noRelative,gapMode:e.gapMode}):null)}function _4(e){for(var r=null;e!==null;)e instanceof ShadowRoot&&(r=e.host,e=e.host),e=e.parentNode;return r}const S4=PN(f1,b4);var g1=z.forwardRef(function(e,r){return z.createElement(Nu,ir({},e,{ref:r,sideCar:S4}))});g1.classNames=Nu.classNames;var x4=function(e){if(typeof document>"u")return null;var r=Array.isArray(e)?e[0]:e;return r.ownerDocument.body},Yi=new WeakMap,Ql=new WeakMap,Pl={},pd=0,v1=function(e){return e&&(e.host||v1(e.parentNode))},w4=function(e,r){return r.map(function(a){if(e.contains(a))return a;var s=v1(a);return s&&e.contains(s)?s:(console.error("aria-hidden",a,"in not contained inside",e,". Doing nothing"),null)}).filter(function(a){return!!a})},E4=function(e,r,a,s){var l=w4(r,Array.isArray(e)?e:[e]);Pl[a]||(Pl[a]=new WeakMap);var c=Pl[a],f=[],h=new Set,p=new Set(l),m=function(v){!v||h.has(v)||(h.add(v),m(v.parentNode))};l.forEach(m);var y=function(v){!v||p.has(v)||Array.prototype.forEach.call(v.children,function(_){if(h.has(_))y(_);else try{var E=_.getAttribute(s),x=E!==null&&E!=="false",C=(Yi.get(_)||0)+1,A=(c.get(_)||0)+1;Yi.set(_,C),c.set(_,A),f.push(_),C===1&&x&&Ql.set(_,!0),A===1&&_.setAttribute(a,"true"),x||_.setAttribute(s,"true")}catch(Z){console.error("aria-hidden: cannot operate on ",_,Z)}})};return y(r),h.clear(),pd++,function(){f.forEach(function(v){var _=Yi.get(v)-1,E=c.get(v)-1;Yi.set(v,_),c.set(v,E),_||(Ql.has(v)||v.removeAttribute(s),Ql.delete(v)),E||v.removeAttribute(a)}),pd--,pd||(Yi=new WeakMap,Yi=new WeakMap,Ql=new WeakMap,Pl={})}},C4=function(e,r,a){a===void 0&&(a="data-aria-hidden");var s=Array.from(Array.isArray(e)?e:[e]),l=x4(e);return l?(s.push.apply(s,Array.from(l.querySelectorAll("[aria-live], script"))),E4(s,l,a,"aria-hidden")):function(){return null}},O4=Object.defineProperty,zn=(e,r)=>O4(e,"name",{value:r,configurable:!0}),Lh="Dialog",[y1,b3]=B_(Lh),[A4,Kn]=y1(Lh),R4=zn(e=>{const{__scopeDialog:r,children:a,open:s,defaultOpen:l,onOpenChange:c,modal:f=!0}=e,h=z.useRef(null),p=z.useRef(null),[m,y]=G_({prop:s,defaultProp:l??!1,onChange:c,caller:Lh}),[v,_]=z.useState(0),[E,x]=z.useState(0);return S.jsx(A4,{scope:r,triggerRef:h,contentRef:p,contentId:eu(),titleId:eu(),descriptionId:eu(),titlePresent:v>0,descriptionPresent:E>0,setTitleCount:_,setDescriptionCount:x,open:m,onOpenChange:y,onOpenToggle:z.useCallback(()=>y(C=>!C),[y]),modal:f,children:a})},"Dialog"),T4="DialogTrigger",D4=z.forwardRef(zn(function(r,a){const{__scopeDialog:s,...l}=r,c=Kn(T4,s),f=Ja(a,c.triggerRef);return S.jsx(Lr.button,{type:"button","aria-haspopup":"dialog","aria-expanded":c.open,"aria-controls":c.open?c.contentId:void 0,"data-state":ju(c.open),...l,ref:f,onClick:Fr(r.onClick,c.onOpenToggle)})},"DialogTrigger")),b1="DialogPortal",[z4,_1]=y1(b1,{forceMount:void 0}),M4=zn(e=>{const{__scopeDialog:r,forceMount:a,children:s,container:l}=e,c=Kn(b1,r);return S.jsx(z4,{scope:r,forceMount:a,children:z.Children.map(s,f=>S.jsx(Fh,{present:a||c.open,children:S.jsx(FN,{asChild:!0,container:l,children:f})}))})},"DialogPortal"),Qd="DialogOverlay",N4=z.forwardRef(zn(function(r,a){const s=_1(Qd,r.__scopeDialog),{forceMount:l=s.forceMount,...c}=r,f=Kn(Qd,r.__scopeDialog);return f.modal?S.jsx(Fh,{present:l||f.open,children:S.jsx(k4,{...c,ref:a})}):null},"DialogOverlay")),j4=yu("DialogOverlay.RemoveScroll"),k4=z.forwardRef(zn(function(r,a){const{__scopeDialog:s,...l}=r,c=Kn(Qd,s),f=X_(),h=Ja(a,f);return S.jsx(g1,{as:j4,allowPinchZoom:!0,shards:[c.contentRef],children:S.jsx(Lr.div,{"data-state":ju(c.open),...l,ref:h,style:{pointerEvents:"auto",...l.style}})})},"DialogOverlayImpl")),uo="DialogContent",F4=z.forwardRef(zn(function(r,a){const s=_1(uo,r.__scopeDialog),{forceMount:l=s.forceMount,...c}=r,f=Kn(uo,r.__scopeDialog);return S.jsx(Fh,{present:l||f.open,children:f.modal?S.jsx(U4,{...c,ref:a}):S.jsx(V4,{...c,ref:a})})},"DialogContent")),U4=z.forwardRef(zn(function(r,a){const s=Kn(uo,r.__scopeDialog),l=z.useRef(null),c=Ja(a,s.contentRef,l);return z.useEffect(()=>{const f=l.current;if(f)return C4(f)},[]),S.jsx(S1,{...r,ref:c,trapFocus:s.open,disableOutsidePointerEvents:s.open,onCloseAutoFocus:Fr(r.onCloseAutoFocus,f=>{f.preventDefault(),s.triggerRef.current?.focus()}),onPointerDownOutside:Fr(r.onPointerDownOutside,f=>{const h=f.detail.originalEvent,p=h.button===0&&h.ctrlKey===!0;(h.button===2||p)&&f.preventDefault()}),onFocusOutside:Fr(r.onFocusOutside,f=>f.preventDefault())})},"DialogContentModal")),V4=z.forwardRef(zn(function(r,a){const s=Kn(uo,r.__scopeDialog),l=z.useRef(!1),c=z.useRef(!1);return S.jsx(S1,{...r,ref:a,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:f=>{r.onCloseAutoFocus?.(f),f.defaultPrevented||(l.current||s.triggerRef.current?.focus(),f.preventDefault()),l.current=!1,c.current=!1},onInteractOutside:f=>{r.onInteractOutside?.(f),f.defaultPrevented||(l.current=!0,f.detail.originalEvent.type==="pointerdown"&&(c.current=!0));const h=f.target;s.triggerRef.current?.contains(h)&&f.preventDefault(),f.detail.originalEvent.type==="focusin"&&c.current&&f.preventDefault()}})},"DialogContentNonModal")),S1=z.forwardRef(zn(function(r,a){const{__scopeDialog:s,trapFocus:l,onOpenAutoFocus:c,onCloseAutoFocus:f,...h}=r,p=Kn(uo,s);return Vh(),S.jsx(S.Fragment,{children:S.jsx(NN,{asChild:!0,loop:!0,trapped:l,onMountAutoFocus:c,onUnmountAutoFocus:f,children:S.jsx(DN,{role:"dialog",id:p.contentId,"aria-describedby":p.descriptionPresent?p.descriptionId:void 0,"aria-labelledby":p.titlePresent?p.titleId:void 0,"data-state":ju(p.open),...h,ref:a,deferPointerDownOutside:!0,onDismiss:()=>p.onOpenChange(!1)})})})},"DialogContentImpl")),L4="DialogTitle",Z4=z.forwardRef(zn(function(r,a){const{__scopeDialog:s,...l}=r,c=Kn(L4,s),{setTitleCount:f}=c;return va(()=>(f(h=>h+1),()=>f(h=>h-1)),[f]),S.jsx(Lr.h2,{id:c.titleId,...l,ref:a})},"DialogTitle")),H4="DialogDescription",B4=z.forwardRef(zn(function(r,a){const{__scopeDialog:s,...l}=r,c=Kn(H4,s),{setDescriptionCount:f}=c;return va(()=>(f(h=>h+1),()=>f(h=>h-1)),[f]),S.jsx(Lr.p,{id:c.descriptionId,...l,ref:a})},"DialogDescription")),q4="DialogClose",$4=z.forwardRef(zn(function(r,a){const{__scopeDialog:s,...l}=r,c=Kn(q4,s);return S.jsx(Lr.button,{type:"button",...l,ref:a,onClick:Fr(r.onClick,()=>c.onOpenChange(!1))})},"DialogClose"));function ju(e){return e?"open":"closed"}zn(ju,"getState");const x1=R4,w1=D4;function G4({className:e,...r}){return S.jsx(N4,{"data-slot":"dialog-overlay",className:Pe("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",e),...r})}function E1({className:e,children:r,...a}){return S.jsxs(M4,{children:[S.jsx(G4,{}),S.jsxs(F4,{"data-slot":"dialog-content",className:Pe("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-1/2 left-1/2 z-50 grid w-full max-w-[calc(100%-2rem)] -translate-x-1/2 -translate-y-1/2 gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-md",e),...a,children:[r,S.jsxs($4,{className:"ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none cursor-pointer",children:[S.jsx(wE,{className:"size-4"}),S.jsx("span",{className:"sr-only",children:"Close"})]})]})]})}function C1({className:e,...r}){return S.jsx("div",{"data-slot":"dialog-header",className:Pe("flex flex-col gap-1.5 text-left",e),...r})}function O1({className:e,...r}){return S.jsx("div",{"data-slot":"dialog-footer",className:Pe("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",e),...r})}function A1({className:e,...r}){return S.jsx(Z4,{"data-slot":"dialog-title",className:Pe("text-lg leading-none font-semibold",e),...r})}function R1({className:e,...r}){return S.jsx(B4,{"data-slot":"dialog-description",className:Pe("text-muted-foreground text-sm",e),...r})}var Y4=Object.defineProperty,I4=(e,r)=>Y4(e,"name",{value:r,configurable:!0}),Q4=z.forwardRef(I4(function(r,a){return S.jsx(Lr.label,{...r,ref:a,onMouseDown:s=>{s.target.closest("button, input, select, textarea")||(r.onMouseDown?.(s),!s.defaultPrevented&&s.detail>1&&s.preventDefault())}})},"Label")),P4=Q4;function X4({className:e,...r}){return S.jsx(P4,{"data-slot":"label",className:Pe("flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",e),...r})}const K4=mM,T1=z.createContext({});function J4({...e}){return S.jsx(T1.Provider,{value:{name:e.name},children:S.jsx(cM,{...e})})}function ku(){const e=z.useContext(T1),r=z.useContext(D1),{getFieldState:a}=hM(),s=O_({name:e.name}),l=a(e.name,s);if(!e)throw new Error("useFormField should be used within ");const{id:c}=r;return{id:c,name:e.name,formItemId:`${c}-form-item`,formDescriptionId:`${c}-form-item-description`,formMessageId:`${c}-form-item-message`,...l}}const D1=z.createContext({});function W4({className:e,...r}){const a=z.useId();return S.jsx(D1.Provider,{value:{id:a},children:S.jsx("div",{"data-slot":"form-item",className:Pe("grid gap-2",e),...r})})}function e3({className:e,...r}){const{error:a,formItemId:s}=ku();return S.jsx(X4,{"data-slot":"form-label","data-error":!!a,className:Pe("data-[error=true]:text-destructive",e),htmlFor:s,...r})}function t3({...e}){const{error:r,formItemId:a,formDescriptionId:s,formMessageId:l}=ku();return S.jsx(rh,{"data-slot":"form-control",id:a,"aria-describedby":r?`${s} ${l}`:s,"aria-invalid":!!r,...e})}function n3({className:e,...r}){const{formDescriptionId:a}=ku();return S.jsx("p",{"data-slot":"form-description",id:a,className:Pe("text-muted-foreground text-xs",e),...r})}function r3({className:e,...r}){const{error:a,formMessageId:s}=ku(),l=a?String(a?.message??""):r.children;return l?S.jsx("p",{"data-slot":"form-message",id:s,className:Pe("text-destructive text-xs font-medium",e),...r,children:l}):null}const a3={done:{label:"done",variant:"success"},running:{label:"running",variant:"default"},pending:{label:"pending",variant:"secondary"},skipped:{label:"skipped",variant:"warning"},failed:{label:"failed",variant:"destructive"}},i3=[{id:"table",accessorFn:e=>`${e.schema}.${e.table}`,header:"Table",sortFn:"text",cell:({getValue:e})=>S.jsx("span",{className:"font-medium",children:e()})},{accessorKey:"state",header:"State",sortFn:"text",cell:({getValue:e})=>{const r=a3[e()];return S.jsxs(ma,{variant:r.variant,children:[r.label==="running"&&S.jsx(vu,{className:"size-3 animate-spin"}),r.label]})}},{accessorKey:"rows_copied",header:()=>S.jsx("span",{className:"block text-right",children:"Rows copied"}),sortFn:"basic",cell:({getValue:e})=>S.jsx("span",{className:"block text-right tabular-nums",children:jr(e())})},{accessorKey:"completed_at",header:"Completed",enableSorting:!1,cell:({row:e})=>S.jsx("span",{className:"text-muted-foreground",children:e.original.state==="done"?o0(e.original.completed_at):"–"})},{accessorKey:"error",header:"Note",enableSorting:!1,cell:({getValue:e})=>{const r=e();return r?S.jsx("span",{className:"text-destructive text-xs",children:r}):null}}],s3=ga({table:Vt().trim().refine(e=>e===""||/^([A-Za-z_][A-Za-z0-9_$]*\.)?[A-Za-z_][A-Za-z0-9_$]*$/.test(e),{message:"Use schema.table (e.g. public.orders) or leave empty for all tables"})});function o3(){const[e,r]=z.useState(!1),a=ho(),s=AM({resolver:zM(s3),defaultValues:{table:""}}),l=iu({mutationFn:c=>Jz(c.table||void 0),onSuccess:(c,f)=>{da.success(f.table?`Backfill enqueued for ${f.table}`:"Backfill enqueued for all tables"),a.invalidateQueries({queryKey:["stats"]}),r(!1),s.reset()},onError:c=>da.error(c.message)});return S.jsxs(x1,{open:e,onOpenChange:r,children:[S.jsx(w1,{asChild:!0,children:S.jsxs(pa,{size:"sm",children:[S.jsx(eh,{className:"size-4"}),"Sync tables"]})}),S.jsxs(E1,{children:[S.jsxs(C1,{children:[S.jsx(A1,{children:"Trigger a backfill"}),S.jsx(R1,{children:"Re-sync existing rows into the sinks. Runs concurrently with live streaming — no locks, no downtime."})]}),S.jsx(K4,{...s,children:S.jsxs("form",{onSubmit:s.handleSubmit(c=>l.mutate(c)),className:"space-y-4",children:[S.jsx(J4,{control:s.control,name:"table",render:({field:c})=>S.jsxs(W4,{children:[S.jsx(e3,{children:"Table"}),S.jsx(t3,{children:S.jsx(wh,{placeholder:"public.orders",autoComplete:"off",...c})}),S.jsx(n3,{children:"Leave empty to backfill every published table."}),S.jsx(r3,{})]})}),S.jsxs(O1,{children:[S.jsx(pa,{type:"button",variant:"outline",onClick:()=>r(!1),children:"Cancel"}),S.jsxs(pa,{type:"submit",disabled:l.isPending,children:[l.isPending&&S.jsx(vu,{className:"size-4 animate-spin"}),"Start backfill"]})]})]})})]})]})}function l3({stats:e}){const r=z.useMemo(()=>e?.backfill??[],[e]),a=wu({features:Ou,columns:i3,data:r,initialState:{sorting:[{id:"table",desc:!1}]}});return S.jsxs("div",{className:"space-y-4",children:[S.jsxs("div",{className:"flex items-center justify-between",children:[S.jsx("p",{className:"text-muted-foreground max-w-xl text-sm",children:"Watermark-based chunked sync of existing data, interleaved with the live stream. Progress survives restarts."}),S.jsx(o3,{})]}),S.jsx(go,{className:"py-0",children:S.jsx(Eu,{className:"px-0",children:S.jsx(Cu,{table:a,empty:S.jsxs("div",{className:"text-muted-foreground flex flex-col items-center gap-1 text-sm",children:[S.jsx(eh,{className:"size-5"}),"No backfills have run. New deployments backfill automatically when the replication slot is first created."]})})})})]})}const u3={INSERT:"success",UPDATE:"secondary",DELETE:"destructive",READ:"outline"};function c3({entry:e}){const r=ho(),a=()=>{r.invalidateQueries({queryKey:["dlq"]}),r.invalidateQueries({queryKey:["stats"]})},s=iu({mutationFn:()=>Pz(e.id),onSuccess:()=>{da.success(`Retried ${e.id} successfully`),a()},onError:c=>{da.error(c.message),a()}}),l=iu({mutationFn:()=>Kz(e.id),onSuccess:()=>{da.success(`Discarded ${e.id}`),a()},onError:c=>da.error(c.message)});return S.jsxs("div",{className:"flex justify-end gap-1.5",children:[S.jsxs(pa,{size:"xs",variant:"outline",disabled:s.isPending,onClick:()=>s.mutate(),title:"Re-deliver this event to its sink",children:[s.isPending?S.jsx(vu,{className:"size-3 animate-spin"}):S.jsx(kb,{className:"size-3"}),"Retry"]}),S.jsx(pa,{size:"xs",variant:"ghost",className:"text-destructive hover:text-destructive",disabled:l.isPending,onClick:()=>l.mutate(),title:"Drop this event permanently",children:S.jsx(SE,{className:"size-3"})})]})}const f3=[{accessorKey:"sink",header:"Sink",sortFn:"text",cell:({getValue:e})=>S.jsx(ma,{variant:"outline",children:e()})},{id:"target",accessorFn:e=>`${e.schema}.${e.table}`,header:"Table",sortFn:"text",cell:({row:e,getValue:r})=>S.jsxs("span",{className:"flex items-center gap-2",children:[S.jsx("span",{className:"font-medium",children:r()}),S.jsx(ma,{variant:u3[e.original.operation]??"secondary",className:"text-[10px]",children:e.original.operation})]})},{accessorKey:"error",header:"Error",enableSorting:!1,cell:({getValue:e})=>S.jsx("span",{className:"text-destructive block max-w-md truncate text-xs whitespace-normal sm:whitespace-nowrap",title:e(),children:e()})},{accessorKey:"attempts",header:()=>S.jsx("span",{className:"block text-right",children:"Attempts"}),sortFn:"basic",cell:({getValue:e})=>S.jsx("span",{className:"block text-right tabular-nums",children:e()})},{accessorKey:"last_failed_at",header:"Last failed",sortFn:"datetime",cell:({getValue:e})=>S.jsx("span",{className:"text-muted-foreground",children:o0(e())})},{id:"actions",header:()=>S.jsx("span",{className:"block text-right",children:"Actions"}),enableSorting:!1,cell:({row:e})=>S.jsx(c3,{entry:e.original})}];function d3({count:e}){const[r,a]=z.useState(!1),s=ho(),l=iu({mutationFn:Xz,onSuccess:c=>{da.success(`Retried ${c.retried??0}: ${c.succeeded??0} succeeded, ${c.failed??0} failed`),s.invalidateQueries({queryKey:["dlq"]}),s.invalidateQueries({queryKey:["stats"]}),a(!1)},onError:c=>da.error(c.message)});return S.jsxs(x1,{open:r,onOpenChange:a,children:[S.jsx(w1,{asChild:!0,children:S.jsxs(pa,{size:"sm",disabled:e===0,children:[S.jsx(kb,{className:"size-4"}),"Retry all"]})}),S.jsxs(E1,{children:[S.jsxs(C1,{children:[S.jsx(A1,{children:"Retry all parked events?"}),S.jsxs(R1,{children:["Re-delivers all ",e," parked events to their sinks. Events that still fail stay in the queue with an updated error. If newer changes for the same rows have already flowed, retrying re-applies the older state — consider discarding stale entries and re-running a backfill instead."]})]}),S.jsxs(O1,{children:[S.jsx(pa,{variant:"outline",onClick:()=>a(!1),children:"Cancel"}),S.jsxs(pa,{onClick:()=>l.mutate(),disabled:l.isPending,children:[l.isPending&&S.jsx(vu,{className:"size-4 animate-spin"}),"Retry ",e," events"]})]})]})]})}function h3({dlqEnabled:e}){const[r,a]=z.useState(""),{data:s}=eM(e),l=z.useMemo(()=>s?.entries??[],[s]),c=wu({features:Ou,columns:f3,data:l,globalFilterFn:"includesString",initialState:{sorting:[{id:"last_failed_at",desc:!0}]},state:{globalFilter:r}});return S.jsxs("div",{className:"space-y-4",children:[S.jsxs("div",{className:"flex items-center justify-between gap-3",children:[S.jsxs("div",{className:"relative max-w-xs flex-1",children:[S.jsx(Fb,{className:"text-muted-foreground absolute top-1/2 left-2.5 size-4 -translate-y-1/2"}),S.jsx(wh,{placeholder:"Filter by sink, table, error…",value:r,onChange:f=>a(f.target.value),className:"h-8 pl-8 text-sm"})]}),S.jsx(d3,{count:l.length})]}),S.jsx(go,{className:"py-0",children:S.jsx(Eu,{className:"px-0",children:S.jsx(Cu,{table:c,empty:S.jsxs("div",{className:"text-muted-foreground flex flex-col items-center gap-1 text-sm",children:[S.jsx(th,{className:"size-5"}),e?"No parked events — the pipeline is healthy.":"Dead-letter queue is disabled (set REDIS_URL and CDC_DLQ_ENABLED=true)."]})})})})]})}const m3={overview:{title:"Overview",description:"Pipeline health at a glance"},tables:{title:"Table activity",description:"Change events by source table"},backfill:{title:"Backfill",description:"Sync existing data into the sinks"},dlq:{title:"Dead letters",description:"Poison events parked for triage"}};function p3(){const[e,r]=z.useState("overview"),{data:a}=Wz(),s=m3[e];return S.jsxs(D2,{page:e,onNavigate:r,stats:a,dlqCount:a?.dlq.entries??0,title:s.title,description:s.description,children:[e==="overview"&&S.jsx(rM,{stats:a}),e==="tables"&&S.jsx(iM,{stats:a}),e==="backfill"&&S.jsx(l3,{stats:a}),e==="dlq"&&S.jsx(h3,{dlqEnabled:a?.dlq.enabled??!1})]})}function g3(e){const r=document.documentElement.classList.contains("dark");return S.jsx(oN,{theme:r?"dark":"light",className:"toaster group",style:{"--normal-bg":"var(--popover)","--normal-text":"var(--popover-foreground)","--normal-border":"var(--border)"},...e})}const v3=new ww({defaultOptions:{queries:{retry:1,refetchOnWindowFocus:!1}}});Kx.createRoot(document.getElementById("root")).render(S.jsx(z.StrictMode,{children:S.jsxs(Ew,{client:v3,children:[S.jsx(p3,{}),S.jsx(g3,{position:"bottom-right"})]})})); diff --git a/ui/dist/index.html b/ui/dist/index.html index ed6ee78..2f21697 100644 --- a/ui/dist/index.html +++ b/ui/dist/index.html @@ -15,10 +15,10 @@ document.documentElement.classList.add('dark'); } - - + + -
+
diff --git a/ui/embed.go b/ui/embed.go index 87c8f69..a71dcd5 100644 --- a/ui/embed.go +++ b/ui/embed.go @@ -1,4 +1,4 @@ -// Package ui embeds the built dashboard (a Svelte SPA in ui/dist) into the +// Package ui embeds the built dashboard (a React SPA in ui/dist) into the // gateway binary, PocketBase-style: the dist directory is committed so plain // `go build` works without a Node toolchain. Rebuild it with `npm run build` // in this directory. diff --git a/ui/index.html b/ui/index.html index 4ae56a2..ab729d3 100644 --- a/ui/index.html +++ b/ui/index.html @@ -17,7 +17,7 @@ -
- +
+ diff --git a/ui/package-lock.json b/ui/package-lock.json index 2bcfc3f..9a71b99 100644 --- a/ui/package-lock.json +++ b/ui/package-lock.json @@ -7,18 +7,320 @@ "": { "name": "gtc-dashboard", "version": "0.0.0", + "dependencies": { + "@hookform/resolvers": "^5.1.1", + "@radix-ui/react-dialog": "^1.1.14", + "@radix-ui/react-label": "^2.1.7", + "@radix-ui/react-slot": "^1.2.3", + "@tanstack/react-query": "^5.83.0", + "@tanstack/react-table": "^9.1.2", + "class-variance-authority": "^0.7.1", + "clsx": "^2.1.1", + "lucide-react": "^0.525.0", + "react": "^19.1.0", + "react-dom": "^19.1.0", + "react-hook-form": "^7.60.0", + "sonner": "^2.0.6", + "tailwind-merge": "^3.3.1", + "zod": "^4.0.5" + }, "devDependencies": { - "@sveltejs/vite-plugin-svelte": "^5.0.3", - "@tailwindcss/vite": "^4.1.4", - "svelte": "^5.28.1", - "tailwindcss": "^4.1.4", - "vite": "^6.3.2" + "@tailwindcss/vite": "^4.1.11", + "@types/react": "^19.1.8", + "@types/react-dom": "^19.1.6", + "@vitejs/plugin-react": "^4.6.0", + "tailwindcss": "^4.1.11", + "tw-animate-css": "^1.3.5", + "typescript": "^5.8.3", + "vite": "^7.0.4" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.7.tgz", + "integrity": "sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.29.7", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.7.tgz", + "integrity": "sha512-locTkQyKvwIEgBzVrn8693ebc97F2U8ZHjbXwDXJ5Fn2TCpNwTlKcaKLkdHop5c/icOFE7qt7Q9JC5hnKNa6Gg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.7.tgz", + "integrity": "sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.29.7", + "@babel/generator": "^7.29.7", + "@babel/helper-compilation-targets": "^7.29.7", + "@babel/helper-module-transforms": "^7.29.7", + "@babel/helpers": "^7.29.7", + "@babel/parser": "^7.29.7", + "@babel/template": "^7.29.7", + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7", + "@jridgewell/remapping": "^2.3.5", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.29.8", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.8.tgz", + "integrity": "sha512-gZbepsdh3WDtgZKWL+vTPh71LSBrm/Y4/QDZBVCcYfmeTEEuoOYwlSy+G1StfJg+/Zy550u/3TATbm7qDbbMtg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.29.8", + "@babel/types": "^7.29.8", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.29.7.tgz", + "integrity": "sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.29.7", + "@babel/helper-validator-option": "^7.29.7", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-globals": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.29.7.tgz", + "integrity": "sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.29.7.tgz", + "integrity": "sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.29.7.tgz", + "integrity": "sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7", + "@babel/traverse": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.29.7.tgz", + "integrity": "sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz", + "integrity": "sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz", + "integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.29.7.tgz", + "integrity": "sha512-N9ZErrD+yW5geCDtBqnOoxmR8+tNKiGuxKlDpuJxfsqpa2dFcexaziGAE/qoHLiDDreVNMupxGmSoNlyvsA3gw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.29.7.tgz", + "integrity": "sha512-1k2lAGRMfHTcwuNYcCNUmaUffmQv8KWMfh2iJUUeRlwlwH4FdNG7mfPI10NPfLHJFThE4Tyr4mv7kTNZOiPuBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.29.7", + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.29.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.8.tgz", + "integrity": "sha512-E8lTAYNB1KW+FH+VGJuZM1ioAx2E6oVlvQFRrf5P8ZZmsiJXYAD9vTFV7yyEURNzgh1dFqMZuO6tUwcARbqFCA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.29.8" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-self": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.29.7.tgz", + "integrity": "sha512-TL0hMc9xzy86VD31nUiwzd5otRAcyEPcsegCxolO0PvcXuH1v0kECe/UIznYFihpkvU5wg/jk4v0TTEFfm53fw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-source": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.29.7.tgz", + "integrity": "sha512-06IyK09H3wi4cGbhDBwp5gUGo0IKtnYa8tyTiephirPCK6fbobVGiXMMI5zLQ4aKEYP3wZ3ArU44o+8KMrSG/Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/template": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.29.7.tgz", + "integrity": "sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.29.7", + "@babel/parser": "^7.29.7", + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.29.8", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.8.tgz", + "integrity": "sha512-I5z7H3bf/41ktsNVLtpN0wAa336HkqIHQ5BuPLEhTkt1jVSyZpeNKIzTgEWmlxjdg81R0IgUCcaE+Ok3NvrfZg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.29.7", + "@babel/generator": "^7.29.8", + "@babel/helper-globals": "^7.29.7", + "@babel/parser": "^7.29.8", + "@babel/template": "^7.29.7", + "@babel/types": "^7.29.8", + "debug": "^4.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.29.8", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.8.tgz", + "integrity": "sha512-Vj1jF3cPfxg7OAfoI7QnVKLoILlm2JF9pnVHrX8qx7AHMiYWT+NDAA7jChlNgRS4WTLc/fD1lXLmPixluj+3Gg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" } }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz", - "integrity": "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==", + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.28.2.tgz", + "integrity": "sha512-XExcO+dvLKvVtNTibSTBej1NCAbaGhWn9Ww1ZPx80qsahhPFe/8jgWP0IchNe0F3HwkU7n8ejhH8bjonqht8mQ==", "cpu": [ "ppc64" ], @@ -33,9 +335,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.12.tgz", - "integrity": "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==", + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.28.2.tgz", + "integrity": "sha512-kXXoiPVVGQcnIYGOeaovwOURpniDBpSq4A03qkQ+BMQqtGG6HYap3xne9C1O1yo4TR3qxlCX5IqqmX6fFo2Lqg==", "cpu": [ "arm" ], @@ -50,9 +352,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.12.tgz", - "integrity": "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==", + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.28.2.tgz", + "integrity": "sha512-5YfKeeI8qWfBZIX+u2xZC3Zlb3Os/gLS2sbEKM+I4ZOcsWmHS2WLysCcQZDAFRslDUU5Oiq44gf6PYN1vGwG5A==", "cpu": [ "arm64" ], @@ -67,9 +369,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.12.tgz", - "integrity": "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==", + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.28.2.tgz", + "integrity": "sha512-O387ite7SzUyCcy3JQX4P4bLtEA7bLLkx+esve5JHnyYfNTxcVpXZo9jhdB0lTKN44gztELTdU7nS8Nr16Fs1Q==", "cpu": [ "x64" ], @@ -84,9 +386,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.12.tgz", - "integrity": "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==", + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.28.2.tgz", + "integrity": "sha512-n4KqkOQrraxHJcgjM1RvwbigfQKIKJVpM7xp+KsxiyUSrRdIXnt73VhrPAx0fV44hgfmIVKjxMN9J1t5jySVkw==", "cpu": [ "arm64" ], @@ -101,9 +403,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.12.tgz", - "integrity": "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==", + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.28.2.tgz", + "integrity": "sha512-uq6suIWYP37qzGddBKPw5QEQPi6HiLGsO7UmkpfyaYNQ3D+rN6w6WfwH+nuqcGXWvawGwxOEroO4YGnFh95azw==", "cpu": [ "x64" ], @@ -118,9 +420,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.12.tgz", - "integrity": "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==", + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.2.tgz", + "integrity": "sha512-n+I0BTSRIoy+d6RPKnEVwql5UwBJolytvY4mAOIEJorKlqgPII8ix6slVVrfZ5Tnj7glIZvloylbB/EJPMWEXw==", "cpu": [ "arm64" ], @@ -135,9 +437,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.12.tgz", - "integrity": "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==", + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.28.2.tgz", + "integrity": "sha512-78XJTJkvPs0kz2w61301PJjXl4g7q3JqiYMZ/M/yVI73EHBrCRTgkhu9oqG7vPqq+a/yadEW8aD+agKlk5xrmg==", "cpu": [ "x64" ], @@ -152,9 +454,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.12.tgz", - "integrity": "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==", + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.28.2.tgz", + "integrity": "sha512-XlDnu2q5yoqems+xay6wSAcg9DDD7K9RLKZEBOMZm3ckNpJBvOX20tSfby8KfrrhINDyv9V2YVZKY/SpoGJI8w==", "cpu": [ "arm" ], @@ -169,9 +471,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.12.tgz", - "integrity": "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==", + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.28.2.tgz", + "integrity": "sha512-pW4AC0P3it8c7do9MVM4p51FzHzdM/TZrerurgRcHJ2WTa1VQ1CIq18xncfpBJw4ojkiZZrKW2yIBWBP92j6Ug==", "cpu": [ "arm64" ], @@ -186,9 +488,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.12.tgz", - "integrity": "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==", + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.28.2.tgz", + "integrity": "sha512-CYbnj78HsIeA+DhgUKgFCfvNsTHFhMMrinUrMZpDXJXKN8T3XViTZ/+wtHeVxEWY8ewSzTFN+nRmSwO2tZaLUQ==", "cpu": [ "ia32" ], @@ -203,9 +505,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.12.tgz", - "integrity": "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==", + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.28.2.tgz", + "integrity": "sha512-buwkd8nsph4R+ajRvw0qM5Hja/TXQow3ptzWO2EbG/cqcIkHloRrdlBtQlshyYGTNFvfkfJ5tpPLVkY4DtsPfQ==", "cpu": [ "loong64" ], @@ -220,9 +522,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.12.tgz", - "integrity": "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==", + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.28.2.tgz", + "integrity": "sha512-ZVykbDyk7519VwiNb9Lcj9m8XM6v5V9uKPvrEMkkEedVewf+0itkhahp4HDpgERXhwLRpWFypsGbG/J8s0QjJA==", "cpu": [ "mips64el" ], @@ -237,9 +539,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.12.tgz", - "integrity": "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==", + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.28.2.tgz", + "integrity": "sha512-CAXl+Dtd9UUuJd8pKKdwh6MLm3MUMiqMPmhZ3tTSXPqfyQ3vDl6R5hZdZ/kYojK4ofXtdfSv1tFq8XzWx3heNQ==", "cpu": [ "ppc64" ], @@ -254,9 +556,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.12.tgz", - "integrity": "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==", + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.28.2.tgz", + "integrity": "sha512-GeXCej4IQtU1B+QlDV8W/RRvbzI3O/Stss+/bCXv4lZls5WGRtu2a+3JkA3i4qIUlMXpcHebWpF8AkJhATowuA==", "cpu": [ "riscv64" ], @@ -271,9 +573,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.12.tgz", - "integrity": "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==", + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.28.2.tgz", + "integrity": "sha512-3H1weTYZPxt/WOhByszQZybS9w5lKzUn1FDMsgEChbHWQwHYQQRfBxgCcZvPhjHfKyJjIievvMmEUawJrdY9Dg==", "cpu": [ "s390x" ], @@ -288,9 +590,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.12.tgz", - "integrity": "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==", + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.28.2.tgz", + "integrity": "sha512-4xTZr1FUmSoQW4XIWmit3tzQrUTZM+N3P0XV8xROKYF50XfI7xeO90+1bZvNwxIufQ9hDQVRJH5YhgPVF8A/HQ==", "cpu": [ "x64" ], @@ -305,9 +607,9 @@ } }, "node_modules/@esbuild/netbsd-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.12.tgz", - "integrity": "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==", + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.2.tgz", + "integrity": "sha512-sSATRjPeDBg3pdgHoQfoYBob11Kk1FGa9lui5RIHZCoCkJa9QKlvl3/vKz2usCmYYjs7ymJR/2Nnsqe+Hjt5nw==", "cpu": [ "arm64" ], @@ -322,9 +624,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.12.tgz", - "integrity": "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==", + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.28.2.tgz", + "integrity": "sha512-lqnzCV+mM0gIADaKihiCg6ifgfU2L3h5E33rNQBN1Y4MaVGnzryzmvvf7UHxprpQdE8hpqLolJ9Rl+SkIRDpyw==", "cpu": [ "x64" ], @@ -339,9 +641,9 @@ } }, "node_modules/@esbuild/openbsd-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.12.tgz", - "integrity": "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==", + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.2.tgz", + "integrity": "sha512-AL2qJILH7lNjrDmCQDvdxMfAUIv8KMNZOvrwAQ8i8//ntL9FflhOyMJ8OZSMBb8/AWXe3/5v5S20y3zCoZWKoQ==", "cpu": [ "arm64" ], @@ -356,9 +658,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.12.tgz", - "integrity": "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==", + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.28.2.tgz", + "integrity": "sha512-QtiuPytchRyC4rwUKhexJdQKvDuZ6hWloi3igqPQNUJCS1/v9EiO3UTOXR6A3FoMo4fnAKbWJdqaIwhOzh8qEw==", "cpu": [ "x64" ], @@ -373,9 +675,9 @@ } }, "node_modules/@esbuild/openharmony-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.12.tgz", - "integrity": "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==", + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.2.tgz", + "integrity": "sha512-WkhYDmpTjLvGlScA1rwjRUmhl4k8oXR3cIbtqWmELgU/dFeHHlEllxDvdWcNJV9rbzCexB5vz8gtNewWLgCT7Q==", "cpu": [ "arm64" ], @@ -390,9 +692,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.12.tgz", - "integrity": "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==", + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.28.2.tgz", + "integrity": "sha512-GPMSkTOtMnv2U2F8gxe4Io6qmVs+YKyp832Etqqxr0hFngmXQ3rzwytelm3GIn7T4VviRUlf3sOgBOiTdvaf7g==", "cpu": [ "x64" ], @@ -407,9 +709,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.12.tgz", - "integrity": "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==", + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.28.2.tgz", + "integrity": "sha512-PIhhEkE9uPBleRBrQEJpUn7MBnibZzbGzYWPmY3x+YoVg/95zbjB4CxPPOQ8l5tYYM4mMaCthF8/1DIfBQQyWQ==", "cpu": [ "arm64" ], @@ -424,9 +726,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.12.tgz", - "integrity": "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==", + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.28.2.tgz", + "integrity": "sha512-YmJbfTlvU7Sdn9BB+4PRES4oB6pxgS37MAONj+hBr/cpXS1aBPKXxNnDbu+QCWPj0o9dgyxeq79g6c5P8KeuYA==", "cpu": [ "ia32" ], @@ -441,9 +743,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz", - "integrity": "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==", + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.28.2.tgz", + "integrity": "sha512-5ebpxr3nWMzrL/rnUI755Jkuee0bHL/Gq0WTF9lvcpv73wAp5eu8MfBUgWK9bhWvZjj7yX8etf/8tI8Ney695g==", "cpu": [ "x64" ], @@ -457,6 +759,116 @@ "node": ">=18" } }, + "node_modules/@hookform/resolvers": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/@hookform/resolvers/-/resolvers-5.7.1.tgz", + "integrity": "sha512-8wS/P4UDr5sQDe4nFaV51TVyfDPrWgNIXweqG0Bs9Z5LSuzKLb+RQNPvkN2oHM5SRrJyWrVH/F+LOUcFjUyvwQ==", + "license": "MIT", + "dependencies": { + "@standard-schema/utils": "^0.3.0" + }, + "peerDependencies": { + "@sinclair/typebox": ">=0.25.24", + "@standard-schema/spec": "^1.0.0", + "@typeschema/main": ">=0.13.7", + "@vinejs/vine": "^2.0.0 || ^3.0.0 || ^4.0.0", + "ajv": "^8.12.0", + "ajv-errors": "^3.0.0", + "ajv-formats": "^2.1.1", + "arktype": "^2.0.0", + "ata-validator": "^1.2.0", + "class-transformer": ">=0.4.0", + "class-validator": ">=0.12.0", + "computed-types": "^1.0.0", + "effect": "^3.10.3", + "fluentvalidation-ts": "^3.0.0", + "fp-ts": "^2.7.0", + "io-ts": "^2.0.0", + "joi": "^17.0.0", + "nope-validator": ">=0.12.0", + "react-hook-form": "^7.55.0", + "superstruct": ">=0.12.0", + "typanion": "^3.3.2", + "valibot": ">=0.31.0 || ^1.0.0-beta.4 || ^1.0.0-rc", + "vest": ">=3.0.0", + "yup": "^1.0.0", + "zod": "^3.25.0 || ^4.0.0" + }, + "peerDependenciesMeta": { + "@sinclair/typebox": { + "optional": true + }, + "@standard-schema/spec": { + "optional": true + }, + "@typeschema/main": { + "optional": true + }, + "@vinejs/vine": { + "optional": true + }, + "ajv": { + "optional": true + }, + "ajv-errors": { + "optional": true + }, + "ajv-formats": { + "optional": true + }, + "arktype": { + "optional": true + }, + "ata-validator": { + "optional": true + }, + "class-transformer": { + "optional": true + }, + "class-validator": { + "optional": true + }, + "computed-types": { + "optional": true + }, + "effect": { + "optional": true + }, + "fluentvalidation-ts": { + "optional": true + }, + "fp-ts": { + "optional": true + }, + "io-ts": { + "optional": true + }, + "joi": { + "optional": true + }, + "nope-validator": { + "optional": true + }, + "superstruct": { + "optional": true + }, + "typanion": { + "optional": true + }, + "valibot": { + "optional": true + }, + "vest": { + "optional": true + }, + "yup": { + "optional": true + }, + "zod": { + "optional": true + } + } + }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.13", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", @@ -524,6 +936,350 @@ "node": "^22.20 || ^24.12 || >=25" } }, + "node_modules/@radix-ui/primitive": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.7.tgz", + "integrity": "sha512-rqWnm76nYT8HoNNqEjpgJ7Pw/DrBj5iBTrmEPo6HTX5+VJyBNOqTdv4g89G63HuR5g0AaENoAcH7Is5fF2kZ8Q==", + "license": "MIT" + }, + "node_modules/@radix-ui/react-compose-refs": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.5.tgz", + "integrity": "sha512-+48PbAAbq3didjJxa+OaWY2ZwgAKsNiRGyeHKszblZMQ+kcpd9pAaT11cMkGEie0vsOi3QdeTE6d5Fe3Gn61kA==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-context": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.2.2.tgz", + "integrity": "sha512-RHCUGwKHDr0hDGg4X7ma4JG4/+12qxw8rkh5QKdDldlCvtja6nUx1Ef/8HVrJze81lEsgLQlqjzjGNHantgnQA==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dialog": { + "version": "1.1.23", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.1.23.tgz", + "integrity": "sha512-Ksw4WeROkO4rC9k/onilX/Ao2Cr1ku1unMNH+XSCcP4jSXYu7HDsg9n4ojMjVb22XpYjAQ9qfrFlVbru1vXDUA==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.5", + "@radix-ui/react-context": "1.2.2", + "@radix-ui/react-dismissable-layer": "1.1.19", + "@radix-ui/react-focus-guards": "1.1.6", + "@radix-ui/react-focus-scope": "1.1.16", + "@radix-ui/react-id": "1.1.4", + "@radix-ui/react-portal": "1.1.17", + "@radix-ui/react-presence": "1.1.10", + "@radix-ui/react-primitive": "2.1.10", + "@radix-ui/react-slot": "1.3.3", + "@radix-ui/react-use-controllable-state": "1.2.6", + "@radix-ui/react-use-layout-effect": "1.1.4", + "aria-hidden": "^1.2.4", + "react-remove-scroll": "^2.7.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dismissable-layer": { + "version": "1.1.19", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.19.tgz", + "integrity": "sha512-8g4pfOL9HoKKLWGiypT+dphVqjFfmcXO5GBnhsG6zI+lxAx/8feQpr+1LSN8Re3hiZ+XkLNS4O9ztK11/LzQ6w==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.7", + "@radix-ui/react-compose-refs": "1.1.5", + "@radix-ui/react-primitive": "2.1.10", + "@radix-ui/react-use-callback-ref": "1.1.4", + "@radix-ui/react-use-effect-event": "0.0.5" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-focus-guards": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.6.tgz", + "integrity": "sha512-RNOJjfZMTyBM6xYmV3IVGXkPjIhcBAuv48POevAXwrGJhkWZ9p1rFoIS1JFooPuT193AZmRsCPhpoVJxx6OPoQ==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-focus-scope": { + "version": "1.1.16", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.16.tgz", + "integrity": "sha512-wmRZ2WWLvmt6KHy2rNPOdPUjwq5xOHY02+m+udwJTn0aNIox/rkskAvJTyTLGhPK6KgrUjlJUJpgmx/+wFiFIQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.5", + "@radix-ui/react-primitive": "2.1.10", + "@radix-ui/react-use-callback-ref": "1.1.4" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-id": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.4.tgz", + "integrity": "sha512-TMQp2llA+RYn7JcjnrMnz7wN4pcVttPZnRZo52PLQsoLVKzNlVwUeHmfePgTgRluXFvlD3GD5g5MOVVTJCO0qA==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-layout-effect": "1.1.4" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-label": { + "version": "2.1.15", + "resolved": "https://registry.npmjs.org/@radix-ui/react-label/-/react-label-2.1.15.tgz", + "integrity": "sha512-o/rdYEwZTTo5tjknnPeyQFU45kUC4i/XyeDPP+HGyi6XqpOP6Zf5Ya5vh/Yfe9Id5JiuWnnAx2XqIeD3UYZt0g==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.1.10" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-portal": { + "version": "1.1.17", + "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.17.tgz", + "integrity": "sha512-vKQLcWypUnwZVvfV7UkGahH2g6ySe8M8R+zYBwPrv5byZ9QAW6cQVvNKo7GgmD+p8aYb6D9JBuvy8/WhOno2wQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.1.10", + "@radix-ui/react-use-layout-effect": "1.1.4" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-presence": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.10.tgz", + "integrity": "sha512-3wyzCQ6+ubRA+D4uv9m95JYLXxmOHp05qjrkjeA7uKHHtjpPggQzc6DAb0URl7j67oR0K2foO4ip27TiX037Bw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-layout-effect": "1.1.4" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-primitive": { + "version": "2.1.10", + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.10.tgz", + "integrity": "sha512-MucOnzh6hR5mid6VpkbglRAMYMjKLqRnGBbjXkzjK52fuQDd1qbkx78a5P40mkcnVXJdEVxm26E9OPAiUq7nBg==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-slot": "1.3.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-slot": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.3.3.tgz", + "integrity": "sha512-qx7oqnYbxnK9kYI9m317qmFmEgo6ywqWvbTogdj7cL9p3/yx4M48p7Rnw5z3H890cL/ow/EeWJsuTykeZVXP5Q==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.5" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-callback-ref": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.4.tgz", + "integrity": "sha512-R6OUY2e2fA6Yn6s+VSx5KBV6Nx8LQEhu+cz7LCej18rQ1HLyg9PSC9jP/ZNx0o6FAIK9c0F1kHylzSxKsdlkrQ==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-controllable-state": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.2.6.tgz", + "integrity": "sha512-uEQJGT97ZA/TgP/Hydw47lHu+/vQj6z/0jA+WeTbK1o9Rx45GImjpD0tc3W5ad3D6XTSR6e1yEO0FvGq6WQfVQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.7", + "@radix-ui/react-use-effect-event": "0.0.5", + "@radix-ui/react-use-layout-effect": "1.1.4" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-effect-event": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-effect-event/-/react-use-effect-event-0.0.5.tgz", + "integrity": "sha512-7cshFL8HGS/7HEiHH+9kL9HBwp2sa9yX18Knwek6KYWmXwM7pegMgta2AXMQKI+rq3JnfSj9x8wYqFMTdG1Jgg==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-layout-effect": "1.1.4" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-layout-effect": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.4.tgz", + "integrity": "sha512-K20DkRkUwDnxEYMBPcg3Y6voLkEy5p5QQmszZgLngKKiC7dzBR/aEuK3w1qlx2JWDUNH6FluahYdgR3BP+QbYw==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@rolldown/pluginutils": { + "version": "1.0.0-beta.27", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.27.tgz", + "integrity": "sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA==", + "dev": true, + "license": "MIT" + }, "node_modules/@rollup/rollup-android-arm-eabi": { "version": "4.62.4", "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.62.4.tgz", @@ -874,55 +1630,11 @@ "win32" ] }, - "node_modules/@sveltejs/acorn-typescript": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/@sveltejs/acorn-typescript/-/acorn-typescript-1.0.12.tgz", - "integrity": "sha512-J1jNYG23QWd67UfrQSFHtjhV37r9mVi0gdc12A3MWPldOjRK35Xk+um+qACPVjgw3AleiqoyEAhok8Wm3q46NA==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "acorn": "^8.9.0" - } - }, - "node_modules/@sveltejs/vite-plugin-svelte": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-5.1.1.tgz", - "integrity": "sha512-Y1Cs7hhTc+a5E9Va/xwKlAJoariQyHY+5zBgCZg4PFWNYQ1nMN9sjK1zhw1gK69DuqVP++sht/1GZg1aRwmAXQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@sveltejs/vite-plugin-svelte-inspector": "^4.0.1", - "debug": "^4.4.1", - "deepmerge": "^4.3.1", - "kleur": "^4.1.5", - "magic-string": "^0.30.17", - "vitefu": "^1.0.6" - }, - "engines": { - "node": "^18.0.0 || ^20.0.0 || >=22" - }, - "peerDependencies": { - "svelte": "^5.0.0", - "vite": "^6.0.0" - } - }, - "node_modules/@sveltejs/vite-plugin-svelte-inspector": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte-inspector/-/vite-plugin-svelte-inspector-4.0.1.tgz", - "integrity": "sha512-J/Nmb2Q2y7mck2hyCX4ckVHcR5tu2J+MtBEQqpDrrgELZ2uvraQcK/ioCV61AqkdXFgriksOKIceDcQmqnGhVw==", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^4.3.7" - }, - "engines": { - "node": "^18.0.0 || ^20.0.0 || >=22" - }, - "peerDependencies": { - "@sveltejs/vite-plugin-svelte": "^5.0.0", - "svelte": "^5.0.0", - "vite": "^6.0.0" - } + "node_modules/@standard-schema/utils": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@standard-schema/utils/-/utils-0.3.0.tgz", + "integrity": "sha512-e7Mew686owMaPJVNNLs55PUvgz371nKgwsc4vxE49zsODpJEnxgxRo2y/OKrqueavXgZNMDVj3DdHFlaSAeU8g==", + "license": "MIT" }, "node_modules/@tailwindcss/node": { "version": "4.3.3", @@ -1196,6 +1908,141 @@ "vite": "^5.2.0 || ^6 || ^7 || ^8" } }, + "node_modules/@tanstack/query-core": { + "version": "5.101.4", + "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.101.4.tgz", + "integrity": "sha512-gNwcvOJcRbLWPOLG/2OBm+zM+Yv+MKsXKEOWC57USuZDEsI71hEErQsiEGx5wX9rzWWkfwM0fVSPoiIFSsxfiw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + } + }, + "node_modules/@tanstack/react-query": { + "version": "5.101.4", + "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.101.4.tgz", + "integrity": "sha512-yRg2pfOCxIs4ZJW3XYYHU/WgtD04FHSnfHlpRT7h7pR77hwkdRG4wxbKe4aq6P0RvXUTBSQpQeadS1SUYUe+KA==", + "license": "MIT", + "dependencies": { + "@tanstack/query-core": "5.101.4" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "react": "^18 || ^19" + } + }, + "node_modules/@tanstack/react-store": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/@tanstack/react-store/-/react-store-0.11.1.tgz", + "integrity": "sha512-HaIGKI3YLmjBYIvy5DFDY23oNaYZIsTZfngey07Uh5iLVJgM3bIGCnZeOFOqzjFld9JHWcaHJnasD/bKoGKwJQ==", + "license": "MIT", + "dependencies": { + "@tanstack/store": "0.11.1", + "use-sync-external-store": "^1.6.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@tanstack/react-table": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/@tanstack/react-table/-/react-table-9.1.2.tgz", + "integrity": "sha512-YQPZFJ1nIi/bjjwsPZVouABgahDcl7Gdm33CdTStUJBn0DjEVJ2uhSTVmIoWt9MVKdQziXGAsXipSzy949Hygg==", + "license": "MIT", + "dependencies": { + "@tanstack/react-store": "^0.11.0", + "@tanstack/table-core": "9.1.2" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "react": ">=18" + } + }, + "node_modules/@tanstack/store": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/@tanstack/store/-/store-0.11.1.tgz", + "integrity": "sha512-mzTOBhypOuDJAy/D8n2MfUZ1HFkXnmSETviRyhqEC8LUE7/IZQExOTxMANj3KjTofYTkFNpBY67qaVrT41YccA==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + } + }, + "node_modules/@tanstack/table-core": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/@tanstack/table-core/-/table-core-9.1.2.tgz", + "integrity": "sha512-ONpWQeass1sfg80CWF1NSwQ8r3GiqxA2lT/EdqIcrDEPZ0Z+0mM94eQoFYLPN0Kztzj8TQVb2+PrSZSItqA61g==", + "license": "MIT", + "dependencies": { + "@tanstack/store": "^0.11.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + } + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", + "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz", + "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.28.2" + } + }, "node_modules/@types/estree": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.9.tgz", @@ -1203,56 +2050,162 @@ "dev": true, "license": "MIT" }, - "node_modules/@types/trusted-types": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", - "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", + "node_modules/@types/react": { + "version": "19.2.18", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.18.tgz", + "integrity": "sha512-AnzbBERsrLKtk2XSfTbYRLjQPdy116Sty4q+T+Bp3IC4l6jNBvreVPAHmpq9qhXQM7CXZPjLVmGMw9sy+hxQ3w==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "csstype": "^3.2.2" + } + }, + "node_modules/@types/react-dom": { + "version": "19.2.4", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.2.4.tgz", + "integrity": "sha512-Bsc+QHgp+P/F02XDzNCY9jnZNCUuLki36KT7VKrTXXLdHf+vHMNZnW1rVu5DNW/rCK+fya3DATySbLM4yhtKUw==", + "devOptional": true, + "license": "MIT", + "peerDependencies": { + "@types/react": "^19.2.0" + } + }, + "node_modules/@vitejs/plugin-react": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.7.0.tgz", + "integrity": "sha512-gUu9hwfWvvEDBBmgtAowQCojwZmJ5mcLn3aufeCsitijs3+f2NsrPtlAWIR6OPiqljl96GVCUbLe0HyqIpVaoA==", "dev": true, - "license": "MIT" + "license": "MIT", + "dependencies": { + "@babel/core": "^7.28.0", + "@babel/plugin-transform-react-jsx-self": "^7.27.1", + "@babel/plugin-transform-react-jsx-source": "^7.27.1", + "@rolldown/pluginutils": "1.0.0-beta.27", + "@types/babel__core": "^7.20.5", + "react-refresh": "^0.17.0" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0" + } + }, + "node_modules/aria-hidden": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.6.tgz", + "integrity": "sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/baseline-browser-mapping": { + "version": "2.11.13", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.11.13.tgz", + "integrity": "sha512-k9HNuUVMlqVjQ9UHzfPjIqiDbWw7WqT1AoT7GL8VwvF3r0ZfArtgiSPAlmupyNquNgOJHTuH4CKYf8ttMTWBTQ==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.cjs" + }, + "engines": { + "node": ">=6.0.0" + } }, - "node_modules/acorn": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.18.0.tgz", - "integrity": "sha512-lGq+9yr1/GuAWaVYIHRjvvySG5/4VfKIvC8EWxStPdcDh/Ka7FG3twP6v4d5BkravUilhIAsG4Qj83t02LWUPQ==", + "node_modules/browserslist": { + "version": "4.28.8", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.8.tgz", + "integrity": "sha512-V2NpofLblG64mfOtSgDhOJESZEGogzDMBv/q+W6oc4LXWP/q75eOXoOaaOu1EOadB9U4Bwx/e0yzbvwKH8zalA==", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "license": "MIT", + "dependencies": { + "baseline-browser-mapping": "^2.11.12", + "caniuse-lite": "^1.0.30001809", + "electron-to-chromium": "^1.5.402", + "node-releases": "^2.0.53", + "update-browserslist-db": "^1.3.0" + }, "bin": { - "acorn": "bin/acorn" + "browserslist": "cli.js" }, "engines": { - "node": ">=0.4.0" + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, - "node_modules/aria-query": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.1.tgz", - "integrity": "sha512-Z/ZeOgVl7bcSYZ/u/rh0fOpvEpq//LZmdbkXyc7syVzjPAhfOa9ebsdTSjEBDU4vs5nC98Kfduj1uFo0qyET3g==", + "node_modules/caniuse-lite": { + "version": "1.0.30001809", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001809.tgz", + "integrity": "sha512-xxWVywk6a6Arlk+hymeycyn/VgqEfLDxupvhH/xiY5SJ/18kmi9o6MiO320DCUzypORHLtvh0I4i04tUhCNHNQ==", "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">= 0.4" - } + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" }, - "node_modules/axobject-query": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", - "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", - "dev": true, + "node_modules/class-variance-authority": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/class-variance-authority/-/class-variance-authority-0.7.1.tgz", + "integrity": "sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==", "license": "Apache-2.0", - "engines": { - "node": ">= 0.4" + "dependencies": { + "clsx": "^2.1.1" + }, + "funding": { + "url": "https://polar.sh/cva" } }, "node_modules/clsx": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", - "dev": true, "license": "MIT", "engines": { "node": ">=6" } }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, + "node_modules/csstype": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", + "devOptional": true, + "license": "MIT" + }, "node_modules/debug": { "version": "4.4.3", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", @@ -1271,16 +2224,6 @@ } } }, - "node_modules/deepmerge": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", - "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/detect-libc": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", @@ -1291,13 +2234,19 @@ "node": ">=8" } }, - "node_modules/devalue": { - "version": "5.9.0", - "resolved": "https://registry.npmjs.org/devalue/-/devalue-5.9.0.tgz", - "integrity": "sha512-RWrqdArjvPbsATEhOPUo6Wndc/iWnkWKlhIrdlF3zMMYo/c3CVtoaVAyLtWxz5h8nSlkHzxnzV2uLydPXmtF+A==", - "dev": true, + "node_modules/detect-node-es": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", + "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==", "license": "MIT" }, + "node_modules/electron-to-chromium": { + "version": "1.5.404", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.404.tgz", + "integrity": "sha512-3WJtd7/lVq2Jnuz6wed1l9+1ZD2u2Tet1/1NBc4Iedkmgbu+I7YuAqdAQ8T+VZtnwysMsAf3IqSq9D1gyZjA2g==", + "dev": true, + "license": "ISC" + }, "node_modules/enhanced-resolve": { "version": "5.24.5", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.24.5.tgz", @@ -1313,9 +2262,9 @@ } }, "node_modules/esbuild": { - "version": "0.25.12", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.12.tgz", - "integrity": "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==", + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.28.2.tgz", + "integrity": "sha512-HKVLS8dvII+xoKW9kmqxbRKrnWEXfJJr/FZhhJmiqIB0e053QNYFqOBouTMO/k5sID4MvCiUCvv8b9M4h32wIA==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -1326,57 +2275,42 @@ "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.25.12", - "@esbuild/android-arm": "0.25.12", - "@esbuild/android-arm64": "0.25.12", - "@esbuild/android-x64": "0.25.12", - "@esbuild/darwin-arm64": "0.25.12", - "@esbuild/darwin-x64": "0.25.12", - "@esbuild/freebsd-arm64": "0.25.12", - "@esbuild/freebsd-x64": "0.25.12", - "@esbuild/linux-arm": "0.25.12", - "@esbuild/linux-arm64": "0.25.12", - "@esbuild/linux-ia32": "0.25.12", - "@esbuild/linux-loong64": "0.25.12", - "@esbuild/linux-mips64el": "0.25.12", - "@esbuild/linux-ppc64": "0.25.12", - "@esbuild/linux-riscv64": "0.25.12", - "@esbuild/linux-s390x": "0.25.12", - "@esbuild/linux-x64": "0.25.12", - "@esbuild/netbsd-arm64": "0.25.12", - "@esbuild/netbsd-x64": "0.25.12", - "@esbuild/openbsd-arm64": "0.25.12", - "@esbuild/openbsd-x64": "0.25.12", - "@esbuild/openharmony-arm64": "0.25.12", - "@esbuild/sunos-x64": "0.25.12", - "@esbuild/win32-arm64": "0.25.12", - "@esbuild/win32-ia32": "0.25.12", - "@esbuild/win32-x64": "0.25.12" - } - }, - "node_modules/esm-env": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/esm-env/-/esm-env-1.2.2.tgz", - "integrity": "sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA==", - "dev": true, - "license": "MIT" - }, - "node_modules/esrap": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/esrap/-/esrap-2.3.2.tgz", - "integrity": "sha512-40GyiEJevYKXzYTHtZkFqAgTjLOuFcaXMao8TPyOlnWTlkHDlvZ6mPMJaJyOqVwrVCgomEG1WhJd81w0X+IcCw==", + "@esbuild/aix-ppc64": "0.28.2", + "@esbuild/android-arm": "0.28.2", + "@esbuild/android-arm64": "0.28.2", + "@esbuild/android-x64": "0.28.2", + "@esbuild/darwin-arm64": "0.28.2", + "@esbuild/darwin-x64": "0.28.2", + "@esbuild/freebsd-arm64": "0.28.2", + "@esbuild/freebsd-x64": "0.28.2", + "@esbuild/linux-arm": "0.28.2", + "@esbuild/linux-arm64": "0.28.2", + "@esbuild/linux-ia32": "0.28.2", + "@esbuild/linux-loong64": "0.28.2", + "@esbuild/linux-mips64el": "0.28.2", + "@esbuild/linux-ppc64": "0.28.2", + "@esbuild/linux-riscv64": "0.28.2", + "@esbuild/linux-s390x": "0.28.2", + "@esbuild/linux-x64": "0.28.2", + "@esbuild/netbsd-arm64": "0.28.2", + "@esbuild/netbsd-x64": "0.28.2", + "@esbuild/openbsd-arm64": "0.28.2", + "@esbuild/openbsd-x64": "0.28.2", + "@esbuild/openharmony-arm64": "0.28.2", + "@esbuild/sunos-x64": "0.28.2", + "@esbuild/win32-arm64": "0.28.2", + "@esbuild/win32-ia32": "0.28.2", + "@esbuild/win32-x64": "0.28.2" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", "dev": true, "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.15" - }, - "peerDependencies": { - "@typescript-eslint/types": "^8.2.0" - }, - "peerDependenciesMeta": { - "@typescript-eslint/types": { - "optional": true - } + "engines": { + "node": ">=6" } }, "node_modules/fdir": { @@ -1412,6 +2346,25 @@ "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-nonce": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", + "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", @@ -1419,16 +2372,6 @@ "dev": true, "license": "ISC" }, - "node_modules/is-reference": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.3.tgz", - "integrity": "sha512-ixkJoqQvAP88E6wLydLGGqCJsrFUnqoH6HnaczB8XmDH1oaWU+xxdptvikTgaEhtZ53Ky6YXiBuUI2WXLMCwjw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/estree": "^1.0.6" - } - }, "node_modules/jiti": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.7.0.tgz", @@ -1439,12 +2382,35 @@ "jiti": "lib/jiti-cli.mjs" } }, - "node_modules/kleur": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", - "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true, "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, "engines": { "node": ">=6" } @@ -1710,12 +2676,24 @@ "url": "https://opencollective.com/parcel" } }, - "node_modules/locate-character": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-character/-/locate-character-3.0.0.tgz", - "integrity": "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==", + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, - "license": "MIT" + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/lucide-react": { + "version": "0.525.0", + "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.525.0.tgz", + "integrity": "sha512-Tm1txJ2OkymCGkvwoHt33Y2JpN5xucVq1slHcgE6Lk0WjDfjgKWor5CdVER8U6DvcfMwh4M8XxmpTiyzfmfDYQ==", + "license": "ISC", + "peerDependencies": { + "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } }, "node_modules/magic-string": { "version": "0.30.21", @@ -1753,6 +2731,16 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, + "node_modules/node-releases": { + "version": "2.0.53", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.53.tgz", + "integrity": "sha512-D9UOmYG3UH1V+ENW56t5QXBwJw1YEY18ruVeus89Rw+SyIgjPkCO84bRzO3uNIYosJbNwiabWVn48o3uJLjxFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", @@ -1802,6 +2790,122 @@ "node": "^10 || ^12 || >=14" } }, + "node_modules/react": { + "version": "19.2.8", + "resolved": "https://registry.npmjs.org/react/-/react-19.2.8.tgz", + "integrity": "sha512-PWaYA1L/q9u2u7xYQi+Y3L3Yfnie7XyLeaJICV1MGD6LprsBxcAqGjYyr0eY3p+QdsA+x/Irkt4Qif8D63+Sbw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "19.2.8", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.8.tgz", + "integrity": "sha512-rVprimfGBG3DR+Tq0IQG2DT5PxKth1WIGDmj5yPmlzr4YBe7uyE+Du4oVqTDXZSHGGGXRtTJEGSSePyQCMBglQ==", + "license": "MIT", + "dependencies": { + "scheduler": "^0.27.0" + }, + "peerDependencies": { + "react": "^19.2.8" + } + }, + "node_modules/react-hook-form": { + "version": "7.85.0", + "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.85.0.tgz", + "integrity": "sha512-U2MTriFXnclmV4rOE20p2DcRFv5WEg3FIcBFOKcOLFHDVvGIMPvLTkTWefUsonmlaVy23khVDxDWym6uJVGOzw==", + "license": "MIT", + "engines": { + "node": ">=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/react-hook-form" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17 || ^18 || ^19" + } + }, + "node_modules/react-refresh": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.17.0.tgz", + "integrity": "sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-remove-scroll": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.7.2.tgz", + "integrity": "sha512-Iqb9NjCCTt6Hf+vOdNIZGdTiH1QSqr27H/Ek9sv/a97gfueI/5h1s3yRi1nngzMUaOOToin5dI1dXKdXiF+u0Q==", + "license": "MIT", + "dependencies": { + "react-remove-scroll-bar": "^2.3.7", + "react-style-singleton": "^2.2.3", + "tslib": "^2.1.0", + "use-callback-ref": "^1.3.3", + "use-sidecar": "^1.1.3" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-remove-scroll-bar": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.8.tgz", + "integrity": "sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==", + "license": "MIT", + "dependencies": { + "react-style-singleton": "^2.2.2", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-style-singleton": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.3.tgz", + "integrity": "sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==", + "license": "MIT", + "dependencies": { + "get-nonce": "^1.0.0", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/rollup": { "version": "4.62.4", "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.62.4.tgz", @@ -1848,6 +2952,38 @@ "fsevents": "~2.3.2" } }, + "node_modules/scheduler": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz", + "integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==", + "license": "MIT" + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/sonner": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/sonner/-/sonner-2.0.8.tgz", + "integrity": "sha512-UM/ByIoFra8yzV75n1o0Puu0bw5U/9UNnDacrJNspekBewIfsQ3D6ez1nvlWpt7aTsO6rujQtifBpycwIivqlg==", + "license": "MIT", + "peerDependencies": { + "@types/react": "^18.0.0 || ^19.0.0", + "react": "^18.0.0 || ^19.0.0 || ^19.0.0-rc", + "react-dom": "^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/source-map-js": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", @@ -1858,32 +2994,14 @@ "node": ">=0.10.0" } }, - "node_modules/svelte": { - "version": "5.56.8", - "resolved": "https://registry.npmjs.org/svelte/-/svelte-5.56.8.tgz", - "integrity": "sha512-PY8LOw7xP6c8IOiVqdo0sbbZVYhXRSfklOQLAUyGBKqjTX0wx/z4l/9J+PmBpmlLnxzEb1NqltxQ5/wZme/Cmg==", - "dev": true, + "node_modules/tailwind-merge": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-3.6.0.tgz", + "integrity": "sha512-uxL7qAVQriqRQPAyK3pj66VqskWqoZ37PW94jwOTwNfq/z9oyu1V+eqrZqtR2+fCiXdYOZe/Modt8GtvqNzu+w==", "license": "MIT", - "dependencies": { - "@jridgewell/remapping": "^2.3.4", - "@jridgewell/sourcemap-codec": "^1.5.0", - "@sveltejs/acorn-typescript": "^1.0.10", - "@types/estree": "^1.0.5", - "@types/trusted-types": "^2.0.7", - "acorn": "^8.12.1", - "aria-query": "5.3.1", - "axobject-query": "^4.1.0", - "clsx": "^2.1.1", - "devalue": "^5.8.1", - "esm-env": "^1.2.1", - "esrap": "^2.2.12", - "is-reference": "^3.0.3", - "locate-character": "^3.0.0", - "magic-string": "^0.30.11", - "zimmerframe": "^1.1.2" - }, - "engines": { - "node": ">=18" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/dcastil" } }, "node_modules/tailwindcss": { @@ -1924,25 +3042,138 @@ "url": "https://github.com/sponsors/SuperchupuDev" } }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "node_modules/tw-animate-css": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/tw-animate-css/-/tw-animate-css-1.4.0.tgz", + "integrity": "sha512-7bziOlRqH0hJx80h/3mbicLW7o8qLsH5+RaLR2t+OHM3D0JlWGODQKQ4cxbK7WlvmUxpcj6Kgu6EKqjrGFe3QQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/Wombosvideo" + } + }, + "node_modules/typescript": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.3.1.tgz", + "integrity": "sha512-ZZ61DsRsOnakl74HAmp3oSN4aXUmEWXf+i/yv0h7tIBfICc3VdrFErQKUUKPgu3AMsTUMbcongALEN4l6GSUrQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/use-callback-ref": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.3.tgz", + "integrity": "sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-sidecar": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.3.tgz", + "integrity": "sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==", + "license": "MIT", + "dependencies": { + "detect-node-es": "^1.1.0", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-sync-external-store": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.6.0.tgz", + "integrity": "sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==", + "license": "MIT", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, "node_modules/vite": { - "version": "6.4.3", - "resolved": "https://registry.npmjs.org/vite/-/vite-6.4.3.tgz", - "integrity": "sha512-NTKlcQjlAK7MlQoyb6LgaqHc8sso/pVyUJYWMws3jg21uTJw/LddqIFPcPqP6PzpgbIcZyKI85sFE4HBrQDA8A==", + "version": "7.3.6", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.3.6.tgz", + "integrity": "sha512-4XP60spRGjSZFf1qYH+dJIkK2znL3zQfl9KkOV9MkkRR/3Dls0dxaBsQPTloEc5BLXWPL9vsOxopxyKoMmDueg==", "dev": true, "license": "MIT", "dependencies": { - "esbuild": "^0.25.0", - "fdir": "^6.4.4", - "picomatch": "^4.0.2", - "postcss": "^8.5.3", - "rollup": "^4.34.9", - "tinyglobby": "^0.2.13" + "esbuild": "^0.27.0 || ^0.28.0", + "fdir": "^6.5.0", + "picomatch": "^4.0.3", + "postcss": "^8.5.6", + "rollup": "^4.43.0", + "tinyglobby": "^0.2.15" }, "bin": { "vite": "bin/vite.js" }, "engines": { - "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + "node": "^20.19.0 || >=22.12.0" }, "funding": { "url": "https://github.com/vitejs/vite?sponsor=1" @@ -1951,14 +3182,14 @@ "fsevents": "~2.3.3" }, "peerDependencies": { - "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", + "@types/node": "^20.19.0 || >=22.12.0", "jiti": ">=1.21.0", - "less": "*", + "less": "^4.0.0", "lightningcss": "^1.21.0", - "sass": "*", - "sass-embedded": "*", - "stylus": "*", - "sugarss": "*", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", "terser": "^5.16.0", "tsx": "^4.8.1", "yaml": "^2.4.2" @@ -1999,32 +3230,21 @@ } } }, - "node_modules/vitefu": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-1.1.3.tgz", - "integrity": "sha512-ub4okH7Z5KLjb6hDyjqrGXqWtWvoYdU3IGm/NorpgHncKoLTCfRIbvlhBm7r0YstIaQRYlp4yEbFqDcKSzXSSg==", + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true, + "license": "ISC" + }, + "node_modules/zod": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/zod/-/zod-4.4.3.tgz", + "integrity": "sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ==", "license": "MIT", - "workspaces": [ - "tests/deps/*", - "tests/projects/*", - "tests/projects/workspace/packages/*" - ], - "peerDependencies": { - "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "vite": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/colinhacks" } - }, - "node_modules/zimmerframe": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/zimmerframe/-/zimmerframe-1.1.4.tgz", - "integrity": "sha512-B58NGBEoc8Y9MWWCQGl/gq9xBCe4IiKM0a2x7GZdQKOW5Exr8S1W24J6OgM1njK8xCRGvAJIL/MxXHf6SkmQKQ==", - "dev": true, - "license": "MIT" } } } diff --git a/ui/package.json b/ui/package.json index 5b4df1b..cfbce02 100644 --- a/ui/package.json +++ b/ui/package.json @@ -5,13 +5,33 @@ "type": "module", "scripts": { "dev": "vite", - "build": "vite build" + "build": "tsc -b && vite build" + }, + "dependencies": { + "@hookform/resolvers": "^5.1.1", + "@radix-ui/react-dialog": "^1.1.14", + "@radix-ui/react-label": "^2.1.7", + "@radix-ui/react-slot": "^1.2.3", + "@tanstack/react-query": "^5.83.0", + "@tanstack/react-table": "^9.1.2", + "class-variance-authority": "^0.7.1", + "clsx": "^2.1.1", + "lucide-react": "^0.525.0", + "react": "^19.1.0", + "react-dom": "^19.1.0", + "react-hook-form": "^7.60.0", + "sonner": "^2.0.6", + "tailwind-merge": "^3.3.1", + "zod": "^4.0.5" }, "devDependencies": { - "@sveltejs/vite-plugin-svelte": "^5.0.3", - "@tailwindcss/vite": "^4.1.4", - "svelte": "^5.28.1", - "tailwindcss": "^4.1.4", - "vite": "^6.3.2" + "@tailwindcss/vite": "^4.1.11", + "@types/react": "^19.1.8", + "@types/react-dom": "^19.1.6", + "@vitejs/plugin-react": "^4.6.0", + "tailwindcss": "^4.1.11", + "tw-animate-css": "^1.3.5", + "typescript": "^5.8.3", + "vite": "^7.0.4" } } diff --git a/ui/src/App.svelte b/ui/src/App.svelte deleted file mode 100644 index 9bd3696..0000000 --- a/ui/src/App.svelte +++ /dev/null @@ -1,306 +0,0 @@ - - -
- -
-
-
- ⚡ -
-
-

GTC

-

PostgreSQL change data capture

-
-
-
- {#if stats} - {#if stats.streaming} - - - Streaming - - {:else} - ● Disconnected - {/if} - LSN {stats.current_lsn || '–'} - up {formatDuration(stats.uptime_seconds)} - {/if} - -
-
- - {#if error} -
- Cannot reach GTC: {error} -
- {/if} - {#if actionMessage} -
- {actionMessage} -
- {/if} - - {#if stats} - -
- - - - - - -
- - -
- - {#if stats.sinks.length === 0} -

No sinks configured.

- {:else} -
- {#each stats.sinks as s (s.name)} -
-
- - {s.name} - {#if s.breaker_state >= 1} - = 2 ? 'destructive' : 'warning'}> - breaker {breakerLabel(s.breaker_state)} - - {/if} -
-
- ✓ {formatNumber(s.succeeded)} - {#if s.failed > 0}✕ {formatNumber(s.failed)}{/if} - {#if s.retries > 0}↻ {formatNumber(s.retries)}{/if} - {#if s.filtered > 0}⊘ {formatNumber(s.filtered)}{/if} -
-
- {/each} -
- {/if} -
- - - - {#if stats.tables.length === 0} -

No events received yet.

- {:else} -
- - - - - - - - - - - - - {#each stats.tables as t (t.table)} - - - - - - - - - {/each} - -
TableINSUPDDELREADTotal
{t.table}{formatNumber(t.insert)}{formatNumber(t.update)}{formatNumber(t.delete)}{formatNumber(t.read)}{formatNumber(t.total)}
-
- {/if} -
-
- - -
- - {#snippet action()} - - {/snippet} - {#if stats.backfill.length === 0} -

No backfills recorded.

- {:else} -
- {#each stats.backfill as b (b.schema + '.' + b.table)} -
-
- {b.schema}.{b.table} - {b.state} -
-
- {formatNumber(b.rows_copied)} rows - {#if b.error}{b.error}{/if} -
-
- {/each} -
- {/if} -
- - - {#snippet action()} - {#if dlq.total > 0} - - {/if} - {/snippet} - {#if !stats.dlq.enabled} -

- DLQ is disabled (requires REDIS_URL). Sink failures stall the pipeline. -

- {:else if dlq.entries.length === 0} -

No parked events. 🎉

- {:else} -
- {#each dlq.entries as e (e.id)} -
-
-
- {e.sink} - {e.schema}.{e.table} - {e.operation} -
-
- - -
-
-

{e.error}

-

- {e.attempts} attempts · LSN {e.lsn} · last failed {timeAgo(e.last_failed_at)} -

-
- {/each} -
- {/if} -
-
- - - {:else if !error} -

Loading…

- {/if} -
diff --git a/ui/src/app.css b/ui/src/app.css deleted file mode 100644 index 18e9f4e..0000000 --- a/ui/src/app.css +++ /dev/null @@ -1,86 +0,0 @@ -@import 'tailwindcss'; - -/* shadcn design tokens (default zinc theme) */ -:root { - --background: oklch(1 0 0); - --foreground: oklch(0.141 0.005 285.823); - --card: oklch(1 0 0); - --card-foreground: oklch(0.141 0.005 285.823); - --primary: oklch(0.21 0.006 285.885); - --primary-foreground: oklch(0.985 0 0); - --secondary: oklch(0.967 0.001 286.375); - --secondary-foreground: oklch(0.21 0.006 285.885); - --muted: oklch(0.967 0.001 286.375); - --muted-foreground: oklch(0.552 0.016 285.938); - --accent: oklch(0.967 0.001 286.375); - --accent-foreground: oklch(0.21 0.006 285.885); - --destructive: oklch(0.577 0.245 27.325); - --destructive-foreground: oklch(0.985 0 0); - --success: oklch(0.627 0.17 149.2); - --warning: oklch(0.769 0.155 70.08); - --border: oklch(0.92 0.004 286.32); - --input: oklch(0.92 0.004 286.32); - --ring: oklch(0.705 0.015 286.067); - --radius: 0.625rem; -} - -.dark { - --background: oklch(0.141 0.005 285.823); - --foreground: oklch(0.985 0 0); - --card: oklch(0.21 0.006 285.885); - --card-foreground: oklch(0.985 0 0); - --primary: oklch(0.92 0.004 286.32); - --primary-foreground: oklch(0.21 0.006 285.885); - --secondary: oklch(0.274 0.006 286.033); - --secondary-foreground: oklch(0.985 0 0); - --muted: oklch(0.274 0.006 286.033); - --muted-foreground: oklch(0.705 0.015 286.067); - --accent: oklch(0.274 0.006 286.033); - --accent-foreground: oklch(0.985 0 0); - --destructive: oklch(0.704 0.191 22.216); - --destructive-foreground: oklch(0.985 0 0); - --success: oklch(0.723 0.192 149.579); - --warning: oklch(0.828 0.189 84.429); - --border: oklch(1 0 0 / 10%); - --input: oklch(1 0 0 / 15%); - --ring: oklch(0.552 0.016 285.938); -} - -@theme inline { - --color-background: var(--background); - --color-foreground: var(--foreground); - --color-card: var(--card); - --color-card-foreground: var(--card-foreground); - --color-primary: var(--primary); - --color-primary-foreground: var(--primary-foreground); - --color-secondary: var(--secondary); - --color-secondary-foreground: var(--secondary-foreground); - --color-muted: var(--muted); - --color-muted-foreground: var(--muted-foreground); - --color-accent: var(--accent); - --color-accent-foreground: var(--accent-foreground); - --color-destructive: var(--destructive); - --color-destructive-foreground: var(--destructive-foreground); - --color-success: var(--success); - --color-warning: var(--warning); - --color-border: var(--border); - --color-input: var(--input); - --color-ring: var(--ring); - --radius-lg: var(--radius); - --radius-md: calc(var(--radius) - 2px); - --radius-sm: calc(var(--radius) - 4px); -} - -@variant dark (&:where(.dark, .dark *)); - -body { - @apply bg-background text-foreground antialiased; - font-family: - ui-sans-serif, - system-ui, - -apple-system, - 'Segoe UI', - Roboto, - 'Helvetica Neue', - sans-serif; -} diff --git a/ui/src/app.tsx b/ui/src/app.tsx new file mode 100644 index 0000000..9d0931e --- /dev/null +++ b/ui/src/app.tsx @@ -0,0 +1,36 @@ +import { useState } from 'react'; +import { Shell, type Page } from '@/components/shell'; +import { OverviewPage } from '@/pages/overview'; +import { TablesPage } from '@/pages/tables'; +import { BackfillPage } from '@/pages/backfill'; +import { DlqPage } from '@/pages/dlq'; +import { useStats } from '@/lib/hooks'; + +const PAGE_META: Record = { + overview: { title: 'Overview', description: 'Pipeline health at a glance' }, + tables: { title: 'Table activity', description: 'Change events by source table' }, + backfill: { title: 'Backfill', description: 'Sync existing data into the sinks' }, + dlq: { title: 'Dead letters', description: 'Poison events parked for triage' }, +}; + +export function App() { + const [page, setPage] = useState('overview'); + const { data: stats } = useStats(); + const meta = PAGE_META[page]; + + return ( + + {page === 'overview' && } + {page === 'tables' && } + {page === 'backfill' && } + {page === 'dlq' && } + + ); +} diff --git a/ui/src/components/data-table.tsx b/ui/src/components/data-table.tsx new file mode 100644 index 0000000..72caa4f --- /dev/null +++ b/ui/src/components/data-table.tsx @@ -0,0 +1,78 @@ +import { FlexRender, type ReactTable, type RowData } from '@tanstack/react-table'; +import { ArrowDown, ArrowUp, ChevronsUpDown } from 'lucide-react'; +import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from '@/components/ui/table'; +import { cn } from '@/lib/utils'; +import type { Features } from '@/lib/table'; +import type { ReactNode } from 'react'; + +// Shared renderer for TanStack Table v9 instances using shadcn table markup, +// with click-to-sort headers. +export function DataTable({ + table, + empty, +}: { + table: ReactTable; + empty?: ReactNode; +}) { + const rows = table.getRowModel().rows; + const columnCount = table.getAllLeafColumns().length; + + return ( + + + {table.getHeaderGroups().map((headerGroup) => ( + + {headerGroup.headers.map((header) => { + const canSort = header.column.getCanSort(); + const sorted = header.column.getIsSorted(); + return ( + + {header.isPlaceholder ? null : canSort ? ( + + ) : ( + + )} + + ); + })} + + ))} + + + {rows.length === 0 ? ( + + + {empty ?? No results.} + + + ) : ( + rows.map((row) => ( + + {row.getAllCells().map((cell) => ( + + + + ))} + + )) + )} + +
+ ); +} diff --git a/ui/src/components/shell.tsx b/ui/src/components/shell.tsx new file mode 100644 index 0000000..524e102 --- /dev/null +++ b/ui/src/components/shell.tsx @@ -0,0 +1,170 @@ +import { type ReactNode } from 'react'; +import { + Activity, + DatabaseBackup, + Github, + Inbox, + LayoutDashboard, + LineChart, + Moon, + Sun, + Table2, + Zap, +} from 'lucide-react'; +import { Badge } from '@/components/ui/badge'; +import { cn } from '@/lib/utils'; +import { formatDuration } from '@/lib/format'; +import type { Stats } from '@/lib/api'; + +export type Page = 'overview' | 'tables' | 'backfill' | 'dlq'; + +const NAV: { id: Page; label: string; icon: typeof LayoutDashboard }[] = [ + { id: 'overview', label: 'Overview', icon: LayoutDashboard }, + { id: 'tables', label: 'Tables', icon: Table2 }, + { id: 'backfill', label: 'Backfill', icon: DatabaseBackup }, + { id: 'dlq', label: 'Dead letters', icon: Inbox }, +]; + +function toggleTheme() { + const root = document.documentElement; + const dark = root.classList.toggle('dark'); + localStorage.setItem('gtc-theme', dark ? 'dark' : 'light'); +} + +export function Shell({ + page, + onNavigate, + stats, + dlqCount, + title, + description, + actions, + children, +}: { + page: Page; + onNavigate: (page: Page) => void; + stats: Stats | undefined; + dlqCount: number; + title: string; + description: string; + actions?: ReactNode; + children: ReactNode; +}) { + return ( +
+ {/* Sidebar */} + + + {/* Main */} +
+
+
+
+

{title}

+

{description}

+
+
+ {stats && ( + <> + + + {stats.current_lsn} + + + {stats.ready ? 'Ready' : 'Not ready'} + + + )} + {actions} +
+
+
+
{children}
+
+
+ ); +} diff --git a/ui/src/components/spark.tsx b/ui/src/components/spark.tsx new file mode 100644 index 0000000..dc86f55 --- /dev/null +++ b/ui/src/components/spark.tsx @@ -0,0 +1,46 @@ +// Hand-rolled SVG area sparkline — no chart library needed for one shape. +export function AreaSpark({ + points, + width = 120, + height = 40, + className = '', +}: { + points: number[]; + width?: number; + height?: number; + className?: string; +}) { + if (points.length < 2) { + return
; + } + + const max = Math.max(...points, 1e-9); + const stepX = width / (points.length - 1); + const coords = points.map((p, i) => { + const x = i * stepX; + const y = height - 3 - (p / max) * (height - 6); + return [x, y] as const; + }); + + const line = coords.map(([x, y], i) => `${i === 0 ? 'M' : 'L'}${x.toFixed(1)},${y.toFixed(1)}`).join(' '); + const area = `${line} L${width},${height} L0,${height} Z`; + + return ( + + ); +} diff --git a/ui/src/components/stat-card.tsx b/ui/src/components/stat-card.tsx new file mode 100644 index 0000000..078dd0c --- /dev/null +++ b/ui/src/components/stat-card.tsx @@ -0,0 +1,44 @@ +import type { LucideIcon } from 'lucide-react'; +import type { ReactNode } from 'react'; +import { Card } from '@/components/ui/card'; +import { cn } from '@/lib/utils'; + +export function StatCard({ + label, + value, + sub, + icon: Icon, + tone = 'default', + children, +}: { + label: string; + value: string; + sub?: string; + icon: LucideIcon; + tone?: 'default' | 'danger' | 'success'; + children?: ReactNode; +}) { + return ( + +
+
+
+ + {label} +
+
+ {value} +
+ {sub &&
{sub}
} +
+ {children} +
+
+ ); +} diff --git a/ui/src/components/ui/badge.tsx b/ui/src/components/ui/badge.tsx new file mode 100644 index 0000000..b750ac2 --- /dev/null +++ b/ui/src/components/ui/badge.tsx @@ -0,0 +1,37 @@ +import * as React from 'react'; +import { Slot } from '@radix-ui/react-slot'; +import { cva, type VariantProps } from 'class-variance-authority'; +import { cn } from '@/lib/utils'; + +const badgeVariants = cva( + 'inline-flex items-center justify-center rounded-md border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none transition-[color,box-shadow] overflow-hidden', + { + variants: { + variant: { + default: 'border-transparent bg-primary text-primary-foreground', + secondary: 'border-transparent bg-secondary text-secondary-foreground', + destructive: 'border-transparent bg-destructive/10 text-destructive dark:bg-destructive/20', + success: 'border-transparent bg-success/10 text-success dark:bg-success/15', + warning: 'border-transparent bg-warning/15 text-warning', + outline: 'text-foreground', + }, + }, + defaultVariants: { + variant: 'default', + }, + }, +); + +function Badge({ + className, + variant, + asChild = false, + ...props +}: React.ComponentProps<'span'> & VariantProps & { asChild?: boolean }) { + const Comp = asChild ? Slot : 'span'; + return ( + + ); +} + +export { Badge, badgeVariants }; diff --git a/ui/src/components/ui/button.tsx b/ui/src/components/ui/button.tsx new file mode 100644 index 0000000..79516c5 --- /dev/null +++ b/ui/src/components/ui/button.tsx @@ -0,0 +1,56 @@ +import * as React from 'react'; +import { Slot } from '@radix-ui/react-slot'; +import { cva, type VariantProps } from 'class-variance-authority'; +import { cn } from '@/lib/utils'; + +const buttonVariants = cva( + "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive cursor-pointer", + { + variants: { + variant: { + default: 'bg-primary text-primary-foreground shadow-xs hover:bg-primary/90', + destructive: + 'bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40', + outline: + 'border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50', + secondary: 'bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80', + ghost: 'hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50', + link: 'text-primary underline-offset-4 hover:underline', + }, + size: { + default: 'h-9 px-4 py-2 has-[>svg]:px-3', + sm: 'h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5', + xs: 'h-7 rounded-md gap-1 px-2.5 text-xs has-[>svg]:px-2', + lg: 'h-10 rounded-md px-6 has-[>svg]:px-4', + icon: 'size-9', + 'icon-sm': 'size-7', + }, + }, + defaultVariants: { + variant: 'default', + size: 'default', + }, + }, +); + +function Button({ + className, + variant, + size, + asChild = false, + ...props +}: React.ComponentProps<'button'> & + VariantProps & { + asChild?: boolean; + }) { + const Comp = asChild ? Slot : 'button'; + return ( + + ); +} + +export { Button, buttonVariants }; diff --git a/ui/src/components/ui/card.tsx b/ui/src/components/ui/card.tsx new file mode 100644 index 0000000..a2c0798 --- /dev/null +++ b/ui/src/components/ui/card.tsx @@ -0,0 +1,51 @@ +import * as React from 'react'; +import { cn } from '@/lib/utils'; + +function Card({ className, ...props }: React.ComponentProps<'div'>) { + return ( +
+ ); +} + +function CardHeader({ className, ...props }: React.ComponentProps<'div'>) { + return ( +
+ ); +} + +function CardTitle({ className, ...props }: React.ComponentProps<'div'>) { + return ( +
+ ); +} + +function CardDescription({ className, ...props }: React.ComponentProps<'div'>) { + return ( +
+ ); +} + +function CardContent({ className, ...props }: React.ComponentProps<'div'>) { + return
; +} + +export { Card, CardHeader, CardTitle, CardDescription, CardContent }; diff --git a/ui/src/components/ui/dialog.tsx b/ui/src/components/ui/dialog.tsx new file mode 100644 index 0000000..212b09b --- /dev/null +++ b/ui/src/components/ui/dialog.tsx @@ -0,0 +1,104 @@ +import * as React from 'react'; +import * as DialogPrimitive from '@radix-ui/react-dialog'; +import { XIcon } from 'lucide-react'; +import { cn } from '@/lib/utils'; + +const Dialog = DialogPrimitive.Root; +const DialogTrigger = DialogPrimitive.Trigger; +const DialogClose = DialogPrimitive.Close; + +function DialogOverlay({ + className, + ...props +}: React.ComponentProps) { + return ( + + ); +} + +function DialogContent({ + className, + children, + ...props +}: React.ComponentProps) { + return ( + + + + {children} + + + Close + + + + ); +} + +function DialogHeader({ className, ...props }: React.ComponentProps<'div'>) { + return ( +
+ ); +} + +function DialogFooter({ className, ...props }: React.ComponentProps<'div'>) { + return ( +
+ ); +} + +function DialogTitle({ className, ...props }: React.ComponentProps) { + return ( + + ); +} + +function DialogDescription({ + className, + ...props +}: React.ComponentProps) { + return ( + + ); +} + +export { + Dialog, + DialogTrigger, + DialogClose, + DialogContent, + DialogHeader, + DialogFooter, + DialogTitle, + DialogDescription, +}; diff --git a/ui/src/components/ui/form.tsx b/ui/src/components/ui/form.tsx new file mode 100644 index 0000000..9db7fd1 --- /dev/null +++ b/ui/src/components/ui/form.tsx @@ -0,0 +1,134 @@ +import * as React from 'react'; +import * as LabelPrimitive from '@radix-ui/react-label'; +import { Slot } from '@radix-ui/react-slot'; +import { + Controller, + FormProvider, + useFormContext, + useFormState, + type ControllerProps, + type FieldPath, + type FieldValues, +} from 'react-hook-form'; +import { cn } from '@/lib/utils'; +import { Label } from '@/components/ui/label'; + +const Form = FormProvider; + +type FormFieldContextValue< + TFieldValues extends FieldValues = FieldValues, + TName extends FieldPath = FieldPath, +> = { + name: TName; +}; + +const FormFieldContext = React.createContext({} as FormFieldContextValue); + +function FormField< + TFieldValues extends FieldValues = FieldValues, + TName extends FieldPath = FieldPath, +>({ ...props }: ControllerProps) { + return ( + + + + ); +} + +function useFormField() { + const fieldContext = React.useContext(FormFieldContext); + const itemContext = React.useContext(FormItemContext); + const { getFieldState } = useFormContext(); + const formState = useFormState({ name: fieldContext.name }); + const fieldState = getFieldState(fieldContext.name, formState); + + if (!fieldContext) { + throw new Error('useFormField should be used within '); + } + + const { id } = itemContext; + + return { + id, + name: fieldContext.name, + formItemId: `${id}-form-item`, + formDescriptionId: `${id}-form-item-description`, + formMessageId: `${id}-form-item-message`, + ...fieldState, + }; +} + +type FormItemContextValue = { + id: string; +}; + +const FormItemContext = React.createContext({} as FormItemContextValue); + +function FormItem({ className, ...props }: React.ComponentProps<'div'>) { + const id = React.useId(); + return ( + +
+ + ); +} + +function FormLabel({ className, ...props }: React.ComponentProps) { + const { error, formItemId } = useFormField(); + return ( +