@marimo-team/frontend 0.20.5-dev62 → 0.20.5-dev64

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.
@@ -1 +1 @@
1
- import{s as re}from"./chunk-LvLJmgfZ.js";import{d as oe,l as Le,p as ce,u as Y}from"./useEvent-O0nX5vok.js";import{t as Be}from"./react-Bj1aDYRI.js";import{A as Me,An as Ve,Ar as me,Bt as Ee,Cr as Pe,Dr as ie,Er as de,Kn as Oe,M as Ae,Mn as Re,Nt as Ue,Sr as ze,T as Ge,Tt as We,Yn as Ke,a as Ye,ar as se,br as he,dn as He,f as Je,gr as Xe,ir as Qe,kn as Ze,kr as ea,qn as aa,tr as ta,ui as sa,xr as ue,yr as xe,zt as la}from"./cells-5wegzPD4.js";import"./react-dom-CSu739Rf.js";import{t as pe}from"./compiler-runtime-B3qBwwSJ.js";import{n as na}from"./assertNever-CTRGz-ul.js";import"./tooltip-WkrsrB6k.js";import{t as H}from"./sortBy-CbaC49oe.js";import{t as fe}from"./add-connection-dialog-Dio0FGtu.js";import{o as ra}from"./utils-HIU-NsEv.js";import{t as oa}from"./ErrorBoundary-H5EQrcAX.js";import{t as ca}from"./jsx-runtime-icT_Ltz2.js";import{r as ma,t as ee}from"./button-BZAv3veu.js";import{t as O}from"./cn-BoaCR37F.js";import"./dist-B_cxg-E4.js";import{D as le,F as ia,I as da,L as ha,P as be,R as ua}from"./JsonOutput-BzXkaUJB.js";import"./cjs-BU2qXMKx.js";import"./main-DrBRErTM.js";import"./useNonce-BtW-rR_1.js";import{r as xa}from"./requests-Bgjtqo_1.js";import{t as pa}from"./createLucideIcon-Cm-Z7dYr.js";import{t as fa}from"./x-BI1M8X_v.js";import"./download-B8XlLSji.js";import"./markdown-renderer-D0ROu8n3.js";import{t as ge}from"./plus-dVmh0yTy.js";import{a as ba}from"./input-C5eatTLl.js";import{n as ga,o as ja}from"./column-preview-46vONjMD.js";import{t as Na}from"./workflow-BmeqNuSH.js";import"./dist-BNC_tnlW.js";import"./dist-CXLJUPFl.js";import"./dist-CQqv2gQL.js";import"./dist-8UD0A5sU.js";import"./dist-apDpadc4.js";import"./session-CXChHxAw.js";import"./Combination-CBJmtdux.js";import{t as ne}from"./tooltip-CNmaER6z.js";import"./purify.es-BBn8CPhf.js";import"./dates-BcvJrESI.js";import{t as ya}from"./context-CRmPPhx9.js";import"./popover-JNsSzROl.js";import"./vega-loader.browser-BJ9oKrvH.js";import"./defaultLocale-CuYNS33t.js";import"./defaultLocale-CGfP-Ye3.js";import{t as va}from"./copy-icon-Cu7az85f.js";import{n as wa}from"./multi-map-x_GQgXMS.js";import{t as je}from"./cell-link-C9qZWgbj.js";import{n as Ne}from"./useAsyncData-a8f2Q_nk.js";import{a as Sa,o as ae,t as _a,u as Ca}from"./command-B7XhH0hz.js";import"./chunk-5FQGJX7Z-DEi7JZeU.js";import"./katex-0Z75JF53.js";import{r as ka}from"./html-to-image-BYwkVvZl.js";import{o as $a}from"./focus-BjrLbkmu.js";import{a as Fa,i as Ta,n as Ia,o as ye,r as qa,t as Da}from"./table-CKtrITeZ.js";import{n as La}from"./icons-T5yQRjuT.js";import{t as ve}from"./useAddCell-CKoCjXpL.js";import{a as we,i as te,o as Se,r as _e,s as Ce,t as Ba,u as Ma}from"./components-CMr3IGTz.js";import{t as Va}from"./empty-state-qEnkddw9.js";import{n as Ea,t as Pa}from"./common-NG61OZ4y.js";import{a as Oa,i as Aa,n as ke,r as $e,t as Fe}from"./components-BtpAwxaG.js";var Ra=pa("square-equal",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M7 10h10",key:"1101jm"}],["path",{d:"M7 14h10",key:"1mhdw3"}]]),U=pe(),C=re(Be(),1),t=re(ca(),1),_={engineEmpty:"pl-3",engine:"pl-3 pr-2",database:"pl-4",schemaEmpty:"pl-8",schema:"pl-7",tableLoading:"pl-11",tableSchemaless:"pl-8",tableWithSchema:"pl-12",columnLocal:"pl-5",columnSql:"pl-13",columnPreview:"pl-10"},Ua=ce(a=>{let e=a(ue),s=a(Re),l=a(Ye);return H(e,r=>{if(!r.variable_name)return-1;let c=Object.values(s).find(j=>j.name===r.variable_name);if(!c)return 0;let n=l.inOrderIds.indexOf(c.declaredBy[0]);return n===-1?0:n})});const Te=ce(a=>{let e=new Map(a(Xe));for(let s of me){let l=e.get(s);l&&(l.databases.length===0&&e.delete(s),l.databases.length===1&&l.databases[0].name==="memory"&&l.databases[0].schemas.length===0&&e.delete(s))}return H([...e.values()],s=>me.has(s.name)?1:0)}),za=()=>{let a=(0,U.c)(32),[e,s]=C.useState(""),l=oe(he),r=Y(Ua),c=Y(Te);if(r.length===0&&c.length===0){let p;return a[0]===Symbol.for("react.memo_cache_sentinel")?(p=(0,t.jsx)(Va,{title:"No tables found",description:"Any datasets/dataframes in the global scope will be shown here.",action:(0,t.jsx)(fe,{children:(0,t.jsxs)(ee,{variant:"outline",size:"sm",children:["Add database or catalog",(0,t.jsx)(ge,{className:"h-4 w-4 ml-2"})]})}),icon:(0,t.jsx)(se,{})}),a[0]=p):p=a[0],p}let n=!!e.trim(),j;a[1]===l?j=a[2]:(j=p=>{l(p.length>0),s(p)},a[1]=l,a[2]=j);let b;a[3]!==e||a[4]!==j?(b=(0,t.jsx)(Sa,{placeholder:"Search tables...",className:"h-6 m-1",value:e,onValueChange:j,rootClassName:"flex-1 border-r border-b-0"}),a[3]=e,a[4]=j,a[5]=b):b=a[5];let g;a[6]===n?g=a[7]:(g=n&&(0,t.jsx)("button",{type:"button",className:"float-right border-b px-2 m-0 h-full hover:bg-accent hover:text-accent-foreground",onClick:()=>s(""),children:(0,t.jsx)(fa,{className:"h-4 w-4"})}),a[6]=n,a[7]=g);let u;a[8]===Symbol.for("react.memo_cache_sentinel")?(u=(0,t.jsx)(fe,{children:(0,t.jsx)(ee,{variant:"ghost",size:"sm",className:"px-2 rounded-none focus-visible:outline-hidden",children:(0,t.jsx)(ge,{className:"h-4 w-4"})})}),a[8]=u):u=a[8];let m;a[9]!==b||a[10]!==g?(m=(0,t.jsxs)("div",{className:"flex items-center w-full border-b",children:[b,g,u]}),a[9]=b,a[10]=g,a[11]=m):m=a[11];let o;if(a[12]!==c||a[13]!==n||a[14]!==e){let p;a[16]!==n||a[17]!==e?(p=f=>(0,t.jsx)(Ga,{connection:f,hasChildren:f.databases.length>0,children:f.databases.map(N=>(0,t.jsx)(Wa,{engineName:f.name,database:N,hasSearch:n,children:(0,t.jsx)(Ka,{schemas:N.schemas,defaultSchema:f.default_schema,defaultDatabase:f.default_database,engineName:f.name,databaseName:N.name,hasSearch:n,searchValue:e,dialect:f.dialect})},N.name))},f.name),a[16]=n,a[17]=e,a[18]=p):p=a[18],o=c.map(p),a[12]=c,a[13]=n,a[14]=e,a[15]=o}else o=a[15];let h;a[19]!==c.length||a[20]!==r.length?(h=c.length>0&&r.length>0&&(0,t.jsxs)(_e,{className:_.engine,children:[(0,t.jsx)(La,{className:"h-4 w-4 text-muted-foreground"}),(0,t.jsx)("span",{className:"text-xs",children:"Python"})]}),a[19]=c.length,a[20]=r.length,a[21]=h):h=a[21];let x;a[22]!==e||a[23]!==r?(x=r.length>0&&(0,t.jsx)(Ie,{tables:r,searchValue:e}),a[22]=e,a[23]=r,a[24]=x):x=a[24];let d;a[25]!==o||a[26]!==h||a[27]!==x?(d=(0,t.jsxs)(Ca,{className:"flex flex-col",children:[o,h,x]}),a[25]=o,a[26]=h,a[27]=x,a[28]=d):d=a[28];let i;return a[29]!==m||a[30]!==d?(i=(0,t.jsxs)(_a,{className:"border-b bg-background rounded-none h-full pb-10 overflow-auto outline-hidden",shouldFilter:!1,children:[m,d]}),a[29]=m,a[30]=d,a[31]=i):i=a[31],i};var Ga=a=>{let e=(0,U.c)(25),{connection:s,children:l,hasChildren:r}=a,c=s.name===ea,n=c?"In-Memory":s.name,{previewDataSourceConnection:j}=xa(),b;e[0]!==s.name||e[1]!==j?(b=async()=>{await j({engine:s.name})},e[0]=s.name,e[1]=j,e[2]=b):b=e[2];let g=b,u;e[3]===s.dialect?u=e[4]:(u=(0,t.jsx)(We,{className:"h-4 w-4 text-muted-foreground",name:s.dialect}),e[3]=s.dialect,e[4]=u);let m;e[5]===s.dialect?m=e[6]:(m=Oe(s.dialect),e[5]=s.dialect,e[6]=m);let o;e[7]===m?o=e[8]:(o=(0,t.jsx)("span",{className:"text-xs",children:m}),e[7]=m,e[8]=o);let h=n,x;e[9]===h?x=e[10]:(x=(0,t.jsxs)("span",{className:"text-xs text-muted-foreground",children:["(",(0,t.jsx)(Oa,{variableName:h}),")"]}),e[9]=h,e[10]=x);let d;e[11]!==g||e[12]!==c?(d=!c&&(0,t.jsx)(Ma,{onClick:g,tooltip:"Refresh connection",className:"ml-auto h-4 p-0",iconClassName:"h-3.5 w-3.5"}),e[11]=g,e[12]=c,e[13]=d):d=e[13];let i;e[14]!==u||e[15]!==o||e[16]!==x||e[17]!==d?(i=(0,t.jsxs)(_e,{className:_.engine,children:[u,o,x,d]}),e[14]=u,e[15]=o,e[16]=x,e[17]=d,e[18]=i):i=e[18];let p;e[19]!==l||e[20]!==r?(p=r?l:(0,t.jsx)(te,{content:"No databases available",className:_.engineEmpty}),e[19]=l,e[20]=r,e[21]=p):p=e[21];let f;return e[22]!==i||e[23]!==p?(f=(0,t.jsxs)(t.Fragment,{children:[i,p]}),e[22]=i,e[23]=p,e[24]=f):f=e[24],f},Wa=a=>{let e=(0,U.c)(26),{hasSearch:s,engineName:l,database:r,children:c}=a,[n,j]=C.useState(!1),[b,g]=C.useState(!1),[u,m]=C.useState(s);u!==s&&(m(s),j(s));let o;e[0]===Symbol.for("react.memo_cache_sentinel")?(o=O("text-sm flex flex-row gap-1 items-center cursor-pointer rounded-none",_.database),e[0]=o):o=e[0];let h;e[1]!==n||e[2]!==b?(h=()=>{j(!n),g(!b)},e[1]=n,e[2]=b,e[3]=h):h=e[3];let x=`${l}:${r.name}`,d;e[4]===n?d=e[5]:(d=(0,t.jsx)(Ce,{isExpanded:n}),e[4]=n,e[5]=d);let i=b&&n?"text-foreground":"text-muted-foreground",p;e[6]===i?p=e[7]:(p=O("h-4 w-4",i),e[6]=i,e[7]=p);let f;e[8]===p?f=e[9]:(f=(0,t.jsx)(se,{className:p}),e[8]=p,e[9]=f);let N=b&&n&&"font-semibold",y;e[10]===N?y=e[11]:(y=O(N),e[10]=N,e[11]=y);let v;e[12]===r.name?v=e[13]:(v=r.name===""?(0,t.jsx)("i",{children:"Not connected"}):r.name,e[12]=r.name,e[13]=v);let w;e[14]!==v||e[15]!==y?(w=(0,t.jsx)("span",{className:y,children:v}),e[14]=v,e[15]=y,e[16]=w):w=e[16];let S;e[17]!==w||e[18]!==h||e[19]!==x||e[20]!==d||e[21]!==f?(S=(0,t.jsxs)(ae,{className:o,onSelect:h,value:x,children:[d,f,w]}),e[17]=w,e[18]=h,e[19]=x,e[20]=d,e[21]=f,e[22]=S):S=e[22];let q=n&&c,k;return e[23]!==S||e[24]!==q?(k=(0,t.jsxs)(t.Fragment,{children:[S,q]}),e[23]=S,e[24]=q,e[25]=k):k=e[25],k},Ka=a=>{let e=(0,U.c)(22),{schemas:s,defaultSchema:l,defaultDatabase:r,dialect:c,engineName:n,databaseName:j,hasSearch:b,searchValue:g}=a;if(s.length===0){let o;return e[0]===Symbol.for("react.memo_cache_sentinel")?(o=(0,t.jsx)(te,{content:"No schemas available",className:_.schemaEmpty}),e[0]=o):o=e[0],o}let u;if(e[1]!==j||e[2]!==r||e[3]!==l||e[4]!==c||e[5]!==n||e[6]!==b||e[7]!==s||e[8]!==g){let o;e[10]===g?o=e[11]:(o=d=>g?d.tables.some(i=>i.name.toLowerCase().includes(g.toLowerCase())):!0,e[10]=g,e[11]=o);let h=s.filter(o),x;e[12]!==j||e[13]!==r||e[14]!==l||e[15]!==c||e[16]!==n||e[17]!==b||e[18]!==g?(x=d=>(0,t.jsx)(Ya,{databaseName:j,schema:d,hasSearch:b,children:(0,t.jsx)(Ie,{tables:d.tables,searchValue:g,sqlTableContext:{engine:n,database:j,schema:d.name,defaultSchema:l,defaultDatabase:r,dialect:c}})},d.name),e[12]=j,e[13]=r,e[14]=l,e[15]=c,e[16]=n,e[17]=b,e[18]=g,e[19]=x):x=e[19],u=h.map(x),e[1]=j,e[2]=r,e[3]=l,e[4]=c,e[5]=n,e[6]=b,e[7]=s,e[8]=g,e[9]=u}else u=e[9];let m;return e[20]===u?m=e[21]:(m=(0,t.jsx)(t.Fragment,{children:u}),e[20]=u,e[21]=m),m},Ya=a=>{let e=(0,U.c)(24),{databaseName:s,schema:l,children:r,hasSearch:c}=a,[n,j]=C.useState(c),[b,g]=C.useState(!1),u=`${s}:${l.name}`;if(de(l.name))return r;let m;e[0]===Symbol.for("react.memo_cache_sentinel")?(m=O("text-sm flex flex-row gap-1 items-center cursor-pointer rounded-none",_.schema),e[0]=m):m=e[0];let o;e[1]!==n||e[2]!==b?(o=()=>{j(!n),g(!b)},e[1]=n,e[2]=b,e[3]=o):o=e[3];let h;e[4]===n?h=e[5]:(h=(0,t.jsx)(Ce,{isExpanded:n}),e[4]=n,e[5]=h);let x=b&&n&&"text-foreground",d;e[6]===x?d=e[7]:(d=O("h-4 w-4 text-muted-foreground",x),e[6]=x,e[7]=d);let i;e[8]===d?i=e[9]:(i=(0,t.jsx)(ta,{className:d}),e[8]=d,e[9]=i);let p=b&&n&&"font-semibold",f;e[10]===p?f=e[11]:(f=O(p),e[10]=p,e[11]=f);let N;e[12]!==l.name||e[13]!==f?(N=(0,t.jsx)("span",{className:f,children:l.name}),e[12]=l.name,e[13]=f,e[14]=N):N=e[14];let y;e[15]!==o||e[16]!==h||e[17]!==i||e[18]!==N||e[19]!==u?(y=(0,t.jsxs)(ae,{className:m,onSelect:o,value:u,children:[h,i,N]}),e[15]=o,e[16]=h,e[17]=i,e[18]=N,e[19]=u,e[20]=y):y=e[20];let v=n&&r,w;return e[21]!==y||e[22]!==v?(w=(0,t.jsxs)(t.Fragment,{children:[y,v]}),e[21]=y,e[22]=v,e[23]=w):w=e[23],w},Ie=a=>{let e=(0,U.c)(24),{tables:s,sqlTableContext:l,searchValue:r}=a,{addTableList:c}=xe(),[n,j]=C.useState(!1),[b,g]=C.useState(!1),u;e[0]!==c||e[1]!==l||e[2]!==s.length||e[3]!==n?(u=async()=>{if(s.length===0&&l&&!n){j(!0),g(!0);let{engine:i,database:p,schema:f}=l,N=await Ee.request({engine:i,database:p,schema:f});if(!(N!=null&&N.tables))throw g(!1),Error("No tables available");c({tables:N.tables,sqlTableContext:l}),g(!1)}},e[0]=c,e[1]=l,e[2]=s.length,e[3]=n,e[4]=u):u=e[4];let m;e[5]!==l||e[6]!==s.length||e[7]!==n?(m=[s.length,l,n],e[5]=l,e[6]=s.length,e[7]=n,e[8]=m):m=e[8];let{isPending:o,error:h}=Ne(u,m);if(o||b){let i;return e[9]===Symbol.for("react.memo_cache_sentinel")?(i=(0,t.jsx)(Se,{message:"Loading tables...",className:_.tableLoading}),e[9]=i):i=e[9],i}if(h){let i;return e[10]===h?i=e[11]:(i=(0,t.jsx)(we,{error:h,className:_.tableLoading}),e[10]=h,e[11]=i),i}if(s.length===0){let i;return e[12]===Symbol.for("react.memo_cache_sentinel")?(i=(0,t.jsx)(te,{content:"No tables found",className:_.tableLoading}),e[12]=i):i=e[12],i}let x;if(e[13]!==r||e[14]!==l||e[15]!==s){let i;e[17]===r?i=e[18]:(i=N=>r?N.name.toLowerCase().includes(r.toLowerCase()):!0,e[17]=r,e[18]=i);let p=s.filter(i),f;e[19]!==r||e[20]!==l?(f=N=>(0,t.jsx)(Ha,{table:N,sqlTableContext:l,isSearching:!!r},N.name),e[19]=r,e[20]=l,e[21]=f):f=e[21],x=p.map(f),e[13]=r,e[14]=l,e[15]=s,e[16]=x}else x=e[16];let d;return e[22]===x?d=e[23]:(d=(0,t.jsx)(t.Fragment,{children:x}),e[22]=x,e[23]=d),d},Ha=a=>{let e=(0,U.c)(64),{table:s,sqlTableContext:l,isSearching:r}=a,{addTable:c}=xe(),[n,j]=C.useState(!1),[b,g]=C.useState(!1),u=s.columns.length>0,m;e[0]!==c||e[1]!==n||e[2]!==l||e[3]!==s.name||e[4]!==u||e[5]!==b?(m=async()=>{if(n&&!u&&l&&!b){g(!0);let{engine:B,database:Q,schema:De}=l,Z=await la.request({engine:B,database:Q,schema:De,tableName:s.name});if(!(Z!=null&&Z.table))throw Error("No table details available");c({table:Z.table,sqlTableContext:l})}},e[0]=c,e[1]=n,e[2]=l,e[3]=s.name,e[4]=u,e[5]=b,e[6]=m):m=e[6];let o;e[7]!==n||e[8]!==u?(o=[n,u],e[7]=n,e[8]=u,e[9]=o):o=e[9];let{isFetching:h,isPending:x,error:d}=Ne(m,o),i=Y(ra),p=$a(),{createNewCell:f}=Ge(),N=ve(),y;e[10]!==N||e[11]!==i||e[12]!==f||e[13]!==p||e[14]!==l||e[15]!==s?(y=()=>{ka({autoInstantiate:i,createNewCell:f,fromCellId:p}),N((()=>{if(s.source_type==="catalog"){let B=l!=null&&l.database?`${l.database}.${s.name}`:s.name;return`${s.engine}.load_table("${B}")`}if(l)return ie({table:s,columnName:"*",sqlTableContext:l});switch(s.source_type){case"local":return`mo.ui.table(${s.name})`;case"duckdb":case"connection":return ie({table:s,columnName:"*",sqlTableContext:l});default:return na(s.source_type),""}})())},e[10]=N,e[11]=i,e[12]=f,e[13]=p,e[14]=l,e[15]=s,e[16]=y):y=e[16];let v=y,w;e[17]!==s.num_columns||e[18]!==s.num_rows?(w=()=>{let B=[];return s.num_rows!=null&&B.push(`${s.num_rows} rows`),s.num_columns!=null&&B.push(`${s.num_columns} columns`),B.length===0?null:(0,t.jsx)("div",{className:"flex flex-row gap-2 items-center pl-6 group-hover:hidden",children:(0,t.jsx)("span",{className:"text-xs text-muted-foreground",children:B.join(", ")})})},e[17]=s.num_columns,e[18]=s.num_rows,e[19]=w):w=e[19];let S=w,q;e[20]!==d||e[21]!==h||e[22]!==x||e[23]!==l||e[24]!==s?(q=()=>{if(x||h)return(0,t.jsx)(Se,{message:"Loading columns...",className:_.tableLoading});if(d)return(0,t.jsx)(we,{error:d,className:_.tableLoading});let B=s.columns;return B.length===0?(0,t.jsx)(te,{content:"No columns found",className:_.tableLoading}):B.map(Q=>(0,t.jsx)(Ja,{table:s,column:Q,sqlTableContext:l},Q.name))},e[20]=d,e[21]=h,e[22]=x,e[23]=l,e[24]=s,e[25]=q):q=e[25];let k=q,D;e[26]!==n||e[27]!==r||e[28]!==s.source_type||e[29]!==s.type?(D=()=>{if(s.source_type!=="local")return(0,t.jsx)(s.type==="table"?Ke:Qe,{className:"h-3 w-3",strokeWidth:n||r?2.5:void 0})},e[26]=n,e[27]=r,e[28]=s.source_type,e[29]=s.type,e[30]=D):D=e[30];let M=D,V=l?`${l.database}.${l.schema}.${s.name}`:s.name,E=l&&(de(l.schema)?_.tableSchemaless:_.tableWithSchema),P=(n||r)&&"font-semibold",$;e[31]!==E||e[32]!==P?($=O("rounded-none group h-8 cursor-pointer",E,P),e[31]=E,e[32]=P,e[33]=$):$=e[33];let F;e[34]===n?F=e[35]:(F=()=>j(!n),e[34]=n,e[35]=F);let T;e[36]===M?T=e[37]:(T=M(),e[36]=M,e[37]=T);let L;e[38]===s.name?L=e[39]:(L=(0,t.jsx)("span",{className:"text-sm",children:s.name}),e[38]=s.name,e[39]=L);let A;e[40]!==T||e[41]!==L?(A=(0,t.jsxs)("div",{className:"flex gap-2 items-center flex-1 pl-1",children:[T,L]}),e[40]=T,e[41]=L,e[42]=A):A=e[42];let R;e[43]===S?R=e[44]:(R=S(),e[43]=S,e[44]=R);let I;e[45]===v?I=e[46]:(I=ma.stopPropagation(()=>v()),e[45]=v,e[46]=I);let J;e[47]===Symbol.for("react.memo_cache_sentinel")?(J=(0,t.jsx)(ja,{className:"h-3 w-3"}),e[47]=J):J=e[47];let G;e[48]===I?G=e[49]:(G=(0,t.jsx)(ne,{content:"Add table to notebook",delayDuration:400,children:(0,t.jsx)(ee,{className:"group-hover:inline-flex hidden",variant:"text",size:"icon",onClick:I,children:J})}),e[48]=I,e[49]=G);let W;e[50]!==n||e[51]!==F||e[52]!==A||e[53]!==R||e[54]!==G||e[55]!==$||e[56]!==V?(W=(0,t.jsxs)(ae,{className:$,value:V,"aria-selected":n,forceMount:!0,onSelect:F,children:[A,R,G]}),e[50]=n,e[51]=F,e[52]=A,e[53]=R,e[54]=G,e[55]=$,e[56]=V,e[57]=W):W=e[57];let K;e[58]!==n||e[59]!==k?(K=n&&k(),e[58]=n,e[59]=k,e[60]=K):K=e[60];let X;return e[61]!==W||e[62]!==K?(X=(0,t.jsxs)(t.Fragment,{children:[W,K]}),e[61]=W,e[62]=K,e[63]=X):X=e[63],X},Ja=a=>{var A,R;let e=(0,U.c)(48),{table:s,column:l,sqlTableContext:r}=a,[c,n]=C.useState(!1),j=Y(he),b=oe(ze);j&&c&&n(!1),b(c?I=>new Set([...I,`${s.name}:${l.name}`]):I=>(I.delete(`${s.name}:${l.name}`),new Set(I)));let g=ve(),{columnsPreviews:u}=Pe(),m;e[0]!==l.name||e[1]!==s.primary_keys?(m=((A=s.primary_keys)==null?void 0:A.includes(l.name))||!1,e[0]=l.name,e[1]=s.primary_keys,e[2]=m):m=e[2];let o=m,h;e[3]!==l.name||e[4]!==s.indexes?(h=((R=s.indexes)==null?void 0:R.includes(l.name))||!1,e[3]=l.name,e[4]=s.indexes,e[5]=h):h=e[5];let x=h,d;e[6]===g?d=e[7]:(d=I=>{g(I)},e[6]=g,e[7]=d);let i=d,p=Xa,f=c?"font-semibold":"",N;e[8]!==l.name||e[9]!==f?(N=(0,t.jsx)("span",{className:f,children:l.name}),e[8]=l.name,e[9]=f,e[10]=N):N=e[10];let y=N,v=`${s.name}.${l.name}`,w=`${s.name}.${l.name}`,S;e[11]===c?S=e[12]:(S=()=>n(!c),e[11]=c,e[12]=S);let q=r?_.columnSql:_.columnLocal,k;e[13]===q?k=e[14]:(k=O("flex flex-row gap-2 items-center flex-1",q),e[13]=q,e[14]=k);let D;e[15]!==l.type||e[16]!==y?(D=(0,t.jsx)(Ba,{columnName:y,dataType:l.type}),e[15]=l.type,e[16]=y,e[17]=D):D=e[17];let M;e[18]===o?M=e[19]:(M=o&&p({tooltipContent:"Primary key",content:"PK"}),e[18]=o,e[19]=M);let V;e[20]===x?V=e[21]:(V=x&&p({tooltipContent:"Indexed",content:"IDX"}),e[20]=x,e[21]=V);let E;e[22]!==k||e[23]!==D||e[24]!==M||e[25]!==V?(E=(0,t.jsxs)("div",{className:k,children:[D,M,V]}),e[22]=k,e[23]=D,e[24]=M,e[25]=V,e[26]=E):E=e[26];let P;e[27]===l.name?P=e[28]:(P=(0,t.jsx)(ne,{content:"Copy column name",delayDuration:400,children:(0,t.jsx)(ee,{variant:"text",size:"icon",className:"group-hover:opacity-100 opacity-0 hover:bg-muted text-muted-foreground hover:text-foreground",children:(0,t.jsx)(va,{tooltip:!1,value:l.name,className:"h-3 w-3"})})}),e[27]=l.name,e[28]=P);let $;e[29]===l.external_type?$=e[30]:($=(0,t.jsx)("span",{className:"text-xs text-muted-foreground",children:l.external_type}),e[29]=l.external_type,e[30]=$);let F;e[31]!==E||e[32]!==P||e[33]!==$||e[34]!==v||e[35]!==w||e[36]!==S?(F=(0,t.jsxs)(ae,{className:"rounded-none py-1 group cursor-pointer",value:w,onSelect:S,children:[E,P,$]},v),e[31]=E,e[32]=P,e[33]=$,e[34]=v,e[35]=w,e[36]=S,e[37]=F):F=e[37];let T;e[38]!==l||e[39]!==u||e[40]!==i||e[41]!==c||e[42]!==r||e[43]!==s?(T=c&&(0,t.jsx)("div",{className:O(_.columnPreview,"pr-2 py-2 bg-(--slate-1) shadow-inner border-b"),children:(0,t.jsx)(oa,{children:(0,t.jsx)(ga,{table:s,column:l,onAddColumnChart:i,preview:u.get(r?`${r.database}.${r.schema}.${s.name}:${l.name}`:`${s.name}:${l.name}`),sqlTableContext:r})})}),e[38]=l,e[39]=u,e[40]=i,e[41]=c,e[42]=r,e[43]=s,e[44]=T):T=e[44];let L;return e[45]!==F||e[46]!==T?(L=(0,t.jsxs)(t.Fragment,{children:[F,T]}),e[45]=F,e[46]=T,e[47]=L):L=e[47],L};function Xa(a){let{tooltipContent:e,content:s}=a;return(0,t.jsx)(ne,{content:e,delayDuration:100,children:(0,t.jsx)("span",{className:"text-xs text-black bg-gray-100 dark:invert rounded px-1",children:s})})}function is(a){return a}var z={name:"name",type:"type-value",defs:"defs-refs"},Qa=[{id:z.name,accessorFn:a=>[a.name,a.declaredBy],enableSorting:!0,sortingFn:"alphanumeric",header:({column:a})=>(0,t.jsx)(le,{header:"Name",column:a}),cell:({getValue:a})=>{let[e,s]=a();return(0,t.jsx)(Pa,{name:e,declaredBy:s})}},{id:z.type,accessorFn:a=>[a.dataType,a.value],enableSorting:!0,sortingFn:"alphanumeric",header:({column:a})=>(0,t.jsx)(le,{header:(0,t.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,t.jsx)("span",{children:"Type"}),(0,t.jsx)("span",{children:"Value"})]}),column:a}),cell:({getValue:a})=>{let[e,s]=a();return(0,t.jsxs)("div",{className:"max-w-[150px]",children:[(0,t.jsx)("div",{className:"text-ellipsis overflow-hidden whitespace-nowrap text-muted-foreground font-mono text-xs",children:e}),(0,t.jsx)("div",{className:"text-ellipsis overflow-hidden whitespace-nowrap",title:s??"",children:s})]})}},{id:z.defs,accessorFn:a=>[a.declaredBy,a.usedBy,a.name,a.declaredByNames,a.usedByNames],enableSorting:!0,sortingFn:"basic",header:({column:a})=>(0,t.jsx)(le,{header:(0,t.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,t.jsx)("span",{children:"Declared By"}),(0,t.jsx)("span",{children:"Used By"})]}),column:a}),cell:({getValue:a})=>{let[e,s,l]=a(),r=c=>{let n=Je(c);n&&He(n,l)};return(0,t.jsxs)("div",{className:"flex flex-col gap-1 py-1",children:[(0,t.jsxs)("div",{className:"flex flex-row overflow-auto gap-2 items-center",children:[(0,t.jsx)("span",{title:"Declared by",children:(0,t.jsx)(Ra,{className:"w-3.5 h-3.5 text-muted-foreground"})}),e.length===1?(0,t.jsx)(je,{variant:"focus",cellId:e[0],skipScroll:!0,onClick:()=>r(e[0])}):(0,t.jsx)("div",{className:"text-destructive flex flex-row gap-2",children:e.slice(0,3).map((c,n)=>(0,t.jsxs)("span",{className:"flex",children:[(0,t.jsx)(je,{variant:"focus",cellId:c,skipScroll:!0,className:"whitespace-nowrap text-destructive",onClick:()=>r(c)},c),n<e.length-1&&", "]},c))})]}),(0,t.jsxs)("div",{className:"flex flex-row overflow-auto gap-2 items-baseline",children:[(0,t.jsx)("span",{title:"Used by",children:(0,t.jsx)(Na,{className:"w-3.5 h-3.5 text-muted-foreground"})}),(0,t.jsx)(Ea,{maxCount:3,cellIds:s,skipScroll:!0,onClick:r})]})]})}}];function Za({variables:a,sort:e,cellIdToIndex:s}){e||(e={id:z.defs,desc:!1});let l=[];switch(e.id){case z.name:l=H(a,r=>r.name);break;case z.type:l=H(a,r=>r.dataType);break;case z.defs:l=H(a,r=>s.get(r.declaredBy[0]));break}return e.desc?l.reverse():l}const qe=(0,C.memo)(({className:a,cellIds:e,variables:s})=>{let[l,r]=C.useState([]),[c,n]=C.useState(""),j=Ae(),{locale:b}=ya(),g=(0,C.useMemo)(()=>{let m=o=>{let h=j[o];return Ue(h)?`cell-${e.indexOf(o)}`:h??`cell-${e.indexOf(o)}`};return Object.values(s).map(o=>({...o,declaredByNames:o.declaredBy.map(m),usedByNames:o.usedBy.map(m)}))},[s,j,e]),u=ia({data:(0,C.useMemo)(()=>{let m=new Map;return e.forEach((o,h)=>m.set(o,h)),Za({variables:g,sort:l[0],cellIdToIndex:m})},[g,l,e]),columns:Qa,getCoreRowModel:da(),onGlobalFilterChange:n,getFilteredRowModel:ha(),enableFilters:!0,enableGlobalFilter:!0,enableColumnPinning:!1,getColumnCanGlobalFilter(m){return m.columnDef.enableGlobalFilter??!0},globalFilterFn:"auto",manualSorting:!0,locale:b,onSortingChange:r,getSortedRowModel:ua(),state:{sorting:l,globalFilter:c}});return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(ba,{className:"w-full",placeholder:"Search",value:c,onChange:m=>n(m.target.value)}),(0,t.jsxs)(Da,{className:O("w-full text-sm flex-1 border-separate border-spacing-0",a),children:[(0,t.jsx)(Fa,{children:(0,t.jsx)(ye,{className:"whitespace-nowrap text-xs",children:u.getFlatHeaders().map(m=>(0,t.jsx)(Ta,{className:"sticky top-0 bg-background border-b",children:be(m.column.columnDef.header,m.getContext())},m.id))})}),(0,t.jsx)(Ia,{children:u.getRowModel().rows.map(m=>(0,t.jsx)(ye,{className:"hover:bg-accent",children:m.getVisibleCells().map(o=>(0,t.jsx)(qa,{className:"border-b",children:be(o.column.columnDef.cell,o.getContext())},o.id))},m.id))})]})]})});qe.displayName="VariableTable";var et=pe(),at=sa("marimo:session-panel:state",{openSections:["variables"],hasUserInteracted:!1},Ze),tt=()=>{let a=(0,et.c)(24),e=Ve(),s=Me(),l=Y(ue),r=Y(Te),[c,n]=Le(at),j=l.length+r.length,b;a[0]!==j||a[1]!==c.hasUserInteracted||a[2]!==c.openSections?(b=!c.hasUserInteracted&&j>0?[...new Set([...c.openSections,"datasources"])]:c.openSections,a[0]=j,a[1]=c.hasUserInteracted,a[2]=c.openSections,a[3]=b):b=a[3];let g=b,u;a[4]===n?u=a[5]:(u=v=>{n({openSections:v,hasUserInteracted:!0})},a[4]=n,a[5]=u);let m=u,o=!g.includes("datasources")&&j>0,h;a[6]===Symbol.for("react.memo_cache_sentinel")?(h=(0,t.jsx)(se,{className:"w-4 h-4"}),a[6]=h):h=a[6];let x;a[7]!==j||a[8]!==o?(x=o&&(0,t.jsx)(Aa,{children:j}),a[7]=j,a[8]=o,a[9]=x):x=a[9];let d;a[10]===x?d=a[11]:(d=(0,t.jsxs)($e,{children:[h,"Data sources",x]}),a[10]=x,a[11]=d);let i;a[12]===Symbol.for("react.memo_cache_sentinel")?(i=(0,t.jsx)(Fe,{children:(0,t.jsx)(za,{})}),a[12]=i):i=a[12];let p;a[13]===d?p=a[14]:(p=(0,t.jsxs)(ke,{value:"datasources",children:[d,i]}),a[13]=d,a[14]=p);let f;a[15]===Symbol.for("react.memo_cache_sentinel")?(f=(0,t.jsxs)($e,{children:[(0,t.jsx)(aa,{className:"w-4 h-4"}),"Variables"]}),a[15]=f):f=a[15];let N;a[16]!==s||a[17]!==e?(N=(0,t.jsxs)(ke,{value:"variables",lastItem:!0,children:[f,(0,t.jsx)(Fe,{children:Object.keys(e).length===0?(0,t.jsx)("div",{className:"px-3 py-4 text-sm text-muted-foreground",children:"No variables defined"}):(0,t.jsx)(qe,{cellIds:s.inOrderIds,variables:e})})]}),a[16]=s,a[17]=e,a[18]=N):N=a[18];let y;return a[19]!==m||a[20]!==g||a[21]!==p||a[22]!==N?(y=(0,t.jsxs)(wa,{type:"multiple",value:g,onValueChange:m,className:"flex flex-col h-full overflow-auto",children:[p,N]}),a[19]=m,a[20]=g,a[21]=p,a[22]=N,a[23]=y):y=a[23],y};export{tt as default};
1
+ import{s as re}from"./chunk-LvLJmgfZ.js";import{d as oe,l as Le,p as ce,u as Y}from"./useEvent-O0nX5vok.js";import{t as Be}from"./react-Bj1aDYRI.js";import{A as Me,An as Ve,Ar as me,Bt as Ee,Cr as Pe,Dr as ie,Er as de,Kn as Oe,M as Ae,Mn as Re,Nt as Ue,Sr as ze,T as Ge,Tt as We,Yn as Ke,a as Ye,ar as se,br as he,dn as He,f as Je,gr as Xe,ir as Qe,kn as Ze,kr as ea,qn as aa,tr as ta,ui as sa,xr as ue,yr as xe,zt as la}from"./cells-5wegzPD4.js";import"./react-dom-CSu739Rf.js";import{t as pe}from"./compiler-runtime-B3qBwwSJ.js";import{n as na}from"./assertNever-CTRGz-ul.js";import"./tooltip-WkrsrB6k.js";import{t as H}from"./sortBy-CbaC49oe.js";import{t as fe}from"./add-connection-dialog-DS033hDE.js";import{o as ra}from"./utils-HIU-NsEv.js";import{t as oa}from"./ErrorBoundary-H5EQrcAX.js";import{t as ca}from"./jsx-runtime-icT_Ltz2.js";import{r as ma,t as ee}from"./button-BZAv3veu.js";import{t as O}from"./cn-BoaCR37F.js";import"./dist-B_cxg-E4.js";import{D as le,F as ia,I as da,L as ha,P as be,R as ua}from"./JsonOutput-BzXkaUJB.js";import"./cjs-BU2qXMKx.js";import"./main-DrBRErTM.js";import"./useNonce-BtW-rR_1.js";import{r as xa}from"./requests-Bgjtqo_1.js";import{t as pa}from"./createLucideIcon-Cm-Z7dYr.js";import{t as fa}from"./x-BI1M8X_v.js";import"./download-B8XlLSji.js";import"./markdown-renderer-D0ROu8n3.js";import{t as ge}from"./plus-dVmh0yTy.js";import{a as ba}from"./input-C5eatTLl.js";import{n as ga,o as ja}from"./column-preview-46vONjMD.js";import{t as Na}from"./workflow-BmeqNuSH.js";import"./dist-BNC_tnlW.js";import"./dist-CXLJUPFl.js";import"./dist-CQqv2gQL.js";import"./dist-8UD0A5sU.js";import"./dist-apDpadc4.js";import"./session-CXChHxAw.js";import"./Combination-CBJmtdux.js";import{t as ne}from"./tooltip-CNmaER6z.js";import"./purify.es-BBn8CPhf.js";import"./dates-BcvJrESI.js";import{t as ya}from"./context-CRmPPhx9.js";import"./popover-JNsSzROl.js";import"./vega-loader.browser-BJ9oKrvH.js";import"./defaultLocale-CuYNS33t.js";import"./defaultLocale-CGfP-Ye3.js";import{t as va}from"./copy-icon-Cu7az85f.js";import{n as wa}from"./multi-map-x_GQgXMS.js";import{t as je}from"./cell-link-C9qZWgbj.js";import{n as Ne}from"./useAsyncData-a8f2Q_nk.js";import{a as Sa,o as ae,t as _a,u as Ca}from"./command-B7XhH0hz.js";import"./chunk-5FQGJX7Z-DEi7JZeU.js";import"./katex-0Z75JF53.js";import{r as ka}from"./html-to-image-BYwkVvZl.js";import{o as $a}from"./focus-BjrLbkmu.js";import{a as Fa,i as Ta,n as Ia,o as ye,r as qa,t as Da}from"./table-CKtrITeZ.js";import{n as La}from"./icons-T5yQRjuT.js";import{t as ve}from"./useAddCell-CKoCjXpL.js";import{a as we,i as te,o as Se,r as _e,s as Ce,t as Ba,u as Ma}from"./components-CMr3IGTz.js";import{t as Va}from"./empty-state-qEnkddw9.js";import{n as Ea,t as Pa}from"./common-NG61OZ4y.js";import{a as Oa,i as Aa,n as ke,r as $e,t as Fe}from"./components-BtpAwxaG.js";var Ra=pa("square-equal",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M7 10h10",key:"1101jm"}],["path",{d:"M7 14h10",key:"1mhdw3"}]]),U=pe(),C=re(Be(),1),t=re(ca(),1),_={engineEmpty:"pl-3",engine:"pl-3 pr-2",database:"pl-4",schemaEmpty:"pl-8",schema:"pl-7",tableLoading:"pl-11",tableSchemaless:"pl-8",tableWithSchema:"pl-12",columnLocal:"pl-5",columnSql:"pl-13",columnPreview:"pl-10"},Ua=ce(a=>{let e=a(ue),s=a(Re),l=a(Ye);return H(e,r=>{if(!r.variable_name)return-1;let c=Object.values(s).find(j=>j.name===r.variable_name);if(!c)return 0;let n=l.inOrderIds.indexOf(c.declaredBy[0]);return n===-1?0:n})});const Te=ce(a=>{let e=new Map(a(Xe));for(let s of me){let l=e.get(s);l&&(l.databases.length===0&&e.delete(s),l.databases.length===1&&l.databases[0].name==="memory"&&l.databases[0].schemas.length===0&&e.delete(s))}return H([...e.values()],s=>me.has(s.name)?1:0)}),za=()=>{let a=(0,U.c)(32),[e,s]=C.useState(""),l=oe(he),r=Y(Ua),c=Y(Te);if(r.length===0&&c.length===0){let p;return a[0]===Symbol.for("react.memo_cache_sentinel")?(p=(0,t.jsx)(Va,{title:"No tables found",description:"Any datasets/dataframes in the global scope will be shown here.",action:(0,t.jsx)(fe,{children:(0,t.jsxs)(ee,{variant:"outline",size:"sm",children:["Add database or catalog",(0,t.jsx)(ge,{className:"h-4 w-4 ml-2"})]})}),icon:(0,t.jsx)(se,{})}),a[0]=p):p=a[0],p}let n=!!e.trim(),j;a[1]===l?j=a[2]:(j=p=>{l(p.length>0),s(p)},a[1]=l,a[2]=j);let b;a[3]!==e||a[4]!==j?(b=(0,t.jsx)(Sa,{placeholder:"Search tables...",className:"h-6 m-1",value:e,onValueChange:j,rootClassName:"flex-1 border-r border-b-0"}),a[3]=e,a[4]=j,a[5]=b):b=a[5];let g;a[6]===n?g=a[7]:(g=n&&(0,t.jsx)("button",{type:"button",className:"float-right border-b px-2 m-0 h-full hover:bg-accent hover:text-accent-foreground",onClick:()=>s(""),children:(0,t.jsx)(fa,{className:"h-4 w-4"})}),a[6]=n,a[7]=g);let u;a[8]===Symbol.for("react.memo_cache_sentinel")?(u=(0,t.jsx)(fe,{children:(0,t.jsx)(ee,{variant:"ghost",size:"sm",className:"px-2 rounded-none focus-visible:outline-hidden",children:(0,t.jsx)(ge,{className:"h-4 w-4"})})}),a[8]=u):u=a[8];let m;a[9]!==b||a[10]!==g?(m=(0,t.jsxs)("div",{className:"flex items-center w-full border-b",children:[b,g,u]}),a[9]=b,a[10]=g,a[11]=m):m=a[11];let o;if(a[12]!==c||a[13]!==n||a[14]!==e){let p;a[16]!==n||a[17]!==e?(p=f=>(0,t.jsx)(Ga,{connection:f,hasChildren:f.databases.length>0,children:f.databases.map(N=>(0,t.jsx)(Wa,{engineName:f.name,database:N,hasSearch:n,children:(0,t.jsx)(Ka,{schemas:N.schemas,defaultSchema:f.default_schema,defaultDatabase:f.default_database,engineName:f.name,databaseName:N.name,hasSearch:n,searchValue:e,dialect:f.dialect})},N.name))},f.name),a[16]=n,a[17]=e,a[18]=p):p=a[18],o=c.map(p),a[12]=c,a[13]=n,a[14]=e,a[15]=o}else o=a[15];let h;a[19]!==c.length||a[20]!==r.length?(h=c.length>0&&r.length>0&&(0,t.jsxs)(_e,{className:_.engine,children:[(0,t.jsx)(La,{className:"h-4 w-4 text-muted-foreground"}),(0,t.jsx)("span",{className:"text-xs",children:"Python"})]}),a[19]=c.length,a[20]=r.length,a[21]=h):h=a[21];let x;a[22]!==e||a[23]!==r?(x=r.length>0&&(0,t.jsx)(Ie,{tables:r,searchValue:e}),a[22]=e,a[23]=r,a[24]=x):x=a[24];let d;a[25]!==o||a[26]!==h||a[27]!==x?(d=(0,t.jsxs)(Ca,{className:"flex flex-col",children:[o,h,x]}),a[25]=o,a[26]=h,a[27]=x,a[28]=d):d=a[28];let i;return a[29]!==m||a[30]!==d?(i=(0,t.jsxs)(_a,{className:"border-b bg-background rounded-none h-full pb-10 overflow-auto outline-hidden",shouldFilter:!1,children:[m,d]}),a[29]=m,a[30]=d,a[31]=i):i=a[31],i};var Ga=a=>{let e=(0,U.c)(25),{connection:s,children:l,hasChildren:r}=a,c=s.name===ea,n=c?"In-Memory":s.name,{previewDataSourceConnection:j}=xa(),b;e[0]!==s.name||e[1]!==j?(b=async()=>{await j({engine:s.name})},e[0]=s.name,e[1]=j,e[2]=b):b=e[2];let g=b,u;e[3]===s.dialect?u=e[4]:(u=(0,t.jsx)(We,{className:"h-4 w-4 text-muted-foreground",name:s.dialect}),e[3]=s.dialect,e[4]=u);let m;e[5]===s.dialect?m=e[6]:(m=Oe(s.dialect),e[5]=s.dialect,e[6]=m);let o;e[7]===m?o=e[8]:(o=(0,t.jsx)("span",{className:"text-xs",children:m}),e[7]=m,e[8]=o);let h=n,x;e[9]===h?x=e[10]:(x=(0,t.jsxs)("span",{className:"text-xs text-muted-foreground",children:["(",(0,t.jsx)(Oa,{variableName:h}),")"]}),e[9]=h,e[10]=x);let d;e[11]!==g||e[12]!==c?(d=!c&&(0,t.jsx)(Ma,{onClick:g,tooltip:"Refresh connection",className:"ml-auto h-4 p-0",iconClassName:"h-3.5 w-3.5"}),e[11]=g,e[12]=c,e[13]=d):d=e[13];let i;e[14]!==u||e[15]!==o||e[16]!==x||e[17]!==d?(i=(0,t.jsxs)(_e,{className:_.engine,children:[u,o,x,d]}),e[14]=u,e[15]=o,e[16]=x,e[17]=d,e[18]=i):i=e[18];let p;e[19]!==l||e[20]!==r?(p=r?l:(0,t.jsx)(te,{content:"No databases available",className:_.engineEmpty}),e[19]=l,e[20]=r,e[21]=p):p=e[21];let f;return e[22]!==i||e[23]!==p?(f=(0,t.jsxs)(t.Fragment,{children:[i,p]}),e[22]=i,e[23]=p,e[24]=f):f=e[24],f},Wa=a=>{let e=(0,U.c)(26),{hasSearch:s,engineName:l,database:r,children:c}=a,[n,j]=C.useState(!1),[b,g]=C.useState(!1),[u,m]=C.useState(s);u!==s&&(m(s),j(s));let o;e[0]===Symbol.for("react.memo_cache_sentinel")?(o=O("text-sm flex flex-row gap-1 items-center cursor-pointer rounded-none",_.database),e[0]=o):o=e[0];let h;e[1]!==n||e[2]!==b?(h=()=>{j(!n),g(!b)},e[1]=n,e[2]=b,e[3]=h):h=e[3];let x=`${l}:${r.name}`,d;e[4]===n?d=e[5]:(d=(0,t.jsx)(Ce,{isExpanded:n}),e[4]=n,e[5]=d);let i=b&&n?"text-foreground":"text-muted-foreground",p;e[6]===i?p=e[7]:(p=O("h-4 w-4",i),e[6]=i,e[7]=p);let f;e[8]===p?f=e[9]:(f=(0,t.jsx)(se,{className:p}),e[8]=p,e[9]=f);let N=b&&n&&"font-semibold",y;e[10]===N?y=e[11]:(y=O(N),e[10]=N,e[11]=y);let v;e[12]===r.name?v=e[13]:(v=r.name===""?(0,t.jsx)("i",{children:"Not connected"}):r.name,e[12]=r.name,e[13]=v);let w;e[14]!==v||e[15]!==y?(w=(0,t.jsx)("span",{className:y,children:v}),e[14]=v,e[15]=y,e[16]=w):w=e[16];let S;e[17]!==w||e[18]!==h||e[19]!==x||e[20]!==d||e[21]!==f?(S=(0,t.jsxs)(ae,{className:o,onSelect:h,value:x,children:[d,f,w]}),e[17]=w,e[18]=h,e[19]=x,e[20]=d,e[21]=f,e[22]=S):S=e[22];let q=n&&c,k;return e[23]!==S||e[24]!==q?(k=(0,t.jsxs)(t.Fragment,{children:[S,q]}),e[23]=S,e[24]=q,e[25]=k):k=e[25],k},Ka=a=>{let e=(0,U.c)(22),{schemas:s,defaultSchema:l,defaultDatabase:r,dialect:c,engineName:n,databaseName:j,hasSearch:b,searchValue:g}=a;if(s.length===0){let o;return e[0]===Symbol.for("react.memo_cache_sentinel")?(o=(0,t.jsx)(te,{content:"No schemas available",className:_.schemaEmpty}),e[0]=o):o=e[0],o}let u;if(e[1]!==j||e[2]!==r||e[3]!==l||e[4]!==c||e[5]!==n||e[6]!==b||e[7]!==s||e[8]!==g){let o;e[10]===g?o=e[11]:(o=d=>g?d.tables.some(i=>i.name.toLowerCase().includes(g.toLowerCase())):!0,e[10]=g,e[11]=o);let h=s.filter(o),x;e[12]!==j||e[13]!==r||e[14]!==l||e[15]!==c||e[16]!==n||e[17]!==b||e[18]!==g?(x=d=>(0,t.jsx)(Ya,{databaseName:j,schema:d,hasSearch:b,children:(0,t.jsx)(Ie,{tables:d.tables,searchValue:g,sqlTableContext:{engine:n,database:j,schema:d.name,defaultSchema:l,defaultDatabase:r,dialect:c}})},d.name),e[12]=j,e[13]=r,e[14]=l,e[15]=c,e[16]=n,e[17]=b,e[18]=g,e[19]=x):x=e[19],u=h.map(x),e[1]=j,e[2]=r,e[3]=l,e[4]=c,e[5]=n,e[6]=b,e[7]=s,e[8]=g,e[9]=u}else u=e[9];let m;return e[20]===u?m=e[21]:(m=(0,t.jsx)(t.Fragment,{children:u}),e[20]=u,e[21]=m),m},Ya=a=>{let e=(0,U.c)(24),{databaseName:s,schema:l,children:r,hasSearch:c}=a,[n,j]=C.useState(c),[b,g]=C.useState(!1),u=`${s}:${l.name}`;if(de(l.name))return r;let m;e[0]===Symbol.for("react.memo_cache_sentinel")?(m=O("text-sm flex flex-row gap-1 items-center cursor-pointer rounded-none",_.schema),e[0]=m):m=e[0];let o;e[1]!==n||e[2]!==b?(o=()=>{j(!n),g(!b)},e[1]=n,e[2]=b,e[3]=o):o=e[3];let h;e[4]===n?h=e[5]:(h=(0,t.jsx)(Ce,{isExpanded:n}),e[4]=n,e[5]=h);let x=b&&n&&"text-foreground",d;e[6]===x?d=e[7]:(d=O("h-4 w-4 text-muted-foreground",x),e[6]=x,e[7]=d);let i;e[8]===d?i=e[9]:(i=(0,t.jsx)(ta,{className:d}),e[8]=d,e[9]=i);let p=b&&n&&"font-semibold",f;e[10]===p?f=e[11]:(f=O(p),e[10]=p,e[11]=f);let N;e[12]!==l.name||e[13]!==f?(N=(0,t.jsx)("span",{className:f,children:l.name}),e[12]=l.name,e[13]=f,e[14]=N):N=e[14];let y;e[15]!==o||e[16]!==h||e[17]!==i||e[18]!==N||e[19]!==u?(y=(0,t.jsxs)(ae,{className:m,onSelect:o,value:u,children:[h,i,N]}),e[15]=o,e[16]=h,e[17]=i,e[18]=N,e[19]=u,e[20]=y):y=e[20];let v=n&&r,w;return e[21]!==y||e[22]!==v?(w=(0,t.jsxs)(t.Fragment,{children:[y,v]}),e[21]=y,e[22]=v,e[23]=w):w=e[23],w},Ie=a=>{let e=(0,U.c)(24),{tables:s,sqlTableContext:l,searchValue:r}=a,{addTableList:c}=xe(),[n,j]=C.useState(!1),[b,g]=C.useState(!1),u;e[0]!==c||e[1]!==l||e[2]!==s.length||e[3]!==n?(u=async()=>{if(s.length===0&&l&&!n){j(!0),g(!0);let{engine:i,database:p,schema:f}=l,N=await Ee.request({engine:i,database:p,schema:f});if(!(N!=null&&N.tables))throw g(!1),Error("No tables available");c({tables:N.tables,sqlTableContext:l}),g(!1)}},e[0]=c,e[1]=l,e[2]=s.length,e[3]=n,e[4]=u):u=e[4];let m;e[5]!==l||e[6]!==s.length||e[7]!==n?(m=[s.length,l,n],e[5]=l,e[6]=s.length,e[7]=n,e[8]=m):m=e[8];let{isPending:o,error:h}=Ne(u,m);if(o||b){let i;return e[9]===Symbol.for("react.memo_cache_sentinel")?(i=(0,t.jsx)(Se,{message:"Loading tables...",className:_.tableLoading}),e[9]=i):i=e[9],i}if(h){let i;return e[10]===h?i=e[11]:(i=(0,t.jsx)(we,{error:h,className:_.tableLoading}),e[10]=h,e[11]=i),i}if(s.length===0){let i;return e[12]===Symbol.for("react.memo_cache_sentinel")?(i=(0,t.jsx)(te,{content:"No tables found",className:_.tableLoading}),e[12]=i):i=e[12],i}let x;if(e[13]!==r||e[14]!==l||e[15]!==s){let i;e[17]===r?i=e[18]:(i=N=>r?N.name.toLowerCase().includes(r.toLowerCase()):!0,e[17]=r,e[18]=i);let p=s.filter(i),f;e[19]!==r||e[20]!==l?(f=N=>(0,t.jsx)(Ha,{table:N,sqlTableContext:l,isSearching:!!r},N.name),e[19]=r,e[20]=l,e[21]=f):f=e[21],x=p.map(f),e[13]=r,e[14]=l,e[15]=s,e[16]=x}else x=e[16];let d;return e[22]===x?d=e[23]:(d=(0,t.jsx)(t.Fragment,{children:x}),e[22]=x,e[23]=d),d},Ha=a=>{let e=(0,U.c)(64),{table:s,sqlTableContext:l,isSearching:r}=a,{addTable:c}=xe(),[n,j]=C.useState(!1),[b,g]=C.useState(!1),u=s.columns.length>0,m;e[0]!==c||e[1]!==n||e[2]!==l||e[3]!==s.name||e[4]!==u||e[5]!==b?(m=async()=>{if(n&&!u&&l&&!b){g(!0);let{engine:B,database:Q,schema:De}=l,Z=await la.request({engine:B,database:Q,schema:De,tableName:s.name});if(!(Z!=null&&Z.table))throw Error("No table details available");c({table:Z.table,sqlTableContext:l})}},e[0]=c,e[1]=n,e[2]=l,e[3]=s.name,e[4]=u,e[5]=b,e[6]=m):m=e[6];let o;e[7]!==n||e[8]!==u?(o=[n,u],e[7]=n,e[8]=u,e[9]=o):o=e[9];let{isFetching:h,isPending:x,error:d}=Ne(m,o),i=Y(ra),p=$a(),{createNewCell:f}=Ge(),N=ve(),y;e[10]!==N||e[11]!==i||e[12]!==f||e[13]!==p||e[14]!==l||e[15]!==s?(y=()=>{ka({autoInstantiate:i,createNewCell:f,fromCellId:p}),N((()=>{if(s.source_type==="catalog"){let B=l!=null&&l.database?`${l.database}.${s.name}`:s.name;return`${s.engine}.load_table("${B}")`}if(l)return ie({table:s,columnName:"*",sqlTableContext:l});switch(s.source_type){case"local":return`mo.ui.table(${s.name})`;case"duckdb":case"connection":return ie({table:s,columnName:"*",sqlTableContext:l});default:return na(s.source_type),""}})())},e[10]=N,e[11]=i,e[12]=f,e[13]=p,e[14]=l,e[15]=s,e[16]=y):y=e[16];let v=y,w;e[17]!==s.num_columns||e[18]!==s.num_rows?(w=()=>{let B=[];return s.num_rows!=null&&B.push(`${s.num_rows} rows`),s.num_columns!=null&&B.push(`${s.num_columns} columns`),B.length===0?null:(0,t.jsx)("div",{className:"flex flex-row gap-2 items-center pl-6 group-hover:hidden",children:(0,t.jsx)("span",{className:"text-xs text-muted-foreground",children:B.join(", ")})})},e[17]=s.num_columns,e[18]=s.num_rows,e[19]=w):w=e[19];let S=w,q;e[20]!==d||e[21]!==h||e[22]!==x||e[23]!==l||e[24]!==s?(q=()=>{if(x||h)return(0,t.jsx)(Se,{message:"Loading columns...",className:_.tableLoading});if(d)return(0,t.jsx)(we,{error:d,className:_.tableLoading});let B=s.columns;return B.length===0?(0,t.jsx)(te,{content:"No columns found",className:_.tableLoading}):B.map(Q=>(0,t.jsx)(Ja,{table:s,column:Q,sqlTableContext:l},Q.name))},e[20]=d,e[21]=h,e[22]=x,e[23]=l,e[24]=s,e[25]=q):q=e[25];let k=q,D;e[26]!==n||e[27]!==r||e[28]!==s.source_type||e[29]!==s.type?(D=()=>{if(s.source_type!=="local")return(0,t.jsx)(s.type==="table"?Ke:Qe,{className:"h-3 w-3",strokeWidth:n||r?2.5:void 0})},e[26]=n,e[27]=r,e[28]=s.source_type,e[29]=s.type,e[30]=D):D=e[30];let M=D,V=l?`${l.database}.${l.schema}.${s.name}`:s.name,E=l&&(de(l.schema)?_.tableSchemaless:_.tableWithSchema),P=(n||r)&&"font-semibold",$;e[31]!==E||e[32]!==P?($=O("rounded-none group h-8 cursor-pointer",E,P),e[31]=E,e[32]=P,e[33]=$):$=e[33];let F;e[34]===n?F=e[35]:(F=()=>j(!n),e[34]=n,e[35]=F);let T;e[36]===M?T=e[37]:(T=M(),e[36]=M,e[37]=T);let L;e[38]===s.name?L=e[39]:(L=(0,t.jsx)("span",{className:"text-sm",children:s.name}),e[38]=s.name,e[39]=L);let A;e[40]!==T||e[41]!==L?(A=(0,t.jsxs)("div",{className:"flex gap-2 items-center flex-1 pl-1",children:[T,L]}),e[40]=T,e[41]=L,e[42]=A):A=e[42];let R;e[43]===S?R=e[44]:(R=S(),e[43]=S,e[44]=R);let I;e[45]===v?I=e[46]:(I=ma.stopPropagation(()=>v()),e[45]=v,e[46]=I);let J;e[47]===Symbol.for("react.memo_cache_sentinel")?(J=(0,t.jsx)(ja,{className:"h-3 w-3"}),e[47]=J):J=e[47];let G;e[48]===I?G=e[49]:(G=(0,t.jsx)(ne,{content:"Add table to notebook",delayDuration:400,children:(0,t.jsx)(ee,{className:"group-hover:inline-flex hidden",variant:"text",size:"icon",onClick:I,children:J})}),e[48]=I,e[49]=G);let W;e[50]!==n||e[51]!==F||e[52]!==A||e[53]!==R||e[54]!==G||e[55]!==$||e[56]!==V?(W=(0,t.jsxs)(ae,{className:$,value:V,"aria-selected":n,forceMount:!0,onSelect:F,children:[A,R,G]}),e[50]=n,e[51]=F,e[52]=A,e[53]=R,e[54]=G,e[55]=$,e[56]=V,e[57]=W):W=e[57];let K;e[58]!==n||e[59]!==k?(K=n&&k(),e[58]=n,e[59]=k,e[60]=K):K=e[60];let X;return e[61]!==W||e[62]!==K?(X=(0,t.jsxs)(t.Fragment,{children:[W,K]}),e[61]=W,e[62]=K,e[63]=X):X=e[63],X},Ja=a=>{var A,R;let e=(0,U.c)(48),{table:s,column:l,sqlTableContext:r}=a,[c,n]=C.useState(!1),j=Y(he),b=oe(ze);j&&c&&n(!1),b(c?I=>new Set([...I,`${s.name}:${l.name}`]):I=>(I.delete(`${s.name}:${l.name}`),new Set(I)));let g=ve(),{columnsPreviews:u}=Pe(),m;e[0]!==l.name||e[1]!==s.primary_keys?(m=((A=s.primary_keys)==null?void 0:A.includes(l.name))||!1,e[0]=l.name,e[1]=s.primary_keys,e[2]=m):m=e[2];let o=m,h;e[3]!==l.name||e[4]!==s.indexes?(h=((R=s.indexes)==null?void 0:R.includes(l.name))||!1,e[3]=l.name,e[4]=s.indexes,e[5]=h):h=e[5];let x=h,d;e[6]===g?d=e[7]:(d=I=>{g(I)},e[6]=g,e[7]=d);let i=d,p=Xa,f=c?"font-semibold":"",N;e[8]!==l.name||e[9]!==f?(N=(0,t.jsx)("span",{className:f,children:l.name}),e[8]=l.name,e[9]=f,e[10]=N):N=e[10];let y=N,v=`${s.name}.${l.name}`,w=`${s.name}.${l.name}`,S;e[11]===c?S=e[12]:(S=()=>n(!c),e[11]=c,e[12]=S);let q=r?_.columnSql:_.columnLocal,k;e[13]===q?k=e[14]:(k=O("flex flex-row gap-2 items-center flex-1",q),e[13]=q,e[14]=k);let D;e[15]!==l.type||e[16]!==y?(D=(0,t.jsx)(Ba,{columnName:y,dataType:l.type}),e[15]=l.type,e[16]=y,e[17]=D):D=e[17];let M;e[18]===o?M=e[19]:(M=o&&p({tooltipContent:"Primary key",content:"PK"}),e[18]=o,e[19]=M);let V;e[20]===x?V=e[21]:(V=x&&p({tooltipContent:"Indexed",content:"IDX"}),e[20]=x,e[21]=V);let E;e[22]!==k||e[23]!==D||e[24]!==M||e[25]!==V?(E=(0,t.jsxs)("div",{className:k,children:[D,M,V]}),e[22]=k,e[23]=D,e[24]=M,e[25]=V,e[26]=E):E=e[26];let P;e[27]===l.name?P=e[28]:(P=(0,t.jsx)(ne,{content:"Copy column name",delayDuration:400,children:(0,t.jsx)(ee,{variant:"text",size:"icon",className:"group-hover:opacity-100 opacity-0 hover:bg-muted text-muted-foreground hover:text-foreground",children:(0,t.jsx)(va,{tooltip:!1,value:l.name,className:"h-3 w-3"})})}),e[27]=l.name,e[28]=P);let $;e[29]===l.external_type?$=e[30]:($=(0,t.jsx)("span",{className:"text-xs text-muted-foreground",children:l.external_type}),e[29]=l.external_type,e[30]=$);let F;e[31]!==E||e[32]!==P||e[33]!==$||e[34]!==v||e[35]!==w||e[36]!==S?(F=(0,t.jsxs)(ae,{className:"rounded-none py-1 group cursor-pointer",value:w,onSelect:S,children:[E,P,$]},v),e[31]=E,e[32]=P,e[33]=$,e[34]=v,e[35]=w,e[36]=S,e[37]=F):F=e[37];let T;e[38]!==l||e[39]!==u||e[40]!==i||e[41]!==c||e[42]!==r||e[43]!==s?(T=c&&(0,t.jsx)("div",{className:O(_.columnPreview,"pr-2 py-2 bg-(--slate-1) shadow-inner border-b"),children:(0,t.jsx)(oa,{children:(0,t.jsx)(ga,{table:s,column:l,onAddColumnChart:i,preview:u.get(r?`${r.database}.${r.schema}.${s.name}:${l.name}`:`${s.name}:${l.name}`),sqlTableContext:r})})}),e[38]=l,e[39]=u,e[40]=i,e[41]=c,e[42]=r,e[43]=s,e[44]=T):T=e[44];let L;return e[45]!==F||e[46]!==T?(L=(0,t.jsxs)(t.Fragment,{children:[F,T]}),e[45]=F,e[46]=T,e[47]=L):L=e[47],L};function Xa(a){let{tooltipContent:e,content:s}=a;return(0,t.jsx)(ne,{content:e,delayDuration:100,children:(0,t.jsx)("span",{className:"text-xs text-black bg-gray-100 dark:invert rounded px-1",children:s})})}function is(a){return a}var z={name:"name",type:"type-value",defs:"defs-refs"},Qa=[{id:z.name,accessorFn:a=>[a.name,a.declaredBy],enableSorting:!0,sortingFn:"alphanumeric",header:({column:a})=>(0,t.jsx)(le,{header:"Name",column:a}),cell:({getValue:a})=>{let[e,s]=a();return(0,t.jsx)(Pa,{name:e,declaredBy:s})}},{id:z.type,accessorFn:a=>[a.dataType,a.value],enableSorting:!0,sortingFn:"alphanumeric",header:({column:a})=>(0,t.jsx)(le,{header:(0,t.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,t.jsx)("span",{children:"Type"}),(0,t.jsx)("span",{children:"Value"})]}),column:a}),cell:({getValue:a})=>{let[e,s]=a();return(0,t.jsxs)("div",{className:"max-w-[150px]",children:[(0,t.jsx)("div",{className:"text-ellipsis overflow-hidden whitespace-nowrap text-muted-foreground font-mono text-xs",children:e}),(0,t.jsx)("div",{className:"text-ellipsis overflow-hidden whitespace-nowrap",title:s??"",children:s})]})}},{id:z.defs,accessorFn:a=>[a.declaredBy,a.usedBy,a.name,a.declaredByNames,a.usedByNames],enableSorting:!0,sortingFn:"basic",header:({column:a})=>(0,t.jsx)(le,{header:(0,t.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,t.jsx)("span",{children:"Declared By"}),(0,t.jsx)("span",{children:"Used By"})]}),column:a}),cell:({getValue:a})=>{let[e,s,l]=a(),r=c=>{let n=Je(c);n&&He(n,l)};return(0,t.jsxs)("div",{className:"flex flex-col gap-1 py-1",children:[(0,t.jsxs)("div",{className:"flex flex-row overflow-auto gap-2 items-center",children:[(0,t.jsx)("span",{title:"Declared by",children:(0,t.jsx)(Ra,{className:"w-3.5 h-3.5 text-muted-foreground"})}),e.length===1?(0,t.jsx)(je,{variant:"focus",cellId:e[0],skipScroll:!0,onClick:()=>r(e[0])}):(0,t.jsx)("div",{className:"text-destructive flex flex-row gap-2",children:e.slice(0,3).map((c,n)=>(0,t.jsxs)("span",{className:"flex",children:[(0,t.jsx)(je,{variant:"focus",cellId:c,skipScroll:!0,className:"whitespace-nowrap text-destructive",onClick:()=>r(c)},c),n<e.length-1&&", "]},c))})]}),(0,t.jsxs)("div",{className:"flex flex-row overflow-auto gap-2 items-baseline",children:[(0,t.jsx)("span",{title:"Used by",children:(0,t.jsx)(Na,{className:"w-3.5 h-3.5 text-muted-foreground"})}),(0,t.jsx)(Ea,{maxCount:3,cellIds:s,skipScroll:!0,onClick:r})]})]})}}];function Za({variables:a,sort:e,cellIdToIndex:s}){e||(e={id:z.defs,desc:!1});let l=[];switch(e.id){case z.name:l=H(a,r=>r.name);break;case z.type:l=H(a,r=>r.dataType);break;case z.defs:l=H(a,r=>s.get(r.declaredBy[0]));break}return e.desc?l.reverse():l}const qe=(0,C.memo)(({className:a,cellIds:e,variables:s})=>{let[l,r]=C.useState([]),[c,n]=C.useState(""),j=Ae(),{locale:b}=ya(),g=(0,C.useMemo)(()=>{let m=o=>{let h=j[o];return Ue(h)?`cell-${e.indexOf(o)}`:h??`cell-${e.indexOf(o)}`};return Object.values(s).map(o=>({...o,declaredByNames:o.declaredBy.map(m),usedByNames:o.usedBy.map(m)}))},[s,j,e]),u=ia({data:(0,C.useMemo)(()=>{let m=new Map;return e.forEach((o,h)=>m.set(o,h)),Za({variables:g,sort:l[0],cellIdToIndex:m})},[g,l,e]),columns:Qa,getCoreRowModel:da(),onGlobalFilterChange:n,getFilteredRowModel:ha(),enableFilters:!0,enableGlobalFilter:!0,enableColumnPinning:!1,getColumnCanGlobalFilter(m){return m.columnDef.enableGlobalFilter??!0},globalFilterFn:"auto",manualSorting:!0,locale:b,onSortingChange:r,getSortedRowModel:ua(),state:{sorting:l,globalFilter:c}});return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(ba,{className:"w-full",placeholder:"Search",value:c,onChange:m=>n(m.target.value)}),(0,t.jsxs)(Da,{className:O("w-full text-sm flex-1 border-separate border-spacing-0",a),children:[(0,t.jsx)(Fa,{children:(0,t.jsx)(ye,{className:"whitespace-nowrap text-xs",children:u.getFlatHeaders().map(m=>(0,t.jsx)(Ta,{className:"sticky top-0 bg-background border-b",children:be(m.column.columnDef.header,m.getContext())},m.id))})}),(0,t.jsx)(Ia,{children:u.getRowModel().rows.map(m=>(0,t.jsx)(ye,{className:"hover:bg-accent",children:m.getVisibleCells().map(o=>(0,t.jsx)(qa,{className:"border-b",children:be(o.column.columnDef.cell,o.getContext())},o.id))},m.id))})]})]})});qe.displayName="VariableTable";var et=pe(),at=sa("marimo:session-panel:state",{openSections:["variables"],hasUserInteracted:!1},Ze),tt=()=>{let a=(0,et.c)(24),e=Ve(),s=Me(),l=Y(ue),r=Y(Te),[c,n]=Le(at),j=l.length+r.length,b;a[0]!==j||a[1]!==c.hasUserInteracted||a[2]!==c.openSections?(b=!c.hasUserInteracted&&j>0?[...new Set([...c.openSections,"datasources"])]:c.openSections,a[0]=j,a[1]=c.hasUserInteracted,a[2]=c.openSections,a[3]=b):b=a[3];let g=b,u;a[4]===n?u=a[5]:(u=v=>{n({openSections:v,hasUserInteracted:!0})},a[4]=n,a[5]=u);let m=u,o=!g.includes("datasources")&&j>0,h;a[6]===Symbol.for("react.memo_cache_sentinel")?(h=(0,t.jsx)(se,{className:"w-4 h-4"}),a[6]=h):h=a[6];let x;a[7]!==j||a[8]!==o?(x=o&&(0,t.jsx)(Aa,{children:j}),a[7]=j,a[8]=o,a[9]=x):x=a[9];let d;a[10]===x?d=a[11]:(d=(0,t.jsxs)($e,{children:[h,"Data sources",x]}),a[10]=x,a[11]=d);let i;a[12]===Symbol.for("react.memo_cache_sentinel")?(i=(0,t.jsx)(Fe,{children:(0,t.jsx)(za,{})}),a[12]=i):i=a[12];let p;a[13]===d?p=a[14]:(p=(0,t.jsxs)(ke,{value:"datasources",children:[d,i]}),a[13]=d,a[14]=p);let f;a[15]===Symbol.for("react.memo_cache_sentinel")?(f=(0,t.jsxs)($e,{children:[(0,t.jsx)(aa,{className:"w-4 h-4"}),"Variables"]}),a[15]=f):f=a[15];let N;a[16]!==s||a[17]!==e?(N=(0,t.jsxs)(ke,{value:"variables",lastItem:!0,children:[f,(0,t.jsx)(Fe,{children:Object.keys(e).length===0?(0,t.jsx)("div",{className:"px-3 py-4 text-sm text-muted-foreground",children:"No variables defined"}):(0,t.jsx)(qe,{cellIds:s.inOrderIds,variables:e})})]}),a[16]=s,a[17]=e,a[18]=N):N=a[18];let y;return a[19]!==m||a[20]!==g||a[21]!==p||a[22]!==N?(y=(0,t.jsxs)(wa,{type:"multiple",value:g,onValueChange:m,className:"flex flex-col h-full overflow-auto",children:[p,N]}),a[19]=m,a[20]=g,a[21]=p,a[22]=N,a[23]=y):y=a[23],y};export{tt as default};
@@ -1 +1 @@
1
- import{s as we}from"./chunk-LvLJmgfZ.js";import{d as L,l as Ze,p as Qe,u as de}from"./useEvent-O0nX5vok.js";import{t as et}from"./react-Bj1aDYRI.js";import{Cn as tt,En as at,Gt as ot,Nr as nt,Sn as it,T as ge,_ as st,ar as lt,cr as rt,dt as je,h as ve,lt as dt,pr as ct,pt as ht,rr as pt,t as mt,ut,vi as ce,xn as ft}from"./cells-5wegzPD4.js";import{t as _}from"./compiler-runtime-B3qBwwSJ.js";import{n as yt}from"./assertNever-CTRGz-ul.js";import{s as Ce}from"./useLifecycle-CWjBWFMI.js";import{i as kt,n as ze}from"./add-connection-dialog-Dio0FGtu.js";import{n as bt,x as xt}from"./ai-model-dropdown-DJn8Mf6B.js";import{c as Me,m as T}from"./useEventListener-BGihH8bs.js";import{y as wt}from"./utils-HIU-NsEv.js";import{n as A,t as We}from"./constants-Rz_lD4HK.js";import{S as he,h as gt,x as jt}from"./config-RexwtI0U.js";import{t as vt}from"./jsx-runtime-icT_Ltz2.js";import{r as Ct,t as pe}from"./button-BZAv3veu.js";import{r as H}from"./requests-Bgjtqo_1.js";import{t as h}from"./createLucideIcon-Cm-Z7dYr.js";import{a as Se,f as zt,i as De,m as Mt,p as _e,u as Ae}from"./layout-CpSNosnt.js";import{t as Ne}from"./check-BE0hEwVo.js";import{c as Pe,d as me,n as Wt,o as St,r as ue,t as Dt}from"./download-B8XlLSji.js";import{f as _t}from"./maps-CqKCrVZ8.js";import{r as At}from"./useCellActionButton-DPHJ31aq.js";import{t as Nt}from"./copy-CkudG0Ej.js";import{t as Pt}from"./download-DBW9RXtT.js";import{t as It}from"./eye-off-vwi9L975.js";import{t as Et}from"./file-plus-corner-lLQw9OnR.js";import{t as J}from"./file-DzHkbIdO.js";import{t as Lt}from"./github-BVtI-3F1.js";import{m as Tt}from"./form-p9cBnWwo.js";import{n as Ht,r as qt,t as Rt}from"./youtube-DE-Ej6FR.js";import{n as Bt,t as Ft}from"./square-CxAsQQ77.js";import{t as Ot}from"./image-DXfkah9d.js";import{t as Vt}from"./link-Cf10mh3t.js";import{r as Yt}from"./input-C5eatTLl.js";import{t as Kt}from"./settings-CzQUw9rV.js";import{x as Ut}from"./azure-a3T26UGw.js";import{t as C}from"./use-toast-Hc8CXlvz.js";import{n as Ie,t as Gt}from"./paths-D2lG83Oh.js";import{o as $t}from"./session-CXChHxAw.js";import{a as Jt,c as Xt,i as Zt,n as Qt,r as ea,s as ta,t as aa}from"./select-Ch6m1k2G.js";import{t as oa}from"./tooltip-CNmaER6z.js";import{o as na}from"./alert-dialog-DbQ_TZC7.js";import{a as ia,c as sa,i as la,n as ra,r as da}from"./dialog-DCGn-_Ip.js";import{n as fe}from"./ImperativeModal-b5nJtLod.js";import{r as ca,t as ha}from"./share-DdWa0mV7.js";import{t as X}from"./copy-f2iEg0yL.js";import{a as pa}from"./cell-link-C9qZWgbj.js";import{a as ma}from"./renderShortcut-BSq2vc9J.js";import{t as ua}from"./icons-T5yQRjuT.js";import{t as fa}from"./links-XdsYEk97.js";import{r as ya,t as Ee}from"./hooks-WmIIm80L.js";import{t as Le}from"./types-DBNA0l6L.js";var ka=h("circle-chevron-down",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m16 10-4 4-4-4",key:"894hmk"}]]),ba=h("circle-chevron-right",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m10 8 4 4-4 4",key:"1wy4r4"}]]),Te=h("clipboard-copy",[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2",key:"4jdomd"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v4",key:"3hqy98"}],["path",{d:"M21 14H11",key:"1bme5i"}],["path",{d:"m15 10-4 4 4 4",key:"5dvupr"}]]),He=h("command",[["path",{d:"M15 6v12a3 3 0 1 0 3-3H6a3 3 0 1 0 3 3V6a3 3 0 1 0-3 3h12a3 3 0 1 0-3-3",key:"11bfej"}]]),qe=h("diamond-plus",[["path",{d:"M12 8v8",key:"napkw2"}],["path",{d:"M2.7 10.3a2.41 2.41 0 0 0 0 3.41l7.59 7.59a2.41 2.41 0 0 0 3.41 0l7.59-7.59a2.41 2.41 0 0 0 0-3.41L13.7 2.71a2.41 2.41 0 0 0-3.41 0z",key:"1ey20j"}],["path",{d:"M8 12h8",key:"1wcyev"}]]),xa=h("fast-forward",[["path",{d:"M12 6a2 2 0 0 1 3.414-1.414l6 6a2 2 0 0 1 0 2.828l-6 6A2 2 0 0 1 12 18z",key:"b19h5q"}],["path",{d:"M2 6a2 2 0 0 1 3.414-1.414l6 6a2 2 0 0 1 0 2.828l-6 6A2 2 0 0 1 2 18z",key:"h7h5ge"}]]),wa=h("files",[["path",{d:"M15 2h-4a2 2 0 0 0-2 2v11a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V8",key:"14sh0y"}],["path",{d:"M16.706 2.706A2.4 2.4 0 0 0 15 2v5a1 1 0 0 0 1 1h5a2.4 2.4 0 0 0-.706-1.706z",key:"1970lx"}],["path",{d:"M5 7a2 2 0 0 0-2 2v11a2 2 0 0 0 2 2h8a2 2 0 0 0 1.732-1",key:"l4dndm"}]]),ga=h("keyboard",[["path",{d:"M10 8h.01",key:"1r9ogq"}],["path",{d:"M12 12h.01",key:"1mp3jc"}],["path",{d:"M14 8h.01",key:"1primd"}],["path",{d:"M16 12h.01",key:"1l6xoz"}],["path",{d:"M18 8h.01",key:"emo2bl"}],["path",{d:"M6 8h.01",key:"x9i8wu"}],["path",{d:"M7 16h10",key:"wp8him"}],["path",{d:"M8 12h.01",key:"czm47f"}],["rect",{width:"20",height:"16",x:"2",y:"4",rx:"2",key:"18n3k1"}]]),Re=h("layout-template",[["rect",{width:"18",height:"7",x:"3",y:"3",rx:"1",key:"f1a2em"}],["rect",{width:"9",height:"7",x:"3",y:"14",rx:"1",key:"jqznyg"}],["rect",{width:"5",height:"7",x:"16",y:"14",rx:"1",key:"q5h2i8"}]]),ja=h("list",[["path",{d:"M3 5h.01",key:"18ugdj"}],["path",{d:"M3 12h.01",key:"nlz23k"}],["path",{d:"M3 19h.01",key:"noohij"}],["path",{d:"M8 5h13",key:"1pao27"}],["path",{d:"M8 12h13",key:"1za7za"}],["path",{d:"M8 19h13",key:"m83p4d"}]]),va=h("notebook",[["path",{d:"M2 6h4",key:"aawbzj"}],["path",{d:"M2 10h4",key:"l0bgd4"}],["path",{d:"M2 14h4",key:"1gsvsf"}],["path",{d:"M2 18h4",key:"1bu2t1"}],["rect",{width:"16",height:"20",x:"4",y:"2",rx:"2",key:"1nb95v"}],["path",{d:"M16 2v20",key:"rotuqe"}]]),Ca=h("panel-left",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}]]),Be=h("presentation",[["path",{d:"M2 3h20",key:"91anmk"}],["path",{d:"M21 3v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V3",key:"2k9sn8"}],["path",{d:"m7 21 5-5 5 5",key:"bip4we"}]]),za=h("share-2",[["circle",{cx:"18",cy:"5",r:"3",key:"gq8acd"}],["circle",{cx:"6",cy:"12",r:"3",key:"w7nqdw"}],["circle",{cx:"18",cy:"19",r:"3",key:"1xt0gg"}],["line",{x1:"8.59",x2:"15.42",y1:"13.51",y2:"17.49",key:"47mynk"}],["line",{x1:"15.41",x2:"8.59",y1:"6.51",y2:"10.49",key:"1n3mei"}]]),Ma=h("square-power",[["path",{d:"M12 7v4",key:"xawao1"}],["path",{d:"M7.998 9.003a5 5 0 1 0 8-.005",key:"1pek45"}],["rect",{x:"3",y:"3",width:"18",height:"18",rx:"2",key:"h1oib"}]]),Fe=h("undo-2",[["path",{d:"M9 14 4 9l5-5",key:"102s5s"}],["path",{d:"M4 9h10.5a5.5 5.5 0 0 1 5.5 5.5a5.5 5.5 0 0 1-5.5 5.5H11",key:"f3b9sd"}]]),Oe=_(),ye=we(et(),1),a=we(vt(),1),Z="https://static.marimo.app";const Wa=e=>{let t=(0,Oe.c)(25),{onClose:n}=e,[o,s]=(0,ye.useState)(""),{exportAsHTML:r}=H(),l=`${o}-${Math.random().toString(36).slice(2,6)}`,i=`${Z}/static/${l}`,d;t[0]!==r||t[1]!==n||t[2]!==l?(d=async v=>{v.preventDefault(),n();let P=await r({download:!1,includeCode:!0,files:zt.INSTANCE.filenames()}),z=C({title:"Uploading static notebook...",description:"Please wait."});await fetch(`${Z}/api/static`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({html:P,path:l})}).catch(()=>{z.dismiss(),C({title:"Error uploading static page",description:(0,a.jsxs)("div",{children:["Please try again later. If the problem persists, please file a bug report on"," ",(0,a.jsx)("a",{href:A.issuesPage,target:"_blank",className:"underline",children:"GitHub"}),"."]})})}),z.dismiss(),C({title:"Static page uploaded!",description:(0,a.jsxs)("div",{children:["The URL has been copied to your clipboard.",(0,a.jsx)("br",{}),"You can share it with anyone."]})})},t[0]=r,t[1]=n,t[2]=l,t[3]=d):d=t[3];let m;t[4]===Symbol.for("react.memo_cache_sentinel")?(m=(0,a.jsx)(sa,{children:"Share static notebook"}),t[4]=m):m=t[4];let w;t[5]===Symbol.for("react.memo_cache_sentinel")?(w=(0,a.jsxs)(ia,{children:[m,(0,a.jsxs)(da,{children:["You can publish a static, non-interactive version of this notebook to the public web. We will create a link for you that lives on"," ",(0,a.jsx)("a",{href:Z,target:"_blank",children:Z}),"."]})]}),t[5]=w):w=t[5];let g;t[6]===Symbol.for("react.memo_cache_sentinel")?(g=v=>{s(v.target.value.toLowerCase().replaceAll(/\s/g,"-").replaceAll(/[^\da-z-]/g,""))},t[6]=g):g=t[6];let u;t[7]===o?u=t[8]:(u=(0,a.jsx)(Yt,{"data-testid":"slug-input",id:"slug",autoFocus:!0,value:o,placeholder:"Notebook slug",onChange:g,required:!0,autoComplete:"off"}),t[7]=o,t[8]=u);let f;t[9]===i?f=t[10]:(f=(0,a.jsxs)("div",{className:"font-semibold text-sm text-muted-foreground gap-2 flex flex-col",children:["Anyone will be able to access your notebook at this URL:",(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)(Sa,{text:i}),(0,a.jsx)("span",{className:"text-primary",children:i})]})]}),t[9]=i,t[10]=f);let y;t[11]!==u||t[12]!==f?(y=(0,a.jsxs)("div",{className:"flex flex-col gap-6 py-4",children:[u,f]}),t[11]=u,t[12]=f,t[13]=y):y=t[13];let k;t[14]===n?k=t[15]:(k=(0,a.jsx)(pe,{"data-testid":"cancel-share-static-notebook-button",variant:"secondary",onClick:n,children:"Cancel"}),t[14]=n,t[15]=k);let b;t[16]===i?b=t[17]:(b=(0,a.jsx)(pe,{"data-testid":"share-static-notebook-button","aria-label":"Save",variant:"default",type:"submit",onClick:async()=>{await X(i)},children:"Create"}),t[16]=i,t[17]=b);let x;t[18]!==k||t[19]!==b?(x=(0,a.jsxs)(la,{children:[k,b]}),t[18]=k,t[19]=b,t[20]=x):x=t[20];let j;return t[21]!==d||t[22]!==x||t[23]!==y?(j=(0,a.jsx)(ra,{className:"w-fit",children:(0,a.jsxs)("form",{onSubmit:d,children:[w,y,x]})}),t[21]=d,t[22]=x,t[23]=y,t[24]=j):j=t[24],j};var Sa=e=>{let t=(0,Oe.c)(8),[n,o]=ye.useState(!1),s;t[0]===e.text?s=t[1]:(s=Ct.stopPropagation(async m=>{m.preventDefault(),await X(e.text),o(!0),setTimeout(()=>o(!1),2e3)}),t[0]=e.text,t[1]=s);let r=s,l;t[2]===Symbol.for("react.memo_cache_sentinel")?(l=(0,a.jsx)(Nt,{size:14,strokeWidth:1.5}),t[2]=l):l=t[2];let i;t[3]===r?i=t[4]:(i=(0,a.jsx)(pe,{"data-testid":"copy-static-notebook-url-button",onClick:r,size:"xs",variant:"secondary",children:l}),t[3]=r,t[4]=i);let d;return t[5]!==n||t[6]!==i?(d=(0,a.jsx)(oa,{content:"Copied!",open:n,children:i}),t[5]=n,t[6]=i,t[7]=d):d=t[7],d},Da=_();function _a(){let e=document.getElementsByClassName(We.outputArea);for(let t of e){let n=t.getBoundingClientRect();if(n.bottom>0&&n.top<window.innerHeight){let o=ce.findElement(t);if(!o){T.warn("Could not find HTMLCellId for visible output area",t);continue}return{cellId:ce.parse(o.id)}}}return T.warn("No visible output area found for scroll anchor"),null}function Aa(e){if(!e){T.warn("No scroll anchor provided to restore scroll position");return}let t=document.getElementById(ce.create(e.cellId));if(!t){T.warn("Could not find cell element to restore scroll position",e.cellId);return}if(!t.querySelector(`.${We.outputArea}`)){T.warn("Could not find output area to restore scroll position",e.cellId);return}t.scrollIntoView({block:"start",behavior:"auto"})}function Ve(){let e=(0,Da.c)(2),t=L(je),n;return e[0]===t?n=e[1]:(n=()=>{let o=_a();t(s=>({mode:ut(s.mode),cellAnchor:(o==null?void 0:o.cellId)??null})),requestAnimationFrame(()=>{requestAnimationFrame(()=>{Aa(o)})})},e[0]=t,e[1]=n),n}const Ye=Qe(!1);var Na=_();const Pa=()=>{let e=(0,Na.c)(7),{selectedLayout:t}=Se(),{setLayoutView:n}=De();if(he()&&!at("wasm_layouts"))return null;let o;e[0]===n?o=e[1]:(o=i=>n(i),e[0]=n,e[1]=o);let s;e[2]===Symbol.for("react.memo_cache_sentinel")?(s=(0,a.jsx)(ta,{className:"min-w-[110px] border-border bg-background","data-testid":"layout-select",children:(0,a.jsx)(Xt,{placeholder:"Select a view"})}),e[2]=s):s=e[2];let r;e[3]===Symbol.for("react.memo_cache_sentinel")?(r=(0,a.jsx)(Qt,{children:(0,a.jsxs)(ea,{children:[(0,a.jsx)(Jt,{children:"View as"}),Le.map(Ea)]})}),e[3]=r):r=e[3];let l;return e[4]!==t||e[5]!==o?(l=(0,a.jsxs)(aa,{"data-testid":"layout-select",value:t,onValueChange:o,children:[s,r]}),e[4]=t,e[5]=o,e[6]=l):l=e[6],l};function Ia(e){return(0,a.jsx)(Ke(e),{className:"h-4 w-4"})}function Ke(e){switch(e){case"vertical":return ja;case"grid":return qt;case"slides":return Be;default:return yt(e),Ft}}function Ue(e){return Ce(e)}function Ea(e){return(0,a.jsx)(Zt,{value:e,children:(0,a.jsxs)("div",{className:"flex items-center gap-1.5 leading-5",children:[Ia(e),(0,a.jsx)("span",{children:Ue(e)})]})},e)}async function La(e){let{filename:t,preset:n,downloadPDF:o}=e;await o({filename:t,webpdf:!1,preset:n,includeInputs:!0,rasterServer:"static"})}var Ta=_();function Ha(e){let t=(0,Ta.c)(5),{openPrompt:n,closeModal:o}=fe(),{sendCopy:s}=H(),r;return t[0]!==o||t[1]!==n||t[2]!==s||t[3]!==e?(r=()=>{if(!e)return null;let l=Gt.guessDeliminator(e);n({title:"Copy notebook",description:"Enter a new filename for the notebook copy.",defaultValue:`_${Ie.basename(e)}`,confirmText:"Copy notebook",spellCheck:!1,onConfirm:i=>{let d=l.join(Ie.dirname(e),i);s({source:e,destination:d}).then(()=>{o(),C({title:"Notebook copied",description:"A copy of the notebook has been created."}),fa(d)})}})},t[0]=o,t[1]=n,t[2]=s,t[3]=e,t[4]=r):r=t[4],r}const qa=()=>{let{updateCellConfig:e}=ge(),{saveCellConfig:t}=H();return(0,ye.useCallback)(async()=>{let n=new ot,o=ve(),s=o.cellIds.inOrderIds,r={};for(let i of s){if(o.cellData[i]===void 0)continue;let{code:d,config:m}=o.cellData[i];m.hide_code||n.isSupported(d)&&(r[i]={hide_code:!0})}let l=Me.entries(r);if(l.length!==0){await t({configs:r});for(let[i,d]of l)e({cellId:i,config:d})}},[e])};var Ra=_();function Ge(){let e=(0,Ra.c)(4),{openConfirm:t}=fe(),n=L(gt),{sendRestart:o}=H(),s;return e[0]!==t||e[1]!==o||e[2]!==n?(s=()=>{t({title:"Restart Kernel",description:"This will restart the Python kernel. You'll lose all data that's in memory. You will also lose any unsaved changes, so make sure to save your work before restarting.",variant:"destructive",confirmAction:(0,a.jsx)(na,{onClick:async()=>{n({state:jt.CLOSING}),await o(),ca()},"aria-label":"Confirm Restart",children:"Restart"})})},e[0]=t,e[1]=o,e[2]=n,e[3]=s):s=e[3],s}var Ba=_(),N=e=>{e==null||e.preventDefault(),e==null||e.stopPropagation()};function Fa(){var be,xe;let e=(0,Ba.c)(51),t=pa(),{openModal:n,closeModal:o}=fe(),{toggleApplication:s}=ft(),{selectedPanel:r}=it(),[l]=Ze(je),i=de(dt),d=qa(),[m]=wt(),{updateCellConfig:w,undoDeleteCell:g,clearAllCellOutputs:u,addSetupCellIfDoesntExist:f,collapseAllCells:y,expandAllCells:k}=ge(),b=Ge(),x=ht(),j=Ha(t),v=L(Ye),P=L(bt),z=L(xt),{exportAsIPYNB:ee,exportAsMarkdown:te,readCode:I,saveCellConfig:ae,updateCellOutputs:M}=H(),W=ya(),oe=de(st),ne=de(mt),{selectedLayout:q}=Se(),{setLayoutView:ie}=De(),R=Ve(),B=((be=m.sharing)==null?void 0:be.html)??!0,F=((xe=m.sharing)==null?void 0:xe.wasm)??!0,ke=!he(),se=q==="slides",$e=so,Je=io,O;e[0]!==t||e[1]!==W||e[2]!==M?(O=async c=>{let{preset:p,title:E}=c;if(!t){Q();return}await Pe(E,async re=>{await Ee({takeScreenshots:()=>W({progress:re}),updateCellOutputs:M}),await La({filename:t,preset:p,downloadPDF:Wt})})},e[0]=t,e[1]=W,e[2]=M,e[3]=O):O=e[3];let S=O,V;e[4]===S?V=e[5]:(V=async()=>{if(ke){await S({preset:"document",title:"Downloading Document PDF..."});return}let c=new Event("export-beforeprint"),p=new Event("export-afterprint");window.dispatchEvent(c),setTimeout(no,0),setTimeout(()=>window.dispatchEvent(p),0)},e[4]=S,e[5]=V);let Y=V,K;e[6]!==ee||e[7]!==t||e[8]!==W||e[9]!==M?(K=async()=>{if(!t){Q();return}await Pe("Downloading IPYNB...",async c=>{await Ee({takeScreenshots:()=>W({progress:c}),updateCellOutputs:M});let p=await ee({download:!1});ue(new Blob([p],{type:"application/x-ipynb+json"}),me.toIPYNB(document.title))})},e[6]=ee,e[7]=t,e[8]=W,e[9]=M,e[10]=K):K=e[10];let le=K,U;e[11]===Symbol.for("react.memo_cache_sentinel")?(U=(0,a.jsx)(Pt,{size:14,strokeWidth:1.5}),e[11]=U):U=e[11];let G;e[12]===Symbol.for("react.memo_cache_sentinel")?(G=(0,a.jsx)(_e,{size:14,strokeWidth:1.5}),e[12]=G):G=e[12];let D;e[13]===t?D=e[14]:(D=async()=>{if(!t){Q();return}await Ae({filename:t,includeCode:!0})},e[13]=t,e[14]=D);let $;return e[15]!==f||e[16]!==ne||e[17]!==u||e[18]!==o||e[19]!==y||e[20]!==j||e[21]!==S||e[22]!==k||e[23]!==te||e[24]!==t||e[25]!==Y||e[26]!==le||e[27]!==oe||e[28]!==d||e[29]!==se||e[30]!==i||e[31]!==n||e[32]!==I||e[33]!==b||e[34]!==x||e[35]!==ae||e[36]!==q||e[37]!==r||e[38]!==v||e[39]!==z||e[40]!==ie||e[41]!==P||e[42]!==B||e[43]!==F||e[44]!==D||e[45]!==s||e[46]!==R||e[47]!==g||e[48]!==w||e[49]!==l.mode?($=[{icon:U,label:"Download",handle:N,dropdown:[{icon:G,label:"Download as HTML",handle:D},{icon:(0,a.jsx)(_e,{size:14,strokeWidth:1.5}),label:"Download as HTML (exclude code)",handle:async()=>{if(!t){Q();return}await Ae({filename:t,includeCode:!1})}},{icon:(0,a.jsx)(ua,{strokeWidth:1.5,style:{width:14,height:14}}),label:"Download as Markdown",handle:async()=>{let c=await te({download:!1});ue(new Blob([c],{type:"text/plain"}),me.toMarkdown(document.title))}},{icon:(0,a.jsx)(va,{size:14,strokeWidth:1.5}),label:"Download as ipynb",handle:le},{icon:(0,a.jsx)(Mt,{size:14,strokeWidth:1.5}),label:"Download Python code",handle:async()=>{let c=await I();ue(new Blob([c.contents],{type:"text/plain"}),me.toPY(document.title))}},{divider:!0,icon:(0,a.jsx)(Ot,{size:14,strokeWidth:1.5}),label:"Download as PNG",disabled:l.mode!=="present",tooltip:l.mode==="present"?void 0:(0,a.jsxs)("span",{children:["Only available in app view. ",(0,a.jsx)("br",{}),"Toggle with: ",ma("global.hideCode",!1)]}),handle:oo},se?{divider:!0,icon:(0,a.jsx)(J,{size:14,strokeWidth:1.5}),label:"Download as PDF",handle:N,dropdown:[{icon:(0,a.jsx)(J,{size:14,strokeWidth:1.5}),label:"Document Layout",handle:Y},{icon:(0,a.jsx)(J,{size:14,strokeWidth:1.5}),label:"Slides Layout",rightElement:Je(!0),hidden:!ke,handle:async()=>{await S({preset:"slides",title:"Downloading Slides PDF..."})}}]}:{divider:!0,icon:(0,a.jsx)(J,{size:14,strokeWidth:1.5}),label:"Download as PDF",handle:Y}]},{icon:(0,a.jsx)(za,{size:14,strokeWidth:1.5}),label:"Share",handle:N,hidden:!B&&!F,dropdown:[{icon:(0,a.jsx)(Tt,{size:14,strokeWidth:1.5}),label:"Publish HTML to web",hidden:!B,handle:async()=>{n((0,a.jsx)(Wa,{onClose:o}))}},{icon:(0,a.jsx)(Vt,{size:14,strokeWidth:1.5}),label:"Create WebAssembly link",hidden:!F,handle:async()=>{await X(ha({code:(await I()).contents})),C({title:"Copied",description:"Link copied to clipboard."})}}]},{icon:(0,a.jsx)(Ca,{size:14,strokeWidth:1.5}),label:"Helper panel",redundant:!0,handle:N,dropdown:tt.flatMap(c=>{let{type:p,Icon:E,hidden:re,additionalKeywords:Xe}=c;return re?[]:{label:Ce(p),rightElement:$e(r===p),icon:(0,a.jsx)(E,{size:14,strokeWidth:1.5}),handle:()=>s(p),additionalKeywords:Xe}})},{icon:(0,a.jsx)(Be,{size:14,strokeWidth:1.5}),label:"Present as",handle:N,dropdown:[{icon:l.mode==="present"?(0,a.jsx)(Ut,{size:14,strokeWidth:1.5}):(0,a.jsx)(Re,{size:14,strokeWidth:1.5}),label:"Toggle app view",hotkey:"global.hideCode",handle:()=>{R()}},...Le.map((c,p)=>{let E=Ke(c);return{divider:p===0,label:Ue(c),icon:(0,a.jsx)(E,{size:14,strokeWidth:1.5}),rightElement:(0,a.jsx)("div",{className:"w-8 flex justify-end",children:q===c&&(0,a.jsx)(Ne,{size:14})}),handle:()=>{ie(c),l.mode==="edit"&&R()}}})]},{icon:(0,a.jsx)(wa,{size:14,strokeWidth:1.5}),label:"Duplicate notebook",hidden:!t||he(),handle:j},{icon:(0,a.jsx)(Te,{size:14,strokeWidth:1.5}),label:"Copy code to clipboard",hidden:!t,handle:async()=>{await X((await I()).contents),C({title:"Copied",description:"Code copied to clipboard."})}},{icon:(0,a.jsx)(At,{size:14,strokeWidth:1.5}),label:"Enable all cells",hidden:!oe||i,handle:async()=>{let c=nt(ve());await ae({configs:Me.fromEntries(c.map(ao))});for(let p of c)w({cellId:p,config:{disabled:!1}})}},{divider:!0,icon:(0,a.jsx)(qe,{size:14,strokeWidth:1.5}),label:"Add setup cell",handle:()=>{f({})}},{icon:(0,a.jsx)(lt,{size:14,strokeWidth:1.5}),label:"Add database connection",handle:()=>{n((0,a.jsx)(ze,{onClose:o}))}},{icon:(0,a.jsx)(kt,{size:14,strokeWidth:1.5}),label:"Add remote storage",handle:()=>{n((0,a.jsx)(ze,{defaultTab:"storage",onClose:o}))}},{icon:(0,a.jsx)(Fe,{size:14,strokeWidth:1.5}),label:"Undo cell deletion",hidden:!ne||i,handle:()=>{g()}},{icon:(0,a.jsx)(Ma,{size:14,strokeWidth:1.5}),label:"Restart kernel",variant:"danger",handle:b,additionalKeywords:["reset","reload","restart"]},{icon:(0,a.jsx)(xa,{size:14,strokeWidth:1.5}),label:"Re-run all cells",redundant:!0,hotkey:"global.runAll",handle:async()=>{x()}},{icon:(0,a.jsx)(rt,{size:14,strokeWidth:1.5}),label:"Clear all outputs",redundant:!0,handle:()=>{u()}},{icon:(0,a.jsx)(It,{size:14,strokeWidth:1.5}),label:"Hide all markdown code",handle:d,redundant:!0},{icon:(0,a.jsx)(ba,{size:14,strokeWidth:1.5}),label:"Collapse all sections",hotkey:"global.collapseAllSections",handle:y,redundant:!0},{icon:(0,a.jsx)(ka,{size:14,strokeWidth:1.5}),label:"Expand all sections",hotkey:"global.expandAllSections",handle:k,redundant:!0},{divider:!0,icon:(0,a.jsx)(He,{size:14,strokeWidth:1.5}),label:"Command palette",hotkey:"global.commandPalette",handle:()=>v(to)},{icon:(0,a.jsx)(ga,{size:14,strokeWidth:1.5}),label:"Keyboard shortcuts",hotkey:"global.showHelp",handle:()=>z(eo)},{icon:(0,a.jsx)(Kt,{size:14,strokeWidth:1.5}),label:"User settings",handle:()=>P(Qa),redundant:!0,additionalKeywords:["preferences","options","configuration"]},{icon:(0,a.jsx)(_t,{size:14,strokeWidth:1.5}),label:"Resources",handle:N,dropdown:[{icon:(0,a.jsx)(ct,{size:14,strokeWidth:1.5}),label:"Documentation",handle:Za},{icon:(0,a.jsx)(Lt,{size:14,strokeWidth:1.5}),label:"GitHub",handle:Xa},{icon:(0,a.jsx)(Ht,{size:14,strokeWidth:1.5}),label:"Discord Community",handle:Ja},{icon:(0,a.jsx)(Rt,{size:14,strokeWidth:1.5}),label:"YouTube",handle:$a},{icon:(0,a.jsx)(pt,{size:14,strokeWidth:1.5}),label:"Changelog",handle:Ga}]},{divider:!0,icon:(0,a.jsx)(Bt,{size:14,strokeWidth:1.5}),label:"Return home",hidden:!location.search.includes("file"),handle:Ua},{icon:(0,a.jsx)(Et,{size:14,strokeWidth:1.5}),label:"New notebook",hidden:!location.search.includes("file"),handle:Ka}].filter(Ya).map(Oa),e[15]=f,e[16]=ne,e[17]=u,e[18]=o,e[19]=y,e[20]=j,e[21]=S,e[22]=k,e[23]=te,e[24]=t,e[25]=Y,e[26]=le,e[27]=oe,e[28]=d,e[29]=se,e[30]=i,e[31]=n,e[32]=I,e[33]=b,e[34]=x,e[35]=ae,e[36]=q,e[37]=r,e[38]=v,e[39]=z,e[40]=ie,e[41]=P,e[42]=B,e[43]=F,e[44]=D,e[45]=s,e[46]=R,e[47]=g,e[48]=w,e[49]=l.mode,e[50]=$):$=e[50],$}function Oa(e){return e.dropdown?{...e,dropdown:e.dropdown.filter(Va)}:e}function Va(e){return!e.hidden}function Ya(e){return!e.hidden}function Ka(){let e=$t();window.open(e,"_blank")}function Ua(){let e=document.baseURI.split("?")[0];window.open(e,"_self")}function Ga(){window.open(A.releasesPage,"_blank")}function $a(){window.open(A.youtube,"_blank")}function Ja(){window.open(A.discordLink,"_blank")}function Xa(){window.open(A.githubPage,"_blank")}function Za(){window.open(A.docsPage,"_blank")}function Qa(e){return!e}function eo(e){return!e}function to(e){return!e}function ao(e){return[e,{disabled:!1}]}async function oo(){let e=document.getElementById("App");e&&await St({element:e,filename:document.title,prepare:Dt})}function no(){return window.print()}function io(e){return e?(0,a.jsx)("span",{className:"ml-3 shrink-0 rounded-full border border-emerald-200 bg-emerald-50 px-2 py-0.5 text-[10px] font-semibold uppercase tracking-wide text-emerald-700",children:"Recommended"}):null}function so(e){return(0,a.jsx)("div",{className:"w-8 flex justify-end",children:e&&(0,a.jsx)(Ne,{size:14})})}function Q(){C({title:"Error",description:"Notebooks must be named to be exported.",variant:"danger"})}export{Ve as a,qe as c,Ye as i,He as l,Ge as n,Fe as o,Pa as r,Re as s,Fa as t,Te as u};
1
+ import{s as we}from"./chunk-LvLJmgfZ.js";import{d as L,l as Ze,p as Qe,u as de}from"./useEvent-O0nX5vok.js";import{t as et}from"./react-Bj1aDYRI.js";import{Cn as tt,En as at,Gt as ot,Nr as nt,Sn as it,T as ge,_ as st,ar as lt,cr as rt,dt as je,h as ve,lt as dt,pr as ct,pt as ht,rr as pt,t as mt,ut,vi as ce,xn as ft}from"./cells-5wegzPD4.js";import{t as _}from"./compiler-runtime-B3qBwwSJ.js";import{n as yt}from"./assertNever-CTRGz-ul.js";import{s as Ce}from"./useLifecycle-CWjBWFMI.js";import{i as kt,n as ze}from"./add-connection-dialog-DS033hDE.js";import{n as bt,x as xt}from"./ai-model-dropdown-DJn8Mf6B.js";import{c as Me,m as T}from"./useEventListener-BGihH8bs.js";import{y as wt}from"./utils-HIU-NsEv.js";import{n as A,t as We}from"./constants-Rz_lD4HK.js";import{S as he,h as gt,x as jt}from"./config-RexwtI0U.js";import{t as vt}from"./jsx-runtime-icT_Ltz2.js";import{r as Ct,t as pe}from"./button-BZAv3veu.js";import{r as H}from"./requests-Bgjtqo_1.js";import{t as h}from"./createLucideIcon-Cm-Z7dYr.js";import{a as Se,f as zt,i as De,m as Mt,p as _e,u as Ae}from"./layout-CpSNosnt.js";import{t as Ne}from"./check-BE0hEwVo.js";import{c as Pe,d as me,n as Wt,o as St,r as ue,t as Dt}from"./download-B8XlLSji.js";import{f as _t}from"./maps-CqKCrVZ8.js";import{r as At}from"./useCellActionButton-DPHJ31aq.js";import{t as Nt}from"./copy-CkudG0Ej.js";import{t as Pt}from"./download-DBW9RXtT.js";import{t as It}from"./eye-off-vwi9L975.js";import{t as Et}from"./file-plus-corner-lLQw9OnR.js";import{t as J}from"./file-DzHkbIdO.js";import{t as Lt}from"./github-BVtI-3F1.js";import{m as Tt}from"./form-p9cBnWwo.js";import{n as Ht,r as qt,t as Rt}from"./youtube-DE-Ej6FR.js";import{n as Bt,t as Ft}from"./square-CxAsQQ77.js";import{t as Ot}from"./image-DXfkah9d.js";import{t as Vt}from"./link-Cf10mh3t.js";import{r as Yt}from"./input-C5eatTLl.js";import{t as Kt}from"./settings-CzQUw9rV.js";import{x as Ut}from"./azure-a3T26UGw.js";import{t as C}from"./use-toast-Hc8CXlvz.js";import{n as Ie,t as Gt}from"./paths-D2lG83Oh.js";import{o as $t}from"./session-CXChHxAw.js";import{a as Jt,c as Xt,i as Zt,n as Qt,r as ea,s as ta,t as aa}from"./select-Ch6m1k2G.js";import{t as oa}from"./tooltip-CNmaER6z.js";import{o as na}from"./alert-dialog-DbQ_TZC7.js";import{a as ia,c as sa,i as la,n as ra,r as da}from"./dialog-DCGn-_Ip.js";import{n as fe}from"./ImperativeModal-b5nJtLod.js";import{r as ca,t as ha}from"./share-DdWa0mV7.js";import{t as X}from"./copy-f2iEg0yL.js";import{a as pa}from"./cell-link-C9qZWgbj.js";import{a as ma}from"./renderShortcut-BSq2vc9J.js";import{t as ua}from"./icons-T5yQRjuT.js";import{t as fa}from"./links-XdsYEk97.js";import{r as ya,t as Ee}from"./hooks-WmIIm80L.js";import{t as Le}from"./types-DBNA0l6L.js";var ka=h("circle-chevron-down",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m16 10-4 4-4-4",key:"894hmk"}]]),ba=h("circle-chevron-right",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m10 8 4 4-4 4",key:"1wy4r4"}]]),Te=h("clipboard-copy",[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2",key:"4jdomd"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v4",key:"3hqy98"}],["path",{d:"M21 14H11",key:"1bme5i"}],["path",{d:"m15 10-4 4 4 4",key:"5dvupr"}]]),He=h("command",[["path",{d:"M15 6v12a3 3 0 1 0 3-3H6a3 3 0 1 0 3 3V6a3 3 0 1 0-3 3h12a3 3 0 1 0-3-3",key:"11bfej"}]]),qe=h("diamond-plus",[["path",{d:"M12 8v8",key:"napkw2"}],["path",{d:"M2.7 10.3a2.41 2.41 0 0 0 0 3.41l7.59 7.59a2.41 2.41 0 0 0 3.41 0l7.59-7.59a2.41 2.41 0 0 0 0-3.41L13.7 2.71a2.41 2.41 0 0 0-3.41 0z",key:"1ey20j"}],["path",{d:"M8 12h8",key:"1wcyev"}]]),xa=h("fast-forward",[["path",{d:"M12 6a2 2 0 0 1 3.414-1.414l6 6a2 2 0 0 1 0 2.828l-6 6A2 2 0 0 1 12 18z",key:"b19h5q"}],["path",{d:"M2 6a2 2 0 0 1 3.414-1.414l6 6a2 2 0 0 1 0 2.828l-6 6A2 2 0 0 1 2 18z",key:"h7h5ge"}]]),wa=h("files",[["path",{d:"M15 2h-4a2 2 0 0 0-2 2v11a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V8",key:"14sh0y"}],["path",{d:"M16.706 2.706A2.4 2.4 0 0 0 15 2v5a1 1 0 0 0 1 1h5a2.4 2.4 0 0 0-.706-1.706z",key:"1970lx"}],["path",{d:"M5 7a2 2 0 0 0-2 2v11a2 2 0 0 0 2 2h8a2 2 0 0 0 1.732-1",key:"l4dndm"}]]),ga=h("keyboard",[["path",{d:"M10 8h.01",key:"1r9ogq"}],["path",{d:"M12 12h.01",key:"1mp3jc"}],["path",{d:"M14 8h.01",key:"1primd"}],["path",{d:"M16 12h.01",key:"1l6xoz"}],["path",{d:"M18 8h.01",key:"emo2bl"}],["path",{d:"M6 8h.01",key:"x9i8wu"}],["path",{d:"M7 16h10",key:"wp8him"}],["path",{d:"M8 12h.01",key:"czm47f"}],["rect",{width:"20",height:"16",x:"2",y:"4",rx:"2",key:"18n3k1"}]]),Re=h("layout-template",[["rect",{width:"18",height:"7",x:"3",y:"3",rx:"1",key:"f1a2em"}],["rect",{width:"9",height:"7",x:"3",y:"14",rx:"1",key:"jqznyg"}],["rect",{width:"5",height:"7",x:"16",y:"14",rx:"1",key:"q5h2i8"}]]),ja=h("list",[["path",{d:"M3 5h.01",key:"18ugdj"}],["path",{d:"M3 12h.01",key:"nlz23k"}],["path",{d:"M3 19h.01",key:"noohij"}],["path",{d:"M8 5h13",key:"1pao27"}],["path",{d:"M8 12h13",key:"1za7za"}],["path",{d:"M8 19h13",key:"m83p4d"}]]),va=h("notebook",[["path",{d:"M2 6h4",key:"aawbzj"}],["path",{d:"M2 10h4",key:"l0bgd4"}],["path",{d:"M2 14h4",key:"1gsvsf"}],["path",{d:"M2 18h4",key:"1bu2t1"}],["rect",{width:"16",height:"20",x:"4",y:"2",rx:"2",key:"1nb95v"}],["path",{d:"M16 2v20",key:"rotuqe"}]]),Ca=h("panel-left",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}]]),Be=h("presentation",[["path",{d:"M2 3h20",key:"91anmk"}],["path",{d:"M21 3v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V3",key:"2k9sn8"}],["path",{d:"m7 21 5-5 5 5",key:"bip4we"}]]),za=h("share-2",[["circle",{cx:"18",cy:"5",r:"3",key:"gq8acd"}],["circle",{cx:"6",cy:"12",r:"3",key:"w7nqdw"}],["circle",{cx:"18",cy:"19",r:"3",key:"1xt0gg"}],["line",{x1:"8.59",x2:"15.42",y1:"13.51",y2:"17.49",key:"47mynk"}],["line",{x1:"15.41",x2:"8.59",y1:"6.51",y2:"10.49",key:"1n3mei"}]]),Ma=h("square-power",[["path",{d:"M12 7v4",key:"xawao1"}],["path",{d:"M7.998 9.003a5 5 0 1 0 8-.005",key:"1pek45"}],["rect",{x:"3",y:"3",width:"18",height:"18",rx:"2",key:"h1oib"}]]),Fe=h("undo-2",[["path",{d:"M9 14 4 9l5-5",key:"102s5s"}],["path",{d:"M4 9h10.5a5.5 5.5 0 0 1 5.5 5.5a5.5 5.5 0 0 1-5.5 5.5H11",key:"f3b9sd"}]]),Oe=_(),ye=we(et(),1),a=we(vt(),1),Z="https://static.marimo.app";const Wa=e=>{let t=(0,Oe.c)(25),{onClose:n}=e,[o,s]=(0,ye.useState)(""),{exportAsHTML:r}=H(),l=`${o}-${Math.random().toString(36).slice(2,6)}`,i=`${Z}/static/${l}`,d;t[0]!==r||t[1]!==n||t[2]!==l?(d=async v=>{v.preventDefault(),n();let P=await r({download:!1,includeCode:!0,files:zt.INSTANCE.filenames()}),z=C({title:"Uploading static notebook...",description:"Please wait."});await fetch(`${Z}/api/static`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({html:P,path:l})}).catch(()=>{z.dismiss(),C({title:"Error uploading static page",description:(0,a.jsxs)("div",{children:["Please try again later. If the problem persists, please file a bug report on"," ",(0,a.jsx)("a",{href:A.issuesPage,target:"_blank",className:"underline",children:"GitHub"}),"."]})})}),z.dismiss(),C({title:"Static page uploaded!",description:(0,a.jsxs)("div",{children:["The URL has been copied to your clipboard.",(0,a.jsx)("br",{}),"You can share it with anyone."]})})},t[0]=r,t[1]=n,t[2]=l,t[3]=d):d=t[3];let m;t[4]===Symbol.for("react.memo_cache_sentinel")?(m=(0,a.jsx)(sa,{children:"Share static notebook"}),t[4]=m):m=t[4];let w;t[5]===Symbol.for("react.memo_cache_sentinel")?(w=(0,a.jsxs)(ia,{children:[m,(0,a.jsxs)(da,{children:["You can publish a static, non-interactive version of this notebook to the public web. We will create a link for you that lives on"," ",(0,a.jsx)("a",{href:Z,target:"_blank",children:Z}),"."]})]}),t[5]=w):w=t[5];let g;t[6]===Symbol.for("react.memo_cache_sentinel")?(g=v=>{s(v.target.value.toLowerCase().replaceAll(/\s/g,"-").replaceAll(/[^\da-z-]/g,""))},t[6]=g):g=t[6];let u;t[7]===o?u=t[8]:(u=(0,a.jsx)(Yt,{"data-testid":"slug-input",id:"slug",autoFocus:!0,value:o,placeholder:"Notebook slug",onChange:g,required:!0,autoComplete:"off"}),t[7]=o,t[8]=u);let f;t[9]===i?f=t[10]:(f=(0,a.jsxs)("div",{className:"font-semibold text-sm text-muted-foreground gap-2 flex flex-col",children:["Anyone will be able to access your notebook at this URL:",(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)(Sa,{text:i}),(0,a.jsx)("span",{className:"text-primary",children:i})]})]}),t[9]=i,t[10]=f);let y;t[11]!==u||t[12]!==f?(y=(0,a.jsxs)("div",{className:"flex flex-col gap-6 py-4",children:[u,f]}),t[11]=u,t[12]=f,t[13]=y):y=t[13];let k;t[14]===n?k=t[15]:(k=(0,a.jsx)(pe,{"data-testid":"cancel-share-static-notebook-button",variant:"secondary",onClick:n,children:"Cancel"}),t[14]=n,t[15]=k);let b;t[16]===i?b=t[17]:(b=(0,a.jsx)(pe,{"data-testid":"share-static-notebook-button","aria-label":"Save",variant:"default",type:"submit",onClick:async()=>{await X(i)},children:"Create"}),t[16]=i,t[17]=b);let x;t[18]!==k||t[19]!==b?(x=(0,a.jsxs)(la,{children:[k,b]}),t[18]=k,t[19]=b,t[20]=x):x=t[20];let j;return t[21]!==d||t[22]!==x||t[23]!==y?(j=(0,a.jsx)(ra,{className:"w-fit",children:(0,a.jsxs)("form",{onSubmit:d,children:[w,y,x]})}),t[21]=d,t[22]=x,t[23]=y,t[24]=j):j=t[24],j};var Sa=e=>{let t=(0,Oe.c)(8),[n,o]=ye.useState(!1),s;t[0]===e.text?s=t[1]:(s=Ct.stopPropagation(async m=>{m.preventDefault(),await X(e.text),o(!0),setTimeout(()=>o(!1),2e3)}),t[0]=e.text,t[1]=s);let r=s,l;t[2]===Symbol.for("react.memo_cache_sentinel")?(l=(0,a.jsx)(Nt,{size:14,strokeWidth:1.5}),t[2]=l):l=t[2];let i;t[3]===r?i=t[4]:(i=(0,a.jsx)(pe,{"data-testid":"copy-static-notebook-url-button",onClick:r,size:"xs",variant:"secondary",children:l}),t[3]=r,t[4]=i);let d;return t[5]!==n||t[6]!==i?(d=(0,a.jsx)(oa,{content:"Copied!",open:n,children:i}),t[5]=n,t[6]=i,t[7]=d):d=t[7],d},Da=_();function _a(){let e=document.getElementsByClassName(We.outputArea);for(let t of e){let n=t.getBoundingClientRect();if(n.bottom>0&&n.top<window.innerHeight){let o=ce.findElement(t);if(!o){T.warn("Could not find HTMLCellId for visible output area",t);continue}return{cellId:ce.parse(o.id)}}}return T.warn("No visible output area found for scroll anchor"),null}function Aa(e){if(!e){T.warn("No scroll anchor provided to restore scroll position");return}let t=document.getElementById(ce.create(e.cellId));if(!t){T.warn("Could not find cell element to restore scroll position",e.cellId);return}if(!t.querySelector(`.${We.outputArea}`)){T.warn("Could not find output area to restore scroll position",e.cellId);return}t.scrollIntoView({block:"start",behavior:"auto"})}function Ve(){let e=(0,Da.c)(2),t=L(je),n;return e[0]===t?n=e[1]:(n=()=>{let o=_a();t(s=>({mode:ut(s.mode),cellAnchor:(o==null?void 0:o.cellId)??null})),requestAnimationFrame(()=>{requestAnimationFrame(()=>{Aa(o)})})},e[0]=t,e[1]=n),n}const Ye=Qe(!1);var Na=_();const Pa=()=>{let e=(0,Na.c)(7),{selectedLayout:t}=Se(),{setLayoutView:n}=De();if(he()&&!at("wasm_layouts"))return null;let o;e[0]===n?o=e[1]:(o=i=>n(i),e[0]=n,e[1]=o);let s;e[2]===Symbol.for("react.memo_cache_sentinel")?(s=(0,a.jsx)(ta,{className:"min-w-[110px] border-border bg-background","data-testid":"layout-select",children:(0,a.jsx)(Xt,{placeholder:"Select a view"})}),e[2]=s):s=e[2];let r;e[3]===Symbol.for("react.memo_cache_sentinel")?(r=(0,a.jsx)(Qt,{children:(0,a.jsxs)(ea,{children:[(0,a.jsx)(Jt,{children:"View as"}),Le.map(Ea)]})}),e[3]=r):r=e[3];let l;return e[4]!==t||e[5]!==o?(l=(0,a.jsxs)(aa,{"data-testid":"layout-select",value:t,onValueChange:o,children:[s,r]}),e[4]=t,e[5]=o,e[6]=l):l=e[6],l};function Ia(e){return(0,a.jsx)(Ke(e),{className:"h-4 w-4"})}function Ke(e){switch(e){case"vertical":return ja;case"grid":return qt;case"slides":return Be;default:return yt(e),Ft}}function Ue(e){return Ce(e)}function Ea(e){return(0,a.jsx)(Zt,{value:e,children:(0,a.jsxs)("div",{className:"flex items-center gap-1.5 leading-5",children:[Ia(e),(0,a.jsx)("span",{children:Ue(e)})]})},e)}async function La(e){let{filename:t,preset:n,downloadPDF:o}=e;await o({filename:t,webpdf:!1,preset:n,includeInputs:!0,rasterServer:"static"})}var Ta=_();function Ha(e){let t=(0,Ta.c)(5),{openPrompt:n,closeModal:o}=fe(),{sendCopy:s}=H(),r;return t[0]!==o||t[1]!==n||t[2]!==s||t[3]!==e?(r=()=>{if(!e)return null;let l=Gt.guessDeliminator(e);n({title:"Copy notebook",description:"Enter a new filename for the notebook copy.",defaultValue:`_${Ie.basename(e)}`,confirmText:"Copy notebook",spellCheck:!1,onConfirm:i=>{let d=l.join(Ie.dirname(e),i);s({source:e,destination:d}).then(()=>{o(),C({title:"Notebook copied",description:"A copy of the notebook has been created."}),fa(d)})}})},t[0]=o,t[1]=n,t[2]=s,t[3]=e,t[4]=r):r=t[4],r}const qa=()=>{let{updateCellConfig:e}=ge(),{saveCellConfig:t}=H();return(0,ye.useCallback)(async()=>{let n=new ot,o=ve(),s=o.cellIds.inOrderIds,r={};for(let i of s){if(o.cellData[i]===void 0)continue;let{code:d,config:m}=o.cellData[i];m.hide_code||n.isSupported(d)&&(r[i]={hide_code:!0})}let l=Me.entries(r);if(l.length!==0){await t({configs:r});for(let[i,d]of l)e({cellId:i,config:d})}},[e])};var Ra=_();function Ge(){let e=(0,Ra.c)(4),{openConfirm:t}=fe(),n=L(gt),{sendRestart:o}=H(),s;return e[0]!==t||e[1]!==o||e[2]!==n?(s=()=>{t({title:"Restart Kernel",description:"This will restart the Python kernel. You'll lose all data that's in memory. You will also lose any unsaved changes, so make sure to save your work before restarting.",variant:"destructive",confirmAction:(0,a.jsx)(na,{onClick:async()=>{n({state:jt.CLOSING}),await o(),ca()},"aria-label":"Confirm Restart",children:"Restart"})})},e[0]=t,e[1]=o,e[2]=n,e[3]=s):s=e[3],s}var Ba=_(),N=e=>{e==null||e.preventDefault(),e==null||e.stopPropagation()};function Fa(){var be,xe;let e=(0,Ba.c)(51),t=pa(),{openModal:n,closeModal:o}=fe(),{toggleApplication:s}=ft(),{selectedPanel:r}=it(),[l]=Ze(je),i=de(dt),d=qa(),[m]=wt(),{updateCellConfig:w,undoDeleteCell:g,clearAllCellOutputs:u,addSetupCellIfDoesntExist:f,collapseAllCells:y,expandAllCells:k}=ge(),b=Ge(),x=ht(),j=Ha(t),v=L(Ye),P=L(bt),z=L(xt),{exportAsIPYNB:ee,exportAsMarkdown:te,readCode:I,saveCellConfig:ae,updateCellOutputs:M}=H(),W=ya(),oe=de(st),ne=de(mt),{selectedLayout:q}=Se(),{setLayoutView:ie}=De(),R=Ve(),B=((be=m.sharing)==null?void 0:be.html)??!0,F=((xe=m.sharing)==null?void 0:xe.wasm)??!0,ke=!he(),se=q==="slides",$e=so,Je=io,O;e[0]!==t||e[1]!==W||e[2]!==M?(O=async c=>{let{preset:p,title:E}=c;if(!t){Q();return}await Pe(E,async re=>{await Ee({takeScreenshots:()=>W({progress:re}),updateCellOutputs:M}),await La({filename:t,preset:p,downloadPDF:Wt})})},e[0]=t,e[1]=W,e[2]=M,e[3]=O):O=e[3];let S=O,V;e[4]===S?V=e[5]:(V=async()=>{if(ke){await S({preset:"document",title:"Downloading Document PDF..."});return}let c=new Event("export-beforeprint"),p=new Event("export-afterprint");window.dispatchEvent(c),setTimeout(no,0),setTimeout(()=>window.dispatchEvent(p),0)},e[4]=S,e[5]=V);let Y=V,K;e[6]!==ee||e[7]!==t||e[8]!==W||e[9]!==M?(K=async()=>{if(!t){Q();return}await Pe("Downloading IPYNB...",async c=>{await Ee({takeScreenshots:()=>W({progress:c}),updateCellOutputs:M});let p=await ee({download:!1});ue(new Blob([p],{type:"application/x-ipynb+json"}),me.toIPYNB(document.title))})},e[6]=ee,e[7]=t,e[8]=W,e[9]=M,e[10]=K):K=e[10];let le=K,U;e[11]===Symbol.for("react.memo_cache_sentinel")?(U=(0,a.jsx)(Pt,{size:14,strokeWidth:1.5}),e[11]=U):U=e[11];let G;e[12]===Symbol.for("react.memo_cache_sentinel")?(G=(0,a.jsx)(_e,{size:14,strokeWidth:1.5}),e[12]=G):G=e[12];let D;e[13]===t?D=e[14]:(D=async()=>{if(!t){Q();return}await Ae({filename:t,includeCode:!0})},e[13]=t,e[14]=D);let $;return e[15]!==f||e[16]!==ne||e[17]!==u||e[18]!==o||e[19]!==y||e[20]!==j||e[21]!==S||e[22]!==k||e[23]!==te||e[24]!==t||e[25]!==Y||e[26]!==le||e[27]!==oe||e[28]!==d||e[29]!==se||e[30]!==i||e[31]!==n||e[32]!==I||e[33]!==b||e[34]!==x||e[35]!==ae||e[36]!==q||e[37]!==r||e[38]!==v||e[39]!==z||e[40]!==ie||e[41]!==P||e[42]!==B||e[43]!==F||e[44]!==D||e[45]!==s||e[46]!==R||e[47]!==g||e[48]!==w||e[49]!==l.mode?($=[{icon:U,label:"Download",handle:N,dropdown:[{icon:G,label:"Download as HTML",handle:D},{icon:(0,a.jsx)(_e,{size:14,strokeWidth:1.5}),label:"Download as HTML (exclude code)",handle:async()=>{if(!t){Q();return}await Ae({filename:t,includeCode:!1})}},{icon:(0,a.jsx)(ua,{strokeWidth:1.5,style:{width:14,height:14}}),label:"Download as Markdown",handle:async()=>{let c=await te({download:!1});ue(new Blob([c],{type:"text/plain"}),me.toMarkdown(document.title))}},{icon:(0,a.jsx)(va,{size:14,strokeWidth:1.5}),label:"Download as ipynb",handle:le},{icon:(0,a.jsx)(Mt,{size:14,strokeWidth:1.5}),label:"Download Python code",handle:async()=>{let c=await I();ue(new Blob([c.contents],{type:"text/plain"}),me.toPY(document.title))}},{divider:!0,icon:(0,a.jsx)(Ot,{size:14,strokeWidth:1.5}),label:"Download as PNG",disabled:l.mode!=="present",tooltip:l.mode==="present"?void 0:(0,a.jsxs)("span",{children:["Only available in app view. ",(0,a.jsx)("br",{}),"Toggle with: ",ma("global.hideCode",!1)]}),handle:oo},se?{divider:!0,icon:(0,a.jsx)(J,{size:14,strokeWidth:1.5}),label:"Download as PDF",handle:N,dropdown:[{icon:(0,a.jsx)(J,{size:14,strokeWidth:1.5}),label:"Document Layout",handle:Y},{icon:(0,a.jsx)(J,{size:14,strokeWidth:1.5}),label:"Slides Layout",rightElement:Je(!0),hidden:!ke,handle:async()=>{await S({preset:"slides",title:"Downloading Slides PDF..."})}}]}:{divider:!0,icon:(0,a.jsx)(J,{size:14,strokeWidth:1.5}),label:"Download as PDF",handle:Y}]},{icon:(0,a.jsx)(za,{size:14,strokeWidth:1.5}),label:"Share",handle:N,hidden:!B&&!F,dropdown:[{icon:(0,a.jsx)(Tt,{size:14,strokeWidth:1.5}),label:"Publish HTML to web",hidden:!B,handle:async()=>{n((0,a.jsx)(Wa,{onClose:o}))}},{icon:(0,a.jsx)(Vt,{size:14,strokeWidth:1.5}),label:"Create WebAssembly link",hidden:!F,handle:async()=>{await X(ha({code:(await I()).contents})),C({title:"Copied",description:"Link copied to clipboard."})}}]},{icon:(0,a.jsx)(Ca,{size:14,strokeWidth:1.5}),label:"Helper panel",redundant:!0,handle:N,dropdown:tt.flatMap(c=>{let{type:p,Icon:E,hidden:re,additionalKeywords:Xe}=c;return re?[]:{label:Ce(p),rightElement:$e(r===p),icon:(0,a.jsx)(E,{size:14,strokeWidth:1.5}),handle:()=>s(p),additionalKeywords:Xe}})},{icon:(0,a.jsx)(Be,{size:14,strokeWidth:1.5}),label:"Present as",handle:N,dropdown:[{icon:l.mode==="present"?(0,a.jsx)(Ut,{size:14,strokeWidth:1.5}):(0,a.jsx)(Re,{size:14,strokeWidth:1.5}),label:"Toggle app view",hotkey:"global.hideCode",handle:()=>{R()}},...Le.map((c,p)=>{let E=Ke(c);return{divider:p===0,label:Ue(c),icon:(0,a.jsx)(E,{size:14,strokeWidth:1.5}),rightElement:(0,a.jsx)("div",{className:"w-8 flex justify-end",children:q===c&&(0,a.jsx)(Ne,{size:14})}),handle:()=>{ie(c),l.mode==="edit"&&R()}}})]},{icon:(0,a.jsx)(wa,{size:14,strokeWidth:1.5}),label:"Duplicate notebook",hidden:!t||he(),handle:j},{icon:(0,a.jsx)(Te,{size:14,strokeWidth:1.5}),label:"Copy code to clipboard",hidden:!t,handle:async()=>{await X((await I()).contents),C({title:"Copied",description:"Code copied to clipboard."})}},{icon:(0,a.jsx)(At,{size:14,strokeWidth:1.5}),label:"Enable all cells",hidden:!oe||i,handle:async()=>{let c=nt(ve());await ae({configs:Me.fromEntries(c.map(ao))});for(let p of c)w({cellId:p,config:{disabled:!1}})}},{divider:!0,icon:(0,a.jsx)(qe,{size:14,strokeWidth:1.5}),label:"Add setup cell",handle:()=>{f({})}},{icon:(0,a.jsx)(lt,{size:14,strokeWidth:1.5}),label:"Add database connection",handle:()=>{n((0,a.jsx)(ze,{onClose:o}))}},{icon:(0,a.jsx)(kt,{size:14,strokeWidth:1.5}),label:"Add remote storage",handle:()=>{n((0,a.jsx)(ze,{defaultTab:"storage",onClose:o}))}},{icon:(0,a.jsx)(Fe,{size:14,strokeWidth:1.5}),label:"Undo cell deletion",hidden:!ne||i,handle:()=>{g()}},{icon:(0,a.jsx)(Ma,{size:14,strokeWidth:1.5}),label:"Restart kernel",variant:"danger",handle:b,additionalKeywords:["reset","reload","restart"]},{icon:(0,a.jsx)(xa,{size:14,strokeWidth:1.5}),label:"Re-run all cells",redundant:!0,hotkey:"global.runAll",handle:async()=>{x()}},{icon:(0,a.jsx)(rt,{size:14,strokeWidth:1.5}),label:"Clear all outputs",redundant:!0,handle:()=>{u()}},{icon:(0,a.jsx)(It,{size:14,strokeWidth:1.5}),label:"Hide all markdown code",handle:d,redundant:!0},{icon:(0,a.jsx)(ba,{size:14,strokeWidth:1.5}),label:"Collapse all sections",hotkey:"global.collapseAllSections",handle:y,redundant:!0},{icon:(0,a.jsx)(ka,{size:14,strokeWidth:1.5}),label:"Expand all sections",hotkey:"global.expandAllSections",handle:k,redundant:!0},{divider:!0,icon:(0,a.jsx)(He,{size:14,strokeWidth:1.5}),label:"Command palette",hotkey:"global.commandPalette",handle:()=>v(to)},{icon:(0,a.jsx)(ga,{size:14,strokeWidth:1.5}),label:"Keyboard shortcuts",hotkey:"global.showHelp",handle:()=>z(eo)},{icon:(0,a.jsx)(Kt,{size:14,strokeWidth:1.5}),label:"User settings",handle:()=>P(Qa),redundant:!0,additionalKeywords:["preferences","options","configuration"]},{icon:(0,a.jsx)(_t,{size:14,strokeWidth:1.5}),label:"Resources",handle:N,dropdown:[{icon:(0,a.jsx)(ct,{size:14,strokeWidth:1.5}),label:"Documentation",handle:Za},{icon:(0,a.jsx)(Lt,{size:14,strokeWidth:1.5}),label:"GitHub",handle:Xa},{icon:(0,a.jsx)(Ht,{size:14,strokeWidth:1.5}),label:"Discord Community",handle:Ja},{icon:(0,a.jsx)(Rt,{size:14,strokeWidth:1.5}),label:"YouTube",handle:$a},{icon:(0,a.jsx)(pt,{size:14,strokeWidth:1.5}),label:"Changelog",handle:Ga}]},{divider:!0,icon:(0,a.jsx)(Bt,{size:14,strokeWidth:1.5}),label:"Return home",hidden:!location.search.includes("file"),handle:Ua},{icon:(0,a.jsx)(Et,{size:14,strokeWidth:1.5}),label:"New notebook",hidden:!location.search.includes("file"),handle:Ka}].filter(Ya).map(Oa),e[15]=f,e[16]=ne,e[17]=u,e[18]=o,e[19]=y,e[20]=j,e[21]=S,e[22]=k,e[23]=te,e[24]=t,e[25]=Y,e[26]=le,e[27]=oe,e[28]=d,e[29]=se,e[30]=i,e[31]=n,e[32]=I,e[33]=b,e[34]=x,e[35]=ae,e[36]=q,e[37]=r,e[38]=v,e[39]=z,e[40]=ie,e[41]=P,e[42]=B,e[43]=F,e[44]=D,e[45]=s,e[46]=R,e[47]=g,e[48]=w,e[49]=l.mode,e[50]=$):$=e[50],$}function Oa(e){return e.dropdown?{...e,dropdown:e.dropdown.filter(Va)}:e}function Va(e){return!e.hidden}function Ya(e){return!e.hidden}function Ka(){let e=$t();window.open(e,"_blank")}function Ua(){let e=document.baseURI.split("?")[0];window.open(e,"_self")}function Ga(){window.open(A.releasesPage,"_blank")}function $a(){window.open(A.youtube,"_blank")}function Ja(){window.open(A.discordLink,"_blank")}function Xa(){window.open(A.githubPage,"_blank")}function Za(){window.open(A.docsPage,"_blank")}function Qa(e){return!e}function eo(e){return!e}function to(e){return!e}function ao(e){return[e,{disabled:!1}]}async function oo(){let e=document.getElementById("App");e&&await St({element:e,filename:document.title,prepare:Dt})}function no(){return window.print()}function io(e){return e?(0,a.jsx)("span",{className:"ml-3 shrink-0 rounded-full border border-emerald-200 bg-emerald-50 px-2 py-0.5 text-[10px] font-semibold uppercase tracking-wide text-emerald-700",children:"Recommended"}):null}function so(e){return(0,a.jsx)("div",{className:"w-8 flex justify-end",children:e&&(0,a.jsx)(Ne,{size:14})})}function Q(){C({title:"Error",description:"Notebooks must be named to be exported.",variant:"danger"})}export{Ve as a,qe as c,Ye as i,He as l,Ge as n,Fe as o,Pa as r,Re as s,Fa as t,Te as u};
package/dist/index.html CHANGED
@@ -66,7 +66,7 @@
66
66
  <marimo-server-token data-token="{{ server_token }}" hidden></marimo-server-token>
