@marimo-team/frontend 0.23.11-dev1 → 0.23.11-dev11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. package/dist/assets/{CellStatus-e0ex7Iei.js → CellStatus-CLGvVxcw.js} +1 -1
  2. package/dist/assets/{JsonOutput-DRNPZOvX.js → JsonOutput-uEJijGXp.js} +5 -5
  3. package/dist/assets/{MarimoErrorOutput-BH6hs0Ir.js → MarimoErrorOutput-DzoKyXWR.js} +2 -2
  4. package/dist/assets/{RenderHTML-BQ1PO4Wd.js → RenderHTML-DAt48X-F.js} +1 -1
  5. package/dist/assets/{RunButton-F8pLIvFp.js → RunButton-B7msyyYi.js} +1 -1
  6. package/dist/assets/{add-cell-with-ai-C2OtCghK.js → add-cell-with-ai-CAkcousR.js} +8 -8
  7. package/dist/assets/{add-connection-dialog-AhwxOztN.js → add-connection-dialog-ZyXXfAVG.js} +32 -32
  8. package/dist/assets/{agent-panel-D6ryE8xb.js → agent-panel-BfIguQXh.js} +3 -3
  9. package/dist/assets/{ai-model-dropdown-CG4B4rqH.js → ai-model-dropdown-rE64ytSX.js} +3 -3
  10. package/dist/assets/{app-config-button-D_sFrSql.js → app-config-button-DLRZ5d9c.js} +1 -1
  11. package/dist/assets/{cell-editor-XNa3wJ3P.js → cell-editor-2JIpvFn4.js} +5 -5
  12. package/dist/assets/{cell-link-Bj4-yOIx.js → cell-link-DY95GSb7.js} +1 -1
  13. package/dist/assets/{cells-DOA0Gew8.js → cells-D-v2lBet.js} +67 -67
  14. package/dist/assets/{chat-display-CezkHLLR.js → chat-display-DO-tqsbY.js} +1 -1
  15. package/dist/assets/{chat-panel-DEBTPtwE.js → chat-panel-BT5gLfs6.js} +1 -1
  16. package/dist/assets/{chat-ui-CIr1o1hq.js → chat-ui-Be4yDBZS.js} +1 -1
  17. package/dist/assets/column-preview-BzvFdLI5.js +1 -0
  18. package/dist/assets/{command-palette-_VEEjmkI.js → command-palette-CKKzfpGt.js} +1 -1
  19. package/dist/assets/{common-fDFYY_sv.js → common-Do4N1uVK.js} +1 -1
  20. package/dist/assets/{components--C6N-DXq.js → components-DUC0f1XD.js} +1 -1
  21. package/dist/assets/{datasource-CR6RRpTi.js → datasource-BQGI7c_u.js} +2 -2
  22. package/dist/assets/{dependency-graph-panel-BEgkvdX0.js → dependency-graph-panel-Czoya7c2.js} +1 -1
  23. package/dist/assets/{documentation-panel-HvbKykbI.js → documentation-panel-LokVYDIZ.js} +1 -1
  24. package/dist/assets/{download-DhxnAw14.js → download-WGU5w_3m.js} +3 -3
  25. package/dist/assets/{edit-page-D-02q6iz.js → edit-page-BPQO1Uuz.js} +6 -6
  26. package/dist/assets/{error-panel-WLBQ3q9p.js → error-panel-BCm_e4eM.js} +1 -1
  27. package/dist/assets/{file-explorer-panel-DtzGlnzT.js → file-explorer-panel-D1NN-z8x.js} +3 -3
  28. package/dist/assets/{file-icons-D2f3nfbq.js → file-icons-CF-YT4hq.js} +1 -1
  29. package/dist/assets/{file-name-input-BNYf9WWM.js → file-name-input-BRVXQ3OU.js} +1 -1
  30. package/dist/assets/{floating-outline-BvHFWRoz.js → floating-outline-D33Zu-Ad.js} +1 -1
  31. package/dist/assets/{focus-Ldqh99xE.js → focus-BfFAxl9X.js} +1 -1
  32. package/dist/assets/{form-CxBAInfg.js → form-CVBFx2z3.js} +1 -1
  33. package/dist/assets/{home-page-DwFpLpXK.js → home-page-CL9Hv1Hg.js} +2 -2
  34. package/dist/assets/{hooks-5gNQitDd.js → hooks-83y0XCiC.js} +1 -1
  35. package/dist/assets/{html-to-image-CyAtzePO.js → html-to-image-IPNqWX7V.js} +2 -2
  36. package/dist/assets/index-BNWrEIlp.css +2 -0
  37. package/dist/assets/{index-CGCBsDqs.js → index-CuhY66ZR.js} +14 -14
  38. package/dist/assets/{kiosk-mode-CTWHjzXs.js → kiosk-mode-BSufcIZH.js} +1 -1
  39. package/dist/assets/{layout-D3pd3R21.js → layout-ks0WJ2vR.js} +5 -5
  40. package/dist/assets/{logs-panel-BVLYycQb.js → logs-panel-DXN6sUaA.js} +1 -1
  41. package/dist/assets/{markdown-renderer-C9Ujvj0b.js → markdown-renderer-DWRPo52L.js} +1 -1
  42. package/dist/assets/{name-cell-input-DabvuruX.js → name-cell-input-BiDIx6YQ.js} +1 -1
  43. package/dist/assets/{outline-panel-B-ncbNWI.js → outline-panel-DVSGNRgP.js} +1 -1
  44. package/dist/assets/{packages-panel-CESeW_3T.js → packages-panel-DTX6CBnm.js} +1 -1
  45. package/dist/assets/{panels-CTy3hq0L.js → panels-NhGV0SBq.js} +1 -1
  46. package/dist/assets/{process-output-pPgH0ANl.js → process-output-BiWV34b7.js} +1 -1
  47. package/dist/assets/{radio-group-D7rh6Zek.js → radio-group-DV-lQvil.js} +1 -1
  48. package/dist/assets/{readonly-python-code-CvPx4CU_.js → readonly-python-code-B0glFTKW.js} +1 -1
  49. package/dist/assets/{reveal-component-lTtEZQh1.js → reveal-component-C2M2FixA.js} +12 -12
  50. package/dist/assets/{run-page-BB6ghGfO.js → run-page-B6I-Lshx.js} +1 -1
  51. package/dist/assets/{scratchpad-panel-Bvb8RxUv.js → scratchpad-panel-DU7perVk.js} +1 -1
  52. package/dist/assets/session-panel-B4UTmf-j.js +1 -0
  53. package/dist/assets/{snippets-panel-BSgcoo-M.js → snippets-panel-KRdl4bVk.js} +1 -1
  54. package/dist/assets/{state-BWM3qRkR.js → state-BSm0OM93.js} +1 -1
  55. package/dist/assets/{state-C8yHPSLN.js → state-CbkvENzk.js} +2 -2
  56. package/dist/assets/{textarea-bBuxbFm7.js → textarea-CBbixTxi.js} +1 -1
  57. package/dist/assets/{tracing-pt7eDHWc.js → tracing-D8LGpuXa.js} +1 -1
  58. package/dist/assets/{tracing-panel-BveZ5DZw.js → tracing-panel-TUP6kAd5.js} +2 -2
  59. package/dist/assets/{tree-actions-1KQDSu1H.js → tree-actions-BvrKFU0g.js} +1 -1
  60. package/dist/assets/{useCellActionButton-C4V7J6PS.js → useCellActionButton-CtOZIXD0.js} +1 -1
  61. package/dist/assets/{useDeleteCell-BvnurAZ9.js → useDeleteCell-BLvzLWAT.js} +1 -1
  62. package/dist/assets/{useDependencyPanelTab-DNlXaxbt.js → useDependencyPanelTab-BP0sNfUz.js} +1 -1
  63. package/dist/assets/{useNotebookActions-BIQkawja.js → useNotebookActions-BI5dWutQ.js} +1 -1
  64. package/dist/assets/{useRunCells-cSZpNqnR.js → useRunCells-BClkx9Pq.js} +1 -1
  65. package/dist/assets/{useSplitCell-s7dSiBUa.js → useSplitCell-CpddCX_u.js} +1 -1
  66. package/dist/index.html +23 -23
  67. package/package.json +1 -1
  68. package/src/components/datasources/__tests__/column-preview.test.tsx +97 -0
  69. package/src/components/datasources/__tests__/filter-empty.test.ts +81 -0
  70. package/src/components/datasources/__tests__/utils.test.ts +62 -1
  71. package/src/components/datasources/column-preview.tsx +2 -4
  72. package/src/components/datasources/components.tsx +15 -7
  73. package/src/components/datasources/datasources.tsx +311 -178
  74. package/src/components/datasources/utils.ts +40 -1
  75. package/src/components/editor/connections/components.tsx +13 -0
  76. package/src/components/editor/connections/storage/__tests__/__snapshots__/as-code.test.ts.snap +4 -4
  77. package/src/components/editor/connections/storage/as-code.ts +11 -4
  78. package/src/core/cells/__tests__/cells.test.ts +33 -0
  79. package/src/core/cells/cells.ts +1 -1
  80. package/src/core/datasets/__tests__/data-source.test.ts +226 -0
  81. package/src/core/datasets/data-source-connections.ts +88 -24
  82. package/dist/assets/column-preview-nu3Qo2OW.js +0 -1
  83. package/dist/assets/index-BAYF7dcV.css +0 -2
  84. package/dist/assets/session-panel-CTJPYbAa.js +0 -1
