db-studio 1.22.0 → 1.22.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +55 -55
- package/dist/index.js.map +1 -1
- package/dist/web-dist/assets/{_pathlessLayout-VlxJ22m7.js → _pathlessLayout-BwDB7UH8.js} +1 -1
- package/dist/web-dist/assets/{_pathlessLayout-B1Kz-W33.js → _pathlessLayout-Dq6e_NF8.js} +2 -2
- package/dist/web-dist/assets/{_queryId-Dbj-IcwP.js → _queryId-B0DdcAYp.js} +1 -1
- package/dist/web-dist/assets/{_table-zomRrDzJ.js → _table-8PsqQd2I.js} +1 -1
- package/dist/web-dist/assets/{_table-C51xDj3B.js → _table-CEn3NlzI.js} +1 -1
- package/dist/web-dist/assets/{_table-BX2mnK0X.js → _table-CeyFxEOk.js} +1 -1
- package/dist/web-dist/assets/{abap-WFOkJ0Iq.js → abap-D7a1LaMr.js} +1 -1
- package/dist/web-dist/assets/{apex-YVFiOjrR.js → apex-DUCizuOA.js} +1 -1
- package/dist/web-dist/assets/{azcli-CNCyjR-l.js → azcli-08P0e1MB.js} +1 -1
- package/dist/web-dist/assets/{badge-toiaU9we.js → badge-Vam-1V2U.js} +1 -1
- package/dist/web-dist/assets/{bat-MCIBQfPZ.js → bat-D5u4dSiM.js} +1 -1
- package/dist/web-dist/assets/{bicep-dF6uY2qF.js → bicep-BEKH2mi6.js} +1 -1
- package/dist/web-dist/assets/{browser-tIWI45_M.js → browser-CFtnfZcn.js} +1 -1
- package/dist/web-dist/assets/{bundle-mjs-D0ioGaqI.js → bundle-mjs-Ba_GShnc.js} +1 -1
- package/dist/web-dist/assets/{cameligo-BQUsXhaa.js → cameligo-zyLkuFrC.js} +1 -1
- package/dist/web-dist/assets/{chat-sidebar-DgxY1Pbe.js → chat-sidebar-DgaJDLmC.js} +4 -4
- package/dist/web-dist/assets/{clojure-BhZRzslc.js → clojure-HAASvMw5.js} +1 -1
- package/dist/web-dist/assets/{code-editor-BZb9MYGN.js → code-editor-CnNQKM4a.js} +1 -1
- package/dist/web-dist/assets/{coffee-C8HNjPDJ.js → coffee-H0zBiaDN.js} +1 -1
- package/dist/web-dist/assets/{connect-D1_593bU.js → connect-DvvXMsnR.js} +1 -1
- package/dist/web-dist/assets/{constants-BQTFFySQ.js → constants-CyYxDPW-.js} +3 -3
- package/dist/web-dist/assets/{cpp-B8qti7_b.js → cpp-BZfon7-f.js} +1 -1
- package/dist/web-dist/assets/{csharp-C0cZzzkE.js → csharp-39w9Tlew.js} +1 -1
- package/dist/web-dist/assets/{csp-MhIFVcNf.js → csp-BvxksuL7.js} +1 -1
- package/dist/web-dist/assets/{css-DBN9tA4J.js → css-CJVemR09.js} +1 -1
- package/dist/web-dist/assets/{cssMode-BWRNCxOx.js → cssMode-DO0wgAFc.js} +1 -1
- package/dist/web-dist/assets/{cypher-DJ_pw7h5.js → cypher-Bvz6qhjG.js} +1 -1
- package/dist/web-dist/assets/{dart-F3nMHSfK.js → dart-Bik0gG49.js} +1 -1
- package/dist/web-dist/assets/{database.store-B1rRjEg4.js → database.store-DwsAyPWD.js} +2 -2
- package/dist/web-dist/assets/{dist-CVJtjQTa.js → dist-CsoBsImu.js} +1 -1
- package/dist/web-dist/assets/{dist-ChADfney.js → dist-DMyf6Dko.js} +1 -1
- package/dist/web-dist/assets/{dockerfile-CysYjGrO.js → dockerfile-CmiPMp9-.js} +1 -1
- package/dist/web-dist/assets/{ecl-DIUXSvGP.js → ecl-_UvSEdJJ.js} +1 -1
- package/dist/web-dist/assets/{editor.api-CuMlpyu0.js → editor.api-ZRrI_I0I.js} +1 -1
- package/dist/web-dist/assets/{elixir-B7ult7Ux.js → elixir-B0Z5zPx8.js} +1 -1
- package/dist/web-dist/assets/{esm-BknY1CA1.js → esm-DvPyREUh.js} +1 -1
- package/dist/web-dist/assets/{flow9-BFvvZ9ik.js → flow9-3F4_wOOf.js} +1 -1
- package/dist/web-dist/assets/{format-cell-value-DqIzj4LE.js → format-cell-value-D-naTnK8.js} +1 -1
- package/dist/web-dist/assets/{freemarker2-BhR2Ql4x.js → freemarker2-DW3uoX2z.js} +1 -1
- package/dist/web-dist/assets/{fsharp-BdsIEhwp.js → fsharp-BwHGoEdM.js} +1 -1
- package/dist/web-dist/assets/{go-DWe2xaHS.js → go-BEkNilfT.js} +1 -1
- package/dist/web-dist/assets/{graphql-kWxQb-iM.js → graphql-CLhWbOdF.js} +1 -1
- package/dist/web-dist/assets/{handlebars-CUcn1o_r.js → handlebars-CSWXmB1f.js} +1 -1
- package/dist/web-dist/assets/{hcl-JeQo50WC.js → hcl-rlt52D7g.js} +1 -1
- package/dist/web-dist/assets/{highlighted-body-OFNGDK62-BdEluyYo.js → highlighted-body-OFNGDK62-Doh9xMZT.js} +1 -1
- package/dist/web-dist/assets/{html-C_JUNAt1.js → html-DDuMQc1q.js} +1 -1
- package/dist/web-dist/assets/{htmlMode-EwQz6V0Q.js → htmlMode-CZLd9AHF.js} +1 -1
- package/dist/web-dist/assets/{icons-GcbEpn9M.js → icons-BnNQtg24.js} +1 -1
- package/dist/web-dist/assets/{index-C5X9j38l.js → index-ck6tTAHc.js} +4 -4
- package/dist/web-dist/assets/{indexes-DLb1Uw4h.js → indexes-Dd93lTvB.js} +1 -1
- package/dist/web-dist/assets/{ini-BxF77OPh.js → ini-B_HJ11CK.js} +1 -1
- package/dist/web-dist/assets/{java-35HWAIfL.js → java-sJiisr_y.js} +1 -1
- package/dist/web-dist/assets/{javascript-EhgBTSbU.js → javascript-DEDHUUwN.js} +1 -1
- package/dist/web-dist/assets/{json-editor-ByvySVR1.js → json-editor-yk4dK6or.js} +1 -1
- package/dist/web-dist/assets/{jsonMode-Dcapyp_k.js → jsonMode-BWSSz50U.js} +1 -1
- package/dist/web-dist/assets/{julia-BNuPscTy.js → julia-CKhCzNm4.js} +1 -1
- package/dist/web-dist/assets/{keys-IL-jue3e.js → keys-D6vrgtRa.js} +1 -1
- package/dist/web-dist/assets/{kotlin-WhqpDSL9.js → kotlin-DoToTuww.js} +1 -1
- package/dist/web-dist/assets/{label-DnmSND3X.js → label-DxIJiZ44.js} +1 -1
- package/dist/web-dist/assets/{less-B7ZalX3Q.js → less-BWpVNsBn.js} +1 -1
- package/dist/web-dist/assets/{lexon-Dv-iKJBo.js → lexon-DCHU-p6q.js} +1 -1
- package/dist/web-dist/assets/{liquid-xjLeLKWY.js → liquid-f2Iv2fB9.js} +1 -1
- package/dist/web-dist/assets/{logs-Dgscz_qB.js → logs-DQk3nMcE.js} +1 -1
- package/dist/web-dist/assets/{lspLanguageFeatures-txWi423T.js → lspLanguageFeatures-C-GLKDeb.js} +1 -1
- package/dist/web-dist/assets/{lua-Dw0Ng6_o.js → lua-DNCGIfAF.js} +1 -1
- package/dist/web-dist/assets/{m3-BzTFxX8n.js → m3-BnZMimxx.js} +1 -1
- package/dist/web-dist/assets/{markdown-DH-yzTwm.js → markdown-Clbw2Wwn.js} +1 -1
- package/dist/web-dist/assets/{mdx-DDFyRire.js → mdx-DgWB8wIX.js} +1 -1
- package/dist/web-dist/assets/{mermaid-GHXKKRXX-BZrvxC2B.js → mermaid-GHXKKRXX-DkUW61ZT.js} +1 -1
- package/dist/web-dist/assets/{middleware-5iFNnPjv.js → middleware-BhQeo1dQ.js} +1 -1
- package/dist/web-dist/assets/{mips-CzaU_zzk.js → mips-D_cnnY5G.js} +1 -1
- package/dist/web-dist/assets/{module-DUcNetq9.js → module-w1fnPEU7.js} +1 -1
- package/dist/web-dist/assets/{monaco-theme-CbhwGI2X.js → monaco-theme-BKlvSnyu.js} +4 -4
- package/dist/web-dist/assets/{msdax-DFJmYuq_.js → msdax-B2cS1W51.js} +1 -1
- package/dist/web-dist/assets/{mysql-BCChwFZe.js → mysql-DxrfSPeX.js} +1 -1
- package/dist/web-dist/assets/{objective-c-H6bRbDo4.js → objective-c--BCIKkyu.js} +1 -1
- package/dist/web-dist/assets/{pascal-tUfSUg9_.js → pascal-Dw621VHn.js} +1 -1
- package/dist/web-dist/assets/{pascaligo-BRyiH7-C.js → pascaligo-DismPj_H.js} +1 -1
- package/dist/web-dist/assets/{perl-2nv9yZa2.js → perl-CP4p3tPz.js} +1 -1
- package/dist/web-dist/assets/{personal-preferences.store-Bn1jjoS7.js → personal-preferences.store-D1vwYECY.js} +1 -1
- package/dist/web-dist/assets/{pgsql-Y8XdTuXS.js → pgsql-Dug71UC1.js} +1 -1
- package/dist/web-dist/assets/{php-DLR7NjyO.js → php-C5xzvzTl.js} +1 -1
- package/dist/web-dist/assets/{pla-t-iWqHXX.js → pla-BRidbwAJ.js} +1 -1
- package/dist/web-dist/assets/{postiats-DdliQ1Xg.js → postiats-BtskjtmJ.js} +1 -1
- package/dist/web-dist/assets/{powerquery-DBzKYhdM.js → powerquery-BRNFimOG.js} +1 -1
- package/dist/web-dist/assets/{powershell-BYjZe9jw.js → powershell-DtC8hmfI.js} +1 -1
- package/dist/web-dist/assets/{preload-helper-BKGvvwaw.js → preload-helper-D4DSFROY.js} +1 -1
- package/dist/web-dist/assets/{protobuf-BMpz808_.js → protobuf-F_x1Cjx3.js} +1 -1
- package/dist/web-dist/assets/{pug-m-9DaP5r.js → pug-D4dgjeKq.js} +1 -1
- package/dist/web-dist/assets/{python-ByM6owOE.js → python-DPX6MnDe.js} +1 -1
- package/dist/web-dist/assets/{qsharp-C722_gk8.js → qsharp-CcXqZf4s.js} +1 -1
- package/dist/web-dist/assets/{queries.store-DvoUxjik.js → queries.store-DPfK-_0h.js} +1 -1
- package/dist/web-dist/assets/{query-runner-JR3riBgI.js → query-runner-BKek4lAm.js} +3 -3
- package/dist/web-dist/assets/{r-MN5LGctm.js → r-BiIJXs3I.js} +1 -1
- package/dist/web-dist/assets/{radix-ui-C_RxnUOP.js → radix-ui-qEOOL1_K.js} +1 -1
- package/dist/web-dist/assets/{razor-DWh-N5ct.js → razor-oLIBzSas.js} +1 -1
- package/dist/web-dist/assets/{react-DbIG49vF.js → react-DgIpWRm8.js} +1 -1
- package/dist/web-dist/assets/{react-dom-C2TrwR2T.js → react-dom-BZ0gDQU5.js} +1 -1
- package/dist/web-dist/assets/{redis-BD0-ddb4.js → redis-DJrZMmOR.js} +1 -1
- package/dist/web-dist/assets/{redis-value-BuCNWzYH.js → redis-value-Dhm0spIW.js} +1 -1
- package/dist/web-dist/assets/{redshift-CYs4no-J.js → redshift-yzDIBhLh.js} +1 -1
- package/dist/web-dist/assets/{restructuredtext-_ytOx-UI.js → restructuredtext-CF7t2BQG.js} +1 -1
- package/dist/web-dist/assets/{rolldown-runtime-Di8pEKbV.js → rolldown-runtime-BEBKJ2Xb.js} +1 -1
- package/dist/web-dist/assets/{ruby-CAgA9FIu.js → ruby-Buzq-_Hg.js} +1 -1
- package/dist/web-dist/assets/{runner-BCzRHwKz.js → runner-Di4uLR8Z.js} +1 -1
- package/dist/web-dist/assets/{rust-PbfiuCov.js → rust-Dhjx0oUU.js} +1 -1
- package/dist/web-dist/assets/{sb-Sia-CghV.js → sb-CS7EOb-z.js} +1 -1
- package/dist/web-dist/assets/{scala-ZImQRTRc.js → scala-BXrWIpsI.js} +1 -1
- package/dist/web-dist/assets/{schema-fFTe1BzV.js → schema-CC7fIVGB.js} +1 -1
- package/dist/web-dist/assets/{schema-A-a9is-Y.js → schema-Dg-DmfQp.js} +1 -1
- package/dist/web-dist/assets/{scheme-BoZtbC5A.js → scheme-1v2Ab8rC.js} +1 -1
- package/dist/web-dist/assets/{scss-BjhuhmFV.js → scss-BuvMyI80.js} +1 -1
- package/dist/web-dist/assets/{select-M2uunOZt.js → select-CRpiKcof.js} +1 -1
- package/dist/web-dist/assets/{separator-DB8KbaN1.js → separator-UVHn5WOz.js} +1 -1
- package/dist/web-dist/assets/{sheet-sidebar-xMAbhIed.js → sheet-sidebar-C1Wgdn-M.js} +1 -1
- package/dist/web-dist/assets/{shell-D3tqEZva.js → shell-BlLMYxqc.js} +1 -1
- package/dist/web-dist/assets/{solidity-CkleyNm-.js → solidity-CApe2Ev-.js} +1 -1
- package/dist/web-dist/assets/{sophia-DE5Yfv56.js → sophia-CyZa8od3.js} +1 -1
- package/dist/web-dist/assets/{sparql-CqGQVKaz.js → sparql-CwoK2n9Y.js} +1 -1
- package/dist/web-dist/assets/{spinner-2NEuRz3N.js → spinner-CwZXU6BY.js} +1 -1
- package/dist/web-dist/assets/{sql-DRhhaTM-.js → sql-P2kzvpIo.js} +1 -1
- package/dist/web-dist/assets/{st-BEzw-XCi.js → st-cP-ZBIfp.js} +1 -1
- package/dist/web-dist/assets/{swift-BUCDz8m3.js → swift-BAgj8_oO.js} +1 -1
- package/dist/web-dist/assets/{systemverilog-CleMVTkC.js → systemverilog-bKvq7GjD.js} +1 -1
- package/dist/web-dist/assets/{table-CdX2vE_K.js → table-Dq85hQaM.js} +1 -1
- package/dist/web-dist/assets/{tables-DXy1sCpY.js → tables-DGOK-1JF.js} +4 -4
- package/dist/web-dist/assets/{tanstack-BA1WGGtm.js → tanstack-Bkos0wYR.js} +1 -1
- package/dist/web-dist/assets/{tcl-DWM_3q8Z.js → tcl-CZYhj3uE.js} +1 -1
- package/dist/web-dist/assets/{tooltip-H8tZ3i8c.js → tooltip-BGS6CdKU.js} +1 -1
- package/dist/web-dist/assets/{tsMode-DiuMLMwz.js → tsMode-CWkS0PFZ.js} +1 -1
- package/dist/web-dist/assets/{twig-C-X1D37B.js → twig-BYkhheLh.js} +1 -1
- package/dist/web-dist/assets/{typescript-Bfr8I-2Y.js → typescript-BVovNcHi.js} +1 -1
- package/dist/web-dist/assets/{typespec-C7OUJVKC.js → typespec-wOndea04.js} +1 -1
- package/dist/web-dist/assets/{use-database-engine-OQf6N706.js → use-database-engine-BPO0PzHc.js} +1 -1
- package/dist/web-dist/assets/{use-theme-DWjF47vb.js → use-theme-DQtr7wmG.js} +1 -1
- package/dist/web-dist/assets/{utils-nVh8q9zh.js → utils-CwFw8YqE.js} +1 -1
- package/dist/web-dist/assets/{vb-DyBFoTZO.js → vb-DI947VUc.js} +1 -1
- package/dist/web-dist/assets/{visualizer-iAzNS5sw.js → visualizer-CWs82Oat.js} +1 -1
- package/dist/web-dist/assets/{vscode-C1sSF23w.js → vscode-DfeEYiA3.js} +1 -1
- package/dist/web-dist/assets/{wgsl-5-zJj1gX.js → wgsl-CxEBKz2H.js} +1 -1
- package/dist/web-dist/assets/{workers-CzfLEsle.js → workers-DtzEtdkU.js} +1 -1
- package/dist/web-dist/assets/{xml-CJ62tlSX.js → xml-B8wczl4_.js} +1 -1
- package/dist/web-dist/assets/{yaml-DCMtlpln.js → yaml-DbwQqCV9.js} +1 -1
- package/dist/web-dist/index.html +30 -30
- package/package.json +1 -1
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/_pathlessLayout-
|
|
2
|
-
import{r as Ir,t as bl}from"./rolldown-runtime-Di8pEKbV.js";import{C as Dt,D as Vh,E as Js,O as Kh,T as Yh,_ as Wh,b as Xh,c as Qh,d as Jh,f as xl,g as wr,h as Zh,m as we,p as Ee,s as Sl,t as ef,u as tf,v as Zs,w as $t,x as nf}from"./tanstack-BA1WGGtm.js";import{A as rf,At as sf,C as of,Ct as Il,D as af,Dt as lf,E as Vo,F as cf,H as eo,It as uf,J as df,L as hf,M as ff,Mt as pf,N as gf,Nt as mf,O as vf,R as Ko,St as yf,V as wl,W as bf,_ as xf,b as El,ct as Sf,dt as If,f as Ss,ft as wf,ht as Ef,i as Cf,it as Is,j as Nf,k as Rf,n as _f,o as Tf,ot as Yr,p as Af,rt as Yo,s as Mf,tt as kf,v as Of,w as jf,xt as Pf,y as Lf}from"./icons-GcbEpn9M.js";import{At as Df,d as $f,f as Ff,jt as zf,u as Hf}from"./radix-ui-C_RxnUOP.js";import{t as Bf}from"./react-dom-C2TrwR2T.js";import{n as he,t as Gf}from"./dist-CVJtjQTa.js";import{t as me}from"./utils-nVh8q9zh.js";import{t as to}from"./spinner-2NEuRz3N.js";import{a as Uf,i as qf,n as ws,o as Es,r as Vf,s as Kf}from"./dist-ChADfney.js";import{A as Yf,B as se,D as Wf,E as Cl,F as Xf,H as tn,I as Qf,L as Nl,M as Jf,N as qe,O as Zf,P as Er,R as ot,T as ep,U as tp,V as Rl,a as np,c as _l,d as Tl,f as rp,h as Al,i as sp,j as Cs,k as Qt,m as op,n as ip,o as ap,p as lp,r as cp,s as Ml,u as Zn,v as up,w as dp,z as kl}from"./schema-A-a9is-Y.js";import{n as no,t as fe}from"./label-DnmSND3X.js";import{a as ut,c as Ol,o as dt}from"./tooltip-H8tZ3i8c.js";import{a as hp,i as fp,n as pp,o as gp,t as jl}from"./sheet-sidebar-xMAbhIed.js";import{a as mp,d as Je,i as vp,l as yp,n as bp,r as Pl,s as Ll}from"./tables-DXy1sCpY.js";import{t as Dl}from"./react-DbIG49vF.js";import{F as xp,G as Sp,I as Ip,L as wp,M as Ep,N as Cp,P as $l,R as Np,U as Fl,W as zl,f as Rp,g as _p,s as Tp,t as ct,z as Ap}from"./constants-BQTFFySQ.js";import{_ as nn,b as St,c as Mp,d as Wo,f as Xo,g as Qo,h as Jo,i as Cr,l as kp,r as Op,s as vn,t as ft,v as ro,y as jp}from"./database.store-B1rRjEg4.js";import{t as Ce}from"./preload-helper-BKGvvwaw.js";import{a as Pp,i as Lp,m as Dp,n as $p}from"./badge-toiaU9we.js";import{a as Ft,i as zt,n as Ht,r as ht,t as Bt}from"./select-M2uunOZt.js";import{t as Fp}from"./use-database-engine-OQf6N706.js";import{n as er,r as tr,s as Ns}from"./keys-IL-jue3e.js";import{n as Hl,t as zp}from"./separator-DB8KbaN1.js";import{t as Hp}from"./middleware-5iFNnPjv.js";import{n as Bp,r as Bl,t as Gp}from"./personal-preferences.store-Bn1jjoS7.js";import{t as so}from"./use-theme-DWjF47vb.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};e.SENTRY_RELEASE={id:"db-studio@1.22.0"};var t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="763a3cb0-0bc1-49e5-9dbd-ee6e6fb98b54",e._sentryDebugIdIdentifier="sentry-dbid-763a3cb0-0bc1-49e5-9dbd-ee6e6fb98b54")}catch{}})();(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const o of s)if(o.type==="childList")for(const i of o.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&r(i)}).observe(document,{childList:!0,subtree:!0});function n(s){const o={};return s.integrity&&(o.integrity=s.integrity),s.referrerPolicy&&(o.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?o.credentials="include":s.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function r(s){if(s.ep)return;s.ep=!0;const o=n(s);fetch(s.href,o)}})();var C=Ir(uf(),1),Up=Ir(Bf(),1),Wr,Zo=()=>new Vh({defaultOptions:{queries:{staleTime:3e4,gcTime:3e5,retry:0,retryDelay:e=>Math.min(1e3*2**e,3e4),refetchOnWindowFocus:!1,refetchOnMount:!1,refetchOnReconnect:!0},mutations:{retry:0,networkMode:"online"},dehydrate:{shouldDehydrateQuery:e=>Kh(e)||e.state.status==="pending"}}}),Gl=()=>typeof window>"u"?Zo():(Wr||(Wr=Zo()),Wr),qp=(e,t,n,r,s,o,i,a)=>{let l=document.documentElement,c=["light","dark"];function u(p){(Array.isArray(e)?e:[e]).forEach(g=>{let y=g==="class",x=y&&o?s.map(v=>o[v]||v):s;y?(l.classList.remove(...x),l.classList.add(o&&o[p]?o[p]:p)):l.setAttribute(g,p)}),f(p)}function f(p){a&&c.includes(p)&&(l.style.colorScheme=p)}function d(){return window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}if(r)u(r);else try{let p=localStorage.getItem(t)||n;u(i&&p==="system"?d():p)}catch{}},Vp=C.createContext(void 0),Kp={setTheme:e=>{},themes:[]},Yp=()=>{var e;return(e=C.useContext(Vp))!=null?e:Kp},C_=C.memo(({forcedTheme:e,storageKey:t,attribute:n,enableSystem:r,enableColorScheme:s,defaultTheme:o,value:i,themes:a,nonce:l,scriptProps:c})=>{let u=JSON.stringify([n,t,o,e,a,i,r,s]).slice(1,-1);return C.createElement("script",{...c,suppressHydrationWarning:!0,nonce:typeof window>"u"?l:"",dangerouslySetInnerHTML:{__html:`(${qp.toString()})(${u})`}})}),h=zf(),Wp=({...e})=>{const{theme:t="system"}=Yp();return(0,h.jsx)(Gf,{theme:t,className:"toaster group",icons:{success:(0,h.jsx)(Ef,{className:"size-4 text-emerald-500"}),info:(0,h.jsx)(bf,{className:"size-4 text-blue-500"}),warning:(0,h.jsx)(Tf,{className:"size-4 text-amber-500"}),error:(0,h.jsx)(ff,{className:"size-4 text-red-500"}),loading:(0,h.jsx)(hf,{className:"size-4 animate-spin text-blue-500"})},style:{"--normal-bg":"var(--popover)","--normal-text":"var(--popover-foreground)","--normal-border":"var(--border)","--border-radius":"var(--radius)"},toastOptions:{classNames:{toast:"cn-toast"}},...e})};function ei(e,t,n){return r=>{if(!(t.length===0||t.some(o=>!Vf(r.getAll(o),e.getAll(o)))))return Es("[nuqs `%s`] no change, returning previous",t.join(","),r),r;const s=Ul(e,t,n);return Es("[nuqs `%s`] subbed search params change\n from %O\n to %O",t.join(","),r,s),s}}function Ul(e,t,n){if(t.length===0)return e;const r=n?new URLSearchParams(e):e;for(const s of e.keys())t.includes(s)||r.delete(s);return r}var Xp="__nuqs__",Rs=qf();function Qp(e){return function(n,r){const s=new URL(location.href);s.search=Kf(n),Es("[nuqs react] Updating url: %s",s),e&&r.shallow===!1?(r.history==="push"?location.assign:location.replace).call(location,s):(r.history==="push"?history.pushState:history.replaceState).call(history,history.state,Xp,s),Rs.emit("update",n),r.scroll===!0&&window.scrollTo({top:0})}}var ql=(0,C.createContext)({fullPageNavigationOnShallowFalseUpdates:!1});function Jp(e){const{fullPageNavigationOnShallowFalseUpdates:t}=(0,C.useContext)(ql),[n,r]=(0,C.useState)(()=>typeof location>"u"?new URLSearchParams:Ul(new URLSearchParams(location.search),e,!1));return(0,C.useEffect)(()=>{const s=()=>{r(ei(new URLSearchParams(location.search),e,!1))},o=i=>{r(ei(i,e,!0))};return Rs.on("update",o),window.addEventListener("popstate",s),()=>{Rs.off("update",o),window.removeEventListener("popstate",s)}},[e.join("&")]),{searchParams:n,updateUrl:(0,C.useMemo)(()=>Qp(t),[t])}}var Zp=Uf(Jp);function eg({children:e,fullPageNavigationOnShallowFalseUpdates:t=!1,...n}){return(0,C.createElement)(ql.Provider,{value:{fullPageNavigationOnShallowFalseUpdates:t}},(0,C.createElement)(Zp,{...n,children:e}))}var tg=Dl()(e=>({pendingPrompt:null,requestAssistant:t=>e({pendingPrompt:t}),consumePrompt:()=>e({pendingPrompt:null})})),ng=()=>{const{selectedDatabase:e}=ft(),{mutateAsync:t,isPending:n}=Dt({mutationFn:async({tableName:s,schemaName:o})=>{const i=(await _p(s,e,o)).data.data.schema;return await navigator.clipboard.writeText(i),i}});return{copyTableSchema:async(s,o)=>he.promise(t({tableName:s,schemaName:o}),{loading:"Copying table schema...",success:"Table schema copied to clipboard",error:i=>i.message||"Failed to copy table schema"}),isCopyingSchema:n}},rg=({index:e})=>{const{control:t,watch:n}=qe(),r=n("fields")?.filter(o=>o.columnName?.trim()),s=n(`fields.${e}.columnName`);return(0,h.jsx)(Qt,{control:t,name:`foreignKeys.${e}`,render:({field:o})=>(0,h.jsx)("div",{className:"flex flex-col gap-2 flex-1",children:(0,h.jsxs)(Bt,{defaultValue:s||"none",value:o.value?.columnName,onValueChange:i=>o.onChange({...o.value,columnName:i}),children:[(0,h.jsx)(zt,{className:"w-full flex-1",children:(0,h.jsx)(Ft,{placeholder:r?.length?"Select a column":"No columns found"})}),(0,h.jsx)(Ht,{children:r?.length>0?r.map(i=>(0,h.jsx)(ht,{value:i.columnName,children:i.columnName},i.columnName)):(0,h.jsx)(ht,{value:"none",disabled:!0,children:"No columns found"})})]})})})},sg=({index:e,tableName:t})=>{const{tableCols:n,isLoadingTableCols:r}=dp({tableName:t,schemaName:void 0}),{control:s}=qe();return Er({control:s,name:`foreignKeys.${e}`})?(0,h.jsx)(Qt,{control:s,name:`foreignKeys.${e}`,render:({field:o})=>(0,h.jsxs)(Bt,{value:o.value?.referencedColumn,onValueChange:i=>o.onChange({...o.value,referencedColumn:i}),disabled:r,children:[(0,h.jsx)(zt,{className:"w-full flex-1",disabled:r||!n?.length,children:(0,h.jsx)(Ft,{placeholder:n?.length?"Select a column":"No columns found"})}),(0,h.jsx)(Ht,{children:n&&n.length>0&&r?(0,h.jsx)(ht,{value:"none",disabled:!0,children:"No columns found"}):n?.flatMap(i=>i.columnName?.trim()?[(0,h.jsx)(ht,{value:i.columnName,children:i.columnName},i.columnName)]:[])})]})}):null},og=({index:e})=>{const{control:t}=qe();return(0,h.jsx)(Qt,{control:t,name:`foreignKeys.${e}.onDelete`,defaultValue:"NO ACTION",render:({field:n})=>(0,h.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,h.jsx)(fe,{htmlFor:`foreignKeys.${e}.onDelete`,children:"Action if referenced row is deleted"}),(0,h.jsxs)(Bt,{value:n.value,onValueChange:r=>n.onChange(r),children:[(0,h.jsx)(zt,{className:"w-full flex-1",children:(0,h.jsx)(Ft,{placeholder:"Select an action"})}),(0,h.jsx)(Ht,{children:Cl.map(r=>(0,h.jsx)(ht,{value:r.value,children:r.label},r.value))})]})]})})},ig=({index:e})=>{const{control:t}=qe();return(0,h.jsx)(Qt,{control:t,name:`foreignKeys.${e}.onUpdate`,defaultValue:"NO ACTION",render:({field:n})=>(0,h.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,h.jsx)(fe,{htmlFor:`foreignKeys.${e}.onUpdate`,children:"Action if referenced row is updated"}),(0,h.jsxs)(Bt,{value:n.value,onValueChange:r=>n.onChange(r),children:[(0,h.jsx)(zt,{className:"w-full flex-1",children:(0,h.jsx)(Ft,{placeholder:"Select an action"})}),(0,h.jsx)(Ht,{children:Cl.map(r=>(0,h.jsx)(ht,{value:r.value,children:r.label},r.value))})]})]})})},ag=({index:e})=>{const{control:t,watch:n}=qe(),r=n(`foreignKeys.${e}.referencedTable`),s=Er({control:t,name:`foreignKeys.${e}`});return!r||!s?null:(0,h.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,h.jsxs)("p",{className:"text-xs text-muted-foreground",children:["Select columns from"," ",(0,h.jsx)("span",{className:"font-mono text-primary",children:s.referencedTable||"Unnamed table"})," ","to reference to"]}),(0,h.jsxs)("div",{className:"space-y-2",children:[(0,h.jsxs)("div",{className:"grid grid-cols-2 gap-2",children:[(0,h.jsx)(fe,{htmlFor:`foreignKeys.${e}.columnName`,children:n("tableName")||"Unnamed table"}),(0,h.jsx)(fe,{htmlFor:`foreignKeys.${e}.referencedColumn`,children:s.referencedTable||"Unnamed table"})]}),(0,h.jsxs)("div",{className:"grid grid-cols-2 gap-2",children:[(0,h.jsxs)("div",{className:"flex items-center gap-2 flex-1",children:[(0,h.jsx)(rg,{index:e}),(0,h.jsx)(pf,{className:"size-4 aspect-square text-muted-foreground"})]}),(0,h.jsx)("div",{className:"flex items-center gap-2 flex-1",children:(0,h.jsx)(sg,{index:e,tableName:s.referencedTable})})]}),(0,h.jsx)("hr",{className:"my-8 border-border"}),(0,h.jsxs)("div",{className:"flex flex-col gap-6",children:[(0,h.jsx)(ig,{index:e}),(0,h.jsx)(og,{index:e})]})]})]})},lg=({index:e})=>{const[t,n]=(0,C.useState)(!1),{tablesList:r,isLoadingTablesList:s}=Ll(),{control:o,watch:i,setValue:a,getValues:l}=qe(),c=i(`fields.${e}.columnName`),u=()=>{const f=l("foreignKeys")||[];if(!f[e]){const d=[...f];d.push({columnName:"",referencedTable:"",referencedColumn:"",onUpdate:"NO ACTION",onDelete:"NO ACTION"}),a("foreignKeys",d)}};return(0,h.jsx)(Qt,{control:o,name:`foreignKeys.${e}`,render:({field:f})=>(0,h.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,h.jsx)(fe,{htmlFor:"referencedTable",children:"Select a table to reference to"}),(0,h.jsxs)($p,{modal:!0,onOpenChange:d=>{d&&u(),n(d)},open:t,children:[(0,h.jsx)(Pp,{asChild:!0,children:(0,h.jsxs)(dt,{"aria-expanded":t,"aria-controls":"referencedTable-listbox",className:"w-full justify-between border-input bg-background px-3 font-normal outline-none outline-offset-0 hover:bg-background focus-visible:outline-[3px]",id:"referencedTable",role:"combobox",variant:"outline",disabled:s,children:[(0,h.jsx)("span",{className:me("truncate",!f.value?.referencedTable&&"text-muted-foreground"),children:f.value?.referencedTable||"---"}),(0,h.jsx)(yf,{"aria-hidden":"true",className:"shrink-0 text-muted-foreground/80",size:16})]})}),(0,h.jsx)(Lp,{id:"referencedTable-listbox",align:"start",className:"w-full min-w-(--radix-popper-anchor-width) border-input p-0",children:(0,h.jsxs)(Xf,{children:[(0,h.jsx)(kl,{placeholder:"Search table..."}),(0,h.jsxs)(Rl,{children:[(0,h.jsx)(Nl,{children:"No table found."}),(0,h.jsx)(ot,{children:r?.map(d=>(0,h.jsxs)(se,{onSelect:()=>{f.onChange({...f.value,referencedTable:d.tableName}),a(`foreignKeys.${e}.columnName`,c),n(!1)},value:d.tableName,children:[d.tableName,f.value?.referencedTable===d.tableName&&(0,h.jsx)(Il,{className:"ml-auto",size:16})]},d.tableName))})]})]})})]})]})})},cg=({index:e})=>{const{closeOverlay:t,isOverlayOpen:n}=ut(),{control:r}=qe(),{remove:s}=Cs({control:r,name:"foreignKeys"}),o=()=>{s(e),t(`table-builder.add-foreign-key-${e}`)};return(0,h.jsx)(pp,{open:n(`table-builder.add-foreign-key-${e}`),onOpenChange:i=>{i||t(`table-builder.add-foreign-key-${e}`)},children:(0,h.jsxs)(fp,{className:"max-w-lg!",children:[(0,h.jsx)(hp,{children:(0,h.jsx)(gp,{children:"Add foreign key relationship"})}),(0,h.jsxs)("div",{className:"flex flex-col justify-between px-5 py-6 h-full flex-1",children:[(0,h.jsxs)("div",{className:"space-y-6 flex-1",children:[(0,h.jsx)(lg,{index:e}),(0,h.jsx)(ag,{index:e})]}),(0,h.jsx)(dt,{type:"button",variant:"outline",size:"sm",onClick:o,children:(0,h.jsx)("span",{className:"text-xs",children:"Reset Foreign Key"})})]})]})})},ti=({index:e,onRemove:t,canRemove:n})=>{const{control:r}=qe(),s=Er({control:r,name:`fields.${e}.isPrimaryKey`});return(0,h.jsxs)("div",{className:"grid grid-cols-4 gap-4",children:[(0,h.jsx)(np,{index:e}),(0,h.jsx)(ep,{index:e}),(0,h.jsx)(sp,{index:e}),(0,h.jsxs)("div",{className:"flex gap-2",children:[(0,h.jsx)(cp,{index:e}),(0,h.jsx)(ap,{index:e,isDisabled:!!s}),(0,h.jsx)("div",{className:"flex items-end justify-center",children:(0,h.jsx)(dt,{type:"button",variant:"ghost",className:"size-9",onClick:t,disabled:!n,children:(0,h.jsx)(_f,{className:"size-4"})})}),(0,h.jsx)(cg,{index:e})]})]})},ug=()=>{const{control:e}=qe(),{fields:t,append:n,remove:r}=Cs({control:e,name:"fields"}),{remove:s}=Cs({control:e,name:"foreignKeys"}),o=Er({control:e,name:"fields"}),i=()=>{n({columnName:"",columnType:"",defaultValue:"",isPrimaryKey:!1,isNullable:!0,isUnique:!1,isIdentity:!1,isArray:!1})},a=u=>{t.length>1&&(r(u),s(u))},l=t.reduce((u,f,d)=>(o?.[d]?.isPrimaryKey&&u.push({field:f,index:d}),u),[]),c=t.reduce((u,f,d)=>(o?.[d]?.isPrimaryKey||u.push({field:f,index:d}),u),[]);return(0,h.jsxs)("div",{className:"space-y-2",children:[l.length>1&&(0,h.jsx)(Dp,{variant:"info",title:"Composite primary key selected",className:"mb-6"}),(0,h.jsxs)("div",{className:"grid grid-cols-4 px-2",children:[(0,h.jsx)(fe,{className:"text-xs",children:"Column Name"}),(0,h.jsx)(fe,{className:"text-xs",children:"Column Type"}),(0,h.jsx)(fe,{className:"text-xs",children:"Default Value"}),(0,h.jsx)(fe,{className:"text-xs",children:"Primary"})]}),(0,h.jsxs)("div",{className:"space-y-2",children:[l.length>0&&(0,h.jsx)("div",{className:"bg-primary/10 rounded-lg px-2 py-3 space-y-2",children:l.map(({field:u,index:f})=>(0,h.jsx)(ti,{index:f,onRemove:()=>a(f),canRemove:t.length>1},u.id))}),c.length>0&&(0,h.jsx)("div",{className:"space-y-2 px-2 py-3",children:c.map(({field:u,index:f})=>(0,h.jsx)(ti,{index:f,onRemove:()=>a(f),canRemove:t.length>1},u.id))})]}),(0,h.jsx)("div",{className:"border border-dashed border-input rounded-lg flex justify-center items-center p-6",children:(0,h.jsx)(dt,{type:"button",variant:"secondary",size:"sm",onClick:i,children:"Add New Column"})})]})};function N_({className:e,...t}){return(0,h.jsx)("div",{"data-slot":"field-group",className:me("gap-4 data-[slot=checkbox-group]:gap-3 [&>[data-slot=field-group]]:gap-4 group/field-group @container/field-group flex w-full flex-col",e),...t})}var dg=Ol("data-[invalid=true]:text-destructive gap-2 group/field flex w-full",{variants:{orientation:{vertical:"flex-col [&>*]:w-full [&>.sr-only]:w-auto",horizontal:"flex-row items-center [&>[data-slot=field-label]]:flex-auto has-[>[data-slot=field-content]]:items-start has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px",responsive:"flex-col [&>*]:w-full [&>.sr-only]:w-auto @md/field-group:flex-row @md/field-group:items-center @md/field-group:[&>*]:w-auto @md/field-group:[&>[data-slot=field-label]]:flex-auto @md/field-group:has-[>[data-slot=field-content]]:items-start @md/field-group:has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px"}},defaultVariants:{orientation:"vertical"}});function R_({className:e,orientation:t="vertical",...n}){return(0,h.jsx)("div",{role:"group","data-slot":"field","data-orientation":t,className:me(dg({orientation:t}),e),...n})}function __({className:e,...t}){return(0,h.jsx)(fe,{"data-slot":"field-label",className:me("has-data-checked:bg-primary/5 dark:has-data-checked:bg-primary/10 gap-2 group-data-[disabled=true]/field:opacity-50 has-[>[data-slot=field]]:rounded-sm has-[>[data-slot=field]]:border [&>*]:data-[slot=field]:p-2 group/field-label peer/field-label flex w-fit leading-snug","has-[>[data-slot=field]]:w-full has-[>[data-slot=field]]:flex-col",e),...t})}function T_({className:e,...t}){return(0,h.jsx)("p",{"data-slot":"field-description",className:me("text-muted-foreground text-left text-xs/relaxed [[data-variant=legend]+&]:-mt-1.5 leading-normal font-normal group-has-[[data-orientation=horizontal]]/field:text-balance","last:mt-0 nth-last-2:-mt-1","[&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4",e),...t})}var hg=C.memo(function({errors:t}){const n=[...new Map(t.map(r=>[r?.message,r])).values()];return n.length===1?(0,h.jsx)(h.Fragment,{children:n[0]?.message}):(0,h.jsx)("ul",{className:"ml-4 flex list-disc flex-col gap-1",children:n.map((r,s)=>r?.message&&(0,h.jsx)("li",{children:r.message},r?.message??s))})});function fg({className:e,children:t,errors:n,...r}){return t!=null||(n?.length??0)>0?(0,h.jsx)("div",{role:"alert","data-slot":"field-error",className:me("text-destructive text-xs/relaxed font-normal",e),...r,children:t??(n&&(0,h.jsx)(hg,{errors:n}))}):null}var pg=()=>{const{control:e,register:t,formState:{errors:n}}=qe();return(0,h.jsx)(Qt,{control:e,name:"tableName",render:()=>(0,h.jsxs)("div",{className:"flex gap-24 px-2",children:[(0,h.jsx)(fe,{htmlFor:"tableName",children:"Table Name"}),(0,h.jsxs)("div",{className:"flex-1 space-y-1",children:[(0,h.jsx)(no,{id:"tableName",...t("tableName",{required:"Table name is required"}),className:n.tableName?"border-destructive ring-destructive ring-1":""}),n.tableName&&(0,h.jsx)(fg,{errors:[n.tableName]})]})]})})},gg=()=>{const{closeOverlay:e}=ut(),t=Js(),{selectedDatabase:n,dbType:r}=ft(),{mutateAsync:s,isPending:o}=Dt({mutationFn:async a=>(await Tp(a,n)).data.data,onSuccess:async()=>{await Promise.all([t.invalidateQueries({queryKey:Ns.lists()}),t.invalidateQueries({queryKey:Ns.columns()})]),e("table-builder.create-table"),r&&Cr.capture("table_created",{db_type:r})}});return{createTable:async(a,l)=>he.promise(s(a,l),{loading:"Creating table...",success:c=>c||"Table created successfully",error:c=>c.detail||c.message||"Failed to create table"}),isCreatingTable:o}},mg=ro({columnName:St().min(1,"Column name is required"),columnType:St().min(1,"Column type is required"),defaultValue:St(),isPrimaryKey:nn(),isNullable:nn(),isUnique:nn(),isIdentity:nn(),isArray:nn()}),vg=ro({columnName:St().min(1,"Column name is required"),referencedTable:St().min(1,"Referenced table is required"),referencedColumn:St().min(1,"Referenced column is required"),onUpdate:Jo(["CASCADE","SET NULL","SET DEFAULT","RESTRICT","NO ACTION"]).default("NO ACTION"),onDelete:Jo(["CASCADE","SET NULL","SET DEFAULT","RESTRICT","NO ACTION"]).default("NO ACTION")}),yg=ro({tableName:St().min(1,"Table name is required"),fields:Qo(mg).min(1,"At least one column is required"),foreignKeys:jp(e=>{if(Array.isArray(e))return e.filter(t=>t==null?!1:typeof t=="object"?t.columnName&&t.referencedTable&&t.referencedColumn:!1)},Qo(vg).optional())}),bg={tableName:"",fields:[{columnName:"",columnType:"",defaultValue:"",isPrimaryKey:!1,isNullable:!0,isUnique:!1,isIdentity:!1,isArray:!1}],foreignKeys:void 0},xg=()=>{const{closeOverlay:e,isOverlayOpen:t}=ut(),{createTable:n,isCreatingTable:r}=gg(),s=Jf({mode:"onSubmit",defaultValues:bg,resolver:Zf(yg)}),o=async l=>{const c={...l,foreignKeys:l.foreignKeys?.filter(u=>u===null?!0:u.columnName&&u.referencedTable&&u.referencedColumn)};try{await n(c,{onSuccess:()=>{s.reset()},onError:u=>{console.error("Error creating table:",u)}})}catch(u){console.error("Error creating table:",u)}},i=l=>{if(l.tableName?.message){he.error(l.tableName.message);return}if(l.fields&&Array.isArray(l.fields))for(const c of l.fields){if(c?.columnName?.message){he.error(c.columnName.message);return}if(c?.columnType?.message){he.error(c.columnType.message);return}}if(l.foreignKeys&&Array.isArray(l.foreignKeys))for(const c of l.foreignKeys){if(c?.columnName?.message){he.error(c.columnName.message);return}if(c?.referencedTable?.message){he.error(c.referencedTable.message);return}if(c?.referencedColumn?.message){he.error(c.referencedColumn.message);return}}he.error("Please check the form for errors")},a=()=>{s.reset(),e("table-builder.create-table")};return(0,h.jsx)(jl,{title:"Create a new table",open:t("table-builder.create-table"),onOpenChange:l=>{l||a()},children:(0,h.jsx)(Yf,{...s,children:(0,h.jsxs)("form",{onSubmit:s.handleSubmit(o,i),className:"space-y-6",children:[(0,h.jsx)(pg,{}),(0,h.jsx)(ug,{}),(0,h.jsx)(Wf,{onCancel:a,isLoading:r})]})})})},Vl=Object.defineProperty,Sg=(e,t,n)=>t in e?Vl(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Ig=(e,t)=>{for(var n in t)Vl(e,n,{get:t[n],enumerable:!0})},wg=(e,t,n)=>Sg(e,typeof t!="symbol"?t+"":t,n),Kl={};Ig(Kl,{Graph:()=>Ve,alg:()=>io});var Eg=Object.defineProperty,Yl=(e,t)=>{for(var n in t)Eg(e,n,{get:t[n],enumerable:!0})},oo=class{constructor(e){this._isDirected=!0,this._isMultigraph=!1,this._isCompound=!1,this._nodes={},this._in={},this._preds={},this._out={},this._sucs={},this._edgeObjs={},this._edgeLabels={},this._nodeCount=0,this._edgeCount=0,this._defaultNodeLabelFn=()=>{},this._defaultEdgeLabelFn=()=>{},e&&(this._isDirected="directed"in e?e.directed:!0,this._isMultigraph="multigraph"in e?e.multigraph:!1,this._isCompound="compound"in e?e.compound:!1),this._isCompound&&(this._parent={},this._children={},this._children["\0"]={})}isDirected(){return this._isDirected}isMultigraph(){return this._isMultigraph}isCompound(){return this._isCompound}setGraph(e){return this._label=e,this}graph(){return this._label}setDefaultNodeLabel(e){return typeof e!="function"?this._defaultNodeLabelFn=()=>e:this._defaultNodeLabelFn=e,this}nodeCount(){return this._nodeCount}nodes(){return Object.keys(this._nodes)}sources(){return this.nodes().filter(e=>Object.keys(this._in[e]).length===0)}sinks(){return this.nodes().filter(e=>Object.keys(this._out[e]).length===0)}setNodes(e,t){return e.forEach(n=>{t!==void 0?this.setNode(n,t):this.setNode(n)}),this}setNode(e,t){return e in this._nodes?(arguments.length>1&&(this._nodes[e]=t),this):(this._nodes[e]=arguments.length>1?t:this._defaultNodeLabelFn(e),this._isCompound&&(this._parent[e]="\0",this._children[e]={},this._children["\0"][e]=!0),this._in[e]={},this._preds[e]={},this._out[e]={},this._sucs[e]={},++this._nodeCount,this)}node(e){return this._nodes[e]}hasNode(e){return e in this._nodes}removeNode(e){if(e in this._nodes){let t=n=>this.removeEdge(this._edgeObjs[n]);delete this._nodes[e],this._isCompound&&(this._removeFromParentsChildList(e),delete this._parent[e],this.children(e).forEach(n=>{this.setParent(n)}),delete this._children[e]),Object.keys(this._in[e]).forEach(t),delete this._in[e],delete this._preds[e],Object.keys(this._out[e]).forEach(t),delete this._out[e],delete this._sucs[e],--this._nodeCount}return this}setParent(e,t){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(t===void 0)t="\0";else{t+="";for(let n=t;n!==void 0;n=this.parent(n))if(n===e)throw new Error("Setting "+t+" as parent of "+e+" would create a cycle");this.setNode(t)}return this.setNode(e),this._removeFromParentsChildList(e),this._parent[e]=t,this._children[t][e]=!0,this}parent(e){if(this._isCompound){let t=this._parent[e];if(t!=="\0")return t}}children(e="\0"){if(this._isCompound){let t=this._children[e];if(t)return Object.keys(t)}else{if(e==="\0")return this.nodes();if(this.hasNode(e))return[]}return[]}predecessors(e){let t=this._preds[e];if(t)return Object.keys(t)}successors(e){let t=this._sucs[e];if(t)return Object.keys(t)}neighbors(e){let t=this.predecessors(e);if(t){let n=new Set(t),r=this.successors(e);if(r)for(let s of r)n.add(s);return Array.from(n.values())}}isLeaf(e){var t;let n;return this.isDirected()?n=this.successors(e):n=this.neighbors(e),((t=n?.length)!=null?t:0)===0}filterNodes(e){let t=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});t.setGraph(this.graph()),Object.entries(this._nodes).forEach(([s,o])=>{e(s)&&t.setNode(s,o)}),Object.values(this._edgeObjs).forEach(s=>{t.hasNode(s.v)&&t.hasNode(s.w)&&t.setEdge(s,this.edge(s))});let n={},r=s=>{let o=this.parent(s);return!o||t.hasNode(o)?(n[s]=o,o):o in n?n[o]:r(o)};return this._isCompound&&t.nodes().forEach(s=>t.setParent(s,r(s))),t}setDefaultEdgeLabel(e){return typeof e!="function"?this._defaultEdgeLabelFn=()=>e:this._defaultEdgeLabelFn=e,this}edgeCount(){return this._edgeCount}edges(){return Object.values(this._edgeObjs)}setPath(e,t){return e.reduce((n,r)=>(t!==void 0?this.setEdge(n,r,t):this.setEdge(n,r),r)),this}setEdge(e,t,n,r){let s,o,i,a,l=!1;typeof e=="object"&&e!==null&&"v"in e?(s=e.v,o=e.w,i=e.name,arguments.length===2&&(a=t,l=!0)):(s=e,o=t,i=r,arguments.length>2&&(a=n,l=!0)),s=""+s,o=""+o,i!==void 0&&(i=""+i);let c=an(this._isDirected,s,o,i);if(c in this._edgeLabels)return l&&(this._edgeLabels[c]=a),this;if(i!==void 0&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(s),this.setNode(o),this._edgeLabels[c]=l?a:this._defaultEdgeLabelFn(s,o,i);let u=Cg(this._isDirected,s,o,i);return s=u.v,o=u.w,Object.freeze(u),this._edgeObjs[c]=u,ni(this._preds[o],s),ni(this._sucs[s],o),this._in[o][c]=u,this._out[s][c]=u,this._edgeCount++,this}edge(e,t,n){let r=arguments.length===1?Xr(this._isDirected,e):an(this._isDirected,e,t,n);return this._edgeLabels[r]}edgeAsObj(e,t,n){let r=arguments.length===1?this.edge(e):this.edge(e,t,n);return typeof r!="object"||r===null?{label:r}:r}hasEdge(e,t,n){return(arguments.length===1?Xr(this._isDirected,e):an(this._isDirected,e,t,n))in this._edgeLabels}removeEdge(e,t,n){let r=arguments.length===1?Xr(this._isDirected,e):an(this._isDirected,e,t,n),s=this._edgeObjs[r];if(s){let o=s.v,i=s.w;delete this._edgeLabels[r],delete this._edgeObjs[r],ri(this._preds[i],o),ri(this._sucs[o],i),delete this._in[i][r],delete this._out[o][r],this._edgeCount--}return this}inEdges(e,t){return this.isDirected()?this.filterEdges(this._in[e],e,t):this.nodeEdges(e,t)}outEdges(e,t){return this.isDirected()?this.filterEdges(this._out[e],e,t):this.nodeEdges(e,t)}nodeEdges(e,t){if(e in this._nodes)return this.filterEdges({...this._in[e],...this._out[e]},e,t)}_removeFromParentsChildList(e){delete this._children[this._parent[e]][e]}filterEdges(e,t,n){if(!e)return;let r=Object.values(e);return n?r.filter(s=>s.v===t&&s.w===n||s.v===n&&s.w===t):r}};function ni(e,t){e[t]?e[t]++:e[t]=1}function ri(e,t){e[t]!==void 0&&!--e[t]&&delete e[t]}function an(e,t,n,r){let s=""+t,o=""+n;if(!e&&s>o){let i=s;s=o,o=i}return s+""+o+""+(r===void 0?"\0":r)}function Cg(e,t,n,r){let s=""+t,o=""+n;if(!e&&s>o){let a=s;s=o,o=a}let i={v:s,w:o};return r&&(i.name=r),i}function Xr(e,t){return an(e,t.v,t.w,t.name)}Yl({},{read:()=>Tg,write:()=>Ng});function Ng(e){let t={options:{directed:e.isDirected(),multigraph:e.isMultigraph(),compound:e.isCompound()},nodes:Rg(e),edges:_g(e)},n=e.graph();return n!==void 0&&(t.value=structuredClone(n)),t}function Rg(e){return e.nodes().map(t=>{let n=e.node(t),r=e.parent(t),s={v:t};return n!==void 0&&(s.value=n),r!==void 0&&(s.parent=r),s})}function _g(e){return e.edges().map(t=>{let n=e.edge(t),r={v:t.v,w:t.w};return t.name!==void 0&&(r.name=t.name),n!==void 0&&(r.value=n),r})}function Tg(e){let t=new oo(e.options);return e.value!==void 0&&t.setGraph(e.value),e.nodes.forEach(n=>{t.setNode(n.v,n.value),n.parent&&t.setParent(n.v,n.parent)}),e.edges.forEach(n=>{t.setEdge({v:n.v,w:n.w,name:n.name},n.value)}),t}var io={};Yl(io,{CycleException:()=>rr,bellmanFord:()=>Wl,components:()=>kg,dijkstra:()=>nr,dijkstraAll:()=>Pg,findCycles:()=>Lg,floydWarshall:()=>$g,isAcyclic:()=>zg,postorder:()=>Bg,preorder:()=>Gg,prim:()=>Ug,shortestPaths:()=>qg,tarjan:()=>Ql,topsort:()=>Jl});var Ag=()=>1;function Wl(e,t,n,r){return Mg(e,String(t),n||Ag,r||function(s){var o;return(o=e.outEdges(s))!=null?o:[]})}function Mg(e,t,n,r){let s={},o,i=0,a=e.nodes(),l=function(f){let d=s[f.v],p=s[f.w];if(!d||!p)return;let g=n(f);d.distance+g<p.distance&&(s[f.w]={distance:d.distance+g,predecessor:f.v},o=!0)},c=function(){a.forEach(function(f){r(f).forEach(function(d){let p=d.v===f?d.v:d.w,g=p===d.v?d.w:d.v;l({v:p,w:g})})})};a.forEach(function(f){let d=f===t?0:Number.POSITIVE_INFINITY;s[f]={distance:d,predecessor:""}});let u=a.length;for(let f=1;f<u&&(o=!1,i++,c(),!!o);f++);if(i===u-1&&(o=!1,c(),o))throw new Error("The graph contains a negative weight cycle");return s}function kg(e){let t={},n=[],r;function s(o){var i,a;o in t||(t[o]=!0,r.push(o),(i=e.successors(o))==null||i.forEach(s),(a=e.predecessors(o))==null||a.forEach(s))}return e.nodes().forEach(function(o){r=[],s(o),r.length&&n.push(r)}),n}var Xl=class{constructor(){this._arr=[],this._keyIndices={}}size(){return this._arr.length}keys(){return this._arr.map(e=>e.key)}has(e){return e in this._keyIndices}priority(e){let t=this._keyIndices[e];if(t!==void 0)return this._arr[t].priority}min(){if(this.size()===0)throw new Error("Queue underflow");return this._arr[0].key}add(e,t){let n=this._keyIndices,r=String(e);if(!(r in n)){let s=this._arr,o=s.length;return n[r]=o,s.push({key:r,priority:t}),this._decrease(o),!0}return!1}removeMin(){if(this.size()===0)throw new Error("Queue underflow");this._swap(0,this._arr.length-1);let e=this._arr.pop();return delete this._keyIndices[e.key],this._heapify(0),e.key}decrease(e,t){let n=this._keyIndices[e];if(n===void 0)throw new Error(`Key not found: ${e}`);let r=this._arr[n].priority;if(t>r)throw new Error(`New priority is greater than current priority. Key: ${e} Old: ${r} New: ${t}`);this._arr[n].priority=t,this._decrease(n)}_heapify(e){let t=this._arr,n=2*e,r=n+1,s=e;n<t.length&&(s=t[n].priority<t[s].priority?n:s,r<t.length&&(s=t[r].priority<t[s].priority?r:s),s!==e&&(this._swap(e,s),this._heapify(s)))}_decrease(e){let t=this._arr,n=t[e].priority,r;for(;e!==0&&(r=e>>1,!(t[r].priority<n));)this._swap(e,r),e=r}_swap(e,t){let n=this._arr,r=this._keyIndices,s=n[e],o=n[t];n[e]=o,n[t]=s,r[o.key]=e,r[s.key]=t}},Og=()=>1;function nr(e,t,n,r){let s=function(o){var i;return(i=e.outEdges(o))!=null?i:[]};return jg(e,String(t),n||Og,r||s)}function jg(e,t,n,r){let s={},o=new Xl,i,a,l=function(c){let u=c.v!==i?c.v:c.w,f=s[u];if(!f)return;let d=n(c),p=a.distance+d;if(d<0)throw new Error("dijkstra does not allow negative edge weights. Bad edge: "+c+" Weight: "+d);p<f.distance&&(f.distance=p,f.predecessor=i,o.decrease(u,p))};for(e.nodes().forEach(function(c){let u=c===t?0:Number.POSITIVE_INFINITY;s[c]={distance:u,predecessor:""},o.add(c,u)});o.size()>0;){i=o.removeMin();let c=s[i];if(!c||c.distance===Number.POSITIVE_INFINITY)break;a=c,r(i).forEach(l)}return s}function Pg(e,t,n){return e.nodes().reduce(function(r,s){return r[s]=nr(e,s,t,n),r},{})}function Ql(e){let t=0,n=[],r={},s=[];function o(i){var a;let l=r[i]={onStack:!0,lowlink:t,index:t++};if(n.push(i),(a=e.successors(i))==null||a.forEach(function(c){if(c in r){let u=r[c];u!=null&&u.onStack&&(l.lowlink=Math.min(l.lowlink,u.index))}else{o(c);let u=r[c];u&&(l.lowlink=Math.min(l.lowlink,u.lowlink))}}),l.lowlink===l.index){let c=[],u;do{u=n.pop();let f=r[u];f&&(f.onStack=!1),c.push(u)}while(i!==u);s.push(c)}}return e.nodes().forEach(function(i){i in r||o(i)}),s}function Lg(e){return Ql(e).filter(function(t){var n;let r=t[0];return r?t.length>1||t.length===1&&((n=e.outEdges(r,r))!=null?n:[]).length>0:!1})}var Dg=()=>1;function $g(e,t,n){return Fg(e,t||Dg,n||function(r){var s;return(s=e.outEdges(r))!=null?s:[]})}function Fg(e,t,n){let r={},s=e.nodes();return s.forEach(function(o){let i={};r[o]=i,i[o]={distance:0,predecessor:""},s.forEach(function(a){o!==a&&(i[a]={distance:Number.POSITIVE_INFINITY,predecessor:""})}),n(o).forEach(function(a){let l=a.v===o?a.w:a.v,c=t(a);i[l]={distance:c,predecessor:o}})}),s.forEach(function(o){let i=r[o];i&&s.forEach(function(a){let l=r[a];l&&s.forEach(function(c){let u=l[o],f=i[c],d=l[c];if(u&&f&&d){let p=u.distance+f.distance;p<d.distance&&(d.distance=p,d.predecessor=f.predecessor)}})})}),r}var rr=class extends Error{constructor(e){super(e),this.name="CycleException"}};function Jl(e){let t={},n={},r=[];function s(o){var i;if(o in n)throw new rr;o in t||(n[o]=!0,t[o]=!0,(i=e.predecessors(o))==null||i.forEach(s),delete n[o],r.push(o))}if(e.sinks().forEach(s),Object.keys(t).length!==e.nodeCount())throw new rr;return r}function zg(e){try{Jl(e)}catch(t){if(t instanceof rr)return!1;throw t}return!0}function Hg(e,t,n,r,s){Array.isArray(t)||(t=[t]);let o=(a=>{var l;return(l=e.isDirected()?e.successors(a):e.neighbors(a))!=null?l:[]}),i={};return t.forEach(function(a){if(!e.hasNode(a))throw new Error("Graph does not have node: "+a);s=Zl(e,a,n==="post",i,o,r,s)}),s}function Zl(e,t,n,r,s,o,i){return t in r||(r[t]=!0,n||(i=o(i,t)),s(t).forEach(function(a){i=Zl(e,a,n,r,s,o,i)}),n&&(i=o(i,t))),i}function ec(e,t,n){return Hg(e,t,n,function(r,s){return r.push(s),r},[])}function Bg(e,t){return ec(e,t,"post")}function Gg(e,t){return ec(e,t,"pre")}function Ug(e,t){var n;let r=new oo,s={},o=new Xl,i;function a(u){let f=u.v===i?u.w:u.v,d=o.priority(f);if(d!==void 0){let p=t(u);p<d&&(s[f]=i,o.decrease(f,p))}}if(e.nodeCount()===0)return r;e.nodes().forEach(function(u){o.add(u,Number.POSITIVE_INFINITY),r.setNode(u)});let l=e.nodes()[0];l!==void 0&&o.decrease(l,0);let c=!1;for(;o.size()>0;){if(i=o.removeMin(),i in s)r.setEdge(i,s[i]);else{if(c)throw new Error("Input graph is not connected: "+e);c=!0}(n=e.nodeEdges(i))==null||n.forEach(a)}return r}function qg(e,t,n,r){return Vg(e,t,n,r??(s=>{var o;return(o=e.outEdges(s))!=null?o:[]}))}function Vg(e,t,n,r){if(n===void 0)return nr(e,t,n,r);let s=!1,o=e.nodes();for(let i=0;i<o.length;i++){let a=o[i];if(a===void 0)continue;let l=r(a);for(let c=0;c<l.length;c++){let u=l[c];if(!u)continue;let f=u.v===a?u.v:u.w;n({v:f,w:f===u.v?u.w:u.v})<0&&(s=!0)}if(s)return Wl(e,t,n,r)}return nr(e,t,n,r)}var Ve=oo;function Jt(e,t,n,r){let s=r;for(;e.hasNode(s);)s=ao(r);return n.dummy=t,e.setNode(s,n),s}function Kg(e){let t=new Ve().setGraph(e.graph());return e.nodes().forEach(n=>t.setNode(n,e.node(n))),e.edges().forEach(n=>{let r=t.edge(n.v,n.w)||{weight:0,minlen:1},s=e.edge(n);t.setEdge(n.v,n.w,{weight:r.weight+s.weight,minlen:Math.max(r.minlen,s.minlen)})}),t}function tc(e){let t=new Ve({multigraph:e.isMultigraph()}).setGraph(e.graph());return e.nodes().forEach(n=>{e.children(n).length||t.setNode(n,e.node(n))}),e.edges().forEach(n=>{t.setEdge(n,e.edge(n))}),t}function si(e,t){let n=e.x,r=e.y,s=t.x-n,o=t.y-r,i=e.width/2,a=e.height/2;if(!s&&!o)throw new Error("Not possible to find intersection inside of the rectangle");let l,c;return Math.abs(o)*i>Math.abs(s)*a?(o<0&&(a=-a),l=a*s/o,c=a):(s<0&&(i=-i),l=i,c=i*o/s),{x:n+l,y:r+c}}function Nr(e){let t=yn(rc(e)+1).map(()=>[]);return e.nodes().forEach(n=>{let r=e.node(n),s=r.rank;s!==void 0&&(t[s]||(t[s]=[]),t[s][r.order]=n)}),t}function Yg(e){let t=e.nodes().map(r=>{let s=e.node(r).rank;return s===void 0?Number.MAX_VALUE:s}),n=Ge(Math.min,t);e.nodes().forEach(r=>{let s=e.node(r);Object.hasOwn(s,"rank")&&(s.rank-=n)})}function Wg(e){let t=e.nodes().map(i=>e.node(i).rank).filter(i=>i!==void 0),n=Ge(Math.min,t),r=[];e.nodes().forEach(i=>{let a=e.node(i).rank-n;r[a]||(r[a]=[]),r[a].push(i)});let s=0,o=e.graph().nodeRankFactor;Array.from(r).forEach((i,a)=>{i===void 0&&a%o!==0?--s:i!==void 0&&s&&i.forEach(l=>e.node(l).rank+=s)})}function oi(e,t,n,r){let s={width:0,height:0};return arguments.length>=4&&(s.rank=n,s.order=r),Jt(e,"border",s,t)}function Xg(e,t=nc){let n=[];for(let r=0;r<e.length;r+=t){let s=e.slice(r,r+t);n.push(s)}return n}var nc=65535;function Ge(e,t){return t.length>nc?e(...Xg(t).map(n=>e(...n))):e(...t)}function rc(e){let t=e.nodes().map(n=>{let r=e.node(n).rank;return r===void 0?Number.MIN_VALUE:r});return Ge(Math.max,t)}function Qg(e,t){let n={lhs:[],rhs:[]};return e.forEach(r=>{t(r)?n.lhs.push(r):n.rhs.push(r)}),n}function Jg(e,t){return t()}var Zg=0;function ao(e){return e+(""+ ++Zg)}function yn(e,t,n=1){t??(t=e,e=0);let r=o=>o<t;n<0&&(r=o=>t<o);let s=[];for(let o=e;r(o);o+=n)s.push(o);return s}function sr(e,t){let n={};for(let r of t)e[r]!==void 0&&(n[r]=e[r]);return n}function Rr(e,t){let n;return typeof t=="string"?n=r=>r[t]:n=t,Object.entries(e).reduce((r,[s,o])=>(r[s]=n(o,s),r),{})}function em(e,t){return e.reduce((n,r,s)=>(n[r]=t[s],n),{})}var _r="\0";function sc(e,t,n){var r,s,o,i,a,l;if(!(e&&t&&n&&t.dummy==="edge"&&n.dummy==="edge"&&t.edgeObj&&n.edgeObj&&e[t.edgeObj.v]&&e[n.edgeObj.v]&&e[t.edgeObj.w]&&e[n.edgeObj.w]))return 0;let c=!0;t.edgeObj.w===n.edgeObj.w&&(c=!1);let u=c?(s=(r=e[t.edgeObj.v])==null?void 0:r.rank)!=null?s:NaN:(i=(o=e[t.edgeObj.w])==null?void 0:o.rank)!=null?i:NaN,f=Object.entries(e).find(y=>{var x,v;return((x=y[1].edgeObj)==null?void 0:x.v)===t.edgeObj.v&&((v=y[1].edgeObj)==null?void 0:v.w)===t.edgeObj.w&&y[1].rank===u}),d=Object.entries(e).find(y=>{var x,v;return((x=y[1].edgeObj)==null?void 0:x.v)===n.edgeObj.v&&((v=y[1].edgeObj)==null?void 0:v.w)===n.edgeObj.w&&y[1].rank===u});if(!f||!d)return 0;let p=(a=f[1].order)!=null?a:NaN,g=(l=d[1].order)!=null?l:NaN;return isNaN(p-g)?0:p-g}var tm=class{constructor(){wg(this,"_sentinel");let e={};e._next=e._prev=e,this._sentinel=e}dequeue(){let e=this._sentinel,t=e._prev;if(t!==e)return ii(t),t}enqueue(e){let t=this._sentinel;e._prev&&e._next&&ii(e),e._next=t._next,t._next._prev=e,t._next=e,e._prev=t}toString(){let e=[],t=this._sentinel,n=t._prev;for(;n!==t;)e.push(JSON.stringify(n,nm)),n=n._prev;return"["+e.join(", ")+"]"}};function ii(e){e._prev._next=e._next,e._next._prev=e._prev,delete e._next,delete e._prev}function nm(e,t){if(e!=="_next"&&e!=="_prev")return t}var rm=tm,sm=()=>1;function om(e,t){if(e.nodeCount()<=1)return[];let n=am(e,t||sm);return im(n.graph,n.buckets,n.zeroIdx).flatMap(r=>e.outEdges(r.v,r.w)||[])}function im(e,t,n){var r;let s=[],o=t[t.length-1],i=t[0],a;for(;e.nodeCount();){for(;a=i.dequeue();)Qr(e,t,n,a);for(;a=o.dequeue();)Qr(e,t,n,a);if(e.nodeCount()){for(let l=t.length-2;l>0;--l)if(a=(r=t[l])==null?void 0:r.dequeue(),a){s=s.concat(Qr(e,t,n,a,!0)||[]);break}}}return s}function Qr(e,t,n,r,s){let o=[],i=s?o:void 0;return(e.inEdges(r.v)||[]).forEach(a=>{let l=e.edge(a),c=e.node(a.v);s&&o.push({v:a.v,w:a.w}),c.out-=l,_s(t,n,c)}),(e.outEdges(r.v)||[]).forEach(a=>{let l=e.edge(a),c=a.w,u=e.node(c);u.in-=l,_s(t,n,u)}),e.removeNode(r.v),i}function am(e,t){let n=new Ve,r=0,s=0;e.nodes().forEach(a=>{n.setNode(a,{v:a,in:0,out:0})}),e.edges().forEach(a=>{let l=n.edge(a.v,a.w)||0,c=t(a),u=l+c;n.setEdge(a.v,a.w,u);let f=n.node(a.v),d=n.node(a.w);s=Math.max(s,f.out+=c),r=Math.max(r,d.in+=c)});let o=lm(s+r+3).map(()=>new rm),i=r+1;return n.nodes().forEach(a=>{_s(o,i,n.node(a))}),{graph:n,buckets:o,zeroIdx:i}}function _s(e,t,n){var r,s,o;n.out?n.in?(o=e[n.out-n.in+t])==null||o.enqueue(n):(s=e[e.length-1])==null||s.enqueue(n):(r=e[0])==null||r.enqueue(n)}function lm(e){let t=[];for(let n=0;n<e;n++)t.push(n);return t}function cm(e,t){(e.graph().acyclicer==="greedy"?om(e,n(e)):um(e,t??null)).forEach(r=>{let s=e.edge(r);e.removeEdge(r),s.forwardName=r.name,s.reversed=!0,e.setEdge(r.w,r.v,s,ao("rev"))});function n(r){return s=>r.edge(s).weight}}function um(e,t){let n=[],r={},s={};function o(l){Object.hasOwn(s,l)||(s[l]=!0,r[l]=!0,e.outEdges(l).forEach(c=>{Object.hasOwn(r,c.w)?n.push(c):o(c.w)}),delete r[l])}function i(l){var c;Object.hasOwn(s,l)||(s[l]=!0,r[l]=!0,(c=e.outEdges(l))==null||c.forEach(u=>{var f,d;Object.hasOwn(r,u.w)||((f=t.node(l))==null?void 0:f.rank)>((d=t.node(u.w))==null?void 0:d.rank)&&hm(e,u.w,u)?n.push(u):i(u.w)}),delete r[l])}let a=o;return t&&typeof t.node=="function"&&(a=i),e.sources().forEach(a),e.nodes().forEach(a),n}function dm(e){e.edges().forEach(t=>{let n=e.edge(t);if(n.reversed){e.removeEdge(t);let r=n.forwardName;delete n.reversed,delete n.forwardName,e.setEdge(t.w,t.v,n,r)}})}function hm(e,t,n){let r=new Set;function s(o){var i;if(e.sources().includes(o))return!0;r.add(o);for(let a of(i=e.inEdges(o))!=null?i:[])if(!(a.v===n.v&&a.w===n.w)&&!r.has(a.v)&&s(a.v))return!0;return!1}return s(t)}function fm(e){e.graph().dummyChains=[],e.edges().forEach(t=>pm(e,t))}function pm(e,t){let n=t.v,r=e.node(n).rank,s=t.w,o=e.node(s).rank,i=t.name,a=e.edge(t),l=a.labelRank;if(o===r+1)return;e.removeEdge(t);let c,u,f;for(f=0,++r;r<o;++f,++r)a.points=[],u={width:0,height:0,edgeLabel:a,edgeObj:t,rank:r},c=Jt(e,"edge",u,"_d"),r===l&&(u.width=a.width,u.height=a.height,u.dummy="edge-label",u.labelpos=a.labelpos),e.setEdge(n,c,{weight:a.weight},i),f===0&&e.graph().dummyChains.push(c),n=c;e.setEdge(n,s,{weight:a.weight},i)}function gm(e){e.graph().dummyChains.forEach(t=>{let n=e.node(t),r=n.edgeLabel,s;for(e.setEdge(n.edgeObj,r);n.dummy;)s=e.successors(t)[0],e.removeNode(t),r.points.push({x:n.x,y:n.y}),n.dummy==="edge-label"&&(r.x=n.x,r.y=n.y,r.width=n.width,r.height=n.height),t=s,n=e.node(t)})}function lo(e){let t={};function n(r){let s=e.node(r);if(Object.hasOwn(t,r))return s.rank;t[r]=!0;let o=e.outEdges(r),i=o?o.map(l=>l==null?Number.POSITIVE_INFINITY:n(l.w)-e.edge(l).minlen):[],a=Ge(Math.min,i);return a===Number.POSITIVE_INFINITY&&(a=0),s.rank=a}e.sources().forEach(n)}function Gt(e,t){return e.node(t.w).rank-e.node(t.v).rank-e.edge(t).minlen}var oc=mm;function mm(e){let t=new Ve({directed:!1}),n=e.nodes();if(n.length===0)throw new Error("Graph must have at least one node");let r=n[0],s=e.nodeCount();t.setNode(r,{});let o,i;for(;vm(t,e)<s&&(o=ym(t,e),!!o);)i=t.hasNode(o.v)?Gt(e,o):-Gt(e,o),bm(t,e,i);return t}function vm(e,t){function n(r){let s=t.nodeEdges(r);s&&s.forEach(o=>{let i=o.v,a=r===i?o.w:i;!e.hasNode(a)&&!Gt(t,o)&&(e.setNode(a,{}),e.setEdge(r,a,{}),n(a))})}return e.nodes().forEach(n),e.nodeCount()}function ym(e,t){return t.edges().reduce((n,r)=>{let s=Number.POSITIVE_INFINITY;return e.hasNode(r.v)!==e.hasNode(r.w)&&(s=Gt(t,r)),s<n[0]?[s,r]:n},[Number.POSITIVE_INFINITY,null])[1]}function bm(e,t,n){e.nodes().forEach(r=>t.node(r).rank+=n)}var{preorder:xm,postorder:Sm}=io,Im=kt;kt.initLowLimValues=uo;kt.initCutValues=co;kt.calcCutValue=ic;kt.leaveEdge=lc;kt.enterEdge=cc;kt.exchangeEdges=uc;function kt(e){e=Kg(e),lo(e);let t=oc(e);uo(t),co(t,e);let n,r;for(;n=lc(t);)r=cc(t,e,n),uc(t,e,n,r)}function co(e,t){let n=Sm(e,e.nodes());n=n.slice(0,n.length-1),n.forEach(r=>wm(e,t,r))}function wm(e,t,n){let r=e.node(n).parent,s=e.edge(n,r);s.cutvalue=ic(e,t,n)}function ic(e,t,n){let r=e.node(n).parent,s=!0,o=t.edge(n,r),i=0;o||(s=!1,o=t.edge(r,n)),i=o.weight;let a=t.nodeEdges(n);return a&&a.forEach(l=>{let c=l.v===n,u=c?l.w:l.v;if(u!==r){let f=c===s,d=t.edge(l).weight;if(i+=f?d:-d,Cm(e,n,u)){let p=e.edge(n,u).cutvalue;i+=f?-p:p}}}),i}function uo(e,t){arguments.length<2&&(t=e.nodes()[0]),ac(e,{},1,t)}function ac(e,t,n,r,s){let o=n,i=e.node(r);t[r]=!0;let a=e.neighbors(r);return a&&a.forEach(l=>{Object.hasOwn(t,l)||(n=ac(e,t,n,l,r))}),i.low=o,i.lim=n++,s?i.parent=s:delete i.parent,n}function lc(e){return e.edges().find(t=>e.edge(t).cutvalue<0)}function cc(e,t,n){let r=n.v,s=n.w;t.hasEdge(r,s)||(r=n.w,s=n.v);let o=e.node(r),i=e.node(s),a=o,l=!1;return o.lim>i.lim&&(a=i,l=!0),t.edges().filter(c=>l===ai(e,e.node(c.v),a)&&l!==ai(e,e.node(c.w),a)).reduce((c,u)=>Gt(t,u)<Gt(t,c)?u:c)}function uc(e,t,n,r){let s=n.v,o=n.w;e.removeEdge(s,o),e.setEdge(r.v,r.w,{}),uo(e),co(e,t),Em(e,t)}function Em(e,t){let n=e.nodes().find(s=>!e.node(s).parent);if(!n)return;let r=xm(e,[n]);r=r.slice(1),r.forEach(s=>{let o=e.node(s).parent,i=t.edge(s,o),a=!1;i||(i=t.edge(o,s),a=!0),t.node(s).rank=t.node(o).rank+(a?i.minlen:-i.minlen)})}function Cm(e,t,n){return e.hasEdge(t,n)}function ai(e,t,n){return n.low<=t.lim&&t.lim<=n.lim}var Nm=Rm;function Rm(e){let t=e.graph().ranker;if(typeof t=="function")return t(e);switch(t){case"network-simplex":li(e);break;case"tight-tree":Tm(e);break;case"longest-path":_m(e);break;case"none":break;default:li(e)}}var _m=lo;function Tm(e){lo(e),oc(e)}function li(e){Im(e)}var Am=Mm;function Mm(e){let t=Om(e),n=e.graph();Array.isArray(n.dummyChains)&&n.dummyChains.forEach(r=>{let s=e.node(r),o=s.edgeObj,i=km(e,t,o.v,o.w),a=i.path,l=i.lca,c=0,u=a[c],f=!0;for(;r!==o.w;){if(s=e.node(r),f){for(;(u=a[c])!==l&&e.node(u).maxRank<s.rank;)c++;u===l&&(f=!1)}if(!f){for(;c<a.length-1&&e.node(a[c+1]).minRank<=s.rank;)c++;u=a[c]}u!==void 0&&e.setParent(r,u),r=e.successors(r)[0]}})}function km(e,t,n,r){let s=[],o=[],i=Math.min(t[n].low,t[r].low),a=Math.max(t[n].lim,t[r].lim),l;l=n;do l=e.parent(l),s.push(l);while(l&&(t[l].low>i||a>t[l].lim));let c=l,u=r;for(;(u=e.parent(u))!==c;)o.push(u);return{path:s.concat(o.reverse()),lca:c}}function Om(e){let t={},n=0;function r(s){let o=n;e.children(s).forEach(r),t[s]={low:o,lim:n++}}return e.children(_r).forEach(r),t}function jm(e){let t=Jt(e,"root",{},"_root"),n=Pm(e),r=Object.values(n),s=Ge(Math.max,r)-1,o=2*s+1;e.graph().nestingRoot=t,e.edges().forEach(a=>e.edge(a).minlen*=o);let i=Lm(e)+1;e.children(_r).forEach(a=>{dc(e,t,o,i,s,n,a)}),e.graph().nodeRankFactor=o}function dc(e,t,n,r,s,o,i){var a;let l=e.children(i);if(!l.length){i!==t&&e.setEdge(t,i,{weight:0,minlen:n});return}let c=oi(e,"_bt"),u=oi(e,"_bb"),f=e.node(i);e.setParent(c,i),f.borderTop=c,e.setParent(u,i),f.borderBottom=u,l.forEach(d=>{var p;dc(e,t,n,r,s,o,d);let g=e.node(d),y=g.borderTop?g.borderTop:d,x=g.borderBottom?g.borderBottom:d,v=g.borderTop?r:2*r,I=y!==x?1:s-((p=o[i])!=null?p:0)+1;e.setEdge(c,y,{weight:v,minlen:I,nestingEdge:!0}),e.setEdge(x,u,{weight:v,minlen:I,nestingEdge:!0})}),e.parent(i)||e.setEdge(t,c,{weight:0,minlen:s+((a=o[i])!=null?a:0)})}function Pm(e){let t={};function n(r,s){let o=e.children(r);o&&o.length&&o.forEach(i=>n(i,s+1)),t[r]=s}return e.children(_r).forEach(r=>n(r,1)),t}function Lm(e){return e.edges().reduce((t,n)=>t+e.edge(n).weight,0)}function Dm(e){let t=e.graph();e.removeNode(t.nestingRoot),delete t.nestingRoot,e.edges().forEach(n=>{e.edge(n).nestingEdge&&e.removeEdge(n)})}var $m=Fm;function Fm(e){function t(n){let r=e.children(n),s=e.node(n);if(r.length&&r.forEach(t),s&&Object.hasOwn(s,"minRank")){s.borderLeft=[],s.borderRight=[];for(let o=s.minRank,i=s.maxRank+1;o<i;++o)ci(e,"borderLeft","_bl",n,s,o),ci(e,"borderRight","_br",n,s,o)}}e.children(_r).forEach(t)}function ci(e,t,n,r,s,o){let i={width:0,height:0,rank:o,borderType:t},a=s[t][o-1],l=Jt(e,"border",i,n);s[t][o]=l,e.setParent(l,r),a&&e.setEdge(a,l,{weight:1})}function zm(e){var t;let n=(t=e.graph().rankdir)==null?void 0:t.toLowerCase();(n==="lr"||n==="rl")&&hc(e)}function Hm(e){var t;let n=(t=e.graph().rankdir)==null?void 0:t.toLowerCase();(n==="bt"||n==="rl")&&Bm(e),(n==="lr"||n==="rl")&&(Gm(e),hc(e))}function hc(e){e.nodes().forEach(t=>ui(e.node(t))),e.edges().forEach(t=>ui(e.edge(t)))}function ui(e){let t=e.width;e.width=e.height,e.height=t}function Bm(e){e.nodes().forEach(t=>Jr(e.node(t))),e.edges().forEach(t=>{var n;let r=e.edge(t);(n=r.points)==null||n.forEach(Jr),Object.hasOwn(r,"y")&&Jr(r)})}function Jr(e){e.y=-e.y}function Gm(e){e.nodes().forEach(t=>Zr(e.node(t))),e.edges().forEach(t=>{var n;let r=e.edge(t);(n=r.points)==null||n.forEach(Zr),Object.hasOwn(r,"x")&&Zr(r)})}function Zr(e){let t=e.x;e.x=e.y,e.y=t}function Um(e,t=null){let n={},r=e.nodes().filter(l=>!e.children(l).length),s=r.map(l=>e.node(l).rank),o=yn(Ge(Math.max,s)+1).map(()=>[]);function i(l){if(n[l])return;n[l]=!0;let c=e.node(l);o[c.rank].push(l);let u=e.successors(l);u&&[...u].sort((f,d)=>a(f,d)).forEach(i)}r.sort((l,c)=>e.node(l).rank-e.node(c).rank).forEach(i);function a(l,c){return sc(t,e.node(l),e.node(c))}return o}function qm(e,t){let n=0;for(let r=1;r<t.length;++r)n+=Vm(e,t[r-1],t[r]);return n}function Vm(e,t,n){let r=em(n,n.map((c,u)=>u)),s=t.flatMap(c=>{let u=e.outEdges(c);return u?u.map(f=>({pos:r[f.w],weight:e.edge(f).weight})).sort((f,d)=>f.pos-d.pos):[]}),o=1;for(;o<n.length;)o<<=1;let i=2*o-1;o-=1;let a=new Array(i).fill(0),l=0;return s.forEach(c=>{let u=c.pos+o;a[u]+=c.weight;let f=0;for(;u>0;)u%2&&(f+=a[u+1]),u=u-1>>1,a[u]+=c.weight;l+=c.weight*f}),l}function Km(e,t=[]){return t.map(n=>{let r=e.inEdges(n);if(!r||!r.length)return{v:n};{let s=r.reduce((o,i)=>{let a=e.edge(i),l=e.node(i.v);return{sum:o.sum+a.weight*l.order,weight:o.weight+a.weight}},{sum:0,weight:0});return{v:n,barycenter:s.sum/s.weight,weight:s.weight}}})}function Ym(e,t){let n={};return e.forEach((r,s)=>{let o={indegree:0,in:[],out:[],vs:[r.v],i:s};r.barycenter!==void 0&&(o.barycenter=r.barycenter,o.weight=r.weight),n[r.v]=o}),t.edges().forEach(r=>{let s=n[r.v],o=n[r.w];s!==void 0&&o!==void 0&&(o.indegree++,s.out.push(o))}),Wm(Object.values(n).filter(r=>!r.indegree))}function Wm(e){let t=[];function n(s){return o=>{o.merged||(o.barycenter===void 0||s.barycenter===void 0||o.barycenter>=s.barycenter)&&Xm(s,o)}}function r(s){return o=>{o.in.push(s),--o.indegree===0&&e.push(o)}}for(;e.length;){let s=e.pop();t.push(s),s.in.reverse().forEach(n(s)),s.out.forEach(r(s))}return t.filter(s=>!s.merged).map(s=>sr(s,["vs","i","barycenter","weight"]))}function Xm(e,t){let n=0,r=0;e.weight&&(n+=e.barycenter*e.weight,r+=e.weight),t.weight&&(n+=t.barycenter*t.weight,r+=t.weight),e.vs=t.vs.concat(e.vs),e.barycenter=n/r,e.weight=r,e.i=Math.min(t.i,e.i),t.merged=!0}function Qm(e,t,n,r,s){let o={},i=null,a=null,l=s;typeof t=="boolean"?(l=t,o={}):t&&(o=t,i=n??null,a=r??null);let c=Qg(e,v=>Object.hasOwn(v,"barycenter")),u=c.lhs,f=c.rhs.sort((v,I)=>I.i-v.i),d=[],p=0,g=0,y=0;u.sort(Jm(a,i,!!l));for(let[v,I]of Object.entries(o)){let m=u.findIndex(b=>b.vs[0]===v);u.splice(m+1,0,I)}y=di(d,f,y),u.forEach(v=>{y+=v.vs.length,d.push(v.vs),p+=v.barycenter*v.weight,g+=v.weight,y=di(d,f,y)});let x={vs:d.flat(1)};return g&&(x.barycenter=p/g,x.weight=g),x}function di(e,t,n){let r;for(;t.length&&(r=t[t.length-1]).i<=n;)t.pop(),e.push(r.vs),n++;return n}function Jm(e,t,n){return(r,s)=>{if(r.barycenter<s.barycenter)return-1;if(r.barycenter>s.barycenter)return 1;if(e&&(typeof r.vs[0]=="string"||typeof s.vs[0]=="string")){let o=sc(t,e.node(r.vs[0]),e.node(s.vs[0]));if(o!==0)return o}return n?s.i-r.i:r.i-s.i}}function fc(e,t,n,r,s){var o,i,a,l,c,u,f,d,p,g,y;let x=null,v=s;typeof r=="boolean"?(v=r,x=null):r!==void 0&&(x=r);let I=e.children(t),m=e.node(t),b=m?m.borderLeft:void 0,E=m?m.borderRight:void 0,N={};b&&(I=I.filter(M=>M!==b&&M!==E));let R=Km(e,I);R.forEach(M=>{if(e.children(M.v).length){let{result:O}=fc(e,M.v,n,x,v);N[M.v]=O,Object.hasOwn(O,"barycenter")&&e0(M,O)}});let A=Ym(R,n);Zm(A,N);let k={},L=!1;for(let M=0;M<A.length;M++)for(let O=M+1;O<A.length;O++)if(!(!A[M]||!A[O]||!((o=A[M])!=null&&o.barycenter)||!((i=A[O])!=null&&i.barycenter))&&((a=A[M])==null?void 0:a.barycenter)===A[O].barycenter){let S=(c=(l=A[M])==null?void 0:l.vs[0])!=null?c:"",w=(f=(u=A[O])==null?void 0:u.vs[0])!=null?f:"",T=e.node(S),j=e.node(w);if(T.dummy==="edge"&&j.dummy==="edge"&&((d=T.edgeObj)==null?void 0:d.v)===((p=j.edgeObj)==null?void 0:p.v)&&((g=T.edgeObj)==null?void 0:g.w)===((y=j.edgeObj)==null?void 0:y.w))if(T.edgeLabel.reversed){k[w]=A[M],A.splice(M,1),M--;break}else k[S]=A[O],A.splice(O,1),O--;else L=!0}let _=Qm(A,k,x,e,v);if(b&&E){_.vs=[b,_.vs,E].flat(1);let M=e.predecessors(b);if(M&&M.length){let O=e.node(M[0]),S=e.predecessors(E),w=e.node(S[0]);Object.hasOwn(_,"barycenter")||(_.barycenter=0,_.weight=0),_.barycenter=(_.barycenter*_.weight+O.order+w.order)/(_.weight+2),_.weight+=2}}return Object.defineProperty(_,"result",{value:_,enumerable:!1,configurable:!0,writable:!0}),Object.defineProperty(_,"usedBias",{value:L,enumerable:!1,configurable:!0,writable:!0}),_}function Zm(e,t){e.forEach(n=>{n.vs=n.vs.flatMap(r=>t[r]?t[r].vs:r)})}function e0(e,t){e.barycenter!==void 0?(e.barycenter=(e.barycenter*e.weight+t.barycenter*t.weight)/(e.weight+t.weight),e.weight+=t.weight):(e.barycenter=t.barycenter,e.weight=t.weight)}function t0(e,t,n,r){r||(r=e.nodes());let s=n0(e),o=new Ve({compound:!0}).setGraph({root:s}).setDefaultNodeLabel(i=>e.node(i));return r.forEach(i=>{let a=e.node(i),l=e.parent(i);if(a.rank===t||a.minRank<=t&&t<=a.maxRank){o.setNode(i),o.setParent(i,l||s);let c=e[n](i);c&&c.forEach(u=>{let f=u.v===i?u.w:u.v,d=o.edge(f,i),p=d!==void 0?d.weight:0;o.setEdge(f,i,{weight:e.edge(u).weight+p})}),Object.hasOwn(a,"minRank")&&o.setNode(i,{borderLeft:a.borderLeft[t],borderRight:a.borderRight[t]})}}),o}function n0(e){let t;for(;e.hasNode(t=ao("_root")););return t}function r0(e,t,n){let r={},s;n.forEach(o=>{let i=e.parent(o),a,l;for(;i;){if(a=e.parent(i),a?(l=r[a],r[a]=i):(l=s,s=i),l&&l!==i){t.setEdge(l,i);return}i=a}})}function pc(e,t={},n=null){if(typeof t.customOrder=="function"){t.customOrder(e,pc);return}let r=rc(e),s=hi(e,yn(1,r+1),"inEdges"),o=hi(e,yn(r-1,-1,-1),"outEdges"),i=Um(e,n);if(fi(e,i),t.disableOptimalOrderHeuristic)return;let a=Number.POSITIVE_INFINITY,l,c=t.constraints||[];for(let u=0,f=0;f<4;++u,++f){s0(u%2?s:o,u%4>=2,c,n),i=Nr(e);let d=qm(e,i);d<a?(f=0,l=Object.assign({},i),a=d):d===a&&(l=structuredClone(i))}fi(e,l)}function hi(e,t,n){let r=new Map,s=(o,i)=>{r.has(o)||r.set(o,[]),r.get(o).push(i)};for(let o of e.nodes()){let i=e.node(o);if(typeof i.rank=="number"&&s(i.rank,o),typeof i.minRank=="number"&&typeof i.maxRank=="number")for(let a=i.minRank;a<=i.maxRank;a++)a!==i.rank&&s(a,o)}return t.map(function(o){return t0(e,o,n,r.get(o)||[])})}function s0(e,t,n,r){let s=!0,o=new Ve;e.forEach(function(i){n.forEach(u=>o.setEdge(u.left,u.right));let a=i.graph().root,{result:l,usedBias:c}=fc(i,a,o,r,s);t&&c&&(s=!s),l.vs.forEach((u,f)=>i.node(u).order=f),r0(i,o,l.vs)})}function fi(e,t){Object.values(t).forEach(n=>n.forEach((r,s)=>e.node(r).order=s))}function o0(e,t){let n={};function r(s,o){let i=0,a=0,l=s.length,c=o[o.length-1];return o.forEach((u,f)=>{let d=a0(e,u),p=d?e.node(d).order:l;(d||u===c)&&(o.slice(a,f+1).forEach(g=>{let y=e.predecessors(g);y&&y.forEach(x=>{let v=e.node(x),I=v.order;(I<i||p<I)&&!(v.dummy&&e.node(g).dummy)&&gc(n,x,g)})}),a=f+1,i=p)}),o}return t.length&&t.reduce(r),n}function i0(e,t){let n={};function r(o,i,a,l,c){yn(i,a).forEach(u=>{let f=o[u];if(f!==void 0&&e.node(f).dummy){let d=e.predecessors(f);d&&d.forEach(p=>{if(p===void 0)return;let g=e.node(p);g.dummy&&(g.order<l||g.order>c)&&gc(n,p,f)})}})}function s(o,i){let a=-1,l=-1,c=0;return i.forEach((u,f)=>{if(e.node(u).dummy==="border"){let d=e.predecessors(u);if(d&&d.length){let p=d[0];if(p===void 0)return;l=e.node(p).order,r(i,c,f,a,l),c=f,a=l}}r(i,c,i.length,l,o.length)}),i}return t.length&&t.reduce(s),n}function a0(e,t){if(e.node(t).dummy){let n=e.predecessors(t);if(n)return n.find(r=>e.node(r).dummy)}}function gc(e,t,n){if(t>n){let s=t;t=n,n=s}let r=e[t];r||(e[t]=r={}),r[n]=!0}function l0(e,t,n){if(t>n){let s=t;t=n,n=s}let r=e[t];return r!==void 0&&Object.hasOwn(r,n)}function c0(e,t,n,r,s){let o={},i={},a={};return t.forEach(l=>{l.forEach((c,u)=>{o[c]=c,i[c]=c,a[c]=u})}),t.forEach(l=>{let c=-1,u=-1,f=!1,d=l,p=l.findIndex(g=>s?.includes(g)||pi(g,e,s));p>0&&(d=[l[p],...l.slice(0,p),...l.slice(p+1)],f=!0),d.forEach(g=>{var y;let x=r(g);if(x&&x.length){s!=null&&s.includes(g)&&(x=x.filter(m=>pi(m,e,s)));let v=x.sort((m,b)=>{let E=a[m],N=a[b];return(E!==void 0?E:0)-(N!==void 0?N:0)}),I=(v.length-1)/2;for(let m=Math.floor(I),b=Math.ceil(I);m<=b;++m){let E=v[m];if(E===void 0)continue;let N=a[E];if(N!==void 0&&i[g]===g&&c<N&&a[E]!==u&&!l0(n,g,E)){let R=o[E];R!==void 0&&(i[E]=g,i[g]=o[g]=R,c=N,f&&(c=-1,u=(y=a[E])!=null?y:-1,f=!1))}}}})}),{root:o,align:i}}function u0(e,t,n,r,s=!1){let o={},i=d0(e,t,n,s),a=s?"borderLeft":"borderRight";function l(p,g){let y=i.nodes().slice(),x={},v=y.pop();for(;v;){if(x[v])p(v);else{x[v]=!0,y.push(v);for(let I of g(v))y.push(I)}v=y.pop()}}function c(p){let g=i.inEdges(p);g?o[p]=g.reduce((y,x)=>{var v;let I=(v=o[x.v])!=null?v:0,m=i.edge(x);return Math.max(y,I+(m!==void 0?m:0))},0):o[p]=0}function u(p){let g=i.outEdges(p),y=Number.POSITIVE_INFINITY;g&&(y=g.reduce((v,I)=>{let m=o[I.w],b=i.edge(I);return Math.min(v,(m!==void 0?m:0)-(b!==void 0?b:0))},Number.POSITIVE_INFINITY));let x=e.node(p);y!==Number.POSITIVE_INFINITY&&x.borderType!==a&&(o[p]=Math.max(o[p]!==void 0?o[p]:0,y))}function f(p){return i.predecessors(p)||[]}function d(p){return i.successors(p)||[]}return l(c,f),l(u,d),Object.keys(r).forEach(p=>{var g;let y=n[p];y!==void 0&&(o[p]=(g=o[y])!=null?g:0)}),o}function d0(e,t,n,r){let s=new Ve,o=e.graph(),i=m0(o.nodesep,o.edgesep,r);return t.forEach(a=>{let l;a.forEach(c=>{let u=n[c];if(u!==void 0){if(s.setNode(u),l!==void 0){let f=n[l];if(f!==void 0){let d=s.edge(f,u);s.setEdge(f,u,Math.max(i(e,c,l),d||0))}}l=c}})}),s}function h0(e,t){return Object.values(t).reduce((n,r)=>{let s=Number.NEGATIVE_INFINITY,o=Number.POSITIVE_INFINITY;Object.entries(r).forEach(([a,l])=>{let c=v0(e,a)/2;s=Math.max(l+c,s),o=Math.min(l-c,o)});let i=s-o;return i<n[0]&&(n=[i,r]),n},[Number.POSITIVE_INFINITY,null])[1]}function f0(e,t){let n=Object.values(t),r=Ge(Math.min,n),s=Ge(Math.max,n);["u","d"].forEach(o=>{["l","r"].forEach(i=>{let a=o+i,l=e[a];if(!l||l===t)return;let c=Object.values(l),u=r-Ge(Math.min,c);i!=="l"&&(u=s-Ge(Math.max,c)),u&&(e[a]=Rr(l,f=>f+u))})})}function p0(e,t=void 0){let n=e.ul;return n?Rr(n,(r,s)=>{var o,i;if(t){let l=e[t.toLowerCase()];if(l&&l[s]!==void 0)return l[s]}let a=Object.values(e).map(l=>{let c=l[s];return c!==void 0?c:0}).sort((l,c)=>l-c);return(((o=a[1])!=null?o:0)+((i=a[2])!=null?i:0))/2}):{}}function g0(e,t){let n=Nr(e),r=Object.assign(o0(e,n),i0(e,n)),s={},o;return["u","d"].forEach(i=>{o=i==="u"?n:Object.values(n).reverse(),["l","r"].forEach(a=>{a==="r"&&(o=o.map(u=>Object.values(u).reverse()));let l=c0(e,o,r,u=>(i==="u"?e.predecessors(u):e.successors(u))||[],t),c=u0(e,o,l.root,l.align,a==="r");a==="r"&&(c=Rr(c,u=>-u)),s[i+a]=c})}),f0(s,h0(e,s)),p0(s,e.graph().align)}function m0(e,t,n){return(r,s,o)=>{let i=r.node(s),a=r.node(o),l=0,c;if(l+=i.width/2,Object.hasOwn(i,"labelpos"))switch(i.labelpos.toLowerCase()){case"l":c=-i.width/2;break;case"r":c=i.width/2}if(c&&(l+=n?c:-c),c=void 0,l+=(i.dummy?t:e)/2,l+=(a.dummy?t:e)/2,l+=a.width/2,Object.hasOwn(a,"labelpos"))switch(a.labelpos.toLowerCase()){case"l":c=a.width/2;break;case"r":c=-a.width/2}return c&&(l+=n?c:-c),l}}function v0(e,t){return e.node(t).width}function pi(e,t,n){var r;if(!n)return!1;let s=(r=t.node(e))==null?void 0:r.edgeObj;if(!s||t.node(e).edgeLabel.reversed)return!1;let o=n.indexOf(s?.v),i=n.indexOf(s?.w);return o!==-1&&i!==-1&&o===(i+1)%n.length||o===(i-1)%n.length}function y0(e,t){e=tc(e),b0(e),Object.entries(g0(e,t)).forEach(([n,r])=>e.node(n).x=r)}function b0(e){let t=Nr(e),n=e.graph(),r=n.ranksep,s=n.rankalign,o=0;t.forEach(i=>{let a=i.reduce((l,c)=>{var u;let f=(u=e.node(c).height)!=null?u:0;return l>f?l:f},0);i.forEach(l=>{let c=e.node(l);s==="top"?c.y=o+c.height/2:s==="bottom"?c.y=o+a-c.height/2:c.y=o+a/2}),o+=a+r})}var gi=new WeakMap;function x0(e,t={}){return mc(e,Jg,t),e}function mi(e,t,n){let r=t;for(;r!==void 0;){let s=e.parent(r);if(s===n)return r;r=s}}function mc(e,t,n){var r;let s=e.nodes().filter(I=>e.children(I).length),o={};s.forEach(I=>{let m=e.node(I);if(m&&m.rankdir){let b=new Ve({multigraph:!0,compound:!0});b.setGraph({rankdir:m.rankdir});let E=e.children(I);E.forEach(S=>{let w={...e.node(S)};b.setNode(S,w);let T=e.parent(S);T&&T!==I&&E.includes(T)&&b.setParent(S,T)});let N=new Set;e.edges().forEach(S=>{let w=mi(e,S.v,I),T=mi(e,S.w,I);if(w&&T&&w!==T){let j=`${w}\0${T}`;N.has(j)||(N.add(j),b.setEdge(w,T,{...e.edge(S)}))}}),mc(b,t,n);let R=xi(b);vi(R,t,n,null),yi(b,R);let A=1/0,k=1/0,L=-1/0,_=-1/0;b.nodes().forEach(S=>{if(S===I)return;let w=b.node(S);w&&typeof w.x=="number"&&typeof w.y=="number"&&typeof w.width=="number"&&typeof w.height=="number"&&(A=Math.min(A,w.x-w.width/2),L=Math.max(L,w.x+w.width/2),k=Math.min(k,w.y-w.height/2),_=Math.max(_,w.y+w.height/2))}),(!isFinite(A)||!isFinite(k)||!isFinite(L)||!isFinite(_))&&(A=k=0,L=_=0);let M=L-A,O=_-k;o[I]={minX:A,minY:k,maxX:L,maxY:_,width:M,height:O,offsetX:A,offsetY:k},m._dagreClusterSubgraph=b}});let i=[],a=I=>{let m=[],b=(e.children(I)||[]).filter(E=>E!==I);for(;b.length>0;){let E=b.shift();m.push(E),(e.children(E)||[]).filter(N=>N!==E).forEach(N=>b.push(N))}return m},l=new Map;s.forEach(I=>{let m=e.node(I);m&&m.rankdir&&o[I]&&l.set(I,(e.children(I)||[]).filter(b=>b!==I))});let c=new Set([...l.values()].flat()),u=new Map;l.forEach((I,m)=>{c.has(m)||u.set(m,a(m))});let f=new Set([...u.values()].flat()),d=I=>{for(let[m,b]of u)if(b.includes(I))return m;return I},p=[];e.edges().forEach(I=>{(f.has(I.v)||f.has(I.w))&&p.push({edge:I,label:e.edge(I)})});let g=new Map;f.forEach(I=>{let m=e.parent(I);g.set(I,typeof m=="string"?m:void 0)}),u.forEach((I,m)=>{let b=e.node(m),E=[];I.forEach(A=>{let k=e.node(A);k&&(E.push({id:A,node:k,parent:g.get(A)}),e.removeNode(A))});let N=p.filter(({edge:A})=>I.includes(A.v)||I.includes(A.w)),R=o[m];b&&(i.push({clusterId:m,subgraph:b._dagreClusterSubgraph,bounds:R,children:I,removedNodes:E,removedEdges:N}),b.width=R.width,b.height=R.height)});let y=new Set;p.forEach(({edge:I,label:m})=>{let b=d(I.v),E=d(I.w);if(b!==E&&e.hasNode(b)&&e.hasNode(E)){let N=`${b}\0${E}`;y.has(N)||(y.add(N),e.setEdge(b,E,{...m,width:0,height:0}))}});let x=xi(e),v=vi(x,t,n,(r=gi.get(e))!=null?r:null);gi.set(e,v),yi(e,x),y.forEach(I=>{let m=I.indexOf("\0"),b=I.slice(0,m),E=I.slice(m+1);e.hasEdge(b,E)&&e.removeEdge(b,E)}),i.forEach(({clusterId:I,subgraph:m,bounds:b,removedNodes:E,removedEdges:N})=>{var R,A;let k=e.node(I),L=(R=k?.x)!=null?R:0,_=(A=k?.y)!=null?A:0,M=(b.minX+b.maxX)/2,O=(b.minY+b.maxY)/2;E.forEach(({id:S,node:w,parent:T})=>{e.setNode(S,w),T!==void 0&&e.setParent(S,T)}),N.forEach(({edge:S,label:w})=>{e.setEdge(S,w)}),m.nodes().forEach(S=>{if(S===I)return;let w=m.node(S),T=e.node(S);T&&w&&typeof w.x=="number"&&typeof w.y=="number"&&(T.x=L+(w.x-M),T.y=_+(w.y-O))}),delete k._dagreClusterSubgraph}),s.forEach(I=>{var m,b;let E=e.node(I),N=o[I];if(E&&E.rankdir&&E._dagreClusterSubgraph&&N){let R=E._dagreClusterSubgraph,A=(m=E.x)!=null?m:0,k=(b=E.y)!=null?b:0,L=(N.minX+N.maxX)/2,_=(N.minY+N.maxY)/2;R.nodes().forEach(M=>{if(M===I)return;let O=R.node(M),S=e.node(M);if(S&&O&&typeof O.x=="number"&&typeof O.y=="number"){let w=O.x-L,T=O.y-_;S.x=A+w,S.y=k+T}}),delete E._dagreClusterSubgraph}})}function vi(e,t,n,r=null){var s,o;let i=n?.useDynamic!==!1,a=i&&(s=r?.graph)!=null?s:null,l=i&&(o=r?.rawNodes)!=null?o:null;t(" makeSpaceForEdgeLabels",()=>_0(e)),t(" removeSelfEdges",()=>D0(e)),t(" acyclic",()=>cm(e,a)),t(" nestingGraph.run",()=>jm(e)),t(" rank",()=>Nm(tc(e))),t(" injectEdgeLabelProxies",()=>T0(e)),t(" removeEmptyRanks",()=>Wg(e)),t(" nestingGraph.cleanup",()=>Dm(e)),t(" normalizeRanks",()=>Yg(e)),t(" assignRankMinMax",()=>A0(e)),t(" removeEdgeLabelProxies",()=>M0(e)),t(" normalize.run",()=>fm(e)),t(" parentDummyChains",()=>Am(e)),t(" addBorderSegments",()=>$m(e)),t(" order",()=>pc(e,n,l)),t(" insertSelfEdges",()=>$0(e)),t(" adjustCoordinateSystem",()=>zm(e)),t(" position",()=>y0(e,n.corePath)),t(" positionSelfEdges",()=>F0(e));let c=JSON.parse(JSON.stringify(e._nodes));return t(" removeBorderNodes",()=>L0(e)),t(" normalize.undo",()=>gm(e)),t(" fixupEdgeLabelCoords",()=>j0(e)),t(" undoCoordinateSystem",()=>Hm(e)),t(" translateGraph",()=>k0(e)),t(" assignNodeIntersects",()=>O0(e)),t(" reversePoints",()=>P0(e)),t(" acyclic.undo",()=>dm(e)),{graph:e,rawNodes:c}}function yi(e,t){e.nodes().forEach(n=>{let r=e.node(n),s=t.node(n);r&&(r.x=s.x,r.y=s.y,r.order=s.order,r.rank=s.rank,t.children(n).length&&(r.width=s.width,r.height=s.height))}),e.edges().forEach(n=>{let r=e.edge(n),s=t.edge(n);r.points=s.points,Object.hasOwn(s,"x")&&(r.x=s.x,r.y=s.y)}),e.graph().width=t.graph().width,e.graph().height=t.graph().height}var S0=["nodesep","edgesep","ranksep","marginx","marginy"],I0={ranksep:50,edgesep:20,nodesep:50,rankdir:"TB",rankalign:"center"},w0=["acyclicer","ranker","rankdir","align","rankalign"],E0=["width","height","rank"],bi={width:0,height:0},C0=["minlen","weight","width","height","labeloffset"],N0={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},R0=["labelpos"];function xi(e){let t=new Ve({multigraph:!0,compound:!0}),n=ts(e.graph());return t.setGraph(Object.assign({},I0,es(n,S0),sr(n,w0))),e.nodes().forEach(r=>{let s=es(ts(e.node(r)),E0);Object.keys(bi).forEach(i=>{s[i]===void 0&&(s[i]=bi[i])}),t.setNode(r,s);let o=e.parent(r);o!==void 0&&t.setParent(r,o)}),e.edges().forEach(r=>{let s=ts(e.edge(r));t.setEdge(r,Object.assign({},N0,es(s,C0),sr(s,R0)))}),t}function _0(e){let t=e.graph();t.ranksep/=2,e.edges().forEach(n=>{var r;let s=e.edge(n);s.minlen*=2,((r=s.labelpos)!=null?r:"r").toLowerCase()!=="c"&&(t.rankdir==="TB"||t.rankdir==="BT"?s.width+=s.labeloffset:s.height+=s.labeloffset)})}function T0(e){e.edges().forEach(t=>{let n=e.edge(t);if(n.width&&n.height){let r=e.node(t.v);Jt(e,"edge-proxy",{rank:(e.node(t.w).rank-r.rank)/2+r.rank,e:t},"_ep")}})}function A0(e){let t=0;e.nodes().forEach(n=>{let r=e.node(n);r.borderTop&&(r.minRank=e.node(r.borderTop).rank,r.maxRank=e.node(r.borderBottom).rank,t=Math.max(t,r.maxRank))}),e.graph().maxRank=t}function M0(e){e.nodes().forEach(t=>{let n=e.node(t);if(n.dummy==="edge-proxy"){let r=n;e.edge(r.e).labelRank=n.rank,e.removeNode(t)}})}function k0(e){let t=Number.POSITIVE_INFINITY,n=0,r=Number.POSITIVE_INFINITY,s=0,o=e.graph(),i=o.marginx||0,a=o.marginy||0;function l(c){let u=c.x,f=c.y,d=c.width,p=c.height;t=Math.min(t,u-d/2),n=Math.max(n,u+d/2),r=Math.min(r,f-p/2),s=Math.max(s,f+p/2)}e.nodes().forEach(c=>l(e.node(c))),e.edges().forEach(c=>{let u=e.edge(c);Object.hasOwn(u,"x")&&l(u)}),t-=i,r-=a,e.nodes().forEach(c=>{let u=e.node(c);u.x-=t,u.y-=r}),e.edges().forEach(c=>{let u=e.edge(c);u.points.forEach(f=>{f.x-=t,f.y-=r}),Object.hasOwn(u,"x")&&(u.x-=t),Object.hasOwn(u,"y")&&(u.y-=r)}),o.width=n-t+i,o.height=s-r+a}function O0(e){e.edges().forEach(t=>{if(t.v===t.w)return;let n=e.edge(t),r=e.node(t.v),s=e.node(t.w),o,i;n.points?(o=n.points[0],i=n.points[n.points.length-1]):(n.points=[],o=s,i=r),n.points.unshift(si(r,o)),n.points.push(si(s,i))})}function j0(e){e.edges().forEach(t=>{let n=e.edge(t);if(Object.hasOwn(n,"x"))switch((n.labelpos==="l"||n.labelpos==="r")&&(n.width-=n.labeloffset),n.labelpos){case"l":n.x-=n.width/2+n.labeloffset;break;case"r":n.x+=n.width/2+n.labeloffset}})}function P0(e){e.edges().forEach(t=>{let n=e.edge(t);n.reversed&&n.points.reverse()})}function L0(e){e.nodes().forEach(t=>{if(e.children(t).length){let n=e.node(t),r=e.node(n.borderTop),s=e.node(n.borderBottom),o=e.node(n.borderLeft[n.borderLeft.length-1]),i=e.node(n.borderRight[n.borderRight.length-1]);n.width=Math.abs(i.x-o.x),n.height=Math.abs(s.y-r.y),n.x=o.x+n.width/2,n.y=r.y+n.height/2}}),e.nodes().forEach(t=>{e.node(t).dummy==="border"&&e.removeNode(t)})}function D0(e){e.edges().forEach(t=>{if(t.v===t.w){let n=e.node(t.v);n.selfEdges||(n.selfEdges=[]),n.selfEdges.push({e:t,label:e.edge(t)}),e.removeEdge(t)}})}function $0(e){Nr(e).forEach(t=>{let n=0;t.forEach((r,s)=>{let o=e.node(r);typeof o.rank!="number"&&(o.rank=0),o.order=s+n,(o.selfEdges||[]).forEach(i=>{Jt(e,"selfedge",{width:i.label.width,height:i.label.height,rank:o.rank,order:s+ ++n,e:i.e,edgeLabel:i.label},"_se"),(!Array.isArray(i.label.points)||i.label.points.length!==7)&&(i.label.points=[{x:0,y:-10},{x:0,y:-10},{x:0,y:0},{x:0,y:10},{x:0,y:10},{x:0,y:0},{x:0,y:0}])}),delete o.selfEdges})})}function F0(e){e.nodes().forEach(t=>{let n=e.node(t),r=s=>typeof s=="number"&&isFinite(s);if(n.dummy==="selfedge"){let s=n,o=e.node(s.e.v),i=r(o?.x)?o.x:0,a=r(o?.y)?o.y:0,l=r(o?.width)?o.width:0,c=r(o?.height)?o.height:0,u=r(n.x)?n.x:i,f=r(n.y)?n.y:a,d=l/2,p=c/2;s.edgeLabel.points=[{x:u+d,y:f-p},{x:u+d,y:f-p},{x:u,y:f},{x:u-d,y:f+p},{x:u-d,y:f+p},{x:u,y:f},{x:u,y:f}],s.edgeLabel.x=u,s.edgeLabel.y=f,e.setEdge(s.e,s.edgeLabel),e.removeNode(t)}else n&&Array.isArray(n.selfEdges)&&n.selfEdges.forEach(s=>{if(!Array.isArray(s.label.points)||s.label.points.length!==7){let o=r(n.x)?n.x:0,i=r(n.y)?n.y:0,a=r(n.width)?n.width:0,l=r(n.height)?n.height:0,c=a/2,u=l/2;s.label.points=[{x:o+c,y:i-u},{x:o+c,y:i-u},{x:o,y:i},{x:o-c,y:i+u},{x:o-c,y:i+u},{x:o,y:i},{x:o,y:i}]}})})}function es(e,t){return Rr(sr(e,t),Number)}function ts(e){let t={};return e&&Object.entries(e).forEach(([n,r])=>{typeof n=="string"&&(n=n.toLowerCase()),t[n]=r}),t}var ln=({schemaName:e,tableName:t})=>e?`${e}.${t}`:t,z0=(e,t)=>{const n=(t==="all"?e:e.filter(r=>r.schemaName===t)).map(r=>({...r,id:ln(r)}));return{tables:n,edges:n.flatMap(r=>r.columns.flatMap(s=>{const{referencedTable:o,referencedSchema:i,referencedColumn:a}=s;if(!o||!a)return[];const l=n.find(c=>c.tableName===o&&c.schemaName===i);return l?{id:`${r.id}.${s.columnName}->${l.id}`,source:r.id,sourceColumn:s.columnName,target:l.id,targetColumn:a}:[]}))}},H0=(e,t)=>{const n=new Kl.Graph;n.setDefaultEdgeLabel(()=>({})),n.setGraph({rankdir:"LR",ranksep:160,nodesep:60});for(const r of e)n.setNode(r.id,{width:r.width,height:r.height});for(const r of t)n.setEdge(r.target,r.source);return x0(n),new Map(e.map(r=>{const{x:s,y:o}=n.node(r.id);return[r.id,{x:s-r.width/2,y:o-r.height/2}]}))},B0=(e,t)=>{const n=new Set([t]),r=new Set,s=new Set;for(const o of e)o.source!==t&&o.target!==t||(n.add(o.source).add(o.target),r.add(`${o.source}.${o.sourceColumn}`).add(`${o.target}.${o.targetColumn}`),s.add(o.id));return{tables:n,columns:r,edgeIds:s}},G0=e=>{const t=Math.max(e.tableName.length,...e.columns.map(n=>n.columnName.length+n.dataTypeLabel.length+4));return Math.min(Math.max(t*7.5+72,220),420)};function ue(e){if(typeof e=="string"||typeof e=="number")return""+e;let t="";if(Array.isArray(e))for(let n=0,r;n<e.length;n++)(r=ue(e[n]))!==""&&(t+=(t&&" ")+r);else for(let n in e)e[n]&&(t+=(t&&" ")+n);return t}var U0={value:()=>{}};function Tr(){for(var e=0,t=arguments.length,n={},r;e<t;++e){if(!(r=arguments[e]+"")||r in n||/[\s.]/.test(r))throw new Error("illegal type: "+r);n[r]=[]}return new Xn(n)}function Xn(e){this._=e}function q0(e,t){return e.trim().split(/^|\s+/).map(function(n){var r="",s=n.indexOf(".");if(s>=0&&(r=n.slice(s+1),n=n.slice(0,s)),n&&!t.hasOwnProperty(n))throw new Error("unknown type: "+n);return{type:n,name:r}})}Xn.prototype=Tr.prototype={constructor:Xn,on:function(e,t){var n=this._,r=q0(e+"",n),s,o=-1,i=r.length;if(arguments.length<2){for(;++o<i;)if((s=(e=r[o]).type)&&(s=V0(n[s],e.name)))return s;return}if(t!=null&&typeof t!="function")throw new Error("invalid callback: "+t);for(;++o<i;)if(s=(e=r[o]).type)n[s]=Si(n[s],e.name,t);else if(t==null)for(s in n)n[s]=Si(n[s],e.name,null);return this},copy:function(){var e={},t=this._;for(var n in t)e[n]=t[n].slice();return new Xn(e)},call:function(e,t){if((s=arguments.length-2)>0)for(var n=new Array(s),r=0,s,o;r<s;++r)n[r]=arguments[r+2];if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(o=this._[e],r=0,s=o.length;r<s;++r)o[r].value.apply(t,n)},apply:function(e,t,n){if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(var r=this._[e],s=0,o=r.length;s<o;++s)r[s].value.apply(t,n)}};function V0(e,t){for(var n=0,r=e.length,s;n<r;++n)if((s=e[n]).name===t)return s.value}function Si(e,t,n){for(var r=0,s=e.length;r<s;++r)if(e[r].name===t){e[r]=U0,e=e.slice(0,r).concat(e.slice(r+1));break}return n!=null&&e.push({name:t,value:n}),e}var K0="http://www.w3.org/1999/xhtml",Ii={svg:"http://www.w3.org/2000/svg",xhtml:K0,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function Ar(e){var t=e+="",n=t.indexOf(":");return n>=0&&(t=e.slice(0,n))!=="xmlns"&&(e=e.slice(n+1)),Ii.hasOwnProperty(t)?{space:Ii[t],local:e}:e}function Y0(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n==="http://www.w3.org/1999/xhtml"&&t.documentElement.namespaceURI==="http://www.w3.org/1999/xhtml"?t.createElement(e):t.createElementNS(n,e)}}function W0(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function vc(e){var t=Ar(e);return(t.local?W0:Y0)(t)}function X0(){}function ho(e){return e==null?X0:function(){return this.querySelector(e)}}function Q0(e){typeof e!="function"&&(e=ho(e));for(var t=this._groups,n=t.length,r=new Array(n),s=0;s<n;++s)for(var o=t[s],i=o.length,a=r[s]=new Array(i),l,c,u=0;u<i;++u)(l=o[u])&&(c=e.call(l,l.__data__,u,o))&&("__data__"in l&&(c.__data__=l.__data__),a[u]=c);return new Ie(r,this._parents)}function J0(e){return e==null?[]:Array.isArray(e)?e:Array.from(e)}function Z0(){return[]}function yc(e){return e==null?Z0:function(){return this.querySelectorAll(e)}}function ev(e){return function(){return J0(e.apply(this,arguments))}}function tv(e){typeof e=="function"?e=ev(e):e=yc(e);for(var t=this._groups,n=t.length,r=[],s=[],o=0;o<n;++o)for(var i=t[o],a=i.length,l,c=0;c<a;++c)(l=i[c])&&(r.push(e.call(l,l.__data__,c,i)),s.push(l));return new Ie(r,s)}function bc(e){return function(){return this.matches(e)}}function xc(e){return function(t){return t.matches(e)}}var nv=Array.prototype.find;function rv(e){return function(){return nv.call(this.children,e)}}function sv(){return this.firstElementChild}function ov(e){return this.select(e==null?sv:rv(typeof e=="function"?e:xc(e)))}var iv=Array.prototype.filter;function av(){return Array.from(this.children)}function lv(e){return function(){return iv.call(this.children,e)}}function cv(e){return this.selectAll(e==null?av:lv(typeof e=="function"?e:xc(e)))}function uv(e){typeof e!="function"&&(e=bc(e));for(var t=this._groups,n=t.length,r=new Array(n),s=0;s<n;++s)for(var o=t[s],i=o.length,a=r[s]=[],l,c=0;c<i;++c)(l=o[c])&&e.call(l,l.__data__,c,o)&&a.push(l);return new Ie(r,this._parents)}function Sc(e){return new Array(e.length)}function dv(){return new Ie(this._enter||this._groups.map(Sc),this._parents)}function or(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}or.prototype={constructor:or,appendChild:function(e){return this._parent.insertBefore(e,this._next)},insertBefore:function(e,t){return this._parent.insertBefore(e,t)},querySelector:function(e){return this._parent.querySelector(e)},querySelectorAll:function(e){return this._parent.querySelectorAll(e)}};function hv(e){return function(){return e}}function fv(e,t,n,r,s,o){for(var i=0,a,l=t.length,c=o.length;i<c;++i)(a=t[i])?(a.__data__=o[i],r[i]=a):n[i]=new or(e,o[i]);for(;i<l;++i)(a=t[i])&&(s[i]=a)}function pv(e,t,n,r,s,o,i){var a,l,c=new Map,u=t.length,f=o.length,d=new Array(u),p;for(a=0;a<u;++a)(l=t[a])&&(d[a]=p=i.call(l,l.__data__,a,t)+"",c.has(p)?s[a]=l:c.set(p,l));for(a=0;a<f;++a)p=i.call(e,o[a],a,o)+"",(l=c.get(p))?(r[a]=l,l.__data__=o[a],c.delete(p)):n[a]=new or(e,o[a]);for(a=0;a<u;++a)(l=t[a])&&c.get(d[a])===l&&(s[a]=l)}function gv(e){return e.__data__}function mv(e,t){if(!arguments.length)return Array.from(this,gv);var n=t?pv:fv,r=this._parents,s=this._groups;typeof e!="function"&&(e=hv(e));for(var o=s.length,i=new Array(o),a=new Array(o),l=new Array(o),c=0;c<o;++c){var u=r[c],f=s[c],d=f.length,p=vv(e.call(u,u&&u.__data__,c,r)),g=p.length,y=a[c]=new Array(g),x=i[c]=new Array(g);n(u,f,y,x,l[c]=new Array(d),p,t);for(var v=0,I=0,m,b;v<g;++v)if(m=y[v]){for(v>=I&&(I=v+1);!(b=x[I])&&++I<g;);m._next=b||null}}return i=new Ie(i,r),i._enter=a,i._exit=l,i}function vv(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function yv(){return new Ie(this._exit||this._groups.map(Sc),this._parents)}function bv(e,t,n){var r=this.enter(),s=this,o=this.exit();return typeof e=="function"?(r=e(r),r&&(r=r.selection())):r=r.append(e+""),t!=null&&(s=t(s),s&&(s=s.selection())),n==null?o.remove():n(o),r&&s?r.merge(s).order():s}function xv(e){for(var t=e.selection?e.selection():e,n=this._groups,r=t._groups,s=n.length,o=r.length,i=Math.min(s,o),a=new Array(s),l=0;l<i;++l)for(var c=n[l],u=r[l],f=c.length,d=a[l]=new Array(f),p,g=0;g<f;++g)(p=c[g]||u[g])&&(d[g]=p);for(;l<s;++l)a[l]=n[l];return new Ie(a,this._parents)}function Sv(){for(var e=this._groups,t=-1,n=e.length;++t<n;)for(var r=e[t],s=r.length-1,o=r[s],i;--s>=0;)(i=r[s])&&(o&&i.compareDocumentPosition(o)^4&&o.parentNode.insertBefore(i,o),o=i);return this}function Iv(e){e||(e=wv);function t(f,d){return f&&d?e(f.__data__,d.__data__):!f-!d}for(var n=this._groups,r=n.length,s=new Array(r),o=0;o<r;++o){for(var i=n[o],a=i.length,l=s[o]=new Array(a),c,u=0;u<a;++u)(c=i[u])&&(l[u]=c);l.sort(t)}return new Ie(s,this._parents).order()}function wv(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}function Ev(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function Cv(){return Array.from(this)}function Nv(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r=e[t],s=0,o=r.length;s<o;++s){var i=r[s];if(i)return i}return null}function Rv(){let e=0;for(const t of this)++e;return e}function _v(){return!this.node()}function Tv(e){for(var t=this._groups,n=0,r=t.length;n<r;++n)for(var s=t[n],o=0,i=s.length,a;o<i;++o)(a=s[o])&&e.call(a,a.__data__,o,s);return this}function Av(e){return function(){this.removeAttribute(e)}}function Mv(e){return function(){this.removeAttributeNS(e.space,e.local)}}function kv(e,t){return function(){this.setAttribute(e,t)}}function Ov(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function jv(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttribute(e):this.setAttribute(e,n)}}function Pv(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttributeNS(e.space,e.local):this.setAttributeNS(e.space,e.local,n)}}function Lv(e,t){var n=Ar(e);if(arguments.length<2){var r=this.node();return n.local?r.getAttributeNS(n.space,n.local):r.getAttribute(n)}return this.each((t==null?n.local?Mv:Av:typeof t=="function"?n.local?Pv:jv:n.local?Ov:kv)(n,t))}function Ic(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function Dv(e){return function(){this.style.removeProperty(e)}}function $v(e,t,n){return function(){this.style.setProperty(e,t,n)}}function Fv(e,t,n){return function(){var r=t.apply(this,arguments);r==null?this.style.removeProperty(e):this.style.setProperty(e,r,n)}}function zv(e,t,n){return arguments.length>1?this.each((t==null?Dv:typeof t=="function"?Fv:$v)(e,t,n??"")):Ut(this.node(),e)}function Ut(e,t){return e.style.getPropertyValue(t)||Ic(e).getComputedStyle(e,null).getPropertyValue(t)}function Hv(e){return function(){delete this[e]}}function Bv(e,t){return function(){this[e]=t}}function Gv(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function Uv(e,t){return arguments.length>1?this.each((t==null?Hv:typeof t=="function"?Gv:Bv)(e,t)):this.node()[e]}function wc(e){return e.trim().split(/^|\s+/)}function fo(e){return e.classList||new Ec(e)}function Ec(e){this._node=e,this._names=wc(e.getAttribute("class")||"")}Ec.prototype={add:function(e){this._names.indexOf(e)<0&&(this._names.push(e),this._node.setAttribute("class",this._names.join(" ")))},remove:function(e){var t=this._names.indexOf(e);t>=0&&(this._names.splice(t,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(e){return this._names.indexOf(e)>=0}};function Cc(e,t){for(var n=fo(e),r=-1,s=t.length;++r<s;)n.add(t[r])}function Nc(e,t){for(var n=fo(e),r=-1,s=t.length;++r<s;)n.remove(t[r])}function qv(e){return function(){Cc(this,e)}}function Vv(e){return function(){Nc(this,e)}}function Kv(e,t){return function(){(t.apply(this,arguments)?Cc:Nc)(this,e)}}function Yv(e,t){var n=wc(e+"");if(arguments.length<2){for(var r=fo(this.node()),s=-1,o=n.length;++s<o;)if(!r.contains(n[s]))return!1;return!0}return this.each((typeof t=="function"?Kv:t?qv:Vv)(n,t))}function Wv(){this.textContent=""}function Xv(e){return function(){this.textContent=e}}function Qv(e){return function(){var t=e.apply(this,arguments);this.textContent=t??""}}function Jv(e){return arguments.length?this.each(e==null?Wv:(typeof e=="function"?Qv:Xv)(e)):this.node().textContent}function Zv(){this.innerHTML=""}function ey(e){return function(){this.innerHTML=e}}function ty(e){return function(){var t=e.apply(this,arguments);this.innerHTML=t??""}}function ny(e){return arguments.length?this.each(e==null?Zv:(typeof e=="function"?ty:ey)(e)):this.node().innerHTML}function ry(){this.nextSibling&&this.parentNode.appendChild(this)}function sy(){return this.each(ry)}function oy(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function iy(){return this.each(oy)}function ay(e){var t=typeof e=="function"?e:vc(e);return this.select(function(){return this.appendChild(t.apply(this,arguments))})}function ly(){return null}function cy(e,t){var n=typeof e=="function"?e:vc(e),r=t==null?ly:typeof t=="function"?t:ho(t);return this.select(function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)})}function uy(){var e=this.parentNode;e&&e.removeChild(this)}function dy(){return this.each(uy)}function hy(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function fy(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function py(e){return this.select(e?fy:hy)}function gy(e){return arguments.length?this.property("__data__",e):this.node().__data__}function my(e){return function(t){e.call(this,t,this.__data__)}}function vy(e){return e.trim().split(/^|\s+/).map(function(t){var n="",r=t.indexOf(".");return r>=0&&(n=t.slice(r+1),t=t.slice(0,r)),{type:t,name:n}})}function yy(e){return function(){var t=this.__on;if(t){for(var n=0,r=-1,s=t.length,o;n<s;++n)o=t[n],(!e.type||o.type===e.type)&&o.name===e.name?this.removeEventListener(o.type,o.listener,o.options):t[++r]=o;++r?t.length=r:delete this.__on}}}function by(e,t,n){return function(){var r=this.__on,s,o=my(t);if(r){for(var i=0,a=r.length;i<a;++i)if((s=r[i]).type===e.type&&s.name===e.name){this.removeEventListener(s.type,s.listener,s.options),this.addEventListener(s.type,s.listener=o,s.options=n),s.value=t;return}}this.addEventListener(e.type,o,n),s={type:e.type,name:e.name,value:t,listener:o,options:n},r?r.push(s):this.__on=[s]}}function xy(e,t,n){var r=vy(e+""),s,o=r.length,i;if(arguments.length<2){var a=this.node().__on;if(a){for(var l=0,c=a.length,u;l<c;++l)for(s=0,u=a[l];s<o;++s)if((i=r[s]).type===u.type&&i.name===u.name)return u.value}return}for(a=t?by:yy,s=0;s<o;++s)this.each(a(r[s],t,n));return this}function Rc(e,t,n){var r=Ic(e),s=r.CustomEvent;typeof s=="function"?s=new s(t,n):(s=r.document.createEvent("Event"),n?(s.initEvent(t,n.bubbles,n.cancelable),s.detail=n.detail):s.initEvent(t,!1,!1)),e.dispatchEvent(s)}function Sy(e,t){return function(){return Rc(this,e,t)}}function Iy(e,t){return function(){return Rc(this,e,t.apply(this,arguments))}}function wy(e,t){return this.each((typeof t=="function"?Iy:Sy)(e,t))}function*Ey(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r=e[t],s=0,o=r.length,i;s<o;++s)(i=r[s])&&(yield i)}var _c=[null];function Ie(e,t){this._groups=e,this._parents=t}function Zt(){return new Ie([[document.documentElement]],_c)}function Cy(){return this}Ie.prototype=Zt.prototype={constructor:Ie,select:Q0,selectAll:tv,selectChild:ov,selectChildren:cv,filter:uv,data:mv,enter:dv,exit:yv,join:bv,merge:xv,selection:Cy,order:Sv,sort:Iv,call:Ev,nodes:Cv,node:Nv,size:Rv,empty:_v,each:Tv,attr:Lv,style:zv,property:Uv,classed:Yv,text:Jv,html:ny,raise:sy,lower:iy,append:ay,insert:cy,remove:dy,clone:py,datum:gy,on:xy,dispatch:wy,[Symbol.iterator]:Ey};function Se(e){return typeof e=="string"?new Ie([[document.querySelector(e)]],[document.documentElement]):new Ie([[e]],_c)}function Ny(e){let t;for(;t=e.sourceEvent;)e=t;return e}function Oe(e,t){if(e=Ny(e),t===void 0&&(t=e.currentTarget),t){var n=t.ownerSVGElement||t;if(n.createSVGPoint){var r=n.createSVGPoint();return r.x=e.clientX,r.y=e.clientY,r=r.matrixTransform(t.getScreenCTM().inverse()),[r.x,r.y]}if(t.getBoundingClientRect){var s=t.getBoundingClientRect();return[e.clientX-s.left-t.clientLeft,e.clientY-s.top-t.clientTop]}}return[e.pageX,e.pageY]}var Ry={passive:!1},bn={capture:!0,passive:!1};function ns(e){e.stopImmediatePropagation()}function Pt(e){e.preventDefault(),e.stopImmediatePropagation()}function Tc(e){var t=e.document.documentElement,n=Se(e).on("dragstart.drag",Pt,bn);"onselectstart"in t?n.on("selectstart.drag",Pt,bn):(t.__noselect=t.style.MozUserSelect,t.style.MozUserSelect="none")}function Ac(e,t){var n=e.document.documentElement,r=Se(e).on("dragstart.drag",null);t&&(r.on("click.drag",Pt,bn),setTimeout(function(){r.on("click.drag",null)},0)),"onselectstart"in n?r.on("selectstart.drag",null):(n.style.MozUserSelect=n.__noselect,delete n.__noselect)}var Pn=e=>()=>e;function Ts(e,{sourceEvent:t,subject:n,target:r,identifier:s,active:o,x:i,y:a,dx:l,dy:c,dispatch:u}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},subject:{value:n,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},identifier:{value:s,enumerable:!0,configurable:!0},active:{value:o,enumerable:!0,configurable:!0},x:{value:i,enumerable:!0,configurable:!0},y:{value:a,enumerable:!0,configurable:!0},dx:{value:l,enumerable:!0,configurable:!0},dy:{value:c,enumerable:!0,configurable:!0},_:{value:u}})}Ts.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function _y(e){return!e.ctrlKey&&!e.button}function Ty(){return this.parentNode}function Ay(e,t){return t??{x:e.x,y:e.y}}function My(){return navigator.maxTouchPoints||"ontouchstart"in this}function Mc(){var e=_y,t=Ty,n=Ay,r=My,s={},o=Tr("start","drag","end"),i=0,a,l,c,u,f=0;function d(b){b.on("mousedown.drag",p).filter(r).on("touchstart.drag",x).on("touchmove.drag",v,Ry).on("touchend.drag touchcancel.drag",I).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function p(b,E){if(!(u||!e.call(this,b,E))){var N=m(this,t.call(this,b,E),b,E,"mouse");N&&(Se(b.view).on("mousemove.drag",g,bn).on("mouseup.drag",y,bn),Tc(b.view),ns(b),c=!1,a=b.clientX,l=b.clientY,N("start",b))}}function g(b){if(Pt(b),!c){var E=b.clientX-a,N=b.clientY-l;c=E*E+N*N>f}s.mouse("drag",b)}function y(b){Se(b.view).on("mousemove.drag mouseup.drag",null),Ac(b.view,c),Pt(b),s.mouse("end",b)}function x(b,E){if(e.call(this,b,E)){var N=b.changedTouches,R=t.call(this,b,E),A=N.length,k,L;for(k=0;k<A;++k)(L=m(this,R,b,E,N[k].identifier,N[k]))&&(ns(b),L("start",b,N[k]))}}function v(b){var E=b.changedTouches,N=E.length,R,A;for(R=0;R<N;++R)(A=s[E[R].identifier])&&(Pt(b),A("drag",b,E[R]))}function I(b){var E=b.changedTouches,N=E.length,R,A;for(u&&clearTimeout(u),u=setTimeout(function(){u=null},500),R=0;R<N;++R)(A=s[E[R].identifier])&&(ns(b),A("end",b,E[R]))}function m(b,E,N,R,A,k){var L=o.copy(),_=Oe(k||N,E),M,O,S;if((S=n.call(b,new Ts("beforestart",{sourceEvent:N,target:d,identifier:A,active:i,x:_[0],y:_[1],dx:0,dy:0,dispatch:L}),R))!=null)return M=S.x-_[0]||0,O=S.y-_[1]||0,function w(T,j,D){var P=_,F;switch(T){case"start":s[A]=w,F=i++;break;case"end":delete s[A],--i;case"drag":_=Oe(D||j,E),F=i}L.call(T,b,new Ts(T,{sourceEvent:j,subject:S,target:d,identifier:A,active:F,x:_[0]+M,y:_[1]+O,dx:_[0]-P[0],dy:_[1]-P[1],dispatch:L}),R)}}return d.filter=function(b){return arguments.length?(e=typeof b=="function"?b:Pn(!!b),d):e},d.container=function(b){return arguments.length?(t=typeof b=="function"?b:Pn(b),d):t},d.subject=function(b){return arguments.length?(n=typeof b=="function"?b:Pn(b),d):n},d.touchable=function(b){return arguments.length?(r=typeof b=="function"?b:Pn(!!b),d):r},d.on=function(){var b=o.on.apply(o,arguments);return b===o?d:b},d.clickDistance=function(b){return arguments.length?(f=(b=+b)*b,d):Math.sqrt(f)},d}function po(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function kc(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function Tn(){}var xn=.7,ir=1/xn,Lt="\\s*([+-]?\\d+)\\s*",Sn="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",Ue="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",ky=/^#([0-9a-f]{3,8})$/,Oy=new RegExp(`^rgb\\(${Lt},${Lt},${Lt}\\)$`),jy=new RegExp(`^rgb\\(${Ue},${Ue},${Ue}\\)$`),Py=new RegExp(`^rgba\\(${Lt},${Lt},${Lt},${Sn}\\)$`),Ly=new RegExp(`^rgba\\(${Ue},${Ue},${Ue},${Sn}\\)$`),Dy=new RegExp(`^hsl\\(${Sn},${Ue},${Ue}\\)$`),$y=new RegExp(`^hsla\\(${Sn},${Ue},${Ue},${Sn}\\)$`),wi={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};po(Tn,Ct,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:Ei,formatHex:Ei,formatHex8:Fy,formatHsl:zy,formatRgb:Ci,toString:Ci});function Ei(){return this.rgb().formatHex()}function Fy(){return this.rgb().formatHex8()}function zy(){return Oc(this).formatHsl()}function Ci(){return this.rgb().formatRgb()}function Ct(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=ky.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?Ni(t):n===3?new be(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?Ln(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?Ln(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=Oy.exec(e))?new be(t[1],t[2],t[3],1):(t=jy.exec(e))?new be(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=Py.exec(e))?Ln(t[1],t[2],t[3],t[4]):(t=Ly.exec(e))?Ln(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=Dy.exec(e))?Ti(t[1],t[2]/100,t[3]/100,1):(t=$y.exec(e))?Ti(t[1],t[2]/100,t[3]/100,t[4]):wi.hasOwnProperty(e)?Ni(wi[e]):e==="transparent"?new be(NaN,NaN,NaN,0):null}function Ni(e){return new be(e>>16&255,e>>8&255,e&255,1)}function Ln(e,t,n,r){return r<=0&&(e=t=n=NaN),new be(e,t,n,r)}function Hy(e){return e instanceof Tn||(e=Ct(e)),e?(e=e.rgb(),new be(e.r,e.g,e.b,e.opacity)):new be}function ar(e,t,n,r){return arguments.length===1?Hy(e):new be(e,t,n,r??1)}function be(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}po(be,ar,kc(Tn,{brighter(e){return e=e==null?ir:Math.pow(ir,e),new be(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?xn:Math.pow(xn,e),new be(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new be(It(this.r),It(this.g),It(this.b),lr(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:Ri,formatHex:Ri,formatHex8:By,formatRgb:_i,toString:_i}));function Ri(){return`#${xt(this.r)}${xt(this.g)}${xt(this.b)}`}function By(){return`#${xt(this.r)}${xt(this.g)}${xt(this.b)}${xt((isNaN(this.opacity)?1:this.opacity)*255)}`}function _i(){const e=lr(this.opacity);return`${e===1?"rgb(":"rgba("}${It(this.r)}, ${It(this.g)}, ${It(this.b)}${e===1?")":`, ${e})`}`}function lr(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function It(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function xt(e){return e=It(e),(e<16?"0":"")+e.toString(16)}function Ti(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new je(e,t,n,r)}function Oc(e){if(e instanceof je)return new je(e.h,e.s,e.l,e.opacity);if(e instanceof Tn||(e=Ct(e)),!e)return new je;if(e instanceof je)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,s=Math.min(t,n,r),o=Math.max(t,n,r),i=NaN,a=o-s,l=(o+s)/2;return a?(t===o?i=(n-r)/a+(n<r)*6:n===o?i=(r-t)/a+2:i=(t-n)/a+4,a/=l<.5?o+s:2-o-s,i*=60):a=l>0&&l<1?0:i,new je(i,a,l,e.opacity)}function Gy(e,t,n,r){return arguments.length===1?Oc(e):new je(e,t,n,r??1)}function je(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}po(je,Gy,kc(Tn,{brighter(e){return e=e==null?ir:Math.pow(ir,e),new je(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?xn:Math.pow(xn,e),new je(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,s=2*n-r;return new be(rs(e>=240?e-240:e+120,s,r),rs(e,s,r),rs(e<120?e+240:e-120,s,r),this.opacity)},clamp(){return new je(Ai(this.h),Dn(this.s),Dn(this.l),lr(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=lr(this.opacity);return`${e===1?"hsl(":"hsla("}${Ai(this.h)}, ${Dn(this.s)*100}%, ${Dn(this.l)*100}%${e===1?")":`, ${e})`}`}}));function Ai(e){return e=(e||0)%360,e<0?e+360:e}function Dn(e){return Math.max(0,Math.min(1,e||0))}function rs(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}function jc(e,t,n,r,s){var o=e*e,i=o*e;return((1-3*e+3*o-i)*t+(4-6*o+3*i)*n+(1+3*e+3*o-3*i)*r+i*s)/6}function Uy(e){var t=e.length-1;return function(n){var r=n<=0?n=0:n>=1?(n=1,t-1):Math.floor(n*t),s=e[r],o=e[r+1],i=r>0?e[r-1]:2*s-o,a=r<t-1?e[r+2]:2*o-s;return jc((n-r/t)*t,i,s,o,a)}}function qy(e){var t=e.length;return function(n){var r=Math.floor(((n%=1)<0?++n:n)*t),s=e[(r+t-1)%t],o=e[r%t],i=e[(r+1)%t],a=e[(r+2)%t];return jc((n-r/t)*t,s,o,i,a)}}var go=e=>()=>e;function Vy(e,t){return function(n){return e+n*t}}function Ky(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(r){return Math.pow(e+r*t,n)}}function Yy(e){return(e=+e)==1?Pc:function(t,n){return n-t?Ky(t,n,e):go(isNaN(t)?n:t)}}function Pc(e,t){var n=t-e;return n?Vy(e,n):go(isNaN(e)?t:e)}var cr=(function e(t){var n=Yy(t);function r(s,o){var i=n((s=ar(s)).r,(o=ar(o)).r),a=n(s.g,o.g),l=n(s.b,o.b),c=Pc(s.opacity,o.opacity);return function(u){return s.r=i(u),s.g=a(u),s.b=l(u),s.opacity=c(u),s+""}}return r.gamma=e,r})(1);function Lc(e){return function(t){var n=t.length,r=new Array(n),s=new Array(n),o=new Array(n),i,a;for(i=0;i<n;++i)a=ar(t[i]),r[i]=a.r||0,s[i]=a.g||0,o[i]=a.b||0;return r=e(r),s=e(s),o=e(o),a.opacity=1,function(l){return a.r=r(l),a.g=s(l),a.b=o(l),a+""}}}var A_=Lc(Uy),M_=Lc(qy);function Wy(e,t){t||(t=[]);var n=e?Math.min(t.length,e.length):0,r=t.slice(),s;return function(o){for(s=0;s<n;++s)r[s]=e[s]*(1-o)+t[s]*o;return r}}function Xy(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function Qy(e,t){var n=t?t.length:0,r=e?Math.min(n,e.length):0,s=new Array(r),o=new Array(n),i;for(i=0;i<r;++i)s[i]=pn(e[i],t[i]);for(;i<n;++i)o[i]=t[i];return function(a){for(i=0;i<r;++i)o[i]=s[i](a);return o}}function Jy(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}function Be(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function Zy(e,t){var n={},r={},s;(e===null||typeof e!="object")&&(e={}),(t===null||typeof t!="object")&&(t={});for(s in t)s in e?n[s]=pn(e[s],t[s]):r[s]=t[s];return function(o){for(s in n)r[s]=n[s](o);return r}}var As=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,ss=new RegExp(As.source,"g");function eb(e){return function(){return e}}function tb(e){return function(t){return e(t)+""}}function Dc(e,t){var n=As.lastIndex=ss.lastIndex=0,r,s,o,i=-1,a=[],l=[];for(e=e+"",t=t+"";(r=As.exec(e))&&(s=ss.exec(t));)(o=s.index)>n&&(o=t.slice(n,o),a[i]?a[i]+=o:a[++i]=o),(r=r[0])===(s=s[0])?a[i]?a[i]+=s:a[++i]=s:(a[++i]=null,l.push({i,x:Be(r,s)})),n=ss.lastIndex;return n<t.length&&(o=t.slice(n),a[i]?a[i]+=o:a[++i]=o),a.length<2?l[0]?tb(l[0].x):eb(t):(t=l.length,function(c){for(var u=0,f;u<t;++u)a[(f=l[u]).i]=f.x(c);return a.join("")})}function pn(e,t){var n=typeof t,r;return t==null||n==="boolean"?go(t):(n==="number"?Be:n==="string"?(r=Ct(t))?(t=r,cr):Dc:t instanceof Ct?cr:t instanceof Date?Jy:Xy(t)?Wy:Array.isArray(t)?Qy:typeof t.valueOf!="function"&&typeof t.toString!="function"||isNaN(t)?Zy:Be)(e,t)}var Mi=180/Math.PI,Ms={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function $c(e,t,n,r,s,o){var i,a,l;return(i=Math.sqrt(e*e+t*t))&&(e/=i,t/=i),(l=e*n+t*r)&&(n-=e*l,r-=t*l),(a=Math.sqrt(n*n+r*r))&&(n/=a,r/=a,l/=a),e*r<t*n&&(e=-e,t=-t,l=-l,i=-i),{translateX:s,translateY:o,rotate:Math.atan2(t,e)*Mi,skewX:Math.atan(l)*Mi,scaleX:i,scaleY:a}}var $n;function nb(e){const t=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(e+"");return t.isIdentity?Ms:$c(t.a,t.b,t.c,t.d,t.e,t.f)}function rb(e){return e==null||($n||($n=document.createElementNS("http://www.w3.org/2000/svg","g")),$n.setAttribute("transform",e),!(e=$n.transform.baseVal.consolidate()))?Ms:(e=e.matrix,$c(e.a,e.b,e.c,e.d,e.e,e.f))}function Fc(e,t,n,r){function s(c){return c.length?c.pop()+" ":""}function o(c,u,f,d,p,g){if(c!==f||u!==d){var y=p.push("translate(",null,t,null,n);g.push({i:y-4,x:Be(c,f)},{i:y-2,x:Be(u,d)})}else(f||d)&&p.push("translate("+f+t+d+n)}function i(c,u,f,d){c!==u?(c-u>180?u+=360:u-c>180&&(c+=360),d.push({i:f.push(s(f)+"rotate(",null,r)-2,x:Be(c,u)})):u&&f.push(s(f)+"rotate("+u+r)}function a(c,u,f,d){c!==u?d.push({i:f.push(s(f)+"skewX(",null,r)-2,x:Be(c,u)}):u&&f.push(s(f)+"skewX("+u+r)}function l(c,u,f,d,p,g){if(c!==f||u!==d){var y=p.push(s(p)+"scale(",null,",",null,")");g.push({i:y-4,x:Be(c,f)},{i:y-2,x:Be(u,d)})}else(f!==1||d!==1)&&p.push(s(p)+"scale("+f+","+d+")")}return function(c,u){var f=[],d=[];return c=e(c),u=e(u),o(c.translateX,c.translateY,u.translateX,u.translateY,f,d),i(c.rotate,u.rotate,f,d),a(c.skewX,u.skewX,f,d),l(c.scaleX,c.scaleY,u.scaleX,u.scaleY,f,d),c=u=null,function(p){for(var g=-1,y=d.length,x;++g<y;)f[(x=d[g]).i]=x.x(p);return f.join("")}}}var sb=Fc(nb,"px, ","px)","deg)"),ob=Fc(rb,", ",")",")"),ib=1e-12;function ki(e){return((e=Math.exp(e))+1/e)/2}function ab(e){return((e=Math.exp(e))-1/e)/2}function lb(e){return((e=Math.exp(2*e))-1)/(e+1)}var Qn=(function e(t,n,r){function s(o,i){var a=o[0],l=o[1],c=o[2],u=i[0],f=i[1],d=i[2],p=u-a,g=f-l,y=p*p+g*g,x,v;if(y<ib)v=Math.log(d/c)/t,x=function(N){return[a+N*p,l+N*g,c*Math.exp(t*N*v)]};else{var I=Math.sqrt(y),m=(d*d-c*c+r*y)/(2*c*n*I),b=(d*d-c*c-r*y)/(2*d*n*I),E=Math.log(Math.sqrt(m*m+1)-m);v=(Math.log(Math.sqrt(b*b+1)-b)-E)/t,x=function(N){var R=N*v,A=ki(E),k=c/(n*I)*(A*lb(t*R+E)-ab(E));return[a+k*p,l+k*g,c*A/ki(t*R+E)]}}return x.duration=v*1e3*t/Math.SQRT2,x}return s.rho=function(o){var i=Math.max(.001,+o),a=i*i;return e(i,a,a*a)},s})(Math.SQRT2,2,4),qt=0,cn=0,rn=0,zc=1e3,ur,un,dr=0,Nt=0,Mr=0,In=typeof performance=="object"&&performance.now?performance:Date,Hc=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function mo(){return Nt||(Hc(cb),Nt=In.now()+Mr)}function cb(){Nt=0}function hr(){this._call=this._time=this._next=null}hr.prototype=Bc.prototype={constructor:hr,restart:function(e,t,n){if(typeof e!="function")throw new TypeError("callback is not a function");n=(n==null?mo():+n)+(t==null?0:+t),!this._next&&un!==this&&(un?un._next=this:ur=this,un=this),this._call=e,this._time=n,ks()},stop:function(){this._call&&(this._call=null,this._time=1/0,ks())}};function Bc(e,t,n){var r=new hr;return r.restart(e,t,n),r}function ub(){mo(),++qt;for(var e=ur,t;e;)(t=Nt-e._time)>=0&&e._call.call(void 0,t),e=e._next;--qt}function Oi(){Nt=(dr=In.now())+Mr,qt=cn=0;try{ub()}finally{qt=0,hb(),Nt=0}}function db(){var e=In.now(),t=e-dr;t>zc&&(Mr-=t,dr=e)}function hb(){for(var e,t=ur,n,r=1/0;t;)t._call?(r>t._time&&(r=t._time),e=t,t=t._next):(n=t._next,t._next=null,t=e?e._next=n:ur=n);un=e,ks(r)}function ks(e){qt||(cn&&(cn=clearTimeout(cn)),e-Nt>24?(e<1/0&&(cn=setTimeout(Oi,e-In.now()-Mr)),rn&&(rn=clearInterval(rn))):(rn||(dr=In.now(),rn=setInterval(db,zc)),qt=1,Hc(Oi)))}function ji(e,t,n){var r=new hr;return t=t==null?0:+t,r.restart(s=>{r.stop(),e(s+t)},t,n),r}var fb=Tr("start","end","cancel","interrupt"),pb=[];function kr(e,t,n,r,s,o){var i=e.__transition;if(!i)e.__transition={};else if(n in i)return;gb(e,n,{name:t,index:r,group:s,on:fb,tween:pb,time:o.time,delay:o.delay,duration:o.duration,ease:o.ease,timer:null,state:0})}function vo(e,t){var n=$e(e,t);if(n.state>0)throw new Error("too late; already scheduled");return n}function Ke(e,t){var n=$e(e,t);if(n.state>3)throw new Error("too late; already running");return n}function $e(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw new Error("transition not found");return n}function gb(e,t,n){var r=e.__transition,s;r[t]=n,n.timer=Bc(o,0,n.time);function o(c){n.state=1,n.timer.restart(i,n.delay,n.time),n.delay<=c&&i(c-n.delay)}function i(c){var u,f,d,p;if(n.state!==1)return l();for(u in r)if(p=r[u],p.name===n.name){if(p.state===3)return ji(i);p.state===4?(p.state=6,p.timer.stop(),p.on.call("interrupt",e,e.__data__,p.index,p.group),delete r[u]):+u<t&&(p.state=6,p.timer.stop(),p.on.call("cancel",e,e.__data__,p.index,p.group),delete r[u])}if(ji(function(){n.state===3&&(n.state=4,n.timer.restart(a,n.delay,n.time),a(c))}),n.state=2,n.on.call("start",e,e.__data__,n.index,n.group),n.state===2){for(n.state=3,s=new Array(d=n.tween.length),u=0,f=-1;u<d;++u)(p=n.tween[u].value.call(e,e.__data__,n.index,n.group))&&(s[++f]=p);s.length=f+1}}function a(c){for(var u=c<n.duration?n.ease.call(null,c/n.duration):(n.timer.restart(l),n.state=5,1),f=-1,d=s.length;++f<d;)s[f].call(e,u);n.state===5&&(n.on.call("end",e,e.__data__,n.index,n.group),l())}function l(){n.state=6,n.timer.stop(),delete r[t];for(var c in r)return;delete e.__transition}}function Jn(e,t){var n=e.__transition,r,s,o=!0,i;if(n){t=t==null?null:t+"";for(i in n){if((r=n[i]).name!==t){o=!1;continue}s=r.state>2&&r.state<5,r.state=6,r.timer.stop(),r.on.call(s?"interrupt":"cancel",e,e.__data__,r.index,r.group),delete n[i]}o&&delete e.__transition}}function mb(e){return this.each(function(){Jn(this,e)})}function vb(e,t){var n,r;return function(){var s=Ke(this,e),o=s.tween;if(o!==n){r=n=o;for(var i=0,a=r.length;i<a;++i)if(r[i].name===t){r=r.slice(),r.splice(i,1);break}}s.tween=r}}function yb(e,t,n){var r,s;if(typeof n!="function")throw new Error;return function(){var o=Ke(this,e),i=o.tween;if(i!==r){s=(r=i).slice();for(var a={name:t,value:n},l=0,c=s.length;l<c;++l)if(s[l].name===t){s[l]=a;break}l===c&&s.push(a)}o.tween=s}}function bb(e,t){var n=this._id;if(e+="",arguments.length<2){for(var r=$e(this.node(),n).tween,s=0,o=r.length,i;s<o;++s)if((i=r[s]).name===e)return i.value;return null}return this.each((t==null?vb:yb)(n,e,t))}function yo(e,t,n){var r=e._id;return e.each(function(){var s=Ke(this,r);(s.value||(s.value={}))[t]=n.apply(this,arguments)}),function(s){return $e(s,r).value[t]}}function Gc(e,t){var n;return(typeof t=="number"?Be:t instanceof Ct?cr:(n=Ct(t))?(t=n,cr):Dc)(e,t)}function xb(e){return function(){this.removeAttribute(e)}}function Sb(e){return function(){this.removeAttributeNS(e.space,e.local)}}function Ib(e,t,n){var r,s=n+"",o;return function(){var i=this.getAttribute(e);return i===s?null:i===r?o:o=t(r=i,n)}}function wb(e,t,n){var r,s=n+"",o;return function(){var i=this.getAttributeNS(e.space,e.local);return i===s?null:i===r?o:o=t(r=i,n)}}function Eb(e,t,n){var r,s,o;return function(){var i,a=n(this),l;return a==null?void this.removeAttribute(e):(i=this.getAttribute(e),l=a+"",i===l?null:i===r&&l===s?o:(s=l,o=t(r=i,a)))}}function Cb(e,t,n){var r,s,o;return function(){var i,a=n(this),l;return a==null?void this.removeAttributeNS(e.space,e.local):(i=this.getAttributeNS(e.space,e.local),l=a+"",i===l?null:i===r&&l===s?o:(s=l,o=t(r=i,a)))}}function Nb(e,t){var n=Ar(e),r=n==="transform"?ob:Gc;return this.attrTween(e,typeof t=="function"?(n.local?Cb:Eb)(n,r,yo(this,"attr."+e,t)):t==null?(n.local?Sb:xb)(n):(n.local?wb:Ib)(n,r,t))}function Rb(e,t){return function(n){this.setAttribute(e,t.call(this,n))}}function _b(e,t){return function(n){this.setAttributeNS(e.space,e.local,t.call(this,n))}}function Tb(e,t){var n,r;function s(){var o=t.apply(this,arguments);return o!==r&&(n=(r=o)&&_b(e,o)),n}return s._value=t,s}function Ab(e,t){var n,r;function s(){var o=t.apply(this,arguments);return o!==r&&(n=(r=o)&&Rb(e,o)),n}return s._value=t,s}function Mb(e,t){var n="attr."+e;if(arguments.length<2)return(n=this.tween(n))&&n._value;if(t==null)return this.tween(n,null);if(typeof t!="function")throw new Error;var r=Ar(e);return this.tween(n,(r.local?Tb:Ab)(r,t))}function kb(e,t){return function(){vo(this,e).delay=+t.apply(this,arguments)}}function Ob(e,t){return t=+t,function(){vo(this,e).delay=t}}function jb(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?kb:Ob)(t,e)):$e(this.node(),t).delay}function Pb(e,t){return function(){Ke(this,e).duration=+t.apply(this,arguments)}}function Lb(e,t){return t=+t,function(){Ke(this,e).duration=t}}function Db(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?Pb:Lb)(t,e)):$e(this.node(),t).duration}function $b(e,t){if(typeof t!="function")throw new Error;return function(){Ke(this,e).ease=t}}function Fb(e){var t=this._id;return arguments.length?this.each($b(t,e)):$e(this.node(),t).ease}function zb(e,t){return function(){var n=t.apply(this,arguments);if(typeof n!="function")throw new Error;Ke(this,e).ease=n}}function Hb(e){if(typeof e!="function")throw new Error;return this.each(zb(this._id,e))}function Bb(e){typeof e!="function"&&(e=bc(e));for(var t=this._groups,n=t.length,r=new Array(n),s=0;s<n;++s)for(var o=t[s],i=o.length,a=r[s]=[],l,c=0;c<i;++c)(l=o[c])&&e.call(l,l.__data__,c,o)&&a.push(l);return new tt(r,this._parents,this._name,this._id)}function Gb(e){if(e._id!==this._id)throw new Error;for(var t=this._groups,n=e._groups,r=t.length,s=n.length,o=Math.min(r,s),i=new Array(r),a=0;a<o;++a)for(var l=t[a],c=n[a],u=l.length,f=i[a]=new Array(u),d,p=0;p<u;++p)(d=l[p]||c[p])&&(f[p]=d);for(;a<r;++a)i[a]=t[a];return new tt(i,this._parents,this._name,this._id)}function Ub(e){return(e+"").trim().split(/^|\s+/).every(function(t){var n=t.indexOf(".");return n>=0&&(t=t.slice(0,n)),!t||t==="start"})}function qb(e,t,n){var r,s,o=Ub(t)?vo:Ke;return function(){var i=o(this,e),a=i.on;a!==r&&(s=(r=a).copy()).on(t,n),i.on=s}}function Vb(e,t){var n=this._id;return arguments.length<2?$e(this.node(),n).on.on(e):this.each(qb(n,e,t))}function Kb(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function Yb(){return this.on("end.remove",Kb(this._id))}function Wb(e){var t=this._name,n=this._id;typeof e!="function"&&(e=ho(e));for(var r=this._groups,s=r.length,o=new Array(s),i=0;i<s;++i)for(var a=r[i],l=a.length,c=o[i]=new Array(l),u,f,d=0;d<l;++d)(u=a[d])&&(f=e.call(u,u.__data__,d,a))&&("__data__"in u&&(f.__data__=u.__data__),c[d]=f,kr(c[d],t,n,d,c,$e(u,n)));return new tt(o,this._parents,t,n)}function Xb(e){var t=this._name,n=this._id;typeof e!="function"&&(e=yc(e));for(var r=this._groups,s=r.length,o=[],i=[],a=0;a<s;++a)for(var l=r[a],c=l.length,u,f=0;f<c;++f)if(u=l[f]){for(var d=e.call(u,u.__data__,f,l),p,g=$e(u,n),y=0,x=d.length;y<x;++y)(p=d[y])&&kr(p,t,n,y,d,g);o.push(d),i.push(u)}return new tt(o,i,t,n)}var Qb=Zt.prototype.constructor;function Jb(){return new Qb(this._groups,this._parents)}function Zb(e,t){var n,r,s;return function(){var o=Ut(this,e),i=(this.style.removeProperty(e),Ut(this,e));return o===i?null:o===n&&i===r?s:s=t(n=o,r=i)}}function Uc(e){return function(){this.style.removeProperty(e)}}function ex(e,t,n){var r,s=n+"",o;return function(){var i=Ut(this,e);return i===s?null:i===r?o:o=t(r=i,n)}}function tx(e,t,n){var r,s,o;return function(){var i=Ut(this,e),a=n(this),l=a+"";return a==null&&(l=a=(this.style.removeProperty(e),Ut(this,e))),i===l?null:i===r&&l===s?o:(s=l,o=t(r=i,a))}}function nx(e,t){var n,r,s,o="style."+t,i="end."+o,a;return function(){var l=Ke(this,e),c=l.on,u=l.value[o]==null?a||(a=Uc(t)):void 0;(c!==n||s!==u)&&(r=(n=c).copy()).on(i,s=u),l.on=r}}function rx(e,t,n){var r=(e+="")=="transform"?sb:Gc;return t==null?this.styleTween(e,Zb(e,r)).on("end.style."+e,Uc(e)):typeof t=="function"?this.styleTween(e,tx(e,r,yo(this,"style."+e,t))).each(nx(this._id,e)):this.styleTween(e,ex(e,r,t),n).on("end.style."+e,null)}function sx(e,t,n){return function(r){this.style.setProperty(e,t.call(this,r),n)}}function ox(e,t,n){var r,s;function o(){var i=t.apply(this,arguments);return i!==s&&(r=(s=i)&&sx(e,i,n)),r}return o._value=t,o}function ix(e,t,n){var r="style."+(e+="");if(arguments.length<2)return(r=this.tween(r))&&r._value;if(t==null)return this.tween(r,null);if(typeof t!="function")throw new Error;return this.tween(r,ox(e,t,n??""))}function ax(e){return function(){this.textContent=e}}function lx(e){return function(){var t=e(this);this.textContent=t??""}}function cx(e){return this.tween("text",typeof e=="function"?lx(yo(this,"text",e)):ax(e==null?"":e+""))}function ux(e){return function(t){this.textContent=e.call(this,t)}}function dx(e){var t,n;function r(){var s=e.apply(this,arguments);return s!==n&&(t=(n=s)&&ux(s)),t}return r._value=e,r}function hx(e){var t="text";if(arguments.length<1)return(t=this.tween(t))&&t._value;if(e==null)return this.tween(t,null);if(typeof e!="function")throw new Error;return this.tween(t,dx(e))}function fx(){for(var e=this._name,t=this._id,n=qc(),r=this._groups,s=r.length,o=0;o<s;++o)for(var i=r[o],a=i.length,l,c=0;c<a;++c)if(l=i[c]){var u=$e(l,t);kr(l,e,n,c,i,{time:u.time+u.delay+u.duration,delay:0,duration:u.duration,ease:u.ease})}return new tt(r,this._parents,e,n)}function px(){var e,t,n=this,r=n._id,s=n.size();return new Promise(function(o,i){var a={value:i},l={value:function(){--s===0&&o()}};n.each(function(){var c=Ke(this,r),u=c.on;u!==e&&(t=(e=u).copy(),t._.cancel.push(a),t._.interrupt.push(a),t._.end.push(l)),c.on=t}),s===0&&o()})}var gx=0;function tt(e,t,n,r){this._groups=e,this._parents=t,this._name=n,this._id=r}function mx(e){return Zt().transition(e)}function qc(){return++gx}var Xe=Zt.prototype;tt.prototype=mx.prototype={constructor:tt,select:Wb,selectAll:Xb,selectChild:Xe.selectChild,selectChildren:Xe.selectChildren,filter:Bb,merge:Gb,selection:Jb,transition:fx,call:Xe.call,nodes:Xe.nodes,node:Xe.node,size:Xe.size,empty:Xe.empty,each:Xe.each,on:Vb,attr:Nb,attrTween:Mb,style:rx,styleTween:ix,text:cx,textTween:hx,remove:Yb,tween:bb,delay:jb,duration:Db,ease:Fb,easeVarying:Hb,end:px,[Symbol.iterator]:Xe[Symbol.iterator]};function vx(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}var yx={time:null,delay:0,duration:250,ease:vx};function bx(e,t){for(var n;!(n=e.__transition)||!(n=n[t]);)if(!(e=e.parentNode))throw new Error(`transition ${t} not found`);return n}function xx(e){var t,n;e instanceof tt?(t=e._id,e=e._name):(t=qc(),(n=yx).time=mo(),e=e==null?null:e+"");for(var r=this._groups,s=r.length,o=0;o<s;++o)for(var i=r[o],a=i.length,l,c=0;c<a;++c)(l=i[c])&&kr(l,e,t,c,i,n||bx(l,t));return new tt(r,this._parents,e,t)}Zt.prototype.interrupt=mb;Zt.prototype.transition=xx;var Fn=e=>()=>e;function Sx(e,{sourceEvent:t,target:n,transform:r,dispatch:s}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:r,enumerable:!0,configurable:!0},_:{value:s}})}function Ze(e,t,n){this.k=e,this.x=t,this.y=n}Ze.prototype={constructor:Ze,scale:function(e){return e===1?this:new Ze(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new Ze(this.k,this.x+this.k*e,this.y+this.k*t)},apply:function(e){return[e[0]*this.k+this.x,e[1]*this.k+this.y]},applyX:function(e){return e*this.k+this.x},applyY:function(e){return e*this.k+this.y},invert:function(e){return[(e[0]-this.x)/this.k,(e[1]-this.y)/this.k]},invertX:function(e){return(e-this.x)/this.k},invertY:function(e){return(e-this.y)/this.k},rescaleX:function(e){return e.copy().domain(e.range().map(this.invertX,this).map(e.invert,e))},rescaleY:function(e){return e.copy().domain(e.range().map(this.invertY,this).map(e.invert,e))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var Or=new Ze(1,0,0);Vc.prototype=Ze.prototype;function Vc(e){for(;!e.__zoom;)if(!(e=e.parentNode))return Or;return e.__zoom}function os(e){e.stopImmediatePropagation()}function sn(e){e.preventDefault(),e.stopImmediatePropagation()}function Ix(e){return(!e.ctrlKey||e.type==="wheel")&&!e.button}function wx(){var e=this;return e instanceof SVGElement?(e=e.ownerSVGElement||e,e.hasAttribute("viewBox")?(e=e.viewBox.baseVal,[[e.x,e.y],[e.x+e.width,e.y+e.height]]):[[0,0],[e.width.baseVal.value,e.height.baseVal.value]]):[[0,0],[e.clientWidth,e.clientHeight]]}function Pi(){return this.__zoom||Or}function Ex(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function Cx(){return navigator.maxTouchPoints||"ontouchstart"in this}function Nx(e,t,n){var r=e.invertX(t[0][0])-n[0][0],s=e.invertX(t[1][0])-n[1][0],o=e.invertY(t[0][1])-n[0][1],i=e.invertY(t[1][1])-n[1][1];return e.translate(s>r?(r+s)/2:Math.min(0,r)||Math.max(0,s),i>o?(o+i)/2:Math.min(0,o)||Math.max(0,i))}function Kc(){var e=Ix,t=wx,n=Nx,r=Ex,s=Cx,o=[0,1/0],i=[[-1/0,-1/0],[1/0,1/0]],a=250,l=Qn,c=Tr("start","zoom","end"),u,f,d,p=500,g=150,y=0,x=10;function v(S){S.property("__zoom",Pi).on("wheel.zoom",A,{passive:!1}).on("mousedown.zoom",k).on("dblclick.zoom",L).filter(s).on("touchstart.zoom",_).on("touchmove.zoom",M).on("touchend.zoom touchcancel.zoom",O).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}v.transform=function(S,w,T,j){var D=S.selection?S.selection():S;D.property("__zoom",Pi),S!==D?E(S,w,T,j):D.interrupt().each(function(){N(this,arguments).event(j).start().zoom(null,typeof w=="function"?w.apply(this,arguments):w).end()})},v.scaleBy=function(S,w,T,j){v.scaleTo(S,function(){return this.__zoom.k*(typeof w=="function"?w.apply(this,arguments):w)},T,j)},v.scaleTo=function(S,w,T,j){v.transform(S,function(){var D=t.apply(this,arguments),P=this.__zoom,F=T==null?b(D):typeof T=="function"?T.apply(this,arguments):T,z=P.invert(F),B=typeof w=="function"?w.apply(this,arguments):w;return n(m(I(P,B),F,z),D,i)},T,j)},v.translateBy=function(S,w,T,j){v.transform(S,function(){return n(this.__zoom.translate(typeof w=="function"?w.apply(this,arguments):w,typeof T=="function"?T.apply(this,arguments):T),t.apply(this,arguments),i)},null,j)},v.translateTo=function(S,w,T,j,D){v.transform(S,function(){var P=t.apply(this,arguments),F=this.__zoom,z=j==null?b(P):typeof j=="function"?j.apply(this,arguments):j;return n(Or.translate(z[0],z[1]).scale(F.k).translate(typeof w=="function"?-w.apply(this,arguments):-w,typeof T=="function"?-T.apply(this,arguments):-T),P,i)},j,D)};function I(S,w){return w=Math.max(o[0],Math.min(o[1],w)),w===S.k?S:new Ze(w,S.x,S.y)}function m(S,w,T){var j=w[0]-T[0]*S.k,D=w[1]-T[1]*S.k;return j===S.x&&D===S.y?S:new Ze(S.k,j,D)}function b(S){return[(+S[0][0]+ +S[1][0])/2,(+S[0][1]+ +S[1][1])/2]}function E(S,w,T,j){S.on("start.zoom",function(){N(this,arguments).event(j).start()}).on("interrupt.zoom end.zoom",function(){N(this,arguments).event(j).end()}).tween("zoom",function(){var D=this,P=arguments,F=N(D,P).event(j),z=t.apply(D,P),B=T==null?b(z):typeof T=="function"?T.apply(D,P):T,K=Math.max(z[1][0]-z[0][0],z[1][1]-z[0][1]),H=D.__zoom,W=typeof w=="function"?w.apply(D,P):w,J=l(H.invert(B).concat(K/H.k),W.invert(B).concat(K/W.k));return function(X){if(X===1)X=W;else{var $=J(X),q=K/$[2];X=new Ze(q,B[0]-$[0]*q,B[1]-$[1]*q)}F.zoom(null,X)}})}function N(S,w,T){return!T&&S.__zooming||new R(S,w)}function R(S,w){this.that=S,this.args=w,this.active=0,this.sourceEvent=null,this.extent=t.apply(S,w),this.taps=0}R.prototype={event:function(S){return S&&(this.sourceEvent=S),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(S,w){return this.mouse&&S!=="mouse"&&(this.mouse[1]=w.invert(this.mouse[0])),this.touch0&&S!=="touch"&&(this.touch0[1]=w.invert(this.touch0[0])),this.touch1&&S!=="touch"&&(this.touch1[1]=w.invert(this.touch1[0])),this.that.__zoom=w,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(S){var w=Se(this.that).datum();c.call(S,this.that,new Sx(S,{sourceEvent:this.sourceEvent,target:v,type:S,transform:this.that.__zoom,dispatch:c}),w)}};function A(S,...w){if(!e.apply(this,arguments))return;var T=N(this,w).event(S),j=this.__zoom,D=Math.max(o[0],Math.min(o[1],j.k*Math.pow(2,r.apply(this,arguments)))),P=Oe(S);if(T.wheel)(T.mouse[0][0]!==P[0]||T.mouse[0][1]!==P[1])&&(T.mouse[1]=j.invert(T.mouse[0]=P)),clearTimeout(T.wheel);else{if(j.k===D)return;T.mouse=[P,j.invert(P)],Jn(this),T.start()}sn(S),T.wheel=setTimeout(F,g),T.zoom("mouse",n(m(I(j,D),T.mouse[0],T.mouse[1]),T.extent,i));function F(){T.wheel=null,T.end()}}function k(S,...w){if(d||!e.apply(this,arguments))return;var T=S.currentTarget,j=N(this,w,!0).event(S),D=Se(S.view).on("mousemove.zoom",B,!0).on("mouseup.zoom",K,!0),P=Oe(S,T),F=S.clientX,z=S.clientY;Tc(S.view),os(S),j.mouse=[P,this.__zoom.invert(P)],Jn(this),j.start();function B(H){if(sn(H),!j.moved){var W=H.clientX-F,J=H.clientY-z;j.moved=W*W+J*J>y}j.event(H).zoom("mouse",n(m(j.that.__zoom,j.mouse[0]=Oe(H,T),j.mouse[1]),j.extent,i))}function K(H){D.on("mousemove.zoom mouseup.zoom",null),Ac(H.view,j.moved),sn(H),j.event(H).end()}}function L(S,...w){if(e.apply(this,arguments)){var T=this.__zoom,j=Oe(S.changedTouches?S.changedTouches[0]:S,this),D=T.invert(j),P=T.k*(S.shiftKey?.5:2),F=n(m(I(T,P),j,D),t.apply(this,w),i);sn(S),a>0?Se(this).transition().duration(a).call(E,F,j,S):Se(this).call(v.transform,F,j,S)}}function _(S,...w){if(e.apply(this,arguments)){var T=S.touches,j=T.length,D=N(this,w,S.changedTouches.length===j).event(S),P,F,z,B;for(os(S),F=0;F<j;++F)z=T[F],B=Oe(z,this),B=[B,this.__zoom.invert(B),z.identifier],D.touch0?!D.touch1&&D.touch0[2]!==B[2]&&(D.touch1=B,D.taps=0):(D.touch0=B,P=!0,D.taps=1+!!u);u&&(u=clearTimeout(u)),P&&(D.taps<2&&(f=B[0],u=setTimeout(function(){u=null},p)),Jn(this),D.start())}}function M(S,...w){if(this.__zooming){var T=N(this,w).event(S),j=S.changedTouches,D=j.length,P,F,z,B;for(sn(S),P=0;P<D;++P)F=j[P],z=Oe(F,this),T.touch0&&T.touch0[2]===F.identifier?T.touch0[0]=z:T.touch1&&T.touch1[2]===F.identifier&&(T.touch1[0]=z);if(F=T.that.__zoom,T.touch1){var K=T.touch0[0],H=T.touch0[1],W=T.touch1[0],J=T.touch1[1],X=(X=W[0]-K[0])*X+(X=W[1]-K[1])*X,$=($=J[0]-H[0])*$+($=J[1]-H[1])*$;F=I(F,Math.sqrt(X/$)),z=[(K[0]+W[0])/2,(K[1]+W[1])/2],B=[(H[0]+J[0])/2,(H[1]+J[1])/2]}else if(T.touch0)z=T.touch0[0],B=T.touch0[1];else return;T.zoom("touch",n(m(F,z,B),T.extent,i))}}function O(S,...w){if(this.__zooming){var T=N(this,w).event(S),j=S.changedTouches,D=j.length,P,F;for(os(S),d&&clearTimeout(d),d=setTimeout(function(){d=null},p),P=0;P<D;++P)F=j[P],T.touch0&&T.touch0[2]===F.identifier?delete T.touch0:T.touch1&&T.touch1[2]===F.identifier&&delete T.touch1;if(T.touch1&&!T.touch0&&(T.touch0=T.touch1,delete T.touch1),T.touch0)T.touch0[1]=this.__zoom.invert(T.touch0[0]);else if(T.end(),T.taps===2&&(F=Oe(F,this),Math.hypot(f[0]-F[0],f[1]-F[1])<x)){var z=Se(this).on("dblclick.zoom");z&&z.apply(this,arguments)}}}return v.wheelDelta=function(S){return arguments.length?(r=typeof S=="function"?S:Fn(+S),v):r},v.filter=function(S){return arguments.length?(e=typeof S=="function"?S:Fn(!!S),v):e},v.touchable=function(S){return arguments.length?(s=typeof S=="function"?S:Fn(!!S),v):s},v.extent=function(S){return arguments.length?(t=typeof S=="function"?S:Fn([[+S[0][0],+S[0][1]],[+S[1][0],+S[1][1]]]),v):t},v.scaleExtent=function(S){return arguments.length?(o[0]=+S[0],o[1]=+S[1],v):[o[0],o[1]]},v.translateExtent=function(S){return arguments.length?(i[0][0]=+S[0][0],i[1][0]=+S[1][0],i[0][1]=+S[0][1],i[1][1]=+S[1][1],v):[[i[0][0],i[0][1]],[i[1][0],i[1][1]]]},v.constrain=function(S){return arguments.length?(n=S,v):n},v.duration=function(S){return arguments.length?(a=+S,v):a},v.interpolate=function(S){return arguments.length?(l=S,v):l},v.on=function(){var S=c.on.apply(c,arguments);return S===c?v:S},v.clickDistance=function(S){return arguments.length?(y=(S=+S)*S,v):Math.sqrt(y)},v.tapDistance=function(S){return arguments.length?(x=+S,v):x},v}var Te={error001:(e="react")=>`Seems like you have not used ${e==="svelte"?"SvelteFlowProvider":"ReactFlowProvider"} as an ancestor. Help: https://${e}flow.dev/error#001`,error002:()=>"It looks like you've created a new nodeTypes or edgeTypes object. If this wasn't on purpose please define the nodeTypes/edgeTypes outside of the component or memoize them.",error003:e=>`Node type "${e}" not found. Using fallback type "default".`,error004:()=>"The parent container needs a width and a height to render the graph.",error005:()=>"Only child nodes can use a parent extent.",error006:()=>"Can't create edge. An edge needs a source and a target.",error007:e=>`The old edge with id=${e} does not exist.`,error009:e=>`Marker type "${e}" doesn't exist.`,error008:(e,{id:t,sourceHandle:n,targetHandle:r})=>`Couldn't create edge for ${e} handle id: "${e==="source"?n:r}", edge id: ${t}.`,error010:()=>"Handle: No node id found. Make sure to only use a Handle inside a custom Node.",error011:e=>`Edge type "${e}" not found. Using fallback type "default".`,error012:e=>`Node with id "${e}" does not exist, it may have been removed. This can happen when a node is deleted before the "onNodeClick" handler is called.`,error013:(e="react")=>`It seems that you haven't loaded the styles. Please import '@xyflow/${e}/dist/style.css' or base.css to make sure everything is working properly.`,error014:()=>"useNodeConnections: No node ID found. Call useNodeConnections inside a custom Node or provide a node ID.",error015:()=>"It seems that you are trying to drag a node that is not initialized. Please use onNodesChange as explained in the docs.",error016:e=>`Edge with id "${e}" does not exist, it may have been removed. This can happen when an edge is deleted before the "onEdgeClick" handler is called.`},wn=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],Yc=["Enter"," ","Escape"],Wc={"node.a11yDescription.default":"Press enter or space to select a node. Press delete to remove it and escape to cancel.","node.a11yDescription.keyboardDisabled":"Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.","node.a11yDescription.ariaLiveMessage":({direction:e,x:t,y:n})=>`Moved selected node ${e}. New position, x: ${t}, y: ${n}`,"edge.a11yDescription.default":"Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.","controls.ariaLabel":"Control Panel","controls.zoomIn.ariaLabel":"Zoom In","controls.zoomOut.ariaLabel":"Zoom Out","controls.fitView.ariaLabel":"Fit View","controls.interactive.ariaLabel":"Toggle Interactivity","minimap.ariaLabel":"Mini Map","handle.ariaLabel":"Handle"},Vt;(function(e){e.Strict="strict",e.Loose="loose"})(Vt||(Vt={}));var wt;(function(e){e.Free="free",e.Vertical="vertical",e.Horizontal="horizontal"})(wt||(wt={}));var En;(function(e){e.Partial="partial",e.Full="full"})(En||(En={}));var Xc={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null},at;(function(e){e.Bezier="default",e.Straight="straight",e.Step="step",e.SmoothStep="smoothstep",e.SimpleBezier="simplebezier"})(at||(at={}));var fr;(function(e){e.Arrow="arrow",e.ArrowClosed="arrowclosed"})(fr||(fr={}));var Y;(function(e){e.Left="left",e.Top="top",e.Right="right",e.Bottom="bottom"})(Y||(Y={}));var Li={[Y.Left]:Y.Right,[Y.Right]:Y.Left,[Y.Top]:Y.Bottom,[Y.Bottom]:Y.Top},Qc=e=>!!e&&typeof e=="object"&&"id"in e&&"source"in e&&"target"in e,Rx=e=>!!e&&typeof e=="object"&&"id"in e&&"position"in e&&!("source"in e)&&!("target"in e),bo=e=>!!e&&typeof e=="object"&&"id"in e&&"internals"in e&&!("source"in e)&&!("target"in e),An=(e,t=[0,0])=>{const{width:n,height:r}=Fe(e),s=e.origin??t,o=n*s[0],i=r*s[1];return{x:e.position.x-o,y:e.position.y-i}},_x=(e,t={nodeOrigin:[0,0]})=>{if(e.length===0)return{x:0,y:0,width:0,height:0};let n=!1;const r=e.reduce((s,o)=>{const i=typeof o=="string";let a=!t.nodeLookup&&!i?o:void 0;return t.nodeLookup&&(a=i?t.nodeLookup.get(o):bo(o)?o:t.nodeLookup.get(o.id)),a?(n=!0,jr(s,pr(a,t.nodeOrigin))):s},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return n?Pr(r):{x:0,y:0,width:0,height:0}},Mn=(e,t={})=>{let n={x:1/0,y:1/0,x2:-1/0,y2:-1/0},r=!1;return e.forEach(s=>{(t.filter===void 0||t.filter(s))&&(n=jr(n,pr(s)),r=!0)}),r?Pr(n):{x:0,y:0,width:0,height:0}},xo=(e,t,[n,r,s]=[0,0,1],o=!1,i=!1)=>{const a=(t.x-n)/s,l=(t.y-r)/s,c=t.width/s,u=t.height/s,f=[];for(const d of e.values()){const{measured:p,selectable:g=!0,hidden:y=!1}=d;if(i&&!g||y)continue;const x=p.width??d.width??d.initialWidth??0,v=p.height??d.height??d.initialHeight??0,{x:I,y:m}=d.internals.positionAbsolute,b=tu(a,l,c,u,I,m,x,v),E=x*v,N=o&&b>0;(!d.internals.handleBounds||N||b>=E||d.dragging)&&f.push(d)}return f},Tx=(e,t)=>{const n=new Set;return e.forEach(r=>{n.add(r.id)}),t.filter(r=>n.has(r.source)||n.has(r.target))};function Ax(e,t){const n=new Map,r=t?.nodes?new Set(t.nodes.map(s=>s.id)):null;return e.forEach(s=>{let o;if(t?.includeHiddenNodes){const{width:i,height:a}=Fe(s);o=i>0&&a>0}else o=!!(s.measured.width&&s.measured.height&&!s.hidden);o&&(!r||r.has(s.id))&&n.set(s.id,s)}),n}async function Mx({nodes:e,width:t,height:n,panZoom:r,minZoom:s,maxZoom:o},i){if(e.size===0)return!0;const a=Ax(e,i),l=Mn(a),c=Io(l,t,n,i?.minZoom??s,i?.maxZoom??o,i?.padding??.1);return await r.setViewport(c,{duration:i?.duration,ease:i?.ease,interpolate:i?.interpolate}),!0}function Jc({nodeId:e,nextPosition:t,nodeLookup:n,nodeOrigin:r=[0,0],nodeExtent:s,onError:o}){const i=n.get(e),a=i.parentId?n.get(i.parentId):void 0,{x:l,y:c}=a?a.internals.positionAbsolute:{x:0,y:0},u=i.origin??r;let f=i.extent||s;if(i.extent==="parent"&&!i.expandParent)if(!a)o?.("005",Te.error005());else{const{width:p,height:g}=Fe(a);p&&g&&(f=[[l,c],[l+p,c+g]])}else a&&_t(i.extent)&&(f=[[i.extent[0][0]+l,i.extent[0][1]+c],[i.extent[1][0]+l,i.extent[1][1]+c]]);const d=_t(f)?Rt(t,f,i.measured):t;return(i.measured.width===void 0||i.measured.height===void 0)&&o?.("015",Te.error015()),{position:{x:d.x-l+(i.measured.width??0)*u[0],y:d.y-c+(i.measured.height??0)*u[1]},positionAbsolute:d}}async function kx({nodesToRemove:e=[],edgesToRemove:t=[],nodes:n,edges:r,onBeforeDelete:s}){const o=new Set(e.map(f=>f.id)),i=[];for(const f of n){if(f.deletable===!1)continue;const d=o.has(f.id),p=!d&&f.parentId&&i.find(g=>g.id===f.parentId);(d||p)&&i.push(f)}const a=new Set(t.map(f=>f.id)),l=r.filter(f=>f.deletable!==!1),c=Tx(i,l);for(const f of l)a.has(f.id)&&!c.find(d=>d.id===f.id)&&c.push(f);if(!s)return{edges:c,nodes:i};const u=await s({nodes:i,edges:c});return typeof u=="boolean"?u?{edges:c,nodes:i}:{edges:[],nodes:[]}:u}var Kt=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),Rt=(e={x:0,y:0},t,n)=>({x:Kt(e.x,t[0][0],t[1][0]-(n?.width??0)),y:Kt(e.y,t[0][1],t[1][1]-(n?.height??0))});function Zc(e,t,n){const{width:r,height:s}=Fe(n),{x:o,y:i}=n.internals.positionAbsolute;return Rt(e,[[o,i],[o+r,i+s]],t)}var Di=(e,t,n)=>e<t?Kt(Math.abs(e-t),1,t)/t:e>n?-Kt(Math.abs(e-n),1,t)/t:0,So=(e,t,n=15,r=40)=>[Di(e.x,r,t.width-r)*n,Di(e.y,r,t.height-r)*n],jr=(e,t)=>({x:Math.min(e.x,t.x),y:Math.min(e.y,t.y),x2:Math.max(e.x2,t.x2),y2:Math.max(e.y2,t.y2)}),Os=({x:e,y:t,width:n,height:r})=>({x:e,y:t,x2:e+n,y2:t+r}),Pr=({x:e,y:t,x2:n,y2:r})=>({x:e,y:t,width:n-e,height:r-t}),Cn=(e,t=[0,0])=>{const{x:n,y:r}=bo(e)?e.internals.positionAbsolute:An(e,t);return{x:n,y:r,width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}},pr=(e,t=[0,0])=>{const{x:n,y:r}=bo(e)?e.internals.positionAbsolute:An(e,t);return{x:n,y:r,x2:n+(e.measured?.width??e.width??e.initialWidth??0),y2:r+(e.measured?.height??e.height??e.initialHeight??0)}},eu=(e,t)=>Pr(jr(Os(e),Os(t))),tu=(e,t,n,r,s,o,i,a)=>{const l=Math.max(0,Math.min(e+n,s+i)-Math.max(e,s)),c=Math.max(0,Math.min(t+r,o+a)-Math.max(t,o));return Math.ceil(l*c)},gr=(e,t)=>tu(e.x,e.y,e.width,e.height,t.x,t.y,t.width,t.height),$i=e=>Pe(e.width)&&Pe(e.height)&&Pe(e.x)&&Pe(e.y),Pe=e=>!isNaN(e)&&isFinite(e),nu=(e,t)=>(n,r)=>{},kn=(e,t=[1,1])=>({x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}),On=({x:e,y:t},[n,r,s],o=!1,i=[1,1])=>{const a={x:(e-n)/s,y:(t-r)/s};return o?kn(a,i):a},Yt=({x:e,y:t},[n,r,s])=>({x:e*s+n,y:t*s+r});function Ot(e,t){if(typeof e=="number")return Math.floor((t-t/(1+e))*.5);if(typeof e=="string"&&e.endsWith("px")){const n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(n)}if(typeof e=="string"&&e.endsWith("%")){const n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(t*n*.01)}return console.error(`The padding value "${e}" is invalid. Please provide a number or a string with a valid unit (px or %).`),0}function Ox(e,t,n){if(typeof e=="string"||typeof e=="number"){const r=Ot(e,n),s=Ot(e,t);return{top:r,right:s,bottom:r,left:s,x:s*2,y:r*2}}if(typeof e=="object"){const r=Ot(e.top??e.y??0,n),s=Ot(e.bottom??e.y??0,n),o=Ot(e.left??e.x??0,t),i=Ot(e.right??e.x??0,t);return{top:r,right:i,bottom:s,left:o,x:o+i,y:r+s}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}function jx(e,t,n,r,s,o){const{x:i,y:a}=Yt(e,[t,n,r]),{x:l,y:c}=Yt({x:e.x+e.width,y:e.y+e.height},[t,n,r]),u=s-l,f=o-c;return{left:Math.floor(i),top:Math.floor(a),right:Math.floor(u),bottom:Math.floor(f)}}var Io=(e,t,n,r,s,o)=>{const i=Ox(o,t,n),a=(t-i.x)/e.width,l=(n-i.y)/e.height,c=Kt(Math.min(a,l),r,s),u=e.x+e.width/2,f=e.y+e.height/2,d=t/2-u*c,p=n/2-f*c,g=jx(e,d,p,c,t,n),y={left:Math.min(g.left-i.left,0),top:Math.min(g.top-i.top,0),right:Math.min(g.right-i.right,0),bottom:Math.min(g.bottom-i.bottom,0)};return{x:d-y.left+y.right,y:p-y.top+y.bottom,zoom:c}},Nn=()=>typeof navigator<"u"&&navigator?.userAgent?.indexOf("Mac")>=0;function _t(e){return e!=null&&e!=="parent"}function Fe(e){return{width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}}function wo(e){return(e.measured?.width??e.width??e.initialWidth)!==void 0&&(e.measured?.height??e.height??e.initialHeight)!==void 0}function ru(e,t={width:0,height:0},n,r,s){const o={...e},i=r.get(n);if(i){const a=i.origin||s;o.x+=i.internals.positionAbsolute.x-(t.width??0)*a[0],o.y+=i.internals.positionAbsolute.y-(t.height??0)*a[1]}return o}function Fi(e,t){if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}function Px(){let e,t;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:e,reject:t}}function Lx(e){return{...Wc,...e||{}}}function su(e){return e===null?null:e?"valid":"invalid"}function gn(e,{snapGrid:t=[0,0],snapToGrid:n=!1,transform:r,containerBounds:s}){const{x:o,y:i}=Le(e),a=On({x:o-(s?.left??0),y:i-(s?.top??0)},r),{x:l,y:c}=n?kn(a,t):a;return{xSnapped:l,ySnapped:c,...a}}var Eo=e=>({width:e.offsetWidth,height:e.offsetHeight}),ou=e=>e?.getRootNode?.()||window?.document,Dx=["INPUT","SELECT","TEXTAREA"];function iu(e){const t=e.composedPath?.()?.[0]||e.target;return t?.nodeType!==1?!1:Dx.includes(t.nodeName)||t.hasAttribute("contenteditable")||!!t.closest(".nokey")}var au=e=>"clientX"in e,Le=(e,t)=>{const n=au(e),r=n?e.clientX:e.touches?.[0].clientX,s=n?e.clientY:e.touches?.[0].clientY;return{x:r-(t?.left??0),y:s-(t?.top??0)}},zi=(e,t,n,r,s)=>{const o=t.querySelectorAll(`.${e}`);return!o||!o.length?null:Array.from(o).map(i=>{const a=i.getBoundingClientRect();return{id:i.getAttribute("data-handleid"),type:e,nodeId:s,position:i.getAttribute("data-handlepos"),x:(a.left-n.left)/r,y:(a.top-n.top)/r,...Eo(i)}})};function lu({sourceX:e,sourceY:t,targetX:n,targetY:r,sourceControlX:s,sourceControlY:o,targetControlX:i,targetControlY:a}){const l=e*.125+s*.375+i*.375+n*.125,c=t*.125+o*.375+a*.375+r*.125;return[l,c,Math.abs(l-e),Math.abs(c-t)]}function zn(e,t){return e>=0?.5*e:t*25*Math.sqrt(-e)}function Hi({pos:e,x1:t,y1:n,x2:r,y2:s,c:o}){switch(e){case Y.Left:return[t-zn(t-r,o),n];case Y.Right:return[t+zn(r-t,o),n];case Y.Top:return[t,n-zn(n-s,o)];case Y.Bottom:return[t,n+zn(s-n,o)]}}function cu({sourceX:e,sourceY:t,sourcePosition:n=Y.Bottom,targetX:r,targetY:s,targetPosition:o=Y.Top,curvature:i=.25}){const[a,l]=Hi({pos:n,x1:e,y1:t,x2:r,y2:s,c:i}),[c,u]=Hi({pos:o,x1:r,y1:s,x2:e,y2:t,c:i}),[f,d,p,g]=lu({sourceX:e,sourceY:t,targetX:r,targetY:s,sourceControlX:a,sourceControlY:l,targetControlX:c,targetControlY:u});return[`M${e},${t} C${a},${l} ${c},${u} ${r},${s}`,f,d,p,g]}function uu({sourceX:e,sourceY:t,targetX:n,targetY:r}){const s=Math.abs(n-e)/2,o=n<e?n+s:n-s,i=Math.abs(r-t)/2;return[o,r<t?r+i:r-i,s,i]}function $x({sourceNode:e,targetNode:t,selected:n=!1,zIndex:r=0,elevateOnSelect:s=!1,zIndexMode:o="basic"}){return o==="manual"?r:(s&&n?r+1e3:r)+Math.max(e.parentId||s&&e.selected?e.internals.z:0,t.parentId||s&&t.selected?t.internals.z:0)}function Fx({sourceNode:e,targetNode:t,width:n,height:r,transform:s}){const o=jr(pr(e),pr(t));o.x===o.x2&&(o.x2+=1),o.y===o.y2&&(o.y2+=1);const i={x:-s[0]/s[2],y:-s[1]/s[2],width:n/s[2],height:r/s[2]};return gr(i,Pr(o))>0}var zx=({source:e,sourceHandle:t,target:n,targetHandle:r})=>`xy-edge__${e}${t||""}-${n}${r||""}`,Hx=(e,t)=>t.some(n=>n.source===e.source&&n.target===e.target&&(n.sourceHandle===e.sourceHandle||!n.sourceHandle&&!e.sourceHandle)&&(n.targetHandle===e.targetHandle||!n.targetHandle&&!e.targetHandle)),Bx=(e,t,n={})=>{if(!e.source||!e.target)return n.onError?.("006",Te.error006()),t;const r=n.getEdgeId||zx;let s;return Qc(e)?s={...e}:s={...e,id:r(e)},Hx(s,t)?t:(s.sourceHandle===null&&delete s.sourceHandle,s.targetHandle===null&&delete s.targetHandle,t.concat(s))};function du({sourceX:e,sourceY:t,targetX:n,targetY:r}){const[s,o,i,a]=uu({sourceX:e,sourceY:t,targetX:n,targetY:r});return[`M ${e},${t}L ${n},${r}`,s,o,i,a]}var Bi={[Y.Left]:{x:-1,y:0},[Y.Right]:{x:1,y:0},[Y.Top]:{x:0,y:-1},[Y.Bottom]:{x:0,y:1}},Gx=({source:e,sourcePosition:t=Y.Bottom,target:n})=>t===Y.Left||t===Y.Right?e.x<n.x?{x:1,y:0}:{x:-1,y:0}:e.y<n.y?{x:0,y:1}:{x:0,y:-1},Gi=(e,t)=>Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2));function Ux({source:e,sourcePosition:t=Y.Bottom,target:n,targetPosition:r=Y.Top,center:s,offset:o,stepPosition:i}){const a=Bi[t],l=Bi[r],c={x:e.x+a.x*o,y:e.y+a.y*o},u={x:n.x+l.x*o,y:n.y+l.y*o},f=Gx({source:c,sourcePosition:t,target:u}),d=f.x!==0?"x":"y",p=f[d];let g=[],y,x;const v={x:0,y:0},I={x:0,y:0},[,,m,b]=uu({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(a[d]*l[d]===-1){d==="x"?(y=s.x??c.x+(u.x-c.x)*i,x=s.y??(c.y+u.y)/2):(y=s.x??(c.x+u.x)/2,x=s.y??c.y+(u.y-c.y)*i);const R=[{x:y,y:c.y},{x:y,y:u.y}],A=[{x:c.x,y:x},{x:u.x,y:x}];a[d]===p?g=d==="x"?R:A:g=d==="x"?A:R}else{const R=[{x:c.x,y:u.y}],A=[{x:u.x,y:c.y}];if(d==="x"?g=a.x===p?A:R:g=a.y===p?R:A,t===r){const _=Math.abs(e[d]-n[d]);if(_<=o){const M=Math.min(o-1,o-_);a[d]===p?v[d]=(c[d]>e[d]?-1:1)*M:I[d]=(u[d]>n[d]?-1:1)*M}}if(t!==r){const _=d==="x"?"y":"x",M=a[d]===l[_],O=c[_]>u[_],S=c[_]<u[_];(a[d]===1&&(!M&&O||M&&S)||a[d]!==1&&(!M&&S||M&&O))&&(g=d==="x"?R:A)}const k={x:c.x+v.x,y:c.y+v.y},L={x:u.x+I.x,y:u.y+I.y};Math.max(Math.abs(k.x-g[0].x),Math.abs(L.x-g[0].x))>=Math.max(Math.abs(k.y-g[0].y),Math.abs(L.y-g[0].y))?(y=(k.x+L.x)/2,x=g[0].y):(y=g[0].x,x=(k.y+L.y)/2)}const E={x:c.x+v.x,y:c.y+v.y},N={x:u.x+I.x,y:u.y+I.y};return[[e,...E.x!==g[0].x||E.y!==g[0].y?[E]:[],...g,...N.x!==g[g.length-1].x||N.y!==g[g.length-1].y?[N]:[],n],y,x,m,b]}function qx(e,t,n,r){const s=Math.min(Gi(e,t)/2,Gi(t,n)/2,r),{x:o,y:i}=t;if(e.x===o&&o===n.x||e.y===i&&i===n.y)return`L${o} ${i}`;if(e.y===i){const l=e.x<n.x?-1:1,c=e.y<n.y?1:-1;return`L ${o+s*l},${i}Q ${o},${i} ${o},${i+s*c}`}const a=e.x<n.x?1:-1;return`L ${o},${i+s*(e.y<n.y?-1:1)}Q ${o},${i} ${o+s*a},${i}`}function js({sourceX:e,sourceY:t,sourcePosition:n=Y.Bottom,targetX:r,targetY:s,targetPosition:o=Y.Top,borderRadius:i=5,centerX:a,centerY:l,offset:c=20,stepPosition:u=.5}){const[f,d,p,g,y]=Ux({source:{x:e,y:t},sourcePosition:n,target:{x:r,y:s},targetPosition:o,center:{x:a,y:l},offset:c,stepPosition:u});let x=`M${f[0].x} ${f[0].y}`;for(let v=1;v<f.length-1;v++)x+=qx(f[v-1],f[v],f[v+1],i);return x+=`L${f[f.length-1].x} ${f[f.length-1].y}`,[x,d,p,g,y]}function Ui(e){return e&&!!(e.internals.handleBounds||e.handles?.length)&&!!(e.measured.width||e.width||e.initialWidth)}function Vx(e){const{sourceNode:t,targetNode:n}=e;if(!Ui(t)||!Ui(n))return null;const r=t.internals.handleBounds||qi(t.handles),s=n.internals.handleBounds||qi(n.handles),o=Vi(r?.source??[],e.sourceHandle),i=Vi(e.connectionMode===Vt.Strict?s?.target??[]:(s?.target??[]).concat(s?.source??[]),e.targetHandle);if(!o||!i)return e.onError?.("008",Te.error008(o?"target":"source",{id:e.id,sourceHandle:e.sourceHandle,targetHandle:e.targetHandle})),null;const a=o?.position||Y.Bottom,l=i?.position||Y.Top,c=Tt(t,o,a),u=Tt(n,i,l);return{sourceX:c.x,sourceY:c.y,targetX:u.x,targetY:u.y,sourcePosition:a,targetPosition:l}}function qi(e){if(!e)return null;const t=[],n=[];for(const r of e)r.width=r.width??1,r.height=r.height??1,r.type==="source"?t.push(r):r.type==="target"&&n.push(r);return{source:t,target:n}}function Tt(e,t,n=Y.Left,r=!1){const s=(t?.x??0)+e.internals.positionAbsolute.x,o=(t?.y??0)+e.internals.positionAbsolute.y,{width:i,height:a}=t??Fe(e);if(r)return{x:s+i/2,y:o+a/2};switch(t?.position??n){case Y.Top:return{x:s+i/2,y:o};case Y.Right:return{x:s+i,y:o+a/2};case Y.Bottom:return{x:s+i/2,y:o+a};case Y.Left:return{x:s,y:o+a/2}}}function Vi(e,t){return e&&(t?e.find(n=>n.id===t):e[0])||null}function Ps(e,t){return e?typeof e=="string"?e:`${t?`${t}__`:""}${Object.keys(e).sort().map(n=>`${n}=${e[n]}`).join("&")}`:""}function Kx(e,{id:t,defaultColor:n,defaultMarkerStart:r,defaultMarkerEnd:s}){const o=new Set;return e.reduce((i,a)=>([a.markerStart||r,a.markerEnd||s].forEach(l=>{if(l&&typeof l=="object"){const c=Ps(l,t);o.has(c)||(i.push({id:c,color:l.color||n,...l}),o.add(c))}}),i),[]).sort((i,a)=>i.id.localeCompare(a.id))}var hu=1e3,Yx=10,Co={nodeOrigin:[0,0],nodeExtent:wn,elevateNodesOnSelect:!0,zIndexMode:"basic",defaults:{}},Wx={...Co,checkEquality:!0};function No(e,t){const n={...e};for(const r in t)t[r]!==void 0&&(n[r]=t[r]);return n}function Xx(e,t,n){const r=No(Co,n);for(const s of e.values())if(s.parentId)_o(s,e,t,r);else{const o=An(s,r.nodeOrigin),i=_t(s.extent)?s.extent:r.nodeExtent,a=Rt(o,i,Fe(s));s.internals.positionAbsolute=a}}function Qx(e,t){if(!e.handles)return e.measured?t?.internals.handleBounds:void 0;const n=[],r=[];for(const s of e.handles){const o={id:s.id,width:s.width??1,height:s.height??1,nodeId:e.id,x:s.x,y:s.y,position:s.position,type:s.type};s.type==="source"?n.push(o):s.type==="target"&&r.push(o)}return{source:n,target:r}}function Ro(e){return e==="manual"}function Ls(e,t,n,r={}){const s=No(Wx,r),o={i:0},i=new Map(t),a=s?.elevateNodesOnSelect&&!Ro(s.zIndexMode)?hu:0;let l=e.length>0,c=!1;t.clear(),n.clear();for(const u of e){let f=i.get(u.id);if(s.checkEquality&&u===f?.internals.userNode)t.set(u.id,f);else{const d=An(u,s.nodeOrigin),p=_t(u.extent)?u.extent:s.nodeExtent,g=Rt(d,p,Fe(u));f={...s.defaults,...u,measured:{width:u.measured?.width,height:u.measured?.height},internals:{positionAbsolute:g,handleBounds:Qx(u,f),z:fu(u,a,s.zIndexMode),userNode:u}},t.set(u.id,f)}(f.measured===void 0||f.measured.width===void 0||f.measured.height===void 0)&&!f.hidden&&(l=!1),u.parentId&&_o(f,t,n,r,o),c||=u.selected??!1}return{nodesInitialized:l,hasSelectedNodes:c}}function Jx(e,t){if(!e.parentId)return;const n=t.get(e.parentId);n?n.set(e.id,e):t.set(e.parentId,new Map([[e.id,e]]))}function _o(e,t,n,r,s){const{elevateNodesOnSelect:o,nodeOrigin:i,nodeExtent:a,zIndexMode:l}=No(Co,r),c=e.parentId,u=t.get(c);if(!u){console.warn(`Parent node ${c} not found. Please make sure that parent nodes are in front of their child nodes in the nodes array.`);return}Jx(e,n),s&&!u.parentId&&u.internals.rootParentIndex===void 0&&l==="auto"&&(u.internals.rootParentIndex=++s.i,u.internals.z=u.internals.z+s.i*Yx),s&&u.internals.rootParentIndex!==void 0&&(s.i=u.internals.rootParentIndex);const{x:f,y:d,z:p}=Zx(e,u,i,a,o&&!Ro(l)?hu:0,l),{positionAbsolute:g}=e.internals,y=f!==g.x||d!==g.y;(y||p!==e.internals.z)&&t.set(e.id,{...e,internals:{...e.internals,positionAbsolute:y?{x:f,y:d}:g,z:p}})}function fu(e,t,n){const r=Pe(e.zIndex)?e.zIndex:0;return Ro(n)?r:r+(e.selected?t:0)}function Zx(e,t,n,r,s,o){const{x:i,y:a}=t.internals.positionAbsolute,l=Fe(e),c=An(e,n),u=_t(e.extent)?Rt(c,e.extent,l):c;let f=Rt({x:i+u.x,y:a+u.y},r,l);e.extent==="parent"&&(f=Zc(f,l,t));const d=fu(e,s,o),p=t.internals.z??0;return{x:f.x,y:f.y,z:p>=d?p+1:d}}function To(e,t,n,r=[0,0]){const s=[],o=new Map;for(const i of e){const a=t.get(i.parentId);if(!a)continue;const l=o.get(i.parentId)?.expandedRect??Cn(a),c=eu(l,i.rect);o.set(i.parentId,{expandedRect:c,parent:a})}return o.size>0&&o.forEach(({expandedRect:i,parent:a},l)=>{const c=a.internals.positionAbsolute,u=Fe(a),f=a.origin??r,d=i.x<c.x?Math.round(Math.abs(c.x-i.x)):0,p=i.y<c.y?Math.round(Math.abs(c.y-i.y)):0,g=Math.max(u.width,Math.round(i.width)),y=Math.max(u.height,Math.round(i.height)),x=(g-u.width)*f[0],v=(y-u.height)*f[1];(d>0||p>0||x||v)&&(s.push({id:l,type:"position",position:{x:a.position.x-d+x,y:a.position.y-p+v}}),n.get(l)?.forEach(I=>{e.some(m=>m.id===I.id)||s.push({id:I.id,type:"position",position:{x:I.position.x+d,y:I.position.y+p}})})),(u.width<i.width||u.height<i.height||d||p)&&s.push({id:l,type:"dimensions",setAttributes:!0,dimensions:{width:g+(d?f[0]*d-x:0),height:y+(p?f[1]*p-v:0)}})}),s}function eS(e,t,n,r,s,o,i){const a=r?.querySelector(".xyflow__viewport");let l=!1;if(!a)return{changes:[],updatedInternals:l};const c=[],u=window.getComputedStyle(a),{m22:f}=new window.DOMMatrixReadOnly(u.transform),d=[];for(const p of e.values()){const g=t.get(p.id);if(!g)continue;if(g.hidden){t.set(g.id,{...g,internals:{...g.internals,handleBounds:void 0}}),l=!0;continue}const y=Eo(p.nodeElement),x=g.measured.width!==y.width||g.measured.height!==y.height;if(y.width&&y.height&&(x||!g.internals.handleBounds||p.force)){const v=p.nodeElement.getBoundingClientRect(),I=_t(g.extent)?g.extent:o;let{positionAbsolute:m}=g.internals;if(g.parentId&&g.extent==="parent"){const E=t.get(g.parentId);E&&(m=Zc(m,y,E))}else I&&(m=Rt(m,I,y));const b={...g,measured:y,internals:{...g.internals,positionAbsolute:m,handleBounds:{source:zi("source",p.nodeElement,v,f,g.id),target:zi("target",p.nodeElement,v,f,g.id)}}};t.set(g.id,b),g.parentId&&_o(b,t,n,{nodeOrigin:s,zIndexMode:i}),l=!0,x&&(c.push({id:g.id,type:"dimensions",dimensions:y}),g.expandParent&&g.parentId&&d.push({id:g.id,parentId:g.parentId,rect:Cn(b,s)}))}}if(d.length>0){const p=To(d,t,n,s);c.push(...p)}return{changes:c,updatedInternals:l}}async function tS({delta:e,panZoom:t,transform:n,translateExtent:r,width:s,height:o}){if(!t||!e.x&&!e.y)return!1;const i=await t.setViewportConstrained({x:n[0]+e.x,y:n[1]+e.y,zoom:n[2]},[[0,0],[s,o]],r);return!!i&&(i.x!==n[0]||i.y!==n[1]||i.k!==n[2])}function Ki(e,t,n,r,s,o){let i=s;const a=r.get(i)||new Map;r.set(i,a.set(n,t)),i=`${s}-${e}`;const l=r.get(i)||new Map;if(r.set(i,l.set(n,t)),o){i=`${s}-${e}-${o}`;const c=r.get(i)||new Map;r.set(i,c.set(n,t))}}function pu(e,t,n){e.clear(),t.clear();for(const r of n){const{source:s,target:o,sourceHandle:i=null,targetHandle:a=null}=r,l={edgeId:r.id,source:s,target:o,sourceHandle:i,targetHandle:a},c=`${s}-${i}--${o}-${a}`;Ki("source",l,`${o}-${a}--${s}-${i}`,e,s,i),Ki("target",l,c,e,o,a),t.set(r.id,r)}}function gu(e,t){if(!e.parentId)return!1;const n=t.get(e.parentId);return n?n.selected?!0:gu(n,t):!1}function Yi(e,t,n){let r=e;do{if(r?.matches?.(t))return!0;if(r===n)return!1;r=r?.parentElement}while(r);return!1}function nS(e,t,n,r){const s=new Map;for(const[o,i]of e)if((i.selected||i.id===r)&&(!i.parentId||!gu(i,e))&&(i.draggable||t&&typeof i.draggable>"u")){const a=e.get(o);a&&s.set(o,{id:o,position:a.position||{x:0,y:0},distance:{x:n.x-a.internals.positionAbsolute.x,y:n.y-a.internals.positionAbsolute.y},extent:a.extent,parentId:a.parentId,origin:a.origin,expandParent:a.expandParent,internals:{positionAbsolute:a.internals.positionAbsolute||{x:0,y:0}},measured:{width:a.measured.width??0,height:a.measured.height??0}})}return s}function is({nodeId:e,dragItems:t,nodeLookup:n,dragging:r=!0}){const s=[];for(const[i,a]of t){const l=n.get(i)?.internals.userNode;l&&s.push({...l,position:a.position,dragging:r})}if(!e)return[s[0],s];const o=n.get(e)?.internals.userNode;return[o?{...o,position:t.get(e)?.position||o.position,dragging:r}:s[0],s]}function rS({dragItems:e,snapGrid:t,x:n,y:r}){const s=e.values().next().value;if(!s)return null;const o={x:n-s.distance.x,y:r-s.distance.y},i=kn(o,t);return{x:i.x-o.x,y:i.y-o.y}}function sS({onNodeMouseDown:e,getStoreItems:t,onDragStart:n,onDrag:r,onDragStop:s}){let o={x:null,y:null},i=0,a=new Map,l=!1,c={x:0,y:0},u=null,f=!1,d=null,p=!1,g=!1,y=null;function x({noDragClassName:I,handleSelector:m,domNode:b,isSelectable:E,nodeId:N,nodeClickDistance:R=0}){d=Se(b);function A({x:M,y:O}){const{nodeLookup:S,nodeExtent:w,snapGrid:T,snapToGrid:j,nodeOrigin:D,onNodeDrag:P,onSelectionDrag:F,onError:z,updateNodePositions:B}=t();o={x:M,y:O};let K=!1;const H=a.size>1,W=H&&w?Os(Mn(a)):null,J=H&&j?rS({dragItems:a,snapGrid:T,x:M,y:O}):null;for(const[X,$]of a){if(!S.has(X))continue;let q={x:M-$.distance.x,y:O-$.distance.y};j&&(q=J?{x:Math.round(q.x+J.x),y:Math.round(q.y+J.y)}:kn(q,T));let Q=null;if(H&&w&&!$.extent&&W){const{positionAbsolute:ne}=$.internals,Z=ne.x-W.x+w[0][0],U=ne.x+$.measured.width-W.x2+w[1][0],V=ne.y-W.y+w[0][1],pe=ne.y+$.measured.height-W.y2+w[1][1];Q=[[Z,V],[U,pe]]}const{position:te,positionAbsolute:G}=Jc({nodeId:X,nextPosition:q,nodeLookup:S,nodeExtent:Q||w,nodeOrigin:D,onError:z});K=K||$.position.x!==te.x||$.position.y!==te.y,$.position=te,$.internals.positionAbsolute=G}if(g=g||K,!!K&&(B(a,!0),y&&(r||P||!N&&F))){const[X,$]=is({nodeId:N,dragItems:a,nodeLookup:S});r?.(y,a,X,$),P?.(y,X,$),N||F?.(y,$)}}async function k(){if(!u)return;const{transform:M,panBy:O,autoPanSpeed:S,autoPanOnNodeDrag:w}=t();if(!w){l=!1,cancelAnimationFrame(i);return}const[T,j]=So(c,u,S);(T!==0||j!==0)&&(o.x=(o.x??0)-T/M[2],o.y=(o.y??0)-j/M[2],await O({x:T,y:j})&&A(o)),i=requestAnimationFrame(k)}function L(M){const{nodeLookup:O,multiSelectionActive:S,nodesDraggable:w,transform:T,snapGrid:j,snapToGrid:D,selectNodesOnDrag:P,onNodeDragStart:F,onSelectionDragStart:z,unselectNodesAndEdges:B}=t();f=!0,(!P||!E)&&!S&&N&&(O.get(N)?.selected||B()),E&&P&&N&&e?.(N);const K=gn(M.sourceEvent,{transform:T,snapGrid:j,snapToGrid:D,containerBounds:u});if(o=K,a=nS(O,w,K,N),a.size>0&&(n||F||!N&&z)){const[H,W]=is({nodeId:N,dragItems:a,nodeLookup:O});n?.(M.sourceEvent,a,H,W),F?.(M.sourceEvent,H,W),N||z?.(M.sourceEvent,W)}}const _=Mc().clickDistance(R).on("start",M=>{const{domNode:O,nodeDragThreshold:S,transform:w,snapGrid:T,snapToGrid:j}=t();u=O?.getBoundingClientRect()||null,p=!1,g=!1,y=M.sourceEvent,S===0&&L(M),o=gn(M.sourceEvent,{transform:w,snapGrid:T,snapToGrid:j,containerBounds:u}),c=Le(M.sourceEvent,u)}).on("drag",M=>{const{autoPanOnNodeDrag:O,transform:S,snapGrid:w,snapToGrid:T,nodeDragThreshold:j,nodeLookup:D}=t(),P=gn(M.sourceEvent,{transform:S,snapGrid:w,snapToGrid:T,containerBounds:u});if(y=M.sourceEvent,(M.sourceEvent.type==="touchmove"&&M.sourceEvent.touches.length>1||N&&!D.has(N))&&(p=!0),!p){if(!l&&O&&f&&(l=!0,k()),!f){const F=Le(M.sourceEvent,u),z=F.x-c.x,B=F.y-c.y;Math.sqrt(z*z+B*B)>j&&L(M)}(o.x!==P.xSnapped||o.y!==P.ySnapped)&&a&&f&&(c=Le(M.sourceEvent,u),A(P))}}).on("end",M=>{if(!f||p){p&&a.size>0&&t().updateNodePositions(a,!1);return}if(l=!1,f=!1,cancelAnimationFrame(i),a.size>0){const{nodeLookup:O,updateNodePositions:S,onNodeDragStop:w,onSelectionDragStop:T}=t();if(g&&(S(a,!1),g=!1),s||w||!N&&T){const[j,D]=is({nodeId:N,dragItems:a,nodeLookup:O,dragging:!1});s?.(M.sourceEvent,a,j,D),w?.(M.sourceEvent,j,D),N||T?.(M.sourceEvent,D)}}}).filter(M=>{const O=M.target;return!M.button&&(!I||!Yi(O,`.${I}`,b))&&(!m||Yi(O,m,b))});d.call(_)}function v(){d?.on(".drag",null)}return{update:x,destroy:v}}function oS(e,t,n){const r=[],s={x:e.x-n,y:e.y-n,width:n*2,height:n*2};for(const o of t.values())gr(s,Cn(o))>0&&r.push(o);return r}var iS=250;function aS(e,t,n,r){let s=[],o=1/0;const i=oS(e,n,t+iS);for(const a of i){const l=[...a.internals.handleBounds?.source??[],...a.internals.handleBounds?.target??[]];for(const c of l){if(r.nodeId===c.nodeId&&r.type===c.type&&r.id===c.id)continue;const{x:u,y:f}=Tt(a,c,c.position,!0),d=Math.sqrt(Math.pow(u-e.x,2)+Math.pow(f-e.y,2));d>t||(d<o?(s=[{...c,x:u,y:f}],o=d):d===o&&s.push({...c,x:u,y:f}))}}if(!s.length)return null;if(s.length>1){const a=r.type==="source"?"target":"source";return s.find(l=>l.type===a)??s[0]}return s[0]}function mu(e,t,n,r,s,o=!1){const i=r.get(e);if(!i)return null;const a=s==="strict"?i.internals.handleBounds?.[t]:[...i.internals.handleBounds?.source??[],...i.internals.handleBounds?.target??[]],l=(n?a?.find(c=>c.id===n):a?.[0])??null;return l&&o?{...l,...Tt(i,l,l.position,!0)}:l}function vu(e,t){return e||(t?.classList.contains("target")?"target":t?.classList.contains("source")?"source":null)}function lS(e,t){let n=null;return t?n=!0:e&&!t&&(n=!1),n}var yu=()=>!0;function cS(e,{connectionMode:t,connectionRadius:n,handleId:r,nodeId:s,edgeUpdaterType:o,isTarget:i,domNode:a,nodeLookup:l,lib:c,autoPanOnConnect:u,flowId:f,panBy:d,cancelConnection:p,onConnectStart:g,onConnect:y,onConnectEnd:x,isValidConnection:v=yu,onReconnectEnd:I,updateConnection:m,getTransform:b,getFromHandle:E,autoPanSpeed:N,dragThreshold:R=1,handleDomNode:A}){const k=ou(e.target);let L=0,_;const{x:M,y:O}=Le(e),S=vu(o,A),w=a?.getBoundingClientRect();let T=!1;if(!w||!S)return;const j=mu(s,S,r,l,t);if(!j)return;let D=Le(e,w),P=!1,F=null,z=!1,B=null;function K(){if(!u||!w)return;const[Q,te]=So(D,w,N);d({x:Q,y:te}),L=requestAnimationFrame(K)}const H={...j,nodeId:s,type:S,position:j.position},W=l.get(s);let J={inProgress:!0,isValid:null,from:Tt(W,H,Y.Left,!0),fromHandle:H,fromPosition:H.position,fromNode:W,to:D,toHandle:null,toPosition:Li[H.position],toNode:null,pointer:D};function X(){T=!0,m(J),g?.(e,{nodeId:s,handleId:r,handleType:S})}R===0&&X();function $(Q){if(!T){const{x:V,y:pe}=Le(Q),ge=V-M,ve=pe-O;if(!(ge*ge+ve*ve>R*R))return;X()}if(!E()||!H){q(Q);return}const te=b();D=Le(Q,w),_=aS(On(D,te,!1,[1,1]),n,l,H),P||(K(),P=!0);const G=bu(Q,{handle:_,connectionMode:t,fromNodeId:s,fromHandleId:r,fromType:i?"target":"source",isValidConnection:v,doc:k,lib:c,flowId:f,nodeLookup:l});B=G.handleDomNode,F=G.connection,z=lS(!!_,G.isValid);const ne=l.get(s),Z=ne?Tt(ne,H,Y.Left,!0):J.from,U={...J,from:Z,isValid:z,to:G.toHandle&&z?Yt({x:G.toHandle.x,y:G.toHandle.y},te):D,toHandle:G.toHandle,toPosition:z&&G.toHandle?G.toHandle.position:Li[H.position],toNode:G.toHandle?l.get(G.toHandle.nodeId):null,pointer:D};m(U),J=U}function q(Q){if(!("touches"in Q&&Q.touches.length>0)){if(T){(_||B)&&F&&z&&y?.(F);const{inProgress:te,...G}=J,ne={...G,toPosition:J.toHandle?J.toPosition:null};x?.(Q,ne),o&&I?.(Q,ne)}p(),cancelAnimationFrame(L),P=!1,z=!1,F=null,B=null,k.removeEventListener("mousemove",$),k.removeEventListener("mouseup",q),k.removeEventListener("touchmove",$),k.removeEventListener("touchend",q)}}k.addEventListener("mousemove",$),k.addEventListener("mouseup",q),k.addEventListener("touchmove",$),k.addEventListener("touchend",q)}function bu(e,{handle:t,connectionMode:n,fromNodeId:r,fromHandleId:s,fromType:o,doc:i,lib:a,flowId:l,isValidConnection:c=yu,nodeLookup:u}){const f=o==="target",d=t?i.querySelector(`.${a}-flow__handle[data-id="${l}-${t?.nodeId}-${t?.id}-${t?.type}"]`):null,{x:p,y:g}=Le(e),y=i.elementFromPoint(p,g),x=y?.classList.contains(`${a}-flow__handle`)?y:d,v={handleDomNode:x,isValid:!1,connection:null,toHandle:null};if(x){const I=vu(void 0,x),m=x.getAttribute("data-nodeid"),b=x.getAttribute("data-handleid"),E=x.classList.contains("connectable"),N=x.classList.contains("connectableend");if(!m||!I)return v;const R={source:f?m:r,sourceHandle:f?b:s,target:f?r:m,targetHandle:f?s:b};v.connection=R,v.isValid=E&&N&&(n===Vt.Strict?f&&I==="source"||!f&&I==="target":m!==r||b!==s)&&c(R),v.toHandle=mu(m,I,b,u,n,!0)}return v}var Ds={onPointerDown:cS,isValid:bu};function uS({domNode:e,panZoom:t,getTransform:n,getViewScale:r}){const s=Se(e);function o({translateExtent:a,width:l,height:c,zoomStep:u=1,pannable:f=!0,zoomable:d=!0,inversePan:p=!1}){const g=m=>{if(m.sourceEvent.type!=="wheel"||!t)return;const b=n(),E=m.sourceEvent.ctrlKey&&Nn()?10:1,N=-m.sourceEvent.deltaY*(m.sourceEvent.deltaMode===1?.05:m.sourceEvent.deltaMode?1:.002)*u,R=b[2]*Math.pow(2,N*E);t.scaleTo(R)};let y=[0,0];const x=m=>{(m.sourceEvent.type==="mousedown"||m.sourceEvent.type==="touchstart")&&(y=[m.sourceEvent.clientX??m.sourceEvent.touches[0].clientX,m.sourceEvent.clientY??m.sourceEvent.touches[0].clientY])},v=m=>{const b=n();if(m.sourceEvent.type!=="mousemove"&&m.sourceEvent.type!=="touchmove"||!t)return;const E=[m.sourceEvent.clientX??m.sourceEvent.touches[0].clientX,m.sourceEvent.clientY??m.sourceEvent.touches[0].clientY],N=[E[0]-y[0],E[1]-y[1]];y=E;const R=r()*Math.max(b[2],Math.log(b[2]))*(p?-1:1),A={x:b[0]-N[0]*R,y:b[1]-N[1]*R},k=[[0,0],[l,c]];t.setViewportConstrained({x:A.x,y:A.y,zoom:b[2]},k,a)},I=Kc().on("start",x).on("zoom",f?v:null).on("zoom.wheel",d?g:null);s.call(I,{})}function i(){s.on("zoom",null)}return{update:o,destroy:i,pointer:Oe}}var Lr=e=>({x:e.x,y:e.y,zoom:e.k}),as=({x:e,y:t,zoom:n})=>Or.translate(e,t).scale(n),it=(e,t)=>e.target.closest(`.${t}`),xu=(e,t)=>t===2&&Array.isArray(e)&&e.includes(2),dS=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2,ls=(e,t=0,n=dS,r=()=>{})=>{const s=typeof t=="number"&&t>0;return s||r(),s?e.transition().duration(t).ease(n).on("end",r):e},Su=e=>{const t=e.ctrlKey&&Nn()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*t};function hS({zoomPanValues:e,noWheelClassName:t,d3Selection:n,d3Zoom:r,panOnScrollMode:s,panOnScrollSpeed:o,zoomOnPinch:i,onPanZoomStart:a,onPanZoom:l,onPanZoomEnd:c}){return u=>{if(it(u,t))return u.ctrlKey&&u.preventDefault(),!1;u.preventDefault(),u.stopImmediatePropagation();const f=n.property("__zoom").k||1;if(u.ctrlKey&&i){const x=Oe(u),v=Su(u),I=f*Math.pow(2,v);r.scaleTo(n,I,x,u);return}const d=u.deltaMode===1?20:1;let p=s===wt.Vertical?0:u.deltaX*d,g=s===wt.Horizontal?0:u.deltaY*d;!Nn()&&u.shiftKey&&s!==wt.Vertical&&(p=u.deltaY*d,g=0),r.translateBy(n,-(p/f)*o,-(g/f)*o,{internal:!0});const y=Lr(n.property("__zoom"));clearTimeout(e.panScrollTimeout),e.isPanScrolling?l?.(u,y):(e.isPanScrolling=!0,a?.(u,y)),e.panScrollTimeout=setTimeout(()=>{c?.(u,y),e.isPanScrolling=!1},150)}}function fS({noWheelClassName:e,preventScrolling:t,d3ZoomHandler:n}){return function(r,s){const o=r.type==="wheel",i=!t&&o&&!r.ctrlKey,a=it(r,e);if(r.ctrlKey&&o&&a&&r.preventDefault(),i||a)return null;r.preventDefault(),n.call(this,r,s)}}function pS({zoomPanValues:e,onDraggingChange:t,onPanZoomStart:n}){return r=>{if(r.sourceEvent?.internal)return;const s=Lr(r.transform);e.mouseButton=r.sourceEvent?.button||0,e.isZoomingOrPanning=!0,e.prevViewport=s,r.sourceEvent?.type==="mousedown"&&t(!0),n&&n?.(r.sourceEvent,s)}}function gS({zoomPanValues:e,panOnDrag:t,onPaneContextMenu:n,onTransformChange:r,onPanZoom:s}){return o=>{e.usedRightMouseButton=!!(n&&xu(t,e.mouseButton??0)),o.sourceEvent?.sync||r([o.transform.x,o.transform.y,o.transform.k]),s&&!o.sourceEvent?.internal&&s?.(o.sourceEvent,Lr(o.transform))}}function mS({zoomPanValues:e,panOnDrag:t,panOnScroll:n,onDraggingChange:r,onPanZoomEnd:s,onPaneContextMenu:o}){return i=>{if(!i.sourceEvent?.internal&&(e.isZoomingOrPanning=!1,o&&xu(t,e.mouseButton??0)&&!e.usedRightMouseButton&&i.sourceEvent&&o(i.sourceEvent),e.usedRightMouseButton=!1,r(!1),s)){const a=Lr(i.transform);e.prevViewport=a,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{s?.(i.sourceEvent,a)},n?150:0)}}}function vS({panActivationKeyPressed:e,zoomActivationKeyPressed:t,zoomOnScroll:n,zoomOnPinch:r,panOnDrag:s,panOnScroll:o,zoomOnDoubleClick:i,userSelectionActive:a,noWheelClassName:l,noPanClassName:c,lib:u,connectionInProgress:f}){return d=>{const p=t||n,g=r&&d.ctrlKey,y=d.type==="wheel";if(d.button===1&&d.type==="mousedown"&&(it(d,`${u}-flow__node`)||it(d,`${u}-flow__edge`)||it(d,`${u}-flow__selection`)||it(d,`${u}-flow__nodesselection`)))return!0;if(!s&&!p&&!o&&!i&&!r||a||f&&!y||it(d,l)&&y||it(d,c)&&(!y||o&&y&&!t)||!r&&d.ctrlKey&&y)return!1;if(!r&&d.type==="touchstart"&&d.touches?.length>1)return d.preventDefault(),!1;if(!p&&!o&&!g&&y||!s&&(d.type==="mousedown"||d.type==="touchstart")||Array.isArray(s)&&!s.includes(d.button)&&d.type==="mousedown")return!1;const x=Array.isArray(s)&&s.includes(d.button)||!d.button||d.button<=1;return(!d.ctrlKey||y||e)&&x}}function yS({domNode:e,minZoom:t,maxZoom:n,translateExtent:r,viewport:s,onPanZoom:o,onPanZoomStart:i,onPanZoomEnd:a,onDraggingChange:l}){const c={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},u=e.getBoundingClientRect();let f=[[0,0],[u.width,u.height]];(typeof ResizeObserver<"u"?new ResizeObserver(M=>{const O=M[0];O&&(f=[[0,0],[O.contentRect.width,O.contentRect.height]])}):null)?.observe(e);const d=Kc().extent(()=>f).scaleExtent([t,n]).translateExtent(r),p=Se(e).call(d);m({x:s.x,y:s.y,zoom:Kt(s.zoom,t,n)},[[0,0],[u.width,u.height]],r);const g=p.on("wheel.zoom"),y=p.on("dblclick.zoom");d.wheelDelta(Su);async function x(M,O){return p?new Promise(S=>{d?.interpolate(O?.interpolate==="linear"?pn:Qn).transform(ls(p,O?.duration,O?.ease,()=>S(!0)),M)}):!1}function v({noWheelClassName:M,noPanClassName:O,onPaneContextMenu:S,userSelectionActive:w,panOnScroll:T,panOnDrag:j,panOnScrollMode:D,panOnScrollSpeed:P,preventScrolling:F,zoomOnPinch:z,zoomOnScroll:B,zoomOnDoubleClick:K,panActivationKeyPressed:H=!1,zoomActivationKeyPressed:W,lib:J,onTransformChange:X,connectionInProgress:$,paneClickDistance:q,selectionOnDrag:Q}){w&&!c.isZoomingOrPanning&&I();const te=T&&!W&&!w;d.clickDistance(Q?1/0:!Pe(q)||q<0?0:q);const G=te?hS({zoomPanValues:c,noWheelClassName:M,d3Selection:p,d3Zoom:d,panOnScrollMode:D,panOnScrollSpeed:P,zoomOnPinch:z,onPanZoomStart:i,onPanZoom:o,onPanZoomEnd:a}):fS({noWheelClassName:M,preventScrolling:F,d3ZoomHandler:g});p.on("wheel.zoom",G,{passive:!1});const ne=pS({zoomPanValues:c,onDraggingChange:l,onPanZoomStart:i});d.on("start",ne);const Z=gS({zoomPanValues:c,panOnDrag:j,onPaneContextMenu:!!S,onPanZoom:o,onTransformChange:X});d.on("zoom",Z);const U=mS({zoomPanValues:c,panOnDrag:j,panOnScroll:T,onPaneContextMenu:S,onPanZoomEnd:a,onDraggingChange:l});d.on("end",U);const V=vS({panActivationKeyPressed:H,zoomActivationKeyPressed:W,panOnDrag:j,zoomOnScroll:B,panOnScroll:T,zoomOnDoubleClick:K,zoomOnPinch:z,userSelectionActive:w,noPanClassName:O,noWheelClassName:M,lib:J,connectionInProgress:$});d.filter(V),K?p.on("dblclick.zoom",y):p.on("dblclick.zoom",null)}function I(){d.on("zoom",null)}async function m(M,O,S){const w=as(M),T=d?.constrain()(w,O,S);return T&&await x(T),T}async function b(M,O){const S=as(M);return await x(S,O),S}function E(M){if(p){const O=as(M),S=p.property("__zoom");(S.k!==M.zoom||S.x!==M.x||S.y!==M.y)&&d?.transform(p,O,null,{sync:!0})}}function N(){const M=p?Vc(p.node()):{x:0,y:0,k:1};return{x:M.x,y:M.y,zoom:M.k}}async function R(M,O){return p?new Promise(S=>{d?.interpolate(O?.interpolate==="linear"?pn:Qn).scaleTo(ls(p,O?.duration,O?.ease,()=>S(!0)),M)}):!1}async function A(M,O){return p?new Promise(S=>{d?.interpolate(O?.interpolate==="linear"?pn:Qn).scaleBy(ls(p,O?.duration,O?.ease,()=>S(!0)),M)}):!1}function k(M){d?.scaleExtent(M)}function L(M){d?.translateExtent(M)}function _(M){const O=!Pe(M)||M<0?0:M;d?.clickDistance(O)}return{update:v,destroy:I,setViewport:b,setViewportConstrained:m,getViewport:N,scaleTo:R,scaleBy:A,setScaleExtent:k,setTranslateExtent:L,syncViewport:E,setClickDistance:_}}var Wt;(function(e){e.Line="line",e.Handle="handle"})(Wt||(Wt={}));function bS({width:e,prevWidth:t,height:n,prevHeight:r,affectsX:s,affectsY:o}){const i=e-t,a=n-r,l=[i>0?1:i<0?-1:0,a>0?1:a<0?-1:0];return i&&s&&(l[0]=l[0]*-1),a&&o&&(l[1]=l[1]*-1),l}function Wi(e){return{isHorizontal:e.includes("right")||e.includes("left"),isVertical:e.includes("bottom")||e.includes("top"),affectsX:e.includes("left"),affectsY:e.includes("top")}}function rt(e,t){return Math.max(0,t-e)}function st(e,t){return Math.max(0,e-t)}function Hn(e,t,n){return Math.max(0,t-e,e-n)}function Xi(e,t){return e?!t:t}function xS(e,t,n,r,s,o,i,a){let{affectsX:l,affectsY:c}=t;const{isHorizontal:u,isVertical:f}=t,d=u&&f,{xSnapped:p,ySnapped:g}=n,{minWidth:y,maxWidth:x,minHeight:v,maxHeight:I}=r,{x:m,y:b,width:E,height:N,aspectRatio:R}=e;let A=Math.floor(u?p-e.pointerX:0),k=Math.floor(f?g-e.pointerY:0);const L=E+(l?-A:A),_=N+(c?-k:k),M=-o[0]*E,O=-o[1]*N;let S=Hn(L,y,x),w=Hn(_,v,I);if(i){let D=0,P=0;l&&A<0?D=rt(m+A+M,i[0][0]):!l&&A>0&&(D=st(m+L+M,i[1][0])),c&&k<0?P=rt(b+k+O,i[0][1]):!c&&k>0&&(P=st(b+_+O,i[1][1])),S=Math.max(S,D),w=Math.max(w,P)}if(a){let D=0,P=0;l&&A>0?D=st(m+A,a[0][0]):!l&&A<0&&(D=rt(m+L,a[1][0])),c&&k>0?P=st(b+k,a[0][1]):!c&&k<0&&(P=rt(b+_,a[1][1])),S=Math.max(S,D),w=Math.max(w,P)}if(s){if(u){const D=Hn(L/R,v,I)*R;if(S=Math.max(S,D),i){let P=0;!l&&!c||l&&!c&&d?P=st(b+O+L/R,i[1][1])*R:P=rt(b+O+(l?A:-A)/R,i[0][1])*R,S=Math.max(S,P)}if(a){let P=0;!l&&!c||l&&!c&&d?P=rt(b+L/R,a[1][1])*R:P=st(b+(l?A:-A)/R,a[0][1])*R,S=Math.max(S,P)}}if(f){const D=Hn(_*R,y,x)/R;if(w=Math.max(w,D),i){let P=0;!l&&!c||c&&!l&&d?P=st(m+_*R+M,i[1][0])/R:P=rt(m+(c?k:-k)*R+M,i[0][0])/R,w=Math.max(w,P)}if(a){let P=0;!l&&!c||c&&!l&&d?P=rt(m+_*R,a[1][0])/R:P=st(m+(c?k:-k)*R,a[0][0])/R,w=Math.max(w,P)}}}k=k+(k<0?w:-w),A=A+(A<0?S:-S),s&&(d?L>_*R?k=(Xi(l,c)?-A:A)/R:A=(Xi(l,c)?-k:k)*R:u?(k=A/R,c=l):(A=k*R,l=c));const T=l?m+A:m,j=c?b+k:b;return{width:E+(l?-A:A),height:N+(c?-k:k),x:o[0]*A*(l?-1:1)+T,y:o[1]*k*(c?-1:1)+j}}var Iu={width:0,height:0,x:0,y:0},SS={...Iu,pointerX:0,pointerY:0,aspectRatio:1};function IS(e,t,n){const r=t.position.x+e.position.x,s=t.position.y+e.position.y,o=e.measured.width??0,i=e.measured.height??0,a=n[0]*o,l=n[1]*i;return[[r-a,s-l],[r+o-a,s+i-l]]}function wS({domNode:e,nodeId:t,getStoreItems:n,onChange:r,onEnd:s}){const o=Se(e);let i={controlDirection:Wi("bottom-right"),boundaries:{minWidth:0,minHeight:0,maxWidth:Number.MAX_VALUE,maxHeight:Number.MAX_VALUE},resizeDirection:void 0,keepAspectRatio:!1};function a({controlPosition:c,boundaries:u,keepAspectRatio:f,resizeDirection:d,onResizeStart:p,onResize:g,onResizeEnd:y,shouldResize:x}){let v={...Iu},I={...SS};i={boundaries:u,resizeDirection:d,keepAspectRatio:f,controlDirection:Wi(c)};let m,b=null,E=[],N,R,A;const k=Mc().on("start",L=>{const{nodeLookup:_,transform:M,snapGrid:O,snapToGrid:S,nodeOrigin:w,paneDomNode:T}=n();if(m=_.get(t),!m)return;b=T?.getBoundingClientRect()??null;const{xSnapped:j,ySnapped:D}=gn(L.sourceEvent,{transform:M,snapGrid:O,snapToGrid:S,containerBounds:b});v={width:m.measured.width??0,height:m.measured.height??0,x:m.position.x??0,y:m.position.y??0},I={...v,pointerX:j,pointerY:D,aspectRatio:v.width/v.height},N=void 0,R=_t(m.extent)?m.extent:void 0,m.parentId&&(m.extent==="parent"||m.expandParent)&&(N=_.get(m.parentId)),N&&m.extent==="parent"&&(R=[[0,0],[N.measured.width,N.measured.height]]),E=[],A=void 0;for(const[P,F]of _)if(F.parentId===t&&(E.push({id:P,position:{...F.position},extent:F.extent}),F.extent==="parent"||F.expandParent)){const z=IS(F,m,F.origin??w);A?A=[[Math.min(z[0][0],A[0][0]),Math.min(z[0][1],A[0][1])],[Math.max(z[1][0],A[1][0]),Math.max(z[1][1],A[1][1])]]:A=z}p?.(L,{...v})}).on("drag",L=>{const{transform:_,snapGrid:M,snapToGrid:O,nodeOrigin:S}=n(),w=gn(L.sourceEvent,{transform:_,snapGrid:M,snapToGrid:O,containerBounds:b}),T=[];if(!m)return;const{x:j,y:D,width:P,height:F}=v,z={},B=m.origin??S,{width:K,height:H,x:W,y:J}=xS(I,i.controlDirection,w,i.boundaries,i.keepAspectRatio,B,R,A),X=K!==P,$=H!==F,q=W!==j&&X,Q=J!==D&&$;if(!q&&!Q&&!X&&!$)return;const te={prevValues:{...v},startX:I.x,startY:I.y,childNodes:E.map(Z=>({...Z,position:{...Z.position}}))};if((q||Q||B[0]===1||B[1]===1)&&(z.x=q?W:v.x,z.y=Q?J:v.y,v.x=z.x,v.y=z.y,E.length>0)){const Z=W-j,U=J-D;for(const V of E)V.position={x:V.position.x-Z+B[0]*(K-P),y:V.position.y-U+B[1]*(H-F)},T.push(V)}if((X||$)&&(z.width=X&&(!i.resizeDirection||i.resizeDirection==="horizontal")?K:v.width,z.height=$&&(!i.resizeDirection||i.resizeDirection==="vertical")?H:v.height,v.width=z.width,v.height=z.height),N&&m.expandParent){const Z=B[0]*(z.width??0);z.x&&z.x<Z&&(v.x=Z,I.x=I.x-(z.x-Z));const U=B[1]*(z.height??0);z.y&&z.y<U&&(v.y=U,I.y=I.y-(z.y-U))}const G=bS({width:v.width,prevWidth:P,height:v.height,prevHeight:F,affectsX:i.controlDirection.affectsX,affectsY:i.controlDirection.affectsY}),ne={...v,direction:G};if(x?.(L,ne)===!1){v=te.prevValues,I.x=te.startX,I.y=te.startY,E.forEach((Z,U)=>{Z.position=te.childNodes[U].position});return}g?.(L,ne),r(z,T)}).on("end",L=>{y?.(L,{...v}),s?.({...v})});o.call(k)}function l(){o.on(".drag",null)}return{update:a,destroy:l}}var ES=Ir(nf(),1),Qi=e=>{let t;const n=new Set,r=(u,f)=>{const d=typeof u=="function"?u(t):u;if(!Object.is(d,t)){const p=t;t=f??(typeof d!="object"||d===null)?d:Object.assign({},t,d),n.forEach(g=>g(t,p))}},s=()=>t,l={setState:r,getState:s,getInitialState:()=>c,subscribe:u=>(n.add(u),()=>n.delete(u)),destroy:()=>{n.clear()}},c=t=e(r,s,l);return l},CS=e=>e?Qi(e):Qi,{useDebugValue:NS}=C.default,{useSyncExternalStoreWithSelector:RS}=ES.default,_S=e=>e;function wu(e,t=_S,n){const r=RS(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return NS(r),r}var Ji=(e,t)=>{const n=CS(e),r=(s,o=t)=>wu(n,s,o);return Object.assign(r,n),r},TS=(e,t)=>e?Ji(e,t):Ji;function le(e,t){if(Object.is(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(const[r,s]of e)if(!Object.is(s,t.get(r)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(const r of e)if(!t.has(r))return!1;return!0}const n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(const r of n)if(!Object.prototype.hasOwnProperty.call(t,r)||!Object.is(e[r],t[r]))return!1;return!0}var k_=Ir(Df()),Dr=(0,C.createContext)(null),AS=Dr.Provider,Eu=Te.error001("react");function re(e,t){const n=(0,C.useContext)(Dr);if(n===null)throw new Error(Eu);return wu(n,e,t)}function oe(){const e=(0,C.useContext)(Dr);if(e===null)throw new Error(Eu);return(0,C.useMemo)(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe}),[e])}var Zi={display:"none"},MS={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},Cu="react-flow__node-desc",Nu="react-flow__edge-desc",kS="react-flow__aria-live",OS=e=>e.ariaLiveMessage,jS=e=>e.ariaLabelConfig;function PS({rfId:e}){const t=re(OS);return(0,h.jsx)("div",{id:`${kS}-${e}`,"aria-live":"assertive","aria-atomic":"true",style:MS,children:t})}function LS({rfId:e,disableKeyboardA11y:t}){const n=re(jS);return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)("div",{id:`${Cu}-${e}`,style:Zi,children:t?n["node.a11yDescription.default"]:n["node.a11yDescription.keyboardDisabled"]}),(0,h.jsx)("div",{id:`${Nu}-${e}`,style:Zi,children:n["edge.a11yDescription.default"]}),!t&&(0,h.jsx)(PS,{rfId:e})]})}var $r=(0,C.forwardRef)(({position:e="top-left",children:t,className:n,style:r,...s},o)=>{const i=`${e}`.split("-");return(0,h.jsx)("div",{className:ue(["react-flow__panel",n,...i]),style:r,ref:o,...s,children:t})});$r.displayName="Panel";var ea="https://reactflow.dev?utm_source=attribution";function DS({proOptions:e,position:t="bottom-right"}){return(0,C.useEffect)(()=>{},[]),e?.hideAttribution?null:(0,h.jsx)($r,{position:t,className:"react-flow__attribution","data-message":`Please only hide this attribution when you are subscribed to React Flow Pro: ${ea}`,children:(0,h.jsx)("a",{href:ea,target:"_blank",rel:"noopener noreferrer","aria-label":"React Flow attribution",children:"React Flow"})})}var $S=e=>{const t=[],n=[];for(const[,r]of e.nodeLookup)r.selected&&t.push(r.internals.userNode);for(const[,r]of e.edgeLookup)r.selected&&n.push(r);return{selectedNodes:t,selectedEdges:n}},Bn=e=>e.id;function FS(e,t){return le(e.selectedNodes.map(Bn),t.selectedNodes.map(Bn))&&le(e.selectedEdges.map(Bn),t.selectedEdges.map(Bn))}function zS({onSelectionChange:e}){const t=oe(),{selectedNodes:n,selectedEdges:r}=re($S,FS);return(0,C.useEffect)(()=>{const s={nodes:n,edges:r};e?.(s),t.getState().onSelectionChangeHandlers.forEach(o=>o(s))},[n,r,e]),null}var HS=e=>!!e.onSelectionChangeHandlers;function BS({onSelectionChange:e}){const t=re(HS);return e||t?(0,h.jsx)(zS,{onSelectionChange:e}):null}var Ru=[0,0],GS={x:0,y:0,zoom:1},ta=["nodes","edges","defaultNodes","defaultEdges","onConnect","onConnectStart","onConnectEnd","onClickConnectStart","onClickConnectEnd","nodesDraggable","autoPanOnNodeFocus","nodesConnectable","nodesFocusable","edgesFocusable","edgesReconnectable","elevateNodesOnSelect","elevateEdgesOnSelect","minZoom","maxZoom","nodeExtent","onNodesChange","onEdgesChange","elementsSelectable","connectionMode","snapGrid","snapToGrid","translateExtent","connectOnClick","defaultEdgeOptions","fitView","fitViewOptions","onNodesDelete","onEdgesDelete","onDelete","onNodeDrag","onNodeDragStart","onNodeDragStop","onSelectionDrag","onSelectionDragStart","onSelectionDragStop","onMoveStart","onMove","onMoveEnd","noPanClassName","nodeOrigin","autoPanOnConnect","autoPanOnNodeDrag","onError","connectionRadius","isValidConnection","selectNodesOnDrag","nodeDragThreshold","connectionDragThreshold","onBeforeDelete","debug","autoPanSpeed","ariaLabelConfig","zIndexMode","rfId"],US=e=>({setNodes:e.setNodes,setEdges:e.setEdges,setMinZoom:e.setMinZoom,setMaxZoom:e.setMaxZoom,setTranslateExtent:e.setTranslateExtent,setNodeExtent:e.setNodeExtent,reset:e.reset,setDefaultNodesAndEdges:e.setDefaultNodesAndEdges}),na={translateExtent:wn,nodeOrigin:Ru,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:"nopan",rfId:"1"};function qS(e){const{setNodes:t,setEdges:n,setMinZoom:r,setMaxZoom:s,setTranslateExtent:o,setNodeExtent:i,reset:a,setDefaultNodesAndEdges:l}=re(US,le),c=oe();(0,C.useEffect)(()=>(l(e.defaultNodes,e.defaultEdges),()=>{u.current=na,a()}),[]);const u=(0,C.useRef)(na);return(0,C.useEffect)(()=>{for(const f of ta){const d=e[f];d!==u.current[f]&&(typeof e[f]>"u"||(f==="nodes"?t(d):f==="edges"?n(d):f==="minZoom"?r(d):f==="maxZoom"?s(d):f==="translateExtent"?o(d):f==="nodeExtent"?i(d):f==="ariaLabelConfig"?c.setState({ariaLabelConfig:Lx(d)}):f==="fitView"?c.setState({fitViewQueued:d}):f==="fitViewOptions"?c.setState({fitViewOptions:d}):c.setState({[f]:d})))}u.current=e},ta.map(f=>e[f])),null}function ra(){return typeof window>"u"||!window.matchMedia?null:window.matchMedia("(prefers-color-scheme: dark)")}function VS(e){const[t,n]=(0,C.useState)(e==="system"?null:e);return(0,C.useEffect)(()=>{if(e!=="system"){n(e);return}const r=ra(),s=()=>n(r?.matches?"dark":"light");return s(),r?.addEventListener("change",s),()=>{r?.removeEventListener("change",s)}},[e]),t!==null?t:ra()?.matches?"dark":"light"}var sa=typeof document<"u"?document:null;function Rn(e=null,t={target:sa,actInsideInputWithModifier:!0}){const[n,r]=(0,C.useState)(!1),s=(0,C.useRef)(!1),o=(0,C.useRef)(new Set([])),[i,a]=(0,C.useMemo)(()=>{if(e!==null){const l=(Array.isArray(e)?e:[e]).filter(c=>typeof c=="string").map(c=>c.replace(/\+/g,`
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/_pathlessLayout-Dq6e_NF8.js","assets/rolldown-runtime-BEBKJ2Xb.js","assets/tanstack-Bkos0wYR.js","assets/icons-BnNQtg24.js","assets/radix-ui-qEOOL1_K.js","assets/dist-CsoBsImu.js","assets/utils-CwFw8YqE.js","assets/bundle-mjs-Ba_GShnc.js","assets/spinner-CwZXU6BY.js","assets/dist-DMyf6Dko.js","assets/schema-Dg-DmfQp.js","assets/label-DxIJiZ44.js","assets/tooltip-BGS6CdKU.js","assets/react-DgIpWRm8.js","assets/sheet-sidebar-C1Wgdn-M.js","assets/constants-CyYxDPW-.js","assets/database.store-DwsAyPWD.js","assets/preload-helper-D4DSFROY.js","assets/badge-Vam-1V2U.js","assets/use-database-engine-BPO0PzHc.js","assets/keys-D6vrgtRa.js","assets/format-cell-value-D-naTnK8.js","assets/tables-DGOK-1JF.js","assets/select-CRpiKcof.js","assets/separator-UVHn5WOz.js","assets/middleware-BhQeo1dQ.js","assets/personal-preferences.store-D1vwYECY.js","assets/vscode-DfeEYiA3.js","assets/use-theme-DQtr7wmG.js","assets/queries.store-DPfK-_0h.js","assets/redis-value-Dhm0spIW.js","assets/_pathlessLayout-BwDB7UH8.js","assets/browser-CFtnfZcn.js","assets/logs-DQk3nMcE.js","assets/visualizer-CWs82Oat.js","assets/indexes-Dd93lTvB.js","assets/_table-8PsqQd2I.js","assets/runner-Di4uLR8Z.js","assets/query-runner-BKek4lAm.js","assets/_queryId-B0DdcAYp.js","assets/schema-CC7fIVGB.js","assets/_table-CeyFxEOk.js","assets/table-Dq85hQaM.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{r as Ir,t as bl}from"./rolldown-runtime-BEBKJ2Xb.js";import{C as Dt,D as Vh,E as Js,O as Kh,T as Yh,_ as Wh,b as Xh,c as Qh,d as Jh,f as xl,g as wr,h as Zh,m as we,p as Ee,s as Sl,t as ef,u as tf,v as Zs,w as $t,x as nf}from"./tanstack-Bkos0wYR.js";import{A as rf,At as sf,C as of,Ct as Il,D as af,Dt as lf,E as Vo,F as cf,H as eo,It as uf,J as df,L as hf,M as ff,Mt as pf,N as gf,Nt as mf,O as vf,R as Ko,St as yf,V as wl,W as bf,_ as xf,b as El,ct as Sf,dt as If,f as Ss,ft as wf,ht as Ef,i as Cf,it as Is,j as Nf,k as Rf,n as _f,o as Tf,ot as Yr,p as Af,rt as Yo,s as Mf,tt as kf,v as Of,w as jf,xt as Pf,y as Lf}from"./icons-BnNQtg24.js";import{At as Df,d as $f,f as Ff,jt as zf,u as Hf}from"./radix-ui-qEOOL1_K.js";import{t as Bf}from"./react-dom-BZ0gDQU5.js";import{n as he,t as Gf}from"./dist-CsoBsImu.js";import{t as me}from"./utils-CwFw8YqE.js";import{t as to}from"./spinner-CwZXU6BY.js";import{a as Uf,i as qf,n as ws,o as Es,r as Vf,s as Kf}from"./dist-DMyf6Dko.js";import{A as Yf,B as se,D as Wf,E as Cl,F as Xf,H as tn,I as Qf,L as Nl,M as Jf,N as qe,O as Zf,P as Er,R as ot,T as ep,U as tp,V as Rl,a as np,c as _l,d as Tl,f as rp,h as Al,i as sp,j as Cs,k as Qt,m as op,n as ip,o as ap,p as lp,r as cp,s as Ml,u as Zn,v as up,w as dp,z as kl}from"./schema-Dg-DmfQp.js";import{n as no,t as fe}from"./label-DxIJiZ44.js";import{a as ut,c as Ol,o as dt}from"./tooltip-BGS6CdKU.js";import{a as hp,i as fp,n as pp,o as gp,t as jl}from"./sheet-sidebar-C1Wgdn-M.js";import{a as mp,d as Je,i as vp,l as yp,n as bp,r as Pl,s as Ll}from"./tables-DGOK-1JF.js";import{t as Dl}from"./react-DgIpWRm8.js";import{F as xp,G as Sp,I as Ip,L as wp,M as Ep,N as Cp,P as $l,R as Np,U as Fl,W as zl,f as Rp,g as _p,s as Tp,t as ct,z as Ap}from"./constants-CyYxDPW-.js";import{_ as nn,b as St,c as Mp,d as Wo,f as Xo,g as Qo,h as Jo,i as Cr,l as kp,r as Op,s as vn,t as ft,v as ro,y as jp}from"./database.store-DwsAyPWD.js";import{t as Ce}from"./preload-helper-D4DSFROY.js";import{a as Pp,i as Lp,m as Dp,n as $p}from"./badge-Vam-1V2U.js";import{a as Ft,i as zt,n as Ht,r as ht,t as Bt}from"./select-CRpiKcof.js";import{t as Fp}from"./use-database-engine-BPO0PzHc.js";import{n as er,r as tr,s as Ns}from"./keys-D6vrgtRa.js";import{n as Hl,t as zp}from"./separator-UVHn5WOz.js";import{t as Hp}from"./middleware-BhQeo1dQ.js";import{n as Bp,r as Bl,t as Gp}from"./personal-preferences.store-D1vwYECY.js";import{t as so}from"./use-theme-DQtr7wmG.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};e.SENTRY_RELEASE={id:"db-studio@1.22.1"};var t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="0a372d97-aed3-4ec3-a0dc-f6a0b25b0e40",e._sentryDebugIdIdentifier="sentry-dbid-0a372d97-aed3-4ec3-a0dc-f6a0b25b0e40")}catch{}})();(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const o of s)if(o.type==="childList")for(const i of o.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&r(i)}).observe(document,{childList:!0,subtree:!0});function n(s){const o={};return s.integrity&&(o.integrity=s.integrity),s.referrerPolicy&&(o.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?o.credentials="include":s.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function r(s){if(s.ep)return;s.ep=!0;const o=n(s);fetch(s.href,o)}})();var C=Ir(uf(),1),Up=Ir(Bf(),1),Wr,Zo=()=>new Vh({defaultOptions:{queries:{staleTime:3e4,gcTime:3e5,retry:0,retryDelay:e=>Math.min(1e3*2**e,3e4),refetchOnWindowFocus:!1,refetchOnMount:!1,refetchOnReconnect:!0},mutations:{retry:0,networkMode:"online"},dehydrate:{shouldDehydrateQuery:e=>Kh(e)||e.state.status==="pending"}}}),Gl=()=>typeof window>"u"?Zo():(Wr||(Wr=Zo()),Wr),qp=(e,t,n,r,s,o,i,a)=>{let l=document.documentElement,c=["light","dark"];function u(p){(Array.isArray(e)?e:[e]).forEach(g=>{let y=g==="class",x=y&&o?s.map(v=>o[v]||v):s;y?(l.classList.remove(...x),l.classList.add(o&&o[p]?o[p]:p)):l.setAttribute(g,p)}),f(p)}function f(p){a&&c.includes(p)&&(l.style.colorScheme=p)}function d(){return window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}if(r)u(r);else try{let p=localStorage.getItem(t)||n;u(i&&p==="system"?d():p)}catch{}},Vp=C.createContext(void 0),Kp={setTheme:e=>{},themes:[]},Yp=()=>{var e;return(e=C.useContext(Vp))!=null?e:Kp},C_=C.memo(({forcedTheme:e,storageKey:t,attribute:n,enableSystem:r,enableColorScheme:s,defaultTheme:o,value:i,themes:a,nonce:l,scriptProps:c})=>{let u=JSON.stringify([n,t,o,e,a,i,r,s]).slice(1,-1);return C.createElement("script",{...c,suppressHydrationWarning:!0,nonce:typeof window>"u"?l:"",dangerouslySetInnerHTML:{__html:`(${qp.toString()})(${u})`}})}),h=zf(),Wp=({...e})=>{const{theme:t="system"}=Yp();return(0,h.jsx)(Gf,{theme:t,className:"toaster group",icons:{success:(0,h.jsx)(Ef,{className:"size-4 text-emerald-500"}),info:(0,h.jsx)(bf,{className:"size-4 text-blue-500"}),warning:(0,h.jsx)(Tf,{className:"size-4 text-amber-500"}),error:(0,h.jsx)(ff,{className:"size-4 text-red-500"}),loading:(0,h.jsx)(hf,{className:"size-4 animate-spin text-blue-500"})},style:{"--normal-bg":"var(--popover)","--normal-text":"var(--popover-foreground)","--normal-border":"var(--border)","--border-radius":"var(--radius)"},toastOptions:{classNames:{toast:"cn-toast"}},...e})};function ei(e,t,n){return r=>{if(!(t.length===0||t.some(o=>!Vf(r.getAll(o),e.getAll(o)))))return Es("[nuqs `%s`] no change, returning previous",t.join(","),r),r;const s=Ul(e,t,n);return Es("[nuqs `%s`] subbed search params change\n from %O\n to %O",t.join(","),r,s),s}}function Ul(e,t,n){if(t.length===0)return e;const r=n?new URLSearchParams(e):e;for(const s of e.keys())t.includes(s)||r.delete(s);return r}var Xp="__nuqs__",Rs=qf();function Qp(e){return function(n,r){const s=new URL(location.href);s.search=Kf(n),Es("[nuqs react] Updating url: %s",s),e&&r.shallow===!1?(r.history==="push"?location.assign:location.replace).call(location,s):(r.history==="push"?history.pushState:history.replaceState).call(history,history.state,Xp,s),Rs.emit("update",n),r.scroll===!0&&window.scrollTo({top:0})}}var ql=(0,C.createContext)({fullPageNavigationOnShallowFalseUpdates:!1});function Jp(e){const{fullPageNavigationOnShallowFalseUpdates:t}=(0,C.useContext)(ql),[n,r]=(0,C.useState)(()=>typeof location>"u"?new URLSearchParams:Ul(new URLSearchParams(location.search),e,!1));return(0,C.useEffect)(()=>{const s=()=>{r(ei(new URLSearchParams(location.search),e,!1))},o=i=>{r(ei(i,e,!0))};return Rs.on("update",o),window.addEventListener("popstate",s),()=>{Rs.off("update",o),window.removeEventListener("popstate",s)}},[e.join("&")]),{searchParams:n,updateUrl:(0,C.useMemo)(()=>Qp(t),[t])}}var Zp=Uf(Jp);function eg({children:e,fullPageNavigationOnShallowFalseUpdates:t=!1,...n}){return(0,C.createElement)(ql.Provider,{value:{fullPageNavigationOnShallowFalseUpdates:t}},(0,C.createElement)(Zp,{...n,children:e}))}var tg=Dl()(e=>({pendingPrompt:null,requestAssistant:t=>e({pendingPrompt:t}),consumePrompt:()=>e({pendingPrompt:null})})),ng=()=>{const{selectedDatabase:e}=ft(),{mutateAsync:t,isPending:n}=Dt({mutationFn:async({tableName:s,schemaName:o})=>{const i=(await _p(s,e,o)).data.data.schema;return await navigator.clipboard.writeText(i),i}});return{copyTableSchema:async(s,o)=>he.promise(t({tableName:s,schemaName:o}),{loading:"Copying table schema...",success:"Table schema copied to clipboard",error:i=>i.message||"Failed to copy table schema"}),isCopyingSchema:n}},rg=({index:e})=>{const{control:t,watch:n}=qe(),r=n("fields")?.filter(o=>o.columnName?.trim()),s=n(`fields.${e}.columnName`);return(0,h.jsx)(Qt,{control:t,name:`foreignKeys.${e}`,render:({field:o})=>(0,h.jsx)("div",{className:"flex flex-col gap-2 flex-1",children:(0,h.jsxs)(Bt,{defaultValue:s||"none",value:o.value?.columnName,onValueChange:i=>o.onChange({...o.value,columnName:i}),children:[(0,h.jsx)(zt,{className:"w-full flex-1",children:(0,h.jsx)(Ft,{placeholder:r?.length?"Select a column":"No columns found"})}),(0,h.jsx)(Ht,{children:r?.length>0?r.map(i=>(0,h.jsx)(ht,{value:i.columnName,children:i.columnName},i.columnName)):(0,h.jsx)(ht,{value:"none",disabled:!0,children:"No columns found"})})]})})})},sg=({index:e,tableName:t})=>{const{tableCols:n,isLoadingTableCols:r}=dp({tableName:t,schemaName:void 0}),{control:s}=qe();return Er({control:s,name:`foreignKeys.${e}`})?(0,h.jsx)(Qt,{control:s,name:`foreignKeys.${e}`,render:({field:o})=>(0,h.jsxs)(Bt,{value:o.value?.referencedColumn,onValueChange:i=>o.onChange({...o.value,referencedColumn:i}),disabled:r,children:[(0,h.jsx)(zt,{className:"w-full flex-1",disabled:r||!n?.length,children:(0,h.jsx)(Ft,{placeholder:n?.length?"Select a column":"No columns found"})}),(0,h.jsx)(Ht,{children:n&&n.length>0&&r?(0,h.jsx)(ht,{value:"none",disabled:!0,children:"No columns found"}):n?.flatMap(i=>i.columnName?.trim()?[(0,h.jsx)(ht,{value:i.columnName,children:i.columnName},i.columnName)]:[])})]})}):null},og=({index:e})=>{const{control:t}=qe();return(0,h.jsx)(Qt,{control:t,name:`foreignKeys.${e}.onDelete`,defaultValue:"NO ACTION",render:({field:n})=>(0,h.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,h.jsx)(fe,{htmlFor:`foreignKeys.${e}.onDelete`,children:"Action if referenced row is deleted"}),(0,h.jsxs)(Bt,{value:n.value,onValueChange:r=>n.onChange(r),children:[(0,h.jsx)(zt,{className:"w-full flex-1",children:(0,h.jsx)(Ft,{placeholder:"Select an action"})}),(0,h.jsx)(Ht,{children:Cl.map(r=>(0,h.jsx)(ht,{value:r.value,children:r.label},r.value))})]})]})})},ig=({index:e})=>{const{control:t}=qe();return(0,h.jsx)(Qt,{control:t,name:`foreignKeys.${e}.onUpdate`,defaultValue:"NO ACTION",render:({field:n})=>(0,h.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,h.jsx)(fe,{htmlFor:`foreignKeys.${e}.onUpdate`,children:"Action if referenced row is updated"}),(0,h.jsxs)(Bt,{value:n.value,onValueChange:r=>n.onChange(r),children:[(0,h.jsx)(zt,{className:"w-full flex-1",children:(0,h.jsx)(Ft,{placeholder:"Select an action"})}),(0,h.jsx)(Ht,{children:Cl.map(r=>(0,h.jsx)(ht,{value:r.value,children:r.label},r.value))})]})]})})},ag=({index:e})=>{const{control:t,watch:n}=qe(),r=n(`foreignKeys.${e}.referencedTable`),s=Er({control:t,name:`foreignKeys.${e}`});return!r||!s?null:(0,h.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,h.jsxs)("p",{className:"text-xs text-muted-foreground",children:["Select columns from"," ",(0,h.jsx)("span",{className:"font-mono text-primary",children:s.referencedTable||"Unnamed table"})," ","to reference to"]}),(0,h.jsxs)("div",{className:"space-y-2",children:[(0,h.jsxs)("div",{className:"grid grid-cols-2 gap-2",children:[(0,h.jsx)(fe,{htmlFor:`foreignKeys.${e}.columnName`,children:n("tableName")||"Unnamed table"}),(0,h.jsx)(fe,{htmlFor:`foreignKeys.${e}.referencedColumn`,children:s.referencedTable||"Unnamed table"})]}),(0,h.jsxs)("div",{className:"grid grid-cols-2 gap-2",children:[(0,h.jsxs)("div",{className:"flex items-center gap-2 flex-1",children:[(0,h.jsx)(rg,{index:e}),(0,h.jsx)(pf,{className:"size-4 aspect-square text-muted-foreground"})]}),(0,h.jsx)("div",{className:"flex items-center gap-2 flex-1",children:(0,h.jsx)(sg,{index:e,tableName:s.referencedTable})})]}),(0,h.jsx)("hr",{className:"my-8 border-border"}),(0,h.jsxs)("div",{className:"flex flex-col gap-6",children:[(0,h.jsx)(ig,{index:e}),(0,h.jsx)(og,{index:e})]})]})]})},lg=({index:e})=>{const[t,n]=(0,C.useState)(!1),{tablesList:r,isLoadingTablesList:s}=Ll(),{control:o,watch:i,setValue:a,getValues:l}=qe(),c=i(`fields.${e}.columnName`),u=()=>{const f=l("foreignKeys")||[];if(!f[e]){const d=[...f];d.push({columnName:"",referencedTable:"",referencedColumn:"",onUpdate:"NO ACTION",onDelete:"NO ACTION"}),a("foreignKeys",d)}};return(0,h.jsx)(Qt,{control:o,name:`foreignKeys.${e}`,render:({field:f})=>(0,h.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,h.jsx)(fe,{htmlFor:"referencedTable",children:"Select a table to reference to"}),(0,h.jsxs)($p,{modal:!0,onOpenChange:d=>{d&&u(),n(d)},open:t,children:[(0,h.jsx)(Pp,{asChild:!0,children:(0,h.jsxs)(dt,{"aria-expanded":t,"aria-controls":"referencedTable-listbox",className:"w-full justify-between border-input bg-background px-3 font-normal outline-none outline-offset-0 hover:bg-background focus-visible:outline-[3px]",id:"referencedTable",role:"combobox",variant:"outline",disabled:s,children:[(0,h.jsx)("span",{className:me("truncate",!f.value?.referencedTable&&"text-muted-foreground"),children:f.value?.referencedTable||"---"}),(0,h.jsx)(yf,{"aria-hidden":"true",className:"shrink-0 text-muted-foreground/80",size:16})]})}),(0,h.jsx)(Lp,{id:"referencedTable-listbox",align:"start",className:"w-full min-w-(--radix-popper-anchor-width) border-input p-0",children:(0,h.jsxs)(Xf,{children:[(0,h.jsx)(kl,{placeholder:"Search table..."}),(0,h.jsxs)(Rl,{children:[(0,h.jsx)(Nl,{children:"No table found."}),(0,h.jsx)(ot,{children:r?.map(d=>(0,h.jsxs)(se,{onSelect:()=>{f.onChange({...f.value,referencedTable:d.tableName}),a(`foreignKeys.${e}.columnName`,c),n(!1)},value:d.tableName,children:[d.tableName,f.value?.referencedTable===d.tableName&&(0,h.jsx)(Il,{className:"ml-auto",size:16})]},d.tableName))})]})]})})]})]})})},cg=({index:e})=>{const{closeOverlay:t,isOverlayOpen:n}=ut(),{control:r}=qe(),{remove:s}=Cs({control:r,name:"foreignKeys"}),o=()=>{s(e),t(`table-builder.add-foreign-key-${e}`)};return(0,h.jsx)(pp,{open:n(`table-builder.add-foreign-key-${e}`),onOpenChange:i=>{i||t(`table-builder.add-foreign-key-${e}`)},children:(0,h.jsxs)(fp,{className:"max-w-lg!",children:[(0,h.jsx)(hp,{children:(0,h.jsx)(gp,{children:"Add foreign key relationship"})}),(0,h.jsxs)("div",{className:"flex flex-col justify-between px-5 py-6 h-full flex-1",children:[(0,h.jsxs)("div",{className:"space-y-6 flex-1",children:[(0,h.jsx)(lg,{index:e}),(0,h.jsx)(ag,{index:e})]}),(0,h.jsx)(dt,{type:"button",variant:"outline",size:"sm",onClick:o,children:(0,h.jsx)("span",{className:"text-xs",children:"Reset Foreign Key"})})]})]})})},ti=({index:e,onRemove:t,canRemove:n})=>{const{control:r}=qe(),s=Er({control:r,name:`fields.${e}.isPrimaryKey`});return(0,h.jsxs)("div",{className:"grid grid-cols-4 gap-4",children:[(0,h.jsx)(np,{index:e}),(0,h.jsx)(ep,{index:e}),(0,h.jsx)(sp,{index:e}),(0,h.jsxs)("div",{className:"flex gap-2",children:[(0,h.jsx)(cp,{index:e}),(0,h.jsx)(ap,{index:e,isDisabled:!!s}),(0,h.jsx)("div",{className:"flex items-end justify-center",children:(0,h.jsx)(dt,{type:"button",variant:"ghost",className:"size-9",onClick:t,disabled:!n,children:(0,h.jsx)(_f,{className:"size-4"})})}),(0,h.jsx)(cg,{index:e})]})]})},ug=()=>{const{control:e}=qe(),{fields:t,append:n,remove:r}=Cs({control:e,name:"fields"}),{remove:s}=Cs({control:e,name:"foreignKeys"}),o=Er({control:e,name:"fields"}),i=()=>{n({columnName:"",columnType:"",defaultValue:"",isPrimaryKey:!1,isNullable:!0,isUnique:!1,isIdentity:!1,isArray:!1})},a=u=>{t.length>1&&(r(u),s(u))},l=t.reduce((u,f,d)=>(o?.[d]?.isPrimaryKey&&u.push({field:f,index:d}),u),[]),c=t.reduce((u,f,d)=>(o?.[d]?.isPrimaryKey||u.push({field:f,index:d}),u),[]);return(0,h.jsxs)("div",{className:"space-y-2",children:[l.length>1&&(0,h.jsx)(Dp,{variant:"info",title:"Composite primary key selected",className:"mb-6"}),(0,h.jsxs)("div",{className:"grid grid-cols-4 px-2",children:[(0,h.jsx)(fe,{className:"text-xs",children:"Column Name"}),(0,h.jsx)(fe,{className:"text-xs",children:"Column Type"}),(0,h.jsx)(fe,{className:"text-xs",children:"Default Value"}),(0,h.jsx)(fe,{className:"text-xs",children:"Primary"})]}),(0,h.jsxs)("div",{className:"space-y-2",children:[l.length>0&&(0,h.jsx)("div",{className:"bg-primary/10 rounded-lg px-2 py-3 space-y-2",children:l.map(({field:u,index:f})=>(0,h.jsx)(ti,{index:f,onRemove:()=>a(f),canRemove:t.length>1},u.id))}),c.length>0&&(0,h.jsx)("div",{className:"space-y-2 px-2 py-3",children:c.map(({field:u,index:f})=>(0,h.jsx)(ti,{index:f,onRemove:()=>a(f),canRemove:t.length>1},u.id))})]}),(0,h.jsx)("div",{className:"border border-dashed border-input rounded-lg flex justify-center items-center p-6",children:(0,h.jsx)(dt,{type:"button",variant:"secondary",size:"sm",onClick:i,children:"Add New Column"})})]})};function N_({className:e,...t}){return(0,h.jsx)("div",{"data-slot":"field-group",className:me("gap-4 data-[slot=checkbox-group]:gap-3 [&>[data-slot=field-group]]:gap-4 group/field-group @container/field-group flex w-full flex-col",e),...t})}var dg=Ol("data-[invalid=true]:text-destructive gap-2 group/field flex w-full",{variants:{orientation:{vertical:"flex-col [&>*]:w-full [&>.sr-only]:w-auto",horizontal:"flex-row items-center [&>[data-slot=field-label]]:flex-auto has-[>[data-slot=field-content]]:items-start has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px",responsive:"flex-col [&>*]:w-full [&>.sr-only]:w-auto @md/field-group:flex-row @md/field-group:items-center @md/field-group:[&>*]:w-auto @md/field-group:[&>[data-slot=field-label]]:flex-auto @md/field-group:has-[>[data-slot=field-content]]:items-start @md/field-group:has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px"}},defaultVariants:{orientation:"vertical"}});function R_({className:e,orientation:t="vertical",...n}){return(0,h.jsx)("div",{role:"group","data-slot":"field","data-orientation":t,className:me(dg({orientation:t}),e),...n})}function __({className:e,...t}){return(0,h.jsx)(fe,{"data-slot":"field-label",className:me("has-data-checked:bg-primary/5 dark:has-data-checked:bg-primary/10 gap-2 group-data-[disabled=true]/field:opacity-50 has-[>[data-slot=field]]:rounded-sm has-[>[data-slot=field]]:border [&>*]:data-[slot=field]:p-2 group/field-label peer/field-label flex w-fit leading-snug","has-[>[data-slot=field]]:w-full has-[>[data-slot=field]]:flex-col",e),...t})}function T_({className:e,...t}){return(0,h.jsx)("p",{"data-slot":"field-description",className:me("text-muted-foreground text-left text-xs/relaxed [[data-variant=legend]+&]:-mt-1.5 leading-normal font-normal group-has-[[data-orientation=horizontal]]/field:text-balance","last:mt-0 nth-last-2:-mt-1","[&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4",e),...t})}var hg=C.memo(function({errors:t}){const n=[...new Map(t.map(r=>[r?.message,r])).values()];return n.length===1?(0,h.jsx)(h.Fragment,{children:n[0]?.message}):(0,h.jsx)("ul",{className:"ml-4 flex list-disc flex-col gap-1",children:n.map((r,s)=>r?.message&&(0,h.jsx)("li",{children:r.message},r?.message??s))})});function fg({className:e,children:t,errors:n,...r}){return t!=null||(n?.length??0)>0?(0,h.jsx)("div",{role:"alert","data-slot":"field-error",className:me("text-destructive text-xs/relaxed font-normal",e),...r,children:t??(n&&(0,h.jsx)(hg,{errors:n}))}):null}var pg=()=>{const{control:e,register:t,formState:{errors:n}}=qe();return(0,h.jsx)(Qt,{control:e,name:"tableName",render:()=>(0,h.jsxs)("div",{className:"flex gap-24 px-2",children:[(0,h.jsx)(fe,{htmlFor:"tableName",children:"Table Name"}),(0,h.jsxs)("div",{className:"flex-1 space-y-1",children:[(0,h.jsx)(no,{id:"tableName",...t("tableName",{required:"Table name is required"}),className:n.tableName?"border-destructive ring-destructive ring-1":""}),n.tableName&&(0,h.jsx)(fg,{errors:[n.tableName]})]})]})})},gg=()=>{const{closeOverlay:e}=ut(),t=Js(),{selectedDatabase:n,dbType:r}=ft(),{mutateAsync:s,isPending:o}=Dt({mutationFn:async a=>(await Tp(a,n)).data.data,onSuccess:async()=>{await Promise.all([t.invalidateQueries({queryKey:Ns.lists()}),t.invalidateQueries({queryKey:Ns.columns()})]),e("table-builder.create-table"),r&&Cr.capture("table_created",{db_type:r})}});return{createTable:async(a,l)=>he.promise(s(a,l),{loading:"Creating table...",success:c=>c||"Table created successfully",error:c=>c.detail||c.message||"Failed to create table"}),isCreatingTable:o}},mg=ro({columnName:St().min(1,"Column name is required"),columnType:St().min(1,"Column type is required"),defaultValue:St(),isPrimaryKey:nn(),isNullable:nn(),isUnique:nn(),isIdentity:nn(),isArray:nn()}),vg=ro({columnName:St().min(1,"Column name is required"),referencedTable:St().min(1,"Referenced table is required"),referencedColumn:St().min(1,"Referenced column is required"),onUpdate:Jo(["CASCADE","SET NULL","SET DEFAULT","RESTRICT","NO ACTION"]).default("NO ACTION"),onDelete:Jo(["CASCADE","SET NULL","SET DEFAULT","RESTRICT","NO ACTION"]).default("NO ACTION")}),yg=ro({tableName:St().min(1,"Table name is required"),fields:Qo(mg).min(1,"At least one column is required"),foreignKeys:jp(e=>{if(Array.isArray(e))return e.filter(t=>t==null?!1:typeof t=="object"?t.columnName&&t.referencedTable&&t.referencedColumn:!1)},Qo(vg).optional())}),bg={tableName:"",fields:[{columnName:"",columnType:"",defaultValue:"",isPrimaryKey:!1,isNullable:!0,isUnique:!1,isIdentity:!1,isArray:!1}],foreignKeys:void 0},xg=()=>{const{closeOverlay:e,isOverlayOpen:t}=ut(),{createTable:n,isCreatingTable:r}=gg(),s=Jf({mode:"onSubmit",defaultValues:bg,resolver:Zf(yg)}),o=async l=>{const c={...l,foreignKeys:l.foreignKeys?.filter(u=>u===null?!0:u.columnName&&u.referencedTable&&u.referencedColumn)};try{await n(c,{onSuccess:()=>{s.reset()},onError:u=>{console.error("Error creating table:",u)}})}catch(u){console.error("Error creating table:",u)}},i=l=>{if(l.tableName?.message){he.error(l.tableName.message);return}if(l.fields&&Array.isArray(l.fields))for(const c of l.fields){if(c?.columnName?.message){he.error(c.columnName.message);return}if(c?.columnType?.message){he.error(c.columnType.message);return}}if(l.foreignKeys&&Array.isArray(l.foreignKeys))for(const c of l.foreignKeys){if(c?.columnName?.message){he.error(c.columnName.message);return}if(c?.referencedTable?.message){he.error(c.referencedTable.message);return}if(c?.referencedColumn?.message){he.error(c.referencedColumn.message);return}}he.error("Please check the form for errors")},a=()=>{s.reset(),e("table-builder.create-table")};return(0,h.jsx)(jl,{title:"Create a new table",open:t("table-builder.create-table"),onOpenChange:l=>{l||a()},children:(0,h.jsx)(Yf,{...s,children:(0,h.jsxs)("form",{onSubmit:s.handleSubmit(o,i),className:"space-y-6",children:[(0,h.jsx)(pg,{}),(0,h.jsx)(ug,{}),(0,h.jsx)(Wf,{onCancel:a,isLoading:r})]})})})},Vl=Object.defineProperty,Sg=(e,t,n)=>t in e?Vl(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Ig=(e,t)=>{for(var n in t)Vl(e,n,{get:t[n],enumerable:!0})},wg=(e,t,n)=>Sg(e,typeof t!="symbol"?t+"":t,n),Kl={};Ig(Kl,{Graph:()=>Ve,alg:()=>io});var Eg=Object.defineProperty,Yl=(e,t)=>{for(var n in t)Eg(e,n,{get:t[n],enumerable:!0})},oo=class{constructor(e){this._isDirected=!0,this._isMultigraph=!1,this._isCompound=!1,this._nodes={},this._in={},this._preds={},this._out={},this._sucs={},this._edgeObjs={},this._edgeLabels={},this._nodeCount=0,this._edgeCount=0,this._defaultNodeLabelFn=()=>{},this._defaultEdgeLabelFn=()=>{},e&&(this._isDirected="directed"in e?e.directed:!0,this._isMultigraph="multigraph"in e?e.multigraph:!1,this._isCompound="compound"in e?e.compound:!1),this._isCompound&&(this._parent={},this._children={},this._children["\0"]={})}isDirected(){return this._isDirected}isMultigraph(){return this._isMultigraph}isCompound(){return this._isCompound}setGraph(e){return this._label=e,this}graph(){return this._label}setDefaultNodeLabel(e){return typeof e!="function"?this._defaultNodeLabelFn=()=>e:this._defaultNodeLabelFn=e,this}nodeCount(){return this._nodeCount}nodes(){return Object.keys(this._nodes)}sources(){return this.nodes().filter(e=>Object.keys(this._in[e]).length===0)}sinks(){return this.nodes().filter(e=>Object.keys(this._out[e]).length===0)}setNodes(e,t){return e.forEach(n=>{t!==void 0?this.setNode(n,t):this.setNode(n)}),this}setNode(e,t){return e in this._nodes?(arguments.length>1&&(this._nodes[e]=t),this):(this._nodes[e]=arguments.length>1?t:this._defaultNodeLabelFn(e),this._isCompound&&(this._parent[e]="\0",this._children[e]={},this._children["\0"][e]=!0),this._in[e]={},this._preds[e]={},this._out[e]={},this._sucs[e]={},++this._nodeCount,this)}node(e){return this._nodes[e]}hasNode(e){return e in this._nodes}removeNode(e){if(e in this._nodes){let t=n=>this.removeEdge(this._edgeObjs[n]);delete this._nodes[e],this._isCompound&&(this._removeFromParentsChildList(e),delete this._parent[e],this.children(e).forEach(n=>{this.setParent(n)}),delete this._children[e]),Object.keys(this._in[e]).forEach(t),delete this._in[e],delete this._preds[e],Object.keys(this._out[e]).forEach(t),delete this._out[e],delete this._sucs[e],--this._nodeCount}return this}setParent(e,t){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(t===void 0)t="\0";else{t+="";for(let n=t;n!==void 0;n=this.parent(n))if(n===e)throw new Error("Setting "+t+" as parent of "+e+" would create a cycle");this.setNode(t)}return this.setNode(e),this._removeFromParentsChildList(e),this._parent[e]=t,this._children[t][e]=!0,this}parent(e){if(this._isCompound){let t=this._parent[e];if(t!=="\0")return t}}children(e="\0"){if(this._isCompound){let t=this._children[e];if(t)return Object.keys(t)}else{if(e==="\0")return this.nodes();if(this.hasNode(e))return[]}return[]}predecessors(e){let t=this._preds[e];if(t)return Object.keys(t)}successors(e){let t=this._sucs[e];if(t)return Object.keys(t)}neighbors(e){let t=this.predecessors(e);if(t){let n=new Set(t),r=this.successors(e);if(r)for(let s of r)n.add(s);return Array.from(n.values())}}isLeaf(e){var t;let n;return this.isDirected()?n=this.successors(e):n=this.neighbors(e),((t=n?.length)!=null?t:0)===0}filterNodes(e){let t=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});t.setGraph(this.graph()),Object.entries(this._nodes).forEach(([s,o])=>{e(s)&&t.setNode(s,o)}),Object.values(this._edgeObjs).forEach(s=>{t.hasNode(s.v)&&t.hasNode(s.w)&&t.setEdge(s,this.edge(s))});let n={},r=s=>{let o=this.parent(s);return!o||t.hasNode(o)?(n[s]=o,o):o in n?n[o]:r(o)};return this._isCompound&&t.nodes().forEach(s=>t.setParent(s,r(s))),t}setDefaultEdgeLabel(e){return typeof e!="function"?this._defaultEdgeLabelFn=()=>e:this._defaultEdgeLabelFn=e,this}edgeCount(){return this._edgeCount}edges(){return Object.values(this._edgeObjs)}setPath(e,t){return e.reduce((n,r)=>(t!==void 0?this.setEdge(n,r,t):this.setEdge(n,r),r)),this}setEdge(e,t,n,r){let s,o,i,a,l=!1;typeof e=="object"&&e!==null&&"v"in e?(s=e.v,o=e.w,i=e.name,arguments.length===2&&(a=t,l=!0)):(s=e,o=t,i=r,arguments.length>2&&(a=n,l=!0)),s=""+s,o=""+o,i!==void 0&&(i=""+i);let c=an(this._isDirected,s,o,i);if(c in this._edgeLabels)return l&&(this._edgeLabels[c]=a),this;if(i!==void 0&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(s),this.setNode(o),this._edgeLabels[c]=l?a:this._defaultEdgeLabelFn(s,o,i);let u=Cg(this._isDirected,s,o,i);return s=u.v,o=u.w,Object.freeze(u),this._edgeObjs[c]=u,ni(this._preds[o],s),ni(this._sucs[s],o),this._in[o][c]=u,this._out[s][c]=u,this._edgeCount++,this}edge(e,t,n){let r=arguments.length===1?Xr(this._isDirected,e):an(this._isDirected,e,t,n);return this._edgeLabels[r]}edgeAsObj(e,t,n){let r=arguments.length===1?this.edge(e):this.edge(e,t,n);return typeof r!="object"||r===null?{label:r}:r}hasEdge(e,t,n){return(arguments.length===1?Xr(this._isDirected,e):an(this._isDirected,e,t,n))in this._edgeLabels}removeEdge(e,t,n){let r=arguments.length===1?Xr(this._isDirected,e):an(this._isDirected,e,t,n),s=this._edgeObjs[r];if(s){let o=s.v,i=s.w;delete this._edgeLabels[r],delete this._edgeObjs[r],ri(this._preds[i],o),ri(this._sucs[o],i),delete this._in[i][r],delete this._out[o][r],this._edgeCount--}return this}inEdges(e,t){return this.isDirected()?this.filterEdges(this._in[e],e,t):this.nodeEdges(e,t)}outEdges(e,t){return this.isDirected()?this.filterEdges(this._out[e],e,t):this.nodeEdges(e,t)}nodeEdges(e,t){if(e in this._nodes)return this.filterEdges({...this._in[e],...this._out[e]},e,t)}_removeFromParentsChildList(e){delete this._children[this._parent[e]][e]}filterEdges(e,t,n){if(!e)return;let r=Object.values(e);return n?r.filter(s=>s.v===t&&s.w===n||s.v===n&&s.w===t):r}};function ni(e,t){e[t]?e[t]++:e[t]=1}function ri(e,t){e[t]!==void 0&&!--e[t]&&delete e[t]}function an(e,t,n,r){let s=""+t,o=""+n;if(!e&&s>o){let i=s;s=o,o=i}return s+""+o+""+(r===void 0?"\0":r)}function Cg(e,t,n,r){let s=""+t,o=""+n;if(!e&&s>o){let a=s;s=o,o=a}let i={v:s,w:o};return r&&(i.name=r),i}function Xr(e,t){return an(e,t.v,t.w,t.name)}Yl({},{read:()=>Tg,write:()=>Ng});function Ng(e){let t={options:{directed:e.isDirected(),multigraph:e.isMultigraph(),compound:e.isCompound()},nodes:Rg(e),edges:_g(e)},n=e.graph();return n!==void 0&&(t.value=structuredClone(n)),t}function Rg(e){return e.nodes().map(t=>{let n=e.node(t),r=e.parent(t),s={v:t};return n!==void 0&&(s.value=n),r!==void 0&&(s.parent=r),s})}function _g(e){return e.edges().map(t=>{let n=e.edge(t),r={v:t.v,w:t.w};return t.name!==void 0&&(r.name=t.name),n!==void 0&&(r.value=n),r})}function Tg(e){let t=new oo(e.options);return e.value!==void 0&&t.setGraph(e.value),e.nodes.forEach(n=>{t.setNode(n.v,n.value),n.parent&&t.setParent(n.v,n.parent)}),e.edges.forEach(n=>{t.setEdge({v:n.v,w:n.w,name:n.name},n.value)}),t}var io={};Yl(io,{CycleException:()=>rr,bellmanFord:()=>Wl,components:()=>kg,dijkstra:()=>nr,dijkstraAll:()=>Pg,findCycles:()=>Lg,floydWarshall:()=>$g,isAcyclic:()=>zg,postorder:()=>Bg,preorder:()=>Gg,prim:()=>Ug,shortestPaths:()=>qg,tarjan:()=>Ql,topsort:()=>Jl});var Ag=()=>1;function Wl(e,t,n,r){return Mg(e,String(t),n||Ag,r||function(s){var o;return(o=e.outEdges(s))!=null?o:[]})}function Mg(e,t,n,r){let s={},o,i=0,a=e.nodes(),l=function(f){let d=s[f.v],p=s[f.w];if(!d||!p)return;let g=n(f);d.distance+g<p.distance&&(s[f.w]={distance:d.distance+g,predecessor:f.v},o=!0)},c=function(){a.forEach(function(f){r(f).forEach(function(d){let p=d.v===f?d.v:d.w,g=p===d.v?d.w:d.v;l({v:p,w:g})})})};a.forEach(function(f){let d=f===t?0:Number.POSITIVE_INFINITY;s[f]={distance:d,predecessor:""}});let u=a.length;for(let f=1;f<u&&(o=!1,i++,c(),!!o);f++);if(i===u-1&&(o=!1,c(),o))throw new Error("The graph contains a negative weight cycle");return s}function kg(e){let t={},n=[],r;function s(o){var i,a;o in t||(t[o]=!0,r.push(o),(i=e.successors(o))==null||i.forEach(s),(a=e.predecessors(o))==null||a.forEach(s))}return e.nodes().forEach(function(o){r=[],s(o),r.length&&n.push(r)}),n}var Xl=class{constructor(){this._arr=[],this._keyIndices={}}size(){return this._arr.length}keys(){return this._arr.map(e=>e.key)}has(e){return e in this._keyIndices}priority(e){let t=this._keyIndices[e];if(t!==void 0)return this._arr[t].priority}min(){if(this.size()===0)throw new Error("Queue underflow");return this._arr[0].key}add(e,t){let n=this._keyIndices,r=String(e);if(!(r in n)){let s=this._arr,o=s.length;return n[r]=o,s.push({key:r,priority:t}),this._decrease(o),!0}return!1}removeMin(){if(this.size()===0)throw new Error("Queue underflow");this._swap(0,this._arr.length-1);let e=this._arr.pop();return delete this._keyIndices[e.key],this._heapify(0),e.key}decrease(e,t){let n=this._keyIndices[e];if(n===void 0)throw new Error(`Key not found: ${e}`);let r=this._arr[n].priority;if(t>r)throw new Error(`New priority is greater than current priority. Key: ${e} Old: ${r} New: ${t}`);this._arr[n].priority=t,this._decrease(n)}_heapify(e){let t=this._arr,n=2*e,r=n+1,s=e;n<t.length&&(s=t[n].priority<t[s].priority?n:s,r<t.length&&(s=t[r].priority<t[s].priority?r:s),s!==e&&(this._swap(e,s),this._heapify(s)))}_decrease(e){let t=this._arr,n=t[e].priority,r;for(;e!==0&&(r=e>>1,!(t[r].priority<n));)this._swap(e,r),e=r}_swap(e,t){let n=this._arr,r=this._keyIndices,s=n[e],o=n[t];n[e]=o,n[t]=s,r[o.key]=e,r[s.key]=t}},Og=()=>1;function nr(e,t,n,r){let s=function(o){var i;return(i=e.outEdges(o))!=null?i:[]};return jg(e,String(t),n||Og,r||s)}function jg(e,t,n,r){let s={},o=new Xl,i,a,l=function(c){let u=c.v!==i?c.v:c.w,f=s[u];if(!f)return;let d=n(c),p=a.distance+d;if(d<0)throw new Error("dijkstra does not allow negative edge weights. Bad edge: "+c+" Weight: "+d);p<f.distance&&(f.distance=p,f.predecessor=i,o.decrease(u,p))};for(e.nodes().forEach(function(c){let u=c===t?0:Number.POSITIVE_INFINITY;s[c]={distance:u,predecessor:""},o.add(c,u)});o.size()>0;){i=o.removeMin();let c=s[i];if(!c||c.distance===Number.POSITIVE_INFINITY)break;a=c,r(i).forEach(l)}return s}function Pg(e,t,n){return e.nodes().reduce(function(r,s){return r[s]=nr(e,s,t,n),r},{})}function Ql(e){let t=0,n=[],r={},s=[];function o(i){var a;let l=r[i]={onStack:!0,lowlink:t,index:t++};if(n.push(i),(a=e.successors(i))==null||a.forEach(function(c){if(c in r){let u=r[c];u!=null&&u.onStack&&(l.lowlink=Math.min(l.lowlink,u.index))}else{o(c);let u=r[c];u&&(l.lowlink=Math.min(l.lowlink,u.lowlink))}}),l.lowlink===l.index){let c=[],u;do{u=n.pop();let f=r[u];f&&(f.onStack=!1),c.push(u)}while(i!==u);s.push(c)}}return e.nodes().forEach(function(i){i in r||o(i)}),s}function Lg(e){return Ql(e).filter(function(t){var n;let r=t[0];return r?t.length>1||t.length===1&&((n=e.outEdges(r,r))!=null?n:[]).length>0:!1})}var Dg=()=>1;function $g(e,t,n){return Fg(e,t||Dg,n||function(r){var s;return(s=e.outEdges(r))!=null?s:[]})}function Fg(e,t,n){let r={},s=e.nodes();return s.forEach(function(o){let i={};r[o]=i,i[o]={distance:0,predecessor:""},s.forEach(function(a){o!==a&&(i[a]={distance:Number.POSITIVE_INFINITY,predecessor:""})}),n(o).forEach(function(a){let l=a.v===o?a.w:a.v,c=t(a);i[l]={distance:c,predecessor:o}})}),s.forEach(function(o){let i=r[o];i&&s.forEach(function(a){let l=r[a];l&&s.forEach(function(c){let u=l[o],f=i[c],d=l[c];if(u&&f&&d){let p=u.distance+f.distance;p<d.distance&&(d.distance=p,d.predecessor=f.predecessor)}})})}),r}var rr=class extends Error{constructor(e){super(e),this.name="CycleException"}};function Jl(e){let t={},n={},r=[];function s(o){var i;if(o in n)throw new rr;o in t||(n[o]=!0,t[o]=!0,(i=e.predecessors(o))==null||i.forEach(s),delete n[o],r.push(o))}if(e.sinks().forEach(s),Object.keys(t).length!==e.nodeCount())throw new rr;return r}function zg(e){try{Jl(e)}catch(t){if(t instanceof rr)return!1;throw t}return!0}function Hg(e,t,n,r,s){Array.isArray(t)||(t=[t]);let o=(a=>{var l;return(l=e.isDirected()?e.successors(a):e.neighbors(a))!=null?l:[]}),i={};return t.forEach(function(a){if(!e.hasNode(a))throw new Error("Graph does not have node: "+a);s=Zl(e,a,n==="post",i,o,r,s)}),s}function Zl(e,t,n,r,s,o,i){return t in r||(r[t]=!0,n||(i=o(i,t)),s(t).forEach(function(a){i=Zl(e,a,n,r,s,o,i)}),n&&(i=o(i,t))),i}function ec(e,t,n){return Hg(e,t,n,function(r,s){return r.push(s),r},[])}function Bg(e,t){return ec(e,t,"post")}function Gg(e,t){return ec(e,t,"pre")}function Ug(e,t){var n;let r=new oo,s={},o=new Xl,i;function a(u){let f=u.v===i?u.w:u.v,d=o.priority(f);if(d!==void 0){let p=t(u);p<d&&(s[f]=i,o.decrease(f,p))}}if(e.nodeCount()===0)return r;e.nodes().forEach(function(u){o.add(u,Number.POSITIVE_INFINITY),r.setNode(u)});let l=e.nodes()[0];l!==void 0&&o.decrease(l,0);let c=!1;for(;o.size()>0;){if(i=o.removeMin(),i in s)r.setEdge(i,s[i]);else{if(c)throw new Error("Input graph is not connected: "+e);c=!0}(n=e.nodeEdges(i))==null||n.forEach(a)}return r}function qg(e,t,n,r){return Vg(e,t,n,r??(s=>{var o;return(o=e.outEdges(s))!=null?o:[]}))}function Vg(e,t,n,r){if(n===void 0)return nr(e,t,n,r);let s=!1,o=e.nodes();for(let i=0;i<o.length;i++){let a=o[i];if(a===void 0)continue;let l=r(a);for(let c=0;c<l.length;c++){let u=l[c];if(!u)continue;let f=u.v===a?u.v:u.w;n({v:f,w:f===u.v?u.w:u.v})<0&&(s=!0)}if(s)return Wl(e,t,n,r)}return nr(e,t,n,r)}var Ve=oo;function Jt(e,t,n,r){let s=r;for(;e.hasNode(s);)s=ao(r);return n.dummy=t,e.setNode(s,n),s}function Kg(e){let t=new Ve().setGraph(e.graph());return e.nodes().forEach(n=>t.setNode(n,e.node(n))),e.edges().forEach(n=>{let r=t.edge(n.v,n.w)||{weight:0,minlen:1},s=e.edge(n);t.setEdge(n.v,n.w,{weight:r.weight+s.weight,minlen:Math.max(r.minlen,s.minlen)})}),t}function tc(e){let t=new Ve({multigraph:e.isMultigraph()}).setGraph(e.graph());return e.nodes().forEach(n=>{e.children(n).length||t.setNode(n,e.node(n))}),e.edges().forEach(n=>{t.setEdge(n,e.edge(n))}),t}function si(e,t){let n=e.x,r=e.y,s=t.x-n,o=t.y-r,i=e.width/2,a=e.height/2;if(!s&&!o)throw new Error("Not possible to find intersection inside of the rectangle");let l,c;return Math.abs(o)*i>Math.abs(s)*a?(o<0&&(a=-a),l=a*s/o,c=a):(s<0&&(i=-i),l=i,c=i*o/s),{x:n+l,y:r+c}}function Nr(e){let t=yn(rc(e)+1).map(()=>[]);return e.nodes().forEach(n=>{let r=e.node(n),s=r.rank;s!==void 0&&(t[s]||(t[s]=[]),t[s][r.order]=n)}),t}function Yg(e){let t=e.nodes().map(r=>{let s=e.node(r).rank;return s===void 0?Number.MAX_VALUE:s}),n=Ge(Math.min,t);e.nodes().forEach(r=>{let s=e.node(r);Object.hasOwn(s,"rank")&&(s.rank-=n)})}function Wg(e){let t=e.nodes().map(i=>e.node(i).rank).filter(i=>i!==void 0),n=Ge(Math.min,t),r=[];e.nodes().forEach(i=>{let a=e.node(i).rank-n;r[a]||(r[a]=[]),r[a].push(i)});let s=0,o=e.graph().nodeRankFactor;Array.from(r).forEach((i,a)=>{i===void 0&&a%o!==0?--s:i!==void 0&&s&&i.forEach(l=>e.node(l).rank+=s)})}function oi(e,t,n,r){let s={width:0,height:0};return arguments.length>=4&&(s.rank=n,s.order=r),Jt(e,"border",s,t)}function Xg(e,t=nc){let n=[];for(let r=0;r<e.length;r+=t){let s=e.slice(r,r+t);n.push(s)}return n}var nc=65535;function Ge(e,t){return t.length>nc?e(...Xg(t).map(n=>e(...n))):e(...t)}function rc(e){let t=e.nodes().map(n=>{let r=e.node(n).rank;return r===void 0?Number.MIN_VALUE:r});return Ge(Math.max,t)}function Qg(e,t){let n={lhs:[],rhs:[]};return e.forEach(r=>{t(r)?n.lhs.push(r):n.rhs.push(r)}),n}function Jg(e,t){return t()}var Zg=0;function ao(e){return e+(""+ ++Zg)}function yn(e,t,n=1){t??(t=e,e=0);let r=o=>o<t;n<0&&(r=o=>t<o);let s=[];for(let o=e;r(o);o+=n)s.push(o);return s}function sr(e,t){let n={};for(let r of t)e[r]!==void 0&&(n[r]=e[r]);return n}function Rr(e,t){let n;return typeof t=="string"?n=r=>r[t]:n=t,Object.entries(e).reduce((r,[s,o])=>(r[s]=n(o,s),r),{})}function em(e,t){return e.reduce((n,r,s)=>(n[r]=t[s],n),{})}var _r="\0";function sc(e,t,n){var r,s,o,i,a,l;if(!(e&&t&&n&&t.dummy==="edge"&&n.dummy==="edge"&&t.edgeObj&&n.edgeObj&&e[t.edgeObj.v]&&e[n.edgeObj.v]&&e[t.edgeObj.w]&&e[n.edgeObj.w]))return 0;let c=!0;t.edgeObj.w===n.edgeObj.w&&(c=!1);let u=c?(s=(r=e[t.edgeObj.v])==null?void 0:r.rank)!=null?s:NaN:(i=(o=e[t.edgeObj.w])==null?void 0:o.rank)!=null?i:NaN,f=Object.entries(e).find(y=>{var x,v;return((x=y[1].edgeObj)==null?void 0:x.v)===t.edgeObj.v&&((v=y[1].edgeObj)==null?void 0:v.w)===t.edgeObj.w&&y[1].rank===u}),d=Object.entries(e).find(y=>{var x,v;return((x=y[1].edgeObj)==null?void 0:x.v)===n.edgeObj.v&&((v=y[1].edgeObj)==null?void 0:v.w)===n.edgeObj.w&&y[1].rank===u});if(!f||!d)return 0;let p=(a=f[1].order)!=null?a:NaN,g=(l=d[1].order)!=null?l:NaN;return isNaN(p-g)?0:p-g}var tm=class{constructor(){wg(this,"_sentinel");let e={};e._next=e._prev=e,this._sentinel=e}dequeue(){let e=this._sentinel,t=e._prev;if(t!==e)return ii(t),t}enqueue(e){let t=this._sentinel;e._prev&&e._next&&ii(e),e._next=t._next,t._next._prev=e,t._next=e,e._prev=t}toString(){let e=[],t=this._sentinel,n=t._prev;for(;n!==t;)e.push(JSON.stringify(n,nm)),n=n._prev;return"["+e.join(", ")+"]"}};function ii(e){e._prev._next=e._next,e._next._prev=e._prev,delete e._next,delete e._prev}function nm(e,t){if(e!=="_next"&&e!=="_prev")return t}var rm=tm,sm=()=>1;function om(e,t){if(e.nodeCount()<=1)return[];let n=am(e,t||sm);return im(n.graph,n.buckets,n.zeroIdx).flatMap(r=>e.outEdges(r.v,r.w)||[])}function im(e,t,n){var r;let s=[],o=t[t.length-1],i=t[0],a;for(;e.nodeCount();){for(;a=i.dequeue();)Qr(e,t,n,a);for(;a=o.dequeue();)Qr(e,t,n,a);if(e.nodeCount()){for(let l=t.length-2;l>0;--l)if(a=(r=t[l])==null?void 0:r.dequeue(),a){s=s.concat(Qr(e,t,n,a,!0)||[]);break}}}return s}function Qr(e,t,n,r,s){let o=[],i=s?o:void 0;return(e.inEdges(r.v)||[]).forEach(a=>{let l=e.edge(a),c=e.node(a.v);s&&o.push({v:a.v,w:a.w}),c.out-=l,_s(t,n,c)}),(e.outEdges(r.v)||[]).forEach(a=>{let l=e.edge(a),c=a.w,u=e.node(c);u.in-=l,_s(t,n,u)}),e.removeNode(r.v),i}function am(e,t){let n=new Ve,r=0,s=0;e.nodes().forEach(a=>{n.setNode(a,{v:a,in:0,out:0})}),e.edges().forEach(a=>{let l=n.edge(a.v,a.w)||0,c=t(a),u=l+c;n.setEdge(a.v,a.w,u);let f=n.node(a.v),d=n.node(a.w);s=Math.max(s,f.out+=c),r=Math.max(r,d.in+=c)});let o=lm(s+r+3).map(()=>new rm),i=r+1;return n.nodes().forEach(a=>{_s(o,i,n.node(a))}),{graph:n,buckets:o,zeroIdx:i}}function _s(e,t,n){var r,s,o;n.out?n.in?(o=e[n.out-n.in+t])==null||o.enqueue(n):(s=e[e.length-1])==null||s.enqueue(n):(r=e[0])==null||r.enqueue(n)}function lm(e){let t=[];for(let n=0;n<e;n++)t.push(n);return t}function cm(e,t){(e.graph().acyclicer==="greedy"?om(e,n(e)):um(e,t??null)).forEach(r=>{let s=e.edge(r);e.removeEdge(r),s.forwardName=r.name,s.reversed=!0,e.setEdge(r.w,r.v,s,ao("rev"))});function n(r){return s=>r.edge(s).weight}}function um(e,t){let n=[],r={},s={};function o(l){Object.hasOwn(s,l)||(s[l]=!0,r[l]=!0,e.outEdges(l).forEach(c=>{Object.hasOwn(r,c.w)?n.push(c):o(c.w)}),delete r[l])}function i(l){var c;Object.hasOwn(s,l)||(s[l]=!0,r[l]=!0,(c=e.outEdges(l))==null||c.forEach(u=>{var f,d;Object.hasOwn(r,u.w)||((f=t.node(l))==null?void 0:f.rank)>((d=t.node(u.w))==null?void 0:d.rank)&&hm(e,u.w,u)?n.push(u):i(u.w)}),delete r[l])}let a=o;return t&&typeof t.node=="function"&&(a=i),e.sources().forEach(a),e.nodes().forEach(a),n}function dm(e){e.edges().forEach(t=>{let n=e.edge(t);if(n.reversed){e.removeEdge(t);let r=n.forwardName;delete n.reversed,delete n.forwardName,e.setEdge(t.w,t.v,n,r)}})}function hm(e,t,n){let r=new Set;function s(o){var i;if(e.sources().includes(o))return!0;r.add(o);for(let a of(i=e.inEdges(o))!=null?i:[])if(!(a.v===n.v&&a.w===n.w)&&!r.has(a.v)&&s(a.v))return!0;return!1}return s(t)}function fm(e){e.graph().dummyChains=[],e.edges().forEach(t=>pm(e,t))}function pm(e,t){let n=t.v,r=e.node(n).rank,s=t.w,o=e.node(s).rank,i=t.name,a=e.edge(t),l=a.labelRank;if(o===r+1)return;e.removeEdge(t);let c,u,f;for(f=0,++r;r<o;++f,++r)a.points=[],u={width:0,height:0,edgeLabel:a,edgeObj:t,rank:r},c=Jt(e,"edge",u,"_d"),r===l&&(u.width=a.width,u.height=a.height,u.dummy="edge-label",u.labelpos=a.labelpos),e.setEdge(n,c,{weight:a.weight},i),f===0&&e.graph().dummyChains.push(c),n=c;e.setEdge(n,s,{weight:a.weight},i)}function gm(e){e.graph().dummyChains.forEach(t=>{let n=e.node(t),r=n.edgeLabel,s;for(e.setEdge(n.edgeObj,r);n.dummy;)s=e.successors(t)[0],e.removeNode(t),r.points.push({x:n.x,y:n.y}),n.dummy==="edge-label"&&(r.x=n.x,r.y=n.y,r.width=n.width,r.height=n.height),t=s,n=e.node(t)})}function lo(e){let t={};function n(r){let s=e.node(r);if(Object.hasOwn(t,r))return s.rank;t[r]=!0;let o=e.outEdges(r),i=o?o.map(l=>l==null?Number.POSITIVE_INFINITY:n(l.w)-e.edge(l).minlen):[],a=Ge(Math.min,i);return a===Number.POSITIVE_INFINITY&&(a=0),s.rank=a}e.sources().forEach(n)}function Gt(e,t){return e.node(t.w).rank-e.node(t.v).rank-e.edge(t).minlen}var oc=mm;function mm(e){let t=new Ve({directed:!1}),n=e.nodes();if(n.length===0)throw new Error("Graph must have at least one node");let r=n[0],s=e.nodeCount();t.setNode(r,{});let o,i;for(;vm(t,e)<s&&(o=ym(t,e),!!o);)i=t.hasNode(o.v)?Gt(e,o):-Gt(e,o),bm(t,e,i);return t}function vm(e,t){function n(r){let s=t.nodeEdges(r);s&&s.forEach(o=>{let i=o.v,a=r===i?o.w:i;!e.hasNode(a)&&!Gt(t,o)&&(e.setNode(a,{}),e.setEdge(r,a,{}),n(a))})}return e.nodes().forEach(n),e.nodeCount()}function ym(e,t){return t.edges().reduce((n,r)=>{let s=Number.POSITIVE_INFINITY;return e.hasNode(r.v)!==e.hasNode(r.w)&&(s=Gt(t,r)),s<n[0]?[s,r]:n},[Number.POSITIVE_INFINITY,null])[1]}function bm(e,t,n){e.nodes().forEach(r=>t.node(r).rank+=n)}var{preorder:xm,postorder:Sm}=io,Im=kt;kt.initLowLimValues=uo;kt.initCutValues=co;kt.calcCutValue=ic;kt.leaveEdge=lc;kt.enterEdge=cc;kt.exchangeEdges=uc;function kt(e){e=Kg(e),lo(e);let t=oc(e);uo(t),co(t,e);let n,r;for(;n=lc(t);)r=cc(t,e,n),uc(t,e,n,r)}function co(e,t){let n=Sm(e,e.nodes());n=n.slice(0,n.length-1),n.forEach(r=>wm(e,t,r))}function wm(e,t,n){let r=e.node(n).parent,s=e.edge(n,r);s.cutvalue=ic(e,t,n)}function ic(e,t,n){let r=e.node(n).parent,s=!0,o=t.edge(n,r),i=0;o||(s=!1,o=t.edge(r,n)),i=o.weight;let a=t.nodeEdges(n);return a&&a.forEach(l=>{let c=l.v===n,u=c?l.w:l.v;if(u!==r){let f=c===s,d=t.edge(l).weight;if(i+=f?d:-d,Cm(e,n,u)){let p=e.edge(n,u).cutvalue;i+=f?-p:p}}}),i}function uo(e,t){arguments.length<2&&(t=e.nodes()[0]),ac(e,{},1,t)}function ac(e,t,n,r,s){let o=n,i=e.node(r);t[r]=!0;let a=e.neighbors(r);return a&&a.forEach(l=>{Object.hasOwn(t,l)||(n=ac(e,t,n,l,r))}),i.low=o,i.lim=n++,s?i.parent=s:delete i.parent,n}function lc(e){return e.edges().find(t=>e.edge(t).cutvalue<0)}function cc(e,t,n){let r=n.v,s=n.w;t.hasEdge(r,s)||(r=n.w,s=n.v);let o=e.node(r),i=e.node(s),a=o,l=!1;return o.lim>i.lim&&(a=i,l=!0),t.edges().filter(c=>l===ai(e,e.node(c.v),a)&&l!==ai(e,e.node(c.w),a)).reduce((c,u)=>Gt(t,u)<Gt(t,c)?u:c)}function uc(e,t,n,r){let s=n.v,o=n.w;e.removeEdge(s,o),e.setEdge(r.v,r.w,{}),uo(e),co(e,t),Em(e,t)}function Em(e,t){let n=e.nodes().find(s=>!e.node(s).parent);if(!n)return;let r=xm(e,[n]);r=r.slice(1),r.forEach(s=>{let o=e.node(s).parent,i=t.edge(s,o),a=!1;i||(i=t.edge(o,s),a=!0),t.node(s).rank=t.node(o).rank+(a?i.minlen:-i.minlen)})}function Cm(e,t,n){return e.hasEdge(t,n)}function ai(e,t,n){return n.low<=t.lim&&t.lim<=n.lim}var Nm=Rm;function Rm(e){let t=e.graph().ranker;if(typeof t=="function")return t(e);switch(t){case"network-simplex":li(e);break;case"tight-tree":Tm(e);break;case"longest-path":_m(e);break;case"none":break;default:li(e)}}var _m=lo;function Tm(e){lo(e),oc(e)}function li(e){Im(e)}var Am=Mm;function Mm(e){let t=Om(e),n=e.graph();Array.isArray(n.dummyChains)&&n.dummyChains.forEach(r=>{let s=e.node(r),o=s.edgeObj,i=km(e,t,o.v,o.w),a=i.path,l=i.lca,c=0,u=a[c],f=!0;for(;r!==o.w;){if(s=e.node(r),f){for(;(u=a[c])!==l&&e.node(u).maxRank<s.rank;)c++;u===l&&(f=!1)}if(!f){for(;c<a.length-1&&e.node(a[c+1]).minRank<=s.rank;)c++;u=a[c]}u!==void 0&&e.setParent(r,u),r=e.successors(r)[0]}})}function km(e,t,n,r){let s=[],o=[],i=Math.min(t[n].low,t[r].low),a=Math.max(t[n].lim,t[r].lim),l;l=n;do l=e.parent(l),s.push(l);while(l&&(t[l].low>i||a>t[l].lim));let c=l,u=r;for(;(u=e.parent(u))!==c;)o.push(u);return{path:s.concat(o.reverse()),lca:c}}function Om(e){let t={},n=0;function r(s){let o=n;e.children(s).forEach(r),t[s]={low:o,lim:n++}}return e.children(_r).forEach(r),t}function jm(e){let t=Jt(e,"root",{},"_root"),n=Pm(e),r=Object.values(n),s=Ge(Math.max,r)-1,o=2*s+1;e.graph().nestingRoot=t,e.edges().forEach(a=>e.edge(a).minlen*=o);let i=Lm(e)+1;e.children(_r).forEach(a=>{dc(e,t,o,i,s,n,a)}),e.graph().nodeRankFactor=o}function dc(e,t,n,r,s,o,i){var a;let l=e.children(i);if(!l.length){i!==t&&e.setEdge(t,i,{weight:0,minlen:n});return}let c=oi(e,"_bt"),u=oi(e,"_bb"),f=e.node(i);e.setParent(c,i),f.borderTop=c,e.setParent(u,i),f.borderBottom=u,l.forEach(d=>{var p;dc(e,t,n,r,s,o,d);let g=e.node(d),y=g.borderTop?g.borderTop:d,x=g.borderBottom?g.borderBottom:d,v=g.borderTop?r:2*r,I=y!==x?1:s-((p=o[i])!=null?p:0)+1;e.setEdge(c,y,{weight:v,minlen:I,nestingEdge:!0}),e.setEdge(x,u,{weight:v,minlen:I,nestingEdge:!0})}),e.parent(i)||e.setEdge(t,c,{weight:0,minlen:s+((a=o[i])!=null?a:0)})}function Pm(e){let t={};function n(r,s){let o=e.children(r);o&&o.length&&o.forEach(i=>n(i,s+1)),t[r]=s}return e.children(_r).forEach(r=>n(r,1)),t}function Lm(e){return e.edges().reduce((t,n)=>t+e.edge(n).weight,0)}function Dm(e){let t=e.graph();e.removeNode(t.nestingRoot),delete t.nestingRoot,e.edges().forEach(n=>{e.edge(n).nestingEdge&&e.removeEdge(n)})}var $m=Fm;function Fm(e){function t(n){let r=e.children(n),s=e.node(n);if(r.length&&r.forEach(t),s&&Object.hasOwn(s,"minRank")){s.borderLeft=[],s.borderRight=[];for(let o=s.minRank,i=s.maxRank+1;o<i;++o)ci(e,"borderLeft","_bl",n,s,o),ci(e,"borderRight","_br",n,s,o)}}e.children(_r).forEach(t)}function ci(e,t,n,r,s,o){let i={width:0,height:0,rank:o,borderType:t},a=s[t][o-1],l=Jt(e,"border",i,n);s[t][o]=l,e.setParent(l,r),a&&e.setEdge(a,l,{weight:1})}function zm(e){var t;let n=(t=e.graph().rankdir)==null?void 0:t.toLowerCase();(n==="lr"||n==="rl")&&hc(e)}function Hm(e){var t;let n=(t=e.graph().rankdir)==null?void 0:t.toLowerCase();(n==="bt"||n==="rl")&&Bm(e),(n==="lr"||n==="rl")&&(Gm(e),hc(e))}function hc(e){e.nodes().forEach(t=>ui(e.node(t))),e.edges().forEach(t=>ui(e.edge(t)))}function ui(e){let t=e.width;e.width=e.height,e.height=t}function Bm(e){e.nodes().forEach(t=>Jr(e.node(t))),e.edges().forEach(t=>{var n;let r=e.edge(t);(n=r.points)==null||n.forEach(Jr),Object.hasOwn(r,"y")&&Jr(r)})}function Jr(e){e.y=-e.y}function Gm(e){e.nodes().forEach(t=>Zr(e.node(t))),e.edges().forEach(t=>{var n;let r=e.edge(t);(n=r.points)==null||n.forEach(Zr),Object.hasOwn(r,"x")&&Zr(r)})}function Zr(e){let t=e.x;e.x=e.y,e.y=t}function Um(e,t=null){let n={},r=e.nodes().filter(l=>!e.children(l).length),s=r.map(l=>e.node(l).rank),o=yn(Ge(Math.max,s)+1).map(()=>[]);function i(l){if(n[l])return;n[l]=!0;let c=e.node(l);o[c.rank].push(l);let u=e.successors(l);u&&[...u].sort((f,d)=>a(f,d)).forEach(i)}r.sort((l,c)=>e.node(l).rank-e.node(c).rank).forEach(i);function a(l,c){return sc(t,e.node(l),e.node(c))}return o}function qm(e,t){let n=0;for(let r=1;r<t.length;++r)n+=Vm(e,t[r-1],t[r]);return n}function Vm(e,t,n){let r=em(n,n.map((c,u)=>u)),s=t.flatMap(c=>{let u=e.outEdges(c);return u?u.map(f=>({pos:r[f.w],weight:e.edge(f).weight})).sort((f,d)=>f.pos-d.pos):[]}),o=1;for(;o<n.length;)o<<=1;let i=2*o-1;o-=1;let a=new Array(i).fill(0),l=0;return s.forEach(c=>{let u=c.pos+o;a[u]+=c.weight;let f=0;for(;u>0;)u%2&&(f+=a[u+1]),u=u-1>>1,a[u]+=c.weight;l+=c.weight*f}),l}function Km(e,t=[]){return t.map(n=>{let r=e.inEdges(n);if(!r||!r.length)return{v:n};{let s=r.reduce((o,i)=>{let a=e.edge(i),l=e.node(i.v);return{sum:o.sum+a.weight*l.order,weight:o.weight+a.weight}},{sum:0,weight:0});return{v:n,barycenter:s.sum/s.weight,weight:s.weight}}})}function Ym(e,t){let n={};return e.forEach((r,s)=>{let o={indegree:0,in:[],out:[],vs:[r.v],i:s};r.barycenter!==void 0&&(o.barycenter=r.barycenter,o.weight=r.weight),n[r.v]=o}),t.edges().forEach(r=>{let s=n[r.v],o=n[r.w];s!==void 0&&o!==void 0&&(o.indegree++,s.out.push(o))}),Wm(Object.values(n).filter(r=>!r.indegree))}function Wm(e){let t=[];function n(s){return o=>{o.merged||(o.barycenter===void 0||s.barycenter===void 0||o.barycenter>=s.barycenter)&&Xm(s,o)}}function r(s){return o=>{o.in.push(s),--o.indegree===0&&e.push(o)}}for(;e.length;){let s=e.pop();t.push(s),s.in.reverse().forEach(n(s)),s.out.forEach(r(s))}return t.filter(s=>!s.merged).map(s=>sr(s,["vs","i","barycenter","weight"]))}function Xm(e,t){let n=0,r=0;e.weight&&(n+=e.barycenter*e.weight,r+=e.weight),t.weight&&(n+=t.barycenter*t.weight,r+=t.weight),e.vs=t.vs.concat(e.vs),e.barycenter=n/r,e.weight=r,e.i=Math.min(t.i,e.i),t.merged=!0}function Qm(e,t,n,r,s){let o={},i=null,a=null,l=s;typeof t=="boolean"?(l=t,o={}):t&&(o=t,i=n??null,a=r??null);let c=Qg(e,v=>Object.hasOwn(v,"barycenter")),u=c.lhs,f=c.rhs.sort((v,I)=>I.i-v.i),d=[],p=0,g=0,y=0;u.sort(Jm(a,i,!!l));for(let[v,I]of Object.entries(o)){let m=u.findIndex(b=>b.vs[0]===v);u.splice(m+1,0,I)}y=di(d,f,y),u.forEach(v=>{y+=v.vs.length,d.push(v.vs),p+=v.barycenter*v.weight,g+=v.weight,y=di(d,f,y)});let x={vs:d.flat(1)};return g&&(x.barycenter=p/g,x.weight=g),x}function di(e,t,n){let r;for(;t.length&&(r=t[t.length-1]).i<=n;)t.pop(),e.push(r.vs),n++;return n}function Jm(e,t,n){return(r,s)=>{if(r.barycenter<s.barycenter)return-1;if(r.barycenter>s.barycenter)return 1;if(e&&(typeof r.vs[0]=="string"||typeof s.vs[0]=="string")){let o=sc(t,e.node(r.vs[0]),e.node(s.vs[0]));if(o!==0)return o}return n?s.i-r.i:r.i-s.i}}function fc(e,t,n,r,s){var o,i,a,l,c,u,f,d,p,g,y;let x=null,v=s;typeof r=="boolean"?(v=r,x=null):r!==void 0&&(x=r);let I=e.children(t),m=e.node(t),b=m?m.borderLeft:void 0,E=m?m.borderRight:void 0,N={};b&&(I=I.filter(M=>M!==b&&M!==E));let R=Km(e,I);R.forEach(M=>{if(e.children(M.v).length){let{result:O}=fc(e,M.v,n,x,v);N[M.v]=O,Object.hasOwn(O,"barycenter")&&e0(M,O)}});let A=Ym(R,n);Zm(A,N);let k={},L=!1;for(let M=0;M<A.length;M++)for(let O=M+1;O<A.length;O++)if(!(!A[M]||!A[O]||!((o=A[M])!=null&&o.barycenter)||!((i=A[O])!=null&&i.barycenter))&&((a=A[M])==null?void 0:a.barycenter)===A[O].barycenter){let S=(c=(l=A[M])==null?void 0:l.vs[0])!=null?c:"",w=(f=(u=A[O])==null?void 0:u.vs[0])!=null?f:"",T=e.node(S),j=e.node(w);if(T.dummy==="edge"&&j.dummy==="edge"&&((d=T.edgeObj)==null?void 0:d.v)===((p=j.edgeObj)==null?void 0:p.v)&&((g=T.edgeObj)==null?void 0:g.w)===((y=j.edgeObj)==null?void 0:y.w))if(T.edgeLabel.reversed){k[w]=A[M],A.splice(M,1),M--;break}else k[S]=A[O],A.splice(O,1),O--;else L=!0}let _=Qm(A,k,x,e,v);if(b&&E){_.vs=[b,_.vs,E].flat(1);let M=e.predecessors(b);if(M&&M.length){let O=e.node(M[0]),S=e.predecessors(E),w=e.node(S[0]);Object.hasOwn(_,"barycenter")||(_.barycenter=0,_.weight=0),_.barycenter=(_.barycenter*_.weight+O.order+w.order)/(_.weight+2),_.weight+=2}}return Object.defineProperty(_,"result",{value:_,enumerable:!1,configurable:!0,writable:!0}),Object.defineProperty(_,"usedBias",{value:L,enumerable:!1,configurable:!0,writable:!0}),_}function Zm(e,t){e.forEach(n=>{n.vs=n.vs.flatMap(r=>t[r]?t[r].vs:r)})}function e0(e,t){e.barycenter!==void 0?(e.barycenter=(e.barycenter*e.weight+t.barycenter*t.weight)/(e.weight+t.weight),e.weight+=t.weight):(e.barycenter=t.barycenter,e.weight=t.weight)}function t0(e,t,n,r){r||(r=e.nodes());let s=n0(e),o=new Ve({compound:!0}).setGraph({root:s}).setDefaultNodeLabel(i=>e.node(i));return r.forEach(i=>{let a=e.node(i),l=e.parent(i);if(a.rank===t||a.minRank<=t&&t<=a.maxRank){o.setNode(i),o.setParent(i,l||s);let c=e[n](i);c&&c.forEach(u=>{let f=u.v===i?u.w:u.v,d=o.edge(f,i),p=d!==void 0?d.weight:0;o.setEdge(f,i,{weight:e.edge(u).weight+p})}),Object.hasOwn(a,"minRank")&&o.setNode(i,{borderLeft:a.borderLeft[t],borderRight:a.borderRight[t]})}}),o}function n0(e){let t;for(;e.hasNode(t=ao("_root")););return t}function r0(e,t,n){let r={},s;n.forEach(o=>{let i=e.parent(o),a,l;for(;i;){if(a=e.parent(i),a?(l=r[a],r[a]=i):(l=s,s=i),l&&l!==i){t.setEdge(l,i);return}i=a}})}function pc(e,t={},n=null){if(typeof t.customOrder=="function"){t.customOrder(e,pc);return}let r=rc(e),s=hi(e,yn(1,r+1),"inEdges"),o=hi(e,yn(r-1,-1,-1),"outEdges"),i=Um(e,n);if(fi(e,i),t.disableOptimalOrderHeuristic)return;let a=Number.POSITIVE_INFINITY,l,c=t.constraints||[];for(let u=0,f=0;f<4;++u,++f){s0(u%2?s:o,u%4>=2,c,n),i=Nr(e);let d=qm(e,i);d<a?(f=0,l=Object.assign({},i),a=d):d===a&&(l=structuredClone(i))}fi(e,l)}function hi(e,t,n){let r=new Map,s=(o,i)=>{r.has(o)||r.set(o,[]),r.get(o).push(i)};for(let o of e.nodes()){let i=e.node(o);if(typeof i.rank=="number"&&s(i.rank,o),typeof i.minRank=="number"&&typeof i.maxRank=="number")for(let a=i.minRank;a<=i.maxRank;a++)a!==i.rank&&s(a,o)}return t.map(function(o){return t0(e,o,n,r.get(o)||[])})}function s0(e,t,n,r){let s=!0,o=new Ve;e.forEach(function(i){n.forEach(u=>o.setEdge(u.left,u.right));let a=i.graph().root,{result:l,usedBias:c}=fc(i,a,o,r,s);t&&c&&(s=!s),l.vs.forEach((u,f)=>i.node(u).order=f),r0(i,o,l.vs)})}function fi(e,t){Object.values(t).forEach(n=>n.forEach((r,s)=>e.node(r).order=s))}function o0(e,t){let n={};function r(s,o){let i=0,a=0,l=s.length,c=o[o.length-1];return o.forEach((u,f)=>{let d=a0(e,u),p=d?e.node(d).order:l;(d||u===c)&&(o.slice(a,f+1).forEach(g=>{let y=e.predecessors(g);y&&y.forEach(x=>{let v=e.node(x),I=v.order;(I<i||p<I)&&!(v.dummy&&e.node(g).dummy)&&gc(n,x,g)})}),a=f+1,i=p)}),o}return t.length&&t.reduce(r),n}function i0(e,t){let n={};function r(o,i,a,l,c){yn(i,a).forEach(u=>{let f=o[u];if(f!==void 0&&e.node(f).dummy){let d=e.predecessors(f);d&&d.forEach(p=>{if(p===void 0)return;let g=e.node(p);g.dummy&&(g.order<l||g.order>c)&&gc(n,p,f)})}})}function s(o,i){let a=-1,l=-1,c=0;return i.forEach((u,f)=>{if(e.node(u).dummy==="border"){let d=e.predecessors(u);if(d&&d.length){let p=d[0];if(p===void 0)return;l=e.node(p).order,r(i,c,f,a,l),c=f,a=l}}r(i,c,i.length,l,o.length)}),i}return t.length&&t.reduce(s),n}function a0(e,t){if(e.node(t).dummy){let n=e.predecessors(t);if(n)return n.find(r=>e.node(r).dummy)}}function gc(e,t,n){if(t>n){let s=t;t=n,n=s}let r=e[t];r||(e[t]=r={}),r[n]=!0}function l0(e,t,n){if(t>n){let s=t;t=n,n=s}let r=e[t];return r!==void 0&&Object.hasOwn(r,n)}function c0(e,t,n,r,s){let o={},i={},a={};return t.forEach(l=>{l.forEach((c,u)=>{o[c]=c,i[c]=c,a[c]=u})}),t.forEach(l=>{let c=-1,u=-1,f=!1,d=l,p=l.findIndex(g=>s?.includes(g)||pi(g,e,s));p>0&&(d=[l[p],...l.slice(0,p),...l.slice(p+1)],f=!0),d.forEach(g=>{var y;let x=r(g);if(x&&x.length){s!=null&&s.includes(g)&&(x=x.filter(m=>pi(m,e,s)));let v=x.sort((m,b)=>{let E=a[m],N=a[b];return(E!==void 0?E:0)-(N!==void 0?N:0)}),I=(v.length-1)/2;for(let m=Math.floor(I),b=Math.ceil(I);m<=b;++m){let E=v[m];if(E===void 0)continue;let N=a[E];if(N!==void 0&&i[g]===g&&c<N&&a[E]!==u&&!l0(n,g,E)){let R=o[E];R!==void 0&&(i[E]=g,i[g]=o[g]=R,c=N,f&&(c=-1,u=(y=a[E])!=null?y:-1,f=!1))}}}})}),{root:o,align:i}}function u0(e,t,n,r,s=!1){let o={},i=d0(e,t,n,s),a=s?"borderLeft":"borderRight";function l(p,g){let y=i.nodes().slice(),x={},v=y.pop();for(;v;){if(x[v])p(v);else{x[v]=!0,y.push(v);for(let I of g(v))y.push(I)}v=y.pop()}}function c(p){let g=i.inEdges(p);g?o[p]=g.reduce((y,x)=>{var v;let I=(v=o[x.v])!=null?v:0,m=i.edge(x);return Math.max(y,I+(m!==void 0?m:0))},0):o[p]=0}function u(p){let g=i.outEdges(p),y=Number.POSITIVE_INFINITY;g&&(y=g.reduce((v,I)=>{let m=o[I.w],b=i.edge(I);return Math.min(v,(m!==void 0?m:0)-(b!==void 0?b:0))},Number.POSITIVE_INFINITY));let x=e.node(p);y!==Number.POSITIVE_INFINITY&&x.borderType!==a&&(o[p]=Math.max(o[p]!==void 0?o[p]:0,y))}function f(p){return i.predecessors(p)||[]}function d(p){return i.successors(p)||[]}return l(c,f),l(u,d),Object.keys(r).forEach(p=>{var g;let y=n[p];y!==void 0&&(o[p]=(g=o[y])!=null?g:0)}),o}function d0(e,t,n,r){let s=new Ve,o=e.graph(),i=m0(o.nodesep,o.edgesep,r);return t.forEach(a=>{let l;a.forEach(c=>{let u=n[c];if(u!==void 0){if(s.setNode(u),l!==void 0){let f=n[l];if(f!==void 0){let d=s.edge(f,u);s.setEdge(f,u,Math.max(i(e,c,l),d||0))}}l=c}})}),s}function h0(e,t){return Object.values(t).reduce((n,r)=>{let s=Number.NEGATIVE_INFINITY,o=Number.POSITIVE_INFINITY;Object.entries(r).forEach(([a,l])=>{let c=v0(e,a)/2;s=Math.max(l+c,s),o=Math.min(l-c,o)});let i=s-o;return i<n[0]&&(n=[i,r]),n},[Number.POSITIVE_INFINITY,null])[1]}function f0(e,t){let n=Object.values(t),r=Ge(Math.min,n),s=Ge(Math.max,n);["u","d"].forEach(o=>{["l","r"].forEach(i=>{let a=o+i,l=e[a];if(!l||l===t)return;let c=Object.values(l),u=r-Ge(Math.min,c);i!=="l"&&(u=s-Ge(Math.max,c)),u&&(e[a]=Rr(l,f=>f+u))})})}function p0(e,t=void 0){let n=e.ul;return n?Rr(n,(r,s)=>{var o,i;if(t){let l=e[t.toLowerCase()];if(l&&l[s]!==void 0)return l[s]}let a=Object.values(e).map(l=>{let c=l[s];return c!==void 0?c:0}).sort((l,c)=>l-c);return(((o=a[1])!=null?o:0)+((i=a[2])!=null?i:0))/2}):{}}function g0(e,t){let n=Nr(e),r=Object.assign(o0(e,n),i0(e,n)),s={},o;return["u","d"].forEach(i=>{o=i==="u"?n:Object.values(n).reverse(),["l","r"].forEach(a=>{a==="r"&&(o=o.map(u=>Object.values(u).reverse()));let l=c0(e,o,r,u=>(i==="u"?e.predecessors(u):e.successors(u))||[],t),c=u0(e,o,l.root,l.align,a==="r");a==="r"&&(c=Rr(c,u=>-u)),s[i+a]=c})}),f0(s,h0(e,s)),p0(s,e.graph().align)}function m0(e,t,n){return(r,s,o)=>{let i=r.node(s),a=r.node(o),l=0,c;if(l+=i.width/2,Object.hasOwn(i,"labelpos"))switch(i.labelpos.toLowerCase()){case"l":c=-i.width/2;break;case"r":c=i.width/2}if(c&&(l+=n?c:-c),c=void 0,l+=(i.dummy?t:e)/2,l+=(a.dummy?t:e)/2,l+=a.width/2,Object.hasOwn(a,"labelpos"))switch(a.labelpos.toLowerCase()){case"l":c=a.width/2;break;case"r":c=-a.width/2}return c&&(l+=n?c:-c),l}}function v0(e,t){return e.node(t).width}function pi(e,t,n){var r;if(!n)return!1;let s=(r=t.node(e))==null?void 0:r.edgeObj;if(!s||t.node(e).edgeLabel.reversed)return!1;let o=n.indexOf(s?.v),i=n.indexOf(s?.w);return o!==-1&&i!==-1&&o===(i+1)%n.length||o===(i-1)%n.length}function y0(e,t){e=tc(e),b0(e),Object.entries(g0(e,t)).forEach(([n,r])=>e.node(n).x=r)}function b0(e){let t=Nr(e),n=e.graph(),r=n.ranksep,s=n.rankalign,o=0;t.forEach(i=>{let a=i.reduce((l,c)=>{var u;let f=(u=e.node(c).height)!=null?u:0;return l>f?l:f},0);i.forEach(l=>{let c=e.node(l);s==="top"?c.y=o+c.height/2:s==="bottom"?c.y=o+a-c.height/2:c.y=o+a/2}),o+=a+r})}var gi=new WeakMap;function x0(e,t={}){return mc(e,Jg,t),e}function mi(e,t,n){let r=t;for(;r!==void 0;){let s=e.parent(r);if(s===n)return r;r=s}}function mc(e,t,n){var r;let s=e.nodes().filter(I=>e.children(I).length),o={};s.forEach(I=>{let m=e.node(I);if(m&&m.rankdir){let b=new Ve({multigraph:!0,compound:!0});b.setGraph({rankdir:m.rankdir});let E=e.children(I);E.forEach(S=>{let w={...e.node(S)};b.setNode(S,w);let T=e.parent(S);T&&T!==I&&E.includes(T)&&b.setParent(S,T)});let N=new Set;e.edges().forEach(S=>{let w=mi(e,S.v,I),T=mi(e,S.w,I);if(w&&T&&w!==T){let j=`${w}\0${T}`;N.has(j)||(N.add(j),b.setEdge(w,T,{...e.edge(S)}))}}),mc(b,t,n);let R=xi(b);vi(R,t,n,null),yi(b,R);let A=1/0,k=1/0,L=-1/0,_=-1/0;b.nodes().forEach(S=>{if(S===I)return;let w=b.node(S);w&&typeof w.x=="number"&&typeof w.y=="number"&&typeof w.width=="number"&&typeof w.height=="number"&&(A=Math.min(A,w.x-w.width/2),L=Math.max(L,w.x+w.width/2),k=Math.min(k,w.y-w.height/2),_=Math.max(_,w.y+w.height/2))}),(!isFinite(A)||!isFinite(k)||!isFinite(L)||!isFinite(_))&&(A=k=0,L=_=0);let M=L-A,O=_-k;o[I]={minX:A,minY:k,maxX:L,maxY:_,width:M,height:O,offsetX:A,offsetY:k},m._dagreClusterSubgraph=b}});let i=[],a=I=>{let m=[],b=(e.children(I)||[]).filter(E=>E!==I);for(;b.length>0;){let E=b.shift();m.push(E),(e.children(E)||[]).filter(N=>N!==E).forEach(N=>b.push(N))}return m},l=new Map;s.forEach(I=>{let m=e.node(I);m&&m.rankdir&&o[I]&&l.set(I,(e.children(I)||[]).filter(b=>b!==I))});let c=new Set([...l.values()].flat()),u=new Map;l.forEach((I,m)=>{c.has(m)||u.set(m,a(m))});let f=new Set([...u.values()].flat()),d=I=>{for(let[m,b]of u)if(b.includes(I))return m;return I},p=[];e.edges().forEach(I=>{(f.has(I.v)||f.has(I.w))&&p.push({edge:I,label:e.edge(I)})});let g=new Map;f.forEach(I=>{let m=e.parent(I);g.set(I,typeof m=="string"?m:void 0)}),u.forEach((I,m)=>{let b=e.node(m),E=[];I.forEach(A=>{let k=e.node(A);k&&(E.push({id:A,node:k,parent:g.get(A)}),e.removeNode(A))});let N=p.filter(({edge:A})=>I.includes(A.v)||I.includes(A.w)),R=o[m];b&&(i.push({clusterId:m,subgraph:b._dagreClusterSubgraph,bounds:R,children:I,removedNodes:E,removedEdges:N}),b.width=R.width,b.height=R.height)});let y=new Set;p.forEach(({edge:I,label:m})=>{let b=d(I.v),E=d(I.w);if(b!==E&&e.hasNode(b)&&e.hasNode(E)){let N=`${b}\0${E}`;y.has(N)||(y.add(N),e.setEdge(b,E,{...m,width:0,height:0}))}});let x=xi(e),v=vi(x,t,n,(r=gi.get(e))!=null?r:null);gi.set(e,v),yi(e,x),y.forEach(I=>{let m=I.indexOf("\0"),b=I.slice(0,m),E=I.slice(m+1);e.hasEdge(b,E)&&e.removeEdge(b,E)}),i.forEach(({clusterId:I,subgraph:m,bounds:b,removedNodes:E,removedEdges:N})=>{var R,A;let k=e.node(I),L=(R=k?.x)!=null?R:0,_=(A=k?.y)!=null?A:0,M=(b.minX+b.maxX)/2,O=(b.minY+b.maxY)/2;E.forEach(({id:S,node:w,parent:T})=>{e.setNode(S,w),T!==void 0&&e.setParent(S,T)}),N.forEach(({edge:S,label:w})=>{e.setEdge(S,w)}),m.nodes().forEach(S=>{if(S===I)return;let w=m.node(S),T=e.node(S);T&&w&&typeof w.x=="number"&&typeof w.y=="number"&&(T.x=L+(w.x-M),T.y=_+(w.y-O))}),delete k._dagreClusterSubgraph}),s.forEach(I=>{var m,b;let E=e.node(I),N=o[I];if(E&&E.rankdir&&E._dagreClusterSubgraph&&N){let R=E._dagreClusterSubgraph,A=(m=E.x)!=null?m:0,k=(b=E.y)!=null?b:0,L=(N.minX+N.maxX)/2,_=(N.minY+N.maxY)/2;R.nodes().forEach(M=>{if(M===I)return;let O=R.node(M),S=e.node(M);if(S&&O&&typeof O.x=="number"&&typeof O.y=="number"){let w=O.x-L,T=O.y-_;S.x=A+w,S.y=k+T}}),delete E._dagreClusterSubgraph}})}function vi(e,t,n,r=null){var s,o;let i=n?.useDynamic!==!1,a=i&&(s=r?.graph)!=null?s:null,l=i&&(o=r?.rawNodes)!=null?o:null;t(" makeSpaceForEdgeLabels",()=>_0(e)),t(" removeSelfEdges",()=>D0(e)),t(" acyclic",()=>cm(e,a)),t(" nestingGraph.run",()=>jm(e)),t(" rank",()=>Nm(tc(e))),t(" injectEdgeLabelProxies",()=>T0(e)),t(" removeEmptyRanks",()=>Wg(e)),t(" nestingGraph.cleanup",()=>Dm(e)),t(" normalizeRanks",()=>Yg(e)),t(" assignRankMinMax",()=>A0(e)),t(" removeEdgeLabelProxies",()=>M0(e)),t(" normalize.run",()=>fm(e)),t(" parentDummyChains",()=>Am(e)),t(" addBorderSegments",()=>$m(e)),t(" order",()=>pc(e,n,l)),t(" insertSelfEdges",()=>$0(e)),t(" adjustCoordinateSystem",()=>zm(e)),t(" position",()=>y0(e,n.corePath)),t(" positionSelfEdges",()=>F0(e));let c=JSON.parse(JSON.stringify(e._nodes));return t(" removeBorderNodes",()=>L0(e)),t(" normalize.undo",()=>gm(e)),t(" fixupEdgeLabelCoords",()=>j0(e)),t(" undoCoordinateSystem",()=>Hm(e)),t(" translateGraph",()=>k0(e)),t(" assignNodeIntersects",()=>O0(e)),t(" reversePoints",()=>P0(e)),t(" acyclic.undo",()=>dm(e)),{graph:e,rawNodes:c}}function yi(e,t){e.nodes().forEach(n=>{let r=e.node(n),s=t.node(n);r&&(r.x=s.x,r.y=s.y,r.order=s.order,r.rank=s.rank,t.children(n).length&&(r.width=s.width,r.height=s.height))}),e.edges().forEach(n=>{let r=e.edge(n),s=t.edge(n);r.points=s.points,Object.hasOwn(s,"x")&&(r.x=s.x,r.y=s.y)}),e.graph().width=t.graph().width,e.graph().height=t.graph().height}var S0=["nodesep","edgesep","ranksep","marginx","marginy"],I0={ranksep:50,edgesep:20,nodesep:50,rankdir:"TB",rankalign:"center"},w0=["acyclicer","ranker","rankdir","align","rankalign"],E0=["width","height","rank"],bi={width:0,height:0},C0=["minlen","weight","width","height","labeloffset"],N0={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},R0=["labelpos"];function xi(e){let t=new Ve({multigraph:!0,compound:!0}),n=ts(e.graph());return t.setGraph(Object.assign({},I0,es(n,S0),sr(n,w0))),e.nodes().forEach(r=>{let s=es(ts(e.node(r)),E0);Object.keys(bi).forEach(i=>{s[i]===void 0&&(s[i]=bi[i])}),t.setNode(r,s);let o=e.parent(r);o!==void 0&&t.setParent(r,o)}),e.edges().forEach(r=>{let s=ts(e.edge(r));t.setEdge(r,Object.assign({},N0,es(s,C0),sr(s,R0)))}),t}function _0(e){let t=e.graph();t.ranksep/=2,e.edges().forEach(n=>{var r;let s=e.edge(n);s.minlen*=2,((r=s.labelpos)!=null?r:"r").toLowerCase()!=="c"&&(t.rankdir==="TB"||t.rankdir==="BT"?s.width+=s.labeloffset:s.height+=s.labeloffset)})}function T0(e){e.edges().forEach(t=>{let n=e.edge(t);if(n.width&&n.height){let r=e.node(t.v);Jt(e,"edge-proxy",{rank:(e.node(t.w).rank-r.rank)/2+r.rank,e:t},"_ep")}})}function A0(e){let t=0;e.nodes().forEach(n=>{let r=e.node(n);r.borderTop&&(r.minRank=e.node(r.borderTop).rank,r.maxRank=e.node(r.borderBottom).rank,t=Math.max(t,r.maxRank))}),e.graph().maxRank=t}function M0(e){e.nodes().forEach(t=>{let n=e.node(t);if(n.dummy==="edge-proxy"){let r=n;e.edge(r.e).labelRank=n.rank,e.removeNode(t)}})}function k0(e){let t=Number.POSITIVE_INFINITY,n=0,r=Number.POSITIVE_INFINITY,s=0,o=e.graph(),i=o.marginx||0,a=o.marginy||0;function l(c){let u=c.x,f=c.y,d=c.width,p=c.height;t=Math.min(t,u-d/2),n=Math.max(n,u+d/2),r=Math.min(r,f-p/2),s=Math.max(s,f+p/2)}e.nodes().forEach(c=>l(e.node(c))),e.edges().forEach(c=>{let u=e.edge(c);Object.hasOwn(u,"x")&&l(u)}),t-=i,r-=a,e.nodes().forEach(c=>{let u=e.node(c);u.x-=t,u.y-=r}),e.edges().forEach(c=>{let u=e.edge(c);u.points.forEach(f=>{f.x-=t,f.y-=r}),Object.hasOwn(u,"x")&&(u.x-=t),Object.hasOwn(u,"y")&&(u.y-=r)}),o.width=n-t+i,o.height=s-r+a}function O0(e){e.edges().forEach(t=>{if(t.v===t.w)return;let n=e.edge(t),r=e.node(t.v),s=e.node(t.w),o,i;n.points?(o=n.points[0],i=n.points[n.points.length-1]):(n.points=[],o=s,i=r),n.points.unshift(si(r,o)),n.points.push(si(s,i))})}function j0(e){e.edges().forEach(t=>{let n=e.edge(t);if(Object.hasOwn(n,"x"))switch((n.labelpos==="l"||n.labelpos==="r")&&(n.width-=n.labeloffset),n.labelpos){case"l":n.x-=n.width/2+n.labeloffset;break;case"r":n.x+=n.width/2+n.labeloffset}})}function P0(e){e.edges().forEach(t=>{let n=e.edge(t);n.reversed&&n.points.reverse()})}function L0(e){e.nodes().forEach(t=>{if(e.children(t).length){let n=e.node(t),r=e.node(n.borderTop),s=e.node(n.borderBottom),o=e.node(n.borderLeft[n.borderLeft.length-1]),i=e.node(n.borderRight[n.borderRight.length-1]);n.width=Math.abs(i.x-o.x),n.height=Math.abs(s.y-r.y),n.x=o.x+n.width/2,n.y=r.y+n.height/2}}),e.nodes().forEach(t=>{e.node(t).dummy==="border"&&e.removeNode(t)})}function D0(e){e.edges().forEach(t=>{if(t.v===t.w){let n=e.node(t.v);n.selfEdges||(n.selfEdges=[]),n.selfEdges.push({e:t,label:e.edge(t)}),e.removeEdge(t)}})}function $0(e){Nr(e).forEach(t=>{let n=0;t.forEach((r,s)=>{let o=e.node(r);typeof o.rank!="number"&&(o.rank=0),o.order=s+n,(o.selfEdges||[]).forEach(i=>{Jt(e,"selfedge",{width:i.label.width,height:i.label.height,rank:o.rank,order:s+ ++n,e:i.e,edgeLabel:i.label},"_se"),(!Array.isArray(i.label.points)||i.label.points.length!==7)&&(i.label.points=[{x:0,y:-10},{x:0,y:-10},{x:0,y:0},{x:0,y:10},{x:0,y:10},{x:0,y:0},{x:0,y:0}])}),delete o.selfEdges})})}function F0(e){e.nodes().forEach(t=>{let n=e.node(t),r=s=>typeof s=="number"&&isFinite(s);if(n.dummy==="selfedge"){let s=n,o=e.node(s.e.v),i=r(o?.x)?o.x:0,a=r(o?.y)?o.y:0,l=r(o?.width)?o.width:0,c=r(o?.height)?o.height:0,u=r(n.x)?n.x:i,f=r(n.y)?n.y:a,d=l/2,p=c/2;s.edgeLabel.points=[{x:u+d,y:f-p},{x:u+d,y:f-p},{x:u,y:f},{x:u-d,y:f+p},{x:u-d,y:f+p},{x:u,y:f},{x:u,y:f}],s.edgeLabel.x=u,s.edgeLabel.y=f,e.setEdge(s.e,s.edgeLabel),e.removeNode(t)}else n&&Array.isArray(n.selfEdges)&&n.selfEdges.forEach(s=>{if(!Array.isArray(s.label.points)||s.label.points.length!==7){let o=r(n.x)?n.x:0,i=r(n.y)?n.y:0,a=r(n.width)?n.width:0,l=r(n.height)?n.height:0,c=a/2,u=l/2;s.label.points=[{x:o+c,y:i-u},{x:o+c,y:i-u},{x:o,y:i},{x:o-c,y:i+u},{x:o-c,y:i+u},{x:o,y:i},{x:o,y:i}]}})})}function es(e,t){return Rr(sr(e,t),Number)}function ts(e){let t={};return e&&Object.entries(e).forEach(([n,r])=>{typeof n=="string"&&(n=n.toLowerCase()),t[n]=r}),t}var ln=({schemaName:e,tableName:t})=>e?`${e}.${t}`:t,z0=(e,t)=>{const n=(t==="all"?e:e.filter(r=>r.schemaName===t)).map(r=>({...r,id:ln(r)}));return{tables:n,edges:n.flatMap(r=>r.columns.flatMap(s=>{const{referencedTable:o,referencedSchema:i,referencedColumn:a}=s;if(!o||!a)return[];const l=n.find(c=>c.tableName===o&&c.schemaName===i);return l?{id:`${r.id}.${s.columnName}->${l.id}`,source:r.id,sourceColumn:s.columnName,target:l.id,targetColumn:a}:[]}))}},H0=(e,t)=>{const n=new Kl.Graph;n.setDefaultEdgeLabel(()=>({})),n.setGraph({rankdir:"LR",ranksep:160,nodesep:60});for(const r of e)n.setNode(r.id,{width:r.width,height:r.height});for(const r of t)n.setEdge(r.target,r.source);return x0(n),new Map(e.map(r=>{const{x:s,y:o}=n.node(r.id);return[r.id,{x:s-r.width/2,y:o-r.height/2}]}))},B0=(e,t)=>{const n=new Set([t]),r=new Set,s=new Set;for(const o of e)o.source!==t&&o.target!==t||(n.add(o.source).add(o.target),r.add(`${o.source}.${o.sourceColumn}`).add(`${o.target}.${o.targetColumn}`),s.add(o.id));return{tables:n,columns:r,edgeIds:s}},G0=e=>{const t=Math.max(e.tableName.length,...e.columns.map(n=>n.columnName.length+n.dataTypeLabel.length+4));return Math.min(Math.max(t*7.5+72,220),420)};function ue(e){if(typeof e=="string"||typeof e=="number")return""+e;let t="";if(Array.isArray(e))for(let n=0,r;n<e.length;n++)(r=ue(e[n]))!==""&&(t+=(t&&" ")+r);else for(let n in e)e[n]&&(t+=(t&&" ")+n);return t}var U0={value:()=>{}};function Tr(){for(var e=0,t=arguments.length,n={},r;e<t;++e){if(!(r=arguments[e]+"")||r in n||/[\s.]/.test(r))throw new Error("illegal type: "+r);n[r]=[]}return new Xn(n)}function Xn(e){this._=e}function q0(e,t){return e.trim().split(/^|\s+/).map(function(n){var r="",s=n.indexOf(".");if(s>=0&&(r=n.slice(s+1),n=n.slice(0,s)),n&&!t.hasOwnProperty(n))throw new Error("unknown type: "+n);return{type:n,name:r}})}Xn.prototype=Tr.prototype={constructor:Xn,on:function(e,t){var n=this._,r=q0(e+"",n),s,o=-1,i=r.length;if(arguments.length<2){for(;++o<i;)if((s=(e=r[o]).type)&&(s=V0(n[s],e.name)))return s;return}if(t!=null&&typeof t!="function")throw new Error("invalid callback: "+t);for(;++o<i;)if(s=(e=r[o]).type)n[s]=Si(n[s],e.name,t);else if(t==null)for(s in n)n[s]=Si(n[s],e.name,null);return this},copy:function(){var e={},t=this._;for(var n in t)e[n]=t[n].slice();return new Xn(e)},call:function(e,t){if((s=arguments.length-2)>0)for(var n=new Array(s),r=0,s,o;r<s;++r)n[r]=arguments[r+2];if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(o=this._[e],r=0,s=o.length;r<s;++r)o[r].value.apply(t,n)},apply:function(e,t,n){if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(var r=this._[e],s=0,o=r.length;s<o;++s)r[s].value.apply(t,n)}};function V0(e,t){for(var n=0,r=e.length,s;n<r;++n)if((s=e[n]).name===t)return s.value}function Si(e,t,n){for(var r=0,s=e.length;r<s;++r)if(e[r].name===t){e[r]=U0,e=e.slice(0,r).concat(e.slice(r+1));break}return n!=null&&e.push({name:t,value:n}),e}var K0="http://www.w3.org/1999/xhtml",Ii={svg:"http://www.w3.org/2000/svg",xhtml:K0,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function Ar(e){var t=e+="",n=t.indexOf(":");return n>=0&&(t=e.slice(0,n))!=="xmlns"&&(e=e.slice(n+1)),Ii.hasOwnProperty(t)?{space:Ii[t],local:e}:e}function Y0(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n==="http://www.w3.org/1999/xhtml"&&t.documentElement.namespaceURI==="http://www.w3.org/1999/xhtml"?t.createElement(e):t.createElementNS(n,e)}}function W0(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function vc(e){var t=Ar(e);return(t.local?W0:Y0)(t)}function X0(){}function ho(e){return e==null?X0:function(){return this.querySelector(e)}}function Q0(e){typeof e!="function"&&(e=ho(e));for(var t=this._groups,n=t.length,r=new Array(n),s=0;s<n;++s)for(var o=t[s],i=o.length,a=r[s]=new Array(i),l,c,u=0;u<i;++u)(l=o[u])&&(c=e.call(l,l.__data__,u,o))&&("__data__"in l&&(c.__data__=l.__data__),a[u]=c);return new Ie(r,this._parents)}function J0(e){return e==null?[]:Array.isArray(e)?e:Array.from(e)}function Z0(){return[]}function yc(e){return e==null?Z0:function(){return this.querySelectorAll(e)}}function ev(e){return function(){return J0(e.apply(this,arguments))}}function tv(e){typeof e=="function"?e=ev(e):e=yc(e);for(var t=this._groups,n=t.length,r=[],s=[],o=0;o<n;++o)for(var i=t[o],a=i.length,l,c=0;c<a;++c)(l=i[c])&&(r.push(e.call(l,l.__data__,c,i)),s.push(l));return new Ie(r,s)}function bc(e){return function(){return this.matches(e)}}function xc(e){return function(t){return t.matches(e)}}var nv=Array.prototype.find;function rv(e){return function(){return nv.call(this.children,e)}}function sv(){return this.firstElementChild}function ov(e){return this.select(e==null?sv:rv(typeof e=="function"?e:xc(e)))}var iv=Array.prototype.filter;function av(){return Array.from(this.children)}function lv(e){return function(){return iv.call(this.children,e)}}function cv(e){return this.selectAll(e==null?av:lv(typeof e=="function"?e:xc(e)))}function uv(e){typeof e!="function"&&(e=bc(e));for(var t=this._groups,n=t.length,r=new Array(n),s=0;s<n;++s)for(var o=t[s],i=o.length,a=r[s]=[],l,c=0;c<i;++c)(l=o[c])&&e.call(l,l.__data__,c,o)&&a.push(l);return new Ie(r,this._parents)}function Sc(e){return new Array(e.length)}function dv(){return new Ie(this._enter||this._groups.map(Sc),this._parents)}function or(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}or.prototype={constructor:or,appendChild:function(e){return this._parent.insertBefore(e,this._next)},insertBefore:function(e,t){return this._parent.insertBefore(e,t)},querySelector:function(e){return this._parent.querySelector(e)},querySelectorAll:function(e){return this._parent.querySelectorAll(e)}};function hv(e){return function(){return e}}function fv(e,t,n,r,s,o){for(var i=0,a,l=t.length,c=o.length;i<c;++i)(a=t[i])?(a.__data__=o[i],r[i]=a):n[i]=new or(e,o[i]);for(;i<l;++i)(a=t[i])&&(s[i]=a)}function pv(e,t,n,r,s,o,i){var a,l,c=new Map,u=t.length,f=o.length,d=new Array(u),p;for(a=0;a<u;++a)(l=t[a])&&(d[a]=p=i.call(l,l.__data__,a,t)+"",c.has(p)?s[a]=l:c.set(p,l));for(a=0;a<f;++a)p=i.call(e,o[a],a,o)+"",(l=c.get(p))?(r[a]=l,l.__data__=o[a],c.delete(p)):n[a]=new or(e,o[a]);for(a=0;a<u;++a)(l=t[a])&&c.get(d[a])===l&&(s[a]=l)}function gv(e){return e.__data__}function mv(e,t){if(!arguments.length)return Array.from(this,gv);var n=t?pv:fv,r=this._parents,s=this._groups;typeof e!="function"&&(e=hv(e));for(var o=s.length,i=new Array(o),a=new Array(o),l=new Array(o),c=0;c<o;++c){var u=r[c],f=s[c],d=f.length,p=vv(e.call(u,u&&u.__data__,c,r)),g=p.length,y=a[c]=new Array(g),x=i[c]=new Array(g);n(u,f,y,x,l[c]=new Array(d),p,t);for(var v=0,I=0,m,b;v<g;++v)if(m=y[v]){for(v>=I&&(I=v+1);!(b=x[I])&&++I<g;);m._next=b||null}}return i=new Ie(i,r),i._enter=a,i._exit=l,i}function vv(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function yv(){return new Ie(this._exit||this._groups.map(Sc),this._parents)}function bv(e,t,n){var r=this.enter(),s=this,o=this.exit();return typeof e=="function"?(r=e(r),r&&(r=r.selection())):r=r.append(e+""),t!=null&&(s=t(s),s&&(s=s.selection())),n==null?o.remove():n(o),r&&s?r.merge(s).order():s}function xv(e){for(var t=e.selection?e.selection():e,n=this._groups,r=t._groups,s=n.length,o=r.length,i=Math.min(s,o),a=new Array(s),l=0;l<i;++l)for(var c=n[l],u=r[l],f=c.length,d=a[l]=new Array(f),p,g=0;g<f;++g)(p=c[g]||u[g])&&(d[g]=p);for(;l<s;++l)a[l]=n[l];return new Ie(a,this._parents)}function Sv(){for(var e=this._groups,t=-1,n=e.length;++t<n;)for(var r=e[t],s=r.length-1,o=r[s],i;--s>=0;)(i=r[s])&&(o&&i.compareDocumentPosition(o)^4&&o.parentNode.insertBefore(i,o),o=i);return this}function Iv(e){e||(e=wv);function t(f,d){return f&&d?e(f.__data__,d.__data__):!f-!d}for(var n=this._groups,r=n.length,s=new Array(r),o=0;o<r;++o){for(var i=n[o],a=i.length,l=s[o]=new Array(a),c,u=0;u<a;++u)(c=i[u])&&(l[u]=c);l.sort(t)}return new Ie(s,this._parents).order()}function wv(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}function Ev(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function Cv(){return Array.from(this)}function Nv(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r=e[t],s=0,o=r.length;s<o;++s){var i=r[s];if(i)return i}return null}function Rv(){let e=0;for(const t of this)++e;return e}function _v(){return!this.node()}function Tv(e){for(var t=this._groups,n=0,r=t.length;n<r;++n)for(var s=t[n],o=0,i=s.length,a;o<i;++o)(a=s[o])&&e.call(a,a.__data__,o,s);return this}function Av(e){return function(){this.removeAttribute(e)}}function Mv(e){return function(){this.removeAttributeNS(e.space,e.local)}}function kv(e,t){return function(){this.setAttribute(e,t)}}function Ov(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function jv(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttribute(e):this.setAttribute(e,n)}}function Pv(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttributeNS(e.space,e.local):this.setAttributeNS(e.space,e.local,n)}}function Lv(e,t){var n=Ar(e);if(arguments.length<2){var r=this.node();return n.local?r.getAttributeNS(n.space,n.local):r.getAttribute(n)}return this.each((t==null?n.local?Mv:Av:typeof t=="function"?n.local?Pv:jv:n.local?Ov:kv)(n,t))}function Ic(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function Dv(e){return function(){this.style.removeProperty(e)}}function $v(e,t,n){return function(){this.style.setProperty(e,t,n)}}function Fv(e,t,n){return function(){var r=t.apply(this,arguments);r==null?this.style.removeProperty(e):this.style.setProperty(e,r,n)}}function zv(e,t,n){return arguments.length>1?this.each((t==null?Dv:typeof t=="function"?Fv:$v)(e,t,n??"")):Ut(this.node(),e)}function Ut(e,t){return e.style.getPropertyValue(t)||Ic(e).getComputedStyle(e,null).getPropertyValue(t)}function Hv(e){return function(){delete this[e]}}function Bv(e,t){return function(){this[e]=t}}function Gv(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function Uv(e,t){return arguments.length>1?this.each((t==null?Hv:typeof t=="function"?Gv:Bv)(e,t)):this.node()[e]}function wc(e){return e.trim().split(/^|\s+/)}function fo(e){return e.classList||new Ec(e)}function Ec(e){this._node=e,this._names=wc(e.getAttribute("class")||"")}Ec.prototype={add:function(e){this._names.indexOf(e)<0&&(this._names.push(e),this._node.setAttribute("class",this._names.join(" ")))},remove:function(e){var t=this._names.indexOf(e);t>=0&&(this._names.splice(t,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(e){return this._names.indexOf(e)>=0}};function Cc(e,t){for(var n=fo(e),r=-1,s=t.length;++r<s;)n.add(t[r])}function Nc(e,t){for(var n=fo(e),r=-1,s=t.length;++r<s;)n.remove(t[r])}function qv(e){return function(){Cc(this,e)}}function Vv(e){return function(){Nc(this,e)}}function Kv(e,t){return function(){(t.apply(this,arguments)?Cc:Nc)(this,e)}}function Yv(e,t){var n=wc(e+"");if(arguments.length<2){for(var r=fo(this.node()),s=-1,o=n.length;++s<o;)if(!r.contains(n[s]))return!1;return!0}return this.each((typeof t=="function"?Kv:t?qv:Vv)(n,t))}function Wv(){this.textContent=""}function Xv(e){return function(){this.textContent=e}}function Qv(e){return function(){var t=e.apply(this,arguments);this.textContent=t??""}}function Jv(e){return arguments.length?this.each(e==null?Wv:(typeof e=="function"?Qv:Xv)(e)):this.node().textContent}function Zv(){this.innerHTML=""}function ey(e){return function(){this.innerHTML=e}}function ty(e){return function(){var t=e.apply(this,arguments);this.innerHTML=t??""}}function ny(e){return arguments.length?this.each(e==null?Zv:(typeof e=="function"?ty:ey)(e)):this.node().innerHTML}function ry(){this.nextSibling&&this.parentNode.appendChild(this)}function sy(){return this.each(ry)}function oy(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function iy(){return this.each(oy)}function ay(e){var t=typeof e=="function"?e:vc(e);return this.select(function(){return this.appendChild(t.apply(this,arguments))})}function ly(){return null}function cy(e,t){var n=typeof e=="function"?e:vc(e),r=t==null?ly:typeof t=="function"?t:ho(t);return this.select(function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)})}function uy(){var e=this.parentNode;e&&e.removeChild(this)}function dy(){return this.each(uy)}function hy(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function fy(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function py(e){return this.select(e?fy:hy)}function gy(e){return arguments.length?this.property("__data__",e):this.node().__data__}function my(e){return function(t){e.call(this,t,this.__data__)}}function vy(e){return e.trim().split(/^|\s+/).map(function(t){var n="",r=t.indexOf(".");return r>=0&&(n=t.slice(r+1),t=t.slice(0,r)),{type:t,name:n}})}function yy(e){return function(){var t=this.__on;if(t){for(var n=0,r=-1,s=t.length,o;n<s;++n)o=t[n],(!e.type||o.type===e.type)&&o.name===e.name?this.removeEventListener(o.type,o.listener,o.options):t[++r]=o;++r?t.length=r:delete this.__on}}}function by(e,t,n){return function(){var r=this.__on,s,o=my(t);if(r){for(var i=0,a=r.length;i<a;++i)if((s=r[i]).type===e.type&&s.name===e.name){this.removeEventListener(s.type,s.listener,s.options),this.addEventListener(s.type,s.listener=o,s.options=n),s.value=t;return}}this.addEventListener(e.type,o,n),s={type:e.type,name:e.name,value:t,listener:o,options:n},r?r.push(s):this.__on=[s]}}function xy(e,t,n){var r=vy(e+""),s,o=r.length,i;if(arguments.length<2){var a=this.node().__on;if(a){for(var l=0,c=a.length,u;l<c;++l)for(s=0,u=a[l];s<o;++s)if((i=r[s]).type===u.type&&i.name===u.name)return u.value}return}for(a=t?by:yy,s=0;s<o;++s)this.each(a(r[s],t,n));return this}function Rc(e,t,n){var r=Ic(e),s=r.CustomEvent;typeof s=="function"?s=new s(t,n):(s=r.document.createEvent("Event"),n?(s.initEvent(t,n.bubbles,n.cancelable),s.detail=n.detail):s.initEvent(t,!1,!1)),e.dispatchEvent(s)}function Sy(e,t){return function(){return Rc(this,e,t)}}function Iy(e,t){return function(){return Rc(this,e,t.apply(this,arguments))}}function wy(e,t){return this.each((typeof t=="function"?Iy:Sy)(e,t))}function*Ey(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r=e[t],s=0,o=r.length,i;s<o;++s)(i=r[s])&&(yield i)}var _c=[null];function Ie(e,t){this._groups=e,this._parents=t}function Zt(){return new Ie([[document.documentElement]],_c)}function Cy(){return this}Ie.prototype=Zt.prototype={constructor:Ie,select:Q0,selectAll:tv,selectChild:ov,selectChildren:cv,filter:uv,data:mv,enter:dv,exit:yv,join:bv,merge:xv,selection:Cy,order:Sv,sort:Iv,call:Ev,nodes:Cv,node:Nv,size:Rv,empty:_v,each:Tv,attr:Lv,style:zv,property:Uv,classed:Yv,text:Jv,html:ny,raise:sy,lower:iy,append:ay,insert:cy,remove:dy,clone:py,datum:gy,on:xy,dispatch:wy,[Symbol.iterator]:Ey};function Se(e){return typeof e=="string"?new Ie([[document.querySelector(e)]],[document.documentElement]):new Ie([[e]],_c)}function Ny(e){let t;for(;t=e.sourceEvent;)e=t;return e}function Oe(e,t){if(e=Ny(e),t===void 0&&(t=e.currentTarget),t){var n=t.ownerSVGElement||t;if(n.createSVGPoint){var r=n.createSVGPoint();return r.x=e.clientX,r.y=e.clientY,r=r.matrixTransform(t.getScreenCTM().inverse()),[r.x,r.y]}if(t.getBoundingClientRect){var s=t.getBoundingClientRect();return[e.clientX-s.left-t.clientLeft,e.clientY-s.top-t.clientTop]}}return[e.pageX,e.pageY]}var Ry={passive:!1},bn={capture:!0,passive:!1};function ns(e){e.stopImmediatePropagation()}function Pt(e){e.preventDefault(),e.stopImmediatePropagation()}function Tc(e){var t=e.document.documentElement,n=Se(e).on("dragstart.drag",Pt,bn);"onselectstart"in t?n.on("selectstart.drag",Pt,bn):(t.__noselect=t.style.MozUserSelect,t.style.MozUserSelect="none")}function Ac(e,t){var n=e.document.documentElement,r=Se(e).on("dragstart.drag",null);t&&(r.on("click.drag",Pt,bn),setTimeout(function(){r.on("click.drag",null)},0)),"onselectstart"in n?r.on("selectstart.drag",null):(n.style.MozUserSelect=n.__noselect,delete n.__noselect)}var Pn=e=>()=>e;function Ts(e,{sourceEvent:t,subject:n,target:r,identifier:s,active:o,x:i,y:a,dx:l,dy:c,dispatch:u}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},subject:{value:n,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},identifier:{value:s,enumerable:!0,configurable:!0},active:{value:o,enumerable:!0,configurable:!0},x:{value:i,enumerable:!0,configurable:!0},y:{value:a,enumerable:!0,configurable:!0},dx:{value:l,enumerable:!0,configurable:!0},dy:{value:c,enumerable:!0,configurable:!0},_:{value:u}})}Ts.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function _y(e){return!e.ctrlKey&&!e.button}function Ty(){return this.parentNode}function Ay(e,t){return t??{x:e.x,y:e.y}}function My(){return navigator.maxTouchPoints||"ontouchstart"in this}function Mc(){var e=_y,t=Ty,n=Ay,r=My,s={},o=Tr("start","drag","end"),i=0,a,l,c,u,f=0;function d(b){b.on("mousedown.drag",p).filter(r).on("touchstart.drag",x).on("touchmove.drag",v,Ry).on("touchend.drag touchcancel.drag",I).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function p(b,E){if(!(u||!e.call(this,b,E))){var N=m(this,t.call(this,b,E),b,E,"mouse");N&&(Se(b.view).on("mousemove.drag",g,bn).on("mouseup.drag",y,bn),Tc(b.view),ns(b),c=!1,a=b.clientX,l=b.clientY,N("start",b))}}function g(b){if(Pt(b),!c){var E=b.clientX-a,N=b.clientY-l;c=E*E+N*N>f}s.mouse("drag",b)}function y(b){Se(b.view).on("mousemove.drag mouseup.drag",null),Ac(b.view,c),Pt(b),s.mouse("end",b)}function x(b,E){if(e.call(this,b,E)){var N=b.changedTouches,R=t.call(this,b,E),A=N.length,k,L;for(k=0;k<A;++k)(L=m(this,R,b,E,N[k].identifier,N[k]))&&(ns(b),L("start",b,N[k]))}}function v(b){var E=b.changedTouches,N=E.length,R,A;for(R=0;R<N;++R)(A=s[E[R].identifier])&&(Pt(b),A("drag",b,E[R]))}function I(b){var E=b.changedTouches,N=E.length,R,A;for(u&&clearTimeout(u),u=setTimeout(function(){u=null},500),R=0;R<N;++R)(A=s[E[R].identifier])&&(ns(b),A("end",b,E[R]))}function m(b,E,N,R,A,k){var L=o.copy(),_=Oe(k||N,E),M,O,S;if((S=n.call(b,new Ts("beforestart",{sourceEvent:N,target:d,identifier:A,active:i,x:_[0],y:_[1],dx:0,dy:0,dispatch:L}),R))!=null)return M=S.x-_[0]||0,O=S.y-_[1]||0,function w(T,j,D){var P=_,F;switch(T){case"start":s[A]=w,F=i++;break;case"end":delete s[A],--i;case"drag":_=Oe(D||j,E),F=i}L.call(T,b,new Ts(T,{sourceEvent:j,subject:S,target:d,identifier:A,active:F,x:_[0]+M,y:_[1]+O,dx:_[0]-P[0],dy:_[1]-P[1],dispatch:L}),R)}}return d.filter=function(b){return arguments.length?(e=typeof b=="function"?b:Pn(!!b),d):e},d.container=function(b){return arguments.length?(t=typeof b=="function"?b:Pn(b),d):t},d.subject=function(b){return arguments.length?(n=typeof b=="function"?b:Pn(b),d):n},d.touchable=function(b){return arguments.length?(r=typeof b=="function"?b:Pn(!!b),d):r},d.on=function(){var b=o.on.apply(o,arguments);return b===o?d:b},d.clickDistance=function(b){return arguments.length?(f=(b=+b)*b,d):Math.sqrt(f)},d}function po(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function kc(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function Tn(){}var xn=.7,ir=1/xn,Lt="\\s*([+-]?\\d+)\\s*",Sn="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",Ue="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",ky=/^#([0-9a-f]{3,8})$/,Oy=new RegExp(`^rgb\\(${Lt},${Lt},${Lt}\\)$`),jy=new RegExp(`^rgb\\(${Ue},${Ue},${Ue}\\)$`),Py=new RegExp(`^rgba\\(${Lt},${Lt},${Lt},${Sn}\\)$`),Ly=new RegExp(`^rgba\\(${Ue},${Ue},${Ue},${Sn}\\)$`),Dy=new RegExp(`^hsl\\(${Sn},${Ue},${Ue}\\)$`),$y=new RegExp(`^hsla\\(${Sn},${Ue},${Ue},${Sn}\\)$`),wi={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};po(Tn,Ct,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:Ei,formatHex:Ei,formatHex8:Fy,formatHsl:zy,formatRgb:Ci,toString:Ci});function Ei(){return this.rgb().formatHex()}function Fy(){return this.rgb().formatHex8()}function zy(){return Oc(this).formatHsl()}function Ci(){return this.rgb().formatRgb()}function Ct(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=ky.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?Ni(t):n===3?new be(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?Ln(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?Ln(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=Oy.exec(e))?new be(t[1],t[2],t[3],1):(t=jy.exec(e))?new be(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=Py.exec(e))?Ln(t[1],t[2],t[3],t[4]):(t=Ly.exec(e))?Ln(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=Dy.exec(e))?Ti(t[1],t[2]/100,t[3]/100,1):(t=$y.exec(e))?Ti(t[1],t[2]/100,t[3]/100,t[4]):wi.hasOwnProperty(e)?Ni(wi[e]):e==="transparent"?new be(NaN,NaN,NaN,0):null}function Ni(e){return new be(e>>16&255,e>>8&255,e&255,1)}function Ln(e,t,n,r){return r<=0&&(e=t=n=NaN),new be(e,t,n,r)}function Hy(e){return e instanceof Tn||(e=Ct(e)),e?(e=e.rgb(),new be(e.r,e.g,e.b,e.opacity)):new be}function ar(e,t,n,r){return arguments.length===1?Hy(e):new be(e,t,n,r??1)}function be(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}po(be,ar,kc(Tn,{brighter(e){return e=e==null?ir:Math.pow(ir,e),new be(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?xn:Math.pow(xn,e),new be(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new be(It(this.r),It(this.g),It(this.b),lr(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:Ri,formatHex:Ri,formatHex8:By,formatRgb:_i,toString:_i}));function Ri(){return`#${xt(this.r)}${xt(this.g)}${xt(this.b)}`}function By(){return`#${xt(this.r)}${xt(this.g)}${xt(this.b)}${xt((isNaN(this.opacity)?1:this.opacity)*255)}`}function _i(){const e=lr(this.opacity);return`${e===1?"rgb(":"rgba("}${It(this.r)}, ${It(this.g)}, ${It(this.b)}${e===1?")":`, ${e})`}`}function lr(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function It(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function xt(e){return e=It(e),(e<16?"0":"")+e.toString(16)}function Ti(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new je(e,t,n,r)}function Oc(e){if(e instanceof je)return new je(e.h,e.s,e.l,e.opacity);if(e instanceof Tn||(e=Ct(e)),!e)return new je;if(e instanceof je)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,s=Math.min(t,n,r),o=Math.max(t,n,r),i=NaN,a=o-s,l=(o+s)/2;return a?(t===o?i=(n-r)/a+(n<r)*6:n===o?i=(r-t)/a+2:i=(t-n)/a+4,a/=l<.5?o+s:2-o-s,i*=60):a=l>0&&l<1?0:i,new je(i,a,l,e.opacity)}function Gy(e,t,n,r){return arguments.length===1?Oc(e):new je(e,t,n,r??1)}function je(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}po(je,Gy,kc(Tn,{brighter(e){return e=e==null?ir:Math.pow(ir,e),new je(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?xn:Math.pow(xn,e),new je(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,s=2*n-r;return new be(rs(e>=240?e-240:e+120,s,r),rs(e,s,r),rs(e<120?e+240:e-120,s,r),this.opacity)},clamp(){return new je(Ai(this.h),Dn(this.s),Dn(this.l),lr(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=lr(this.opacity);return`${e===1?"hsl(":"hsla("}${Ai(this.h)}, ${Dn(this.s)*100}%, ${Dn(this.l)*100}%${e===1?")":`, ${e})`}`}}));function Ai(e){return e=(e||0)%360,e<0?e+360:e}function Dn(e){return Math.max(0,Math.min(1,e||0))}function rs(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}function jc(e,t,n,r,s){var o=e*e,i=o*e;return((1-3*e+3*o-i)*t+(4-6*o+3*i)*n+(1+3*e+3*o-3*i)*r+i*s)/6}function Uy(e){var t=e.length-1;return function(n){var r=n<=0?n=0:n>=1?(n=1,t-1):Math.floor(n*t),s=e[r],o=e[r+1],i=r>0?e[r-1]:2*s-o,a=r<t-1?e[r+2]:2*o-s;return jc((n-r/t)*t,i,s,o,a)}}function qy(e){var t=e.length;return function(n){var r=Math.floor(((n%=1)<0?++n:n)*t),s=e[(r+t-1)%t],o=e[r%t],i=e[(r+1)%t],a=e[(r+2)%t];return jc((n-r/t)*t,s,o,i,a)}}var go=e=>()=>e;function Vy(e,t){return function(n){return e+n*t}}function Ky(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(r){return Math.pow(e+r*t,n)}}function Yy(e){return(e=+e)==1?Pc:function(t,n){return n-t?Ky(t,n,e):go(isNaN(t)?n:t)}}function Pc(e,t){var n=t-e;return n?Vy(e,n):go(isNaN(e)?t:e)}var cr=(function e(t){var n=Yy(t);function r(s,o){var i=n((s=ar(s)).r,(o=ar(o)).r),a=n(s.g,o.g),l=n(s.b,o.b),c=Pc(s.opacity,o.opacity);return function(u){return s.r=i(u),s.g=a(u),s.b=l(u),s.opacity=c(u),s+""}}return r.gamma=e,r})(1);function Lc(e){return function(t){var n=t.length,r=new Array(n),s=new Array(n),o=new Array(n),i,a;for(i=0;i<n;++i)a=ar(t[i]),r[i]=a.r||0,s[i]=a.g||0,o[i]=a.b||0;return r=e(r),s=e(s),o=e(o),a.opacity=1,function(l){return a.r=r(l),a.g=s(l),a.b=o(l),a+""}}}var A_=Lc(Uy),M_=Lc(qy);function Wy(e,t){t||(t=[]);var n=e?Math.min(t.length,e.length):0,r=t.slice(),s;return function(o){for(s=0;s<n;++s)r[s]=e[s]*(1-o)+t[s]*o;return r}}function Xy(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function Qy(e,t){var n=t?t.length:0,r=e?Math.min(n,e.length):0,s=new Array(r),o=new Array(n),i;for(i=0;i<r;++i)s[i]=pn(e[i],t[i]);for(;i<n;++i)o[i]=t[i];return function(a){for(i=0;i<r;++i)o[i]=s[i](a);return o}}function Jy(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}function Be(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function Zy(e,t){var n={},r={},s;(e===null||typeof e!="object")&&(e={}),(t===null||typeof t!="object")&&(t={});for(s in t)s in e?n[s]=pn(e[s],t[s]):r[s]=t[s];return function(o){for(s in n)r[s]=n[s](o);return r}}var As=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,ss=new RegExp(As.source,"g");function eb(e){return function(){return e}}function tb(e){return function(t){return e(t)+""}}function Dc(e,t){var n=As.lastIndex=ss.lastIndex=0,r,s,o,i=-1,a=[],l=[];for(e=e+"",t=t+"";(r=As.exec(e))&&(s=ss.exec(t));)(o=s.index)>n&&(o=t.slice(n,o),a[i]?a[i]+=o:a[++i]=o),(r=r[0])===(s=s[0])?a[i]?a[i]+=s:a[++i]=s:(a[++i]=null,l.push({i,x:Be(r,s)})),n=ss.lastIndex;return n<t.length&&(o=t.slice(n),a[i]?a[i]+=o:a[++i]=o),a.length<2?l[0]?tb(l[0].x):eb(t):(t=l.length,function(c){for(var u=0,f;u<t;++u)a[(f=l[u]).i]=f.x(c);return a.join("")})}function pn(e,t){var n=typeof t,r;return t==null||n==="boolean"?go(t):(n==="number"?Be:n==="string"?(r=Ct(t))?(t=r,cr):Dc:t instanceof Ct?cr:t instanceof Date?Jy:Xy(t)?Wy:Array.isArray(t)?Qy:typeof t.valueOf!="function"&&typeof t.toString!="function"||isNaN(t)?Zy:Be)(e,t)}var Mi=180/Math.PI,Ms={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function $c(e,t,n,r,s,o){var i,a,l;return(i=Math.sqrt(e*e+t*t))&&(e/=i,t/=i),(l=e*n+t*r)&&(n-=e*l,r-=t*l),(a=Math.sqrt(n*n+r*r))&&(n/=a,r/=a,l/=a),e*r<t*n&&(e=-e,t=-t,l=-l,i=-i),{translateX:s,translateY:o,rotate:Math.atan2(t,e)*Mi,skewX:Math.atan(l)*Mi,scaleX:i,scaleY:a}}var $n;function nb(e){const t=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(e+"");return t.isIdentity?Ms:$c(t.a,t.b,t.c,t.d,t.e,t.f)}function rb(e){return e==null||($n||($n=document.createElementNS("http://www.w3.org/2000/svg","g")),$n.setAttribute("transform",e),!(e=$n.transform.baseVal.consolidate()))?Ms:(e=e.matrix,$c(e.a,e.b,e.c,e.d,e.e,e.f))}function Fc(e,t,n,r){function s(c){return c.length?c.pop()+" ":""}function o(c,u,f,d,p,g){if(c!==f||u!==d){var y=p.push("translate(",null,t,null,n);g.push({i:y-4,x:Be(c,f)},{i:y-2,x:Be(u,d)})}else(f||d)&&p.push("translate("+f+t+d+n)}function i(c,u,f,d){c!==u?(c-u>180?u+=360:u-c>180&&(c+=360),d.push({i:f.push(s(f)+"rotate(",null,r)-2,x:Be(c,u)})):u&&f.push(s(f)+"rotate("+u+r)}function a(c,u,f,d){c!==u?d.push({i:f.push(s(f)+"skewX(",null,r)-2,x:Be(c,u)}):u&&f.push(s(f)+"skewX("+u+r)}function l(c,u,f,d,p,g){if(c!==f||u!==d){var y=p.push(s(p)+"scale(",null,",",null,")");g.push({i:y-4,x:Be(c,f)},{i:y-2,x:Be(u,d)})}else(f!==1||d!==1)&&p.push(s(p)+"scale("+f+","+d+")")}return function(c,u){var f=[],d=[];return c=e(c),u=e(u),o(c.translateX,c.translateY,u.translateX,u.translateY,f,d),i(c.rotate,u.rotate,f,d),a(c.skewX,u.skewX,f,d),l(c.scaleX,c.scaleY,u.scaleX,u.scaleY,f,d),c=u=null,function(p){for(var g=-1,y=d.length,x;++g<y;)f[(x=d[g]).i]=x.x(p);return f.join("")}}}var sb=Fc(nb,"px, ","px)","deg)"),ob=Fc(rb,", ",")",")"),ib=1e-12;function ki(e){return((e=Math.exp(e))+1/e)/2}function ab(e){return((e=Math.exp(e))-1/e)/2}function lb(e){return((e=Math.exp(2*e))-1)/(e+1)}var Qn=(function e(t,n,r){function s(o,i){var a=o[0],l=o[1],c=o[2],u=i[0],f=i[1],d=i[2],p=u-a,g=f-l,y=p*p+g*g,x,v;if(y<ib)v=Math.log(d/c)/t,x=function(N){return[a+N*p,l+N*g,c*Math.exp(t*N*v)]};else{var I=Math.sqrt(y),m=(d*d-c*c+r*y)/(2*c*n*I),b=(d*d-c*c-r*y)/(2*d*n*I),E=Math.log(Math.sqrt(m*m+1)-m);v=(Math.log(Math.sqrt(b*b+1)-b)-E)/t,x=function(N){var R=N*v,A=ki(E),k=c/(n*I)*(A*lb(t*R+E)-ab(E));return[a+k*p,l+k*g,c*A/ki(t*R+E)]}}return x.duration=v*1e3*t/Math.SQRT2,x}return s.rho=function(o){var i=Math.max(.001,+o),a=i*i;return e(i,a,a*a)},s})(Math.SQRT2,2,4),qt=0,cn=0,rn=0,zc=1e3,ur,un,dr=0,Nt=0,Mr=0,In=typeof performance=="object"&&performance.now?performance:Date,Hc=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function mo(){return Nt||(Hc(cb),Nt=In.now()+Mr)}function cb(){Nt=0}function hr(){this._call=this._time=this._next=null}hr.prototype=Bc.prototype={constructor:hr,restart:function(e,t,n){if(typeof e!="function")throw new TypeError("callback is not a function");n=(n==null?mo():+n)+(t==null?0:+t),!this._next&&un!==this&&(un?un._next=this:ur=this,un=this),this._call=e,this._time=n,ks()},stop:function(){this._call&&(this._call=null,this._time=1/0,ks())}};function Bc(e,t,n){var r=new hr;return r.restart(e,t,n),r}function ub(){mo(),++qt;for(var e=ur,t;e;)(t=Nt-e._time)>=0&&e._call.call(void 0,t),e=e._next;--qt}function Oi(){Nt=(dr=In.now())+Mr,qt=cn=0;try{ub()}finally{qt=0,hb(),Nt=0}}function db(){var e=In.now(),t=e-dr;t>zc&&(Mr-=t,dr=e)}function hb(){for(var e,t=ur,n,r=1/0;t;)t._call?(r>t._time&&(r=t._time),e=t,t=t._next):(n=t._next,t._next=null,t=e?e._next=n:ur=n);un=e,ks(r)}function ks(e){qt||(cn&&(cn=clearTimeout(cn)),e-Nt>24?(e<1/0&&(cn=setTimeout(Oi,e-In.now()-Mr)),rn&&(rn=clearInterval(rn))):(rn||(dr=In.now(),rn=setInterval(db,zc)),qt=1,Hc(Oi)))}function ji(e,t,n){var r=new hr;return t=t==null?0:+t,r.restart(s=>{r.stop(),e(s+t)},t,n),r}var fb=Tr("start","end","cancel","interrupt"),pb=[];function kr(e,t,n,r,s,o){var i=e.__transition;if(!i)e.__transition={};else if(n in i)return;gb(e,n,{name:t,index:r,group:s,on:fb,tween:pb,time:o.time,delay:o.delay,duration:o.duration,ease:o.ease,timer:null,state:0})}function vo(e,t){var n=$e(e,t);if(n.state>0)throw new Error("too late; already scheduled");return n}function Ke(e,t){var n=$e(e,t);if(n.state>3)throw new Error("too late; already running");return n}function $e(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw new Error("transition not found");return n}function gb(e,t,n){var r=e.__transition,s;r[t]=n,n.timer=Bc(o,0,n.time);function o(c){n.state=1,n.timer.restart(i,n.delay,n.time),n.delay<=c&&i(c-n.delay)}function i(c){var u,f,d,p;if(n.state!==1)return l();for(u in r)if(p=r[u],p.name===n.name){if(p.state===3)return ji(i);p.state===4?(p.state=6,p.timer.stop(),p.on.call("interrupt",e,e.__data__,p.index,p.group),delete r[u]):+u<t&&(p.state=6,p.timer.stop(),p.on.call("cancel",e,e.__data__,p.index,p.group),delete r[u])}if(ji(function(){n.state===3&&(n.state=4,n.timer.restart(a,n.delay,n.time),a(c))}),n.state=2,n.on.call("start",e,e.__data__,n.index,n.group),n.state===2){for(n.state=3,s=new Array(d=n.tween.length),u=0,f=-1;u<d;++u)(p=n.tween[u].value.call(e,e.__data__,n.index,n.group))&&(s[++f]=p);s.length=f+1}}function a(c){for(var u=c<n.duration?n.ease.call(null,c/n.duration):(n.timer.restart(l),n.state=5,1),f=-1,d=s.length;++f<d;)s[f].call(e,u);n.state===5&&(n.on.call("end",e,e.__data__,n.index,n.group),l())}function l(){n.state=6,n.timer.stop(),delete r[t];for(var c in r)return;delete e.__transition}}function Jn(e,t){var n=e.__transition,r,s,o=!0,i;if(n){t=t==null?null:t+"";for(i in n){if((r=n[i]).name!==t){o=!1;continue}s=r.state>2&&r.state<5,r.state=6,r.timer.stop(),r.on.call(s?"interrupt":"cancel",e,e.__data__,r.index,r.group),delete n[i]}o&&delete e.__transition}}function mb(e){return this.each(function(){Jn(this,e)})}function vb(e,t){var n,r;return function(){var s=Ke(this,e),o=s.tween;if(o!==n){r=n=o;for(var i=0,a=r.length;i<a;++i)if(r[i].name===t){r=r.slice(),r.splice(i,1);break}}s.tween=r}}function yb(e,t,n){var r,s;if(typeof n!="function")throw new Error;return function(){var o=Ke(this,e),i=o.tween;if(i!==r){s=(r=i).slice();for(var a={name:t,value:n},l=0,c=s.length;l<c;++l)if(s[l].name===t){s[l]=a;break}l===c&&s.push(a)}o.tween=s}}function bb(e,t){var n=this._id;if(e+="",arguments.length<2){for(var r=$e(this.node(),n).tween,s=0,o=r.length,i;s<o;++s)if((i=r[s]).name===e)return i.value;return null}return this.each((t==null?vb:yb)(n,e,t))}function yo(e,t,n){var r=e._id;return e.each(function(){var s=Ke(this,r);(s.value||(s.value={}))[t]=n.apply(this,arguments)}),function(s){return $e(s,r).value[t]}}function Gc(e,t){var n;return(typeof t=="number"?Be:t instanceof Ct?cr:(n=Ct(t))?(t=n,cr):Dc)(e,t)}function xb(e){return function(){this.removeAttribute(e)}}function Sb(e){return function(){this.removeAttributeNS(e.space,e.local)}}function Ib(e,t,n){var r,s=n+"",o;return function(){var i=this.getAttribute(e);return i===s?null:i===r?o:o=t(r=i,n)}}function wb(e,t,n){var r,s=n+"",o;return function(){var i=this.getAttributeNS(e.space,e.local);return i===s?null:i===r?o:o=t(r=i,n)}}function Eb(e,t,n){var r,s,o;return function(){var i,a=n(this),l;return a==null?void this.removeAttribute(e):(i=this.getAttribute(e),l=a+"",i===l?null:i===r&&l===s?o:(s=l,o=t(r=i,a)))}}function Cb(e,t,n){var r,s,o;return function(){var i,a=n(this),l;return a==null?void this.removeAttributeNS(e.space,e.local):(i=this.getAttributeNS(e.space,e.local),l=a+"",i===l?null:i===r&&l===s?o:(s=l,o=t(r=i,a)))}}function Nb(e,t){var n=Ar(e),r=n==="transform"?ob:Gc;return this.attrTween(e,typeof t=="function"?(n.local?Cb:Eb)(n,r,yo(this,"attr."+e,t)):t==null?(n.local?Sb:xb)(n):(n.local?wb:Ib)(n,r,t))}function Rb(e,t){return function(n){this.setAttribute(e,t.call(this,n))}}function _b(e,t){return function(n){this.setAttributeNS(e.space,e.local,t.call(this,n))}}function Tb(e,t){var n,r;function s(){var o=t.apply(this,arguments);return o!==r&&(n=(r=o)&&_b(e,o)),n}return s._value=t,s}function Ab(e,t){var n,r;function s(){var o=t.apply(this,arguments);return o!==r&&(n=(r=o)&&Rb(e,o)),n}return s._value=t,s}function Mb(e,t){var n="attr."+e;if(arguments.length<2)return(n=this.tween(n))&&n._value;if(t==null)return this.tween(n,null);if(typeof t!="function")throw new Error;var r=Ar(e);return this.tween(n,(r.local?Tb:Ab)(r,t))}function kb(e,t){return function(){vo(this,e).delay=+t.apply(this,arguments)}}function Ob(e,t){return t=+t,function(){vo(this,e).delay=t}}function jb(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?kb:Ob)(t,e)):$e(this.node(),t).delay}function Pb(e,t){return function(){Ke(this,e).duration=+t.apply(this,arguments)}}function Lb(e,t){return t=+t,function(){Ke(this,e).duration=t}}function Db(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?Pb:Lb)(t,e)):$e(this.node(),t).duration}function $b(e,t){if(typeof t!="function")throw new Error;return function(){Ke(this,e).ease=t}}function Fb(e){var t=this._id;return arguments.length?this.each($b(t,e)):$e(this.node(),t).ease}function zb(e,t){return function(){var n=t.apply(this,arguments);if(typeof n!="function")throw new Error;Ke(this,e).ease=n}}function Hb(e){if(typeof e!="function")throw new Error;return this.each(zb(this._id,e))}function Bb(e){typeof e!="function"&&(e=bc(e));for(var t=this._groups,n=t.length,r=new Array(n),s=0;s<n;++s)for(var o=t[s],i=o.length,a=r[s]=[],l,c=0;c<i;++c)(l=o[c])&&e.call(l,l.__data__,c,o)&&a.push(l);return new tt(r,this._parents,this._name,this._id)}function Gb(e){if(e._id!==this._id)throw new Error;for(var t=this._groups,n=e._groups,r=t.length,s=n.length,o=Math.min(r,s),i=new Array(r),a=0;a<o;++a)for(var l=t[a],c=n[a],u=l.length,f=i[a]=new Array(u),d,p=0;p<u;++p)(d=l[p]||c[p])&&(f[p]=d);for(;a<r;++a)i[a]=t[a];return new tt(i,this._parents,this._name,this._id)}function Ub(e){return(e+"").trim().split(/^|\s+/).every(function(t){var n=t.indexOf(".");return n>=0&&(t=t.slice(0,n)),!t||t==="start"})}function qb(e,t,n){var r,s,o=Ub(t)?vo:Ke;return function(){var i=o(this,e),a=i.on;a!==r&&(s=(r=a).copy()).on(t,n),i.on=s}}function Vb(e,t){var n=this._id;return arguments.length<2?$e(this.node(),n).on.on(e):this.each(qb(n,e,t))}function Kb(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function Yb(){return this.on("end.remove",Kb(this._id))}function Wb(e){var t=this._name,n=this._id;typeof e!="function"&&(e=ho(e));for(var r=this._groups,s=r.length,o=new Array(s),i=0;i<s;++i)for(var a=r[i],l=a.length,c=o[i]=new Array(l),u,f,d=0;d<l;++d)(u=a[d])&&(f=e.call(u,u.__data__,d,a))&&("__data__"in u&&(f.__data__=u.__data__),c[d]=f,kr(c[d],t,n,d,c,$e(u,n)));return new tt(o,this._parents,t,n)}function Xb(e){var t=this._name,n=this._id;typeof e!="function"&&(e=yc(e));for(var r=this._groups,s=r.length,o=[],i=[],a=0;a<s;++a)for(var l=r[a],c=l.length,u,f=0;f<c;++f)if(u=l[f]){for(var d=e.call(u,u.__data__,f,l),p,g=$e(u,n),y=0,x=d.length;y<x;++y)(p=d[y])&&kr(p,t,n,y,d,g);o.push(d),i.push(u)}return new tt(o,i,t,n)}var Qb=Zt.prototype.constructor;function Jb(){return new Qb(this._groups,this._parents)}function Zb(e,t){var n,r,s;return function(){var o=Ut(this,e),i=(this.style.removeProperty(e),Ut(this,e));return o===i?null:o===n&&i===r?s:s=t(n=o,r=i)}}function Uc(e){return function(){this.style.removeProperty(e)}}function ex(e,t,n){var r,s=n+"",o;return function(){var i=Ut(this,e);return i===s?null:i===r?o:o=t(r=i,n)}}function tx(e,t,n){var r,s,o;return function(){var i=Ut(this,e),a=n(this),l=a+"";return a==null&&(l=a=(this.style.removeProperty(e),Ut(this,e))),i===l?null:i===r&&l===s?o:(s=l,o=t(r=i,a))}}function nx(e,t){var n,r,s,o="style."+t,i="end."+o,a;return function(){var l=Ke(this,e),c=l.on,u=l.value[o]==null?a||(a=Uc(t)):void 0;(c!==n||s!==u)&&(r=(n=c).copy()).on(i,s=u),l.on=r}}function rx(e,t,n){var r=(e+="")=="transform"?sb:Gc;return t==null?this.styleTween(e,Zb(e,r)).on("end.style."+e,Uc(e)):typeof t=="function"?this.styleTween(e,tx(e,r,yo(this,"style."+e,t))).each(nx(this._id,e)):this.styleTween(e,ex(e,r,t),n).on("end.style."+e,null)}function sx(e,t,n){return function(r){this.style.setProperty(e,t.call(this,r),n)}}function ox(e,t,n){var r,s;function o(){var i=t.apply(this,arguments);return i!==s&&(r=(s=i)&&sx(e,i,n)),r}return o._value=t,o}function ix(e,t,n){var r="style."+(e+="");if(arguments.length<2)return(r=this.tween(r))&&r._value;if(t==null)return this.tween(r,null);if(typeof t!="function")throw new Error;return this.tween(r,ox(e,t,n??""))}function ax(e){return function(){this.textContent=e}}function lx(e){return function(){var t=e(this);this.textContent=t??""}}function cx(e){return this.tween("text",typeof e=="function"?lx(yo(this,"text",e)):ax(e==null?"":e+""))}function ux(e){return function(t){this.textContent=e.call(this,t)}}function dx(e){var t,n;function r(){var s=e.apply(this,arguments);return s!==n&&(t=(n=s)&&ux(s)),t}return r._value=e,r}function hx(e){var t="text";if(arguments.length<1)return(t=this.tween(t))&&t._value;if(e==null)return this.tween(t,null);if(typeof e!="function")throw new Error;return this.tween(t,dx(e))}function fx(){for(var e=this._name,t=this._id,n=qc(),r=this._groups,s=r.length,o=0;o<s;++o)for(var i=r[o],a=i.length,l,c=0;c<a;++c)if(l=i[c]){var u=$e(l,t);kr(l,e,n,c,i,{time:u.time+u.delay+u.duration,delay:0,duration:u.duration,ease:u.ease})}return new tt(r,this._parents,e,n)}function px(){var e,t,n=this,r=n._id,s=n.size();return new Promise(function(o,i){var a={value:i},l={value:function(){--s===0&&o()}};n.each(function(){var c=Ke(this,r),u=c.on;u!==e&&(t=(e=u).copy(),t._.cancel.push(a),t._.interrupt.push(a),t._.end.push(l)),c.on=t}),s===0&&o()})}var gx=0;function tt(e,t,n,r){this._groups=e,this._parents=t,this._name=n,this._id=r}function mx(e){return Zt().transition(e)}function qc(){return++gx}var Xe=Zt.prototype;tt.prototype=mx.prototype={constructor:tt,select:Wb,selectAll:Xb,selectChild:Xe.selectChild,selectChildren:Xe.selectChildren,filter:Bb,merge:Gb,selection:Jb,transition:fx,call:Xe.call,nodes:Xe.nodes,node:Xe.node,size:Xe.size,empty:Xe.empty,each:Xe.each,on:Vb,attr:Nb,attrTween:Mb,style:rx,styleTween:ix,text:cx,textTween:hx,remove:Yb,tween:bb,delay:jb,duration:Db,ease:Fb,easeVarying:Hb,end:px,[Symbol.iterator]:Xe[Symbol.iterator]};function vx(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}var yx={time:null,delay:0,duration:250,ease:vx};function bx(e,t){for(var n;!(n=e.__transition)||!(n=n[t]);)if(!(e=e.parentNode))throw new Error(`transition ${t} not found`);return n}function xx(e){var t,n;e instanceof tt?(t=e._id,e=e._name):(t=qc(),(n=yx).time=mo(),e=e==null?null:e+"");for(var r=this._groups,s=r.length,o=0;o<s;++o)for(var i=r[o],a=i.length,l,c=0;c<a;++c)(l=i[c])&&kr(l,e,t,c,i,n||bx(l,t));return new tt(r,this._parents,e,t)}Zt.prototype.interrupt=mb;Zt.prototype.transition=xx;var Fn=e=>()=>e;function Sx(e,{sourceEvent:t,target:n,transform:r,dispatch:s}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:r,enumerable:!0,configurable:!0},_:{value:s}})}function Ze(e,t,n){this.k=e,this.x=t,this.y=n}Ze.prototype={constructor:Ze,scale:function(e){return e===1?this:new Ze(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new Ze(this.k,this.x+this.k*e,this.y+this.k*t)},apply:function(e){return[e[0]*this.k+this.x,e[1]*this.k+this.y]},applyX:function(e){return e*this.k+this.x},applyY:function(e){return e*this.k+this.y},invert:function(e){return[(e[0]-this.x)/this.k,(e[1]-this.y)/this.k]},invertX:function(e){return(e-this.x)/this.k},invertY:function(e){return(e-this.y)/this.k},rescaleX:function(e){return e.copy().domain(e.range().map(this.invertX,this).map(e.invert,e))},rescaleY:function(e){return e.copy().domain(e.range().map(this.invertY,this).map(e.invert,e))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var Or=new Ze(1,0,0);Vc.prototype=Ze.prototype;function Vc(e){for(;!e.__zoom;)if(!(e=e.parentNode))return Or;return e.__zoom}function os(e){e.stopImmediatePropagation()}function sn(e){e.preventDefault(),e.stopImmediatePropagation()}function Ix(e){return(!e.ctrlKey||e.type==="wheel")&&!e.button}function wx(){var e=this;return e instanceof SVGElement?(e=e.ownerSVGElement||e,e.hasAttribute("viewBox")?(e=e.viewBox.baseVal,[[e.x,e.y],[e.x+e.width,e.y+e.height]]):[[0,0],[e.width.baseVal.value,e.height.baseVal.value]]):[[0,0],[e.clientWidth,e.clientHeight]]}function Pi(){return this.__zoom||Or}function Ex(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function Cx(){return navigator.maxTouchPoints||"ontouchstart"in this}function Nx(e,t,n){var r=e.invertX(t[0][0])-n[0][0],s=e.invertX(t[1][0])-n[1][0],o=e.invertY(t[0][1])-n[0][1],i=e.invertY(t[1][1])-n[1][1];return e.translate(s>r?(r+s)/2:Math.min(0,r)||Math.max(0,s),i>o?(o+i)/2:Math.min(0,o)||Math.max(0,i))}function Kc(){var e=Ix,t=wx,n=Nx,r=Ex,s=Cx,o=[0,1/0],i=[[-1/0,-1/0],[1/0,1/0]],a=250,l=Qn,c=Tr("start","zoom","end"),u,f,d,p=500,g=150,y=0,x=10;function v(S){S.property("__zoom",Pi).on("wheel.zoom",A,{passive:!1}).on("mousedown.zoom",k).on("dblclick.zoom",L).filter(s).on("touchstart.zoom",_).on("touchmove.zoom",M).on("touchend.zoom touchcancel.zoom",O).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}v.transform=function(S,w,T,j){var D=S.selection?S.selection():S;D.property("__zoom",Pi),S!==D?E(S,w,T,j):D.interrupt().each(function(){N(this,arguments).event(j).start().zoom(null,typeof w=="function"?w.apply(this,arguments):w).end()})},v.scaleBy=function(S,w,T,j){v.scaleTo(S,function(){return this.__zoom.k*(typeof w=="function"?w.apply(this,arguments):w)},T,j)},v.scaleTo=function(S,w,T,j){v.transform(S,function(){var D=t.apply(this,arguments),P=this.__zoom,F=T==null?b(D):typeof T=="function"?T.apply(this,arguments):T,z=P.invert(F),B=typeof w=="function"?w.apply(this,arguments):w;return n(m(I(P,B),F,z),D,i)},T,j)},v.translateBy=function(S,w,T,j){v.transform(S,function(){return n(this.__zoom.translate(typeof w=="function"?w.apply(this,arguments):w,typeof T=="function"?T.apply(this,arguments):T),t.apply(this,arguments),i)},null,j)},v.translateTo=function(S,w,T,j,D){v.transform(S,function(){var P=t.apply(this,arguments),F=this.__zoom,z=j==null?b(P):typeof j=="function"?j.apply(this,arguments):j;return n(Or.translate(z[0],z[1]).scale(F.k).translate(typeof w=="function"?-w.apply(this,arguments):-w,typeof T=="function"?-T.apply(this,arguments):-T),P,i)},j,D)};function I(S,w){return w=Math.max(o[0],Math.min(o[1],w)),w===S.k?S:new Ze(w,S.x,S.y)}function m(S,w,T){var j=w[0]-T[0]*S.k,D=w[1]-T[1]*S.k;return j===S.x&&D===S.y?S:new Ze(S.k,j,D)}function b(S){return[(+S[0][0]+ +S[1][0])/2,(+S[0][1]+ +S[1][1])/2]}function E(S,w,T,j){S.on("start.zoom",function(){N(this,arguments).event(j).start()}).on("interrupt.zoom end.zoom",function(){N(this,arguments).event(j).end()}).tween("zoom",function(){var D=this,P=arguments,F=N(D,P).event(j),z=t.apply(D,P),B=T==null?b(z):typeof T=="function"?T.apply(D,P):T,K=Math.max(z[1][0]-z[0][0],z[1][1]-z[0][1]),H=D.__zoom,W=typeof w=="function"?w.apply(D,P):w,J=l(H.invert(B).concat(K/H.k),W.invert(B).concat(K/W.k));return function(X){if(X===1)X=W;else{var $=J(X),q=K/$[2];X=new Ze(q,B[0]-$[0]*q,B[1]-$[1]*q)}F.zoom(null,X)}})}function N(S,w,T){return!T&&S.__zooming||new R(S,w)}function R(S,w){this.that=S,this.args=w,this.active=0,this.sourceEvent=null,this.extent=t.apply(S,w),this.taps=0}R.prototype={event:function(S){return S&&(this.sourceEvent=S),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(S,w){return this.mouse&&S!=="mouse"&&(this.mouse[1]=w.invert(this.mouse[0])),this.touch0&&S!=="touch"&&(this.touch0[1]=w.invert(this.touch0[0])),this.touch1&&S!=="touch"&&(this.touch1[1]=w.invert(this.touch1[0])),this.that.__zoom=w,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(S){var w=Se(this.that).datum();c.call(S,this.that,new Sx(S,{sourceEvent:this.sourceEvent,target:v,type:S,transform:this.that.__zoom,dispatch:c}),w)}};function A(S,...w){if(!e.apply(this,arguments))return;var T=N(this,w).event(S),j=this.__zoom,D=Math.max(o[0],Math.min(o[1],j.k*Math.pow(2,r.apply(this,arguments)))),P=Oe(S);if(T.wheel)(T.mouse[0][0]!==P[0]||T.mouse[0][1]!==P[1])&&(T.mouse[1]=j.invert(T.mouse[0]=P)),clearTimeout(T.wheel);else{if(j.k===D)return;T.mouse=[P,j.invert(P)],Jn(this),T.start()}sn(S),T.wheel=setTimeout(F,g),T.zoom("mouse",n(m(I(j,D),T.mouse[0],T.mouse[1]),T.extent,i));function F(){T.wheel=null,T.end()}}function k(S,...w){if(d||!e.apply(this,arguments))return;var T=S.currentTarget,j=N(this,w,!0).event(S),D=Se(S.view).on("mousemove.zoom",B,!0).on("mouseup.zoom",K,!0),P=Oe(S,T),F=S.clientX,z=S.clientY;Tc(S.view),os(S),j.mouse=[P,this.__zoom.invert(P)],Jn(this),j.start();function B(H){if(sn(H),!j.moved){var W=H.clientX-F,J=H.clientY-z;j.moved=W*W+J*J>y}j.event(H).zoom("mouse",n(m(j.that.__zoom,j.mouse[0]=Oe(H,T),j.mouse[1]),j.extent,i))}function K(H){D.on("mousemove.zoom mouseup.zoom",null),Ac(H.view,j.moved),sn(H),j.event(H).end()}}function L(S,...w){if(e.apply(this,arguments)){var T=this.__zoom,j=Oe(S.changedTouches?S.changedTouches[0]:S,this),D=T.invert(j),P=T.k*(S.shiftKey?.5:2),F=n(m(I(T,P),j,D),t.apply(this,w),i);sn(S),a>0?Se(this).transition().duration(a).call(E,F,j,S):Se(this).call(v.transform,F,j,S)}}function _(S,...w){if(e.apply(this,arguments)){var T=S.touches,j=T.length,D=N(this,w,S.changedTouches.length===j).event(S),P,F,z,B;for(os(S),F=0;F<j;++F)z=T[F],B=Oe(z,this),B=[B,this.__zoom.invert(B),z.identifier],D.touch0?!D.touch1&&D.touch0[2]!==B[2]&&(D.touch1=B,D.taps=0):(D.touch0=B,P=!0,D.taps=1+!!u);u&&(u=clearTimeout(u)),P&&(D.taps<2&&(f=B[0],u=setTimeout(function(){u=null},p)),Jn(this),D.start())}}function M(S,...w){if(this.__zooming){var T=N(this,w).event(S),j=S.changedTouches,D=j.length,P,F,z,B;for(sn(S),P=0;P<D;++P)F=j[P],z=Oe(F,this),T.touch0&&T.touch0[2]===F.identifier?T.touch0[0]=z:T.touch1&&T.touch1[2]===F.identifier&&(T.touch1[0]=z);if(F=T.that.__zoom,T.touch1){var K=T.touch0[0],H=T.touch0[1],W=T.touch1[0],J=T.touch1[1],X=(X=W[0]-K[0])*X+(X=W[1]-K[1])*X,$=($=J[0]-H[0])*$+($=J[1]-H[1])*$;F=I(F,Math.sqrt(X/$)),z=[(K[0]+W[0])/2,(K[1]+W[1])/2],B=[(H[0]+J[0])/2,(H[1]+J[1])/2]}else if(T.touch0)z=T.touch0[0],B=T.touch0[1];else return;T.zoom("touch",n(m(F,z,B),T.extent,i))}}function O(S,...w){if(this.__zooming){var T=N(this,w).event(S),j=S.changedTouches,D=j.length,P,F;for(os(S),d&&clearTimeout(d),d=setTimeout(function(){d=null},p),P=0;P<D;++P)F=j[P],T.touch0&&T.touch0[2]===F.identifier?delete T.touch0:T.touch1&&T.touch1[2]===F.identifier&&delete T.touch1;if(T.touch1&&!T.touch0&&(T.touch0=T.touch1,delete T.touch1),T.touch0)T.touch0[1]=this.__zoom.invert(T.touch0[0]);else if(T.end(),T.taps===2&&(F=Oe(F,this),Math.hypot(f[0]-F[0],f[1]-F[1])<x)){var z=Se(this).on("dblclick.zoom");z&&z.apply(this,arguments)}}}return v.wheelDelta=function(S){return arguments.length?(r=typeof S=="function"?S:Fn(+S),v):r},v.filter=function(S){return arguments.length?(e=typeof S=="function"?S:Fn(!!S),v):e},v.touchable=function(S){return arguments.length?(s=typeof S=="function"?S:Fn(!!S),v):s},v.extent=function(S){return arguments.length?(t=typeof S=="function"?S:Fn([[+S[0][0],+S[0][1]],[+S[1][0],+S[1][1]]]),v):t},v.scaleExtent=function(S){return arguments.length?(o[0]=+S[0],o[1]=+S[1],v):[o[0],o[1]]},v.translateExtent=function(S){return arguments.length?(i[0][0]=+S[0][0],i[1][0]=+S[1][0],i[0][1]=+S[0][1],i[1][1]=+S[1][1],v):[[i[0][0],i[0][1]],[i[1][0],i[1][1]]]},v.constrain=function(S){return arguments.length?(n=S,v):n},v.duration=function(S){return arguments.length?(a=+S,v):a},v.interpolate=function(S){return arguments.length?(l=S,v):l},v.on=function(){var S=c.on.apply(c,arguments);return S===c?v:S},v.clickDistance=function(S){return arguments.length?(y=(S=+S)*S,v):Math.sqrt(y)},v.tapDistance=function(S){return arguments.length?(x=+S,v):x},v}var Te={error001:(e="react")=>`Seems like you have not used ${e==="svelte"?"SvelteFlowProvider":"ReactFlowProvider"} as an ancestor. Help: https://${e}flow.dev/error#001`,error002:()=>"It looks like you've created a new nodeTypes or edgeTypes object. If this wasn't on purpose please define the nodeTypes/edgeTypes outside of the component or memoize them.",error003:e=>`Node type "${e}" not found. Using fallback type "default".`,error004:()=>"The parent container needs a width and a height to render the graph.",error005:()=>"Only child nodes can use a parent extent.",error006:()=>"Can't create edge. An edge needs a source and a target.",error007:e=>`The old edge with id=${e} does not exist.`,error009:e=>`Marker type "${e}" doesn't exist.`,error008:(e,{id:t,sourceHandle:n,targetHandle:r})=>`Couldn't create edge for ${e} handle id: "${e==="source"?n:r}", edge id: ${t}.`,error010:()=>"Handle: No node id found. Make sure to only use a Handle inside a custom Node.",error011:e=>`Edge type "${e}" not found. Using fallback type "default".`,error012:e=>`Node with id "${e}" does not exist, it may have been removed. This can happen when a node is deleted before the "onNodeClick" handler is called.`,error013:(e="react")=>`It seems that you haven't loaded the styles. Please import '@xyflow/${e}/dist/style.css' or base.css to make sure everything is working properly.`,error014:()=>"useNodeConnections: No node ID found. Call useNodeConnections inside a custom Node or provide a node ID.",error015:()=>"It seems that you are trying to drag a node that is not initialized. Please use onNodesChange as explained in the docs.",error016:e=>`Edge with id "${e}" does not exist, it may have been removed. This can happen when an edge is deleted before the "onEdgeClick" handler is called.`},wn=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],Yc=["Enter"," ","Escape"],Wc={"node.a11yDescription.default":"Press enter or space to select a node. Press delete to remove it and escape to cancel.","node.a11yDescription.keyboardDisabled":"Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.","node.a11yDescription.ariaLiveMessage":({direction:e,x:t,y:n})=>`Moved selected node ${e}. New position, x: ${t}, y: ${n}`,"edge.a11yDescription.default":"Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.","controls.ariaLabel":"Control Panel","controls.zoomIn.ariaLabel":"Zoom In","controls.zoomOut.ariaLabel":"Zoom Out","controls.fitView.ariaLabel":"Fit View","controls.interactive.ariaLabel":"Toggle Interactivity","minimap.ariaLabel":"Mini Map","handle.ariaLabel":"Handle"},Vt;(function(e){e.Strict="strict",e.Loose="loose"})(Vt||(Vt={}));var wt;(function(e){e.Free="free",e.Vertical="vertical",e.Horizontal="horizontal"})(wt||(wt={}));var En;(function(e){e.Partial="partial",e.Full="full"})(En||(En={}));var Xc={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null},at;(function(e){e.Bezier="default",e.Straight="straight",e.Step="step",e.SmoothStep="smoothstep",e.SimpleBezier="simplebezier"})(at||(at={}));var fr;(function(e){e.Arrow="arrow",e.ArrowClosed="arrowclosed"})(fr||(fr={}));var Y;(function(e){e.Left="left",e.Top="top",e.Right="right",e.Bottom="bottom"})(Y||(Y={}));var Li={[Y.Left]:Y.Right,[Y.Right]:Y.Left,[Y.Top]:Y.Bottom,[Y.Bottom]:Y.Top},Qc=e=>!!e&&typeof e=="object"&&"id"in e&&"source"in e&&"target"in e,Rx=e=>!!e&&typeof e=="object"&&"id"in e&&"position"in e&&!("source"in e)&&!("target"in e),bo=e=>!!e&&typeof e=="object"&&"id"in e&&"internals"in e&&!("source"in e)&&!("target"in e),An=(e,t=[0,0])=>{const{width:n,height:r}=Fe(e),s=e.origin??t,o=n*s[0],i=r*s[1];return{x:e.position.x-o,y:e.position.y-i}},_x=(e,t={nodeOrigin:[0,0]})=>{if(e.length===0)return{x:0,y:0,width:0,height:0};let n=!1;const r=e.reduce((s,o)=>{const i=typeof o=="string";let a=!t.nodeLookup&&!i?o:void 0;return t.nodeLookup&&(a=i?t.nodeLookup.get(o):bo(o)?o:t.nodeLookup.get(o.id)),a?(n=!0,jr(s,pr(a,t.nodeOrigin))):s},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return n?Pr(r):{x:0,y:0,width:0,height:0}},Mn=(e,t={})=>{let n={x:1/0,y:1/0,x2:-1/0,y2:-1/0},r=!1;return e.forEach(s=>{(t.filter===void 0||t.filter(s))&&(n=jr(n,pr(s)),r=!0)}),r?Pr(n):{x:0,y:0,width:0,height:0}},xo=(e,t,[n,r,s]=[0,0,1],o=!1,i=!1)=>{const a=(t.x-n)/s,l=(t.y-r)/s,c=t.width/s,u=t.height/s,f=[];for(const d of e.values()){const{measured:p,selectable:g=!0,hidden:y=!1}=d;if(i&&!g||y)continue;const x=p.width??d.width??d.initialWidth??0,v=p.height??d.height??d.initialHeight??0,{x:I,y:m}=d.internals.positionAbsolute,b=tu(a,l,c,u,I,m,x,v),E=x*v,N=o&&b>0;(!d.internals.handleBounds||N||b>=E||d.dragging)&&f.push(d)}return f},Tx=(e,t)=>{const n=new Set;return e.forEach(r=>{n.add(r.id)}),t.filter(r=>n.has(r.source)||n.has(r.target))};function Ax(e,t){const n=new Map,r=t?.nodes?new Set(t.nodes.map(s=>s.id)):null;return e.forEach(s=>{let o;if(t?.includeHiddenNodes){const{width:i,height:a}=Fe(s);o=i>0&&a>0}else o=!!(s.measured.width&&s.measured.height&&!s.hidden);o&&(!r||r.has(s.id))&&n.set(s.id,s)}),n}async function Mx({nodes:e,width:t,height:n,panZoom:r,minZoom:s,maxZoom:o},i){if(e.size===0)return!0;const a=Ax(e,i),l=Mn(a),c=Io(l,t,n,i?.minZoom??s,i?.maxZoom??o,i?.padding??.1);return await r.setViewport(c,{duration:i?.duration,ease:i?.ease,interpolate:i?.interpolate}),!0}function Jc({nodeId:e,nextPosition:t,nodeLookup:n,nodeOrigin:r=[0,0],nodeExtent:s,onError:o}){const i=n.get(e),a=i.parentId?n.get(i.parentId):void 0,{x:l,y:c}=a?a.internals.positionAbsolute:{x:0,y:0},u=i.origin??r;let f=i.extent||s;if(i.extent==="parent"&&!i.expandParent)if(!a)o?.("005",Te.error005());else{const{width:p,height:g}=Fe(a);p&&g&&(f=[[l,c],[l+p,c+g]])}else a&&_t(i.extent)&&(f=[[i.extent[0][0]+l,i.extent[0][1]+c],[i.extent[1][0]+l,i.extent[1][1]+c]]);const d=_t(f)?Rt(t,f,i.measured):t;return(i.measured.width===void 0||i.measured.height===void 0)&&o?.("015",Te.error015()),{position:{x:d.x-l+(i.measured.width??0)*u[0],y:d.y-c+(i.measured.height??0)*u[1]},positionAbsolute:d}}async function kx({nodesToRemove:e=[],edgesToRemove:t=[],nodes:n,edges:r,onBeforeDelete:s}){const o=new Set(e.map(f=>f.id)),i=[];for(const f of n){if(f.deletable===!1)continue;const d=o.has(f.id),p=!d&&f.parentId&&i.find(g=>g.id===f.parentId);(d||p)&&i.push(f)}const a=new Set(t.map(f=>f.id)),l=r.filter(f=>f.deletable!==!1),c=Tx(i,l);for(const f of l)a.has(f.id)&&!c.find(d=>d.id===f.id)&&c.push(f);if(!s)return{edges:c,nodes:i};const u=await s({nodes:i,edges:c});return typeof u=="boolean"?u?{edges:c,nodes:i}:{edges:[],nodes:[]}:u}var Kt=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),Rt=(e={x:0,y:0},t,n)=>({x:Kt(e.x,t[0][0],t[1][0]-(n?.width??0)),y:Kt(e.y,t[0][1],t[1][1]-(n?.height??0))});function Zc(e,t,n){const{width:r,height:s}=Fe(n),{x:o,y:i}=n.internals.positionAbsolute;return Rt(e,[[o,i],[o+r,i+s]],t)}var Di=(e,t,n)=>e<t?Kt(Math.abs(e-t),1,t)/t:e>n?-Kt(Math.abs(e-n),1,t)/t:0,So=(e,t,n=15,r=40)=>[Di(e.x,r,t.width-r)*n,Di(e.y,r,t.height-r)*n],jr=(e,t)=>({x:Math.min(e.x,t.x),y:Math.min(e.y,t.y),x2:Math.max(e.x2,t.x2),y2:Math.max(e.y2,t.y2)}),Os=({x:e,y:t,width:n,height:r})=>({x:e,y:t,x2:e+n,y2:t+r}),Pr=({x:e,y:t,x2:n,y2:r})=>({x:e,y:t,width:n-e,height:r-t}),Cn=(e,t=[0,0])=>{const{x:n,y:r}=bo(e)?e.internals.positionAbsolute:An(e,t);return{x:n,y:r,width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}},pr=(e,t=[0,0])=>{const{x:n,y:r}=bo(e)?e.internals.positionAbsolute:An(e,t);return{x:n,y:r,x2:n+(e.measured?.width??e.width??e.initialWidth??0),y2:r+(e.measured?.height??e.height??e.initialHeight??0)}},eu=(e,t)=>Pr(jr(Os(e),Os(t))),tu=(e,t,n,r,s,o,i,a)=>{const l=Math.max(0,Math.min(e+n,s+i)-Math.max(e,s)),c=Math.max(0,Math.min(t+r,o+a)-Math.max(t,o));return Math.ceil(l*c)},gr=(e,t)=>tu(e.x,e.y,e.width,e.height,t.x,t.y,t.width,t.height),$i=e=>Pe(e.width)&&Pe(e.height)&&Pe(e.x)&&Pe(e.y),Pe=e=>!isNaN(e)&&isFinite(e),nu=(e,t)=>(n,r)=>{},kn=(e,t=[1,1])=>({x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}),On=({x:e,y:t},[n,r,s],o=!1,i=[1,1])=>{const a={x:(e-n)/s,y:(t-r)/s};return o?kn(a,i):a},Yt=({x:e,y:t},[n,r,s])=>({x:e*s+n,y:t*s+r});function Ot(e,t){if(typeof e=="number")return Math.floor((t-t/(1+e))*.5);if(typeof e=="string"&&e.endsWith("px")){const n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(n)}if(typeof e=="string"&&e.endsWith("%")){const n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(t*n*.01)}return console.error(`The padding value "${e}" is invalid. Please provide a number or a string with a valid unit (px or %).`),0}function Ox(e,t,n){if(typeof e=="string"||typeof e=="number"){const r=Ot(e,n),s=Ot(e,t);return{top:r,right:s,bottom:r,left:s,x:s*2,y:r*2}}if(typeof e=="object"){const r=Ot(e.top??e.y??0,n),s=Ot(e.bottom??e.y??0,n),o=Ot(e.left??e.x??0,t),i=Ot(e.right??e.x??0,t);return{top:r,right:i,bottom:s,left:o,x:o+i,y:r+s}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}function jx(e,t,n,r,s,o){const{x:i,y:a}=Yt(e,[t,n,r]),{x:l,y:c}=Yt({x:e.x+e.width,y:e.y+e.height},[t,n,r]),u=s-l,f=o-c;return{left:Math.floor(i),top:Math.floor(a),right:Math.floor(u),bottom:Math.floor(f)}}var Io=(e,t,n,r,s,o)=>{const i=Ox(o,t,n),a=(t-i.x)/e.width,l=(n-i.y)/e.height,c=Kt(Math.min(a,l),r,s),u=e.x+e.width/2,f=e.y+e.height/2,d=t/2-u*c,p=n/2-f*c,g=jx(e,d,p,c,t,n),y={left:Math.min(g.left-i.left,0),top:Math.min(g.top-i.top,0),right:Math.min(g.right-i.right,0),bottom:Math.min(g.bottom-i.bottom,0)};return{x:d-y.left+y.right,y:p-y.top+y.bottom,zoom:c}},Nn=()=>typeof navigator<"u"&&navigator?.userAgent?.indexOf("Mac")>=0;function _t(e){return e!=null&&e!=="parent"}function Fe(e){return{width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}}function wo(e){return(e.measured?.width??e.width??e.initialWidth)!==void 0&&(e.measured?.height??e.height??e.initialHeight)!==void 0}function ru(e,t={width:0,height:0},n,r,s){const o={...e},i=r.get(n);if(i){const a=i.origin||s;o.x+=i.internals.positionAbsolute.x-(t.width??0)*a[0],o.y+=i.internals.positionAbsolute.y-(t.height??0)*a[1]}return o}function Fi(e,t){if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}function Px(){let e,t;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:e,reject:t}}function Lx(e){return{...Wc,...e||{}}}function su(e){return e===null?null:e?"valid":"invalid"}function gn(e,{snapGrid:t=[0,0],snapToGrid:n=!1,transform:r,containerBounds:s}){const{x:o,y:i}=Le(e),a=On({x:o-(s?.left??0),y:i-(s?.top??0)},r),{x:l,y:c}=n?kn(a,t):a;return{xSnapped:l,ySnapped:c,...a}}var Eo=e=>({width:e.offsetWidth,height:e.offsetHeight}),ou=e=>e?.getRootNode?.()||window?.document,Dx=["INPUT","SELECT","TEXTAREA"];function iu(e){const t=e.composedPath?.()?.[0]||e.target;return t?.nodeType!==1?!1:Dx.includes(t.nodeName)||t.hasAttribute("contenteditable")||!!t.closest(".nokey")}var au=e=>"clientX"in e,Le=(e,t)=>{const n=au(e),r=n?e.clientX:e.touches?.[0].clientX,s=n?e.clientY:e.touches?.[0].clientY;return{x:r-(t?.left??0),y:s-(t?.top??0)}},zi=(e,t,n,r,s)=>{const o=t.querySelectorAll(`.${e}`);return!o||!o.length?null:Array.from(o).map(i=>{const a=i.getBoundingClientRect();return{id:i.getAttribute("data-handleid"),type:e,nodeId:s,position:i.getAttribute("data-handlepos"),x:(a.left-n.left)/r,y:(a.top-n.top)/r,...Eo(i)}})};function lu({sourceX:e,sourceY:t,targetX:n,targetY:r,sourceControlX:s,sourceControlY:o,targetControlX:i,targetControlY:a}){const l=e*.125+s*.375+i*.375+n*.125,c=t*.125+o*.375+a*.375+r*.125;return[l,c,Math.abs(l-e),Math.abs(c-t)]}function zn(e,t){return e>=0?.5*e:t*25*Math.sqrt(-e)}function Hi({pos:e,x1:t,y1:n,x2:r,y2:s,c:o}){switch(e){case Y.Left:return[t-zn(t-r,o),n];case Y.Right:return[t+zn(r-t,o),n];case Y.Top:return[t,n-zn(n-s,o)];case Y.Bottom:return[t,n+zn(s-n,o)]}}function cu({sourceX:e,sourceY:t,sourcePosition:n=Y.Bottom,targetX:r,targetY:s,targetPosition:o=Y.Top,curvature:i=.25}){const[a,l]=Hi({pos:n,x1:e,y1:t,x2:r,y2:s,c:i}),[c,u]=Hi({pos:o,x1:r,y1:s,x2:e,y2:t,c:i}),[f,d,p,g]=lu({sourceX:e,sourceY:t,targetX:r,targetY:s,sourceControlX:a,sourceControlY:l,targetControlX:c,targetControlY:u});return[`M${e},${t} C${a},${l} ${c},${u} ${r},${s}`,f,d,p,g]}function uu({sourceX:e,sourceY:t,targetX:n,targetY:r}){const s=Math.abs(n-e)/2,o=n<e?n+s:n-s,i=Math.abs(r-t)/2;return[o,r<t?r+i:r-i,s,i]}function $x({sourceNode:e,targetNode:t,selected:n=!1,zIndex:r=0,elevateOnSelect:s=!1,zIndexMode:o="basic"}){return o==="manual"?r:(s&&n?r+1e3:r)+Math.max(e.parentId||s&&e.selected?e.internals.z:0,t.parentId||s&&t.selected?t.internals.z:0)}function Fx({sourceNode:e,targetNode:t,width:n,height:r,transform:s}){const o=jr(pr(e),pr(t));o.x===o.x2&&(o.x2+=1),o.y===o.y2&&(o.y2+=1);const i={x:-s[0]/s[2],y:-s[1]/s[2],width:n/s[2],height:r/s[2]};return gr(i,Pr(o))>0}var zx=({source:e,sourceHandle:t,target:n,targetHandle:r})=>`xy-edge__${e}${t||""}-${n}${r||""}`,Hx=(e,t)=>t.some(n=>n.source===e.source&&n.target===e.target&&(n.sourceHandle===e.sourceHandle||!n.sourceHandle&&!e.sourceHandle)&&(n.targetHandle===e.targetHandle||!n.targetHandle&&!e.targetHandle)),Bx=(e,t,n={})=>{if(!e.source||!e.target)return n.onError?.("006",Te.error006()),t;const r=n.getEdgeId||zx;let s;return Qc(e)?s={...e}:s={...e,id:r(e)},Hx(s,t)?t:(s.sourceHandle===null&&delete s.sourceHandle,s.targetHandle===null&&delete s.targetHandle,t.concat(s))};function du({sourceX:e,sourceY:t,targetX:n,targetY:r}){const[s,o,i,a]=uu({sourceX:e,sourceY:t,targetX:n,targetY:r});return[`M ${e},${t}L ${n},${r}`,s,o,i,a]}var Bi={[Y.Left]:{x:-1,y:0},[Y.Right]:{x:1,y:0},[Y.Top]:{x:0,y:-1},[Y.Bottom]:{x:0,y:1}},Gx=({source:e,sourcePosition:t=Y.Bottom,target:n})=>t===Y.Left||t===Y.Right?e.x<n.x?{x:1,y:0}:{x:-1,y:0}:e.y<n.y?{x:0,y:1}:{x:0,y:-1},Gi=(e,t)=>Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2));function Ux({source:e,sourcePosition:t=Y.Bottom,target:n,targetPosition:r=Y.Top,center:s,offset:o,stepPosition:i}){const a=Bi[t],l=Bi[r],c={x:e.x+a.x*o,y:e.y+a.y*o},u={x:n.x+l.x*o,y:n.y+l.y*o},f=Gx({source:c,sourcePosition:t,target:u}),d=f.x!==0?"x":"y",p=f[d];let g=[],y,x;const v={x:0,y:0},I={x:0,y:0},[,,m,b]=uu({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(a[d]*l[d]===-1){d==="x"?(y=s.x??c.x+(u.x-c.x)*i,x=s.y??(c.y+u.y)/2):(y=s.x??(c.x+u.x)/2,x=s.y??c.y+(u.y-c.y)*i);const R=[{x:y,y:c.y},{x:y,y:u.y}],A=[{x:c.x,y:x},{x:u.x,y:x}];a[d]===p?g=d==="x"?R:A:g=d==="x"?A:R}else{const R=[{x:c.x,y:u.y}],A=[{x:u.x,y:c.y}];if(d==="x"?g=a.x===p?A:R:g=a.y===p?R:A,t===r){const _=Math.abs(e[d]-n[d]);if(_<=o){const M=Math.min(o-1,o-_);a[d]===p?v[d]=(c[d]>e[d]?-1:1)*M:I[d]=(u[d]>n[d]?-1:1)*M}}if(t!==r){const _=d==="x"?"y":"x",M=a[d]===l[_],O=c[_]>u[_],S=c[_]<u[_];(a[d]===1&&(!M&&O||M&&S)||a[d]!==1&&(!M&&S||M&&O))&&(g=d==="x"?R:A)}const k={x:c.x+v.x,y:c.y+v.y},L={x:u.x+I.x,y:u.y+I.y};Math.max(Math.abs(k.x-g[0].x),Math.abs(L.x-g[0].x))>=Math.max(Math.abs(k.y-g[0].y),Math.abs(L.y-g[0].y))?(y=(k.x+L.x)/2,x=g[0].y):(y=g[0].x,x=(k.y+L.y)/2)}const E={x:c.x+v.x,y:c.y+v.y},N={x:u.x+I.x,y:u.y+I.y};return[[e,...E.x!==g[0].x||E.y!==g[0].y?[E]:[],...g,...N.x!==g[g.length-1].x||N.y!==g[g.length-1].y?[N]:[],n],y,x,m,b]}function qx(e,t,n,r){const s=Math.min(Gi(e,t)/2,Gi(t,n)/2,r),{x:o,y:i}=t;if(e.x===o&&o===n.x||e.y===i&&i===n.y)return`L${o} ${i}`;if(e.y===i){const l=e.x<n.x?-1:1,c=e.y<n.y?1:-1;return`L ${o+s*l},${i}Q ${o},${i} ${o},${i+s*c}`}const a=e.x<n.x?1:-1;return`L ${o},${i+s*(e.y<n.y?-1:1)}Q ${o},${i} ${o+s*a},${i}`}function js({sourceX:e,sourceY:t,sourcePosition:n=Y.Bottom,targetX:r,targetY:s,targetPosition:o=Y.Top,borderRadius:i=5,centerX:a,centerY:l,offset:c=20,stepPosition:u=.5}){const[f,d,p,g,y]=Ux({source:{x:e,y:t},sourcePosition:n,target:{x:r,y:s},targetPosition:o,center:{x:a,y:l},offset:c,stepPosition:u});let x=`M${f[0].x} ${f[0].y}`;for(let v=1;v<f.length-1;v++)x+=qx(f[v-1],f[v],f[v+1],i);return x+=`L${f[f.length-1].x} ${f[f.length-1].y}`,[x,d,p,g,y]}function Ui(e){return e&&!!(e.internals.handleBounds||e.handles?.length)&&!!(e.measured.width||e.width||e.initialWidth)}function Vx(e){const{sourceNode:t,targetNode:n}=e;if(!Ui(t)||!Ui(n))return null;const r=t.internals.handleBounds||qi(t.handles),s=n.internals.handleBounds||qi(n.handles),o=Vi(r?.source??[],e.sourceHandle),i=Vi(e.connectionMode===Vt.Strict?s?.target??[]:(s?.target??[]).concat(s?.source??[]),e.targetHandle);if(!o||!i)return e.onError?.("008",Te.error008(o?"target":"source",{id:e.id,sourceHandle:e.sourceHandle,targetHandle:e.targetHandle})),null;const a=o?.position||Y.Bottom,l=i?.position||Y.Top,c=Tt(t,o,a),u=Tt(n,i,l);return{sourceX:c.x,sourceY:c.y,targetX:u.x,targetY:u.y,sourcePosition:a,targetPosition:l}}function qi(e){if(!e)return null;const t=[],n=[];for(const r of e)r.width=r.width??1,r.height=r.height??1,r.type==="source"?t.push(r):r.type==="target"&&n.push(r);return{source:t,target:n}}function Tt(e,t,n=Y.Left,r=!1){const s=(t?.x??0)+e.internals.positionAbsolute.x,o=(t?.y??0)+e.internals.positionAbsolute.y,{width:i,height:a}=t??Fe(e);if(r)return{x:s+i/2,y:o+a/2};switch(t?.position??n){case Y.Top:return{x:s+i/2,y:o};case Y.Right:return{x:s+i,y:o+a/2};case Y.Bottom:return{x:s+i/2,y:o+a};case Y.Left:return{x:s,y:o+a/2}}}function Vi(e,t){return e&&(t?e.find(n=>n.id===t):e[0])||null}function Ps(e,t){return e?typeof e=="string"?e:`${t?`${t}__`:""}${Object.keys(e).sort().map(n=>`${n}=${e[n]}`).join("&")}`:""}function Kx(e,{id:t,defaultColor:n,defaultMarkerStart:r,defaultMarkerEnd:s}){const o=new Set;return e.reduce((i,a)=>([a.markerStart||r,a.markerEnd||s].forEach(l=>{if(l&&typeof l=="object"){const c=Ps(l,t);o.has(c)||(i.push({id:c,color:l.color||n,...l}),o.add(c))}}),i),[]).sort((i,a)=>i.id.localeCompare(a.id))}var hu=1e3,Yx=10,Co={nodeOrigin:[0,0],nodeExtent:wn,elevateNodesOnSelect:!0,zIndexMode:"basic",defaults:{}},Wx={...Co,checkEquality:!0};function No(e,t){const n={...e};for(const r in t)t[r]!==void 0&&(n[r]=t[r]);return n}function Xx(e,t,n){const r=No(Co,n);for(const s of e.values())if(s.parentId)_o(s,e,t,r);else{const o=An(s,r.nodeOrigin),i=_t(s.extent)?s.extent:r.nodeExtent,a=Rt(o,i,Fe(s));s.internals.positionAbsolute=a}}function Qx(e,t){if(!e.handles)return e.measured?t?.internals.handleBounds:void 0;const n=[],r=[];for(const s of e.handles){const o={id:s.id,width:s.width??1,height:s.height??1,nodeId:e.id,x:s.x,y:s.y,position:s.position,type:s.type};s.type==="source"?n.push(o):s.type==="target"&&r.push(o)}return{source:n,target:r}}function Ro(e){return e==="manual"}function Ls(e,t,n,r={}){const s=No(Wx,r),o={i:0},i=new Map(t),a=s?.elevateNodesOnSelect&&!Ro(s.zIndexMode)?hu:0;let l=e.length>0,c=!1;t.clear(),n.clear();for(const u of e){let f=i.get(u.id);if(s.checkEquality&&u===f?.internals.userNode)t.set(u.id,f);else{const d=An(u,s.nodeOrigin),p=_t(u.extent)?u.extent:s.nodeExtent,g=Rt(d,p,Fe(u));f={...s.defaults,...u,measured:{width:u.measured?.width,height:u.measured?.height},internals:{positionAbsolute:g,handleBounds:Qx(u,f),z:fu(u,a,s.zIndexMode),userNode:u}},t.set(u.id,f)}(f.measured===void 0||f.measured.width===void 0||f.measured.height===void 0)&&!f.hidden&&(l=!1),u.parentId&&_o(f,t,n,r,o),c||=u.selected??!1}return{nodesInitialized:l,hasSelectedNodes:c}}function Jx(e,t){if(!e.parentId)return;const n=t.get(e.parentId);n?n.set(e.id,e):t.set(e.parentId,new Map([[e.id,e]]))}function _o(e,t,n,r,s){const{elevateNodesOnSelect:o,nodeOrigin:i,nodeExtent:a,zIndexMode:l}=No(Co,r),c=e.parentId,u=t.get(c);if(!u){console.warn(`Parent node ${c} not found. Please make sure that parent nodes are in front of their child nodes in the nodes array.`);return}Jx(e,n),s&&!u.parentId&&u.internals.rootParentIndex===void 0&&l==="auto"&&(u.internals.rootParentIndex=++s.i,u.internals.z=u.internals.z+s.i*Yx),s&&u.internals.rootParentIndex!==void 0&&(s.i=u.internals.rootParentIndex);const{x:f,y:d,z:p}=Zx(e,u,i,a,o&&!Ro(l)?hu:0,l),{positionAbsolute:g}=e.internals,y=f!==g.x||d!==g.y;(y||p!==e.internals.z)&&t.set(e.id,{...e,internals:{...e.internals,positionAbsolute:y?{x:f,y:d}:g,z:p}})}function fu(e,t,n){const r=Pe(e.zIndex)?e.zIndex:0;return Ro(n)?r:r+(e.selected?t:0)}function Zx(e,t,n,r,s,o){const{x:i,y:a}=t.internals.positionAbsolute,l=Fe(e),c=An(e,n),u=_t(e.extent)?Rt(c,e.extent,l):c;let f=Rt({x:i+u.x,y:a+u.y},r,l);e.extent==="parent"&&(f=Zc(f,l,t));const d=fu(e,s,o),p=t.internals.z??0;return{x:f.x,y:f.y,z:p>=d?p+1:d}}function To(e,t,n,r=[0,0]){const s=[],o=new Map;for(const i of e){const a=t.get(i.parentId);if(!a)continue;const l=o.get(i.parentId)?.expandedRect??Cn(a),c=eu(l,i.rect);o.set(i.parentId,{expandedRect:c,parent:a})}return o.size>0&&o.forEach(({expandedRect:i,parent:a},l)=>{const c=a.internals.positionAbsolute,u=Fe(a),f=a.origin??r,d=i.x<c.x?Math.round(Math.abs(c.x-i.x)):0,p=i.y<c.y?Math.round(Math.abs(c.y-i.y)):0,g=Math.max(u.width,Math.round(i.width)),y=Math.max(u.height,Math.round(i.height)),x=(g-u.width)*f[0],v=(y-u.height)*f[1];(d>0||p>0||x||v)&&(s.push({id:l,type:"position",position:{x:a.position.x-d+x,y:a.position.y-p+v}}),n.get(l)?.forEach(I=>{e.some(m=>m.id===I.id)||s.push({id:I.id,type:"position",position:{x:I.position.x+d,y:I.position.y+p}})})),(u.width<i.width||u.height<i.height||d||p)&&s.push({id:l,type:"dimensions",setAttributes:!0,dimensions:{width:g+(d?f[0]*d-x:0),height:y+(p?f[1]*p-v:0)}})}),s}function eS(e,t,n,r,s,o,i){const a=r?.querySelector(".xyflow__viewport");let l=!1;if(!a)return{changes:[],updatedInternals:l};const c=[],u=window.getComputedStyle(a),{m22:f}=new window.DOMMatrixReadOnly(u.transform),d=[];for(const p of e.values()){const g=t.get(p.id);if(!g)continue;if(g.hidden){t.set(g.id,{...g,internals:{...g.internals,handleBounds:void 0}}),l=!0;continue}const y=Eo(p.nodeElement),x=g.measured.width!==y.width||g.measured.height!==y.height;if(y.width&&y.height&&(x||!g.internals.handleBounds||p.force)){const v=p.nodeElement.getBoundingClientRect(),I=_t(g.extent)?g.extent:o;let{positionAbsolute:m}=g.internals;if(g.parentId&&g.extent==="parent"){const E=t.get(g.parentId);E&&(m=Zc(m,y,E))}else I&&(m=Rt(m,I,y));const b={...g,measured:y,internals:{...g.internals,positionAbsolute:m,handleBounds:{source:zi("source",p.nodeElement,v,f,g.id),target:zi("target",p.nodeElement,v,f,g.id)}}};t.set(g.id,b),g.parentId&&_o(b,t,n,{nodeOrigin:s,zIndexMode:i}),l=!0,x&&(c.push({id:g.id,type:"dimensions",dimensions:y}),g.expandParent&&g.parentId&&d.push({id:g.id,parentId:g.parentId,rect:Cn(b,s)}))}}if(d.length>0){const p=To(d,t,n,s);c.push(...p)}return{changes:c,updatedInternals:l}}async function tS({delta:e,panZoom:t,transform:n,translateExtent:r,width:s,height:o}){if(!t||!e.x&&!e.y)return!1;const i=await t.setViewportConstrained({x:n[0]+e.x,y:n[1]+e.y,zoom:n[2]},[[0,0],[s,o]],r);return!!i&&(i.x!==n[0]||i.y!==n[1]||i.k!==n[2])}function Ki(e,t,n,r,s,o){let i=s;const a=r.get(i)||new Map;r.set(i,a.set(n,t)),i=`${s}-${e}`;const l=r.get(i)||new Map;if(r.set(i,l.set(n,t)),o){i=`${s}-${e}-${o}`;const c=r.get(i)||new Map;r.set(i,c.set(n,t))}}function pu(e,t,n){e.clear(),t.clear();for(const r of n){const{source:s,target:o,sourceHandle:i=null,targetHandle:a=null}=r,l={edgeId:r.id,source:s,target:o,sourceHandle:i,targetHandle:a},c=`${s}-${i}--${o}-${a}`;Ki("source",l,`${o}-${a}--${s}-${i}`,e,s,i),Ki("target",l,c,e,o,a),t.set(r.id,r)}}function gu(e,t){if(!e.parentId)return!1;const n=t.get(e.parentId);return n?n.selected?!0:gu(n,t):!1}function Yi(e,t,n){let r=e;do{if(r?.matches?.(t))return!0;if(r===n)return!1;r=r?.parentElement}while(r);return!1}function nS(e,t,n,r){const s=new Map;for(const[o,i]of e)if((i.selected||i.id===r)&&(!i.parentId||!gu(i,e))&&(i.draggable||t&&typeof i.draggable>"u")){const a=e.get(o);a&&s.set(o,{id:o,position:a.position||{x:0,y:0},distance:{x:n.x-a.internals.positionAbsolute.x,y:n.y-a.internals.positionAbsolute.y},extent:a.extent,parentId:a.parentId,origin:a.origin,expandParent:a.expandParent,internals:{positionAbsolute:a.internals.positionAbsolute||{x:0,y:0}},measured:{width:a.measured.width??0,height:a.measured.height??0}})}return s}function is({nodeId:e,dragItems:t,nodeLookup:n,dragging:r=!0}){const s=[];for(const[i,a]of t){const l=n.get(i)?.internals.userNode;l&&s.push({...l,position:a.position,dragging:r})}if(!e)return[s[0],s];const o=n.get(e)?.internals.userNode;return[o?{...o,position:t.get(e)?.position||o.position,dragging:r}:s[0],s]}function rS({dragItems:e,snapGrid:t,x:n,y:r}){const s=e.values().next().value;if(!s)return null;const o={x:n-s.distance.x,y:r-s.distance.y},i=kn(o,t);return{x:i.x-o.x,y:i.y-o.y}}function sS({onNodeMouseDown:e,getStoreItems:t,onDragStart:n,onDrag:r,onDragStop:s}){let o={x:null,y:null},i=0,a=new Map,l=!1,c={x:0,y:0},u=null,f=!1,d=null,p=!1,g=!1,y=null;function x({noDragClassName:I,handleSelector:m,domNode:b,isSelectable:E,nodeId:N,nodeClickDistance:R=0}){d=Se(b);function A({x:M,y:O}){const{nodeLookup:S,nodeExtent:w,snapGrid:T,snapToGrid:j,nodeOrigin:D,onNodeDrag:P,onSelectionDrag:F,onError:z,updateNodePositions:B}=t();o={x:M,y:O};let K=!1;const H=a.size>1,W=H&&w?Os(Mn(a)):null,J=H&&j?rS({dragItems:a,snapGrid:T,x:M,y:O}):null;for(const[X,$]of a){if(!S.has(X))continue;let q={x:M-$.distance.x,y:O-$.distance.y};j&&(q=J?{x:Math.round(q.x+J.x),y:Math.round(q.y+J.y)}:kn(q,T));let Q=null;if(H&&w&&!$.extent&&W){const{positionAbsolute:ne}=$.internals,Z=ne.x-W.x+w[0][0],U=ne.x+$.measured.width-W.x2+w[1][0],V=ne.y-W.y+w[0][1],pe=ne.y+$.measured.height-W.y2+w[1][1];Q=[[Z,V],[U,pe]]}const{position:te,positionAbsolute:G}=Jc({nodeId:X,nextPosition:q,nodeLookup:S,nodeExtent:Q||w,nodeOrigin:D,onError:z});K=K||$.position.x!==te.x||$.position.y!==te.y,$.position=te,$.internals.positionAbsolute=G}if(g=g||K,!!K&&(B(a,!0),y&&(r||P||!N&&F))){const[X,$]=is({nodeId:N,dragItems:a,nodeLookup:S});r?.(y,a,X,$),P?.(y,X,$),N||F?.(y,$)}}async function k(){if(!u)return;const{transform:M,panBy:O,autoPanSpeed:S,autoPanOnNodeDrag:w}=t();if(!w){l=!1,cancelAnimationFrame(i);return}const[T,j]=So(c,u,S);(T!==0||j!==0)&&(o.x=(o.x??0)-T/M[2],o.y=(o.y??0)-j/M[2],await O({x:T,y:j})&&A(o)),i=requestAnimationFrame(k)}function L(M){const{nodeLookup:O,multiSelectionActive:S,nodesDraggable:w,transform:T,snapGrid:j,snapToGrid:D,selectNodesOnDrag:P,onNodeDragStart:F,onSelectionDragStart:z,unselectNodesAndEdges:B}=t();f=!0,(!P||!E)&&!S&&N&&(O.get(N)?.selected||B()),E&&P&&N&&e?.(N);const K=gn(M.sourceEvent,{transform:T,snapGrid:j,snapToGrid:D,containerBounds:u});if(o=K,a=nS(O,w,K,N),a.size>0&&(n||F||!N&&z)){const[H,W]=is({nodeId:N,dragItems:a,nodeLookup:O});n?.(M.sourceEvent,a,H,W),F?.(M.sourceEvent,H,W),N||z?.(M.sourceEvent,W)}}const _=Mc().clickDistance(R).on("start",M=>{const{domNode:O,nodeDragThreshold:S,transform:w,snapGrid:T,snapToGrid:j}=t();u=O?.getBoundingClientRect()||null,p=!1,g=!1,y=M.sourceEvent,S===0&&L(M),o=gn(M.sourceEvent,{transform:w,snapGrid:T,snapToGrid:j,containerBounds:u}),c=Le(M.sourceEvent,u)}).on("drag",M=>{const{autoPanOnNodeDrag:O,transform:S,snapGrid:w,snapToGrid:T,nodeDragThreshold:j,nodeLookup:D}=t(),P=gn(M.sourceEvent,{transform:S,snapGrid:w,snapToGrid:T,containerBounds:u});if(y=M.sourceEvent,(M.sourceEvent.type==="touchmove"&&M.sourceEvent.touches.length>1||N&&!D.has(N))&&(p=!0),!p){if(!l&&O&&f&&(l=!0,k()),!f){const F=Le(M.sourceEvent,u),z=F.x-c.x,B=F.y-c.y;Math.sqrt(z*z+B*B)>j&&L(M)}(o.x!==P.xSnapped||o.y!==P.ySnapped)&&a&&f&&(c=Le(M.sourceEvent,u),A(P))}}).on("end",M=>{if(!f||p){p&&a.size>0&&t().updateNodePositions(a,!1);return}if(l=!1,f=!1,cancelAnimationFrame(i),a.size>0){const{nodeLookup:O,updateNodePositions:S,onNodeDragStop:w,onSelectionDragStop:T}=t();if(g&&(S(a,!1),g=!1),s||w||!N&&T){const[j,D]=is({nodeId:N,dragItems:a,nodeLookup:O,dragging:!1});s?.(M.sourceEvent,a,j,D),w?.(M.sourceEvent,j,D),N||T?.(M.sourceEvent,D)}}}).filter(M=>{const O=M.target;return!M.button&&(!I||!Yi(O,`.${I}`,b))&&(!m||Yi(O,m,b))});d.call(_)}function v(){d?.on(".drag",null)}return{update:x,destroy:v}}function oS(e,t,n){const r=[],s={x:e.x-n,y:e.y-n,width:n*2,height:n*2};for(const o of t.values())gr(s,Cn(o))>0&&r.push(o);return r}var iS=250;function aS(e,t,n,r){let s=[],o=1/0;const i=oS(e,n,t+iS);for(const a of i){const l=[...a.internals.handleBounds?.source??[],...a.internals.handleBounds?.target??[]];for(const c of l){if(r.nodeId===c.nodeId&&r.type===c.type&&r.id===c.id)continue;const{x:u,y:f}=Tt(a,c,c.position,!0),d=Math.sqrt(Math.pow(u-e.x,2)+Math.pow(f-e.y,2));d>t||(d<o?(s=[{...c,x:u,y:f}],o=d):d===o&&s.push({...c,x:u,y:f}))}}if(!s.length)return null;if(s.length>1){const a=r.type==="source"?"target":"source";return s.find(l=>l.type===a)??s[0]}return s[0]}function mu(e,t,n,r,s,o=!1){const i=r.get(e);if(!i)return null;const a=s==="strict"?i.internals.handleBounds?.[t]:[...i.internals.handleBounds?.source??[],...i.internals.handleBounds?.target??[]],l=(n?a?.find(c=>c.id===n):a?.[0])??null;return l&&o?{...l,...Tt(i,l,l.position,!0)}:l}function vu(e,t){return e||(t?.classList.contains("target")?"target":t?.classList.contains("source")?"source":null)}function lS(e,t){let n=null;return t?n=!0:e&&!t&&(n=!1),n}var yu=()=>!0;function cS(e,{connectionMode:t,connectionRadius:n,handleId:r,nodeId:s,edgeUpdaterType:o,isTarget:i,domNode:a,nodeLookup:l,lib:c,autoPanOnConnect:u,flowId:f,panBy:d,cancelConnection:p,onConnectStart:g,onConnect:y,onConnectEnd:x,isValidConnection:v=yu,onReconnectEnd:I,updateConnection:m,getTransform:b,getFromHandle:E,autoPanSpeed:N,dragThreshold:R=1,handleDomNode:A}){const k=ou(e.target);let L=0,_;const{x:M,y:O}=Le(e),S=vu(o,A),w=a?.getBoundingClientRect();let T=!1;if(!w||!S)return;const j=mu(s,S,r,l,t);if(!j)return;let D=Le(e,w),P=!1,F=null,z=!1,B=null;function K(){if(!u||!w)return;const[Q,te]=So(D,w,N);d({x:Q,y:te}),L=requestAnimationFrame(K)}const H={...j,nodeId:s,type:S,position:j.position},W=l.get(s);let J={inProgress:!0,isValid:null,from:Tt(W,H,Y.Left,!0),fromHandle:H,fromPosition:H.position,fromNode:W,to:D,toHandle:null,toPosition:Li[H.position],toNode:null,pointer:D};function X(){T=!0,m(J),g?.(e,{nodeId:s,handleId:r,handleType:S})}R===0&&X();function $(Q){if(!T){const{x:V,y:pe}=Le(Q),ge=V-M,ve=pe-O;if(!(ge*ge+ve*ve>R*R))return;X()}if(!E()||!H){q(Q);return}const te=b();D=Le(Q,w),_=aS(On(D,te,!1,[1,1]),n,l,H),P||(K(),P=!0);const G=bu(Q,{handle:_,connectionMode:t,fromNodeId:s,fromHandleId:r,fromType:i?"target":"source",isValidConnection:v,doc:k,lib:c,flowId:f,nodeLookup:l});B=G.handleDomNode,F=G.connection,z=lS(!!_,G.isValid);const ne=l.get(s),Z=ne?Tt(ne,H,Y.Left,!0):J.from,U={...J,from:Z,isValid:z,to:G.toHandle&&z?Yt({x:G.toHandle.x,y:G.toHandle.y},te):D,toHandle:G.toHandle,toPosition:z&&G.toHandle?G.toHandle.position:Li[H.position],toNode:G.toHandle?l.get(G.toHandle.nodeId):null,pointer:D};m(U),J=U}function q(Q){if(!("touches"in Q&&Q.touches.length>0)){if(T){(_||B)&&F&&z&&y?.(F);const{inProgress:te,...G}=J,ne={...G,toPosition:J.toHandle?J.toPosition:null};x?.(Q,ne),o&&I?.(Q,ne)}p(),cancelAnimationFrame(L),P=!1,z=!1,F=null,B=null,k.removeEventListener("mousemove",$),k.removeEventListener("mouseup",q),k.removeEventListener("touchmove",$),k.removeEventListener("touchend",q)}}k.addEventListener("mousemove",$),k.addEventListener("mouseup",q),k.addEventListener("touchmove",$),k.addEventListener("touchend",q)}function bu(e,{handle:t,connectionMode:n,fromNodeId:r,fromHandleId:s,fromType:o,doc:i,lib:a,flowId:l,isValidConnection:c=yu,nodeLookup:u}){const f=o==="target",d=t?i.querySelector(`.${a}-flow__handle[data-id="${l}-${t?.nodeId}-${t?.id}-${t?.type}"]`):null,{x:p,y:g}=Le(e),y=i.elementFromPoint(p,g),x=y?.classList.contains(`${a}-flow__handle`)?y:d,v={handleDomNode:x,isValid:!1,connection:null,toHandle:null};if(x){const I=vu(void 0,x),m=x.getAttribute("data-nodeid"),b=x.getAttribute("data-handleid"),E=x.classList.contains("connectable"),N=x.classList.contains("connectableend");if(!m||!I)return v;const R={source:f?m:r,sourceHandle:f?b:s,target:f?r:m,targetHandle:f?s:b};v.connection=R,v.isValid=E&&N&&(n===Vt.Strict?f&&I==="source"||!f&&I==="target":m!==r||b!==s)&&c(R),v.toHandle=mu(m,I,b,u,n,!0)}return v}var Ds={onPointerDown:cS,isValid:bu};function uS({domNode:e,panZoom:t,getTransform:n,getViewScale:r}){const s=Se(e);function o({translateExtent:a,width:l,height:c,zoomStep:u=1,pannable:f=!0,zoomable:d=!0,inversePan:p=!1}){const g=m=>{if(m.sourceEvent.type!=="wheel"||!t)return;const b=n(),E=m.sourceEvent.ctrlKey&&Nn()?10:1,N=-m.sourceEvent.deltaY*(m.sourceEvent.deltaMode===1?.05:m.sourceEvent.deltaMode?1:.002)*u,R=b[2]*Math.pow(2,N*E);t.scaleTo(R)};let y=[0,0];const x=m=>{(m.sourceEvent.type==="mousedown"||m.sourceEvent.type==="touchstart")&&(y=[m.sourceEvent.clientX??m.sourceEvent.touches[0].clientX,m.sourceEvent.clientY??m.sourceEvent.touches[0].clientY])},v=m=>{const b=n();if(m.sourceEvent.type!=="mousemove"&&m.sourceEvent.type!=="touchmove"||!t)return;const E=[m.sourceEvent.clientX??m.sourceEvent.touches[0].clientX,m.sourceEvent.clientY??m.sourceEvent.touches[0].clientY],N=[E[0]-y[0],E[1]-y[1]];y=E;const R=r()*Math.max(b[2],Math.log(b[2]))*(p?-1:1),A={x:b[0]-N[0]*R,y:b[1]-N[1]*R},k=[[0,0],[l,c]];t.setViewportConstrained({x:A.x,y:A.y,zoom:b[2]},k,a)},I=Kc().on("start",x).on("zoom",f?v:null).on("zoom.wheel",d?g:null);s.call(I,{})}function i(){s.on("zoom",null)}return{update:o,destroy:i,pointer:Oe}}var Lr=e=>({x:e.x,y:e.y,zoom:e.k}),as=({x:e,y:t,zoom:n})=>Or.translate(e,t).scale(n),it=(e,t)=>e.target.closest(`.${t}`),xu=(e,t)=>t===2&&Array.isArray(e)&&e.includes(2),dS=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2,ls=(e,t=0,n=dS,r=()=>{})=>{const s=typeof t=="number"&&t>0;return s||r(),s?e.transition().duration(t).ease(n).on("end",r):e},Su=e=>{const t=e.ctrlKey&&Nn()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*t};function hS({zoomPanValues:e,noWheelClassName:t,d3Selection:n,d3Zoom:r,panOnScrollMode:s,panOnScrollSpeed:o,zoomOnPinch:i,onPanZoomStart:a,onPanZoom:l,onPanZoomEnd:c}){return u=>{if(it(u,t))return u.ctrlKey&&u.preventDefault(),!1;u.preventDefault(),u.stopImmediatePropagation();const f=n.property("__zoom").k||1;if(u.ctrlKey&&i){const x=Oe(u),v=Su(u),I=f*Math.pow(2,v);r.scaleTo(n,I,x,u);return}const d=u.deltaMode===1?20:1;let p=s===wt.Vertical?0:u.deltaX*d,g=s===wt.Horizontal?0:u.deltaY*d;!Nn()&&u.shiftKey&&s!==wt.Vertical&&(p=u.deltaY*d,g=0),r.translateBy(n,-(p/f)*o,-(g/f)*o,{internal:!0});const y=Lr(n.property("__zoom"));clearTimeout(e.panScrollTimeout),e.isPanScrolling?l?.(u,y):(e.isPanScrolling=!0,a?.(u,y)),e.panScrollTimeout=setTimeout(()=>{c?.(u,y),e.isPanScrolling=!1},150)}}function fS({noWheelClassName:e,preventScrolling:t,d3ZoomHandler:n}){return function(r,s){const o=r.type==="wheel",i=!t&&o&&!r.ctrlKey,a=it(r,e);if(r.ctrlKey&&o&&a&&r.preventDefault(),i||a)return null;r.preventDefault(),n.call(this,r,s)}}function pS({zoomPanValues:e,onDraggingChange:t,onPanZoomStart:n}){return r=>{if(r.sourceEvent?.internal)return;const s=Lr(r.transform);e.mouseButton=r.sourceEvent?.button||0,e.isZoomingOrPanning=!0,e.prevViewport=s,r.sourceEvent?.type==="mousedown"&&t(!0),n&&n?.(r.sourceEvent,s)}}function gS({zoomPanValues:e,panOnDrag:t,onPaneContextMenu:n,onTransformChange:r,onPanZoom:s}){return o=>{e.usedRightMouseButton=!!(n&&xu(t,e.mouseButton??0)),o.sourceEvent?.sync||r([o.transform.x,o.transform.y,o.transform.k]),s&&!o.sourceEvent?.internal&&s?.(o.sourceEvent,Lr(o.transform))}}function mS({zoomPanValues:e,panOnDrag:t,panOnScroll:n,onDraggingChange:r,onPanZoomEnd:s,onPaneContextMenu:o}){return i=>{if(!i.sourceEvent?.internal&&(e.isZoomingOrPanning=!1,o&&xu(t,e.mouseButton??0)&&!e.usedRightMouseButton&&i.sourceEvent&&o(i.sourceEvent),e.usedRightMouseButton=!1,r(!1),s)){const a=Lr(i.transform);e.prevViewport=a,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{s?.(i.sourceEvent,a)},n?150:0)}}}function vS({panActivationKeyPressed:e,zoomActivationKeyPressed:t,zoomOnScroll:n,zoomOnPinch:r,panOnDrag:s,panOnScroll:o,zoomOnDoubleClick:i,userSelectionActive:a,noWheelClassName:l,noPanClassName:c,lib:u,connectionInProgress:f}){return d=>{const p=t||n,g=r&&d.ctrlKey,y=d.type==="wheel";if(d.button===1&&d.type==="mousedown"&&(it(d,`${u}-flow__node`)||it(d,`${u}-flow__edge`)||it(d,`${u}-flow__selection`)||it(d,`${u}-flow__nodesselection`)))return!0;if(!s&&!p&&!o&&!i&&!r||a||f&&!y||it(d,l)&&y||it(d,c)&&(!y||o&&y&&!t)||!r&&d.ctrlKey&&y)return!1;if(!r&&d.type==="touchstart"&&d.touches?.length>1)return d.preventDefault(),!1;if(!p&&!o&&!g&&y||!s&&(d.type==="mousedown"||d.type==="touchstart")||Array.isArray(s)&&!s.includes(d.button)&&d.type==="mousedown")return!1;const x=Array.isArray(s)&&s.includes(d.button)||!d.button||d.button<=1;return(!d.ctrlKey||y||e)&&x}}function yS({domNode:e,minZoom:t,maxZoom:n,translateExtent:r,viewport:s,onPanZoom:o,onPanZoomStart:i,onPanZoomEnd:a,onDraggingChange:l}){const c={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},u=e.getBoundingClientRect();let f=[[0,0],[u.width,u.height]];(typeof ResizeObserver<"u"?new ResizeObserver(M=>{const O=M[0];O&&(f=[[0,0],[O.contentRect.width,O.contentRect.height]])}):null)?.observe(e);const d=Kc().extent(()=>f).scaleExtent([t,n]).translateExtent(r),p=Se(e).call(d);m({x:s.x,y:s.y,zoom:Kt(s.zoom,t,n)},[[0,0],[u.width,u.height]],r);const g=p.on("wheel.zoom"),y=p.on("dblclick.zoom");d.wheelDelta(Su);async function x(M,O){return p?new Promise(S=>{d?.interpolate(O?.interpolate==="linear"?pn:Qn).transform(ls(p,O?.duration,O?.ease,()=>S(!0)),M)}):!1}function v({noWheelClassName:M,noPanClassName:O,onPaneContextMenu:S,userSelectionActive:w,panOnScroll:T,panOnDrag:j,panOnScrollMode:D,panOnScrollSpeed:P,preventScrolling:F,zoomOnPinch:z,zoomOnScroll:B,zoomOnDoubleClick:K,panActivationKeyPressed:H=!1,zoomActivationKeyPressed:W,lib:J,onTransformChange:X,connectionInProgress:$,paneClickDistance:q,selectionOnDrag:Q}){w&&!c.isZoomingOrPanning&&I();const te=T&&!W&&!w;d.clickDistance(Q?1/0:!Pe(q)||q<0?0:q);const G=te?hS({zoomPanValues:c,noWheelClassName:M,d3Selection:p,d3Zoom:d,panOnScrollMode:D,panOnScrollSpeed:P,zoomOnPinch:z,onPanZoomStart:i,onPanZoom:o,onPanZoomEnd:a}):fS({noWheelClassName:M,preventScrolling:F,d3ZoomHandler:g});p.on("wheel.zoom",G,{passive:!1});const ne=pS({zoomPanValues:c,onDraggingChange:l,onPanZoomStart:i});d.on("start",ne);const Z=gS({zoomPanValues:c,panOnDrag:j,onPaneContextMenu:!!S,onPanZoom:o,onTransformChange:X});d.on("zoom",Z);const U=mS({zoomPanValues:c,panOnDrag:j,panOnScroll:T,onPaneContextMenu:S,onPanZoomEnd:a,onDraggingChange:l});d.on("end",U);const V=vS({panActivationKeyPressed:H,zoomActivationKeyPressed:W,panOnDrag:j,zoomOnScroll:B,panOnScroll:T,zoomOnDoubleClick:K,zoomOnPinch:z,userSelectionActive:w,noPanClassName:O,noWheelClassName:M,lib:J,connectionInProgress:$});d.filter(V),K?p.on("dblclick.zoom",y):p.on("dblclick.zoom",null)}function I(){d.on("zoom",null)}async function m(M,O,S){const w=as(M),T=d?.constrain()(w,O,S);return T&&await x(T),T}async function b(M,O){const S=as(M);return await x(S,O),S}function E(M){if(p){const O=as(M),S=p.property("__zoom");(S.k!==M.zoom||S.x!==M.x||S.y!==M.y)&&d?.transform(p,O,null,{sync:!0})}}function N(){const M=p?Vc(p.node()):{x:0,y:0,k:1};return{x:M.x,y:M.y,zoom:M.k}}async function R(M,O){return p?new Promise(S=>{d?.interpolate(O?.interpolate==="linear"?pn:Qn).scaleTo(ls(p,O?.duration,O?.ease,()=>S(!0)),M)}):!1}async function A(M,O){return p?new Promise(S=>{d?.interpolate(O?.interpolate==="linear"?pn:Qn).scaleBy(ls(p,O?.duration,O?.ease,()=>S(!0)),M)}):!1}function k(M){d?.scaleExtent(M)}function L(M){d?.translateExtent(M)}function _(M){const O=!Pe(M)||M<0?0:M;d?.clickDistance(O)}return{update:v,destroy:I,setViewport:b,setViewportConstrained:m,getViewport:N,scaleTo:R,scaleBy:A,setScaleExtent:k,setTranslateExtent:L,syncViewport:E,setClickDistance:_}}var Wt;(function(e){e.Line="line",e.Handle="handle"})(Wt||(Wt={}));function bS({width:e,prevWidth:t,height:n,prevHeight:r,affectsX:s,affectsY:o}){const i=e-t,a=n-r,l=[i>0?1:i<0?-1:0,a>0?1:a<0?-1:0];return i&&s&&(l[0]=l[0]*-1),a&&o&&(l[1]=l[1]*-1),l}function Wi(e){return{isHorizontal:e.includes("right")||e.includes("left"),isVertical:e.includes("bottom")||e.includes("top"),affectsX:e.includes("left"),affectsY:e.includes("top")}}function rt(e,t){return Math.max(0,t-e)}function st(e,t){return Math.max(0,e-t)}function Hn(e,t,n){return Math.max(0,t-e,e-n)}function Xi(e,t){return e?!t:t}function xS(e,t,n,r,s,o,i,a){let{affectsX:l,affectsY:c}=t;const{isHorizontal:u,isVertical:f}=t,d=u&&f,{xSnapped:p,ySnapped:g}=n,{minWidth:y,maxWidth:x,minHeight:v,maxHeight:I}=r,{x:m,y:b,width:E,height:N,aspectRatio:R}=e;let A=Math.floor(u?p-e.pointerX:0),k=Math.floor(f?g-e.pointerY:0);const L=E+(l?-A:A),_=N+(c?-k:k),M=-o[0]*E,O=-o[1]*N;let S=Hn(L,y,x),w=Hn(_,v,I);if(i){let D=0,P=0;l&&A<0?D=rt(m+A+M,i[0][0]):!l&&A>0&&(D=st(m+L+M,i[1][0])),c&&k<0?P=rt(b+k+O,i[0][1]):!c&&k>0&&(P=st(b+_+O,i[1][1])),S=Math.max(S,D),w=Math.max(w,P)}if(a){let D=0,P=0;l&&A>0?D=st(m+A,a[0][0]):!l&&A<0&&(D=rt(m+L,a[1][0])),c&&k>0?P=st(b+k,a[0][1]):!c&&k<0&&(P=rt(b+_,a[1][1])),S=Math.max(S,D),w=Math.max(w,P)}if(s){if(u){const D=Hn(L/R,v,I)*R;if(S=Math.max(S,D),i){let P=0;!l&&!c||l&&!c&&d?P=st(b+O+L/R,i[1][1])*R:P=rt(b+O+(l?A:-A)/R,i[0][1])*R,S=Math.max(S,P)}if(a){let P=0;!l&&!c||l&&!c&&d?P=rt(b+L/R,a[1][1])*R:P=st(b+(l?A:-A)/R,a[0][1])*R,S=Math.max(S,P)}}if(f){const D=Hn(_*R,y,x)/R;if(w=Math.max(w,D),i){let P=0;!l&&!c||c&&!l&&d?P=st(m+_*R+M,i[1][0])/R:P=rt(m+(c?k:-k)*R+M,i[0][0])/R,w=Math.max(w,P)}if(a){let P=0;!l&&!c||c&&!l&&d?P=rt(m+_*R,a[1][0])/R:P=st(m+(c?k:-k)*R,a[0][0])/R,w=Math.max(w,P)}}}k=k+(k<0?w:-w),A=A+(A<0?S:-S),s&&(d?L>_*R?k=(Xi(l,c)?-A:A)/R:A=(Xi(l,c)?-k:k)*R:u?(k=A/R,c=l):(A=k*R,l=c));const T=l?m+A:m,j=c?b+k:b;return{width:E+(l?-A:A),height:N+(c?-k:k),x:o[0]*A*(l?-1:1)+T,y:o[1]*k*(c?-1:1)+j}}var Iu={width:0,height:0,x:0,y:0},SS={...Iu,pointerX:0,pointerY:0,aspectRatio:1};function IS(e,t,n){const r=t.position.x+e.position.x,s=t.position.y+e.position.y,o=e.measured.width??0,i=e.measured.height??0,a=n[0]*o,l=n[1]*i;return[[r-a,s-l],[r+o-a,s+i-l]]}function wS({domNode:e,nodeId:t,getStoreItems:n,onChange:r,onEnd:s}){const o=Se(e);let i={controlDirection:Wi("bottom-right"),boundaries:{minWidth:0,minHeight:0,maxWidth:Number.MAX_VALUE,maxHeight:Number.MAX_VALUE},resizeDirection:void 0,keepAspectRatio:!1};function a({controlPosition:c,boundaries:u,keepAspectRatio:f,resizeDirection:d,onResizeStart:p,onResize:g,onResizeEnd:y,shouldResize:x}){let v={...Iu},I={...SS};i={boundaries:u,resizeDirection:d,keepAspectRatio:f,controlDirection:Wi(c)};let m,b=null,E=[],N,R,A;const k=Mc().on("start",L=>{const{nodeLookup:_,transform:M,snapGrid:O,snapToGrid:S,nodeOrigin:w,paneDomNode:T}=n();if(m=_.get(t),!m)return;b=T?.getBoundingClientRect()??null;const{xSnapped:j,ySnapped:D}=gn(L.sourceEvent,{transform:M,snapGrid:O,snapToGrid:S,containerBounds:b});v={width:m.measured.width??0,height:m.measured.height??0,x:m.position.x??0,y:m.position.y??0},I={...v,pointerX:j,pointerY:D,aspectRatio:v.width/v.height},N=void 0,R=_t(m.extent)?m.extent:void 0,m.parentId&&(m.extent==="parent"||m.expandParent)&&(N=_.get(m.parentId)),N&&m.extent==="parent"&&(R=[[0,0],[N.measured.width,N.measured.height]]),E=[],A=void 0;for(const[P,F]of _)if(F.parentId===t&&(E.push({id:P,position:{...F.position},extent:F.extent}),F.extent==="parent"||F.expandParent)){const z=IS(F,m,F.origin??w);A?A=[[Math.min(z[0][0],A[0][0]),Math.min(z[0][1],A[0][1])],[Math.max(z[1][0],A[1][0]),Math.max(z[1][1],A[1][1])]]:A=z}p?.(L,{...v})}).on("drag",L=>{const{transform:_,snapGrid:M,snapToGrid:O,nodeOrigin:S}=n(),w=gn(L.sourceEvent,{transform:_,snapGrid:M,snapToGrid:O,containerBounds:b}),T=[];if(!m)return;const{x:j,y:D,width:P,height:F}=v,z={},B=m.origin??S,{width:K,height:H,x:W,y:J}=xS(I,i.controlDirection,w,i.boundaries,i.keepAspectRatio,B,R,A),X=K!==P,$=H!==F,q=W!==j&&X,Q=J!==D&&$;if(!q&&!Q&&!X&&!$)return;const te={prevValues:{...v},startX:I.x,startY:I.y,childNodes:E.map(Z=>({...Z,position:{...Z.position}}))};if((q||Q||B[0]===1||B[1]===1)&&(z.x=q?W:v.x,z.y=Q?J:v.y,v.x=z.x,v.y=z.y,E.length>0)){const Z=W-j,U=J-D;for(const V of E)V.position={x:V.position.x-Z+B[0]*(K-P),y:V.position.y-U+B[1]*(H-F)},T.push(V)}if((X||$)&&(z.width=X&&(!i.resizeDirection||i.resizeDirection==="horizontal")?K:v.width,z.height=$&&(!i.resizeDirection||i.resizeDirection==="vertical")?H:v.height,v.width=z.width,v.height=z.height),N&&m.expandParent){const Z=B[0]*(z.width??0);z.x&&z.x<Z&&(v.x=Z,I.x=I.x-(z.x-Z));const U=B[1]*(z.height??0);z.y&&z.y<U&&(v.y=U,I.y=I.y-(z.y-U))}const G=bS({width:v.width,prevWidth:P,height:v.height,prevHeight:F,affectsX:i.controlDirection.affectsX,affectsY:i.controlDirection.affectsY}),ne={...v,direction:G};if(x?.(L,ne)===!1){v=te.prevValues,I.x=te.startX,I.y=te.startY,E.forEach((Z,U)=>{Z.position=te.childNodes[U].position});return}g?.(L,ne),r(z,T)}).on("end",L=>{y?.(L,{...v}),s?.({...v})});o.call(k)}function l(){o.on(".drag",null)}return{update:a,destroy:l}}var ES=Ir(nf(),1),Qi=e=>{let t;const n=new Set,r=(u,f)=>{const d=typeof u=="function"?u(t):u;if(!Object.is(d,t)){const p=t;t=f??(typeof d!="object"||d===null)?d:Object.assign({},t,d),n.forEach(g=>g(t,p))}},s=()=>t,l={setState:r,getState:s,getInitialState:()=>c,subscribe:u=>(n.add(u),()=>n.delete(u)),destroy:()=>{n.clear()}},c=t=e(r,s,l);return l},CS=e=>e?Qi(e):Qi,{useDebugValue:NS}=C.default,{useSyncExternalStoreWithSelector:RS}=ES.default,_S=e=>e;function wu(e,t=_S,n){const r=RS(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return NS(r),r}var Ji=(e,t)=>{const n=CS(e),r=(s,o=t)=>wu(n,s,o);return Object.assign(r,n),r},TS=(e,t)=>e?Ji(e,t):Ji;function le(e,t){if(Object.is(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(const[r,s]of e)if(!Object.is(s,t.get(r)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(const r of e)if(!t.has(r))return!1;return!0}const n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(const r of n)if(!Object.prototype.hasOwnProperty.call(t,r)||!Object.is(e[r],t[r]))return!1;return!0}var k_=Ir(Df()),Dr=(0,C.createContext)(null),AS=Dr.Provider,Eu=Te.error001("react");function re(e,t){const n=(0,C.useContext)(Dr);if(n===null)throw new Error(Eu);return wu(n,e,t)}function oe(){const e=(0,C.useContext)(Dr);if(e===null)throw new Error(Eu);return(0,C.useMemo)(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe}),[e])}var Zi={display:"none"},MS={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},Cu="react-flow__node-desc",Nu="react-flow__edge-desc",kS="react-flow__aria-live",OS=e=>e.ariaLiveMessage,jS=e=>e.ariaLabelConfig;function PS({rfId:e}){const t=re(OS);return(0,h.jsx)("div",{id:`${kS}-${e}`,"aria-live":"assertive","aria-atomic":"true",style:MS,children:t})}function LS({rfId:e,disableKeyboardA11y:t}){const n=re(jS);return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)("div",{id:`${Cu}-${e}`,style:Zi,children:t?n["node.a11yDescription.default"]:n["node.a11yDescription.keyboardDisabled"]}),(0,h.jsx)("div",{id:`${Nu}-${e}`,style:Zi,children:n["edge.a11yDescription.default"]}),!t&&(0,h.jsx)(PS,{rfId:e})]})}var $r=(0,C.forwardRef)(({position:e="top-left",children:t,className:n,style:r,...s},o)=>{const i=`${e}`.split("-");return(0,h.jsx)("div",{className:ue(["react-flow__panel",n,...i]),style:r,ref:o,...s,children:t})});$r.displayName="Panel";var ea="https://reactflow.dev?utm_source=attribution";function DS({proOptions:e,position:t="bottom-right"}){return(0,C.useEffect)(()=>{},[]),e?.hideAttribution?null:(0,h.jsx)($r,{position:t,className:"react-flow__attribution","data-message":`Please only hide this attribution when you are subscribed to React Flow Pro: ${ea}`,children:(0,h.jsx)("a",{href:ea,target:"_blank",rel:"noopener noreferrer","aria-label":"React Flow attribution",children:"React Flow"})})}var $S=e=>{const t=[],n=[];for(const[,r]of e.nodeLookup)r.selected&&t.push(r.internals.userNode);for(const[,r]of e.edgeLookup)r.selected&&n.push(r);return{selectedNodes:t,selectedEdges:n}},Bn=e=>e.id;function FS(e,t){return le(e.selectedNodes.map(Bn),t.selectedNodes.map(Bn))&&le(e.selectedEdges.map(Bn),t.selectedEdges.map(Bn))}function zS({onSelectionChange:e}){const t=oe(),{selectedNodes:n,selectedEdges:r}=re($S,FS);return(0,C.useEffect)(()=>{const s={nodes:n,edges:r};e?.(s),t.getState().onSelectionChangeHandlers.forEach(o=>o(s))},[n,r,e]),null}var HS=e=>!!e.onSelectionChangeHandlers;function BS({onSelectionChange:e}){const t=re(HS);return e||t?(0,h.jsx)(zS,{onSelectionChange:e}):null}var Ru=[0,0],GS={x:0,y:0,zoom:1},ta=["nodes","edges","defaultNodes","defaultEdges","onConnect","onConnectStart","onConnectEnd","onClickConnectStart","onClickConnectEnd","nodesDraggable","autoPanOnNodeFocus","nodesConnectable","nodesFocusable","edgesFocusable","edgesReconnectable","elevateNodesOnSelect","elevateEdgesOnSelect","minZoom","maxZoom","nodeExtent","onNodesChange","onEdgesChange","elementsSelectable","connectionMode","snapGrid","snapToGrid","translateExtent","connectOnClick","defaultEdgeOptions","fitView","fitViewOptions","onNodesDelete","onEdgesDelete","onDelete","onNodeDrag","onNodeDragStart","onNodeDragStop","onSelectionDrag","onSelectionDragStart","onSelectionDragStop","onMoveStart","onMove","onMoveEnd","noPanClassName","nodeOrigin","autoPanOnConnect","autoPanOnNodeDrag","onError","connectionRadius","isValidConnection","selectNodesOnDrag","nodeDragThreshold","connectionDragThreshold","onBeforeDelete","debug","autoPanSpeed","ariaLabelConfig","zIndexMode","rfId"],US=e=>({setNodes:e.setNodes,setEdges:e.setEdges,setMinZoom:e.setMinZoom,setMaxZoom:e.setMaxZoom,setTranslateExtent:e.setTranslateExtent,setNodeExtent:e.setNodeExtent,reset:e.reset,setDefaultNodesAndEdges:e.setDefaultNodesAndEdges}),na={translateExtent:wn,nodeOrigin:Ru,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:"nopan",rfId:"1"};function qS(e){const{setNodes:t,setEdges:n,setMinZoom:r,setMaxZoom:s,setTranslateExtent:o,setNodeExtent:i,reset:a,setDefaultNodesAndEdges:l}=re(US,le),c=oe();(0,C.useEffect)(()=>(l(e.defaultNodes,e.defaultEdges),()=>{u.current=na,a()}),[]);const u=(0,C.useRef)(na);return(0,C.useEffect)(()=>{for(const f of ta){const d=e[f];d!==u.current[f]&&(typeof e[f]>"u"||(f==="nodes"?t(d):f==="edges"?n(d):f==="minZoom"?r(d):f==="maxZoom"?s(d):f==="translateExtent"?o(d):f==="nodeExtent"?i(d):f==="ariaLabelConfig"?c.setState({ariaLabelConfig:Lx(d)}):f==="fitView"?c.setState({fitViewQueued:d}):f==="fitViewOptions"?c.setState({fitViewOptions:d}):c.setState({[f]:d})))}u.current=e},ta.map(f=>e[f])),null}function ra(){return typeof window>"u"||!window.matchMedia?null:window.matchMedia("(prefers-color-scheme: dark)")}function VS(e){const[t,n]=(0,C.useState)(e==="system"?null:e);return(0,C.useEffect)(()=>{if(e!=="system"){n(e);return}const r=ra(),s=()=>n(r?.matches?"dark":"light");return s(),r?.addEventListener("change",s),()=>{r?.removeEventListener("change",s)}},[e]),t!==null?t:ra()?.matches?"dark":"light"}var sa=typeof document<"u"?document:null;function Rn(e=null,t={target:sa,actInsideInputWithModifier:!0}){const[n,r]=(0,C.useState)(!1),s=(0,C.useRef)(!1),o=(0,C.useRef)(new Set([])),[i,a]=(0,C.useMemo)(()=>{if(e!==null){const l=(Array.isArray(e)?e:[e]).filter(c=>typeof c=="string").map(c=>c.replace(/\+/g,`
|
|
3
3
|
`).replace(`
|
|
4
4
|
|
|
5
5
|
`,`
|
|
6
6
|
+`).split(`
|
|
7
7
|
`));return[l,l.reduce((c,u)=>c.concat(...u),[])]}return[[],[]]},[e]);return(0,C.useEffect)(()=>{const l=t?.target??sa,c=t?.actInsideInputWithModifier??!0;if(e!==null){const u=p=>{if(s.current=p.ctrlKey||p.metaKey||p.shiftKey||p.altKey,(!s.current||s.current&&!c)&&iu(p))return!1;const g=ia(p.code,a);if(o.current.add(p[g]),oa(i,o.current,!1)){const y=p.composedPath?.()?.[0]||p.target,x=y?.nodeName==="BUTTON"||y?.nodeName==="A";t.preventDefault!==!1&&(s.current||!x)&&p.preventDefault(),r(!0)}},f=p=>{const g=ia(p.code,a);oa(i,o.current,!0)?(r(!1),o.current.clear()):o.current.delete(p[g]),p.key==="Meta"&&o.current.clear(),s.current=!1},d=()=>{o.current.clear(),r(!1)};return l?.addEventListener("keydown",u),l?.addEventListener("keyup",f),window.addEventListener("blur",d),window.addEventListener("contextmenu",d),()=>{l?.removeEventListener("keydown",u),l?.removeEventListener("keyup",f),window.removeEventListener("blur",d),window.removeEventListener("contextmenu",d)}}},[e,r]),n}function oa(e,t,n){return e.filter(r=>n||r.length===t.size).some(r=>r.every(s=>t.has(s)))}function ia(e,t){return t.includes(e)?"code":"key"}var KS=()=>{const e=oe();return(0,C.useMemo)(()=>({zoomIn:async t=>{const{panZoom:n}=e.getState();return n?n.scaleBy(1.2,t):!1},zoomOut:async t=>{const{panZoom:n}=e.getState();return n?n.scaleBy(1/1.2,t):!1},zoomTo:async(t,n)=>{const{panZoom:r}=e.getState();return r?r.scaleTo(t,n):!1},getZoom:()=>e.getState().transform[2],setViewport:async(t,n)=>{const{transform:[r,s,o],panZoom:i}=e.getState();return i?(await i.setViewport({x:t.x??r,y:t.y??s,zoom:t.zoom??o},n),!0):!1},getViewport:()=>{const[t,n,r]=e.getState().transform;return{x:t,y:n,zoom:r}},setCenter:async(t,n,r)=>e.getState().setCenter(t,n,r),fitBounds:async(t,n)=>{const{width:r,height:s,minZoom:o,maxZoom:i,panZoom:a}=e.getState(),l=Io(t,r,s,o,i,n?.padding??.1);return a?(await a.setViewport(l,{duration:n?.duration,ease:n?.ease,interpolate:n?.interpolate}),!0):!1},screenToFlowPosition:(t,n={})=>{const{transform:r,snapGrid:s,snapToGrid:o,domNode:i}=e.getState();if(!i)return t;const{x:a,y:l}=i.getBoundingClientRect(),c={x:t.x-a,y:t.y-l},u=n.snapGrid??s,f=n.snapToGrid??o;return On(c,r,f,u)},flowToScreenPosition:t=>{const{transform:n,domNode:r}=e.getState();if(!r)return t;const{x:s,y:o}=r.getBoundingClientRect(),i=Yt(t,n);return{x:i.x+s,y:i.y+o}}}),[])};function _u(e,t){const n=[],r=new Map,s=[];for(const o of e)if(o.type==="add"){s.push(o);continue}else if(o.type==="remove"||o.type==="replace")r.set(o.id,[o]);else{const i=r.get(o.id);i?i.push(o):r.set(o.id,[o])}for(const o of t){const i=r.get(o.id);if(!i){n.push(o);continue}if(i[0].type==="remove")continue;if(i[0].type==="replace"){n.push({...i[0].item});continue}const a={...o};for(const l of i)YS(l,a);n.push(a)}return s.length&&s.forEach(o=>{o.index!==void 0?n.splice(o.index,0,{...o.item}):n.push({...o.item})}),n}function YS(e,t){switch(e.type){case"select":t.selected=e.selected;break;case"position":typeof e.position<"u"&&(t.position=e.position),typeof e.dragging<"u"&&(t.dragging=e.dragging);break;case"dimensions":typeof e.dimensions<"u"&&(t.measured={...e.dimensions},e.setAttributes&&((e.setAttributes===!0||e.setAttributes==="width")&&(t.width=e.dimensions.width),(e.setAttributes===!0||e.setAttributes==="height")&&(t.height=e.dimensions.height))),typeof e.resizing=="boolean"&&(t.resizing=e.resizing)}}function Tu(e,t){return _u(e,t)}function WS(e,t){return _u(e,t)}function yt(e,t){return{id:e,type:"select",selected:t}}function jt(e,t=new Set,n=!1){const r=[];for(const[s,o]of e){const i=t.has(s);!(o.selected===void 0&&!i)&&o.selected!==i&&(n&&(o.selected=i),r.push(yt(o.id,i)))}return r}function aa({items:e=[],lookup:t}){const n=[],r=new Map(e.map(s=>[s.id,s]));for(const[s,o]of e.entries()){const i=t.get(o.id),a=i?.internals?.userNode??i;a!==void 0&&a!==o&&n.push({id:o.id,item:o,type:"replace"}),a===void 0&&n.push({item:o,type:"add",index:s})}for(const[s]of t)r.get(s)===void 0&&n.push({id:s,type:"remove"});return n}function la(e){return{id:e.id,type:"remove"}}var XS=nu("React Flow","https://reactflow.dev/");function QS(e,t,n={}){return Bx(e,t,{...n,onError:n.onError??XS})}var ca=e=>Rx(e),JS=e=>Qc(e);function Au(e){return(0,C.forwardRef)(e)}var Mu=typeof window<"u"?C.useLayoutEffect:C.useEffect;function ua(e){const[t,n]=(0,C.useState)(BigInt(0)),[r]=(0,C.useState)(()=>ZS(()=>n(s=>s+BigInt(1))));return Mu(()=>{const s=r.get();s.length&&(e(s),r.reset())},[t]),r}function ZS(e){let t=[];return{get:()=>t,reset:()=>{t=[]},push:n=>{t.push(n),e()}}}var ku=(0,C.createContext)(null);function eI({children:e}){const t=oe(),n=ua((0,C.useCallback)(o=>{const{nodes:i=[],setNodes:a,hasDefaultNodes:l,onNodesChange:c,nodeLookup:u,fitViewQueued:f,onNodesChangeMiddlewareMap:d}=t.getState();let p=i;for(const y of o)p=typeof y=="function"?y(p):y;let g=aa({items:p,lookup:u});for(const y of d.values())g=y(g);l&&a(p),g.length>0?c?.(g):f&&window.requestAnimationFrame(()=>{const{fitViewQueued:y,nodes:x,setNodes:v}=t.getState();y&&v(x)})},[])),r=ua((0,C.useCallback)(o=>{const{edges:i=[],setEdges:a,hasDefaultEdges:l,onEdgesChange:c,edgeLookup:u}=t.getState();let f=i;for(const d of o)f=typeof d=="function"?d(f):d;l?a(f):c&&c(aa({items:f,lookup:u}))},[])),s=(0,C.useMemo)(()=>({nodeQueue:n,edgeQueue:r}),[]);return(0,h.jsx)(ku.Provider,{value:s,children:e})}function tI(){const e=(0,C.useContext)(ku);if(!e)throw new Error("useBatchContext must be used within a BatchProvider");return e}var nI=e=>!!e.panZoom;function Fr(){const e=KS(),t=oe(),n=tI(),r=re(nI),s=(0,C.useMemo)(()=>{const o=f=>t.getState().nodeLookup.get(f),i=f=>{n.nodeQueue.push(f)},a=f=>{n.edgeQueue.push(f)},l=f=>{const{nodeLookup:d,nodeOrigin:p}=t.getState(),g=ca(f)?f:d.get(f.id),y=g.parentId?ru(g.position,g.measured,g.parentId,d,p):g.position,x={...g,position:y,width:g.measured?.width??g.width,height:g.measured?.height??g.height};return Cn(x)},c=(f,d,p={replace:!1})=>{i(g=>g.map(y=>{if(y.id===f){const x=typeof d=="function"?d(y):d;return p.replace&&ca(x)?x:{...y,...x}}return y}))},u=(f,d,p={replace:!1})=>{a(g=>g.map(y=>{if(y.id===f){const x=typeof d=="function"?d(y):d;return p.replace&&JS(x)?x:{...y,...x}}return y}))};return{getNodes:()=>t.getState().nodes.map(f=>({...f})),getNode:f=>o(f)?.internals.userNode,getInternalNode:o,getEdges:()=>{const{edges:f=[]}=t.getState();return f.map(d=>({...d}))},getEdge:f=>t.getState().edgeLookup.get(f),setNodes:i,setEdges:a,addNodes:f=>{const d=Array.isArray(f)?f:[f];n.nodeQueue.push(p=>[...p,...d])},addEdges:f=>{const d=Array.isArray(f)?f:[f];n.edgeQueue.push(p=>[...p,...d])},toObject:()=>{const{nodes:f=[],edges:d=[],transform:p}=t.getState(),[g,y,x]=p;return{nodes:f.map(v=>({...v})),edges:d.map(v=>({...v})),viewport:{x:g,y,zoom:x}}},deleteElements:async({nodes:f=[],edges:d=[]})=>{const{nodes:p,edges:g,onNodesDelete:y,onEdgesDelete:x,triggerNodeChanges:v,triggerEdgeChanges:I,onDelete:m,onBeforeDelete:b}=t.getState(),{nodes:E,edges:N}=await kx({nodesToRemove:f,edgesToRemove:d,nodes:p,edges:g,onBeforeDelete:b}),R=N.length>0,A=E.length>0;if(R){const k=N.map(la);x?.(N),I(k)}if(A){const k=E.map(la);y?.(E),v(k)}return(A||R)&&m?.({nodes:E,edges:N}),{deletedNodes:E,deletedEdges:N}},getIntersectingNodes:(f,d=!0,p)=>{const g=$i(f),y=g?f:l(f),x=p!==void 0;return y?(p||t.getState().nodes).filter(v=>{const I=t.getState().nodeLookup.get(v.id);if(I&&!g&&(v.id===f.id||!I.internals.positionAbsolute))return!1;const m=Cn(x?v:I),b=gr(m,y);return d&&b>0||b>=m.width*m.height||b>=y.width*y.height}):[]},isNodeIntersecting:(f,d,p=!0)=>{const g=$i(f)?f:l(f);if(!g)return!1;const y=gr(g,d);return p&&y>0||y>=d.width*d.height||y>=g.width*g.height},updateNode:c,updateNodeData:(f,d,p={replace:!1})=>{c(f,g=>{const y=typeof d=="function"?d(g):d;return p.replace?{...g,data:y}:{...g,data:{...g.data,...y}}},p)},updateEdge:u,updateEdgeData:(f,d,p={replace:!1})=>{u(f,g=>{const y=typeof d=="function"?d(g):d;return p.replace?{...g,data:y}:{...g,data:{...g.data,...y}}},p)},getNodesBounds:f=>{const{nodeLookup:d,nodeOrigin:p}=t.getState();return _x(f,{nodeLookup:d,nodeOrigin:p})},getHandleConnections:({type:f,id:d,nodeId:p})=>Array.from(t.getState().connectionLookup.get(`${p}-${f}${d?`-${d}`:""}`)?.values()??[]),getNodeConnections:({type:f,handleId:d,nodeId:p})=>Array.from(t.getState().connectionLookup.get(`${p}${f?d?`-${f}-${d}`:`-${f}`:""}`)?.values()??[]),fitView:async f=>{const d=t.getState().fitViewResolver??Px();return t.setState({fitViewQueued:!0,fitViewOptions:f,fitViewResolver:d}),n.nodeQueue.push(p=>[...p]),d.promise}}},[]);return(0,C.useMemo)(()=>({...s,...e,viewportInitialized:r}),[r])}var da=e=>e.selected,rI=typeof window<"u"?window:void 0;function sI({deleteKeyCode:e,multiSelectionKeyCode:t}){const n=oe(),{deleteElements:r}=Fr(),s=Rn(e,{actInsideInputWithModifier:!1}),o=Rn(t,{target:rI});(0,C.useEffect)(()=>{if(s){const{edges:i,nodes:a}=n.getState();r({nodes:a.filter(da),edges:i.filter(da)}),n.setState({nodesSelectionActive:!1})}},[s]),(0,C.useEffect)(()=>{n.setState({multiSelectionActive:o})},[o])}function oI(e){const t=oe();(0,C.useEffect)(()=>{const n=()=>{if(!e.current||!(e.current.checkVisibility?.()??!0))return!1;const r=Eo(e.current);(r.height===0||r.width===0)&&t.getState().onError?.("004",Te.error004()),t.setState({width:r.width||500,height:r.height||500})};if(e.current){n(),window.addEventListener("resize",n);const r=new ResizeObserver(()=>n());return r.observe(e.current),()=>{window.removeEventListener("resize",n),r&&e.current&&r.unobserve(e.current)}}},[])}var zr={position:"absolute",width:"100%",height:"100%",top:0,left:0},iI=e=>({userSelectionActive:e.userSelectionActive,lib:e.lib,connectionInProgress:e.connection.inProgress});function aI({onPaneContextMenu:e,zoomOnScroll:t=!0,zoomOnPinch:n=!0,panOnScroll:r=!1,panActivationKeyPressed:s,panOnScrollSpeed:o=.5,panOnScrollMode:i=wt.Free,zoomOnDoubleClick:a=!0,panOnDrag:l=!0,defaultViewport:c,translateExtent:u,minZoom:f,maxZoom:d,zoomActivationKeyCode:p,preventScrolling:g=!0,children:y,noWheelClassName:x,noPanClassName:v,onViewportChange:I,isControlledViewport:m,paneClickDistance:b,selectionOnDrag:E}){const N=oe(),R=(0,C.useRef)(null),{userSelectionActive:A,lib:k,connectionInProgress:L}=re(iI,le),_=Rn(p),M=(0,C.useRef)();oI(R);const O=(0,C.useCallback)(S=>{I?.({x:S[0],y:S[1],zoom:S[2]}),m||N.setState({transform:S})},[I,m]);return(0,C.useEffect)(()=>{if(R.current){M.current=yS({domNode:R.current,minZoom:f,maxZoom:d,translateExtent:u,viewport:c,onDraggingChange:j=>N.setState(D=>D.paneDragging===j?D:{paneDragging:j}),onPanZoomStart:(j,D)=>{const{onViewportChangeStart:P,onMoveStart:F}=N.getState();F?.(j,D),P?.(D)},onPanZoom:(j,D)=>{const{onViewportChange:P,onMove:F}=N.getState();F?.(j,D),P?.(D)},onPanZoomEnd:(j,D)=>{const{onViewportChangeEnd:P,onMoveEnd:F}=N.getState();F?.(j,D),P?.(D)}});const{x:S,y:w,zoom:T}=M.current.getViewport();return N.setState({panZoom:M.current,transform:[S,w,T],domNode:R.current.closest(".react-flow")}),()=>{M.current?.destroy()}}},[]),(0,C.useEffect)(()=>{M.current?.update({onPaneContextMenu:e,zoomOnScroll:t,zoomOnPinch:n,panOnScroll:r,panActivationKeyPressed:s,panOnScrollSpeed:o,panOnScrollMode:i,zoomOnDoubleClick:a,panOnDrag:l,zoomActivationKeyPressed:_,preventScrolling:g,noPanClassName:v,userSelectionActive:A,noWheelClassName:x,lib:k,onTransformChange:O,connectionInProgress:L,selectionOnDrag:E,paneClickDistance:b})},[e,t,n,r,s,o,i,a,l,_,g,v,A,x,k,O,L,E,b]),(0,h.jsx)("div",{className:"react-flow__renderer",ref:R,style:zr,children:y})}var lI=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function cI(){const{userSelectionActive:e,userSelectionRect:t}=re(lI,le);return e&&t?(0,h.jsx)("div",{className:"react-flow__selection react-flow__container",style:{width:t.width,height:t.height,transform:`translate(${t.x}px, ${t.y}px)`}}):null}var cs=(e,t)=>n=>{n.target===t.current&&e?.(n)},uI=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,dragging:e.paneDragging,panBy:e.panBy,autoPanSpeed:e.autoPanSpeed});function dI({isSelecting:e,selectionKeyPressed:t,selectionMode:n=En.Full,panOnDrag:r,autoPanOnSelection:s,paneClickDistance:o,selectionOnDrag:i,onSelectionStart:a,onSelectionEnd:l,onPaneClick:c,onPaneContextMenu:u,onPaneScroll:f,onPaneMouseEnter:d,onPaneMouseMove:p,onPaneMouseLeave:g,children:y}){const x=(0,C.useRef)(0),v=oe(),{userSelectionActive:I,elementsSelectable:m,dragging:b,panBy:E,autoPanSpeed:N}=re(uI,le),R=m&&(e||I),A=(0,C.useRef)(null),k=(0,C.useRef)(),L=(0,C.useRef)(new Set),_=(0,C.useRef)(new Set),M=(0,C.useRef)(!1),O=(0,C.useRef)(!1),S=(0,C.useRef)({x:0,y:0}),w=(0,C.useRef)(!1),T=$=>{if(O.current||M.current||v.getState().connection.inProgress){O.current=!1,M.current=!1;return}c?.($),v.getState().resetSelectedElements(),v.setState({nodesSelectionActive:!1})},j=$=>{if(Array.isArray(r)&&r?.includes(2)){$.preventDefault();return}u?.($)},D=f?$=>f($):void 0,P=$=>{O.current&&($.stopPropagation(),O.current=!1)},F=$=>{if($.pointerType==="touch"&&r!==!1&&!t)return;const{domNode:q,transform:Q}=v.getState();if(k.current=q?.getBoundingClientRect(),!k.current)return;const te=$.target===A.current;if(!te&&$.target.closest(".nokey")||!e||!(i&&te||t)||$.button!==0||!$.isPrimary)return;$.target?.setPointerCapture?.($.pointerId),O.current=!1;const{x:G,y:ne}=Le($.nativeEvent,k.current),Z=On({x:G,y:ne},Q);v.setState({userSelectionRect:{width:0,height:0,startX:Z.x,startY:Z.y,x:G,y:ne}}),te||($.stopPropagation(),$.preventDefault())};function z($,q){const{userSelectionRect:Q}=v.getState();if(!Q)return;const{transform:te,nodeLookup:G,edgeLookup:ne,connectionLookup:Z,triggerNodeChanges:U,triggerEdgeChanges:V,defaultEdgeOptions:pe}=v.getState(),ge={x:Q.startX,y:Q.startY},{x:ve,y:Me}=Yt(ge,te),ie={startX:ge.x,startY:ge.y,x:$<ve?$:ve,y:q<Me?q:Me,width:Math.abs($-ve),height:Math.abs(q-Me)},nt=L.current,ee=_.current;L.current=new Set(xo(G,ie,te,n===En.Partial,!0).map(ke=>ke.id)),_.current=new Set;const ce=pe?.selectable??!0;for(const ke of L.current){const Ye=Z.get(ke);if(Ye)for(const{edgeId:We}of Ye.values()){const gt=ne.get(We);gt&&(gt.selectable??ce)&&_.current.add(We)}}Fi(nt,L.current)||U(jt(G,L.current,!0)),Fi(ee,_.current)||V(jt(ne,_.current)),v.setState({userSelectionRect:ie,userSelectionActive:!0,nodesSelectionActive:!1})}function B(){if(!s||!k.current)return;const[$,q]=So(S.current,k.current,N);E({x:$,y:q}).then(Q=>{if(!O.current||!Q){x.current=requestAnimationFrame(B);return}const{x:te,y:G}=S.current;z(te,G),x.current=requestAnimationFrame(B)})}const K=()=>{cancelAnimationFrame(x.current),x.current=0,w.current=!1};(0,C.useEffect)(()=>()=>K(),[]);const H=$=>{const{userSelectionRect:q,transform:Q,resetSelectedElements:te}=v.getState();if(!k.current||!q)return;const{x:G,y:ne}=Le($.nativeEvent,k.current);S.current={x:G,y:ne};const Z=Yt({x:q.startX,y:q.startY},Q);if(!O.current){const U=t?0:o;if(Math.hypot(G-Z.x,ne-Z.y)<=U)return;te(),a?.($)}O.current=!0,w.current||(B(),w.current=!0),z(G,ne)},W=$=>{if(!R){$.target===A.current&&v.getState().connection.inProgress&&(M.current=!0);return}$.button===0&&($.target?.releasePointerCapture?.($.pointerId),!I&&$.target===A.current&&v.getState().userSelectionRect&&T?.($),v.setState({userSelectionActive:!1,userSelectionRect:null}),O.current&&(l?.($),v.setState({nodesSelectionActive:L.current.size>0})),K())},J=$=>{$.target?.releasePointerCapture?.($.pointerId),K()},X=r===!0||Array.isArray(r)&&r.includes(0);return(0,h.jsxs)("div",{className:ue(["react-flow__pane",{draggable:X,dragging:b,selection:e}]),onClick:R?void 0:cs(T,A),onContextMenu:cs(j,A),onWheel:cs(D,A),onPointerEnter:R?void 0:d,onPointerMove:R?H:p,onPointerUp:W,onPointerCancel:R?J:void 0,onPointerDownCapture:R?F:void 0,onClickCapture:R?P:void 0,onPointerLeave:g,ref:A,style:zr,children:[y,(0,h.jsx)(cI,{})]})}function $s({id:e,store:t,unselect:n=!1,nodeRef:r}){const{addSelectedNodes:s,unselectNodesAndEdges:o,multiSelectionActive:i,nodeLookup:a,onError:l}=t.getState(),c=a.get(e);if(!c){l?.("012",Te.error012(e));return}t.setState({nodesSelectionActive:!1}),c.selected?(n||c.selected&&i)&&(o({nodes:[c],edges:[]}),requestAnimationFrame(()=>r?.current?.blur())):s([e])}function Ou({nodeRef:e,disabled:t=!1,noDragClassName:n,handleSelector:r,nodeId:s,isSelectable:o,nodeClickDistance:i}){const a=oe(),[l,c]=(0,C.useState)(!1),u=(0,C.useRef)();return(0,C.useEffect)(()=>{if(!t)return u.current=sS({getStoreItems:()=>a.getState(),onNodeMouseDown:f=>{$s({id:f,store:a,nodeRef:e})},onDragStart:()=>{c(!0)},onDragStop:()=>{c(!1)}}),()=>{u.current?.destroy(),u.current=void 0}},[t,a,e]),(0,C.useEffect)(()=>{t||!e.current||!u.current||u.current.update({noDragClassName:n,handleSelector:r,domNode:e.current,isSelectable:o,nodeId:s,nodeClickDistance:i})},[n,r,t,o,e,s,i]),l}var hI=e=>t=>t.selected&&(t.draggable||e&&typeof t.draggable>"u");function ju(){const e=oe();return(0,C.useCallback)(t=>{const{nodeExtent:n,snapToGrid:r,snapGrid:s,nodesDraggable:o,onError:i,updateNodePositions:a,nodeLookup:l,nodeOrigin:c}=e.getState(),u=new Map,f=hI(o),d=r?s[0]:5,p=r?s[1]:5,g=t.direction.x*d*t.factor,y=t.direction.y*p*t.factor;for(const[,x]of l){if(!f(x))continue;let v={x:x.internals.positionAbsolute.x+g,y:x.internals.positionAbsolute.y+y};r&&(v=kn(v,s));const{position:I,positionAbsolute:m}=Jc({nodeId:x.id,nextPosition:v,nodeLookup:l,nodeExtent:n,nodeOrigin:c,onError:i});x.position=I,x.internals.positionAbsolute=m,u.set(x.id,x)}a(u)},[])}var Ao=(0,C.createContext)(null),fI=Ao.Provider;Ao.Consumer;var Pu=()=>(0,C.useContext)(Ao),pI=e=>({connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName,rfId:e.rfId}),Lu=(0,C.createContext)(null);function gI({children:e}){const t=re(pI,le);return(0,h.jsx)(Lu.Provider,{value:t,children:e})}function mI(){const e=(0,C.useContext)(Lu);if(!e)throw new Error("useHandleConfig must be used within a HandleConfigProvider");return e}var vI={connectingFrom:!1,connectingTo:!1,clickConnecting:!1,isPossibleEndHandle:!0,connectionInProcess:!1,clickConnectionInProcess:!1,valid:!1},yI=(e,t,n)=>r=>{const{connectionClickStartHandle:s,connectionMode:o,connection:i}=r,{fromHandle:a,toHandle:l,isValid:c}=i;if(!a&&!s)return vI;const u=l?.nodeId===e&&l?.id===t&&l?.type===n;return{connectingFrom:a?.nodeId===e&&a?.id===t&&a?.type===n,connectingTo:u,clickConnecting:s?.nodeId===e&&s?.id===t&&s?.type===n,isPossibleEndHandle:o===Vt.Strict?a?.type!==n:e!==a?.nodeId||t!==a?.id,connectionInProcess:!!a,clickConnectionInProcess:!!s,valid:u&&c}};function bI({type:e="source",position:t=Y.Top,isValidConnection:n,isConnectable:r=!0,isConnectableStart:s=!0,isConnectableEnd:o=!0,id:i,onConnect:a,children:l,className:c,onMouseDown:u,onTouchStart:f,...d},p){const g=i||null,y=e==="target",x=oe(),v=Pu(),{connectOnClick:I,noPanClassName:m,rfId:b}=mI(),{connectingFrom:E,connectingTo:N,clickConnecting:R,isPossibleEndHandle:A,connectionInProcess:k,clickConnectionInProcess:L,valid:_}=re(yI(v,g,e),le);v||x.getState().onError?.("010",Te.error010());const M=w=>{const{defaultEdgeOptions:T,onConnect:j,hasDefaultEdges:D}=x.getState(),P={...T,...w};if(D){const{edges:F,setEdges:z,onError:B}=x.getState();z(QS(P,F,{onError:B}))}j?.(P),a?.(P)},O=w=>{if(!v)return;const T=au(w.nativeEvent);if(s&&(T&&w.button===0||!T)){const j=x.getState();Ds.onPointerDown(w.nativeEvent,{handleDomNode:w.currentTarget,autoPanOnConnect:j.autoPanOnConnect,connectionMode:j.connectionMode,connectionRadius:j.connectionRadius,domNode:j.domNode,nodeLookup:j.nodeLookup,lib:j.lib,isTarget:y,handleId:g,nodeId:v,flowId:j.rfId,panBy:j.panBy,cancelConnection:j.cancelConnection,onConnectStart:j.onConnectStart,onConnectEnd:(...D)=>x.getState().onConnectEnd?.(...D),updateConnection:j.updateConnection,onConnect:M,isValidConnection:n||((...D)=>x.getState().isValidConnection?.(...D)??!0),getTransform:()=>x.getState().transform,getFromHandle:()=>x.getState().connection.fromHandle,autoPanSpeed:j.autoPanSpeed,dragThreshold:j.connectionDragThreshold})}T?u?.(w):f?.(w)},S=w=>{const{onClickConnectStart:T,onClickConnectEnd:j,connectionClickStartHandle:D,connectionMode:P,isValidConnection:F,lib:z,rfId:B,nodeLookup:K,connection:H}=x.getState();if(!v||!D&&!s)return;if(!D){T?.(w.nativeEvent,{nodeId:v,handleId:g,handleType:e}),x.setState({connectionClickStartHandle:{nodeId:v,type:e,id:g}});return}const W=ou(w.target),J=n||F,{connection:X,isValid:$}=Ds.isValid(w.nativeEvent,{handle:{nodeId:v,id:g,type:e},connectionMode:P,fromNodeId:D.nodeId,fromHandleId:D.id||null,fromType:D.type,isValidConnection:J,flowId:B,doc:W,lib:z,nodeLookup:K});$&&X&&M(X);const q=structuredClone(H);delete q.inProgress,q.toPosition=q.toHandle?q.toHandle.position:null,j?.(w,q),x.setState({connectionClickStartHandle:null})};return(0,h.jsx)("div",{"data-handleid":g,"data-nodeid":v,"data-handlepos":t,"data-id":`${b}-${v}-${g}-${e}`,className:ue(["react-flow__handle",`react-flow__handle-${t}`,"nodrag",m,c,{source:!y,target:y,connectable:r,connectablestart:s,connectableend:o,clickconnecting:R,connectingfrom:E,connectingto:N,valid:_,connectionindicator:r&&(!k||A)&&(k||L?o:s)}]),onMouseDown:O,onTouchStart:O,onClick:I?S:void 0,ref:p,...d,children:l})}var Xt=(0,C.memo)(Au(bI));function xI({data:e,isConnectable:t,sourcePosition:n=Y.Bottom}){return(0,h.jsxs)(h.Fragment,{children:[e?.label,(0,h.jsx)(Xt,{type:"source",position:n,isConnectable:t})]})}function SI({data:e,isConnectable:t,targetPosition:n=Y.Top,sourcePosition:r=Y.Bottom}){return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(Xt,{type:"target",position:n,isConnectable:t}),e?.label,(0,h.jsx)(Xt,{type:"source",position:r,isConnectable:t})]})}function II(){return null}function wI({data:e,isConnectable:t,targetPosition:n=Y.Top}){return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(Xt,{type:"target",position:n,isConnectable:t}),e?.label]})}var mr={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}},ha={input:xI,default:SI,output:wI,group:II};function EI(e){return e.internals.handleBounds===void 0?{width:e.width??e.initialWidth??e.style?.width,height:e.height??e.initialHeight??e.style?.height}:{width:e.width??e.style?.width,height:e.height??e.style?.height}}var CI=e=>{const{width:t,height:n,x:r,y:s}=Mn(e.nodeLookup,{filter:o=>!!o.selected});return{width:Pe(t)?t:null,height:Pe(n)?n:null,userSelectionActive:e.userSelectionActive,transformString:`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]}) translate(${r}px,${s}px)`}};function NI({onSelectionContextMenu:e,noPanClassName:t,disableKeyboardA11y:n}){const r=oe(),{width:s,height:o,transformString:i,userSelectionActive:a}=re(CI,le),l=ju(),c=(0,C.useRef)(null);(0,C.useEffect)(()=>{n||c.current?.focus({preventScroll:!0})},[n]);const u=!a&&s!==null&&o!==null;if(Ou({nodeRef:c,disabled:!u}),!u)return null;const f=e?p=>{e(p,r.getState().nodes.filter(g=>g.selected))}:void 0,d=p=>{Object.prototype.hasOwnProperty.call(mr,p.key)&&(p.preventDefault(),l({direction:mr[p.key],factor:p.shiftKey?4:1}))};return(0,h.jsx)("div",{className:ue(["react-flow__nodesselection","react-flow__container",t]),style:{transform:i},children:(0,h.jsx)("div",{ref:c,className:"react-flow__nodesselection-rect",onContextMenu:f,tabIndex:n?void 0:-1,onKeyDown:n?void 0:d,style:{width:s,height:o}})})}var fa=typeof window<"u"?window:void 0,RI=e=>({nodesSelectionActive:e.nodesSelectionActive,userSelectionActive:e.userSelectionActive});function Du({children:e,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:s,onPaneContextMenu:o,onPaneScroll:i,paneClickDistance:a,deleteKeyCode:l,selectionKeyCode:c,selectionOnDrag:u,selectionMode:f,onSelectionStart:d,onSelectionEnd:p,multiSelectionKeyCode:g,panActivationKeyCode:y,zoomActivationKeyCode:x,elementsSelectable:v,zoomOnScroll:I,zoomOnPinch:m,panOnScroll:b,panOnScrollSpeed:E,panOnScrollMode:N,zoomOnDoubleClick:R,panOnDrag:A,autoPanOnSelection:k,defaultViewport:L,translateExtent:_,minZoom:M,maxZoom:O,preventScrolling:S,onSelectionContextMenu:w,noWheelClassName:T,noPanClassName:j,disableKeyboardA11y:D,onViewportChange:P,isControlledViewport:F}){const{nodesSelectionActive:z,userSelectionActive:B}=re(RI,le),K=Rn(c,{target:fa}),H=Rn(y,{target:fa}),W=H||A,J=H||b,X=u&&W!==!0,$=K||B||X;return sI({deleteKeyCode:l,multiSelectionKeyCode:g}),(0,h.jsx)(aI,{onPaneContextMenu:o,elementsSelectable:v,zoomOnScroll:I,zoomOnPinch:m,panOnScroll:J,panActivationKeyPressed:H,panOnScrollSpeed:E,panOnScrollMode:N,zoomOnDoubleClick:R,panOnDrag:!K&&W,defaultViewport:L,translateExtent:_,minZoom:M,maxZoom:O,zoomActivationKeyCode:x,preventScrolling:S,noWheelClassName:T,noPanClassName:j,onViewportChange:P,isControlledViewport:F,paneClickDistance:a,selectionOnDrag:X,children:(0,h.jsxs)(dI,{onSelectionStart:d,onSelectionEnd:p,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:s,onPaneContextMenu:o,onPaneScroll:i,panOnDrag:W,autoPanOnSelection:k,isSelecting:!!$,selectionMode:f,selectionKeyPressed:K,paneClickDistance:a,selectionOnDrag:X,children:[e,z&&(0,h.jsx)(NI,{onSelectionContextMenu:w,noPanClassName:j,disableKeyboardA11y:D})]})})}Du.displayName="FlowRenderer";var _I=(0,C.memo)(Du),TI=e=>t=>e?xo(t.nodeLookup,{x:0,y:0,width:t.width,height:t.height},t.transform,!0).map(n=>n.id):Array.from(t.nodeLookup.keys());function AI(e){return re((0,C.useCallback)(TI(e),[e]),le)}var MI=e=>e.updateNodeInternals;function kI(){const e=re(MI),[t]=(0,C.useState)(()=>typeof ResizeObserver>"u"?null:new ResizeObserver(n=>{const r=new Map;n.forEach(s=>{const o=s.target.getAttribute("data-id");r.set(o,{id:o,nodeElement:s.target,force:!0})}),e(r)}));return(0,C.useEffect)(()=>()=>{t?.disconnect()},[t]),t}function OI({node:e,nodeType:t,hasDimensions:n,resizeObserver:r}){const s=oe(),o=(0,C.useRef)(null),i=(0,C.useRef)(null),a=(0,C.useRef)(e.sourcePosition),l=(0,C.useRef)(e.targetPosition),c=(0,C.useRef)(t),u=n&&!!e.internals.handleBounds;return(0,C.useEffect)(()=>{o.current&&!e.hidden&&(!u||i.current!==o.current)&&(i.current&&r?.unobserve(i.current),r?.observe(o.current),i.current=o.current)},[u,e.hidden]),(0,C.useEffect)(()=>()=>{i.current&&(r?.unobserve(i.current),i.current=null)},[]),(0,C.useEffect)(()=>{if(o.current){const f=c.current!==t,d=a.current!==e.sourcePosition,p=l.current!==e.targetPosition;(f||d||p)&&(c.current=t,a.current=e.sourcePosition,l.current=e.targetPosition,s.getState().updateNodeInternals(new Map([[e.id,{id:e.id,nodeElement:o.current,force:!0}]])))}},[e.id,t,e.sourcePosition,e.targetPosition]),o}function jI({id:e,onClick:t,onMouseEnter:n,onMouseMove:r,onMouseLeave:s,onContextMenu:o,onDoubleClick:i,nodesDraggable:a,elementsSelectable:l,nodesConnectable:c,nodesFocusable:u,resizeObserver:f,noDragClassName:d,noPanClassName:p,disableKeyboardA11y:g,rfId:y,nodeTypes:x,nodeClickDistance:v,onError:I}){const{node:m,internals:b,isParent:E}=re($=>{const q=$.nodeLookup.get(e),Q=$.parentLookup.has(e);return{node:q,internals:q.internals,isParent:Q}},le);let N=m.type||"default",R=x?.[N]||ha[N];R===void 0&&(I?.("003",Te.error003(N)),N="default",R=x?.default||ha.default);const A=!!(m.draggable||a&&typeof m.draggable>"u"),k=!!(m.selectable||l&&typeof m.selectable>"u"),L=!!(m.connectable||c&&typeof m.connectable>"u"),_=!!(m.focusable||u&&typeof m.focusable>"u"),M=oe(),O=wo(m),S=OI({node:m,nodeType:N,hasDimensions:O,resizeObserver:f}),w=Ou({nodeRef:S,disabled:m.hidden||!A,noDragClassName:d,handleSelector:m.dragHandle,nodeId:e,isSelectable:k,nodeClickDistance:v}),T=ju();if(m.hidden)return null;const j=Fe(m),D=EI(m),P=k||A||t||n||r||s,F=n?$=>n($,{...b.userNode}):void 0,z=r?$=>r($,{...b.userNode}):void 0,B=s?$=>s($,{...b.userNode}):void 0,K=o?$=>o($,{...b.userNode}):void 0,H=i?$=>i($,{...b.userNode}):void 0,W=$=>{const{selectNodesOnDrag:q,nodeDragThreshold:Q}=M.getState();k&&(!q||!A||Q>0)&&$s({id:e,store:M,nodeRef:S}),t&&t($,{...b.userNode})},J=$=>{if(!(iu($.nativeEvent)||g)){if(Yc.includes($.key)&&k){const q=$.key==="Escape";$s({id:e,store:M,unselect:q,nodeRef:S})}else if(A&&m.selected&&Object.prototype.hasOwnProperty.call(mr,$.key)){$.preventDefault();const{ariaLabelConfig:q}=M.getState();M.setState({ariaLiveMessage:q["node.a11yDescription.ariaLiveMessage"]({direction:$.key.replace("Arrow","").toLowerCase(),x:~~b.positionAbsolute.x,y:~~b.positionAbsolute.y})}),T({direction:mr[$.key],factor:$.shiftKey?4:1})}}},X=()=>{if(g||!S.current?.matches(":focus-visible"))return;const{transform:$,width:q,height:Q,autoPanOnNodeFocus:te,setCenter:G}=M.getState();te&&(xo(new Map([[e,m]]),{x:0,y:0,width:q,height:Q},$,!0).length>0||G(m.position.x+j.width/2,m.position.y+j.height/2,{zoom:$[2]}))};return(0,h.jsx)("div",{className:ue(["react-flow__node",`react-flow__node-${N}`,{[p]:A},m.className,{selected:m.selected,selectable:k,parent:E,draggable:A,dragging:w}]),ref:S,style:{zIndex:b.z,transform:`translate(${b.positionAbsolute.x}px,${b.positionAbsolute.y}px)`,pointerEvents:P?"all":"none",visibility:O?"visible":"hidden",...m.style,...D},"data-id":e,"data-testid":`rf__node-${e}`,onMouseEnter:F,onMouseMove:z,onMouseLeave:B,onContextMenu:K,onClick:W,onDoubleClick:H,onKeyDown:_?J:void 0,tabIndex:_?0:void 0,onFocus:_?X:void 0,role:m.ariaRole??(_?"group":void 0),"aria-roledescription":"node","aria-describedby":g?void 0:`${Cu}-${y}`,"aria-label":m.ariaLabel,...m.domAttributes,children:(0,h.jsx)(fI,{value:e,children:(0,h.jsx)(R,{id:e,data:m.data,type:N,positionAbsoluteX:b.positionAbsolute.x,positionAbsoluteY:b.positionAbsolute.y,selected:m.selected??!1,selectable:k,draggable:A,deletable:m.deletable??!0,isConnectable:L,sourcePosition:m.sourcePosition,targetPosition:m.targetPosition,dragging:w,dragHandle:m.dragHandle,zIndex:b.z,parentId:m.parentId,...j})})})}var PI=(0,C.memo)(jI),LI=e=>({nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,onError:e.onError});function $u(e){const{nodesConnectable:t,nodesFocusable:n,elementsSelectable:r,onError:s}=re(LI,le),o=AI(e.onlyRenderVisibleElements),i=kI();return(0,h.jsx)("div",{className:"react-flow__nodes",style:zr,children:o.map(a=>(0,h.jsx)(PI,{id:a,nodeTypes:e.nodeTypes,nodeExtent:e.nodeExtent,onClick:e.onNodeClick,onMouseEnter:e.onNodeMouseEnter,onMouseMove:e.onNodeMouseMove,onMouseLeave:e.onNodeMouseLeave,onContextMenu:e.onNodeContextMenu,onDoubleClick:e.onNodeDoubleClick,noDragClassName:e.noDragClassName,noPanClassName:e.noPanClassName,rfId:e.rfId,disableKeyboardA11y:e.disableKeyboardA11y,resizeObserver:i,nodesDraggable:e.nodesDraggable??!0,nodesConnectable:t,nodesFocusable:n,elementsSelectable:r,nodeClickDistance:e.nodeClickDistance,onError:s},a))})}$u.displayName="NodeRenderer";var DI=(0,C.memo)($u);function $I(e){return re((0,C.useCallback)(t=>{if(!e)return t.edges.map(r=>r.id);const n=[];if(t.width&&t.height)for(const r of t.edges){const s=t.nodeLookup.get(r.source),o=t.nodeLookup.get(r.target);s&&o&&Fx({sourceNode:s,targetNode:o,width:t.width,height:t.height,transform:t.transform})&&n.push(r.id)}return n},[e]),le)}var FI=({color:e="none",strokeWidth:t=1})=>{const n={strokeWidth:t,...e&&{stroke:e}};return(0,h.jsx)("polyline",{className:"arrow",style:n,strokeLinecap:"round",fill:"none",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4"})},zI=({color:e="none",strokeWidth:t=1})=>{const n={strokeWidth:t,...e&&{stroke:e,fill:e}};return(0,h.jsx)("polyline",{className:"arrowclosed",style:n,strokeLinecap:"round",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4 -5,-4"})},pa={[fr.Arrow]:FI,[fr.ArrowClosed]:zI};function HI(e){const t=oe();return(0,C.useMemo)(()=>Object.prototype.hasOwnProperty.call(pa,e)?pa[e]:(t.getState().onError?.("009",Te.error009(e)),null),[e])}var BI=({id:e,type:t,color:n,width:r=12.5,height:s=12.5,markerUnits:o="strokeWidth",strokeWidth:i,orient:a="auto-start-reverse"})=>{const l=HI(t);return l?(0,h.jsx)("marker",{className:"react-flow__arrowhead",id:e,markerWidth:`${r}`,markerHeight:`${s}`,viewBox:"-10 -10 20 20",markerUnits:o,orient:a,refX:"0",refY:"0",children:(0,h.jsx)(l,{color:n,strokeWidth:i})}):null},Fu=({defaultColor:e,rfId:t})=>{const n=re(o=>o.edges),r=re(o=>o.defaultEdgeOptions),s=(0,C.useMemo)(()=>Kx(n,{id:t,defaultColor:e,defaultMarkerStart:r?.markerStart,defaultMarkerEnd:r?.markerEnd}),[n,r,t,e]);return s.length?(0,h.jsx)("svg",{className:"react-flow__marker","aria-hidden":"true",children:(0,h.jsx)("defs",{children:s.map(o=>(0,h.jsx)(BI,{id:o.id,type:o.type,color:o.color,width:o.width,height:o.height,markerUnits:o.markerUnits,strokeWidth:o.strokeWidth,orient:o.orient},o.id))})}):null};Fu.displayName="MarkerDefinitions";var GI=(0,C.memo)(Fu);function zu({x:e,y:t,label:n,labelStyle:r,labelShowBg:s=!0,labelBgStyle:o,labelBgPadding:i=[2,4],labelBgBorderRadius:a=2,children:l,className:c,...u}){const[f,d]=(0,C.useState)({x:1,y:0,width:0,height:0}),p=ue(["react-flow__edge-textwrapper",c]),g=(0,C.useRef)(null);return(0,C.useEffect)(()=>{if(g.current){const y=g.current.getBBox();d({x:y.x,y:y.y,width:y.width,height:y.height})}},[n]),n?(0,h.jsxs)("g",{transform:`translate(${e-f.width/2} ${t-f.height/2})`,className:p,visibility:f.width?"visible":"hidden",...u,children:[s&&(0,h.jsx)("rect",{width:f.width+2*i[0],x:-i[0],y:-i[1],height:f.height+2*i[1],className:"react-flow__edge-textbg",style:o,rx:a,ry:a}),(0,h.jsx)("text",{className:"react-flow__edge-text",y:f.height/2,dy:"0.3em",ref:g,style:r,children:n}),l]}):null}zu.displayName="EdgeText";var UI=(0,C.memo)(zu);function Hr({path:e,labelX:t,labelY:n,label:r,labelStyle:s,labelShowBg:o,labelBgStyle:i,labelBgPadding:a,labelBgBorderRadius:l,interactionWidth:c=20,...u}){return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)("path",{...u,d:e,fill:"none",className:ue(["react-flow__edge-path",u.className])}),c?(0,h.jsx)("path",{d:e,fill:"none",strokeOpacity:0,strokeWidth:c,className:"react-flow__edge-interaction"}):null,r&&Pe(t)&&Pe(n)?(0,h.jsx)(UI,{x:t,y:n,label:r,labelStyle:s,labelShowBg:o,labelBgStyle:i,labelBgPadding:a,labelBgBorderRadius:l}):null]})}function ga({pos:e,x1:t,y1:n,x2:r,y2:s}){return e===Y.Left||e===Y.Right?[.5*(t+r),n]:[t,.5*(n+s)]}function Hu({sourceX:e,sourceY:t,sourcePosition:n=Y.Bottom,targetX:r,targetY:s,targetPosition:o=Y.Top}){const[i,a]=ga({pos:n,x1:e,y1:t,x2:r,y2:s}),[l,c]=ga({pos:o,x1:r,y1:s,x2:e,y2:t}),[u,f,d,p]=lu({sourceX:e,sourceY:t,targetX:r,targetY:s,sourceControlX:i,sourceControlY:a,targetControlX:l,targetControlY:c});return[`M${e},${t} C${i},${a} ${l},${c} ${r},${s}`,u,f,d,p]}function Bu(e){return(0,C.memo)(({id:t,sourceX:n,sourceY:r,targetX:s,targetY:o,sourcePosition:i,targetPosition:a,label:l,labelStyle:c,labelShowBg:u,labelBgStyle:f,labelBgPadding:d,labelBgBorderRadius:p,style:g,markerEnd:y,markerStart:x,interactionWidth:v})=>{const[I,m,b]=Hu({sourceX:n,sourceY:r,sourcePosition:i,targetX:s,targetY:o,targetPosition:a}),E=e.isInternal?void 0:t;return(0,h.jsx)(Hr,{id:E,path:I,labelX:m,labelY:b,label:l,labelStyle:c,labelShowBg:u,labelBgStyle:f,labelBgPadding:d,labelBgBorderRadius:p,style:g,markerEnd:y,markerStart:x,interactionWidth:v})})}var qI=Bu({isInternal:!1}),Gu=Bu({isInternal:!0});qI.displayName="SimpleBezierEdge";Gu.displayName="SimpleBezierEdgeInternal";function Uu(e){return(0,C.memo)(({id:t,sourceX:n,sourceY:r,targetX:s,targetY:o,label:i,labelStyle:a,labelShowBg:l,labelBgStyle:c,labelBgPadding:u,labelBgBorderRadius:f,style:d,sourcePosition:p=Y.Bottom,targetPosition:g=Y.Top,markerEnd:y,markerStart:x,pathOptions:v,interactionWidth:I})=>{const[m,b,E]=js({sourceX:n,sourceY:r,sourcePosition:p,targetX:s,targetY:o,targetPosition:g,borderRadius:v?.borderRadius,offset:v?.offset,stepPosition:v?.stepPosition}),N=e.isInternal?void 0:t;return(0,h.jsx)(Hr,{id:N,path:m,labelX:b,labelY:E,label:i,labelStyle:a,labelShowBg:l,labelBgStyle:c,labelBgPadding:u,labelBgBorderRadius:f,style:d,markerEnd:y,markerStart:x,interactionWidth:I})})}var qu=Uu({isInternal:!1}),Vu=Uu({isInternal:!0});qu.displayName="SmoothStepEdge";Vu.displayName="SmoothStepEdgeInternal";function Ku(e){return(0,C.memo)(({id:t,...n})=>{const r=e.isInternal?void 0:t;return(0,h.jsx)(qu,{...n,id:r,pathOptions:(0,C.useMemo)(()=>({borderRadius:0,offset:n.pathOptions?.offset}),[n.pathOptions?.offset])})})}var VI=Ku({isInternal:!1}),Yu=Ku({isInternal:!0});VI.displayName="StepEdge";Yu.displayName="StepEdgeInternal";function Wu(e){return(0,C.memo)(({id:t,sourceX:n,sourceY:r,targetX:s,targetY:o,label:i,labelStyle:a,labelShowBg:l,labelBgStyle:c,labelBgPadding:u,labelBgBorderRadius:f,style:d,markerEnd:p,markerStart:g,interactionWidth:y})=>{const[x,v,I]=du({sourceX:n,sourceY:r,targetX:s,targetY:o}),m=e.isInternal?void 0:t;return(0,h.jsx)(Hr,{id:m,path:x,labelX:v,labelY:I,label:i,labelStyle:a,labelShowBg:l,labelBgStyle:c,labelBgPadding:u,labelBgBorderRadius:f,style:d,markerEnd:p,markerStart:g,interactionWidth:y})})}var KI=Wu({isInternal:!1}),Xu=Wu({isInternal:!0});KI.displayName="StraightEdge";Xu.displayName="StraightEdgeInternal";function Qu(e){return(0,C.memo)(({id:t,sourceX:n,sourceY:r,targetX:s,targetY:o,sourcePosition:i=Y.Bottom,targetPosition:a=Y.Top,label:l,labelStyle:c,labelShowBg:u,labelBgStyle:f,labelBgPadding:d,labelBgBorderRadius:p,style:g,markerEnd:y,markerStart:x,pathOptions:v,interactionWidth:I})=>{const[m,b,E]=cu({sourceX:n,sourceY:r,sourcePosition:i,targetX:s,targetY:o,targetPosition:a,curvature:v?.curvature}),N=e.isInternal?void 0:t;return(0,h.jsx)(Hr,{id:N,path:m,labelX:b,labelY:E,label:l,labelStyle:c,labelShowBg:u,labelBgStyle:f,labelBgPadding:d,labelBgBorderRadius:p,style:g,markerEnd:y,markerStart:x,interactionWidth:I})})}var YI=Qu({isInternal:!1}),Ju=Qu({isInternal:!0});YI.displayName="BezierEdge";Ju.displayName="BezierEdgeInternal";var ma={default:Ju,straight:Xu,step:Yu,smoothstep:Vu,simplebezier:Gu},va={sourceX:null,sourceY:null,targetX:null,targetY:null,sourcePosition:null,targetPosition:null,zIndex:void 0},WI=(e,t,n)=>n===Y.Left?e-t:n===Y.Right?e+t:e,XI=(e,t,n)=>n===Y.Top?e-t:n===Y.Bottom?e+t:e,ya="react-flow__edgeupdater";function ba({position:e,centerX:t,centerY:n,radius:r=10,onMouseDown:s,onMouseEnter:o,onMouseOut:i,type:a}){return(0,h.jsx)("circle",{onMouseDown:s,onMouseEnter:o,onMouseOut:i,className:ue([ya,`${ya}-${a}`]),cx:WI(t,r,e),cy:XI(n,r,e),r,stroke:"transparent",fill:"transparent"})}function QI({isReconnectable:e,reconnectRadius:t,edge:n,sourceX:r,sourceY:s,targetX:o,targetY:i,sourcePosition:a,targetPosition:l,onReconnect:c,onReconnectStart:u,onReconnectEnd:f,setReconnecting:d,setUpdateHover:p}){const g=oe(),y=(b,E)=>{if(b.button!==0)return;const{autoPanOnConnect:N,domNode:R,connectionMode:A,connectionRadius:k,lib:L,onConnectStart:_,cancelConnection:M,nodeLookup:O,rfId:S,panBy:w,updateConnection:T}=g.getState(),j=E.type==="target",D=(z,B)=>{d(!1),f?.(z,n,E.type,B)},P=z=>c?.(n,z),F=(z,B)=>{d(!0),u?.(b,n,E.type),_?.(z,B)};Ds.onPointerDown(b.nativeEvent,{autoPanOnConnect:N,connectionMode:A,connectionRadius:k,domNode:R,handleId:E.id,nodeId:E.nodeId,nodeLookup:O,isTarget:j,edgeUpdaterType:E.type,lib:L,flowId:S,cancelConnection:M,panBy:w,isValidConnection:(...z)=>g.getState().isValidConnection?.(...z)??!0,onConnect:P,onConnectStart:F,onConnectEnd:(...z)=>g.getState().onConnectEnd?.(...z),onReconnectEnd:D,updateConnection:T,getTransform:()=>g.getState().transform,getFromHandle:()=>g.getState().connection.fromHandle,dragThreshold:g.getState().connectionDragThreshold,handleDomNode:b.currentTarget})},x=b=>y(b,{nodeId:n.target,id:n.targetHandle??null,type:"target"}),v=b=>y(b,{nodeId:n.source,id:n.sourceHandle??null,type:"source"}),I=()=>p(!0),m=()=>p(!1);return(0,h.jsxs)(h.Fragment,{children:[(e===!0||e==="source")&&(0,h.jsx)(ba,{position:a,centerX:r,centerY:s,radius:t,onMouseDown:x,onMouseEnter:I,onMouseOut:m,type:"source"}),(e===!0||e==="target")&&(0,h.jsx)(ba,{position:l,centerX:o,centerY:i,radius:t,onMouseDown:v,onMouseEnter:I,onMouseOut:m,type:"target"})]})}function JI({id:e,edgesFocusable:t,edgesReconnectable:n,elementsSelectable:r,onClick:s,onDoubleClick:o,onContextMenu:i,onMouseEnter:a,onMouseMove:l,onMouseLeave:c,reconnectRadius:u,onReconnect:f,onReconnectStart:d,onReconnectEnd:p,rfId:g,edgeTypes:y,noPanClassName:x,onError:v,disableKeyboardA11y:I}){let m=re(G=>G.edgeLookup.get(e));const b=re(G=>G.defaultEdgeOptions);m=b?{...b,...m}:m;let E=m.type||"default",N=y?.[E]||ma[E];N===void 0&&(v?.("011",Te.error011(E)),E="default",N=y?.default||ma.default);const R=!!(m.focusable||t&&typeof m.focusable>"u"),A=typeof f<"u"&&(m.reconnectable||n&&typeof m.reconnectable>"u"),k=!!(m.selectable||r&&typeof m.selectable>"u"),L=(0,C.useRef)(null),[_,M]=(0,C.useState)(!1),[O,S]=(0,C.useState)(!1),w=oe(),{zIndex:T=m.zIndex,sourceX:j,sourceY:D,targetX:P,targetY:F,sourcePosition:z,targetPosition:B}=re((0,C.useCallback)(G=>{const ne=G.nodeLookup.get(m.source),Z=G.nodeLookup.get(m.target);if(!ne||!Z)return va;const U=Vx({id:e,sourceNode:ne,targetNode:Z,sourceHandle:m.sourceHandle||null,targetHandle:m.targetHandle||null,connectionMode:G.connectionMode,onError:v}),V=$x({selected:m.selected,zIndex:m.zIndex,sourceNode:ne,targetNode:Z,elevateOnSelect:G.elevateEdgesOnSelect,zIndexMode:G.zIndexMode});return{...U||va,zIndex:V}},[m.source,m.target,m.sourceHandle,m.targetHandle,m.selected,m.zIndex,v]),le),K=(0,C.useMemo)(()=>m.markerStart?`url('#${Ps(m.markerStart,g)}')`:void 0,[m.markerStart,g]),H=(0,C.useMemo)(()=>m.markerEnd?`url('#${Ps(m.markerEnd,g)}')`:void 0,[m.markerEnd,g]);if(m.hidden||j===null||D===null||P===null||F===null)return null;const W=G=>{const{addSelectedEdges:ne,unselectNodesAndEdges:Z,multiSelectionActive:U}=w.getState();k&&(w.setState({nodesSelectionActive:!1}),m.selected&&U?(Z({nodes:[],edges:[m]}),L.current?.blur()):ne([e])),s&&s(G,m)},J=o?G=>{o(G,{...m})}:void 0,X=i?G=>{i(G,{...m})}:void 0,$=a?G=>{a(G,{...m})}:void 0,q=l?G=>{l(G,{...m})}:void 0,Q=c?G=>{c(G,{...m})}:void 0,te=G=>{if(!I&&Yc.includes(G.key)&&k){const{unselectNodesAndEdges:ne,addSelectedEdges:Z}=w.getState();G.key==="Escape"?(L.current?.blur(),ne({edges:[m]})):Z([e])}};return(0,h.jsx)("svg",{style:{zIndex:T},children:(0,h.jsxs)("g",{className:ue(["react-flow__edge",`react-flow__edge-${E}`,m.className,x,{selected:m.selected,animated:m.animated,inactive:!k&&!s,updating:_,selectable:k}]),onClick:W,onDoubleClick:J,onContextMenu:X,onMouseEnter:$,onMouseMove:q,onMouseLeave:Q,onKeyDown:R?te:void 0,tabIndex:R?0:void 0,role:m.ariaRole??(R?"group":"img"),"aria-roledescription":"edge","data-id":e,"data-testid":`rf__edge-${e}`,"aria-label":m.ariaLabel===null?void 0:m.ariaLabel||`Edge from ${m.source} to ${m.target}`,"aria-describedby":R?`${Nu}-${g}`:void 0,ref:L,...m.domAttributes,children:[!O&&(0,h.jsx)(N,{id:e,source:m.source,target:m.target,type:m.type,selected:m.selected,animated:m.animated,selectable:k,deletable:m.deletable??!0,label:m.label,labelStyle:m.labelStyle,labelShowBg:m.labelShowBg,labelBgStyle:m.labelBgStyle,labelBgPadding:m.labelBgPadding,labelBgBorderRadius:m.labelBgBorderRadius,sourceX:j,sourceY:D,targetX:P,targetY:F,sourcePosition:z,targetPosition:B,data:m.data,style:m.style,sourceHandleId:m.sourceHandle,targetHandleId:m.targetHandle,markerStart:K,markerEnd:H,pathOptions:"pathOptions"in m?m.pathOptions:void 0,interactionWidth:m.interactionWidth}),A&&(0,h.jsx)(QI,{edge:m,isReconnectable:A,reconnectRadius:u,onReconnect:f,onReconnectStart:d,onReconnectEnd:p,sourceX:j,sourceY:D,targetX:P,targetY:F,sourcePosition:z,targetPosition:B,setUpdateHover:M,setReconnecting:S})]})})}var ZI=(0,C.memo)(JI),ew=e=>({edgesFocusable:e.edgesFocusable,edgesReconnectable:e.edgesReconnectable,elementsSelectable:e.elementsSelectable,connectionMode:e.connectionMode,onError:e.onError});function Zu({defaultMarkerColor:e,onlyRenderVisibleElements:t,rfId:n,edgeTypes:r,noPanClassName:s,onReconnect:o,onEdgeContextMenu:i,onEdgeMouseEnter:a,onEdgeMouseMove:l,onEdgeMouseLeave:c,onEdgeClick:u,reconnectRadius:f,onEdgeDoubleClick:d,onReconnectStart:p,onReconnectEnd:g,disableKeyboardA11y:y}){const{edgesFocusable:x,edgesReconnectable:v,elementsSelectable:I,onError:m}=re(ew,le),b=$I(t);return(0,h.jsxs)("div",{className:"react-flow__edges",children:[(0,h.jsx)(GI,{defaultColor:e,rfId:n}),b.map(E=>(0,h.jsx)(ZI,{id:E,edgesFocusable:x,edgesReconnectable:v,elementsSelectable:I,noPanClassName:s,onReconnect:o,onContextMenu:i,onMouseEnter:a,onMouseMove:l,onMouseLeave:c,onClick:u,reconnectRadius:f,onDoubleClick:d,onReconnectStart:p,onReconnectEnd:g,rfId:n,onError:m,edgeTypes:r,disableKeyboardA11y:y},E))]})}Zu.displayName="EdgeRenderer";var tw=(0,C.memo)(Zu),xa=e=>`translate(${e[0]}px,${e[1]}px) scale(${e[2]})`;function nw({children:e}){const t=oe(),n=(0,C.useRef)(null),[r]=(0,C.useState)(()=>t.getState().transform);return Mu(()=>{let s=null;const o=()=>{const i=t.getState().transform;s&&i[0]===s[0]&&i[1]===s[1]&&i[2]===s[2]||(s=i,n.current&&(n.current.style.transform=xa(i)))};return o(),t.subscribe(o)},[t]),(0,h.jsx)("div",{ref:n,className:"react-flow__viewport xyflow__viewport react-flow__container",style:{transform:xa(r)},children:e})}function rw(e){const t=Fr(),n=(0,C.useRef)(!1);(0,C.useEffect)(()=>{!n.current&&t.viewportInitialized&&e&&(setTimeout(()=>e(t),1),n.current=!0)},[e,t.viewportInitialized])}var sw=e=>e.panZoom?.syncViewport;function ow(e){const t=re(sw),n=oe();return(0,C.useEffect)(()=>{e&&(t?.(e),n.setState({transform:[e.x,e.y,e.zoom]}))},[e,t]),null}function Sa(e){return e.connection.inProgress?{...e.connection,to:On(e.connection.to,e.transform)}:{...e.connection}}function iw(e){return e?n=>e(Sa(n)):Sa}function aw(e){return re(iw(e),le)}var lw=e=>({nodesConnectable:e.nodesConnectable,isValid:e.connection.isValid,inProgress:e.connection.inProgress,width:e.width,height:e.height});function cw({containerStyle:e,style:t,type:n,component:r}){const{nodesConnectable:s,width:o,height:i,isValid:a,inProgress:l}=re(lw,le);return o&&s&&l?(0,h.jsx)("svg",{style:e,width:o,height:i,className:"react-flow__connectionline react-flow__container",children:(0,h.jsx)("g",{className:ue(["react-flow__connection",su(a)]),children:(0,h.jsx)(ed,{style:t,type:n,CustomComponent:r,isValid:a})})}):null}var ed=({style:e,type:t=at.Bezier,CustomComponent:n,isValid:r})=>{const{inProgress:s,from:o,fromNode:i,fromHandle:a,fromPosition:l,to:c,toNode:u,toHandle:f,toPosition:d,pointer:p}=aw();if(!s)return;if(n)return(0,h.jsx)(n,{connectionLineType:t,connectionLineStyle:e,fromNode:i,fromHandle:a,fromX:o.x,fromY:o.y,toX:c.x,toY:c.y,fromPosition:l,toPosition:d,connectionStatus:su(r),toNode:u,toHandle:f,pointer:p});let g="";const y={sourceX:o.x,sourceY:o.y,sourcePosition:l,targetX:c.x,targetY:c.y,targetPosition:d};switch(t){case at.Bezier:[g]=cu(y);break;case at.SimpleBezier:[g]=Hu(y);break;case at.Step:[g]=js({...y,borderRadius:0});break;case at.SmoothStep:[g]=js(y);break;default:[g]=du(y)}return(0,h.jsx)("path",{d:g,fill:"none",className:"react-flow__connection-path",style:e})};ed.displayName="ConnectionLine";var uw={};function Ia(e=uw){(0,C.useRef)(e),oe(),(0,C.useEffect)(()=>{},[e])}function dw(){oe(),(0,C.useRef)(!1),(0,C.useEffect)(()=>{},[])}function td({nodeTypes:e,edgeTypes:t,onInit:n,onNodeClick:r,onEdgeClick:s,onNodeDoubleClick:o,onEdgeDoubleClick:i,onNodeMouseEnter:a,onNodeMouseMove:l,onNodeMouseLeave:c,onNodeContextMenu:u,onSelectionContextMenu:f,onSelectionStart:d,onSelectionEnd:p,connectionLineType:g,connectionLineStyle:y,connectionLineComponent:x,connectionLineContainerStyle:v,selectionKeyCode:I,selectionOnDrag:m,selectionMode:b,multiSelectionKeyCode:E,panActivationKeyCode:N,zoomActivationKeyCode:R,deleteKeyCode:A,onlyRenderVisibleElements:k,elementsSelectable:L,defaultViewport:_,translateExtent:M,minZoom:O,maxZoom:S,preventScrolling:w,defaultMarkerColor:T,zoomOnScroll:j,zoomOnPinch:D,panOnScroll:P,panOnScrollSpeed:F,panOnScrollMode:z,zoomOnDoubleClick:B,panOnDrag:K,autoPanOnSelection:H,onPaneClick:W,onPaneMouseEnter:J,onPaneMouseMove:X,onPaneMouseLeave:$,onPaneScroll:q,onPaneContextMenu:Q,paneClickDistance:te,nodeClickDistance:G,onEdgeContextMenu:ne,onEdgeMouseEnter:Z,onEdgeMouseMove:U,onEdgeMouseLeave:V,reconnectRadius:pe,onReconnect:ge,onReconnectStart:ve,onReconnectEnd:Me,noDragClassName:ie,noWheelClassName:nt,noPanClassName:ee,disableKeyboardA11y:ce,nodeExtent:ke,rfId:Ye,viewport:We,onViewportChange:gt,nodesDraggable:qr}){return Ia(e),Ia(t),dw(),rw(n),ow(We),(0,h.jsx)(_I,{onPaneClick:W,onPaneMouseEnter:J,onPaneMouseMove:X,onPaneMouseLeave:$,onPaneContextMenu:Q,onPaneScroll:q,paneClickDistance:te,deleteKeyCode:A,selectionKeyCode:I,selectionOnDrag:m,selectionMode:b,onSelectionStart:d,onSelectionEnd:p,multiSelectionKeyCode:E,panActivationKeyCode:N,zoomActivationKeyCode:R,elementsSelectable:L,zoomOnScroll:j,zoomOnPinch:D,zoomOnDoubleClick:B,panOnScroll:P,panOnScrollSpeed:F,panOnScrollMode:z,panOnDrag:K,autoPanOnSelection:H,defaultViewport:_,translateExtent:M,minZoom:O,maxZoom:S,onSelectionContextMenu:f,preventScrolling:w,noDragClassName:ie,noWheelClassName:nt,noPanClassName:ee,disableKeyboardA11y:ce,onViewportChange:gt,isControlledViewport:!!We,children:(0,h.jsxs)(nw,{children:[(0,h.jsx)(tw,{edgeTypes:t,onEdgeClick:s,onEdgeDoubleClick:i,onReconnect:ge,onReconnectStart:ve,onReconnectEnd:Me,onlyRenderVisibleElements:k,onEdgeContextMenu:ne,onEdgeMouseEnter:Z,onEdgeMouseMove:U,onEdgeMouseLeave:V,reconnectRadius:pe,defaultMarkerColor:T,noPanClassName:ee,disableKeyboardA11y:ce,rfId:Ye}),(0,h.jsx)(cw,{style:y,type:g,component:x,containerStyle:v}),(0,h.jsx)("div",{className:"react-flow__edgelabel-renderer"}),(0,h.jsx)(DI,{nodeTypes:e,onNodeClick:r,onNodeDoubleClick:o,onNodeMouseEnter:a,onNodeMouseMove:l,onNodeMouseLeave:c,onNodeContextMenu:u,nodeClickDistance:G,onlyRenderVisibleElements:k,noPanClassName:ee,noDragClassName:ie,disableKeyboardA11y:ce,nodeExtent:ke,rfId:Ye,nodesDraggable:qr}),(0,h.jsx)("div",{className:"react-flow__viewport-portal"})]})})}td.displayName="GraphView";var hw=(0,C.memo)(td),fw=nu("React Flow","https://reactflow.dev/"),wa=({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:s,height:o,fitView:i,fitViewOptions:a,minZoom:l=.5,maxZoom:c=2,nodeOrigin:u,nodeExtent:f,zIndexMode:d="basic"}={})=>{const p=new Map,g=new Map,y=new Map,x=new Map,v=r??t??[],I=n??e??[],m=u??[0,0],b=f??wn;pu(y,x,v);const{nodesInitialized:E}=Ls(I,p,g,{nodeOrigin:m,nodeExtent:b,zIndexMode:d});let N=[0,0,1];if(i&&s&&o){const R=Mn(p,{filter:_=>!!((_.width||_.initialWidth)&&(_.height||_.initialHeight))}),{x:A,y:k,zoom:L}=Io(R,s,o,l,c,a?.padding??.1);N=[A,k,L]}return{rfId:"1",width:s??0,height:o??0,transform:N,nodes:I,nodesInitialized:E,nodeLookup:p,parentLookup:g,edges:v,edgeLookup:x,connectionLookup:y,onNodesChange:null,onEdgesChange:null,hasDefaultNodes:n!==void 0,hasDefaultEdges:r!==void 0,panZoom:null,minZoom:l,maxZoom:c,translateExtent:wn,nodeExtent:b,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionMode:Vt.Strict,domNode:null,paneDragging:!1,noPanClassName:"nopan",nodeOrigin:m,nodeDragThreshold:1,connectionDragThreshold:1,snapGrid:[15,15],snapToGrid:!1,nodesDraggable:!0,nodesConnectable:!0,nodesFocusable:!0,edgesFocusable:!0,edgesReconnectable:!0,elementsSelectable:!0,elevateNodesOnSelect:!0,elevateEdgesOnSelect:!0,selectNodesOnDrag:!0,multiSelectionActive:!1,fitViewQueued:i??!1,fitViewOptions:a,fitViewResolver:null,connection:{...Xc},connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:"",autoPanOnConnect:!0,autoPanOnNodeDrag:!0,autoPanOnNodeFocus:!0,autoPanSpeed:15,connectionRadius:20,onError:fw,isValidConnection:void 0,onSelectionChangeHandlers:[],lib:"react",debug:!1,ariaLabelConfig:Wc,zIndexMode:d,defaultEdgeOptions:void 0,onNodesChangeMiddlewareMap:new Map,onEdgesChangeMiddlewareMap:new Map,onNodesDelete:void 0,onEdgesDelete:void 0,onDelete:void 0,onBeforeDelete:void 0,onViewportChangeStart:void 0,onViewportChange:void 0,onViewportChangeEnd:void 0,onNodeDragStart:void 0,onNodeDrag:void 0,onNodeDragStop:void 0,onSelectionDragStart:void 0,onSelectionDrag:void 0,onSelectionDragStop:void 0,onMoveStart:void 0,onMove:void 0,onMoveEnd:void 0,onConnect:void 0,onConnectStart:void 0,onConnectEnd:void 0,onClickConnectStart:void 0,onClickConnectEnd:void 0}},pw=({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:s,height:o,fitView:i,fitViewOptions:a,minZoom:l,maxZoom:c,nodeOrigin:u,nodeExtent:f,zIndexMode:d})=>TS((p,g)=>{async function y(){const{nodeLookup:x,panZoom:v,fitViewOptions:I,fitViewResolver:m,width:b,height:E,minZoom:N,maxZoom:R}=g();v&&(await Mx({nodes:x,width:b,height:E,panZoom:v,minZoom:N,maxZoom:R},I),m?.resolve(!0),p({fitViewResolver:null}))}return{...wa({nodes:e,edges:t,width:s,height:o,fitView:i,fitViewOptions:a,minZoom:l,maxZoom:c,nodeOrigin:u,nodeExtent:f,defaultNodes:n,defaultEdges:r,zIndexMode:d}),setNodes:x=>{const{nodeLookup:v,parentLookup:I,nodeOrigin:m,nodeExtent:b,elevateNodesOnSelect:E,fitViewQueued:N,zIndexMode:R,nodesSelectionActive:A}=g(),{nodesInitialized:k,hasSelectedNodes:L}=Ls(x,v,I,{nodeOrigin:m,nodeExtent:b,elevateNodesOnSelect:E,checkEquality:!0,zIndexMode:R}),_=A&&L;N&&k?(y(),p({nodes:x,nodesInitialized:k,fitViewQueued:!1,fitViewOptions:void 0,nodesSelectionActive:_})):p({nodes:x,nodesInitialized:k,nodesSelectionActive:_})},setEdges:x=>{const{connectionLookup:v,edgeLookup:I}=g();pu(v,I,x),p({edges:x})},setDefaultNodesAndEdges:(x,v)=>{if(x){const{setNodes:I}=g();I(x),p({hasDefaultNodes:!0})}if(v){const{setEdges:I}=g();I(v),p({hasDefaultEdges:!0})}},updateNodeInternals:x=>{const{triggerNodeChanges:v,nodeLookup:I,parentLookup:m,domNode:b,nodeOrigin:E,nodeExtent:N,debug:R,fitViewQueued:A,zIndexMode:k}=g(),{changes:L,updatedInternals:_}=eS(x,I,m,b,E,N,k);_&&(Xx(I,m,{nodeOrigin:E,nodeExtent:N,zIndexMode:k}),A?(y(),p({fitViewQueued:!1,fitViewOptions:void 0})):p({}),L?.length>0&&(R&&console.log("React Flow: trigger node changes",L),v?.(L)))},updateNodePositions:(x,v=!1)=>{const I=[];let m=[];const{nodeLookup:b,triggerNodeChanges:E,connection:N,updateConnection:R,onNodesChangeMiddlewareMap:A}=g();for(const[k,L]of x){const _=b.get(k),M=!!(_?.expandParent&&_?.parentId&&L?.position),O={id:k,type:"position",position:M?{x:Math.max(0,L.position.x),y:Math.max(0,L.position.y)}:L.position,dragging:v};if(_&&N.inProgress&&N.fromNode.id===_.id){const S=Tt(_,N.fromHandle,Y.Left,!0);R({...N,from:S})}M&&_.parentId&&I.push({id:k,parentId:_.parentId,rect:{...L.internals.positionAbsolute,width:L.measured.width??0,height:L.measured.height??0}}),m.push(O)}if(I.length>0){const{parentLookup:k,nodeOrigin:L}=g(),_=To(I,b,k,L);m.push(..._)}for(const k of A.values())m=k(m);E(m)},triggerNodeChanges:x=>{const{onNodesChange:v,setNodes:I,nodes:m,hasDefaultNodes:b,debug:E}=g();x?.length&&(b&&I(Tu(x,m)),E&&console.log("React Flow: trigger node changes",x),v?.(x))},triggerEdgeChanges:x=>{const{onEdgesChange:v,setEdges:I,edges:m,hasDefaultEdges:b,debug:E}=g();x?.length&&(b&&I(WS(x,m)),E&&console.log("React Flow: trigger edge changes",x),v?.(x))},addSelectedNodes:x=>{const{multiSelectionActive:v,edgeLookup:I,nodeLookup:m,triggerNodeChanges:b,triggerEdgeChanges:E}=g();if(v){b(x.map(N=>yt(N,!0)));return}b(jt(m,new Set([...x]),!0)),E(jt(I))},addSelectedEdges:x=>{const{multiSelectionActive:v,edgeLookup:I,nodeLookup:m,triggerNodeChanges:b,triggerEdgeChanges:E}=g();if(v){E(x.map(N=>yt(N,!0)));return}E(jt(I,new Set([...x]))),b(jt(m,new Set,!0))},unselectNodesAndEdges:({nodes:x,edges:v}={})=>{const{edges:I,nodes:m,nodeLookup:b,triggerNodeChanges:E,triggerEdgeChanges:N}=g(),R=x||m,A=v||I,k=[];for(const _ of R){if(!_.selected)continue;const M=b.get(_.id);M&&(M.selected=!1),k.push(yt(_.id,!1))}const L=[];for(const _ of A)_.selected&&L.push(yt(_.id,!1));E(k),N(L)},setMinZoom:x=>{const{panZoom:v,maxZoom:I}=g();v?.setScaleExtent([x,I]),p({minZoom:x})},setMaxZoom:x=>{const{panZoom:v,minZoom:I}=g();v?.setScaleExtent([I,x]),p({maxZoom:x})},setTranslateExtent:x=>{g().panZoom?.setTranslateExtent(x),p({translateExtent:x})},resetSelectedElements:()=>{const{edges:x,nodes:v,triggerNodeChanges:I,triggerEdgeChanges:m,elementsSelectable:b}=g();if(!b)return;const E=v.reduce((R,A)=>A.selected?[...R,yt(A.id,!1)]:R,[]),N=x.reduce((R,A)=>A.selected?[...R,yt(A.id,!1)]:R,[]);I(E),m(N)},setNodeExtent:x=>{const{nodes:v,nodeLookup:I,parentLookup:m,nodeOrigin:b,elevateNodesOnSelect:E,nodeExtent:N,zIndexMode:R}=g();x[0][0]===N[0][0]&&x[0][1]===N[0][1]&&x[1][0]===N[1][0]&&x[1][1]===N[1][1]||(Ls(v,I,m,{nodeOrigin:b,nodeExtent:x,elevateNodesOnSelect:E,checkEquality:!1,zIndexMode:R}),p({nodeExtent:x}))},panBy:x=>{const{transform:v,width:I,height:m,panZoom:b,translateExtent:E}=g();return tS({delta:x,panZoom:b,transform:v,translateExtent:E,width:I,height:m})},setCenter:async(x,v,I)=>{const{width:m,height:b,maxZoom:E,panZoom:N}=g();if(!N)return!1;const R=typeof I?.zoom<"u"?I.zoom:E;return await N.setViewport({x:m/2-x*R,y:b/2-v*R,zoom:R},{duration:I?.duration,ease:I?.ease,interpolate:I?.interpolate}),!0},cancelConnection:()=>{p({connection:{...Xc}})},updateConnection:x=>{p({connection:x})},reset:()=>p({...wa()})}},Object.is);function nd({initialNodes:e,initialEdges:t,defaultNodes:n,defaultEdges:r,initialWidth:s,initialHeight:o,initialMinZoom:i,initialMaxZoom:a,initialFitViewOptions:l,fitView:c,nodeOrigin:u,nodeExtent:f,zIndexMode:d,children:p}){const[g]=(0,C.useState)(()=>pw({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:s,height:o,fitView:c,minZoom:i,maxZoom:a,fitViewOptions:l,nodeOrigin:u,nodeExtent:f,zIndexMode:d}));return(0,h.jsx)(AS,{value:g,children:(0,h.jsx)(eI,{children:(0,h.jsx)(gI,{children:p})})})}function gw({children:e,nodes:t,edges:n,defaultNodes:r,defaultEdges:s,width:o,height:i,fitView:a,fitViewOptions:l,minZoom:c,maxZoom:u,nodeOrigin:f,nodeExtent:d,zIndexMode:p}){return(0,C.useContext)(Dr)?(0,h.jsx)(h.Fragment,{children:e}):(0,h.jsx)(nd,{initialNodes:t,initialEdges:n,defaultNodes:r,defaultEdges:s,initialWidth:o,initialHeight:i,fitView:a,initialFitViewOptions:l,initialMinZoom:c,initialMaxZoom:u,nodeOrigin:f,nodeExtent:d,zIndexMode:p,children:e})}var mw={width:"100%",height:"100%",overflow:"hidden",position:"relative",zIndex:0};function vw({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,className:s,nodeTypes:o,edgeTypes:i,onNodeClick:a,onEdgeClick:l,onInit:c,onMove:u,onMoveStart:f,onMoveEnd:d,onConnect:p,onConnectStart:g,onConnectEnd:y,onClickConnectStart:x,onClickConnectEnd:v,onNodeMouseEnter:I,onNodeMouseMove:m,onNodeMouseLeave:b,onNodeContextMenu:E,onNodeDoubleClick:N,onNodeDragStart:R,onNodeDrag:A,onNodeDragStop:k,onNodesDelete:L,onEdgesDelete:_,onDelete:M,onSelectionChange:O,onSelectionDragStart:S,onSelectionDrag:w,onSelectionDragStop:T,onSelectionContextMenu:j,onSelectionStart:D,onSelectionEnd:P,onBeforeDelete:F,connectionMode:z,connectionLineType:B=at.Bezier,connectionLineStyle:K,connectionLineComponent:H,connectionLineContainerStyle:W,deleteKeyCode:J="Backspace",selectionKeyCode:X="Shift",selectionOnDrag:$=!1,selectionMode:q=En.Full,panActivationKeyCode:Q="Space",multiSelectionKeyCode:te=Nn()?"Meta":"Control",zoomActivationKeyCode:G=Nn()?"Meta":"Control",snapToGrid:ne,snapGrid:Z,onlyRenderVisibleElements:U=!1,selectNodesOnDrag:V,nodesDraggable:pe,autoPanOnNodeFocus:ge,nodesConnectable:ve,nodesFocusable:Me,nodeOrigin:ie=Ru,edgesFocusable:nt,edgesReconnectable:ee,elementsSelectable:ce=!0,defaultViewport:ke=GS,minZoom:Ye=.5,maxZoom:We=2,translateExtent:gt=wn,preventScrolling:qr=!0,nodeExtent:Vr,defaultMarkerColor:Gd="#b1b1b7",zoomOnScroll:Ud=!0,zoomOnPinch:qd=!0,panOnScroll:Vd=!1,panOnScrollSpeed:Kd=.5,panOnScrollMode:Yd=wt.Free,zoomOnDoubleClick:Wd=!0,panOnDrag:Xd=!0,onPaneClick:Qd,onPaneMouseEnter:Jd,onPaneMouseMove:Zd,onPaneMouseLeave:eh,onPaneScroll:th,onPaneContextMenu:nh,paneClickDistance:rh=1,nodeClickDistance:sh=0,children:oh,onReconnect:ih,onReconnectStart:ah,onReconnectEnd:lh,onEdgeContextMenu:ch,onEdgeDoubleClick:uh,onEdgeMouseEnter:dh,onEdgeMouseMove:hh,onEdgeMouseLeave:fh,reconnectRadius:ph=10,onNodesChange:gh,onEdgesChange:mh,noDragClassName:vh="nodrag",noWheelClassName:yh="nowheel",noPanClassName:$o="nopan",fitView:Fo,fitViewOptions:zo,connectOnClick:bh,attributionPosition:xh,proOptions:Sh,defaultEdgeOptions:Ih,elevateNodesOnSelect:wh=!0,elevateEdgesOnSelect:Eh=!1,disableKeyboardA11y:Ho=!1,autoPanOnConnect:Ch,autoPanOnNodeDrag:Nh,autoPanOnSelection:Rh=!0,autoPanSpeed:_h,connectionRadius:Th,isValidConnection:Ah,onError:Mh,style:kh,id:Bo,nodeDragThreshold:Oh,connectionDragThreshold:jh,viewport:Ph,onViewportChange:Lh,width:Dh,height:$h,colorMode:Fh="light",debug:zh,onScroll:Go,ariaLabelConfig:Hh,zIndexMode:Uo="basic",...Bh},Gh){const Kr=Bo||"1",Uh=VS(Fh),qh=(0,C.useCallback)(qo=>{qo.currentTarget.scrollTo({top:0,left:0,behavior:"instant"}),Go?.(qo)},[Go]);return(0,h.jsx)("div",{"data-testid":"rf__wrapper",...Bh,onScroll:qh,style:{...kh,...mw},ref:Gh,className:ue(["react-flow",s,Uh]),id:Bo,role:"application",children:(0,h.jsxs)(gw,{nodes:e,edges:t,width:Dh,height:$h,fitView:Fo,fitViewOptions:zo,minZoom:Ye,maxZoom:We,nodeOrigin:ie,nodeExtent:Vr,zIndexMode:Uo,children:[(0,h.jsx)(qS,{nodes:e,edges:t,defaultNodes:n,defaultEdges:r,onConnect:p,onConnectStart:g,onConnectEnd:y,onClickConnectStart:x,onClickConnectEnd:v,nodesDraggable:pe,autoPanOnNodeFocus:ge,nodesConnectable:ve,nodesFocusable:Me,edgesFocusable:nt,edgesReconnectable:ee,elementsSelectable:ce,elevateNodesOnSelect:wh,elevateEdgesOnSelect:Eh,minZoom:Ye,maxZoom:We,nodeExtent:Vr,onNodesChange:gh,onEdgesChange:mh,snapToGrid:ne,snapGrid:Z,connectionMode:z,translateExtent:gt,connectOnClick:bh,defaultEdgeOptions:Ih,fitView:Fo,fitViewOptions:zo,onNodesDelete:L,onEdgesDelete:_,onDelete:M,onNodeDragStart:R,onNodeDrag:A,onNodeDragStop:k,onSelectionDrag:w,onSelectionDragStart:S,onSelectionDragStop:T,onMove:u,onMoveStart:f,onMoveEnd:d,noPanClassName:$o,nodeOrigin:ie,rfId:Kr,autoPanOnConnect:Ch,autoPanOnNodeDrag:Nh,autoPanSpeed:_h,onError:Mh,connectionRadius:Th,isValidConnection:Ah,selectNodesOnDrag:V,nodeDragThreshold:Oh,connectionDragThreshold:jh,onBeforeDelete:F,debug:zh,ariaLabelConfig:Hh,zIndexMode:Uo}),(0,h.jsx)(hw,{onInit:c,onNodeClick:a,onEdgeClick:l,onNodeMouseEnter:I,onNodeMouseMove:m,onNodeMouseLeave:b,onNodeContextMenu:E,onNodeDoubleClick:N,nodeTypes:o,edgeTypes:i,connectionLineType:B,connectionLineStyle:K,connectionLineComponent:H,connectionLineContainerStyle:W,selectionKeyCode:X,selectionOnDrag:$,selectionMode:q,deleteKeyCode:J,multiSelectionKeyCode:te,panActivationKeyCode:Q,zoomActivationKeyCode:G,onlyRenderVisibleElements:U,defaultViewport:ke,translateExtent:gt,minZoom:Ye,maxZoom:We,preventScrolling:qr,zoomOnScroll:Ud,zoomOnPinch:qd,zoomOnDoubleClick:Wd,panOnScroll:Vd,panOnScrollSpeed:Kd,panOnScrollMode:Yd,panOnDrag:Xd,autoPanOnSelection:Rh,onPaneClick:Qd,onPaneMouseEnter:Jd,onPaneMouseMove:Zd,onPaneMouseLeave:eh,onPaneScroll:th,onPaneContextMenu:nh,paneClickDistance:rh,nodeClickDistance:sh,onSelectionContextMenu:j,onSelectionStart:D,onSelectionEnd:P,onReconnect:ih,onReconnectStart:ah,onReconnectEnd:lh,onEdgeContextMenu:ch,onEdgeDoubleClick:uh,onEdgeMouseEnter:dh,onEdgeMouseMove:hh,onEdgeMouseLeave:fh,reconnectRadius:ph,defaultMarkerColor:Gd,noDragClassName:vh,noWheelClassName:yh,noPanClassName:$o,rfId:Kr,disableKeyboardA11y:Ho,nodeExtent:Vr,viewport:Ph,onViewportChange:Lh,nodesDraggable:pe}),(0,h.jsx)(BS,{onSelectionChange:O}),oh,(0,h.jsx)(DS,{proOptions:Sh,position:xh}),(0,h.jsx)(LS,{rfId:Kr,disableKeyboardA11y:Ho})]})})}var yw=Au(vw);function bw(e){const[t,n]=(0,C.useState)(e);return[t,n,(0,C.useCallback)(r=>n(s=>Tu(r,s)),[])]}var xw=e=>t=>{if(!e.includeHiddenNodes)return t.nodesInitialized;if(t.nodeLookup.size===0)return!1;for(const[,{internals:n}]of t.nodeLookup)if(n.handleBounds===void 0||!wo(n.userNode))return!1;return!0};function Sw(e={includeHiddenNodes:!1}){return re(xw(e))}var O_=Te.error014();function Iw({dimensions:e,lineWidth:t,variant:n,className:r}){return(0,h.jsx)("path",{strokeWidth:t,d:`M${e[0]/2} 0 V${e[1]} M0 ${e[1]/2} H${e[0]}`,className:ue(["react-flow__background-pattern",n,r])})}function ww({radius:e,className:t}){return(0,h.jsx)("circle",{cx:e,cy:e,r:e,className:ue(["react-flow__background-pattern","dots",t])})}var et;(function(e){e.Lines="lines",e.Dots="dots",e.Cross="cross"})(et||(et={}));var Ew={[et.Dots]:1,[et.Lines]:1,[et.Cross]:6},Cw=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function rd({id:e,variant:t=et.Dots,gap:n=20,size:r,lineWidth:s=1,offset:o=0,color:i,bgColor:a,style:l,className:c,patternClassName:u}){const f=(0,C.useRef)(null),{transform:d,patternId:p}=re(Cw,le),g=r||Ew[t],y=t===et.Dots,x=t===et.Cross,v=Array.isArray(n)?n:[n,n],I=[v[0]*d[2]||1,v[1]*d[2]||1],m=g*d[2],b=Array.isArray(o)?o:[o,o],E=x?[m,m]:I,N=[b[0]*d[2]+E[0]/2,b[1]*d[2]+E[1]/2],R=`${p}${e||""}`;return(0,h.jsxs)("svg",{className:ue(["react-flow__background",c]),style:{...l,...zr,"--xy-background-color-props":a,"--xy-background-pattern-color-props":i},ref:f,"data-testid":"rf__background",children:[(0,h.jsx)("pattern",{id:R,x:d[0]%I[0],y:d[1]%I[1],width:I[0],height:I[1],patternUnits:"userSpaceOnUse",patternTransform:`translate(-${N[0]},-${N[1]})`,children:y?(0,h.jsx)(ww,{radius:m/2,className:u}):(0,h.jsx)(Iw,{dimensions:E,lineWidth:s,variant:t,className:u})}),(0,h.jsx)("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:`url(#${R})`})]})}rd.displayName="Background";var Nw=(0,C.memo)(rd);function Rw(){return(0,h.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",children:(0,h.jsx)("path",{d:"M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z"})})}function _w(){return(0,h.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 5",children:(0,h.jsx)("path",{d:"M0 0h32v4.2H0z"})})}function Tw(){return(0,h.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 30",children:(0,h.jsx)("path",{d:"M3.692 4.63c0-.53.4-.938.939-.938h5.215V0H4.708C2.13 0 0 2.054 0 4.63v5.216h3.692V4.631zM27.354 0h-5.2v3.692h5.17c.53 0 .984.4.984.939v5.215H32V4.631A4.624 4.624 0 0027.354 0zm.954 24.83c0 .532-.4.94-.939.94h-5.215v3.768h5.215c2.577 0 4.631-2.13 4.631-4.707v-5.139h-3.692v5.139zm-23.677.94c-.531 0-.939-.4-.939-.94v-5.138H0v5.139c0 2.577 2.13 4.707 4.708 4.707h5.138V25.77H4.631z"})})}function Aw(){return(0,h.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:(0,h.jsx)("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0 8 0 4.571 3.429 4.571 7.619v3.048H3.048A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047zm4.724-13.866H7.467V7.619c0-2.59 2.133-4.724 4.723-4.724 2.591 0 4.724 2.133 4.724 4.724v3.048z"})})}function Mw(){return(0,h.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:(0,h.jsx)("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0c-4.114 1.828-1.37 2.133.305 2.438 1.676.305 4.42 2.59 4.42 5.181v3.048H3.047A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047z"})})}function dn({children:e,className:t,...n}){return(0,h.jsx)("button",{type:"button",className:ue(["react-flow__controls-button",t]),...n,children:e})}var kw=e=>({isInteractive:e.nodesDraggable||e.nodesConnectable||e.elementsSelectable,minZoomReached:e.transform[2]<=e.minZoom,maxZoomReached:e.transform[2]>=e.maxZoom,ariaLabelConfig:e.ariaLabelConfig});function sd({style:e,showZoom:t=!0,showFitView:n=!0,showInteractive:r=!0,fitViewOptions:s,onZoomIn:o,onZoomOut:i,onFitView:a,onInteractiveChange:l,className:c,children:u,position:f="bottom-left",orientation:d="vertical","aria-label":p}){const g=oe(),{isInteractive:y,minZoomReached:x,maxZoomReached:v,ariaLabelConfig:I}=re(kw,le),{zoomIn:m,zoomOut:b,fitView:E}=Fr(),N=()=>{m(),o?.()},R=()=>{b(),i?.()},A=()=>{E(s),a?.()},k=()=>{g.setState({nodesDraggable:!y,nodesConnectable:!y,elementsSelectable:!y}),l?.(!y)};return(0,h.jsxs)($r,{className:ue(["react-flow__controls",d==="horizontal"?"horizontal":"vertical",c]),position:f,style:e,"data-testid":"rf__controls","aria-label":p??I["controls.ariaLabel"],children:[t&&(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(dn,{onClick:N,className:"react-flow__controls-zoomin",title:I["controls.zoomIn.ariaLabel"],"aria-label":I["controls.zoomIn.ariaLabel"],disabled:v,children:(0,h.jsx)(Rw,{})}),(0,h.jsx)(dn,{onClick:R,className:"react-flow__controls-zoomout",title:I["controls.zoomOut.ariaLabel"],"aria-label":I["controls.zoomOut.ariaLabel"],disabled:x,children:(0,h.jsx)(_w,{})})]}),n&&(0,h.jsx)(dn,{className:"react-flow__controls-fitview",onClick:A,title:I["controls.fitView.ariaLabel"],"aria-label":I["controls.fitView.ariaLabel"],children:(0,h.jsx)(Tw,{})}),r&&(0,h.jsx)(dn,{className:"react-flow__controls-interactive",onClick:k,title:I["controls.interactive.ariaLabel"],"aria-label":I["controls.interactive.ariaLabel"],children:y?(0,h.jsx)(Mw,{}):(0,h.jsx)(Aw,{})}),u]})}sd.displayName="Controls";var Ow=(0,C.memo)(sd);function jw({id:e,x:t,y:n,width:r,height:s,style:o,color:i,strokeColor:a,strokeWidth:l,className:c,borderRadius:u,shapeRendering:f,selected:d,onClick:p}){const{background:g,backgroundColor:y}=o||{},x=i||g||y;return(0,h.jsx)("rect",{className:ue(["react-flow__minimap-node",{selected:d},c]),x:t,y:n,rx:u,ry:u,width:r,height:s,style:{fill:x,stroke:a,strokeWidth:l},shapeRendering:f,onClick:p?v=>p(v,e):void 0})}var Pw=(0,C.memo)(jw),Lw=e=>e.nodes.map(t=>t.id),us=e=>e instanceof Function?e:()=>e;function Dw({nodeStrokeColor:e,nodeColor:t,nodeClassName:n="",nodeBorderRadius:r=5,nodeStrokeWidth:s,nodeComponent:o=Pw,onClick:i}){const a=re(Lw,le),l=us(t),c=us(e),u=us(n),f=typeof window>"u"||window.chrome?"crispEdges":"geometricPrecision";return(0,h.jsx)(h.Fragment,{children:a.map(d=>(0,h.jsx)(Fw,{id:d,nodeColorFunc:l,nodeStrokeColorFunc:c,nodeClassNameFunc:u,nodeBorderRadius:r,nodeStrokeWidth:s,NodeComponent:o,onClick:i,shapeRendering:f},d))})}function $w({id:e,nodeColorFunc:t,nodeStrokeColorFunc:n,nodeClassNameFunc:r,nodeBorderRadius:s,nodeStrokeWidth:o,shapeRendering:i,NodeComponent:a,onClick:l}){const{node:c,x:u,y:f,width:d,height:p}=re(g=>{const y=g.nodeLookup.get(e);if(!y)return{node:void 0,x:0,y:0,width:0,height:0};const x=y.internals.userNode,{x:v,y:I}=y.internals.positionAbsolute,{width:m,height:b}=Fe(x);return{node:x,x:v,y:I,width:m,height:b}},le);return!c||c.hidden||!wo(c)?null:(0,h.jsx)(a,{x:u,y:f,width:d,height:p,style:c.style,selected:!!c.selected,className:r(c),color:t(c),borderRadius:s,strokeColor:n(c),strokeWidth:o,shapeRendering:i,onClick:l,id:c.id})}var Fw=(0,C.memo)($w),zw=(0,C.memo)(Dw),Hw=200,Bw=150,Gw=e=>!e.hidden,Uw=e=>{const t={x:-e.transform[0]/e.transform[2],y:-e.transform[1]/e.transform[2],width:e.width/e.transform[2],height:e.height/e.transform[2]};let n=!1;for(const r of e.nodeLookup.values())if(!r.hidden){n=!0;break}return{viewBB:t,boundingRect:n?eu(Mn(e.nodeLookup,{filter:Gw}),t):t,rfId:e.rfId,panZoom:e.panZoom,translateExtent:e.translateExtent,flowWidth:e.width,flowHeight:e.height,ariaLabelConfig:e.ariaLabelConfig}},Ea=(e,t)=>e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height,qw=(e,t)=>Ea(e.viewBB,t.viewBB)&&Ea(e.boundingRect,t.boundingRect)&&e.rfId===t.rfId&&e.panZoom===t.panZoom&&e.translateExtent===t.translateExtent&&e.flowWidth===t.flowWidth&&e.flowHeight===t.flowHeight&&e.ariaLabelConfig===t.ariaLabelConfig,Vw="react-flow__minimap-desc";function od({style:e,className:t,nodeStrokeColor:n,nodeColor:r,nodeClassName:s="",nodeBorderRadius:o=5,nodeStrokeWidth:i,nodeComponent:a,bgColor:l,maskColor:c,maskStrokeColor:u,maskStrokeWidth:f,position:d="bottom-right",onClick:p,onNodeClick:g,pannable:y=!1,zoomable:x=!1,ariaLabel:v,inversePan:I,zoomStep:m=1,offsetScale:b=5}){const E=oe(),N=(0,C.useRef)(null),{boundingRect:R,panZoom:A,viewBB:k,rfId:L,translateExtent:_,flowWidth:M,flowHeight:O,ariaLabelConfig:S}=re(Uw,qw),w=e?.width??Hw,T=e?.height??Bw,j=R.width/w,D=R.height/T,P=Math.max(j,D),F=P*w,z=P*T,B=b*P,K=R.x-(F-R.width)/2-B,H=R.y-(z-R.height)/2-B,W=F+B*2,J=z+B*2,X=`${Vw}-${L}`,$=(0,C.useRef)(0),q=(0,C.useRef)();$.current=P,(0,C.useEffect)(()=>{const Z=E.getState().panZoom;if(N.current&&Z)return q.current=uS({domNode:N.current,panZoom:Z,getTransform:()=>E.getState().transform,getViewScale:()=>$.current}),()=>{q.current?.destroy()}},[A]),(0,C.useEffect)(()=>{q.current?.update({translateExtent:_,width:M,height:O,inversePan:I,pannable:y,zoomStep:m,zoomable:x})},[y,x,I,m,_,M,O]);const Q=p?Z=>{const[U,V]=q.current?.pointer(Z)||[0,0];p(Z,{x:U,y:V})}:void 0,te=(0,C.useCallback)((Z,U)=>{const V=E.getState().nodeLookup.get(U).internals.userNode;g?.(Z,V)},[g]),G=g?te:void 0,ne=v??S["minimap.ariaLabel"];return(0,h.jsx)($r,{position:d,style:{...e,"--xy-minimap-background-color-props":typeof l=="string"?l:void 0,"--xy-minimap-mask-background-color-props":typeof c=="string"?c:void 0,"--xy-minimap-mask-stroke-color-props":typeof u=="string"?u:void 0,"--xy-minimap-mask-stroke-width-props":typeof f=="number"?f*P:void 0,"--xy-minimap-node-background-color-props":typeof r=="string"?r:void 0,"--xy-minimap-node-stroke-color-props":typeof n=="string"?n:void 0,"--xy-minimap-node-stroke-width-props":typeof i=="number"?i:void 0},className:ue(["react-flow__minimap",t]),"data-testid":"rf__minimap",children:(0,h.jsxs)("svg",{width:w,height:T,viewBox:`${K} ${H} ${W} ${J}`,className:"react-flow__minimap-svg",role:"img","aria-labelledby":X,ref:N,onClick:Q,children:[ne&&(0,h.jsx)("title",{id:X,children:ne}),(0,h.jsx)(zw,{onClick:G,nodeColor:r,nodeStrokeColor:n,nodeBorderRadius:o,nodeClassName:s,nodeStrokeWidth:i,nodeComponent:a}),(0,h.jsx)("path",{className:"react-flow__minimap-mask",d:`M${K-B},${H-B}h${W+B*2}v${J+B*2}h${-W-B*2}z
|
|
8
|
-
M${k.x},${k.y}h${k.width}v${k.height}h${-k.width}z`,fillRule:"evenodd",pointerEvents:"none"})]})})}od.displayName="MiniMap";var Kw=(0,C.memo)(od),Yw=e=>t=>e?`${Math.max(1/t.transform[2],1)}`:void 0,Ww={[Wt.Line]:"right",[Wt.Handle]:"bottom-right"};function Xw({nodeId:e,position:t,variant:n=Wt.Handle,className:r,style:s=void 0,children:o,color:i,minWidth:a=10,minHeight:l=10,maxWidth:c=Number.MAX_VALUE,maxHeight:u=Number.MAX_VALUE,keepAspectRatio:f=!1,resizeDirection:d,autoScale:p=!0,shouldResize:g,onResizeStart:y,onResize:x,onResizeEnd:v}){const I=Pu(),m=typeof e=="string"?e:I,b=oe(),E=(0,C.useRef)(null),N=n===Wt.Handle,R=re((0,C.useCallback)(Yw(N&&p),[N,p]),le),A=(0,C.useRef)(null),k=t??Ww[n];(0,C.useEffect)(()=>{if(!(!E.current||!m))return A.current||(A.current=wS({domNode:E.current,nodeId:m,getStoreItems:()=>{const{nodeLookup:_,transform:M,snapGrid:O,snapToGrid:S,nodeOrigin:w,domNode:T}=b.getState();return{nodeLookup:_,transform:M,snapGrid:O,snapToGrid:S,nodeOrigin:w,paneDomNode:T}},onChange:(_,M)=>{const{triggerNodeChanges:O,nodeLookup:S,parentLookup:w,nodeOrigin:T}=b.getState(),j=[],D={x:_.x,y:_.y},P=S.get(m);if(P&&P.expandParent&&P.parentId){const F=P.origin??T,z=_.width??P.measured.width??0,B=_.height??P.measured.height??0,K={id:P.id,parentId:P.parentId,rect:{width:z,height:B,...ru({x:_.x??P.position.x,y:_.y??P.position.y},{width:z,height:B},P.parentId,S,F)}},H=To([K],S,w,T);j.push(...H),D.x=_.x?Math.max(F[0]*z,_.x):void 0,D.y=_.y?Math.max(F[1]*B,_.y):void 0}if(D.x!==void 0&&D.y!==void 0){const F={id:m,type:"position",position:{...D}};j.push(F)}if(_.width!==void 0&&_.height!==void 0){const F={id:m,type:"dimensions",resizing:!0,setAttributes:d?d==="horizontal"?"width":"height":!0,dimensions:{width:_.width,height:_.height}};j.push(F)}for(const F of M){const z={...F,type:"position"};j.push(z)}O(j)},onEnd:({width:_,height:M})=>{const O={id:m,type:"dimensions",resizing:!1,dimensions:{width:_,height:M}};b.getState().triggerNodeChanges([O])}})),A.current.update({controlPosition:k,boundaries:{minWidth:a,minHeight:l,maxWidth:c,maxHeight:u},keepAspectRatio:f,resizeDirection:d,onResizeStart:y,onResize:x,onResizeEnd:v,shouldResize:g}),()=>{A.current?.destroy()}},[k,a,l,c,u,f,y,x,v,g]);const L=k.split("-");return(0,h.jsx)("div",{className:ue(["react-flow__resize-control","nodrag",...L,n,r]),ref:E,style:{...s,scale:R,...i&&{[N?"backgroundColor":"borderColor"]:i}},children:o})}var j_=(0,C.memo)(Xw),Qw=()=>(0,h.jsxs)("div",{className:"absolute bottom-3 left-3 z-10 flex items-center gap-3 rounded-md border bg-card/95 px-3 py-2 text-xs text-muted-foreground shadow-sm",children:[(0,h.jsxs)("span",{className:"flex items-center gap-1.5",children:[(0,h.jsx)(eo,{className:"size-3.5 text-amber-500"})," Primary key"]}),(0,h.jsxs)("span",{className:"flex items-center gap-1.5",children:[(0,h.jsx)(wl,{className:"size-3.5 text-sky-500"})," Foreign key"]}),(0,h.jsxs)("span",{className:"flex items-center gap-1.5",children:[(0,h.jsx)(Is,{className:"size-3 fill-current"})," Required"]}),(0,h.jsxs)("span",{className:"flex items-center gap-1.5",children:[(0,h.jsx)(Is,{className:"size-3"})," Nullable"]})]});var Jw=({column:e})=>(0,h.jsxs)("span",{className:"flex w-8 shrink-0 items-center gap-1",children:[e.isPrimaryKey?(0,h.jsx)(eo,{"aria-label":"Primary key",className:"size-3.5 text-amber-500"}):e.isForeignKey?(0,h.jsx)(wl,{"aria-label":"Foreign key",className:"size-3.5 text-sky-500"}):(0,h.jsx)("span",{className:"size-3.5"}),(0,h.jsx)(Is,{"aria-label":e.isNullable?"Nullable":"Required",className:me("size-3 text-muted-foreground",!e.isNullable&&"fill-current")})]}),Ca="size-1! min-h-0! min-w-0! border-0! bg-transparent!",Zw=({data:e})=>{const{table:t,active:n,dimmed:r,highlightedColumns:s}=e;return(0,h.jsxs)("div",{"data-active":n||void 0,"data-dimmed":r||void 0,className:me("group overflow-hidden rounded-md border bg-card text-card-foreground shadow-sm transition-opacity",n&&"border-primary ring-2 ring-primary/30",r&&"opacity-25"),children:[(0,h.jsxs)("div",{className:"flex items-center gap-2 border-b bg-muted/60 px-3 text-sm font-medium",style:{height:36},children:[(0,h.jsx)(Ss,{className:"size-4 shrink-0 text-muted-foreground"}),(0,h.jsxs)("span",{className:"flex-1 truncate",children:[t.schemaName&&t.schemaName!=="public"&&(0,h.jsxs)("span",{className:"text-muted-foreground",children:[t.schemaName,"."]}),t.tableName]}),(0,h.jsx)(wr,{to:"/table/$table",params:{table:t.tableName},"aria-label":`Open ${t.tableName}`,title:"Open table",className:"nodrag rounded p-0.5 text-muted-foreground opacity-0 transition-opacity hover:bg-muted hover:text-foreground focus-visible:opacity-100 group-hover:opacity-100",onClick:o=>o.stopPropagation(),children:(0,h.jsx)(sf,{className:"size-4"})})]}),t.columns.map(o=>(0,h.jsxs)("div",{className:me("relative flex items-center gap-2 px-3 text-xs",s.has(`${t.id}.${o.columnName}`)&&"bg-primary/10"),style:{height:28},children:[(0,h.jsx)(Xt,{type:"target",position:Y.Left,id:`${o.columnName}-l`,isConnectable:!1,className:Ca}),(0,h.jsx)(Jw,{column:o}),(0,h.jsx)("span",{className:"truncate font-mono",children:o.columnName}),(0,h.jsx)("span",{className:"ml-auto shrink-0 font-mono text-muted-foreground",children:o.dataTypeLabel}),(0,h.jsx)(Xt,{type:"source",position:Y.Right,id:`${o.columnName}-r`,isConnectable:!1,className:Ca})]},o.columnName))]})},eE={table:Zw},tE=({tables:e,edges:t})=>{const n=e.map(s=>({id:s.id,width:G0(s),height:36+s.columns.length*28+2})),r=H0(n,t);return e.map((s,o)=>({id:s.id,type:"table",position:r.get(s.id)??{x:0,y:0},width:n[o].width,data:{table:s,active:!1,dimmed:!1,highlightedColumns:new Set}}))},nE=(e,t,n)=>({id:e.id,source:e.target,sourceHandle:`${e.targetColumn}-r`,target:e.source,targetHandle:`${e.sourceColumn}-l`,type:"smoothstep",animated:t,zIndex:t?1:0,style:{stroke:t?"var(--primary)":"var(--muted-foreground)",strokeWidth:t?2:1.25,opacity:n?.15:t?1:.55}}),rE=({tables:e,edges:t})=>{const{isDark:n}=so(),r=Zs(),{fitView:s}=Fr(),o=Sw(),[i,a]=ws(ct.ACTIVE_TABLE,{defaultValue:""}),[l]=ws(ct.SIDEBAR_SEARCH,{defaultValue:""}),[c,u]=(0,C.useState)(null),f=(0,C.useMemo)(()=>tE({tables:e,edges:t}),[e,t]),[d,p,g]=bw(f),y=(0,C.useRef)(!1);(0,C.useEffect)(()=>{p(f),y.current=!1},[f,p]);const x=(0,C.useRef)(!1);(0,C.useEffect)(()=>{o&&(i&&!x.current?s({nodes:[{id:i}],duration:400,maxZoom:1.1}):y.current||s(),y.current=!0,x.current=!1)},[i,o,s]);const v=R=>{x.current=!0,a(R||null)},I=c??(i||null),m=I?B0(t,I):null,b=l.trim().toLowerCase(),E=d.map(R=>({...R,data:{...R.data,active:R.id===i,dimmed:m!==null&&!m.tables.has(R.id)||b!==""&&!R.data.table.tableName.toLowerCase().includes(b),highlightedColumns:m?.columns??new Set}})),N=t.map(R=>{const A=m?.edgeIds.has(R.id)??!1;return nE(R,A,m!==null&&!A)});return(0,h.jsxs)(yw,{nodes:E,edges:N,nodeTypes:eE,onNodesChange:g,onNodeMouseEnter:(R,A)=>u(A.id),onNodeMouseLeave:()=>u(null),onNodeClick:(R,A)=>v(A.id===i?"":A.id),onNodeDoubleClick:(R,A)=>{r({to:"/table/$table",params:{table:A.data.table.tableName},search:{[ct.TABLE_SCHEMA]:A.data.table.schemaName}})},onPaneClick:()=>v(""),nodesConnectable:!1,colorMode:n?"dark":"light",minZoom:.1,maxZoom:2,proOptions:{hideAttribution:!0},className:"bg-background!",children:[(0,h.jsx)(Nw,{variant:et.Dots,gap:18,size:1.5}),(0,h.jsx)(Ow,{position:"top-right",showInteractive:!1,children:(0,h.jsx)(dn,{title:"Reset layout","aria-label":"Reset layout",onClick:()=>{p(f),s({duration:300})},children:(0,h.jsx)(jf,{})})}),(0,h.jsx)(Kw,{pannable:!0,zoomable:!0}),(0,h.jsx)(Qw,{})]})},sE=e=>(0,h.jsx)(nd,{children:(0,h.jsx)(rE,{...e})}),oE=()=>{const{selectedDatabase:e}=ft(),[t]=ws(ct.ACTIVE_SCHEMA,{defaultValue:"all"}),{data:n,isLoading:r,error:s}=$t({queryKey:Ns.graph(e),queryFn:()=>Rp(e),select:o=>o.data.data,enabled:!!e});return{...(0,C.useMemo)(()=>z0(n??[],t),[n,t]),isLoading:r,error:s}},P_=()=>{const{tables:e,edges:t,isLoading:n,error:r}=oE();return n?(0,h.jsx)("div",{className:"flex h-full items-center justify-center",children:(0,h.jsx)(to,{size:"size-6"})}):r?(0,h.jsxs)("div",{className:"flex h-full items-center justify-center text-sm text-muted-foreground",children:["Couldn't load the schema: ",r.message]}):e.length===0?(0,h.jsx)("div",{className:"flex h-full items-center justify-center text-sm text-muted-foreground",children:"This database has no tables yet."}):(0,h.jsxs)("div",{className:"relative h-full w-full",children:[(0,h.jsx)(sE,{tables:e,edges:t}),t.length===0&&(0,h.jsx)("p",{className:"pointer-events-none absolute top-3 left-1/2 z-10 -translate-x-1/2 rounded-md border bg-card px-3 py-1.5 text-xs text-muted-foreground shadow-sm",children:"This database has no foreign keys."})]})},Na="Select a table first",iE="Not available for schemaless databases",aE=()=>{const{pathname:e}=Sl(),t=Xh({strict:!1}).table??null,{dbType:n}=ft(),r=Fp(),s=ip(),o=e.startsWith("/table/"),i=e.startsWith("/schema/");return{pathname:e,activeTable:t,dbType:n,isKeyValue:r?.dataModel==="key-value",isSchemaless:s,canCreateTable:!s,canEditRecords:!!t&&o,recordsHint:t?"Open the table data screen first":Na,hasIndexes:!!r?.indexes,canEditSchema:!!t&&i&&!s,schemaHint:s?iE:t?"Open the table schema screen first":Na}},lE=()=>{const{openOverlay:e,closeOverlay:t,isOverlayOpen:n}=ut(),[r,s]=(0,C.useState)("all"),[o,i]=(0,C.useState)(""),a=(0,C.useRef)(null),l=n("command-palette.root"),c=(0,C.useCallback)(y=>{if(y){e("command-palette.root");return}t("command-palette.root"),s("all"),i("")},[e,t]),u=(0,C.useCallback)(y=>{c(!1),y()},[c]),f=(0,C.useCallback)(()=>{s("tables"),i(""),setTimeout(()=>a.current?.focus(),0)},[]),d=(0,C.useCallback)(()=>{s("all"),i(""),setTimeout(()=>a.current?.focus(),0)},[]),p=(0,C.useCallback)(y=>{if(r==="all"&&y.startsWith(">")){f(),i(y.slice(1));return}if(r==="all"&&(y.toLowerCase()==="table "||y.toLowerCase()==="tables ")){f();return}i(y)},[r,f]),g=(0,C.useCallback)(y=>{y.key==="Backspace"&&o===""&&r==="tables"&&(y.preventDefault(),d())},[o,r,d]);return Pl("ctrl+k, meta+k",y=>{y.target?.closest?.(".monaco-editor")||(y.preventDefault(),c(!ut.getState().isOverlayOpen("command-palette.root")))},{enableOnFormTags:!0,enableOnContentEditable:!0}),{open:l,mode:r,inputValue:o,inputRef:a,handleOpenChange:c,handleAction:u,handleInputChange:p,handleKeyDown:g,switchToAllMode:d,switchToTablesMode:f}};function cE(){const e=Zs(),t=up(),{openOverlay:n}=ut(),{toggleSidebarOpen:r,toggleSidebarPinned:s,sidebar:o}=Bl(),{toggleTheme:i,isDark:a}=so(),{tablesList:l,isLoadingTablesList:c,errorTablesList:u}=Ll(),{exportFile:f,isExportingFile:d}=yp(),{copyTableSchema:p,isCopyingSchema:g}=ng(),{requestAssistant:y}=tg(),{open:x,mode:v,inputValue:I,inputRef:m,handleOpenChange:b,handleAction:E,handleInputChange:N,handleKeyDown:R,switchToAllMode:A,switchToTablesMode:k}=lE(),{pathname:L,activeTable:_,dbType:M,isKeyValue:O,isSchemaless:S,canCreateTable:w,canEditRecords:T,recordsHint:j,canEditSchema:D,schemaHint:P,hasIndexes:F}=aE(),z=typeof navigator<"u"&&/(Mac|iPhone|iPod|iPad)/i.test(navigator.platform),B=(H,W)=>{E(()=>{M&&Cr.capture("table_viewed",{db_type:M}),e({to:"/table/$table",params:{table:H},search:{[ct.TABLE_SCHEMA]:W}})})},K=H=>{E(()=>{y(H),n("chat.assistant")})};return(0,h.jsxs)(Qf,{open:x,onOpenChange:b,children:[(0,h.jsxs)("div",{className:"flex items-center border-b border-input px-2 gap-2 w-full",children:[v==="tables"&&(0,h.jsxs)("button",{type:"button",onClick:A,"aria-label":"Back to all commands",className:"flex items-center gap-1.5 h-8! rounded-md bg-primary/10 px-2.5 py-1 text-xs font-medium text-primary transition-all hover:bg-primary/20 shrink-0",children:[(0,h.jsx)(Ss,{className:"size-3.5"}),(0,h.jsx)("span",{children:"Tables"}),(0,h.jsx)(Pf,{className:"size-3 opacity-60"})]}),(0,h.jsx)(kl,{ref:m,placeholder:v==="all"?"Search commands... (type > for tables)":"Search tables...",value:I,onValueChange:N,onKeyDown:R,className:"border-0 px-0"})]}),(0,h.jsxs)(Rl,{children:[(0,h.jsx)(Nl,{children:v==="tables"?"No tables found.":"No results found."}),v==="tables"&&!c&&!u&&l&&(0,h.jsx)(ot,{heading:"Tables",children:l.length===0?(0,h.jsx)("div",{className:"py-6 text-center text-sm text-muted-foreground",children:"No tables in database"}):l.map(H=>(0,h.jsxs)(se,{value:ln(H),onSelect:()=>B(H.tableName,H.schemaName),children:[(0,h.jsx)(Yr,{className:"mr-2 size-4 text-primary"}),(0,h.jsxs)("div",{className:"flex flex-1 items-center justify-between",children:[(0,h.jsx)("span",{className:"font-medium",children:H.tableName}),(0,h.jsxs)("span",{className:"text-xs text-muted-foreground",children:[H.rowCountEstimated&&"~",H.rowCount," ",H.rowCount===1?"row":"rows"]})]})]},ln(H)))}),v==="tables"&&c&&(0,h.jsx)("div",{className:"py-6 text-center text-sm text-muted-foreground",children:"Loading tables..."}),v==="tables"&&u&&(0,h.jsx)("div",{className:"py-6 text-center text-sm text-muted-foreground",children:"Failed to load tables."}),v==="all"&&(0,h.jsxs)(h.Fragment,{children:[!O&&(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(ot,{heading:"Quick Access",children:(0,h.jsxs)(se,{onSelect:k,keywords:["tables",">","go to table"],className:"group",children:[(0,h.jsx)(El,{className:"mr-2 size-4 text-primary"}),(0,h.jsxs)("div",{className:"flex flex-1 items-center justify-between",children:[(0,h.jsxs)("div",{className:"flex flex-col",children:[(0,h.jsx)("span",{children:"Search Tables"}),(0,h.jsx)("span",{className:"text-xs text-muted-foreground",children:"Navigate to any table quickly"})]}),(0,h.jsx)(tp,{children:">"})]})]})}),(0,h.jsx)(tn,{})]}),(0,h.jsxs)(ot,{heading:"Go to",children:[!O&&(0,h.jsxs)(se,{onSelect:()=>E(()=>e({to:"/"})),keywords:["go","navigate","home","tables"],children:[(0,h.jsx)(Ss,{className:"mr-2 size-4"}),(0,h.jsxs)("div",{className:"flex flex-col",children:[(0,h.jsx)("span",{children:"Go to Tables"}),(0,h.jsx)("span",{className:"text-xs text-muted-foreground",children:"Open the tables overview"})]})]}),(0,h.jsxs)(se,{onSelect:()=>E(()=>e({to:"/runner"})),keywords:["go","navigate","sql","query","runner","editor"],children:[(0,h.jsx)(wf,{className:"mr-2 size-4"}),(0,h.jsxs)("div",{className:"flex flex-col",children:[(0,h.jsx)("span",{children:"Go to Query Runner"}),(0,h.jsx)("span",{className:"text-xs text-muted-foreground",children:"Write and execute queries"})]})]}),!O&&(0,h.jsxs)(se,{disabled:!_||S,onSelect:()=>{if(!_||S)return;const H=_;E(()=>e({to:"/schema/$table",params:{table:H},search:{[ct.TABLE_SCHEMA]:t}}))},keywords:["go","navigate","schema","columns"],children:[(0,h.jsx)(df,{className:"mr-2 size-4"}),(0,h.jsxs)("div",{className:"flex flex-col",children:[(0,h.jsx)("span",{children:"Go to Schema"}),(0,h.jsx)("span",{className:"text-xs text-muted-foreground",children:S?"Not available for schemaless databases":_?`View the schema of ${_}`:"Select a table first"})]})]}),F&&(0,h.jsxs)(se,{disabled:!_,onSelect:()=>{if(!_)return;const H=_;E(()=>e({to:"/indexes/$table",params:{table:H},search:{[ct.TABLE_SCHEMA]:t}}))},keywords:["go","navigate","indexes","index"],children:[(0,h.jsx)(Ko,{className:"mr-2 size-4"}),(0,h.jsxs)("div",{className:"flex flex-col",children:[(0,h.jsx)("span",{children:"Go to Indexes"}),(0,h.jsx)("span",{className:"text-xs text-muted-foreground",children:_?`View the indexes of ${_}`:"Select a table first"})]})]}),O&&(0,h.jsxs)(se,{onSelect:()=>E(()=>e({to:"/browser"})),keywords:["go","navigate","redis","browser","keys"],children:[(0,h.jsx)(Yr,{className:"mr-2 size-4"}),(0,h.jsxs)("div",{className:"flex flex-col",children:[(0,h.jsx)("span",{children:"Go to Redis Browser"}),(0,h.jsx)("span",{className:"text-xs text-muted-foreground",children:"Browse keys across logical databases"})]})]})]}),(0,h.jsx)(tn,{}),(0,h.jsxs)(ot,{heading:"AI Assistant",children:[(0,h.jsxs)(se,{onSelect:()=>E(()=>n("chat.assistant")),keywords:["ai","assistant","chat","help"],children:[(0,h.jsx)(cf,{className:"mr-2 size-4"}),(0,h.jsxs)("div",{className:"flex flex-col",children:[(0,h.jsx)("span",{children:"Chat with AI Assistant"}),(0,h.jsx)("span",{className:"text-xs text-muted-foreground",children:"Ask questions about your database"})]})]}),(0,h.jsxs)(se,{onSelect:()=>K("Generate a query for this database. Ask me for the goal if it is unclear."),keywords:["ai","generate","sql","query","write"],children:[(0,h.jsx)(xf,{className:"mr-2 size-4"}),(0,h.jsxs)("div",{className:"flex flex-col",children:[(0,h.jsx)("span",{children:"Generate SQL with AI"}),(0,h.jsx)("span",{className:"text-xs text-muted-foreground",children:"Create queries using natural language"})]})]}),(0,h.jsxs)(se,{disabled:!_||S,onSelect:()=>{!_||S||K(`Explain the schema of table "${_}": what each column stores and how it relates to other tables.`)},keywords:["ai","explain","schema","table","understand"],children:[(0,h.jsx)(lf,{className:"mr-2 size-4"}),(0,h.jsxs)("div",{className:"flex flex-col",children:[(0,h.jsx)("span",{children:"Explain Table Schema"}),(0,h.jsx)("span",{className:"text-xs text-muted-foreground",children:S?"Not available for schemaless databases":_?`Understand the structure of ${_} with AI`:"Select a table first"})]})]})]}),(0,h.jsx)(tn,{}),(0,h.jsxs)(ot,{heading:"Database Actions",children:[w&&(0,h.jsxs)(se,{onSelect:()=>E(()=>n("table-builder.create-table")),keywords:["create","new","table"],children:[(0,h.jsx)(Vo,{className:"mr-2 size-4"}),(0,h.jsxs)("div",{className:"flex flex-col",children:[(0,h.jsx)("span",{children:"Create New Table"}),(0,h.jsx)("span",{className:"text-xs text-muted-foreground",children:"Design and create a new database table"})]})]}),O&&(0,h.jsxs)(se,{onSelect:()=>E(()=>{L.startsWith("/browser")||e({to:"/browser"}),n("redis-browser.create-key")}),keywords:["create","new","redis","key"],children:[(0,h.jsx)(eo,{className:"mr-2 size-4"}),(0,h.jsxs)("div",{className:"flex flex-col",children:[(0,h.jsx)("span",{children:"Create Redis Key"}),(0,h.jsx)("span",{className:"text-xs text-muted-foreground",children:"Add a new key to the selected database"})]})]}),!O&&(0,h.jsxs)(h.Fragment,{children:[(0,h.jsxs)(se,{disabled:!T,onSelect:()=>E(()=>n("records.add-record")),keywords:["add","new","row","record","insert"],children:[(0,h.jsx)(Vo,{className:"mr-2 size-4"}),(0,h.jsxs)("div",{className:"flex flex-col",children:[(0,h.jsx)("span",{children:"Add New Row"}),(0,h.jsx)("span",{className:"text-xs text-muted-foreground",children:T?`Insert a new record into ${_}`:j})]})]}),(0,h.jsxs)(se,{disabled:!T,onSelect:()=>E(()=>n("records.bulk-insert")),keywords:["bulk","insert","import","csv","excel","json"],children:[(0,h.jsx)(Cf,{className:"mr-2 size-4"}),(0,h.jsxs)("div",{className:"flex flex-col",children:[(0,h.jsx)("span",{children:"Bulk Insert Records"}),(0,h.jsx)("span",{className:"text-xs text-muted-foreground",children:T?`Import many records into ${_}`:j})]})]}),(0,h.jsxs)(se,{disabled:!D,onSelect:()=>E(()=>n("schema.add-column")),keywords:["add","new","column","schema"],children:[(0,h.jsx)(If,{className:"mr-2 size-4"}),(0,h.jsxs)("div",{className:"flex flex-col",children:[(0,h.jsx)("span",{children:"Add Column"}),(0,h.jsx)("span",{className:"text-xs text-muted-foreground",children:D?`Add a column to ${_}`:P})]})]}),F&&(0,h.jsxs)(se,{disabled:!_,onSelect:()=>{if(!_)return;const H=_;E(()=>{L.startsWith("/indexes/")||e({to:"/indexes/$table",params:{table:H},search:{[ct.TABLE_SCHEMA]:t}}),n("indexes.create-index")})},keywords:["create","add","new","index","indexes"],children:[(0,h.jsx)(Ko,{className:"mr-2 size-4"}),(0,h.jsxs)("div",{className:"flex flex-col",children:[(0,h.jsx)("span",{children:"Create Index"}),(0,h.jsx)("span",{className:"text-xs text-muted-foreground",children:_?`Create an index on ${_}`:"Select a table first"})]})]}),(0,h.jsxs)(se,{disabled:!_||d,onSelect:()=>{if(!_)return;const H=_;E(()=>{f({tableName:H,schemaName:t,format:"csv"}).catch(()=>{})})},keywords:["export","download","csv"],children:[(0,h.jsx)(Yo,{className:"mr-2 size-4"}),(0,h.jsxs)("div",{className:"flex flex-col",children:[(0,h.jsx)("span",{children:"Export Table as CSV"}),(0,h.jsx)("span",{className:"text-xs text-muted-foreground",children:_?`Download ${_} as a CSV file`:"Select a table first"})]})]}),(0,h.jsxs)(se,{disabled:!_||d,onSelect:()=>{if(!_)return;const H=_;E(()=>{f({tableName:H,schemaName:t,format:"json"}).catch(()=>{})})},keywords:["export","download","json"],children:[(0,h.jsx)(Yo,{className:"mr-2 size-4"}),(0,h.jsxs)("div",{className:"flex flex-col",children:[(0,h.jsx)("span",{children:"Export Table as JSON"}),(0,h.jsx)("span",{className:"text-xs text-muted-foreground",children:_?`Download ${_} as a JSON file`:"Select a table first"})]})]}),(0,h.jsxs)(se,{disabled:!_||g||S,onSelect:()=>{if(!_||S)return;const H=_;E(()=>{p(H,t).catch(()=>{})})},keywords:["copy","schema","ddl","clipboard"],children:[(0,h.jsx)(Sf,{className:"mr-2 size-4"}),(0,h.jsxs)("div",{className:"flex flex-col",children:[(0,h.jsx)("span",{children:"Copy Table Schema"}),(0,h.jsx)("span",{className:"text-xs text-muted-foreground",children:S?"Not available for schemaless databases":_?`Copy the schema of ${_} to the clipboard`:"Select a table first"})]})]})]}),(0,h.jsxs)(se,{onSelect:()=>E(()=>{window.location.reload()}),keywords:["refresh","reload","restart"],children:[(0,h.jsx)(of,{className:"mr-2 size-4"}),(0,h.jsxs)("div",{className:"flex flex-col",children:[(0,h.jsx)("span",{children:"Reload Application"}),(0,h.jsx)("span",{className:"text-xs text-muted-foreground",children:"Reload all tables and data"})]})]})]}),(0,h.jsx)(tn,{}),(0,h.jsxs)(ot,{heading:"View & Settings",children:[(0,h.jsxs)(se,{onSelect:()=>E(r),keywords:["sidebar","show","hide","toggle","view"],children:[(0,h.jsx)(rf,{className:"mr-2 size-4"}),(0,h.jsxs)("div",{className:"flex flex-col",children:[(0,h.jsxs)("span",{children:[o.isOpen?"Hide":"Show"," Sidebar"]}),(0,h.jsx)("span",{className:"text-xs text-muted-foreground",children:"Toggle sidebar visibility"})]})]}),(0,h.jsxs)(se,{onSelect:()=>E(s),keywords:["sidebar","pin","unpin"],children:[o.isPinned?(0,h.jsx)(vf,{className:"mr-2 size-4"}):(0,h.jsx)(af,{className:"mr-2 size-4"}),(0,h.jsxs)("div",{className:"flex flex-col",children:[(0,h.jsxs)("span",{children:[o.isPinned?"Unpin":"Pin"," Sidebar"]}),(0,h.jsx)("span",{className:"text-xs text-muted-foreground",children:"Keep sidebar always visible"})]})]}),(0,h.jsxs)(se,{onSelect:()=>E(i),keywords:["theme","dark","light","mode","appearance"],children:[a?(0,h.jsx)(Af,{className:"mr-2 size-4"}):(0,h.jsx)(gf,{className:"mr-2 size-4"}),(0,h.jsxs)("div",{className:"flex flex-col",children:[(0,h.jsxs)("span",{children:["Switch to ",a?"Light":"Dark"," Mode"]}),(0,h.jsx)("span",{className:"text-xs text-muted-foreground",children:"Toggle the application theme"})]})]}),(0,h.jsxs)(se,{onSelect:()=>E(()=>n("settings.app")),keywords:["settings","preferences","configure","options"],children:[(0,h.jsx)(Of,{className:"mr-2 size-4"}),(0,h.jsxs)("div",{className:"flex flex-col",children:[(0,h.jsx)("span",{children:"Settings & Preferences"}),(0,h.jsx)("span",{className:"text-xs text-muted-foreground",children:"Configure application settings"})]})]})]}),!O&&!c&&!u&&l&&l.length>0&&(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(tn,{}),(0,h.jsxs)(ot,{heading:"Recent Tables",children:[l.slice(0,5).map(H=>(0,h.jsxs)(se,{value:ln(H),keywords:["table","recent",H.tableName],onSelect:()=>B(H.tableName,H.schemaName),children:[(0,h.jsx)(Yr,{className:"mr-2 size-4"}),(0,h.jsxs)("div",{className:"flex flex-col",children:[(0,h.jsx)("span",{children:H.tableName}),(0,h.jsxs)("span",{className:"text-xs text-muted-foreground",children:[H.rowCountEstimated&&"~",H.rowCount," ",H.rowCount===1?"row":"rows"]})]})]},ln(H))),l.length>5&&(0,h.jsx)(se,{onSelect:k,className:"text-muted-foreground",children:(0,h.jsxs)("span",{className:"text-xs",children:["+",l.length-5," more tables — press"," ",(0,h.jsx)(Je,{className:"rounded border bg-muted px-1 py-0.5 font-mono text-[10px]",children:">"})," ","to see all"]})})]})]})]})]}),(0,h.jsxs)("div",{"aria-hidden":"true",className:"flex items-center gap-3 border-t border-border px-3 py-2 text-[11px] text-muted-foreground",children:[(0,h.jsxs)("span",{className:"flex items-center gap-1",children:[(0,h.jsx)(Je,{children:"↑"}),(0,h.jsx)(Je,{children:"↓"})," to navigate"]}),(0,h.jsxs)("span",{className:"flex items-center gap-1",children:[(0,h.jsx)(Je,{children:"↵"})," to select"]}),(0,h.jsxs)("span",{className:"flex items-center gap-1",children:[(0,h.jsx)(Je,{children:"esc"})," to close"]}),(0,h.jsxs)("span",{className:"ml-auto flex items-center gap-1",children:[(0,h.jsx)(Je,{children:z?"⌘":"Ctrl"}),(0,h.jsx)(Je,{children:"K"})," to toggle"]})]})]})}var L_=()=>{const{setDbType:e,selectedDatabase:t,setSelectedDatabase:n}=ft(),{data:r,isLoading:s,error:o,refetch:i,isRefetching:a}=$t({queryKey:tr.list(),queryFn:$l,select:l=>l.data.data,staleTime:3e5});return(0,C.useEffect)(()=>{r?.dbType&&(e(r.dbType),zl(r.dbType)),!t&&r?.databases?.length&&n(r.databases[0]?.name??null)},[r?.dbType,r?.databases,t,e,n]),{databases:r?.databases,dbType:r?.dbType,isLoadingDatabases:s,databasesError:o,refetchDatabases:i,isRefetchingDatabases:a}},uE=()=>{const{selectedDatabase:e,setSelectedDatabase:t,setDbType:n}=ft(),r=(0,C.useRef)(!1),{data:s,isLoading:o,error:i}=$t({queryKey:tr.list(),queryFn:$l,select:d=>d.data.data,staleTime:3e5}),{data:a,isLoading:l,error:c}=$t({queryKey:tr.current(),queryFn:async()=>{const d=await Ep();return n(d.data.data.dbType),zl(d.data.data.dbType),!e&&d.data.data.db&&t(d.data.data.db),d.data.data},staleTime:3e5});(0,C.useEffect)(()=>{if(r.current||o||l)return;r.current=!0;const d=a?.db||s?.databases?.[0]?.name;d&&t(d)},[o,l,a?.db,s?.databases,t]);const u=o||l,f=r.current;return{currentDatabase:a,databases:s?.databases,isLoading:u,isInitialized:f,error:i||c}},dE=()=>{const{data:e,isLoading:t,error:n}=$t({queryKey:tr.connectionInfo(),queryFn:Cp,select:r=>r.data.data,staleTime:3e5});return{connectionInfo:e,isLoadingConnectionInfo:t,connectionInfoError:n}},lt=e=>typeof e.details=="string"&&e.details||e.message,en=()=>{const{data:e,isLoading:t,error:n}=$t({queryKey:er.state(),queryFn:async()=>(await Np()).data.data,refetchOnWindowFocus:!0,staleTime:0});return{connections:e?.connections??[],active:e?.active??null,isLoading:t,error:n}},Fs=null,id=()=>{const e=Js(),t=Zs();return n=>{Fs=n.active?.connectionId??null,Fl(Fs),e.removeQueries({predicate:r=>r.queryKey[0]!==er.state()[0]}),e.setQueryData(er.state(),n),ft.setState({selectedDatabase:null,dbType:null}),vp.getState().clearUpdates(),mp.getState().clearRowDetails(),ut.getState().closeAllOverlays(),t({to:"/",search:{}})}},Mo=()=>{const e=id(),{active:t}=en(),n=Dt({mutationFn:async i=>(await Ip(i)).data.data,onSuccess:e}),r=Dt({mutationFn:async({id:i})=>(await xp(i)).data.data,onSuccess:e}),s=i=>he.promise(n.mutateAsync(i),{loading:"Connecting…",success:"Connected",error:a=>t?`${lt(a)}. Still on the previous connection.`:lt(a)}),o=i=>he.promise(r.mutateAsync(i),{loading:`Connecting to ${i.name}…`,success:`Connected to ${i.name}`,error:a=>t?`${lt(a)}. Still on the previous connection.`:lt(a)});return{connectUrl:s,isConnectingUrl:n.isPending,urlError:n.error?lt(n.error):null,clearUrlError:n.reset,connectSaved:o}},hE=()=>{const{active:e,connections:t,isLoading:n}=en(),r=id(),s=(0,C.useRef)(void 0),o=e?.connectionId??null;(0,C.useEffect)(()=>{if(n)return;const i=s.current;if(s.current=o,i===void 0&&Fl(o),i===void 0||i===o||o===Fs)return;r({connections:t,active:e});const a=t.find(l=>l.id===e?.id)?.name;he.info(a?`Connection changed to ${a}`:"The connection changed")},[n,o,t,e,r])},fE=6e4,ad=(e,t=Date.now())=>{const n=Math.round((t-e)/fE);if(n<1)return"just now";if(n<60)return`${n}m ago`;const r=Math.round(n/60);return r<24?`${r}h ago`:`${Math.round(r/24)}d ago`},pE={red:"bg-red-500",orange:"bg-orange-500",amber:"bg-amber-400",green:"bg-emerald-500",teal:"bg-teal-500",blue:"bg-blue-500",violet:"bg-violet-500",pink:"bg-pink-500"},vr=({color:e,className:t})=>(0,h.jsx)("span",{"aria-hidden":!0,className:me("inline-block size-2.5 shrink-0 rounded-full",e?pE[e]:"border border-muted-foreground/50",t)}),gE=5,D_=({databasesCount:e})=>{const{connections:t,active:n}=en(),{connectSaved:r}=Mo(),{connectionInfo:s}=dE(),o=t.find(a=>a.id===n?.id),i=o?.name??(n?vn[n.dbType].label:"Not connected");return(0,h.jsxs)(Ml,{children:[(0,h.jsx)(Al,{asChild:!0,children:(0,h.jsxs)("button",{type:"button",title:n?vn[n.dbType].label:void 0,className:"flex min-w-0 max-w-[55%] items-center gap-2 rounded-sm px-2 py-1.5 transition-colors hover:bg-muted/60 aria-expanded:bg-muted/60",children:[(0,h.jsx)(vr,{color:o?.color??null}),(0,h.jsx)("span",{className:"truncate text-xs font-medium",children:i})]})}),(0,h.jsxs)(_l,{align:"start",side:"top",sideOffset:6,className:"w-72 p-0",children:[s&&(0,h.jsx)("dl",{className:"space-y-1 border-b px-3 py-2.5 text-xs",children:[["Host",s.host?`${s.host}${s.port?`:${s.port}`:""}`:"Local file"],["User",s.user||"—"],["Databases",e]].map(([a,l])=>(0,h.jsxs)("div",{className:"flex justify-between gap-3",children:[(0,h.jsx)("dt",{className:"text-muted-foreground",children:a}),(0,h.jsx)("dd",{className:"truncate font-mono",children:l})]},a))}),(0,h.jsxs)("div",{className:"p-1",children:[(0,h.jsx)("p",{className:"px-2 pb-1 pt-1.5 text-[10px] font-medium uppercase tracking-wide text-muted-foreground",children:"Switch connection"}),t.slice(0,gE).map(a=>{const l=a.id===n?.id;return(0,h.jsxs)(Zn,{onSelect:()=>{l||r(a)},children:[(0,h.jsx)(vr,{color:a.color}),(0,h.jsx)("span",{className:"flex-1 truncate",children:a.name}),l?(0,h.jsx)(Il,{className:"size-3.5 text-emerald-500"}):(0,h.jsx)("span",{className:"text-[10px] text-muted-foreground",children:ad(a.lastUsedAt)})]},a.id)})]}),(0,h.jsx)(Tl,{className:"my-0"}),(0,h.jsx)("div",{className:"p-1",children:(0,h.jsx)(Zn,{asChild:!0,children:(0,h.jsxs)(wr,{to:"/connect",children:[(0,h.jsx)(Lf,{})," All connections…"]})})})]})]})},mE=()=>{const[e,t]=(0,C.useState)(""),{connectUrl:n,isConnectingUrl:r,urlError:s,clearUrlError:o}=Mo(),i=Mp(e.trim().split("://")[0]?.toLowerCase()??"");return(0,h.jsxs)("form",{className:"space-y-1.5",onSubmit:a=>{a.preventDefault(),e.trim()&&n(e.trim())},children:[(0,h.jsxs)("div",{className:"flex h-8",children:[(0,h.jsxs)("div",{className:"relative h-full min-w-0 flex-1",children:[(0,h.jsx)(no,{autoFocus:!0,variant:"outline",value:e,onChange:a=>{t(a.target.value),o()},placeholder:"postgres://user:password@localhost:5432/mydb",spellCheck:!1,autoComplete:"off","aria-label":"Connection URL","aria-invalid":!!s,"aria-describedby":"connect-url-hint",className:"h-full rounded-r-none pr-36 font-mono focus-visible:ring-inset"}),i&&(0,h.jsx)("span",{className:"pointer-events-none absolute right-2 top-1/2 -translate-y-1/2 text-[10px] uppercase text-muted-foreground",children:vn[i].label})]}),(0,h.jsx)(dt,{type:"submit",disabled:!e.trim()||r,className:"h-full w-28 rounded-l-none bg-clip-border",children:r?(0,h.jsx)(to,{size:"size-3.5",color:"bg-primary-foreground"}):(0,h.jsxs)(h.Fragment,{children:["Connect",(0,h.jsx)(Je,{className:"border-0 bg-primary-foreground/15 text-primary-foreground",children:"↵"})]})})]}),(0,h.jsx)("p",{id:"connect-url-hint",role:s?"alert":void 0,className:me("text-xs",s?"text-destructive":"text-muted-foreground"),children:s??"The connection is tested first. Nothing changes if it fails."})]})},ld=e=>{const t=Js(),n=l=>t.setQueryData(er.state(),c=>c&&l(c)),r=Dt({mutationFn:async l=>(await Ap(e.id,l)).data.data,onSuccess:l=>n(c=>({...c,connections:c.connections.map(u=>u.id===l.id?l:u)}))}),s=Dt({mutationFn:async()=>(await wp(e.id)).data.data,onSuccess:()=>n(l=>({connections:l.connections.filter(c=>c.id!==e.id),active:l.active?.id===e.id?{...l.active,id:null}:l.active}))});return{rename:l=>he.promise(r.mutateAsync({name:l}),{loading:"Renaming connection…",success:"Connection renamed",error:c=>lt(c)||"Failed to rename connection"}),setColor:l=>he.promise(r.mutateAsync({color:l}),{error:c=>lt(c)||"Failed to change the color"}),remove:()=>he.promise(s.mutateAsync(),{loading:"Removing connection…",success:"Connection removed",error:l=>lt(l)||"Failed to remove connection"})}},vE=({connection:e,onRename:t})=>{const{setColor:n,remove:r}=ld(e),s=[null,...kp],o=(0,C.useRef)(!1);return(0,h.jsxs)(Ml,{children:[(0,h.jsx)(Al,{asChild:!0,children:(0,h.jsx)(dt,{variant:"ghost",size:"icon-sm","aria-label":`Actions for ${e.name}`,onClick:i=>i.stopPropagation(),onKeyDown:i=>i.stopPropagation(),children:(0,h.jsx)(kf,{})})}),(0,h.jsxs)(_l,{align:"end",onClick:i=>i.stopPropagation(),onCloseAutoFocus:i=>{o.current&&(o.current=!1,i.preventDefault(),t())},children:[(0,h.jsxs)(Zn,{onSelect:()=>{o.current=!0},children:[(0,h.jsx)(Rf,{})," Rename"]}),(0,h.jsxs)(rp,{children:[(0,h.jsxs)(op,{children:[(0,h.jsx)(Nf,{})," Color"]}),(0,h.jsx)(lp,{className:"flex items-center gap-1.5 p-2",children:s.map(i=>(0,h.jsx)("button",{type:"button","aria-label":i??"No color","aria-pressed":e.color===i,onClick:()=>n(i),className:me("grid size-5 place-items-center rounded-full",e.color===i&&"ring-2 ring-ring ring-offset-1 ring-offset-popover"),children:(0,h.jsx)(vr,{color:i,className:"size-3.5"})},i??"none"))})]}),(0,h.jsx)(Tl,{}),(0,h.jsxs)(Zn,{variant:"destructive",onSelect:r,children:[(0,h.jsx)(Mf,{})," Delete"]})]})]})},yE=({connection:e,onDone:t})=>{const{rename:n}=ld(e),[r,s]=(0,C.useState)(e.name),o=(0,C.useRef)(!1),i=a=>{if(o.current)return;o.current=!0;const l=r.trim();a&&l&&l!==e.name&&n(l),t()};return(0,h.jsx)("input",{autoFocus:!0,"aria-label":"Connection name",value:r,maxLength:100,onChange:a=>s(a.target.value),onBlur:()=>i(!0),onClick:a=>a.stopPropagation(),onKeyDown:a=>{a.stopPropagation(),a.key==="Enter"&&i(!0),a.key==="Escape"&&i(!1)},className:"h-6 min-w-0 flex-1 rounded-sm border border-input bg-background px-1.5 text-sm outline-none focus:ring-2 focus:ring-ring/30"})},cd="grid grid-cols-[minmax(0,1.1fr)_minmax(0,2fr)_6.5rem_4.5rem_1.75rem] gap-3",bE=({connection:e,isActive:t})=>{const{connectSaved:n}=Mo(),[r,s]=(0,C.useState)(!1),o=()=>{r||n(e)};return(0,h.jsxs)("div",{role:"button",tabIndex:0,"aria-label":`Connect to ${e.name}`,onClick:o,onKeyDown:i=>{i.key==="Enter"&&i.target===i.currentTarget&&o()},className:me(cd,"group relative cursor-pointer items-center border-b px-3 py-1.5 text-sm outline-none last:border-b-0 hover:bg-muted/60 focus-visible:bg-muted/60",t&&"bg-muted/40"),children:[t&&(0,h.jsx)("span",{className:"absolute inset-y-0 left-0 w-1 bg-primary"}),(0,h.jsxs)("div",{className:"flex min-w-0 items-center gap-2",children:[(0,h.jsx)(vr,{color:e.color}),r?(0,h.jsx)(yE,{connection:e,onDone:()=>s(!1)}):(0,h.jsx)("span",{className:"truncate",children:e.name})]}),(0,h.jsx)("span",{className:"truncate font-mono text-xs text-muted-foreground",children:e.maskedUrl}),(0,h.jsx)("span",{title:vn[e.dbType].label,className:"truncate text-xs text-muted-foreground",children:vn[e.dbType].label}),(0,h.jsx)("span",{className:"text-right text-xs tabular-nums text-muted-foreground",children:t?"current":ad(e.lastUsedAt)}),(0,h.jsx)("div",{className:"flex justify-end opacity-0 transition-opacity group-hover:opacity-100 group-focus-within:opacity-100 has-[[data-state=open]]:opacity-100",children:(0,h.jsx)(vE,{connection:e,onRename:()=>s(!0)})})]})},xE=()=>{const{connections:e,active:t}=en(),n=(0,C.useRef)(null),[r,s]=(0,C.useState)("");Pl("/",()=>n.current?.focus(),{preventDefault:!0});const o=r.trim().toLowerCase(),i=o?e.filter(a=>`${a.name} ${a.maskedUrl}`.toLowerCase().includes(o)):e;return e.length===0?(0,h.jsx)("p",{className:"rounded-sm border border-dashed px-3 py-6 text-center text-xs text-muted-foreground",children:"Connections you open are saved here."}):(0,h.jsxs)("div",{className:"overflow-hidden rounded-sm border",children:[(0,h.jsxs)("div",{className:"flex h-8 items-center border-b",children:[(0,h.jsxs)("div",{className:"relative h-full flex-1",children:[(0,h.jsx)(El,{className:"absolute left-3 top-1/2 size-3.5 -translate-y-1/2 text-muted-foreground"}),(0,h.jsx)("input",{ref:n,value:r,onChange:a=>s(a.target.value),placeholder:"Filter saved connections","aria-label":"Filter saved connections",className:"h-full w-full bg-transparent pl-8 pr-8 text-xs outline-none placeholder:text-muted-foreground"}),(0,h.jsx)(Je,{className:"absolute right-2 top-1/2 -translate-y-1/2",children:"/"})]}),(0,h.jsxs)("span",{className:"flex h-full items-center border-l px-3 text-xs text-muted-foreground",children:[e.length," saved"]})]}),(0,h.jsxs)("div",{className:me(cd,"h-8 items-center border-b bg-muted/40 px-3 text-xs text-muted-foreground"),children:[(0,h.jsx)("span",{children:"Name"}),(0,h.jsx)("span",{children:"URL"}),(0,h.jsx)("span",{children:"Engine"}),(0,h.jsx)("span",{className:"text-right",children:"Last used"}),(0,h.jsx)("span",{})]}),i.map(a=>(0,h.jsx)(bE,{connection:a,isActive:a.id===t?.id},a.id)),i.length===0&&(0,h.jsxs)("p",{className:"px-3 py-6 text-center text-xs text-muted-foreground",children:['No saved connection matches "',r,'".']})]})},$_=()=>{const{active:e,connections:t}=en(),n=t.find(r=>r.id===e?.id)?.name;return(0,h.jsxs)("div",{className:"flex h-dvh flex-col bg-background text-foreground",children:[(0,h.jsxs)("header",{className:"flex h-8 shrink-0 items-center gap-2 border-b px-3 text-xs",children:[(0,h.jsx)("img",{src:"/favicon.png",alt:"",className:"size-4"}),(0,h.jsx)("span",{className:"font-medium",children:"DB Studio"}),(0,h.jsxs)("span",{className:"text-muted-foreground",children:["v","1.22.0"]}),e&&(0,h.jsxs)(wr,{to:"/",className:"ml-auto flex items-center gap-1.5 text-muted-foreground hover:text-foreground",children:[(0,h.jsx)(mf,{className:"size-3.5"}),"Back to ",n??"the open connection"]})]}),(0,h.jsx)("main",{className:"flex-1 overflow-auto",children:(0,h.jsxs)("div",{className:"mx-auto w-full max-w-3xl space-y-8 px-6 pb-16 pt-[10vh]",children:[(0,h.jsxs)("div",{className:"space-y-3",children:[(0,h.jsxs)("div",{className:"space-y-1",children:[(0,h.jsx)("h1",{className:"text-sm font-semibold",children:"Connect a database"}),(0,h.jsx)("p",{className:"text-xs text-muted-foreground",children:"Paste a connection URL, or pick one you used before."})]}),(0,h.jsx)(mE,{})]}),(0,h.jsx)(xE,{})]})})]})};function ud(){return{id:"memory",label:"Session only (not saved)",persistent:!1,warning:"Keys stay in memory for this tab only. They are not saved across reloads.",load:()=>({}),save:()=>{},clear:()=>{}}}var SE=/^[a-z][a-z0-9-]{0,63}$/,IE="x-byok-";function _e(e){return typeof e=="string"&&SE.test(e)}function Ra(e){if(!_e(e))throw new Error(`Invalid BYOK provider id: ${e}`);return`${IE}${e}`}function wE(e){if(typeof e!="object"||e===null||!("error"in e))return!1;const t=e.error;return!(typeof t!="object"||t===null||!("type"in t)||t.type!=="byok_missing"||!("provider"in t)||typeof t.provider!="string"||!_e(t.provider)||!("message"in t)||typeof t.message!="string")}var zs=class extends Error{provider;constructor(e){super(`Missing ${e} API key`),this.name="ByokMissingError",this.provider=e}},yr=class extends Error{provider;reason;constructor(e,t){super(t==="locked"?`${e} key is locked`:`Missing ${e} API key`),this.name="ByokBlockedError",this.provider=e,this.reason=t}},dd=class extends Error{constructor(){super("BYOK is enabled but no provider slug was resolved. Pass byokProvider or forwardedProps.provider."),this.name="ByokUnresolvedProviderError"}};function Gn(e){return e.length<=4?"••":e.slice(-4)}var EE={status:{},locked:!1,prompt:null,storageError:null},hd=new WeakMap;function CE(e){const t=Object.entries(e.keys()).filter(r=>!!r[1]).map(r=>r[0]).filter(_e);if(t.length===1)return t[0];const n=hd.get(e)??[];if(n.length===1)return n[0]}function mt(e){if(!_e(e))throw new Error(`Invalid BYOK provider id: ${e}`);return e}function Un(e,t){return e instanceof Error&&e.message.length>0?e.message:t}function NE(e){if(typeof DOMException<"u"&&e instanceof DOMException&&e.name==="NotAllowedError")return!0;if(e instanceof Error){if(e.name==="NotAllowedError")return!0;const t=e.message.toLowerCase();return t.includes("cancelled")||t.includes("not allowed")}return!1}function _a(e){if(typeof e!="object"||e===null)return{};const t={};for(const[n,r]of Object.entries(e))_e(n)&&typeof r=="string"&&r.length>0&&(t[n]=r);return t}var RE=class{storage;#e={};#t={};#n;#r=null;#l=!1;#a={};#d={};#c=new Set;#u;#o=null;#i;constructor(e={}){this.storage=e.storage??ud();const t=[];for(const n of e.providers??[]){const r=mt(n.id);t.push(r),n.with?.length&&(this.#d[r]=n.with.map(s=>mt(s.id)))}hd.set(this,t),this.#n=!!this.storage.unlockable,this.#u=this.#h(),this.#i=this.#m()}ready=()=>this.#i;subscribe=e=>(this.#c.add(e),()=>{this.#c.delete(e)});getSnapshot=()=>this.#u;#h(){return{status:{...this.#t},locked:this.#n,prompt:this.#r,storageError:this.#o}}keys(){return{...this.#e}}request(e,t){this.#r={provider:mt(e),reason:t},this.#s()}setServerCoverage(e){if(typeof e=="boolean"){this.#l=e,this.#a={};return}this.#l=!1,this.#a={...this.#a,...e}}#p(e){return this.#l||this.#a[e]===!0}#f(e){return[e,...this.#d[e]??[]]}headers(e){const t={};if(e){mt(e);for(const n of this.#f(e)){const r=this.#e[n];r&&(t[Ra(n)]=r)}return t}for(const[n,r]of Object.entries(this.#e))r&&(t[Ra(n)]=r);return t}async prepare(e){if(await this.#i,this.storage.unlockable&&this.#n&&await this.unlock(),!!e){mt(e);for(const t of this.#f(e))if(!(this.#e[t]||this.#p(t)))throw this.request(t,"missing"),new yr(t,"missing")}}async update(e,t){await this.#i;let n,r;if(t===void 0){if(!this.#r)throw new Error("byok.update(key) cannot run when prompt is null");n=this.#r.provider,r=e}else n=mt(e),r=t;if(r=r.trim(),r.length===0)throw new Error("BYOK key must be non-empty");this.storage.unlockable&&this.#n&&await this.unlock();const s=this.#e,o={...this.#t},i=this.#n,a=this.#r,l=this.#o,c={...this.#e,[n]:r};try{await this.storage.save(c)}catch(u){throw this.#e=s,this.#t=o,this.#n=i,this.#r=a,this.#o=l,this.#t[n]={state:"error",masked:Gn(r),message:Un(u,`Failed to persist ${n} key`)},this.#s(),u}this.#e=c,this.#t[n]={state:"set",masked:Gn(r)},this.#n=!1,this.#r=null,this.#o=null,this.#s()}async clear(e){if(await this.#i,e){mt(e),this.storage.unlockable&&this.#n&&await this.unlock();const o=this.#e,i={...this.#t},a={...this.#e};delete a[e];try{await this.storage.save(a)}catch(l){throw this.#e=o,this.#t=i,this.#s(),l}this.#e=a,delete this.#t[e],this.#s();return}const t=this.#e,n=this.#t,r=this.#n,s=this.#r;try{await this.storage.clear()}catch(o){throw this.#e=t,this.#t=n,this.#n=r,this.#r=s,this.#s(),o}this.#e={},this.#t={},this.#n=!1,this.#r=null,this.#o=null,this.#s()}async unlock(){if(await this.#i,!!this.storage.unlockable)try{const e=_a(await this.storage.load());this.#e={...e,...this.#e};for(const[t,n]of Object.entries(e)){if(!_e(t)||!n)continue;const r=this.#t[t];(!r||r.state==="locked")&&(this.#t[t]={state:"set",masked:Gn(n)})}this.#n=!1,this.#o=null,this.#s()}catch(e){if(NE(e)){const t=this.#g();if(t)throw this.request(t,"locked"),new yr(t,"locked")}throw this.#o=Un(e,"Failed to unlock keyring"),this.#s(),e instanceof Error?e:new Error(String(e))}}#g(){if(this.#r&&_e(this.#r.provider))return this.#r.provider;for(const[e,t]of Object.entries(this.#t))if(t?.state==="locked"&&_e(e))return e}async#m(){if(this.storage.unlockable){if(!this.storage.peek)return;try{const e=await this.storage.peek();for(const[t,n]of Object.entries(e))!_e(t)||this.#t[t]||(this.#t[t]={state:"locked",masked:n||"••"});this.#n=Object.keys(e).length>0,this.#o=null,this.#s()}catch(e){this.#o=Un(e,"Failed to read keyring"),this.#s()}return}try{const e=_a(await this.storage.load());this.#e={...e,...this.#e};for(const[t,n]of Object.entries(e))!_e(t)||!n||(this.#t[t]={state:"set",masked:Gn(n)});this.#o=null,this.#s()}catch(e){this.#o=Un(e,"Failed to read keyring"),this.#s()}}#s(){this.#u=this.#h();for(const e of this.#c)e()}};function _E(e={}){return new RE(e)}var mn=_E({storage:ud()});mn.setServerCoverage({gemini:!0});var Hs=class extends Error{missingFeature;constructor(e){super(TE(e)),this.name="UnsupportedResponseStreamError",this.missingFeature=e}};function TE(e){return`Streaming fetch responses are not supported in this runtime because ${e} is unavailable. React Native users need a compatible fetch/stream/TextDecoder polyfill, or should use a fetch, XHR, or custom transport that can deliver streaming chunks.`}function AE(e){if(!e.body)throw new Hs("Response.body");if(typeof e.body.getReader!="function")throw new Hs("Response.body.getReader");return e.body.getReader()}function ME(){if(typeof globalThis.TextDecoder!="function")throw new Hs("TextDecoder");return new globalThis.TextDecoder}function kE(e){if(!e.startsWith("data:"))return e;const t=e.slice(5);return t.startsWith(" ")?t.slice(1):t}function Ta(e){if(e instanceof Date)return Number.isNaN(e.getTime())?void 0:e;if(typeof e!="string")return;const t=new Date(e);return Number.isNaN(t.getTime())?void 0:t}function OE(e){const t=Ta(e.createdAt),n=e.parts.map(o=>{if(o.type!=="tool-result")return o;const i=Ta(o.createdAt),{createdAt:a,...l}=o;return i?{...l,createdAt:i}:l}),{createdAt:r,...s}=e;return t?{...s,parts:n,createdAt:t}:{...s,parts:n}}function Bs(e){return e.map(OE)}function Aa(e){return Object.keys(e).length>0?e:void 0}function fd(e){return typeof e=="object"&&e!=null&&!Array.isArray(e)&&"promptTokens"in e}function jE(e,t){return fd(e)?e:Array.isArray(e)?Ma(e,t):Ma(void 0,t)}function Ma(e,t){const n=e?.[0];if(n==null&&t==null)return;const{promptTokensDetails:r,completionTokensDetails:s,...o}=t??{},i=Aa({...n?.cachedInputTokens!==void 0?{cachedTokens:n.cachedInputTokens}:{},...r}),a=Aa({...n?.reasoningTokens!==void 0?{reasoningTokens:n.reasoningTokens}:{},...s});return{promptTokens:n?.inputTokens??0,completionTokens:n?.outputTokens??0,totalTokens:n?.totalTokens??0,...o,...i!==void 0?{promptTokensDetails:i}:{},...a!==void 0?{completionTokensDetails:a}:{}}}function ka(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}function pd(e,t){if(t==null)return e;if(e==null)return{...t};const n={...e,...t};return ka(e.tanstack)&&ka(t.tanstack)&&(n.tanstack={...e.tanstack,...t.tanstack}),n}function ae(e){if(e==null)return;const t="metadata"in e?e.metadata:void 0,n=(t!=null&&typeof t=="object"&&!Array.isArray(t)?t:e).tanstack;if(!(n==null||typeof n!="object"||Array.isArray(n)))return n}function gd(e,t){const n=e.metadata,r=ae(e)??{};return{...e,metadata:{...n??{},tanstack:{...r,...t}}}}var qn=(function(e){return e.TEXT_MESSAGE_START="TEXT_MESSAGE_START",e.TEXT_MESSAGE_CONTENT="TEXT_MESSAGE_CONTENT",e.TEXT_MESSAGE_END="TEXT_MESSAGE_END",e.TEXT_MESSAGE_CHUNK="TEXT_MESSAGE_CHUNK",e.TOOL_CALL_START="TOOL_CALL_START",e.TOOL_CALL_ARGS="TOOL_CALL_ARGS",e.TOOL_CALL_END="TOOL_CALL_END",e.TOOL_CALL_CHUNK="TOOL_CALL_CHUNK",e.TOOL_CALL_RESULT="TOOL_CALL_RESULT",e.THINKING_START="THINKING_START",e.THINKING_END="THINKING_END",e.THINKING_TEXT_MESSAGE_START="THINKING_TEXT_MESSAGE_START",e.THINKING_TEXT_MESSAGE_CONTENT="THINKING_TEXT_MESSAGE_CONTENT",e.THINKING_TEXT_MESSAGE_END="THINKING_TEXT_MESSAGE_END",e.STATE_SNAPSHOT="STATE_SNAPSHOT",e.STATE_DELTA="STATE_DELTA",e.MESSAGES_SNAPSHOT="MESSAGES_SNAPSHOT",e.ACTIVITY_SNAPSHOT="ACTIVITY_SNAPSHOT",e.ACTIVITY_DELTA="ACTIVITY_DELTA",e.RAW="RAW",e.CUSTOM="CUSTOM",e.RUN_STARTED="RUN_STARTED",e.RUN_FINISHED="RUN_FINISHED",e.RUN_ERROR="RUN_ERROR",e.STEP_STARTED="STEP_STARTED",e.STEP_FINISHED="STEP_FINISHED",e.REASONING_START="REASONING_START",e.REASONING_MESSAGE_START="REASONING_MESSAGE_START",e.REASONING_MESSAGE_CONTENT="REASONING_MESSAGE_CONTENT",e.REASONING_MESSAGE_END="REASONING_MESSAGE_END",e.REASONING_MESSAGE_CHUNK="REASONING_MESSAGE_CHUNK",e.REASONING_END="REASONING_END",e.REASONING_ENCRYPTED_VALUE="REASONING_ENCRYPTED_VALUE",e})({}),PE=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]);function ze(e,t){return e>>>t|e<<32-t}function LE(e){const t=new TextEncoder().encode(e),n=t.length*8,r=t.length+1,s=r+(56-r%64+64)%64+8,o=new Uint8Array(s);o.set(t),o[t.length]=128;const i=new DataView(o.buffer);i.setUint32(s-8,Math.floor(n/4294967296)),i.setUint32(s-4,n>>>0);let a=1779033703,l=3144134277,c=1013904242,u=2773480762,f=1359893119,d=2600822924,p=528734635,g=1541459225;const y=new Uint32Array(64);for(let v=0;v<s;v+=64){for(let L=0;L<16;L++)y[L]=i.getUint32(v+L*4);for(let L=16;L<64;L++){const _=y[L-15]??0,M=y[L-2]??0,O=ze(_,7)^ze(_,18)^_>>>3,S=ze(M,17)^ze(M,19)^M>>>10;y[L]=(y[L-16]??0)+O+(y[L-7]??0)+S>>>0}let I=a,m=l,b=c,E=u,N=f,R=d,A=p,k=g;for(let L=0;L<64;L++){const _=ze(N,6)^ze(N,11)^ze(N,25),M=N&R^~N&A,O=k+_+M+(PE[L]??0)+(y[L]??0)>>>0,S=(ze(I,2)^ze(I,13)^ze(I,22))+(I&m^I&b^m&b)>>>0;k=A,A=R,R=N,N=E+O>>>0,E=b,b=m,m=I,I=O+S>>>0}a=a+I>>>0,l=l+m>>>0,c=c+b>>>0,u=u+E>>>0,f=f+N>>>0,d=d+R>>>0,p=p+A>>>0,g=g+k>>>0}const x=v=>(v>>>0).toString(16).padStart(8,"0");return x(a)+x(l)+x(c)+x(u)+x(f)+x(d)+x(p)+x(g)}function DE(e){return`sha256:${LE(e)}`}function Gs(e,t){if(e===null)return"null";if(typeof e=="string"||typeof e=="boolean"||typeof e=="number"&&Number.isFinite(e))return JSON.stringify(e);if(typeof e!="object")throw new TypeError("Interrupt values must be JSON-compatible.");if(t.has(e))throw new TypeError("Interrupt values must not cycle.");if(!Array.isArray(e)&&Object.getPrototypeOf(e)!==Object.prototype&&Object.getPrototypeOf(e)!==null)throw new TypeError("Interrupt values must use plain JSON objects.");t.add(e);let n;if(Array.isArray(e)){const r=[];for(let s=0;s<e.length;s++)r.push(Gs(e[s],t));n=`[${r.join(",")}]`}else{const r=e;n=`{${Object.keys(r).sort().map(s=>`${JSON.stringify(s)}:${Gs(r[s],t)}`).join(",")}}`}return t.delete(e),n}function At(e){return Gs(e,new WeakSet)}function Mt(e,t=DE){if(typeof e!="string")throw new TypeError("Interrupt digests require canonical JSON text.");return t(e)}function md(e){e===null||typeof e!="object"||Object.isFrozen(e)||(Object.values(e).forEach(md),Object.freeze(e))}function de(e){const t=JSON.parse(At(e));return md(t),t}function $E(e){const t=[...e].sort((s,o)=>s.interruptId.localeCompare(o.interruptId)),n=de(t),r=At(n);return Object.freeze({resolutions:n,canonicalResolutions:r,fingerprint:Mt(r)})}function Oa(e){const t={};for(const[n,r]of Object.entries(e))n!=="$schema"&&(t[n]=r);return t}function vd(e){return(typeof e=="object"||typeof e=="function")&&e!==null}function jn(e){if(!vd(e)||!("~standard"in e))return!1;const t=e["~standard"];return typeof t!="object"||t===null||!("version"in t)||t.version!==1||!("jsonSchema"in t)||typeof t.jsonSchema!="object"||t.jsonSchema===null||!("input"in t.jsonSchema)?!1:typeof t.jsonSchema.input=="function"}function pt(e){return vd(e)&&"~standard"in e&&typeof e["~standard"]=="object"&&e["~standard"]!==null&&"version"in e["~standard"]&&e["~standard"].version===1&&"validate"in e["~standard"]&&typeof e["~standard"].validate=="function"}function FE(e){return Object.keys(e).length>0?e:void 0}function ja(e){if(Array.isArray(e)){const n=e.map(s=>br(s,s.required||[])),r=n.map(s=>s.nullWidening??{});return{schema:n.map(s=>s.schema),itemMap:r.some(s=>Object.keys(s).length>0)?r:void 0}}const t=br(e,e.required||[]);return{schema:t.schema,itemMap:t.nullWidening}}function br(e,t=[]){const n={...e},r={};if(n.type==="object"&&n.properties){const s={...n.properties},o=Object.keys(s),i={};for(const a of o){const l=s[a];if(!l)continue;const c=!t.includes(a);let u=!1,f;if(l.type==="object"&&l.properties){const d=br(l,l.required||[]);s[a]=c?{...d.schema,type:["object","null"]}:d.schema,u=c,f=d.nullWidening}else if(l.type==="array"&&l.items){const d=ja(l.items);s[a]={...l,items:d.schema,...c?{type:["array","null"]}:{}},u=c,f=d.itemMap?{items:d.itemMap}:void 0}else c&&(l.type&&!Array.isArray(l.type)?(s[a]={...l,type:[l.type,"null"]},u=!0):Array.isArray(l.type)&&!l.type.includes("null")&&(s[a]={...l,type:[...l.type,"null"]},u=!0));(u||f)&&(i[a]={...f??{},...u?{widened:!0}:{}})}n.properties=s,n.required=o,n.additionalProperties=!1,Object.keys(i).length>0&&(r.properties=i)}if(n.type==="array"&&n.items){const s=ja(n.items);n.items=s.schema,s.itemMap&&(r.items=s.itemMap)}return{schema:n,nullWidening:FE(r)}}function zE(e){if(jn(e)){const t=Oa(e["~standard"].jsonSchema.input({target:"draft-07"}));return"properties"in t&&!t.type&&(t.type="object"),t.type==="object"&&!("properties"in t)&&(t.properties={}),t.type==="object"&&!("required"in t)&&(t.required=[]),t}if(pt(e))throw new Error("Schema is a Standard Schema validator but does not expose a JSON Schema converter on `~standard.jsonSchema`. Use Zod v4.2+, ArkType v2.1.28+, or wrap a Valibot schema with `toStandardJsonSchema()` from `@valibot/to-json-schema` before passing it as `outputSchema`.");return typeof e!="object"?e:Oa(e)}function Us(e,t={}){if(!e)return;const{forStructuredOutput:n=!1}=t;if(!n&&!jn(e)&&!pt(e))return e;const r=zE(e);return!r||typeof r!="object"||!n?r:br(r,r.required||[]).schema}var HE=class extends Error{name="StandardSchemaValidationError";issues;constructor(e){super(`Validation failed: ${e.map(t=>t.message||"Validation failed").join(", ")}`),this.issues=e}};function BE(e,t){if(!pt(e))return t;const n=e["~standard"].validate(t);if(n instanceof Promise)throw new Error("Schema validation returned a Promise. Use validateWithStandardSchema for async validation.");if(!n.issues)return n.value;throw new HE(n.issues)}var GE=new Set(["$schema","$id","$ref","$defs","type","properties","required","additionalProperties","items","oneOf","anyOf","allOf","enum","const","format","minimum","maximum","minLength","maxLength","pattern"]);function yd(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)&&(Object.getPrototypeOf(e)===Object.prototype||Object.getPrototypeOf(e)===null)}function ko(e){return yd(e)&&Object.keys(e).some(t=>GE.has(t))}function UE(e){return pt(e)||jn(e)||ko(e)}function qE(e){if(!yd(e))return!1;const t=Object.keys(e);return t.length>0&&t.every(n=>n==="approve"||n==="reject")&&t.every(n=>UE(e[n]))}function VE(e){const t={};for(const[n,r]of Object.entries(e))t[n]=r;return t}function hn(e){if(pt(e)){const t=jn(e)?VE(e["~standard"].jsonSchema.input({target:"draft-2020-12"})):void 0;return{source:e,validator:e,...t!==void 0&&{jsonSchema:t}}}if(ko(e))return{source:e,jsonSchema:e};throw new TypeError("Expected a supported SchemaInput.")}function Pa(e){const t={approved:{const:e.approved}},n=["approved"];return e.approved&&e.inputSchema&&(t.editedArgs=e.inputSchema.jsonSchema??{}),e.payload&&(t.payload=e.payload.jsonSchema??{},n.push("payload")),{type:"object",properties:t,required:n,additionalProperties:!1}}function KE(e,t){const n=t===void 0?null:hn(t);let r=null,s=null;if(e!==void 0)if(pt(e)||ko(e))r=hn(e),s=r;else if(qE(e))r=e.approve===void 0?null:hn(e.approve),s=e.reject===void 0?null:hn(e.reject);else throw new TypeError("approvalSchema must be a SchemaInput or a nonempty map containing approve or reject.");const o={oneOf:[Pa({approved:!0,payload:r,inputSchema:n}),Pa({approved:!1,payload:s,inputSchema:null})]},i=At(o),a=At({approve:r?.jsonSchema??null,reject:s?.jsonSchema??null});return{branches:{approve:r,reject:s},responseSchema:o,responseSchemaHash:Mt(i),approvalSchemaHash:Mt(a)}}function La(e){if(e===void 0)return Mt("undefined");const t=hn(e).jsonSchema??{standardValidator:"unserialized"};return Mt(At(t))}var Br="tanstack:interruptBinding",bd=Br;function xr(e){return e&&typeof e=="object"?e:null}function ye(e,t){return typeof e[t]=="string"?e[t]:void 0}function YE(e){const t=e.v;return t===void 0?!0:t===1}function xd(e){const t=xr(e.metadata),n=t?xr(t[bd]):null;if(!n||ye(n,"interruptId")!==e.id||!YE(n))return;const r=ye(n,"kind"),s=ye(n,"interruptId"),o=ye(n,"responseSchemaHash"),i=ye(n,"expiresAt");if(!s||o===""||i!==void 0&&!Number.isFinite(Date.parse(i)))return;const a=1;if(r==="generic"){const u=ye(n,"definitionId"),f=ye(n,"key"),d=n.batchIndex,p=ye(n,"payloadSchemaHash");return(u!==void 0||f!==void 0||d!==void 0||p!==void 0)&&(!u||!f||typeof d!="number"||!Number.isInteger(d)||d<0)?void 0:{v:a,kind:r,interruptId:s,...o?{responseSchemaHash:o}:{},...i?{expiresAt:i}:{},...u?{definitionId:u}:{},...f?{key:f}:{},...typeof d=="number"?{batchIndex:d}:{},...p?{payloadSchemaHash:p}:{}}}if(!o)return;const l=ye(n,"toolName"),c=ye(n,"toolCallId");if(!(!l||!c)){if(r==="client-tool-execution"){const u=ye(n,"outputSchemaHash");return u?{v:a,kind:r,interruptId:s,toolName:l,toolCallId:c,outputSchemaHash:u,responseSchemaHash:o,...i?{expiresAt:i}:{}}:void 0}if(r==="tool-approval"){const u=ye(n,"inputSchemaHash"),f=ye(n,"approvalSchemaHash");return!u||!f?void 0:{v:a,kind:r,interruptId:s,toolName:l,toolCallId:c,originalArgs:n.originalArgs,inputSchemaHash:u,approvalSchemaHash:f,responseSchemaHash:o,...i?{expiresAt:i}:{}}}}}function WE(e){const t=xd(e);if(!t)return;const n=xr(e.metadata),r=n?xr(n[bd]):null;if(!r)return;const s=ye(r,"interruptedRunId"),o=r.generation;if(!(!s||typeof o!="number"||!Number.isInteger(o)||o<0))return{...t,interruptedRunId:s,generation:o}}var XE="tanstack:interruptPayload";function QE(e,t){if(!jn(e))throw new TypeError(`${t} must be a Standard Schema with a JSON Schema converter.`);try{const n=e["~standard"].jsonSchema.input({target:"draft-07"});if(n===void 0)throw new TypeError("The exported schema is undefined.");if(typeof n=="function")throw new TypeError("The exported schema must not be a function.");if(Array.isArray(n))throw new TypeError("The exported schema must be a plain JSON object.");if(!n||typeof n!="object"||![Object.prototype,null].includes(Object.getPrototypeOf(n)))throw new TypeError("The exported schema must be a plain JSON object.");const r={};for(const[s,o]of Object.entries(n))s!=="$schema"&&(r[s]=o);return{json:r,canonicalJson:At(r)}}catch(n){throw new TypeError(`${t} could not export compatible JSON Schema: ${n instanceof Error?n.message:String(n)}`)}}function JE(e){return Mt(QE(e,"Interrupt schema").canonicalJson)}var ZE="tanstack:interruptContinuation";function eC(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function tC(e){return{[ZE]:e}}function nC(e){const t=xd(e);if(t?.kind!=="generic"||t.definitionId===void 0||t.key===void 0||t.batchIndex===void 0)return;const n=eC(e.metadata)?e.metadata:void 0,r=n!==void 0&&Object.prototype.hasOwnProperty.call(n,"tanstack:interruptPayload");return{v:1,definitionId:t.definitionId,key:t.key,batchIndex:t.batchIndex,reason:e.reason,message:e.message??"",...e.expiresAt!==void 0?{expiresAt:e.expiresAt}:{},...t.responseSchemaHash!==void 0?{responseSchemaHash:t.responseSchemaHash}:{},...t.payloadSchemaHash!==void 0?{payloadSchemaHash:t.payloadSchemaHash}:{},...r?{payload:n[XE]}:{}}}var rC=new Set(["text","image","audio","video","document"]);function sC(e){if(typeof e!="object"||e===null)return!1;const t=e;if(typeof t.type!="string"||!rC.has(t.type))return!1;if(t.type==="text")return typeof t.content=="string";const n=t.source;if(typeof n!="object"||n===null)return!1;const r=n;return typeof r.value!="string"?!1:r.type==="data"?typeof r.mimeType=="string":r.type==="url"}function qs(e){return Array.isArray(e)&&e.length>0&&e.every(sC)}function Oo(e){return typeof e=="string"||qs(e)?e:JSON.stringify(e)}function oC(e){const t=e?.metadata;return typeof t=="object"&&t!==null&&t.providerExecuted===!0?t:null}function Sd(e){return oC(e)!==null}function ds(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function iC(e){return e.type==="text"||e.type==="image"||e.type==="audio"||e.type==="video"||e.type==="document"}function aC(e){try{return JSON.stringify(e)??""}catch{return""}}function Da(e){return typeof e=="string"&&e!==""?e:void 0}function lC(e){if("encryptedValue"in e){const t=Da(e.encryptedValue);if(t!==void 0)return t}return Da(ae(e)?.signature)}function Id(e){return e.length===0?null:e.every(t=>t.type==="text")?e.map(t=>t.content).join("")||null:e}function wd(e){return e==null?"":typeof e=="string"?e:e.filter(t=>t.type==="text").map(t=>t.content).join("")}function cC(e){return Array.isArray(e)?e:wd(e)}function uC(e){if(!("role"in e)||e.role!=="tool")return e;const t=e,n=ae(t)?.toolResult;if(!ds(n)||"content"in n&&!qs(n.content))return e;const r={...e};if("id"in n||Reflect.deleteProperty(r,"id"),"createdAt"in n||Reflect.deleteProperty(r,"createdAt"),typeof n.id=="string"&&Reflect.set(r,"id",n.id),typeof n.createdAt=="string"){const o=Ae(n.createdAt);o&&Reflect.set(r,"createdAt",o)}qs(n.content)&&Reflect.set(r,"content",n.content);const s=Reflect.get(t,"metadata");if(ds(s)){const o=s.tanstack;if(ds(o)){const{toolResult:i,...a}=o,l={...s};Object.keys(a).length?l.tanstack=a:delete l.tanstack,Object.keys(l).length?Reflect.set(r,"metadata",l):Reflect.deleteProperty(r,"metadata")}}return r}function Ae(e){if(e instanceof Date)return Number.isNaN(e.getTime())?void 0:e;if(typeof e!="string")return;const t=new Date(e);return Number.isNaN(t.getTime())?void 0:t}function Ed(e){if(e.type!=="tool-result")return e;const t=Ae(e.createdAt),{createdAt:n,...r}=e;return t===void 0?r:{...r,createdAt:t}}function Cd(e){return Ae(ae(e)?.createdAt)}function Vs(e){const t=Ae(e.createdAt);return t!==void 0?{createdAt:t}:{}}function Gr(e){return e.name!==void 0?{name:e.name}:{}}function Ur(e){if(e==null||typeof e!="object"||Array.isArray(e)||!("type"in e)||e.type!=="ui-resource"||!("toolCallId"in e)||typeof e.toolCallId!="string"||!("toolName"in e)||typeof e.toolName!="string"||!("resource"in e)||e.resource==null||typeof e.resource!="object"||Array.isArray(e.resource))return!1;const t=e.resource;return"uri"in t&&typeof t.uri=="string"&&"mimeType"in t&&typeof t.mimeType=="string"}function $a(e){return`${e.toolCallId}\0${e.toolName}\0${e.resource.uri}`}function Nd(e,t){if(t.length===0)return e;const n=new Set(e.parts.filter(Ur).map(s=>$a(s))),r=t.filter(s=>!n.has($a(s)));return r.length===0?e:{...e,parts:[...e.parts,...r]}}function dC(e){const t=e.parts.filter(Ur),n=e.metadata??{},r=ae(e),s={};r?.model!==void 0&&(s.model=r.model),r?.signature!==void 0&&(s.signature=r.signature),t.length>0&&(s.uiResources=t);const o={...n};return Object.keys(s).length>0?o.tanstack=s:delete o.tanstack,Object.keys(o).length>0?o:void 0}function hC(e){return e.role==="system"?[]:e.role!=="assistant"?[fC(e)]:gC(e)}function fC(e){const t=[];for(const n of e.parts)iC(n)&&t.push(n);return{id:e.id,role:e.role,content:Id(t),...Gr(e),...Vs(e),...e.metadata!==void 0&&{metadata:e.metadata}}}function Fa(){return{contentParts:[],toolCalls:[]}}function pC(e){return e.state==="input-complete"||e.state==="complete"||e.state==="approval-requested"||e.state==="approval-responded"||e.state==="error"||e.output!==void 0}function gC(e){const t=[];let n=Fa(),r=[];const s=new Set,o={id:e.id,...Gr(e),...Vs(e)},i=dC(e),a={...o,...i!==void 0&&{metadata:i}};function l(c=!1){const u=Id(n.contentParts),f=u!==null,d=n.toolCalls.length>0,p=r.length>0;(c||f||d||p)&&(t.push({...a,role:"assistant",content:u,...d&&{toolCalls:n.toolCalls},...p&&{thinking:r},...n.structuredOutput&&{structuredOutput:n.structuredOutput}}),r=[]),n=Fa()}for(const c of e.parts)switch(c.type){case"text":case"image":case"audio":case"video":case"document":n.contentParts.push(c);break;case"tool-call":pC(c)&&n.toolCalls.push({id:c.id,type:"function",function:{name:c.name,arguments:c.arguments},...c.metadata!==void 0&&{metadata:c.metadata}});break;case"tool-result":l(t.length===0),(c.state==="complete"||c.state==="error")&&!s.has(c.toolCallId)&&(t.push({...c.id!==void 0&&{id:c.id},...Vs(c),role:"tool",content:c.content,toolCallId:c.toolCallId,...c.name!==void 0&&{name:c.name},...c.metadata!==void 0&&{metadata:c.metadata},...c.error!==void 0&&{error:c.error}}),s.add(c.toolCallId));break;case"thinking":(c.content||c.signature)&&(n.toolCalls.some(Sd)&&l(),r.push({content:c.content,...c.signature&&{signature:c.signature}}));break;case"structured-output":if(c.status==="complete"){const u=c.raw!==""?c.raw:c.data!==void 0?aC(c.data):"";u!==""&&(n.contentParts.push({type:"text",content:u}),n.structuredOutput=c)}}l();for(const c of e.parts)if(c.type==="tool-call"&&(c.output!==void 0&&!s.has(c.id)&&(t.push({role:"tool",content:Oo(c.output),toolCallId:c.id}),s.add(c.id)),c.output===void 0&&c.state==="approval-responded"&&c.approval?.approved!==void 0&&!s.has(c.id))){const u=c.approval.approved;t.push({role:"tool",content:JSON.stringify({approved:u,...u&&{pendingExecution:!0},message:u?"User approved this action":"User denied this action"}),toolCallId:c.id}),s.add(c.id)}return t.length===0&&t.push({...a,role:"assistant",content:null}),t}function Sr(e,t){const n=[],r=Ae(e.createdAt);if(e.role==="assistant"&&e.thinking?.length)for(const a of e.thinking)!a.content&&!a.signature||n.push({type:"thinking",content:a.content,...a.signature&&{signature:a.signature}});const s=e.structuredOutput??Rd(ae(e)?.structuredOutput);if(e.role==="assistant"&&s){if(typeof e.content=="string"&&e.content&&e.content!==s.raw){const a=s.raw,l=a!==""&&e.content.endsWith(a)?e.content.slice(0,-a.length):e.content;l&&n.push({type:"text",content:l})}n.push(s)}else if(e.role==="tool"&&e.toolCallId)n.push({type:"tool-result",toolCallId:e.toolCallId,content:cC(e.content),state:e.error===void 0?"complete":"error",...e.id!==void 0&&{id:e.id},...e.name!==void 0&&{name:e.name},...e.metadata!==void 0&&{metadata:e.metadata},...r!==void 0&&{createdAt:r},...e.error!==void 0&&{error:e.error}});else if(Array.isArray(e.content))for(const a of e.content)n.push(a);else{const a=wd(e.content);a&&n.push({type:"text",content:a})}if(e.toolCalls&&e.toolCalls.length>0)for(const a of e.toolCalls){let l;try{l=JSON.parse(a.function.arguments)}catch{l=void 0}n.push({type:"tool-call",id:a.id,name:a.function.name,arguments:a.function.arguments,state:"input-complete",...l!==void 0&&{input:l},...a.metadata!==void 0&&{metadata:a.metadata}})}const o={id:t||Et(),role:e.role==="tool"?"assistant":e.role,parts:n,...Gr(e),...r!==void 0&&{createdAt:r},...e.metadata!==void 0&&{metadata:e.metadata}},i=ae(e)?.uiResources;return Nd(o,Array.isArray(i)?i.filter(Ur):[])}function mC(e){if("parts"in e)return vt(e,{...e,id:e.id||Et()});const t=e.id||Et();switch(e.role){case"user":return vt(e,{id:t,role:"user",parts:vC(e.content)});case"assistant":{const n=ae(e),r=n?.toolCallMetadata,s=Rd(n?.structuredOutput),o=e.toolCalls?.map(i=>{const a=r!=null&&typeof r=="object"?r[i.id]:void 0;return a!==void 0?{...i,metadata:a}:i});return vt(e,Sr({role:"assistant",content:e.content??null,...Gr(e),...o&&{toolCalls:o},...s&&{structuredOutput:s}},t))}case"tool":{e=uC(e);const n=Ae("createdAt"in e?e.createdAt:void 0)??Cd(e);return vt(e,Sr({role:"tool",content:e.content,toolCallId:e.toolCallId,..."name"in e&&typeof e.name=="string"?{name:e.name}:{},..."id"in e&&typeof e.id=="string"?{id:e.id}:{},..."metadata"in e&&e.metadata!=null?{metadata:e.metadata}:{},...n!==void 0?{createdAt:n}:{},...e.error!==void 0&&{error:e.error}},t))}case"system":case"developer":return vt(e,{id:t,role:"system",parts:e.content?[{type:"text",content:e.content}]:[]});case"reasoning":{const n=lC(e),r=typeof e.content=="string"?e.content:"";return vt(e,{id:t,role:"assistant",parts:r||n!==void 0?[{type:"thinking",content:r,...n!==void 0?{signature:n}:{}}]:[]})}default:return vt(e,{id:t,role:"assistant",parts:[]})}}function vt(e,t){const n=t.parts.map(c=>Ed(c));n!==t.parts&&(t={...t,parts:n});const r="name"in e&&typeof e.name=="string"?e.name:void 0;let s=r!==void 0?{...t,name:r}:t,o;if("metadata"in e){const c=e.metadata;c!=null&&typeof c=="object"&&!Array.isArray(c)&&(o=c,s={...s,metadata:o})}const i=Ae(s.createdAt)??(o!==void 0?Cd(o):void 0);if(i!==void 0&&!Object.is(i,s.createdAt))s={...s,createdAt:i};else if(i===void 0&&s.createdAt!==void 0){const{createdAt:c,...u}=s;s=u}const a=ae(o)?.uiResources,l=Array.isArray(a)?a.filter(Ur):[];return Nd(s,l)}function Rd(e){if(!(e==null||e.status!=="streaming"&&e.status!=="complete"&&e.status!=="error"||typeof e.raw!="string"))return{type:"structured-output",status:e.status,raw:e.raw,...e.partial!==void 0?{partial:e.partial}:{},...e.data!==void 0?{data:e.data}:{},...e.reasoning?{reasoning:e.reasoning}:{},...e.errorMessage!==void 0?{errorMessage:e.errorMessage}:{}}}function vC(e){if(typeof e=="string")return e?[{type:"text",content:e}]:[];const t=[];for(const n of e)n.type==="text"?t.push({type:"text",content:n.text}):n.type!=="binary"&&t.push(n);return t}function yC(e,t){if("parts"in e){const n=e.parts.map(r=>Ed(r));return{...e,parts:n,id:e.id||t(),createdAt:Ae(e.createdAt)??new Date}}else return{...Sr(e,t()),createdAt:Ae(e.createdAt)??new Date}}function Et(){return`msg-${Date.now()}-${Math.random().toString(36).substring(7)}`}function za(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function hs(e,t,n,r,s=!1){const o=za(e)?e:{},i=za(o.tanstack)?{...o.tanstack}:{};s&&delete i.uiResources;const a=Ae(t),l={...n!==void 0?{id:n}:{},...a&&{createdAt:a.toISOString()},...Array.isArray(r)&&{content:r}},c={...o,tanstack:{...i,toolResult:l}};return Object.keys(c).length?c:void 0}function bC(e,t){const n=[],r=new Set(e.flatMap(i=>"id"in i&&i.id&&i.role!=="tool"?[i.id]:[])),s=t?.includeSnapshotStructuredOutput??!1,o=new Set;for(const i of e)i.role==="assistant"&&i.id!==void 0&&o.add(i.id);for(const i of e){if(!("parts"in i)&&i.role==="tool"&&i.toolCallId){const d=ps(RC(i.id,i.toolCallId,o),r),p=hs(i.metadata,i.createdAt,i.id,i.content);n.push({role:"tool",id:d,...i.name!==void 0&&{name:i.name},toolCallId:i.toolCallId,content:typeof i.content=="string"?i.content:JSON.stringify(i.content),...i.error!==void 0&&{error:i.error},...p!==void 0&&{metadata:p}});continue}const a="parts"in i?i:Sr(i,i.id),l=a.parts;if(r.add(a.id),i.role==="system"){n.push(fs(a,"system",{content:l.length>0?Ks(l):i.content??""},l,s));continue}if(i.role==="user"){n.push(fs(a,"user",{content:l.length>0?wC(l):i.content??""},l,s));continue}for(const d of l)if(d.type==="thinking"){const p={role:"reasoning",id:_d(NC(a.id,d),r),content:d.content};d.signature&&(p.encryptedValue=d.signature),n.push(p)}const c=Ks(l),u=CC(l);n.push(fs(a,"assistant",{...c!==""&&{content:c},...u&&{toolCalls:u}},l,s));const f=new Set(l.flatMap(d=>d.type==="tool-result"?[d.toolCallId]:[]));for(const d of l)if(d.type==="tool-result"){const p=ps(d.id??Ys(d.toolCallId),r),g=hs(d.metadata,d.createdAt,d.id,d.content,!0);n.push({role:"tool",id:p,toolCallId:d.toolCallId,...d.name!==void 0&&{name:d.name},content:typeof d.content=="string"?d.content:JSON.stringify(d.content),...d.error!==void 0&&{error:d.error},...g!==void 0&&{metadata:g}})}else if(d.type==="tool-call"){const p=d.approval?.approved;if(f.has(d.id)||d.output===void 0&&(d.state!=="approval-responded"||p===void 0))continue;const g=d.output!==void 0?Oo(d.output):JSON.stringify({approved:p,...p&&{pendingExecution:!0},message:p?"User approved this action":"User denied this action"}),y=typeof g=="string"?g:JSON.stringify(g);n.push({role:"tool",id:ps(Ys(d.id),r),toolCallId:d.id,content:y,metadata:hs(void 0,void 0,void 0,g)})}}return n}function fs(e,t,n,r,s){const o=xC(e,r,s),i={id:e.id,...e.name!==void 0&&{name:e.name},...o!==void 0&&{metadata:o}};return t==="system"?{...i,role:t,content:String(n.content??"")}:t==="user"?{...i,role:t,content:n.content??""}:{...i,role:t,...typeof n.content=="string"&&{content:n.content},...n.toolCalls!==void 0&&{toolCalls:n.toolCalls}}}function xC(e,t,n){const r={...e.metadata??{}},s=ae(e),o={};s?.model!==void 0&&(o.model=s.model),s?.signature!==void 0&&(o.signature=s.signature);const i=Ae(e.createdAt);i!==void 0&&(o.createdAt=i.toISOString());const a=SC(t,n);a&&(o.structuredOutput=a);const l={};for(const u of t)u.type==="tool-call"&&u.metadata!==void 0&&(l[u.id]=u.metadata);Object.keys(l).length>0&&(o.toolCallMetadata=l);const c=t.filter(u=>u.type==="ui-resource");return c.length>0&&(o.uiResources=c),Object.keys(o).length>0?r.tanstack=o:delete r.tanstack,Object.keys(r).length>0?r:void 0}function SC(e,t){for(const n of e)if(n.type==="structured-output"&&(t||n.status!=="complete"))return IC(n,t)}function IC(e,t){return{status:e.status,raw:e.raw,...t&&e.partial!==void 0?{partial:e.partial}:{},...t&&e.data!==void 0?{data:e.data}:{},...t&&e.reasoning?{reasoning:e.reasoning}:{},...e.errorMessage!==void 0&&{errorMessage:e.errorMessage}}}function Ks(e){const t=[];for(const n of e)n.type==="text"?t.push(n.content):n.type==="structured-output"&&n.status==="complete"&&n.raw!==""&&t.push(n.raw);return t.join("")}function wC(e){if(!e.some(n=>n.type==="image"||n.type==="audio"||n.type==="video"||n.type==="document"))return Ks(e);const t=[];for(const n of e)n.type==="text"?t.push({type:"text",text:n.content}):(n.type==="image"||n.type==="audio"||n.type==="video"||n.type==="document")&&t.push(n);return t}function EC(e){if(e==null||typeof e!="object"||Array.isArray(e)||!("thoughtSignature"in e))return;const t=e.thoughtSignature;return typeof t=="string"&&t!==""?t:void 0}function CC(e){const t=[];for(const n of e)if(n.type==="tool-call"){const r=EC(n.metadata);t.push({id:n.id,type:"function",function:{name:n.name,arguments:n.arguments},...r!==void 0?{encryptedValue:r}:{}})}return t.length>0?t:void 0}function NC(e,t){return`${e}-reasoning-${t.id??_C(t.content)}`}function Ys(e){return`tool-${e}`}function ps(e,t){return _d(e,t)}function _d(e,t){if(!t.has(e))return t.add(e),e;let n=2;for(;t.has(`${e}-${n}`);)n++;const r=`${e}-${n}`;return t.add(r),r}function RC(e,t,n){const r=Ys(t);return e===void 0||n.has(e)?r:e}function _C(e){let t=0;for(let n=0;n<e.length;n++)t=t*31+e.charCodeAt(n)|0;return Math.abs(t).toString(36)}function TC(e){if((e.type===qn.RUN_FINISHED||e.type===qn.RUN_ERROR)&&(Array.isArray(e.usage)||fd(e.usage))){const t=jE(e.usage,ae(e)?.usage);t!==void 0&&(e.usage=t)}if(e.type===qn.TOOL_CALL_START&&e.toolName===void 0&&e.toolCallName&&(e.toolName=e.toolCallName),e.type===qn.TOOL_CALL_END&&e.input===void 0){const t=ae(e)?.input;t!==void 0&&(e.input=t)}return e}function Td(e){TC(e);const t=ae(e),n=e;if(t==null)return n;for(const[r,s]of Object.entries(t))r==="usage"||r==="interruptErrors"||n[r]===void 0&&s!==void 0&&(n[r]=s);return t.interruptErrors!==void 0&&(n["tanstack:interruptErrors"]=t.interruptErrors),n}function Ha(e){return typeof e=="string"&&e!==""?e:void 0}function Ad(e){if("runId"in e){const t=Ha(e.runId);if(t!==void 0)return t}return Ha(ae(e)?.runId)}var Ba=bl((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.Allow=e.ALL=e.COLLECTION=e.ATOM=e.SPECIAL=e.INF=e._INFINITY=e.INFINITY=e.NAN=e.BOOL=e.NULL=e.OBJ=e.ARR=e.NUM=e.STR=void 0,e.STR=1,e.NUM=2,e.ARR=4,e.OBJ=8,e.NULL=16,e.BOOL=32,e.NAN=64,e.INFINITY=128,e._INFINITY=256,e.INF=e.INFINITY|e._INFINITY,e.SPECIAL=e.NULL|e.BOOL|e.INF|e.NAN,e.ATOM=e.STR|e.NUM|e.SPECIAL,e.COLLECTION=e.ARR|e.OBJ,e.ALL=e.ATOM|e.COLLECTION,e.Allow={STR:e.STR,NUM:e.NUM,ARR:e.ARR,OBJ:e.OBJ,NULL:e.NULL,BOOL:e.BOOL,NAN:e.NAN,INFINITY:e.INFINITY,_INFINITY:e._INFINITY,INF:e.INF,SPECIAL:e.SPECIAL,ATOM:e.ATOM,COLLECTION:e.COLLECTION,ALL:e.ALL},e.default=e.Allow})),AC=bl((e=>{var t=e&&e.__createBinding||(Object.create?(function(c,u,f,d){d===void 0&&(d=f);var p=Object.getOwnPropertyDescriptor(u,f);(!p||("get"in p?!u.__esModule:p.writable||p.configurable))&&(p={enumerable:!0,get:function(){return u[f]}}),Object.defineProperty(c,d,p)}):(function(c,u,f,d){d===void 0&&(d=f),c[d]=u[f]})),n=e&&e.__exportStar||function(c,u){for(var f in c)f!=="default"&&!Object.prototype.hasOwnProperty.call(u,f)&&t(u,c,f)};Object.defineProperty(e,"__esModule",{value:!0}),e.Allow=e.MalformedJSON=e.PartialJSON=e.parseJSON=e.parse=void 0;var r=Ba();Object.defineProperty(e,"Allow",{enumerable:!0,get:function(){return r.Allow}}),n(Ba(),e);var s=class extends Error{};e.PartialJSON=s;var o=class extends Error{};e.MalformedJSON=o;function i(c,u=r.Allow.ALL){if(typeof c!="string")throw new TypeError(`expecting str, got ${typeof c}`);if(!c.trim())throw new Error(`${c} is empty`);return a(c.trim(),u)}e.parseJSON=i;var a=(c,u)=>{const f=c.length;let d=0;const p=E=>{throw new s(`${E} at position ${d}`)},g=E=>{throw new o(`${E} at position ${d}`)},y=()=>(b(),d>=f&&p("Unexpected end of input"),c[d]==='"'?x():c[d]==="{"?v():c[d]==="["?I():c.substring(d,d+4)==="null"||r.Allow.NULL&u&&f-d<4&&"null".startsWith(c.substring(d))?(d+=4,null):c.substring(d,d+4)==="true"||r.Allow.BOOL&u&&f-d<4&&"true".startsWith(c.substring(d))?(d+=4,!0):c.substring(d,d+5)==="false"||r.Allow.BOOL&u&&f-d<5&&"false".startsWith(c.substring(d))?(d+=5,!1):c.substring(d,d+8)==="Infinity"||r.Allow.INFINITY&u&&f-d<8&&"Infinity".startsWith(c.substring(d))?(d+=8,1/0):c.substring(d,d+9)==="-Infinity"||r.Allow._INFINITY&u&&1<f-d&&f-d<9&&"-Infinity".startsWith(c.substring(d))?(d+=9,-1/0):c.substring(d,d+3)==="NaN"||r.Allow.NAN&u&&f-d<3&&"NaN".startsWith(c.substring(d))?(d+=3,NaN):m()),x=()=>{const E=d;let N=!1;for(d++;d<f&&(c[d]!=='"'||N&&c[d-1]==="\\");)N=c[d]==="\\"?!N:!1,d++;if(c.charAt(d)=='"')try{return JSON.parse(c.substring(E,++d-Number(N)))}catch(R){g(String(R))}else if(r.Allow.STR&u)try{return JSON.parse(c.substring(E,d-Number(N))+'"')}catch{return JSON.parse(c.substring(E,c.lastIndexOf("\\"))+'"')}p("Unterminated string literal")},v=()=>{d++,b();const E={};try{for(;c[d]!=="}";){if(b(),d>=f&&r.Allow.OBJ&u)return E;const N=x();b(),d++;try{E[N]=y()}catch(R){if(r.Allow.OBJ&u)return E;throw R}b(),c[d]===","&&d++}}catch{if(r.Allow.OBJ&u)return E;p("Expected '}' at end of object")}return d++,E},I=()=>{d++;const E=[];try{for(;c[d]!=="]";)E.push(y()),b(),c[d]===","&&d++}catch{if(r.Allow.ARR&u)return E;p("Expected ']' at end of array")}return d++,E},m=()=>{if(d===0){c==="-"&&g("Not sure what '-' is");try{return JSON.parse(c)}catch(N){if(r.Allow.NUM&u)try{return JSON.parse(c.substring(0,c.lastIndexOf("e")))}catch{}g(String(N))}}const E=d;for(c[d]==="-"&&d++;c[d]&&",]}".indexOf(c[d])===-1;)d++;d==f&&!(r.Allow.NUM&u)&&p("Unterminated number literal");try{return JSON.parse(c.substring(E,d))}catch{c.substring(E,d)==="-"&&p("Not sure what '-' is");try{return JSON.parse(c.substring(E,c.lastIndexOf("e")))}catch(R){g(String(R))}}},b=()=>{for(;d<f&&`
|
|
8
|
+
M${k.x},${k.y}h${k.width}v${k.height}h${-k.width}z`,fillRule:"evenodd",pointerEvents:"none"})]})})}od.displayName="MiniMap";var Kw=(0,C.memo)(od),Yw=e=>t=>e?`${Math.max(1/t.transform[2],1)}`:void 0,Ww={[Wt.Line]:"right",[Wt.Handle]:"bottom-right"};function Xw({nodeId:e,position:t,variant:n=Wt.Handle,className:r,style:s=void 0,children:o,color:i,minWidth:a=10,minHeight:l=10,maxWidth:c=Number.MAX_VALUE,maxHeight:u=Number.MAX_VALUE,keepAspectRatio:f=!1,resizeDirection:d,autoScale:p=!0,shouldResize:g,onResizeStart:y,onResize:x,onResizeEnd:v}){const I=Pu(),m=typeof e=="string"?e:I,b=oe(),E=(0,C.useRef)(null),N=n===Wt.Handle,R=re((0,C.useCallback)(Yw(N&&p),[N,p]),le),A=(0,C.useRef)(null),k=t??Ww[n];(0,C.useEffect)(()=>{if(!(!E.current||!m))return A.current||(A.current=wS({domNode:E.current,nodeId:m,getStoreItems:()=>{const{nodeLookup:_,transform:M,snapGrid:O,snapToGrid:S,nodeOrigin:w,domNode:T}=b.getState();return{nodeLookup:_,transform:M,snapGrid:O,snapToGrid:S,nodeOrigin:w,paneDomNode:T}},onChange:(_,M)=>{const{triggerNodeChanges:O,nodeLookup:S,parentLookup:w,nodeOrigin:T}=b.getState(),j=[],D={x:_.x,y:_.y},P=S.get(m);if(P&&P.expandParent&&P.parentId){const F=P.origin??T,z=_.width??P.measured.width??0,B=_.height??P.measured.height??0,K={id:P.id,parentId:P.parentId,rect:{width:z,height:B,...ru({x:_.x??P.position.x,y:_.y??P.position.y},{width:z,height:B},P.parentId,S,F)}},H=To([K],S,w,T);j.push(...H),D.x=_.x?Math.max(F[0]*z,_.x):void 0,D.y=_.y?Math.max(F[1]*B,_.y):void 0}if(D.x!==void 0&&D.y!==void 0){const F={id:m,type:"position",position:{...D}};j.push(F)}if(_.width!==void 0&&_.height!==void 0){const F={id:m,type:"dimensions",resizing:!0,setAttributes:d?d==="horizontal"?"width":"height":!0,dimensions:{width:_.width,height:_.height}};j.push(F)}for(const F of M){const z={...F,type:"position"};j.push(z)}O(j)},onEnd:({width:_,height:M})=>{const O={id:m,type:"dimensions",resizing:!1,dimensions:{width:_,height:M}};b.getState().triggerNodeChanges([O])}})),A.current.update({controlPosition:k,boundaries:{minWidth:a,minHeight:l,maxWidth:c,maxHeight:u},keepAspectRatio:f,resizeDirection:d,onResizeStart:y,onResize:x,onResizeEnd:v,shouldResize:g}),()=>{A.current?.destroy()}},[k,a,l,c,u,f,y,x,v,g]);const L=k.split("-");return(0,h.jsx)("div",{className:ue(["react-flow__resize-control","nodrag",...L,n,r]),ref:E,style:{...s,scale:R,...i&&{[N?"backgroundColor":"borderColor"]:i}},children:o})}var j_=(0,C.memo)(Xw),Qw=()=>(0,h.jsxs)("div",{className:"absolute bottom-3 left-3 z-10 flex items-center gap-3 rounded-md border bg-card/95 px-3 py-2 text-xs text-muted-foreground shadow-sm",children:[(0,h.jsxs)("span",{className:"flex items-center gap-1.5",children:[(0,h.jsx)(eo,{className:"size-3.5 text-amber-500"})," Primary key"]}),(0,h.jsxs)("span",{className:"flex items-center gap-1.5",children:[(0,h.jsx)(wl,{className:"size-3.5 text-sky-500"})," Foreign key"]}),(0,h.jsxs)("span",{className:"flex items-center gap-1.5",children:[(0,h.jsx)(Is,{className:"size-3 fill-current"})," Required"]}),(0,h.jsxs)("span",{className:"flex items-center gap-1.5",children:[(0,h.jsx)(Is,{className:"size-3"})," Nullable"]})]});var Jw=({column:e})=>(0,h.jsxs)("span",{className:"flex w-8 shrink-0 items-center gap-1",children:[e.isPrimaryKey?(0,h.jsx)(eo,{"aria-label":"Primary key",className:"size-3.5 text-amber-500"}):e.isForeignKey?(0,h.jsx)(wl,{"aria-label":"Foreign key",className:"size-3.5 text-sky-500"}):(0,h.jsx)("span",{className:"size-3.5"}),(0,h.jsx)(Is,{"aria-label":e.isNullable?"Nullable":"Required",className:me("size-3 text-muted-foreground",!e.isNullable&&"fill-current")})]}),Ca="size-1! min-h-0! min-w-0! border-0! bg-transparent!",Zw=({data:e})=>{const{table:t,active:n,dimmed:r,highlightedColumns:s}=e;return(0,h.jsxs)("div",{"data-active":n||void 0,"data-dimmed":r||void 0,className:me("group overflow-hidden rounded-md border bg-card text-card-foreground shadow-sm transition-opacity",n&&"border-primary ring-2 ring-primary/30",r&&"opacity-25"),children:[(0,h.jsxs)("div",{className:"flex items-center gap-2 border-b bg-muted/60 px-3 text-sm font-medium",style:{height:36},children:[(0,h.jsx)(Ss,{className:"size-4 shrink-0 text-muted-foreground"}),(0,h.jsxs)("span",{className:"flex-1 truncate",children:[t.schemaName&&t.schemaName!=="public"&&(0,h.jsxs)("span",{className:"text-muted-foreground",children:[t.schemaName,"."]}),t.tableName]}),(0,h.jsx)(wr,{to:"/table/$table",params:{table:t.tableName},"aria-label":`Open ${t.tableName}`,title:"Open table",className:"nodrag rounded p-0.5 text-muted-foreground opacity-0 transition-opacity hover:bg-muted hover:text-foreground focus-visible:opacity-100 group-hover:opacity-100",onClick:o=>o.stopPropagation(),children:(0,h.jsx)(sf,{className:"size-4"})})]}),t.columns.map(o=>(0,h.jsxs)("div",{className:me("relative flex items-center gap-2 px-3 text-xs",s.has(`${t.id}.${o.columnName}`)&&"bg-primary/10"),style:{height:28},children:[(0,h.jsx)(Xt,{type:"target",position:Y.Left,id:`${o.columnName}-l`,isConnectable:!1,className:Ca}),(0,h.jsx)(Jw,{column:o}),(0,h.jsx)("span",{className:"truncate font-mono",children:o.columnName}),(0,h.jsx)("span",{className:"ml-auto shrink-0 font-mono text-muted-foreground",children:o.dataTypeLabel}),(0,h.jsx)(Xt,{type:"source",position:Y.Right,id:`${o.columnName}-r`,isConnectable:!1,className:Ca})]},o.columnName))]})},eE={table:Zw},tE=({tables:e,edges:t})=>{const n=e.map(s=>({id:s.id,width:G0(s),height:36+s.columns.length*28+2})),r=H0(n,t);return e.map((s,o)=>({id:s.id,type:"table",position:r.get(s.id)??{x:0,y:0},width:n[o].width,data:{table:s,active:!1,dimmed:!1,highlightedColumns:new Set}}))},nE=(e,t,n)=>({id:e.id,source:e.target,sourceHandle:`${e.targetColumn}-r`,target:e.source,targetHandle:`${e.sourceColumn}-l`,type:"smoothstep",animated:t,zIndex:t?1:0,style:{stroke:t?"var(--primary)":"var(--muted-foreground)",strokeWidth:t?2:1.25,opacity:n?.15:t?1:.55}}),rE=({tables:e,edges:t})=>{const{isDark:n}=so(),r=Zs(),{fitView:s}=Fr(),o=Sw(),[i,a]=ws(ct.ACTIVE_TABLE,{defaultValue:""}),[l]=ws(ct.SIDEBAR_SEARCH,{defaultValue:""}),[c,u]=(0,C.useState)(null),f=(0,C.useMemo)(()=>tE({tables:e,edges:t}),[e,t]),[d,p,g]=bw(f),y=(0,C.useRef)(!1);(0,C.useEffect)(()=>{p(f),y.current=!1},[f,p]);const x=(0,C.useRef)(!1);(0,C.useEffect)(()=>{o&&(i&&!x.current?s({nodes:[{id:i}],duration:400,maxZoom:1.1}):y.current||s(),y.current=!0,x.current=!1)},[i,o,s]);const v=R=>{x.current=!0,a(R||null)},I=c??(i||null),m=I?B0(t,I):null,b=l.trim().toLowerCase(),E=d.map(R=>({...R,data:{...R.data,active:R.id===i,dimmed:m!==null&&!m.tables.has(R.id)||b!==""&&!R.data.table.tableName.toLowerCase().includes(b),highlightedColumns:m?.columns??new Set}})),N=t.map(R=>{const A=m?.edgeIds.has(R.id)??!1;return nE(R,A,m!==null&&!A)});return(0,h.jsxs)(yw,{nodes:E,edges:N,nodeTypes:eE,onNodesChange:g,onNodeMouseEnter:(R,A)=>u(A.id),onNodeMouseLeave:()=>u(null),onNodeClick:(R,A)=>v(A.id===i?"":A.id),onNodeDoubleClick:(R,A)=>{r({to:"/table/$table",params:{table:A.data.table.tableName},search:{[ct.TABLE_SCHEMA]:A.data.table.schemaName}})},onPaneClick:()=>v(""),nodesConnectable:!1,colorMode:n?"dark":"light",minZoom:.1,maxZoom:2,proOptions:{hideAttribution:!0},className:"bg-background!",children:[(0,h.jsx)(Nw,{variant:et.Dots,gap:18,size:1.5}),(0,h.jsx)(Ow,{position:"top-right",showInteractive:!1,children:(0,h.jsx)(dn,{title:"Reset layout","aria-label":"Reset layout",onClick:()=>{p(f),s({duration:300})},children:(0,h.jsx)(jf,{})})}),(0,h.jsx)(Kw,{pannable:!0,zoomable:!0}),(0,h.jsx)(Qw,{})]})},sE=e=>(0,h.jsx)(nd,{children:(0,h.jsx)(rE,{...e})}),oE=()=>{const{selectedDatabase:e}=ft(),[t]=ws(ct.ACTIVE_SCHEMA,{defaultValue:"all"}),{data:n,isLoading:r,error:s}=$t({queryKey:Ns.graph(e),queryFn:()=>Rp(e),select:o=>o.data.data,enabled:!!e});return{...(0,C.useMemo)(()=>z0(n??[],t),[n,t]),isLoading:r,error:s}},P_=()=>{const{tables:e,edges:t,isLoading:n,error:r}=oE();return n?(0,h.jsx)("div",{className:"flex h-full items-center justify-center",children:(0,h.jsx)(to,{size:"size-6"})}):r?(0,h.jsxs)("div",{className:"flex h-full items-center justify-center text-sm text-muted-foreground",children:["Couldn't load the schema: ",r.message]}):e.length===0?(0,h.jsx)("div",{className:"flex h-full items-center justify-center text-sm text-muted-foreground",children:"This database has no tables yet."}):(0,h.jsxs)("div",{className:"relative h-full w-full",children:[(0,h.jsx)(sE,{tables:e,edges:t}),t.length===0&&(0,h.jsx)("p",{className:"pointer-events-none absolute top-3 left-1/2 z-10 -translate-x-1/2 rounded-md border bg-card px-3 py-1.5 text-xs text-muted-foreground shadow-sm",children:"This database has no foreign keys."})]})},Na="Select a table first",iE="Not available for schemaless databases",aE=()=>{const{pathname:e}=Sl(),t=Xh({strict:!1}).table??null,{dbType:n}=ft(),r=Fp(),s=ip(),o=e.startsWith("/table/"),i=e.startsWith("/schema/");return{pathname:e,activeTable:t,dbType:n,isKeyValue:r?.dataModel==="key-value",isSchemaless:s,canCreateTable:!s,canEditRecords:!!t&&o,recordsHint:t?"Open the table data screen first":Na,hasIndexes:!!r?.indexes,canEditSchema:!!t&&i&&!s,schemaHint:s?iE:t?"Open the table schema screen first":Na}},lE=()=>{const{openOverlay:e,closeOverlay:t,isOverlayOpen:n}=ut(),[r,s]=(0,C.useState)("all"),[o,i]=(0,C.useState)(""),a=(0,C.useRef)(null),l=n("command-palette.root"),c=(0,C.useCallback)(y=>{if(y){e("command-palette.root");return}t("command-palette.root"),s("all"),i("")},[e,t]),u=(0,C.useCallback)(y=>{c(!1),y()},[c]),f=(0,C.useCallback)(()=>{s("tables"),i(""),setTimeout(()=>a.current?.focus(),0)},[]),d=(0,C.useCallback)(()=>{s("all"),i(""),setTimeout(()=>a.current?.focus(),0)},[]),p=(0,C.useCallback)(y=>{if(r==="all"&&y.startsWith(">")){f(),i(y.slice(1));return}if(r==="all"&&(y.toLowerCase()==="table "||y.toLowerCase()==="tables ")){f();return}i(y)},[r,f]),g=(0,C.useCallback)(y=>{y.key==="Backspace"&&o===""&&r==="tables"&&(y.preventDefault(),d())},[o,r,d]);return Pl("ctrl+k, meta+k",y=>{y.target?.closest?.(".monaco-editor")||(y.preventDefault(),c(!ut.getState().isOverlayOpen("command-palette.root")))},{enableOnFormTags:!0,enableOnContentEditable:!0}),{open:l,mode:r,inputValue:o,inputRef:a,handleOpenChange:c,handleAction:u,handleInputChange:p,handleKeyDown:g,switchToAllMode:d,switchToTablesMode:f}};function cE(){const e=Zs(),t=up(),{openOverlay:n}=ut(),{toggleSidebarOpen:r,toggleSidebarPinned:s,sidebar:o}=Bl(),{toggleTheme:i,isDark:a}=so(),{tablesList:l,isLoadingTablesList:c,errorTablesList:u}=Ll(),{exportFile:f,isExportingFile:d}=yp(),{copyTableSchema:p,isCopyingSchema:g}=ng(),{requestAssistant:y}=tg(),{open:x,mode:v,inputValue:I,inputRef:m,handleOpenChange:b,handleAction:E,handleInputChange:N,handleKeyDown:R,switchToAllMode:A,switchToTablesMode:k}=lE(),{pathname:L,activeTable:_,dbType:M,isKeyValue:O,isSchemaless:S,canCreateTable:w,canEditRecords:T,recordsHint:j,canEditSchema:D,schemaHint:P,hasIndexes:F}=aE(),z=typeof navigator<"u"&&/(Mac|iPhone|iPod|iPad)/i.test(navigator.platform),B=(H,W)=>{E(()=>{M&&Cr.capture("table_viewed",{db_type:M}),e({to:"/table/$table",params:{table:H},search:{[ct.TABLE_SCHEMA]:W}})})},K=H=>{E(()=>{y(H),n("chat.assistant")})};return(0,h.jsxs)(Qf,{open:x,onOpenChange:b,children:[(0,h.jsxs)("div",{className:"flex items-center border-b border-input px-2 gap-2 w-full",children:[v==="tables"&&(0,h.jsxs)("button",{type:"button",onClick:A,"aria-label":"Back to all commands",className:"flex items-center gap-1.5 h-8! rounded-md bg-primary/10 px-2.5 py-1 text-xs font-medium text-primary transition-all hover:bg-primary/20 shrink-0",children:[(0,h.jsx)(Ss,{className:"size-3.5"}),(0,h.jsx)("span",{children:"Tables"}),(0,h.jsx)(Pf,{className:"size-3 opacity-60"})]}),(0,h.jsx)(kl,{ref:m,placeholder:v==="all"?"Search commands... (type > for tables)":"Search tables...",value:I,onValueChange:N,onKeyDown:R,className:"border-0 px-0"})]}),(0,h.jsxs)(Rl,{children:[(0,h.jsx)(Nl,{children:v==="tables"?"No tables found.":"No results found."}),v==="tables"&&!c&&!u&&l&&(0,h.jsx)(ot,{heading:"Tables",children:l.length===0?(0,h.jsx)("div",{className:"py-6 text-center text-sm text-muted-foreground",children:"No tables in database"}):l.map(H=>(0,h.jsxs)(se,{value:ln(H),onSelect:()=>B(H.tableName,H.schemaName),children:[(0,h.jsx)(Yr,{className:"mr-2 size-4 text-primary"}),(0,h.jsxs)("div",{className:"flex flex-1 items-center justify-between",children:[(0,h.jsx)("span",{className:"font-medium",children:H.tableName}),(0,h.jsxs)("span",{className:"text-xs text-muted-foreground",children:[H.rowCountEstimated&&"~",H.rowCount," ",H.rowCount===1?"row":"rows"]})]})]},ln(H)))}),v==="tables"&&c&&(0,h.jsx)("div",{className:"py-6 text-center text-sm text-muted-foreground",children:"Loading tables..."}),v==="tables"&&u&&(0,h.jsx)("div",{className:"py-6 text-center text-sm text-muted-foreground",children:"Failed to load tables."}),v==="all"&&(0,h.jsxs)(h.Fragment,{children:[!O&&(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(ot,{heading:"Quick Access",children:(0,h.jsxs)(se,{onSelect:k,keywords:["tables",">","go to table"],className:"group",children:[(0,h.jsx)(El,{className:"mr-2 size-4 text-primary"}),(0,h.jsxs)("div",{className:"flex flex-1 items-center justify-between",children:[(0,h.jsxs)("div",{className:"flex flex-col",children:[(0,h.jsx)("span",{children:"Search Tables"}),(0,h.jsx)("span",{className:"text-xs text-muted-foreground",children:"Navigate to any table quickly"})]}),(0,h.jsx)(tp,{children:">"})]})]})}),(0,h.jsx)(tn,{})]}),(0,h.jsxs)(ot,{heading:"Go to",children:[!O&&(0,h.jsxs)(se,{onSelect:()=>E(()=>e({to:"/"})),keywords:["go","navigate","home","tables"],children:[(0,h.jsx)(Ss,{className:"mr-2 size-4"}),(0,h.jsxs)("div",{className:"flex flex-col",children:[(0,h.jsx)("span",{children:"Go to Tables"}),(0,h.jsx)("span",{className:"text-xs text-muted-foreground",children:"Open the tables overview"})]})]}),(0,h.jsxs)(se,{onSelect:()=>E(()=>e({to:"/runner"})),keywords:["go","navigate","sql","query","runner","editor"],children:[(0,h.jsx)(wf,{className:"mr-2 size-4"}),(0,h.jsxs)("div",{className:"flex flex-col",children:[(0,h.jsx)("span",{children:"Go to Query Runner"}),(0,h.jsx)("span",{className:"text-xs text-muted-foreground",children:"Write and execute queries"})]})]}),!O&&(0,h.jsxs)(se,{disabled:!_||S,onSelect:()=>{if(!_||S)return;const H=_;E(()=>e({to:"/schema/$table",params:{table:H},search:{[ct.TABLE_SCHEMA]:t}}))},keywords:["go","navigate","schema","columns"],children:[(0,h.jsx)(df,{className:"mr-2 size-4"}),(0,h.jsxs)("div",{className:"flex flex-col",children:[(0,h.jsx)("span",{children:"Go to Schema"}),(0,h.jsx)("span",{className:"text-xs text-muted-foreground",children:S?"Not available for schemaless databases":_?`View the schema of ${_}`:"Select a table first"})]})]}),F&&(0,h.jsxs)(se,{disabled:!_,onSelect:()=>{if(!_)return;const H=_;E(()=>e({to:"/indexes/$table",params:{table:H},search:{[ct.TABLE_SCHEMA]:t}}))},keywords:["go","navigate","indexes","index"],children:[(0,h.jsx)(Ko,{className:"mr-2 size-4"}),(0,h.jsxs)("div",{className:"flex flex-col",children:[(0,h.jsx)("span",{children:"Go to Indexes"}),(0,h.jsx)("span",{className:"text-xs text-muted-foreground",children:_?`View the indexes of ${_}`:"Select a table first"})]})]}),O&&(0,h.jsxs)(se,{onSelect:()=>E(()=>e({to:"/browser"})),keywords:["go","navigate","redis","browser","keys"],children:[(0,h.jsx)(Yr,{className:"mr-2 size-4"}),(0,h.jsxs)("div",{className:"flex flex-col",children:[(0,h.jsx)("span",{children:"Go to Redis Browser"}),(0,h.jsx)("span",{className:"text-xs text-muted-foreground",children:"Browse keys across logical databases"})]})]})]}),(0,h.jsx)(tn,{}),(0,h.jsxs)(ot,{heading:"AI Assistant",children:[(0,h.jsxs)(se,{onSelect:()=>E(()=>n("chat.assistant")),keywords:["ai","assistant","chat","help"],children:[(0,h.jsx)(cf,{className:"mr-2 size-4"}),(0,h.jsxs)("div",{className:"flex flex-col",children:[(0,h.jsx)("span",{children:"Chat with AI Assistant"}),(0,h.jsx)("span",{className:"text-xs text-muted-foreground",children:"Ask questions about your database"})]})]}),(0,h.jsxs)(se,{onSelect:()=>K("Generate a query for this database. Ask me for the goal if it is unclear."),keywords:["ai","generate","sql","query","write"],children:[(0,h.jsx)(xf,{className:"mr-2 size-4"}),(0,h.jsxs)("div",{className:"flex flex-col",children:[(0,h.jsx)("span",{children:"Generate SQL with AI"}),(0,h.jsx)("span",{className:"text-xs text-muted-foreground",children:"Create queries using natural language"})]})]}),(0,h.jsxs)(se,{disabled:!_||S,onSelect:()=>{!_||S||K(`Explain the schema of table "${_}": what each column stores and how it relates to other tables.`)},keywords:["ai","explain","schema","table","understand"],children:[(0,h.jsx)(lf,{className:"mr-2 size-4"}),(0,h.jsxs)("div",{className:"flex flex-col",children:[(0,h.jsx)("span",{children:"Explain Table Schema"}),(0,h.jsx)("span",{className:"text-xs text-muted-foreground",children:S?"Not available for schemaless databases":_?`Understand the structure of ${_} with AI`:"Select a table first"})]})]})]}),(0,h.jsx)(tn,{}),(0,h.jsxs)(ot,{heading:"Database Actions",children:[w&&(0,h.jsxs)(se,{onSelect:()=>E(()=>n("table-builder.create-table")),keywords:["create","new","table"],children:[(0,h.jsx)(Vo,{className:"mr-2 size-4"}),(0,h.jsxs)("div",{className:"flex flex-col",children:[(0,h.jsx)("span",{children:"Create New Table"}),(0,h.jsx)("span",{className:"text-xs text-muted-foreground",children:"Design and create a new database table"})]})]}),O&&(0,h.jsxs)(se,{onSelect:()=>E(()=>{L.startsWith("/browser")||e({to:"/browser"}),n("redis-browser.create-key")}),keywords:["create","new","redis","key"],children:[(0,h.jsx)(eo,{className:"mr-2 size-4"}),(0,h.jsxs)("div",{className:"flex flex-col",children:[(0,h.jsx)("span",{children:"Create Redis Key"}),(0,h.jsx)("span",{className:"text-xs text-muted-foreground",children:"Add a new key to the selected database"})]})]}),!O&&(0,h.jsxs)(h.Fragment,{children:[(0,h.jsxs)(se,{disabled:!T,onSelect:()=>E(()=>n("records.add-record")),keywords:["add","new","row","record","insert"],children:[(0,h.jsx)(Vo,{className:"mr-2 size-4"}),(0,h.jsxs)("div",{className:"flex flex-col",children:[(0,h.jsx)("span",{children:"Add New Row"}),(0,h.jsx)("span",{className:"text-xs text-muted-foreground",children:T?`Insert a new record into ${_}`:j})]})]}),(0,h.jsxs)(se,{disabled:!T,onSelect:()=>E(()=>n("records.bulk-insert")),keywords:["bulk","insert","import","csv","excel","json"],children:[(0,h.jsx)(Cf,{className:"mr-2 size-4"}),(0,h.jsxs)("div",{className:"flex flex-col",children:[(0,h.jsx)("span",{children:"Bulk Insert Records"}),(0,h.jsx)("span",{className:"text-xs text-muted-foreground",children:T?`Import many records into ${_}`:j})]})]}),(0,h.jsxs)(se,{disabled:!D,onSelect:()=>E(()=>n("schema.add-column")),keywords:["add","new","column","schema"],children:[(0,h.jsx)(If,{className:"mr-2 size-4"}),(0,h.jsxs)("div",{className:"flex flex-col",children:[(0,h.jsx)("span",{children:"Add Column"}),(0,h.jsx)("span",{className:"text-xs text-muted-foreground",children:D?`Add a column to ${_}`:P})]})]}),F&&(0,h.jsxs)(se,{disabled:!_,onSelect:()=>{if(!_)return;const H=_;E(()=>{L.startsWith("/indexes/")||e({to:"/indexes/$table",params:{table:H},search:{[ct.TABLE_SCHEMA]:t}}),n("indexes.create-index")})},keywords:["create","add","new","index","indexes"],children:[(0,h.jsx)(Ko,{className:"mr-2 size-4"}),(0,h.jsxs)("div",{className:"flex flex-col",children:[(0,h.jsx)("span",{children:"Create Index"}),(0,h.jsx)("span",{className:"text-xs text-muted-foreground",children:_?`Create an index on ${_}`:"Select a table first"})]})]}),(0,h.jsxs)(se,{disabled:!_||d,onSelect:()=>{if(!_)return;const H=_;E(()=>{f({tableName:H,schemaName:t,format:"csv"}).catch(()=>{})})},keywords:["export","download","csv"],children:[(0,h.jsx)(Yo,{className:"mr-2 size-4"}),(0,h.jsxs)("div",{className:"flex flex-col",children:[(0,h.jsx)("span",{children:"Export Table as CSV"}),(0,h.jsx)("span",{className:"text-xs text-muted-foreground",children:_?`Download ${_} as a CSV file`:"Select a table first"})]})]}),(0,h.jsxs)(se,{disabled:!_||d,onSelect:()=>{if(!_)return;const H=_;E(()=>{f({tableName:H,schemaName:t,format:"json"}).catch(()=>{})})},keywords:["export","download","json"],children:[(0,h.jsx)(Yo,{className:"mr-2 size-4"}),(0,h.jsxs)("div",{className:"flex flex-col",children:[(0,h.jsx)("span",{children:"Export Table as JSON"}),(0,h.jsx)("span",{className:"text-xs text-muted-foreground",children:_?`Download ${_} as a JSON file`:"Select a table first"})]})]}),(0,h.jsxs)(se,{disabled:!_||g||S,onSelect:()=>{if(!_||S)return;const H=_;E(()=>{p(H,t).catch(()=>{})})},keywords:["copy","schema","ddl","clipboard"],children:[(0,h.jsx)(Sf,{className:"mr-2 size-4"}),(0,h.jsxs)("div",{className:"flex flex-col",children:[(0,h.jsx)("span",{children:"Copy Table Schema"}),(0,h.jsx)("span",{className:"text-xs text-muted-foreground",children:S?"Not available for schemaless databases":_?`Copy the schema of ${_} to the clipboard`:"Select a table first"})]})]})]}),(0,h.jsxs)(se,{onSelect:()=>E(()=>{window.location.reload()}),keywords:["refresh","reload","restart"],children:[(0,h.jsx)(of,{className:"mr-2 size-4"}),(0,h.jsxs)("div",{className:"flex flex-col",children:[(0,h.jsx)("span",{children:"Reload Application"}),(0,h.jsx)("span",{className:"text-xs text-muted-foreground",children:"Reload all tables and data"})]})]})]}),(0,h.jsx)(tn,{}),(0,h.jsxs)(ot,{heading:"View & Settings",children:[(0,h.jsxs)(se,{onSelect:()=>E(r),keywords:["sidebar","show","hide","toggle","view"],children:[(0,h.jsx)(rf,{className:"mr-2 size-4"}),(0,h.jsxs)("div",{className:"flex flex-col",children:[(0,h.jsxs)("span",{children:[o.isOpen?"Hide":"Show"," Sidebar"]}),(0,h.jsx)("span",{className:"text-xs text-muted-foreground",children:"Toggle sidebar visibility"})]})]}),(0,h.jsxs)(se,{onSelect:()=>E(s),keywords:["sidebar","pin","unpin"],children:[o.isPinned?(0,h.jsx)(vf,{className:"mr-2 size-4"}):(0,h.jsx)(af,{className:"mr-2 size-4"}),(0,h.jsxs)("div",{className:"flex flex-col",children:[(0,h.jsxs)("span",{children:[o.isPinned?"Unpin":"Pin"," Sidebar"]}),(0,h.jsx)("span",{className:"text-xs text-muted-foreground",children:"Keep sidebar always visible"})]})]}),(0,h.jsxs)(se,{onSelect:()=>E(i),keywords:["theme","dark","light","mode","appearance"],children:[a?(0,h.jsx)(Af,{className:"mr-2 size-4"}):(0,h.jsx)(gf,{className:"mr-2 size-4"}),(0,h.jsxs)("div",{className:"flex flex-col",children:[(0,h.jsxs)("span",{children:["Switch to ",a?"Light":"Dark"," Mode"]}),(0,h.jsx)("span",{className:"text-xs text-muted-foreground",children:"Toggle the application theme"})]})]}),(0,h.jsxs)(se,{onSelect:()=>E(()=>n("settings.app")),keywords:["settings","preferences","configure","options"],children:[(0,h.jsx)(Of,{className:"mr-2 size-4"}),(0,h.jsxs)("div",{className:"flex flex-col",children:[(0,h.jsx)("span",{children:"Settings & Preferences"}),(0,h.jsx)("span",{className:"text-xs text-muted-foreground",children:"Configure application settings"})]})]})]}),!O&&!c&&!u&&l&&l.length>0&&(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(tn,{}),(0,h.jsxs)(ot,{heading:"Recent Tables",children:[l.slice(0,5).map(H=>(0,h.jsxs)(se,{value:ln(H),keywords:["table","recent",H.tableName],onSelect:()=>B(H.tableName,H.schemaName),children:[(0,h.jsx)(Yr,{className:"mr-2 size-4"}),(0,h.jsxs)("div",{className:"flex flex-col",children:[(0,h.jsx)("span",{children:H.tableName}),(0,h.jsxs)("span",{className:"text-xs text-muted-foreground",children:[H.rowCountEstimated&&"~",H.rowCount," ",H.rowCount===1?"row":"rows"]})]})]},ln(H))),l.length>5&&(0,h.jsx)(se,{onSelect:k,className:"text-muted-foreground",children:(0,h.jsxs)("span",{className:"text-xs",children:["+",l.length-5," more tables — press"," ",(0,h.jsx)(Je,{className:"rounded border bg-muted px-1 py-0.5 font-mono text-[10px]",children:">"})," ","to see all"]})})]})]})]})]}),(0,h.jsxs)("div",{"aria-hidden":"true",className:"flex items-center gap-3 border-t border-border px-3 py-2 text-[11px] text-muted-foreground",children:[(0,h.jsxs)("span",{className:"flex items-center gap-1",children:[(0,h.jsx)(Je,{children:"↑"}),(0,h.jsx)(Je,{children:"↓"})," to navigate"]}),(0,h.jsxs)("span",{className:"flex items-center gap-1",children:[(0,h.jsx)(Je,{children:"↵"})," to select"]}),(0,h.jsxs)("span",{className:"flex items-center gap-1",children:[(0,h.jsx)(Je,{children:"esc"})," to close"]}),(0,h.jsxs)("span",{className:"ml-auto flex items-center gap-1",children:[(0,h.jsx)(Je,{children:z?"⌘":"Ctrl"}),(0,h.jsx)(Je,{children:"K"})," to toggle"]})]})]})}var L_=()=>{const{setDbType:e,selectedDatabase:t,setSelectedDatabase:n}=ft(),{data:r,isLoading:s,error:o,refetch:i,isRefetching:a}=$t({queryKey:tr.list(),queryFn:$l,select:l=>l.data.data,staleTime:3e5});return(0,C.useEffect)(()=>{r?.dbType&&(e(r.dbType),zl(r.dbType)),!t&&r?.databases?.length&&n(r.databases[0]?.name??null)},[r?.dbType,r?.databases,t,e,n]),{databases:r?.databases,dbType:r?.dbType,isLoadingDatabases:s,databasesError:o,refetchDatabases:i,isRefetchingDatabases:a}},uE=()=>{const{selectedDatabase:e,setSelectedDatabase:t,setDbType:n}=ft(),r=(0,C.useRef)(!1),{data:s,isLoading:o,error:i}=$t({queryKey:tr.list(),queryFn:$l,select:d=>d.data.data,staleTime:3e5}),{data:a,isLoading:l,error:c}=$t({queryKey:tr.current(),queryFn:async()=>{const d=await Ep();return n(d.data.data.dbType),zl(d.data.data.dbType),!e&&d.data.data.db&&t(d.data.data.db),d.data.data},staleTime:3e5});(0,C.useEffect)(()=>{if(r.current||o||l)return;r.current=!0;const d=a?.db||s?.databases?.[0]?.name;d&&t(d)},[o,l,a?.db,s?.databases,t]);const u=o||l,f=r.current;return{currentDatabase:a,databases:s?.databases,isLoading:u,isInitialized:f,error:i||c}},dE=()=>{const{data:e,isLoading:t,error:n}=$t({queryKey:tr.connectionInfo(),queryFn:Cp,select:r=>r.data.data,staleTime:3e5});return{connectionInfo:e,isLoadingConnectionInfo:t,connectionInfoError:n}},lt=e=>typeof e.details=="string"&&e.details||e.message,en=()=>{const{data:e,isLoading:t,error:n}=$t({queryKey:er.state(),queryFn:async()=>(await Np()).data.data,refetchOnWindowFocus:!0,staleTime:0});return{connections:e?.connections??[],active:e?.active??null,isLoading:t,error:n}},Fs=null,id=()=>{const e=Js(),t=Zs();return n=>{Fs=n.active?.connectionId??null,Fl(Fs),e.removeQueries({predicate:r=>r.queryKey[0]!==er.state()[0]}),e.setQueryData(er.state(),n),ft.setState({selectedDatabase:null,dbType:null}),vp.getState().clearUpdates(),mp.getState().clearRowDetails(),ut.getState().closeAllOverlays(),t({to:"/",search:{}})}},Mo=()=>{const e=id(),{active:t}=en(),n=Dt({mutationFn:async i=>(await Ip(i)).data.data,onSuccess:e}),r=Dt({mutationFn:async({id:i})=>(await xp(i)).data.data,onSuccess:e}),s=i=>he.promise(n.mutateAsync(i),{loading:"Connecting…",success:"Connected",error:a=>t?`${lt(a)}. Still on the previous connection.`:lt(a)}),o=i=>he.promise(r.mutateAsync(i),{loading:`Connecting to ${i.name}…`,success:`Connected to ${i.name}`,error:a=>t?`${lt(a)}. Still on the previous connection.`:lt(a)});return{connectUrl:s,isConnectingUrl:n.isPending,urlError:n.error?lt(n.error):null,clearUrlError:n.reset,connectSaved:o}},hE=()=>{const{active:e,connections:t,isLoading:n}=en(),r=id(),s=(0,C.useRef)(void 0),o=e?.connectionId??null;(0,C.useEffect)(()=>{if(n)return;const i=s.current;if(s.current=o,i===void 0&&Fl(o),i===void 0||i===o||o===Fs)return;r({connections:t,active:e});const a=t.find(l=>l.id===e?.id)?.name;he.info(a?`Connection changed to ${a}`:"The connection changed")},[n,o,t,e,r])},fE=6e4,ad=(e,t=Date.now())=>{const n=Math.round((t-e)/fE);if(n<1)return"just now";if(n<60)return`${n}m ago`;const r=Math.round(n/60);return r<24?`${r}h ago`:`${Math.round(r/24)}d ago`},pE={red:"bg-red-500",orange:"bg-orange-500",amber:"bg-amber-400",green:"bg-emerald-500",teal:"bg-teal-500",blue:"bg-blue-500",violet:"bg-violet-500",pink:"bg-pink-500"},vr=({color:e,className:t})=>(0,h.jsx)("span",{"aria-hidden":!0,className:me("inline-block size-2.5 shrink-0 rounded-full",e?pE[e]:"border border-muted-foreground/50",t)}),gE=5,D_=({databasesCount:e})=>{const{connections:t,active:n}=en(),{connectSaved:r}=Mo(),{connectionInfo:s}=dE(),o=t.find(a=>a.id===n?.id),i=o?.name??(n?vn[n.dbType].label:"Not connected");return(0,h.jsxs)(Ml,{children:[(0,h.jsx)(Al,{asChild:!0,children:(0,h.jsxs)("button",{type:"button",title:n?vn[n.dbType].label:void 0,className:"flex min-w-0 max-w-[55%] items-center gap-2 rounded-sm px-2 py-1.5 transition-colors hover:bg-muted/60 aria-expanded:bg-muted/60",children:[(0,h.jsx)(vr,{color:o?.color??null}),(0,h.jsx)("span",{className:"truncate text-xs font-medium",children:i})]})}),(0,h.jsxs)(_l,{align:"start",side:"top",sideOffset:6,className:"w-72 p-0",children:[s&&(0,h.jsx)("dl",{className:"space-y-1 border-b px-3 py-2.5 text-xs",children:[["Host",s.host?`${s.host}${s.port?`:${s.port}`:""}`:"Local file"],["User",s.user||"—"],["Databases",e]].map(([a,l])=>(0,h.jsxs)("div",{className:"flex justify-between gap-3",children:[(0,h.jsx)("dt",{className:"text-muted-foreground",children:a}),(0,h.jsx)("dd",{className:"truncate font-mono",children:l})]},a))}),(0,h.jsxs)("div",{className:"p-1",children:[(0,h.jsx)("p",{className:"px-2 pb-1 pt-1.5 text-[10px] font-medium uppercase tracking-wide text-muted-foreground",children:"Switch connection"}),t.slice(0,gE).map(a=>{const l=a.id===n?.id;return(0,h.jsxs)(Zn,{onSelect:()=>{l||r(a)},children:[(0,h.jsx)(vr,{color:a.color}),(0,h.jsx)("span",{className:"flex-1 truncate",children:a.name}),l?(0,h.jsx)(Il,{className:"size-3.5 text-emerald-500"}):(0,h.jsx)("span",{className:"text-[10px] text-muted-foreground",children:ad(a.lastUsedAt)})]},a.id)})]}),(0,h.jsx)(Tl,{className:"my-0"}),(0,h.jsx)("div",{className:"p-1",children:(0,h.jsx)(Zn,{asChild:!0,children:(0,h.jsxs)(wr,{to:"/connect",children:[(0,h.jsx)(Lf,{})," All connections…"]})})})]})]})},mE=()=>{const[e,t]=(0,C.useState)(""),{connectUrl:n,isConnectingUrl:r,urlError:s,clearUrlError:o}=Mo(),i=Mp(e.trim().split("://")[0]?.toLowerCase()??"");return(0,h.jsxs)("form",{className:"space-y-1.5",onSubmit:a=>{a.preventDefault(),e.trim()&&n(e.trim())},children:[(0,h.jsxs)("div",{className:"flex h-8",children:[(0,h.jsxs)("div",{className:"relative h-full min-w-0 flex-1",children:[(0,h.jsx)(no,{autoFocus:!0,variant:"outline",value:e,onChange:a=>{t(a.target.value),o()},placeholder:"postgres://user:password@localhost:5432/mydb",spellCheck:!1,autoComplete:"off","aria-label":"Connection URL","aria-invalid":!!s,"aria-describedby":"connect-url-hint",className:"h-full rounded-r-none pr-36 font-mono focus-visible:ring-inset"}),i&&(0,h.jsx)("span",{className:"pointer-events-none absolute right-2 top-1/2 -translate-y-1/2 text-[10px] uppercase text-muted-foreground",children:vn[i].label})]}),(0,h.jsx)(dt,{type:"submit",disabled:!e.trim()||r,className:"h-full w-28 rounded-l-none bg-clip-border",children:r?(0,h.jsx)(to,{size:"size-3.5",color:"bg-primary-foreground"}):(0,h.jsxs)(h.Fragment,{children:["Connect",(0,h.jsx)(Je,{className:"border-0 bg-primary-foreground/15 text-primary-foreground",children:"↵"})]})})]}),(0,h.jsx)("p",{id:"connect-url-hint",role:s?"alert":void 0,className:me("text-xs",s?"text-destructive":"text-muted-foreground"),children:s??"The connection is tested first. Nothing changes if it fails."})]})},ld=e=>{const t=Js(),n=l=>t.setQueryData(er.state(),c=>c&&l(c)),r=Dt({mutationFn:async l=>(await Ap(e.id,l)).data.data,onSuccess:l=>n(c=>({...c,connections:c.connections.map(u=>u.id===l.id?l:u)}))}),s=Dt({mutationFn:async()=>(await wp(e.id)).data.data,onSuccess:()=>n(l=>({connections:l.connections.filter(c=>c.id!==e.id),active:l.active?.id===e.id?{...l.active,id:null}:l.active}))});return{rename:l=>he.promise(r.mutateAsync({name:l}),{loading:"Renaming connection…",success:"Connection renamed",error:c=>lt(c)||"Failed to rename connection"}),setColor:l=>he.promise(r.mutateAsync({color:l}),{error:c=>lt(c)||"Failed to change the color"}),remove:()=>he.promise(s.mutateAsync(),{loading:"Removing connection…",success:"Connection removed",error:l=>lt(l)||"Failed to remove connection"})}},vE=({connection:e,onRename:t})=>{const{setColor:n,remove:r}=ld(e),s=[null,...kp],o=(0,C.useRef)(!1);return(0,h.jsxs)(Ml,{children:[(0,h.jsx)(Al,{asChild:!0,children:(0,h.jsx)(dt,{variant:"ghost",size:"icon-sm","aria-label":`Actions for ${e.name}`,onClick:i=>i.stopPropagation(),onKeyDown:i=>i.stopPropagation(),children:(0,h.jsx)(kf,{})})}),(0,h.jsxs)(_l,{align:"end",onClick:i=>i.stopPropagation(),onCloseAutoFocus:i=>{o.current&&(o.current=!1,i.preventDefault(),t())},children:[(0,h.jsxs)(Zn,{onSelect:()=>{o.current=!0},children:[(0,h.jsx)(Rf,{})," Rename"]}),(0,h.jsxs)(rp,{children:[(0,h.jsxs)(op,{children:[(0,h.jsx)(Nf,{})," Color"]}),(0,h.jsx)(lp,{className:"flex items-center gap-1.5 p-2",children:s.map(i=>(0,h.jsx)("button",{type:"button","aria-label":i??"No color","aria-pressed":e.color===i,onClick:()=>n(i),className:me("grid size-5 place-items-center rounded-full",e.color===i&&"ring-2 ring-ring ring-offset-1 ring-offset-popover"),children:(0,h.jsx)(vr,{color:i,className:"size-3.5"})},i??"none"))})]}),(0,h.jsx)(Tl,{}),(0,h.jsxs)(Zn,{variant:"destructive",onSelect:r,children:[(0,h.jsx)(Mf,{})," Delete"]})]})]})},yE=({connection:e,onDone:t})=>{const{rename:n}=ld(e),[r,s]=(0,C.useState)(e.name),o=(0,C.useRef)(!1),i=a=>{if(o.current)return;o.current=!0;const l=r.trim();a&&l&&l!==e.name&&n(l),t()};return(0,h.jsx)("input",{autoFocus:!0,"aria-label":"Connection name",value:r,maxLength:100,onChange:a=>s(a.target.value),onBlur:()=>i(!0),onClick:a=>a.stopPropagation(),onKeyDown:a=>{a.stopPropagation(),a.key==="Enter"&&i(!0),a.key==="Escape"&&i(!1)},className:"h-6 min-w-0 flex-1 rounded-sm border border-input bg-background px-1.5 text-sm outline-none focus:ring-2 focus:ring-ring/30"})},cd="grid grid-cols-[minmax(0,1.1fr)_minmax(0,2fr)_6.5rem_4.5rem_1.75rem] gap-3",bE=({connection:e,isActive:t})=>{const{connectSaved:n}=Mo(),[r,s]=(0,C.useState)(!1),o=()=>{r||n(e)};return(0,h.jsxs)("div",{role:"button",tabIndex:0,"aria-label":`Connect to ${e.name}`,onClick:o,onKeyDown:i=>{i.key==="Enter"&&i.target===i.currentTarget&&o()},className:me(cd,"group relative cursor-pointer items-center border-b px-3 py-1.5 text-sm outline-none last:border-b-0 hover:bg-muted/60 focus-visible:bg-muted/60",t&&"bg-muted/40"),children:[t&&(0,h.jsx)("span",{className:"absolute inset-y-0 left-0 w-1 bg-primary"}),(0,h.jsxs)("div",{className:"flex min-w-0 items-center gap-2",children:[(0,h.jsx)(vr,{color:e.color}),r?(0,h.jsx)(yE,{connection:e,onDone:()=>s(!1)}):(0,h.jsx)("span",{className:"truncate",children:e.name})]}),(0,h.jsx)("span",{className:"truncate font-mono text-xs text-muted-foreground",children:e.maskedUrl}),(0,h.jsx)("span",{title:vn[e.dbType].label,className:"truncate text-xs text-muted-foreground",children:vn[e.dbType].label}),(0,h.jsx)("span",{className:"text-right text-xs tabular-nums text-muted-foreground",children:t?"current":ad(e.lastUsedAt)}),(0,h.jsx)("div",{className:"flex justify-end opacity-0 transition-opacity group-hover:opacity-100 group-focus-within:opacity-100 has-[[data-state=open]]:opacity-100",children:(0,h.jsx)(vE,{connection:e,onRename:()=>s(!0)})})]})},xE=()=>{const{connections:e,active:t}=en(),n=(0,C.useRef)(null),[r,s]=(0,C.useState)("");Pl("/",()=>n.current?.focus(),{preventDefault:!0});const o=r.trim().toLowerCase(),i=o?e.filter(a=>`${a.name} ${a.maskedUrl}`.toLowerCase().includes(o)):e;return e.length===0?(0,h.jsx)("p",{className:"rounded-sm border border-dashed px-3 py-6 text-center text-xs text-muted-foreground",children:"Connections you open are saved here."}):(0,h.jsxs)("div",{className:"overflow-hidden rounded-sm border",children:[(0,h.jsxs)("div",{className:"flex h-8 items-center border-b",children:[(0,h.jsxs)("div",{className:"relative h-full flex-1",children:[(0,h.jsx)(El,{className:"absolute left-3 top-1/2 size-3.5 -translate-y-1/2 text-muted-foreground"}),(0,h.jsx)("input",{ref:n,value:r,onChange:a=>s(a.target.value),placeholder:"Filter saved connections","aria-label":"Filter saved connections",className:"h-full w-full bg-transparent pl-8 pr-8 text-xs outline-none placeholder:text-muted-foreground"}),(0,h.jsx)(Je,{className:"absolute right-2 top-1/2 -translate-y-1/2",children:"/"})]}),(0,h.jsxs)("span",{className:"flex h-full items-center border-l px-3 text-xs text-muted-foreground",children:[e.length," saved"]})]}),(0,h.jsxs)("div",{className:me(cd,"h-8 items-center border-b bg-muted/40 px-3 text-xs text-muted-foreground"),children:[(0,h.jsx)("span",{children:"Name"}),(0,h.jsx)("span",{children:"URL"}),(0,h.jsx)("span",{children:"Engine"}),(0,h.jsx)("span",{className:"text-right",children:"Last used"}),(0,h.jsx)("span",{})]}),i.map(a=>(0,h.jsx)(bE,{connection:a,isActive:a.id===t?.id},a.id)),i.length===0&&(0,h.jsxs)("p",{className:"px-3 py-6 text-center text-xs text-muted-foreground",children:['No saved connection matches "',r,'".']})]})},$_=()=>{const{active:e,connections:t}=en(),n=t.find(r=>r.id===e?.id)?.name;return(0,h.jsxs)("div",{className:"flex h-dvh flex-col bg-background text-foreground",children:[(0,h.jsxs)("header",{className:"flex h-8 shrink-0 items-center gap-2 border-b px-3 text-xs",children:[(0,h.jsx)("img",{src:"/favicon.png",alt:"",className:"size-4"}),(0,h.jsx)("span",{className:"font-medium",children:"DB Studio"}),(0,h.jsxs)("span",{className:"text-muted-foreground",children:["v","1.22.1"]}),e&&(0,h.jsxs)(wr,{to:"/",className:"ml-auto flex items-center gap-1.5 text-muted-foreground hover:text-foreground",children:[(0,h.jsx)(mf,{className:"size-3.5"}),"Back to ",n??"the open connection"]})]}),(0,h.jsx)("main",{className:"flex-1 overflow-auto",children:(0,h.jsxs)("div",{className:"mx-auto w-full max-w-3xl space-y-8 px-6 pb-16 pt-[10vh]",children:[(0,h.jsxs)("div",{className:"space-y-3",children:[(0,h.jsxs)("div",{className:"space-y-1",children:[(0,h.jsx)("h1",{className:"text-sm font-semibold",children:"Connect a database"}),(0,h.jsx)("p",{className:"text-xs text-muted-foreground",children:"Paste a connection URL, or pick one you used before."})]}),(0,h.jsx)(mE,{})]}),(0,h.jsx)(xE,{})]})})]})};function ud(){return{id:"memory",label:"Session only (not saved)",persistent:!1,warning:"Keys stay in memory for this tab only. They are not saved across reloads.",load:()=>({}),save:()=>{},clear:()=>{}}}var SE=/^[a-z][a-z0-9-]{0,63}$/,IE="x-byok-";function _e(e){return typeof e=="string"&&SE.test(e)}function Ra(e){if(!_e(e))throw new Error(`Invalid BYOK provider id: ${e}`);return`${IE}${e}`}function wE(e){if(typeof e!="object"||e===null||!("error"in e))return!1;const t=e.error;return!(typeof t!="object"||t===null||!("type"in t)||t.type!=="byok_missing"||!("provider"in t)||typeof t.provider!="string"||!_e(t.provider)||!("message"in t)||typeof t.message!="string")}var zs=class extends Error{provider;constructor(e){super(`Missing ${e} API key`),this.name="ByokMissingError",this.provider=e}},yr=class extends Error{provider;reason;constructor(e,t){super(t==="locked"?`${e} key is locked`:`Missing ${e} API key`),this.name="ByokBlockedError",this.provider=e,this.reason=t}},dd=class extends Error{constructor(){super("BYOK is enabled but no provider slug was resolved. Pass byokProvider or forwardedProps.provider."),this.name="ByokUnresolvedProviderError"}};function Gn(e){return e.length<=4?"••":e.slice(-4)}var EE={status:{},locked:!1,prompt:null,storageError:null},hd=new WeakMap;function CE(e){const t=Object.entries(e.keys()).filter(r=>!!r[1]).map(r=>r[0]).filter(_e);if(t.length===1)return t[0];const n=hd.get(e)??[];if(n.length===1)return n[0]}function mt(e){if(!_e(e))throw new Error(`Invalid BYOK provider id: ${e}`);return e}function Un(e,t){return e instanceof Error&&e.message.length>0?e.message:t}function NE(e){if(typeof DOMException<"u"&&e instanceof DOMException&&e.name==="NotAllowedError")return!0;if(e instanceof Error){if(e.name==="NotAllowedError")return!0;const t=e.message.toLowerCase();return t.includes("cancelled")||t.includes("not allowed")}return!1}function _a(e){if(typeof e!="object"||e===null)return{};const t={};for(const[n,r]of Object.entries(e))_e(n)&&typeof r=="string"&&r.length>0&&(t[n]=r);return t}var RE=class{storage;#e={};#t={};#n;#r=null;#l=!1;#a={};#d={};#c=new Set;#u;#o=null;#i;constructor(e={}){this.storage=e.storage??ud();const t=[];for(const n of e.providers??[]){const r=mt(n.id);t.push(r),n.with?.length&&(this.#d[r]=n.with.map(s=>mt(s.id)))}hd.set(this,t),this.#n=!!this.storage.unlockable,this.#u=this.#h(),this.#i=this.#m()}ready=()=>this.#i;subscribe=e=>(this.#c.add(e),()=>{this.#c.delete(e)});getSnapshot=()=>this.#u;#h(){return{status:{...this.#t},locked:this.#n,prompt:this.#r,storageError:this.#o}}keys(){return{...this.#e}}request(e,t){this.#r={provider:mt(e),reason:t},this.#s()}setServerCoverage(e){if(typeof e=="boolean"){this.#l=e,this.#a={};return}this.#l=!1,this.#a={...this.#a,...e}}#p(e){return this.#l||this.#a[e]===!0}#f(e){return[e,...this.#d[e]??[]]}headers(e){const t={};if(e){mt(e);for(const n of this.#f(e)){const r=this.#e[n];r&&(t[Ra(n)]=r)}return t}for(const[n,r]of Object.entries(this.#e))r&&(t[Ra(n)]=r);return t}async prepare(e){if(await this.#i,this.storage.unlockable&&this.#n&&await this.unlock(),!!e){mt(e);for(const t of this.#f(e))if(!(this.#e[t]||this.#p(t)))throw this.request(t,"missing"),new yr(t,"missing")}}async update(e,t){await this.#i;let n,r;if(t===void 0){if(!this.#r)throw new Error("byok.update(key) cannot run when prompt is null");n=this.#r.provider,r=e}else n=mt(e),r=t;if(r=r.trim(),r.length===0)throw new Error("BYOK key must be non-empty");this.storage.unlockable&&this.#n&&await this.unlock();const s=this.#e,o={...this.#t},i=this.#n,a=this.#r,l=this.#o,c={...this.#e,[n]:r};try{await this.storage.save(c)}catch(u){throw this.#e=s,this.#t=o,this.#n=i,this.#r=a,this.#o=l,this.#t[n]={state:"error",masked:Gn(r),message:Un(u,`Failed to persist ${n} key`)},this.#s(),u}this.#e=c,this.#t[n]={state:"set",masked:Gn(r)},this.#n=!1,this.#r=null,this.#o=null,this.#s()}async clear(e){if(await this.#i,e){mt(e),this.storage.unlockable&&this.#n&&await this.unlock();const o=this.#e,i={...this.#t},a={...this.#e};delete a[e];try{await this.storage.save(a)}catch(l){throw this.#e=o,this.#t=i,this.#s(),l}this.#e=a,delete this.#t[e],this.#s();return}const t=this.#e,n=this.#t,r=this.#n,s=this.#r;try{await this.storage.clear()}catch(o){throw this.#e=t,this.#t=n,this.#n=r,this.#r=s,this.#s(),o}this.#e={},this.#t={},this.#n=!1,this.#r=null,this.#o=null,this.#s()}async unlock(){if(await this.#i,!!this.storage.unlockable)try{const e=_a(await this.storage.load());this.#e={...e,...this.#e};for(const[t,n]of Object.entries(e)){if(!_e(t)||!n)continue;const r=this.#t[t];(!r||r.state==="locked")&&(this.#t[t]={state:"set",masked:Gn(n)})}this.#n=!1,this.#o=null,this.#s()}catch(e){if(NE(e)){const t=this.#g();if(t)throw this.request(t,"locked"),new yr(t,"locked")}throw this.#o=Un(e,"Failed to unlock keyring"),this.#s(),e instanceof Error?e:new Error(String(e))}}#g(){if(this.#r&&_e(this.#r.provider))return this.#r.provider;for(const[e,t]of Object.entries(this.#t))if(t?.state==="locked"&&_e(e))return e}async#m(){if(this.storage.unlockable){if(!this.storage.peek)return;try{const e=await this.storage.peek();for(const[t,n]of Object.entries(e))!_e(t)||this.#t[t]||(this.#t[t]={state:"locked",masked:n||"••"});this.#n=Object.keys(e).length>0,this.#o=null,this.#s()}catch(e){this.#o=Un(e,"Failed to read keyring"),this.#s()}return}try{const e=_a(await this.storage.load());this.#e={...e,...this.#e};for(const[t,n]of Object.entries(e))!_e(t)||!n||(this.#t[t]={state:"set",masked:Gn(n)});this.#o=null,this.#s()}catch(e){this.#o=Un(e,"Failed to read keyring"),this.#s()}}#s(){this.#u=this.#h();for(const e of this.#c)e()}};function _E(e={}){return new RE(e)}var mn=_E({storage:ud()});mn.setServerCoverage({gemini:!0});var Hs=class extends Error{missingFeature;constructor(e){super(TE(e)),this.name="UnsupportedResponseStreamError",this.missingFeature=e}};function TE(e){return`Streaming fetch responses are not supported in this runtime because ${e} is unavailable. React Native users need a compatible fetch/stream/TextDecoder polyfill, or should use a fetch, XHR, or custom transport that can deliver streaming chunks.`}function AE(e){if(!e.body)throw new Hs("Response.body");if(typeof e.body.getReader!="function")throw new Hs("Response.body.getReader");return e.body.getReader()}function ME(){if(typeof globalThis.TextDecoder!="function")throw new Hs("TextDecoder");return new globalThis.TextDecoder}function kE(e){if(!e.startsWith("data:"))return e;const t=e.slice(5);return t.startsWith(" ")?t.slice(1):t}function Ta(e){if(e instanceof Date)return Number.isNaN(e.getTime())?void 0:e;if(typeof e!="string")return;const t=new Date(e);return Number.isNaN(t.getTime())?void 0:t}function OE(e){const t=Ta(e.createdAt),n=e.parts.map(o=>{if(o.type!=="tool-result")return o;const i=Ta(o.createdAt),{createdAt:a,...l}=o;return i?{...l,createdAt:i}:l}),{createdAt:r,...s}=e;return t?{...s,parts:n,createdAt:t}:{...s,parts:n}}function Bs(e){return e.map(OE)}function Aa(e){return Object.keys(e).length>0?e:void 0}function fd(e){return typeof e=="object"&&e!=null&&!Array.isArray(e)&&"promptTokens"in e}function jE(e,t){return fd(e)?e:Array.isArray(e)?Ma(e,t):Ma(void 0,t)}function Ma(e,t){const n=e?.[0];if(n==null&&t==null)return;const{promptTokensDetails:r,completionTokensDetails:s,...o}=t??{},i=Aa({...n?.cachedInputTokens!==void 0?{cachedTokens:n.cachedInputTokens}:{},...r}),a=Aa({...n?.reasoningTokens!==void 0?{reasoningTokens:n.reasoningTokens}:{},...s});return{promptTokens:n?.inputTokens??0,completionTokens:n?.outputTokens??0,totalTokens:n?.totalTokens??0,...o,...i!==void 0?{promptTokensDetails:i}:{},...a!==void 0?{completionTokensDetails:a}:{}}}function ka(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}function pd(e,t){if(t==null)return e;if(e==null)return{...t};const n={...e,...t};return ka(e.tanstack)&&ka(t.tanstack)&&(n.tanstack={...e.tanstack,...t.tanstack}),n}function ae(e){if(e==null)return;const t="metadata"in e?e.metadata:void 0,n=(t!=null&&typeof t=="object"&&!Array.isArray(t)?t:e).tanstack;if(!(n==null||typeof n!="object"||Array.isArray(n)))return n}function gd(e,t){const n=e.metadata,r=ae(e)??{};return{...e,metadata:{...n??{},tanstack:{...r,...t}}}}var qn=(function(e){return e.TEXT_MESSAGE_START="TEXT_MESSAGE_START",e.TEXT_MESSAGE_CONTENT="TEXT_MESSAGE_CONTENT",e.TEXT_MESSAGE_END="TEXT_MESSAGE_END",e.TEXT_MESSAGE_CHUNK="TEXT_MESSAGE_CHUNK",e.TOOL_CALL_START="TOOL_CALL_START",e.TOOL_CALL_ARGS="TOOL_CALL_ARGS",e.TOOL_CALL_END="TOOL_CALL_END",e.TOOL_CALL_CHUNK="TOOL_CALL_CHUNK",e.TOOL_CALL_RESULT="TOOL_CALL_RESULT",e.THINKING_START="THINKING_START",e.THINKING_END="THINKING_END",e.THINKING_TEXT_MESSAGE_START="THINKING_TEXT_MESSAGE_START",e.THINKING_TEXT_MESSAGE_CONTENT="THINKING_TEXT_MESSAGE_CONTENT",e.THINKING_TEXT_MESSAGE_END="THINKING_TEXT_MESSAGE_END",e.STATE_SNAPSHOT="STATE_SNAPSHOT",e.STATE_DELTA="STATE_DELTA",e.MESSAGES_SNAPSHOT="MESSAGES_SNAPSHOT",e.ACTIVITY_SNAPSHOT="ACTIVITY_SNAPSHOT",e.ACTIVITY_DELTA="ACTIVITY_DELTA",e.RAW="RAW",e.CUSTOM="CUSTOM",e.RUN_STARTED="RUN_STARTED",e.RUN_FINISHED="RUN_FINISHED",e.RUN_ERROR="RUN_ERROR",e.STEP_STARTED="STEP_STARTED",e.STEP_FINISHED="STEP_FINISHED",e.REASONING_START="REASONING_START",e.REASONING_MESSAGE_START="REASONING_MESSAGE_START",e.REASONING_MESSAGE_CONTENT="REASONING_MESSAGE_CONTENT",e.REASONING_MESSAGE_END="REASONING_MESSAGE_END",e.REASONING_MESSAGE_CHUNK="REASONING_MESSAGE_CHUNK",e.REASONING_END="REASONING_END",e.REASONING_ENCRYPTED_VALUE="REASONING_ENCRYPTED_VALUE",e})({}),PE=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]);function ze(e,t){return e>>>t|e<<32-t}function LE(e){const t=new TextEncoder().encode(e),n=t.length*8,r=t.length+1,s=r+(56-r%64+64)%64+8,o=new Uint8Array(s);o.set(t),o[t.length]=128;const i=new DataView(o.buffer);i.setUint32(s-8,Math.floor(n/4294967296)),i.setUint32(s-4,n>>>0);let a=1779033703,l=3144134277,c=1013904242,u=2773480762,f=1359893119,d=2600822924,p=528734635,g=1541459225;const y=new Uint32Array(64);for(let v=0;v<s;v+=64){for(let L=0;L<16;L++)y[L]=i.getUint32(v+L*4);for(let L=16;L<64;L++){const _=y[L-15]??0,M=y[L-2]??0,O=ze(_,7)^ze(_,18)^_>>>3,S=ze(M,17)^ze(M,19)^M>>>10;y[L]=(y[L-16]??0)+O+(y[L-7]??0)+S>>>0}let I=a,m=l,b=c,E=u,N=f,R=d,A=p,k=g;for(let L=0;L<64;L++){const _=ze(N,6)^ze(N,11)^ze(N,25),M=N&R^~N&A,O=k+_+M+(PE[L]??0)+(y[L]??0)>>>0,S=(ze(I,2)^ze(I,13)^ze(I,22))+(I&m^I&b^m&b)>>>0;k=A,A=R,R=N,N=E+O>>>0,E=b,b=m,m=I,I=O+S>>>0}a=a+I>>>0,l=l+m>>>0,c=c+b>>>0,u=u+E>>>0,f=f+N>>>0,d=d+R>>>0,p=p+A>>>0,g=g+k>>>0}const x=v=>(v>>>0).toString(16).padStart(8,"0");return x(a)+x(l)+x(c)+x(u)+x(f)+x(d)+x(p)+x(g)}function DE(e){return`sha256:${LE(e)}`}function Gs(e,t){if(e===null)return"null";if(typeof e=="string"||typeof e=="boolean"||typeof e=="number"&&Number.isFinite(e))return JSON.stringify(e);if(typeof e!="object")throw new TypeError("Interrupt values must be JSON-compatible.");if(t.has(e))throw new TypeError("Interrupt values must not cycle.");if(!Array.isArray(e)&&Object.getPrototypeOf(e)!==Object.prototype&&Object.getPrototypeOf(e)!==null)throw new TypeError("Interrupt values must use plain JSON objects.");t.add(e);let n;if(Array.isArray(e)){const r=[];for(let s=0;s<e.length;s++)r.push(Gs(e[s],t));n=`[${r.join(",")}]`}else{const r=e;n=`{${Object.keys(r).sort().map(s=>`${JSON.stringify(s)}:${Gs(r[s],t)}`).join(",")}}`}return t.delete(e),n}function At(e){return Gs(e,new WeakSet)}function Mt(e,t=DE){if(typeof e!="string")throw new TypeError("Interrupt digests require canonical JSON text.");return t(e)}function md(e){e===null||typeof e!="object"||Object.isFrozen(e)||(Object.values(e).forEach(md),Object.freeze(e))}function de(e){const t=JSON.parse(At(e));return md(t),t}function $E(e){const t=[...e].sort((s,o)=>s.interruptId.localeCompare(o.interruptId)),n=de(t),r=At(n);return Object.freeze({resolutions:n,canonicalResolutions:r,fingerprint:Mt(r)})}function Oa(e){const t={};for(const[n,r]of Object.entries(e))n!=="$schema"&&(t[n]=r);return t}function vd(e){return(typeof e=="object"||typeof e=="function")&&e!==null}function jn(e){if(!vd(e)||!("~standard"in e))return!1;const t=e["~standard"];return typeof t!="object"||t===null||!("version"in t)||t.version!==1||!("jsonSchema"in t)||typeof t.jsonSchema!="object"||t.jsonSchema===null||!("input"in t.jsonSchema)?!1:typeof t.jsonSchema.input=="function"}function pt(e){return vd(e)&&"~standard"in e&&typeof e["~standard"]=="object"&&e["~standard"]!==null&&"version"in e["~standard"]&&e["~standard"].version===1&&"validate"in e["~standard"]&&typeof e["~standard"].validate=="function"}function FE(e){return Object.keys(e).length>0?e:void 0}function ja(e){if(Array.isArray(e)){const n=e.map(s=>br(s,s.required||[])),r=n.map(s=>s.nullWidening??{});return{schema:n.map(s=>s.schema),itemMap:r.some(s=>Object.keys(s).length>0)?r:void 0}}const t=br(e,e.required||[]);return{schema:t.schema,itemMap:t.nullWidening}}function br(e,t=[]){const n={...e},r={};if(n.type==="object"&&n.properties){const s={...n.properties},o=Object.keys(s),i={};for(const a of o){const l=s[a];if(!l)continue;const c=!t.includes(a);let u=!1,f;if(l.type==="object"&&l.properties){const d=br(l,l.required||[]);s[a]=c?{...d.schema,type:["object","null"]}:d.schema,u=c,f=d.nullWidening}else if(l.type==="array"&&l.items){const d=ja(l.items);s[a]={...l,items:d.schema,...c?{type:["array","null"]}:{}},u=c,f=d.itemMap?{items:d.itemMap}:void 0}else c&&(l.type&&!Array.isArray(l.type)?(s[a]={...l,type:[l.type,"null"]},u=!0):Array.isArray(l.type)&&!l.type.includes("null")&&(s[a]={...l,type:[...l.type,"null"]},u=!0));(u||f)&&(i[a]={...f??{},...u?{widened:!0}:{}})}n.properties=s,n.required=o,n.additionalProperties=!1,Object.keys(i).length>0&&(r.properties=i)}if(n.type==="array"&&n.items){const s=ja(n.items);n.items=s.schema,s.itemMap&&(r.items=s.itemMap)}return{schema:n,nullWidening:FE(r)}}function zE(e){if(jn(e)){const t=Oa(e["~standard"].jsonSchema.input({target:"draft-07"}));return"properties"in t&&!t.type&&(t.type="object"),t.type==="object"&&!("properties"in t)&&(t.properties={}),t.type==="object"&&!("required"in t)&&(t.required=[]),t}if(pt(e))throw new Error("Schema is a Standard Schema validator but does not expose a JSON Schema converter on `~standard.jsonSchema`. Use Zod v4.2+, ArkType v2.1.28+, or wrap a Valibot schema with `toStandardJsonSchema()` from `@valibot/to-json-schema` before passing it as `outputSchema`.");return typeof e!="object"?e:Oa(e)}function Us(e,t={}){if(!e)return;const{forStructuredOutput:n=!1}=t;if(!n&&!jn(e)&&!pt(e))return e;const r=zE(e);return!r||typeof r!="object"||!n?r:br(r,r.required||[]).schema}var HE=class extends Error{name="StandardSchemaValidationError";issues;constructor(e){super(`Validation failed: ${e.map(t=>t.message||"Validation failed").join(", ")}`),this.issues=e}};function BE(e,t){if(!pt(e))return t;const n=e["~standard"].validate(t);if(n instanceof Promise)throw new Error("Schema validation returned a Promise. Use validateWithStandardSchema for async validation.");if(!n.issues)return n.value;throw new HE(n.issues)}var GE=new Set(["$schema","$id","$ref","$defs","type","properties","required","additionalProperties","items","oneOf","anyOf","allOf","enum","const","format","minimum","maximum","minLength","maxLength","pattern"]);function yd(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)&&(Object.getPrototypeOf(e)===Object.prototype||Object.getPrototypeOf(e)===null)}function ko(e){return yd(e)&&Object.keys(e).some(t=>GE.has(t))}function UE(e){return pt(e)||jn(e)||ko(e)}function qE(e){if(!yd(e))return!1;const t=Object.keys(e);return t.length>0&&t.every(n=>n==="approve"||n==="reject")&&t.every(n=>UE(e[n]))}function VE(e){const t={};for(const[n,r]of Object.entries(e))t[n]=r;return t}function hn(e){if(pt(e)){const t=jn(e)?VE(e["~standard"].jsonSchema.input({target:"draft-2020-12"})):void 0;return{source:e,validator:e,...t!==void 0&&{jsonSchema:t}}}if(ko(e))return{source:e,jsonSchema:e};throw new TypeError("Expected a supported SchemaInput.")}function Pa(e){const t={approved:{const:e.approved}},n=["approved"];return e.approved&&e.inputSchema&&(t.editedArgs=e.inputSchema.jsonSchema??{}),e.payload&&(t.payload=e.payload.jsonSchema??{},n.push("payload")),{type:"object",properties:t,required:n,additionalProperties:!1}}function KE(e,t){const n=t===void 0?null:hn(t);let r=null,s=null;if(e!==void 0)if(pt(e)||ko(e))r=hn(e),s=r;else if(qE(e))r=e.approve===void 0?null:hn(e.approve),s=e.reject===void 0?null:hn(e.reject);else throw new TypeError("approvalSchema must be a SchemaInput or a nonempty map containing approve or reject.");const o={oneOf:[Pa({approved:!0,payload:r,inputSchema:n}),Pa({approved:!1,payload:s,inputSchema:null})]},i=At(o),a=At({approve:r?.jsonSchema??null,reject:s?.jsonSchema??null});return{branches:{approve:r,reject:s},responseSchema:o,responseSchemaHash:Mt(i),approvalSchemaHash:Mt(a)}}function La(e){if(e===void 0)return Mt("undefined");const t=hn(e).jsonSchema??{standardValidator:"unserialized"};return Mt(At(t))}var Br="tanstack:interruptBinding",bd=Br;function xr(e){return e&&typeof e=="object"?e:null}function ye(e,t){return typeof e[t]=="string"?e[t]:void 0}function YE(e){const t=e.v;return t===void 0?!0:t===1}function xd(e){const t=xr(e.metadata),n=t?xr(t[bd]):null;if(!n||ye(n,"interruptId")!==e.id||!YE(n))return;const r=ye(n,"kind"),s=ye(n,"interruptId"),o=ye(n,"responseSchemaHash"),i=ye(n,"expiresAt");if(!s||o===""||i!==void 0&&!Number.isFinite(Date.parse(i)))return;const a=1;if(r==="generic"){const u=ye(n,"definitionId"),f=ye(n,"key"),d=n.batchIndex,p=ye(n,"payloadSchemaHash");return(u!==void 0||f!==void 0||d!==void 0||p!==void 0)&&(!u||!f||typeof d!="number"||!Number.isInteger(d)||d<0)?void 0:{v:a,kind:r,interruptId:s,...o?{responseSchemaHash:o}:{},...i?{expiresAt:i}:{},...u?{definitionId:u}:{},...f?{key:f}:{},...typeof d=="number"?{batchIndex:d}:{},...p?{payloadSchemaHash:p}:{}}}if(!o)return;const l=ye(n,"toolName"),c=ye(n,"toolCallId");if(!(!l||!c)){if(r==="client-tool-execution"){const u=ye(n,"outputSchemaHash");return u?{v:a,kind:r,interruptId:s,toolName:l,toolCallId:c,outputSchemaHash:u,responseSchemaHash:o,...i?{expiresAt:i}:{}}:void 0}if(r==="tool-approval"){const u=ye(n,"inputSchemaHash"),f=ye(n,"approvalSchemaHash");return!u||!f?void 0:{v:a,kind:r,interruptId:s,toolName:l,toolCallId:c,originalArgs:n.originalArgs,inputSchemaHash:u,approvalSchemaHash:f,responseSchemaHash:o,...i?{expiresAt:i}:{}}}}}function WE(e){const t=xd(e);if(!t)return;const n=xr(e.metadata),r=n?xr(n[bd]):null;if(!r)return;const s=ye(r,"interruptedRunId"),o=r.generation;if(!(!s||typeof o!="number"||!Number.isInteger(o)||o<0))return{...t,interruptedRunId:s,generation:o}}var XE="tanstack:interruptPayload";function QE(e,t){if(!jn(e))throw new TypeError(`${t} must be a Standard Schema with a JSON Schema converter.`);try{const n=e["~standard"].jsonSchema.input({target:"draft-07"});if(n===void 0)throw new TypeError("The exported schema is undefined.");if(typeof n=="function")throw new TypeError("The exported schema must not be a function.");if(Array.isArray(n))throw new TypeError("The exported schema must be a plain JSON object.");if(!n||typeof n!="object"||![Object.prototype,null].includes(Object.getPrototypeOf(n)))throw new TypeError("The exported schema must be a plain JSON object.");const r={};for(const[s,o]of Object.entries(n))s!=="$schema"&&(r[s]=o);return{json:r,canonicalJson:At(r)}}catch(n){throw new TypeError(`${t} could not export compatible JSON Schema: ${n instanceof Error?n.message:String(n)}`)}}function JE(e){return Mt(QE(e,"Interrupt schema").canonicalJson)}var ZE="tanstack:interruptContinuation";function eC(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function tC(e){return{[ZE]:e}}function nC(e){const t=xd(e);if(t?.kind!=="generic"||t.definitionId===void 0||t.key===void 0||t.batchIndex===void 0)return;const n=eC(e.metadata)?e.metadata:void 0,r=n!==void 0&&Object.prototype.hasOwnProperty.call(n,"tanstack:interruptPayload");return{v:1,definitionId:t.definitionId,key:t.key,batchIndex:t.batchIndex,reason:e.reason,message:e.message??"",...e.expiresAt!==void 0?{expiresAt:e.expiresAt}:{},...t.responseSchemaHash!==void 0?{responseSchemaHash:t.responseSchemaHash}:{},...t.payloadSchemaHash!==void 0?{payloadSchemaHash:t.payloadSchemaHash}:{},...r?{payload:n[XE]}:{}}}var rC=new Set(["text","image","audio","video","document"]);function sC(e){if(typeof e!="object"||e===null)return!1;const t=e;if(typeof t.type!="string"||!rC.has(t.type))return!1;if(t.type==="text")return typeof t.content=="string";const n=t.source;if(typeof n!="object"||n===null)return!1;const r=n;return typeof r.value!="string"?!1:r.type==="data"?typeof r.mimeType=="string":r.type==="url"}function qs(e){return Array.isArray(e)&&e.length>0&&e.every(sC)}function Oo(e){return typeof e=="string"||qs(e)?e:JSON.stringify(e)}function oC(e){const t=e?.metadata;return typeof t=="object"&&t!==null&&t.providerExecuted===!0?t:null}function Sd(e){return oC(e)!==null}function ds(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function iC(e){return e.type==="text"||e.type==="image"||e.type==="audio"||e.type==="video"||e.type==="document"}function aC(e){try{return JSON.stringify(e)??""}catch{return""}}function Da(e){return typeof e=="string"&&e!==""?e:void 0}function lC(e){if("encryptedValue"in e){const t=Da(e.encryptedValue);if(t!==void 0)return t}return Da(ae(e)?.signature)}function Id(e){return e.length===0?null:e.every(t=>t.type==="text")?e.map(t=>t.content).join("")||null:e}function wd(e){return e==null?"":typeof e=="string"?e:e.filter(t=>t.type==="text").map(t=>t.content).join("")}function cC(e){return Array.isArray(e)?e:wd(e)}function uC(e){if(!("role"in e)||e.role!=="tool")return e;const t=e,n=ae(t)?.toolResult;if(!ds(n)||"content"in n&&!qs(n.content))return e;const r={...e};if("id"in n||Reflect.deleteProperty(r,"id"),"createdAt"in n||Reflect.deleteProperty(r,"createdAt"),typeof n.id=="string"&&Reflect.set(r,"id",n.id),typeof n.createdAt=="string"){const o=Ae(n.createdAt);o&&Reflect.set(r,"createdAt",o)}qs(n.content)&&Reflect.set(r,"content",n.content);const s=Reflect.get(t,"metadata");if(ds(s)){const o=s.tanstack;if(ds(o)){const{toolResult:i,...a}=o,l={...s};Object.keys(a).length?l.tanstack=a:delete l.tanstack,Object.keys(l).length?Reflect.set(r,"metadata",l):Reflect.deleteProperty(r,"metadata")}}return r}function Ae(e){if(e instanceof Date)return Number.isNaN(e.getTime())?void 0:e;if(typeof e!="string")return;const t=new Date(e);return Number.isNaN(t.getTime())?void 0:t}function Ed(e){if(e.type!=="tool-result")return e;const t=Ae(e.createdAt),{createdAt:n,...r}=e;return t===void 0?r:{...r,createdAt:t}}function Cd(e){return Ae(ae(e)?.createdAt)}function Vs(e){const t=Ae(e.createdAt);return t!==void 0?{createdAt:t}:{}}function Gr(e){return e.name!==void 0?{name:e.name}:{}}function Ur(e){if(e==null||typeof e!="object"||Array.isArray(e)||!("type"in e)||e.type!=="ui-resource"||!("toolCallId"in e)||typeof e.toolCallId!="string"||!("toolName"in e)||typeof e.toolName!="string"||!("resource"in e)||e.resource==null||typeof e.resource!="object"||Array.isArray(e.resource))return!1;const t=e.resource;return"uri"in t&&typeof t.uri=="string"&&"mimeType"in t&&typeof t.mimeType=="string"}function $a(e){return`${e.toolCallId}\0${e.toolName}\0${e.resource.uri}`}function Nd(e,t){if(t.length===0)return e;const n=new Set(e.parts.filter(Ur).map(s=>$a(s))),r=t.filter(s=>!n.has($a(s)));return r.length===0?e:{...e,parts:[...e.parts,...r]}}function dC(e){const t=e.parts.filter(Ur),n=e.metadata??{},r=ae(e),s={};r?.model!==void 0&&(s.model=r.model),r?.signature!==void 0&&(s.signature=r.signature),t.length>0&&(s.uiResources=t);const o={...n};return Object.keys(s).length>0?o.tanstack=s:delete o.tanstack,Object.keys(o).length>0?o:void 0}function hC(e){return e.role==="system"?[]:e.role!=="assistant"?[fC(e)]:gC(e)}function fC(e){const t=[];for(const n of e.parts)iC(n)&&t.push(n);return{id:e.id,role:e.role,content:Id(t),...Gr(e),...Vs(e),...e.metadata!==void 0&&{metadata:e.metadata}}}function Fa(){return{contentParts:[],toolCalls:[]}}function pC(e){return e.state==="input-complete"||e.state==="complete"||e.state==="approval-requested"||e.state==="approval-responded"||e.state==="error"||e.output!==void 0}function gC(e){const t=[];let n=Fa(),r=[];const s=new Set,o={id:e.id,...Gr(e),...Vs(e)},i=dC(e),a={...o,...i!==void 0&&{metadata:i}};function l(c=!1){const u=Id(n.contentParts),f=u!==null,d=n.toolCalls.length>0,p=r.length>0;(c||f||d||p)&&(t.push({...a,role:"assistant",content:u,...d&&{toolCalls:n.toolCalls},...p&&{thinking:r},...n.structuredOutput&&{structuredOutput:n.structuredOutput}}),r=[]),n=Fa()}for(const c of e.parts)switch(c.type){case"text":case"image":case"audio":case"video":case"document":n.contentParts.push(c);break;case"tool-call":pC(c)&&n.toolCalls.push({id:c.id,type:"function",function:{name:c.name,arguments:c.arguments},...c.metadata!==void 0&&{metadata:c.metadata}});break;case"tool-result":l(t.length===0),(c.state==="complete"||c.state==="error")&&!s.has(c.toolCallId)&&(t.push({...c.id!==void 0&&{id:c.id},...Vs(c),role:"tool",content:c.content,toolCallId:c.toolCallId,...c.name!==void 0&&{name:c.name},...c.metadata!==void 0&&{metadata:c.metadata},...c.error!==void 0&&{error:c.error}}),s.add(c.toolCallId));break;case"thinking":(c.content||c.signature)&&(n.toolCalls.some(Sd)&&l(),r.push({content:c.content,...c.signature&&{signature:c.signature}}));break;case"structured-output":if(c.status==="complete"){const u=c.raw!==""?c.raw:c.data!==void 0?aC(c.data):"";u!==""&&(n.contentParts.push({type:"text",content:u}),n.structuredOutput=c)}}l();for(const c of e.parts)if(c.type==="tool-call"&&(c.output!==void 0&&!s.has(c.id)&&(t.push({role:"tool",content:Oo(c.output),toolCallId:c.id}),s.add(c.id)),c.output===void 0&&c.state==="approval-responded"&&c.approval?.approved!==void 0&&!s.has(c.id))){const u=c.approval.approved;t.push({role:"tool",content:JSON.stringify({approved:u,...u&&{pendingExecution:!0},message:u?"User approved this action":"User denied this action"}),toolCallId:c.id}),s.add(c.id)}return t.length===0&&t.push({...a,role:"assistant",content:null}),t}function Sr(e,t){const n=[],r=Ae(e.createdAt);if(e.role==="assistant"&&e.thinking?.length)for(const a of e.thinking)!a.content&&!a.signature||n.push({type:"thinking",content:a.content,...a.signature&&{signature:a.signature}});const s=e.structuredOutput??Rd(ae(e)?.structuredOutput);if(e.role==="assistant"&&s){if(typeof e.content=="string"&&e.content&&e.content!==s.raw){const a=s.raw,l=a!==""&&e.content.endsWith(a)?e.content.slice(0,-a.length):e.content;l&&n.push({type:"text",content:l})}n.push(s)}else if(e.role==="tool"&&e.toolCallId)n.push({type:"tool-result",toolCallId:e.toolCallId,content:cC(e.content),state:e.error===void 0?"complete":"error",...e.id!==void 0&&{id:e.id},...e.name!==void 0&&{name:e.name},...e.metadata!==void 0&&{metadata:e.metadata},...r!==void 0&&{createdAt:r},...e.error!==void 0&&{error:e.error}});else if(Array.isArray(e.content))for(const a of e.content)n.push(a);else{const a=wd(e.content);a&&n.push({type:"text",content:a})}if(e.toolCalls&&e.toolCalls.length>0)for(const a of e.toolCalls){let l;try{l=JSON.parse(a.function.arguments)}catch{l=void 0}n.push({type:"tool-call",id:a.id,name:a.function.name,arguments:a.function.arguments,state:"input-complete",...l!==void 0&&{input:l},...a.metadata!==void 0&&{metadata:a.metadata}})}const o={id:t||Et(),role:e.role==="tool"?"assistant":e.role,parts:n,...Gr(e),...r!==void 0&&{createdAt:r},...e.metadata!==void 0&&{metadata:e.metadata}},i=ae(e)?.uiResources;return Nd(o,Array.isArray(i)?i.filter(Ur):[])}function mC(e){if("parts"in e)return vt(e,{...e,id:e.id||Et()});const t=e.id||Et();switch(e.role){case"user":return vt(e,{id:t,role:"user",parts:vC(e.content)});case"assistant":{const n=ae(e),r=n?.toolCallMetadata,s=Rd(n?.structuredOutput),o=e.toolCalls?.map(i=>{const a=r!=null&&typeof r=="object"?r[i.id]:void 0;return a!==void 0?{...i,metadata:a}:i});return vt(e,Sr({role:"assistant",content:e.content??null,...Gr(e),...o&&{toolCalls:o},...s&&{structuredOutput:s}},t))}case"tool":{e=uC(e);const n=Ae("createdAt"in e?e.createdAt:void 0)??Cd(e);return vt(e,Sr({role:"tool",content:e.content,toolCallId:e.toolCallId,..."name"in e&&typeof e.name=="string"?{name:e.name}:{},..."id"in e&&typeof e.id=="string"?{id:e.id}:{},..."metadata"in e&&e.metadata!=null?{metadata:e.metadata}:{},...n!==void 0?{createdAt:n}:{},...e.error!==void 0&&{error:e.error}},t))}case"system":case"developer":return vt(e,{id:t,role:"system",parts:e.content?[{type:"text",content:e.content}]:[]});case"reasoning":{const n=lC(e),r=typeof e.content=="string"?e.content:"";return vt(e,{id:t,role:"assistant",parts:r||n!==void 0?[{type:"thinking",content:r,...n!==void 0?{signature:n}:{}}]:[]})}default:return vt(e,{id:t,role:"assistant",parts:[]})}}function vt(e,t){const n=t.parts.map(c=>Ed(c));n!==t.parts&&(t={...t,parts:n});const r="name"in e&&typeof e.name=="string"?e.name:void 0;let s=r!==void 0?{...t,name:r}:t,o;if("metadata"in e){const c=e.metadata;c!=null&&typeof c=="object"&&!Array.isArray(c)&&(o=c,s={...s,metadata:o})}const i=Ae(s.createdAt)??(o!==void 0?Cd(o):void 0);if(i!==void 0&&!Object.is(i,s.createdAt))s={...s,createdAt:i};else if(i===void 0&&s.createdAt!==void 0){const{createdAt:c,...u}=s;s=u}const a=ae(o)?.uiResources,l=Array.isArray(a)?a.filter(Ur):[];return Nd(s,l)}function Rd(e){if(!(e==null||e.status!=="streaming"&&e.status!=="complete"&&e.status!=="error"||typeof e.raw!="string"))return{type:"structured-output",status:e.status,raw:e.raw,...e.partial!==void 0?{partial:e.partial}:{},...e.data!==void 0?{data:e.data}:{},...e.reasoning?{reasoning:e.reasoning}:{},...e.errorMessage!==void 0?{errorMessage:e.errorMessage}:{}}}function vC(e){if(typeof e=="string")return e?[{type:"text",content:e}]:[];const t=[];for(const n of e)n.type==="text"?t.push({type:"text",content:n.text}):n.type!=="binary"&&t.push(n);return t}function yC(e,t){if("parts"in e){const n=e.parts.map(r=>Ed(r));return{...e,parts:n,id:e.id||t(),createdAt:Ae(e.createdAt)??new Date}}else return{...Sr(e,t()),createdAt:Ae(e.createdAt)??new Date}}function Et(){return`msg-${Date.now()}-${Math.random().toString(36).substring(7)}`}function za(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function hs(e,t,n,r,s=!1){const o=za(e)?e:{},i=za(o.tanstack)?{...o.tanstack}:{};s&&delete i.uiResources;const a=Ae(t),l={...n!==void 0?{id:n}:{},...a&&{createdAt:a.toISOString()},...Array.isArray(r)&&{content:r}},c={...o,tanstack:{...i,toolResult:l}};return Object.keys(c).length?c:void 0}function bC(e,t){const n=[],r=new Set(e.flatMap(i=>"id"in i&&i.id&&i.role!=="tool"?[i.id]:[])),s=t?.includeSnapshotStructuredOutput??!1,o=new Set;for(const i of e)i.role==="assistant"&&i.id!==void 0&&o.add(i.id);for(const i of e){if(!("parts"in i)&&i.role==="tool"&&i.toolCallId){const d=ps(RC(i.id,i.toolCallId,o),r),p=hs(i.metadata,i.createdAt,i.id,i.content);n.push({role:"tool",id:d,...i.name!==void 0&&{name:i.name},toolCallId:i.toolCallId,content:typeof i.content=="string"?i.content:JSON.stringify(i.content),...i.error!==void 0&&{error:i.error},...p!==void 0&&{metadata:p}});continue}const a="parts"in i?i:Sr(i,i.id),l=a.parts;if(r.add(a.id),i.role==="system"){n.push(fs(a,"system",{content:l.length>0?Ks(l):i.content??""},l,s));continue}if(i.role==="user"){n.push(fs(a,"user",{content:l.length>0?wC(l):i.content??""},l,s));continue}for(const d of l)if(d.type==="thinking"){const p={role:"reasoning",id:_d(NC(a.id,d),r),content:d.content};d.signature&&(p.encryptedValue=d.signature),n.push(p)}const c=Ks(l),u=CC(l);n.push(fs(a,"assistant",{...c!==""&&{content:c},...u&&{toolCalls:u}},l,s));const f=new Set(l.flatMap(d=>d.type==="tool-result"?[d.toolCallId]:[]));for(const d of l)if(d.type==="tool-result"){const p=ps(d.id??Ys(d.toolCallId),r),g=hs(d.metadata,d.createdAt,d.id,d.content,!0);n.push({role:"tool",id:p,toolCallId:d.toolCallId,...d.name!==void 0&&{name:d.name},content:typeof d.content=="string"?d.content:JSON.stringify(d.content),...d.error!==void 0&&{error:d.error},...g!==void 0&&{metadata:g}})}else if(d.type==="tool-call"){const p=d.approval?.approved;if(f.has(d.id)||d.output===void 0&&(d.state!=="approval-responded"||p===void 0))continue;const g=d.output!==void 0?Oo(d.output):JSON.stringify({approved:p,...p&&{pendingExecution:!0},message:p?"User approved this action":"User denied this action"}),y=typeof g=="string"?g:JSON.stringify(g);n.push({role:"tool",id:ps(Ys(d.id),r),toolCallId:d.id,content:y,metadata:hs(void 0,void 0,void 0,g)})}}return n}function fs(e,t,n,r,s){const o=xC(e,r,s),i={id:e.id,...e.name!==void 0&&{name:e.name},...o!==void 0&&{metadata:o}};return t==="system"?{...i,role:t,content:String(n.content??"")}:t==="user"?{...i,role:t,content:n.content??""}:{...i,role:t,...typeof n.content=="string"&&{content:n.content},...n.toolCalls!==void 0&&{toolCalls:n.toolCalls}}}function xC(e,t,n){const r={...e.metadata??{}},s=ae(e),o={};s?.model!==void 0&&(o.model=s.model),s?.signature!==void 0&&(o.signature=s.signature);const i=Ae(e.createdAt);i!==void 0&&(o.createdAt=i.toISOString());const a=SC(t,n);a&&(o.structuredOutput=a);const l={};for(const u of t)u.type==="tool-call"&&u.metadata!==void 0&&(l[u.id]=u.metadata);Object.keys(l).length>0&&(o.toolCallMetadata=l);const c=t.filter(u=>u.type==="ui-resource");return c.length>0&&(o.uiResources=c),Object.keys(o).length>0?r.tanstack=o:delete r.tanstack,Object.keys(r).length>0?r:void 0}function SC(e,t){for(const n of e)if(n.type==="structured-output"&&(t||n.status!=="complete"))return IC(n,t)}function IC(e,t){return{status:e.status,raw:e.raw,...t&&e.partial!==void 0?{partial:e.partial}:{},...t&&e.data!==void 0?{data:e.data}:{},...t&&e.reasoning?{reasoning:e.reasoning}:{},...e.errorMessage!==void 0&&{errorMessage:e.errorMessage}}}function Ks(e){const t=[];for(const n of e)n.type==="text"?t.push(n.content):n.type==="structured-output"&&n.status==="complete"&&n.raw!==""&&t.push(n.raw);return t.join("")}function wC(e){if(!e.some(n=>n.type==="image"||n.type==="audio"||n.type==="video"||n.type==="document"))return Ks(e);const t=[];for(const n of e)n.type==="text"?t.push({type:"text",text:n.content}):(n.type==="image"||n.type==="audio"||n.type==="video"||n.type==="document")&&t.push(n);return t}function EC(e){if(e==null||typeof e!="object"||Array.isArray(e)||!("thoughtSignature"in e))return;const t=e.thoughtSignature;return typeof t=="string"&&t!==""?t:void 0}function CC(e){const t=[];for(const n of e)if(n.type==="tool-call"){const r=EC(n.metadata);t.push({id:n.id,type:"function",function:{name:n.name,arguments:n.arguments},...r!==void 0?{encryptedValue:r}:{}})}return t.length>0?t:void 0}function NC(e,t){return`${e}-reasoning-${t.id??_C(t.content)}`}function Ys(e){return`tool-${e}`}function ps(e,t){return _d(e,t)}function _d(e,t){if(!t.has(e))return t.add(e),e;let n=2;for(;t.has(`${e}-${n}`);)n++;const r=`${e}-${n}`;return t.add(r),r}function RC(e,t,n){const r=Ys(t);return e===void 0||n.has(e)?r:e}function _C(e){let t=0;for(let n=0;n<e.length;n++)t=t*31+e.charCodeAt(n)|0;return Math.abs(t).toString(36)}function TC(e){if((e.type===qn.RUN_FINISHED||e.type===qn.RUN_ERROR)&&(Array.isArray(e.usage)||fd(e.usage))){const t=jE(e.usage,ae(e)?.usage);t!==void 0&&(e.usage=t)}if(e.type===qn.TOOL_CALL_START&&e.toolName===void 0&&e.toolCallName&&(e.toolName=e.toolCallName),e.type===qn.TOOL_CALL_END&&e.input===void 0){const t=ae(e)?.input;t!==void 0&&(e.input=t)}return e}function Td(e){TC(e);const t=ae(e),n=e;if(t==null)return n;for(const[r,s]of Object.entries(t))r==="usage"||r==="interruptErrors"||n[r]===void 0&&s!==void 0&&(n[r]=s);return t.interruptErrors!==void 0&&(n["tanstack:interruptErrors"]=t.interruptErrors),n}function Ha(e){return typeof e=="string"&&e!==""?e:void 0}function Ad(e){if("runId"in e){const t=Ha(e.runId);if(t!==void 0)return t}return Ha(ae(e)?.runId)}var Ba=bl((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.Allow=e.ALL=e.COLLECTION=e.ATOM=e.SPECIAL=e.INF=e._INFINITY=e.INFINITY=e.NAN=e.BOOL=e.NULL=e.OBJ=e.ARR=e.NUM=e.STR=void 0,e.STR=1,e.NUM=2,e.ARR=4,e.OBJ=8,e.NULL=16,e.BOOL=32,e.NAN=64,e.INFINITY=128,e._INFINITY=256,e.INF=e.INFINITY|e._INFINITY,e.SPECIAL=e.NULL|e.BOOL|e.INF|e.NAN,e.ATOM=e.STR|e.NUM|e.SPECIAL,e.COLLECTION=e.ARR|e.OBJ,e.ALL=e.ATOM|e.COLLECTION,e.Allow={STR:e.STR,NUM:e.NUM,ARR:e.ARR,OBJ:e.OBJ,NULL:e.NULL,BOOL:e.BOOL,NAN:e.NAN,INFINITY:e.INFINITY,_INFINITY:e._INFINITY,INF:e.INF,SPECIAL:e.SPECIAL,ATOM:e.ATOM,COLLECTION:e.COLLECTION,ALL:e.ALL},e.default=e.Allow})),AC=bl((e=>{var t=e&&e.__createBinding||(Object.create?(function(c,u,f,d){d===void 0&&(d=f);var p=Object.getOwnPropertyDescriptor(u,f);(!p||("get"in p?!u.__esModule:p.writable||p.configurable))&&(p={enumerable:!0,get:function(){return u[f]}}),Object.defineProperty(c,d,p)}):(function(c,u,f,d){d===void 0&&(d=f),c[d]=u[f]})),n=e&&e.__exportStar||function(c,u){for(var f in c)f!=="default"&&!Object.prototype.hasOwnProperty.call(u,f)&&t(u,c,f)};Object.defineProperty(e,"__esModule",{value:!0}),e.Allow=e.MalformedJSON=e.PartialJSON=e.parseJSON=e.parse=void 0;var r=Ba();Object.defineProperty(e,"Allow",{enumerable:!0,get:function(){return r.Allow}}),n(Ba(),e);var s=class extends Error{};e.PartialJSON=s;var o=class extends Error{};e.MalformedJSON=o;function i(c,u=r.Allow.ALL){if(typeof c!="string")throw new TypeError(`expecting str, got ${typeof c}`);if(!c.trim())throw new Error(`${c} is empty`);return a(c.trim(),u)}e.parseJSON=i;var a=(c,u)=>{const f=c.length;let d=0;const p=E=>{throw new s(`${E} at position ${d}`)},g=E=>{throw new o(`${E} at position ${d}`)},y=()=>(b(),d>=f&&p("Unexpected end of input"),c[d]==='"'?x():c[d]==="{"?v():c[d]==="["?I():c.substring(d,d+4)==="null"||r.Allow.NULL&u&&f-d<4&&"null".startsWith(c.substring(d))?(d+=4,null):c.substring(d,d+4)==="true"||r.Allow.BOOL&u&&f-d<4&&"true".startsWith(c.substring(d))?(d+=4,!0):c.substring(d,d+5)==="false"||r.Allow.BOOL&u&&f-d<5&&"false".startsWith(c.substring(d))?(d+=5,!1):c.substring(d,d+8)==="Infinity"||r.Allow.INFINITY&u&&f-d<8&&"Infinity".startsWith(c.substring(d))?(d+=8,1/0):c.substring(d,d+9)==="-Infinity"||r.Allow._INFINITY&u&&1<f-d&&f-d<9&&"-Infinity".startsWith(c.substring(d))?(d+=9,-1/0):c.substring(d,d+3)==="NaN"||r.Allow.NAN&u&&f-d<3&&"NaN".startsWith(c.substring(d))?(d+=3,NaN):m()),x=()=>{const E=d;let N=!1;for(d++;d<f&&(c[d]!=='"'||N&&c[d-1]==="\\");)N=c[d]==="\\"?!N:!1,d++;if(c.charAt(d)=='"')try{return JSON.parse(c.substring(E,++d-Number(N)))}catch(R){g(String(R))}else if(r.Allow.STR&u)try{return JSON.parse(c.substring(E,d-Number(N))+'"')}catch{return JSON.parse(c.substring(E,c.lastIndexOf("\\"))+'"')}p("Unterminated string literal")},v=()=>{d++,b();const E={};try{for(;c[d]!=="}";){if(b(),d>=f&&r.Allow.OBJ&u)return E;const N=x();b(),d++;try{E[N]=y()}catch(R){if(r.Allow.OBJ&u)return E;throw R}b(),c[d]===","&&d++}}catch{if(r.Allow.OBJ&u)return E;p("Expected '}' at end of object")}return d++,E},I=()=>{d++;const E=[];try{for(;c[d]!=="]";)E.push(y()),b(),c[d]===","&&d++}catch{if(r.Allow.ARR&u)return E;p("Expected ']' at end of array")}return d++,E},m=()=>{if(d===0){c==="-"&&g("Not sure what '-' is");try{return JSON.parse(c)}catch(N){if(r.Allow.NUM&u)try{return JSON.parse(c.substring(0,c.lastIndexOf("e")))}catch{}g(String(N))}}const E=d;for(c[d]==="-"&&d++;c[d]&&",]}".indexOf(c[d])===-1;)d++;d==f&&!(r.Allow.NUM&u)&&p("Unterminated number literal");try{return JSON.parse(c.substring(E,d))}catch{c.substring(E,d)==="-"&&p("Not sure what '-' is");try{return JSON.parse(c.substring(E,c.lastIndexOf("e")))}catch(R){g(String(R))}}},b=()=>{for(;d<f&&`
|
|
9
9
|
\r `.includes(c[d]);)d++};return y()},l=i;e.parse=l})),MC=AC(),kC=class{parse(e){if(!(!e||e.trim()===""))try{return(0,MC.parse)(e)}catch{return}}},Md=new kC;function OC(e){return Md.parse(e)}var jC=class{shouldEmit(e,t){return!0}};function PC(e){const t=new Error(e.message||e.error?.message||"An error occurred"),n=e.code??e.error?.code;return n!==void 0&&Object.assign(t,{code:n}),e.rawEvent!==void 0&&Object.assign(t,{rawEvent:e.rawEvent}),t}function LC(e,t,n){return e.map(r=>{if(r.id!==t)return r;const s=[...r.parts],o=s.length>0?s[s.length-1]:null;return o&&o.type==="text"?s[s.length-1]={type:"text",content:n}:s.push({type:"text",content:n}),{...r,parts:s}})}function Vn(e,t,n){return e.map(r=>{if(r.id!==t)return r;const s=[...r.parts],o=s.find(c=>c.type==="tool-call"&&c.id===n.id),i=n.metadata??o?.metadata,a=n.input??o?.input,l={type:"tool-call",id:n.id,name:n.name,arguments:n.arguments,state:n.state,...o?.approval&&{approval:{...o.approval}},...o?.output!==void 0&&{output:o.output},...a!==void 0&&{input:a},...i!==void 0&&{metadata:i}};return o?s[s.indexOf(o)]=l:s.push(l),{...r,parts:s}})}function Ga(e,t,n,r,s,o){return e.map(i=>{if(i.id!==t)return i;const a=[...i.parts],l=a.findIndex(u=>u.type==="tool-result"&&u.toolCallId===n),c={type:"tool-result",toolCallId:n,content:r,state:s,...o&&{error:o}};return l>=0?a[l]=c:a.push(c),{...i,parts:a}})}function Ua(e,t,n,r){return e.map(s=>{if(s.id!==t)return s;const o=[...s.parts],i=o.find(a=>a.type==="tool-call"&&a.id===n);if(i){const a=o.indexOf(i);o[a]={...i,state:"approval-requested",approval:{id:r,needsApproval:!0}}}return{...s,parts:o}})}function qa(e,t,n,r,s){return e.map(o=>{const i=[...o.parts],a=i.find(l=>l.type==="tool-call"&&l.id===t);if(a){const l=i.indexOf(a);i[l]={...a,output:s?{error:s}:n,state:r??(s?"error":"complete")}}return{...o,parts:i}})}function DC(e,t,n){return e.map(r=>{const s=[...r.parts],o=s.find(i=>i.type==="tool-call"&&i.approval?.id===t);if(o&&o.approval){const i=s.indexOf(o);s[i]={...o,approval:{...o.approval,approved:n},state:"approval-responded"}}return{...r,parts:s}})}function $C(e,t,n){return e.map(r=>{if(r.id!==t)return r;const s=[...r.parts],o=s.findIndex(f=>f.type==="structured-output"),i=o>=0?s[o]:null,a=(i?.raw??"")+n,l=OC(a),c=l??i?.partial,u={type:"structured-output",status:"streaming",raw:a,...c!==void 0?{partial:c}:{},...i?.reasoning!==void 0?{reasoning:i.reasoning}:{}};return o>=0?s[o]=u:s.push(u),{...r,parts:s}})}function FC(e,t,n,r,s){return e.map(o=>{if(o.id!==t)return o;const i=[...o.parts],a=i.findIndex(f=>f.type==="structured-output"),l=a>=0?i[a].raw:"";let c=r||l;if(c===""&&n!==void 0)try{c=JSON.stringify(n)}catch{}const u={type:"structured-output",status:"complete",data:n,partial:n,raw:c,...s!==void 0?{reasoning:s}:{}};return a>=0?i[a]=u:i.push(u),{...o,parts:i}})}function Va(e,t,n){return e.map(r=>{if(r.id!==t)return r;const s=[...r.parts],o=s.findIndex(a=>a.type==="structured-output");if(o<0)return s.push({type:"structured-output",status:"error",raw:"",errorMessage:n}),{...r,parts:s};const i=s[o];return i.status==="complete"?r:(s[o]={...i,status:"error",errorMessage:n},{...r,parts:s})})}function gs(e,t,n,r,s){return e.map(o=>{if(o.id!==t)return o;const i=[...o.parts],a=i.findIndex(c=>c.type==="thinking"&&c.stepId===n),l={type:"thinking",content:r,stepId:n,...s&&{signature:s}};return a>=0?i[a]=l:i.push(l),{...o,parts:i}})}var zC=12;function HC(e){return e.some(t=>{const n=t.metadata;if(!n||typeof n!="object"||Array.isArray(n))return!1;const r=n[Br];return r!==null&&typeof r=="object"&&!Array.isArray(r)&&r.kind==="generic"})}var BC=class kd{chunkStrategy;events;jsonParser;recordingEnabled;messages=[];messageStates=new Map;activeMessageIds=new Set;toolCallToMessage=new Map;pendingManualMessageId=null;pendingThinkingStepId=null;structuredMessageIds=new Set;structuredOutputUpdateBatches=new Map;activeRuns=new Set;finishReason=null;hasError=!1;isDone=!1;streamEndEmitted=!1;recording=null;recordingStartTime=0;constructor(t={}){this.chunkStrategy=t.chunkStrategy||new jC,this.events=t.events||{},this.jsonParser=t.jsonParser||Md,this.recordingEnabled=t.recording??!1,t.initialMessages&&(this.messages=[...t.initialMessages])}setMessages(t){this.messages=[...t],this.emitMessagesChange()}prependMessages(t){const n=new Set(this.messages.map(s=>s.id)),r=[];for(const s of t)n.has(s.id)||(n.add(s.id),r.push(s));this.messages=[...r,...this.messages],this.emitMessagesChange()}addUserMessage(t,n,r){const s=typeof t=="string"?[{type:"text",content:t}]:t.map(i=>i),o={id:n??Et(),role:"user",parts:s,createdAt:new Date,...r!=null?{metadata:r}:{}};return this.messages=[...this.messages,o],this.emitMessagesChange(),o}prepareAssistantMessage(){this.resetStreamState()}startAssistantMessage(t){this.prepareAssistantMessage();const{messageId:n}=this.ensureAssistantMessage(t);return this.pendingManualMessageId=n,n}getCurrentAssistantMessageId(){let t=null;for(const[n,r]of this.messageStates)r.role==="assistant"&&(t=n);return t}addToolResult(t,n,r){const s=this.messages.find(l=>l.parts.some(c=>c.type==="tool-call"&&c.id===t));if(!s){console.warn(`[StreamProcessor] Could not find message with tool call ${t}`);return}let o=qa(this.messages,t,n,r?"error":void 0,r);const i=Oo(n),a=r?"error":"complete";o=Ga(o,s.id,t,i,a,r),this.messages=o,this.emitMessagesChange()}addToolApprovalResponse(t,n){this.messages=DC(this.messages,t,n),this.emitMessagesChange()}toModelMessages(){const t=[];for(const n of this.messages)t.push(...hC(n));return t}getMessages(){return this.messages}areAllToolsComplete(){const t=this.messages.findLast(s=>s.role==="assistant");if(!t)return!0;const n=t.parts.filter(s=>s.type==="tool-call");if(n.length===0)return!0;const r=new Set(t.parts.filter(s=>s.type==="tool-result").map(s=>s.toolCallId));return n.every(s=>s.state==="complete"||s.state==="approval-responded"||s.output!==void 0&&!s.approval||r.has(s.id)||Sd(s))}removeMessagesAfter(t){const n=new Set(this.messages.slice(0,t+1).map(r=>r.id));for(const r of this.structuredMessageIds)n.has(r)||this.structuredMessageIds.delete(r);for(const r of this.structuredOutputUpdateBatches.keys())n.has(r)||this.structuredOutputUpdateBatches.delete(r);for(const r of this.messageStates.keys())n.has(r)||this.messageStates.delete(r);for(const[r,s]of this.toolCallToMessage)n.has(s)||this.toolCallToMessage.delete(r);for(const r of this.activeMessageIds)n.has(r)||this.activeMessageIds.delete(r);this.messages=this.messages.slice(0,t+1),this.emitMessagesChange()}clearMessages(){this.messages=[],this.messageStates.clear(),this.activeMessageIds.clear(),this.toolCallToMessage.clear(),this.structuredMessageIds.clear(),this.structuredOutputUpdateBatches.clear(),this.pendingManualMessageId=null,this.emitMessagesChange()}async process(t){this.resetStreamState(),this.recordingEnabled&&this.startRecording();for await(const n of t)this.processChunk(n);return this.finalizeStream(),this.recording&&(this.recording.result=this.getResult()),this.getResult()}processChunk(t){switch(this.recording&&this.recording.chunks.push({chunk:t,timestamp:Date.now(),index:this.recording.chunks.length}),t.type){case"TEXT_MESSAGE_START":this.handleTextMessageStartEvent(t);break;case"TEXT_MESSAGE_CONTENT":this.handleTextMessageContentEvent(t);break;case"TEXT_MESSAGE_END":this.handleTextMessageEndEvent(t);break;case"TOOL_CALL_START":this.handleToolCallStartEvent(t);break;case"TOOL_CALL_ARGS":this.handleToolCallArgsEvent(t);break;case"TOOL_CALL_END":this.handleToolCallEndEvent(t);break;case"RUN_FINISHED":this.handleRunFinishedEvent(t);break;case"RUN_ERROR":this.handleRunErrorEvent(t);break;case"STEP_FINISHED":this.handleStepFinishedEvent(t);break;case"MESSAGES_SNAPSHOT":this.handleMessagesSnapshotEvent(t);break;case"CUSTOM":this.handleCustomEvent(t);break;case"RUN_STARTED":this.handleRunStartedEvent(t);break;case"REASONING_START":case"REASONING_MESSAGE_START":case"REASONING_MESSAGE_END":case"REASONING_END":break;case"REASONING_MESSAGE_CONTENT":this.handleReasoningMessageContentEvent(t);break;case"REASONING_ENCRYPTED_VALUE":this.handleReasoningEncryptedValueEvent(t);break;case"TOOL_CALL_RESULT":this.handleToolCallResultEvent(t);break;case"STEP_STARTED":this.handleStepStartedEvent(t)}}createMessageState(t,n){const r={id:t,role:n,totalTextContent:"",currentSegmentText:"",lastEmittedText:"",hasSeenReasoningEvents:!1,thinkingSteps:new Map,thinkingStepSignatures:new Map,thinkingStepOrder:[],currentThinkingStepId:null,toolCalls:new Map,toolCallOrder:[],hasToolCallsSinceTextStart:!1,isComplete:!1};return this.messageStates.set(t,r),r}getMessageState(t){return this.messageStates.get(t)}consumePendingThinkingStep(t){if(!this.pendingThinkingStepId)return;const n=this.pendingThinkingStepId;t.currentThinkingStepId=n,t.thinkingSteps.has(n)||(t.thinkingSteps.set(n,""),t.thinkingStepOrder.push(n)),this.pendingThinkingStepId=null}getActiveAssistantMessageId(){const t=Array.from(this.activeMessageIds).reverse();for(const n of t){const r=this.messageStates.get(n);if(r&&r.role==="assistant")return n}for(const[n,r]of[...this.messageStates].reverse())if(r.role==="assistant")return n;return null}resumeAssistantState(t,n){this.activeMessageIds.add(t),(n.isComplete||this.isDone)&&(n.isComplete=!1,this.isDone=!1)}ensureAssistantMessage(t){if(t){const i=this.getMessageState(t);if(i)return this.resumeAssistantState(t,i),{messageId:t,state:i}}const n=this.getActiveAssistantMessageId();if(n){const i=this.getMessageState(n);if(i)return this.resumeAssistantState(n,i),{messageId:n,state:i}}if(t){const i=this.messages.find(a=>a.id===t);if(i){const a=this.createMessageState(t,i.role);this.activeMessageIds.add(t);const l=i.parts.length>0?i.parts[i.parts.length-1]:null;return l&&l.type==="text"&&(a.currentSegmentText=l.content,a.lastEmittedText=l.content,a.totalTextContent=l.content),{messageId:t,state:a}}}const r=t||Et(),s={id:r,role:"assistant",parts:[],createdAt:new Date};this.messages=[...this.messages,s];const o=this.createMessageState(r,"assistant");return this.activeMessageIds.add(r),this.pendingManualMessageId=r,this.events.onStreamStart?.(),this.emitMessagesChange(),{messageId:r,state:o}}mergeMessageMetadata(t,n){if(n==null||typeof n!="object"||Array.isArray(n))return;const r=this.messages.find(u=>u.id===t);if(!r)return;const s=n,o=ae(s),i=o!=null&&("content"in o||"args"in o)?{...s,tanstack:Object.fromEntries(Object.entries(o).filter(([u])=>u!=="content"&&u!=="args"))}:s,a=pd(r.metadata,i),l=Ae(ae(s)?.createdAt),c=l!==void 0;this.messages=this.messages.map(u=>u.id===t?{...u,...a!==void 0?{metadata:a}:{},...c?{createdAt:l}:{}}:u),this.emitMessagesChange()}handleTextMessageStartEvent(t){const{messageId:n,role:r}=t,s=r==="user"||r==="system"?r:"assistant";if(this.pendingManualMessageId){const i=this.pendingManualMessageId;if(this.pendingManualMessageId=null,i!==n){this.messages=this.messages.map(c=>c.id===i?{...c,id:n}:c);const l=this.messageStates.get(i);l&&(l.id=n,this.messageStates.delete(i),this.messageStates.set(n,l)),this.activeMessageIds.delete(i),this.activeMessageIds.add(n);for(const[c,u]of this.toolCallToMessage)u===i&&this.toolCallToMessage.set(c,n)}let a=this.messageStates.get(n);a?a.hasToolCallsSinceTextStart&&(a.currentSegmentText!==a.lastEmittedText&&this.emitTextUpdateForMessage(n),a.currentSegmentText="",a.lastEmittedText="",a.hasToolCallsSinceTextStart=!1):(a=this.createMessageState(n,s),this.activeMessageIds.add(n)),this.mergeMessageMetadata(n,t.metadata),this.emitMessagesChange();return}if(this.messages.find(i=>i.id===n)){this.activeMessageIds.add(n);const i=this.messageStates.get(n);i?i.hasToolCallsSinceTextStart&&(i.currentSegmentText!==i.lastEmittedText&&this.emitTextUpdateForMessage(n),i.currentSegmentText="",i.lastEmittedText="",i.hasToolCallsSinceTextStart=!1):this.createMessageState(n,s),this.mergeMessageMetadata(n,t.metadata);return}const o={id:n,role:s,parts:[],createdAt:new Date};this.messages=[...this.messages,o],this.createMessageState(n,s),this.activeMessageIds.add(n),this.mergeMessageMetadata(n,t.metadata),this.events.onStreamStart?.(),this.emitMessagesChange()}handleTextMessageEndEvent(t){const{messageId:n}=t;this.mergeMessageMetadata(n,t.metadata);const r=this.getMessageState(n);r&&(r.isComplete||r.currentSegmentText!==r.lastEmittedText&&this.emitTextUpdateForMessage(n))}handleMessagesSnapshotEvent(t){this.resetStreamState();const n=this.messages,r=new Map(n.map(o=>[o.id,o])),s=this.mergeReasoningFanOut(t.messages.map(mC));this.messages=this.reconcileSnapshotToolCalls(s,n).map(o=>{if(o.metadata!=null)return o;const i=r.get(o.id);return i?.metadata==null?o:{...o,metadata:i.metadata}}),this.emitMessagesChange()}mergeReasoningFanOut(t){const n=[];let r=[];const s=l=>l.parts.filter(c=>c.type==="thinking"),o=l=>l.role==="assistant"&&l.parts.length>0&&l.parts.every(c=>c.type==="thinking"),i=l=>l.role==="assistant"&&l.parts.some(c=>c.type==="tool-result")&&l.parts.every(c=>c.type==="tool-result"||c.type==="ui-resource"),a=()=>{n.push(...r),r=[]};for(const l of t){if(o(l)){r.push(l);continue}if(l.role==="assistant"&&r.length>0&&!i(l)){n.push({...l,parts:[...r.flatMap(s),...l.parts]}),r=[];continue}a(),n.push(l)}return a(),n}reconcileSnapshotToolCalls(t,n){const r=new Map;for(const i of n)for(const a of i.parts)a.type==="tool-call"&&r.set(a.id,a);const s=new Set;for(const i of t)for(const a of i.parts)a.type==="tool-call"&&s.add(a.id);const o=[];for(const i of t){const a=i.parts.filter(f=>f.type==="tool-result"),l=i.role==="assistant"&&a.length===1&&i.parts.every(f=>f.type==="tool-result"||f.type==="ui-resource")?a[0]:void 0;if(!l){o.push(i);continue}const c=o.findLast(f=>f.parts.some(d=>d.type==="tool-call"&&d.id===l.toolCallId))??o.findLast(f=>f.role==="assistant"&&!(f.parts.length===1&&f.parts[0]?.type==="tool-result"));if(!c){s.has(l.toolCallId)||console.warn(`[StreamProcessor] MESSAGES_SNAPSHOT contains a tool-result for "${l.toolCallId}" but no matching tool-call exists in the snapshot, and there is no assistant message to anchor into; addToolResult("${l.toolCallId}") will not be able to locate this call`),o.push(i);continue}const u=[...c.parts];if(!s.has(l.toolCallId)&&!u.some(f=>f.type==="tool-call"&&f.id===l.toolCallId)){const f=r.get(l.toolCallId);f?(u.push({...f}),s.add(f.id)):console.warn(`[StreamProcessor] MESSAGES_SNAPSHOT contains a tool-result for "${l.toolCallId}" but no matching tool-call exists in the snapshot or the pre-snapshot state; addToolResult("${l.toolCallId}") will not be able to locate this call`)}u.push(...i.parts),c.parts=u}return this.enrichSnapshotToolCallsFromResults(o,r)}enrichSnapshotToolCallsFromResults(t,n){const r=new Map;for(const s of t)for(const o of s.parts)o.type==="tool-result"&&r.set(o.toolCallId,o);return t.map(s=>{const o=s.parts.map(i=>{if(i.type!=="tool-call")return i;const a=n.get(i.id),l=r.get(i.id);let c=i;if(a&&(a.output!==void 0||a.state==="complete"||a.state==="error")&&(i.output===void 0||i.state==="input-complete"||i.state==="input-streaming"||i.state==="awaiting-input")&&(c={...i,...a.output!==void 0?{output:a.output}:{},state:a.state,...a.approval!==void 0?{approval:a.approval}:{},...a.metadata!==void 0?{metadata:a.metadata}:{}}),l&&c.output===void 0){let u;if(Array.isArray(l.content))u=l.content;else try{u=JSON.parse(l.content)}catch{u=l.content}const f=l.state==="error"?this.extractToolResultError(u):void 0;c={...c,output:f?{error:f}:u,state:l.state==="error"?"error":"complete"}}return c});return o.some((i,a)=>i!==s.parts[a])?{...s,parts:o}:s})}handleTextMessageContentEvent(t){const{messageId:n,state:r}=this.ensureAssistantMessage(t.messageId);if(this.mergeMessageMetadata(n,t.metadata),this.structuredMessageIds.has(n)){const u=t.delta||"";u!==""&&(this.messages=$C(this.messages,n,u),r.totalTextContent+=u,this.queueStructuredOutputUpdate(n,u),this.emitMessagesChange());return}const s=r.currentSegmentText;r.hasToolCallsSinceTextStart&&s.length>0&&this.isNewTextSegment(t,s)&&(s!==r.lastEmittedText&&this.emitTextUpdateForMessage(n),r.currentSegmentText="",r.lastEmittedText="",r.hasToolCallsSinceTextStart=!1),r.hasToolCallsSinceTextStart=!1;const o=r.currentSegmentText,i=t.delta||"",a=i!==""?o+i:o,l=a.slice(o.length);r.currentSegmentText=a,r.totalTextContent+=l;const c=t.delta||"";this.chunkStrategy.shouldEmit(c,r.currentSegmentText)&&r.currentSegmentText!==r.lastEmittedText&&this.emitTextUpdateForMessage(n)}handleToolCallStartEvent(t){const n=t.parentMessageId??this.getActiveAssistantMessageId(),{messageId:r,state:s}=this.ensureAssistantMessage(n??void 0);s.hasToolCallsSinceTextStart=!0;const o=t.toolCallId;if(!s.toolCalls.get(o)){const i="awaiting-input",a=t.toolCallName,l=t.metadata,c={id:t.toolCallId,name:a,arguments:"",state:i,parsedArguments:void 0,index:s.toolCalls.size,...l!==void 0&&{metadata:l}};s.toolCalls.set(o,c),s.toolCallOrder.push(o),this.toolCallToMessage.set(o,r),this.messages=Vn(this.messages,r,{id:t.toolCallId,name:a,arguments:"",state:i,...l!==void 0&&{metadata:l}}),this.emitMessagesChange(),this.events.onToolCallStateChange?.(r,t.toolCallId,i,"")}}handleToolCallArgsEvent(t){const n=t.toolCallId,r=this.toolCallToMessage.get(n);if(!r)return;const s=this.getMessageState(r);if(!s)return;const o=s.toolCalls.get(n);if(!o)return;const i=o.state==="awaiting-input";o.arguments+=t.delta||"",i&&t.delta&&(o.state="input-streaming"),o.parsedArguments=this.jsonParser.parse(o.arguments),this.messages=Vn(this.messages,r,{id:o.id,name:o.name,arguments:o.arguments,state:o.state}),this.emitMessagesChange(),this.events.onToolCallStateChange?.(r,o.id,o.state,o.arguments)}handleToolCallEndEvent(t){const n=this.toolCallToMessage.get(t.toolCallId);if(!n)return;const r=this.getMessageState(n);if(!r)return;const s=t.input!==void 0?t.input:ae(t)?.input,o=r.toolCalls.get(t.toolCallId);if(o&&o.state!=="input-complete"){if(s!==void 0&&!o.arguments)try{o.arguments=JSON.stringify(s)}catch{}const i=r.toolCallOrder.indexOf(t.toolCallId);this.completeToolCall(n,i,o),s!==void 0&&(o.parsedArguments=s,this.messages=Vn(this.messages,n,{id:o.id,name:o.name,arguments:o.arguments,state:"input-complete",input:s,...o.metadata!==void 0&&{metadata:o.metadata}}),this.emitMessagesChange())}}extractToolResultError(t){return t&&typeof t=="object"&&"error"in t&&typeof t.error=="string"?t.error:typeof t=="string"?t:"Tool execution failed"}handleToolCallResultEvent(t){const n=this.toolCallToMessage.get(t.toolCallId)??this.messages.find(i=>i.parts.some(a=>a.type==="tool-call"&&a.id===t.toolCallId))?.id;if(!n)return;const r=t.state==="output-error"||ae(t)?.state==="output-error";let s;try{s=JSON.parse(t.content)}catch{s=t.content}this.messages=qa(this.messages,t.toolCallId,s,r?"error":void 0);const o=r?"error":"complete";this.messages=Ga(this.messages,n,t.toolCallId,t.content,o,o==="error"?this.extractToolResultError(s):void 0),this.emitMessagesChange()}handleRunStartedEvent(t){this.activeRuns.add(t.runId)}handleRunFinishedEvent(t){const n=t;if(this.finishReason=n.finishReason!==void 0?n.finishReason:ae(t)?.finishReason??null,this.activeRuns.delete(t.runId),t.outcome?.type==="interrupt"&&this.handleInterrupts(t.outcome.interrupts),this.activeRuns.size===0){if(this.completeAllToolCalls(),this.finishReason==="tool_calls"&&t.outcome?.type!=="interrupt")return;this.isDone=!0,this.finalizeStream()}}handleInterrupts(t){const n=HC(t);for(const r of t){const s=r.metadata&&typeof r.metadata=="object"?r.metadata:{},o=typeof s.kind=="string"?s.kind:void 0,i=r.toolCallId;if(!i)continue;const a=typeof s.toolName=="string"?s.toolName:this.findToolCallName(i),l=Object.hasOwn(s,"input")?s.input:{};if(o==="approval"||r.reason==="approval_required"){const c=this.getActiveAssistantMessageId()??this.toolCallToMessage.get(i)??this.messages.find(u=>u.role==="assistant"&&u.parts.some(f=>f.type==="tool-call"&&f.id===i))?.id;c&&(this.messages=Ua(this.messages,c,i,r.id),this.emitMessagesChange()),this.events.onApprovalRequest?.({toolCallId:i,toolName:a,input:l,approvalId:r.id});continue}if(o==="client_tool"||r.reason==="client_tool_input"){if(n)continue;this.events.onToolCall?.({toolCallId:i,toolName:a,input:l})}}}findToolCallName(t){for(const n of this.messageStates.values()){const r=n.toolCalls.get(t);if(r)return r.name}return""}handleRunErrorEvent(t){this.hasError=!0;const n=Ad(t);n?this.activeRuns.delete(n):this.activeRuns.clear();const{messageId:r}=this.ensureAssistantMessage(),s=t.message||"An error occurred";t.message||console.error("[StreamProcessor] RUN_ERROR with no message; original chunk:",t),this.structuredMessageIds.has(r)&&(this.flushStructuredOutputUpdate(r),this.messages=Va(this.messages,r,s),this.structuredMessageIds.delete(r),this.emitStructuredOutputChange(r,"error"),this.emitMessagesChange()),this.events.onError?.(PC(t))}handleStepStartedEvent(t){const n=t.stepName||Et(),r=this.getActiveAssistantMessageId();if(r){const s=this.getMessageState(r);if(s){s.currentThinkingStepId=n,s.thinkingSteps.has(n)||(s.thinkingSteps.set(n,""),s.thinkingStepOrder.push(n)),this.pendingThinkingStepId=null;return}}this.pendingThinkingStepId=n}handleStepFinishedEvent(t){const n=t,r=n.signature;if(!r)return;const{messageId:s,state:o}=this.ensureAssistantMessage(this.getActiveAssistantMessageId()??void 0),i=o.currentThinkingStepId??n.stepId;if(!i)return;const a=o.thinkingSteps.get(i);a!==void 0&&(o.thinkingStepSignatures.set(i,r),this.messages=gs(this.messages,s,i,a,r),this.emitMessagesChange())}handleReasoningMessageContentEvent(t){const{messageId:n,state:r}=this.ensureAssistantMessage(this.getActiveAssistantMessageId()??void 0);r.hasSeenReasoningEvents=!0;const s=t.delta||"";this.consumePendingThinkingStep(r);const o=r.currentThinkingStepId??t.messageId;r.thinkingSteps.has(o)||(r.thinkingSteps.set(o,""),r.thinkingStepOrder.push(o),r.currentThinkingStepId=o);const i=(r.thinkingSteps.get(o)??"")+s;r.thinkingSteps.set(o,i),this.messages=gs(this.messages,n,o,i,r.thinkingStepSignatures.get(o)),this.emitMessagesChange(),this.events.onThinkingUpdate?.(n,o,i)}handleReasoningEncryptedValueEvent(t){const n=t.encryptedValue;if(typeof n!="string"||n==="")return;if(t.subtype==="tool-call"){this.attachToolCallSignature(t.entityId,n);return}const{messageId:r,state:s}=this.ensureAssistantMessage(this.getActiveAssistantMessageId()??void 0),o=s.currentThinkingStepId??t.entityId;s.thinkingStepSignatures.set(o,n);const i=s.thinkingSteps.get(o)??"";s.thinkingSteps.has(o)||(s.thinkingSteps.set(o,i),s.thinkingStepOrder.push(o)),this.messages=gs(this.messages,r,o,i,n),this.emitMessagesChange()}attachToolCallSignature(t,n){this.messages=this.messages.map(r=>{let s=!1;const o=r.parts.map(i=>i.type!=="tool-call"||i.id!==t?i:(s=!0,{...i,metadata:{...i.metadata!=null&&typeof i.metadata=="object"?i.metadata:{},thoughtSignature:n}}));return s?{...r,parts:o}:r});for(const r of this.messageStates.values()){const s=r.toolCalls.get(t);s&&(s.metadata={...s.metadata??{},thoughtSignature:n})}this.emitMessagesChange()}handleCustomEvent(t){const n=this.getActiveAssistantMessageId();if(t.name==="structured-output.start"&&t.value){const r=t.value,{messageId:s}=this.ensureAssistantMessage(r.messageId??n??void 0);s&&(this.structuredMessageIds.add(s),this.structuredOutputUpdateBatches.delete(s),this.events.onStructuredOutputChange?.({phase:"start",messageId:s,status:"streaming",raw:""}));return}if(t.name==="structured-output.complete"&&t.value){const r=t.value,{messageId:s}=this.ensureAssistantMessage(r.messageId??n??void 0);s&&(this.flushStructuredOutputUpdate(s),this.messages=FC(this.messages,s,r.object,r.raw??"",r.reasoning),this.structuredMessageIds.delete(s),this.emitStructuredOutputChange(s,"complete"),this.emitMessagesChange())}if(t.name==="tool-input-available"&&t.value){const{toolCallId:r,toolName:s,input:o}=t.value;this.events.onToolCall?.({toolCallId:r,toolName:s,input:o});return}if(t.name==="approval-requested"&&t.value){const{toolCallId:r,toolName:s,input:o,approval:i}=t.value,a=n??this.toolCallToMessage.get(r);a&&(this.messages=Ua(this.messages,a,r,i.id),this.emitMessagesChange()),this.events.onApprovalRequest?.({toolCallId:r,toolName:s,input:o,approvalId:i.id});return}if(t.name==="ui-resource"&&t.value){const r=t.value,s=this.toolCallToMessage.get(r.toolCallId)??n;if(s){const o={type:"ui-resource",resource:r.resource,toolCallId:r.toolCallId,toolName:r.toolName,...r.serverId!==void 0&&{serverId:r.serverId},...r.meta!==void 0&&{meta:r.meta}};this.messages=this.messages.map(i=>i.id===s?{...i,parts:[...i.parts,o]}:i),this.emitMessagesChange()}else console.warn(`[mcp-apps] dropped ui-resource: no target message for toolCallId "${r.toolCallId}" (toolName "${r.toolName}")`);return}if(this.events.onCustomEvent){const r=t.value&&typeof t.value=="object"?t.value.toolCallId:void 0;this.events.onCustomEvent(t.name,t.value,{toolCallId:r})}}isNewTextSegment(t,n){return!0}completeAllToolCalls(){for(const t of this.activeMessageIds)this.completeAllToolCallsForMessage(t)}completeAllToolCallsForMessage(t){const n=this.getMessageState(t);n&&n.toolCalls.forEach((r,s)=>{if(r.state!=="input-complete"){const o=n.toolCallOrder.indexOf(s);this.completeToolCall(t,o,r)}})}completeToolCall(t,n,r){r.state="input-complete";let s=!1;try{r.parsedArguments=JSON.parse(r.arguments),s=!0}catch{r.parsedArguments=void 0}this.isToolCallPartErrored(r.id)||this.isToolCallPartAwaitingUserAction(r.id)||(this.messages=Vn(this.messages,t,{id:r.id,name:r.name,arguments:r.arguments,state:"input-complete",...s&&{input:r.parsedArguments},...r.metadata!==void 0&&{metadata:r.metadata}}),this.emitMessagesChange(),this.events.onToolCallStateChange?.(t,r.id,"input-complete",r.arguments))}isToolCallPartAwaitingUserAction(t){return this.messages.some(n=>n.parts?.some(r=>r.type==="tool-call"&&r.id===t&&(r.state==="approval-requested"||r.state==="approval-responded")))}isToolCallPartErrored(t){return this.messages.some(n=>n.parts?.some(r=>r.type==="tool-call"&&r.id===t&&r.state==="error"))}emitTextUpdateForMessage(t){const n=this.getMessageState(t);n&&(n.lastEmittedText=n.currentSegmentText,this.messages=LC(this.messages,t,n.currentSegmentText),this.emitMessagesChange(),this.events.onTextUpdate?.(t,n.currentSegmentText))}queueStructuredOutputUpdate(t,n){const r=this.structuredOutputUpdateBatches.get(t),s={delta:`${r?.delta??""}${n}`,chunkCount:(r?.chunkCount??0)+1};this.structuredOutputUpdateBatches.set(t,s),s.chunkCount>=zC&&this.flushStructuredOutputUpdate(t)}flushStructuredOutputUpdate(t){const n=this.structuredOutputUpdateBatches.get(t);!n||n.chunkCount===0||(this.structuredOutputUpdateBatches.delete(t),this.emitStructuredOutputChange(t,"update",n.delta))}emitStructuredOutputChange(t,n,r){const s=this.messages.find(o=>o.id===t)?.parts.find(o=>o.type==="structured-output");s&&this.events.onStructuredOutputChange?.({phase:n,messageId:t,status:s.status,raw:s.raw,...s.partial!==void 0?{partial:s.partial}:{},...s.data!==void 0?{data:s.data}:{},...s.reasoning!==void 0?{reasoning:s.reasoning}:{},...s.errorMessage!==void 0?{errorMessage:s.errorMessage}:{},...r!==void 0?{delta:r}:{}})}emitMessagesChange(){this.events.onMessagesChange?.([...this.messages])}finalizeStream(){this.isDone=!0;let t;for(const n of this.activeMessageIds){const r=this.getMessageState(n);if(!r)continue;this.completeAllToolCallsForMessage(n),r.currentSegmentText!==r.lastEmittedText&&this.emitTextUpdateForMessage(n),r.isComplete=!0;const s=this.messages.find(o=>o.id===n);s&&s.role==="assistant"&&(t=s)}for(const n of this.structuredMessageIds)this.flushStructuredOutputUpdate(n),this.messages=Va(this.messages,n,"Stream ended without structured-output.complete"),this.emitStructuredOutputChange(n,"error");if(this.structuredMessageIds.clear(),this.structuredOutputUpdateBatches.clear(),this.activeMessageIds.clear(),t&&!this.hasError&&this.isWhitespaceOnlyMessage(t)){this.messages=this.messages.filter(n=>n.id!==t.id),this.emitMessagesChange();return}t&&!this.streamEndEmitted&&(this.streamEndEmitted=!0,this.events.onStreamEnd?.(t))}getCompletedToolCalls(){const t=[];for(const n of this.messageStates.values())for(const r of n.toolCalls.values())r.state==="input-complete"&&t.push({id:r.id,type:"function",function:{name:r.name,arguments:r.arguments},...r.metadata!==void 0&&{metadata:r.metadata}});return t}getResult(){const t=this.getCompletedToolCalls();let n="",r="";for(const s of this.messageStates.values()){n+=s.totalTextContent;for(const o of s.thinkingStepOrder)r+=s.thinkingSteps.get(o)??""}return{content:n,thinking:r||void 0,toolCalls:t.length>0?t:void 0,finishReason:this.finishReason}}getState(){let t="",n="";const r=new Map,s=[];for(const o of this.messageStates.values()){t+=o.totalTextContent;for(const i of o.thinkingStepOrder)n+=o.thinkingSteps.get(i)??"";for(const[i,a]of o.toolCalls)r.set(i,a);s.push(...o.toolCallOrder)}return{content:t,thinking:n,toolCalls:r,toolCallOrder:s,finishReason:this.finishReason,done:this.isDone}}startRecording(){this.recordingEnabled=!0,this.recordingStartTime=Date.now(),this.recording={version:"1.0",timestamp:this.recordingStartTime,chunks:[]}}getRecording(){return this.recording}resetStreamState(){this.messageStates.clear(),this.activeMessageIds.clear(),this.activeRuns.clear(),this.toolCallToMessage.clear(),this.structuredMessageIds.clear(),this.structuredOutputUpdateBatches.clear(),this.pendingManualMessageId=null,this.pendingThinkingStepId=null,this.finishReason=null,this.hasError=!1,this.isDone=!1,this.streamEndEmitted=!1,this.chunkStrategy.reset?.()}reset(){this.resetStreamState(),this.messages=[]}isWhitespaceOnlyMessage(t){return t.parts.length===0?!1:t.parts.every(n=>n.type==="text"&&n.content.trim()==="")}static async replay(t,n){return new kd(n).process(GC(t))}};function GC(e){return{async*[Symbol.asyncIterator](){for(const{chunk:t}of e.chunks)yield t}}}var Ws=(function(e){return e.TEXT_MESSAGE_START="TEXT_MESSAGE_START",e.TEXT_MESSAGE_CONTENT="TEXT_MESSAGE_CONTENT",e.TEXT_MESSAGE_END="TEXT_MESSAGE_END",e.TEXT_MESSAGE_CHUNK="TEXT_MESSAGE_CHUNK",e.TOOL_CALL_START="TOOL_CALL_START",e.TOOL_CALL_ARGS="TOOL_CALL_ARGS",e.TOOL_CALL_END="TOOL_CALL_END",e.TOOL_CALL_CHUNK="TOOL_CALL_CHUNK",e.TOOL_CALL_RESULT="TOOL_CALL_RESULT",e.THINKING_START="THINKING_START",e.THINKING_END="THINKING_END",e.THINKING_TEXT_MESSAGE_START="THINKING_TEXT_MESSAGE_START",e.THINKING_TEXT_MESSAGE_CONTENT="THINKING_TEXT_MESSAGE_CONTENT",e.THINKING_TEXT_MESSAGE_END="THINKING_TEXT_MESSAGE_END",e.STATE_SNAPSHOT="STATE_SNAPSHOT",e.STATE_DELTA="STATE_DELTA",e.MESSAGES_SNAPSHOT="MESSAGES_SNAPSHOT",e.ACTIVITY_SNAPSHOT="ACTIVITY_SNAPSHOT",e.ACTIVITY_DELTA="ACTIVITY_DELTA",e.RAW="RAW",e.CUSTOM="CUSTOM",e.RUN_STARTED="RUN_STARTED",e.RUN_FINISHED="RUN_FINISHED",e.RUN_ERROR="RUN_ERROR",e.STEP_STARTED="STEP_STARTED",e.STEP_FINISHED="STEP_FINISHED",e.REASONING_START="REASONING_START",e.REASONING_MESSAGE_START="REASONING_MESSAGE_START",e.REASONING_MESSAGE_CONTENT="REASONING_MESSAGE_CONTENT",e.REASONING_MESSAGE_END="REASONING_MESSAGE_END",e.REASONING_MESSAGE_CHUNK="REASONING_MESSAGE_CHUNK",e.REASONING_END="REASONING_END",e.REASONING_ENCRYPTED_VALUE="REASONING_ENCRYPTED_VALUE",e})({}),Od=new WeakMap;function Re(e){return Od.get(e)??Ad(e)}var jd=class extends Error{constructor(){super("Stream ended with unterminated trailing data — connection was likely cut short."),this.name="StreamTruncatedError"}},jo=class extends Error{constructor(e){super("Stream response body read failed",{cause:e}),this.name="StreamReadError"}},UC=class extends Error{constructor(){super("Durable run ended without a terminal event and could not resume — the run did not complete."),this.name="DurableStreamIncompleteError"}},qC=class extends Error{constructor(e){super(`Durable run exceeded its reconnect ceiling of ${e} attempts — giving up.`),this.name="StreamReconnectLimitError"}};function VC(e){const t=e?.maxAttempts??5,n=e?.delayMs??250;if(!Number.isInteger(t)||t<0)throw new Error(`Invalid reconnect.maxAttempts: ${t}. Must be a non-negative integer.`);if(!Number.isFinite(n)||n<0)throw new Error(`Invalid reconnect.delayMs: ${n}. Must be a non-negative finite number.`);return{maxAttempts:t,delayMs:n}}function KC(e){const t=VC(e),n=new Set;let r,s=0;return{get lastEventId(){return r},note(o){return o===void 0?"new":o===""?(r=void 0,n.clear(),"reset"):n.has(o)?"duplicate":(n.add(o),r=o,"new")},async waitBeforeReconnect(o,i){if(o)s=0;else if(s+=1,s>t.maxAttempts)throw new qC(t.maxAttempts);await YC(t.delayMs,i)}}}function YC(e,t){return e<=0||t?.aborted?Promise.resolve():new Promise(n=>{const r=()=>{clearTimeout(s),n()},s=setTimeout(()=>{t?.removeEventListener("abort",r),n()},e);t?.addEventListener("abort",r,{once:!0})})}function Ka(e){return`${e}-${Date.now()}-${Math.random().toString(36).slice(2,8)}`}function Kn(e,t){if(!e)throw new Error(`Cannot synthesize terminal event: ${t} not supplied via runContext and not observed in the upstream stream.`);return e}function on(e){if(!e)return{};if(e instanceof Headers){const t={};return e.forEach((n,r)=>{t[r]=n}),t}return e}var WC="X-Run-Id";function XC(e){return e===void 0?{}:{[WC]:e}}function Po(e,t){const n=e.indexOf("#"),r=n===-1?"":e.slice(n),s=n===-1?e:e.slice(0,n),o=s.indexOf("?"),i=o===-1?s:s.slice(0,o),a=new URLSearchParams(o===-1?"":s.slice(o+1));for(const[c,u]of Object.entries(t))a.set(c,u);const l=a.toString();return`${i}${l.length===0?"":`?${l}`}${r}`}async function*QC(e,t){try{const n=ME();let r="";for(;!t?.aborted;){let s;try{s=await e.read()}catch(l){if(t?.aborted)return;throw new jo(l)}const{done:o,value:i}=s;if(o)break;r+=n.decode(i,{stream:!0});const a=r.split(`
|
|
10
10
|
`);r=a.pop()||"";for(const l of a){const c=l.endsWith("\r")?l.slice(0,-1):l;c.trim()&&(yield c)}}if(r+=n.decode(),r.trim()&&!t?.aborted)throw new jd}finally{e.releaseLock()}}function JC(e){return Td(e)}function ZC(e){const t=ae(e)?.model;if(typeof t=="string")return t;const n="usage"in e?e.usage:void 0;if(Array.isArray(n)){const r=n[0]?.model;if(typeof r=="string")return r}}async function*eN(e,t){let n,r,s,o;for await(const i of e){if(i==="id"||i.startsWith("id:")){const f=i==="id"?"":i.slice(3);o=f.startsWith(" ")?f.slice(1):f;continue}if(i.startsWith(":")||i.startsWith("event:")||i.startsWith("retry:"))continue;const a=kE(i);if(a==="[DONE]"){yield{chunk:gd({type:Ws.RUN_FINISHED,threadId:n??t?.threadId??"",runId:r??t?.runId??"",timestamp:Date.now()},{finishReason:"stop",...s!==void 0?{model:s}:{}})};return}const l=JC(JSON.parse(a));"threadId"in l&&typeof l.threadId=="string"&&(n=l.threadId),"runId"in l&&typeof l.runId=="string"&&(r=l.runId);const c=ZC(l);c!==void 0&&(s=c);const u=o;o=void 0,yield{chunk:l,...u!==void 0?{id:u}:{}}}}async function Lo(e){if(!e.ok){if(e.status===401){const t=await e.clone().json().catch(()=>null);if(wE(t))throw new zs(t.error.provider)}throw new Error(`HTTP error! status: ${e.status} ${e.statusText}`)}}function tN(e,t){const n={threadId:e};return t?.limit!==void 0&&(n.limit=String(t.limit)),t?.before!==void 0&&(n.before=t.before),n}function nN(e){return e===null||typeof e!="object"?{truncated:!1}:!("truncated"in e)||e.truncated!==!0?{truncated:!1}:!("cursor"in e)||typeof e.cursor!="string"||e.cursor===""?{truncated:!1}:{truncated:!0,cursor:e.cursor}}async function rN(e,t,n,r,s,o){const i=await e(Po(t,tN(s,o)),{method:"GET",headers:{Accept:"application/json",...n},credentials:r});await Lo(i);const a=await i.json(),l=a.activeRun&&typeof a.activeRun.runId=="string"?{runId:a.activeRun.runId}:null,c=a.interrupts&&typeof a.interrupts.runId=="string"&&Array.isArray(a.interrupts.pending)&&a.interrupts.pending.length>0?{runId:a.interrupts.runId,pending:a.interrupts.pending}:null;return{messages:Array.isArray(a.messages)?Bs(a.messages):[],activeRun:l,interrupts:c,page:nN(a.page)}}async function sN(e,t,n,r,s){const o=await e(Po(t,{threadId:s}),{method:"GET",headers:{Accept:"application/json",...n},credentials:r});await Lo(o);const i=await o.json();if(i===null)return{resumeSnapshot:null,activeRun:null};if(typeof i!="object"||Array.isArray(i))throw new Error(`Generation hydration expected a JSON object from ${t}, received ${Array.isArray(i)?"an array":typeof i}.`);const a=i,l=a.activeRun&&typeof a.activeRun.runId=="string"?{runId:a.activeRun.runId}:null;return{resumeSnapshot:a.resumeSnapshot??null,activeRun:l}}async function*Xs(e,t,n){await Lo(e),yield*eN(QC(AE(e),t),n)}async function*oN(e,t){for await(const{chunk:n}of Xs(e,t))yield n}function Ya(e,t,n,r){return async function*(s,o){let i;try{i=await e(t,{...n,headers:{...n.headers,...s},...o?{signal:o}:{}})}catch(a){throw new jo(a)}yield*r(i,o)}}async function*Wa(e,t,n){const r=KC(n);for(;;){if(t?.aborted)return;const s=r.lastEventId!==void 0?{"Last-Event-ID":r.lastEventId}:{};let o=!1,i=!1;try{for await(const{chunk:a,id:l}of e(s,t))r.note(l)!=="duplicate"&&(i=!0,(a.type==="RUN_FINISHED"||a.type==="RUN_ERROR")&&(o=!0),yield a)}catch(a){if(t?.aborted)return;if((a instanceof jd||a instanceof jo)&&r.lastEventId!==void 0){await r.waitBeforeReconnect(i,t);continue}throw a}if(t?.aborted||o)return;if(r.lastEventId!==void 0){if(i){await r.waitBeforeReconnect(!0,t);continue}throw new UC}return}}function Xa(e){if(!e)throw new Error("Connection adapter is required");const t="connect"in e,n="subscribe"in e,r="send"in e;if(t&&(n||r))throw new Error("Connection adapter must provide either connect or both subscribe and send, not both modes");if(n&&r){const c=e.joinRun?.bind(e),u=e.hydrate?.bind(e);return{subscribe:e.subscribe.bind(e),send:e.send.bind(e),...c?{joinRun:c}:{},...u?{hydrate:u}:{}}}if(!t)throw new Error("Connection adapter must provide either connect or both subscribe and send");let s=[],o=[],i;function a(c,u){u&&Od.set(c,u);const f=o.shift();f?f(c):s.push(c)}async function l(c){const u=()=>i!==o||s.length===0&&(o.length>0||c?.aborted);for(let f=0;f<16&&!c?.aborted;f++){if(u())return;await Promise.resolve()}for(;!c?.aborted;){if(u())return;await new Promise(f=>setTimeout(f,0))}}return{subscribe(c){const u=s.splice(0),f=[];return s=u,o=f,(async function*(){i=f;try{for(;!c?.aborted;){let d;const p=u.shift();p!==void 0?d=p:d=await new Promise(g=>{const y=()=>g(null);f.push(x=>{c?.removeEventListener("abort",y),g(x)}),c?.addEventListener("abort",y,{once:!0})}),d!==null&&(yield d)}}finally{i===f&&(i=void 0)}})()},async send(c,u,f,d){let p=!1,g,y;try{const x=e.connect(c,u,f,d);for await(const v of x)"threadId"in v&&typeof v.threadId=="string"&&(g=v.threadId),"runId"in v&&typeof v.runId=="string"&&(y=v.runId),(v.type==="RUN_FINISHED"||v.type==="RUN_ERROR")&&(p=!0),a(v,d?.runId);!f?.aborted&&!p&&a(gd({type:Ws.RUN_FINISHED,threadId:Kn(g??d?.threadId,"threadId"),runId:Kn(y??d?.runId,"runId"),timestamp:Date.now()},{finishReason:"stop",model:"connect-wrapper"}),d?.runId)}catch(x){if(!f?.aborted&&!p)try{const v=x instanceof Error?x.message:"Unknown error in connect()";a({type:Ws.RUN_ERROR,threadId:Kn(g??d?.threadId,"threadId"),runId:Kn(y??d?.runId,"runId"),timestamp:Date.now(),message:v},d?.runId)}catch{}throw x}await l(f)},...typeof e.joinRun=="function"?{joinRun:(c,u)=>e.joinRun(c,u)}:{},...(()=>{const c=e.hydrate;return typeof c=="function"?{hydrate:(u,f)=>c(u,f)}:{}})()}}function iN(e,t,n,r){const s=bC(e),o={...r.body,...n?.forwardedProps??{},...t};return{threadId:n?.threadId??Ka("thread"),runId:n?.runId??Ka("run"),...n?.parentRunId!==void 0&&{parentRunId:n.parentRunId},...n?.resume!==void 0&&{resume:n.resume},state:{},messages:s,tools:n?.clientTools??[],context:[],forwardedProps:o,data:{...o}}}function F_(e,t={}){return{async*connect(n,r,s,o){const i=typeof e=="function"?e():e,a=typeof t=="function"?await t():t,l={"Content-Type":"application/json",...on(a.headers),...on(o?.headers),...XC(o?.runId)},c=iN(n,r,o,a),u=a.fetchClient??fetch,f=s||a.signal;yield*Wa(Ya(u,i,{method:"POST",headers:l,body:JSON.stringify(c),credentials:a.credentials||"same-origin"},(d,p)=>Xs(d,p,{...o?.threadId!==void 0?{threadId:o.threadId}:{},...o?.runId!==void 0?{runId:o.runId}:{}})),f,a.reconnect)},async*joinRun(n,r){const s=typeof e=="function"?e():e,o=typeof t=="function"?await t():t,i=Po(s,{offset:"-1",runId:n}),a={...on(o.headers)},l=o.fetchClient??fetch,c=r||o.signal;yield*Wa(Ya(l,i,{method:"GET",headers:a,credentials:o.credentials||"same-origin"},(u,f)=>Xs(u,f,{runId:n})),c,o.reconnect)},async hydrate(n,r){const s=typeof e=="function"?e():e,o=typeof t=="function"?await t():t;return rN(o.fetchClient??fetch,s,on(o.headers),o.credentials||"same-origin",n,r)},async hydrateGeneration(n){const r=typeof e=="function"?e():e,s=typeof t=="function"?await t():t;return sN(s.fetchClient??fetch,r,on(s.headers),s.credentials||"same-origin",n)}}}function aN(e){return{async*connect(t,n,r,s){if(!r)throw new Error("fetcherToConnectionAdapter requires an AbortSignal — the chat client always supplies one.");if(!s)throw new Error("fetcherToConnectionAdapter requires a RunAgentInputContext — the chat client always supplies one.");const o=await e({messages:t,data:n,threadId:s.threadId,runId:s.runId,...s.parentRunId!==void 0?{parentRunId:s.parentRunId}:{},...s.resume!==void 0?{resume:s.resume}:{}},{signal:r,headers:s.headers});o instanceof Response?yield*oN(o,r):yield*lN(o,r)}}}async function*lN(e,t){if(t.aborted)return;const n=e[Symbol.asyncIterator](),r=new Promise(s=>{t.addEventListener("abort",()=>s({done:!0,value:void 0}),{once:!0})});try{for(;;){const s=await Promise.race([n.next(),r]);if(s.done)return;yield s.value}}finally{await n.return?.()}}function Qe(e){return e.resumable}function ms(e,t){const n=nC(e.descriptor);return n?{...t,metadata:tC(n)}:t}function cN(e){return"cancel"in e&&"clearResolution"in e}var uN=new Set(["invalid-payload","invalid-edited-args","invalid-tool-output","invalid-response-schema","unknown-interrupt","expired","stale","conflict","legacy-unsupported"]),dN=new Set(["incomplete-batch","item-validation-failed","unsupported-bulk-operation","async-resolver","inactive-transaction","mixed-provenance","transport","server","protocol","invalid-response-schema","expired","stale","conflict","legacy-submit-failed"]);function De(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function Pd(e){return De(e)&&e.kind==="approval"&&typeof e.toolName=="string"&&"input"in e}function Ld(e){return De(e)&&e.kind==="client_tool"&&typeof e.toolName=="string"&&"input"in e}function hN(e){return Pd(e.metadata)||Ld(e.metadata)}function Qa(e){return WE(e)}function fN(e){if(!De(e.metadata))return!1;const t=e.metadata[Br];return!De(t)||t.v!==void 0&&t.v!==1?!1:t.kind==="generic"||t.kind==="tool-approval"||t.kind==="client-tool-execution"||"definitionId"in t||"key"in t||"batchIndex"in t||"payloadSchemaHash"in t}function pN(e){if(!De(e.metadata))return!1;const t=e.metadata[Br];return!De(t)||t.kind!=="generic"?!1:"definitionId"in t||"key"in t||"batchIndex"in t||"payloadSchemaHash"in t}function gN(e){return e.metadata?.["tanstack:interruptPayload"]}function mN(e){return e==="tanstack:client_tool_execution"||e==="client_tool_input"}function fn(e){if(e.responseSchema!==void 0)try{return Mt(At(e.responseSchema))}catch{return}}function Ja(e){if(e!==void 0)try{return JE(e)}catch{return}}function bt(e){return e!==null&&(typeof e=="object"||typeof e=="function")&&"then"in e&&typeof e.then=="function"}function Yn(e,t,n){if(e===void 0)return{valid:!0,payload:t};if(pt(e)){const r=e["~standard"].validate(t),s=o=>o.issues?{code:n,message:o.issues[0]?.message??"Schema validation failed."}:{valid:!0,payload:o.value};return bt(r)?Promise.resolve(r).then(s):s(r)}return{valid:!0,payload:t}}function vN(e){for(const t of uN)if(t===e)return!0;return!1}function yN(e){for(const t of dN)if(t===e)return!0;return!1}function Za(e){if(!De(e))return!1;const t=e.scope,n=e.code;return typeof n=="string"&&typeof e.message=="string"&&typeof e.retryable=="boolean"&&typeof e.threadId=="string"&&typeof e.interruptedRunId=="string"&&typeof e.generation=="number"?t==="item"?vN(n)&&typeof e.interruptId=="string"&&(e.source==="client"||e.source==="server"):t==="batch"&&yN(n)&&Array.isArray(e.interruptIds)&&e.interruptIds.every(r=>typeof r=="string")&&(e.source==="client"||e.source==="server"||e.source==="transport"):!1}function bN(e){return Za(e)?[e]:!De(e)||!Array.isArray(e.errors)?[]:e.errors.every(Za)?e.errors:[]}function Dd(e,t){if(e.length!==t.length)return!1;const n=[...e].sort(),r=[...t].sort();return n.every((s,o)=>s===r[o])}function el(e,t){return e.threadId===t.threadId&&e.interruptedRunId===t.interruptedRunId&&e.generation===t.generation&&Dd(e.interruptIds,t.interruptIds)}function xN(e,t,n){const r=n.filter(a=>a.source!=="transport"),s=a=>t.includes(a)&&r.some(l=>el(a,l)),o=e.filter(a=>!s(a)),i=t.filter(a=>!r.some(l=>el(a,l)));return Object.freeze({rootErrors:Object.freeze([...o,...n]),submissionRootErrors:Object.freeze([...i,...r])})}function SN(e,t){if(e.threadId!==t.threadId||e.interruptedRunId!==t.interruptedRunId||e.generation!==t.generation)return!1;const n=t.resolutions.map(r=>r.interruptId);return e.scope==="item"?n.includes(e.interruptId):Dd(e.interruptIds,n)}function vs(e,t,n){const r=fn(e)??n?.responseSchemaHash;return de({v:1,kind:"generic",interruptId:e.id,interruptedRunId:t.interruptedRunId,generation:t.generation,...r!==void 0?{responseSchemaHash:r}:{},...e.expiresAt!==void 0?{expiresAt:e.expiresAt}:{}})}function IN(e,t){const n=de(e.descriptor),r=e.error===void 0?Object.freeze([]):Object.freeze([de(e.error)]),s=r[0];return{id:n.id,interruptId:n.id,reason:n.reason,...n.message!==void 0?{message:n.message}:{},...n.responseSchema!==void 0?{responseSchema:n.responseSchema}:{},...n.expiresAt!==void 0?{expiresAt:n.expiresAt}:{},...n.metadata!==void 0?{metadata:n.metadata}:{},threadId:t.threadId,interruptedRunId:t.interruptedRunId,generation:t.generation,status:e.status,errors:r,...s!==void 0?{error:s}:{},canResolve:e.canResolve}}var wN=class{options;hydration;items=[];snapshot=Object.freeze([]);rootErrors=Object.freeze([]);submissionRootErrors=Object.freeze([]);state=Object.freeze({interrupts:this.snapshot,pendingInterrupts:this.snapshot,interruptErrors:this.rootErrors,resuming:!1});activeTransaction;activeSubmissionOperation;retrySubmission;resuming=!1;tools;interruptDefinitions;constructor(e){this.options=e,this.tools=e.tools;const t=new Map;for(const n of e.interrupts??[]){if(t.has(n.id))throw new Error(`Duplicate interrupt definition id: ${n.id}`);t.set(n.id,n)}this.interruptDefinitions=t}updateTools(e){this.tools=e}hydrate(e,t="live"){this.activeSubmissionOperation=void 0,this.hydration={threadId:e.threadId,interruptedRunId:e.interruptedRunId,generation:e.generation,interrupts:de(e.interrupts)};const n=new Map;for(const r of e.interrupts){const s=Qa(r);s?.kind==="generic"&&s.definitionId!==void 0&&s.key!==void 0&&s.batchIndex!==void 0&&n.set(s.batchIndex,(n.get(s.batchIndex)??0)+1)}this.items=e.interrupts.map(r=>this.hydrateInterrupt(r,e,n)),this.rootErrors=Object.freeze([]),this.submissionRootErrors=Object.freeze([]),this.retrySubmission=void 0,this.resuming=!1,this.publish(t)}getInterrupts(){return this.snapshot}getState(){return this.state}getDescriptors(){return this.hydration?.interrupts??Object.freeze([])}hasValidatedFirstPartyGenericBatch(){return this.items.some(e=>e.kind==="generic"&&e.definition!==void 0)}reset(e){this.activeSubmissionOperation=void 0,this.hydration=void 0,this.items=[],this.snapshot=Object.freeze([]),e?.preserveRootErrors!==!0&&(this.rootErrors=Object.freeze([]),this.submissionRootErrors=Object.freeze([])),this.retrySubmission=void 0,this.resuming=!1,this.state=Object.freeze({interrupts:this.snapshot,pendingInterrupts:this.snapshot,interruptErrors:this.rootErrors,resuming:!1}),this.options.onChange?.(e?.source??"live")}getInterruptErrors(){return this.rootErrors}getResuming(){return this.resuming}resolve(e){if(this.assertRootMutable(),typeof e=="boolean"){this.resolveBooleanBulk(e);return}this.resolveTransaction(e)}cancel(){this.assertRootMutable(),this.invalidateRetry();for(const e of this.items)Qe(e)&&(e.validationGeneration++,e.resolution=Object.freeze(ms(e,{interruptId:e.descriptor.id,status:"cancelled"})),e.status="staged",e.error=void 0);this.publish(),this.maybeSubmit()}retry(){if(this.resuming)throw new Error("Interrupt submission is already active.");const e=this.retrySubmission;if(!e){this.addRootError("transport","There is no retryable interrupt submission.",!1);return}this.submitBatch(e)}resolveClientToolOutput(e,t){const n=this.items.find(r=>r.kind==="client-tool-execution"&&r.binding?.kind==="client-tool-execution"&&r.binding.toolCallId===e||r.kind==="generic"&&mN(r.descriptor.reason)&&r.descriptor.toolCallId===e&&Ld(r.descriptor.metadata));return n?(this.resolveItem(n.descriptor.id,t),!0):!1}resolveToolApprovalDecision(e,t){const n=this.items.find(r=>r.descriptor.id===e&&(r.kind==="tool-approval"||r.kind==="generic"&&r.descriptor.reason==="approval_required"&&Pd(r.descriptor.metadata)));return n?(this.resolveItem(n.descriptor.id,{approved:t}),!0):!1}hydrateInterrupt(e,t,n){const r=de(e),s=Qa(r),o=s===void 0&&hN(r);if(s===void 0&&!o)return fN(r)?{descriptor:r,binding:vs(r,t,void 0),kind:"generic",status:"error",canResolve:!1,resumable:!1,error:this.itemError(r.id,"stale","The interrupt binding is invalid or incomplete."),validationGeneration:0}:{descriptor:r,binding:void 0,kind:"unbound",status:"pending",canResolve:!1,resumable:!1,validationGeneration:0};const i=s!==void 0&&s.interruptId===r.id&&s.interruptedRunId===t.interruptedRunId&&s.generation===t.generation&&fn(r)===s.responseSchemaHash,a=s!==void 0&&s.interruptId===r.id&&s.interruptedRunId===t.interruptedRunId&&s.generation===t.generation&&s.responseSchemaHash===(fn(r)??s.responseSchemaHash);if(s!==void 0&&pN(r)&&(!a||s.kind!=="generic"||s.definitionId===void 0||s.key===void 0||s.batchIndex===void 0))return{descriptor:r,binding:vs(r,t,s),kind:"generic",status:"error",canResolve:!1,resumable:!1,error:this.itemError(r.id,"stale","The interrupt binding does not match this interrupted run."),validationGeneration:0};if(a&&s.kind==="tool-approval"){const c=this.tools?.find(u=>u.name===s.toolName);if(c?.needsApproval===!0&&r.toolCallId===s.toolCallId)try{const u=KE(c.approvalSchema,c.inputSchema);if(La(c.inputSchema)===s.inputSchemaHash&&u.approvalSchemaHash===s.approvalSchemaHash&&u.responseSchemaHash===s.responseSchemaHash)return{descriptor:r,binding:de(s),kind:"tool-approval",status:"pending",canResolve:!0,resumable:!0,tool:c,validationGeneration:0}}catch{}}if(a&&s.kind==="client-tool-execution"){const c=this.tools?.find(u=>u.name===s.toolName);if(c!==void 0&&r.toolCallId===s.toolCallId&&La(c.outputSchema)===s.outputSchemaHash)return{descriptor:r,binding:de(s),kind:"client-tool-execution",status:"pending",canResolve:!0,resumable:!0,tool:c,validationGeneration:0}}if(s!==void 0&&s.kind==="generic"&&s.definitionId!==void 0&&s.key!==void 0&&s.batchIndex!==void 0&&s.key.length>0&&n.get(s.batchIndex)!==1)return{descriptor:r,binding:de(s),kind:"generic",status:"error",canResolve:!1,resumable:!1,error:this.itemError(r.id,"stale","Generic interrupt batch contains a duplicate batchIndex."),validationGeneration:0};if(i&&s.kind==="generic"&&s.definitionId!==void 0&&s.key!==void 0&&s.batchIndex!==void 0&&s.key.length>0&&n.get(s.batchIndex)===1){const c=this.interruptDefinitions.get(s.definitionId);if(c!==void 0&&Ja(c.responseSchema)===s.responseSchemaHash&&(c.payloadSchema===void 0?s.payloadSchemaHash===void 0:s.payloadSchemaHash===Ja(c.payloadSchema))){const u=gN(r);return{descriptor:r,binding:de(s),definition:c,kind:"generic",status:"pending",canResolve:!0,resumable:!0,...u===void 0?{}:{payload:de(u)},validationGeneration:0}}}const l=o||s!==void 0&&s.interruptId===r.id&&s.interruptedRunId===t.interruptedRunId&&s.generation===t.generation&&(s.kind!=="generic"||fn(r)===void 0||s.responseSchemaHash===fn(r));return{descriptor:r,binding:vs(r,t,s),kind:"generic",status:"pending",canResolve:l,resumable:l,validationGeneration:0}}buildSnapshot(e){const t=this.requireHydration(),n=this.items.filter(r=>r.kind!=="client-tool-execution"&&r.status!=="submitting").map(r=>{const s=IN(r,t);if(r.kind==="unbound"||r.binding===void 0){const a={...s,kind:"unbound",canResolve:!1};return Object.freeze(a)}if(r.kind==="tool-approval"&&r.binding.kind==="tool-approval"){const a=de(r.binding),l={...s,kind:"tool-approval",binding:a,toolName:r.binding.toolName,toolCallId:r.binding.toolCallId,originalArgs:de(r.binding.originalArgs),cancel:()=>this.cancelItem(r.descriptor.id,e),clearResolution:()=>this.clearItem(r.descriptor.id,e),resolveInterrupt:(c,u)=>{const f=De(u)?u:void 0;this.resolveItem(r.descriptor.id,{approved:c,...c&&f?.editedArgs!==void 0?{editedArgs:f.editedArgs}:{},...f?.payload!==void 0?{payload:f.payload}:{}},e)}};return Object.freeze(l)}const o=r.binding.kind==="generic"?de(r.binding):de({v:1,kind:"generic",interruptId:r.descriptor.id,interruptedRunId:t.interruptedRunId,generation:t.generation,...typeof r.binding.responseSchemaHash=="string"?{responseSchemaHash:r.binding.responseSchemaHash}:{}});if(r.definition!==void 0&&r.binding.kind==="generic"){const a={...s,kind:"generic",definitionId:r.definition.id,key:r.binding.key??"",payload:r.payload,binding:o,cancel:()=>this.cancelItem(r.descriptor.id,e),clearResolution:()=>this.clearItem(r.descriptor.id,e),resolveInterrupt:l=>this.resolveItem(r.descriptor.id,l,e)};return Object.freeze(a)}const i={...s,kind:"generic",binding:o,cancel:()=>this.cancelItem(r.descriptor.id,e),clearResolution:()=>this.clearItem(r.descriptor.id,e),resolveInterrupt:a=>this.resolveItem(r.descriptor.id,a,e)};return Object.freeze(i)});return Object.freeze(n)}publish(e="live"){if(!this.hydration){this.snapshot=Object.freeze([]),this.state=Object.freeze({interrupts:this.snapshot,pendingInterrupts:this.snapshot,interruptErrors:this.rootErrors,resuming:this.resuming}),this.options.onChange?.(e);return}this.snapshot=this.buildSnapshot(),this.state=Object.freeze({interrupts:this.snapshot,pendingInterrupts:this.snapshot,interruptErrors:this.rootErrors,resuming:this.resuming}),this.options.onChange?.(e)}resolveItem(e,t,n){this.assertItemMutable(n);const r=this.findItem(e);if(this.invalidateRetry(),!r.canResolve){r.status="error",r.error=this.itemError(e,"invalid-response-schema","The interrupt response schema is invalid and cannot be resolved."),n||this.publish();return}const s=++r.validationGeneration,o=this.validateCandidate(r,t);if(bt(o)){r.status="validating",r.error=void 0,n||this.publish(),Promise.resolve(o).then(i=>{s===r.validationGeneration&&this.applyValidation(r,i,n)}).catch(i=>{s===r.validationGeneration&&this.applyValidation(r,{code:this.validationCode(r),message:i instanceof Error?i.message:String(i)},n)});return}this.applyValidation(r,o,n)}cancelItem(e,t){this.assertItemMutable(t);const n=this.findItem(e);this.invalidateRetry(),n.validationGeneration++,n.resolution=Object.freeze(ms(n,{interruptId:e,status:"cancelled"})),n.status="staged",n.error=void 0,t||(this.publish(),this.maybeSubmit())}clearItem(e,t){this.assertItemMutable(t);const n=this.findItem(e);this.invalidateRetry(),n.validationGeneration++,n.resolution=void 0,n.error=void 0,n.status="pending",t||this.publish()}maybeSubmit(){const e=this.items.some(o=>o.kind==="generic"),t=this.items.filter(o=>Qe(o)&&!(e&&o.kind==="client-tool-execution"));if(t.length===0||t.some(o=>o.resolution===void 0||o.status!=="staged"))return;const n=this.requireHydration(),r=$E(t.map(o=>o.resolution).filter(o=>o!==void 0)),s=Object.freeze({threadId:n.threadId,interruptedRunId:n.interruptedRunId,generation:n.generation,resolutions:r.resolutions,canonicalResolutions:r.canonicalResolutions,fingerprint:r.fingerprint});this.submitBatch(s)}applyValidation(e,t,n){if(!("valid"in t)){e.status="error";const r=this.itemError(e.descriptor.id,t.code,t.message,t.path);e.error=r,e.kind==="client-tool-execution"&&(this.rootErrors=Object.freeze([...this.rootErrors.filter(s=>!(s.code==="item-validation-failed"&&s.interruptIds.includes(e.descriptor.id))),Object.freeze({scope:"batch",code:"item-validation-failed",message:r.message,source:"client",retryable:!1,interruptIds:Object.freeze([e.descriptor.id]),threadId:r.threadId,interruptedRunId:r.interruptedRunId,generation:r.generation})])),n||this.publish();return}e.resolution=de(ms(e,{interruptId:e.descriptor.id,status:"resolved",payload:t.payload})),e.status="staged",e.error=void 0,n||(this.publish(),this.maybeSubmit())}validateCandidate(e,t){if(e.kind==="generic"){const n=Yn(e.definition?.responseSchema??e.descriptor.responseSchema,t,"invalid-payload");if(e.definition===void 0)return n;const r=s=>"valid"in s?{valid:!0,payload:t}:s;return bt(n)?Promise.resolve(n).then(r):r(n)}return e.kind==="client-tool-execution"?Yn(e.tool?.outputSchema,t,"invalid-tool-output"):this.validateApprovalCandidate(e,t)}validateApprovalCandidate(e,t){if(!De(t)||typeof t.approved!="boolean")return{code:"invalid-payload",message:"Tool approval resolutions require an approved boolean."};const n=t.approved,r=t.editedArgs;if(!n&&r!==void 0)return{code:"invalid-edited-args",message:"Rejected tool approvals cannot edit tool arguments."};if(n&&r!==void 0){const s=Yn(e.tool?.inputSchema,r,"invalid-edited-args");return bt(s)?Promise.resolve(s).then(o=>"valid"in o?this.validateApprovalPayload(e,t,o.payload):o):"valid"in s?this.validateApprovalPayload(e,t,s.payload):s}return this.validateApprovalPayload(e,t,void 0)}validateApprovalPayload(e,t,n){const r=t.approved===!0,s=this.approvalBranchSchema(e.tool,r),o=t.payload;if(s===void 0&&o!==void 0)return{code:"invalid-payload",message:"This approval branch does not accept a payload."};if(s!==void 0&&o===void 0)return{code:"invalid-payload",message:"This approval branch requires a payload."};const i=Yn(s,o,"invalid-payload"),a=l=>"valid"in l?{valid:!0,payload:{approved:r,...n!==void 0?{editedArgs:n}:{},...s!==void 0?{payload:l.payload}:{}}}:l;return bt(i)?Promise.resolve(i).then(a):a(i)}approvalBranchSchema(e,t){const n=e?.approvalSchema;return!De(n)||!("approve"in n||"reject"in n)?n:t?n.approve:n.reject}validationCode(e){return e.kind==="client-tool-execution"?"invalid-tool-output":"invalid-payload"}resolveBooleanBulk(e){const t=this.items.filter(n=>Qe(n)&&n.kind!=="client-tool-execution");if(!t.every(n=>n.kind==="tool-approval"&&this.approvalBranchSchema(n.tool,e)===void 0)||t.length===0){this.addRootError("unsupported-bulk-operation","Boolean bulk resolution requires payloadless tool approvals.",!1);return}this.invalidateRetry();for(const n of t)n.validationGeneration++,n.resolution=de({interruptId:n.descriptor.id,status:"resolved",payload:{approved:e}}),n.status="staged",n.error=void 0;this.publish(),this.maybeSubmit()}resolveTransaction(e){const t=this.items.map(o=>({status:o.status,...o.resolution!==void 0?{resolution:o.resolution}:{},...o.error!==void 0?{error:o.error}:{},validationGeneration:o.validationGeneration})),n={active:!0};this.activeTransaction=n;const r=this.buildSnapshot(n).filter(cN);let s;try{for(const o of r){const i=e(o);if(i!==void 0){s={code:bt(i)?"async-resolver":"inactive-transaction",message:bt(i)?"Interrupt transaction resolvers must be synchronous.":"Interrupt transaction resolvers must return literal undefined."};break}}s===void 0&&this.items.some(o=>Qe(o)&&o.kind!=="client-tool-execution"&&(o.resolution===void 0||o.status!=="staged"))&&(s={code:"incomplete-batch",message:"Interrupt transaction did not resolve every item."})}catch(o){s={code:"item-validation-failed",message:o instanceof Error?o.message:String(o)}}finally{n.active=!1,this.activeTransaction=void 0}if(s){this.restoreCheckpoints(t),this.addRootError(s.code,s.message,!1);return}this.publish(),this.maybeSubmit()}restoreCheckpoints(e){this.items.forEach((t,n)=>{const r=e[n];r&&(t.status=r.status,t.resolution=r.resolution,t.error=r.error,t.validationGeneration=r.validationGeneration+1)}),this.publish()}assertItemMutable(e){if(e&&!e.active)throw new Error("Interrupt transaction is inactive.");if(this.activeTransaction&&e!==this.activeTransaction)throw new Error("Interrupt transaction is inactive.");if(this.resuming)throw new Error("Interrupts cannot be mutated while submitting.")}assertRootMutable(){if(this.activeTransaction)throw new Error("Interrupt transaction is already active.");if(this.resuming)throw new Error("Interrupts cannot be mutated while submitting.")}invalidateRetry(){this.retrySubmission=void 0}submitBatch(e){const t={submission:e};this.activeSubmissionOperation=t,this.resuming=!0,this.retrySubmission=void 0;for(const n of this.items)Qe(n)&&(n.status="submitting");this.publish(),this.performSubmission(t)}async performSubmission(e){try{await this.options.submit(e.submission)}catch(t){if(this.activeSubmissionOperation!==e)return;this.handleSubmissionFailure(t,e.submission)}finally{this.activeSubmissionOperation===e&&(this.activeSubmissionOperation=void 0,this.resuming=!1,this.publish())}}handleSubmissionFailure(e,t){const n=bN(e);if(n.length===0){const l=e instanceof Error?e.message:String(e);this.addRootError("transport",l,!0,"transport"),this.retrySubmission=t;for(const c of this.items)Qe(c)&&(c.status="error");return}const r=n.filter(l=>SN(l,t));r.length!==n.length&&this.addRootError("protocol","Interrupt submission errors did not match the active batch.",!1);let s=!1,o=!1;const i=[];for(const l of r)if((l.code==="stale"||l.code==="expired"||l.code==="conflict")&&(s=!0),o||=l.retryable,l.scope==="item"){const c=this.items.find(u=>Qe(u)&&u.descriptor.id===l.interruptId);c&&(c.status="error",c.error=de(l))}else i.push(de(l));const a=xN(this.rootErrors,this.submissionRootErrors,i);this.rootErrors=a.rootErrors,this.submissionRootErrors=a.submissionRootErrors;for(const l of this.items)Qe(l)&&l.status==="submitting"&&(l.status="error");this.retrySubmission=o&&!s?t:void 0}addRootError(e,t,n,r="client"){const s=this.requireHydration();this.rootErrors=Object.freeze([...this.rootErrors,Object.freeze({scope:"batch",code:e,message:t,source:r,retryable:n,interruptIds:Object.freeze(this.items.filter(Qe).map(o=>o.descriptor.id)),threadId:s.threadId,interruptedRunId:s.interruptedRunId,generation:s.generation})]),this.publish()}findItem(e){const t=this.items.find(n=>n.descriptor.id===e);if(!t)throw new Error(`Unknown interrupt: ${e}`);return t}requireHydration(){if(!this.hydration)throw new Error("InterruptManager is not hydrated.");return this.hydration}itemError(e,t,n,r){const s=this.requireHydration();return Object.freeze({scope:"item",interruptId:e,code:t,message:n,...r!==void 0?{path:Object.freeze([...r])}:{},source:"client",retryable:!1,threadId:s.threadId,interruptedRunId:s.interruptedRunId,generation:s.generation})}};function EN(e,...t){const n=e?.();if(_e(n))return n;for(const r of t)if(_e(r))return r}async function CN(e,t){if(!t)throw new dd;return await e.prepare(t),e.headers(t)}function NN(){const e=globalThis.crypto;return e?.randomUUID?e.randomUUID():Math.random().toString(36).slice(2)}var Wn;function tl(){return Wn!==void 0||(globalThis.__TANSTACK_AI_DEVTOOLS_RUNTIME_ID__||(globalThis.__TANSTACK_AI_DEVTOOLS_RUNTIME_ID__=NN()),Wn=globalThis.__TANSTACK_AI_DEVTOOLS_RUNTIME_ID__),Wn}var RN=0;function He(e){return e==null||e===""?"missing":`value-${encodeURIComponent(String(e))}`}function Qs(e){const t=e.runtimeId??tl(),n=e.eventId&&e.eventId.length>0?e.eventId:[e.source,e.eventType,He(t),He(e.clientId),He(e.requestId),He(e.streamId),He(e.hookId),He(e.threadId),He(e.runId),He(e.messageId),He(e.toolCallId),He(e.sequence),e.timestamp,tl(),RN++].join(":");return{...e,runtimeId:t,eventId:n}}var _N=class extends ef{constructor(){super({pluginId:"tanstack-ai-devtools"})}},nl=Symbol.for("tanstack.ai.devtools.eventClient");function TN(){const e=globalThis,t=e[nl];if(t)return t;const n=new _N;return e[nl]=n,n}var _n=TN();function xe(e,t){_n.emit(e,t)}var $d=class{clientId;constructor(e){this.clientId=e}clientCreated(e){this.emitEvent("client:created",{initialMessageCount:e})}loadingChanged(e){this.emitEvent("client:loading:changed",{isLoading:e})}errorChanged(e){this.emitEvent("client:error:changed",{error:e})}textUpdated(e,t,n,r){this.emitEvent("text:chunk:content",{streamId:e,messageId:t,content:n,...r})}toolCallStateChanged(e,t,n,r,s,o,i){this.emitEvent("tools:call:updated",{streamId:e,messageId:t,toolCallId:n,toolName:r,state:s,arguments:o,...i})}thinkingUpdated(e,t,n,r,s){this.emitEvent("text:chunk:thinking",{streamId:e,messageId:t,content:n,delta:r,...s})}structuredOutputChanged(e,t,n,r,s){this.emitEvent(e,{streamId:t,messageId:n,...r,...s})}approvalRequested(e,t,n,r,s,o,i){this.emitEvent("tools:approval:requested",{streamId:e,messageId:t,toolCallId:n,toolName:r,input:s,approvalId:o,...i})}messageAppended(e,t,n){const r=e.parts.filter(s=>s.type==="text").map(s=>s.content).join(" ");this.emitEvent("text:message:created",{streamId:t,messageId:e.id,role:e.role,content:r,parts:e.parts,...n})}messageSent(e,t){const n=typeof t=="string"?t:t.filter(r=>r.type==="text").map(r=>r.content).join("");this.emitEvent("text:message:created",{messageId:e,role:"user",content:n,...Array.isArray(t)&&{parts:t}}),this.emitEvent("text:message:user",{messageId:e,role:"user",content:n,...Array.isArray(t)&&{parts:t}})}reloaded(e){this.emitEvent("client:reloaded",{fromMessageIndex:e})}stopped(){this.emitEvent("client:stopped")}messagesCleared(){this.emitEvent("client:messages:cleared")}toolResultAdded(e,t,n,r,s){this.emitEvent("tools:result:added",{toolCallId:e,toolName:t,output:n,state:r,...s})}toolApprovalResponded(e,t,n,r){this.emitEvent("tools:approval:responded",{approvalId:e,toolCallId:t,approved:n,...r})}toolFixtureApplied(e){this.emitEvent("devtools:tool-fixture:applied",{...e})}},AN=class extends $d{emitEvent(e,t){const n=Date.now(),r=e.startsWith("text:")||e.startsWith("tools:")||e.startsWith("structured-output:")||e==="devtools:tool-fixture:applied",s=e.startsWith("client:")||e.startsWith("tools:")||e.startsWith("text:")||e.startsWith("structured-output:")||e==="devtools:tool-fixture:applied",o=r?"user-visible":"client-state",i={hookId:this.clientId,...typeof t?.threadId=="string"?{threadId:t.threadId}:{},...typeof t?.runId=="string"?{runId:t.runId}:{},...typeof t?.streamId=="string"?{streamId:t.streamId}:{},...typeof t?.messageId=="string"?{messageId:t.messageId}:{},...typeof t?.toolCallId=="string"?{toolCallId:t.toolCallId}:{}};if(s){const a=Qs({eventType:e,clientId:this.clientId,...i,source:"client",visibility:o,timestamp:n});_n.emit(e,{...t,...a})}else{const a=Qs({eventType:e,source:"client",visibility:"client-state",timestamp:n});_n.emit(e,{...t,...a})}}},MN=class extends $d{emitEvent(){}},kN=class{events;constructor(e){this.events=new MN(e.clientId)}emitRegistered(){}emitUpdated(){}emitSnapshot(){}emitToolsRegistered(){}emitRunLifecycle(e,t,n,r){}deactivate(){}supersede(){}dispose(){}mountWithTools(e){}notifyToolsChanged(){}setCurrentStreamId(e){}recordStreamId(e){}getCurrentStreamId(){return null}getLastStreamId(){return null}resolveStreamId(){return""}observeChunk(e){}recordMemoryState(e){}recordCompactionEvent(e,t){}recordCompactionState(e){}recordSkillsState(e){}beginRun(e,t){}getCurrentRunEventContext(){}getCurrentOrLastRunEventContext(){}findToolCallContext(e){return{toolCallId:e}}async applyFixture(e){}},ON=e=>new kN(e);function rl(e){if(Array.isArray(e))return{messages:e};if(e&&Array.isArray(e.messages))return e}function sl(e){return"toolCallId"in e&&typeof e.toolCallId=="string"?e.toolCallId:void 0}function ol(e){return"messageId"in e&&typeof e.messageId=="string"?e.messageId:void 0}function jN(e){return"parentMessageId"in e&&typeof e.parentMessageId=="string"?e.parentMessageId:void 0}var PN=class{adapter;id;applyMessages;applyResume;skipNextPersist=!1;generation=0;queue=Promise.resolve();queuePending=!1;messagesGeneration=0;lastMessages=[];lastResume=null;clearedMessageIds=new Set;clearedRunIds=new Set;ignoredActiveRunIds=new Set;clearedToolCallIds=new Set;currentRunlessRunId=null;constructor(e,t,n,r){this.adapter=e,this.id=t,this.applyMessages=n,this.applyResume=r}writeState(){const e=[...this.lastMessages];if(e.length===0&&!this.lastResume){const r=this.generation;this.runOperation(()=>{if(r===this.generation)return this.adapter.removeItem(this.id)});return}const t=this.generation,n={messages:e,...this.lastResume?{resume:this.lastResume}:{}};this.runOperation(()=>{if(t===this.generation)return this.adapter.setItem(this.id,n)})}readInitial(){try{const e=this.adapter.getItem(this.id);if(e instanceof Promise)return e.then(rl).catch(()=>{});const t=rl(e);return t&&(this.lastMessages=t.messages,this.lastResume=t.resume??null),t}catch{return}}hydrateAsync(e){if(!(e instanceof Promise))return;const t=this.messagesGeneration;e.then(n=>{!n||this.messagesGeneration!==t||(this.lastResume=n.resume??null,this.lastMessages=n.messages,this.applyMessages(n.messages),n.resume&&this.applyResume&&this.applyResume(n.resume))}).catch(()=>{})}notifyMessagesChanged(e){if(this.messagesGeneration++,this.lastMessages=[...e],this.skipNextPersist){this.skipNextPersist=!1;return}this.writeState()}persistResumeSnapshot(e){this.lastResume=e,!this.skipNextPersist&&this.writeState()}remove(){this.lastMessages=[],this.lastResume=null;const e=++this.generation;this.runOperation(()=>{if(e===this.generation)return this.adapter.removeItem(this.id)})}runOperation(e){if(this.queuePending){const t=this.queue.then(e).catch(()=>{});this.queue=t,t.finally(()=>{this.queue===t&&(this.queuePending=!1)});return}try{const t=e();if(t instanceof Promise){this.queuePending=!0;const n=t.catch(()=>{});this.queue=n,n.finally(()=>{this.queue===n&&(this.queuePending=!1)})}}catch{}}snapshotClear(e){for(const t of e.messages)this.clearedMessageIds.add(t.id);for(const t of e.activeRunIds)this.clearedRunIds.add(t),this.ignoredActiveRunIds.add(t);e.currentRunId&&(this.clearedRunIds.add(e.currentRunId),this.ignoredActiveRunIds.add(e.currentRunId))}beginClear(){this.skipNextPersist=!0}shouldIgnoreChunk(e){const t=Re(e);if(t&&this.clearedRunIds.has(t))return e.type==="RUN_STARTED"&&(this.ignoredActiveRunIds.add(t),this.currentRunlessRunId=t),this.markIgnoredChunkIds(e),!0;if(t&&this.ignoredActiveRunIds.has(t))return this.markIgnoredChunkIds(e),!0;if(this.isRunlessChunkFromIgnoredRun(e))return this.markIgnoredChunkIds(e),!0;const n=sl(e);if(n&&this.clearedToolCallIds.has(n))return!0;const r=jN(e);if(r&&this.clearedMessageIds.has(r))return n&&this.clearedToolCallIds.add(n),!0;const s=ol(e);return s?!!this.clearedMessageIds.has(s):!1}onRunStarted(e){this.currentRunlessRunId=e}onRunSettled(e){this.ignoredActiveRunIds.delete(e),this.clearedRunIds.delete(e),this.currentRunlessRunId===e&&(this.currentRunlessRunId=this.ignoredActiveRunIds.values().next().value??null)}onSessionRunError(){this.ignoredActiveRunIds.clear(),this.currentRunlessRunId=null}resetIgnored(){this.ignoredActiveRunIds.clear()}takeRunlessRunId(){const e=this.currentRunlessRunId;return e?(this.ignoredActiveRunIds.delete(e),this.clearedRunIds.delete(e),this.currentRunlessRunId=this.ignoredActiveRunIds.values().next().value??null,e):null}markIgnoredChunkIds(e){const t=ol(e);t&&this.clearedMessageIds.add(t);const n=sl(e);n&&this.clearedToolCallIds.add(n)}isRunlessChunkFromIgnoredRun(e){return Re(e)||!this.currentRunlessRunId||!this.ignoredActiveRunIds.has(this.currentRunlessRunId)&&!this.clearedRunIds.has(this.currentRunlessRunId)?!1:e.type==="TEXT_MESSAGE_START"||e.type==="TEXT_MESSAGE_CONTENT"||e.type==="TOOL_CALL_START"||e.type==="TOOL_CALL_ARGS"||e.type==="TOOL_CALL_END"||e.type==="TOOL_CALL_RESULT"||e.type==="MESSAGES_SNAPSHOT"||e.type==="RUN_ERROR"}};function il(e){return"toolCallId"in e&&typeof e.toolCallId=="string"?e.toolCallId:void 0}function al(e){return"messageId"in e&&typeof e.messageId=="string"?e.messageId:void 0}function LN(e){return"parentMessageId"in e&&typeof e.parentMessageId=="string"?e.parentMessageId:void 0}var DN=class{clearedMessageIds=new Set;clearedRunIds=new Set;ignoredActiveRunIds=new Set;clearedToolCallIds=new Set;currentRunlessRunId=null;snapshotClear(e){for(const t of e.messages)this.clearedMessageIds.add(t.id);for(const t of e.activeRunIds)this.clearedRunIds.add(t),this.ignoredActiveRunIds.add(t);e.currentRunId&&(this.clearedRunIds.add(e.currentRunId),this.ignoredActiveRunIds.add(e.currentRunId))}shouldIgnoreChunk(e){const t=Re(e);if(t&&this.clearedRunIds.has(t))return e.type==="RUN_STARTED"&&(this.ignoredActiveRunIds.add(t),this.currentRunlessRunId=t),this.markIgnoredChunkIds(e),!0;if(t&&this.ignoredActiveRunIds.has(t))return this.markIgnoredChunkIds(e),!0;if(this.isRunlessChunkFromIgnoredRun(e))return this.markIgnoredChunkIds(e),!0;const n=il(e);if(n&&this.clearedToolCallIds.has(n))return!0;const r=LN(e);if(r&&this.clearedMessageIds.has(r))return n&&this.clearedToolCallIds.add(n),!0;const s=al(e);return!!(s&&this.clearedMessageIds.has(s))}onRunStarted(e){this.currentRunlessRunId=e}onRunSettled(e){this.ignoredActiveRunIds.delete(e),this.clearedRunIds.delete(e),this.currentRunlessRunId===e&&(this.currentRunlessRunId=this.ignoredActiveRunIds.values().next().value??null)}onSessionRunError(){this.ignoredActiveRunIds.clear(),this.currentRunlessRunId=null}resetActiveRuns(){this.ignoredActiveRunIds.clear(),this.currentRunlessRunId=null}takeRunlessRunId(){const e=this.currentRunlessRunId;return e?(this.ignoredActiveRunIds.delete(e),this.clearedRunIds.delete(e),this.currentRunlessRunId=this.ignoredActiveRunIds.values().next().value??null,e):null}markIgnoredChunkIds(e){const t=al(e);t&&this.clearedMessageIds.add(t);const n=il(e);n&&this.clearedToolCallIds.add(n)}isRunlessChunkFromIgnoredRun(e){return Re(e)||!this.currentRunlessRunId||!this.ignoredActiveRunIds.has(this.currentRunlessRunId)&&!this.clearedRunIds.has(this.currentRunlessRunId)?!1:e.type==="TEXT_MESSAGE_START"||e.type==="TEXT_MESSAGE_CONTENT"||e.type==="TOOL_CALL_START"||e.type==="TOOL_CALL_ARGS"||e.type==="TOOL_CALL_END"||e.type==="TOOL_CALL_RESULT"||e.type==="MESSAGES_SNAPSHOT"||e.type==="RUN_ERROR"}};function $N(e){const t=new Set;for(const n of e??[]){if(t.has(n.id))throw new Error(`Duplicate interrupt definition id: ${n.id}`);t.add(n.id)}}function ll(e){const{connection:t,fetcher:n}=e;if(t&&n)throw new Error("ChatClient: pass either `connection` or `fetcher`, not both.");if(t)return t;if(n)return aN(n);throw new Error("ChatClient: either `connection` or `fetcher` is required.")}function cl(e){return"connect"in e}function ul(e){if(e.type!=="RUN_FINISHED"||e.outcome?.type==="interrupt")return!1;const t=e;return t.finishReason!==void 0?t.finishReason==="tool_calls":ae(e)?.finishReason==="tool_calls"}function dl(e){const t={whenBusy:"queue",drain:"fifo",onOverflow:"reject"};if(!e)return t;if(typeof e=="string")return{...t,whenBusy:e};if(typeof e=="function")return{...t,strategy:e};const n=e.maxSize;if(n!==void 0&&(!Number.isInteger(n)||n<0))throw new Error("ChatClient: queue.maxSize must be a non-negative integer");return{whenBusy:e.whenBusy??"queue",drain:e.drain??"fifo",onOverflow:e.onOverflow??"reject",...n!==void 0?{maxSize:n}:{}}}function FN(e){const t=e.at(-1)?.body,n=[];for(const o of e){if(typeof o.content!="string")break;n.push(o.content)}if(n.length===e.length)return{content:n.join(`
|
|
11
11
|
`),...t!==void 0?{body:t}:{}};const r=[];let s;for(const o of e){if(typeof o.content=="string"){r.push({type:"text",content:o.content});continue}typeof o.content.content=="string"?r.push({type:"text",content:o.content.content}):r.push(...o.content.content),s=pd(s,o.content.metadata)}return{content:{content:r,...s!==void 0?{metadata:s}:{}},...t!==void 0?{body:t}:{}}}function zN(e){if(!(e===null||typeof e!="object"||Array.isArray(e))&&!(!("approved"in e)||typeof e.approved!="boolean"))return e.approved}function HN(e){const t=e;if(t===null||typeof t!="object"||!("resumeState"in t))return;const n=t.resumeState;if(!(n===null||typeof n!="object"||!("threadId"in n)||typeof n.threadId!="string"||n.threadId.length===0||!("runId"in n)||typeof n.runId!="string"||n.runId.length===0))return{threadId:n.threadId,runId:n.runId}}var BN=2e3,GN=new Set(["TEXT_MESSAGE_START","TEXT_MESSAGE_CONTENT","TOOL_CALL_START","MESSAGES_SNAPSHOT"]),UN=64,qN=class{processor;connection;uniqueId;threadId;persistor;clearedStreamTracker=new DN;currentRunId=null;lastResume=null;runParents=new Map;supersededInterruptRunIds=new Set;rejoinedRunId=null;interruptManager;activeInterruptSubmission;interruptSubmissionFailure;joinedRunWaiters=new Map;pendingResumeParentRunId=null;pendingResumeThreadId=null;pendingResumeItems=null;activeResumeThreadId=null;activeResumeRunId=null;bodyOption={};forwardedPropsOption={};byok;byokProvider;context=void 0;pendingMessageBody=void 0;queueConfig;messageQueue=[];sendInFlight=!1;messageQueueDraining=!1;stopMessageQueueDrain=!1;deliverClaim=!1;isLoading=!1;isSubscribed=!1;error=void 0;status="ready";connectionStatus="disconnected";abortController=null;clientToolsRef;devtoolsBridge;events;currentStreamId=null;currentMessageId=null;postStreamActions=[];pendingToolExecutions=new Map;activeClientTools=null;activeContext=void 0;continuationPending=!1;subscriptionAbortController=null;processingResolve=null;connectionDrainsOnSend=!1;errorReportedGeneration=null;streamGeneration=0;continuationGeneration=0;streamContinuationGeneration=0;continuationSkipped=!1;draining=!1;sessionGenerating=!1;activeRunIds=new Set;disposed=!1;tailing=!1;rejoinRunId;cachesMessages;historyPageSize;hasOlderMessages=!1;olderMessagesCursor;knownServerMessageIds=new Set;loadOlderMessagesInFlight=!1;historyGeneration=0;devtoolsMounted=!1;callbacksRef;constructor(e){$N(e.interrupts),this.threadId=e.threadId||"",this.uniqueId=this.threadId;let t=!0;if(e.persistence===!0){if(!e.threadId)throw new Error("[TanStack AI] persistence needs a stable `threadId` to key on. Pass a threadId from your app (for example support-42).");t=!1,this.historyPageSize=e.history?.pageSize}else if(e.persistence){if(!e.threadId)throw new Error("[TanStack AI] persistence needs a stable `threadId` to key on. Pass a threadId from your app (for example support-42).");this.persistor=new PN(e.persistence,e.threadId,a=>this.processor.setMessages(a),a=>this.applyPersistedResume(a)),this.historyPageSize=void 0}else this.historyPageSize=void 0;this.bodyOption=e.body||{},this.forwardedPropsOption=e.forwardedProps||{},this.byok=e.byok,this.byokProvider=e.byokProvider,this.context=e.context,this.queueConfig=dl(e.queue);const n=ll(e);if(this.connectionDrainsOnSend=cl(n),this.connection=Xa(n),this.clientToolsRef={current:new Map},e.tools)for(const a of e.tools)this.clientToolsRef.current.set(a.name,a);this.devtoolsBridge=(e.devtoolsBridgeFactory??ON)(this.buildDevtoolsBridgeOptions(e.devtools)),this.events=this.devtoolsBridge.events,this.callbacksRef={current:{onResponse:e.onResponse||(()=>{}),onChunk:e.onChunk||(()=>{}),onFinish:e.onFinish||(()=>{}),onError:e.onError||(()=>{}),onMessagesChange:e.onMessagesChange||(()=>{}),onLoadingChange:e.onLoadingChange||(()=>{}),onErrorChange:e.onErrorChange||(()=>{}),onStatusChange:e.onStatusChange||(()=>{}),onSubscriptionChange:e.onSubscriptionChange||(()=>{}),onConnectionStatusChange:e.onConnectionStatusChange||(()=>{}),onSessionGeneratingChange:e.onSessionGeneratingChange||(()=>{}),onQueueChange:e.onQueueChange||(()=>{}),onResumeStateChange:e.onResumeStateChange||(()=>{}),onRunIdChange:e.onRunIdChange||(()=>{}),onInterruptStateChange:e.onInterruptStateChange||(()=>{}),onCustomEvent:e.onCustomEvent||(()=>{})}},this.interruptManager=new wN({...e.tools!==void 0?{tools:e.tools}:{},...e.interrupts!==void 0?{interrupts:e.interrupts}:{},submit:a=>this.submitInterruptBatch(a),onChange:a=>this.notifyResumeStateChange(a)}),e.initialResumeSnapshot&&this.applyResumeSnapshot(e.initialResumeSnapshot);const r=this.persistor?.readInitial(),s=r instanceof Promise?void 0:r,o=s?s.messages:e.initialMessages;let i=null;if(s?.resume){const a=s.resume;Array.isArray(a.pendingInterrupts)&&a.pendingInterrupts.length>0?this.applyResumeSnapshot(a):a.resumeState.runId&&(i=a.resumeState.runId)}if(!i&&e.initialResumeSnapshot){const a=e.initialResumeSnapshot;!(Array.isArray(a.pendingInterrupts)&&a.pendingInterrupts.length>0)&&a.resumeState.runId&&(i=a.resumeState.runId)}this.processor=new BC({...e.streamProcessor?.chunkStrategy?{chunkStrategy:e.streamProcessor.chunkStrategy}:{},...o?{initialMessages:o}:{},events:{onMessagesChange:a=>{this.persistor?.notifyMessagesChanged(a),this.callbacksRef.current.onMessagesChange(a)},onStreamStart:()=>{this.setStatus("streaming");const a=this.processor.getCurrentAssistantMessageId();if(!a)return;const l=this.processor.getMessages().find(c=>c.id===a);l&&(this.currentMessageId=l.id,this.events.messageAppended(l,this.currentStreamId||void 0))},onStreamEnd:a=>{this.callbacksRef.current.onFinish(a),this.setStatus("ready"),this.resolveProcessing()},onError:a=>{this.reportStreamError(a)},onTextUpdate:(a,l)=>{this.currentStreamId&&this.events.textUpdated(this.currentStreamId,a,l)},onThinkingUpdate:(a,l)=>{this.currentStreamId&&this.events.thinkingUpdated(this.currentStreamId,a,l,void 0)},onStructuredOutputChange:a=>{const l=this.devtoolsBridge.resolveStreamId(),c=a.phase==="start"?"structured-output:started":a.phase==="complete"?"structured-output:completed":a.phase==="error"?"structured-output:errored":"structured-output:updated";this.currentMessageId=a.messageId,this.events.structuredOutputChanged(c,l,a.messageId,{status:a.status,raw:a.raw,...a.partial!==void 0?{partial:a.partial}:{},...a.data!==void 0?{data:a.data}:{},...a.reasoning!==void 0?{reasoning:a.reasoning}:{},...a.errorMessage!==void 0?{errorMessage:a.errorMessage}:{},...a.delta!==void 0?{delta:a.delta}:{}})},onToolCallStateChange:(a,l,c,u)=>{const f=this.processor.getMessages().find(d=>d.id===a)?.parts.find(d=>d.type==="tool-call"&&d.id===l)?.name||"unknown";this.currentStreamId&&this.events.toolCallStateChanged(this.currentStreamId,a,l,f,c,u)},onToolCall:a=>{const l=(this.activeClientTools??this.clientToolsRef.current).get(a.toolName),c=l?.execute;if(c){const u=this.continuationGeneration,f=this.devtoolsBridge.getCurrentRunEventContext(),d=(async()=>{try{const p=this.activeClientTools===null?this.context:this.activeContext,g=await c(a.input,{toolCallId:a.toolCallId,context:p,emitCustomEvent:()=>{}});await this.addToolResultForClientTool({toolCallId:a.toolCallId,tool:a.toolName,output:g,state:"output-available"},l,u,f)}catch(p){await this.addToolResultForClientTool({toolCallId:a.toolCallId,tool:a.toolName,output:null,state:"output-error",errorText:p.message},l,u,f)}finally{this.pendingToolExecutions.delete(a.toolCallId)}})();this.pendingToolExecutions.set(a.toolCallId,d)}},onApprovalRequest:a=>{const l=this.devtoolsBridge.resolveStreamId(),c=this.findMessageIdForToolCall(a.toolCallId)??this.currentMessageId??"";this.events.approvalRequested(l,c,a.toolCallId,a.toolName,a.input,a.approvalId)},onCustomEvent:(a,l,c)=>{a==="memory:state"&&this.devtoolsBridge.recordMemoryState(l),(a==="compaction:started"||a==="compaction:state"||a==="compaction:ended")&&this.devtoolsBridge.recordCompactionEvent(a,l),a==="skills:state"&&this.devtoolsBridge.recordSkillsState(l),this.callbacksRef.current.onCustomEvent(a,l,c)}}}),this.persistor?.hydrateAsync(r),this.rejoinRunId=i,this.cachesMessages=t}attach(){this.disposed||this.tailing||(this.ensureThreadId(),this.tailing=!0,this.rejoinRunId&&this.maybeRejoinInFlight(this.rejoinRunId),!this.cachesMessages&&this.connection.hydrate&&this.hydrateFromServer())}detach(){this.tailing&&(this.tailing=!1,this.cancelInFlightStream({setReadyStatus:!0}),this.rejoinedRunId=null)}applyResumeSnapshot(e){const t=HN(e);if(t===void 0){this.interruptManager.reset({source:"hydrate"});return}this.lastResume=t;const n=Array.isArray(e.pendingInterrupts)?e.pendingInterrupts:[];if(n.length===0){this.interruptManager.reset({source:"hydrate"});return}const r=this.interruptGeneration(n);this.interruptManager.hydrate({threadId:t.threadId,interruptedRunId:t.runId,generation:r,interrupts:n},"hydrate")}applyPersistedResume(e){this.applyResumeSnapshot(e);const t=Array.isArray(e.pendingInterrupts)&&e.pendingInterrupts.length>0,n=e.resumeState?.runId;!t&&n&&this.maybeRejoinInFlight(n)}maybeRejoinInFlight(e){this.connection.joinRun&&(this.disposed||!this.tailing||this.rejoinedRunId!==e&&(this.isLoading||this.abortController||(this.rejoinedRunId=e,this.resumeInFlightRun(e))))}hydrateFromServer(){const e=this.connection.hydrate;if(!e||this.isLoading||this.abortController||this.disposed)return;const t=this.historyPageSize,n=t===void 0?void 0:{limit:t};(async()=>{let r;const s=this.historyGeneration;try{r=await e(this.threadId,n)}catch{return}if(s===this.historyGeneration&&!(this.disposed||!this.tailing)&&!(this.isLoading||this.abortController)){if(this.applyHydrationPage(r.page),r.messages.length>0){const o=Bs(r.messages);this.processor.setMessages(o),this.rememberServerMessageIds(o)}r.interrupts&&r.interrupts.pending.length>0?this.applyResumeSnapshot({resumeState:{threadId:this.threadId,runId:r.interrupts.runId},pendingInterrupts:r.interrupts.pending}):r.activeRun?.runId&&this.maybeRejoinInFlight(r.activeRun.runId)}})()}mountDevtools(){this.ensureThreadId(),!this.devtoolsMounted&&(this.devtoolsMounted=!0,this.devtoolsBridge.mountWithTools(this.processor.getMessages().length))}ensureThreadId(){return this.threadId||(this.threadId=this.generateUniqueId("thread")),this.uniqueId=this.threadId,this.threadId}drainIgnoredRunlessChunk(e){if(e.type!=="RUN_ERROR")return;const t=this.clearedStreamTracker.takeRunlessRunId();t&&(this.activeRunIds.delete(t),this.setSessionGenerating(this.activeRunIds.size>0),this.resolveProcessing())}retireIgnoredClearedTerminalChunk(e){if(e.type!=="RUN_FINISHED"&&e.type!=="RUN_ERROR")return;const t=Re(e)??this.clearedStreamTracker.takeRunlessRunId();t&&(this.activeRunIds.delete(t),this.setSessionGenerating(this.activeRunIds.size>0),Re(e)||this.resolveProcessing())}updateRunLifecycle(e,t){if(e.type==="RUN_STARTED"){const s=Re(e)??e.runId,o="parentRunId"in e&&typeof e.parentRunId=="string"?e.parentRunId:void 0;o&&(this.runParents.set(s,o),this.supersededInterruptRunIds.has(s)&&this.markLineageAnswered(o)),this.activeResumeThreadId="threadId"in e&&typeof e.threadId=="string"?e.threadId:this.activeResumeThreadId,this.activeResumeRunId=s;const i=this.supersededInterruptRunIds.has(s)&&!this.isLoading;i||(this.activeRunIds.add(s),this.clearedStreamTracker.onRunStarted(s),this.setSessionGenerating(!0)),this.persistor&&this.connection.joinRun&&!this.lastResume&&!i&&this.persistResumeSnapshot({threadId:this.activeResumeThreadId??this.threadId,runId:s}),this.lastResume&&this.supersededInterruptRunIds.has(this.lastResume.runId)&&(this.lastResume=null,this.persistor?.persistResumeSnapshot(null),this.interruptManager.reset());return}if(e.type!=="RUN_FINISHED"&&e.type!=="RUN_ERROR")return;const n=Re(e);n?(this.activeRunIds.delete(n),this.clearedStreamTracker.onRunSettled(n)):e.type==="RUN_ERROR"&&(this.activeRunIds.clear(),this.clearedStreamTracker.onSessionRunError()),this.setSessionGenerating(this.activeRunIds.size>0);const r=e.type==="RUN_FINISHED"&&ul(e);t?.resolveProcessing!==!1&&!r&&this.resolveProcessing()}observeInterruptState(e){if(e.type!=="RUN_FINISHED"&&e.type!=="RUN_ERROR"||this.activeInterruptSubmission&&e.type==="RUN_ERROR")return;const t=Re(e),n="threadId"in e&&typeof e.threadId=="string"?e.threadId:this.activeResumeThreadId;if(t&&!ul(e)&&(e.type==="RUN_ERROR"||e.type==="RUN_FINISHED"&&e.outcome?.type!=="interrupt")&&this.markLineageAnswered(t),e.type==="RUN_FINISHED"&&e.outcome?.type==="interrupt"){const u=this.currentRunId??t??this.activeResumeRunId??"";if(u&&this.supersededInterruptRunIds.has(u))return;this.lastResume={threadId:n??this.threadId,runId:u},this.interruptManager.hydrate({threadId:this.lastResume.threadId,interruptedRunId:u,generation:this.interruptGeneration(e.outcome.interrupts),interrupts:e.outcome.interrupts},"live");return}const r=e.type==="RUN_ERROR"&&!t,s=!!(t&&this.lastResume?.runId===t),o=!!(t&&this.currentRunId===t||this.currentRunId&&this.lastResume?.runId===this.currentRunId),i=!!(this.isLoading&&t&&(t===this.activeResumeRunId||t===this.currentRunId)),a=this.isLoading&&e.type==="RUN_FINISHED"&&!t,l=!!(this.activeInterruptSubmission&&this.isLoading&&e.type==="RUN_FINISHED"&&e.outcome?.type!=="interrupt"),c=!!(this.lastResume&&this.supersededInterruptRunIds.has(this.lastResume.runId));if(r||s||o||i||a||l||c){this.lastResume=null,this.persistor?.persistResumeSnapshot(null),this.interruptManager.reset();return}this.notifyResumeStateChange("live")}markLineageAnswered(e){let t=e,n=0;for(;t!==void 0&&n<UN;){if(this.supersededInterruptRunIds.has(t))return;this.supersededInterruptRunIds.add(t),t=this.runParents.get(t),n++}}getResumeState(){return this.lastResume?{...this.lastResume}:null}getCurrentRunId(){return this.currentRunId}setCurrentRunId(e){this.currentRunId!==e&&(this.currentRunId=e,this.callbacksRef.current.onRunIdChange(e))}getInterruptState(){return this.interruptManager.getState()}getInterrupts(){return this.interruptManager.getInterrupts()}getPendingInterrupts(){return this.interruptManager.getInterrupts()}resolveInterrupts(e){if(typeof e=="boolean"){this.interruptManager.resolve(e);return}this.interruptManager.resolve(e)}cancelInterrupts(){this.interruptManager.cancel()}retryInterrupts(){this.interruptManager.retry()}resumeInterruptsUnsafe(e,t){const n=t??this.lastResume;return n?this.resumeInterruptsUnsafeForGeneration(e,n,this.continuationGeneration):Promise.resolve(!1)}resumeInterruptsUnsafeForGeneration(e,t,n){return n!==this.continuationGeneration?Promise.resolve(!1):this.isLoading?new Promise((r,s)=>{this.queuePostStreamAction(async()=>{try{r(await this.resumeInterruptsUnsafeForGeneration(e,t,n))}catch(o){s(o)}})}):(this.pendingResumeThreadId=t.threadId,this.pendingResumeParentRunId=t.runId,this.pendingResumeItems=[...e],this.streamResponse())}resumeInterrupts(e,t){return this.resumeInterruptsUnsafe(e,t)}async submitInterruptBatch(e){const t=this.continuationGeneration;this.activeInterruptSubmission=e,this.interruptSubmissionFailure=void 0;for(const s of e.resolutions){const o=zN(s.payload);if(o===void 0)continue;const i=s.interruptId;this.processor.addToolApprovalResponse(i,o)}const n=await this.resumeInterruptsUnsafeForGeneration([...e.resolutions],{threadId:e.threadId,runId:e.interruptedRunId},t).finally(()=>{this.activeInterruptSubmission===e&&(this.activeInterruptSubmission=void 0)});if(t!==this.continuationGeneration)return;const r=this.takeInterruptSubmissionFailure();if(r!==void 0)throw{errors:r.errors};if(!n)throw new Error("Interrupt continuation could not be started.");this.lastResume?.runId===e.interruptedRunId&&(this.lastResume=null,this.interruptManager.reset())}takeInterruptSubmissionFailure(){const e=this.interruptSubmissionFailure;return this.interruptSubmissionFailure=void 0,e}interruptGeneration(e){let t;for(const n of e){const r=n.metadata?.["tanstack:interruptBinding"];if(r===null||typeof r!="object"||!("generation"in r)||typeof r.generation!="number"||!Number.isInteger(r.generation)||r.generation<0||t!==void 0&&t!==r.generation)return 0;t=r.generation}return t??0}generateUniqueId(e){return`${e}-${Date.now()}-${Math.random().toString(36).substring(7)}`}setIsLoading(e){this.isLoading=e,this.callbacksRef.current.onLoadingChange(e),this.events.loadingChanged(e)}setStatus(e){this.status=e,this.callbacksRef.current.onStatusChange(e),this.devtoolsBridge.emitSnapshot()}setIsSubscribed(e){this.isSubscribed=e,this.callbacksRef.current.onSubscriptionChange(e),this.devtoolsBridge.emitSnapshot()}setConnectionStatus(e){this.connectionStatus=e,this.callbacksRef.current.onConnectionStatusChange(e),this.devtoolsBridge.emitSnapshot()}setSessionGenerating(e){this.sessionGenerating!==e&&(this.sessionGenerating=e,this.callbacksRef.current.onSessionGeneratingChange(e),this.devtoolsBridge.emitSnapshot())}notifyResumeStateChange(e){const t=this.getResumeState(),n=this.interruptManager.getState();this.persistResumeSnapshot(t),this.callbacksRef.current.onResumeStateChange(t,n.interrupts),this.callbacksRef.current.onInterruptStateChange(n,{source:e})}persistResumeSnapshot(e){if(!this.persistor)return;if(!e){this.persistor.persistResumeSnapshot(null);return}const t=this.interruptManager.getDescriptors();this.persistor.persistResumeSnapshot({resumeState:e,...t.length>0?{pendingInterrupts:[...t]}:{}})}resetSessionGenerating(e){this.activeRunIds.clear(),e?.preserveClearedStreamTracking||this.clearedStreamTracker.resetActiveRuns(),this.setSessionGenerating(!1)}setError(e){this.error=e,this.callbacksRef.current.onErrorChange(e),this.events.errorChanged(e?.message||null)}buildDevtoolsBridgeOptions(e){const t=this;return{get hookId(){return t.uniqueId},get clientId(){return t.uniqueId},get threadId(){return t.threadId},metadata:{hookName:e?.hookName??"useChat",outputKind:e?.outputKind??"chat",...e?.framework?{framework:e.framework}:{},...e?.name?{name:e.name}:{}},getSnapshot:()=>this.getDevtoolsSnapshot(),getTools:()=>this.clientToolsRef.current.values(),getMessages:()=>this.processor.getMessages(),setMessages:n=>{this.processor.setMessages(n)},addToolResult:(n,r,s)=>{this.processor.addToolResult(n,r,s)},generateId:n=>this.generateUniqueId(n)}}getDevtoolsSnapshot(){return{messages:this.processor.getMessages(),status:this.status,isLoading:this.isLoading,isSubscribed:this.isSubscribed,connectionStatus:this.connectionStatus,sessionGenerating:this.sessionGenerating,activeRunIds:Array.from(this.activeRunIds),queue:this.getQueue(),...this.error?{error:this.error.message}:{}}}findMessageIdForToolCall(e){const t=this.processor.getMessages();for(const n of t)if(n.parts.find(r=>r.type==="tool-call"&&r.id===e))return n.id}abortSubscriptionLoop(){this.subscriptionAbortController?.abort(),this.subscriptionAbortController=null}resolveProcessing(){this.processingResolve?.(),this.processingResolve=null}cancelInFlightStream(e){this.abortController?.abort(),this.abortController=null,e?.abortSubscription&&this.abortSubscriptionLoop(),this.resolveProcessing(),this.setIsLoading(!1),this.deliverClaim=!1,e?.setReadyStatus&&this.setStatus("ready")}reportStreamError(e){const t=this.errorReportedGeneration===this.streamGeneration;this.setError(e),(this.isLoading||this.status==="submitted"||this.status==="streaming")&&this.setStatus("error"),t||(this.errorReportedGeneration=this.streamGeneration,this.callbacksRef.current.onError(e))}startSubscription(){this.subscriptionAbortController=new AbortController;const e=this.subscriptionAbortController.signal;this.consumeSubscription(e).catch(t=>{t instanceof Error&&t.name!=="AbortError"&&(this.setConnectionStatus("error"),this.resetSessionGenerating(),this.setIsSubscribed(!1),this.reportStreamError(t)),this.resolveProcessing()}).finally(()=>{this.subscriptionAbortController?.signal===e&&(this.subscriptionAbortController=null,!e.aborted&&this.isSubscribed&&(this.setIsSubscribed(!1),this.connectionStatus!=="error"&&this.setConnectionStatus("disconnected")))})}async consumeSubscription(e){const t=this.connection.subscribe(e);for await(const n of t){if(e.aborted)break;await this.processIncomingChunk(n)}}resumeInFlightRun(e){const t=this.connection.joinRun;if(!t)return;const n=new AbortController;this.abortController=n,this.setCurrentRunId(e),this.lastResume={threadId:this.threadId,runId:e},this.streamContinuationGeneration=this.continuationGeneration,this.setIsLoading(!0),this.setStatus("streaming"),(async()=>{let r=!1,s=!1,o=!1;const i=setTimeout(()=>{s||n.abort()},BN);try{for await(const a of t(e,n.signal)){if(n.signal.aborted)break;s||(s=!0,clearTimeout(i)),!r&&GN.has(a.type)&&(r=!0,this.dropTrailingInFlightAssistant()),await this.processIncomingChunk(a,{defer:!1})}this.pendingToolExecutions.size>0&&await Promise.all(this.pendingToolExecutions.values())}catch(a){const l=a instanceof Error&&(a.name==="AbortError"||a.name==="TimeoutError");!s&&!l&&(o=!0),s&&!l&&this.reportStreamError(a instanceof Error?a:new Error(String(a)))}finally{clearTimeout(i),!s&&o&&this.tailing&&!this.disposed&&(this.lastResume=null,this.persistor?.persistResumeSnapshot(null)),this.abortController===n&&(this.abortController=null,this.setIsLoading(!1),this.status==="streaming"&&this.setStatus("ready"),await this.drainPostStreamActions())}})()}dropTrailingInFlightAssistant(){const e=this.processor.getMessages(),t=e[e.length-1];t&&t.role==="assistant"&&this.processor.setMessages(e.slice(0,-1))}async processIncomingChunk(e,t){if(e=Td(e),e.type==="RUN_ERROR"&&this.isActiveInterruptSubmissionFailure(e)){const n=ae(e)?.interruptErrors;this.interruptSubmissionFailure={errors:Array.isArray(n)?n:[]}}if(this.connectionStatus==="connecting"&&this.setConnectionStatus("connected"),this.clearedStreamTracker.shouldIgnoreChunk(e)){(e.type==="RUN_FINISHED"||e.type==="RUN_ERROR")&&(Re(e)?this.updateRunLifecycle(e,{resolveProcessing:!1}):this.drainIgnoredRunlessChunk(e),this.retireIgnoredClearedTerminalChunk(e),this.resolveJoinedRun(e));return}this.callbacksRef.current.onChunk(e),this.devtoolsBridge.observeChunk(e),this.processor.processChunk(e),this.updateRunLifecycle(e),this.observeInterruptState(e),t?.defer!==!1&&(typeof document>"u"||!document.hidden)&&await new Promise(n=>setTimeout(n,0)),this.resolveJoinedRun(e)}isActiveInterruptSubmissionFailure(e){const t=this.activeInterruptSubmission,n=ae(e)?.interruptErrors;if(!t||!Array.isArray(n)||n.length===0)return!1;const r=Re(e);return r!==void 0&&r!==this.currentRunId||typeof e.threadId=="string"&&e.threadId!==t.threadId?!1:n.every(s=>s==null||typeof s!="object"||typeof s.threadId!="string"||typeof s.interruptedRunId!="string"||typeof s.generation!="number"?!1:s.threadId===t.threadId&&s.interruptedRunId===t.interruptedRunId&&s.generation===t.generation)}resolveJoinedRun(e){if(e.type!=="RUN_FINISHED"&&e.type!=="RUN_ERROR")return;const t=Re(e);if(t===void 0)return;const n=this.joinedRunWaiters.get(t);n!==void 0&&(this.joinedRunWaiters.delete(t),n())}ensureSubscription(){if(!this.isSubscribed){this.subscribe();return}(!this.subscriptionAbortController||this.subscriptionAbortController.signal.aborted)&&this.subscribe({restart:!0})}waitForProcessing(){return this.resolveProcessing(),new Promise(e=>{this.processingResolve=e})}async sendMessage(e,t,n){if(this.mountDevtools(),typeof e=="string"&&!e.trim())return;if(this.hasPendingInterrupts())throw new Error("ChatClient: cannot send normal input while pending interrupts exist. Use resumeInterrupts() instead.");const r={...t,...n?.body};if(this.isSendBusy()){const{action:s,id:o}=this.decideWhenBusy(e,n);if(s==="drop")return;if(s==="queue"){this.enqueueMessage(e,r,o);return}this.stopMessageQueueDrain=!0,this.sendInFlight=!0,this.cancelInFlightStream({setReadyStatus:!0}),this.resetSessionGenerating()}else this.sendInFlight=!0;try{await this.deliverMessage(e,r)}finally{this.sendInFlight=!1}}hasPendingInterrupts(){return this.interruptManager.getDescriptors().length>0}isSendBusy(){return this.isLoading||this.sendInFlight||this.messageQueueDraining}resolveBusyReason(){return this.isLoading?"streaming":this.messageQueueDraining?"draining":"sendInFlight"}async deliverMessage(e,t){if(this.isLoading||this.deliverClaim)return!1;this.deliverClaim=!0;try{const n=this.normalizeMessageInput(e);this.pendingMessageBody=t;const r=this.processor.addUserMessage(n.content,n.id,n.metadata);return this.events.messageSent(r.id,n.content),await this.streamResponse()}finally{this.deliverClaim=!1}}decideWhenBusy(e,t){const n=this.generateUniqueId("queued");if(t?.whenBusy)return{action:t.whenBusy,id:n};const{strategy:r,whenBusy:s}=this.queueConfig;if(r){const{action:o}=r({pending:{id:n,content:e,createdAt:Date.now()},busyReason:this.resolveBusyReason(),queued:this.getQueue()});return{action:o,id:n}}return{action:s,id:n}}enqueueMessage(e,t,n){const{maxSize:r,onOverflow:s}=this.queueConfig;if(r!==void 0&&this.messageQueue.length>=r){if(s==="reject"||r===0)return;this.messageQueue.shift()}this.messageQueue.push({id:n??this.generateUniqueId("queued"),content:e,createdAt:Date.now(),...t!==void 0?{body:t}:{}}),this.emitQueueChange()}normalizeMessageInput(e){return typeof e=="string"?{content:e.trim()}:{content:e.content,id:e.id,...e.metadata!==void 0?{metadata:e.metadata}:{}}}async append(e){if(this.mountDevtools(),this.hasPendingInterrupts())throw new Error("ChatClient: cannot append normal input while pending interrupts exist. Use resumeInterrupts() instead.");const t=yC(e,Et);if(t.role==="system")return;const n=t;this.events.messageAppended(n);const r=this.processor.getMessages();if(this.processor.setMessages([...r,n]),this.devtoolsBridge.emitSnapshot(),this.isLoading){this.queuePostStreamAction(async()=>{await this.streamResponse()});return}await this.streamResponse()}async streamResponse(){if(this.isLoading)return!1;const e=++this.streamGeneration;this.streamContinuationGeneration=this.continuationGeneration;const t=this.pendingResumeThreadId,n=this.pendingResumeParentRunId,r=this.pendingResumeItems;this.pendingResumeThreadId=null,this.pendingResumeParentRunId=null,this.pendingResumeItems=null;const s=`run-${Date.now()}-${Math.random().toString(36).slice(2,8)}`;this.setCurrentRunId(s),this.activeResumeThreadId=t??this.threadId,this.activeResumeRunId=s,this.setIsLoading(!0),this.deliverClaim=!1,this.setStatus("submitted"),this.setError(void 0),this.errorReportedGeneration=null,this.abortController=new AbortController;const o=this.abortController.signal;this.pendingToolExecutions.clear();let i=!1,a=null,l=!1;try{const c=this.messagesForSend(this.processor.getMessages()),u=new Map(this.clientToolsRef.current),f=this.context;if(await this.callbacksRef.current.onResponse(),o.aborted)return!1;const d={...this.bodyOption,...this.forwardedPropsOption,...this.pendingMessageBody};this.pendingMessageBody=void 0,this.currentStreamId=this.generateUniqueId("stream"),this.devtoolsBridge.setCurrentStreamId(this.currentStreamId),this.currentMessageId=null,this.activeClientTools=u,this.activeContext=f,this.processor.prepareAssistantMessage(),this.ensureSubscription();const p=this.waitForProcessing();let g;if(this.byok){const x=EN(this.byokProvider,d.provider,CE(this.byok));g=await CN(this.byok,x)}const y={threadId:t??this.threadId,runId:s,...n!==null?{parentRunId:n}:{},clientTools:Array.from(u.values()).map(x=>({name:x.name,description:x.description,parameters:x.inputSchema?Us(x.inputSchema):{type:"object"}})),forwardedProps:{...d},...r?{resume:r}:{},...g?{headers:g}:{}};if(this.devtoolsBridge.beginRun(y.runId,y.threadId),a=y.runId,this.devtoolsBridge.emitRunLifecycle("run:created",y.runId,"created"),this.devtoolsBridge.emitRunLifecycle("run:started",y.runId,"started"),this.devtoolsBridge.emitSnapshot(),await this.connection.send(c,d,o,y),e!==this.streamGeneration||o.aborted||(this.connectionDrainsOnSend&&this.resolveProcessing(),await p,e!==this.streamGeneration))return!1;if(this.status==="error")return a&&(this.devtoolsBridge.emitRunLifecycle("run:errored",a,"errored",this.error?{error:this.error.message}:{}),l=!0),!1;this.pendingToolExecutions.size>0&&await Promise.all(this.pendingToolExecutions.values()),this.processor.finalizeStream(),i=!0}catch(c){const u=c instanceof Error?c:new Error(String(c));if(u.name==="AbortError")return a&&(this.devtoolsBridge.emitRunLifecycle("run:cancelled",a,"cancelled"),l=!0),!1;if(u instanceof zs&&this.byok?.request(u.provider,"missing"),u instanceof yr&&u.reason==="locked"&&this.byok?.request(u.provider,"locked"),e===this.streamGeneration&&(this.reportStreamError(u),a&&(this.devtoolsBridge.emitRunLifecycle("run:errored",a,"errored",{error:u.message}),l=!0)),e===this.streamGeneration&&(u instanceof zs||u instanceof yr||u instanceof dd))throw u}finally{e===this.streamGeneration&&(this.currentStreamId=null,this.devtoolsBridge.setCurrentStreamId(null),this.currentMessageId=null,this.setCurrentRunId(null),this.activeClientTools=null,this.activeContext=void 0,this.abortController=null,this.setIsLoading(!1),this.pendingMessageBody=void 0,a&&!l&&(i?this.devtoolsBridge.emitRunLifecycle("run:completed",a,"completed"):o.aborted&&this.devtoolsBridge.emitRunLifecycle("run:cancelled",a,"cancelled")),await this.drainPostStreamActions(),i?(this.rememberProcessorMessageIds(),this.status!=="ready"&&this.setStatus("ready"),this.messageQueueDraining||await this.drainQueue()):this.flushQueue())}return i}subscribe(e){const t=e?.restart===!0;this.isSubscribed&&!t||(this.isSubscribed&&t&&this.abortSubscriptionLoop(),this.setIsSubscribed(!0),this.setConnectionStatus("connecting"),this.startSubscription())}unsubscribe(){this.cancelInFlightStream({setReadyStatus:!0,abortSubscription:!0}),this.discardPendingSends(),this.resetSessionGenerating(),this.setIsSubscribed(!1),this.setConnectionStatus("disconnected")}async reload(){const e=this.processor.getMessages();if(e.length===0)return;const t=e.findLastIndex(n=>n.role==="user");t!==-1&&(this.isLoading&&this.cancelInFlightStream(),this.discardPendingSends(),this.events.reloaded(t),this.processor.removeMessagesAfter(t),this.devtoolsBridge.emitSnapshot(),await this.streamResponse())}stop(){this.continuationGeneration++;const e=this.abortController!==null;this.cancelInFlightStream({setReadyStatus:!0}),this.discardPendingSends(),this.lastResume=null,this.activeInterruptSubmission=void 0,this.interruptManager.reset(),e&&this.resetSessionGenerating(),this.events.stopped()}clear(){const e=this.abortController!==null;this.clearedStreamTracker.snapshotClear({messages:this.processor.getMessages(),activeRunIds:this.activeRunIds,currentRunId:this.currentRunId}),this.isLoading||e?(this.cancelInFlightStream({setReadyStatus:!0}),this.resetSessionGenerating({preserveClearedStreamTracking:!0})):this.activeRunIds.size>0&&this.resetSessionGenerating({preserveClearedStreamTracking:!0}),this.persistor?.beginClear(),this.processor.clearMessages(),this.resetHistoryPaging(),this.discardPendingSends(),this.persistor?.remove(),this.lastResume=null,this.interruptManager.reset(),this.pendingResumeThreadId=null,this.pendingResumeParentRunId=null,this.pendingResumeItems=null,this.setError(void 0),this.events.messagesCleared()}async addToolResult(e){const t=this.clientToolsRef.current.get(e.tool);await this.addToolResultForClientTool(e,t,this.streamContinuationGeneration)}async addToolResultForClientTool(e,t,n,r){if(t&&e.state!=="output-error")try{e={...e,output:this.validateClientToolOutput(t,e.output)}}catch(s){e={...e,output:null,state:"output-error",errorText:s.message}}if(this.events.toolResultAdded(e.toolCallId,e.tool,e.output,e.state||"output-available",r),n===this.continuationGeneration&&(this.processor.addToolResult(e.toolCallId,e.output,e.state==="output-error"?e.errorText||"Tool execution failed":void 0),this.devtoolsBridge.emitSnapshot(),!this.interruptManager.resolveClientToolOutput(e.toolCallId,e.state==="output-error"?{error:e.errorText||"Tool execution failed"}:e.output))){if(this.isLoading){this.queuePostStreamAction(()=>n===this.continuationGeneration?this.checkForContinuation():Promise.resolve());return}await this.checkForContinuation()}}validateClientToolOutput(e,t){return e.outputSchema&&pt(e.outputSchema)?BE(e.outputSchema,t):t}async addToolApprovalResponse(e){if(this.processor.addToolApprovalResponse(e.id,e.approved),this.devtoolsBridge.emitSnapshot(),this.interruptManager.resolveToolApprovalDecision(e.id,e.approved))return;const t=this.processor.getMessages();let n;for(const r of t){const s=r.parts.find(o=>o.type==="tool-call"&&o.approval?.id===e.id);if(s){n=s.id;break}}if(n&&this.events.toolApprovalResponded(e.id,n,e.approved),this.processor.addToolApprovalResponse(e.id,e.approved),this.devtoolsBridge.emitSnapshot(),this.isLoading){this.queuePostStreamAction(()=>this.checkForContinuation());return}await this.checkForContinuation()}queuePostStreamAction(e){const t=this.continuationGeneration;this.postStreamActions.push(async()=>{t===this.continuationGeneration&&await e()})}async drainPostStreamActions(){if(!this.draining){this.draining=!0;try{let e;for(;(e=this.postStreamActions.shift())!==void 0;)await e()}finally{this.draining=!1}}}async checkForContinuation(){if(this.streamContinuationGeneration===this.continuationGeneration&&!this.hasPendingInterrupts()){if(this.continuationPending||this.isLoading){this.continuationSkipped=!0;return}if(this.shouldAutoSend()){this.continuationPending=!0,this.continuationSkipped=!1;let e=!1;try{e=await this.streamResponse()}finally{this.continuationPending=!1}this.continuationSkipped&&e&&(this.continuationSkipped=!1,await this.checkForContinuation())}}}shouldAutoSend(){if(this.lastResume||this.activeInterruptSubmission&&this.hasPendingInterrupts()||this.interruptManager.getInterrupts().length>0)return!1;const e=this.processor.getMessages().findLast(t=>t.role==="assistant");return!e||!e.parts.some(t=>t.type==="tool-call")?!1:this.processor.areAllToolsComplete()}getMessages(){return this.processor.getMessages()}getHasOlderMessages(){return this.hasOlderMessages}async loadOlderMessages(){const e=this.connection.hydrate;if(e===void 0||this.disposed||!this.hasOlderMessages)return;const t=this.olderMessagesCursor;if(t===void 0||this.loadOlderMessagesInFlight)return;const n={before:t};this.historyPageSize!==void 0&&(n.limit=this.historyPageSize),this.loadOlderMessagesInFlight=!0;const r=this.historyGeneration;try{const s=await e(this.threadId,n);if(this.disposed||r!==this.historyGeneration)return;const o=Bs(s.messages);if(o.length===0)throw new Error("Older page was empty");this.applyHydrationPage(s.page),this.processor.prependMessages(o),this.rememberServerMessageIds(o)}finally{this.loadOlderMessagesInFlight=!1}}resetHistoryPaging(){this.hasOlderMessages=!1,this.olderMessagesCursor=void 0,this.knownServerMessageIds.clear(),this.historyGeneration++}applyHydrationPage(e){if(e?.truncated===!0){this.hasOlderMessages=!0,this.olderMessagesCursor=e.cursor;return}this.hasOlderMessages=!1,this.olderMessagesCursor=void 0}rememberServerMessageIds(e){const t=e.map(n=>n.id);for(const n of t)this.knownServerMessageIds.add(n)}rememberProcessorMessageIds(){this.historyPageSize!==void 0&&this.rememberServerMessageIds(this.processor.getMessages())}messagesForSend(e){if(this.historyPageSize===void 0)return e;const t=[];for(const r of e)this.knownServerMessageIds.has(r.id)||t.push(r);if(t.length>0)return t;const n=e.findLastIndex(r=>r.role==="user");return n===-1?[]:e.slice(n)}shouldAbortMessageQueueDrain(){return this.isLoading||this.stopMessageQueueDrain}async drainQueue(){if(!(this.messageQueueDraining||this.isLoading||this.messageQueue.length===0)){this.messageQueueDraining=!0,this.stopMessageQueueDrain=!1;try{if(this.queueConfig.drain==="batch"){for(;this.messageQueue.length>0;){if(this.shouldAbortMessageQueueDrain())return;const e=this.messageQueue.splice(0);this.emitQueueChange();const t=FN(e);if(!await this.deliverMessage(t.content,t.body)||this.shouldAbortMessageQueueDrain())return}return}for(;this.messageQueue.length>0;){if(this.shouldAbortMessageQueueDrain())return;const e=this.messageQueue.shift();if(e===void 0||(this.emitQueueChange(),!await this.deliverMessage(e.content,e.body)||this.shouldAbortMessageQueueDrain()))return}}finally{this.messageQueueDraining=!1,this.stopMessageQueueDrain=!1}}}discardPendingSends(){this.sendInFlight=!1,this.flushQueue()}getQueue(){return this.messageQueue.map(({id:e,content:t,createdAt:n})=>({id:e,content:t,createdAt:n}))}emitQueueChange(){this.callbacksRef.current.onQueueChange(this.getQueue()),this.devtoolsBridge.emitSnapshot()}cancelQueued(e){const t=this.messageQueue.findIndex(n=>n.id===e);t!==-1&&(this.messageQueue.splice(t,1),this.emitQueueChange())}flushQueue(){this.messageQueue.length!==0&&(this.messageQueue=[],this.emitQueueChange())}getIsLoading(){return this.isLoading}getStatus(){return this.status}getIsSubscribed(){return this.isSubscribed}getConnectionStatus(){return this.connectionStatus}getSessionGenerating(){return this.sessionGenerating}getError(){return this.error}setMessagesManually(e){this.processor.setMessages(e),this.devtoolsBridge.emitSnapshot()}updateOptions(e){if(e.connection!==void 0||e.fetcher!==void 0){const t=this.isSubscribed;this.isLoading?this.cancelInFlightStream({setReadyStatus:!0,abortSubscription:!0}):t&&this.abortSubscriptionLoop(),this.resetSessionGenerating(),this.setIsSubscribed(!1),this.setConnectionStatus("disconnected");const n=ll({connection:e.connection,fetcher:e.fetcher});this.connectionDrainsOnSend=cl(n),this.connection=Xa(n),t&&this.subscribe()}if(e.body!==void 0&&(this.bodyOption=e.body),e.forwardedProps!==void 0&&(this.forwardedPropsOption=e.forwardedProps),e.byok!==void 0&&(this.byok=e.byok),e.byokProvider!==void 0&&(this.byokProvider=e.byokProvider),"context"in e&&(this.context=e.context),e.tools!==void 0){this.interruptManager.updateTools(e.tools),this.clientToolsRef.current=new Map;for(const t of e.tools)this.clientToolsRef.current.set(t.name,t);this.devtoolsBridge.notifyToolsChanged()}e.queue!==void 0&&(this.queueConfig=dl(e.queue)),e.onResponse!==void 0&&(this.callbacksRef.current.onResponse=e.onResponse),e.onChunk!==void 0&&(this.callbacksRef.current.onChunk=e.onChunk),e.onFinish!==void 0&&(this.callbacksRef.current.onFinish=e.onFinish),e.onError!==void 0&&(this.callbacksRef.current.onError=e.onError),e.onSubscriptionChange!==void 0&&(this.callbacksRef.current.onSubscriptionChange=e.onSubscriptionChange),e.onConnectionStatusChange!==void 0&&(this.callbacksRef.current.onConnectionStatusChange=e.onConnectionStatusChange),e.onSessionGeneratingChange!==void 0&&(this.callbacksRef.current.onSessionGeneratingChange=e.onSessionGeneratingChange),e.onQueueChange!==void 0&&(this.callbacksRef.current.onQueueChange=e.onQueueChange),e.onResumeStateChange!==void 0&&(this.callbacksRef.current.onResumeStateChange=e.onResumeStateChange),e.onRunIdChange!==void 0&&(this.callbacksRef.current.onRunIdChange=e.onRunIdChange),e.onInterruptStateChange!==void 0&&(this.callbacksRef.current.onInterruptStateChange=e.onInterruptStateChange),e.onCustomEvent!==void 0&&(this.callbacksRef.current.onCustomEvent=e.onCustomEvent)}dispose(){this.disposed=!0,this.unsubscribe(),this.devtoolsBridge.dispose(),this.devtoolsMounted=!1}};function hl(e){return!e||typeof e!="object"?{}:{..."before"in e&&typeof e.before=="number"?{before:e.before}:{},..."after"in e&&typeof e.after=="number"?{after:e.after}:{},..."messagesBefore"in e&&typeof e.messagesBefore=="number"?{messagesBefore:e.messagesBefore}:{},..."messagesAfter"in e&&typeof e.messagesAfter=="number"?{messagesAfter:e.messagesAfter}:{},..."reusedCheckpoint"in e&&typeof e.reusedCheckpoint=="boolean"?{reusedCheckpoint:e.reusedCheckpoint}:{},..."maxTokens"in e&&typeof e.maxTokens=="number"?{maxTokens:e.maxTokens}:{},..."strategyKey"in e&&typeof e.strategyKey=="string"?{strategyKey:e.strategyKey}:{},..."durationMs"in e&&typeof e.durationMs=="number"?{durationMs:e.durationMs}:{}}}function fl(e){if(!Array.isArray(e))return;const t=[];for(const n of e)!n||typeof n!="object"||!("role"in n)||!("tokens"in n)||!("text"in n)||typeof n.role!="string"||typeof n.tokens!="number"||typeof n.text!="string"||t.push({role:n.role,tokens:n.tokens,text:n.text});return t}function VN(e){if(!e||typeof e!="object"||!("before"in e)||!("after"in e)||!("messagesBefore"in e)||!("messagesAfter"in e)||typeof e.before!="number"||typeof e.after!="number"||typeof e.messagesBefore!="number"||typeof e.messagesAfter!="number")return null;const t="reusedCheckpoint"in e&&e.reusedCheckpoint===!0,n="maxTokens"in e&&typeof e.maxTokens=="number"?e.maxTokens:void 0,r="strategyKey"in e&&typeof e.strategyKey=="string"?e.strategyKey:void 0,s="dropped"in e?fl(e.dropped):void 0,o="result"in e?fl(e.result):void 0;return{before:e.before,after:e.after,messagesBefore:e.messagesBefore,messagesAfter:e.messagesAfter,reusedCheckpoint:t,...n!==void 0?{maxTokens:n}:{},...r?{strategyKey:r}:{},...s?{dropped:s}:{},...o?{result:o}:{}}}var pl=Symbol.for("tanstack.ai.devtools.activeBridgeByHookId");function ys(){const e=globalThis,t=e[pl];if(t)return t;const n=new Map;return e[pl]=n,n}function KN(e,t){return{get hookId(){return e.hookId},get clientId(){return e.clientId},get threadId(){return e.threadId},metadata:e.metadata,getSnapshot:t.getSnapshot,...t.getTools||e.getTools?{getTools:t.getTools??e.getTools}:{},...t.applyToolFixture||e.applyToolFixture?{applyToolFixture:t.applyToolFixture??e.applyToolFixture}:{}}}var YN=class{options;unsubscribers=[];disposed=!1;superseded=!1;registered=!1;constructor(e){this.options=e}emitRegistered(){this.prepareForMountEmit()&&(this.registered=!0,xe("hook:registered",{...this.createEnvelope("hook:registered"),...this.createMetadataPayload(),lifecycle:"mounted"}))}emitUpdated(){this.prepareForEmit()&&xe("hook:updated",{...this.createEnvelope("hook:updated"),...this.createMetadataPayload(),lifecycle:"active"})}emitSnapshot(){this.prepareForEmit()&&xe("hook:state-snapshot",{...this.createEnvelope("hook:state-snapshot"),...this.createMetadataPayload(),state:this.options.getSnapshot()})}emitToolsRegistered(){if(!this.prepareForEmit())return;const e=this.options.getTools?Array.from(this.options.getTools()).map(t=>({name:t.name,description:t.description,inputSchema:t.inputSchema?Us(t.inputSchema):{type:"object"},outputSchema:t.outputSchema?Us(t.outputSchema):void 0,needsApproval:t.needsApproval,metadata:t.metadata})):[];xe("tools:registered",{...this.createEnvelope("tools:registered"),...this.createMetadataPayload(),tools:e})}emitRunLifecycle(e,t,n,r={}){this.prepareForEmit()&&xe(e,{...this.createEnvelope(e,"client-state",{runId:t}),runId:t,status:n,...r.error?{error:r.error}:{}})}deactivate(){const e=ys();e.get(this.options.hookId)===this&&e.delete(this.options.hookId);for(const t of this.unsubscribers.splice(0))t()}supersede(){this.disposed||(this.superseded=!0,this.disposed=!0,this.deactivate())}dispose(){if(this.disposed)return;if(this.disposed=!0,!this.registered){this.deactivate();return}if(ys().get(this.options.hookId)!==this){this.deactivate();return}const e={...this.createEnvelope("hook:unregistered"),...this.createMetadataPayload(),reason:"disposed"};xe("hook:unregistered",e),this.deactivate()}prepareForEmit(){return this.disposed||this.superseded?!1:(this.activate(),!0)}prepareForMountEmit(){return this.superseded?!1:(this.disposed&&(this.disposed=!1,this.registered=!1),this.activate(),!0)}activate(){if(this.disposed)return;const e=ys(),t=e.get(this.options.hookId);t&&t!==this&&(typeof t.supersede=="function"?t.supersede():t.deactivate()),e.set(this.options.hookId,this),!(this.unsubscribers.length>0)&&(this.unsubscribers.push(_n.on("devtools:request-state",n=>{this.handleRequestState(n)})),this.options.applyToolFixture&&this.unsubscribers.push(_n.on("devtools:tool-fixture:apply",n=>{this.handleToolFixtureApply(n)})))}handleRequestState(e){if(this.disposed||this.superseded)return;const t=e.payload.targetHookId;t&&t!==this.options.hookId||(this.emitRegistered(),this.emitToolsRegistered(),this.emitSnapshot(),this.onReplayState())}onReplayState(){}async handleToolFixtureApply(e){const t=e.payload;this.matchesFixtureTarget(t)&&await this.options.applyToolFixture?.(t)}matchesFixtureTarget(e){return!e.hookId&&!e.threadId?!1:e.hookId?e.hookId===this.options.hookId:!(e.threadId&&(!this.options.threadId||e.threadId!==this.options.threadId))}createEnvelope(e,t="client-state",n={}){return Qs({eventType:e,source:"client",visibility:t,clientId:this.options.clientId,hookId:this.options.hookId,...this.options.threadId?{threadId:this.options.threadId}:{},...n.runId?{runId:n.runId}:{},timestamp:Date.now()})}createMetadataPayload(){return{hookId:this.options.hookId,hookName:this.options.metadata.hookName,...this.options.metadata.name?{displayName:this.options.metadata.name}:{},...this.options.metadata.outputKind?{outputKind:this.options.metadata.outputKind}:{},...this.options.metadata.framework?{framework:this.options.metadata.framework}:{}}}},WN=class extends YN{events;chatOptions;currentRunId=null;currentRunThreadId=null;currentStreamId=null;lastStreamId=null;lastRunEventContext;lastMemoryStateValue=null;lastCompactionEvents=[];lastSkillsStateValue=null;constructor(e){super(KN(e,{getSnapshot:e.getSnapshot,applyToolFixture:t=>this.applyFixture(t)})),this.chatOptions=e,this.events=new tR(()=>e.clientId,this)}setCurrentStreamId(e){this.currentStreamId=e,e&&(this.lastStreamId=e)}recordStreamId(e){e&&(this.lastStreamId=e)}mountWithTools(e){this.events.clientCreated(e),this.emitRegistered(),this.emitToolsRegistered(),this.emitSnapshot()}notifyToolsChanged(){this.emitToolsRegistered(),this.emitSnapshot()}getCurrentStreamId(){return this.currentStreamId}getLastStreamId(){return this.lastStreamId}resolveStreamId(){return this.currentStreamId??this.lastStreamId??this.chatOptions.generateId("stream")}beginRun(e,t){this.currentRunId=e,this.currentRunThreadId=t,this.lastRunEventContext={runId:e,threadId:t}}observeChunk(e){if(e.type==="RUN_STARTED"){this.beginRun(e.runId,e.threadId);return}if(e.type==="RUN_FINISHED"||e.type==="RUN_ERROR"){const t=(e.type==="RUN_FINISHED",e.runId);if(!t||t===this.currentRunId){const n=this.getCurrentRunEventContext();n&&(this.lastRunEventContext=n),this.currentRunId=null,this.currentRunThreadId=null}}}recordMemoryState(e){this.lastMemoryStateValue=e,this.emitMemoryState(e)}recordSkillsState(e){this.lastSkillsStateValue=e,this.emitSkillsState(e)}emitMemoryState(e){if(!e||typeof e!="object")return;const t=e,n=t.scope,r=t.adapter;if(!n||typeof r!="string")return;const s=this.currentRunId?{runId:this.currentRunId}:{};xe("memory:retrieve:started",{...this.createEnvelope("memory:retrieve:started","client-state",s),scope:n,adapter:r,query:t.query??""}),t.recall&&xe("memory:retrieve:completed",{...this.createEnvelope("memory:retrieve:completed","client-state",s),scope:n,adapter:r,fragmentCount:t.recall.fragmentCount??0,hasTools:!!t.recall.hasTools,systemPromptChars:t.recall.systemPromptChars??0,durationMs:t.recall.durationMs??0}),t.snapshot&&xe("memory:snapshot",{...this.createEnvelope("memory:snapshot","client-state",s),scope:n,adapter:r,takenAt:t.snapshot.takenAt,data:t.snapshot.data,facts:t.snapshot.facts??[]})}recordCompactionEvent(e,t){this.lastCompactionEvents.push({eventType:e,value:t}),this.lastCompactionEvents.length>60&&this.lastCompactionEvents.splice(0,this.lastCompactionEvents.length-60),this.emitCompactionEvent(e,t)}recordCompactionState(e){this.recordCompactionEvent("compaction:state",e)}emitCompactionEvent(e,t){const n=this.currentRunId?{runId:this.currentRunId}:{};if(e==="compaction:started"){const r=hl(t);xe("compaction:started",{...this.createEnvelope("compaction:started","client-state",n),...r});return}if(e==="compaction:ended"){const r=hl(t);xe("compaction:ended",{...this.createEnvelope("compaction:ended","client-state",n),...r});return}if(e==="compaction:state"){const r=VN(t);if(!r)return;xe("compaction:state",{...this.createEnvelope("compaction:state","client-state",n),...r})}}emitSkillsState(e){if(!e||typeof e!="object")return;const t=e,n=Array.isArray(t.catalog)?t.catalog:[],r=Array.isArray(t.activated)?t.activated:[],s=this.currentRunId?{runId:this.currentRunId}:{};xe("skills:snapshot",{...this.createEnvelope("skills:snapshot","client-state",s),catalog:n,activated:r})}onReplayState(){this.lastMemoryStateValue!=null&&this.emitMemoryState(this.lastMemoryStateValue);for(const e of this.lastCompactionEvents)this.emitCompactionEvent(e.eventType,e.value);this.lastSkillsStateValue!=null&&this.emitSkillsState(this.lastSkillsStateValue)}getCurrentRunEventContext(){if(this.currentRunId)return{threadId:this.currentRunThreadId??this.chatOptions.threadId??"",runId:this.currentRunId}}getCurrentOrLastRunEventContext(){return this.getCurrentRunEventContext()??this.lastRunEventContext}findToolCallContext(e){const t={toolCallId:e},n=this.getCurrentRunEventContext();return n?{threadId:n.threadId,runId:n.runId,toolCallId:e}:this.chatOptions.threadId?{threadId:this.chatOptions.threadId,toolCallId:e}:t}async applyFixture(e){const t=this.chatOptions.getMessages(),n=e.threadId??this.chatOptions.threadId??"";if(e.execute){await this.executeFixture(e,t,n);return}const{message:r,toolCallId:s}=this.createReplayMessageFromFixture(e,t),o=r.id;this.events.messageAppended(r,void 0,{threadId:n,toolCallId:s,...e.runId?{runId:e.runId}:{}}),this.chatOptions.setMessages([...t,r]),this.events.toolFixtureApplied({hookId:this.chatOptions.hookId,threadId:n,...e.runId?{runId:e.runId}:{},toolName:e.toolName,input:e.input,output:e.output,messageId:o,toolCallId:s,...e.execute!==void 0?{execute:e.execute}:{},...e.message?{message:e.message}:{},...e.errorText?{errorText:e.errorText}:{}}),this.emitSnapshot()}async executeFixture(e,t,n){const r=this.resolveFixtureToolCallId(e.toolCallId,t),s=this.resolveFixtureMessageId(e.messageId,t),o={id:s,role:"assistant",parts:[{type:"tool-call",id:r,name:e.toolName,arguments:bs(e.input),input:e.input,state:"input-complete"}],createdAt:new Date};this.events.messageAppended(o,void 0,{threadId:n,toolCallId:r,...e.runId?{runId:e.runId}:{}}),this.chatOptions.setMessages([...t,o]),this.emitSnapshot();const i=this.findClientTool(e.toolName)?.execute;if(!i){console.warn(`[ai-devtools] tool fixture "${e.toolName}" requested execute=true but no client tool implementation is registered; replaying saved output instead.`),this.addToolResultForFixture({fixture:e,messageId:s,toolCallId:r,threadId:n,output:e.output,errorText:e.errorText});return}let a;try{a=await i(e.input)}catch(l){console.error(`[ai-devtools] tool fixture "${e.toolName}" execute threw`,l),this.addToolResultForFixture({fixture:e,messageId:s,toolCallId:r,threadId:n,output:null,errorText:l instanceof Error?`${l.name}: ${l.message}`:`Tool execution failed: ${String(l)}`});return}this.addToolResultForFixture({fixture:e,messageId:s,toolCallId:r,threadId:n,output:a})}addToolResultForFixture(e){const t=e.errorText?"output-error":"output-available";this.events.toolResultAdded(e.toolCallId,e.fixture.toolName,e.output,t,{threadId:e.threadId,...e.fixture.runId?{runId:e.fixture.runId}:{},toolCallId:e.toolCallId}),this.chatOptions.addToolResult(e.toolCallId,e.output,e.errorText),this.events.toolFixtureApplied({hookId:this.chatOptions.hookId,threadId:e.threadId,...e.fixture.runId?{runId:e.fixture.runId}:{},toolName:e.fixture.toolName,input:e.fixture.input,output:e.output,execute:!0,messageId:e.messageId,toolCallId:e.toolCallId,...e.errorText?{errorText:e.errorText}:{}}),this.emitSnapshot()}createReplayMessageFromFixture(e,t){const n=this.cloneFixtureSourceMessage(e,t);if(n)return n;const r=this.resolveFixtureToolCallId(e.toolCallId,t),s=this.resolveFixtureMessageId(e.messageId,t),o=e.errorText?"error":"complete";return{toolCallId:r,message:{id:s,role:"assistant",parts:[{type:"tool-call",id:r,name:e.toolName,arguments:bs(e.input),input:e.input,state:"input-complete",output:e.output},{type:"tool-result",toolCallId:r,content:bs(e.output),state:o,...e.errorText?{error:e.errorText}:{}}],createdAt:new Date}}}cloneFixtureSourceMessage(e,t){const n=e.message;if(!n||!Array.isArray(n.parts))return;const r=this.createFixtureToolCallIdMap(n.parts,t),s=n.parts.map(a=>QN(a,r)).filter(a=>!!a),o=e.toolCallId?r.get(e.toolCallId):void 0;if(ZN(s,{...o?{mappedToolCallId:o}:{},output:e.output}),s.length===0)return;const i=(e.toolCallId?r.get(e.toolCallId):void 0)??JN(s);if(i)return{toolCallId:i,message:{id:this.resolveFixtureMessageId(n.id,t),role:n.role,parts:s,createdAt:new Date}}}createFixtureToolCallIdMap(e,t){const n=new Map;for(const r of e)!Fd(r)||r.type!=="tool-call"||typeof r.id=="string"&&n.set(r.id,this.resolveFixtureToolCallId(r.id,t));return n}resolveFixtureMessageId(e,t){return e&&!t.some(n=>n.id===e)?e:this.chatOptions.generateId("fixture-msg")}resolveFixtureToolCallId(e,t){return e&&!eR(t,e)?e:this.chatOptions.generateId("fixture-tool-call")}findClientTool(e){const t=this.chatOptions.getTools?.();if(t){for(const n of t)if(n.name===e)return n}}};function Fd(e){return typeof e=="object"&&e!==null}function bs(e){if(typeof e=="string")return e;if(e===void 0||typeof e=="function"||typeof e=="symbol")return String(e);try{return JSON.stringify(e)}catch(t){return console.error("[ai-devtools] failed to JSON.stringify fixture value; falling back to String(). Tool call arguments may be malformed.",{error:t,value:e}),String(e)}}function XN(e){try{return JSON.parse(e)}catch(t){return console.error("[ai-devtools] failed to JSON.parse fixture result content; replaying as raw string. Fixture payload may be corrupted.",{error:t,content:e}),e}}function QN(e,t){if(!Fd(e)||typeof e.type!="string")return;const n={...e};return e.type==="tool-call"&&typeof e.id=="string"&&(n.id=t.get(e.id)??e.id),e.type==="tool-result"&&typeof e.toolCallId=="string"&&(n.toolCallId=t.get(e.toolCallId)??e.toolCallId),n}function JN(e){const t=e.find(n=>n.type==="tool-call");return t?.type==="tool-call"?t.id:void 0}function ZN(e,t){for(const n of e){if(n.type!=="tool-result")continue;const r=e.find(s=>s.type==="tool-call"&&s.id===n.toolCallId&&s.output===void 0);r&&(r.output=Array.isArray(n.content)?n.content:XN(n.content))}if(t.mappedToolCallId&&t.output!==void 0){const n=e.find(r=>r.type==="tool-call"&&r.id===t.mappedToolCallId&&r.output===void 0);n&&(n.output=t.output)}}function eR(e,t){return e.some(n=>n.parts.some(r=>r.type==="tool-call"?r.id===t:r.type==="tool-result"?r.toolCallId===t:!1))}var tR=class extends AN{getClientId;helper;constructor(e,t){super(e()),this.getClientId=e,this.helper=t}emitEvent(e,t){this.clientId=this.getClientId(),super.emitEvent(e,t)}afterEmit(e){e&&this.helper.recordStreamId(e),this.helper.emitSnapshot()}textUpdated(e,t,n,r){super.textUpdated(e,t,n,r??this.helper.getCurrentRunEventContext()),this.afterEmit(e)}thinkingUpdated(e,t,n,r,s){super.thinkingUpdated(e,t,n,r,s??this.helper.getCurrentRunEventContext()),this.afterEmit(e)}messageAppended(e,t,n){super.messageAppended(e,t,n??this.helper.getCurrentRunEventContext()),this.afterEmit(t)}toolCallStateChanged(e,t,n,r,s,o,i){super.toolCallStateChanged(e,t,n,r,s,o,i??this.helper.getCurrentRunEventContext()),this.afterEmit(e)}structuredOutputChanged(e,t,n,r,s){super.structuredOutputChanged(e,t,n,r,s??this.helper.getCurrentOrLastRunEventContext()),this.afterEmit(t)}approvalRequested(e,t,n,r,s,o,i){super.approvalRequested(e,t,n,r,s,o,i??this.helper.getCurrentOrLastRunEventContext()),this.afterEmit(e)}toolResultAdded(e,t,n,r,s){super.toolResultAdded(e,t,n,r,s??this.helper.getCurrentRunEventContext()),this.afterEmit()}toolApprovalResponded(e,t,n,r){super.toolApprovalResponded(e,t,n,r??this.helper.getCurrentRunEventContext()),this.afterEmit()}clientCreated(e){super.clientCreated(e),this.afterEmit()}loadingChanged(e){super.loadingChanged(e),this.afterEmit()}errorChanged(e){super.errorChanged(e),this.afterEmit()}reloaded(e){super.reloaded(e),this.afterEmit()}stopped(){super.stopped(),this.afterEmit()}messagesCleared(){super.messagesCleared(),this.afterEmit()}messageSent(e,t){super.messageSent(e,t),this.afterEmit()}toolFixtureApplied(e){super.toolFixtureApplied(e),this.afterEmit()}};function nR(e){return new WN(e)}var gl=Object.freeze([]),rR=Object.freeze([]);function z_(e){const t=(0,C.useId)(),n=e.threadId??t,[r,s]=(0,C.useState)(e.initialMessages||[]),[o,i]=(0,C.useState)(!1),[a,l]=(0,C.useState)(void 0),[c,u]=(0,C.useState)("ready"),[f,d]=(0,C.useState)(!1),[p,g]=(0,C.useState)("disconnected"),[y,x]=(0,C.useState)(!1),[v,I]=(0,C.useState)([]),[m,b]=(0,C.useState)(null),[E,N]=(0,C.useState)(()=>({interrupts:gl,pendingInterrupts:gl,interruptErrors:rR,resuming:!1})),R=(0,C.useRef)(e.initialMessages||[]),A=(0,C.useRef)(!0),k=(0,C.useRef)(!1),L=(0,C.useRef)(null),_=(0,C.useRef)(null),M=(0,C.useRef)(null);R.current=r;const O=(0,C.useRef)(e);O.current=e;const S=(0,C.useCallback)(U=>{U&&(b(U.getCurrentRunId()),N(U.getInterruptState()))},[]),{client:w,initialization:T}=(0,C.useMemo)(()=>{const U=e.initialMessages||[];A.current=!1;const V=O.current,pe=V.connection?{connection:V.connection}:{fetcher:V.fetcher},ge={current:void 0},ve=()=>{const ee=ge.current;if(!(!ee||L.current!==ee))return ee},Me={ready:!1,callbacks:[]},ie=ee=>{if(!Me.ready){Me.callbacks.push(ee);return}const ce=ge.current;!ce||L.current!==ce||ee()},nt=new qN({devtoolsBridgeFactory:nR,...pe,initialMessages:U,...typeof V.threadId=="string"&&V.persistence?{persistence:V.persistence,threadId:V.threadId}:{...V.threadId!==void 0&&{threadId:V.threadId}},...V.body!==void 0&&{body:V.body},...V.forwardedProps!==void 0&&{forwardedProps:V.forwardedProps},...V.byok!==void 0&&{byok:V.byok},byokProvider:()=>O.current.byokProvider?.(),...V.initialResumeSnapshot!==void 0&&{initialResumeSnapshot:V.initialResumeSnapshot},...V.context!==void 0&&{context:V.context},devtools:{...V.devtools,framework:"react",hookName:"useChat",outputKind:V.outputSchema?"structured":"chat"},onResponse:ee=>{if(ve())return O.current.onResponse?.(ee)},onChunk:ee=>{ie(()=>{O.current.onChunk?.(ee)})},onFinish:ee=>{ie(()=>{O.current.onFinish?.(ee)})},onError:ee=>{ie(()=>{O.current.onError?.(ee)})},...V.tools!==void 0&&{tools:V.tools},...V.interrupts!==void 0&&{interrupts:V.interrupts},onCustomEvent:(ee,ce,ke)=>{ie(()=>{O.current.onCustomEvent?.(ee,ce,ke)})},...e.streamProcessor!==void 0&&{streamProcessor:e.streamProcessor},onMessagesChange:ee=>{ie(()=>{s(ee)})},onLoadingChange:ee=>{ie(()=>{const ce=ve();ce&&(i(ee),S(ce))})},onErrorChange:ee=>{ie(()=>{l(ee)})},onStatusChange:ee=>{ie(()=>{u(ee)})},onSubscriptionChange:ee=>{ie(()=>{d(ee)})},onConnectionStatusChange:ee=>{ie(()=>{g(ee)})},onSessionGeneratingChange:ee=>{ie(()=>{x(ee)})},...O.current.queue!==void 0&&{queue:O.current.queue},onQueueChange:ee=>{ie(()=>{I(ee)})},onRunIdChange:ee=>{ie(()=>{b(ee)})},onResumeStateChange:(ee,ce)=>{ie(()=>{N(ke=>({...ke,interrupts:ce,pendingInterrupts:ce}))})},onInterruptStateChange:(ee,ce)=>{ie(()=>{N(ee),O.current.onInterruptStateChange?.(ee,ce)})}});return ge.current=nt,{client:nt,initialization:Me}},[n,S]);(0,C.useEffect)(()=>{L.current=w;try{for(;T.callbacks.length>0;){if(L.current!==w){T.callbacks.length=0;break}T.callbacks.shift()?.()}}finally{T.ready=!0}},[w,T]),(0,C.useEffect)(()=>{const U=w.getMessages();U!==R.current&&s(U)},[w]),(0,C.useEffect)(()=>{w.updateOptions({body:e.body})},[w,e.body]),(0,C.useEffect)(()=>{e.forwardedProps!==void 0&&w.updateOptions({forwardedProps:e.forwardedProps})},[w,e.forwardedProps]),(0,C.useEffect)(()=>{e.tools!==void 0&&w.updateOptions({tools:e.tools})},[w,e.tools]),(0,C.useEffect)(()=>{w.updateOptions({context:e.context})},[w,e.context]),(0,C.useEffect)(()=>{e.queue!==void 0&&w.updateOptions({queue:e.queue})},[w,e.queue]),(0,C.useEffect)(()=>{e.live?(w.subscribe(),k.current=!0):k.current&&(w.unsubscribe(),k.current=!1)},[w,e.live]),(0,C.useEffect)(()=>(w.attach(),()=>{w.detach()}),[w]),(0,C.useEffect)(()=>(M.current?.client===w&&(clearTimeout(M.current.timeout),M.current=null),_.current&&(clearTimeout(_.current),_.current=null),w.mountDevtools(),S(w),()=>{_.current=setTimeout(()=>{L.current===w&&(L.current=null),_.current=null},0);const U={client:w,timeout:setTimeout(()=>{O.current.live?w.unsubscribe():w.stop(),w.dispose(),M.current===U&&(M.current=null)},0)};M.current=U}),[w,S]);const j=(0,C.useCallback)(async(U,V)=>{try{await w.sendMessage(U,void 0,V)}finally{S(w)}},[w,S]),D=(0,C.useCallback)(U=>{w.cancelQueued(U)},[w,S]),P=(0,C.useCallback)(async U=>{try{await w.append(U)}finally{S(w)}},[w,S]),F=(0,C.useCallback)(async()=>{try{await w.reload()}finally{S(w)}},[w,S]),z=(0,C.useCallback)(()=>{w.stop()},[w]),B=(0,C.useCallback)(()=>{w.clear(),S(w)},[w,S]),K=(0,C.useCallback)(U=>{w.setMessagesManually(U)},[w]),H=(0,C.useCallback)(async U=>{await w.addToolResult(U)},[w]),W=(0,C.useCallback)(async U=>{await w.addToolApprovalResponse(U),S(w)},[w,S]),J=(0,C.useCallback)(async(U,V)=>{const pe=await w.resumeInterrupts(U,V??void 0);return S(w),pe},[w,S]),X=(0,C.useCallback)(U=>{w.resolveInterrupts(U)},[w]),$=(0,C.useCallback)(()=>{w.cancelInterrupts()},[w]),q=(0,C.useCallback)(()=>{w.retryInterrupts()},[w]),Q=(0,C.useCallback)((U,V)=>w.resumeInterruptsUnsafe(U,V),[w]),te=w.getMessages(),G=(0,C.useMemo)(()=>{let U=-1;for(let V=te.length-1;V>=0;V--)if(te[V]?.role==="user"){U=V;break}if(U===-1)return null;for(let V=te.length-1;V>U;V--){const pe=te[V];if(pe?.role!=="assistant")continue;const ge=pe.parts.find(ve=>ve.type==="structured-output");if(ge)return ge}return null},[te]),ne=(0,C.useMemo)(()=>G?G.partial??G.data??{}:{},[G]),Z=(0,C.useMemo)(()=>!G||G.status!=="complete"?null:G.data,[G]);return{messages:te,sendMessage:j,append:P,reload:F,stop:z,isLoading:o,error:a,status:c,isSubscribed:f,connectionStatus:p,sessionGenerating:y,setMessages:K,clear:B,addToolResult:H,addToolApprovalResponse:W,queue:v,cancelQueued:D,runId:m,interrupts:E.interrupts,pendingInterrupts:E.pendingInterrupts,interruptErrors:E.interruptErrors,resuming:E.resuming,resolveInterrupts:X,cancelInterrupts:$,retryInterrupts:q,resumeInterruptsUnsafe:Q,resumeInterrupts:J,partial:ne,final:Z}}function sR(e){return(0,C.useSyncExternalStore)(e.subscribe,e.getSnapshot,()=>EE)}var H_=new Uint8Array(128).fill(128),oR=Dl()(Hp(e=>({provider:"gemini",model:Xo("gemini"),includeSchemaInAiContext:!0,setProvider:t=>e({provider:t,model:Xo(t)}),setModel:t=>e({model:t}),setIncludeSchemaInAiContext:t=>e({includeSchemaInAiContext:t})}),{name:"db-studio-ai-settings"})),iR=()=>{const[e,t]=(0,C.useState)(""),n=sR(mn),r=oR(),s=Wo.find(u=>u.id===r.provider),o=n.status[r.provider],i=o&&"masked"in o?o.masked:null,a=r.provider==="gemini",l=async()=>{const u=e.trim();u&&(await he.promise(mn.update(r.provider,u),{loading:`Saving ${s?.label} key...`,success:`${s?.label} key ready for this tab`,error:f=>f.message||`Could not save ${s?.label} key`}),t(""))},c=async()=>{await he.promise(mn.clear(r.provider),{loading:`Removing ${s?.label} key...`,success:a?"Using the hosted Gemini key":"API key removed",error:u=>u.message||`Could not remove ${s?.label} key`})};return(0,h.jsxs)("section",{className:"space-y-3",children:[(0,h.jsxs)("div",{className:"space-y-2 rounded-lg border p-3",children:[(0,h.jsx)(fe,{htmlFor:"ai-provider",children:"Provider"}),(0,h.jsxs)(Bt,{value:r.provider,onValueChange:u=>{t(""),r.setProvider(u)},children:[(0,h.jsx)(zt,{id:"ai-provider",children:(0,h.jsx)(Ft,{})}),(0,h.jsx)(Ht,{children:Wo.map(u=>(0,h.jsx)(ht,{value:u.id,children:u.label},u.id))})]}),(0,h.jsx)(fe,{htmlFor:"ai-model",children:"Model"}),(0,h.jsxs)(Bt,{value:r.model,onValueChange:r.setModel,children:[(0,h.jsx)(zt,{id:"ai-model",children:(0,h.jsx)(Ft,{})}),(0,h.jsx)(Ht,{children:s?.models.map(u=>(0,h.jsx)(ht,{value:u.id,children:u.label},u.id))})]})]}),(0,h.jsxs)("div",{className:"space-y-2 rounded-lg border p-3",children:[(0,h.jsxs)(fe,{htmlFor:"ai-api-key",children:[s?.label," API key"]}),(0,h.jsx)(no,{id:"ai-api-key",type:"password",autoComplete:"off",value:e,onChange:u=>t(u.target.value),placeholder:i?`Saved ${i}`:"Paste an API key"}),(0,h.jsxs)("p",{className:"text-xs text-muted-foreground",children:["Kept in memory for this tab only and cleared when the page reloads.",a&&" Leave empty to use the hosted Gemini key."]}),n.storageError&&(0,h.jsx)("p",{className:"text-xs text-destructive",children:n.storageError}),(0,h.jsxs)("div",{className:"flex gap-2",children:[(0,h.jsx)(dt,{type:"button",disabled:!e.trim(),onClick:l,children:"Save key"}),o&&o.state!=="empty"&&(0,h.jsx)(dt,{type:"button",variant:"outline",onClick:c,children:a?"Use hosted key":"Remove key"})]})]}),(0,h.jsxs)("div",{className:"flex items-center justify-between gap-4 rounded-lg border p-3",children:[(0,h.jsxs)("div",{className:"space-y-1",children:[(0,h.jsx)(fe,{htmlFor:"include-schema",children:"Include database schema"}),(0,h.jsx)("p",{className:"text-xs text-muted-foreground",children:"Share table and column metadata for context-aware answers."})]}),(0,h.jsx)(Hl,{id:"include-schema",checked:r.includeSchemaInAiContext,onCheckedChange:r.setIncludeSchemaInAiContext})]})]})},zd=Ol("hover:text-foreground aria-pressed:bg-muted focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive data-[state=on]:bg-accent data-[state=on]:text-accent-foreground gap-1 rounded-md text-xs font-medium transition-all [&_svg:not([class*='size-'])]:size-3.5 group/toggle hover:bg-muted inline-flex items-center justify-center whitespace-nowrap outline-none focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0",{variants:{variant:{default:"bg-transparent",ghost:"bg-transparent hover:bg-muted",outline:"border-input hover:bg-muted border bg-transparent"},size:{default:"h-7 min-w-7 px-2",sm:"h-6 min-w-6 rounded-[min(var(--radius-md),8px)] px-1.5 text-[0.625rem] [&_svg:not([class*='size-'])]:size-3",lg:"h-8 min-w-8 px-2"}},defaultVariants:{variant:"default",size:"default"}});function B_({className:e,variant:t="default",size:n="default",...r}){return(0,h.jsx)(Ff,{"data-slot":"toggle",className:me(zd({variant:t,size:n,className:e})),...r})}var Hd=C.createContext({size:"default",variant:"default",spacing:0,orientation:"horizontal"});function ml({className:e,variant:t,size:n,spacing:r=0,orientation:s="horizontal",children:o,...i}){return(0,h.jsx)($f,{"data-slot":"toggle-group","data-variant":t,"data-size":n,"data-spacing":r,"data-orientation":s,style:{"--gap":r},className:me("rounded-md data-[size=sm]:rounded-[min(var(--radius-md),8px)] group/toggle-group flex w-fit flex-row items-center gap-[--spacing(var(--gap))] data-[orientation=vertical]:flex-col data-[orientation=vertical]:items-stretch",e),...i,children:(0,h.jsx)(Hd.Provider,{value:{variant:t,size:n,spacing:r,orientation:s},children:o})})}function vl({className:e,children:t,variant:n="default",size:r="default",...s}){const o=(0,C.use)(Hd);return(0,h.jsx)(Hf,{"data-slot":"toggle-group-item","data-variant":o.variant||n,"data-size":o.size||r,"data-spacing":o.spacing,className:me("group-data-[spacing=0]/toggle-group:rounded-none group-data-[spacing=0]/toggle-group:px-2 group-data-horizontal/toggle-group:data-[spacing=0]:first:rounded-l-md group-data-vertical/toggle-group:data-[spacing=0]:first:rounded-t-md group-data-horizontal/toggle-group:data-[spacing=0]:last:rounded-r-md group-data-vertical/toggle-group:data-[spacing=0]:last:rounded-b-md shrink-0 focus:z-10 focus-visible:z-10 group-data-horizontal/toggle-group:data-[spacing=0]:data-[variant=outline]:border-l-0 group-data-vertical/toggle-group:data-[spacing=0]:data-[variant=outline]:border-t-0 group-data-horizontal/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-l group-data-vertical/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-t",zd({variant:o.variant||n,size:o.size||r}),e),...s,children:t})}var aR=()=>{const{editor:e,setTabSize:t,setEditorFontSize:n,setEditorWordWrap:r}=Bl();return(0,h.jsxs)("section",{className:"space-y-3",children:[(0,h.jsxs)("div",{className:"space-y-2 rounded-lg border p-3",children:[(0,h.jsx)(fe,{children:"Tab size"}),(0,h.jsx)("p",{className:"text-xs text-muted-foreground",children:"Indentation used by the query editor and JSON cells."}),(0,h.jsx)(ml,{type:"single",variant:"outline",className:"w-full",value:String(e.tabSize),onValueChange:s=>{s&&t(Number(s))},"aria-label":"Tab size",children:Bp.map(s=>(0,h.jsxs)(vl,{value:String(s),className:"flex-1",children:[s," spaces"]},s))})]}),(0,h.jsxs)("div",{className:"space-y-2 rounded-lg border p-3",children:[(0,h.jsx)(fe,{children:"Font size"}),(0,h.jsx)("p",{className:"text-xs text-muted-foreground",children:"Text size in the query editor."}),(0,h.jsx)(ml,{type:"single",variant:"outline",className:"w-full",value:String(e.fontSize),onValueChange:s=>{s&&n(Number(s))},"aria-label":"Editor font size",children:Gp.map(s=>(0,h.jsxs)(vl,{value:String(s),className:"flex-1",children:[s," px"]},s))})]}),(0,h.jsxs)("div",{className:"flex items-center justify-between gap-4 rounded-lg border p-3",children:[(0,h.jsxs)("div",{className:"space-y-1",children:[(0,h.jsx)(fe,{htmlFor:"editor-word-wrap",children:"Word wrap"}),(0,h.jsx)("p",{className:"text-xs text-muted-foreground",children:"Wrap long lines in the query editor instead of scrolling."})]}),(0,h.jsx)(Hl,{id:"editor-word-wrap",checked:e.wordWrap,onCheckedChange:r})]})]})},yl=({title:e,description:t,children:n})=>(0,h.jsxs)("div",{className:"space-y-3",children:[(0,h.jsxs)("div",{className:"space-y-1",children:[(0,h.jsx)("h3",{className:"text-sm font-semibold",children:e}),(0,h.jsx)("p",{className:"text-xs text-muted-foreground",children:t})]}),n]}),lR=()=>{const{closeOverlay:e,isOverlayOpen:t}=ut();return(0,h.jsxs)(jl,{title:"Settings",description:"Changes apply immediately and are saved on this device.",open:t("settings.app"),size:"sm:max-w-md!",onOpenChange:n=>{n||e("settings.app")},children:[(0,h.jsx)(yl,{title:"Editor",description:"Query editor and JSON cell behavior.",children:(0,h.jsx)(aR,{})}),(0,h.jsx)(zp,{}),(0,h.jsx)(yl,{title:"AI",description:"Provider, model, and API key for the assistant.",children:(0,h.jsx)(iR,{})})]})},G_=()=>{const[e,t]=(0,C.useState)(!1);return(0,C.useEffect)(()=>{let n=!0;return mn.ready().then(()=>{n&&t(!0)}),()=>{n=!1}},[]),e},cR=`
|
|
@@ -31,4 +31,4 @@ import{r as Ir,t as bl}from"./rolldown-runtime-Di8pEKbV.js";import{C as Dt,D as
|
|
|
31
31
|
document.documentElement.classList.add('os-macos');
|
|
32
32
|
}
|
|
33
33
|
} catch (_) {}
|
|
34
|
-
`,Bd=()=>(0,h.jsx)("div",{className:"flex items-center justify-center h-screen",children:(0,h.jsx)(to,{size:"size-8",color:"bg-primary"})}),uR=()=>{const{dbType:e}=ft(),{isLoading:t,isInitialized:n,error:r}=uE();return(0,C.useEffect)(()=>{if(r&&e){const s=r?.status;Cr.capture("connection_error",{db_type:e,status_bucket:s?s>=500?"5xx":"4xx":"network"})}},[r,e]),(t||!n)&&!r?(0,h.jsx)(Bd,{}):r?(0,h.jsxs)("div",{className:"flex flex-col items-center justify-center h-screen gap-3 text-center",children:[(0,h.jsx)("p",{className:"text-destructive font-medium",children:"Failed to connect to the database"}),(0,h.jsx)("p",{className:"text-muted-foreground text-sm max-w-sm",children:r?.message??"An unexpected error occurred"}),(0,h.jsx)(wr,{to:"/connect",className:"text-sm underline underline-offset-4",children:"Choose another connection"})]}):(0,h.jsx)(xl,{})},Do=Zh({component:function(){so();const t=Sl({select:l=>l.pathname}),{active:n,isLoading:r,error:s}=en();hE();const o=Qh({select:l=>l.matches.some(c=>c.routeId==="/connect")});(0,C.useEffect)(()=>{const l="db-studio-telemetry-notice-shown";Op().then(c=>{c?.enabled&&(Sp(),localStorage.getItem(l)||(localStorage.setItem(l,"1"),he.info("Anonymous usage and reliability data helps improve DB Studio.",{description:"Queries, schemas, names, and values are never collected.",duration:8e3})))})},[]),(0,C.useEffect)(()=>{const l=t.split("/").filter(Boolean)[0],c=["connect","browser","table","schema","runner","visualizer","logs","indexes"].find(u=>u===l)??"home";Cr.capture("page_viewed",{page:c})},[t]);const i=!!n&&!o,a=o?(0,h.jsx)(xl,{}):r?(0,h.jsx)(Bd,{}):s?(0,h.jsxs)("div",{className:"flex flex-col items-center justify-center h-screen gap-3 text-center",children:[(0,h.jsx)("p",{className:"text-destructive font-medium",children:"Cannot reach the DB Studio server"}),(0,h.jsx)("p",{className:"text-muted-foreground text-sm max-w-sm",children:s.message})]}):n?(0,h.jsx)(uR,{},n.connectionId):(0,h.jsx)(Wh,{to:"/connect"});return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)("script",{defer:!0,src:`data:text/javascript;base64,${btoa(cR)}`}),(0,h.jsxs)(eg,{fullPageNavigationOnShallowFalseUpdates:!0,defaultOptions:{shallow:!0,clearOnDefault:!0},children:[a,i&&(0,h.jsx)(cE,{})]}),(0,h.jsx)(Wp,{position:"top-right"}),i&&(0,h.jsx)(xg,{}),(0,h.jsx)(lR,{})]})}}),dR=()=>Ce(()=>import("./_pathlessLayout-
|
|
34
|
+
`,Bd=()=>(0,h.jsx)("div",{className:"flex items-center justify-center h-screen",children:(0,h.jsx)(to,{size:"size-8",color:"bg-primary"})}),uR=()=>{const{dbType:e}=ft(),{isLoading:t,isInitialized:n,error:r}=uE();return(0,C.useEffect)(()=>{if(r&&e){const s=r?.status;Cr.capture("connection_error",{db_type:e,status_bucket:s?s>=500?"5xx":"4xx":"network"})}},[r,e]),(t||!n)&&!r?(0,h.jsx)(Bd,{}):r?(0,h.jsxs)("div",{className:"flex flex-col items-center justify-center h-screen gap-3 text-center",children:[(0,h.jsx)("p",{className:"text-destructive font-medium",children:"Failed to connect to the database"}),(0,h.jsx)("p",{className:"text-muted-foreground text-sm max-w-sm",children:r?.message??"An unexpected error occurred"}),(0,h.jsx)(wr,{to:"/connect",className:"text-sm underline underline-offset-4",children:"Choose another connection"})]}):(0,h.jsx)(xl,{})},Do=Zh({component:function(){so();const t=Sl({select:l=>l.pathname}),{active:n,isLoading:r,error:s}=en();hE();const o=Qh({select:l=>l.matches.some(c=>c.routeId==="/connect")});(0,C.useEffect)(()=>{const l="db-studio-telemetry-notice-shown";Op().then(c=>{c?.enabled&&(Sp(),localStorage.getItem(l)||(localStorage.setItem(l,"1"),he.info("Anonymous usage and reliability data helps improve DB Studio.",{description:"Queries, schemas, names, and values are never collected.",duration:8e3})))})},[]),(0,C.useEffect)(()=>{const l=t.split("/").filter(Boolean)[0],c=["connect","browser","table","schema","runner","visualizer","logs","indexes"].find(u=>u===l)??"home";Cr.capture("page_viewed",{page:c})},[t]);const i=!!n&&!o,a=o?(0,h.jsx)(xl,{}):r?(0,h.jsx)(Bd,{}):s?(0,h.jsxs)("div",{className:"flex flex-col items-center justify-center h-screen gap-3 text-center",children:[(0,h.jsx)("p",{className:"text-destructive font-medium",children:"Cannot reach the DB Studio server"}),(0,h.jsx)("p",{className:"text-muted-foreground text-sm max-w-sm",children:s.message})]}):n?(0,h.jsx)(uR,{},n.connectionId):(0,h.jsx)(Wh,{to:"/connect"});return(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)("script",{defer:!0,src:`data:text/javascript;base64,${btoa(cR)}`}),(0,h.jsxs)(eg,{fullPageNavigationOnShallowFalseUpdates:!0,defaultOptions:{shallow:!0,clearOnDefault:!0},children:[a,i&&(0,h.jsx)(cE,{})]}),(0,h.jsx)(Wp,{position:"top-right"}),i&&(0,h.jsx)(xg,{}),(0,h.jsx)(lR,{})]})}}),dR=()=>Ce(()=>import("./_pathlessLayout-Dq6e_NF8.js").then(e=>e.t),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30])),hR=we("/_pathlessLayout")({component:Ee(dR,"component")}),fR=()=>Ce(()=>import("./connect-DvvXMsnR.js"),[]),pR=we("/connect")({component:Ee(fR,"component")}),gR=()=>Ce(()=>import("./_pathlessLayout-BwDB7UH8.js"),__vite__mapDeps([31,2,1,3,4,19,16,13,17])),mR=we("/_pathlessLayout/")({component:Ee(gR,"component")}),vR=()=>Ce(()=>import("./browser-CFtnfZcn.js"),__vite__mapDeps([32,1,2,3,4,5,6,7,8,9,11,12,13,15,16,17,18,29,25,30,23,20])),yR=we("/_pathlessLayout/browser")({component:Ee(vR,"component")}),bR=()=>Ce(()=>import("./logs-DQk3nMcE.js"),__vite__mapDeps([33,1,2,3,4,6,7,8,10,5,11,12,13,14,15,16,17,18,19,20,21,22,9,23,24,25,26,27,28])),xR=we("/_pathlessLayout/logs")({component:Ee(bR,"component")}),SR=()=>Ce(()=>import("./visualizer-CWs82Oat.js"),__vite__mapDeps([34,4,1,3])),IR=we("/_pathlessLayout/visualizer")({component:Ee(SR,"component")}),wR=()=>Ce(()=>import("./indexes-Dd93lTvB.js"),__vite__mapDeps([35,4,1,3])),ER=we("/_pathlessLayout/indexes/")({component:Ee(wR,"component")}),CR=()=>Ce(()=>import("./_table-8PsqQd2I.js"),__vite__mapDeps([36,1,2,3,4,5,6,7,8,10,11,12,13,14,15,16,17,18,19,20,21,22,9,23,24,25,26,27,28])),NR=we("/_pathlessLayout/indexes/$table")({component:Ee(CR,"component")}),RR=()=>Ce(()=>import("./runner-Di4uLR8Z.js"),__vite__mapDeps([37,4,1,3,38,2,5,8,6,7,9,12,13,15,16,17,19,21,27,29,25])),_R=we("/_pathlessLayout/runner/")({validateSearch:e=>typeof e.cmd=="string"?{cmd:e.cmd}:{},component:Ee(RR,"component")}),TR=()=>Ce(()=>import("./_queryId-B0DdcAYp.js"),__vite__mapDeps([39,4,1,3,38,2,5,8,6,7,9,12,13,15,16,17,19,21,27,29,25])),AR=we("/_pathlessLayout/runner/$queryId")({component:Ee(TR,"component")}),MR=()=>Ce(()=>import("./schema-CC7fIVGB.js"),__vite__mapDeps([40,4,1,3])),kR=we("/_pathlessLayout/schema/")({component:Ee(MR,"component")}),OR=()=>Ce(()=>import("./_table-CeyFxEOk.js"),__vite__mapDeps([41,4,1,3,10,2,5,6,7,8,11,12,13,14,15,16,17,18,19,20,21])),jR=we("/_pathlessLayout/schema/$table")({component:Ee(OR,"component")}),PR=()=>Ce(()=>import("./table-Dq85hQaM.js"),__vite__mapDeps([42,4,1,3])),LR=we("/_pathlessLayout/table/")({component:Ee(PR,"component")}),Ne=hR.update({id:"/_pathlessLayout",getParentRoute:()=>Do}),DR=pR.update({id:"/connect",path:"/connect",getParentRoute:()=>Do}),$R=mR.update({id:"/",path:"/",getParentRoute:()=>Ne}),FR=yR.update({id:"/browser",path:"/browser",getParentRoute:()=>Ne}),zR=xR.update({id:"/logs",path:"/logs",getParentRoute:()=>Ne}),HR=IR.update({id:"/visualizer",path:"/visualizer",getParentRoute:()=>Ne}),BR=ER.update({id:"/indexes/",path:"/indexes/",getParentRoute:()=>Ne}),GR=NR.update({id:"/indexes/$table",path:"/indexes/$table",getParentRoute:()=>Ne}),UR=_R.update({id:"/runner/",path:"/runner/",getParentRoute:()=>Ne}),qR=AR.update({id:"/runner/$queryId",path:"/runner/$queryId",getParentRoute:()=>Ne}),VR=kR.update({id:"/schema/",path:"/schema/",getParentRoute:()=>Ne}),KR=jR.update({id:"/schema/$table",path:"/schema/$table",getParentRoute:()=>Ne}),YR=LR.update({id:"/table/",path:"/table/",getParentRoute:()=>Ne}),WR={PathlessLayoutBrowserRoute:FR,PathlessLayoutLogsRoute:zR,PathlessLayoutVisualizerRoute:HR,PathlessLayoutIndexRoute:$R,PathlessLayoutIndexesTableRoute:GR,PathlessLayoutRunnerQueryIdRoute:qR,PathlessLayoutSchemaTableRoute:KR,PathlessLayoutTableTableRoute:bp.update({id:"/table/$table",path:"/table/$table",getParentRoute:()=>Ne}),PathlessLayoutIndexesIndexRoute:BR,PathlessLayoutRunnerIndexRoute:UR,PathlessLayoutSchemaIndexRoute:VR,PathlessLayoutTableIndexRoute:YR},XR={PathlessLayoutRoute:Ne._addFileChildren(WR),ConnectRoute:DR},QR=Do._addFileChildren(XR)._addFileTypes(),JR=Jh({routeTree:QR,context:{queryClient:Gl()},defaultPreload:"intent",scrollRestoration:!0,defaultStructuralSharing:!0}),xs=document.getElementById("root");if(xs&&!xs.innerHTML){const e=Up.createRoot(xs),t=Gl();e.render((0,h.jsx)(C.StrictMode,{children:(0,h.jsx)(Yh,{client:t,children:(0,h.jsx)(tf,{router:JR})})}))}export{ng as C,__ as S,P_ as _,G_ as a,T_ as b,B_ as c,z_ as d,F_ as f,L_ as g,D_ as h,NR as i,oR as l,$_ as m,AR as n,ml as o,mn as p,_R as r,vl as s,jR as t,sR as u,ln as v,tg as w,N_ as x,R_ as y};
|