67
67
  <!-- /TODO -->
68
68
  <title>{{ title }}</title>
69
- <script type="module" crossorigin src="./assets/index-D0cDTD9D.js"></script>
69
+ <script type="module" crossorigin src="./assets/index-Dm1Npvfm.js"></script>
70
70
  <link rel="modulepreload" crossorigin href="./assets/preload-helper-BW0IMuFq.js">
71
71
  <link rel="modulepreload" crossorigin href="./assets/clsx-BDxNtGmi.js">
72
72
  <link rel="modulepreload" crossorigin href="./assets/cn-BoaCR37F.js">
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@marimo-team/frontend",
3
- "version": "0.20.5-dev62",
3
+ "version": "0.20.5-dev64",
4
4
  "main": "dist/main.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "type": "module",
@@ -248,16 +248,95 @@ _password = os.environ.get("SNOWFLAKE_PASSWORD", "pass")
248
248
  engine = sqlmodel.create_engine(
249
249
  URL(
250
250
  account="account",
251
+ database="db",
252
+ warehouse="warehouse",
253
+ schema="schema",
254
+ role="role",
251
255
  user="user",
256
+ password=_password,
257
+ )
258
+ )"
259
+ `;
260
+
261
+ exports[`generateDatabaseCode > basic connections > snowflake with MFA 1`] = `
262
+ "from snowflake.sqlalchemy import URL
263
+ import os
264
+ import sqlmodel
265
+
266
+ _password = os.environ.get("SNOWFLAKE_PASSWORD", "pass")
267
+ engine = sqlmodel.create_engine(
268
+ URL(
269
+ account="account",
252
270
  database="db",
253
271
  warehouse="warehouse",
254
272
  schema="schema",
255
273
  role="role",
274
+ user="user",
256
275
  password=_password,
276
+ ),
277
+ connect_args={"authenticator": "username_password_mfa"},
278
+ )"
279
+ `;
280
+
281
+ exports[`generateDatabaseCode > basic connections > snowflake with OAuth/PAT 1`] = `
282
+ "from snowflake.sqlalchemy import URL
283
+ import os
284
+ import sqlmodel
285
+
286
+ _password = os.environ.get("SNOWFLAKE_TOKEN", "my_token")
287
+ engine = sqlmodel.create_engine(
288
+ URL(
289
+ account="account",
290
+ database="db",
291
+ warehouse="warehouse",
292
+ schema="schema",
293
+ role="role",
294
+ authenticator="oauth",
295
+ token=_password,
296
+ )
297
+ )"
298
+ `;
299
+
300
+ exports[`generateDatabaseCode > basic connections > snowflake with SSO 1`] = `
301
+ "from snowflake.sqlalchemy import URL
302
+ import sqlmodel
303
+
304
+ engine = sqlmodel.create_engine(
305
+ URL(
306
+ account="account",
307
+ database="db",
308
+ warehouse="warehouse",
309
+ schema="schema",
310
+ role="role",
311
+ user="user",
312
+ authenticator="externalbrowser",
257
313
  )
258
314
  )"