@@ -1 +0,0 @@
1
- import{s as ie}from"./chunk-LvLJmgfZ.js";import{d as de,l as he,p as ue,u as K}from"./useEvent-D91BmmQi.js";import{t as Me}from"./react-Bj1aDYRI.js";import{D as Pe,Fr as xe,Gr as pe,Gt as Be,Hr as fe,In as be,Ir as ge,Kt as Oe,Ln as Re,Lr as Ue,M as ze,P as Ge,Pr as se,Rr as Ae,Vr as je,Wr as We,a as He,br as le,f as Ke,gr as Je,jr as Qe,jt as Xe,ki as Ne,lr as Ye,or as Ze,qt as ea,sr as aa,vn as ta,yr as sa,zn as la,zt as na}from"./cells-DOA0Gew8.js";import"./react-dom-CSu739Rf.js";import{t as ye}from"./compiler-runtime-B3qBwwSJ.js";import{c as ra}from"./utils-CvI-39U6.js";import{t as oa}from"./ErrorBoundary-DyYDV0HI.js";import{t as O}from"./cn-DCUzRj2J.js";import{t as ca}from"./jsx-runtime-BqBOg78p.js";import"./fullscreen-DFky0PAA.js";import{n as ma}from"./multi-map-C4OANz8X.js";import"./popover-CNCYAwbC.js";import{$ as ve,Q as ne,et as ia,f as we,g as Se,h as re,m as oe,nt as da,p as ee,rt as ha,tt as ua,u as xa}from"./JsonOutput-DRNPZOvX.js";import"./download-DhxnAw14.js";import{r as Ce}from"./radio-group-D7rh6Zek.js";import{t as ce}from"./tooltip-B_PkSKN3.js";import{r as pa,t as ae}from"./button-BbCh-29a.js";import"./dist-D0HyMpgV.js";import{u as J}from"./arrays-DYDL-3-i.js";import"./cjs-BRGiG41H.js";import"./main-B0OX4z33.js";import"./useNonce-DfoVjkkH.js";import{i as fa}from"./strings-wdPMRf6Z.js";import{r as ba}from"./requests-DIwGYs0l.js";import{t as ga}from"./createLucideIcon-D5guW7EU.js";import{t as ja}from"./x-C-6liIBr.js";import{a as Na,r as ya}from"./tree-actions-1KQDSu1H.js";import"./markdown-renderer-C9Ujvj0b.js";import{t as _e}from"./add-connection-dialog-AhwxOztN.js";import{t as ke}from"./plus-BgB18UzY.js";import{a as va}from"./input-DA8xlX70.js";import{n as wa,o as Sa}from"./column-preview-nu3Qo2OW.js";import{t as Ca}from"./workflow-Bm8qF7yj.js";import"./dist-HyCgERnW.js";import"./dist-BwnT-_gD.js";import"./dist-rBRbke5D.js";import"./dist-RMRSa-Mj.js";import"./dist-BURue7-e.js";import"./session-0B5NBztP.js";import"./purify.es-B9KxLTTS.js";import"./dates-CTxr0EqQ.js";import{t as _a}from"./copy-icon-BuRdHNPA.js";import{t as ka}from"./context-QkTujrKn.js";import"./utils-DCL4n9wx.js";import"./vega-loader.browser-C8wT63Va.js";import"./defaultLocale-BLUna9fQ.js";import"./defaultLocale-DzliDDTm.js";import{t as $e}from"./cell-link-Bj4-yOIx.js";import"./chunk-5FQGJX7Z-D91x7QHS.js";import{r as $a}from"./html-to-image-CyAtzePO.js";import{o as Fa}from"./focus-Ldqh99xE.js";import{n as me}from"./useAsyncData-bgszE9F0.js";import{a as Ta,i as Ia,n as La,o as Fe,r as qa,t as Da}from"./table-BGPSHfig.js";import"./react-resizable-panels.browser.esm-CV8-hvjx.js";import{a as Va,f as Ea,o as te,t as Ma}from"./command-BmOGG6-2.js";import{n as Pa}from"./icons-Ol38nIbL.js";import{t as Ba}from"./empty-state-vCWg-_A9.js";import{n as Oa,t as Ra}from"./common-fDFYY_sv.js";import{a as Ua,i as za,n as Te,r as Ie,t as Le}from"./components--C6N-DXq.js";var Ga=ga("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"}]]),z=ye(),F=ie(Me(),1),t=ie(ca(),1),$={engineEmpty:"pl-3",engine:"pl-3 pr-2",database:"pl-4",schemaEmpty:"pl-8",schema:"pl-7",schemaLoading:"pl-8",tableLoading:"pl-11",tableSchemaless:"pl-8",tableWithSchema:"pl-12",columnLocal:"pl-5",columnSql:"pl-13",columnPreview:"pl-10"},Aa=ue(a=>{let e=a(ge),s=a(la),l=a(He);return J(e,r=>{if(!r.variable_name)return-1;let c=Object.values(s).find(g=>g.name===r.variable_name);if(!c)return 0;let n=l.inOrderIds.indexOf(c.declaredBy[0]);return n===-1?0:n})});const Wa=Ne("marimo:datasources:hideEmpty",!1,be,{getOnInit:!0});function Ha(a){return a.tables_resolved!==!1&&a.tables.length===0}function Ka(a){let e=!1,s=[];for(let l of a){if(l.schemas_resolved!==!1&&l.schemas.length===0){e=!0;continue}if(l.schemas.length===0){s.push(l);continue}let r=l.schemas.filter(c=>!Ha(c));if(r.length===0){e=!0;continue}if(r.length===l.schemas.length){s.push(l);continue}e=!0,s.push({...l,schemas:r})}return e?s:a}const qe=ue(a=>{let e=new Map(a(Qe));for(let s of pe){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 J([...e.values()],s=>pe.has(s.name)?1:0)}),Ja=()=>{let a=(0,z.c)(42),[e,s]=F.useState(""),[l,r]=he(Wa),c=de(xe),n=K(Aa),g=K(qe),j;e:{if(!l){j=g;break e}let v,w;a[0]===g?(v=a[1],w=a[2]):(v=!1,w=g.map(k=>{let T=Ka(k.databases);return T===k.databases?k:(v=!0,{...k,databases:T})}),a[0]=g,a[1]=v,a[2]=w),j=v?w:g}let N=j;if(n.length===0&&N.length===0){let v;return a[3]===Symbol.for("react.memo_cache_sentinel")?(v=(0,t.jsx)(Ba,{title:"No tables found",description:"Any datasets/dataframes in the global scope will be shown here.",action:(0,t.jsx)(_e,{children:(0,t.jsxs)(ae,{variant:"outline",size:"sm",children:["Add database or catalog",(0,t.jsx)(ke,{className:"h-4 w-4 ml-2"})]})}),icon:(0,t.jsx)(le,{})}),a[3]=v):v=a[3],v}let u=!!e.trim(),m;a[4]===c?m=a[5]:(m=v=>{c(v.length>0),s(v)},a[4]=c,a[5]=m);let i;a[6]!==e||a[7]!==m?(i=(0,t.jsx)(Va,{placeholder:"Search tables...",className:"h-6 m-1",value:e,onValueChange:m,rootClassName:"flex-1 border-r border-b-0"}),a[6]=e,a[7]=m,a[8]=i):i=a[8];let h;a[9]===u?h=a[10]:(h=u&&(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)(ja,{className:"h-4 w-4"})}),a[9]=u,a[10]=h);let p=!l,d;a[11]!==l||a[12]!==r?(d=()=>r(!l),a[11]=l,a[12]=r,a[13]=d):d=a[13];let o;a[14]!==p||a[15]!==d?(o=(0,t.jsx)(Na,{"data-testid":"datasources-hide-empty-button",isVisible:p,onToggle:d,showTooltip:"Show empty schemas and databases",hideTooltip:"Hide empty schemas and databases",size:"sm",className:"px-2 rounded-none focus-visible:outline-hidden"}),a[14]=p,a[15]=d,a[16]=o):o=a[16];let b;a[17]===Symbol.for("react.memo_cache_sentinel")?(b=(0,t.jsx)(_e,{children:(0,t.jsx)(ae,{variant:"ghost",size:"sm",className:"px-2 rounded-none focus-visible:outline-hidden",children:(0,t.jsx)(ke,{className:"h-4 w-4"})})}),a[17]=b):b=a[17];let x;a[18]!==i||a[19]!==h||a[20]!==o?(x=(0,t.jsxs)("div",{className:"flex items-center w-full border-b",children:[i,h,o,b]}),a[18]=i,a[19]=h,a[20]=o,a[21]=x):x=a[21];let f;if(a[22]!==N||a[23]!==u||a[24]!==e){let v;a[26]!==u||a[27]!==e?(v=w=>(0,t.jsx)(Qa,{connection:w,hasChildren:w.databases.length>0,children:w.databases.map(k=>(0,t.jsx)(Xa,{engineName:w.name,database:k,hasSearch:u,children:(0,t.jsx)(Ya,{schemas:k.schemas,defaultSchema:w.default_schema,defaultDatabase:w.default_database,engineName:w.name,databaseName:k.name,hasSearch:u,searchValue:e,dialect:w.dialect})},k.name))},w.name),a[26]=u,a[27]=e,a[28]=v):v=a[28],f=N.map(v),a[22]=N,a[23]=u,a[24]=e,a[25]=f}else f=a[25];let y;a[29]!==N.length||a[30]!==n.length?(y=N.length>0&&n.length>0&&(0,t.jsxs)(we,{className:$.engine,children:[(0,t.jsx)(Pa,{className:"h-4 w-4 text-muted-foreground"}),(0,t.jsx)("span",{className:"text-xs",children:"Python"})]}),a[29]=N.length,a[30]=n.length,a[31]=y):y=a[31];let S;a[32]!==e||a[33]!==n?(S=n.length>0&&(0,t.jsx)(De,{tables:n,searchValue:e}),a[32]=e,a[33]=n,a[34]=S):S=a[34];let C;a[35]!==y||a[36]!==S||a[37]!==f?(C=(0,t.jsxs)(Ea,{className:"flex flex-col",children:[f,y,S]}),a[35]=y,a[36]=S,a[37]=f,a[38]=C):C=a[38];let _;return a[39]!==C||a[40]!==x?(_=(0,t.jsxs)(Ma,{className:"border-b bg-background rounded-none h-full pb-10 overflow-auto outline-hidden",shouldFilter:!1,children:[x,C]}),a[39]=C,a[40]=x,a[41]=_):_=a[41],_};var Qa=a=>{let e=(0,z.c)(25),{connection:s,children:l,hasChildren:r}=a,c=s.name===We,n=c?"In-Memory":s.name,{previewDataSourceConnection:g}=ba(),j;e[0]!==s.name||e[1]!==g?(j=async()=>{await g({engine:s.name})},e[0]=s.name,e[1]=g,e[2]=j):j=e[2];let N=j,u;e[3]===s.dialect?u=e[4]:(u=(0,t.jsx)(Xe,{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=Ze(s.dialect),e[5]=s.dialect,e[6]=m);let i;e[7]===m?i=e[8]:(i=(0,t.jsx)("span",{className:"text-xs",children:m}),e[7]=m,e[8]=i);let h=n,p;e[9]===h?p=e[10]:(p=(0,t.jsxs)("span",{className:"text-xs text-muted-foreground",children:["(",(0,t.jsx)(Ua,{variableName:h}),")"]}),e[9]=h,e[10]=p);let d;e[11]!==N||e[12]!==c?(d=!c&&(0,t.jsx)(ya,{onClick:N,tooltip:"Refresh connection",className:"ml-auto h-4 p-0",iconClassName:"h-3.5 w-3.5"}),e[11]=N,e[12]=c,e[13]=d):d=e[13];let o;e[14]!==u||e[15]!==i||e[16]!==p||e[17]!==d?(o=(0,t.jsxs)(we,{className:$.engine,children:[u,i,p,d]}),e[14]=u,e[15]=i,e[16]=p,e[17]=d,e[18]=o):o=e[18];let b;e[19]!==l||e[20]!==r?(b=r?l:(0,t.jsx)(ee,{content:"No databases available",className:$.engineEmpty}),e[19]=l,e[20]=r,e[21]=b):b=e[21];let x;return e[22]!==o||e[23]!==b?(x=(0,t.jsxs)(t.Fragment,{children:[o,b]}),e[22]=o,e[23]=b,e[24]=x):x=e[24],x},Xa=a=>{let e=(0,z.c)(26),{hasSearch:s,engineName:l,database:r,children:c}=a,[n,g]=F.useState(!1),[j,N]=F.useState(!1),[u,m]=F.useState(s);u!==s&&(m(s),g(s));let i;e[0]===Symbol.for("react.memo_cache_sentinel")?(i=O("text-sm flex flex-row gap-1 items-center cursor-pointer rounded-none",$.database),e[0]=i):i=e[0];let h;e[1]!==n||e[2]!==j?(h=()=>{g(!n),N(!j)},e[1]=n,e[2]=j,e[3]=h):h=e[3];let p=`${l}:${r.name}`,d;e[4]===n?d=e[5]:(d=(0,t.jsx)(Se,{isExpanded:n}),e[4]=n,e[5]=d);let o=j&&n?"text-foreground":"text-muted-foreground",b;e[6]===o?b=e[7]:(b=O("h-4 w-4",o),e[6]=o,e[7]=b);let x;e[8]===b?x=e[9]:(x=(0,t.jsx)(le,{className:b}),e[8]=b,e[9]=x);let f=j&&n&&"font-semibold",y;e[10]===f?y=e[11]:(y=O(f),e[10]=f,e[11]=y);let S;e[12]===r.name?S=e[13]:(S=r.name===""?(0,t.jsx)("i",{children:"Not connected"}):r.name,e[12]=r.name,e[13]=S);let C;e[14]!==S||e[15]!==y?(C=(0,t.jsx)("span",{className:y,children:S}),e[14]=S,e[15]=y,e[16]=C):C=e[16];let _;e[17]!==C||e[18]!==h||e[19]!==p||e[20]!==d||e[21]!==x?(_=(0,t.jsxs)(te,{className:i,onSelect:h,value:p,children:[d,x,C]}),e[17]=C,e[18]=h,e[19]=p,e[20]=d,e[21]=x,e[22]=_):_=e[22];let v=n&&c,w;return e[23]!==_||e[24]!==v?(w=(0,t.jsxs)(t.Fragment,{children:[_,v]}),e[23]=_,e[24]=v,e[25]=w):w=e[25],w},Ya=({schemas:a,defaultSchema:e,defaultDatabase:s,dialect:l,engineName:r,databaseName:c,hasSearch:n,searchValue:g})=>{let{addSchemaList:j}=se(),[N,u]=F.useState(!1),[m,i]=F.useState(!1),{isPending:h,error:p}=me(async()=>{if(a.length===0&&r&&!N){u(!0),i(!0);try{j({schemas:(await Be.request({engine:r,database:c})).schemas??[],sqlSchemaContext:{engine:r,database:c}})}finally{i(!1)}}},[a.length,r,c,N]);return h||m?(0,t.jsx)(re,{message:"Loading schemas...",className:$.schemaLoading}):p?(0,t.jsx)(oe,{error:p,className:$.schemaLoading}):a.length===0?(0,t.jsx)(ee,{content:"No schemas available",className:$.schemaEmpty}):(0,t.jsx)(t.Fragment,{children:a.filter(d=>g?d.tables.some(o=>o.name.toLowerCase().includes(g.toLowerCase())):!0).map(d=>(0,t.jsx)(Za,{databaseName:c,schema:d,hasSearch:n,children:(0,t.jsx)(De,{tables:d.tables,searchValue:g,sqlTableContext:{engine:r,database:c,schema:d.name,defaultSchema:e,defaultDatabase:s,dialect:l}})},d.name))})},Za=a=>{let e=(0,z.c)(24),{databaseName:s,schema:l,children:r,hasSearch:c}=a,[n,g]=F.useState(c),[j,N]=F.useState(!1),u=`${s}:${l.name}`;if(je(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 i;e[1]!==n||e[2]!==j?(i=()=>{g(!n),N(!j)},e[1]=n,e[2]=j,e[3]=i):i=e[3];let h;e[4]===n?h=e[5]:(h=(0,t.jsx)(Se,{isExpanded:n}),e[4]=n,e[5]=h);let p=j&&n&&"text-foreground",d;e[6]===p?d=e[7]:(d=O("h-4 w-4 text-muted-foreground",p),e[6]=p,e[7]=d);let o;e[8]===d?o=e[9]:(o=(0,t.jsx)(Je,{className:d}),e[8]=d,e[9]=o);let b=j&&n&&"font-semibold",x;e[10]===b?x=e[11]:(x=O(b),e[10]=b,e[11]=x);let f;e[12]!==l.name||e[13]!==x?(f=(0,t.jsx)("span",{className:x,children:l.name}),e[12]=l.name,e[13]=x,e[14]=f):f=e[14];let y;e[15]!==i||e[16]!==h||e[17]!==o||e[18]!==f||e[19]!==u?(y=(0,t.jsxs)(te,{className:m,onSelect:i,value:u,children:[h,o,f]}),e[15]=i,e[16]=h,e[17]=o,e[18]=f,e[19]=u,e[20]=y):y=e[20];let S=n&&r,C;return e[21]!==y||e[22]!==S?(C=(0,t.jsxs)(t.Fragment,{children:[y,S]}),e[21]=y,e[22]=S,e[23]=C):C=e[23],C},De=a=>{let e=(0,z.c)(24),{tables:s,sqlTableContext:l,searchValue:r}=a,{addTableList:c}=se(),[n,g]=F.useState(!1),[j,N]=F.useState(!1),u;e[0]!==c||e[1]!==l||e[2]!==s.length||e[3]!==n?(u=async()=>{if(s.length===0&&l&&!n){g(!0),N(!0);let{engine:o,database:b,schema:x}=l,f=await ea.request({engine:o,database:b,schema:x});if(!(f!=null&&f.tables))throw N(!1),Error("No tables available");c({tables:f.tables,sqlTableContext:l}),N(!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:i,error:h}=me(u,m);if(i||j){let o;return e[9]===Symbol.for("react.memo_cache_sentinel")?(o=(0,t.jsx)(re,{message:"Loading tables...",className:$.tableLoading}),e[9]=o):o=e[9],o}if(h){let o;return e[10]===h?o=e[11]:(o=(0,t.jsx)(oe,{error:h,className:$.tableLoading}),e[10]=h,e[11]=o),o}if(s.length===0){let o;return e[12]===Symbol.for("react.memo_cache_sentinel")?(o=(0,t.jsx)(ee,{content:"No tables found",className:$.tableLoading}),e[12]=o):o=e[12],o}let p;if(e[13]!==r||e[14]!==l||e[15]!==s){let o;e[17]===r?o=e[18]:(o=f=>r?f.name.toLowerCase().includes(r.toLowerCase()):!0,e[17]=r,e[18]=o);let b=s.filter(o),x;e[19]!==r||e[20]!==l?(x=f=>(0,t.jsx)(et,{table:f,sqlTableContext:l,isSearching:!!r},f.name),e[19]=r,e[20]=l,e[21]=x):x=e[21],p=b.map(x),e[13]=r,e[14]=l,e[15]=s,e[16]=p}else p=e[16];let d;return e[22]===p?d=e[23]:(d=(0,t.jsx)(t.Fragment,{children:p}),e[22]=p,e[23]=d),d},et=a=>{let e=(0,z.c)(64),{table:s,sqlTableContext:l,isSearching:r}=a,{addTable:c}=se(),[n,g]=F.useState(!1),[j,N]=F.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]!==j?(m=async()=>{if(n&&!u&&l&&!j){N(!0);let{engine:E,database:Y,schema:Ee}=l,Z=await Oe.request({engine:E,database:Y,schema:Ee,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]=j,e[6]=m):m=e[6];let i;e[7]!==n||e[8]!==u?(i=[n,u],e[7]=n,e[8]=u,e[9]=i):i=e[9];let{isFetching:h,isPending:p,error:d}=me(m,i),o=K(ra),b=Fa(),{createNewCell:x}=Pe(),f=Ce(),y;e[10]!==f||e[11]!==o||e[12]!==x||e[13]!==b||e[14]!==l||e[15]!==s?(y=()=>{$a({autoInstantiate:o,createNewCell:x,fromCellId:b}),f((()=>{if(s.source_type==="catalog"){let E=l!=null&&l.database?`${l.database}.${s.name}`:s.name;return`${s.engine}.load_table("${E}")`}if(l)return fe({table:s,columnName:"*",sqlTableContext:l});switch(s.source_type){case"local":return`mo.ui.table(${s.name})`;case"duckdb":case"connection":return fe({table:s,columnName:"*",sqlTableContext:l});default:return fa(s.source_type),""}})())},e[10]=f,e[11]=o,e[12]=x,e[13]=b,e[14]=l,e[15]=s,e[16]=y):y=e[16];let S=y,C;e[17]!==s.num_columns||e[18]!==s.num_rows?(C=()=>{let E=[];return s.num_rows!=null&&E.push(`${s.num_rows} rows`),s.num_columns!=null&&E.push(`${s.num_columns} columns`),E.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:E.join(", ")})})},e[17]=s.num_columns,e[18]=s.num_rows,e[19]=C):C=e[19];let _=C,v;e[20]!==d||e[21]!==h||e[22]!==p||e[23]!==l||e[24]!==s?(v=()=>{if(p||h)return(0,t.jsx)(re,{message:"Loading columns...",className:$.tableLoading});if(d)return(0,t.jsx)(oe,{error:d,className:$.tableLoading});let E=s.columns;return E.length===0?(0,t.jsx)(ee,{content:"No columns found",className:$.tableLoading}):E.map(Y=>(0,t.jsx)(at,{table:s,column:Y,sqlTableContext:l},Y.name))},e[20]=d,e[21]=h,e[22]=p,e[23]=l,e[24]=s,e[25]=v):v=e[25];let w=v,k;e[26]!==n||e[27]!==r||e[28]!==s.source_type||e[29]!==s.type?(k=()=>{if(s.source_type!=="local")return(0,t.jsx)(s.type==="table"?Ye:sa,{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]=k):k=e[30];let T=k,M=l?`${l.database}.${l.schema}.${s.name}`:s.name,P=l&&(je(l.schema)?$.tableSchemaless:$.tableWithSchema),B=(n||r)&&"font-semibold",I;e[31]!==P||e[32]!==B?(I=O("rounded-none group h-8 cursor-pointer",P,B),e[31]=P,e[32]=B,e[33]=I):I=e[33];let L;e[34]===n?L=e[35]:(L=()=>g(!n),e[34]=n,e[35]=L);let q;e[36]===T?q=e[37]:(q=T(),e[36]=T,e[37]=q);let V;e[38]===s.name?V=e[39]:(V=(0,t.jsx)("span",{className:"text-sm",children:s.name}),e[38]=s.name,e[39]=V);let R;e[40]!==q||e[41]!==V?(R=(0,t.jsxs)("div",{className:"flex gap-2 items-center flex-1 pl-1",children:[q,V]}),e[40]=q,e[41]=V,e[42]=R):R=e[42];let U;e[43]===_?U=e[44]:(U=_(),e[43]=_,e[44]=U);let D;e[45]===S?D=e[46]:(D=pa.stopPropagation(()=>S()),e[45]=S,e[46]=D);let Q;e[47]===Symbol.for("react.memo_cache_sentinel")?(Q=(0,t.jsx)(Sa,{className:"h-3 w-3"}),e[47]=Q):Q=e[47];let A;e[48]===D?A=e[49]:(A=(0,t.jsx)(ce,{content:"Add table to notebook",delayDuration:400,children:(0,t.jsx)(ae,{className:"group-hover:inline-flex hidden",variant:"text",size:"icon",onClick:D,children:Q})}),e[48]=D,e[49]=A);let W;e[50]!==n||e[51]!==L||e[52]!==R||e[53]!==U||e[54]!==A||e[55]!==I||e[56]!==M?(W=(0,t.jsxs)(te,{className:I,value:M,"aria-selected":n,forceMount:!0,onSelect:L,children:[R,U,A]}),e[50]=n,e[51]=L,e[52]=R,e[53]=U,e[54]=A,e[55]=I,e[56]=M,e[57]=W):W=e[57];let H;e[58]!==n||e[59]!==w?(H=n&&w(),e[58]=n,e[59]=w,e[60]=H):H=e[60];let X;return e[61]!==W||e[62]!==H?(X=(0,t.jsxs)(t.Fragment,{children:[W,H]}),e[61]=W,e[62]=H,e[63]=X):X=e[63],X},at=a=>{var R,U;let e=(0,z.c)(48),{table:s,column:l,sqlTableContext:r}=a,[c,n]=F.useState(!1),g=K(xe),j=de(Ue);g&&c&&n(!1),j(c?D=>new Set([...D,`${s.name}:${l.name}`]):D=>(D.delete(`${s.name}:${l.name}`),new Set(D)));let N=Ce(),{columnsPreviews:u}=Ae(),m;e[0]!==l.name||e[1]!==s.primary_keys?(m=((R=s.primary_keys)==null?void 0:R.includes(l.name))||!1,e[0]=l.name,e[1]=s.primary_keys,e[2]=m):m=e[2];let i=m,h;e[3]!==l.name||e[4]!==s.indexes?(h=((U=s.indexes)==null?void 0:U.includes(l.name))||!1,e[3]=l.name,e[4]=s.indexes,e[5]=h):h=e[5];let p=h,d;e[6]===N?d=e[7]:(d=D=>{N(D)},e[6]=N,e[7]=d);let o=d,b=tt,x=c?"font-semibold":"",f;e[8]!==l.name||e[9]!==x?(f=(0,t.jsx)("span",{className:x,children:l.name}),e[8]=l.name,e[9]=x,e[10]=f):f=e[10];let y=f,S=`${s.name}.${l.name}`,C=`${s.name}.${l.name}`,_;e[11]===c?_=e[12]:(_=()=>n(!c),e[11]=c,e[12]=_);let v=r?$.columnSql:$.columnLocal,w;e[13]===v?w=e[14]:(w=O("flex flex-row gap-2 items-center flex-1",v),e[13]=v,e[14]=w);let k;e[15]!==l.type||e[16]!==y?(k=(0,t.jsx)(xa,{columnName:y,dataType:l.type}),e[15]=l.type,e[16]=y,e[17]=k):k=e[17];let T;e[18]===i?T=e[19]:(T=i&&b({tooltipContent:"Primary key",content:"PK"}),e[18]=i,e[19]=T);let M;e[20]===p?M=e[21]:(M=p&&b({tooltipContent:"Indexed",content:"IDX"}),e[20]=p,e[21]=M);let P;e[22]!==w||e[23]!==k||e[24]!==T||e[25]!==M?(P=(0,t.jsxs)("div",{className:w,children:[k,T,M]}),e[22]=w,e[23]=k,e[24]=T,e[25]=M,e[26]=P):P=e[26];let B;e[27]===l.name?B=e[28]:(B=(0,t.jsx)(ce,{content:"Copy column name",delayDuration:400,children:(0,t.jsx)(ae,{variant:"text",size:"icon",className:"group-hover:opacity-100 opacity-0 hover:bg-muted text-muted-foreground hover:text-foreground",children:(0,t.jsx)(_a,{tooltip:!1,value:l.name,className:"h-3 w-3"})})}),e[27]=l.name,e[28]=B);let I;e[29]===l.external_type?I=e[30]:(I=(0,t.jsx)("span",{className:"text-xs text-muted-foreground",children:l.external_type}),e[29]=l.external_type,e[30]=I);let L;e[31]!==P||e[32]!==B||e[33]!==I||e[34]!==S||e[35]!==C||e[36]!==_?(L=(0,t.jsxs)(te,{className:"rounded-none py-1 group cursor-pointer",value:C,onSelect:_,children:[P,B,I]},S),e[31]=P,e[32]=B,e[33]=I,e[34]=S,e[35]=C,e[36]=_,e[37]=L):L=e[37];let q;e[38]!==l||e[39]!==u||e[40]!==o||e[41]!==c||e[42]!==r||e[43]!==s?(q=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)(wa,{table:s,column:l,onAddColumnChart:o,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]=o,e[41]=c,e[42]=r,e[43]=s,e[44]=q):q=e[44];let V;return e[45]!==L||e[46]!==q?(V=(0,t.jsxs)(t.Fragment,{children:[L,q]}),e[45]=L,e[46]=q,e[47]=V):V=e[47],V};function tt(a){let{tooltipContent:e,content:s}=a;return(0,t.jsx)(ce,{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 ps(a){return a}var G={name:"name",type:"type-value",defs:"defs-refs"},st=[{id:G.name,accessorFn:a=>[a.name,a.declaredBy],enableSorting:!0,sortingFn:"alphanumeric",header:({column:a})=>(0,t.jsx)(ne,{header:"Name",column:a}),cell:({getValue:a})=>{let[e,s]=a();return(0,t.jsx)(Ra,{name:e,declaredBy:s})}},{id:G.type,accessorFn:a=>[a.dataType,a.value],enableSorting:!0,sortingFn:"alphanumeric",header:({column:a})=>(0,t.jsx)(ne,{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:G.defs,accessorFn:a=>[a.declaredBy,a.usedBy,a.name,a.declaredByNames,a.usedByNames],enableSorting:!0,sortingFn:"basic",header:({column:a})=>(0,t.jsx)(ne,{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=Ke(c);n&&ta(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)(Ga,{className:"w-3.5 h-3.5 text-muted-foreground"})}),e.length===1?(0,t.jsx)($e,{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)($e,{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)(Ca,{className:"w-3.5 h-3.5 text-muted-foreground"})}),(0,t.jsx)(Oa,{maxCount:3,cellIds:s,skipScroll:!0,onClick:r})]})]})}}];function lt({variables:a,sort:e,cellIdToIndex:s}){e||(e={id:G.defs,desc:!1});let l=[];switch(e.id){case G.name:l=J(a,r=>r.name);break;case G.type:l=J(a,r=>r.dataType);break;case G.defs:l=J(a,r=>s.get(r.declaredBy[0]));break}return e.desc?l.toReversed():l}const Ve=(0,F.memo)(({className:a,cellIds:e,variables:s})=>{let[l,r]=F.useState([]),[c,n]=F.useState(""),g=Ge(),{locale:j}=ka(),N=(0,F.useMemo)(()=>{let m=i=>{let h=g[i];return na(h)?`cell-${e.indexOf(i)}`:h??`cell-${e.indexOf(i)}`};return Object.values(s).map(i=>({...i,declaredByNames:i.declaredBy.map(m),usedByNames:i.usedBy.map(m)}))},[s,g,e]),u=ia({data:(0,F.useMemo)(()=>{let m=new Map;return e.forEach((i,h)=>m.set(i,h)),lt({variables:N,sort:l[0],cellIdToIndex:m})},[N,l,e]),columns:st,getCoreRowModel:ua(),onGlobalFilterChange:n,getFilteredRowModel:da(),enableFilters:!0,enableGlobalFilter:!0,enableColumnPinning:!1,getColumnCanGlobalFilter(m){return m.columnDef.enableGlobalFilter??!0},globalFilterFn:"auto",manualSorting:!0,locale:j,onSortingChange:r,getSortedRowModel:ha(),state:{sorting:l,globalFilter:c}});return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(va,{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)(Ta,{children:(0,t.jsx)(Fe,{className:"whitespace-nowrap text-xs",children:u.getFlatHeaders().map(m=>(0,t.jsx)(Ia,{className:"sticky top-0 bg-background border-b",children:ve(m.column.columnDef.header,m.getContext())},m.id))})}),(0,t.jsx)(La,{children:u.getRowModel().rows.map(m=>(0,t.jsx)(Fe,{className:"hover:bg-accent",children:m.getVisibleCells().map(i=>(0,t.jsx)(qa,{className:"border-b",children:ve(i.column.columnDef.cell,i.getContext())},i.id))},m.id))})]})]})});Ve.displayName="VariableTable";var nt=ye(),rt=Ne("marimo:session-panel:state",{openSections:["variables"],hasUserInteracted:!1},be),ot=()=>{let a=(0,nt.c)(24),e=Re(),s=ze(),l=K(ge),r=K(qe),[c,n]=he(rt),g=l.length+r.length,j;a[0]!==g||a[1]!==c.hasUserInteracted||a[2]!==c.openSections?(j=!c.hasUserInteracted&&g>0?[...new Set([...c.openSections,"datasources"])]:c.openSections,a[0]=g,a[1]=c.hasUserInteracted,a[2]=c.openSections,a[3]=j):j=a[3];let N=j,u;a[4]===n?u=a[5]:(u=S=>{n({openSections:S,hasUserInteracted:!0})},a[4]=n,a[5]=u);let m=u,i=!N.includes("datasources")&&g>0,h;a[6]===Symbol.for("react.memo_cache_sentinel")?(h=(0,t.jsx)(le,{className:"w-4 h-4"}),a[6]=h):h=a[6];let p;a[7]!==g||a[8]!==i?(p=i&&(0,t.jsx)(za,{children:g}),a[7]=g,a[8]=i,a[9]=p):p=a[9];let d;a[10]===p?d=a[11]:(d=(0,t.jsxs)(Ie,{children:[h,"Data sources",p]}),a[10]=p,a[11]=d);let o;a[12]===Symbol.for("react.memo_cache_sentinel")?(o=(0,t.jsx)(Le,{children:(0,t.jsx)(Ja,{})}),a[12]=o):o=a[12];let b;a[13]===d?b=a[14]:(b=(0,t.jsxs)(Te,{value:"datasources",children:[d,o]}),a[13]=d,a[14]=b);let x;a[15]===Symbol.for("react.memo_cache_sentinel")?(x=(0,t.jsxs)(Ie,{children:[(0,t.jsx)(aa,{className:"w-4 h-4"}),"Variables"]}),a[15]=x):x=a[15];let f;a[16]!==s||a[17]!==e?(f=(0,t.jsxs)(Te,{value:"variables",lastItem:!0,children:[x,(0,t.jsx)(Le,{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)(Ve,{cellIds:s.inOrderIds,variables:e})})]}),a[16]=s,a[17]=e,a[18]=f):f=a[18];let y;return a[19]!==m||a[20]!==N||a[21]!==b||a[22]!==f?(y=(0,t.jsxs)(ma,{type:"multiple",value:N,onValueChange:m,className:"flex flex-col h-full overflow-auto",children:[b,f]}),a[19]=m,a[20]=N,a[21]=b,a[22]=f,a[23]=y):y=a[23],y};export{ot as default};