@marimo-team/frontend 0.14.17-dev53 → 0.14.17-dev54
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/assets/{ConnectedDataExplorerComponent-DKh08YWM.js → ConnectedDataExplorerComponent-DjCJrL8c.js} +2 -2
- package/dist/assets/{ImageComparisonComponent-C4vT5pWU.js → ImageComparisonComponent-8zAgmEZc.js} +1 -1
- package/dist/assets/{VegaLite-Dog4hgsm.js → VegaLite-DrJCLVeG.js} +1 -1
- package/dist/assets/{_baseEach-RQ10f1k0.js → _baseEach-CW3YX-xa.js} +1 -1
- package/dist/assets/_baseMap-ustbOubK.js +1 -0
- package/dist/assets/{_baseUniq-89V6MClD.js → _baseUniq-rh38dNLc.js} +1 -1
- package/dist/assets/{_createAggregator-Besn85pg.js → _createAggregator-qgPv0UtB.js} +1 -1
- package/dist/assets/{any-language-editor-CzWgTXvd.js → any-language-editor-nsqS4mNe.js} +1 -1
- package/dist/assets/{architectureDiagram-SUXI7LT5-C3_H1AIT.js → architectureDiagram-SUXI7LT5-BXWqvg2p.js} +1 -1
- package/dist/assets/{blockDiagram-6J76NXCF-CQPh-Lgo.js → blockDiagram-6J76NXCF-BF2uoJ2C.js} +1 -1
- package/dist/assets/{c4Diagram-6F6E4RAY-D1c-W39K.js → c4Diagram-6F6E4RAY-BaFS21DX.js} +1 -1
- package/dist/assets/channel-DD5B19z-.js +1 -0
- package/dist/assets/{chunk-353BL4L5-Bl_vyR_x.js → chunk-353BL4L5-BzGqrlET.js} +1 -1
- package/dist/assets/{chunk-67H74DCK-COJTNvW-.js → chunk-67H74DCK-BbDKDK1N.js} +1 -1
- package/dist/assets/{chunk-AACKK3MU-BdswCusP.js → chunk-AACKK3MU-Bm3fRza9.js} +1 -1
- package/dist/assets/{chunk-BFAMUDN2-Bjs7j4oN.js → chunk-BFAMUDN2-r88iYW6-.js} +1 -1
- package/dist/assets/{chunk-E2GYISFI-CoS2l8l8.js → chunk-E2GYISFI-CqhYqoXU.js} +1 -1
- package/dist/assets/{chunk-OW32GOEJ-CKDr94D_.js → chunk-OW32GOEJ-CUe3qt6P.js} +1 -1
- package/dist/assets/{chunk-SKB7J2MH-DimpXcnJ.js → chunk-SKB7J2MH-BQ24iETa.js} +1 -1
- package/dist/assets/{chunk-SZ463SBG-Bw0e7LjL.js → chunk-SZ463SBG-DrW4_XE0.js} +1 -1
- package/dist/assets/{circle-play-BgqSkGGN.js → circle-play-BKBMrAz5.js} +1 -1
- package/dist/assets/classDiagram-M3E45YP4-CayKLiDC.js +1 -0
- package/dist/assets/classDiagram-v2-YAWTLIQI-CayKLiDC.js +1 -0
- package/dist/assets/clone-C3XJ1KI8.js +1 -0
- package/dist/assets/{compile-BSPBUxJI.js → compile-D2ccR_nA.js} +1 -1
- package/dist/assets/{dagre-JOIXM2OF-Cb3F6ssB.js → dagre-JOIXM2OF-Din0Rf-E.js} +1 -1
- package/dist/assets/{data-grid-overlay-editor-BwHC1Pqa.js → data-grid-overlay-editor-C0cIRvxO.js} +1 -1
- package/dist/assets/{diagram-5UYTHUR4-B_gFwBq2.js → diagram-5UYTHUR4-CkZNlTvd.js} +1 -1
- package/dist/assets/{diagram-VMROVX33-BuRisVR5.js → diagram-VMROVX33-CwpjoANg.js} +1 -1
- package/dist/assets/{diagram-ZTM2IBQH-CxkgLZ7O.js → diagram-ZTM2IBQH-Bl56y9sb.js} +1 -1
- package/dist/assets/{edit-page-DzKadI3m.js → edit-page-Bk30GS0v.js} +15 -15
- package/dist/assets/edit-page-Go6-q-IH.css +1 -0
- package/dist/assets/{erDiagram-3M52JZNH-DxODY6mT.js → erDiagram-3M52JZNH-DhU-pjT5.js} +1 -1
- package/dist/assets/{flowDiagram-KYDEHFYC-BWyx7dlL.js → flowDiagram-KYDEHFYC-PTiY8S4q.js} +1 -1
- package/dist/assets/{ganttDiagram-EK5VF46D-CtCjyrxs.js → ganttDiagram-EK5VF46D-rn0CV3wu.js} +1 -1
- package/dist/assets/{gitGraphDiagram-GW3U2K7C-DZVO-wQU.js → gitGraphDiagram-GW3U2K7C-j01epjnk.js} +1 -1
- package/dist/assets/{glide-data-editor-CVfcCyjx.js → glide-data-editor-C6IjL6Sz.js} +4 -4
- package/dist/assets/glide-data-editor-D6VlfICr.css +1 -0
- package/dist/assets/{graph-BBahpVHD.js → graph-C6hTPYsM.js} +1 -1
- package/dist/assets/home-page-DRO3ujsI.js +9 -0
- package/dist/assets/{index-HgmDNqr2.js → index-B0HxjhlY.js} +1 -1
- package/dist/assets/{index-DA5RESZN.js → index-BaNGlBPC.js} +1 -1
- package/dist/assets/{index-DP6jBolv.js → index-BthLbvoc.js} +1 -1
- package/dist/assets/{index-CAnNHKNy.js → index-C6lSsXHx.js} +1 -1
- package/dist/assets/index-CCrDNo99.css +1 -0
- package/dist/assets/{index-BHjOn5p_.js → index-CdIAeTVh.js} +1 -1
- package/dist/assets/{index-CmIWRwXc.js → index-CikeosA3.js} +27 -27
- package/dist/assets/{index-CIYtqntY.js → index-CjevVD1x.js} +1 -1
- package/dist/assets/{index-DyJe4dEG.js → index-CtvT3dzR.js} +1 -1
- package/dist/assets/{index-CRawUwC7.js → index-D1CYs_XA.js} +1 -1
- package/dist/assets/{index-CRs-dFsH.js → index-D2F1YfDe.js} +1 -1
- package/dist/assets/{index-C25GK5aN.js → index-D8YeALGV.js} +1 -1
- package/dist/assets/{index-BJcjg001.js → index-DLJ_7nAk.js} +1 -1
- package/dist/assets/{index-BeYufVys.js → index-DWhDTJDI.js} +1 -1
- package/dist/assets/{index-CSPza-CQ.js → index-DgZMvd8K.js} +1 -1
- package/dist/assets/{index-NnDUqWX_.js → index-DimuUs9s.js} +1 -1
- package/dist/assets/{index-BB80aoav.js → index-DlXu7jnp.js} +1 -1
- package/dist/assets/{index-DzZz43s7.js → index-DlnmbJSr.js} +1 -1
- package/dist/assets/{index-NI03pyES.js → index-YlkRqwLs.js} +1 -1
- package/dist/assets/{index-C4W9Ro3g.js → index-unCfmyJm.js} +1 -1
- package/dist/assets/infoDiagram-LHK5PUON-Cna3jMdU.js +2 -0
- package/dist/assets/{journeyDiagram-EWQZEKCU-CkcTmVdi.js → journeyDiagram-EWQZEKCU-HudMkC33.js} +1 -1
- package/dist/assets/{kanban-definition-ZSS6B67P-DJm2MlBR.js → kanban-definition-ZSS6B67P-LEcI8EUp.js} +1 -1
- package/dist/assets/{layout-JvgnInLJ.js → layout-DJ1kUf30.js} +1 -1
- package/dist/assets/{linear-BwE9Qacw.js → linear-CDRBtZNp.js} +1 -1
- package/dist/assets/{links-BimD3-ox.js → links-DGfr_enC.js} +3 -3
- package/dist/assets/links-Dn1Stwqz.css +1 -0
- package/dist/assets/{mermaid-Zixdf-t5.js → mermaid-ChZ44KCc.js} +4 -4
- package/dist/assets/{min-CEdlcixp.js → min-D34Pnfte.js} +1 -1
- package/dist/assets/{mindmap-definition-6CBA2TL7-BgDkJwOf.js → mindmap-definition-6CBA2TL7-9CAd4oms.js} +1 -1
- package/dist/assets/{number-overlay-editor-L5FraASh.js → number-overlay-editor-BEvgDv-J.js} +1 -1
- package/dist/assets/{pieDiagram-NIOCPIFQ-DAZt23Zm.js → pieDiagram-NIOCPIFQ-Dwo-KM2X.js} +1 -1
- package/dist/assets/{quadrantDiagram-2OG54O6I-DWNg3cS2.js → quadrantDiagram-2OG54O6I-DdXvKOXs.js} +1 -1
- package/dist/assets/{react-plotly-DxgAScfy.js → react-plotly-BDh8Kv4r.js} +1 -1
- package/dist/assets/{requirementDiagram-QOLK2EJ7-Dy1nALZO.js → requirementDiagram-QOLK2EJ7-MphvAXSE.js} +1 -1
- package/dist/assets/run-page-ORNzHtxx.js +1 -0
- package/dist/assets/{sankeyDiagram-4UZDY2LN-DOc6Fvnd.js → sankeyDiagram-4UZDY2LN-CgaxWuYI.js} +1 -1
- package/dist/assets/{sequenceDiagram-SKLFT4DO-CD4W5LDH.js → sequenceDiagram-SKLFT4DO-CkccI4cs.js} +1 -1
- package/dist/assets/{slides-component-BHD6_nqY.js → slides-component-BOPd_Bz0.js} +1 -1
- package/dist/assets/slides-component-DMjQomc3.css +1 -0
- package/dist/assets/{sortBy-C4lvXq3V.js → sortBy-O9IR6Qrs.js} +1 -1
- package/dist/assets/{stateDiagram-MI5ZYTHO--ZALIFoq.js → stateDiagram-MI5ZYTHO-Iv2wMtAt.js} +1 -1
- package/dist/assets/stateDiagram-v2-5AN5P6BG-BnsCAqrD.js +1 -0
- package/dist/assets/storage-B6yZpgAI.css +1 -0
- package/dist/assets/{storage-BGqE5cOP.js → storage-Ddhvks0j.js} +5 -5
- package/dist/assets/terminal-B3isKKSk.css +1 -0
- package/dist/assets/{terminal-BQNHLG5_.js → terminal-C2KFVAAU.js} +2 -2
- package/dist/assets/{time-CsGLRxve.js → time-y8ukgRAO.js} +1 -1
- package/dist/assets/{timeline-definition-MYPXXCX6-BckfZxxa.js → timeline-definition-MYPXXCX6-CbMNGtkb.js} +1 -1
- package/dist/assets/{tracing-DPLGzxiD.js → tracing-Nsu9auP7.js} +2 -2
- package/dist/assets/{trash-YzCmAnx5.js → trash-GFw8PsNX.js} +1 -1
- package/dist/assets/{treemap-75Q7IDZK-cDfXIWBw.js → treemap-75Q7IDZK-B5rpZR4-.js} +1 -1
- package/dist/assets/{vega-component-DW6z7Oim.js → vega-component-CHZBkIbg.js} +1 -1
- package/dist/assets/{xychartDiagram-H2YORKM3-DSwnEPEp.js → xychartDiagram-H2YORKM3-DoPhlYa4.js} +1 -1
- package/dist/index.html +2 -2
- package/package.json +5 -5
- package/dist/assets/_baseMap-BR2OSMVR.js +0 -1
- package/dist/assets/channel-HDqiuCpB.js +0 -1
- package/dist/assets/classDiagram-M3E45YP4-BlulyYIs.js +0 -1
- package/dist/assets/classDiagram-v2-YAWTLIQI-BlulyYIs.js +0 -1
- package/dist/assets/clone-UMCgI6YN.js +0 -1
- package/dist/assets/edit-page-B7tjWZiy.css +0 -1
- package/dist/assets/glide-data-editor-DcmjcDkq.css +0 -1
- package/dist/assets/home-page-DTMS3dDR.js +0 -9
- package/dist/assets/index-DmaoBTfT.css +0 -1
- package/dist/assets/infoDiagram-LHK5PUON-Cs9qPzVq.js +0 -2
- package/dist/assets/links-C1rhMrxo.css +0 -1
- package/dist/assets/run-page-BagWBynq.js +0 -1
- package/dist/assets/slides-component-DeDT_a8V.css +0 -1
- package/dist/assets/stateDiagram-v2-5AN5P6BG-DNE90FJX.js +0 -1
- package/dist/assets/storage-De8XnUVS.css +0 -1
- package/dist/assets/terminal-WqMRJt5Z.css +0 -1
@@ -1,4 +1,4 @@
|
|
1
|
-
import{cd as ls,aO as cs,c as ne,U as S,b as Be,j as s,fr as us,fs as ds,a as G,cA as hs,ar as Tt,ft as fs,T as Me,fu as On,f8 as ps,fv as kn,fw as D,fx as Cn,fy as T,fz as C,fA as E,fB as fe,fC as P,bn as ue,fD as Nn,fE as F,fF as Y,ac as Re,fG as ce,bo as $,fH as st,e2 as Dn,fI as Tn,fJ as gs,fK as ms,dP as ot,al as Ve,fL as vs,fM as En,b4 as ys,fN as xs,L as q,fO as bs,fP as js,fQ as ws,fR as Le,fS as Is,fT as Ss,cl as Os,bd as We,bp as at,et as lt,a6 as me,eq as ks,dL as _n,ad as Cs,ab as Ns,fU as Ds,fV as Ts,fW as Ie,fX as Pn,fY as Es,fZ as An,f_ as ct,f$ as Mn,g0 as _s,g1 as ut,g2 as Z,g3 as Ps,eI as As,ds as Et,fh as Ms,g4 as _t,g5 as Rs,g6 as Ls,g7 as Rn,g8 as Ln,g9 as Fs,eQ as Fn,V as dt,ga as Hs,gb as zs,gc as Hn,gd as zn,ge as Us,gf as Un,a4 as Pt,gg as qs,gh as Bs,a7 as qn,a8 as Vs,a9 as Ws,cg as Bn,gi as Ks,gj as Vn,at as Ke,aJ as Gs,gk as Wn,gl as At,aw as Ys,ag as Ge,_ as Kn,E as $s,gm as Xs,gn as ht,go as Qs,gp as Js,ao as Mt,ff as Zs,gq as eo,gr as to,gs as no,gt as ro,gu as io,gv as so,eo as Ye,dC as ft,bl as Rt,gw as oo,gx as ao,gy as lo,gz as Gn,a5 as co,gA as uo,gB as ho,gC as fo,b9 as po,bi as go,b7 as mo}from"./index-
|
1
|
+
import{cd as ls,aO as cs,c as ne,U as S,b as Be,j as s,fr as us,fs as ds,a as G,cA as hs,ar as Tt,ft as fs,T as Me,fu as On,f8 as ps,fv as kn,fw as D,fx as Cn,fy as T,fz as C,fA as E,fB as fe,fC as P,bn as ue,fD as Nn,fE as F,fF as Y,ac as Re,fG as ce,bo as $,fH as st,e2 as Dn,fI as Tn,fJ as gs,fK as ms,dP as ot,al as Ve,fL as vs,fM as En,b4 as ys,fN as xs,L as q,fO as bs,fP as js,fQ as ws,fR as Le,fS as Is,fT as Ss,cl as Os,bd as We,bp as at,et as lt,a6 as me,eq as ks,dL as _n,ad as Cs,ab as Ns,fU as Ds,fV as Ts,fW as Ie,fX as Pn,fY as Es,fZ as An,f_ as ct,f$ as Mn,g0 as _s,g1 as ut,g2 as Z,g3 as Ps,eI as As,ds as Et,fh as Ms,g4 as _t,g5 as Rs,g6 as Ls,g7 as Rn,g8 as Ln,g9 as Fs,eQ as Fn,V as dt,ga as Hs,gb as zs,gc as Hn,gd as zn,ge as Us,gf as Un,a4 as Pt,gg as qs,gh as Bs,a7 as qn,a8 as Vs,a9 as Ws,cg as Bn,gi as Ks,gj as Vn,at as Ke,aJ as Gs,gk as Wn,gl as At,aw as Ys,ag as Ge,_ as Kn,E as $s,gm as Xs,gn as ht,go as Qs,gp as Js,ao as Mt,ff as Zs,gq as eo,gr as to,gs as no,gt as ro,gu as io,gv as so,eo as Ye,dC as ft,bl as Rt,gw as oo,gx as ao,gy as lo,gz as Gn,a5 as co,gA as uo,gB as ho,gC as fo,b9 as po,bi as go,b7 as mo}from"./index-CikeosA3.js";import{e as vo}from"./index-DLJ_7nAk.js";/**
|
2
2
|
* @license lucide-react v0.525.0 - ISC
|
3
3
|
*
|
4
4
|
* This source code is licensed under the ISC license.
|
@@ -13,5 +13,5 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
13
13
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}()}function fi(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}function dl(t,e,n){var r=Te(),i=function(a,c){var l=S.useMemo(function(){return new cl(a,c)},[c]);return S.useEffect(function(){l.spec=a},[a]),l}(t,e),o=function(a){var c=a.accept;return S.useMemo(function(){return A(a.accept!=null,"accept must be defined"),Array.isArray(c)?c:[c]},[c])}(t);De(function(){var a=function(d,v,p){var m=p.getRegistry(),h=m.addTarget(d,v);return[h,function(){return m.removeTarget(h)}]}(o,i,r),c=ul(a,2),l=c[0],u=c[1];return e.receiveHandlerId(l),n.receiveHandlerId(l),u},[r,e,i,n,o.map(function(a){return a.toString()}).join("|")])}function hl(t){return S.useMemo(function(){return t.hooks.dropTarget()},[t])}function pi(t,e){var n,r=ai(t,e),i=(n=Te(),S.useMemo(function(){return new Ka(n)},[n])),o=function(a){var c=Te(),l=S.useMemo(function(){return new Qa(c.getBackend())},[c]);return De(function(){return l.dropTargetOptions=a||null,l.reconnect(),function(){return l.disconnectDropTarget()}},[a]),l}(r.options);return dl(r,i,o),[di(r.collect,i,o),hl(o)]}function fl(t,e){return function(n){if(Array.isArray(n))return n}(t)||function(n,r){var i=n==null?null:typeof Symbol<"u"&&n[Symbol.iterator]||n["@@iterator"];if(i!=null){var o,a,c=[],l=!0,u=!1;try{for(i=i.call(n);!(l=(o=i.next()).done)&&(c.push(o.value),!r||c.length!==r);l=!0);}catch(d){u=!0,a=d}finally{try{l||i.return==null||i.return()}finally{if(u)throw a}}return c}}(t,e)||function(n,r){if(n){if(typeof n=="string")return gi(n,r);var i=Object.prototype.toString.call(n).slice(8,-1);if(i==="Object"&&n.constructor&&(i=n.constructor.name),i==="Map"||i==="Set")return Array.from(n);if(i==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i))return gi(n,r)}}(t,e)||function(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
14
14
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}()}function gi(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}function mi(t){var e=null;return function(){return e==null&&(e=t()),e}}function pl(t,e,n){return e&&function(r,i){for(var o=0;o<i.length;o++){var a=i[o];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(r,a.key,a)}}(t.prototype,e),t}function vi(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var gl=function(){function t(e){(function(n,r){if(!(n instanceof r))throw new TypeError("Cannot call a class as a function")})(this,t),vi(this,"entered",[]),vi(this,"isNodeInDocument",void 0),this.isNodeInDocument=e}return pl(t,[{key:"enter",value:function(e){var n=this,r=this.entered.length;return this.entered=function(i,o){var a=new Set,c=function(u){return a.add(u)};i.forEach(c),o.forEach(c);var l=[];return a.forEach(function(u){return l.push(u)}),l}(this.entered.filter(function(i){return n.isNodeInDocument(i)&&(!i.contains||i.contains(e))}),[e]),r===0&&this.entered.length>0}},{key:"leave",value:function(e){var n,r,i=this.entered.length;return this.entered=(n=this.entered.filter(this.isNodeInDocument),r=e,n.filter(function(o){return o!==r})),i>0&&this.entered.length===0}},{key:"reset",value:function(){this.entered=[]}}]),t}(),ml=mi(function(){return/firefox/i.test(navigator.userAgent)}),yi=mi(function(){return!!window.safari});function vl(t,e,n){return e&&function(r,i){for(var o=0;o<i.length;o++){var a=i[o];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(r,a.key,a)}}(t.prototype,e),t}function Ze(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var xi=function(){function t(e,n){(function(z,H){if(!(z instanceof H))throw new TypeError("Cannot call a class as a function")})(this,t),Ze(this,"xs",void 0),Ze(this,"ys",void 0),Ze(this,"c1s",void 0),Ze(this,"c2s",void 0),Ze(this,"c3s",void 0);for(var r=e.length,i=[],o=0;o<r;o++)i.push(o);i.sort(function(z,H){return e[z]<e[H]?-1:1});for(var a,c,l=[],u=[],d=0;d<r-1;d++)a=e[d+1]-e[d],c=n[d+1]-n[d],l.push(a),u.push(c/a);for(var v=[u[0]],p=0;p<l.length-1;p++){var m=u[p],h=u[p+1];if(m*h<=0)v.push(0);else{a=l[p];var f=l[p+1],y=a+f;v.push(3*y/((y+f)/m+(y+a)/h))}}v.push(u[u.length-1]);for(var x,w=[],I=[],k=0;k<v.length-1;k++){x=u[k];var O=v[k],N=1/l[k],_=O+v[k+1]-x-x;w.push((x-O-_)*N),I.push(_*N*N)}this.xs=e,this.ys=n,this.c1s=v,this.c2s=w,this.c3s=I}return vl(t,[{key:"interpolate",value:function(e){var n=this.xs,r=this.ys,i=this.c1s,o=this.c2s,a=this.c3s,c=n.length-1;if(e===n[c])return r[c];for(var l,u=0,d=a.length-1;u<=d;){var v=n[l=Math.floor(.5*(u+d))];if(v<e)u=l+1;else{if(!(v>e))return r[l];d=l-1}}var p=e-n[c=Math.max(0,d)],m=p*p;return r[c]+i[c]*p+o[c]*m+a[c]*p*m}}]),t}();function bi(t){var e=t.nodeType===1?t:t.parentElement;if(!e)return null;var n=e.getBoundingClientRect(),r=n.top;return{x:n.left,y:r}}function bt(t){return{x:t.clientX,y:t.clientY}}function yl(t,e,n,r,i){var o,a,c,l=(o=e).nodeName==="IMG"&&(ml()||!((a=document.documentElement)!==null&&a!==void 0&&a.contains(o))),u=bi(l?t:e),d={x:n.x-u.x,y:n.y-u.y},v=t.offsetWidth,p=t.offsetHeight,m=r.anchorX,h=r.anchorY,f=function(O,N,_,z){var H=O?N.width:_,U=O?N.height:z;return yi()&&O&&(U/=window.devicePixelRatio,H/=window.devicePixelRatio),{dragPreviewWidth:H,dragPreviewHeight:U}}(l,e,v,p),y=f.dragPreviewWidth,x=f.dragPreviewHeight,w=i.offsetX,I=i.offsetY,k=I===0||I;return{x:w===0||w?w:new xi([0,.5,1],[d.x,d.x/v*y,d.x+y-v]).interpolate(m),y:k?I:(c=new xi([0,.5,1],[d.y,d.y/p*x,d.y+x-p]).interpolate(h),yi()&&l&&(c+=(window.devicePixelRatio-1)*x),c)}}var ji="__NATIVE_FILE__",wi="__NATIVE_URL__",Ii="__NATIVE_TEXT__",Si="__NATIVE_HTML__";const Oi=Object.freeze(Object.defineProperty({__proto__:null,FILE:ji,HTML:Si,TEXT:Ii,URL:wi},Symbol.toStringTag,{value:"Module"}));function hn(t,e,n){var r=e.reduce(function(i,o){return i||t.getData(o)},"");return r??n}var et;function jt(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var fn=(jt(et={},ji,{exposeProperties:{files:function(t){return Array.prototype.slice.call(t.files)},items:function(t){return t.items},dataTransfer:function(t){return t}},matchesTypes:["Files"]}),jt(et,Si,{exposeProperties:{html:function(t,e){return hn(t,e,"")},dataTransfer:function(t){return t}},matchesTypes:["Html","text/html"]}),jt(et,wi,{exposeProperties:{urls:function(t,e){return hn(t,e,"").split(`
|
15
15
|
`)},dataTransfer:function(t){return t}},matchesTypes:["Url","text/uri-list"]}),jt(et,Ii,{exposeProperties:{text:function(t,e){return hn(t,e,"")},dataTransfer:function(t){return t}},matchesTypes:["Text","text/plain"]}),et);function xl(t,e,n){return e&&function(r,i){for(var o=0;o<i.length;o++){var a=i[o];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(r,a.key,a)}}(t.prototype,e),t}function ki(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var bl=function(){function t(e){(function(n,r){if(!(n instanceof r))throw new TypeError("Cannot call a class as a function")})(this,t),ki(this,"item",void 0),ki(this,"config",void 0),this.config=e,this.item={},this.initializeExposedProperties()}return xl(t,[{key:"initializeExposedProperties",value:function(){var e=this;Object.keys(this.config.exposeProperties).forEach(function(n){Object.defineProperty(e.item,n,{configurable:!0,enumerable:!0,get:function(){return console.warn(`Browser doesn't allow reading "`.concat(n,'" until the drop event.')),null}})})}},{key:"loadDataTransfer",value:function(e){var n=this;if(e){var r={};Object.keys(this.config.exposeProperties).forEach(function(i){r[i]={value:n.config.exposeProperties[i](e,n.config.matchesTypes),configurable:!0,enumerable:!0}}),Object.defineProperties(this.item,r)}}},{key:"canDrag",value:function(){return!0}},{key:"beginDrag",value:function(){return this.item}},{key:"isDragging",value:function(e,n){return n===e.getSourceId()}},{key:"endDrag",value:function(){}}]),t}();function pn(t){if(!t)return null;var e=Array.prototype.slice.call(t.types||[]);return Object.keys(fn).filter(function(n){return fn[n].matchesTypes.some(function(r){return e.indexOf(r)>-1})})[0]||null}function jl(t,e,n){return e&&function(r,i){for(var o=0;o<i.length;o++){var a=i[o];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(r,a.key,a)}}(t.prototype,e),t}function gn(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var wl=function(){function t(e,n){(function(r,i){if(!(r instanceof i))throw new TypeError("Cannot call a class as a function")})(this,t),gn(this,"ownerDocument",null),gn(this,"globalContext",void 0),gn(this,"optionsArgs",void 0),this.globalContext=e,this.optionsArgs=n}return jl(t,[{key:"window",get:function(){return this.globalContext?this.globalContext:typeof window<"u"?window:void 0}},{key:"document",get:function(){var e;return(e=this.globalContext)!==null&&e!==void 0&&e.document?this.globalContext.document:this.window?this.window.document:void 0}},{key:"rootElement",get:function(){var e;return((e=this.optionsArgs)===null||e===void 0?void 0:e.rootElement)||this.window}}]),t}();function Ci(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),n.push.apply(n,r)}return n}function Ni(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?Ci(Object(n),!0).forEach(function(r){L(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):Ci(Object(n)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(n,r))})}return t}function Il(t,e,n){return e&&function(r,i){for(var o=0;o<i.length;o++){var a=i[o];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(r,a.key,a)}}(t.prototype,e),t}function L(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var mn,Sl=function(){function t(e,n,r){var i=this;(function(o,a){if(!(o instanceof a))throw new TypeError("Cannot call a class as a function")})(this,t),L(this,"options",void 0),L(this,"actions",void 0),L(this,"monitor",void 0),L(this,"registry",void 0),L(this,"enterLeaveCounter",void 0),L(this,"sourcePreviewNodes",new Map),L(this,"sourcePreviewNodeOptions",new Map),L(this,"sourceNodes",new Map),L(this,"sourceNodeOptions",new Map),L(this,"dragStartSourceIds",null),L(this,"dropTargetIds",[]),L(this,"dragEnterTargetIds",[]),L(this,"currentNativeSource",null),L(this,"currentNativeHandle",null),L(this,"currentDragSourceNode",null),L(this,"altKeyPressed",!1),L(this,"mouseMoveTimeoutTimer",null),L(this,"asyncEndDragFrameId",null),L(this,"dragOverTargetIds",null),L(this,"lastClientOffset",null),L(this,"hoverRafId",null),L(this,"getSourceClientOffset",function(o){var a=i.sourceNodes.get(o);return a&&bi(a)||null}),L(this,"endDragNativeItem",function(){i.isDraggingNativeItem()&&(i.actions.endDrag(),i.currentNativeHandle&&i.registry.removeSource(i.currentNativeHandle),i.currentNativeHandle=null,i.currentNativeSource=null)}),L(this,"isNodeInDocument",function(o){return!!(o&&i.document&&i.document.body&&i.document.body.contains(o))}),L(this,"endDragIfSourceWasRemovedFromDOM",function(){var o=i.currentDragSourceNode;o==null||i.isNodeInDocument(o)||i.clearCurrentDragSourceNode()&&i.monitor.isDragging()&&i.actions.endDrag()}),L(this,"handleTopDragStartCapture",function(){i.clearCurrentDragSourceNode(),i.dragStartSourceIds=[]}),L(this,"handleTopDragStart",function(o){if(!o.defaultPrevented){var a=i.dragStartSourceIds;i.dragStartSourceIds=null;var c=bt(o);i.monitor.isDragging()&&i.actions.endDrag(),i.actions.beginDrag(a||[],{publishSource:!1,getSourceClientOffset:i.getSourceClientOffset,clientOffset:c});var l=o.dataTransfer,u=pn(l);if(i.monitor.isDragging()){if(l&&typeof l.setDragImage=="function"){var d=i.monitor.getSourceId(),v=i.sourceNodes.get(d),p=i.sourcePreviewNodes.get(d)||v;if(p){var m=i.getCurrentSourcePreviewNodeOptions(),h=yl(v,p,c,{anchorX:m.anchorX,anchorY:m.anchorY},{offsetX:m.offsetX,offsetY:m.offsetY});l.setDragImage(p,h.x,h.y)}}try{l==null||l.setData("application/json",{})}catch{}i.setCurrentDragSourceNode(o.target),i.getCurrentSourcePreviewNodeOptions().captureDraggingState?i.actions.publishDragSource():setTimeout(function(){return i.actions.publishDragSource()},0)}else if(u)i.beginDragNativeItem(u);else{if(l&&!l.types&&(o.target&&!o.target.hasAttribute||!o.target.hasAttribute("draggable")))return;o.preventDefault()}}}),L(this,"handleTopDragEndCapture",function(){i.clearCurrentDragSourceNode()&&i.monitor.isDragging()&&i.actions.endDrag()}),L(this,"handleTopDragEnterCapture",function(o){if(i.dragEnterTargetIds=[],i.enterLeaveCounter.enter(o.target)&&!i.monitor.isDragging()){var a=o.dataTransfer,c=pn(a);c&&i.beginDragNativeItem(c,a)}}),L(this,"handleTopDragEnter",function(o){var a=i.dragEnterTargetIds;i.dragEnterTargetIds=[],i.monitor.isDragging()&&(i.altKeyPressed=o.altKey,a.length>0&&i.actions.hover(a,{clientOffset:bt(o)}),a.some(function(c){return i.monitor.canDropOnTarget(c)})&&(o.preventDefault(),o.dataTransfer&&(o.dataTransfer.dropEffect=i.getCurrentDropEffect())))}),L(this,"handleTopDragOverCapture",function(){i.dragOverTargetIds=[]}),L(this,"handleTopDragOver",function(o){var a=i.dragOverTargetIds;if(i.dragOverTargetIds=[],!i.monitor.isDragging())return o.preventDefault(),void(o.dataTransfer&&(o.dataTransfer.dropEffect="none"));i.altKeyPressed=o.altKey,i.lastClientOffset=bt(o),i.hoverRafId===null&&typeof requestAnimationFrame<"u"&&(i.hoverRafId=requestAnimationFrame(function(){i.monitor.isDragging()&&i.actions.hover(a||[],{clientOffset:i.lastClientOffset}),i.hoverRafId=null})),(a||[]).some(function(c){return i.monitor.canDropOnTarget(c)})?(o.preventDefault(),o.dataTransfer&&(o.dataTransfer.dropEffect=i.getCurrentDropEffect())):i.isDraggingNativeItem()?o.preventDefault():(o.preventDefault(),o.dataTransfer&&(o.dataTransfer.dropEffect="none"))}),L(this,"handleTopDragLeaveCapture",function(o){i.isDraggingNativeItem()&&o.preventDefault(),i.enterLeaveCounter.leave(o.target)&&i.isDraggingNativeItem()&&setTimeout(function(){return i.endDragNativeItem()},0)}),L(this,"handleTopDropCapture",function(o){var a;i.dropTargetIds=[],i.isDraggingNativeItem()?(o.preventDefault(),(a=i.currentNativeSource)===null||a===void 0||a.loadDataTransfer(o.dataTransfer)):pn(o.dataTransfer)&&o.preventDefault(),i.enterLeaveCounter.reset()}),L(this,"handleTopDrop",function(o){var a=i.dropTargetIds;i.dropTargetIds=[],i.actions.hover(a,{clientOffset:bt(o)}),i.actions.drop({dropEffect:i.getCurrentDropEffect()}),i.isDraggingNativeItem()?i.endDragNativeItem():i.monitor.isDragging()&&i.actions.endDrag()}),L(this,"handleSelectStart",function(o){var a=o.target;typeof a.dragDrop=="function"&&(a.tagName==="INPUT"||a.tagName==="SELECT"||a.tagName==="TEXTAREA"||a.isContentEditable||(o.preventDefault(),a.dragDrop()))}),this.options=new wl(n,r),this.actions=e.getActions(),this.monitor=e.getMonitor(),this.registry=e.getRegistry(),this.enterLeaveCounter=new gl(this.isNodeInDocument)}return Il(t,[{key:"profile",value:function(){var e,n;return{sourcePreviewNodes:this.sourcePreviewNodes.size,sourcePreviewNodeOptions:this.sourcePreviewNodeOptions.size,sourceNodeOptions:this.sourceNodeOptions.size,sourceNodes:this.sourceNodes.size,dragStartSourceIds:((e=this.dragStartSourceIds)===null||e===void 0?void 0:e.length)||0,dropTargetIds:this.dropTargetIds.length,dragEnterTargetIds:this.dragEnterTargetIds.length,dragOverTargetIds:((n=this.dragOverTargetIds)===null||n===void 0?void 0:n.length)||0}}},{key:"window",get:function(){return this.options.window}},{key:"document",get:function(){return this.options.document}},{key:"rootElement",get:function(){return this.options.rootElement}},{key:"setup",value:function(){var e=this.rootElement;if(e!==void 0){if(e.__isReactDndBackendSetUp)throw new Error("Cannot have two HTML5 backends at the same time.");e.__isReactDndBackendSetUp=!0,this.addEventListeners(e)}}},{key:"teardown",value:function(){var e,n=this.rootElement;n!==void 0&&(n.__isReactDndBackendSetUp=!1,this.removeEventListeners(this.rootElement),this.clearCurrentDragSourceNode(),this.asyncEndDragFrameId&&((e=this.window)===null||e===void 0||e.cancelAnimationFrame(this.asyncEndDragFrameId)))}},{key:"connectDragPreview",value:function(e,n,r){var i=this;return this.sourcePreviewNodeOptions.set(e,r),this.sourcePreviewNodes.set(e,n),function(){i.sourcePreviewNodes.delete(e),i.sourcePreviewNodeOptions.delete(e)}}},{key:"connectDragSource",value:function(e,n,r){var i=this;this.sourceNodes.set(e,n),this.sourceNodeOptions.set(e,r);var o=function(c){return i.handleDragStart(c,e)},a=function(c){return i.handleSelectStart(c)};return n.setAttribute("draggable","true"),n.addEventListener("dragstart",o),n.addEventListener("selectstart",a),function(){i.sourceNodes.delete(e),i.sourceNodeOptions.delete(e),n.removeEventListener("dragstart",o),n.removeEventListener("selectstart",a),n.setAttribute("draggable","false")}}},{key:"connectDropTarget",value:function(e,n){var r=this,i=function(c){return r.handleDragEnter(c,e)},o=function(c){return r.handleDragOver(c,e)},a=function(c){return r.handleDrop(c,e)};return n.addEventListener("dragenter",i),n.addEventListener("dragover",o),n.addEventListener("drop",a),function(){n.removeEventListener("dragenter",i),n.removeEventListener("dragover",o),n.removeEventListener("drop",a)}}},{key:"addEventListeners",value:function(e){e.addEventListener&&(e.addEventListener("dragstart",this.handleTopDragStart),e.addEventListener("dragstart",this.handleTopDragStartCapture,!0),e.addEventListener("dragend",this.handleTopDragEndCapture,!0),e.addEventListener("dragenter",this.handleTopDragEnter),e.addEventListener("dragenter",this.handleTopDragEnterCapture,!0),e.addEventListener("dragleave",this.handleTopDragLeaveCapture,!0),e.addEventListener("dragover",this.handleTopDragOver),e.addEventListener("dragover",this.handleTopDragOverCapture,!0),e.addEventListener("drop",this.handleTopDrop),e.addEventListener("drop",this.handleTopDropCapture,!0))}},{key:"removeEventListeners",value:function(e){e.removeEventListener&&(e.removeEventListener("dragstart",this.handleTopDragStart),e.removeEventListener("dragstart",this.handleTopDragStartCapture,!0),e.removeEventListener("dragend",this.handleTopDragEndCapture,!0),e.removeEventListener("dragenter",this.handleTopDragEnter),e.removeEventListener("dragenter",this.handleTopDragEnterCapture,!0),e.removeEventListener("dragleave",this.handleTopDragLeaveCapture,!0),e.removeEventListener("dragover",this.handleTopDragOver),e.removeEventListener("dragover",this.handleTopDragOverCapture,!0),e.removeEventListener("drop",this.handleTopDrop),e.removeEventListener("drop",this.handleTopDropCapture,!0))}},{key:"getCurrentSourceNodeOptions",value:function(){var e=this.monitor.getSourceId(),n=this.sourceNodeOptions.get(e);return Ni({dropEffect:this.altKeyPressed?"copy":"move"},n||{})}},{key:"getCurrentDropEffect",value:function(){return this.isDraggingNativeItem()?"copy":this.getCurrentSourceNodeOptions().dropEffect}},{key:"getCurrentSourcePreviewNodeOptions",value:function(){var e=this.monitor.getSourceId();return Ni({anchorX:.5,anchorY:.5,captureDraggingState:!1},this.sourcePreviewNodeOptions.get(e)||{})}},{key:"isDraggingNativeItem",value:function(){var e=this.monitor.getItemType();return Object.keys(Oi).some(function(n){return Oi[n]===e})}},{key:"beginDragNativeItem",value:function(e,n){this.clearCurrentDragSourceNode(),this.currentNativeSource=function(r,i){var o=new bl(fn[r]);return o.loadDataTransfer(i),o}(e,n),this.currentNativeHandle=this.registry.addSource(e,this.currentNativeSource),this.actions.beginDrag([this.currentNativeHandle])}},{key:"setCurrentDragSourceNode",value:function(e){var n=this;this.clearCurrentDragSourceNode(),this.currentDragSourceNode=e,this.mouseMoveTimeoutTimer=setTimeout(function(){var r;return(r=n.rootElement)===null||r===void 0?void 0:r.addEventListener("mousemove",n.endDragIfSourceWasRemovedFromDOM,!0)},1e3)}},{key:"clearCurrentDragSourceNode",value:function(){if(this.currentDragSourceNode){var e;return this.currentDragSourceNode=null,this.rootElement&&((e=this.window)===null||e===void 0||e.clearTimeout(this.mouseMoveTimeoutTimer||void 0),this.rootElement.removeEventListener("mousemove",this.endDragIfSourceWasRemovedFromDOM,!0)),this.mouseMoveTimeoutTimer=null,!0}return!1}},{key:"handleDragStart",value:function(e,n){e.defaultPrevented||(this.dragStartSourceIds||(this.dragStartSourceIds=[]),this.dragStartSourceIds.unshift(n))}},{key:"handleDragEnter",value:function(e,n){this.dragEnterTargetIds.unshift(n)}},{key:"handleDragOver",value:function(e,n){this.dragOverTargetIds===null&&(this.dragOverTargetIds=[]),this.dragOverTargetIds.unshift(n)}},{key:"handleDrop",value:function(e,n){this.dropTargetIds.unshift(n)}}]),t}(),Ol=function(t,e,n){return new Sl(t,e,n)};function kl(t){const e=pe(),n=e.selectedIds,[r,i,o]=al(()=>({canDrag:()=>t.isDraggable,type:"NODE",item:()=>{const a=e.isSelected(t.id)?Array.from(n):[t.id];return e.dispatch(ze.dragStart(t.id,a)),{id:t.id,dragIds:a}},end:()=>{e.hideCursor(),e.dispatch(ze.dragEnd())}}),[n,t]);return S.useEffect(()=>{o((mn||((mn=new Image).src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="),mn))},[o]),i}function wt(t,e){return{parentId:t||null,index:e}}function qe(t,e){return{type:"line",index:t,level:e}}function vn(t,e){var n;let r=t;for(;r.parent&&r.level>e;)r=r.parent;return{parentId:((n=r.parent)===null||n===void 0?void 0:n.id)||null,index:lr(r)+1}}function Di(t){var e;const n=function(v,p){const m=v.getBoundingClientRect(),h=p.x-Math.round(m.x),f=p.y-Math.round(m.y),y=m.height,x=f<y/2,w=!x,I=y/4,k=f>I&&f<y-I;return{x:h,inTopHalf:x,inBottomHalf:w,inMiddle:k,atTop:!k&&x,atBottom:!k&&w}}(t.element,t.offset),r=t.indent,i=Math.round(Math.max(0,n.x-r)/r),{node:o,nextNode:a,prevNode:c}=t,[l,u]=function(v,p,m,h){return v?v.isInternal?h.atTop?[p,v]:h.inMiddle?[v,v]:[v,m]:h.inTopHalf?[p,v]:[v,m]:[p,null]}(o,c,a,n);if(o&&o.isInternal&&n.inMiddle)return{drop:wt(o.id,null),cursor:(d=o.id,{type:"highlight",id:d})};var d;if(!l)return{drop:wt((e=u==null?void 0:u.parent)===null||e===void 0?void 0:e.id,0),cursor:qe(0,0)};if(ir(l)){const v=pt(i,(u==null?void 0:u.level)||0,l.level);return{drop:vn(l,v),cursor:qe(l.rowIndex+1,v)}}if(sr(l)){const v=pt(i,(u==null?void 0:u.level)||0,l.level);return{drop:vn(l,v),cursor:qe(l.rowIndex+1,v)}}if(or(l)){const v=pt(i,0,l.level+1);return v>l.level?{drop:wt(l.id,0),cursor:qe(l.rowIndex+1,v)}:{drop:vn(l,v),cursor:qe(l.rowIndex+1,v)}}return{drop:wt(l==null?void 0:l.id,0),cursor:qe(l.rowIndex+1,l.level+1)}}const Cl=Be.memo(function({index:t,style:e}){rr(),function(){if(S.useContext(er)===null)throw new Error("Provide a NodesContext")}();const n=pe(),r=function(h){const f=pe(),y=f.at(h);if(!y)throw new Error(`Could not find node for index: ${h}`);return S.useMemo(()=>{const x=y.clone();return f.visibleNodes[h]=x,x},[...Object.values(y.state),y])}(t),i=S.useRef(null),o=kl(r),a=function(h,f){const y=pe(),[x,w]=pi(()=>({accept:"NODE",canDrop:()=>y.canDrop(),hover:(I,k)=>{const O=k.getClientOffset();if(!h.current||!O)return;const{cursor:N,drop:_}=Di({element:h.current,offset:O,indent:y.indent,node:f,prevNode:f.prev,nextNode:f.next});_&&y.dispatch(ze.hovering(_.parentId,_.index)),k.canDrop()?N&&y.showCursor(N):y.hideCursor()},drop:(I,k)=>{if(!k.canDrop())return null;let{parentId:O,index:N,dragIds:_}=y.state.dnd;fr(y.props.onMove,{dragIds:_,parentId:O===Xe?null:O,index:N===null?0:N,dragNodes:y.dragNodes,parentNode:y.get(O)}),y.open(O)}}),[f,h.current,y.props]);return w}(i,r),c=S.useCallback(h=>{i.current=h,a(h)},[a]),l=n.indent*r.level,u=S.useMemo(()=>({paddingLeft:l}),[l]),d=S.useMemo(()=>{var h,f;return Object.assign(Object.assign({},e),{top:parseFloat(e.top)+((f=(h=n.props.padding)!==null&&h!==void 0?h:n.props.paddingTop)!==null&&f!==void 0?f:0)})},[e,n.props.padding,n.props.paddingTop]),v={role:"treeitem","aria-level":r.level+1,"aria-selected":r.isSelected,"aria-expanded":r.isOpen,style:d,tabIndex:-1,className:n.props.rowClassName};S.useEffect(()=>{var h;!r.isEditing&&r.isFocused&&((h=i.current)===null||h===void 0||h.focus({preventScroll:!0}))},[r.isEditing,r.isFocused,i.current]);const p=n.renderNode,m=n.renderRow;return s.jsx(m,{node:r,innerRef:c,attrs:v,children:s.jsx(p,{node:r,tree:n,style:u,dragHandle:o})})});let yn="",Ti=null;function Ei(){rr();const t=pe();return s.jsx("div",{role:"tree",style:{height:t.height,width:t.width,minHeight:0,minWidth:0},onContextMenu:t.props.onContextMenu,onClick:t.props.onClick,tabIndex:0,onFocus:e=>{e.currentTarget.contains(e.relatedTarget)||t.onFocus()},onBlur:e=>{e.currentTarget.contains(e.relatedTarget)||t.onBlur()},onKeyDown:e=>{var n;if(t.isEditing)return;if(e.key==="Backspace"){if(!t.props.onDelete)return;const i=Array.from(t.selectedIds);if(i.length>1){let o=t.mostRecentNode;for(;o&&o.isSelected;)o=o.nextSibling;o||(o=t.lastNode),t.focus(o,{scroll:!1}),t.delete(Array.from(i))}else{const o=t.focusedNode;if(o){const a=o.nextSibling,c=o.parent;t.focus(a||c,{scroll:!1}),t.delete(o)}}return}if(e.key==="Tab"&&!e.shiftKey)return e.preventDefault(),void cr(e.currentTarget);if(e.key==="Tab"&&e.shiftKey)return e.preventDefault(),void ur(e.currentTarget);if(e.key==="ArrowDown"){e.preventDefault();const i=t.nextNode;if(e.metaKey)return t.select(t.focusedNode),void t.activate(t.focusedNode);if(!e.shiftKey||t.props.disableMultiSelection)return void t.focus(i);{if(!i)return;const o=t.focusedNode;return void(o?o.isSelected?t.selectContiguous(i):t.selectMulti(i):t.focus(t.firstNode))}}if(e.key==="ArrowUp"){e.preventDefault();const i=t.prevNode;if(!e.shiftKey||t.props.disableMultiSelection)return void t.focus(i);{if(!i)return;const o=t.focusedNode;return void(o?o.isSelected?t.selectContiguous(i):t.selectMulti(i):t.focus(t.lastNode))}}if(e.key==="ArrowRight"){const i=t.focusedNode;return i?void(i.isInternal&&i.isOpen?t.focus(t.nextNode):i.isInternal&&t.open(i.id)):void 0}if(e.key==="ArrowLeft"){const i=t.focusedNode;return!i||i.isRoot?void 0:void(i.isInternal&&i.isOpen?t.close(i.id):((n=i.parent)===null||n===void 0?void 0:n.isRoot)||t.focus(i.parent))}if(e.key==="a"&&e.metaKey&&!t.props.disableMultiSelection)return e.preventDefault(),void t.selectAll();if(e.key==="a"&&!e.metaKey&&t.props.onCreate)return void t.createLeaf();if(e.key==="A"&&!e.metaKey)return t.props.onCreate?void t.createInternal():void 0;if(e.key==="Home")return e.preventDefault(),void t.focus(t.firstNode);if(e.key==="End")return e.preventDefault(),void t.focus(t.lastNode);if(e.key==="Enter"){const i=t.focusedNode;return!i||!i.isEditable||!t.props.onRename?void 0:void setTimeout(()=>{i&&t.edit(i)})}if(e.key===" "){e.preventDefault();const i=t.focusedNode;return i?void(i.isLeaf?(i.select(),i.activate()):i.toggle()):void 0}if(e.key==="*"){const i=t.focusedNode;return i?void t.openSiblings(i):void 0}if(e.key==="PageUp")return e.preventDefault(),void t.pageUp();e.key==="PageDown"&&(e.preventDefault(),t.pageDown()),clearTimeout(Ti),yn+=e.key,Ti=setTimeout(()=>{yn=""},600);const r=t.visibleNodes.find(i=>{const o=i.data.name;return typeof o=="string"&&o.toLowerCase().startsWith(yn)});r&&t.focus(r.id)},children:s.jsx(ta,{className:t.props.className,outerRef:t.listEl,itemCount:t.visibleNodes.length,height:t.height,width:t.width,itemSize:t.rowHeight,overscanCount:t.overscanCount,itemKey:e=>{var n;return((n=t.visibleNodes[e])===null||n===void 0?void 0:n.id)||e},outerElementType:ia,innerElementType:aa,onScroll:t.props.onScroll,onItemsRendered:t.onItemsRendered.bind(t),ref:t.list,children:Cl})})}function _i(t){return t.isFiltered?function(e,n){const r={},i=[];function o(c){if(!c.isRoot&&n(c)){r[c.id]=!0;let l=c.parent;for(;l;)r[l.id]=!0,l=l.parent}if(c.children)for(let l of c.children)o(l)}function a(c){var l;c.level>=0&&r[c.id]&&i.push(c),c.isOpen&&((l=c.children)===null||l===void 0||l.forEach(a))}return o(e),a(e),i.forEach(Pi),i}(t.root,t.isMatch.bind(t)):function(e){const n=[];function r(i){var o;i.level>=0&&n.push(i),i.isOpen&&((o=i.children)===null||o===void 0||o.forEach(r))}return r(e),n.forEach(Pi),n}(t.root)}function Pi(t,e){t.rowIndex=e}const Ai=t=>t.reduce((e,n,r)=>(e[n.id]=r,e),{});var xn=function(t,e,n,r){return new(n||(n=Promise))(function(i,o){function a(u){try{l(r.next(u))}catch(d){o(d)}}function c(u){try{l(r.throw(u))}catch(d){o(d)}}function l(u){var d;u.done?i(u.value):(d=u.value,d instanceof n?d:new n(function(v){v(d)})).then(a,c)}l((r=r.apply(t,e||[])).next())})};const{safeRun:X,identify:Oe,identifyNull:we}=_o;class nt{constructor(e,n,r,i){this.store=e,this.props=n,this.list=r,this.listEl=i,this.visibleStartIndex=0,this.visibleStopIndex=0,this.root=vr(this),this.visibleNodes=_i(this),this.idToIndex=Ai(this.visibleNodes)}update(e){this.props=e,this.root=vr(this),this.visibleNodes=_i(this),this.idToIndex=Ai(this.visibleNodes)}dispatch(e){return this.store.dispatch(e)}get state(){return this.store.getState()}get openState(){return this.state.nodes.open.unfiltered}get width(){var e;return(e=this.props.width)!==null&&e!==void 0?e:300}get height(){var e;return(e=this.props.height)!==null&&e!==void 0?e:500}get indent(){var e;return(e=this.props.indent)!==null&&e!==void 0?e:24}get rowHeight(){var e;return(e=this.props.rowHeight)!==null&&e!==void 0?e:24}get overscanCount(){var e;return(e=this.props.overscanCount)!==null&&e!==void 0?e:1}get searchTerm(){return(this.props.searchTerm||"").trim()}get matchFn(){var e;const n=(e=this.props.searchMatch)!==null&&e!==void 0?e:(r,i)=>JSON.stringify(Object.values(r.data)).toLocaleLowerCase().includes(i.toLocaleLowerCase());return r=>n(r,this.searchTerm)}accessChildren(e){var n;return(n=$e(e,this.props.childrenAccessor||"children"))!==null&&n!==void 0?n:null}accessId(e){const n=$e(e,this.props.idAccessor||"id");if(!n)throw new Error("Data must contain an 'id' property or props.idAccessor must return a string");return n}get firstNode(){var e;return(e=this.visibleNodes[0])!==null&&e!==void 0?e:null}get lastNode(){var e;return(e=this.visibleNodes[this.visibleNodes.length-1])!==null&&e!==void 0?e:null}get focusedNode(){var e;return(e=this.get(this.state.nodes.focus.id))!==null&&e!==void 0?e:null}get mostRecentNode(){var e;return(e=this.get(this.state.nodes.selection.mostRecent))!==null&&e!==void 0?e:null}get nextNode(){const e=this.indexOf(this.focusedNode);return e===null?null:this.at(e+1)}get prevNode(){const e=this.indexOf(this.focusedNode);return e===null?null:this.at(e-1)}get(e){return e&&e in this.idToIndex&&this.visibleNodes[this.idToIndex[e]]||null}at(e){return this.visibleNodes[e]||null}nodesBetween(e,n){var r;if(e===null||n===null)return[];const i=(r=this.indexOf(e))!==null&&r!==void 0?r:0,o=this.indexOf(n);if(o===null)return[];const a=Math.min(i,o),c=Math.max(i,o);return this.visibleNodes.slice(a,c+1)}indexOf(e){const n=hr(e);return n?this.idToIndex[n]:null}get editingId(){return this.state.nodes.edit.id}createInternal(){return this.create({type:"internal"})}createLeaf(){return this.create({type:"leaf"})}create(){return xn(this,arguments,void 0,function*(e={}){var n,r;const i=e.parentId===void 0?mr(this):e.parentId,o=(n=e.index)!==null&&n!==void 0?n:gr(this),a=(r=e.type)!==null&&r!==void 0?r:"leaf",c=yield X(this.props.onCreate,{type:a,parentId:i,index:o,parentNode:this.get(i)});c&&(this.focus(c),setTimeout(()=>{this.edit(c).then(()=>{this.select(c),this.activate(c)})}))})}delete(e){return xn(this,void 0,void 0,function*(){if(!e)return;const n=(Array.isArray(e)?e:[e]).map(Oe),r=n.map(i=>this.get(i)).filter(i=>!!i);yield X(this.props.onDelete,{nodes:r,ids:n})})}edit(e){const n=Oe(e);return this.resolveEdit({cancelled:!0}),this.scrollTo(n),this.dispatch(Ht(n)),new Promise(r=>{nt.editPromise=r})}submit(e,n){return xn(this,void 0,void 0,function*(){if(!e)return;const r=Oe(e);yield X(this.props.onRename,{id:r,name:n,node:this.get(r)}),this.dispatch(Ht(null)),this.resolveEdit({cancelled:!1,value:n}),setTimeout(()=>this.onFocus())})}reset(){this.dispatch(Ht(null)),this.resolveEdit({cancelled:!0}),setTimeout(()=>this.onFocus())}activate(e){const n=this.get(we(e));n&&X(this.props.onActivate,n)}resolveEdit(e){const n=nt.editPromise;n&&n(e),nt.editPromise=null}get selectedIds(){return this.state.nodes.selection.ids}get selectedNodes(){let e=[];for(let n of Array.from(this.selectedIds)){const r=this.get(n);r&&e.push(r)}return e}focus(e,n={}){e&&(this.props.selectionFollowsFocus?this.select(e):(this.dispatch(Fe(Oe(e))),n.scroll!==!1&&this.scrollTo(e),this.focusedNode&&X(this.props.onFocus,this.focusedNode)))}pageUp(){var e,n;const r=this.visibleStartIndex,i=this.visibleStopIndex-r;let o=(n=(e=this.focusedNode)===null||e===void 0?void 0:e.rowIndex)!==null&&n!==void 0?n:0;o=o>r?r:Math.max(r-i,0),this.focus(this.at(o))}pageDown(){var e,n;const r=this.visibleStartIndex,i=this.visibleStopIndex,o=i-r;let a=(n=(e=this.focusedNode)===null||e===void 0?void 0:e.rowIndex)!==null&&n!==void 0?n:0;a=a<i?i:Math.min(a+o,this.visibleNodes.length-1),this.focus(this.at(a))}select(e,n={}){if(!e)return;const r=n.focus!==!1,i=Oe(e);r&&this.dispatch(Fe(i)),this.dispatch(Uo(i)),this.dispatch(jr(i)),this.dispatch(Ut(i)),this.scrollTo(i,n.align),this.focusedNode&&r&&X(this.props.onFocus,this.focusedNode),X(this.props.onSelect,this.selectedNodes)}deselect(e){if(!e)return;const n=Oe(e);this.dispatch(br(n)),X(this.props.onSelect,this.selectedNodes)}selectMulti(e){const n=this.get(we(e));n&&(this.dispatch(Fe(n.id)),this.dispatch(xr(n.id)),this.dispatch(jr(n.id)),this.dispatch(Ut(n.id)),this.scrollTo(n),this.focusedNode&&X(this.props.onFocus,this.focusedNode),X(this.props.onSelect,this.selectedNodes))}selectContiguous(e){if(!e)return;const n=Oe(e),{anchor:r,mostRecent:i}=this.state.nodes.selection;this.dispatch(Fe(n)),this.dispatch(br(this.nodesBetween(r,i))),this.dispatch(xr(this.nodesBetween(r,we(n)))),this.dispatch(Ut(n)),this.scrollTo(n),this.focusedNode&&X(this.props.onFocus,this.focusedNode),X(this.props.onSelect,this.selectedNodes)}deselectAll(){this.setSelection({ids:[],anchor:null,mostRecent:null}),X(this.props.onSelect,this.selectedNodes)}selectAll(){var e;this.setSelection({ids:Object.keys(this.idToIndex),anchor:this.firstNode,mostRecent:this.lastNode}),this.dispatch(Fe((e=this.lastNode)===null||e===void 0?void 0:e.id)),this.focusedNode&&X(this.props.onFocus,this.focusedNode),X(this.props.onSelect,this.selectedNodes)}setSelection(e){var n;const r=new Set((n=e.ids)===null||n===void 0?void 0:n.map(Oe)),i=we(e.anchor),o=we(e.mostRecent);this.dispatch(qo({ids:r,anchor:i,mostRecent:o})),X(this.props.onSelect,this.selectedNodes)}get cursorParentId(){const{cursor:e}=this.state.dnd;return e.type==="highlight"?e.id:null}get cursorOverFolder(){return this.state.dnd.cursor.type==="highlight"}get dragNodes(){return this.state.dnd.dragIds.map(e=>this.get(e)).filter(e=>!!e)}get dragNode(){return this.get(this.state.nodes.drag.id)}get dragDestinationParent(){return this.get(this.state.nodes.drag.destinationParentId)}get dragDestinationIndex(){return this.state.nodes.drag.destinationIndex}canDrop(){var e;if(this.isFiltered)return!1;const n=(e=this.get(this.state.dnd.parentId))!==null&&e!==void 0?e:this.root,r=this.dragNodes,i=this.props.disableDrop;for(const o of r)if(!o||!n||o.isInternal&&ar(n,o))return!1;return typeof i=="function"?!i({parentNode:n,dragNodes:this.dragNodes,index:this.state.dnd.index||0}):typeof i=="string"?!n.data[i]:typeof i!="boolean"||!i}hideCursor(){this.dispatch(ze.cursor({type:"none"}))}showCursor(e){this.dispatch(ze.cursor(e))}open(e){const n=we(e);n&&(this.isOpen(n)||(this.dispatch(zt.open(n,this.isFiltered)),X(this.props.onToggle,n)))}close(e){const n=we(e);n&&this.isOpen(n)&&(this.dispatch(zt.close(n,this.isFiltered)),X(this.props.onToggle,n))}toggle(e){const n=we(e);if(n)return this.isOpen(n)?this.close(n):this.open(n)}openParents(e){const n=we(e);if(!n)return;const r=Ft(this.root,n);let i=r==null?void 0:r.parent;for(;i;)this.open(i.id),i=i.parent}openSiblings(e){const n=e.parent;if(n){if(n.children){const r=e.isOpen;for(let i of n.children)i.isInternal&&(r?this.close(i.id):this.open(i.id));this.scrollTo(this.focusedNode)}}else this.toggle(e.id)}openAll(){gt(this.root,e=>{e.isInternal&&e.open()})}closeAll(){gt(this.root,e=>{e.isInternal&&e.close()})}scrollTo(e,n="smart"){if(!e)return;const r=Oe(e);return this.openParents(r),pr(()=>r in this.idToIndex).then(()=>{var i;const o=this.idToIndex[r];o!==void 0&&((i=this.list.current)===null||i===void 0||i.scrollToItem(o,n))}).catch(()=>{})}get isEditing(){return this.state.nodes.edit.id!==null}get isFiltered(){var e;return!!(!((e=this.props.searchTerm)===null||e===void 0)&&e.trim())}get hasFocus(){return this.state.nodes.focus.treeFocused}get hasNoSelection(){return this.state.nodes.selection.ids.size===0}get hasOneSelection(){return this.state.nodes.selection.ids.size===1}get hasMultipleSelections(){return this.state.nodes.selection.ids.size>1}isSelected(e){return!!e&&this.state.nodes.selection.ids.has(e)}isOpen(e){var n,r,i;if(!e)return!1;if(e===Xe)return!0;const o=(n=this.props.openByDefault)===null||n===void 0||n;return this.isFiltered?(r=this.state.nodes.open.filtered[e])===null||r===void 0||r:(i=this.state.nodes.open.unfiltered[e])!==null&&i!==void 0?i:o}isEditable(e){return!$e(e,this.props.disableEdit||(()=>!1))}isDraggable(e){return!$e(e,this.props.disableDrag||(()=>!1))}isDragging(e){const n=we(e);return!!n&&this.state.nodes.drag.id===n}isFocused(e){return this.hasFocus&&this.state.nodes.focus.id===e}isMatch(e){return this.matchFn(e)}willReceiveDrop(e){const n=we(e);if(!n)return!1;const{destinationParentId:r,destinationIndex:i}=this.state.nodes.drag;return n===r&&i===null}onFocus(){const e=this.focusedNode||this.firstNode;e&&this.dispatch(Fe(e.id))}onBlur(){this.dispatch({type:"TREE_BLUR"})}onItemsRendered(e){this.visibleStartIndex=e.visibleStartIndex,this.visibleStopIndex=e.visibleStopIndex}get renderContainer(){return this.props.renderContainer||Ei}get renderRow(){return this.props.renderRow||Lo}get renderNode(){return this.props.children||Fo}get renderDragPreview(){return this.props.renderDragPreview||wr}get renderCursor(){return this.props.renderCursor||Ro}}function ie(t){return`Minified Redux error #${t}; visit https://redux.js.org/Errors?code=${t} for the full message or use the non-minified dev environment for full errors. `}var Mi=typeof Symbol=="function"&&Symbol.observable||"@@observable",bn=()=>Math.random().toString(36).substring(7).split("").join("."),It={INIT:`@@redux/INIT${bn()}`,REPLACE:`@@redux/REPLACE${bn()}`,PROBE_UNKNOWN_ACTION:()=>`@@redux/PROBE_UNKNOWN_ACTION${bn()}`};function Ri(t,e,n){if(typeof t!="function")throw new Error(ie(2));if(typeof e=="function"&&typeof n=="function"||typeof n=="function"&&typeof arguments[3]=="function")throw new Error(ie(0));if(typeof e=="function"&&n===void 0&&(n=e,e=void 0),n!==void 0){if(typeof n!="function")throw new Error(ie(1));return n(Ri)(t,e)}let r=t,i=e,o=new Map,a=o,c=0,l=!1;function u(){a===o&&(a=new Map,o.forEach((m,h)=>{a.set(h,m)}))}function d(){if(l)throw new Error(ie(3));return i}function v(m){if(typeof m!="function")throw new Error(ie(4));if(l)throw new Error(ie(5));let h=!0;u();const f=c++;return a.set(f,m),function(){if(h){if(l)throw new Error(ie(6));h=!1,u(),a.delete(f),o=null}}}function p(m){if(!function(h){if(typeof h!="object"||h===null)return!1;let f=h;for(;Object.getPrototypeOf(f)!==null;)f=Object.getPrototypeOf(f);return Object.getPrototypeOf(h)===f||Object.getPrototypeOf(h)===null}(m))throw new Error(ie(7));if(m.type===void 0)throw new Error(ie(8));if(typeof m.type!="string")throw new Error(ie(17));if(l)throw new Error(ie(9));try{l=!0,i=r(i,m)}finally{l=!1}return(o=a).forEach(h=>{h()}),m}return p({type:It.INIT}),{dispatch:p,subscribe:v,getState:d,replaceReducer:function(m){if(typeof m!="function")throw new Error(ie(10));r=m,p({type:It.REPLACE})},[Mi]:function(){const m=v;return{subscribe(h){if(typeof h!="object"||h===null)throw new Error(ie(11));function f(){const y=h;y.next&&y.next(d())}return f(),{unsubscribe:m(f)}},[Mi](){return this}}}}}function Li(t){const e=Object.keys(t),n={};for(let o=0;o<e.length;o++){const a=e[o];typeof t[a]=="function"&&(n[a]=t[a])}const r=Object.keys(n);let i;try{(function(o){Object.keys(o).forEach(a=>{const c=o[a];if(c(void 0,{type:It.INIT})===void 0)throw new Error(ie(12));if(c(void 0,{type:It.PROBE_UNKNOWN_ACTION()})===void 0)throw new Error(ie(13))})})(n)}catch(o){i=o}return function(o={},a){if(i)throw i;let c=!1;const l={};for(let u=0;u<r.length;u++){const d=r[u],v=n[d],p=o[d],m=v(p,a);if(m===void 0)throw a&&a.type,new Error(ie(14));l[d]=m,c=c||m!==p}return c=c||r.length!==Object.keys(o).length,c?l:o}}const Nl=Li({nodes:Li({focus:function(t={id:null,treeFocused:!1},e){return e.type==="FOCUS"?Object.assign(Object.assign({},t),{id:e.id,treeFocused:!0}):e.type==="TREE_BLUR"?Object.assign(Object.assign({},t),{treeFocused:!1}):t},edit:function(t={id:null},e){return e.type==="EDIT"?Object.assign(Object.assign({},t),{id:e.id}):t},open:function(t={filtered:{},unfiltered:{}},e){return e.type.startsWith("VISIBILITY")?e.filtered?Object.assign(Object.assign({},t),{filtered:yr(t.filtered,e)}):Object.assign(Object.assign({},t),{unfiltered:yr(t.unfiltered,e)}):t},selection:function(t=He().nodes.selection,e){const n=t.ids;switch(e.type){case"SELECTION_CLEAR":return Object.assign(Object.assign({},t),{ids:new Set});case"SELECTION_ONLY":return Object.assign(Object.assign({},t),{ids:new Set([e.id])});case"SELECTION_ADD":return e.ids.length===0?t:(e.ids.forEach(r=>n.add(r)),Object.assign(Object.assign({},t),{ids:new Set(n)}));case"SELECTION_REMOVE":return e.ids.length===0?t:(e.ids.forEach(r=>n.delete(r)),Object.assign(Object.assign({},t),{ids:new Set(n)}));case"SELECTION_SET":return Object.assign(Object.assign({},t),{ids:e.ids,mostRecent:e.mostRecent,anchor:e.anchor});case"SELECTION_MOST_RECENT":return Object.assign(Object.assign({},t),{mostRecent:e.id});case"SELECTION_ANCHOR":return Object.assign(Object.assign({},t),{anchor:e.id});default:return t}},drag:function(t=He().nodes.drag,e){switch(e.type){case"DND_DRAG_START":return Object.assign(Object.assign({},t),{id:e.id,selectedIds:e.dragIds});case"DND_DRAG_END":return Object.assign(Object.assign({},t),{id:null,destinationParentId:null,destinationIndex:null,selectedIds:[]});case"DND_HOVERING":return e.parentId!==t.destinationParentId||e.index!=t.destinationIndex?Object.assign(Object.assign({},t),{destinationParentId:e.parentId,destinationIndex:e.index}):t;default:return t}}}),dnd:function(t=He().dnd,e){switch(e.type){case"DND_CURSOR":return Object.assign(Object.assign({},t),{cursor:e.cursor});case"DND_DRAG_START":return Object.assign(Object.assign({},t),{dragId:e.id,dragIds:e.dragIds});case"DND_DRAG_END":return He().dnd;case"DND_HOVERING":return Object.assign(Object.assign({},t),{parentId:e.parentId,index:e.index});default:return t}}}),Dl=He();function Tl({treeProps:t,imperativeHandle:e,children:n}){const r=S.useRef(null),i=S.useRef(null),o=S.useRef(Ri(Nl,He(t))),a=ds.useSyncExternalStore(o.current.subscribe,o.current.getState,()=>Dl),c=S.useMemo(()=>new nt(o.current,t,r,i),[]),l=S.useRef(0);return S.useMemo(()=>{l.current+=1,c.update(t)},[...Object.values(t),a.nodes.open]),S.useImperativeHandle(e,()=>c),S.useEffect(()=>{c.props.selection?c.select(c.props.selection,{focus:!1}):c.deselectAll()},[c.props.selection]),S.useEffect(()=>{c.props.searchTerm||o.current.dispatch(zt.clear(!0))},[c.props.searchTerm]),s.jsx(Zn.Provider,{value:c,children:s.jsx(nr.Provider,{value:l.current,children:s.jsx(er.Provider,{value:a.nodes,children:s.jsx(tr.Provider,{value:a.dnd,children:s.jsx(qa,Object.assign({backend:Ol,options:{rootElement:c.props.dndRootElement||void 0}},t.dndManager&&{manager:t.dndManager},{children:n}))})})})})}function El(t){return function(){const e=pe(),[,n]=pi(()=>({accept:"NODE",canDrop:(r,i)=>!!i.isOver({shallow:!0})&&e.canDrop(),hover:(r,i)=>{if(!i.isOver({shallow:!0}))return;const o=i.getClientOffset();if(!e.listEl.current||!o)return;const{cursor:a,drop:c}=Di({element:e.listEl.current,offset:o,indent:e.indent,node:null,prevNode:e.visibleNodes[e.visibleNodes.length-1],nextNode:null});c&&e.dispatch(ze.hovering(c.parentId,c.index)),i.canDrop()?a&&e.showCursor(a):e.hideCursor()}}),[e]);n(e.listEl)}(),t.children}function _l(){const t=pe().props.renderContainer||Ei;return s.jsx(s.Fragment,{children:s.jsx(t,{})})}function Pl(){const t=pe(),{offset:e,mouse:n,item:r,isDragging:i}=(o=v=>({offset:v.getSourceClientOffset(),mouse:v.getClientOffset(),item:v.getItem(),isDragging:v.isDragging()}),a=Te().getMonitor(),c=fl(ci(a,o),2),l=c[0],u=c[1],S.useEffect(function(){return a.subscribeToOffsetChange(u)}),S.useEffect(function(){return a.subscribeToStateChange(u)}),l);var o,a,c,l,u;const d=t.props.renderDragPreview||wr;return s.jsx(d,{offset:e,mouse:n,id:(r==null?void 0:r.id)||null,dragIds:(r==null?void 0:r.dragIds)||[],isDragging:i})}class Fi{constructor(e){this.root=function(n){const r=new Hi({id:"ROOT"},null);return r.children=n.map(i=>jn(i,r)),r}(e)}get data(){var e,n;return(n=(e=this.root.children)===null||e===void 0?void 0:e.map(r=>r.data))!==null&&n!==void 0?n:[]}create(e){const n=e.parentId?this.find(e.parentId):this.root;if(!n)return null;n.addChild(e.data,e.index)}move(e){const n=this.find(e.id),r=e.parentId?this.find(e.parentId):this.root;n&&r&&(r.addChild(n.data,e.index),n.drop())}update(e){const n=this.find(e.id);n&&n.update(e.changes)}drop(e){const n=this.find(e.id);n&&n.drop()}find(e,n=this.root){if(!n)return null;if(n.id===e)return n;if(n.children){for(let r of n.children){const i=this.find(e,r);if(i)return i}return null}return null}}function jn(t,e){const n=new Hi(t,e);return t.children&&(n.children=t.children.map(r=>jn(r,n))),n}class Hi{constructor(e,n){this.data=e,this.parent=n,this.id=e.id}hasParent(){return!!this.parent}get childIndex(){return this.hasParent()?this.parent.children.indexOf(this):-1}addChild(e,n){var r,i;const o=jn(e,this);this.children=(r=this.children)!==null&&r!==void 0?r:[],this.children.splice(n,0,o),this.data.children=(i=this.data.children)!==null&&i!==void 0?i:[],this.data.children.splice(n,0,e)}removeChild(e){var n,r;(n=this.children)===null||n===void 0||n.splice(e,1),(r=this.data.children)===null||r===void 0||r.splice(e,1)}update(e){if(this.hasParent()){const n=this.childIndex;this.parent.addChild(Object.assign(Object.assign({},this.data),e),n),this.drop()}}drop(){this.hasParent()&&this.parent.removeChild(this.childIndex)}}let Al=0;function Ml(t){if(t.initialData&&t.data)throw new Error("React Arborist Tree => Provide either a data or initialData prop, but not both.");if(t.initialData&&(t.onCreate||t.onDelete||t.onMove||t.onRename))throw new Error(`React Arborist Tree => You passed the initialData prop along with a data handler.
|
16
|
-
Use the data prop if you want to provide your own handlers.`);if(t.initialData){const[e,n]=function(r){const[i,o]=S.useState(r),a=S.useMemo(()=>new Fi(i),[i]);return[i,{onMove:l=>{for(const u of l.dragIds)a.move({id:u,parentId:l.parentId,index:l.index});o(a.data)},onRename:({name:l,id:u})=>{a.update({id:u,changes:{name:l}}),o(a.data)},onCreate:({parentId:l,index:u,type:d})=>{const v={id:"simple-tree-id-"+Al++,name:""};return d==="internal"&&(v.children=[]),a.create({parentId:l,index:u,data:v}),o(a.data),v},onDelete:l=>{l.ids.forEach(u=>a.drop({id:u})),o(a.data)}}]}(t.initialData);return Object.assign(Object.assign(Object.assign({},t),n),{data:e})}return t}const Rl=S.forwardRef(function(t,e){const n=Ml(t);return s.jsxs(Tl,{treeProps:n,imperativeHandle:e,children:[s.jsx(El,{children:s.jsx(_l,{})}),s.jsx(Pl,{})]})});function Ll(t,e){const n=G.c(11),{delayMs:r,whenVisible:i,disabled:o}=e,a=o!==void 0&&o,c=S.useRef(void 0);let l,u,d,v,p;return n[0]!==t?(l=()=>{c.current=t},u=[t],n[0]=t,n[1]=l,n[2]=u):(l=n[1],u=n[2]),S.useEffect(l,u),n[3]!==r||n[4]!==a||n[5]!==i?(d=()=>{if(r===null||a)return;const m=setInterval(()=>{var h;i&&document.visibilityState!=="visible"||((h=c.current)==null||h.call(c))},r);return()=>clearInterval(m)},v=[r,i,a],n[3]=r,n[4]=a,n[5]=i,n[6]=d,n[7]=v):(d=n[6],v=n[7]),S.useEffect(d,v),n[8]!==a||n[9]!==i?(p=()=>{var m;document.visibilityState==="visible"&&i&&!a&&((m=c.current)==null||m.call(c))},n[8]=a,n[9]=i,n[10]=p):p=n[10],hs(document,"visibilitychange",p),null}function Fl(){return["compact","medium","full","columns"]}const Hl=t=>{const e=G.c(2),{children:n}=t;let r;return e[0]!==n?(r=s.jsx("div",{className:"text-md font-semibold text-muted-foreground uppercase tracking-wide mb-1",children:n}),e[0]=n,e[1]=r):r=e[1],r},zi=t=>{const e=G.c(10);let n,r,i,o,a;return e[0]!==t?({children:n,className:r,...i}=t,e[0]=t,e[1]=n,e[2]=r,e[3]=i):(n=e[1],r=e[2],i=e[3]),e[4]!==r?(o=Tt("text-base font-semibold underline-offset-2 text-accent-foreground uppercase tracking-wide",r),e[4]=r,e[5]=o):o=e[5],e[6]!==n||e[7]!==i||e[8]!==o?(a=s.jsx("div",{...i,className:o,children:n}),e[6]=n,e[7]=i,e[8]=o,e[9]=a):a=e[9],a},zl=t=>{const e=G.c(2),{children:n}=t;let r;return e[0]!==n?(r=s.jsx("p",{className:"text-sm text-muted-foreground",children:n}),e[0]=n,e[1]=r):r=e[1],r},Ui=[{label:"Auto (Default)",value:"auto"},{label:"Native",value:"native"},{label:"Polars",value:"polars"},{label:"Lazy Polars",value:"lazy-polars"},{label:"Pandas",value:"pandas"}],Ul=()=>{const t=G.c(31),[e,n]=fs(),{saveAppConfig:r}=Me();let i,o;t[0]===Symbol.for("react.memo_cache_sentinel")?(i=On(ps),t[0]=i):i=t[0],t[1]!==e?(o={resolver:i,defaultValues:e},t[1]=e,t[2]=o):o=t[2];const a=kn(o);let c;t[3]!==r||t[4]!==n?(c=async I=>{await r({config:I}).then(()=>{n(I)}).catch(()=>{n(I)})},t[3]=r,t[4]=n,t[5]=c):c=t[5];const l=c;let u,d,v,p,m,h,f,y,x,w;return t[6]!==e.width?(u=[e.width],t[6]=e.width,t[7]=u):u=t[7],S.useEffect(ql,u),t[8]!==a||t[9]!==l?(d=a.handleSubmit(l),t[8]=a,t[9]=l,t[10]=d):d=t[10],t[11]===Symbol.for("react.memo_cache_sentinel")?(v=s.jsxs("div",{children:[s.jsx(Hl,{children:"Notebook Settings"}),s.jsx(zl,{children:"Configure how your notebook or application looks and behaves."})]}),t[11]=v):v=t[11],t[12]!==a.control?(p=s.jsxs(St,{title:"Display",children:[s.jsx(D,{control:a.control,name:"width",render:Vl}),s.jsx(D,{control:a.control,name:"app_title",render:Wl})]}),t[12]=a.control,t[13]=p):p=t[13],t[14]!==a.control?(m=s.jsxs(St,{title:"Custom Files",children:[s.jsx(D,{control:a.control,name:"css_file",render:Kl}),s.jsx(D,{control:a.control,name:"html_head_file",render:Gl})]}),t[14]=a.control,t[15]=m):m=t[15],t[16]!==a.control?(h=s.jsx(St,{title:"Data",children:s.jsx(D,{control:a.control,name:"sql_output",render:$l})}),t[16]=a.control,t[17]=h):h=t[17],t[18]!==a.control?(f=s.jsx(St,{title:"Exporting outputs",children:s.jsx(D,{control:a.control,name:"auto_download",render:Xl})}),t[18]=a.control,t[19]=f):f=t[19],t[20]!==p||t[21]!==m||t[22]!==h||t[23]!==f?(y=s.jsxs("div",{className:"grid grid-cols-2 gap-x-8 gap-y-4",children:[p,m,h,f]}),t[20]=p,t[21]=m,t[22]=h,t[23]=f,t[24]=y):y=t[24],t[25]!==y||t[26]!==d?(x=s.jsxs("form",{onChange:d,className:"flex flex-col gap-6",children:[v,y]}),t[25]=y,t[26]=d,t[27]=x):x=t[27],t[28]!==a||t[29]!==x?(w=s.jsx(Cn,{...a,children:x}),t[28]=a,t[29]=x,t[30]=w):w=t[30],w},St=t=>{const e=G.c(5),{title:n,children:r}=t;let i,o;return e[0]!==n?(i=s.jsx("h3",{className:"text-base font-semibold mb-1",children:n}),e[0]=n,e[1]=i):i=e[1],e[2]!==r||e[3]!==i?(o=s.jsxs("div",{className:"flex flex-col gap-y-2",children:[i,r]}),e[2]=r,e[3]=i,e[4]=o):o=e[4],o};function ql(){window.dispatchEvent(new Event("resize"))}function Bl(t){return s.jsx("option",{value:t,children:t},t)}function Vl(t){const{field:e}=t;return s.jsxs(T,{className:"flex flex-row items-center space-x-1 space-y-0",children:[s.jsx(C,{children:"Width"}),s.jsx(E,{children:s.jsx(fe,{"data-testid":"app-width-select",onChange:n=>e.onChange(n.target.value),value:e.value,disabled:e.disabled,className:"inline-flex mr-2",children:["compact","medium","full","columns"].map(Bl)})}),s.jsx(P,{})]})}function Wl(t){const{field:e}=t;return s.jsxs("div",{className:"flex flex-col gap-y-1",children:[s.jsxs(T,{className:"flex flex-row items-center space-x-1 space-y-0",children:[s.jsx(C,{children:"App title"}),s.jsx(E,{children:s.jsx(ue,{...e,value:e.value??"",onChange:n=>{e.onChange(n.target.value),Nn.safeParse(n.target.value).success&&(document.title=n.target.value)}})}),s.jsx(P,{})]}),s.jsx(F,{children:"The application title is put in the title tag in the HTML code and typically displayed in the title bar of the browser window."})]})}function Kl(t){const{field:e}=t;return s.jsxs("div",{className:"flex flex-col gap-y-1",children:[s.jsxs(T,{className:"flex flex-row items-center space-x-1 space-y-0",children:[s.jsx(C,{className:"flex-shrink-0",children:"Custom CSS"}),s.jsx(E,{children:s.jsx(ue,{...e,value:e.value??"",placeholder:"custom.css",onChange:n=>{e.onChange(n.target.value),Nn.safeParse(n.target.value).success&&(document.title=n.target.value)}})}),s.jsx(P,{})]}),s.jsx(F,{children:"A filepath to a custom css file to be injected into the notebook."})]})}function Gl(t){const{field:e}=t;return s.jsxs("div",{className:"flex flex-col gap-y-1",children:[s.jsxs(T,{className:"flex flex-row items-center space-x-1 space-y-0",children:[s.jsx(C,{className:"flex-shrink-0",children:"HTML Head"}),s.jsx(E,{children:s.jsx(ue,{...e,value:e.value??"",placeholder:"head.html",onChange:n=>{e.onChange(n.target.value)}})}),s.jsx(P,{})]}),s.jsxs(F,{children:["A filepath to an HTML file to be injected into the"," ",s.jsx(Y,{className:"inline",children:"<head/>"})," section of the notebook. Use this to add analytics, custom fonts, meta tags, or external scripts."]})]})}function Yl(t){return s.jsx("option",{value:t.value,children:t.label},t.value)}function $l(t){const{field:e}=t;return s.jsxs("div",{className:"flex flex-col gap-y-1",children:[s.jsxs(T,{className:"flex flex-row items-center space-x-1 space-y-0",children:[s.jsx(C,{children:"SQL Output Type"}),s.jsx(E,{children:s.jsx(fe,{"data-testid":"sql-output-select",onChange:n=>{e.onChange(n.target.value),Re({title:"Kernel Restart Required",description:"This change requires a kernel restart to take effect."})},value:e.value,disabled:e.disabled,className:"inline-flex mr-2",children:Ui.map(Yl)})}),s.jsx(P,{})]}),s.jsxs(F,{children:["The Python type returned by a SQL cell. For best performance with large datasets, we recommend using"," ",s.jsx(Y,{className:"inline",children:"native"}),". See the"," ",s.jsx(ce,{href:"https://docs.marimo.io/guides/working_with_data/sql",children:"SQL guide"})," ","for more information."]})]})}function Xl(t){const{field:e}=t;return s.jsxs("div",{className:"flex flex-col gap-y-1",children:[s.jsxs(T,{className:"flex flex-col gap-2",children:[s.jsx(E,{children:s.jsxs("div",{className:"flex gap-4",children:[s.jsxs("div",{className:"flex items-center space-x-2",children:[s.jsx($,{id:"html-checkbox",checked:e.value.includes("html"),onCheckedChange:()=>{e.onChange(st(e.value,"html"))}}),s.jsx(C,{htmlFor:"html-checkbox",children:"HTML"})]}),s.jsxs("div",{className:"flex items-center space-x-2",children:[s.jsx($,{id:"ipynb-checkbox",checked:e.value.includes("ipynb"),onCheckedChange:()=>{e.onChange(st(e.value,"ipynb"))}}),s.jsx(C,{htmlFor:"ipynb-checkbox",children:"IPYNB"})]})]})}),s.jsx(P,{})]}),s.jsxs(F,{children:["When enabled, marimo will periodically save this notebook in your selected formats (HTML, IPYNB) to a folder named"," ",s.jsx(Y,{className:"inline",children:"__marimo__"})," next to your notebook file."]})]})}const Ql=Dn("flex items-center justify-center m-0 leading-none font-medium border border-foreground/10 shadow-xsSolid hover:cursor-pointer active:shadow-none dark:border-border text-sm",{variants:{color:{gray:"mo-button gray",white:"mo-button white",green:"mo-button green",red:"mo-button red",yellow:"mo-button yellow","hint-green":"mo-button hint-green",disabled:"mo-button disabled active:shadow-xsSolid"},shape:{rectangle:"rounded",circle:"rounded-full"},size:{small:"",medium:""}},compoundVariants:[{size:"small",shape:"circle",class:"h-[24px] w-[24px] px-[5.5px] py-[5.5px]"},{size:"medium",shape:"circle",class:"px-2 py-2"},{size:"small",shape:"rectangle",class:"px-1 py-1 h-[24px] w-[24px]"},{size:"medium",shape:"rectangle",class:"px-3 py-2"}],defaultVariants:{color:"gray",size:"medium",shape:"rectangle"}}),Jl=Dn("font-mono w-full flex-1 inline-flex items-center justify-center rounded px-2.5 text-foreground/60 h-[36px] hover:shadow-md hover:cursor-pointer focus:shadow-md focus:outline-none text-[hsl(0, 0%, 43.5%)] bg-transparent hover:bg-background focus:bg-background"),Ot=Be.forwardRef((t,e)=>{const n=G.c(15);let r,i,o,a,c,l,u;return n[0]!==t?({color:i,shape:a,size:c,className:r,...o}=t,n[0]=t,n[1]=r,n[2]=i,n[3]=o,n[4]=a,n[5]=c):(r=n[1],i=n[2],o=n[3],a=n[4],c=n[5]),n[6]!==r||n[7]!==i||n[8]!==a||n[9]!==c?(l=Tn(Ql({color:i,shape:a,size:c}),r),n[6]=r,n[7]=i,n[8]=a,n[9]=c,n[10]=l):l=n[10],n[11]!==o||n[12]!==e||n[13]!==l?(u=s.jsx("button",{ref:e,className:l,...o,children:o.children}),n[11]=o,n[12]=e,n[13]=l,n[14]=u):u=n[14],u});Ot.displayName="Button",Be.forwardRef((t,e)=>{const n=G.c(9);let r,i,o,a;return n[0]!==t?({className:r,...i}=t,n[0]=t,n[1]=r,n[2]=i):(r=n[1],i=n[2]),n[3]!==r?(o=Tn(Jl(),r),n[3]=r,n[4]=o):o=n[4],n[5]!==i||n[6]!==e||n[7]!==o?(a=s.jsx("input",{ref:e,className:o,...i}),n[5]=i,n[6]=e,n[7]=o,n[8]=a):a=n[8],a}).displayName="Input";var Zl=gs();const qi="marimo:copilot:signedIn",Bi=ys(qi,null,void 0,{getOnInit:!0}),Vi=Ve(null),kt=Ve(null);function Wi(){const t=localStorage.getItem(qi)==="true",e=ms();return t&&e.completion.copilot==="github"}const be=q.get("@github/copilot-language-server");class ec extends xs{constructor(...e){super(...e),this.documentVersion=0,this.hasOpenedDocument=!1,this.getCompletionInternal=async(n,r)=>await this._request("textDocument/inlineCompletion",{...n,textDocument:{...n.textDocument,version:r}}),this.throttledGetCompletionInternal=function(n,r,i){var o=!0,a=!0;if(typeof n!="function")throw new TypeError("Expected a function");return ls(i)&&(o="leading"in i?!!i.leading:o,a="trailing"in i?!!i.trailing:a),cs(n,r,{leading:o,maxWait:r,trailing:a})}(this.getCompletionInternal,200)}async _request(e,n){try{return await this.request(e,n)}catch(r){throw be.error("#request: Error",r),r}}async notify(e,n){return be.debug("#notify",e,n),super.notify(e,n)}getInitializationOptions(){const e={name:"marimo",version:"0.1.0"};return{...super.getInitializationOptions(),workspaceFolders:[],capabilities:{workspace:{workspaceFolders:!1}},initializationOptions:{editorInfo:e,editorPluginInfo:e}}}isDisabled(){return!Wi()}async textDocumentDidOpen(e){return this.isDisabled()?e:(this.hasOpenedDocument=!0,super.textDocumentDidOpen(e))}async textDocumentCompletion(e){return[]}async textDocumentDidChange(e){if(this.isDisabled())return e;this.hasOpenedDocument||await this.textDocumentDidOpen({textDocument:{uri:e.textDocument.uri,languageId:"python",version:e.textDocument.version,text:e.contentChanges[0].text}});const n=e.contentChanges;n.length!==1&&be.warn("#textDocumentDidChange: Multiple changes detected. This is not supported.",n);const r=n[0];"range"in r&&be.warn("#textDocumentDidChange: Copilot doesn't support range changes.",r);const i=bs(r.text);return super.textDocumentDidChange({...e,contentChanges:[{text:i}],textDocument:js.VersionedTextDocumentIdentifier.create(e.textDocument.uri,++this.documentVersion)})}textDocumentHover(e){return Promise.resolve({contents:[]})}signOut(){return this._request("signOut",{})}async signInInitiate(){be.log("#signInInitiate: Starting sign-in flow");try{const e=await this._request("signIn",{});return be.log("#signInInitiate: Sign-in flow started successfully"),e}catch(e){throw be.warn("#signInInitiate: Failed to start sign-in flow",e),e}}async signInConfirm(e){be.log("#signInConfirm: Confirming sign-in");try{const n=await this._request("signInConfirm",e);return be.log("#signInConfirm: Sign-in confirmed successfully"),n}catch(n){throw be.warn("#signInConfirm: Failed to confirm sign-in",n),n}}async signedIn(){try{const{status:e}=await this._request("checkStatus",{});return be.log("#checkStatus: Status check completed",{status:e}),e==="SignedIn"||e==="AlreadySignedIn"||e==="OK"}catch(e){throw be.warn("#signedIn: Failed to check sign-in status",e),e}}async getCompletion(e){if(this.isDisabled())return null;const n=this.documentVersion;if(e.textDocument.version=n,n===0)return null;var r;r=n,ot.set(kt,r);const i=await this.throttledGetCompletionInternal(e,n);var o;return o=n,ot.get(kt)===o&&ot.set(kt,null),n!==this.documentVersion?null:i??null}}const Ki="/__marimo_copilot__.py",Gi=`file://${Ki}`,tc=Le(()=>new nc);class nc extends Zl.Transport{constructor(){super(),this.delegate=void 0,this.delegate=void 0}getWsUrl(){return Is().getLSPURL("copilot").toString()}async tryConnect(e=3,n=1e3){for(let r=1;r<=e;r++)try{return this.delegate||(this.delegate=new Ss.WebSocketTransport(this.getWsUrl())),await this.delegate.connect(),void q.log("Copilot#connect: Connected successfully")}catch(i){if(q.warn(`Copilot#connect: Connection attempt ${r}/${e} failed`,i),r===e)throw this.delegate=void 0,Re({variant:"danger",title:"GitHub Copilot Connection Error",description:"Failed to connect to GitHub Copilot. Please check settings and try again."}),i;await new Promise(o=>setTimeout(o,n))}}async connect(){return await vs(En,e=>e.completion.copilot==="github"),await Os(),this.tryConnect()}close(){var e;(e=this.delegate)==null||e.close(),this.delegate=void 0}async sendData(e,n){var r;return n=Math.min(n??5e3,5e3),(r=this.delegate)==null?void 0:r.sendData(e,n)}}const tt=Le(()=>new ec({rootUri:Gi,workspaceFolders:null,transport:tc()}));function rc(){return ws({documentUri:Gi,client:tt(),languageId:"copilot",hoverEnabled:!1,completionEnabled:!1,definitionEnabled:!1,renameEnabled:!1,codeActionsEnabled:!1,signatureHelpEnabled:!1,diagnosticsEnabled:!1,sendIncrementalChanges:!1})}const Yi=S.memo(()=>{const[t,e]=We(Bi),[n,r]=We(Vi),[i,o]=S.useState(),[a,c]=S.useState(!1),l=async v=>{v.preventDefault(),c(!0);try{const{verificationUri:p,status:m,userCode:h}=await async function(){return await tt().signInInitiate()}();Qi(m)?e(!0):(r("signingIn"),o({url:p,code:h}))}finally{c(!1)}},u=async v=>{if(v.preventDefault(),i){c(!0);try{const p=await async function(m){const h=tt();try{q.log("Copilot#tryFinishSignIn: Attempting to confirm sign-in");const{status:f}=await h.signInConfirm({userCode:m});return Qi(f)?(q.log("Copilot#tryFinishSignIn: Sign-in confirmed successfully"),{success:!0}):(q.warn("Copilot#tryFinishSignIn: Sign-in confirmation returned unexpected status",{status:f}),{success:!1})}catch(f){return Xi(f)?(q.error("Copilot#tryFinishSignIn: Connection error during sign-in",f),{success:!1,error:"connection"}):await async function(y){for(let x=0;x<$i;x++)try{if(await new Promise(w=>setTimeout(w,ic)),await y.signedIn())return q.log("Copilot#tryFinishSignIn: Successfully signed in after retry"),{success:!0}}catch(w){if(q.warn("Copilot#tryFinishSignIn: Retry attempt failed",{attempt:x+1,maxRetries:$i}),Xi(w))return{success:!1,error:"connection"}}return q.error("Copilot#tryFinishSignIn: All sign-in attempts failed"),{success:!1}}(h)}}(i.code);p.success?(e(!0),r("signedIn")):p.error==="connection"?(r("connectionError"),Re({title:"GitHub Copilot Connection Error",description:"Lost connection during sign-in. Please try again.",variant:"danger",action:s.jsx(me,{onClick:l,children:"Retry"})})):r("signInFailed")}finally{c(!1)}}},d=async v=>{v.preventDefault(),await async function(){await tt().signOut()}(),e(!1),r("signedOut")};return(()=>{switch(n??(t?"signedIn":"connecting")){case"connecting":return s.jsx(at,{className:"font-normal flex",children:"Connecting..."});case"signedOut":return s.jsx(me,{onClick:l,size:"xs",variant:"link",children:"Sign in to GitHub Copilot"});case"signingIn":return s.jsxs("ol",{className:"ml-4 text-sm list-decimal [&>li]:mt-2",children:[s.jsx("li",{children:s.jsxs("div",{className:"flex items-center",children:["Copy this code:",s.jsx("strong",{className:"ml-2",children:i==null?void 0:i.code}),s.jsx(Cs,{className:"ml-2 cursor-pointer opacity-60 hover:opacity-100 h-3 w-3",onClick:async()=>{i&&(await Ns(i.code),Re({description:"Copied to clipboard"}))}})]})}),s.jsxs("li",{children:["Enter the code at this link:",s.jsx("a",{href:i==null?void 0:i.url,target:"_blank",rel:"noreferrer",className:Ds({variant:"link",size:"xs"}),children:i==null?void 0:i.url})]}),s.jsxs("li",{children:["Click here when done:",s.jsxs(me,{size:"xs",onClick:u,className:"ml-1",children:[a&&s.jsx(_n,{className:"h-3 w-3 mr-1 animate-spin"}),"Done"]})]})]});case"signInFailed":return s.jsxs("div",{className:"flex flex-col gap-1",children:[s.jsx("div",{className:"text-destructive text-sm",children:"Sign in failed. Please try again."}),a?s.jsx(_n,{className:"h-3 w-3 mr-1 animate-spin"}):s.jsx(me,{onClick:l,size:"xs",variant:"link",children:"Connect to GitHub Copilot"})]});case"signedIn":return s.jsxs("div",{className:"flex items-center gap-5",children:[s.jsxs(at,{className:"font-normal flex items-center",children:[s.jsx("div",{className:"inline-flex items-center justify-center bg-[var(--grass-7)] rounded-full p-1 mr-2",children:s.jsx(ks,{className:"h-3 w-3 text-white"})}),"Connected"]}),s.jsx(me,{onClick:d,size:"xs",variant:"text",children:"Disconnect"})]});case"connectionError":return s.jsxs("div",{className:"flex flex-col gap-1",children:[s.jsxs(at,{className:"font-normal flex",children:[s.jsx(lt,{className:"h-4 w-4 mr-1"}),"Connection Error"]}),s.jsx("div",{className:"text-sm",children:"Unable to connect to GitHub Copilot."}),s.jsx(me,{onClick:l,size:"xs",variant:"link",children:"Retry Connection"})]});case"notConnected":return s.jsxs("div",{className:"flex flex-col gap-1",children:[s.jsxs(at,{className:"font-normal flex",children:[s.jsx(lt,{className:"h-4 w-4 mr-1"}),"Unable to connect"]}),s.jsxs("div",{className:"text-sm",children:["For troubleshooting, see the"," ",s.jsx(ce,{href:"https://docs.marimo.io/getting_started/index.html#github-copilot",children:"docs"}),"."]})]})}})()});Yi.displayName="CopilotConfig";const $i=5,ic=3e3;function Xi(t){return t instanceof Error&&(t.message.includes("ECONNREFUSED")||t.message.includes("WebSocket")||t.message.includes("network"))}function Qi(t){return t==="SignedIn"||t==="AlreadySignedIn"||t==="OK"}let Ct=null;class sc{constructor(e){this.view=void 0,this.abortController=new AbortController,this.view=e.view,this.view.dom.addEventListener("focus",()=>{Ct=new WeakRef(this.view)},{signal:this.abortController.signal,capture:!0}),this.update()}update(){const e=this.view.dom.querySelector(".cm-vimCursorLayer");if(e instanceof HTMLElement)if(Ts())e.style.display="none";else{const n=(Ct==null?void 0:Ct.deref())===this.view;e.style.display=n?"":"none"}}destroy(){this.abortController.abort()}}const Ji={map:{args:["lhs","rhs"]},nmap:{mode:"normal",args:["lhs","rhs"]},vmap:{mode:"visual",args:["lhs","rhs"]},imap:{mode:"insert",args:["lhs","rhs"]},noremap:{args:["lhs","rhs"]},nnoremap:{mode:"normal",args:["lhs","rhs"]},vnoremap:{mode:"visual",args:["lhs","rhs"]},inoremap:{mode:"insert",args:["lhs","rhs"]},unmap:{args:["lhs"]},nunmap:{mode:"normal",args:["lhs"]},vunmap:{mode:"visual",args:["lhs"]},iunmap:{mode:"insert",args:["lhs"]},mapclear:{},nmapclear:{mode:"normal"},vmapclear:{mode:"visual"},imapclear:{mode:"insert"}};function oc(t,e){const n=t.split(/\s+/),r=n[0];let i=0;if(r in Ji){const o=Ji[r],a={};for(const l of o.args||[]){if(i+=1,!(i<n.length))return void(e&&e(`Not enough arguments for "${r}" command: "${t}"`));a[l]=n[i]}const c={name:r};return"args"in o&&(c.args=a),"mode"in o&&(c.mode=o.mode),c}e&&e(`Unknown vimrc command: "${t}"`)}var Zi;const ac=Le(()=>{Z.defineAction("goToDefinition",t=>{const e=t.cm6;return Ps(e)}),Z.mapCommand("gd","action","goToDefinition",{},{context:"normal"}),Z.defineEx("write","w",t=>{const e=t.cm6;e&&e.state.facet(ct).saveNotebook()})}),lc=Le(async()=>{var n;const t=ot.get(En),e=(n=t.keymap)==null?void 0:n.vimrc;if(e)try{q.log(`Loading vimrc from ${e}`);const r=(await As().sendFileDetails({path:e})).contents;if(!r)return void q.error(`Failed to load vimrc from ${e}`);const i=function(o,a){const c=[];for(const l of o.split(`
|
17
|
-
`)){if(l.startsWith('"')||l.trim()==="")continue;const u=oc(l,a);u&&c.push(u)}return c}(r,q.warn);(function(o){function a(d){d.args&&d.args.lhs&&d.args.rhs?d.mode?Z.map(d.args.lhs,d.args.rhs,d.mode):Z.map(d.args.lhs,d.args.rhs):q.warn(`Could not execute vimrc command "${d.name}: expected arguments"`)}function c(d){d.args&&d.args.lhs&&d.args.rhs?d.mode?Z.noremap(d.args.lhs,d.args.rhs,d.mode):Z.noremap(d.args.lhs,d.args.rhs):q.warn(`Could not execute vimrc command "${d.name}: expected arguments"`)}function l(d){d.args&&d.args.lhs?d.mode?Z.unmap(d.args.lhs,d.mode):Z.unmap(d.args.lhs):q.warn(`Could not execute vimrc command "${d.name}: expected arguments"`)}function u(d){d.mode?Z.mapclear(d.mode):Z.mapclear()}for(const d of o)"map|nmap|vmap|imap".split("|").includes(d.name)?a(d):"noremap|nnoremap|vnoremap|inoremap".split("|").includes(d.name)?c(d):"unmap|nunmap|vunmap|iunmap".split("|").includes(d.name)?l(d):"mapclear|nmapclear|vmapclear|imapclear".split("|").includes(d.name)?u(d):q.warn(`Could not execute vimrc command "${d.name}: unknown command"`)})(i)}catch(r){q.error("Failed to load vimrc:",r)}});class Nt{constructor(){this.instances=new Set,this.isBroadcasting=!1}addInstance(e){this.instances.add(e);const n=ut(e);n?n.on("vim-mode-change",r=>{var i;this.isBroadcasting||(Et("mode"in r,'Expected event to have a "mode" property'),this.isBroadcasting=!0,i=()=>{this.broadcastModeChange(e,r.mode,r.subMode),this.isBroadcasting=!1},"scheduler"in window?window.scheduler.postTask(i,{priority:"background"}):"requestIdleCallback"in window?requestIdleCallback(i):setTimeout(i,0))}):q.warn("Expected CodeMirror instance to have CodeMirror instance state")}removeInstance(e){this.instances.delete(e)}broadcastModeChange(e,n,r){Et("exitInsertMode"in Z,"Vim does not have an exitInsertMode method"),Et("exitVisualMode"in Z,"Vim does not have an exitVisualMode method");for(const i of this.instances)if(i!==e){const o=ut(i);if(!o){q.warn("Expected CodeMirror instance to have CodeMirror instance state");continue}const a=o.setSelections.bind(o);if(o.setSelections=()=>[],!es(o)){q.warn("Expected CodeMirror instance to have Vim state");continue}const c=o.state.vim;switch(n){case"normal":c.insertMode&&Z.exitInsertMode(o,!0),c.visualMode&&Z.exitVisualMode(o,!0);break;case"insert":c.insertMode||Z.handleKey(o,"i","")}o.setSelections=a}}}function es(t){return t.state.vim!==void 0}Zi=Nt,Nt.INSTANCES=new Zi;const cc=["default","vim"];function uc(t,e){switch(t.preset){case"default":return[Ie.of(ts()),Ie.of(ns(e)),_t.low(Ie.of([{key:"Escape",preventDefault:!0,run:n=>(n.contentDOM.blur(),!0)}]))];case"vim":return[Ie.of(hc()),Ie.of(ns(e)),Ie.of([{key:"Enter",run:n=>{var i;const r=ut(n);return!!((i=r==null?void 0:r.state.vim)!=null&&i.insertMode)&&Ls(n)}}]),_t.high(fc("d",n=>n.state.doc.toString()==="",n=>n.state.doc.toString()===""?(n.state.facet(ct).deleteCell(),!0):!1)),Rs({status:!1}),_t.high((ac(),lc(),[Ie.of([{key:"j",run:n=>{if(Es(n,!0)&&An(n)){const r=n.state.facet(ct),i=n.state.facet(Mn);return r.moveToNextCell({cellId:i,before:!1,noCreate:!0}),!0}return!1}}]),Ie.of([{key:"k",run:n=>{if(_s(n)&&An(n)){const r=n.state.facet(ct),i=n.state.facet(Mn);return r.moveToNextCell({cellId:i,before:!0,noCreate:!0}),!0}return!1}}]),Ie.of([{linux:"Ctrl-[",win:"Ctrl-[",run:n=>{const r=ut(n);return r?es(r)?!!r.state.vim.insertMode&&(Z.exitInsertMode(r,!0),!0):(q.warn("Expected CodeMirror instance to have Vim state"),!1):(q.warn("Expected CodeMirror instance to have CodeMirror instance state"),!1)}}]),Pn.define(n=>(requestAnimationFrame(()=>{Nt.INSTANCES.addInstance(n)}),{destroy(){Nt.INSTANCES.removeInstance(n)}})),Pn.define(n=>new sc({view:n}))]))];default:return Ms(t.preset),[]}}const dc=new Set([Rn,Ln]),ts=Le(()=>Fs.filter(t=>!dc.has(t.run))),ns=t=>[{key:t.getHotkey("cell.toggleComment").key,run:Rn},{key:t.getHotkey("cell.toggleBlockComment").key,run:Ln}],hc=Le(()=>{const t=new Set(["Enter","Ctrl-v"]);return ts().filter(e=>!t.has(e.key||e.mac||e.linux||e.win||""))});function fc(t,e,n){let r="",i=0;return Ie.of([{any:(o,a)=>{const c=a.key,l=a.timeStamp;return c!==t||!e(o)?(r="",i=0,!1):r===t&&l-i<500&&n(o)?(r="",i=0,!0):(r=c,i=l,!1)}}])}const wn=Ve(!1),pc=()=>{const t=G.c(82),[e,n]=We(wn),[r,i]=S.useState(null);let o;t[0]===Symbol.for("react.memo_cache_sentinel")?(o=[],t[0]=o):o=t[0];const[a,c]=S.useState(o),[l,u]=Fn(),d=dt(Hs),{saveUserConfig:v}=Me();let p,m;t[1]!==n?(p=()=>n(gc),t[1]=n,t[2]=p):p=t[2],zs("global.showHelp",p),t[3]!==l||t[4]!==v||t[5]!==u?(m=async ke=>{const te={...l};u(ke),await v({config:ke}).catch(K=>{throw u(te),K})},t[3]=l,t[4]=v,t[5]=u,t[6]=m):m=t[6];const h=m;let f;t[7]!==l||t[8]!==r||t[9]!==h?(f=async ke=>{if(!r)return;const te=ke.join("-"),K={...l,keymap:{...l.keymap,overrides:{...l.keymap.overrides,[r]:te}}};i(null),c([]),await h(K)},t[7]=l,t[8]=r,t[9]=h,t[10]=f):f=t[10];const y=f;let x,w,I;if(t[11]!==l||t[12]!==r||t[13]!==y||t[14]!==d||t[15]!==e||t[16]!==a||t[17]!==h){I=Symbol.for("react.early_return_sentinel");{const ke=async()=>{if(!r)return;const K={...l,keymap:{...l.keymap,overrides:{...l.keymap.overrides}}};delete K.keymap.overrides[r],i(null),c([]),await h(K)};let te;t[21]!==l||t[22]!==h?(te=async()=>{if(!window.confirm("Are you sure you want to reset all shortcuts to their default values?"))return;const K={...l,keymap:{...l.keymap,overrides:{}}};i(null),c([]),await h(K)},t[21]=l,t[22]=h,t[23]=te):te=t[23],x=te,e?w=K=>{const je=d.getHotkey(K);if(r===K){const it=Us(K);return s.jsxs("div",{children:[s.jsx(ue,{defaultValue:a.join("+"),placeholder:je.name,onKeyDown:le=>{le.preventDefault();const Ce=[];if(le.key==="Meta"||le.key==="Control"||le.key==="Alt"||le.key==="Shift"||(le.metaKey&&Ce.push(zn()?"Cmd":"Meta"),le.ctrlKey&&Ce.push("Ctrl"),le.altKey&&Ce.push("Alt"),le.shiftKey&&Ce.push("Shift"),le.key==="-"))return;if(le.key==="Escape"&&Ce.length===0)return i(null),void c([]);let Sn=le.key.toLowerCase();le.key===" "&&(Sn="Space"),Ce.push(Sn),y(Ce)},autoFocus:!0,endAdornment:s.jsx(me,{variant:"text",size:"xs",className:"mb-0",onClick:()=>{i(null),c([])},children:s.jsx(lt,{className:"w-4 h-4"})})}),s.jsxs("div",{className:"flex items-center justify-between w-full",children:[s.jsx("span",{className:"text-muted-foreground text-xs",children:"Press a key combination"}),it.key!==je.key&&s.jsxs("span",{className:"text-xs cursor-pointer text-primary",onClick:ke,children:["Reset to default:"," ",s.jsx("span",{className:"font-mono",children:it.key})]})]})]},K)}return s.jsxs("div",{className:"grid grid-cols-[auto,2fr,3fr] gap-2 items-center",children:[d.isEditable(K)?s.jsx(Un,{className:"cursor-pointer opacity-60 hover:opacity-100 text-muted-foreground w-3 h-3",onClick:()=>{c([]),i(K)}}):s.jsx("div",{className:"w-3 h-3"}),s.jsx(Hn,{className:"justify-end",shortcut:je.key}),s.jsx("span",{children:je.name.toLowerCase()})]},K)}:I=null}t[11]=l,t[12]=r,t[13]=y,t[14]=d,t[15]=e,t[16]=a,t[17]=h,t[18]=x,t[19]=w,t[20]=I}else x=t[18],w=t[19],I=t[20];if(I!==Symbol.for("react.early_return_sentinel"))return I;const k=w;let O,N,_,z,H,U,B,se,de,oe,ae,V,Q,J,ee,he,j,g,b,W,Ee,_e,Pe,Ae,rt;if(t[24]!==l.keymap.preset||t[25]!==d||t[26]!==e||t[27]!==k||t[28]!==n){const ke=d.getHotkeyGroups(),te=(je,it)=>{const le=ke[je];return s.jsxs("div",{className:"mb-[40px] gap-2 flex flex-col",children:[s.jsxs("div",{children:[s.jsx("h3",{className:"text-lg font-medium",children:je}),it]}),le.map(k)]})},K=je=>te(je,s.jsxs("p",{className:"text-xs text-muted-foreground flex items-center gap-1",children:["Press"," ",l.keymap.preset==="vim"?s.jsxs(s.Fragment,{children:[s.jsx(Hn,{shortcut:zn()?"Cmd":"Ctrl"}),s.jsx(Y,{children:"Esc"})]}):s.jsx(Y,{children:"Esc"})," ","in a cell to enter command mode"]}));_=Pt,Q=e,t[47]!==n?(J=je=>n(je),t[47]=n,t[48]=J):J=t[48],N=qs,ae="sm:items-center sm:top-0",t[49]===Symbol.for("react.memo_cache_sentinel")?(V=s.jsx(Bs,{}),t[49]=V):V=t[49],O=qn,se=!1,de="max-h-screen sm:max-h-[90vh] overflow-y-auto sm:max-w-[850px]",t[50]===Symbol.for("react.memo_cache_sentinel")?(oe=s.jsx(Vs,{children:s.jsx(Ws,{children:"Shortcuts"})}),t[50]=oe):oe=t[50],U="flex flex-row gap-3",B=s.jsxs("div",{className:"w-1/2",children:[te("Editing"),te("Markdown")]}),ee="w-1/2",he=te("Navigation"),j=te("Running Cells"),g=te("Creation and Ordering"),z=K("Command"),H=te("Other"),t[24]=l.keymap.preset,t[25]=d,t[26]=e,t[27]=k,t[28]=n,t[29]=O,t[30]=N,t[31]=_,t[32]=z,t[33]=H,t[34]=U,t[35]=B,t[36]=se,t[37]=de,t[38]=oe,t[39]=ae,t[40]=V,t[41]=Q,t[42]=J,t[43]=ee,t[44]=he,t[45]=j,t[46]=g}else O=t[29],N=t[30],_=t[31],z=t[32],H=t[33],U=t[34],B=t[35],se=t[36],de=t[37],oe=t[38],ae=t[39],V=t[40],Q=t[41],J=t[42],ee=t[43],he=t[44],j=t[45],g=t[46];return t[51]===Symbol.for("react.memo_cache_sentinel")?(b=s.jsx("span",{className:"text-destructive",children:"Reset all to default"}),t[51]=b):b=t[51],t[52]!==x?(W=s.jsx(me,{className:"mt-4 hover:bg-destructive/10 border-destructive hover:border-destructive",variant:"outline",size:"xs",onClick:x,tabIndex:-1,children:b}),t[52]=x,t[53]=W):W=t[53],t[54]!==z||t[55]!==H||t[56]!==W||t[57]!==ee||t[58]!==he||t[59]!==j||t[60]!==g?(Ee=s.jsxs("div",{className:ee,children:[he,j,g,z,H,W]}),t[54]=z,t[55]=H,t[56]=W,t[57]=ee,t[58]=he,t[59]=j,t[60]=g,t[61]=Ee):Ee=t[61],t[62]!==U||t[63]!==B||t[64]!==Ee?(_e=s.jsxs("div",{className:U,children:[B,Ee]}),t[62]=U,t[63]=B,t[64]=Ee,t[65]=_e):_e=t[65],t[66]!==O||t[67]!==se||t[68]!==de||t[69]!==oe||t[70]!==_e?(Pe=s.jsxs(O,{usePortal:se,className:de,children:[oe,_e]}),t[66]=O,t[67]=se,t[68]=de,t[69]=oe,t[70]=_e,t[71]=Pe):Pe=t[71],t[72]!==N||t[73]!==ae||t[74]!==V||t[75]!==Pe?(Ae=s.jsxs(N,{className:ae,children:[V,Pe]}),t[72]=N,t[73]=ae,t[74]=V,t[75]=Pe,t[76]=Ae):Ae=t[76],t[77]!==_||t[78]!==Q||t[79]!==J||t[80]!==Ae?(rt=s.jsx(_,{open:Q,onOpenChange:J,children:Ae}),t[77]=_,t[78]=Q,t[79]=J,t[80]=Ae,t[81]=rt):rt=t[81],rt};function gc(t){return!t}const rs=["claude-opus-4-20250514","claude-sonnet-4-20250514","claude-3-7-sonnet-latest","claude-3-5-sonnet-latest","claude-3-5-haiku-latest","deepseek-v3","deepseek-r1","gemini-2.5-flash-preview-05-20","gemini-2.5-pro-preview-06-05","gemini-2.0-flash","gemini-2.0-flash-lite","o3","o4-mini","gpt-4.5-preview","gpt-4.1","gpt-4o","gpt-3.5-turbo","bedrock/us.anthropic.claude-3-7-sonnet-20250219-v1:0","bedrock/anthropic.claude-3-sonnet-20240229","bedrock/anthropic.claude-3-haiku-20240307","bedrock/meta.llama3-8b-instruct-v1:0","bedrock/amazon.titan-text-express-v1","bedrock/us.amazon.nova-pro-v1:0","bedrock/cohere.command-r-plus-v1","bedrock/ai21.j2-ultra-v1"],mc=["us-east-1","us-east-2","us-west-2","eu-central-1","ap-northeast-1","ap-southeast-1"];function is(t,e){const n=G.c(10);let r;n[0]!==e||n[1]!==t?(r=Bn(t,e),n[0]=e,n[1]=t,n[2]=r):r=n[2];const i=r,o=dt(Ks);let a;n[3]!==e||n[4]!==o?(a=Bn(o,e),n[3]=e,n[4]=o,n[5]=a):a=n[5];const c=a,l=c!=null&&i!==c;let u;return n[6]!==i||n[7]!==l||n[8]!==c?(u={isOverridden:l,currentValue:i,overriddenValue:c},n[6]=i,n[7]=l,n[8]=c,n[9]=u):u=n[9],u}const vc=t=>{const e=G.c(3),{name:n,children:r}=t,[i]=Vn(),{isOverridden:o}=is(i,n);let a;return e[0]!==r||e[1]!==o?(a=o?s.jsx(Ke,{delayDuration:200,content:s.jsxs("div",{className:"flex flex-col gap-2",children:[s.jsxs("p",{children:["This setting is overridden by the"," ",s.jsx(Y,{className:"inline mx-[1px]",children:"pyproject.toml"})," config."]}),s.jsxs("p",{children:["To change it, edit the project config"," ",s.jsx(Y,{className:"inline mx-[1px]",children:"pyproject.toml"}),"directly."]})]}),children:s.jsx("div",{className:"text-muted-foreground opacity-80 cursor-not-allowed *:pointer-events-none",children:r})}):r,e[0]=r,e[1]=o,e[2]=a):a=e[2],a},ss=[{id:"sql",packagesRequired:[{name:"duckdb"},{name:"sqlglot"}],additionalPackageInstalls:[{name:"polars[pyarrow]"}],description:"SQL cells"},{id:"charts",packagesRequired:[{name:"altair"}],additionalPackageInstalls:[],description:"Charts in datasource viewer"},{id:"fast-charts",packagesRequired:[{name:"vegafusion"},{name:"vl-convert-python"}],additionalPackageInstalls:[],description:"Fast server-side charts"},{id:"formatting",packagesRequired:[Ge()?{name:"black"}:{name:"ruff"}],additionalPackageInstalls:[],description:"Formatting"},{id:"ai",packagesRequired:[{name:"openai"}],additionalPackageInstalls:[],description:"AI features"},{id:"ipy-export",packagesRequired:[{name:"nbformat"}],additionalPackageInstalls:[],description:"Export as IPYNB"},{id:"testing",packagesRequired:[{name:"pytest"}],additionalPackageInstalls:[],description:"Autorun unit tests"}];Ge()||ss.push({id:"lsp",packagesRequired:[{name:"python-lsp-server"},{name:"websockets"}],additionalPackageInstalls:[{name:"python-lsp-ruff"}],description:"Language Server Protocol*"});const yc=()=>{const t=G.c(23),[e]=Fn(),n=e.package_management.manager,{getPackageList:r}=Me();let i,o;t[0]!==r?(i=()=>r(),t[0]=r,t[1]=i):i=t[1],t[2]!==n?(o=[n],t[2]=n,t[3]=o):o=t[3];const{data:a,error:c,refetch:l,isPending:u}=Gs(i,o);if(u){let O;return t[4]===Symbol.for("react.memo_cache_sentinel")?(O=s.jsx(Kn,{size:"medium",centered:!0}),t[4]=O):O=t[4],O}if(c){let O;return t[5]!==c?(O=s.jsx($s,{error:c}),t[5]=c,t[6]=O):O=t[6],O}let d;t[7]!==(a==null?void 0:a.packages)?(d=(a==null?void 0:a.packages)||[],t[7]=a==null?void 0:a.packages,t[8]=d):d=t[8];const v=d;let p;t[9]!==v?(p=new Set(v.map(bc)),t[9]=v,t[10]=p):p=t[10];const m=p;let h,f,y,x,w,I,k;return t[11]===Symbol.for("react.memo_cache_sentinel")?(h=s.jsx(zi,{children:"Optional Features"}),t[11]=h):h=t[11],t[12]===Symbol.for("react.memo_cache_sentinel")?(f=s.jsxs("p",{className:"text-sm text-muted-foreground",children:["marimo is lightweight, with few dependencies, to maximize compatibility with your own environments.",s.jsx("br",{}),"To unlock additional features in the marimo editor, you can install these optional dependencies:"]}),t[12]=f):f=t[12],t[13]===Symbol.for("react.memo_cache_sentinel")?(y=s.jsx(Xs,{children:s.jsxs(Wn,{children:[s.jsx(ht,{children:"Dependency"}),s.jsx(ht,{children:"Feature"}),s.jsx(ht,{children:"Status"}),s.jsx(ht,{})]})}),t[13]=y):y=t[13],t[14]!==m||t[15]!==n||t[16]!==l?(x=ss.map(O=>{const N=O.packagesRequired.every(z=>m.has(z.name.split("[")[0])),_=O.packagesRequired.map(jc).join(", ");return s.jsxs(Wn,{className:"text-sm",children:[s.jsx(At,{children:O.description}),s.jsx(At,{className:"font-mono text-xs",children:_}),s.jsx(At,{children:N?s.jsxs("div",{className:"flex items-center",children:[s.jsx($n,{className:"h-4 w-4 text-[var(--grass-10)] mr-2"}),s.jsx("span",{children:"Installed"})]}):s.jsxs("div",{className:"flex items-center",children:[s.jsx(Ys,{className:"h-4 w-4 text-[var(--red-10)] mr-2"}),s.jsx(xc,{packageSpecs:[...O.packagesRequired,...O.additionalPackageInstalls],packageManager:n,onSuccess:l})]})})]},O.id)}),t[14]=m,t[15]=n,t[16]=l,t[17]=x):x=t[17],t[18]!==x?(w=s.jsxs(Qs,{children:[y,s.jsx(Js,{children:x})]}),t[18]=x,t[19]=w):w=t[19],t[20]===Symbol.for("react.memo_cache_sentinel")?(I=s.jsx("p",{className:"text-muted-foreground mt-2",children:"*Requires server restart"}),t[20]=I):I=t[20],t[21]!==w?(k=s.jsxs("div",{className:"flex-1 flex flex-col overflow-hidden gap-2",children:[h,f,w,I]}),t[21]=w,t[22]=k):k=t[22],k},xc=({packageSpecs:t,packageManager:e,onSuccess:n})=>{const[r,i]=Be.useState(!1),{addPackage:o}=Me();return s.jsxs(me,{size:"xs",variant:"outline",className:Tt("text-xs",r&&"opacity-50 cursor-not-allowed"),onClick:async()=>{try{i(!0);const a=t.map(l=>l.minVersion?`${l.name}>=${l.minVersion}`:l.name).join(" "),c=await o({package:a});c.success?(n(),Re({title:"Package installed",description:s.jsxs("span",{children:["The packages"," ",s.jsx(Y,{className:"inline",children:t.map(l=>l.name).join(", ")})," ","have been added to your environment."]})})):Re({title:"Failed to install package",description:c.error,variant:"danger"})}finally{i(!1)}},disabled:r,children:[r?s.jsx(Kn,{size:"small",className:"mr-2 h-3 w-3"}):s.jsx(Yn,{className:"mr-2 h-3 w-3"}),"Install with ",e]})};function bc(t){return t.name}function jc(t){return t.name}const M="flex flex-row items-center space-x-1 space-y-0",os=[{id:"editor",label:"Editor",Icon:Un,className:"bg-[var(--blue-4)]"},{id:"display",label:"Display",Icon:ko,className:"bg-[var(--grass-4)]"},{id:"packageManagement",label:"Package Management",Icon:Co,className:"bg-[var(--red-4)]"},{id:"runtime",label:"Runtime",Icon:Xn,className:"bg-[var(--amber-4)]"},{id:"ai",label:"AI",Icon:bo,className:"bg-[linear-gradient(45deg,var(--purple-5),var(--cyan-5))]"},{id:"optionalDeps",label:"Optional Dependencies",Icon:Qn,className:"bg-[var(--orange-4)]"},{id:"labs",label:"Labs",Icon:jo,className:"bg-[var(--slate-4)]"}],as=Ve(os[0].id),wc=()=>{const t=G.c(49),[e,n]=Vn(),r=S.useRef(null),i=Mt(wn),[o,a]=We(as),c=dt(Zs),l=dt(eo),{saveUserConfig:u}=Me();let d,v;t[0]===Symbol.for("react.memo_cache_sentinel")?(d=On(to),t[0]=d):d=t[0],t[1]!==e?(v={resolver:d,defaultValues:e},t[1]=e,t[2]=v):v=t[2];const p=kn(v);let m;t[3]!==u||t[4]!==n?(m=async j=>{await u({config:j}).then(()=>{n(j)})},t[3]=u,t[4]=n,t[5]=m):m=t[5];const h=m;let f;t[6]===Symbol.for("react.memo_cache_sentinel")?(f=Ge(),t[6]=f):f=t[6];const y=f;let x;t[7]!==e||t[8]!==p?(x=()=>{const j=p.getValues("completion.copilot");return j===!1?null:j==="codeium"?s.jsxs(s.Fragment,{children:[s.jsxs("p",{className:"text-sm text-muted-secondary",children:["To get a Windsurf API key, follow"," ",s.jsx(ce,{href:"https://docs.marimo.io/guides/editor_features/ai_completion.html#windsurf-copilot",children:"these instructions"}),"."]}),s.jsx(D,{control:p.control,name:"completion.codeium_api_key",render:g=>{const{field:b}=g;return s.jsxs(T,{className:M,children:[s.jsx(C,{children:"API Key"}),s.jsx(E,{children:s.jsx(ue,{"data-testid":"codeium-api-key-input",className:"m-0 inline-flex",placeholder:"key",...b,value:b.value||""})}),s.jsx(P,{}),s.jsx(R,{userConfig:e,name:"completion.codeium_api_key"})]})}})]}):j==="github"?s.jsx(Yi,{}):j==="custom"?s.jsxs(s.Fragment,{children:[s.jsx("p",{className:"text-sm text-muted-secondary",children:"Configure your custom AI completion provider with the following settings."}),s.jsx(D,{control:p.control,name:"completion.model",render:g=>{const{field:b}=g;return s.jsxs(T,{className:M,children:[s.jsx(C,{children:"Model"}),s.jsx(E,{children:s.jsx(ue,{"data-testid":"custom-model-input",className:"m-0 inline-flex",placeholder:"Qwen2.5-Coder-7B",...b,value:b.value||""})}),s.jsx(P,{}),s.jsx(R,{userConfig:e,name:"completion.model"})]})}}),s.jsx(D,{control:p.control,name:"completion.base_url",render:g=>{const{field:b}=g;return s.jsxs(T,{className:M,children:[s.jsx(C,{children:"Base URL"}),s.jsx(E,{children:s.jsx(ue,{"data-testid":"custom-base-url-input",className:"m-0 inline-flex",placeholder:"http://localhost:11434/v1",...b,value:b.value||""})}),s.jsx(P,{}),s.jsx(R,{userConfig:e,name:"completion.base_url"})]})}}),s.jsx(D,{control:p.control,name:"completion.api_key",render:g=>{const{field:b}=g;return s.jsxs(T,{className:M,children:[s.jsx(C,{children:"API Key"}),s.jsx(E,{children:s.jsx(ue,{"data-testid":"custom-api-key-input",className:"m-0 inline-flex",placeholder:"key",...b,value:b.value||""})}),s.jsx(P,{}),s.jsx(R,{userConfig:e,name:"completion.api_key"})]})}})]}):void 0},t[7]=e,t[8]=p,t[9]=x):x=t[9];const w=x;let I;t[10]!==o||t[11]!==c||t[12]!==e||t[13]!==p||t[14]!==h||t[15]!==w||t[16]!==a||t[17]!==i?(I=()=>{switch(o){case"editor":return s.jsxs(s.Fragment,{children:[s.jsxs(ge,{title:"Autosave",children:[s.jsx(D,{control:p.control,name:"save.autosave",render:j=>{const{field:g}=j;return s.jsxs(T,{className:M,children:[s.jsx(C,{className:"font-normal",children:"Autosave enabled"}),s.jsx(E,{children:s.jsx($,{"data-testid":"autosave-checkbox",checked:g.value==="after_delay",disabled:g.disabled,onCheckedChange:b=>{g.onChange(b?"after_delay":"off")}})}),s.jsx(P,{}),s.jsx(R,{userConfig:e,name:"save.autosave"})]})}}),s.jsx(D,{control:p.control,name:"save.autosave_delay",render:j=>{const{field:g}=j;return s.jsxs(T,{className:M,children:[s.jsx(C,{children:"Autosave delay (seconds)"}),s.jsx(E,{children:s.jsx(Ye,{"data-testid":"autosave-delay-input",className:"m-0 w-24",isDisabled:p.getValues("save.autosave")!=="after_delay",...g,value:g.value/1e3,minValue:1,onChange:b=>{g.onChange(1e3*b),Number.isNaN(b)||h(p.getValues())}})}),s.jsx(P,{}),s.jsx(R,{userConfig:e,name:"save.autosave_delay"})]})}}),s.jsx(D,{control:p.control,name:"runtime.default_auto_download",render:j=>{const{field:g}=j;return s.jsxs("div",{className:"flex flex-col gap-y-1",children:[s.jsxs(T,{className:M,children:[s.jsx(C,{children:"Save cell outputs as"}),s.jsx(E,{children:s.jsxs("div",{className:"flex gap-4",children:[s.jsxs("div",{className:"flex items-center space-x-2",children:[s.jsx($,{id:"html-checkbox",checked:Array.isArray(g.value)&&g.value.includes("html"),onCheckedChange:()=>{const b=Array.isArray(g.value)?g.value:[];g.onChange(st(b,"html"))}}),s.jsx(C,{htmlFor:"html-checkbox",children:"HTML"})]}),s.jsxs("div",{className:"flex items-center space-x-2",children:[s.jsx($,{id:"ipynb-checkbox",checked:Array.isArray(g.value)&&g.value.includes("ipynb"),onCheckedChange:()=>{const b=Array.isArray(g.value)?g.value:[];g.onChange(st(b,"ipynb"))}}),s.jsx(C,{htmlFor:"ipynb-checkbox",children:"IPYNB"})]})]})}),s.jsx(P,{}),s.jsx(R,{userConfig:e,name:"runtime.default_auto_download"})]}),s.jsxs(F,{children:["When enabled, marimo will periodically save notebooks in your selected formats (HTML, IPYNB) to a folder named"," ",s.jsx(Y,{className:"inline",children:"__marimo__"})," next to your notebook file."]})]})}})]}),s.jsxs(ge,{title:"Formatting",children:[s.jsx(D,{control:p.control,name:"save.format_on_save",render:j=>{const{field:g}=j;return s.jsxs(T,{className:M,children:[s.jsx(C,{className:"font-normal",children:"Format on save"}),s.jsx(E,{children:s.jsx($,{"data-testid":"format-on-save-checkbox",checked:g.value,disabled:g.disabled,onCheckedChange:b=>{g.onChange(b)}})}),s.jsx(P,{}),s.jsx(R,{userConfig:e,name:"save.format_on_save"})]})}}),s.jsx(D,{control:p.control,name:"formatting.line_length",render:j=>{const{field:g}=j;return s.jsxs("div",{className:"flex flex-col space-y-1",children:[s.jsxs(T,{className:M,children:[s.jsx(C,{children:"Line length"}),s.jsx(E,{children:s.jsx(Ye,{"data-testid":"line-length-input",className:"m-0 w-24",...g,value:g.value,minValue:1,maxValue:1e3,onChange:b=>{g.onChange(b),Number.isNaN(b)||h(p.getValues())}})}),s.jsx(P,{}),s.jsx(R,{userConfig:e,name:"formatting.line_length"})]}),s.jsx(F,{children:"Maximum line length when formatting code."})]})}})]}),s.jsx(ge,{title:"Autocomplete",children:s.jsx(D,{control:p.control,name:"completion.activate_on_typing",render:j=>{const{field:g}=j;return s.jsxs("div",{className:"flex flex-col space-y-1",children:[s.jsxs(T,{className:M,children:[s.jsx(C,{className:"font-normal",children:"Autocomplete"}),s.jsx(E,{children:s.jsx($,{"data-testid":"autocomplete-checkbox",checked:g.value,disabled:g.disabled,onCheckedChange:b=>{g.onChange(!!b)}})}),s.jsx(P,{}),s.jsx(R,{userConfig:e,name:"completion.activate_on_typing"})]}),s.jsx(F,{children:"When unchecked, code completion is still available through a hotkey."}),s.jsx("div",{children:s.jsx(me,{variant:"link",className:"mb-0 px-0",type:"button",onClick:b=>{b.preventDefault(),b.stopPropagation(),a("ai")},children:"Edit AI autocomplete"})})]})}})}),s.jsxs(ge,{title:"Language Servers",children:[s.jsxs(F,{children:["See the"," ",s.jsx(ce,{href:"https://docs.marimo.io/guides/editor_features/language_server/",children:"docs"})," ","for more information about language server support."]}),s.jsxs(F,{children:[s.jsx("strong",{children:"Note:"})," When using multiple language servers, different features may conflict."]}),s.jsx(D,{control:p.control,name:"language_servers.pylsp.enabled",render:j=>{const{field:g}=j;return s.jsxs("div",{className:"flex flex-col gap-1",children:[s.jsxs(T,{className:M,children:[s.jsxs(C,{children:[s.jsx(ft,{variant:"defaultOutline",className:"mr-2",children:"Beta"}),"Python Language Server (",s.jsx(ce,{href:"https://github.com/python-lsp/python-lsp-server",children:"docs"}),")"]}),s.jsx(E,{children:s.jsx($,{"data-testid":"pylsp-checkbox",checked:g.value,disabled:g.disabled,onCheckedChange:b=>{g.onChange(!!b)}})}),s.jsx(P,{}),s.jsx(R,{userConfig:e,name:"language_servers.pylsp.enabled"})]}),g.value&&!c.pylsp&&s.jsxs(Rt,{kind:"danger",children:["The Python Language Server is not available in your current environment. Please install"," ",s.jsx(Y,{className:"inline",children:"python-lsp-server"})," in your environment."]})]})}}),s.jsx(D,{control:p.control,name:"language_servers.basedpyright.enabled",render:j=>{const{field:g}=j;return s.jsxs("div",{className:"flex flex-col gap-1",children:[s.jsxs(T,{className:M,children:[s.jsxs(C,{children:[s.jsx(ft,{variant:"defaultOutline",className:"mr-2",children:"Beta"}),"basedpyright (",s.jsx(ce,{href:"https://github.com/DetachHead/basedpyright",children:"docs"}),")"]}),s.jsx(E,{children:s.jsx($,{"data-testid":"basedpyright-checkbox",checked:g.value,disabled:g.disabled,onCheckedChange:b=>{g.onChange(!!b)}})}),s.jsx(P,{}),s.jsx(R,{userConfig:e,name:"language_servers.basedpyright.enabled"})]}),g.value&&!c.basedpyright&&s.jsxs(Rt,{kind:"danger",children:["basedpyright is not available in your current environment. Please install"," ",s.jsx(Y,{className:"inline",children:"basedpyright"})," in your environment."]})]})}}),s.jsx(D,{control:p.control,name:"language_servers.ty.enabled",render:j=>{const{field:g}=j;return s.jsxs("div",{className:"flex flex-col gap-1",children:[s.jsxs(T,{className:M,children:[s.jsxs(C,{children:[s.jsx(ft,{variant:"defaultOutline",className:"mr-2",children:"Beta"}),"ty (",s.jsx(ce,{href:"https://github.com/astral-sh/ty",children:"docs"}),")"]}),s.jsx(E,{children:s.jsx($,{"data-testid":"ty-checkbox",checked:g.value,disabled:g.disabled,onCheckedChange:b=>{g.onChange(!!b)}})}),s.jsx(P,{}),s.jsx(R,{userConfig:e,name:"language_servers.ty.enabled"})]}),g.value&&!c.ty&&s.jsxs(Rt,{kind:"danger",children:["ty is not available in your current environment. Please install ",s.jsx(Y,{className:"inline",children:"ty"})," in your environment."]})]})}}),s.jsx(D,{control:p.control,name:"diagnostics.enabled",render:j=>{const{field:g}=j;return s.jsxs(T,{className:M,children:[s.jsxs(C,{children:[s.jsx(ft,{variant:"defaultOutline",className:"mr-2",children:"Beta"}),"Diagnostics"]}),s.jsx(E,{children:s.jsx($,{"data-testid":"diagnostics-checkbox",checked:g.value,disabled:g.disabled,onCheckedChange:b=>{g.onChange(!!b)}})}),s.jsx(P,{}),s.jsx(R,{userConfig:e,name:"diagnostics.enabled"})]})}})]}),s.jsxs(ge,{title:"Keymap",children:[s.jsx(D,{control:p.control,name:"keymap.preset",render:j=>{const{field:g}=j;return s.jsx("div",{className:"flex flex-col space-y-1",children:s.jsxs(T,{className:M,children:[s.jsx(C,{children:"Keymap"}),s.jsx(E,{children:s.jsx(fe,{"data-testid":"keymap-select",onChange:b=>g.onChange(b.target.value),value:g.value,disabled:g.disabled,className:"inline-flex mr-2",children:cc.map(Ic)})}),s.jsx(P,{}),s.jsx(R,{userConfig:e,name:"keymap.preset"})]})})}}),s.jsx(D,{control:p.control,name:"keymap.destructive_delete",render:j=>{const{field:g}=j;return s.jsxs("div",{className:"flex flex-col space-y-1",children:[s.jsxs(T,{className:M,children:[s.jsx(C,{className:"font-normal",children:"Destructive delete"}),s.jsx(E,{children:s.jsx($,{"data-testid":"destructive-delete-checkbox",checked:g.value,disabled:g.disabled,onCheckedChange:b=>{g.onChange(!!b)}})}),s.jsx(P,{}),s.jsx(R,{userConfig:e,name:"keymap.destructive_delete"})]}),s.jsxs(F,{className:"flex items-center gap-1",children:["Allow deleting non-empty cells",s.jsx(Ke,{content:s.jsxs("div",{className:"max-w-xs",children:[s.jsx("strong",{children:"Use with caution:"})," Deleting cells with code can lose work and computed results since variables are removed from memory."]}),children:s.jsx(oo,{className:"w-3 h-3 text-[var(--amber-11)]"})})]}),s.jsx("div",{children:s.jsx(me,{variant:"link",className:"mb-0 px-0",type:"button",onClick:b=>{b.preventDefault(),b.stopPropagation(),i(!0)},children:"Edit Keyboard Shortcuts"})})]})}})]})]});case"display":return s.jsxs(s.Fragment,{children:[s.jsxs(ge,{title:"Display",children:[s.jsx(D,{control:p.control,name:"display.default_width",render:j=>{const{field:g}=j;return s.jsxs("div",{className:"flex flex-col space-y-1",children:[s.jsxs(T,{className:M,children:[s.jsx(C,{children:"Default width"}),s.jsx(E,{children:s.jsx(fe,{"data-testid":"user-config-width-select",onChange:b=>g.onChange(b.target.value),value:g.value,disabled:g.disabled,className:"inline-flex mr-2",children:["compact","medium","full","columns"].map(Sc)})}),s.jsx(P,{}),s.jsx(R,{userConfig:e,name:"display.default_width"})]}),s.jsx(F,{children:'The default app width for new notebooks; overridden by "width" in the application config.'})]})}}),s.jsx(D,{control:p.control,name:"display.theme",render:j=>{const{field:g}=j;return s.jsxs("div",{className:"flex flex-col space-y-1",children:[s.jsxs(T,{className:M,children:[s.jsx(C,{children:"Theme"}),s.jsx(E,{children:s.jsx(fe,{"data-testid":"theme-select",onChange:b=>g.onChange(b.target.value),value:g.value,disabled:g.disabled,className:"inline-flex mr-2",children:so.map(Oc)})}),s.jsx(P,{}),s.jsx(R,{userConfig:e,name:"display.theme"})]}),s.jsx(F,{children:"This theme will be applied to the user's configuration; it does not affect theme when sharing the notebook."})]})}}),s.jsx(D,{control:p.control,name:"display.code_editor_font_size",render:j=>{const{field:g}=j;return s.jsxs(T,{className:M,children:[s.jsx(C,{children:"Code editor font size (px)"}),s.jsx(E,{children:s.jsx("span",{className:"inline-flex mr-2",children:s.jsx(Ye,{"data-testid":"code-editor-font-size-input",className:"m-0 w-24",...g,value:g.value,minValue:8,maxValue:32,onChange:b=>{g.onChange(b),h(p.getValues())}})})}),s.jsx(P,{}),s.jsx(R,{userConfig:e,name:"display.code_editor_font_size"})]})}}),s.jsx(D,{control:p.control,name:"display.reference_highlighting",render:j=>{const{field:g}=j;return s.jsxs("div",{className:"flex flex-col space-y-1",children:[s.jsxs(T,{className:M,children:[s.jsx(C,{children:"Reference highlighting"}),s.jsx(E,{children:s.jsx($,{"data-testid":"reference-highlighting-checkbox",checked:g.value,onCheckedChange:g.onChange})}),s.jsx(P,{}),s.jsx(R,{userConfig:e,name:"display.reference_highlighting"})]}),s.jsx(F,{children:"Visually emphasizes variables in a cell that are defined elsewhere in the notebook."})]})}})]}),s.jsxs(ge,{title:"Outputs",children:[s.jsx(D,{control:p.control,name:"display.cell_output",render:j=>{const{field:g}=j;return s.jsxs("div",{className:"flex flex-col space-y-1",children:[s.jsxs(T,{className:M,children:[s.jsx(C,{children:"Cell output area"}),s.jsx(E,{children:s.jsx(fe,{"data-testid":"cell-output-select",onChange:b=>g.onChange(b.target.value),value:g.value,disabled:g.disabled,className:"inline-flex mr-2",children:["above","below"].map(kc)})}),s.jsx(P,{}),s.jsx(R,{userConfig:e,name:"display.cell_output"})]}),s.jsx(F,{children:"Where to display cell's output."})]})}}),s.jsx(D,{control:p.control,name:"display.dataframes",render:j=>{const{field:g}=j;return s.jsxs("div",{className:"flex flex-col space-y-1",children:[s.jsxs(T,{className:M,children:[s.jsx(C,{children:"Dataframe viewer"}),s.jsx(E,{children:s.jsx(fe,{"data-testid":"display-dataframes-select",onChange:b=>g.onChange(b.target.value),value:g.value,disabled:g.disabled,className:"inline-flex mr-2",children:["rich","plain"].map(Cc)})}),s.jsx(P,{}),s.jsx(R,{userConfig:e,name:"display.dataframes"})]}),s.jsx(F,{children:"Whether to use marimo's rich dataframe viewer or a plain HTML table. This requires restarting your notebook to take effect."})]})}}),s.jsx(D,{control:p.control,name:"display.default_table_page_size",render:j=>{const{field:g}=j;return s.jsxs("div",{className:"flex flex-col space-y-1",children:[s.jsxs(T,{className:M,children:[s.jsx(C,{children:"Default table page size"}),s.jsx(E,{children:s.jsx(Ye,{"data-testid":"default-table-page-size-input",className:"m-0 w-24",...g,value:g.value,minValue:1,step:1,onChange:b=>{g.onChange(b),Number.isNaN(b)||h(p.getValues())}})}),s.jsx(P,{}),s.jsx(R,{userConfig:e,name:"display.default_table_page_size"})]}),s.jsx(F,{children:"The default number of rows displayed in dataframes and SQL results."})]})}}),s.jsx(D,{control:p.control,name:"display.default_table_max_columns",render:j=>{const{field:g}=j;return s.jsxs("div",{className:"flex flex-col space-y-1",children:[s.jsxs(T,{className:M,children:[s.jsx(C,{children:"Default table max columns"}),s.jsx(E,{children:s.jsx(Ye,{"data-testid":"default-table-max-columns-input",className:"m-0 w-24",...g,value:g.value,minValue:1,step:1,onChange:b=>{g.onChange(b),Number.isNaN(b)||h(p.getValues())}})}),s.jsx(P,{}),s.jsx(R,{userConfig:e,name:"display.default_table_max_columns"})]}),s.jsx(F,{children:"The default maximum number of columns displayed in dataframes and SQL results."})]})}})]})]});case"packageManagement":return s.jsx(ge,{title:"Package Management",children:s.jsx(D,{control:p.control,disabled:y,name:"package_management.manager",render:j=>{const{field:g}=j;return s.jsxs("div",{className:"flex flex-col space-y-1",children:[s.jsxs(T,{className:M,children:[s.jsx(C,{children:"Manager"}),s.jsx(E,{children:s.jsx(fe,{"data-testid":"package-manager-select",onChange:b=>g.onChange(b.target.value),value:g.value,disabled:g.disabled,className:"inline-flex mr-2",children:io.map(Nc)})}),s.jsx(P,{}),s.jsx(R,{userConfig:e,name:"package_management.manager"})]}),s.jsxs(F,{children:["When marimo comes across a module that is not installed, you will be prompted to install it using your preferred package manager. Learn more in the"," ",s.jsx(ce,{href:"https://docs.marimo.io/guides/editor_features/package_management.html",children:"docs"}),".",s.jsx("br",{}),s.jsx("br",{}),"Running marimo in a"," ",s.jsx(ce,{href:"https://docs.marimo.io/guides/editor_features/package_management.html#running-marimo-in-a-sandbox-environment-uv-only",children:"sandboxed environment"})," ","is only supported by ",s.jsx(Y,{className:"inline",children:"uv"})]})]})}})});case"runtime":return s.jsxs(ge,{title:"Runtime configuration",children:[s.jsx(D,{control:p.control,name:"runtime.auto_instantiate",render:j=>{const{field:g}=j;return s.jsxs("div",{className:"flex flex-col gap-y-1",children:[s.jsxs(T,{className:M,children:[s.jsx(C,{className:"font-normal",children:"Autorun on startup"}),s.jsx(E,{children:s.jsx($,{"data-testid":"auto-instantiate-checkbox",disabled:g.disabled,checked:g.value,onCheckedChange:g.onChange})}),s.jsx(P,{}),s.jsx(R,{userConfig:e,name:"runtime.auto_instantiate"})]}),s.jsx(F,{children:"Whether to automatically run all cells on startup."})]})}}),s.jsx(D,{control:p.control,name:"runtime.on_cell_change",render:j=>{const{field:g}=j;return s.jsxs("div",{className:"flex flex-col gap-y-1",children:[s.jsxs(T,{className:M,children:[s.jsx(C,{className:"font-normal",children:"On cell change"}),s.jsx(E,{children:s.jsx(fe,{"data-testid":"on-cell-change-select",onChange:b=>g.onChange(b.target.value),value:g.value,className:"inline-flex mr-2",children:["lazy","autorun"].map(Dc)})}),s.jsx(P,{}),s.jsx(R,{userConfig:e,name:"runtime.on_cell_change"})]}),s.jsx(F,{children:`Whether marimo should automatically run cells or just mark them as stale. If "autorun", marimo will automatically run affected cells when a cell is run or a UI element is interacted with; if "lazy", marimo will mark affected cells as stale but won't re-run them.`})]})}}),s.jsx(D,{control:p.control,name:"runtime.auto_reload",render:j=>{const{field:g}=j;return s.jsxs("div",{className:"flex flex-col gap-y-1",children:[s.jsxs(T,{className:M,children:[s.jsx(C,{className:"font-normal",children:"On module change"}),s.jsx(E,{children:s.jsx(fe,{"data-testid":"auto-reload-select",onChange:b=>g.onChange(b.target.value),value:g.value,disabled:y,className:"inline-flex mr-2",children:["off","lazy","autorun"].map(Tc)})}),s.jsx(P,{}),s.jsx(R,{userConfig:e,name:"runtime.auto_reload"})]}),s.jsx(F,{children:'Whether marimo should automatically reload modules before executing cells. If "lazy", marimo will mark cells affected by module modifications as stale; if "autorun", affected cells will be automatically re-run.'})]})}}),s.jsx(D,{control:p.control,name:"runtime.default_sql_output",render:j=>{const{field:g}=j;return s.jsxs("div",{className:"flex flex-col space-y-1",children:[s.jsxs(T,{className:M,children:[s.jsx(C,{children:"Default SQL output"}),s.jsx(E,{children:s.jsx(fe,{"data-testid":"user-config-sql-output-select",onChange:b=>g.onChange(b.target.value),value:g.value,disabled:g.disabled,className:"inline-flex mr-2",children:Ui.map(Ec)})}),s.jsx(P,{}),s.jsx(R,{userConfig:e,name:"runtime.default_sql_output"})]}),s.jsx(F,{children:'The default SQL output type for new notebooks; overridden by "sql_output" in the application config.'})]})}}),s.jsx(D,{control:p.control,name:"runtime.reactive_tests",render:j=>{const{field:g}=j;return s.jsxs("div",{className:"flex flex-col gap-y-1",children:[s.jsxs(T,{className:M,children:[s.jsx(C,{className:"font-normal",children:"Autorun Unit Tests"}),s.jsx(E,{children:s.jsx($,{"data-testid":"reactive-test-checkbox",checked:g.value,onCheckedChange:g.onChange})})]}),s.jsx(R,{userConfig:e,name:"runtime.reactive_tests"}),s.jsx(P,{}),s.jsx(F,{children:"Enable reactive pytest tests in notebook. When a cell contains only test functions (test_*) and classes (Test_*), marimo will automatically run them with pytest (requires notebook restart)."})," "]})}}),s.jsxs(F,{children:["Learn more in the"," ",s.jsx(ce,{href:"https://docs.marimo.io/guides/reactivity/#configuring-how-marimo-runs-cells",children:"docs"}),"."]})]});case"ai":return s.jsxs(s.Fragment,{children:[s.jsxs(ge,{title:"AI Code Completion",children:[s.jsx("p",{className:"text-sm text-muted-secondary",children:"You may use GitHub Copilot, Codeium, or a custom provider (e.g. Ollama) for AI code completion."}),s.jsx(D,{control:p.control,name:"completion.copilot",render:j=>{const{field:g}=j;return s.jsx("div",{className:"flex flex-col space-y-1",children:s.jsxs(T,{className:M,children:[s.jsx(C,{children:"Provider"}),s.jsx(E,{children:s.jsx(fe,{"data-testid":"copilot-select",onChange:b=>{b.target.value==="none"?g.onChange(!1):g.onChange(b.target.value)},value:g.value===!0?"github":g.value===!1?"none":g.value,disabled:g.disabled,className:"inline-flex mr-2",children:["none","github","codeium","custom"].map(_c)})}),s.jsx(P,{}),s.jsx(R,{userConfig:e,name:"completion.copilot"})]})})}}),w()]}),s.jsxs(ge,{title:"AI Keys",children:[s.jsx(D,{control:p.control,name:"ai.open_ai.api_key",render:j=>{const{field:g}=j;return s.jsxs("div",{className:"flex flex-col space-y-1",children:[s.jsxs(T,{className:M,children:[s.jsx(C,{children:"OpenAI API Key"}),s.jsx(E,{children:s.jsx(ue,{"data-testid":"ai-openai-api-key-input",className:"m-0 inline-flex",placeholder:"sk-proj...",...g,onChange:b=>{const W=b.target.value;W.includes("*")||g.onChange(W)}})}),s.jsx(P,{}),s.jsx(R,{userConfig:e,name:"ai.open_ai.api_key"})]}),s.jsxs(F,{children:["Your OpenAI API key from"," ",s.jsx(ce,{href:"https://platform.openai.com/account/api-keys",children:"platform.openai.com"}),"."]})]})}}),s.jsx(D,{control:p.control,name:"ai.anthropic.api_key",render:j=>{const{field:g}=j;return s.jsxs("div",{className:"flex flex-col space-y-1",children:[s.jsxs(T,{className:M,children:[s.jsx(C,{children:"Anthropic API Key"}),s.jsx(E,{children:s.jsx(ue,{"data-testid":"ai-anthropic-api-key-input",className:"m-0 inline-flex",placeholder:"sk-ant...",...g,onChange:b=>{const W=b.target.value;W.includes("*")||g.onChange(W)}})}),s.jsx(P,{}),s.jsx(R,{userConfig:e,name:"ai.anthropic.api_key"})]}),s.jsxs(F,{children:["Your Anthropic API key from"," ",s.jsx(ce,{href:"https://console.anthropic.com/settings/keys",children:"console.anthropic.com"}),"."]})]})}}),s.jsx(D,{control:p.control,name:"ai.google.api_key",render:j=>{const{field:g}=j;return s.jsxs("div",{className:"flex flex-col space-y-1",children:[s.jsxs(T,{className:M,children:[s.jsx(C,{children:"Google AI API Key"}),s.jsx(E,{children:s.jsx(ue,{"data-testid":"ai-google-api-key-input",className:"m-0 inline-flex",placeholder:"AI...",...g,onChange:b=>{const W=b.target.value;W.includes("*")||g.onChange(W)}})}),s.jsx(P,{}),s.jsx(R,{userConfig:e,name:"ai.google.api_key"})]}),s.jsxs(F,{children:["Your Google AI API key from"," ",s.jsx(ce,{href:"https://aistudio.google.com/app/apikey",children:"aistudio.google.com"}),"."]})]})}}),s.jsx("p",{className:"text-sm font-semibold mt-3",children:"AWS Bedrock Configuration"}),s.jsxs("p",{className:"text-sm text-muted-secondary mb-2",children:["To use AWS Bedrock, you need to configure AWS credentials and region. See the"," ",s.jsx(ce,{href:"https://docs.marimo.io/guides/editor_features/ai_completion.html#aws-bedrock",children:"documentation"})," ","for more details."]}),s.jsx(D,{control:p.control,disabled:y,name:"ai.bedrock.region_name",render:j=>{const{field:g}=j;return s.jsxs("div",{className:"flex flex-col space-y-1",children:[s.jsxs(T,{className:M,children:[s.jsx(C,{children:"AWS Region"}),s.jsx(E,{children:s.jsx(fe,{"data-testid":"bedrock-region-select",onChange:b=>g.onChange(b.target.value),value:typeof g.value=="string"?g.value:"us-east-1",disabled:g.disabled,className:"inline-flex mr-2",children:mc.map(Pc)})}),s.jsx(P,{}),s.jsx(R,{userConfig:e,name:"ai.bedrock.region_name"})]}),s.jsx(F,{children:"The AWS region where Bedrock service is available."})]})}}),s.jsx(D,{control:p.control,disabled:y,name:"ai.bedrock.profile_name",render:j=>{const{field:g}=j;return s.jsxs("div",{className:"flex flex-col space-y-1",children:[s.jsxs(T,{className:M,children:[s.jsx(C,{children:"AWS Profile Name (Optional)"}),s.jsx(E,{children:s.jsx(ue,{"data-testid":"bedrock-profile-input",className:"m-0 inline-flex",placeholder:"default",...g,value:g.value||""})}),s.jsx(P,{}),s.jsx(R,{userConfig:e,name:"ai.bedrock.profile_name"})]}),s.jsx(F,{children:"The AWS profile name from your ~/.aws/credentials file. Leave blank to use your default AWS credentials."})]})}})]}),s.jsxs(ge,{title:"AI Assist",children:[s.jsxs("p",{className:"text-sm text-muted-secondary",children:["Add an API key to ",s.jsx(Y,{className:"inline",children:"marimo.toml"})," to activate marimo's AI assistant; see"," ",s.jsx(ce,{href:"https://docs.marimo.io/guides/editor_features/ai_completion.html",children:"docs"})," ","for more info."]}),s.jsx(D,{control:p.control,disabled:y,name:"ai.open_ai.base_url",render:j=>{const{field:g}=j;return s.jsxs("div",{className:"flex flex-col space-y-1",children:[s.jsxs(T,{className:M,children:[s.jsx(C,{children:"Base URL"}),s.jsx(E,{children:s.jsx(ue,{"data-testid":"ai-base-url-input",className:"m-0 inline-flex",placeholder:"https://api.openai.com/v1",...g})}),s.jsx(P,{}),s.jsx(R,{userConfig:e,name:"ai.open_ai.base_url"})]}),s.jsx(F,{children:"This URL can be any OpenAI-compatible API endpoint."})]})}}),s.jsx(D,{control:p.control,disabled:y,name:"ai.open_ai.model",render:j=>{const{field:g}=j;return s.jsxs("div",{className:"flex flex-col space-y-1",children:[s.jsxs(T,{className:M,children:[s.jsx(C,{children:"Model"}),s.jsx(E,{children:s.jsx(ue,{list:"ai-model-datalist","data-testid":"ai-model-input",className:"m-0 inline-flex",placeholder:"gpt-4-turbo",...g})}),s.jsx(P,{}),s.jsx(R,{userConfig:e,name:"ai.open_ai.model"})]}),s.jsx("datalist",{id:"ai-model-datalist",children:rs.map(Ac)}),s.jsx(F,{children:'If the model starts with "claude-", we will use your Anthropic API key. If the model starts with "gemini-", we will use your Google AI API key. If the model starts with a "bedrock/" prefix followed by a model id (e.g., "bedrock/anthropic.claude-3-sonnet-20240229"), we will use your AWS Bedrock configuration. Otherwise, we will use your OpenAI API key.'})]})}}),s.jsx(D,{control:p.control,name:"ai.rules",render:j=>{const{field:g}=j;return s.jsxs("div",{className:"flex flex-col",children:[s.jsxs(T,{children:[s.jsx(C,{children:"Custom Rules"}),s.jsx(E,{children:s.jsx(ro,{"data-testid":"ai-rules-input",className:"m-0 inline-flex w-full h-32 p-2 text-sm",placeholder:"e.g. Always use type hints; prefer polars over pandas",...g,value:g.value})}),s.jsx(P,{}),s.jsx(R,{userConfig:e,name:"ai.rules"})]}),s.jsx(F,{children:"Custom rules to include in all AI completion prompts."})]})}})]})]});case"optionalDeps":return s.jsx(yc,{});case"labs":return s.jsxs(ge,{title:"Experimental Features",children:[s.jsx("p",{className:"text-sm text-muted-secondary mb-4",children:"\u26A0\uFE0F These features are experimental and may require restarting your notebook to take effect."}),s.jsx(D,{control:p.control,name:"experimental.inline_ai_tooltip",render:Mc}),s.jsx(D,{control:p.control,name:"experimental.rtc_v2",render:Rc}),s.jsx(D,{control:p.control,name:"experimental.performant_table_charts",render:j=>{const{field:g}=j;return s.jsxs("div",{className:"flex flex-col gap-y-1",children:[s.jsxs(T,{className:M,children:[s.jsx(C,{className:"font-normal",children:"Performant Table Charts"}),s.jsx(E,{children:s.jsx($,{"data-testid":"performant-table-charts-checkbox",checked:g.value===!0,onCheckedChange:g.onChange})})]}),s.jsx(R,{userConfig:e,name:"experimental.performant_table_charts"}),s.jsx(F,{children:"Enable experimental table charts which are computed on the backend."})]})}})]})}},t[10]=o,t[11]=c,t[12]=e,t[13]=p,t[14]=h,t[15]=w,t[16]=a,t[17]=i,t[18]=I):I=t[18];const k=I;let O,N,_;t[19]===Symbol.for("react.memo_cache_sentinel")?(O=s.jsx(Y,{className:"inline",children:"marimo.toml"}),N=s.jsx("br",{}),t[19]=O,t[20]=N):(O=t[19],N=t[20]),t[21]===Symbol.for("react.memo_cache_sentinel")?(_=s.jsxs("p",{className:"text-muted-secondary",children:["User configuration is stored in ",O,N,"Run ",s.jsx(Y,{className:"inline",children:"marimo config show"})," in your terminal to show your current configuration and file location."]}),t[21]=_):_=t[21];const z=_;let H,U,B,se,de,oe,ae,V,Q,J,ee,he;return t[22]!==p||t[23]!==h?(H=p.handleSubmit(h),t[22]=p,t[23]=h,t[24]=H):H=t[24],t[25]!==a?(U=j=>a(j),t[25]=a,t[26]=U):U=t[26],t[27]===Symbol.for("react.memo_cache_sentinel")?(B=os.map(Lc),t[27]=B):B=t[27],t[28]!==l?(se=s.jsx("div",{className:"p-2 text-xs text-muted-foreground self-start",children:s.jsxs("span",{children:["Version: ",l]})}),t[28]=l,t[29]=se):se=t[29],t[30]===Symbol.for("react.memo_cache_sentinel")?(de=s.jsx("div",{className:"flex-1"}),oe=!Ge()&&z,t[30]=de,t[31]=oe):(de=t[30],oe=t[31]),t[32]!==se?(ae=s.jsxs(ao,{className:"self-start max-h-none flex flex-col gap-2 shrink-0 bg-background flex-1 min-h-full",children:[B,se,de,oe]}),t[32]=se,t[33]=ae):ae=t[33],t[34]!==o||t[35]!==U||t[36]!==ae?(V=s.jsx(lo,{value:o,onValueChange:U,orientation:"vertical",className:"w-1/3 border-r h-full overflow-auto p-3",children:ae}),t[34]=o,t[35]=U,t[36]=ae,t[37]=V):V=t[37],t[38]!==k?(Q=k(),t[38]=k,t[39]=Q):Q=t[39],t[40]!==Q?(J=s.jsx("div",{className:"w-2/3 pl-6 gap-2 flex flex-col overflow-auto p-6",children:Q}),t[40]=Q,t[41]=J):J=t[41],t[42]!==V||t[43]!==J||t[44]!==H?(ee=s.jsxs("form",{ref:r,onChange:H,className:"flex text-pretty overflow-hidden",children:[V,J]}),t[42]=V,t[43]=J,t[44]=H,t[45]=ee):ee=t[45],t[46]!==p||t[47]!==ee?(he=s.jsx(Cn,{...p,children:ee}),t[46]=p,t[47]=ee,t[48]=he):he=t[48],he},ge=t=>{const e=G.c(5),{title:n,children:r}=t;let i,o;return e[0]!==n?(i=s.jsx(zi,{children:n}),e[0]=n,e[1]=i):i=e[1],e[2]!==r||e[3]!==i?(o=s.jsxs("div",{className:"flex flex-col gap-4 pb-4",children:[i,r]}),e[2]=r,e[3]=i,e[4]=o):o=e[4],o},R=t=>{const e=G.c(18),{userConfig:n,name:r}=t,{isOverridden:i,currentValue:o,overriddenValue:a}=is(n,r);if(!i)return null;let c,l,u,d;e[0]===Symbol.for("react.memo_cache_sentinel")?(c=s.jsxs("span",{children:["This setting is overridden by"," ",s.jsx(Y,{className:"inline",children:"pyproject.toml"}),"."]}),l=s.jsx("br",{}),e[0]=c,e[1]=l):(c=e[0],l=e[1]),e[2]===Symbol.for("react.memo_cache_sentinel")?(u=s.jsxs("span",{children:["Edit the ",s.jsx(Y,{className:"inline",children:"pyproject.toml"})," file directly to change this setting."]}),d=s.jsx("br",{}),e[2]=u,e[3]=d):(u=e[2],d=e[3]);const v=String(o);let p,m;e[4]!==v?(p=s.jsxs("span",{children:["User value: ",s.jsx("strong",{children:v})]}),e[4]=v,e[5]=p):p=e[5],e[6]===Symbol.for("react.memo_cache_sentinel")?(m=s.jsx("br",{}),e[6]=m):m=e[6];const h=String(a);let f,y,x;e[7]!==h?(f=s.jsxs("span",{children:["Project value: ",s.jsx("strong",{children:h})]}),e[7]=h,e[8]=f):f=e[8],e[9]!==p||e[10]!==f?(y=s.jsxs(s.Fragment,{children:[c,l,u,d,p,m,f]}),e[9]=p,e[10]=f,e[11]=y):y=e[11],e[12]===Symbol.for("react.memo_cache_sentinel")?(x=s.jsx(Qn,{className:"w-3 h-3"}),e[12]=x):x=e[12];const w=String(a);let I,k;return e[13]!==w?(I=s.jsxs("span",{className:"text-[var(--amber-12)] text-xs flex items-center gap-1 border rounded px-2 py-1 bg-[var(--amber-2)] border-[var(--amber-6)] ml-1",children:[x,"Overridden by pyproject.toml [",w,"]"]}),e[13]=w,e[14]=I):I=e[14],e[15]!==y||e[16]!==I?(k=s.jsx(Ke,{content:y,children:I}),e[15]=y,e[16]=I,e[17]=k):k=e[17],k};function Ic(t){return s.jsx("option",{value:t,children:t},t)}function Sc(t){return s.jsx("option",{value:t,children:t},t)}function Oc(t){return s.jsx("option",{value:t,children:t},t)}function kc(t){return s.jsx("option",{value:t,children:t},t)}function Cc(t){return s.jsx("option",{value:t,children:t},t)}function Nc(t){return s.jsx("option",{value:t,children:t},t)}function Dc(t){return s.jsx("option",{value:t,children:t},t)}function Tc(t){return s.jsx("option",{value:t,children:t},t)}function Ec(t){return s.jsx("option",{value:t.value,children:t.label},t.value)}function _c(t){return s.jsx("option",{value:t,children:t},t)}function Pc(t){return s.jsx("option",{value:t,children:t},t)}function Ac(t){return s.jsx("option",{value:t,children:t},t)}function Mc(t){const{field:e}=t;return s.jsxs("div",{className:"flex flex-col gap-y-1",children:[s.jsxs(T,{className:M,children:[s.jsx(C,{className:"font-normal",children:"AI Edit Tooltip"}),s.jsx(E,{children:s.jsx($,{"data-testid":"inline-ai-checkbox",checked:e.value===!0,onCheckedChange:e.onChange})})]}),s.jsx(F,{children:'Enable experimental "Edit with AI" tooltip when selecting code.'})]})}function Rc(t){const{field:e}=t;return s.jsxs("div",{className:"flex flex-col gap-y-1",children:[s.jsxs(T,{className:M,children:[s.jsx(C,{className:"font-normal",children:"Real-Time Collaboration"}),s.jsx(E,{children:s.jsx($,{"data-testid":"rtc-checkbox",checked:e.value===!0,onCheckedChange:e.onChange})})]}),s.jsx(F,{children:"Enable experimental real-time collaboration. This change requires a page refresh to take effect."})]})}function Lc(t){return s.jsx(no,{value:t.id,className:"w-full text-left p-2 data-[state=active]:bg-primary data-[state=active]:text-primary-foreground justify-start",children:s.jsxs("div",{className:"flex gap-4 items-center text-lg overflow-hidden",children:[s.jsx("span",{className:Tt(t.className,"w-8 h-8 rounded flex items-center justify-center text-muted-foreground flex-shrink-0"),children:s.jsx(t.Icon,{className:"w-4 h-4"})}),s.jsx("span",{className:"truncate",children:t.label})]})},t.id)}const In=Ve(!1);function Fc(){const t=G.c(5),e=Mt(as),n=Mt(In);let r;t[0]!==e||t[1]!==n?(r=a=>{e(a),n(!0)},t[0]=e,t[1]=n,t[2]=r):r=t[2];const i=r;let o;return t[3]!==i?(o={handleClick:i},t[3]=i,t[4]=o):o=t[4],o}const Hc=t=>{const e=G.c(32),{showAppConfig:n,disabled:r,tooltip:i}=t,o=n===void 0||n,a=r!==void 0&&r,c=i===void 0?"Settings":i,[l,u]=We(In),d=a?"disabled":"hint-green";let v,p,m;e[0]===Symbol.for("react.memo_cache_sentinel")?(v=s.jsx(Gn,{strokeWidth:1.8}),e[0]=v):v=e[0],e[1]!==c?(p=s.jsx(Ke,{content:c,children:v}),e[1]=c,e[2]=p):p=e[2],e[3]!==a||e[4]!==d||e[5]!==p?(m=s.jsx(Ot,{"aria-label":"Config","data-testid":"app-config-button",shape:"circle",size:"small",className:"h-[27px] w-[27px]",disabled:a,color:d,children:p}),e[3]=a,e[4]=d,e[5]=p,e[6]=m):m=e[6];const h=m;let f;e[7]===Symbol.for("react.memo_cache_sentinel")?(f=s.jsx(qn,{className:"w-[80vw] h-[70vh] overflow-hidden sm:max-w-5xl top-[15vh] p-0",children:s.jsx(wc,{})}),e[7]=f):f=e[7];const y=f;if(!o){let U,B;return e[8]!==h?(U=s.jsx(co,{children:h}),e[8]=h,e[9]=U):U=e[9],e[10]!==u||e[11]!==l||e[12]!==U?(B=s.jsxs(Pt,{open:l,onOpenChange:u,children:[U,y]}),e[10]=u,e[11]=l,e[12]=U,e[13]=B):B=e[13],B}let x,w,I,k,O,N,_,z,H;return e[14]!==h?(x=s.jsx(uo,{asChild:!0,children:h}),e[14]=h,e[15]=x):x=e[15],e[16]===Symbol.for("react.memo_cache_sentinel")?(w=s.jsx(Ul,{}),I=s.jsx("div",{className:"h-px bg-border my-2"}),e[16]=w,e[17]=I):(w=e[16],I=e[17]),e[18]!==u?(k=()=>u(!0),e[18]=u,e[19]=k):k=e[19],e[20]===Symbol.for("react.memo_cache_sentinel")?(O=s.jsx(Gn,{strokeWidth:1.8,className:"w-4 h-4 mr-2"}),e[20]=O):O=e[20],e[21]!==k?(N=s.jsxs(ho,{className:"w-[650px] overflow-auto max-h-[80vh] max-w-[80vw]",align:"end",side:"bottom",onFocusOutside:zc,children:[w,I,s.jsxs(me,{onClick:k,variant:"link",className:"px-0",children:[O,"User settings"]})]}),e[21]=k,e[22]=N):N=e[22],e[23]!==N||e[24]!==x?(_=s.jsxs(fo,{children:[x,N]}),e[23]=N,e[24]=x,e[25]=_):_=e[25],e[26]!==u||e[27]!==l?(z=s.jsx(Pt,{open:l,onOpenChange:u,children:y}),e[26]=u,e[27]=l,e[28]=z):z=e[28],e[29]!==_||e[30]!==z?(H=s.jsxs(s.Fragment,{children:[_,z]}),e[29]=_,e[30]=z,e[31]=H):H=e[31],H};function zc(t){return t.preventDefault()}const Uc=t=>{const e=G.c(15),{description:n,disabled:r,tooltip:i}=t,o=r!==void 0&&r,a=i===void 0?"Shutdown":i,{openConfirm:c,closeModal:l}=po(),{sendShutdown:u}=Me();let d;e[0]!==u?(d=()=>{u(),setTimeout(qc,200)},e[0]=u,e[1]=d):d=e[1];const v=d;if(Ge())return null;const p=o?"disabled":"red";let m,h,f,y;return e[2]!==l||e[3]!==n||e[4]!==v||e[5]!==c?(m=x=>{x.stopPropagation(),c({title:"Shutdown",description:n,variant:"destructive",confirmAction:s.jsx(go,{onClick:()=>{v(),l()},"aria-label":"Confirm Shutdown",children:"Shutdown"})})},e[2]=l,e[3]=n,e[4]=v,e[5]=c,e[6]=m):m=e[6],e[7]===Symbol.for("react.memo_cache_sentinel")?(h=s.jsx(lt,{strokeWidth:1}),e[7]=h):h=e[7],e[8]!==o||e[9]!==p||e[10]!==m?(f=s.jsx(Ot,{"aria-label":"Shutdown","data-testid":"shutdown-button",shape:"circle",size:"small",color:p,className:"h-[27px] w-[27px]",disabled:o,onClick:m,children:h}),e[8]=o,e[9]=p,e[10]=m,e[11]=f):f=e[11],e[12]!==f||e[13]!==a?(y=s.jsx(Ke,{content:a,children:f}),e[12]=f,e[13]=a,e[14]=y):y=e[14],y};function qc(){window.close()}function Bc(t){window.open(mo(`?file=${t}`).toString(),"_blank")}export{yo as A,xo as B,Hc as C,vc as D,Io as G,pc as K,So as L,Oo as M,No as P,Uc as S,Rl as T,Do as Y,wo as a,Yn as b,Ot as c,rc as d,tt as e,Ki as f,Fl as g,uc as h,Wi as i,Fc as j,wn as k,Bi as l,kt as m,Vi as n,Bc as o,Xn as p,$n as q,rs as r,In as s,Fi as t,Ll as u};
|
16
|
+
Use the data prop if you want to provide your own handlers.`);if(t.initialData){const[e,n]=function(r){const[i,o]=S.useState(r),a=S.useMemo(()=>new Fi(i),[i]);return[i,{onMove:l=>{for(const u of l.dragIds)a.move({id:u,parentId:l.parentId,index:l.index});o(a.data)},onRename:({name:l,id:u})=>{a.update({id:u,changes:{name:l}}),o(a.data)},onCreate:({parentId:l,index:u,type:d})=>{const v={id:"simple-tree-id-"+Al++,name:""};return d==="internal"&&(v.children=[]),a.create({parentId:l,index:u,data:v}),o(a.data),v},onDelete:l=>{l.ids.forEach(u=>a.drop({id:u})),o(a.data)}}]}(t.initialData);return Object.assign(Object.assign(Object.assign({},t),n),{data:e})}return t}const Rl=S.forwardRef(function(t,e){const n=Ml(t);return s.jsxs(Tl,{treeProps:n,imperativeHandle:e,children:[s.jsx(El,{children:s.jsx(_l,{})}),s.jsx(Pl,{})]})});function Ll(t,e){const n=G.c(11),{delayMs:r,whenVisible:i,disabled:o}=e,a=o!==void 0&&o,c=S.useRef(void 0);let l,u,d,v,p;return n[0]!==t?(l=()=>{c.current=t},u=[t],n[0]=t,n[1]=l,n[2]=u):(l=n[1],u=n[2]),S.useEffect(l,u),n[3]!==r||n[4]!==a||n[5]!==i?(d=()=>{if(r===null||a)return;const m=setInterval(()=>{var h;i&&document.visibilityState!=="visible"||((h=c.current)==null||h.call(c))},r);return()=>clearInterval(m)},v=[r,i,a],n[3]=r,n[4]=a,n[5]=i,n[6]=d,n[7]=v):(d=n[6],v=n[7]),S.useEffect(d,v),n[8]!==a||n[9]!==i?(p=()=>{var m;document.visibilityState==="visible"&&i&&!a&&((m=c.current)==null||m.call(c))},n[8]=a,n[9]=i,n[10]=p):p=n[10],hs(document,"visibilitychange",p),null}function Fl(){return["compact","medium","full","columns"]}const Hl=t=>{const e=G.c(2),{children:n}=t;let r;return e[0]!==n?(r=s.jsx("div",{className:"text-md font-semibold text-muted-foreground uppercase tracking-wide mb-1",children:n}),e[0]=n,e[1]=r):r=e[1],r},zi=t=>{const e=G.c(10);let n,r,i,o,a;return e[0]!==t?({children:n,className:r,...i}=t,e[0]=t,e[1]=n,e[2]=r,e[3]=i):(n=e[1],r=e[2],i=e[3]),e[4]!==r?(o=Tt("text-base font-semibold underline-offset-2 text-accent-foreground uppercase tracking-wide",r),e[4]=r,e[5]=o):o=e[5],e[6]!==n||e[7]!==i||e[8]!==o?(a=s.jsx("div",{...i,className:o,children:n}),e[6]=n,e[7]=i,e[8]=o,e[9]=a):a=e[9],a},zl=t=>{const e=G.c(2),{children:n}=t;let r;return e[0]!==n?(r=s.jsx("p",{className:"text-sm text-muted-foreground",children:n}),e[0]=n,e[1]=r):r=e[1],r},Ui=[{label:"Auto (Default)",value:"auto"},{label:"Native",value:"native"},{label:"Polars",value:"polars"},{label:"Lazy Polars",value:"lazy-polars"},{label:"Pandas",value:"pandas"}],Ul=()=>{const t=G.c(31),[e,n]=fs(),{saveAppConfig:r}=Me();let i,o;t[0]===Symbol.for("react.memo_cache_sentinel")?(i=On(ps),t[0]=i):i=t[0],t[1]!==e?(o={resolver:i,defaultValues:e},t[1]=e,t[2]=o):o=t[2];const a=kn(o);let c;t[3]!==r||t[4]!==n?(c=async I=>{await r({config:I}).then(()=>{n(I)}).catch(()=>{n(I)})},t[3]=r,t[4]=n,t[5]=c):c=t[5];const l=c;let u,d,v,p,m,h,f,y,x,w;return t[6]!==e.width?(u=[e.width],t[6]=e.width,t[7]=u):u=t[7],S.useEffect(ql,u),t[8]!==a||t[9]!==l?(d=a.handleSubmit(l),t[8]=a,t[9]=l,t[10]=d):d=t[10],t[11]===Symbol.for("react.memo_cache_sentinel")?(v=s.jsxs("div",{children:[s.jsx(Hl,{children:"Notebook Settings"}),s.jsx(zl,{children:"Configure how your notebook or application looks and behaves."})]}),t[11]=v):v=t[11],t[12]!==a.control?(p=s.jsxs(St,{title:"Display",children:[s.jsx(D,{control:a.control,name:"width",render:Vl}),s.jsx(D,{control:a.control,name:"app_title",render:Wl})]}),t[12]=a.control,t[13]=p):p=t[13],t[14]!==a.control?(m=s.jsxs(St,{title:"Custom Files",children:[s.jsx(D,{control:a.control,name:"css_file",render:Kl}),s.jsx(D,{control:a.control,name:"html_head_file",render:Gl})]}),t[14]=a.control,t[15]=m):m=t[15],t[16]!==a.control?(h=s.jsx(St,{title:"Data",children:s.jsx(D,{control:a.control,name:"sql_output",render:$l})}),t[16]=a.control,t[17]=h):h=t[17],t[18]!==a.control?(f=s.jsx(St,{title:"Exporting outputs",children:s.jsx(D,{control:a.control,name:"auto_download",render:Xl})}),t[18]=a.control,t[19]=f):f=t[19],t[20]!==p||t[21]!==m||t[22]!==h||t[23]!==f?(y=s.jsxs("div",{className:"grid grid-cols-2 gap-x-8 gap-y-4",children:[p,m,h,f]}),t[20]=p,t[21]=m,t[22]=h,t[23]=f,t[24]=y):y=t[24],t[25]!==y||t[26]!==d?(x=s.jsxs("form",{onChange:d,className:"flex flex-col gap-6",children:[v,y]}),t[25]=y,t[26]=d,t[27]=x):x=t[27],t[28]!==a||t[29]!==x?(w=s.jsx(Cn,{...a,children:x}),t[28]=a,t[29]=x,t[30]=w):w=t[30],w},St=t=>{const e=G.c(5),{title:n,children:r}=t;let i,o;return e[0]!==n?(i=s.jsx("h3",{className:"text-base font-semibold mb-1",children:n}),e[0]=n,e[1]=i):i=e[1],e[2]!==r||e[3]!==i?(o=s.jsxs("div",{className:"flex flex-col gap-y-2",children:[i,r]}),e[2]=r,e[3]=i,e[4]=o):o=e[4],o};function ql(){window.dispatchEvent(new Event("resize"))}function Bl(t){return s.jsx("option",{value:t,children:t},t)}function Vl(t){const{field:e}=t;return s.jsxs(T,{className:"flex flex-row items-center space-x-1 space-y-0",children:[s.jsx(C,{children:"Width"}),s.jsx(E,{children:s.jsx(fe,{"data-testid":"app-width-select",onChange:n=>e.onChange(n.target.value),value:e.value,disabled:e.disabled,className:"inline-flex mr-2",children:["compact","medium","full","columns"].map(Bl)})}),s.jsx(P,{})]})}function Wl(t){const{field:e}=t;return s.jsxs("div",{className:"flex flex-col gap-y-1",children:[s.jsxs(T,{className:"flex flex-row items-center space-x-1 space-y-0",children:[s.jsx(C,{children:"App title"}),s.jsx(E,{children:s.jsx(ue,{...e,value:e.value??"",onChange:n=>{e.onChange(n.target.value),Nn.safeParse(n.target.value).success&&(document.title=n.target.value)}})}),s.jsx(P,{})]}),s.jsx(F,{children:"The application title is put in the title tag in the HTML code and typically displayed in the title bar of the browser window."})]})}function Kl(t){const{field:e}=t;return s.jsxs("div",{className:"flex flex-col gap-y-1",children:[s.jsxs(T,{className:"flex flex-row items-center space-x-1 space-y-0",children:[s.jsx(C,{className:"shrink-0",children:"Custom CSS"}),s.jsx(E,{children:s.jsx(ue,{...e,value:e.value??"",placeholder:"custom.css",onChange:n=>{e.onChange(n.target.value),Nn.safeParse(n.target.value).success&&(document.title=n.target.value)}})}),s.jsx(P,{})]}),s.jsx(F,{children:"A filepath to a custom css file to be injected into the notebook."})]})}function Gl(t){const{field:e}=t;return s.jsxs("div",{className:"flex flex-col gap-y-1",children:[s.jsxs(T,{className:"flex flex-row items-center space-x-1 space-y-0",children:[s.jsx(C,{className:"shrink-0",children:"HTML Head"}),s.jsx(E,{children:s.jsx(ue,{...e,value:e.value??"",placeholder:"head.html",onChange:n=>{e.onChange(n.target.value)}})}),s.jsx(P,{})]}),s.jsxs(F,{children:["A filepath to an HTML file to be injected into the"," ",s.jsx(Y,{className:"inline",children:"<head/>"})," section of the notebook. Use this to add analytics, custom fonts, meta tags, or external scripts."]})]})}function Yl(t){return s.jsx("option",{value:t.value,children:t.label},t.value)}function $l(t){const{field:e}=t;return s.jsxs("div",{className:"flex flex-col gap-y-1",children:[s.jsxs(T,{className:"flex flex-row items-center space-x-1 space-y-0",children:[s.jsx(C,{children:"SQL Output Type"}),s.jsx(E,{children:s.jsx(fe,{"data-testid":"sql-output-select",onChange:n=>{e.onChange(n.target.value),Re({title:"Kernel Restart Required",description:"This change requires a kernel restart to take effect."})},value:e.value,disabled:e.disabled,className:"inline-flex mr-2",children:Ui.map(Yl)})}),s.jsx(P,{})]}),s.jsxs(F,{children:["The Python type returned by a SQL cell. For best performance with large datasets, we recommend using"," ",s.jsx(Y,{className:"inline",children:"native"}),". See the"," ",s.jsx(ce,{href:"https://docs.marimo.io/guides/working_with_data/sql",children:"SQL guide"})," ","for more information."]})]})}function Xl(t){const{field:e}=t;return s.jsxs("div",{className:"flex flex-col gap-y-1",children:[s.jsxs(T,{className:"flex flex-col gap-2",children:[s.jsx(E,{children:s.jsxs("div",{className:"flex gap-4",children:[s.jsxs("div",{className:"flex items-center space-x-2",children:[s.jsx($,{id:"html-checkbox",checked:e.value.includes("html"),onCheckedChange:()=>{e.onChange(st(e.value,"html"))}}),s.jsx(C,{htmlFor:"html-checkbox",children:"HTML"})]}),s.jsxs("div",{className:"flex items-center space-x-2",children:[s.jsx($,{id:"ipynb-checkbox",checked:e.value.includes("ipynb"),onCheckedChange:()=>{e.onChange(st(e.value,"ipynb"))}}),s.jsx(C,{htmlFor:"ipynb-checkbox",children:"IPYNB"})]})]})}),s.jsx(P,{})]}),s.jsxs(F,{children:["When enabled, marimo will periodically save this notebook in your selected formats (HTML, IPYNB) to a folder named"," ",s.jsx(Y,{className:"inline",children:"__marimo__"})," next to your notebook file."]})]})}const Ql=Dn("flex items-center justify-center m-0 leading-none font-medium border border-foreground/10 shadow-xs-solid hover:cursor-pointer active:shadow-none dark:border-border text-sm",{variants:{color:{gray:"mo-button gray",white:"mo-button white",green:"mo-button green",red:"mo-button red",yellow:"mo-button yellow","hint-green":"mo-button hint-green",disabled:"mo-button disabled active:shadow-xs-solid"},shape:{rectangle:"rounded",circle:"rounded-full"},size:{small:"",medium:""}},compoundVariants:[{size:"small",shape:"circle",class:"h-[24px] w-[24px] px-[5.5px] py-[5.5px]"},{size:"medium",shape:"circle",class:"px-2 py-2"},{size:"small",shape:"rectangle",class:"px-1 py-1 h-[24px] w-[24px]"},{size:"medium",shape:"rectangle",class:"px-3 py-2"}],defaultVariants:{color:"gray",size:"medium",shape:"rectangle"}}),Jl=Dn("font-mono w-full flex-1 inline-flex items-center justify-center rounded px-2.5 text-foreground/60 h-[36px] hover:shadow-md hover:cursor-pointer focus:shadow-md focus:outline-hidden text-[hsl(0, 0%, 43.5%)] bg-transparent hover:bg-background focus:bg-background"),Ot=Be.forwardRef((t,e)=>{const n=G.c(15);let r,i,o,a,c,l,u;return n[0]!==t?({color:i,shape:a,size:c,className:r,...o}=t,n[0]=t,n[1]=r,n[2]=i,n[3]=o,n[4]=a,n[5]=c):(r=n[1],i=n[2],o=n[3],a=n[4],c=n[5]),n[6]!==r||n[7]!==i||n[8]!==a||n[9]!==c?(l=Tn(Ql({color:i,shape:a,size:c}),r),n[6]=r,n[7]=i,n[8]=a,n[9]=c,n[10]=l):l=n[10],n[11]!==o||n[12]!==e||n[13]!==l?(u=s.jsx("button",{ref:e,className:l,...o,children:o.children}),n[11]=o,n[12]=e,n[13]=l,n[14]=u):u=n[14],u});Ot.displayName="Button",Be.forwardRef((t,e)=>{const n=G.c(9);let r,i,o,a;return n[0]!==t?({className:r,...i}=t,n[0]=t,n[1]=r,n[2]=i):(r=n[1],i=n[2]),n[3]!==r?(o=Tn(Jl(),r),n[3]=r,n[4]=o):o=n[4],n[5]!==i||n[6]!==e||n[7]!==o?(a=s.jsx("input",{ref:e,className:o,...i}),n[5]=i,n[6]=e,n[7]=o,n[8]=a):a=n[8],a}).displayName="Input";var Zl=gs();const qi="marimo:copilot:signedIn",Bi=ys(qi,null,void 0,{getOnInit:!0}),Vi=Ve(null),kt=Ve(null);function Wi(){const t=localStorage.getItem(qi)==="true",e=ms();return t&&e.completion.copilot==="github"}const be=q.get("@github/copilot-language-server");class ec extends xs{constructor(...e){super(...e),this.documentVersion=0,this.hasOpenedDocument=!1,this.getCompletionInternal=async(n,r)=>await this._request("textDocument/inlineCompletion",{...n,textDocument:{...n.textDocument,version:r}}),this.throttledGetCompletionInternal=function(n,r,i){var o=!0,a=!0;if(typeof n!="function")throw new TypeError("Expected a function");return ls(i)&&(o="leading"in i?!!i.leading:o,a="trailing"in i?!!i.trailing:a),cs(n,r,{leading:o,maxWait:r,trailing:a})}(this.getCompletionInternal,200)}async _request(e,n){try{return await this.request(e,n)}catch(r){throw be.error("#request: Error",r),r}}async notify(e,n){return be.debug("#notify",e,n),super.notify(e,n)}getInitializationOptions(){const e={name:"marimo",version:"0.1.0"};return{...super.getInitializationOptions(),workspaceFolders:[],capabilities:{workspace:{workspaceFolders:!1}},initializationOptions:{editorInfo:e,editorPluginInfo:e}}}isDisabled(){return!Wi()}async textDocumentDidOpen(e){return this.isDisabled()?e:(this.hasOpenedDocument=!0,super.textDocumentDidOpen(e))}async textDocumentCompletion(e){return[]}async textDocumentDidChange(e){if(this.isDisabled())return e;this.hasOpenedDocument||await this.textDocumentDidOpen({textDocument:{uri:e.textDocument.uri,languageId:"python",version:e.textDocument.version,text:e.contentChanges[0].text}});const n=e.contentChanges;n.length!==1&&be.warn("#textDocumentDidChange: Multiple changes detected. This is not supported.",n);const r=n[0];"range"in r&&be.warn("#textDocumentDidChange: Copilot doesn't support range changes.",r);const i=bs(r.text);return super.textDocumentDidChange({...e,contentChanges:[{text:i}],textDocument:js.VersionedTextDocumentIdentifier.create(e.textDocument.uri,++this.documentVersion)})}textDocumentHover(e){return Promise.resolve({contents:[]})}signOut(){return this._request("signOut",{})}async signInInitiate(){be.log("#signInInitiate: Starting sign-in flow");try{const e=await this._request("signIn",{});return be.log("#signInInitiate: Sign-in flow started successfully"),e}catch(e){throw be.warn("#signInInitiate: Failed to start sign-in flow",e),e}}async signInConfirm(e){be.log("#signInConfirm: Confirming sign-in");try{const n=await this._request("signInConfirm",e);return be.log("#signInConfirm: Sign-in confirmed successfully"),n}catch(n){throw be.warn("#signInConfirm: Failed to confirm sign-in",n),n}}async signedIn(){try{const{status:e}=await this._request("checkStatus",{});return be.log("#checkStatus: Status check completed",{status:e}),e==="SignedIn"||e==="AlreadySignedIn"||e==="OK"}catch(e){throw be.warn("#signedIn: Failed to check sign-in status",e),e}}async getCompletion(e){if(this.isDisabled())return null;const n=this.documentVersion;if(e.textDocument.version=n,n===0)return null;var r;r=n,ot.set(kt,r);const i=await this.throttledGetCompletionInternal(e,n);var o;return o=n,ot.get(kt)===o&&ot.set(kt,null),n!==this.documentVersion?null:i??null}}const Ki="/__marimo_copilot__.py",Gi=`file://${Ki}`,tc=Le(()=>new nc);class nc extends Zl.Transport{constructor(){super(),this.delegate=void 0,this.delegate=void 0}getWsUrl(){return Is().getLSPURL("copilot").toString()}async tryConnect(e=3,n=1e3){for(let r=1;r<=e;r++)try{return this.delegate||(this.delegate=new Ss.WebSocketTransport(this.getWsUrl())),await this.delegate.connect(),void q.log("Copilot#connect: Connected successfully")}catch(i){if(q.warn(`Copilot#connect: Connection attempt ${r}/${e} failed`,i),r===e)throw this.delegate=void 0,Re({variant:"danger",title:"GitHub Copilot Connection Error",description:"Failed to connect to GitHub Copilot. Please check settings and try again."}),i;await new Promise(o=>setTimeout(o,n))}}async connect(){return await vs(En,e=>e.completion.copilot==="github"),await Os(),this.tryConnect()}close(){var e;(e=this.delegate)==null||e.close(),this.delegate=void 0}async sendData(e,n){var r;return n=Math.min(n??5e3,5e3),(r=this.delegate)==null?void 0:r.sendData(e,n)}}const tt=Le(()=>new ec({rootUri:Gi,workspaceFolders:null,transport:tc()}));function rc(){return ws({documentUri:Gi,client:tt(),languageId:"copilot",hoverEnabled:!1,completionEnabled:!1,definitionEnabled:!1,renameEnabled:!1,codeActionsEnabled:!1,signatureHelpEnabled:!1,diagnosticsEnabled:!1,sendIncrementalChanges:!1})}const Yi=S.memo(()=>{const[t,e]=We(Bi),[n,r]=We(Vi),[i,o]=S.useState(),[a,c]=S.useState(!1),l=async v=>{v.preventDefault(),c(!0);try{const{verificationUri:p,status:m,userCode:h}=await async function(){return await tt().signInInitiate()}();Qi(m)?e(!0):(r("signingIn"),o({url:p,code:h}))}finally{c(!1)}},u=async v=>{if(v.preventDefault(),i){c(!0);try{const p=await async function(m){const h=tt();try{q.log("Copilot#tryFinishSignIn: Attempting to confirm sign-in");const{status:f}=await h.signInConfirm({userCode:m});return Qi(f)?(q.log("Copilot#tryFinishSignIn: Sign-in confirmed successfully"),{success:!0}):(q.warn("Copilot#tryFinishSignIn: Sign-in confirmation returned unexpected status",{status:f}),{success:!1})}catch(f){return Xi(f)?(q.error("Copilot#tryFinishSignIn: Connection error during sign-in",f),{success:!1,error:"connection"}):await async function(y){for(let x=0;x<$i;x++)try{if(await new Promise(w=>setTimeout(w,ic)),await y.signedIn())return q.log("Copilot#tryFinishSignIn: Successfully signed in after retry"),{success:!0}}catch(w){if(q.warn("Copilot#tryFinishSignIn: Retry attempt failed",{attempt:x+1,maxRetries:$i}),Xi(w))return{success:!1,error:"connection"}}return q.error("Copilot#tryFinishSignIn: All sign-in attempts failed"),{success:!1}}(h)}}(i.code);p.success?(e(!0),r("signedIn")):p.error==="connection"?(r("connectionError"),Re({title:"GitHub Copilot Connection Error",description:"Lost connection during sign-in. Please try again.",variant:"danger",action:s.jsx(me,{onClick:l,children:"Retry"})})):r("signInFailed")}finally{c(!1)}}},d=async v=>{v.preventDefault(),await async function(){await tt().signOut()}(),e(!1),r("signedOut")};return(()=>{switch(n??(t?"signedIn":"connecting")){case"connecting":return s.jsx(at,{className:"font-normal flex",children:"Connecting..."});case"signedOut":return s.jsx(me,{onClick:l,size:"xs",variant:"link",children:"Sign in to GitHub Copilot"});case"signingIn":return s.jsxs("ol",{className:"ml-4 text-sm list-decimal [&>li]:mt-2",children:[s.jsx("li",{children:s.jsxs("div",{className:"flex items-center",children:["Copy this code:",s.jsx("strong",{className:"ml-2",children:i==null?void 0:i.code}),s.jsx(Cs,{className:"ml-2 cursor-pointer opacity-60 hover:opacity-100 h-3 w-3",onClick:async()=>{i&&(await Ns(i.code),Re({description:"Copied to clipboard"}))}})]})}),s.jsxs("li",{children:["Enter the code at this link:",s.jsx("a",{href:i==null?void 0:i.url,target:"_blank",rel:"noreferrer",className:Ds({variant:"link",size:"xs"}),children:i==null?void 0:i.url})]}),s.jsxs("li",{children:["Click here when done:",s.jsxs(me,{size:"xs",onClick:u,className:"ml-1",children:[a&&s.jsx(_n,{className:"h-3 w-3 mr-1 animate-spin"}),"Done"]})]})]});case"signInFailed":return s.jsxs("div",{className:"flex flex-col gap-1",children:[s.jsx("div",{className:"text-destructive text-sm",children:"Sign in failed. Please try again."}),a?s.jsx(_n,{className:"h-3 w-3 mr-1 animate-spin"}):s.jsx(me,{onClick:l,size:"xs",variant:"link",children:"Connect to GitHub Copilot"})]});case"signedIn":return s.jsxs("div",{className:"flex items-center gap-5",children:[s.jsxs(at,{className:"font-normal flex items-center",children:[s.jsx("div",{className:"inline-flex items-center justify-center bg-(--grass-7) rounded-full p-1 mr-2",children:s.jsx(ks,{className:"h-3 w-3 text-white"})}),"Connected"]}),s.jsx(me,{onClick:d,size:"xs",variant:"text",children:"Disconnect"})]});case"connectionError":return s.jsxs("div",{className:"flex flex-col gap-1",children:[s.jsxs(at,{className:"font-normal flex",children:[s.jsx(lt,{className:"h-4 w-4 mr-1"}),"Connection Error"]}),s.jsx("div",{className:"text-sm",children:"Unable to connect to GitHub Copilot."}),s.jsx(me,{onClick:l,size:"xs",variant:"link",children:"Retry Connection"})]});case"notConnected":return s.jsxs("div",{className:"flex flex-col gap-1",children:[s.jsxs(at,{className:"font-normal flex",children:[s.jsx(lt,{className:"h-4 w-4 mr-1"}),"Unable to connect"]}),s.jsxs("div",{className:"text-sm",children:["For troubleshooting, see the"," ",s.jsx(ce,{href:"https://docs.marimo.io/getting_started/index.html#github-copilot",children:"docs"}),"."]})]})}})()});Yi.displayName="CopilotConfig";const $i=5,ic=3e3;function Xi(t){return t instanceof Error&&(t.message.includes("ECONNREFUSED")||t.message.includes("WebSocket")||t.message.includes("network"))}function Qi(t){return t==="SignedIn"||t==="AlreadySignedIn"||t==="OK"}let Ct=null;class sc{constructor(e){this.view=void 0,this.abortController=new AbortController,this.view=e.view,this.view.dom.addEventListener("focus",()=>{Ct=new WeakRef(this.view)},{signal:this.abortController.signal,capture:!0}),this.update()}update(){const e=this.view.dom.querySelector(".cm-vimCursorLayer");if(e instanceof HTMLElement)if(Ts())e.style.display="none";else{const n=(Ct==null?void 0:Ct.deref())===this.view;e.style.display=n?"":"none"}}destroy(){this.abortController.abort()}}const Ji={map:{args:["lhs","rhs"]},nmap:{mode:"normal",args:["lhs","rhs"]},vmap:{mode:"visual",args:["lhs","rhs"]},imap:{mode:"insert",args:["lhs","rhs"]},noremap:{args:["lhs","rhs"]},nnoremap:{mode:"normal",args:["lhs","rhs"]},vnoremap:{mode:"visual",args:["lhs","rhs"]},inoremap:{mode:"insert",args:["lhs","rhs"]},unmap:{args:["lhs"]},nunmap:{mode:"normal",args:["lhs"]},vunmap:{mode:"visual",args:["lhs"]},iunmap:{mode:"insert",args:["lhs"]},mapclear:{},nmapclear:{mode:"normal"},vmapclear:{mode:"visual"},imapclear:{mode:"insert"}};function oc(t,e){const n=t.split(/\s+/),r=n[0];let i=0;if(r in Ji){const o=Ji[r],a={};for(const l of o.args||[]){if(i+=1,!(i<n.length))return void(e&&e(`Not enough arguments for "${r}" command: "${t}"`));a[l]=n[i]}const c={name:r};return"args"in o&&(c.args=a),"mode"in o&&(c.mode=o.mode),c}e&&e(`Unknown vimrc command: "${t}"`)}var Zi;const ac=Le(()=>{Z.defineAction("goToDefinition",t=>{const e=t.cm6;return Ps(e)}),Z.mapCommand("gd","action","goToDefinition",{},{context:"normal"}),Z.defineEx("write","w",t=>{const e=t.cm6;e&&e.state.facet(ct).saveNotebook()})}),lc=Le(async()=>{var n;const t=ot.get(En),e=(n=t.keymap)==null?void 0:n.vimrc;if(e)try{q.log(`Loading vimrc from ${e}`);const r=(await As().sendFileDetails({path:e})).contents;if(!r)return void q.error(`Failed to load vimrc from ${e}`);const i=function(o,a){const c=[];for(const l of o.split(`
|
17
|
+
`)){if(l.startsWith('"')||l.trim()==="")continue;const u=oc(l,a);u&&c.push(u)}return c}(r,q.warn);(function(o){function a(d){d.args&&d.args.lhs&&d.args.rhs?d.mode?Z.map(d.args.lhs,d.args.rhs,d.mode):Z.map(d.args.lhs,d.args.rhs):q.warn(`Could not execute vimrc command "${d.name}: expected arguments"`)}function c(d){d.args&&d.args.lhs&&d.args.rhs?d.mode?Z.noremap(d.args.lhs,d.args.rhs,d.mode):Z.noremap(d.args.lhs,d.args.rhs):q.warn(`Could not execute vimrc command "${d.name}: expected arguments"`)}function l(d){d.args&&d.args.lhs?d.mode?Z.unmap(d.args.lhs,d.mode):Z.unmap(d.args.lhs):q.warn(`Could not execute vimrc command "${d.name}: expected arguments"`)}function u(d){d.mode?Z.mapclear(d.mode):Z.mapclear()}for(const d of o)"map|nmap|vmap|imap".split("|").includes(d.name)?a(d):"noremap|nnoremap|vnoremap|inoremap".split("|").includes(d.name)?c(d):"unmap|nunmap|vunmap|iunmap".split("|").includes(d.name)?l(d):"mapclear|nmapclear|vmapclear|imapclear".split("|").includes(d.name)?u(d):q.warn(`Could not execute vimrc command "${d.name}: unknown command"`)})(i)}catch(r){q.error("Failed to load vimrc:",r)}});class Nt{constructor(){this.instances=new Set,this.isBroadcasting=!1}addInstance(e){this.instances.add(e);const n=ut(e);n?n.on("vim-mode-change",r=>{var i;this.isBroadcasting||(Et("mode"in r,'Expected event to have a "mode" property'),this.isBroadcasting=!0,i=()=>{this.broadcastModeChange(e,r.mode,r.subMode),this.isBroadcasting=!1},"scheduler"in window?window.scheduler.postTask(i,{priority:"background"}):"requestIdleCallback"in window?requestIdleCallback(i):setTimeout(i,0))}):q.warn("Expected CodeMirror instance to have CodeMirror instance state")}removeInstance(e){this.instances.delete(e)}broadcastModeChange(e,n,r){Et("exitInsertMode"in Z,"Vim does not have an exitInsertMode method"),Et("exitVisualMode"in Z,"Vim does not have an exitVisualMode method");for(const i of this.instances)if(i!==e){const o=ut(i);if(!o){q.warn("Expected CodeMirror instance to have CodeMirror instance state");continue}const a=o.setSelections.bind(o);if(o.setSelections=()=>[],!es(o)){q.warn("Expected CodeMirror instance to have Vim state");continue}const c=o.state.vim;switch(n){case"normal":c.insertMode&&Z.exitInsertMode(o,!0),c.visualMode&&Z.exitVisualMode(o,!0);break;case"insert":c.insertMode||Z.handleKey(o,"i","")}o.setSelections=a}}}function es(t){return t.state.vim!==void 0}Zi=Nt,Nt.INSTANCES=new Zi;const cc=["default","vim"];function uc(t,e){switch(t.preset){case"default":return[Ie.of(ts()),Ie.of(ns(e)),_t.low(Ie.of([{key:"Escape",preventDefault:!0,run:n=>(n.contentDOM.blur(),!0)}]))];case"vim":return[Ie.of(hc()),Ie.of(ns(e)),Ie.of([{key:"Enter",run:n=>{var i;const r=ut(n);return!!((i=r==null?void 0:r.state.vim)!=null&&i.insertMode)&&Ls(n)}}]),_t.high(fc("d",n=>n.state.doc.toString()==="",n=>n.state.doc.toString()===""?(n.state.facet(ct).deleteCell(),!0):!1)),Rs({status:!1}),_t.high((ac(),lc(),[Ie.of([{key:"j",run:n=>{if(Es(n,!0)&&An(n)){const r=n.state.facet(ct),i=n.state.facet(Mn);return r.moveToNextCell({cellId:i,before:!1,noCreate:!0}),!0}return!1}}]),Ie.of([{key:"k",run:n=>{if(_s(n)&&An(n)){const r=n.state.facet(ct),i=n.state.facet(Mn);return r.moveToNextCell({cellId:i,before:!0,noCreate:!0}),!0}return!1}}]),Ie.of([{linux:"Ctrl-[",win:"Ctrl-[",run:n=>{const r=ut(n);return r?es(r)?!!r.state.vim.insertMode&&(Z.exitInsertMode(r,!0),!0):(q.warn("Expected CodeMirror instance to have Vim state"),!1):(q.warn("Expected CodeMirror instance to have CodeMirror instance state"),!1)}}]),Pn.define(n=>(requestAnimationFrame(()=>{Nt.INSTANCES.addInstance(n)}),{destroy(){Nt.INSTANCES.removeInstance(n)}})),Pn.define(n=>new sc({view:n}))]))];default:return Ms(t.preset),[]}}const dc=new Set([Rn,Ln]),ts=Le(()=>Fs.filter(t=>!dc.has(t.run))),ns=t=>[{key:t.getHotkey("cell.toggleComment").key,run:Rn},{key:t.getHotkey("cell.toggleBlockComment").key,run:Ln}],hc=Le(()=>{const t=new Set(["Enter","Ctrl-v"]);return ts().filter(e=>!t.has(e.key||e.mac||e.linux||e.win||""))});function fc(t,e,n){let r="",i=0;return Ie.of([{any:(o,a)=>{const c=a.key,l=a.timeStamp;return c!==t||!e(o)?(r="",i=0,!1):r===t&&l-i<500&&n(o)?(r="",i=0,!0):(r=c,i=l,!1)}}])}const wn=Ve(!1),pc=()=>{const t=G.c(82),[e,n]=We(wn),[r,i]=S.useState(null);let o;t[0]===Symbol.for("react.memo_cache_sentinel")?(o=[],t[0]=o):o=t[0];const[a,c]=S.useState(o),[l,u]=Fn(),d=dt(Hs),{saveUserConfig:v}=Me();let p,m;t[1]!==n?(p=()=>n(gc),t[1]=n,t[2]=p):p=t[2],zs("global.showHelp",p),t[3]!==l||t[4]!==v||t[5]!==u?(m=async ke=>{const te={...l};u(ke),await v({config:ke}).catch(K=>{throw u(te),K})},t[3]=l,t[4]=v,t[5]=u,t[6]=m):m=t[6];const h=m;let f;t[7]!==l||t[8]!==r||t[9]!==h?(f=async ke=>{if(!r)return;const te=ke.join("-"),K={...l,keymap:{...l.keymap,overrides:{...l.keymap.overrides,[r]:te}}};i(null),c([]),await h(K)},t[7]=l,t[8]=r,t[9]=h,t[10]=f):f=t[10];const y=f;let x,w,I;if(t[11]!==l||t[12]!==r||t[13]!==y||t[14]!==d||t[15]!==e||t[16]!==a||t[17]!==h){I=Symbol.for("react.early_return_sentinel");{const ke=async()=>{if(!r)return;const K={...l,keymap:{...l.keymap,overrides:{...l.keymap.overrides}}};delete K.keymap.overrides[r],i(null),c([]),await h(K)};let te;t[21]!==l||t[22]!==h?(te=async()=>{if(!window.confirm("Are you sure you want to reset all shortcuts to their default values?"))return;const K={...l,keymap:{...l.keymap,overrides:{}}};i(null),c([]),await h(K)},t[21]=l,t[22]=h,t[23]=te):te=t[23],x=te,e?w=K=>{const je=d.getHotkey(K);if(r===K){const it=Us(K);return s.jsxs("div",{children:[s.jsx(ue,{defaultValue:a.join("+"),placeholder:je.name,onKeyDown:le=>{le.preventDefault();const Ce=[];if(le.key==="Meta"||le.key==="Control"||le.key==="Alt"||le.key==="Shift"||(le.metaKey&&Ce.push(zn()?"Cmd":"Meta"),le.ctrlKey&&Ce.push("Ctrl"),le.altKey&&Ce.push("Alt"),le.shiftKey&&Ce.push("Shift"),le.key==="-"))return;if(le.key==="Escape"&&Ce.length===0)return i(null),void c([]);let Sn=le.key.toLowerCase();le.key===" "&&(Sn="Space"),Ce.push(Sn),y(Ce)},autoFocus:!0,endAdornment:s.jsx(me,{variant:"text",size:"xs",className:"mb-0",onClick:()=>{i(null),c([])},children:s.jsx(lt,{className:"w-4 h-4"})})}),s.jsxs("div",{className:"flex items-center justify-between w-full",children:[s.jsx("span",{className:"text-muted-foreground text-xs",children:"Press a key combination"}),it.key!==je.key&&s.jsxs("span",{className:"text-xs cursor-pointer text-primary",onClick:ke,children:["Reset to default:"," ",s.jsx("span",{className:"font-mono",children:it.key})]})]})]},K)}return s.jsxs("div",{className:"grid grid-cols-[auto_2fr_3fr] gap-2 items-center",children:[d.isEditable(K)?s.jsx(Un,{className:"cursor-pointer opacity-60 hover:opacity-100 text-muted-foreground w-3 h-3",onClick:()=>{c([]),i(K)}}):s.jsx("div",{className:"w-3 h-3"}),s.jsx(Hn,{className:"justify-end",shortcut:je.key}),s.jsx("span",{children:je.name.toLowerCase()})]},K)}:I=null}t[11]=l,t[12]=r,t[13]=y,t[14]=d,t[15]=e,t[16]=a,t[17]=h,t[18]=x,t[19]=w,t[20]=I}else x=t[18],w=t[19],I=t[20];if(I!==Symbol.for("react.early_return_sentinel"))return I;const k=w;let O,N,_,z,H,U,B,se,de,oe,ae,V,Q,J,ee,he,j,g,b,W,Ee,_e,Pe,Ae,rt;if(t[24]!==l.keymap.preset||t[25]!==d||t[26]!==e||t[27]!==k||t[28]!==n){const ke=d.getHotkeyGroups(),te=(je,it)=>{const le=ke[je];return s.jsxs("div",{className:"mb-[40px] gap-2 flex flex-col",children:[s.jsxs("div",{children:[s.jsx("h3",{className:"text-lg font-medium",children:je}),it]}),le.map(k)]})},K=je=>te(je,s.jsxs("p",{className:"text-xs text-muted-foreground flex items-center gap-1",children:["Press"," ",l.keymap.preset==="vim"?s.jsxs(s.Fragment,{children:[s.jsx(Hn,{shortcut:zn()?"Cmd":"Ctrl"}),s.jsx(Y,{children:"Esc"})]}):s.jsx(Y,{children:"Esc"})," ","in a cell to enter command mode"]}));_=Pt,Q=e,t[47]!==n?(J=je=>n(je),t[47]=n,t[48]=J):J=t[48],N=qs,ae="sm:items-center sm:top-0",t[49]===Symbol.for("react.memo_cache_sentinel")?(V=s.jsx(Bs,{}),t[49]=V):V=t[49],O=qn,se=!1,de="max-h-screen sm:max-h-[90vh] overflow-y-auto sm:max-w-[850px]",t[50]===Symbol.for("react.memo_cache_sentinel")?(oe=s.jsx(Vs,{children:s.jsx(Ws,{children:"Shortcuts"})}),t[50]=oe):oe=t[50],U="flex flex-row gap-3",B=s.jsxs("div",{className:"w-1/2",children:[te("Editing"),te("Markdown")]}),ee="w-1/2",he=te("Navigation"),j=te("Running Cells"),g=te("Creation and Ordering"),z=K("Command"),H=te("Other"),t[24]=l.keymap.preset,t[25]=d,t[26]=e,t[27]=k,t[28]=n,t[29]=O,t[30]=N,t[31]=_,t[32]=z,t[33]=H,t[34]=U,t[35]=B,t[36]=se,t[37]=de,t[38]=oe,t[39]=ae,t[40]=V,t[41]=Q,t[42]=J,t[43]=ee,t[44]=he,t[45]=j,t[46]=g}else O=t[29],N=t[30],_=t[31],z=t[32],H=t[33],U=t[34],B=t[35],se=t[36],de=t[37],oe=t[38],ae=t[39],V=t[40],Q=t[41],J=t[42],ee=t[43],he=t[44],j=t[45],g=t[46];return t[51]===Symbol.for("react.memo_cache_sentinel")?(b=s.jsx("span",{className:"text-destructive",children:"Reset all to default"}),t[51]=b):b=t[51],t[52]!==x?(W=s.jsx(me,{className:"mt-4 hover:bg-destructive/10 border-destructive hover:border-destructive",variant:"outline",size:"xs",onClick:x,tabIndex:-1,children:b}),t[52]=x,t[53]=W):W=t[53],t[54]!==z||t[55]!==H||t[56]!==W||t[57]!==ee||t[58]!==he||t[59]!==j||t[60]!==g?(Ee=s.jsxs("div",{className:ee,children:[he,j,g,z,H,W]}),t[54]=z,t[55]=H,t[56]=W,t[57]=ee,t[58]=he,t[59]=j,t[60]=g,t[61]=Ee):Ee=t[61],t[62]!==U||t[63]!==B||t[64]!==Ee?(_e=s.jsxs("div",{className:U,children:[B,Ee]}),t[62]=U,t[63]=B,t[64]=Ee,t[65]=_e):_e=t[65],t[66]!==O||t[67]!==se||t[68]!==de||t[69]!==oe||t[70]!==_e?(Pe=s.jsxs(O,{usePortal:se,className:de,children:[oe,_e]}),t[66]=O,t[67]=se,t[68]=de,t[69]=oe,t[70]=_e,t[71]=Pe):Pe=t[71],t[72]!==N||t[73]!==ae||t[74]!==V||t[75]!==Pe?(Ae=s.jsxs(N,{className:ae,children:[V,Pe]}),t[72]=N,t[73]=ae,t[74]=V,t[75]=Pe,t[76]=Ae):Ae=t[76],t[77]!==_||t[78]!==Q||t[79]!==J||t[80]!==Ae?(rt=s.jsx(_,{open:Q,onOpenChange:J,children:Ae}),t[77]=_,t[78]=Q,t[79]=J,t[80]=Ae,t[81]=rt):rt=t[81],rt};function gc(t){return!t}const rs=["claude-opus-4-20250514","claude-sonnet-4-20250514","claude-3-7-sonnet-latest","claude-3-5-sonnet-latest","claude-3-5-haiku-latest","deepseek-v3","deepseek-r1","gemini-2.5-flash-preview-05-20","gemini-2.5-pro-preview-06-05","gemini-2.0-flash","gemini-2.0-flash-lite","o3","o4-mini","gpt-4.5-preview","gpt-4.1","gpt-4o","gpt-3.5-turbo","bedrock/us.anthropic.claude-3-7-sonnet-20250219-v1:0","bedrock/anthropic.claude-3-sonnet-20240229","bedrock/anthropic.claude-3-haiku-20240307","bedrock/meta.llama3-8b-instruct-v1:0","bedrock/amazon.titan-text-express-v1","bedrock/us.amazon.nova-pro-v1:0","bedrock/cohere.command-r-plus-v1","bedrock/ai21.j2-ultra-v1"],mc=["us-east-1","us-east-2","us-west-2","eu-central-1","ap-northeast-1","ap-southeast-1"];function is(t,e){const n=G.c(10);let r;n[0]!==e||n[1]!==t?(r=Bn(t,e),n[0]=e,n[1]=t,n[2]=r):r=n[2];const i=r,o=dt(Ks);let a;n[3]!==e||n[4]!==o?(a=Bn(o,e),n[3]=e,n[4]=o,n[5]=a):a=n[5];const c=a,l=c!=null&&i!==c;let u;return n[6]!==i||n[7]!==l||n[8]!==c?(u={isOverridden:l,currentValue:i,overriddenValue:c},n[6]=i,n[7]=l,n[8]=c,n[9]=u):u=n[9],u}const vc=t=>{const e=G.c(3),{name:n,children:r}=t,[i]=Vn(),{isOverridden:o}=is(i,n);let a;return e[0]!==r||e[1]!==o?(a=o?s.jsx(Ke,{delayDuration:200,content:s.jsxs("div",{className:"flex flex-col gap-2",children:[s.jsxs("p",{children:["This setting is overridden by the"," ",s.jsx(Y,{className:"inline mx-px",children:"pyproject.toml"})," config."]}),s.jsxs("p",{children:["To change it, edit the project config"," ",s.jsx(Y,{className:"inline mx-px",children:"pyproject.toml"}),"directly."]})]}),children:s.jsx("div",{className:"text-muted-foreground opacity-80 cursor-not-allowed *:pointer-events-none",children:r})}):r,e[0]=r,e[1]=o,e[2]=a):a=e[2],a},ss=[{id:"sql",packagesRequired:[{name:"duckdb"},{name:"sqlglot"}],additionalPackageInstalls:[{name:"polars[pyarrow]"}],description:"SQL cells"},{id:"charts",packagesRequired:[{name:"altair"}],additionalPackageInstalls:[],description:"Charts in datasource viewer"},{id:"fast-charts",packagesRequired:[{name:"vegafusion"},{name:"vl-convert-python"}],additionalPackageInstalls:[],description:"Fast server-side charts"},{id:"formatting",packagesRequired:[Ge()?{name:"black"}:{name:"ruff"}],additionalPackageInstalls:[],description:"Formatting"},{id:"ai",packagesRequired:[{name:"openai"}],additionalPackageInstalls:[],description:"AI features"},{id:"ipy-export",packagesRequired:[{name:"nbformat"}],additionalPackageInstalls:[],description:"Export as IPYNB"},{id:"testing",packagesRequired:[{name:"pytest"}],additionalPackageInstalls:[],description:"Autorun unit tests"}];Ge()||ss.push({id:"lsp",packagesRequired:[{name:"python-lsp-server"},{name:"websockets"}],additionalPackageInstalls:[{name:"python-lsp-ruff"}],description:"Language Server Protocol*"});const yc=()=>{const t=G.c(23),[e]=Fn(),n=e.package_management.manager,{getPackageList:r}=Me();let i,o;t[0]!==r?(i=()=>r(),t[0]=r,t[1]=i):i=t[1],t[2]!==n?(o=[n],t[2]=n,t[3]=o):o=t[3];const{data:a,error:c,refetch:l,isPending:u}=Gs(i,o);if(u){let O;return t[4]===Symbol.for("react.memo_cache_sentinel")?(O=s.jsx(Kn,{size:"medium",centered:!0}),t[4]=O):O=t[4],O}if(c){let O;return t[5]!==c?(O=s.jsx($s,{error:c}),t[5]=c,t[6]=O):O=t[6],O}let d;t[7]!==(a==null?void 0:a.packages)?(d=(a==null?void 0:a.packages)||[],t[7]=a==null?void 0:a.packages,t[8]=d):d=t[8];const v=d;let p;t[9]!==v?(p=new Set(v.map(bc)),t[9]=v,t[10]=p):p=t[10];const m=p;let h,f,y,x,w,I,k;return t[11]===Symbol.for("react.memo_cache_sentinel")?(h=s.jsx(zi,{children:"Optional Features"}),t[11]=h):h=t[11],t[12]===Symbol.for("react.memo_cache_sentinel")?(f=s.jsxs("p",{className:"text-sm text-muted-foreground",children:["marimo is lightweight, with few dependencies, to maximize compatibility with your own environments.",s.jsx("br",{}),"To unlock additional features in the marimo editor, you can install these optional dependencies:"]}),t[12]=f):f=t[12],t[13]===Symbol.for("react.memo_cache_sentinel")?(y=s.jsx(Xs,{children:s.jsxs(Wn,{children:[s.jsx(ht,{children:"Dependency"}),s.jsx(ht,{children:"Feature"}),s.jsx(ht,{children:"Status"}),s.jsx(ht,{})]})}),t[13]=y):y=t[13],t[14]!==m||t[15]!==n||t[16]!==l?(x=ss.map(O=>{const N=O.packagesRequired.every(z=>m.has(z.name.split("[")[0])),_=O.packagesRequired.map(jc).join(", ");return s.jsxs(Wn,{className:"text-sm",children:[s.jsx(At,{children:O.description}),s.jsx(At,{className:"font-mono text-xs",children:_}),s.jsx(At,{children:N?s.jsxs("div",{className:"flex items-center",children:[s.jsx($n,{className:"h-4 w-4 text-(--grass-10) mr-2"}),s.jsx("span",{children:"Installed"})]}):s.jsxs("div",{className:"flex items-center",children:[s.jsx(Ys,{className:"h-4 w-4 text-(--red-10) mr-2"}),s.jsx(xc,{packageSpecs:[...O.packagesRequired,...O.additionalPackageInstalls],packageManager:n,onSuccess:l})]})})]},O.id)}),t[14]=m,t[15]=n,t[16]=l,t[17]=x):x=t[17],t[18]!==x?(w=s.jsxs(Qs,{children:[y,s.jsx(Js,{children:x})]}),t[18]=x,t[19]=w):w=t[19],t[20]===Symbol.for("react.memo_cache_sentinel")?(I=s.jsx("p",{className:"text-muted-foreground mt-2",children:"*Requires server restart"}),t[20]=I):I=t[20],t[21]!==w?(k=s.jsxs("div",{className:"flex-1 flex flex-col overflow-hidden gap-2",children:[h,f,w,I]}),t[21]=w,t[22]=k):k=t[22],k},xc=({packageSpecs:t,packageManager:e,onSuccess:n})=>{const[r,i]=Be.useState(!1),{addPackage:o}=Me();return s.jsxs(me,{size:"xs",variant:"outline",className:Tt("text-xs",r&&"opacity-50 cursor-not-allowed"),onClick:async()=>{try{i(!0);const a=t.map(l=>l.minVersion?`${l.name}>=${l.minVersion}`:l.name).join(" "),c=await o({package:a});c.success?(n(),Re({title:"Package installed",description:s.jsxs("span",{children:["The packages"," ",s.jsx(Y,{className:"inline",children:t.map(l=>l.name).join(", ")})," ","have been added to your environment."]})})):Re({title:"Failed to install package",description:c.error,variant:"danger"})}finally{i(!1)}},disabled:r,children:[r?s.jsx(Kn,{size:"small",className:"mr-2 h-3 w-3"}):s.jsx(Yn,{className:"mr-2 h-3 w-3"}),"Install with ",e]})};function bc(t){return t.name}function jc(t){return t.name}const M="flex flex-row items-center space-x-1 space-y-0",os=[{id:"editor",label:"Editor",Icon:Un,className:"bg-(--blue-4)"},{id:"display",label:"Display",Icon:ko,className:"bg-(--grass-4)"},{id:"packageManagement",label:"Package Management",Icon:Co,className:"bg-(--red-4)"},{id:"runtime",label:"Runtime",Icon:Xn,className:"bg-(--amber-4)"},{id:"ai",label:"AI",Icon:bo,className:"bg-[linear-gradient(45deg,var(--purple-5),var(--cyan-5))]"},{id:"optionalDeps",label:"Optional Dependencies",Icon:Qn,className:"bg-(--orange-4)"},{id:"labs",label:"Labs",Icon:jo,className:"bg-(--slate-4)"}],as=Ve(os[0].id),wc=()=>{const t=G.c(49),[e,n]=Vn(),r=S.useRef(null),i=Mt(wn),[o,a]=We(as),c=dt(Zs),l=dt(eo),{saveUserConfig:u}=Me();let d,v;t[0]===Symbol.for("react.memo_cache_sentinel")?(d=On(to),t[0]=d):d=t[0],t[1]!==e?(v={resolver:d,defaultValues:e},t[1]=e,t[2]=v):v=t[2];const p=kn(v);let m;t[3]!==u||t[4]!==n?(m=async j=>{await u({config:j}).then(()=>{n(j)})},t[3]=u,t[4]=n,t[5]=m):m=t[5];const h=m;let f;t[6]===Symbol.for("react.memo_cache_sentinel")?(f=Ge(),t[6]=f):f=t[6];const y=f;let x;t[7]!==e||t[8]!==p?(x=()=>{const j=p.getValues("completion.copilot");return j===!1?null:j==="codeium"?s.jsxs(s.Fragment,{children:[s.jsxs("p",{className:"text-sm text-muted-secondary",children:["To get a Windsurf API key, follow"," ",s.jsx(ce,{href:"https://docs.marimo.io/guides/editor_features/ai_completion.html#windsurf-copilot",children:"these instructions"}),"."]}),s.jsx(D,{control:p.control,name:"completion.codeium_api_key",render:g=>{const{field:b}=g;return s.jsxs(T,{className:M,children:[s.jsx(C,{children:"API Key"}),s.jsx(E,{children:s.jsx(ue,{"data-testid":"codeium-api-key-input",className:"m-0 inline-flex",placeholder:"key",...b,value:b.value||""})}),s.jsx(P,{}),s.jsx(R,{userConfig:e,name:"completion.codeium_api_key"})]})}})]}):j==="github"?s.jsx(Yi,{}):j==="custom"?s.jsxs(s.Fragment,{children:[s.jsx("p",{className:"text-sm text-muted-secondary",children:"Configure your custom AI completion provider with the following settings."}),s.jsx(D,{control:p.control,name:"completion.model",render:g=>{const{field:b}=g;return s.jsxs(T,{className:M,children:[s.jsx(C,{children:"Model"}),s.jsx(E,{children:s.jsx(ue,{"data-testid":"custom-model-input",className:"m-0 inline-flex",placeholder:"Qwen2.5-Coder-7B",...b,value:b.value||""})}),s.jsx(P,{}),s.jsx(R,{userConfig:e,name:"completion.model"})]})}}),s.jsx(D,{control:p.control,name:"completion.base_url",render:g=>{const{field:b}=g;return s.jsxs(T,{className:M,children:[s.jsx(C,{children:"Base URL"}),s.jsx(E,{children:s.jsx(ue,{"data-testid":"custom-base-url-input",className:"m-0 inline-flex",placeholder:"http://localhost:11434/v1",...b,value:b.value||""})}),s.jsx(P,{}),s.jsx(R,{userConfig:e,name:"completion.base_url"})]})}}),s.jsx(D,{control:p.control,name:"completion.api_key",render:g=>{const{field:b}=g;return s.jsxs(T,{className:M,children:[s.jsx(C,{children:"API Key"}),s.jsx(E,{children:s.jsx(ue,{"data-testid":"custom-api-key-input",className:"m-0 inline-flex",placeholder:"key",...b,value:b.value||""})}),s.jsx(P,{}),s.jsx(R,{userConfig:e,name:"completion.api_key"})]})}})]}):void 0},t[7]=e,t[8]=p,t[9]=x):x=t[9];const w=x;let I;t[10]!==o||t[11]!==c||t[12]!==e||t[13]!==p||t[14]!==h||t[15]!==w||t[16]!==a||t[17]!==i?(I=()=>{switch(o){case"editor":return s.jsxs(s.Fragment,{children:[s.jsxs(ge,{title:"Autosave",children:[s.jsx(D,{control:p.control,name:"save.autosave",render:j=>{const{field:g}=j;return s.jsxs(T,{className:M,children:[s.jsx(C,{className:"font-normal",children:"Autosave enabled"}),s.jsx(E,{children:s.jsx($,{"data-testid":"autosave-checkbox",checked:g.value==="after_delay",disabled:g.disabled,onCheckedChange:b=>{g.onChange(b?"after_delay":"off")}})}),s.jsx(P,{}),s.jsx(R,{userConfig:e,name:"save.autosave"})]})}}),s.jsx(D,{control:p.control,name:"save.autosave_delay",render:j=>{const{field:g}=j;return s.jsxs(T,{className:M,children:[s.jsx(C,{children:"Autosave delay (seconds)"}),s.jsx(E,{children:s.jsx(Ye,{"data-testid":"autosave-delay-input",className:"m-0 w-24",isDisabled:p.getValues("save.autosave")!=="after_delay",...g,value:g.value/1e3,minValue:1,onChange:b=>{g.onChange(1e3*b),Number.isNaN(b)||h(p.getValues())}})}),s.jsx(P,{}),s.jsx(R,{userConfig:e,name:"save.autosave_delay"})]})}}),s.jsx(D,{control:p.control,name:"runtime.default_auto_download",render:j=>{const{field:g}=j;return s.jsxs("div",{className:"flex flex-col gap-y-1",children:[s.jsxs(T,{className:M,children:[s.jsx(C,{children:"Save cell outputs as"}),s.jsx(E,{children:s.jsxs("div",{className:"flex gap-4",children:[s.jsxs("div",{className:"flex items-center space-x-2",children:[s.jsx($,{id:"html-checkbox",checked:Array.isArray(g.value)&&g.value.includes("html"),onCheckedChange:()=>{const b=Array.isArray(g.value)?g.value:[];g.onChange(st(b,"html"))}}),s.jsx(C,{htmlFor:"html-checkbox",children:"HTML"})]}),s.jsxs("div",{className:"flex items-center space-x-2",children:[s.jsx($,{id:"ipynb-checkbox",checked:Array.isArray(g.value)&&g.value.includes("ipynb"),onCheckedChange:()=>{const b=Array.isArray(g.value)?g.value:[];g.onChange(st(b,"ipynb"))}}),s.jsx(C,{htmlFor:"ipynb-checkbox",children:"IPYNB"})]})]})}),s.jsx(P,{}),s.jsx(R,{userConfig:e,name:"runtime.default_auto_download"})]}),s.jsxs(F,{children:["When enabled, marimo will periodically save notebooks in your selected formats (HTML, IPYNB) to a folder named"," ",s.jsx(Y,{className:"inline",children:"__marimo__"})," next to your notebook file."]})]})}})]}),s.jsxs(ge,{title:"Formatting",children:[s.jsx(D,{control:p.control,name:"save.format_on_save",render:j=>{const{field:g}=j;return s.jsxs(T,{className:M,children:[s.jsx(C,{className:"font-normal",children:"Format on save"}),s.jsx(E,{children:s.jsx($,{"data-testid":"format-on-save-checkbox",checked:g.value,disabled:g.disabled,onCheckedChange:b=>{g.onChange(b)}})}),s.jsx(P,{}),s.jsx(R,{userConfig:e,name:"save.format_on_save"})]})}}),s.jsx(D,{control:p.control,name:"formatting.line_length",render:j=>{const{field:g}=j;return s.jsxs("div",{className:"flex flex-col space-y-1",children:[s.jsxs(T,{className:M,children:[s.jsx(C,{children:"Line length"}),s.jsx(E,{children:s.jsx(Ye,{"data-testid":"line-length-input",className:"m-0 w-24",...g,value:g.value,minValue:1,maxValue:1e3,onChange:b=>{g.onChange(b),Number.isNaN(b)||h(p.getValues())}})}),s.jsx(P,{}),s.jsx(R,{userConfig:e,name:"formatting.line_length"})]}),s.jsx(F,{children:"Maximum line length when formatting code."})]})}})]}),s.jsx(ge,{title:"Autocomplete",children:s.jsx(D,{control:p.control,name:"completion.activate_on_typing",render:j=>{const{field:g}=j;return s.jsxs("div",{className:"flex flex-col space-y-1",children:[s.jsxs(T,{className:M,children:[s.jsx(C,{className:"font-normal",children:"Autocomplete"}),s.jsx(E,{children:s.jsx($,{"data-testid":"autocomplete-checkbox",checked:g.value,disabled:g.disabled,onCheckedChange:b=>{g.onChange(!!b)}})}),s.jsx(P,{}),s.jsx(R,{userConfig:e,name:"completion.activate_on_typing"})]}),s.jsx(F,{children:"When unchecked, code completion is still available through a hotkey."}),s.jsx("div",{children:s.jsx(me,{variant:"link",className:"mb-0 px-0",type:"button",onClick:b=>{b.preventDefault(),b.stopPropagation(),a("ai")},children:"Edit AI autocomplete"})})]})}})}),s.jsxs(ge,{title:"Language Servers",children:[s.jsxs(F,{children:["See the"," ",s.jsx(ce,{href:"https://docs.marimo.io/guides/editor_features/language_server/",children:"docs"})," ","for more information about language server support."]}),s.jsxs(F,{children:[s.jsx("strong",{children:"Note:"})," When using multiple language servers, different features may conflict."]}),s.jsx(D,{control:p.control,name:"language_servers.pylsp.enabled",render:j=>{const{field:g}=j;return s.jsxs("div",{className:"flex flex-col gap-1",children:[s.jsxs(T,{className:M,children:[s.jsxs(C,{children:[s.jsx(ft,{variant:"defaultOutline",className:"mr-2",children:"Beta"}),"Python Language Server (",s.jsx(ce,{href:"https://github.com/python-lsp/python-lsp-server",children:"docs"}),")"]}),s.jsx(E,{children:s.jsx($,{"data-testid":"pylsp-checkbox",checked:g.value,disabled:g.disabled,onCheckedChange:b=>{g.onChange(!!b)}})}),s.jsx(P,{}),s.jsx(R,{userConfig:e,name:"language_servers.pylsp.enabled"})]}),g.value&&!c.pylsp&&s.jsxs(Rt,{kind:"danger",children:["The Python Language Server is not available in your current environment. Please install"," ",s.jsx(Y,{className:"inline",children:"python-lsp-server"})," in your environment."]})]})}}),s.jsx(D,{control:p.control,name:"language_servers.basedpyright.enabled",render:j=>{const{field:g}=j;return s.jsxs("div",{className:"flex flex-col gap-1",children:[s.jsxs(T,{className:M,children:[s.jsxs(C,{children:[s.jsx(ft,{variant:"defaultOutline",className:"mr-2",children:"Beta"}),"basedpyright (",s.jsx(ce,{href:"https://github.com/DetachHead/basedpyright",children:"docs"}),")"]}),s.jsx(E,{children:s.jsx($,{"data-testid":"basedpyright-checkbox",checked:g.value,disabled:g.disabled,onCheckedChange:b=>{g.onChange(!!b)}})}),s.jsx(P,{}),s.jsx(R,{userConfig:e,name:"language_servers.basedpyright.enabled"})]}),g.value&&!c.basedpyright&&s.jsxs(Rt,{kind:"danger",children:["basedpyright is not available in your current environment. Please install"," ",s.jsx(Y,{className:"inline",children:"basedpyright"})," in your environment."]})]})}}),s.jsx(D,{control:p.control,name:"language_servers.ty.enabled",render:j=>{const{field:g}=j;return s.jsxs("div",{className:"flex flex-col gap-1",children:[s.jsxs(T,{className:M,children:[s.jsxs(C,{children:[s.jsx(ft,{variant:"defaultOutline",className:"mr-2",children:"Beta"}),"ty (",s.jsx(ce,{href:"https://github.com/astral-sh/ty",children:"docs"}),")"]}),s.jsx(E,{children:s.jsx($,{"data-testid":"ty-checkbox",checked:g.value,disabled:g.disabled,onCheckedChange:b=>{g.onChange(!!b)}})}),s.jsx(P,{}),s.jsx(R,{userConfig:e,name:"language_servers.ty.enabled"})]}),g.value&&!c.ty&&s.jsxs(Rt,{kind:"danger",children:["ty is not available in your current environment. Please install ",s.jsx(Y,{className:"inline",children:"ty"})," in your environment."]})]})}}),s.jsx(D,{control:p.control,name:"diagnostics.enabled",render:j=>{const{field:g}=j;return s.jsxs(T,{className:M,children:[s.jsxs(C,{children:[s.jsx(ft,{variant:"defaultOutline",className:"mr-2",children:"Beta"}),"Diagnostics"]}),s.jsx(E,{children:s.jsx($,{"data-testid":"diagnostics-checkbox",checked:g.value,disabled:g.disabled,onCheckedChange:b=>{g.onChange(!!b)}})}),s.jsx(P,{}),s.jsx(R,{userConfig:e,name:"diagnostics.enabled"})]})}})]}),s.jsxs(ge,{title:"Keymap",children:[s.jsx(D,{control:p.control,name:"keymap.preset",render:j=>{const{field:g}=j;return s.jsx("div",{className:"flex flex-col space-y-1",children:s.jsxs(T,{className:M,children:[s.jsx(C,{children:"Keymap"}),s.jsx(E,{children:s.jsx(fe,{"data-testid":"keymap-select",onChange:b=>g.onChange(b.target.value),value:g.value,disabled:g.disabled,className:"inline-flex mr-2",children:cc.map(Ic)})}),s.jsx(P,{}),s.jsx(R,{userConfig:e,name:"keymap.preset"})]})})}}),s.jsx(D,{control:p.control,name:"keymap.destructive_delete",render:j=>{const{field:g}=j;return s.jsxs("div",{className:"flex flex-col space-y-1",children:[s.jsxs(T,{className:M,children:[s.jsx(C,{className:"font-normal",children:"Destructive delete"}),s.jsx(E,{children:s.jsx($,{"data-testid":"destructive-delete-checkbox",checked:g.value,disabled:g.disabled,onCheckedChange:b=>{g.onChange(!!b)}})}),s.jsx(P,{}),s.jsx(R,{userConfig:e,name:"keymap.destructive_delete"})]}),s.jsxs(F,{className:"flex items-center gap-1",children:["Allow deleting non-empty cells",s.jsx(Ke,{content:s.jsxs("div",{className:"max-w-xs",children:[s.jsx("strong",{children:"Use with caution:"})," Deleting cells with code can lose work and computed results since variables are removed from memory."]}),children:s.jsx(oo,{className:"w-3 h-3 text-(--amber-11)"})})]}),s.jsx("div",{children:s.jsx(me,{variant:"link",className:"mb-0 px-0",type:"button",onClick:b=>{b.preventDefault(),b.stopPropagation(),i(!0)},children:"Edit Keyboard Shortcuts"})})]})}})]})]});case"display":return s.jsxs(s.Fragment,{children:[s.jsxs(ge,{title:"Display",children:[s.jsx(D,{control:p.control,name:"display.default_width",render:j=>{const{field:g}=j;return s.jsxs("div",{className:"flex flex-col space-y-1",children:[s.jsxs(T,{className:M,children:[s.jsx(C,{children:"Default width"}),s.jsx(E,{children:s.jsx(fe,{"data-testid":"user-config-width-select",onChange:b=>g.onChange(b.target.value),value:g.value,disabled:g.disabled,className:"inline-flex mr-2",children:["compact","medium","full","columns"].map(Sc)})}),s.jsx(P,{}),s.jsx(R,{userConfig:e,name:"display.default_width"})]}),s.jsx(F,{children:'The default app width for new notebooks; overridden by "width" in the application config.'})]})}}),s.jsx(D,{control:p.control,name:"display.theme",render:j=>{const{field:g}=j;return s.jsxs("div",{className:"flex flex-col space-y-1",children:[s.jsxs(T,{className:M,children:[s.jsx(C,{children:"Theme"}),s.jsx(E,{children:s.jsx(fe,{"data-testid":"theme-select",onChange:b=>g.onChange(b.target.value),value:g.value,disabled:g.disabled,className:"inline-flex mr-2",children:so.map(Oc)})}),s.jsx(P,{}),s.jsx(R,{userConfig:e,name:"display.theme"})]}),s.jsx(F,{children:"This theme will be applied to the user's configuration; it does not affect theme when sharing the notebook."})]})}}),s.jsx(D,{control:p.control,name:"display.code_editor_font_size",render:j=>{const{field:g}=j;return s.jsxs(T,{className:M,children:[s.jsx(C,{children:"Code editor font size (px)"}),s.jsx(E,{children:s.jsx("span",{className:"inline-flex mr-2",children:s.jsx(Ye,{"data-testid":"code-editor-font-size-input",className:"m-0 w-24",...g,value:g.value,minValue:8,maxValue:32,onChange:b=>{g.onChange(b),h(p.getValues())}})})}),s.jsx(P,{}),s.jsx(R,{userConfig:e,name:"display.code_editor_font_size"})]})}}),s.jsx(D,{control:p.control,name:"display.reference_highlighting",render:j=>{const{field:g}=j;return s.jsxs("div",{className:"flex flex-col space-y-1",children:[s.jsxs(T,{className:M,children:[s.jsx(C,{children:"Reference highlighting"}),s.jsx(E,{children:s.jsx($,{"data-testid":"reference-highlighting-checkbox",checked:g.value,onCheckedChange:g.onChange})}),s.jsx(P,{}),s.jsx(R,{userConfig:e,name:"display.reference_highlighting"})]}),s.jsx(F,{children:"Visually emphasizes variables in a cell that are defined elsewhere in the notebook."})]})}})]}),s.jsxs(ge,{title:"Outputs",children:[s.jsx(D,{control:p.control,name:"display.cell_output",render:j=>{const{field:g}=j;return s.jsxs("div",{className:"flex flex-col space-y-1",children:[s.jsxs(T,{className:M,children:[s.jsx(C,{children:"Cell output area"}),s.jsx(E,{children:s.jsx(fe,{"data-testid":"cell-output-select",onChange:b=>g.onChange(b.target.value),value:g.value,disabled:g.disabled,className:"inline-flex mr-2",children:["above","below"].map(kc)})}),s.jsx(P,{}),s.jsx(R,{userConfig:e,name:"display.cell_output"})]}),s.jsx(F,{children:"Where to display cell's output."})]})}}),s.jsx(D,{control:p.control,name:"display.dataframes",render:j=>{const{field:g}=j;return s.jsxs("div",{className:"flex flex-col space-y-1",children:[s.jsxs(T,{className:M,children:[s.jsx(C,{children:"Dataframe viewer"}),s.jsx(E,{children:s.jsx(fe,{"data-testid":"display-dataframes-select",onChange:b=>g.onChange(b.target.value),value:g.value,disabled:g.disabled,className:"inline-flex mr-2",children:["rich","plain"].map(Cc)})}),s.jsx(P,{}),s.jsx(R,{userConfig:e,name:"display.dataframes"})]}),s.jsx(F,{children:"Whether to use marimo's rich dataframe viewer or a plain HTML table. This requires restarting your notebook to take effect."})]})}}),s.jsx(D,{control:p.control,name:"display.default_table_page_size",render:j=>{const{field:g}=j;return s.jsxs("div",{className:"flex flex-col space-y-1",children:[s.jsxs(T,{className:M,children:[s.jsx(C,{children:"Default table page size"}),s.jsx(E,{children:s.jsx(Ye,{"data-testid":"default-table-page-size-input",className:"m-0 w-24",...g,value:g.value,minValue:1,step:1,onChange:b=>{g.onChange(b),Number.isNaN(b)||h(p.getValues())}})}),s.jsx(P,{}),s.jsx(R,{userConfig:e,name:"display.default_table_page_size"})]}),s.jsx(F,{children:"The default number of rows displayed in dataframes and SQL results."})]})}}),s.jsx(D,{control:p.control,name:"display.default_table_max_columns",render:j=>{const{field:g}=j;return s.jsxs("div",{className:"flex flex-col space-y-1",children:[s.jsxs(T,{className:M,children:[s.jsx(C,{children:"Default table max columns"}),s.jsx(E,{children:s.jsx(Ye,{"data-testid":"default-table-max-columns-input",className:"m-0 w-24",...g,value:g.value,minValue:1,step:1,onChange:b=>{g.onChange(b),Number.isNaN(b)||h(p.getValues())}})}),s.jsx(P,{}),s.jsx(R,{userConfig:e,name:"display.default_table_max_columns"})]}),s.jsx(F,{children:"The default maximum number of columns displayed in dataframes and SQL results."})]})}})]})]});case"packageManagement":return s.jsx(ge,{title:"Package Management",children:s.jsx(D,{control:p.control,disabled:y,name:"package_management.manager",render:j=>{const{field:g}=j;return s.jsxs("div",{className:"flex flex-col space-y-1",children:[s.jsxs(T,{className:M,children:[s.jsx(C,{children:"Manager"}),s.jsx(E,{children:s.jsx(fe,{"data-testid":"package-manager-select",onChange:b=>g.onChange(b.target.value),value:g.value,disabled:g.disabled,className:"inline-flex mr-2",children:io.map(Nc)})}),s.jsx(P,{}),s.jsx(R,{userConfig:e,name:"package_management.manager"})]}),s.jsxs(F,{children:["When marimo comes across a module that is not installed, you will be prompted to install it using your preferred package manager. Learn more in the"," ",s.jsx(ce,{href:"https://docs.marimo.io/guides/editor_features/package_management.html",children:"docs"}),".",s.jsx("br",{}),s.jsx("br",{}),"Running marimo in a"," ",s.jsx(ce,{href:"https://docs.marimo.io/guides/editor_features/package_management.html#running-marimo-in-a-sandbox-environment-uv-only",children:"sandboxed environment"})," ","is only supported by ",s.jsx(Y,{className:"inline",children:"uv"})]})]})}})});case"runtime":return s.jsxs(ge,{title:"Runtime configuration",children:[s.jsx(D,{control:p.control,name:"runtime.auto_instantiate",render:j=>{const{field:g}=j;return s.jsxs("div",{className:"flex flex-col gap-y-1",children:[s.jsxs(T,{className:M,children:[s.jsx(C,{className:"font-normal",children:"Autorun on startup"}),s.jsx(E,{children:s.jsx($,{"data-testid":"auto-instantiate-checkbox",disabled:g.disabled,checked:g.value,onCheckedChange:g.onChange})}),s.jsx(P,{}),s.jsx(R,{userConfig:e,name:"runtime.auto_instantiate"})]}),s.jsx(F,{children:"Whether to automatically run all cells on startup."})]})}}),s.jsx(D,{control:p.control,name:"runtime.on_cell_change",render:j=>{const{field:g}=j;return s.jsxs("div",{className:"flex flex-col gap-y-1",children:[s.jsxs(T,{className:M,children:[s.jsx(C,{className:"font-normal",children:"On cell change"}),s.jsx(E,{children:s.jsx(fe,{"data-testid":"on-cell-change-select",onChange:b=>g.onChange(b.target.value),value:g.value,className:"inline-flex mr-2",children:["lazy","autorun"].map(Dc)})}),s.jsx(P,{}),s.jsx(R,{userConfig:e,name:"runtime.on_cell_change"})]}),s.jsx(F,{children:`Whether marimo should automatically run cells or just mark them as stale. If "autorun", marimo will automatically run affected cells when a cell is run or a UI element is interacted with; if "lazy", marimo will mark affected cells as stale but won't re-run them.`})]})}}),s.jsx(D,{control:p.control,name:"runtime.auto_reload",render:j=>{const{field:g}=j;return s.jsxs("div",{className:"flex flex-col gap-y-1",children:[s.jsxs(T,{className:M,children:[s.jsx(C,{className:"font-normal",children:"On module change"}),s.jsx(E,{children:s.jsx(fe,{"data-testid":"auto-reload-select",onChange:b=>g.onChange(b.target.value),value:g.value,disabled:y,className:"inline-flex mr-2",children:["off","lazy","autorun"].map(Tc)})}),s.jsx(P,{}),s.jsx(R,{userConfig:e,name:"runtime.auto_reload"})]}),s.jsx(F,{children:'Whether marimo should automatically reload modules before executing cells. If "lazy", marimo will mark cells affected by module modifications as stale; if "autorun", affected cells will be automatically re-run.'})]})}}),s.jsx(D,{control:p.control,name:"runtime.default_sql_output",render:j=>{const{field:g}=j;return s.jsxs("div",{className:"flex flex-col space-y-1",children:[s.jsxs(T,{className:M,children:[s.jsx(C,{children:"Default SQL output"}),s.jsx(E,{children:s.jsx(fe,{"data-testid":"user-config-sql-output-select",onChange:b=>g.onChange(b.target.value),value:g.value,disabled:g.disabled,className:"inline-flex mr-2",children:Ui.map(Ec)})}),s.jsx(P,{}),s.jsx(R,{userConfig:e,name:"runtime.default_sql_output"})]}),s.jsx(F,{children:'The default SQL output type for new notebooks; overridden by "sql_output" in the application config.'})]})}}),s.jsx(D,{control:p.control,name:"runtime.reactive_tests",render:j=>{const{field:g}=j;return s.jsxs("div",{className:"flex flex-col gap-y-1",children:[s.jsxs(T,{className:M,children:[s.jsx(C,{className:"font-normal",children:"Autorun Unit Tests"}),s.jsx(E,{children:s.jsx($,{"data-testid":"reactive-test-checkbox",checked:g.value,onCheckedChange:g.onChange})})]}),s.jsx(R,{userConfig:e,name:"runtime.reactive_tests"}),s.jsx(P,{}),s.jsx(F,{children:"Enable reactive pytest tests in notebook. When a cell contains only test functions (test_*) and classes (Test_*), marimo will automatically run them with pytest (requires notebook restart)."})," "]})}}),s.jsxs(F,{children:["Learn more in the"," ",s.jsx(ce,{href:"https://docs.marimo.io/guides/reactivity/#configuring-how-marimo-runs-cells",children:"docs"}),"."]})]});case"ai":return s.jsxs(s.Fragment,{children:[s.jsxs(ge,{title:"AI Code Completion",children:[s.jsx("p",{className:"text-sm text-muted-secondary",children:"You may use GitHub Copilot, Codeium, or a custom provider (e.g. Ollama) for AI code completion."}),s.jsx(D,{control:p.control,name:"completion.copilot",render:j=>{const{field:g}=j;return s.jsx("div",{className:"flex flex-col space-y-1",children:s.jsxs(T,{className:M,children:[s.jsx(C,{children:"Provider"}),s.jsx(E,{children:s.jsx(fe,{"data-testid":"copilot-select",onChange:b=>{b.target.value==="none"?g.onChange(!1):g.onChange(b.target.value)},value:g.value===!0?"github":g.value===!1?"none":g.value,disabled:g.disabled,className:"inline-flex mr-2",children:["none","github","codeium","custom"].map(_c)})}),s.jsx(P,{}),s.jsx(R,{userConfig:e,name:"completion.copilot"})]})})}}),w()]}),s.jsxs(ge,{title:"AI Keys",children:[s.jsx(D,{control:p.control,name:"ai.open_ai.api_key",render:j=>{const{field:g}=j;return s.jsxs("div",{className:"flex flex-col space-y-1",children:[s.jsxs(T,{className:M,children:[s.jsx(C,{children:"OpenAI API Key"}),s.jsx(E,{children:s.jsx(ue,{"data-testid":"ai-openai-api-key-input",className:"m-0 inline-flex",placeholder:"sk-proj...",...g,onChange:b=>{const W=b.target.value;W.includes("*")||g.onChange(W)}})}),s.jsx(P,{}),s.jsx(R,{userConfig:e,name:"ai.open_ai.api_key"})]}),s.jsxs(F,{children:["Your OpenAI API key from"," ",s.jsx(ce,{href:"https://platform.openai.com/account/api-keys",children:"platform.openai.com"}),"."]})]})}}),s.jsx(D,{control:p.control,name:"ai.anthropic.api_key",render:j=>{const{field:g}=j;return s.jsxs("div",{className:"flex flex-col space-y-1",children:[s.jsxs(T,{className:M,children:[s.jsx(C,{children:"Anthropic API Key"}),s.jsx(E,{children:s.jsx(ue,{"data-testid":"ai-anthropic-api-key-input",className:"m-0 inline-flex",placeholder:"sk-ant...",...g,onChange:b=>{const W=b.target.value;W.includes("*")||g.onChange(W)}})}),s.jsx(P,{}),s.jsx(R,{userConfig:e,name:"ai.anthropic.api_key"})]}),s.jsxs(F,{children:["Your Anthropic API key from"," ",s.jsx(ce,{href:"https://console.anthropic.com/settings/keys",children:"console.anthropic.com"}),"."]})]})}}),s.jsx(D,{control:p.control,name:"ai.google.api_key",render:j=>{const{field:g}=j;return s.jsxs("div",{className:"flex flex-col space-y-1",children:[s.jsxs(T,{className:M,children:[s.jsx(C,{children:"Google AI API Key"}),s.jsx(E,{children:s.jsx(ue,{"data-testid":"ai-google-api-key-input",className:"m-0 inline-flex",placeholder:"AI...",...g,onChange:b=>{const W=b.target.value;W.includes("*")||g.onChange(W)}})}),s.jsx(P,{}),s.jsx(R,{userConfig:e,name:"ai.google.api_key"})]}),s.jsxs(F,{children:["Your Google AI API key from"," ",s.jsx(ce,{href:"https://aistudio.google.com/app/apikey",children:"aistudio.google.com"}),"."]})]})}}),s.jsx("p",{className:"text-sm font-semibold mt-3",children:"AWS Bedrock Configuration"}),s.jsxs("p",{className:"text-sm text-muted-secondary mb-2",children:["To use AWS Bedrock, you need to configure AWS credentials and region. See the"," ",s.jsx(ce,{href:"https://docs.marimo.io/guides/editor_features/ai_completion.html#aws-bedrock",children:"documentation"})," ","for more details."]}),s.jsx(D,{control:p.control,disabled:y,name:"ai.bedrock.region_name",render:j=>{const{field:g}=j;return s.jsxs("div",{className:"flex flex-col space-y-1",children:[s.jsxs(T,{className:M,children:[s.jsx(C,{children:"AWS Region"}),s.jsx(E,{children:s.jsx(fe,{"data-testid":"bedrock-region-select",onChange:b=>g.onChange(b.target.value),value:typeof g.value=="string"?g.value:"us-east-1",disabled:g.disabled,className:"inline-flex mr-2",children:mc.map(Pc)})}),s.jsx(P,{}),s.jsx(R,{userConfig:e,name:"ai.bedrock.region_name"})]}),s.jsx(F,{children:"The AWS region where Bedrock service is available."})]})}}),s.jsx(D,{control:p.control,disabled:y,name:"ai.bedrock.profile_name",render:j=>{const{field:g}=j;return s.jsxs("div",{className:"flex flex-col space-y-1",children:[s.jsxs(T,{className:M,children:[s.jsx(C,{children:"AWS Profile Name (Optional)"}),s.jsx(E,{children:s.jsx(ue,{"data-testid":"bedrock-profile-input",className:"m-0 inline-flex",placeholder:"default",...g,value:g.value||""})}),s.jsx(P,{}),s.jsx(R,{userConfig:e,name:"ai.bedrock.profile_name"})]}),s.jsx(F,{children:"The AWS profile name from your ~/.aws/credentials file. Leave blank to use your default AWS credentials."})]})}})]}),s.jsxs(ge,{title:"AI Assist",children:[s.jsxs("p",{className:"text-sm text-muted-secondary",children:["Add an API key to ",s.jsx(Y,{className:"inline",children:"marimo.toml"})," to activate marimo's AI assistant; see"," ",s.jsx(ce,{href:"https://docs.marimo.io/guides/editor_features/ai_completion.html",children:"docs"})," ","for more info."]}),s.jsx(D,{control:p.control,disabled:y,name:"ai.open_ai.base_url",render:j=>{const{field:g}=j;return s.jsxs("div",{className:"flex flex-col space-y-1",children:[s.jsxs(T,{className:M,children:[s.jsx(C,{children:"Base URL"}),s.jsx(E,{children:s.jsx(ue,{"data-testid":"ai-base-url-input",className:"m-0 inline-flex",placeholder:"https://api.openai.com/v1",...g})}),s.jsx(P,{}),s.jsx(R,{userConfig:e,name:"ai.open_ai.base_url"})]}),s.jsx(F,{children:"This URL can be any OpenAI-compatible API endpoint."})]})}}),s.jsx(D,{control:p.control,disabled:y,name:"ai.open_ai.model",render:j=>{const{field:g}=j;return s.jsxs("div",{className:"flex flex-col space-y-1",children:[s.jsxs(T,{className:M,children:[s.jsx(C,{children:"Model"}),s.jsx(E,{children:s.jsx(ue,{list:"ai-model-datalist","data-testid":"ai-model-input",className:"m-0 inline-flex",placeholder:"gpt-4-turbo",...g})}),s.jsx(P,{}),s.jsx(R,{userConfig:e,name:"ai.open_ai.model"})]}),s.jsx("datalist",{id:"ai-model-datalist",children:rs.map(Ac)}),s.jsx(F,{children:'If the model starts with "claude-", we will use your Anthropic API key. If the model starts with "gemini-", we will use your Google AI API key. If the model starts with a "bedrock/" prefix followed by a model id (e.g., "bedrock/anthropic.claude-3-sonnet-20240229"), we will use your AWS Bedrock configuration. Otherwise, we will use your OpenAI API key.'})]})}}),s.jsx(D,{control:p.control,name:"ai.rules",render:j=>{const{field:g}=j;return s.jsxs("div",{className:"flex flex-col",children:[s.jsxs(T,{children:[s.jsx(C,{children:"Custom Rules"}),s.jsx(E,{children:s.jsx(ro,{"data-testid":"ai-rules-input",className:"m-0 inline-flex w-full h-32 p-2 text-sm",placeholder:"e.g. Always use type hints; prefer polars over pandas",...g,value:g.value})}),s.jsx(P,{}),s.jsx(R,{userConfig:e,name:"ai.rules"})]}),s.jsx(F,{children:"Custom rules to include in all AI completion prompts."})]})}})]})]});case"optionalDeps":return s.jsx(yc,{});case"labs":return s.jsxs(ge,{title:"Experimental Features",children:[s.jsx("p",{className:"text-sm text-muted-secondary mb-4",children:"\u26A0\uFE0F These features are experimental and may require restarting your notebook to take effect."}),s.jsx(D,{control:p.control,name:"experimental.inline_ai_tooltip",render:Mc}),s.jsx(D,{control:p.control,name:"experimental.rtc_v2",render:Rc}),s.jsx(D,{control:p.control,name:"experimental.performant_table_charts",render:j=>{const{field:g}=j;return s.jsxs("div",{className:"flex flex-col gap-y-1",children:[s.jsxs(T,{className:M,children:[s.jsx(C,{className:"font-normal",children:"Performant Table Charts"}),s.jsx(E,{children:s.jsx($,{"data-testid":"performant-table-charts-checkbox",checked:g.value===!0,onCheckedChange:g.onChange})})]}),s.jsx(R,{userConfig:e,name:"experimental.performant_table_charts"}),s.jsx(F,{children:"Enable experimental table charts which are computed on the backend."})]})}})]})}},t[10]=o,t[11]=c,t[12]=e,t[13]=p,t[14]=h,t[15]=w,t[16]=a,t[17]=i,t[18]=I):I=t[18];const k=I;let O,N,_;t[19]===Symbol.for("react.memo_cache_sentinel")?(O=s.jsx(Y,{className:"inline",children:"marimo.toml"}),N=s.jsx("br",{}),t[19]=O,t[20]=N):(O=t[19],N=t[20]),t[21]===Symbol.for("react.memo_cache_sentinel")?(_=s.jsxs("p",{className:"text-muted-secondary",children:["User configuration is stored in ",O,N,"Run ",s.jsx(Y,{className:"inline",children:"marimo config show"})," in your terminal to show your current configuration and file location."]}),t[21]=_):_=t[21];const z=_;let H,U,B,se,de,oe,ae,V,Q,J,ee,he;return t[22]!==p||t[23]!==h?(H=p.handleSubmit(h),t[22]=p,t[23]=h,t[24]=H):H=t[24],t[25]!==a?(U=j=>a(j),t[25]=a,t[26]=U):U=t[26],t[27]===Symbol.for("react.memo_cache_sentinel")?(B=os.map(Lc),t[27]=B):B=t[27],t[28]!==l?(se=s.jsx("div",{className:"p-2 text-xs text-muted-foreground self-start",children:s.jsxs("span",{children:["Version: ",l]})}),t[28]=l,t[29]=se):se=t[29],t[30]===Symbol.for("react.memo_cache_sentinel")?(de=s.jsx("div",{className:"flex-1"}),oe=!Ge()&&z,t[30]=de,t[31]=oe):(de=t[30],oe=t[31]),t[32]!==se?(ae=s.jsxs(ao,{className:"self-start max-h-none flex flex-col gap-2 shrink-0 bg-background flex-1 min-h-full",children:[B,se,de,oe]}),t[32]=se,t[33]=ae):ae=t[33],t[34]!==o||t[35]!==U||t[36]!==ae?(V=s.jsx(lo,{value:o,onValueChange:U,orientation:"vertical",className:"w-1/3 border-r h-full overflow-auto p-3",children:ae}),t[34]=o,t[35]=U,t[36]=ae,t[37]=V):V=t[37],t[38]!==k?(Q=k(),t[38]=k,t[39]=Q):Q=t[39],t[40]!==Q?(J=s.jsx("div",{className:"w-2/3 pl-6 gap-2 flex flex-col overflow-auto p-6",children:Q}),t[40]=Q,t[41]=J):J=t[41],t[42]!==V||t[43]!==J||t[44]!==H?(ee=s.jsxs("form",{ref:r,onChange:H,className:"flex text-pretty overflow-hidden",children:[V,J]}),t[42]=V,t[43]=J,t[44]=H,t[45]=ee):ee=t[45],t[46]!==p||t[47]!==ee?(he=s.jsx(Cn,{...p,children:ee}),t[46]=p,t[47]=ee,t[48]=he):he=t[48],he},ge=t=>{const e=G.c(5),{title:n,children:r}=t;let i,o;return e[0]!==n?(i=s.jsx(zi,{children:n}),e[0]=n,e[1]=i):i=e[1],e[2]!==r||e[3]!==i?(o=s.jsxs("div",{className:"flex flex-col gap-4 pb-4",children:[i,r]}),e[2]=r,e[3]=i,e[4]=o):o=e[4],o},R=t=>{const e=G.c(18),{userConfig:n,name:r}=t,{isOverridden:i,currentValue:o,overriddenValue:a}=is(n,r);if(!i)return null;let c,l,u,d;e[0]===Symbol.for("react.memo_cache_sentinel")?(c=s.jsxs("span",{children:["This setting is overridden by"," ",s.jsx(Y,{className:"inline",children:"pyproject.toml"}),"."]}),l=s.jsx("br",{}),e[0]=c,e[1]=l):(c=e[0],l=e[1]),e[2]===Symbol.for("react.memo_cache_sentinel")?(u=s.jsxs("span",{children:["Edit the ",s.jsx(Y,{className:"inline",children:"pyproject.toml"})," file directly to change this setting."]}),d=s.jsx("br",{}),e[2]=u,e[3]=d):(u=e[2],d=e[3]);const v=String(o);let p,m;e[4]!==v?(p=s.jsxs("span",{children:["User value: ",s.jsx("strong",{children:v})]}),e[4]=v,e[5]=p):p=e[5],e[6]===Symbol.for("react.memo_cache_sentinel")?(m=s.jsx("br",{}),e[6]=m):m=e[6];const h=String(a);let f,y,x;e[7]!==h?(f=s.jsxs("span",{children:["Project value: ",s.jsx("strong",{children:h})]}),e[7]=h,e[8]=f):f=e[8],e[9]!==p||e[10]!==f?(y=s.jsxs(s.Fragment,{children:[c,l,u,d,p,m,f]}),e[9]=p,e[10]=f,e[11]=y):y=e[11],e[12]===Symbol.for("react.memo_cache_sentinel")?(x=s.jsx(Qn,{className:"w-3 h-3"}),e[12]=x):x=e[12];const w=String(a);let I,k;return e[13]!==w?(I=s.jsxs("span",{className:"text-(--amber-12) text-xs flex items-center gap-1 border rounded px-2 py-1 bg-(--amber-2) border-(--amber-6) ml-1",children:[x,"Overridden by pyproject.toml [",w,"]"]}),e[13]=w,e[14]=I):I=e[14],e[15]!==y||e[16]!==I?(k=s.jsx(Ke,{content:y,children:I}),e[15]=y,e[16]=I,e[17]=k):k=e[17],k};function Ic(t){return s.jsx("option",{value:t,children:t},t)}function Sc(t){return s.jsx("option",{value:t,children:t},t)}function Oc(t){return s.jsx("option",{value:t,children:t},t)}function kc(t){return s.jsx("option",{value:t,children:t},t)}function Cc(t){return s.jsx("option",{value:t,children:t},t)}function Nc(t){return s.jsx("option",{value:t,children:t},t)}function Dc(t){return s.jsx("option",{value:t,children:t},t)}function Tc(t){return s.jsx("option",{value:t,children:t},t)}function Ec(t){return s.jsx("option",{value:t.value,children:t.label},t.value)}function _c(t){return s.jsx("option",{value:t,children:t},t)}function Pc(t){return s.jsx("option",{value:t,children:t},t)}function Ac(t){return s.jsx("option",{value:t,children:t},t)}function Mc(t){const{field:e}=t;return s.jsxs("div",{className:"flex flex-col gap-y-1",children:[s.jsxs(T,{className:M,children:[s.jsx(C,{className:"font-normal",children:"AI Edit Tooltip"}),s.jsx(E,{children:s.jsx($,{"data-testid":"inline-ai-checkbox",checked:e.value===!0,onCheckedChange:e.onChange})})]}),s.jsx(F,{children:'Enable experimental "Edit with AI" tooltip when selecting code.'})]})}function Rc(t){const{field:e}=t;return s.jsxs("div",{className:"flex flex-col gap-y-1",children:[s.jsxs(T,{className:M,children:[s.jsx(C,{className:"font-normal",children:"Real-Time Collaboration"}),s.jsx(E,{children:s.jsx($,{"data-testid":"rtc-checkbox",checked:e.value===!0,onCheckedChange:e.onChange})})]}),s.jsx(F,{children:"Enable experimental real-time collaboration. This change requires a page refresh to take effect."})]})}function Lc(t){return s.jsx(no,{value:t.id,className:"w-full text-left p-2 data-[state=active]:bg-primary data-[state=active]:text-primary-foreground justify-start",children:s.jsxs("div",{className:"flex gap-4 items-center text-lg overflow-hidden",children:[s.jsx("span",{className:Tt(t.className,"w-8 h-8 rounded flex items-center justify-center text-muted-foreground shrink-0"),children:s.jsx(t.Icon,{className:"w-4 h-4"})}),s.jsx("span",{className:"truncate",children:t.label})]})},t.id)}const In=Ve(!1);function Fc(){const t=G.c(5),e=Mt(as),n=Mt(In);let r;t[0]!==e||t[1]!==n?(r=a=>{e(a),n(!0)},t[0]=e,t[1]=n,t[2]=r):r=t[2];const i=r;let o;return t[3]!==i?(o={handleClick:i},t[3]=i,t[4]=o):o=t[4],o}const Hc=t=>{const e=G.c(32),{showAppConfig:n,disabled:r,tooltip:i}=t,o=n===void 0||n,a=r!==void 0&&r,c=i===void 0?"Settings":i,[l,u]=We(In),d=a?"disabled":"hint-green";let v,p,m;e[0]===Symbol.for("react.memo_cache_sentinel")?(v=s.jsx(Gn,{strokeWidth:1.8}),e[0]=v):v=e[0],e[1]!==c?(p=s.jsx(Ke,{content:c,children:v}),e[1]=c,e[2]=p):p=e[2],e[3]!==a||e[4]!==d||e[5]!==p?(m=s.jsx(Ot,{"aria-label":"Config","data-testid":"app-config-button",shape:"circle",size:"small",className:"h-[27px] w-[27px]",disabled:a,color:d,children:p}),e[3]=a,e[4]=d,e[5]=p,e[6]=m):m=e[6];const h=m;let f;e[7]===Symbol.for("react.memo_cache_sentinel")?(f=s.jsx(qn,{className:"w-[80vw] h-[70vh] overflow-hidden sm:max-w-5xl top-[15vh] p-0",children:s.jsx(wc,{})}),e[7]=f):f=e[7];const y=f;if(!o){let U,B;return e[8]!==h?(U=s.jsx(co,{children:h}),e[8]=h,e[9]=U):U=e[9],e[10]!==u||e[11]!==l||e[12]!==U?(B=s.jsxs(Pt,{open:l,onOpenChange:u,children:[U,y]}),e[10]=u,e[11]=l,e[12]=U,e[13]=B):B=e[13],B}let x,w,I,k,O,N,_,z,H;return e[14]!==h?(x=s.jsx(uo,{asChild:!0,children:h}),e[14]=h,e[15]=x):x=e[15],e[16]===Symbol.for("react.memo_cache_sentinel")?(w=s.jsx(Ul,{}),I=s.jsx("div",{className:"h-px bg-border my-2"}),e[16]=w,e[17]=I):(w=e[16],I=e[17]),e[18]!==u?(k=()=>u(!0),e[18]=u,e[19]=k):k=e[19],e[20]===Symbol.for("react.memo_cache_sentinel")?(O=s.jsx(Gn,{strokeWidth:1.8,className:"w-4 h-4 mr-2"}),e[20]=O):O=e[20],e[21]!==k?(N=s.jsxs(ho,{className:"w-[650px] overflow-auto max-h-[80vh] max-w-[80vw]",align:"end",side:"bottom",onFocusOutside:zc,children:[w,I,s.jsxs(me,{onClick:k,variant:"link",className:"px-0",children:[O,"User settings"]})]}),e[21]=k,e[22]=N):N=e[22],e[23]!==N||e[24]!==x?(_=s.jsxs(fo,{children:[x,N]}),e[23]=N,e[24]=x,e[25]=_):_=e[25],e[26]!==u||e[27]!==l?(z=s.jsx(Pt,{open:l,onOpenChange:u,children:y}),e[26]=u,e[27]=l,e[28]=z):z=e[28],e[29]!==_||e[30]!==z?(H=s.jsxs(s.Fragment,{children:[_,z]}),e[29]=_,e[30]=z,e[31]=H):H=e[31],H};function zc(t){return t.preventDefault()}const Uc=t=>{const e=G.c(15),{description:n,disabled:r,tooltip:i}=t,o=r!==void 0&&r,a=i===void 0?"Shutdown":i,{openConfirm:c,closeModal:l}=po(),{sendShutdown:u}=Me();let d;e[0]!==u?(d=()=>{u(),setTimeout(qc,200)},e[0]=u,e[1]=d):d=e[1];const v=d;if(Ge())return null;const p=o?"disabled":"red";let m,h,f,y;return e[2]!==l||e[3]!==n||e[4]!==v||e[5]!==c?(m=x=>{x.stopPropagation(),c({title:"Shutdown",description:n,variant:"destructive",confirmAction:s.jsx(go,{onClick:()=>{v(),l()},"aria-label":"Confirm Shutdown",children:"Shutdown"})})},e[2]=l,e[3]=n,e[4]=v,e[5]=c,e[6]=m):m=e[6],e[7]===Symbol.for("react.memo_cache_sentinel")?(h=s.jsx(lt,{strokeWidth:1}),e[7]=h):h=e[7],e[8]!==o||e[9]!==p||e[10]!==m?(f=s.jsx(Ot,{"aria-label":"Shutdown","data-testid":"shutdown-button",shape:"circle",size:"small",color:p,className:"h-[27px] w-[27px]",disabled:o,onClick:m,children:h}),e[8]=o,e[9]=p,e[10]=m,e[11]=f):f=e[11],e[12]!==f||e[13]!==a?(y=s.jsx(Ke,{content:a,children:f}),e[12]=f,e[13]=a,e[14]=y):y=e[14],y};function qc(){window.close()}function Bc(t){window.open(mo(`?file=${t}`).toString(),"_blank")}export{yo as A,xo as B,Hc as C,vc as D,Io as G,pc as K,So as L,Oo as M,No as P,Uc as S,Rl as T,Do as Y,wo as a,Yn as b,Ot as c,rc as d,tt as e,Ki as f,Fl as g,uc as h,Wi as i,Fc as j,wn as k,Bi as l,kt as m,Vi as n,Bc as o,Xn as p,$n as q,rs as r,In as s,Fi as t,Ll as u};
|
@@ -0,0 +1 @@
|
|
1
|
+
/*! tailwindcss v4.1.11 | MIT License | https://tailwindcss.com */.mo-button.gray{background-color:var(--slate-1);border-color:var(--slate-6);color:var(--slate-11)}.mo-button.gray:hover{background-color:var(--slate-3);border-color:var(--slate-8)}.mo-button.gray.selected .mo-button.gray:active{background-color:var(--slate-4);border-color:var(--slate-7)}.mo-button.white{background-color:var(--background)}@supports (color:color-mix(in lab,red,red)){.mo-button.white{background-color:color-mix(in srgb,var(--background),transparent 0%)}}.mo-button.white{border-color:var(--slate-7);color:var(--slate-11)}.mo-button.white:hover{background-color:var(--slate-1);border-color:var(--slate-8)}.mo-button.white.selected .mo-button.white:active{background-color:var(--slate-2);border-color:var(--slate-7)}.mo-button.disabled{background-color:var(--background)}@supports (color:color-mix(in lab,red,red)){.mo-button.disabled{background-color:color-mix(in srgb,var(--background),transparent 0%)}}.mo-button.disabled{border-color:var(--slate-6);color:var(--slate-7)}.mo-button.green{background-color:var(--grass-3);border-color:var(--grass-6);color:var(--grass-11)}.mo-button.green:hover{background-color:var(--grass-2);border-color:var(--grass-7)}.mo-button.green.selected .mo-button.green:active{background-color:var(--grass-4);border-color:var(--grass-7)}.mo-button.hint-green{background-color:var(--background)}@supports (color:color-mix(in lab,red,red)){.mo-button.hint-green{background-color:color-mix(in srgb,var(--background),transparent 0%)}}.mo-button.hint-green{border-color:var(--slate-7);color:var(--slate-11)}.mo-button.hint-green:hover{background-color:var(--grass-2);border-color:var(--grass-7);color:var(--grass-11)}.mo-button.hint-green.selected .mo-button.hint-green:active{background-color:var(--grass-4);border-color:var(--grass-7);color:var(--slate-11)}.mo-button.red{background-color:var(--red-3);border-color:var(--red-6);color:var(--red-11)}.mo-button.red:hover{background-color:var(--red-4);border-color:var(--red-8)}.mo-button.red.selected .mo-button.red:active{background-color:var(--red-5);border-color:var(--red-7)}.mo-button.yellow{background-color:var(--yellow-3);border-color:var(--yellow-6);color:var(--yellow-11)}.mo-button.yellow:hover{background-color:var(--yellow-4);border-color:var(--yellow-8)}.mo-button.yellow.selected .mo-button.yellow:active{background-color:var(--yellow-5);border-color:var(--yellow-7)}
|