259
315
  `;
260
316
 
317
+ exports[`generateDatabaseCode > basic connections > snowflake with key pair 1`] = `
318
+ "from snowflake.sqlalchemy import URL
319
+ import os
320
+ import sqlmodel
321
+
322
+ _password = os.environ.get("SNOWFLAKE_PRIVATE_KEY_PASSPHRASE", "my_passphrase")
323
+ engine = sqlmodel.create_engine(
324
+ URL(
325
+ account="account",
326
+ database="db",
327
+ warehouse="warehouse",
328
+ schema="schema",
329
+ role="role",
330
+ user="user",
331
+ ),
332
+ connect_args={
333
+ "authenticator": "SNOWFLAKE_JWT",
334
+ "private_key_file": "/path/to/rsa_key.p8",
335
+ "private_key_file_pwd": _password,
336
+ },
337
+ )"
338
+ `;
339
+
261
340
  exports[`generateDatabaseCode > basic connections > sqlite 1`] = `
262
341
  "import sqlmodel
263
342
 
@@ -362,17 +441,17 @@ exports[`generateDatabaseCode > connections with secrets > snowflake with multip
362
441
  import os
363
442
  import sqlmodel
364
443
 
365
- _password = os.environ.get("ENV_PASSWORD")
366
444
  _account = os.environ.get("ENV_ACCOUNT")
445
+ _password = os.environ.get("ENV_PASSWORD")
367
446
  _user = os.environ.get("ENV_USER")
368
447
  engine = sqlmodel.create_engine(
369
448
  URL(
370
449
  account=_account,
371
- user=_user,
372
450
  database="db",
373
451
  warehouse="warehouse",
374
452
  schema="schema",
375
453
  role="role",
454
+ user=_user,
376
455
  password=_password,
377
456
  )
378
457
  )"
@@ -563,6 +642,26 @@ DATABASE_URL = f"postgresql://用户:{_password}@localhost:5432/测试数据库"
563
642
  engine = sqlmodel.create_engine(DATABASE_URL, connect_args={'sslmode': 'require'})"
564
643
  `;
565
644
 
645
+ exports[`generateDatabaseCode > edge cases > snowflake key pair without passphrase 1`] = `
646
+ "from snowflake.sqlalchemy import URL
647
+ import sqlmodel
648
+
649
+ engine = sqlmodel.create_engine(
650
+ URL(
651
+ account="account",
652
+ database="db",
653
+ warehouse="warehouse",
654
+ schema="schema",
655
+ role="role",
656
+ user="user",
657
+ ),
658
+ connect_args={
659
+ "authenticator": "SNOWFLAKE_JWT",
660
+ "private_key_file": "/path/to/rsa_key.p8",
661
+ },
662
+ )"
663
+ `;
664
+
566
665
  exports[`generateDatabaseCode > edge cases > snowflake with all optional fields filled 1`] = `
567
666
  "from snowflake.sqlalchemy import URL
568
667
  import os
@@ -572,11 +671,11 @@ _password = os.environ.get("SNOWFLAKE_PASSWORD", "pass")
572
671
  engine = sqlmodel.create_engine(
573
672
  URL(
574
673
  account="org-account",
575
- user="user",
576
674
  database="db",
577
675
  warehouse="compute_wh",
578
676
  schema="public",
579
677
  role="accountadmin",
678
+ user="user",
580
679
  password=_password,
581
680
  )
582
681
  )"
@@ -591,8 +690,8 @@ _password = os.environ.get("SNOWFLAKE_PASSWORD", "pass")
591
690
  engine = sqlmodel.create_engine(
592
691
  URL(
593
692
  account="account",
594
- user="user",
595
693
  database="db",
694
+ user="user",
596
695
  password=_password,
597
696
  )
598
697
  )"
@@ -711,11 +810,11 @@ _password = os.environ.get("SNOWFLAKE_PASSWORD", "pass")
711
810
  engine = sqlmodel.create_engine(
712
811
  URL(
713
812
  account="account-with-password123",
714
- user="user",
715
813
  database="db",
716
814
  warehouse="warehouse",
717
815
  schema="schema",
718
816
  role="role",
817
+ user="user",
719
818
  password=_password,
720
819
  )
721
820
  )"
@@ -730,11 +829,11 @@ _password = os.environ.get("SNOWFLAKE_PASSWORD", "pass")
730
829
  engine = sqlalchemy.create_engine(
731
830
  URL(
732
831
  account="account-with-password123",
733
- user="user",
734
832
  database="db",
735
833
  warehouse="warehouse",
736
834
  schema="schema",
737
835
  role="role",
836
+ user="user",
738
837
  password=_password,
739
838
  )
740
839
  )"
@@ -46,12 +46,72 @@ describe("generateDatabaseCode", () => {
46
46
  const snowflakeConnection: DatabaseConnection = {
47
47
  type: "snowflake",
48
48
  account: "account",
49
- username: "user",
50
- password: "pass",
51
49
  warehouse: "warehouse",
52
50
  database: "db",
53
51
  schema: "schema",
54
52
  role: "role",
53
+ authType: {
54
+ type: "Password",
55
+ username: "user",
56
+ password: "pass",
57
+ enable_mfa: false,
58
+ },
59
+ };
60
+
61
+ const snowflakeMFAConnection: DatabaseConnection = {
62
+ type: "snowflake",
63
+ account: "account",
64
+ warehouse: "warehouse",
65
+ database: "db",
66
+ schema: "schema",
67
+ role: "role",
68
+ authType: {
69
+ type: "Password",
70
+ username: "user",
71
+ password: "pass",
72
+ enable_mfa: true,
73
+ },
74
+ };
75
+
76
+ const snowflakeSSOConnection: DatabaseConnection = {
77
+ type: "snowflake",
78
+ account: "account",
79
+ warehouse: "warehouse",
80
+ database: "db",
81
+ schema: "schema",
82
+ role: "role",
83
+ authType: {
84
+ type: "SSO (Browser)",
85
+ username: "user",
86
+ },
87
+ };
88
+
89
+ const snowflakeKeyPairConnection: DatabaseConnection = {
90
+ type: "snowflake",
91
+ account: "account",
92
+ warehouse: "warehouse",
93
+ database: "db",
94
+ schema: "schema",
95
+ role: "role",
96
+ authType: {
97
+ type: "Key Pair",
98
+ username: "user",
99
+ private_key_path: "/path/to/rsa_key.p8",
100
+ private_key_passphrase: "my_passphrase",
101
+ },
102
+ };
103
+
104
+ const snowflakeOAuthConnection: DatabaseConnection = {
105
+ type: "snowflake",
106
+ account: "account",
107
+ warehouse: "warehouse",
108
+ database: "db",
109
+ schema: "schema",
110
+ role: "role",
111
+ authType: {
112
+ type: "OAuth / PAT",
113
+ token: "my_token",
114
+ },
55
115
  };
56
116
 
57
117
  const bigqueryConnection: DatabaseConnection = {
@@ -240,6 +300,10 @@ describe("generateDatabaseCode", () => {
240
300
  ["duckdb", duckdbConnection, "duckdb"],
241
301
  ["motherduck", motherduckConnection, "duckdb"],
242
302
  ["snowflake", snowflakeConnection, "sqlmodel"],
303
+ ["snowflake with MFA", snowflakeMFAConnection, "sqlmodel"],
304
+ ["snowflake with SSO", snowflakeSSOConnection, "sqlmodel"],
305
+ ["snowflake with key pair", snowflakeKeyPairConnection, "sqlmodel"],
306
+ ["snowflake with OAuth/PAT", snowflakeOAuthConnection, "sqlmodel"],
243
307
  ["bigquery", bigqueryConnection, "sqlmodel"],
244
308
  ["clickhouse", clickhouseConnection, "clickhouse_connect"],
245
309
  ["chdb", chdbConnection, "chdb"],
@@ -300,9 +364,13 @@ describe("generateDatabaseCode", () => {
300
364
  "snowflake with multiple secrets",
301
365
  {
302
366
  ...snowflakeConnection,
303
- username: prefixSecret("ENV_USER"),
304
- password: prefixSecret("ENV_PASSWORD"),
305
367
  account: prefixSecret("ENV_ACCOUNT"),
368
+ authType: {
369
+ type: "Password" as const,
370
+ username: prefixSecret("ENV_USER"),
371
+ password: prefixSecret("ENV_PASSWORD"),
372
+ enable_mfa: false,
373
+ },
306
374
  },
307
375
  "sqlmodel",
308
376
  ],
@@ -388,12 +456,16 @@ describe("generateDatabaseCode", () => {
388
456
  {
389
457
  type: "snowflake",
390
458
  account: "account",
391
- username: "user",
392
- password: "pass",
393
459
  database: "db",
394
460
  warehouse: "",
395
461
  schema: "",
396
462
  role: "",
463
+ authType: {
464
+ type: "Password" as const,
465
+ username: "user",
466
+ password: "pass",
467
+ enable_mfa: false,
468
+ },
397
469
  },
398
470
  "sqlmodel",
399
471
  ],
@@ -489,12 +561,33 @@ describe("generateDatabaseCode", () => {
489
561
  {
490
562
  type: "snowflake",
491
563
  account: "org-account",
492
- username: "user",
493
- password: "pass",
494
564
  database: "db",
495
565
  warehouse: "compute_wh",
496
566
  schema: "public",
497
567
  role: "accountadmin",
568
+ authType: {
569
+ type: "Password" as const,
570
+ username: "user",
571
+ password: "pass",
572
+ enable_mfa: false,
573
+ },
574
+ },
575
+ "sqlmodel",
576
+ ],
577
+ [
578
+ "snowflake key pair without passphrase",
579
+ {
580
+ type: "snowflake",
581
+ account: "account",
582
+ database: "db",
583
+ warehouse: "warehouse",
584
+ schema: "schema",
585
+ role: "role",
586
+ authType: {
587
+ type: "Key Pair" as const,
588
+ username: "user",
589
+ private_key_path: "/path/to/rsa_key.p8",
590
+ },
498
591
  },
499
592
  "sqlmodel",
500
593
  ],