@marimo-team/frontend 0.25.2-dev38 → 0.25.2-dev39

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 (98) hide show
  1. package/dist/assets/{CellStatus-CRNbTOIs.js → CellStatus-C24XF8TO.js} +1 -1
  2. package/dist/assets/{ErrorBoundary-CHPy195L.js → ErrorBoundary-B0A5dBH2.js} +2 -2
  3. package/dist/assets/{JsonOutput-BdpXVhxV.js → JsonOutput-Cx3AQC7R.js} +3 -3
  4. package/dist/assets/{MarimoErrorOutput-K6C_dFmm.js → MarimoErrorOutput-CMVdJiaK.js} +1 -1
  5. package/dist/assets/{RenderHTML-ClrDrx3F.js → RenderHTML-DjS-DdUL.js} +1 -1
  6. package/dist/assets/{RunButton-BA02OhJe.js → RunButton-DhhAS4nD.js} +1 -1
  7. package/dist/assets/{add-cell-with-ai-sgoMoiI9.js → add-cell-with-ai-BPu32863.js} +1 -1
  8. package/dist/assets/{add-connection-dialog-BOV2U067.js → add-connection-dialog-DZj5amkT.js} +1 -1
  9. package/dist/assets/{agent-panel-CRzjBUdB.js → agent-panel-DKJ-xqqe.js} +1 -1
  10. package/dist/assets/ai-model-dropdown-D_5kXqGw.js +5 -0
  11. package/dist/assets/{api-C5RyTgDk.js → api-DMoBWmQT.js} +1 -1
  12. package/dist/assets/{app-config-button-BAQBx4II.js → app-config-button-BBBqdwwv.js} +1 -1
  13. package/dist/assets/{blob-BKNVs7hM.js → blob-mVTRazkn.js} +1 -1
  14. package/dist/assets/{cell-editor-CEABNkmY.js → cell-editor-BNAwiIir.js} +2 -2
  15. package/dist/assets/cell-link-BFoYN4G4.js +1 -0
  16. package/dist/assets/{cells-DIjn-wIE.js → cells-Bboj_mzH.js} +1 -1
  17. package/dist/assets/{chat-display-Bpl-2umz.js → chat-display-BclykCDT.js} +1 -1
  18. package/dist/assets/{chat-panel-C6NjK6Ig.js → chat-panel-DvGZ0ahc.js} +1 -1
  19. package/dist/assets/{chat-ui-C5Ulv8Sh.js → chat-ui-B1xpc2Iq.js} +1 -1
  20. package/dist/assets/{code-visibility-DbW2QNho.js → code-visibility-DStVsztB.js} +1 -1
  21. package/dist/assets/{column-preview-CZ2TL09N.js → column-preview-B_HNw6Xa.js} +1 -1
  22. package/dist/assets/{command-palette-DaHlZzjG.js → command-palette-B8pPDrL3.js} +1 -1
  23. package/dist/assets/{common-BQbHQAab.js → common-CAoKKAj9.js} +1 -1
  24. package/dist/assets/{components-DJ4W2IzC.js → components-0tF5D2G2.js} +1 -1
  25. package/dist/assets/{components-Dt0cuD4C.js → components-Scfns93C.js} +1 -1
  26. package/dist/assets/{config-D7CP5wR5.js → config-VEBoxYs0.js} +1 -1
  27. package/dist/assets/{datasource-Ccdyd-O2.js → datasource-DXrVF3A7.js} +1 -1
  28. package/dist/assets/{dependency-graph-panel-DIQpBTOZ.js → dependency-graph-panel-BKerKbW0.js} +1 -1
  29. package/dist/assets/{documentation-panel-DTDeaE2n.js → documentation-panel-BBqGQovG.js} +1 -1
  30. package/dist/assets/{download-DBXnO5qS.js → download-CsvgDpk8.js} +1 -1
  31. package/dist/assets/{edit-page-HpmTxp7Y.js → edit-page-J1s9SrSW.js} +6 -6
  32. package/dist/assets/{error-entries-BB7FNt10.js → error-entries-EhYWazUP.js} +1 -1
  33. package/dist/assets/{error-panel-0aG3Tdrl.js → error-panel-BBwaFurl.js} +1 -1
  34. package/dist/assets/feedback-button-BXARphau.js +1 -0
  35. package/dist/assets/{feedback-button-Ck0Mp9so.js → feedback-button-D4FkbdpF.js} +1 -1
  36. package/dist/assets/{file-explorer-panel-Dqxfg5xm.js → file-explorer-panel-DOuYHyNb.js} +1 -1
  37. package/dist/assets/{file-name-input-CUxuxMjv.js → file-name-input-oZ_OFDwA.js} +1 -1
  38. package/dist/assets/{floating-outline-yJVtlHMv.js → floating-outline-CuOLwf13.js} +1 -1
  39. package/dist/assets/{gallery-page-D70P7AOr.js → gallery-page-DnObr5r7.js} +1 -1
  40. package/dist/assets/{glide-data-editor-YqrbKh4R.js → glide-data-editor-SRFol8N3.js} +1 -1
  41. package/dist/assets/{home-page-Dnv5d4Ek.js → home-page-CrRCUhHM.js} +1 -1
  42. package/dist/assets/{hooks-ZWyI6fMV.js → hooks-DDexlabY.js} +1 -1
  43. package/dist/assets/{index-BUQP_BOv.js → index-h-GQYxNi.js} +6 -6
  44. package/dist/assets/kiosk-mode-CEKB1dXx.js +1 -0
  45. package/dist/assets/{layout-C8pvkupF.js → layout-4WXAZ1eW.js} +4 -4
  46. package/dist/assets/links-Bc4DEgui.js +1 -0
  47. package/dist/assets/{logs-panel-Bdb_qtEg.js → logs-panel-BYUR5w2M.js} +1 -1
  48. package/dist/assets/{markdown-renderer-DT34-_9e.js → markdown-renderer-BCB0NTfn.js} +1 -1
  49. package/dist/assets/{name-cell-input-E95KyKqv.js → name-cell-input-C-myEA1c.js} +1 -1
  50. package/dist/assets/{outline-panel-1AnW7CLy.js → outline-panel-CM2lVI29.js} +1 -1
  51. package/dist/assets/{packages-panel-t-WIjOjO.js → packages-panel-BwJc45sJ.js} +1 -1
  52. package/dist/assets/{pair-DrvWpc2_.js → pair-_FSgYVX4.js} +1 -1
  53. package/dist/assets/{panel-accordion-state-_r3T-AGo.js → panel-accordion-state-XgB7A-Pf.js} +1 -1
  54. package/dist/assets/panels-SK_rec-s.js +4 -0
  55. package/dist/assets/{process-output-gyG2tEQt.js → process-output-Bpzcx6ny.js} +1 -1
  56. package/dist/assets/{readonly-code-display-DVP0M5ji.js → readonly-code-display-DykeAqVP.js} +1 -1
  57. package/dist/assets/{readonly-python-code-CPhK2DqE.js → readonly-python-code-NhpM1k7Y.js} +1 -1
  58. package/dist/assets/{reveal-component-CICzazBY.js → reveal-component-DvtSwOtf.js} +1 -1
  59. package/dist/assets/run-page-DtMQZ9fB.js +1 -0
  60. package/dist/assets/{sandbox-panel-CcKUdNwc.js → sandbox-panel-BTJZoLQf.js} +1 -1
  61. package/dist/assets/{scratchpad-panel-Bju5WCrd.js → scratchpad-panel-DAR9LXOp.js} +1 -1
  62. package/dist/assets/{session-ztCnZJHI.js → session-D7QkhMHj.js} +1 -1
  63. package/dist/assets/{session-panel-BhoASF58.js → session-panel-BFDg1epj.js} +1 -1
  64. package/dist/assets/{snippets-panel-BGO2n9mY.js → snippets-panel-D5jPm-dQ.js} +1 -1
  65. package/dist/assets/{state-OJSVjDAX.js → state-C2hpK3R0.js} +1 -1
  66. package/dist/assets/{state-0X7um_9u.js → state-ClA31EHO.js} +3 -3
  67. package/dist/assets/{terminal-BaYFckM3.js → terminal-DgXAZSkT.js} +1 -1
  68. package/dist/assets/{tracing-BwkQnRsr.js → tracing-CDAILi-O.js} +1 -1
  69. package/dist/assets/{tracing-panel-Bari_aJY.js → tracing-panel-Clom4CyL.js} +2 -2
  70. package/dist/assets/{tree-actions-DpLu3KP0.js → tree-actions-gTQxtJX8.js} +1 -1
  71. package/dist/assets/{useAddCell-DCbFUjci.js → useAddCell-Cz3QoshN.js} +1 -1
  72. package/dist/assets/{useBoolean-C44TyhOc.js → useBoolean-iz9l8Cuk.js} +1 -1
  73. package/dist/assets/{useCellActionButton-Dd3_WkrO.js → useCellActionButton-BMuXaKhK.js} +1 -1
  74. package/dist/assets/{useDeleteCell-BJ6lgiBJ.js → useDeleteCell-DieDZaIf.js} +1 -1
  75. package/dist/assets/{useDependencyPanelTab-CyNU7lXE.js → useDependencyPanelTab-B8hZ99Ij.js} +1 -1
  76. package/dist/assets/{useInstallPackage-DO1N1lCX.js → useInstallPackage-DsbNVe8R.js} +1 -1
  77. package/dist/assets/useNotebookActions-9w4zO1hI.js +1 -0
  78. package/dist/assets/{useRunCells-k0IpRLOw.js → useRunCells-BtJbnrtV.js} +1 -1
  79. package/dist/assets/{useSplitCell-AE67LfQn.js → useSplitCell-Bb3bloRI.js} +1 -1
  80. package/dist/assets/{vega-component-Bw0srfks.js → vega-component-CyO7yyQw.js} +1 -1
  81. package/dist/index.html +25 -26
  82. package/package.json +1 -1
  83. package/src/components/editor/actions/__tests__/pair-with-agent-commands.test.ts +32 -46
  84. package/src/components/editor/actions/__tests__/pair-with-agent-modal.test.tsx +29 -40
  85. package/src/components/editor/actions/pair-with-agent-commands.ts +3 -4
  86. package/src/components/editor/actions/pair-with-agent-modal.tsx +4 -7
  87. package/src/core/config/pair.ts +0 -1
  88. package/src/core/kernel/session.ts +9 -0
  89. package/src/core/websocket/useMarimoKernelConnection.tsx +10 -1
  90. package/dist/assets/ai-model-dropdown-B547mMnB.js +0 -5
  91. package/dist/assets/cell-link-CEmc-Cr5.js +0 -1
  92. package/dist/assets/feedback-button-DFFJadk1.js +0 -1
  93. package/dist/assets/filename-BlDwe-3Z.js +0 -1
  94. package/dist/assets/kiosk-mode-Cvh6wszH.js +0 -1
  95. package/dist/assets/links-Dz_7YAlE.js +0 -1
  96. package/dist/assets/panels-HoIP3cDr.js +0 -4
  97. package/dist/assets/run-page-DWUXQLtA.js +0 -1
  98. package/dist/assets/useNotebookActions-D7J_QMJo.js +0 -1
@@ -1 +1 @@
1
- import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{c as t,f as n,l as r}from"./useEvent-Dc9HkKI2.js";import{t as i}from"./react-CUdNIagt.js";import{co as a}from"./cells-DIjn-wIE.js";import{t as o}from"./compiler-runtime-BQ9S8nyo.js";import{t as s}from"./useEventListener-CUPWI_1X.js";import{T as c,_ as l,v as u,w as d,x as f}from"./config-D7CP5wR5.js";import{t as p}from"./cn-ldLVeaqm.js";import{t as m}from"./jsx-runtime-B74pBk57.js";import{t as h}from"./circle-CzTMKZwz.js";import{t as g}from"./button-qFeU84ax.js";import{t as _}from"./arrow-down-BFFrjzad.js";import{t as v}from"./check-Wea4hZ6R.js";import{i as y}from"./useNumberFormatter-C4-_TnkF.js";import{t as b}from"./spinner-CGdRKCnw.js";import{t as x}from"./refresh-cw-CEGpOrzd.js";import{t as S}from"./copy-icon-DQuttmjH.js";import{s as C}from"./useInstallPackage-DO1N1lCX.js";import{r as w}from"./panel-context-BPaQeOuV.js";import{l as T,o as E,t as D}from"./state-D-WJnPU6.js";var O=e(i(),1),k=o(),A=n(null),j=n(e=>e(D).environments.kernel.operations.findLast(e=>e.action===`prepare`)),M=n(e=>{let t=e(D).environments.kernel.operations;return t.findLast(e=>e.action===`sync`&&e.status.kind===`running`)??t.findLast(e=>e.action===`sync`)}),N=n(null),P=n(e=>{let t=e(M),n=e(N),r=n&&n.operation===t&&t?.status.kind!==`running`?n.state:t?.status??{kind:`idle`};return e(D).environments.kernel.restart_required&&(r.kind===`idle`||r.kind===`succeeded`)?{kind:`restart-required`,reason:`Dependency changes are saved; restart the kernel to apply them.`}:r},(e,t,n)=>{t(N,{state:n,operation:e(M)})}),F=n(null),I=n(e=>{let t=e(l),n=!!e(A)?.backend,r=e(P),i=r.kind===`running`,a=r.kind===`restart-required`,o=r.kind===`failed`?r.error:r.kind===`cancelled`?`Sandbox sync was interrupted.`:a?r.reason:null;if(n&&(i||o!==null)&&t.state===c.OPEN)return{kind:`sync`,sandbox:n,title:i?`Syncing sandbox…`:a?`Sandbox restart required`:`Sandbox sync failed`,description:i?`Applying the saved manifest to this notebook’s environment.`:a?`Restart the kernel to use the updated environment.`:`Review the error details, then try again.`,pending:i,error:o};if(t.state===c.CONNECTING)return{kind:t.phase===`reconnecting`?`connection`:`startup`,phase:t.phase,sandbox:n,...t.phase?{"preparing-environment":{title:`Preparing environment…`,description:`Getting this notebook’s Python environment ready. The first start can take a few minutes.`},"starting-kernel":{title:`Starting kernel…`,description:`The environment is prepared. Waiting for the Python kernel to connect to this notebook.`},reconnecting:{title:`Reconnecting…`,description:`The connection was interrupted. Your notebook and existing outputs stay visible while the kernel reconnects.`}}[t.phase]:{title:`Connecting…`,description:`Waiting for the notebook’s kernel to connect.`},pending:!0,error:null};if(t.state===c.CLOSED){let r=t.code===d.KERNEL_STARTUP_ERROR,i=r&&t.phase===`preparing-environment`;return{kind:r?`startup`:`connection`,phase:t.phase,sandbox:n,title:i?`Sandbox setup failed`:r?`Kernel failed to start`:t.reason,description:i?`The notebook can’t run yet.`:r?`The Python kernel could not start. Check the error details, then try again.`:`The connection to the notebook’s kernel was lost.`,pending:!1,error:r?e(E)??t.reason:null}}return null});function L(e){let t=(0,k.c)(11),n=e===void 0?500:e,i=r(I),a=r(u),o=T(i?.pending?n:0),[s,c]=(0,O.useState)(null),l,d;if(t[0]!==a||t[1]!==o||t[2]!==i?(l=()=>{if(i||!a){c(o?i:null);return}let e=setTimeout(()=>c(null),1500);return()=>clearTimeout(e)},d=[i,a,o],t[0]=a,t[1]=o,t[2]=i,t[3]=l,t[4]=d):(l=t[3],d=t[4]),(0,O.useEffect)(l,d),i){let e;return t[5]!==o||t[6]!==i?(e=o?{...i,ready:!1}:null,t[5]=o,t[6]=i,t[7]=e):e=t[7],e}if(a&&s?.pending&&s.sandbox&&s.kind!==`connection`){let e=s.kind===`sync`?`Environment synced`:`Your notebook is ready`,n;return t[8]!==s||t[9]!==e?(n={...s,pending:!1,ready:!0,title:e,description:`The notebook is ready to run.`,error:null},t[8]=s,t[9]=e,t[10]=n):n=t[10],n}return null}var R=n(null),z=n(e=>{let t=e(I);return{preparationId:e(j)?.operation_id,error:t&&!t.pending?t.error??t.title:null}}),B=n(e=>{let t=e(z),n=e(R);return n&&n.preparationId===t.preparationId&&n.error===t.error?n.expanded:e(I)!==null},(e,t,n)=>{t(R,{...e(z),expanded:n})}),V=m();function H(e){let t=e.ownerDocument.getSelection();return t&&!t.isCollapsed&&t.containsNode(e,!0)}function U(e){let t=(0,k.c)(44),{logs:n,label:r,state:i}=e,a=i===void 0?`running`:i,[o,c]=(0,O.useState)(!1),[l,u]=(0,O.useState)(!0),d=(0,O.useRef)(null),f=(0,O.useRef)(null),m=(0,O.useId)(),h=n.trimEnd().split(/\r?\n/),g=a===`failed`?`text-foreground`:a===`running`?`last:text-foreground`:void 0,v;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(v=e=>{e.key===`Escape`&&(e.preventDefault(),c(!1),f.current?.focus())},t[0]=v):v=t[0],s(d,`keydown`,v);let b;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(b=()=>{d.current&&H(d.current)&&u(!1)},t[1]=b):b=t[1],s(document,`selectionchange`,b);let x,C;if(t[2]!==o||t[3]!==l||t[4]!==n?(x=()=>{let e=d.current;if(!e)return;let t=e.textContent??``;n.startsWith(t)?n.length>t.length&&e.append(document.createTextNode(n.slice(t.length))):e.textContent=n,o&&l&&!H(e)&&(e.scrollTop=e.scrollHeight)},C=[n,o,l],t[2]=o,t[3]=l,t[4]=n,t[5]=x,t[6]=C):(x=t[5],C=t[6]),(0,O.useLayoutEffect)(x,C),!n.trim())return null;let w=o?`bg-muted/40`:`hover:bg-muted/40`,T;t[7]===w?T=t[8]:(T=p(`relative mt-2.5 min-w-0 contain-inline-size rounded text-muted-foreground`,w),t[7]=w,t[8]=T);let E=o&&`flex items-center pr-1`,D;t[9]===E?D=t[10]:(D=p(E),t[9]=E,t[10]=D);let A=`${o?`Collapse`:`Expand`} ${r}`,j=o?`Collapse output`:`Expand output`,M=o&&`items-center justify-between gap-2 text-xs hover:text-foreground`,N;t[11]===M?N=t[12]:(N=p(`flex w-full min-w-0 rounded px-2.5 py-1 text-left focus-visible:outline-2 focus-visible:outline-ring`,M),t[11]=M,t[12]=N);let P;t[13]===o?P=t[14]:(P=()=>{c(!o),u(!0)},t[13]=o,t[14]=P);let F=o?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`span`,{className:`leading-5`,children:`Logs`}),(0,V.jsx)(y,{className:`size-3.5 shrink-0`,"aria-hidden":!0})]}):(0,V.jsx)(`span`,{className:p(`min-w-0 flex-1 font-mono text-[11px] leading-5`,h.length>1&&`[mask-image:linear-gradient(to_bottom,transparent,#000_70%)]`),"aria-hidden":!0,children:h.slice(-3).map((e,t)=>(0,V.jsx)(`span`,{className:p(`block truncate`,g),children:e||`\xA0`},t))}),I;t[15]!==o||t[16]!==m||t[17]!==A||t[18]!==j||t[19]!==N||t[20]!==P||t[21]!==F?(I=(0,V.jsx)(`button`,{ref:f,type:`button`,"aria-label":A,"aria-expanded":o,"aria-controls":m,title:j,className:N,onClick:P,children:F}),t[15]=o,t[16]=m,t[17]=A,t[18]=j,t[19]=N,t[20]=P,t[21]=F,t[22]=I):I=t[22];let L;t[23]!==o||t[24]!==r||t[25]!==n?(L=o&&(0,V.jsx)(S,{value:n,ariaLabel:`Copy ${r}`,tooltip:`Copy output`,className:`size-3.5`,buttonClassName:`size-6 shrink-0 flex items-center justify-center rounded hover:bg-accent focus-visible:outline-2 focus-visible:outline-ring`}),t[23]=o,t[24]=r,t[25]=n,t[26]=L):L=t[26];let R;t[27]!==I||t[28]!==L||t[29]!==D?(R=(0,V.jsxs)(`div`,{className:D,children:[I,L]}),t[27]=I,t[28]=L,t[29]=D,t[30]=R):R=t[30];let z=!o,B;t[31]===Symbol.for(`react.memo_cache_sentinel`)?(B=e=>{let t=e.currentTarget;u(!H(t)&&t.scrollHeight-t.scrollTop-t.clientHeight<12)},t[31]=B):B=t[31];let U;t[32]!==r||t[33]!==m||t[34]!==z?(U=(0,V.jsx)(`pre`,{id:m,ref:d,hidden:z,tabIndex:0,"aria-label":r,className:`max-h-48 overflow-auto overscroll-contain whitespace-pre px-2.5 pb-2.5 font-mono text-[11px] leading-5 scrollbar-thin focus-visible:outline-2 focus-visible:outline-ring`,onScroll:B}),t[32]=r,t[33]=m,t[34]=z,t[35]=U):U=t[35];let W;t[36]!==o||t[37]!==l?(W=o&&!l&&(0,V.jsxs)(`button`,{type:`button`,className:`absolute bottom-2 left-1/2 -translate-x-1/2 flex items-center gap-1 whitespace-nowrap rounded-full border bg-background px-2 py-1 text-xs shadow-xs hover:text-foreground focus-visible:outline-2 focus-visible:outline-ring`,onClick:()=>{let e=d.current;e&&(H(e)&&e.ownerDocument.getSelection()?.removeAllRanges(),e.focus({preventScroll:!0})),u(!0)},children:[(0,V.jsx)(_,{className:`size-3`,"aria-hidden":!0}),`Jump to latest`]}),t[36]=o,t[37]=l,t[38]=W):W=t[38];let G;return t[39]!==R||t[40]!==U||t[41]!==W||t[42]!==T?(G=(0,V.jsxs)(`div`,{className:T,children:[R,U,W]}),t[39]=R,t[40]=U,t[41]=W,t[42]=T,t[43]=G):G=t[43],G}var W=[{phase:`preparing-environment`,titles:{complete:`Environment prepared`,failed:`Environment setup failed`,pending:`Preparing environment`,waiting:`Prepare environment`},descriptions:{complete:`Python and dependencies are available.`,failed:`Setup could not finish.`,pending:`Set up Python and dependencies.`,waiting:`Set up Python and dependencies.`}},{phase:`starting-kernel`,titles:{complete:`Kernel started`,failed:`Kernel failed to start`,pending:`Starting kernel`,waiting:`Start kernel`},descriptions:{complete:`The notebook is ready to run.`,failed:`The kernel could not connect.`,pending:`Connecting to this notebook.`,waiting:`After the environment is ready.`}}];function G(e){let t=(0,k.c)(5),{phase:n,state:i}=e,a=r(j),o=r(f),s=n===`preparing-environment`,c=s?a?.logs.environment??``:o?.phase===n?o.logs:``,l=a?.operation_id,u=s?`environment preparation output`:`kernel startup output`,d;return t[0]!==c||t[1]!==i||t[2]!==l||t[3]!==u?(d=(0,V.jsx)(U,{logs:c,state:i,label:u},l),t[0]=c,t[1]=i,t[2]=l,t[3]=u,t[4]=d):d=t[4],d}function K(e){let t=(0,k.c)(10),{notice:n}=e,r;t[0]===n.title?r=t[1]:(r=(0,V.jsx)(`output`,{className:`sr-only`,children:n.title}),t[0]=n.title,t[1]=r);let i=n.ready?`Your notebook is ready`:`Getting your notebook ready`,a;t[2]===i?a=t[3]:(a=(0,V.jsx)(`h2`,{className:`text-foreground font-heading text-2xl leading-8 tracking-tight font-normal`,children:i}),t[2]=i,t[3]=a);let o=n.ready?`Your environment and kernel are ready.`:n.pending?`Preparing Python and dependencies for this notebook.`:`Review the setup details below to continue.`,s;t[4]===o?s=t[5]:(s=(0,V.jsx)(`p`,{className:`text-muted-foreground mt-3 text-sm leading-6`,children:o}),t[4]=o,t[5]=s);let c;return t[6]!==r||t[7]!==a||t[8]!==s?(c=(0,V.jsxs)(`header`,{children:[r,a,s]}),t[6]=r,t[7]=a,t[8]=s,t[9]=c):c=t[9],c}function q(e){let t=(0,k.c)(3),{notice:n}=e;if(n.ready){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,V.jsx)(v,{className:`size-4 shrink-0 text-(--grass-11)`,"aria-hidden":!0}),t[0]=e):e=t[0],e}if(n.pending){let e;return t[1]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,V.jsx)(b,{className:`size-4 shrink-0 motion-reduce:animate-none`,"aria-hidden":!0}),t[1]=e):e=t[1],e}let r;return t[2]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,V.jsx)(a,{className:`size-4 shrink-0 text-(--red-11)`,"aria-hidden":!0}),t[2]=r):r=t[2],r}function J(e){let t=(0,k.c)(14),{notice:n,surface:r}=e,i;t[0]!==n||t[1]!==r?(i=r===`notebook`&&(0,V.jsx)(K,{notice:n}),t[0]=n,t[1]=r,t[2]=i):i=t[2];let a=r===`notebook`&&`mt-8`,o;t[3]===a?o=t[4]:(o=p(`space-y-6`,a),t[3]=a,t[4]=o);let s;t[5]!==n||t[6]!==r?(s=W.map((e,t)=>{let{phase:i,titles:a,descriptions:o}=e,s=n.ready||t===0&&n.phase===`starting-kernel`,c=!n.ready&&n.phase===i,l=c&&!n.pending,u=s?`complete`:l?`failed`:c?`pending`:`waiting`;return(0,V.jsxs)(`li`,{"aria-current":c?`step`:void 0,className:`relative flex items-start gap-3`,children:[t===0&&(0,V.jsx)(`span`,{"aria-hidden":!0,className:`absolute left-2 top-6 -bottom-4 border-l border-border`}),(0,V.jsx)(`span`,{className:p(`mt-0.5`,s?`text-(--grass-11)`:`text-muted-foreground`),children:s?(0,V.jsx)(v,{className:`size-4`,"aria-hidden":!0}):c?(0,V.jsx)(q,{notice:n}):(0,V.jsx)(h,{className:`size-4 text-muted-foreground/50`,"aria-hidden":!0})}),(0,V.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,V.jsx)(`div`,{className:p(`text-sm`,l?`text-(--red-11)`:s||c?`text-foreground`:`text-muted-foreground`),children:a[u]}),(0,V.jsx)(`p`,{className:`mt-1 text-xs text-muted-foreground`,children:o[u]}),r===`sidebar`&&(0,V.jsx)(G,{phase:i,state:l?`failed`:c?`running`:`succeeded`})]})]},i)}),t[5]=n,t[6]=r,t[7]=s):s=t[7];let c;t[8]!==o||t[9]!==s?(c=(0,V.jsx)(`ol`,{className:o,"aria-label":`Notebook startup stages`,children:s}),t[8]=o,t[9]=s,t[10]=c):c=t[10];let l;return t[11]!==i||t[12]!==c?(l=(0,V.jsxs)(V.Fragment,{children:[i,c]}),t[11]=i,t[12]=c,t[13]=l):l=t[13],l}function Y(e){let t=(0,k.c)(2),{error:n}=e,r;return t[0]===n?r=t[1]:(r=(0,V.jsx)(`pre`,{tabIndex:0,"aria-label":`Error details`,className:`mt-3 p-3 rounded border bg-muted/30 text-xs text-muted-foreground whitespace-pre min-w-0 max-w-full max-h-52 overflow-auto`,children:n}),t[0]=n,t[1]=r),r}function X(e){let t=(0,k.c)(23),{notice:n}=e,i=r(A),a=r(F),o=r(P);if(n.pending||n.ready)return null;let s;t[0]===n.description?s=t[1]:(s=(0,V.jsx)(`p`,{className:`mt-2 text-foreground`,children:n.description}),t[0]=n.description,t[1]=s);let c;t[2]===n.error?c=t[3]:(c=n.error&&(0,V.jsx)(Y,{error:n.error}),t[2]=n.error,t[3]=c);let l=!a||i?.manifest==null,u;t[4]===a?u=t[5]:(u=()=>a?.editManifest(),t[4]=a,t[5]=u);let d;t[6]!==l||t[7]!==u?(d=(0,V.jsx)(g,{variant:`outline`,size:`xs`,disabled:l,onClick:u,children:`Edit manifest…`}),t[6]=l,t[7]=u,t[8]=d):d=t[8];let f;t[9]!==a||t[10]!==n.kind||t[11]!==o?(f=n.kind===`sync`&&o.kind===`restart-required`?(0,V.jsx)(Z,{}):(0,V.jsx)(g,{variant:`text`,size:`xs`,disabled:!a,onClick:()=>a?.sync(),children:`Retry sync`}),t[9]=a,t[10]=n.kind,t[11]=o,t[12]=f):f=t[12];let p;t[13]!==d||t[14]!==f?(p=(0,V.jsxs)(`div`,{className:`flex items-center gap-2 mt-3`,children:[d,f]}),t[13]=d,t[14]=f,t[15]=p):p=t[15];let m;t[16]===i?.manifest?m=t[17]:(m=i?.manifest==null&&(0,V.jsx)(`p`,{className:`mt-3 text-xs text-muted-foreground`,children:`A manifest will be available once this new notebook starts.`}),t[16]=i?.manifest,t[17]=m);let h;return t[18]!==s||t[19]!==c||t[20]!==p||t[21]!==m?(h=(0,V.jsxs)(V.Fragment,{children:[s,c,p,m]}),t[18]=s,t[19]=c,t[20]=p,t[21]=m,t[22]=h):h=t[22],h}function Z(){let e=(0,k.c)(2),t=C(),n;return e[0]===t?n=e[1]:(n=(0,V.jsx)(g,{variant:`text`,size:`xs`,onClick:t,children:`Restart Kernel`}),e[0]=t,e[1]=n),n}function Q(e){let t=(0,k.c)(8),{notice:n}=e,r=n.kind===`startup`&&(n.ready||n.phase===`preparing-environment`||n.phase===`starting-kernel`),i;t[0]!==n||t[1]!==r?(i=r?(0,V.jsx)(J,{notice:n,surface:`sidebar`}):(0,V.jsxs)(`div`,{className:`flex items-center gap-2`,role:`status`,children:[(0,V.jsx)(q,{notice:n}),(0,V.jsx)(`h2`,{children:n.title})]}),t[0]=n,t[1]=r,t[2]=i):i=t[2];let a;t[3]===n?a=t[4]:(a=(0,V.jsx)(X,{notice:n}),t[3]=n,t[4]=a);let o;return t[5]!==i||t[6]!==a?(o=(0,V.jsxs)(`div`,{className:`min-w-0 text-sm`,children:[i,a]}),t[5]=i,t[6]=a,t[7]=o):o=t[7],o}function $(e){let t=(0,k.c)(12),{notice:n}=e,r;t[0]===n?r=t[1]:(r=(0,V.jsx)(q,{notice:n}),t[0]=n,t[1]=r);let i;t[2]===n.title?i=t[3]:(i=(0,V.jsx)(`span`,{children:n.title}),t[2]=n.title,t[3]=i);let a;t[4]!==r||t[5]!==i?(a=(0,V.jsxs)(`output`,{className:`flex items-center gap-2 text-xs`,children:[r,i]}),t[4]=r,t[5]=i,t[6]=a):a=t[6];let o;t[7]===n?o=t[8]:(o=(0,V.jsx)(X,{notice:n}),t[7]=n,t[8]=o);let s;return t[9]!==a||t[10]!==o?(s=(0,V.jsxs)(`div`,{className:`mb-5 text-sm`,children:[a,o]}),t[9]=a,t[10]=o,t[11]=s):s=t[11],s}function ee(e){let t=(0,k.c)(9),{notice:n}=e,i=r(M);if(!i&&!n)return null;let a;t[0]===n?a=t[1]:(a=n?(0,V.jsx)($,{notice:n}):(0,V.jsx)(`p`,{className:`text-sm`,children:`Environment synced`}),t[0]=n,t[1]=a);let o=i?.operation_id,s=i?.logs.environment??``,c=i?.status.kind===`running`?`running`:i?.status.kind===`succeeded`?`succeeded`:`failed`,l;t[2]!==o||t[3]!==s||t[4]!==c?(l=(0,V.jsx)(U,{logs:s,state:c,label:`sandbox sync output`},o),t[2]=o,t[3]=s,t[4]=c,t[5]=l):l=t[5];let u;return t[6]!==a||t[7]!==l?(u=(0,V.jsxs)(`div`,{className:`mt-5 min-w-0`,children:[a,l]}),t[6]=a,t[7]=l,t[8]=u):u=t[8],u}function te(){let e=(0,k.c)(29),n=w(),i=r(u),a=r(I),o=r(j),s=r(f),[c,l]=t(B),d;e[0]!==a||e[1]!==o||e[2]!==s?(d=a?.kind===`startup`?{...a,ready:!1}:o||s?{kind:`startup`,sandbox:!0,title:`Notebook started`,description:`The notebook is ready to run.`,pending:!1,ready:!0,error:null}:null,e[0]=a,e[1]=o,e[2]=s,e[3]=d):d=e[3];let m=d,h=`sandbox-details-${n}`,g=!c,_=i?`shrink-0 max-h-[65%] border-b`:`flex-1`,v;e[4]===_?v=e[5]:(v=p(`min-w-0 overflow-auto p-4`,_),e[4]=_,e[5]=v);let y,b;e[6]===l?(y=e[7],b=e[8]):(y=()=>l(!0),b=()=>l(!0),e[6]=l,e[7]=y,e[8]=b);let x;e[9]===a?x=e[10]:(x=a?.kind===`connection`&&(0,V.jsx)($,{notice:{...a,ready:!1}}),e[9]=a,e[10]=x);let S;e[11]===m?S=e[12]:(S=m&&(0,V.jsx)(Q,{notice:m}),e[11]=m,e[12]=S);let C;e[13]!==i||e[14]!==a?(C=i&&(0,V.jsx)(ee,{notice:a?.kind===`sync`?{...a,ready:!1}:null}),e[13]=i,e[14]=a,e[15]=C):C=e[15];let T;e[16]!==i||e[17]!==a?(T=i&&(!a||a.pending)&&(0,V.jsx)(ne,{}),e[16]=i,e[17]=a,e[18]=T):T=e[18];let E;return e[19]!==h||e[20]!==T||e[21]!==g||e[22]!==v||e[23]!==y||e[24]!==b||e[25]!==x||e[26]!==S||e[27]!==C?(E=(0,V.jsxs)(`section`,{id:h,"aria-label":`Sandbox details`,hidden:g,className:v,onPointerDownCapture:y,onFocusCapture:b,children:[x,S,C,T]}),e[19]=h,e[20]=T,e[21]=g,e[22]=v,e[23]=y,e[24]=b,e[25]=x,e[26]=S,e[27]=C,e[28]=E):E=e[28],E}function ne(){let e=(0,k.c)(14),t=r(A),n=r(F),i=r(P).kind===`running`||!n,a;e[0]===n?a=e[1]:(a=()=>n?.sync(),e[0]=n,e[1]=a);let o;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,V.jsx)(x,{className:`size-3`,"aria-hidden":!0}),e[2]=o):o=e[2];let s;e[3]!==i||e[4]!==a?(s=(0,V.jsxs)(g,{variant:`text`,size:`xs`,className:`text-muted-foreground gap-1.5 p-0`,disabled:i,onClick:a,children:[o,`Sync`]}),e[3]=i,e[4]=a,e[5]=s):s=e[5];let c=!n||t?.manifest==null,l;e[6]===n?l=e[7]:(l=()=>n?.editManifest(),e[6]=n,e[7]=l);let u;e[8]!==c||e[9]!==l?(u=(0,V.jsx)(g,{variant:`text`,size:`xs`,className:`text-muted-foreground p-0`,disabled:c,onClick:l,children:`Edit manifest…`}),e[8]=c,e[9]=l,e[10]=u):u=e[10];let d;return e[11]!==s||e[12]!==u?(d=(0,V.jsxs)(`div`,{className:`flex items-center gap-4 mt-5 border-t pt-3`,children:[s,u]}),e[11]=s,e[12]=u,e[13]=d):d=e[13],d}export{B as a,F as c,J as i,A as l,Y as n,L as o,q as r,I as s,te as t,P as u};
1
+ import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{c as t,f as n,l as r}from"./useEvent-Dc9HkKI2.js";import{t as i}from"./react-CUdNIagt.js";import{co as a}from"./cells-Bboj_mzH.js";import{t as o}from"./compiler-runtime-BQ9S8nyo.js";import{t as s}from"./useEventListener-CUPWI_1X.js";import{T as c,_ as l,v as u,w as d,x as f}from"./config-VEBoxYs0.js";import{t as p}from"./cn-ldLVeaqm.js";import{t as m}from"./jsx-runtime-B74pBk57.js";import{t as h}from"./circle-CzTMKZwz.js";import{t as g}from"./button-qFeU84ax.js";import{t as _}from"./arrow-down-BFFrjzad.js";import{t as v}from"./check-Wea4hZ6R.js";import{i as y}from"./useNumberFormatter-C4-_TnkF.js";import{t as b}from"./spinner-CGdRKCnw.js";import{t as x}from"./refresh-cw-CEGpOrzd.js";import{t as S}from"./copy-icon-DQuttmjH.js";import{s as C}from"./useInstallPackage-DsbNVe8R.js";import{r as w}from"./panel-context-BPaQeOuV.js";import{l as T,o as E,t as D}from"./state-D-WJnPU6.js";var O=e(i(),1),k=o(),A=n(null),j=n(e=>e(D).environments.kernel.operations.findLast(e=>e.action===`prepare`)),M=n(e=>{let t=e(D).environments.kernel.operations;return t.findLast(e=>e.action===`sync`&&e.status.kind===`running`)??t.findLast(e=>e.action===`sync`)}),N=n(null),P=n(e=>{let t=e(M),n=e(N),r=n&&n.operation===t&&t?.status.kind!==`running`?n.state:t?.status??{kind:`idle`};return e(D).environments.kernel.restart_required&&(r.kind===`idle`||r.kind===`succeeded`)?{kind:`restart-required`,reason:`Dependency changes are saved; restart the kernel to apply them.`}:r},(e,t,n)=>{t(N,{state:n,operation:e(M)})}),F=n(null),I=n(e=>{let t=e(l),n=!!e(A)?.backend,r=e(P),i=r.kind===`running`,a=r.kind===`restart-required`,o=r.kind===`failed`?r.error:r.kind===`cancelled`?`Sandbox sync was interrupted.`:a?r.reason:null;if(n&&(i||o!==null)&&t.state===c.OPEN)return{kind:`sync`,sandbox:n,title:i?`Syncing sandbox…`:a?`Sandbox restart required`:`Sandbox sync failed`,description:i?`Applying the saved manifest to this notebook’s environment.`:a?`Restart the kernel to use the updated environment.`:`Review the error details, then try again.`,pending:i,error:o};if(t.state===c.CONNECTING)return{kind:t.phase===`reconnecting`?`connection`:`startup`,phase:t.phase,sandbox:n,...t.phase?{"preparing-environment":{title:`Preparing environment…`,description:`Getting this notebook’s Python environment ready. The first start can take a few minutes.`},"starting-kernel":{title:`Starting kernel…`,description:`The environment is prepared. Waiting for the Python kernel to connect to this notebook.`},reconnecting:{title:`Reconnecting…`,description:`The connection was interrupted. Your notebook and existing outputs stay visible while the kernel reconnects.`}}[t.phase]:{title:`Connecting…`,description:`Waiting for the notebook’s kernel to connect.`},pending:!0,error:null};if(t.state===c.CLOSED){let r=t.code===d.KERNEL_STARTUP_ERROR,i=r&&t.phase===`preparing-environment`;return{kind:r?`startup`:`connection`,phase:t.phase,sandbox:n,title:i?`Sandbox setup failed`:r?`Kernel failed to start`:t.reason,description:i?`The notebook can’t run yet.`:r?`The Python kernel could not start. Check the error details, then try again.`:`The connection to the notebook’s kernel was lost.`,pending:!1,error:r?e(E)??t.reason:null}}return null});function L(e){let t=(0,k.c)(11),n=e===void 0?500:e,i=r(I),a=r(u),o=T(i?.pending?n:0),[s,c]=(0,O.useState)(null),l,d;if(t[0]!==a||t[1]!==o||t[2]!==i?(l=()=>{if(i||!a){c(o?i:null);return}let e=setTimeout(()=>c(null),1500);return()=>clearTimeout(e)},d=[i,a,o],t[0]=a,t[1]=o,t[2]=i,t[3]=l,t[4]=d):(l=t[3],d=t[4]),(0,O.useEffect)(l,d),i){let e;return t[5]!==o||t[6]!==i?(e=o?{...i,ready:!1}:null,t[5]=o,t[6]=i,t[7]=e):e=t[7],e}if(a&&s?.pending&&s.sandbox&&s.kind!==`connection`){let e=s.kind===`sync`?`Environment synced`:`Your notebook is ready`,n;return t[8]!==s||t[9]!==e?(n={...s,pending:!1,ready:!0,title:e,description:`The notebook is ready to run.`,error:null},t[8]=s,t[9]=e,t[10]=n):n=t[10],n}return null}var R=n(null),z=n(e=>{let t=e(I);return{preparationId:e(j)?.operation_id,error:t&&!t.pending?t.error??t.title:null}}),B=n(e=>{let t=e(z),n=e(R);return n&&n.preparationId===t.preparationId&&n.error===t.error?n.expanded:e(I)!==null},(e,t,n)=>{t(R,{...e(z),expanded:n})}),V=m();function H(e){let t=e.ownerDocument.getSelection();return t&&!t.isCollapsed&&t.containsNode(e,!0)}function U(e){let t=(0,k.c)(44),{logs:n,label:r,state:i}=e,a=i===void 0?`running`:i,[o,c]=(0,O.useState)(!1),[l,u]=(0,O.useState)(!0),d=(0,O.useRef)(null),f=(0,O.useRef)(null),m=(0,O.useId)(),h=n.trimEnd().split(/\r?\n/),g=a===`failed`?`text-foreground`:a===`running`?`last:text-foreground`:void 0,v;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(v=e=>{e.key===`Escape`&&(e.preventDefault(),c(!1),f.current?.focus())},t[0]=v):v=t[0],s(d,`keydown`,v);let b;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(b=()=>{d.current&&H(d.current)&&u(!1)},t[1]=b):b=t[1],s(document,`selectionchange`,b);let x,C;if(t[2]!==o||t[3]!==l||t[4]!==n?(x=()=>{let e=d.current;if(!e)return;let t=e.textContent??``;n.startsWith(t)?n.length>t.length&&e.append(document.createTextNode(n.slice(t.length))):e.textContent=n,o&&l&&!H(e)&&(e.scrollTop=e.scrollHeight)},C=[n,o,l],t[2]=o,t[3]=l,t[4]=n,t[5]=x,t[6]=C):(x=t[5],C=t[6]),(0,O.useLayoutEffect)(x,C),!n.trim())return null;let w=o?`bg-muted/40`:`hover:bg-muted/40`,T;t[7]===w?T=t[8]:(T=p(`relative mt-2.5 min-w-0 contain-inline-size rounded text-muted-foreground`,w),t[7]=w,t[8]=T);let E=o&&`flex items-center pr-1`,D;t[9]===E?D=t[10]:(D=p(E),t[9]=E,t[10]=D);let A=`${o?`Collapse`:`Expand`} ${r}`,j=o?`Collapse output`:`Expand output`,M=o&&`items-center justify-between gap-2 text-xs hover:text-foreground`,N;t[11]===M?N=t[12]:(N=p(`flex w-full min-w-0 rounded px-2.5 py-1 text-left focus-visible:outline-2 focus-visible:outline-ring`,M),t[11]=M,t[12]=N);let P;t[13]===o?P=t[14]:(P=()=>{c(!o),u(!0)},t[13]=o,t[14]=P);let F=o?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(`span`,{className:`leading-5`,children:`Logs`}),(0,V.jsx)(y,{className:`size-3.5 shrink-0`,"aria-hidden":!0})]}):(0,V.jsx)(`span`,{className:p(`min-w-0 flex-1 font-mono text-[11px] leading-5`,h.length>1&&`[mask-image:linear-gradient(to_bottom,transparent,#000_70%)]`),"aria-hidden":!0,children:h.slice(-3).map((e,t)=>(0,V.jsx)(`span`,{className:p(`block truncate`,g),children:e||`\xA0`},t))}),I;t[15]!==o||t[16]!==m||t[17]!==A||t[18]!==j||t[19]!==N||t[20]!==P||t[21]!==F?(I=(0,V.jsx)(`button`,{ref:f,type:`button`,"aria-label":A,"aria-expanded":o,"aria-controls":m,title:j,className:N,onClick:P,children:F}),t[15]=o,t[16]=m,t[17]=A,t[18]=j,t[19]=N,t[20]=P,t[21]=F,t[22]=I):I=t[22];let L;t[23]!==o||t[24]!==r||t[25]!==n?(L=o&&(0,V.jsx)(S,{value:n,ariaLabel:`Copy ${r}`,tooltip:`Copy output`,className:`size-3.5`,buttonClassName:`size-6 shrink-0 flex items-center justify-center rounded hover:bg-accent focus-visible:outline-2 focus-visible:outline-ring`}),t[23]=o,t[24]=r,t[25]=n,t[26]=L):L=t[26];let R;t[27]!==I||t[28]!==L||t[29]!==D?(R=(0,V.jsxs)(`div`,{className:D,children:[I,L]}),t[27]=I,t[28]=L,t[29]=D,t[30]=R):R=t[30];let z=!o,B;t[31]===Symbol.for(`react.memo_cache_sentinel`)?(B=e=>{let t=e.currentTarget;u(!H(t)&&t.scrollHeight-t.scrollTop-t.clientHeight<12)},t[31]=B):B=t[31];let U;t[32]!==r||t[33]!==m||t[34]!==z?(U=(0,V.jsx)(`pre`,{id:m,ref:d,hidden:z,tabIndex:0,"aria-label":r,className:`max-h-48 overflow-auto overscroll-contain whitespace-pre px-2.5 pb-2.5 font-mono text-[11px] leading-5 scrollbar-thin focus-visible:outline-2 focus-visible:outline-ring`,onScroll:B}),t[32]=r,t[33]=m,t[34]=z,t[35]=U):U=t[35];let W;t[36]!==o||t[37]!==l?(W=o&&!l&&(0,V.jsxs)(`button`,{type:`button`,className:`absolute bottom-2 left-1/2 -translate-x-1/2 flex items-center gap-1 whitespace-nowrap rounded-full border bg-background px-2 py-1 text-xs shadow-xs hover:text-foreground focus-visible:outline-2 focus-visible:outline-ring`,onClick:()=>{let e=d.current;e&&(H(e)&&e.ownerDocument.getSelection()?.removeAllRanges(),e.focus({preventScroll:!0})),u(!0)},children:[(0,V.jsx)(_,{className:`size-3`,"aria-hidden":!0}),`Jump to latest`]}),t[36]=o,t[37]=l,t[38]=W):W=t[38];let G;return t[39]!==R||t[40]!==U||t[41]!==W||t[42]!==T?(G=(0,V.jsxs)(`div`,{className:T,children:[R,U,W]}),t[39]=R,t[40]=U,t[41]=W,t[42]=T,t[43]=G):G=t[43],G}var W=[{phase:`preparing-environment`,titles:{complete:`Environment prepared`,failed:`Environment setup failed`,pending:`Preparing environment`,waiting:`Prepare environment`},descriptions:{complete:`Python and dependencies are available.`,failed:`Setup could not finish.`,pending:`Set up Python and dependencies.`,waiting:`Set up Python and dependencies.`}},{phase:`starting-kernel`,titles:{complete:`Kernel started`,failed:`Kernel failed to start`,pending:`Starting kernel`,waiting:`Start kernel`},descriptions:{complete:`The notebook is ready to run.`,failed:`The kernel could not connect.`,pending:`Connecting to this notebook.`,waiting:`After the environment is ready.`}}];function G(e){let t=(0,k.c)(5),{phase:n,state:i}=e,a=r(j),o=r(f),s=n===`preparing-environment`,c=s?a?.logs.environment??``:o?.phase===n?o.logs:``,l=a?.operation_id,u=s?`environment preparation output`:`kernel startup output`,d;return t[0]!==c||t[1]!==i||t[2]!==l||t[3]!==u?(d=(0,V.jsx)(U,{logs:c,state:i,label:u},l),t[0]=c,t[1]=i,t[2]=l,t[3]=u,t[4]=d):d=t[4],d}function K(e){let t=(0,k.c)(10),{notice:n}=e,r;t[0]===n.title?r=t[1]:(r=(0,V.jsx)(`output`,{className:`sr-only`,children:n.title}),t[0]=n.title,t[1]=r);let i=n.ready?`Your notebook is ready`:`Getting your notebook ready`,a;t[2]===i?a=t[3]:(a=(0,V.jsx)(`h2`,{className:`text-foreground font-heading text-2xl leading-8 tracking-tight font-normal`,children:i}),t[2]=i,t[3]=a);let o=n.ready?`Your environment and kernel are ready.`:n.pending?`Preparing Python and dependencies for this notebook.`:`Review the setup details below to continue.`,s;t[4]===o?s=t[5]:(s=(0,V.jsx)(`p`,{className:`text-muted-foreground mt-3 text-sm leading-6`,children:o}),t[4]=o,t[5]=s);let c;return t[6]!==r||t[7]!==a||t[8]!==s?(c=(0,V.jsxs)(`header`,{children:[r,a,s]}),t[6]=r,t[7]=a,t[8]=s,t[9]=c):c=t[9],c}function q(e){let t=(0,k.c)(3),{notice:n}=e;if(n.ready){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,V.jsx)(v,{className:`size-4 shrink-0 text-(--grass-11)`,"aria-hidden":!0}),t[0]=e):e=t[0],e}if(n.pending){let e;return t[1]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,V.jsx)(b,{className:`size-4 shrink-0 motion-reduce:animate-none`,"aria-hidden":!0}),t[1]=e):e=t[1],e}let r;return t[2]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,V.jsx)(a,{className:`size-4 shrink-0 text-(--red-11)`,"aria-hidden":!0}),t[2]=r):r=t[2],r}function J(e){let t=(0,k.c)(14),{notice:n,surface:r}=e,i;t[0]!==n||t[1]!==r?(i=r===`notebook`&&(0,V.jsx)(K,{notice:n}),t[0]=n,t[1]=r,t[2]=i):i=t[2];let a=r===`notebook`&&`mt-8`,o;t[3]===a?o=t[4]:(o=p(`space-y-6`,a),t[3]=a,t[4]=o);let s;t[5]!==n||t[6]!==r?(s=W.map((e,t)=>{let{phase:i,titles:a,descriptions:o}=e,s=n.ready||t===0&&n.phase===`starting-kernel`,c=!n.ready&&n.phase===i,l=c&&!n.pending,u=s?`complete`:l?`failed`:c?`pending`:`waiting`;return(0,V.jsxs)(`li`,{"aria-current":c?`step`:void 0,className:`relative flex items-start gap-3`,children:[t===0&&(0,V.jsx)(`span`,{"aria-hidden":!0,className:`absolute left-2 top-6 -bottom-4 border-l border-border`}),(0,V.jsx)(`span`,{className:p(`mt-0.5`,s?`text-(--grass-11)`:`text-muted-foreground`),children:s?(0,V.jsx)(v,{className:`size-4`,"aria-hidden":!0}):c?(0,V.jsx)(q,{notice:n}):(0,V.jsx)(h,{className:`size-4 text-muted-foreground/50`,"aria-hidden":!0})}),(0,V.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,V.jsx)(`div`,{className:p(`text-sm`,l?`text-(--red-11)`:s||c?`text-foreground`:`text-muted-foreground`),children:a[u]}),(0,V.jsx)(`p`,{className:`mt-1 text-xs text-muted-foreground`,children:o[u]}),r===`sidebar`&&(0,V.jsx)(G,{phase:i,state:l?`failed`:c?`running`:`succeeded`})]})]},i)}),t[5]=n,t[6]=r,t[7]=s):s=t[7];let c;t[8]!==o||t[9]!==s?(c=(0,V.jsx)(`ol`,{className:o,"aria-label":`Notebook startup stages`,children:s}),t[8]=o,t[9]=s,t[10]=c):c=t[10];let l;return t[11]!==i||t[12]!==c?(l=(0,V.jsxs)(V.Fragment,{children:[i,c]}),t[11]=i,t[12]=c,t[13]=l):l=t[13],l}function Y(e){let t=(0,k.c)(2),{error:n}=e,r;return t[0]===n?r=t[1]:(r=(0,V.jsx)(`pre`,{tabIndex:0,"aria-label":`Error details`,className:`mt-3 p-3 rounded border bg-muted/30 text-xs text-muted-foreground whitespace-pre min-w-0 max-w-full max-h-52 overflow-auto`,children:n}),t[0]=n,t[1]=r),r}function X(e){let t=(0,k.c)(23),{notice:n}=e,i=r(A),a=r(F),o=r(P);if(n.pending||n.ready)return null;let s;t[0]===n.description?s=t[1]:(s=(0,V.jsx)(`p`,{className:`mt-2 text-foreground`,children:n.description}),t[0]=n.description,t[1]=s);let c;t[2]===n.error?c=t[3]:(c=n.error&&(0,V.jsx)(Y,{error:n.error}),t[2]=n.error,t[3]=c);let l=!a||i?.manifest==null,u;t[4]===a?u=t[5]:(u=()=>a?.editManifest(),t[4]=a,t[5]=u);let d;t[6]!==l||t[7]!==u?(d=(0,V.jsx)(g,{variant:`outline`,size:`xs`,disabled:l,onClick:u,children:`Edit manifest…`}),t[6]=l,t[7]=u,t[8]=d):d=t[8];let f;t[9]!==a||t[10]!==n.kind||t[11]!==o?(f=n.kind===`sync`&&o.kind===`restart-required`?(0,V.jsx)(Z,{}):(0,V.jsx)(g,{variant:`text`,size:`xs`,disabled:!a,onClick:()=>a?.sync(),children:`Retry sync`}),t[9]=a,t[10]=n.kind,t[11]=o,t[12]=f):f=t[12];let p;t[13]!==d||t[14]!==f?(p=(0,V.jsxs)(`div`,{className:`flex items-center gap-2 mt-3`,children:[d,f]}),t[13]=d,t[14]=f,t[15]=p):p=t[15];let m;t[16]===i?.manifest?m=t[17]:(m=i?.manifest==null&&(0,V.jsx)(`p`,{className:`mt-3 text-xs text-muted-foreground`,children:`A manifest will be available once this new notebook starts.`}),t[16]=i?.manifest,t[17]=m);let h;return t[18]!==s||t[19]!==c||t[20]!==p||t[21]!==m?(h=(0,V.jsxs)(V.Fragment,{children:[s,c,p,m]}),t[18]=s,t[19]=c,t[20]=p,t[21]=m,t[22]=h):h=t[22],h}function Z(){let e=(0,k.c)(2),t=C(),n;return e[0]===t?n=e[1]:(n=(0,V.jsx)(g,{variant:`text`,size:`xs`,onClick:t,children:`Restart Kernel`}),e[0]=t,e[1]=n),n}function Q(e){let t=(0,k.c)(8),{notice:n}=e,r=n.kind===`startup`&&(n.ready||n.phase===`preparing-environment`||n.phase===`starting-kernel`),i;t[0]!==n||t[1]!==r?(i=r?(0,V.jsx)(J,{notice:n,surface:`sidebar`}):(0,V.jsxs)(`div`,{className:`flex items-center gap-2`,role:`status`,children:[(0,V.jsx)(q,{notice:n}),(0,V.jsx)(`h2`,{children:n.title})]}),t[0]=n,t[1]=r,t[2]=i):i=t[2];let a;t[3]===n?a=t[4]:(a=(0,V.jsx)(X,{notice:n}),t[3]=n,t[4]=a);let o;return t[5]!==i||t[6]!==a?(o=(0,V.jsxs)(`div`,{className:`min-w-0 text-sm`,children:[i,a]}),t[5]=i,t[6]=a,t[7]=o):o=t[7],o}function $(e){let t=(0,k.c)(12),{notice:n}=e,r;t[0]===n?r=t[1]:(r=(0,V.jsx)(q,{notice:n}),t[0]=n,t[1]=r);let i;t[2]===n.title?i=t[3]:(i=(0,V.jsx)(`span`,{children:n.title}),t[2]=n.title,t[3]=i);let a;t[4]!==r||t[5]!==i?(a=(0,V.jsxs)(`output`,{className:`flex items-center gap-2 text-xs`,children:[r,i]}),t[4]=r,t[5]=i,t[6]=a):a=t[6];let o;t[7]===n?o=t[8]:(o=(0,V.jsx)(X,{notice:n}),t[7]=n,t[8]=o);let s;return t[9]!==a||t[10]!==o?(s=(0,V.jsxs)(`div`,{className:`mb-5 text-sm`,children:[a,o]}),t[9]=a,t[10]=o,t[11]=s):s=t[11],s}function ee(e){let t=(0,k.c)(9),{notice:n}=e,i=r(M);if(!i&&!n)return null;let a;t[0]===n?a=t[1]:(a=n?(0,V.jsx)($,{notice:n}):(0,V.jsx)(`p`,{className:`text-sm`,children:`Environment synced`}),t[0]=n,t[1]=a);let o=i?.operation_id,s=i?.logs.environment??``,c=i?.status.kind===`running`?`running`:i?.status.kind===`succeeded`?`succeeded`:`failed`,l;t[2]!==o||t[3]!==s||t[4]!==c?(l=(0,V.jsx)(U,{logs:s,state:c,label:`sandbox sync output`},o),t[2]=o,t[3]=s,t[4]=c,t[5]=l):l=t[5];let u;return t[6]!==a||t[7]!==l?(u=(0,V.jsxs)(`div`,{className:`mt-5 min-w-0`,children:[a,l]}),t[6]=a,t[7]=l,t[8]=u):u=t[8],u}function te(){let e=(0,k.c)(29),n=w(),i=r(u),a=r(I),o=r(j),s=r(f),[c,l]=t(B),d;e[0]!==a||e[1]!==o||e[2]!==s?(d=a?.kind===`startup`?{...a,ready:!1}:o||s?{kind:`startup`,sandbox:!0,title:`Notebook started`,description:`The notebook is ready to run.`,pending:!1,ready:!0,error:null}:null,e[0]=a,e[1]=o,e[2]=s,e[3]=d):d=e[3];let m=d,h=`sandbox-details-${n}`,g=!c,_=i?`shrink-0 max-h-[65%] border-b`:`flex-1`,v;e[4]===_?v=e[5]:(v=p(`min-w-0 overflow-auto p-4`,_),e[4]=_,e[5]=v);let y,b;e[6]===l?(y=e[7],b=e[8]):(y=()=>l(!0),b=()=>l(!0),e[6]=l,e[7]=y,e[8]=b);let x;e[9]===a?x=e[10]:(x=a?.kind===`connection`&&(0,V.jsx)($,{notice:{...a,ready:!1}}),e[9]=a,e[10]=x);let S;e[11]===m?S=e[12]:(S=m&&(0,V.jsx)(Q,{notice:m}),e[11]=m,e[12]=S);let C;e[13]!==i||e[14]!==a?(C=i&&(0,V.jsx)(ee,{notice:a?.kind===`sync`?{...a,ready:!1}:null}),e[13]=i,e[14]=a,e[15]=C):C=e[15];let T;e[16]!==i||e[17]!==a?(T=i&&(!a||a.pending)&&(0,V.jsx)(ne,{}),e[16]=i,e[17]=a,e[18]=T):T=e[18];let E;return e[19]!==h||e[20]!==T||e[21]!==g||e[22]!==v||e[23]!==y||e[24]!==b||e[25]!==x||e[26]!==S||e[27]!==C?(E=(0,V.jsxs)(`section`,{id:h,"aria-label":`Sandbox details`,hidden:g,className:v,onPointerDownCapture:y,onFocusCapture:b,children:[x,S,C,T]}),e[19]=h,e[20]=T,e[21]=g,e[22]=v,e[23]=y,e[24]=b,e[25]=x,e[26]=S,e[27]=C,e[28]=E):E=e[28],E}function ne(){let e=(0,k.c)(14),t=r(A),n=r(F),i=r(P).kind===`running`||!n,a;e[0]===n?a=e[1]:(a=()=>n?.sync(),e[0]=n,e[1]=a);let o;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,V.jsx)(x,{className:`size-3`,"aria-hidden":!0}),e[2]=o):o=e[2];let s;e[3]!==i||e[4]!==a?(s=(0,V.jsxs)(g,{variant:`text`,size:`xs`,className:`text-muted-foreground gap-1.5 p-0`,disabled:i,onClick:a,children:[o,`Sync`]}),e[3]=i,e[4]=a,e[5]=s):s=e[5];let c=!n||t?.manifest==null,l;e[6]===n?l=e[7]:(l=()=>n?.editManifest(),e[6]=n,e[7]=l);let u;e[8]!==c||e[9]!==l?(u=(0,V.jsx)(g,{variant:`text`,size:`xs`,className:`text-muted-foreground p-0`,disabled:c,onClick:l,children:`Edit manifest…`}),e[8]=c,e[9]=l,e[10]=u):u=e[10];let d;return e[11]!==s||e[12]!==u?(d=(0,V.jsxs)(`div`,{className:`flex items-center gap-4 mt-5 border-t pt-3`,children:[s,u]}),e[11]=s,e[12]=u,e[13]=d):d=e[13],d}export{B as a,F as c,J as i,A as l,Y as n,L as o,q as r,I as s,te as t,P as u};
@@ -1 +1 @@
1
- import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{c as t,f as n,l as ee,t as r,u as te}from"./useEvent-Dc9HkKI2.js";import{t as i}from"./react-CUdNIagt.js";import{D as ne,I as re,Qr as a,Rt as ie,So as o,xo as ae}from"./cells-DIjn-wIE.js";import{t as s}from"./compiler-runtime-BQ9S8nyo.js";import{C as oe}from"./config-BdH5RvM0.js";import{_ as se}from"./useEventListener-CUPWI_1X.js";import{n as ce}from"./utils-B4K466FK.js";import{O as c}from"./config-D7CP5wR5.js";import{t as le}from"./cn-ldLVeaqm.js";import{t as l}from"./jsx-runtime-B74pBk57.js";import{n as ue}from"./JsonOutput-BdpXVhxV.js";import{t as u}from"./tooltip-CamoSiGF.js";import{t as d}from"./button-qFeU84ax.js";import{t as f}from"./createLucideIcon-rHn2EdoM.js";import{l as de}from"./layout-C8pvkupF.js";import{n as fe,t as pe}from"./LazyAnyLanguageCodeMirror-91eGNw7v.js";import{u as me}from"./toDate-BbJ1_N2T.js";import{t as he}from"./cell-editor-CEABNkmY.js";import{t as ge}from"./spinner-CGdRKCnw.js";import{i as _e}from"./useDeleteCell-BJ6lgiBJ.js";import{r as ve}from"./requests-yTHMxhVa.js";import{r as ye}from"./useTheme-CnWB5G1X.js";import{n as be,r as xe,t as Se}from"./react-resizable-panels.browser.esm-BL2E7f5c.js";import{a as Ce}from"./renderShortcut-BoDtLl9Q.js";import{n as we,r as Te}from"./panel-context-BPaQeOuV.js";import{t as Ee}from"./kiosk-mode-Cvh6wszH.js";var De=f(`eraser`,[[`path`,{d:`M21 21H8a2 2 0 0 1-1.42-.587l-3.994-3.999a2 2 0 0 1 0-2.828l10-10a2 2 0 0 1 2.829 0l5.999 6a2 2 0 0 1 0 2.828L12.834 21`,key:`g5wo59`}],[`path`,{d:`m5.082 11.09 8.828 8.828`,key:`1wx5vj`}]]),Oe=f(`history`,[[`path`,{d:`M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8`,key:`1357e3`}],[`path`,{d:`M3 3v5h5`,key:`1xhq8a`}],[`path`,{d:`M12 7v5l4 2`,key:`1fdv2h`}]]),p=e(i(),1),ke=s(),m=15,h=c(`marimo:scratchpadHistory:v1`,[],a),Ae=n(!1),je=n(null,(e,t,n)=>{if(n=n.trim(),!n)return;let ee=e(h);t(h,[n,...ee.filter(e=>e!==n)].slice(0,m))}),g=l(),Me={hide_code:!1,disabled:!1},_=()=>{let e=(0,ke.c)(60),n=re(),[i]=oe(),{theme:a}=ye(),s=(0,p.useRef)(null),c=ie(),{createNewCell:l,updateCellCode:f}=ne(),{sendRunScratchpad:m}=ve(),_=we(),v=Te(),y=n.cellRuntime[o],b=y?.output,x=y?.status,S=y?.consoleOutputs,C=n.cellData.__scratch__?.code??``,w=te(je),[T,E]=t(Ae),D=ee(h),O;e[0]!==w||e[1]!==C||e[2]!==m?(O=()=>{m({code:C}),w(C)},e[0]=w,e[1]=C,e[2]=m,e[3]=O):O=e[3];let k=r(O),A;e[4]!==C||e[5]!==l||e[6]!==c?(A=()=>{C.trim()&&l({code:C,before:!1,cellId:c??`__end__`})},e[4]=C,e[5]=l,e[6]=c,e[7]=A):A=e[7];let j=r(A),M;e[8]!==m||e[9]!==f?(M=()=>{f({cellId:o,code:``,formattingChange:!1}),m({code:``});let e=s.current;e&&e.dispatch({changes:{from:0,to:e.state.doc.length,insert:``}})},e[8]=m,e[9]=f,e[10]=M):M=e[10];let N=r(M),P;e[11]!==E||e[12]!==f?(P=e=>{E(!1),f({cellId:o,code:e,formattingChange:!1});let t=s.current;t&&t.dispatch({changes:{from:0,to:t.state.doc.length,insert:e}})},e[11]=E,e[12]=f,e[13]=P):P=e[13];let F=r(P),[I,Ne]=(0,p.useState)(),L;e[14]!==F||e[15]!==D||e[16]!==T||e[17]!==a?(L=()=>T?(0,g.jsx)(`div`,{className:`absolute inset-0 z-100 bg-background p-3 border-none overflow-auto`,children:(0,g.jsx)(`div`,{className:`overflow-auto flex flex-col gap-3`,children:D.map((e,t)=>(0,g.jsx)(`div`,{className:`border rounded-md hover:shadow-sm cursor-pointer hover:border-input overflow-hidden`,onClick:()=>F(e),children:(0,g.jsx)(p.Suspense,{children:(0,g.jsx)(pe,{language:`python`,theme:a,basicSetup:{highlightActiveLine:!1,highlightActiveLineGutter:!1},value:e.trim(),editable:!1,readOnly:!0})})},t))})}):null,e[14]=F,e[15]=D,e[16]=T,e[17]=a,e[18]=L):L=e[18];let R=L,z;e[19]!==N||e[20]!==j||e[21]!==k||e[22]!==D.length||e[23]!==T||e[24]!==E||e[25]!==x?(z=()=>(0,g.jsxs)(`div`,{className:`flex items-center shrink-0 border-b`,children:[(0,g.jsx)(u,{content:Ce(`cell.run`),children:(0,g.jsx)(d,{"data-testid":`scratchpad-run-button`,onClick:k,disabled:T,variant:`text`,size:`xs`,children:(0,g.jsx)(_e,{color:`var(--grass-11)`,size:16})})}),(0,g.jsx)(u,{content:`Clear code and outputs`,children:(0,g.jsx)(d,{disabled:T,size:`xs`,variant:`text`,onClick:N,children:(0,g.jsx)(De,{size:16})})}),(0,g.jsx)(Ee,{children:(0,g.jsx)(u,{content:`Insert code`,children:(0,g.jsx)(d,{disabled:T,size:`xs`,variant:`text`,onClick:j,children:(0,g.jsx)(fe,{size:16})})})}),(x===`running`||x===`queued`)&&(0,g.jsx)(ge,{className:`inline`,size:`small`}),(0,g.jsx)(`div`,{className:`flex-1`}),(0,g.jsx)(u,{content:`Toggle history`,children:(0,g.jsx)(d,{size:`xs`,variant:`text`,className:le(T&&`bg-(--sky-3) rounded-none`),onClick:()=>E(!T),disabled:D.length===0,children:(0,g.jsx)(Oe,{size:16})})}),(0,g.jsx)(u,{content:(0,g.jsx)(`span`,{className:`block max-w-prose`,children:`Use this scratchpad to experiment with code without restrictions on variable names. Variables defined here aren't saved to notebook memory, and the code is not saved in the notebook file.`}),children:(0,g.jsx)(d,{size:`xs`,variant:`text`,children:(0,g.jsx)(me,{size:16})})})]}),e[19]=N,e[20]=j,e[21]=k,e[22]=D.length,e[23]=T,e[24]=E,e[25]=x,e[26]=z):z=e[26];let B=z,Pe=_===`vertical`,V;e[27]===Symbol.for(`react.memo_cache_sentinel`)?(V=ae.create(o),e[27]=V):V=e[27];let H;e[28]===B?H=e[29]:(H=B(),e[28]=B,e[29]=H);let U;e[30]===Symbol.for(`react.memo_cache_sentinel`)?(U=e=>{s.current=e},e[30]=U):U=e[30];let W;e[31]!==C||e[32]!==k||e[33]!==I||e[34]!==a||e[35]!==i?(W=(0,g.jsx)(`div`,{className:`flex-1 overflow-auto`,children:(0,g.jsx)(he,{theme:a,showPlaceholder:!1,id:o,code:C,config:Me,status:`idle`,serializedEditorState:null,runCell:k,userConfig:i,editorViewRef:s,setEditorView:U,hidden:!1,showHiddenCode:se.NOOP,languageAdapter:I,setLanguageAdapter:Ne})}),e[31]=C,e[32]=k,e[33]=I,e[34]=a,e[35]=i,e[36]=W):W=e[36];let G;e[37]===R?G=e[38]:(G=R(),e[37]=R,e[38]=G);let K;e[39]!==G||e[40]!==H||e[41]!==W?(K=(0,g.jsx)(Se,{defaultSize:40,minSize:20,maxSize:70,children:(0,g.jsxs)(`div`,{className:`h-full flex flex-col overflow-hidden relative`,children:[H,W,G]})}),e[39]=G,e[40]=H,e[41]=W,e[42]=K):K=e[42];let q=Pe?`h-1`:`w-1`,J;e[43]===q?J=e[44]:(J=le(`bg-border hover:bg-primary/50 transition-colors`,q),e[43]=q,e[44]=J);let Y;e[45]===J?Y=e[46]:(Y=(0,g.jsx)(xe,{className:J}),e[45]=J,e[46]=Y);let X;e[47]===b?X=e[48]:(X=(0,g.jsx)(`div`,{className:`flex-1 overflow-auto`,children:(0,g.jsx)(ue,{allowExpand:!1,output:b,className:ce.outputArea,cellId:o,stale:!1,loading:!1})}),e[47]=b,e[48]=X);let Z;e[49]===S?Z=e[50]:(Z=(0,g.jsx)(`div`,{className:`overflow-auto shrink-0 max-h-[50%]`,children:(0,g.jsx)(de,{consoleOutputs:S,className:`overflow-auto`,stale:!1,interrupted:!1,cellName:`_`,onSubmitDebugger:se.NOOP,cellId:o,debuggerActive:!1})}),e[49]=S,e[50]=Z);let Q;e[51]!==X||e[52]!==Z?(Q=(0,g.jsx)(Se,{defaultSize:60,minSize:20,children:(0,g.jsxs)(`div`,{className:`h-full flex flex-col divide-y overflow-hidden`,children:[X,Z]})}),e[51]=X,e[52]=Z,e[53]=Q):Q=e[53];let $;return e[54]!==_||e[55]!==v||e[56]!==K||e[57]!==Y||e[58]!==Q?($=(0,g.jsx)(`div`,{className:`flex flex-col h-full overflow-hidden`,id:V,children:(0,g.jsxs)(be,{direction:_,className:`h-full`,children:[K,Y,Q]},v)}),e[54]=_,e[55]=v,e[56]=K,e[57]=Y,e[58]=Q,e[59]=$):$=e[59],$},v=()=>{let e=(0,ke.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,g.jsx)(_,{}),e[0]=t):t=e[0],t};export{v as default};
1
+ import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{c as t,f as n,l as ee,t as r,u as te}from"./useEvent-Dc9HkKI2.js";import{t as i}from"./react-CUdNIagt.js";import{D as ne,I as re,Qr as a,Rt as ie,So as o,xo as ae}from"./cells-Bboj_mzH.js";import{t as s}from"./compiler-runtime-BQ9S8nyo.js";import{C as oe}from"./config-BdH5RvM0.js";import{_ as se}from"./useEventListener-CUPWI_1X.js";import{n as ce}from"./utils-B4K466FK.js";import{O as c}from"./config-VEBoxYs0.js";import{t as le}from"./cn-ldLVeaqm.js";import{t as l}from"./jsx-runtime-B74pBk57.js";import{n as ue}from"./JsonOutput-Cx3AQC7R.js";import{t as u}from"./tooltip-CamoSiGF.js";import{t as d}from"./button-qFeU84ax.js";import{t as f}from"./createLucideIcon-rHn2EdoM.js";import{l as de}from"./layout-4WXAZ1eW.js";import{n as fe,t as pe}from"./LazyAnyLanguageCodeMirror-91eGNw7v.js";import{u as me}from"./toDate-BbJ1_N2T.js";import{t as he}from"./cell-editor-BNAwiIir.js";import{t as ge}from"./spinner-CGdRKCnw.js";import{i as _e}from"./useDeleteCell-DieDZaIf.js";import{r as ve}from"./requests-yTHMxhVa.js";import{r as ye}from"./useTheme-CnWB5G1X.js";import{n as be,r as xe,t as Se}from"./react-resizable-panels.browser.esm-BL2E7f5c.js";import{a as Ce}from"./renderShortcut-BoDtLl9Q.js";import{n as we,r as Te}from"./panel-context-BPaQeOuV.js";import{t as Ee}from"./kiosk-mode-CEKB1dXx.js";var De=f(`eraser`,[[`path`,{d:`M21 21H8a2 2 0 0 1-1.42-.587l-3.994-3.999a2 2 0 0 1 0-2.828l10-10a2 2 0 0 1 2.829 0l5.999 6a2 2 0 0 1 0 2.828L12.834 21`,key:`g5wo59`}],[`path`,{d:`m5.082 11.09 8.828 8.828`,key:`1wx5vj`}]]),Oe=f(`history`,[[`path`,{d:`M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8`,key:`1357e3`}],[`path`,{d:`M3 3v5h5`,key:`1xhq8a`}],[`path`,{d:`M12 7v5l4 2`,key:`1fdv2h`}]]),p=e(i(),1),ke=s(),m=15,h=c(`marimo:scratchpadHistory:v1`,[],a),Ae=n(!1),je=n(null,(e,t,n)=>{if(n=n.trim(),!n)return;let ee=e(h);t(h,[n,...ee.filter(e=>e!==n)].slice(0,m))}),g=l(),Me={hide_code:!1,disabled:!1},_=()=>{let e=(0,ke.c)(60),n=re(),[i]=oe(),{theme:a}=ye(),s=(0,p.useRef)(null),c=ie(),{createNewCell:l,updateCellCode:f}=ne(),{sendRunScratchpad:m}=ve(),_=we(),v=Te(),y=n.cellRuntime[o],b=y?.output,x=y?.status,S=y?.consoleOutputs,C=n.cellData.__scratch__?.code??``,w=te(je),[T,E]=t(Ae),D=ee(h),O;e[0]!==w||e[1]!==C||e[2]!==m?(O=()=>{m({code:C}),w(C)},e[0]=w,e[1]=C,e[2]=m,e[3]=O):O=e[3];let k=r(O),A;e[4]!==C||e[5]!==l||e[6]!==c?(A=()=>{C.trim()&&l({code:C,before:!1,cellId:c??`__end__`})},e[4]=C,e[5]=l,e[6]=c,e[7]=A):A=e[7];let j=r(A),M;e[8]!==m||e[9]!==f?(M=()=>{f({cellId:o,code:``,formattingChange:!1}),m({code:``});let e=s.current;e&&e.dispatch({changes:{from:0,to:e.state.doc.length,insert:``}})},e[8]=m,e[9]=f,e[10]=M):M=e[10];let N=r(M),P;e[11]!==E||e[12]!==f?(P=e=>{E(!1),f({cellId:o,code:e,formattingChange:!1});let t=s.current;t&&t.dispatch({changes:{from:0,to:t.state.doc.length,insert:e}})},e[11]=E,e[12]=f,e[13]=P):P=e[13];let F=r(P),[I,Ne]=(0,p.useState)(),L;e[14]!==F||e[15]!==D||e[16]!==T||e[17]!==a?(L=()=>T?(0,g.jsx)(`div`,{className:`absolute inset-0 z-100 bg-background p-3 border-none overflow-auto`,children:(0,g.jsx)(`div`,{className:`overflow-auto flex flex-col gap-3`,children:D.map((e,t)=>(0,g.jsx)(`div`,{className:`border rounded-md hover:shadow-sm cursor-pointer hover:border-input overflow-hidden`,onClick:()=>F(e),children:(0,g.jsx)(p.Suspense,{children:(0,g.jsx)(pe,{language:`python`,theme:a,basicSetup:{highlightActiveLine:!1,highlightActiveLineGutter:!1},value:e.trim(),editable:!1,readOnly:!0})})},t))})}):null,e[14]=F,e[15]=D,e[16]=T,e[17]=a,e[18]=L):L=e[18];let R=L,z;e[19]!==N||e[20]!==j||e[21]!==k||e[22]!==D.length||e[23]!==T||e[24]!==E||e[25]!==x?(z=()=>(0,g.jsxs)(`div`,{className:`flex items-center shrink-0 border-b`,children:[(0,g.jsx)(u,{content:Ce(`cell.run`),children:(0,g.jsx)(d,{"data-testid":`scratchpad-run-button`,onClick:k,disabled:T,variant:`text`,size:`xs`,children:(0,g.jsx)(_e,{color:`var(--grass-11)`,size:16})})}),(0,g.jsx)(u,{content:`Clear code and outputs`,children:(0,g.jsx)(d,{disabled:T,size:`xs`,variant:`text`,onClick:N,children:(0,g.jsx)(De,{size:16})})}),(0,g.jsx)(Ee,{children:(0,g.jsx)(u,{content:`Insert code`,children:(0,g.jsx)(d,{disabled:T,size:`xs`,variant:`text`,onClick:j,children:(0,g.jsx)(fe,{size:16})})})}),(x===`running`||x===`queued`)&&(0,g.jsx)(ge,{className:`inline`,size:`small`}),(0,g.jsx)(`div`,{className:`flex-1`}),(0,g.jsx)(u,{content:`Toggle history`,children:(0,g.jsx)(d,{size:`xs`,variant:`text`,className:le(T&&`bg-(--sky-3) rounded-none`),onClick:()=>E(!T),disabled:D.length===0,children:(0,g.jsx)(Oe,{size:16})})}),(0,g.jsx)(u,{content:(0,g.jsx)(`span`,{className:`block max-w-prose`,children:`Use this scratchpad to experiment with code without restrictions on variable names. Variables defined here aren't saved to notebook memory, and the code is not saved in the notebook file.`}),children:(0,g.jsx)(d,{size:`xs`,variant:`text`,children:(0,g.jsx)(me,{size:16})})})]}),e[19]=N,e[20]=j,e[21]=k,e[22]=D.length,e[23]=T,e[24]=E,e[25]=x,e[26]=z):z=e[26];let B=z,Pe=_===`vertical`,V;e[27]===Symbol.for(`react.memo_cache_sentinel`)?(V=ae.create(o),e[27]=V):V=e[27];let H;e[28]===B?H=e[29]:(H=B(),e[28]=B,e[29]=H);let U;e[30]===Symbol.for(`react.memo_cache_sentinel`)?(U=e=>{s.current=e},e[30]=U):U=e[30];let W;e[31]!==C||e[32]!==k||e[33]!==I||e[34]!==a||e[35]!==i?(W=(0,g.jsx)(`div`,{className:`flex-1 overflow-auto`,children:(0,g.jsx)(he,{theme:a,showPlaceholder:!1,id:o,code:C,config:Me,status:`idle`,serializedEditorState:null,runCell:k,userConfig:i,editorViewRef:s,setEditorView:U,hidden:!1,showHiddenCode:se.NOOP,languageAdapter:I,setLanguageAdapter:Ne})}),e[31]=C,e[32]=k,e[33]=I,e[34]=a,e[35]=i,e[36]=W):W=e[36];let G;e[37]===R?G=e[38]:(G=R(),e[37]=R,e[38]=G);let K;e[39]!==G||e[40]!==H||e[41]!==W?(K=(0,g.jsx)(Se,{defaultSize:40,minSize:20,maxSize:70,children:(0,g.jsxs)(`div`,{className:`h-full flex flex-col overflow-hidden relative`,children:[H,W,G]})}),e[39]=G,e[40]=H,e[41]=W,e[42]=K):K=e[42];let q=Pe?`h-1`:`w-1`,J;e[43]===q?J=e[44]:(J=le(`bg-border hover:bg-primary/50 transition-colors`,q),e[43]=q,e[44]=J);let Y;e[45]===J?Y=e[46]:(Y=(0,g.jsx)(xe,{className:J}),e[45]=J,e[46]=Y);let X;e[47]===b?X=e[48]:(X=(0,g.jsx)(`div`,{className:`flex-1 overflow-auto`,children:(0,g.jsx)(ue,{allowExpand:!1,output:b,className:ce.outputArea,cellId:o,stale:!1,loading:!1})}),e[47]=b,e[48]=X);let Z;e[49]===S?Z=e[50]:(Z=(0,g.jsx)(`div`,{className:`overflow-auto shrink-0 max-h-[50%]`,children:(0,g.jsx)(de,{consoleOutputs:S,className:`overflow-auto`,stale:!1,interrupted:!1,cellName:`_`,onSubmitDebugger:se.NOOP,cellId:o,debuggerActive:!1})}),e[49]=S,e[50]=Z);let Q;e[51]!==X||e[52]!==Z?(Q=(0,g.jsx)(Se,{defaultSize:60,minSize:20,children:(0,g.jsxs)(`div`,{className:`h-full flex flex-col divide-y overflow-hidden`,children:[X,Z]})}),e[51]=X,e[52]=Z,e[53]=Q):Q=e[53];let $;return e[54]!==_||e[55]!==v||e[56]!==K||e[57]!==Y||e[58]!==Q?($=(0,g.jsx)(`div`,{className:`flex flex-col h-full overflow-hidden`,id:V,children:(0,g.jsxs)(be,{direction:_,className:`h-full`,children:[K,Y,Q]},v)}),e[54]=_,e[55]=v,e[56]=K,e[57]=Y,e[58]=Q,e[59]=$):$=e[59],$},v=()=>{let e=(0,ke.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,g.jsx)(_,{}),e[0]=t):t=e[0],t};export{v as default};
@@ -1 +1 @@
1
- import{t as e}from"./rolldown-runtime-B0Z9INg1.js";import{f as t,l as n,r}from"./useEvent-Dc9HkKI2.js";import{t as i}from"./compiler-runtime-BQ9S8nyo.js";import{g as a}from"./useEventListener-CUPWI_1X.js";import{t as o}from"./invariant-Ci2dTZ72.js";import{i as s,t as c}from"./utils-B4K466FK.js";function l(e,t){if(e==null)throw Error(t||`Expected value but got ${e}`)}var u=i();function d(){let e=r.get(h);return l(e,`internal-error: initial mode not found`),o(e!==`present`,`internal-error: initial mode cannot be 'present'`),e}function f(e){return e===`read`||e===`home`||e===`gallery`?e:e===`edit`?`present`:`edit`}async function p(e){let t=r.get(m);if(t.mode!==`edit`){await e();return}r.set(m,{...t,mode:`present`});try{await new Promise(e=>setTimeout(e,100)),await new Promise(e=>requestAnimationFrame(e)),await new Promise(e=>requestAnimationFrame(e)),await e()}finally{r.set(m,t)}}var m=t({mode:c()?`read`:`not-set`,cellAnchor:null}),h=t(void 0);function g(){let e=r.get(h);return e!==`home`&&e!==`gallery`}var _=t(!1);function v(){let e=(0,u.c)(1),{mode:t}=n(m),r=n(_),i;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=new URLSearchParams(window.location.search).get(s.kiosk),e[0]=i):i=e[0],t!==`read`&&!r&&i!==`true`}var y=e((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.toBig=e.shrSL=e.shrSH=e.rotrSL=e.rotrSH=e.rotrBL=e.rotrBH=e.rotr32L=e.rotr32H=e.rotlSL=e.rotlSH=e.rotlBL=e.rotlBH=e.add5L=e.add5H=e.add4L=e.add4H=e.add3L=e.add3H=void 0,e.add=v,e.fromBig=r,e.split=i;var t=BigInt(2**32-1),n=BigInt(32);function r(e,r=!1){return r?{h:Number(e&t),l:Number(e>>n&t)}:{h:Number(e>>n&t)|0,l:Number(e&t)|0}}function i(e,t=!1){let n=e.length,i=new Uint32Array(n),a=new Uint32Array(n);for(let o=0;o<n;o++){let{h:n,l:s}=r(e[o],t);[i[o],a[o]]=[n,s]}return[i,a]}var a=(e,t)=>BigInt(e>>>0)<<n|BigInt(t>>>0);e.toBig=a;var o=(e,t,n)=>e>>>n;e.shrSH=o;var s=(e,t,n)=>e<<32-n|t>>>n;e.shrSL=s;var c=(e,t,n)=>e>>>n|t<<32-n;e.rotrSH=c;var l=(e,t,n)=>e<<32-n|t>>>n;e.rotrSL=l;var u=(e,t,n)=>e<<64-n|t>>>n-32;e.rotrBH=u;var d=(e,t,n)=>e>>>n-32|t<<64-n;e.rotrBL=d;var f=(e,t)=>t;e.rotr32H=f;var p=(e,t)=>e;e.rotr32L=p;var m=(e,t,n)=>e<<n|t>>>32-n;e.rotlSH=m;var h=(e,t,n)=>t<<n|e>>>32-n;e.rotlSL=h;var g=(e,t,n)=>t<<n-32|e>>>64-n;e.rotlBH=g;var _=(e,t,n)=>e<<n-32|t>>>64-n;e.rotlBL=_;function v(e,t,n,r){let i=(t>>>0)+(r>>>0);return{h:e+n+(i/2**32|0)|0,l:i|0}}var y=(e,t,n)=>(e>>>0)+(t>>>0)+(n>>>0);e.add3L=y;var b=(e,t,n,r)=>t+n+r+(e/2**32|0)|0;e.add3H=b;var x=(e,t,n,r)=>(e>>>0)+(t>>>0)+(n>>>0)+(r>>>0);e.add4L=x;var S=(e,t,n,r,i)=>t+n+r+i+(e/2**32|0)|0;e.add4H=S;var C=(e,t,n,r,i)=>(e>>>0)+(t>>>0)+(n>>>0)+(r>>>0)+(i>>>0);e.add5L=C;var w=(e,t,n,r,i,a)=>t+n+r+i+a+(e/2**32|0)|0;e.add5H=w,e.default={fromBig:r,split:i,toBig:a,shrSH:o,shrSL:s,rotrSH:c,rotrSL:l,rotrBH:u,rotrBL:d,rotr32H:f,rotr32L:p,rotlSH:m,rotlSL:h,rotlBH:g,rotlBL:_,add:v,add3L:y,add3H:b,add4L:x,add4H:S,add5H:w,add5L:C}})),b=e((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.crypto=void 0,e.crypto=typeof globalThis==`object`&&`crypto`in globalThis?globalThis.crypto:void 0})),x=e((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.wrapXOFConstructorWithOpts=e.wrapConstructorWithOpts=e.wrapConstructor=e.Hash=e.nextTick=e.swap32IfBE=e.byteSwapIfBE=e.swap8IfBE=e.isLE=void 0,e.isBytes=n,e.anumber=r,e.abytes=i,e.ahash=a,e.aexists=o,e.aoutput=s,e.u8=c,e.u32=l,e.clean=u,e.createView=d,e.rotr=f,e.rotl=p,e.byteSwap=m,e.byteSwap32=h,e.bytesToHex=v,e.hexToBytes=S,e.asyncLoop=C,e.utf8ToBytes=w,e.bytesToUtf8=T,e.toBytes=E,e.kdfInputToBytes=D,e.concatBytes=O,e.checkOpts=k,e.createHasher=A,e.createOptHasher=j,e.createXOFer=M,e.randomBytes=N;var t=b();function n(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name===`Uint8Array`}function r(e){if(!Number.isSafeInteger(e)||e<0)throw Error(`positive integer expected, got `+e)}function i(e,...t){if(!n(e))throw Error(`Uint8Array expected`);if(t.length>0&&!t.includes(e.length))throw Error(`Uint8Array expected of length `+t+`, got length=`+e.length)}function a(e){if(typeof e!=`function`||typeof e.create!=`function`)throw Error(`Hash should be wrapped by utils.createHasher`);r(e.outputLen),r(e.blockLen)}function o(e,t=!0){if(e.destroyed)throw Error(`Hash instance has been destroyed`);if(t&&e.finished)throw Error(`Hash#digest() has already been called`)}function s(e,t){i(e);let n=t.outputLen;if(e.length<n)throw Error(`digestInto() expects output buffer of length at least `+n)}function c(e){return new Uint8Array(e.buffer,e.byteOffset,e.byteLength)}function l(e){return new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4))}function u(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function d(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function f(e,t){return e<<32-t|e>>>t}function p(e,t){return e<<t|e>>>32-t>>>0}e.isLE=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function m(e){return e<<24&4278190080|e<<8&16711680|e>>>8&65280|e>>>24&255}e.swap8IfBE=e.isLE?e=>e:e=>m(e),e.byteSwapIfBE=e.swap8IfBE;function h(e){for(let t=0;t<e.length;t++)e[t]=m(e[t]);return e}e.swap32IfBE=e.isLE?e=>e:h;var g=typeof Uint8Array.from([]).toHex==`function`&&typeof Uint8Array.fromHex==`function`,_=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,`0`));function v(e){if(i(e),g)return e.toHex();let t=``;for(let n=0;n<e.length;n++)t+=_[e[n]];return t}var y={_0:48,_9:57,A:65,F:70,a:97,f:102};function x(e){if(e>=y._0&&e<=y._9)return e-y._0;if(e>=y.A&&e<=y.F)return e-(y.A-10);if(e>=y.a&&e<=y.f)return e-(y.a-10)}function S(e){if(typeof e!=`string`)throw Error(`hex string expected, got `+typeof e);if(g)return Uint8Array.fromHex(e);let t=e.length,n=t/2;if(t%2)throw Error(`hex string expected, got unpadded hex of length `+t);let r=new Uint8Array(n);for(let t=0,i=0;t<n;t++,i+=2){let n=x(e.charCodeAt(i)),a=x(e.charCodeAt(i+1));if(n===void 0||a===void 0){let t=e[i]+e[i+1];throw Error(`hex string expected, got non-hex character "`+t+`" at index `+i)}r[t]=n*16+a}return r}e.nextTick=async()=>{};async function C(t,n,r){let i=Date.now();for(let a=0;a<t;a++){r(a);let t=Date.now()-i;t>=0&&t<n||(await(0,e.nextTick)(),i+=t)}}function w(e){if(typeof e!=`string`)throw Error(`string expected`);return new Uint8Array(new TextEncoder().encode(e))}function T(e){return new TextDecoder().decode(e)}function E(e){return typeof e==`string`&&(e=w(e)),i(e),e}function D(e){return typeof e==`string`&&(e=w(e)),i(e),e}function O(...e){let t=0;for(let n=0;n<e.length;n++){let r=e[n];i(r),t+=r.length}let n=new Uint8Array(t);for(let t=0,r=0;t<e.length;t++){let i=e[t];n.set(i,r),r+=i.length}return n}function k(e,t){if(t!==void 0&&{}.toString.call(t)!==`[object Object]`)throw Error(`options should be object or undefined`);return Object.assign(e,t)}e.Hash=class{};function A(e){let t=t=>e().update(E(t)).digest(),n=e();return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=()=>e(),t}function j(e){let t=(t,n)=>e(n).update(E(t)).digest(),n=e({});return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=t=>e(t),t}function M(e){let t=(t,n)=>e(n).update(E(t)).digest(),n=e({});return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=t=>e(t),t}e.wrapConstructor=A,e.wrapConstructorWithOpts=j,e.wrapXOFConstructorWithOpts=M;function N(e=32){if(t.crypto&&typeof t.crypto.getRandomValues==`function`)return t.crypto.getRandomValues(new Uint8Array(e));if(t.crypto&&typeof t.crypto.randomBytes==`function`)return Uint8Array.from(t.crypto.randomBytes(e));throw Error(`crypto.getRandomValues must be defined`)}})),S=e((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.shake256=e.shake128=e.keccak_512=e.keccak_384=e.keccak_256=e.keccak_224=e.sha3_512=e.sha3_384=e.sha3_256=e.sha3_224=e.Keccak=void 0,e.keccakP=_;var t=y(),n=x(),r=BigInt(0),i=BigInt(1),a=BigInt(2),o=BigInt(7),s=BigInt(256),c=BigInt(113),l=[],u=[],d=[];for(let e=0,t=i,n=1,f=0;e<24;e++){[n,f]=[f,(2*n+3*f)%5],l.push(2*(5*f+n)),u.push((e+1)*(e+2)/2%64);let p=r;for(let e=0;e<7;e++)t=(t<<i^(t>>o)*c)%s,t&a&&(p^=i<<(i<<BigInt(e))-i);d.push(p)}var f=(0,t.split)(d,!0),p=f[0],m=f[1],h=(e,n,r)=>r>32?(0,t.rotlBH)(e,n,r):(0,t.rotlSH)(e,n,r),g=(e,n,r)=>r>32?(0,t.rotlBL)(e,n,r):(0,t.rotlSL)(e,n,r);function _(e,t=24){let r=new Uint32Array(10);for(let n=24-t;n<24;n++){for(let t=0;t<10;t++)r[t]=e[t]^e[t+10]^e[t+20]^e[t+30]^e[t+40];for(let t=0;t<10;t+=2){let n=(t+8)%10,i=(t+2)%10,a=r[i],o=r[i+1],s=h(a,o,1)^r[n],c=g(a,o,1)^r[n+1];for(let n=0;n<50;n+=10)e[t+n]^=s,e[t+n+1]^=c}let t=e[2],i=e[3];for(let n=0;n<24;n++){let r=u[n],a=h(t,i,r),o=g(t,i,r),s=l[n];t=e[s],i=e[s+1],e[s]=a,e[s+1]=o}for(let t=0;t<50;t+=10){for(let n=0;n<10;n++)r[n]=e[t+n];for(let n=0;n<10;n++)e[t+n]^=~r[(n+2)%10]&r[(n+4)%10]}e[0]^=p[n],e[1]^=m[n]}(0,n.clean)(r)}var v=class e extends n.Hash{constructor(e,t,r,i=!1,a=24){if(super(),this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,this.enableXOF=!1,this.blockLen=e,this.suffix=t,this.outputLen=r,this.enableXOF=i,this.rounds=a,(0,n.anumber)(r),!(0<e&&e<200))throw Error(`only keccak-f1600 function is supported`);this.state=new Uint8Array(200),this.state32=(0,n.u32)(this.state)}clone(){return this._cloneInto()}keccak(){(0,n.swap32IfBE)(this.state32),_(this.state32,this.rounds),(0,n.swap32IfBE)(this.state32),this.posOut=0,this.pos=0}update(e){(0,n.aexists)(this),e=(0,n.toBytes)(e),(0,n.abytes)(e);let{blockLen:t,state:r}=this,i=e.length;for(let n=0;n<i;){let a=Math.min(t-this.pos,i-n);for(let t=0;t<a;t++)r[this.pos++]^=e[n++];this.pos===t&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;let{state:e,suffix:t,pos:n,blockLen:r}=this;e[n]^=t,t&128&&n===r-1&&this.keccak(),e[r-1]^=128,this.keccak()}writeInto(e){(0,n.aexists)(this,!1),(0,n.abytes)(e),this.finish();let t=this.state,{blockLen:r}=this;for(let n=0,i=e.length;n<i;){this.posOut>=r&&this.keccak();let a=Math.min(r-this.posOut,i-n);e.set(t.subarray(this.posOut,this.posOut+a),n),this.posOut+=a,n+=a}return e}xofInto(e){if(!this.enableXOF)throw Error(`XOF is not possible for this instance`);return this.writeInto(e)}xof(e){return(0,n.anumber)(e),this.xofInto(new Uint8Array(e))}digestInto(e){if((0,n.aoutput)(e,this),this.finished)throw Error(`digest() was already called`);return this.writeInto(e),this.destroy(),e}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,(0,n.clean)(this.state)}_cloneInto(t){let{blockLen:n,suffix:r,outputLen:i,rounds:a,enableXOF:o}=this;return t||=new e(n,r,i,o,a),t.state32.set(this.state32),t.pos=this.pos,t.posOut=this.posOut,t.finished=this.finished,t.rounds=a,t.suffix=r,t.outputLen=i,t.enableXOF=o,t.destroyed=this.destroyed,t}};e.Keccak=v;var b=(e,t,r)=>(0,n.createHasher)(()=>new v(t,e,r));e.sha3_224=b(6,144,28),e.sha3_256=b(6,136,32),e.sha3_384=b(6,104,48),e.sha3_512=b(6,72,64),e.keccak_224=b(1,144,28),e.keccak_256=b(1,136,32),e.keccak_384=b(1,104,48),e.keccak_512=b(1,72,64);var S=(e,t,r)=>(0,n.createXOFer)((n={})=>new v(t,e,n.dkLen===void 0?r:n.dkLen,!0));e.shake128=S(31,168,16),e.shake256=S(31,136,32)})),C=e(((e,t)=>{var{sha3_512:n}=S(),r=24,i=32,a=(e=4,t=Math.random)=>{let n=``;for(;n.length<e;)n+=Math.floor(t()*36).toString(36);return n};function o(e){let t=0n;for(let n of e.values()){let e=BigInt(n);t=(t<<8n)+e}return t}var s=(e=``)=>o(n(e)).toString(36).slice(1),c=Array.from({length:26},(e,t)=>String.fromCharCode(t+97)),l=e=>c[Math.floor(e()*c.length)],u=({globalObj:e=typeof global<`u`?global:typeof window<`u`?window:{},random:t=Math.random}={})=>{let n=Object.keys(e).toString();return s(n.length?n+a(i,t):a(i,t)).substring(0,i)},d=e=>()=>e++,f=476782367,p=({random:e=Math.random,counter:t=d(Math.floor(e()*f)),length:n=r,fingerprint:i=u({random:e})}={})=>function(){let r=l(e),o=Date.now().toString(36),c=t().toString(36);return`${r+s(`${o+a(n,e)+c+i}`).substring(1,n)}`},m=p(),h=(e,{minLength:t=2,maxLength:n=i}={})=>{let r=e.length,a=/^[0-9a-z]+$/;try{if(typeof e==`string`&&r>=t&&r<=n&&a.test(e))return!0}finally{}return!1};t.exports.getConstants=()=>({defaultLength:r,bigLength:i}),t.exports.init=p,t.exports.createId=m,t.exports.bufToBigInt=o,t.exports.createCounter=d,t.exports.createFingerprint=u,t.exports.isCuid=h})),w=e(((e,t)=>{var{createId:n,init:r,getConstants:i,isCuid:a}=C();t.exports.createId=n,t.exports.init=r,t.exports.getConstants=i,t.exports.isCuid=a}));function T(e){return new URL(e,document.baseURI)}function E(e){let t=new URL(window.location.href);e(t.searchParams),window.history.replaceState({},``,t.toString())}function D(e,t){if(typeof window>`u`)return!1;let n=new URLSearchParams(window.location.search);return t===void 0?n.has(e):n.get(e)===t}function O(){let e=`__new__${N()}`;return T(`?file=${encodeURIComponent(e)}`).toString()}var k=/^(https?:\/\/\S+)$/;function A(e){return typeof e==`string`&&k.test(e)}function j({href:e,queryParams:t,keys:n}){let r=typeof t==`string`?new URLSearchParams(t):t;if(r.size===0||e.startsWith(`http://`)||e.startsWith(`https://`))return e;let i=e.startsWith(`#`),a=i&&e.includes(`?`);if(i&&!a){let t=n?[...r.entries()].filter(([e])=>n.includes(e)):[...r.entries()],i=new URLSearchParams;for(let[e,n]of t)i.set(e,n);let a=i.toString();return a?`/?${a}${e}`:e}let o=e,s=``,c=new URLSearchParams,l=+!!i,u=e.indexOf(`#`,l);u!==-1&&(s=e.slice(u),o=e.slice(0,u));let d=o.indexOf(`?`);d!==-1&&(c=new URLSearchParams(o.slice(d+1)),o=o.slice(0,d));let f=new URLSearchParams(c),p=n?[...r.entries()].filter(([e])=>n.includes(e)):[...r.entries()];for(let[e,t]of p)f.set(e,t);let m=f.toString();return m?`${o}?${m}${s}`:e}var M=(0,w().init)({length:6});function N(){return`s_${M()}`}function P(e){return e?/^s_[\da-z]{6}$/.test(e):!1}var F=null;function I(){let e=r.get(h)===`edit`,t=new URL(window.location.href).searchParams.get(s.sessionId),n=P(t)?t:null;return E(t=>{if(!e){t.delete(s.sessionId),t.delete(s.kiosk);return}t.has(s.kiosk)||t.delete(s.sessionId)}),n===null?(a.debug(`Starting a new session`,{sessionId:t}),N()):e?(a.debug(`Connecting to existing session`,{sessionId:n}),n):(a.debug(`Ignoring session_id from URL outside the editor`,{sessionId:n}),N())}function L(){return F===null&&(F=I()),F}export{m as _,A as a,T as c,h as d,g as f,v as g,f as h,D as i,w as l,p as m,P as n,O as o,_ as p,j as r,E as s,L as t,d as u,l as v};
1
+ import{t as e}from"./rolldown-runtime-B0Z9INg1.js";import{f as t,l as n,r}from"./useEvent-Dc9HkKI2.js";import{t as i}from"./compiler-runtime-BQ9S8nyo.js";import{g as a}from"./useEventListener-CUPWI_1X.js";import{t as o}from"./invariant-Ci2dTZ72.js";import{i as s,t as c}from"./utils-B4K466FK.js";function l(e,t){if(e==null)throw Error(t||`Expected value but got ${e}`)}var u=i();function d(){let e=r.get(h);return l(e,`internal-error: initial mode not found`),o(e!==`present`,`internal-error: initial mode cannot be 'present'`),e}function f(e){return e===`read`||e===`home`||e===`gallery`?e:e===`edit`?`present`:`edit`}async function p(e){let t=r.get(m);if(t.mode!==`edit`){await e();return}r.set(m,{...t,mode:`present`});try{await new Promise(e=>setTimeout(e,100)),await new Promise(e=>requestAnimationFrame(e)),await new Promise(e=>requestAnimationFrame(e)),await e()}finally{r.set(m,t)}}var m=t({mode:c()?`read`:`not-set`,cellAnchor:null}),h=t(void 0);function g(){let e=r.get(h);return e!==`home`&&e!==`gallery`}var _=t(!1);function v(){let e=(0,u.c)(1),{mode:t}=n(m),r=n(_),i;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=new URLSearchParams(window.location.search).get(s.kiosk),e[0]=i):i=e[0],t!==`read`&&!r&&i!==`true`}var y=e((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.toBig=e.shrSL=e.shrSH=e.rotrSL=e.rotrSH=e.rotrBL=e.rotrBH=e.rotr32L=e.rotr32H=e.rotlSL=e.rotlSH=e.rotlBL=e.rotlBH=e.add5L=e.add5H=e.add4L=e.add4H=e.add3L=e.add3H=void 0,e.add=v,e.fromBig=r,e.split=i;var t=BigInt(2**32-1),n=BigInt(32);function r(e,r=!1){return r?{h:Number(e&t),l:Number(e>>n&t)}:{h:Number(e>>n&t)|0,l:Number(e&t)|0}}function i(e,t=!1){let n=e.length,i=new Uint32Array(n),a=new Uint32Array(n);for(let o=0;o<n;o++){let{h:n,l:s}=r(e[o],t);[i[o],a[o]]=[n,s]}return[i,a]}var a=(e,t)=>BigInt(e>>>0)<<n|BigInt(t>>>0);e.toBig=a;var o=(e,t,n)=>e>>>n;e.shrSH=o;var s=(e,t,n)=>e<<32-n|t>>>n;e.shrSL=s;var c=(e,t,n)=>e>>>n|t<<32-n;e.rotrSH=c;var l=(e,t,n)=>e<<32-n|t>>>n;e.rotrSL=l;var u=(e,t,n)=>e<<64-n|t>>>n-32;e.rotrBH=u;var d=(e,t,n)=>e>>>n-32|t<<64-n;e.rotrBL=d;var f=(e,t)=>t;e.rotr32H=f;var p=(e,t)=>e;e.rotr32L=p;var m=(e,t,n)=>e<<n|t>>>32-n;e.rotlSH=m;var h=(e,t,n)=>t<<n|e>>>32-n;e.rotlSL=h;var g=(e,t,n)=>t<<n-32|e>>>64-n;e.rotlBH=g;var _=(e,t,n)=>e<<n-32|t>>>64-n;e.rotlBL=_;function v(e,t,n,r){let i=(t>>>0)+(r>>>0);return{h:e+n+(i/2**32|0)|0,l:i|0}}var y=(e,t,n)=>(e>>>0)+(t>>>0)+(n>>>0);e.add3L=y;var b=(e,t,n,r)=>t+n+r+(e/2**32|0)|0;e.add3H=b;var x=(e,t,n,r)=>(e>>>0)+(t>>>0)+(n>>>0)+(r>>>0);e.add4L=x;var S=(e,t,n,r,i)=>t+n+r+i+(e/2**32|0)|0;e.add4H=S;var C=(e,t,n,r,i)=>(e>>>0)+(t>>>0)+(n>>>0)+(r>>>0)+(i>>>0);e.add5L=C;var w=(e,t,n,r,i,a)=>t+n+r+i+a+(e/2**32|0)|0;e.add5H=w,e.default={fromBig:r,split:i,toBig:a,shrSH:o,shrSL:s,rotrSH:c,rotrSL:l,rotrBH:u,rotrBL:d,rotr32H:f,rotr32L:p,rotlSH:m,rotlSL:h,rotlBH:g,rotlBL:_,add:v,add3L:y,add3H:b,add4L:x,add4H:S,add5H:w,add5L:C}})),b=e((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.crypto=void 0,e.crypto=typeof globalThis==`object`&&`crypto`in globalThis?globalThis.crypto:void 0})),x=e((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.wrapXOFConstructorWithOpts=e.wrapConstructorWithOpts=e.wrapConstructor=e.Hash=e.nextTick=e.swap32IfBE=e.byteSwapIfBE=e.swap8IfBE=e.isLE=void 0,e.isBytes=n,e.anumber=r,e.abytes=i,e.ahash=a,e.aexists=o,e.aoutput=s,e.u8=c,e.u32=l,e.clean=u,e.createView=d,e.rotr=f,e.rotl=p,e.byteSwap=m,e.byteSwap32=h,e.bytesToHex=v,e.hexToBytes=S,e.asyncLoop=C,e.utf8ToBytes=w,e.bytesToUtf8=T,e.toBytes=E,e.kdfInputToBytes=D,e.concatBytes=O,e.checkOpts=k,e.createHasher=A,e.createOptHasher=j,e.createXOFer=M,e.randomBytes=N;var t=b();function n(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name===`Uint8Array`}function r(e){if(!Number.isSafeInteger(e)||e<0)throw Error(`positive integer expected, got `+e)}function i(e,...t){if(!n(e))throw Error(`Uint8Array expected`);if(t.length>0&&!t.includes(e.length))throw Error(`Uint8Array expected of length `+t+`, got length=`+e.length)}function a(e){if(typeof e!=`function`||typeof e.create!=`function`)throw Error(`Hash should be wrapped by utils.createHasher`);r(e.outputLen),r(e.blockLen)}function o(e,t=!0){if(e.destroyed)throw Error(`Hash instance has been destroyed`);if(t&&e.finished)throw Error(`Hash#digest() has already been called`)}function s(e,t){i(e);let n=t.outputLen;if(e.length<n)throw Error(`digestInto() expects output buffer of length at least `+n)}function c(e){return new Uint8Array(e.buffer,e.byteOffset,e.byteLength)}function l(e){return new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4))}function u(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function d(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function f(e,t){return e<<32-t|e>>>t}function p(e,t){return e<<t|e>>>32-t>>>0}e.isLE=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function m(e){return e<<24&4278190080|e<<8&16711680|e>>>8&65280|e>>>24&255}e.swap8IfBE=e.isLE?e=>e:e=>m(e),e.byteSwapIfBE=e.swap8IfBE;function h(e){for(let t=0;t<e.length;t++)e[t]=m(e[t]);return e}e.swap32IfBE=e.isLE?e=>e:h;var g=typeof Uint8Array.from([]).toHex==`function`&&typeof Uint8Array.fromHex==`function`,_=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,`0`));function v(e){if(i(e),g)return e.toHex();let t=``;for(let n=0;n<e.length;n++)t+=_[e[n]];return t}var y={_0:48,_9:57,A:65,F:70,a:97,f:102};function x(e){if(e>=y._0&&e<=y._9)return e-y._0;if(e>=y.A&&e<=y.F)return e-(y.A-10);if(e>=y.a&&e<=y.f)return e-(y.a-10)}function S(e){if(typeof e!=`string`)throw Error(`hex string expected, got `+typeof e);if(g)return Uint8Array.fromHex(e);let t=e.length,n=t/2;if(t%2)throw Error(`hex string expected, got unpadded hex of length `+t);let r=new Uint8Array(n);for(let t=0,i=0;t<n;t++,i+=2){let n=x(e.charCodeAt(i)),a=x(e.charCodeAt(i+1));if(n===void 0||a===void 0){let t=e[i]+e[i+1];throw Error(`hex string expected, got non-hex character "`+t+`" at index `+i)}r[t]=n*16+a}return r}e.nextTick=async()=>{};async function C(t,n,r){let i=Date.now();for(let a=0;a<t;a++){r(a);let t=Date.now()-i;t>=0&&t<n||(await(0,e.nextTick)(),i+=t)}}function w(e){if(typeof e!=`string`)throw Error(`string expected`);return new Uint8Array(new TextEncoder().encode(e))}function T(e){return new TextDecoder().decode(e)}function E(e){return typeof e==`string`&&(e=w(e)),i(e),e}function D(e){return typeof e==`string`&&(e=w(e)),i(e),e}function O(...e){let t=0;for(let n=0;n<e.length;n++){let r=e[n];i(r),t+=r.length}let n=new Uint8Array(t);for(let t=0,r=0;t<e.length;t++){let i=e[t];n.set(i,r),r+=i.length}return n}function k(e,t){if(t!==void 0&&{}.toString.call(t)!==`[object Object]`)throw Error(`options should be object or undefined`);return Object.assign(e,t)}e.Hash=class{};function A(e){let t=t=>e().update(E(t)).digest(),n=e();return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=()=>e(),t}function j(e){let t=(t,n)=>e(n).update(E(t)).digest(),n=e({});return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=t=>e(t),t}function M(e){let t=(t,n)=>e(n).update(E(t)).digest(),n=e({});return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=t=>e(t),t}e.wrapConstructor=A,e.wrapConstructorWithOpts=j,e.wrapXOFConstructorWithOpts=M;function N(e=32){if(t.crypto&&typeof t.crypto.getRandomValues==`function`)return t.crypto.getRandomValues(new Uint8Array(e));if(t.crypto&&typeof t.crypto.randomBytes==`function`)return Uint8Array.from(t.crypto.randomBytes(e));throw Error(`crypto.getRandomValues must be defined`)}})),S=e((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.shake256=e.shake128=e.keccak_512=e.keccak_384=e.keccak_256=e.keccak_224=e.sha3_512=e.sha3_384=e.sha3_256=e.sha3_224=e.Keccak=void 0,e.keccakP=_;var t=y(),n=x(),r=BigInt(0),i=BigInt(1),a=BigInt(2),o=BigInt(7),s=BigInt(256),c=BigInt(113),l=[],u=[],d=[];for(let e=0,t=i,n=1,f=0;e<24;e++){[n,f]=[f,(2*n+3*f)%5],l.push(2*(5*f+n)),u.push((e+1)*(e+2)/2%64);let p=r;for(let e=0;e<7;e++)t=(t<<i^(t>>o)*c)%s,t&a&&(p^=i<<(i<<BigInt(e))-i);d.push(p)}var f=(0,t.split)(d,!0),p=f[0],m=f[1],h=(e,n,r)=>r>32?(0,t.rotlBH)(e,n,r):(0,t.rotlSH)(e,n,r),g=(e,n,r)=>r>32?(0,t.rotlBL)(e,n,r):(0,t.rotlSL)(e,n,r);function _(e,t=24){let r=new Uint32Array(10);for(let n=24-t;n<24;n++){for(let t=0;t<10;t++)r[t]=e[t]^e[t+10]^e[t+20]^e[t+30]^e[t+40];for(let t=0;t<10;t+=2){let n=(t+8)%10,i=(t+2)%10,a=r[i],o=r[i+1],s=h(a,o,1)^r[n],c=g(a,o,1)^r[n+1];for(let n=0;n<50;n+=10)e[t+n]^=s,e[t+n+1]^=c}let t=e[2],i=e[3];for(let n=0;n<24;n++){let r=u[n],a=h(t,i,r),o=g(t,i,r),s=l[n];t=e[s],i=e[s+1],e[s]=a,e[s+1]=o}for(let t=0;t<50;t+=10){for(let n=0;n<10;n++)r[n]=e[t+n];for(let n=0;n<10;n++)e[t+n]^=~r[(n+2)%10]&r[(n+4)%10]}e[0]^=p[n],e[1]^=m[n]}(0,n.clean)(r)}var v=class e extends n.Hash{constructor(e,t,r,i=!1,a=24){if(super(),this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,this.enableXOF=!1,this.blockLen=e,this.suffix=t,this.outputLen=r,this.enableXOF=i,this.rounds=a,(0,n.anumber)(r),!(0<e&&e<200))throw Error(`only keccak-f1600 function is supported`);this.state=new Uint8Array(200),this.state32=(0,n.u32)(this.state)}clone(){return this._cloneInto()}keccak(){(0,n.swap32IfBE)(this.state32),_(this.state32,this.rounds),(0,n.swap32IfBE)(this.state32),this.posOut=0,this.pos=0}update(e){(0,n.aexists)(this),e=(0,n.toBytes)(e),(0,n.abytes)(e);let{blockLen:t,state:r}=this,i=e.length;for(let n=0;n<i;){let a=Math.min(t-this.pos,i-n);for(let t=0;t<a;t++)r[this.pos++]^=e[n++];this.pos===t&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;let{state:e,suffix:t,pos:n,blockLen:r}=this;e[n]^=t,t&128&&n===r-1&&this.keccak(),e[r-1]^=128,this.keccak()}writeInto(e){(0,n.aexists)(this,!1),(0,n.abytes)(e),this.finish();let t=this.state,{blockLen:r}=this;for(let n=0,i=e.length;n<i;){this.posOut>=r&&this.keccak();let a=Math.min(r-this.posOut,i-n);e.set(t.subarray(this.posOut,this.posOut+a),n),this.posOut+=a,n+=a}return e}xofInto(e){if(!this.enableXOF)throw Error(`XOF is not possible for this instance`);return this.writeInto(e)}xof(e){return(0,n.anumber)(e),this.xofInto(new Uint8Array(e))}digestInto(e){if((0,n.aoutput)(e,this),this.finished)throw Error(`digest() was already called`);return this.writeInto(e),this.destroy(),e}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,(0,n.clean)(this.state)}_cloneInto(t){let{blockLen:n,suffix:r,outputLen:i,rounds:a,enableXOF:o}=this;return t||=new e(n,r,i,o,a),t.state32.set(this.state32),t.pos=this.pos,t.posOut=this.posOut,t.finished=this.finished,t.rounds=a,t.suffix=r,t.outputLen=i,t.enableXOF=o,t.destroyed=this.destroyed,t}};e.Keccak=v;var b=(e,t,r)=>(0,n.createHasher)(()=>new v(t,e,r));e.sha3_224=b(6,144,28),e.sha3_256=b(6,136,32),e.sha3_384=b(6,104,48),e.sha3_512=b(6,72,64),e.keccak_224=b(1,144,28),e.keccak_256=b(1,136,32),e.keccak_384=b(1,104,48),e.keccak_512=b(1,72,64);var S=(e,t,r)=>(0,n.createXOFer)((n={})=>new v(t,e,n.dkLen===void 0?r:n.dkLen,!0));e.shake128=S(31,168,16),e.shake256=S(31,136,32)})),C=e(((e,t)=>{var{sha3_512:n}=S(),r=24,i=32,a=(e=4,t=Math.random)=>{let n=``;for(;n.length<e;)n+=Math.floor(t()*36).toString(36);return n};function o(e){let t=0n;for(let n of e.values()){let e=BigInt(n);t=(t<<8n)+e}return t}var s=(e=``)=>o(n(e)).toString(36).slice(1),c=Array.from({length:26},(e,t)=>String.fromCharCode(t+97)),l=e=>c[Math.floor(e()*c.length)],u=({globalObj:e=typeof global<`u`?global:typeof window<`u`?window:{},random:t=Math.random}={})=>{let n=Object.keys(e).toString();return s(n.length?n+a(i,t):a(i,t)).substring(0,i)},d=e=>()=>e++,f=476782367,p=({random:e=Math.random,counter:t=d(Math.floor(e()*f)),length:n=r,fingerprint:i=u({random:e})}={})=>function(){let r=l(e),o=Date.now().toString(36),c=t().toString(36);return`${r+s(`${o+a(n,e)+c+i}`).substring(1,n)}`},m=p(),h=(e,{minLength:t=2,maxLength:n=i}={})=>{let r=e.length,a=/^[0-9a-z]+$/;try{if(typeof e==`string`&&r>=t&&r<=n&&a.test(e))return!0}finally{}return!1};t.exports.getConstants=()=>({defaultLength:r,bigLength:i}),t.exports.init=p,t.exports.createId=m,t.exports.bufToBigInt=o,t.exports.createCounter=d,t.exports.createFingerprint=u,t.exports.isCuid=h})),w=e(((e,t)=>{var{createId:n,init:r,getConstants:i,isCuid:a}=C();t.exports.createId=n,t.exports.init=r,t.exports.getConstants=i,t.exports.isCuid=a}));function T(e){return new URL(e,document.baseURI)}function E(e){let t=new URL(window.location.href);e(t.searchParams),window.history.replaceState({},``,t.toString())}function D(e,t){if(typeof window>`u`)return!1;let n=new URLSearchParams(window.location.search);return t===void 0?n.has(e):n.get(e)===t}function O(){let e=`__new__${F()}`;return T(`?file=${encodeURIComponent(e)}`).toString()}var k=/^(https?:\/\/\S+)$/;function A(e){return typeof e==`string`&&k.test(e)}function j({href:e,queryParams:t,keys:n}){let r=typeof t==`string`?new URLSearchParams(t):t;if(r.size===0||e.startsWith(`http://`)||e.startsWith(`https://`))return e;let i=e.startsWith(`#`),a=i&&e.includes(`?`);if(i&&!a){let t=n?[...r.entries()].filter(([e])=>n.includes(e)):[...r.entries()],i=new URLSearchParams;for(let[e,n]of t)i.set(e,n);let a=i.toString();return a?`/?${a}${e}`:e}let o=e,s=``,c=new URLSearchParams,l=+!!i,u=e.indexOf(`#`,l);u!==-1&&(s=e.slice(u),o=e.slice(0,u));let d=o.indexOf(`?`);d!==-1&&(c=new URLSearchParams(o.slice(d+1)),o=o.slice(0,d));let f=new URLSearchParams(c),p=n?[...r.entries()].filter(([e])=>n.includes(e)):[...r.entries()];for(let[e,t]of p)f.set(e,t);let m=f.toString();return m?`${o}?${m}${s}`:e}var M=w(),N=t(null),P=(0,M.init)({length:6});function F(){return`s_${P()}`}function I(e){return e?/^s_[\da-z]{6}$/.test(e):!1}var L=null;function R(){let e=r.get(h)===`edit`,t=new URL(window.location.href).searchParams.get(s.sessionId),n=I(t)?t:null;return E(t=>{if(!e){t.delete(s.sessionId),t.delete(s.kiosk);return}t.has(s.kiosk)||t.delete(s.sessionId)}),n===null?(a.debug(`Starting a new session`,{sessionId:t}),F()):e?(a.debug(`Connecting to existing session`,{sessionId:n}),n):(a.debug(`Ignoring session_id from URL outside the editor`,{sessionId:n}),F())}function z(){return L===null&&(L=R()),L}export{v as _,D as a,E as c,d,h as f,f as g,p as h,j as i,T as l,_ as m,I as n,A as o,g as p,N as r,O as s,z as t,w as u,m as v,l as y};
@@ -1 +1 @@
1
- import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{c as t,f as n,l as r,u as i}from"./useEvent-Dc9HkKI2.js";import{t as a}from"./react-CUdNIagt.js";import{$r as o,Ai as s,Bi as c,Bt as l,Cn as u,D as d,Gn as f,Ha as p,Hi as m,Ii as h,Ji as g,Ki as _,Kn as v,Li as y,M as b,Mi as x,P as S,Qr as C,Ri as w,Rn as T,Rt as E,Ui as D,Wa as O,Wi as k,Xi as A,Yi as j,Zi as M,_n as ee,c as N,fn as P,gn as F,i as I,jn as L,qi as R,qn as z,ro as te,ti as ne,to as B,yr as V,yt as H,zi as U}from"./cells-DIjn-wIE.js";import{t as W}from"./compiler-runtime-BQ9S8nyo.js";import{s as re}from"./config-BdH5RvM0.js";import{O as G}from"./config-D7CP5wR5.js";import{t as K}from"./ErrorBoundary-CHPy195L.js";import{t as ie}from"./cn-ldLVeaqm.js";import{t as q}from"./jsx-runtime-B74pBk57.js";import{r as ae}from"./config-2Nts63h2.js";import{_ as oe,at as J,f as se,g as ce,h as le,it as ue,m as de,nt as fe,ot as pe,rt as me,tt as he,v as ge}from"./JsonOutput-BdpXVhxV.js";import{t as _e}from"./tooltip-CamoSiGF.js";import{r as ve,t as ye}from"./button-qFeU84ax.js";import{t as be}from"./createLucideIcon-rHn2EdoM.js";import{i as xe}from"./paths-CzfpItSz.js";import{r as Se}from"./useNumberFormatter-C4-_TnkF.js";import{a as Ce,r as we}from"./tree-actions-DpLu3KP0.js";import{a as Te}from"./input-D4bMj5Nb.js";import{n as Ee,o as De}from"./column-preview-CZ2TL09N.js";import{t as Oe}from"./workflow-nBi9HGeO.js";import{t as ke}from"./copy-icon-DQuttmjH.js";import{l as Ae}from"./arrays-BqUx5USx.js";import{i as je}from"./strings-LjhpYwmx.js";import{r as Me}from"./requests-yTHMxhVa.js";import{t as Ne}from"./context-BFOBKCJB.js";import{n as Pe}from"./useAsyncData-DucTwMkf.js";import{t as Fe}from"./cell-link-CEmc-Cr5.js";import{a as Ie,i as Le,n as Re,o as ze,r as Be,t as Ve}from"./table-Dg1KxH-q.js";import{n as He}from"./icons-CVdkfEA3.js";import{t as Ue}from"./useDeepCompareMemoize-DSlTt6u_.js";import{t as We}from"./useAddCell-DCbFUjci.js";import{t as Ge}from"./empty-state-CzxjZqGW.js";import{n as Ke,t as qe}from"./common-BQbHQAab.js";import{a as Je,i as Ye,n as Xe,o as Ze,r as Qe,s as $e,t as et}from"./components-Dt0cuD4C.js";import{r as tt}from"./panel-accordion-state-_r3T-AGo.js";var nt=be(`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`}]]),Y=W(),X=e(a(),1),Z=q(),rt=1;function it(e){return 1.75+e*rt}function at(e){return 3+e*rt}function ot(e){return 3.25+e*rt}var Q={engineEmpty:.75,engine:.75,database:1,tableLoading:2.75,tableSchemaless:2,columnLocal:1.25,columnPreview:2.5};function $(e){return{paddingLeft:`${e}rem`}}var st=n(e=>{let t=e(w),n=e(ne),r=e(I);return Ae(t,e=>{if(!e.variable_name)return-1;let t=Object.values(n).find(t=>t.name===e.variable_name);if(!t)return 0;let i=r.inOrderIds.indexOf(t.declaredBy[0]);return i===-1?0:i})}),ct=G(`marimo:datasources:hideEmpty`,!1,C,{getOnInit:!0});function lt(e){let t=!1,n=[];for(let r of e){if(!k(r)||!m(r)){n.push(r);continue}let e=r.child_schemas??[],i=lt(e);if(r.tables.length===0&&i.length===0){t=!0;continue}if(i===e){n.push(r);continue}t=!0,n.push({...r,child_schemas:i})}return t?n:e}function ut(e){let t=!1,n=[];for(let r of e){if(D(r)&&r.schemas.length===0){t=!0;continue}if(r.schemas.length===0){n.push(r);continue}let e=lt(r.schemas);if(e.length===0){t=!0;continue}if(e===r.schemas){n.push(r);continue}t=!0,n.push({...r,schemas:e})}return t?n:e}var dt=()=>{let e=(0,Y.c)(42),[n,a]=X.useState(``),[o,s]=t(ct),c=i(y),l=r(st),d=r(x),f;bb0:{if(!o){f=d;break bb0}let t,n;e[0]===d?(t=e[1],n=e[2]):(t=!1,n=d.map(e=>{let n=ut(e.databases);return n===e.databases?e:(t=!0,{...e,databases:n})}),e[0]=d,e[1]=t,e[2]=n),f=t?n:d}let p=f;if(l.length===0&&p.length===0){let t;return e[3]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,Z.jsx)(Ge,{title:`No tables found`,description:`Any datasets/dataframes in the global scope will be shown here.`,action:(0,Z.jsx)(Ze,{group:`database`,label:`Add database or catalog`,variant:`outline`,size:`sm`}),icon:(0,Z.jsx)(xe,{})}),e[3]=t):t=e[3],t}let m;e[4]===n?m=e[5]:(m=n.trim(),e[4]=n,e[5]=m);let h=!!m,g;e[6]===c?g=e[7]:(g=e=>{c(e.length>0),a(e)},e[6]=c,e[7]=g);let _;e[8]!==n||e[9]!==g?(_=(0,Z.jsx)(F,{placeholder:`Search tables...`,className:`h-6 m-1`,value:n,onValueChange:g,rootClassName:`flex-1 border-r border-b-0`}),e[8]=n,e[9]=g,e[10]=_):_=e[10];let v;e[11]===h?v=e[12]:(v=h&&(0,Z.jsx)(`button`,{type:`button`,className:`float-right border-b px-2 m-0 h-full hover:bg-accent hover:text-accent-foreground`,onClick:()=>a(``),children:(0,Z.jsx)(Se,{className:`h-4 w-4`})}),e[11]=h,e[12]=v);let b=!o,S;e[13]!==o||e[14]!==s?(S=()=>s(!o),e[13]=o,e[14]=s,e[15]=S):S=e[15];let C;e[16]!==b||e[17]!==S?(C=(0,Z.jsx)(Ce,{"data-testid":`datasources-hide-empty-button`,isVisible:b,onToggle:S,showTooltip:`Show empty schemas and databases`,hideTooltip:`Hide empty schemas and databases`,size:`sm`,className:`px-2 rounded-none focus-visible:outline-hidden`}),e[16]=b,e[17]=S,e[18]=C):C=e[18];let w;e[19]===Symbol.for(`react.memo_cache_sentinel`)?(w=(0,Z.jsx)(Ze,{group:`database`,label:`Add database or catalog`,compact:!0,variant:`ghost`,size:`sm`,className:`px-2 rounded-none focus-visible:outline-hidden`}),e[19]=w):w=e[19];let T;e[20]!==_||e[21]!==v||e[22]!==C?(T=(0,Z.jsxs)(`div`,{className:`flex items-center w-full border-b`,children:[_,v,C,w]}),e[20]=_,e[21]=v,e[22]=C,e[23]=T):T=e[23];let E;if(e[24]!==p||e[25]!==n){let t;e[27]===n?t=e[28]:(t=e=>(0,Z.jsx)(ft,{connection:e,hasChildren:e.databases.length>0,children:e.databases.map(t=>(0,Z.jsx)(gt,{connection:e,database:t,searchValue:n},t.name))},e.name),e[27]=n,e[28]=t),E=p.map(t),e[24]=p,e[25]=n,e[26]=E}else E=e[26];let D;e[29]!==p.length||e[30]!==l.length?(D=p.length>0&&l.length>0&&(0,Z.jsxs)(de,{className:`pr-2`,style:$(Q.engine),children:[(0,Z.jsx)(He,{className:`h-4 w-4 text-muted-foreground`}),(0,Z.jsx)(`span`,{className:`text-xs`,children:`Python`})]}),e[29]=p.length,e[30]=l.length,e[31]=D):D=e[31];let O;e[32]!==n||e[33]!==l?(O=l.length>0&&(0,Z.jsx)(bt,{tables:l,searchValue:n}),e[32]=n,e[33]=l,e[34]=O):O=e[34];let k;e[35]!==E||e[36]!==D||e[37]!==O?(k=(0,Z.jsxs)(u,{className:`flex flex-col`,children:[E,D,O]}),e[35]=E,e[36]=D,e[37]=O,e[38]=k):k=e[38];let A;return e[39]!==k||e[40]!==T?(A=(0,Z.jsxs)(P,{className:`border-b bg-background rounded-none h-full pb-10 overflow-auto outline-hidden`,shouldFilter:!1,children:[T,k]}),e[39]=k,e[40]=T,e[41]=A):A=e[41],A},ft=e=>{let t=(0,Y.c)(26),{connection:n,children:r,hasChildren:i}=e,a=n.name===M,o=a?`In-Memory`:n.name,{previewDataSourceConnection:c}=Me(),l;t[0]!==n.name||t[1]!==c?(l=async()=>{await c({engine:n.name})},t[0]=n.name,t[1]=c,t[2]=l):l=t[2];let u=l,d;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(d=$(Q.engine),t[3]=d):d=t[3];let f;t[4]===n.dialect?f=t[5]:(f=(0,Z.jsx)(L,{className:`h-4 w-4 text-muted-foreground`,name:n.dialect}),t[4]=n.dialect,t[5]=f);let p;t[6]===n.dialect?p=t[7]:(p=s(n.dialect),t[6]=n.dialect,t[7]=p);let m;t[8]===p?m=t[9]:(m=(0,Z.jsx)(`span`,{className:`text-xs`,children:p}),t[8]=p,t[9]=m);let h=o,g;t[10]===h?g=t[11]:(g=(0,Z.jsxs)(`span`,{className:`text-xs text-muted-foreground`,children:[`(`,(0,Z.jsx)($e,{variableName:h}),`)`]}),t[10]=h,t[11]=g);let _;t[12]!==u||t[13]!==a?(_=!a&&(0,Z.jsx)(we,{onClick:u,tooltip:`Refresh connection`,className:`ml-auto h-4 p-0`,iconClassName:`h-3.5 w-3.5`}),t[12]=u,t[13]=a,t[14]=_):_=t[14];let v;t[15]!==f||t[16]!==m||t[17]!==g||t[18]!==_?(v=(0,Z.jsxs)(de,{className:`pr-2`,style:d,children:[f,m,g,_]}),t[15]=f,t[16]=m,t[17]=g,t[18]=_,t[19]=v):v=t[19];let y;t[20]!==r||t[21]!==i?(y=i?r:(0,Z.jsx)(le,{content:`No databases available`,style:$(Q.engineEmpty)}),t[20]=r,t[21]=i,t[22]=y):y=t[22];let b;return t[23]!==y||t[24]!==v?(b=(0,Z.jsxs)(Z.Fragment,{children:[v,y]}),t[23]=y,t[24]=v,t[25]=b):b=t[25],b},pt=X.createContext(null);function mt(){let e=X.useContext(pt);if(e==null)throw Error(`useDataSourceTree must be used within a DataSourceTreeContext.Provider`);return e}function ht(e,{schema:t,schemaPath:n}){return{engine:e.engineName,database:e.databaseName,schema:t,schemaPath:n,defaultSchema:e.defaultSchema,defaultDatabase:e.defaultDatabase,dialect:e.dialect}}var gt=e=>{let t=(0,Y.c)(21),{connection:n,database:r,searchValue:i}=e,a;t[0]!==n.default_database||t[1]!==n.default_schema||t[2]!==n.dialect||t[3]!==n.name||t[4]!==r.name||t[5]!==i?(a={engineName:n.name,databaseName:r.name,dialect:n.dialect,defaultSchema:n.default_schema,defaultDatabase:n.default_database,searchValue:i},t[0]=n.default_database,t[1]=n.default_schema,t[2]=n.dialect,t[3]=n.name,t[4]=r.name,t[5]=i,t[6]=a):a=t[6];let o=a,s=n.name,c=r.schemas,l;t[7]===r?l=t[8]:(l=D(r),t[7]=r,t[8]=l);let u;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(u=[],t[9]=u):u=t[9];let d;t[10]!==r.schemas||t[11]!==l?(d=(0,Z.jsx)(vt,{schemas:c,schemasResolved:l,schemaPath:u,depth:0}),t[10]=r.schemas,t[11]=l,t[12]=d):d=t[12];let f;t[13]!==d||t[14]!==o?(f=(0,Z.jsx)(pt.Provider,{value:o,children:d}),t[13]=d,t[14]=o,t[15]=f):f=t[15];let p;return t[16]!==n.name||t[17]!==r||t[18]!==i||t[19]!==f?(p=(0,Z.jsx)(_t,{engineName:s,database:r,searchValue:i,children:f}),t[16]=n.name,t[17]=r,t[18]=i,t[19]=f,t[20]=p):p=t[20],p},_t=e=>{let t=(0,Y.c)(29),{searchValue:n,engineName:r,database:i,children:a}=e,o;t[0]!==i||t[1]!==n?(o=g(i,n),t[0]=i,t[1]=n,t[2]=o):o=t[2];let s=o,[c,l]=X.useState(s),[u,d]=X.useState(!1),[f,p]=X.useState(n),[m,h]=X.useState(s);(f!==n||m!==s)&&(p(n),h(s),l(s));let _;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(_=$(Q.database),t[3]=_):_=t[3];let v;t[4]!==c||t[5]!==u?(v=()=>{l(!c),d(!u)},t[4]=c,t[5]=u,t[6]=v):v=t[6];let y=`${r}:${i.name}`,b;t[7]===c?b=t[8]:(b=(0,Z.jsx)(ge,{isExpanded:c}),t[7]=c,t[8]=b);let x=u&&c?`text-foreground`:`text-muted-foreground`,S;t[9]===x?S=t[10]:(S=ie(`h-4 w-4`,x),t[9]=x,t[10]=S);let C;t[11]===S?C=t[12]:(C=(0,Z.jsx)(xe,{className:S}),t[11]=S,t[12]=C);let w=u&&c&&`font-semibold`,T;t[13]===w?T=t[14]:(T=ie(w),t[13]=w,t[14]=T);let E;t[15]===i.name?E=t[16]:(E=i.name===``?(0,Z.jsx)(`i`,{children:`Not connected`}):i.name,t[15]=i.name,t[16]=E);let D;t[17]!==T||t[18]!==E?(D=(0,Z.jsx)(`span`,{className:T,children:E}),t[17]=T,t[18]=E,t[19]=D):D=t[19];let O;t[20]!==D||t[21]!==v||t[22]!==y||t[23]!==b||t[24]!==C?(O=(0,Z.jsxs)(ee,{className:`text-sm flex flex-row gap-1 items-center cursor-pointer rounded-none`,style:_,onSelect:v,value:y,children:[b,C,D]}),t[20]=D,t[21]=v,t[22]=y,t[23]=b,t[24]=C,t[25]=O):O=t[25];let k=c&&a,A;return t[26]!==O||t[27]!==k?(A=(0,Z.jsxs)(Z.Fragment,{children:[O,k]}),t[26]=O,t[27]=k,t[28]=A):A=t[28],A},vt=e=>{let{schemas:t,schemasResolved:n,depth:r}=e,i=mt(),{engineName:a,databaseName:o,searchValue:s}=i,{addSchemaList:c}=h(),l=Ue(e.schemaPath),[u,d]=X.useState(!1),{isPending:p,error:m}=Pe(async()=>{if(!n&&a){d(!0);try{let e=await f.request({engine:a,database:o,schemaPath:l});c({schemas:e.schemas??[],sqlSchemaContext:{engine:a,database:o,schemaPath:l}})}finally{d(!1)}}},[n,a,o,l]),g=$(it(r));return p||u?(0,Z.jsx)(oe,{message:`Loading schemas...`,style:g}):m?(0,Z.jsx)(ce,{error:m,style:g}):t.length===0?(0,Z.jsx)(le,{content:`No schemas available`,style:g}):(0,Z.jsx)(Z.Fragment,{children:t.map(e=>_(e.name)?(0,Z.jsx)(bt,{tables:e.tables,tablesResolved:k(e),searchValue:s,sqlTableContext:ht(i,{schema:e.name,schemaPath:l})},e.name):(0,Z.jsx)(yt,{schema:e,schemaPath:[...l,e.name],depth:r},e.name))})},yt=e=>{let t=(0,Y.c)(41),{schema:n,schemaPath:r,depth:i}=e,a=mt(),{databaseName:o,searchValue:s}=a,c;t[0]!==n||t[1]!==s?(c=R(n,s),t[0]=n,t[1]=s,t[2]=c):c=t[2];let l=c,[u,d]=X.useState(l),[f,p]=X.useState(!1),[h,g]=X.useState(s),[_,v]=X.useState(l),y;t[3]===r?y=t[4]:(y=r.join(`.`),t[3]=r,t[4]=y);let b=`${o}:${y}`,x;t[5]===n.child_schemas?x=t[6]:(x=n.child_schemas??[],t[5]=n.child_schemas,t[6]=x);let S=x;(h!==s||_!==l)&&(g(s),v(l),d(l));let C;t[7]===i?C=t[8]:(C=$(it(i)),t[7]=i,t[8]=C);let w;t[9]!==u||t[10]!==f?(w=()=>{d(!u),p(!f)},t[9]=u,t[10]=f,t[11]=w):w=t[11];let T;t[12]===u?T=t[13]:(T=(0,Z.jsx)(ge,{isExpanded:u}),t[12]=u,t[13]=T);let E=f&&u&&`text-foreground`,D;t[14]===E?D=t[15]:(D=ie(`h-4 w-4 text-muted-foreground`,E),t[14]=E,t[15]=D);let O;t[16]===D?O=t[17]:(O=(0,Z.jsx)(B,{className:D}),t[16]=D,t[17]=O);let A=f&&u&&`font-semibold`,j;t[18]===A?j=t[19]:(j=ie(A),t[18]=A,t[19]=j);let M;t[20]!==n.name||t[21]!==j?(M=(0,Z.jsx)(`span`,{className:j,children:n.name}),t[20]=n.name,t[21]=j,t[22]=M):M=t[22];let N;t[23]!==M||t[24]!==C||t[25]!==w||t[26]!==T||t[27]!==O||t[28]!==b?(N=(0,Z.jsxs)(ee,{className:`text-sm flex flex-row gap-1 items-center cursor-pointer rounded-none`,style:C,onSelect:w,value:b,children:[T,O,M]}),t[23]=M,t[24]=C,t[25]=w,t[26]=T,t[27]=O,t[28]=b,t[29]=N):N=t[29];let P;t[30]!==S||t[31]!==i||t[32]!==u||t[33]!==n||t[34]!==r||t[35]!==s||t[36]!==a?(P=u&&(0,Z.jsxs)(Z.Fragment,{children:[(S.length>0||!m(n))&&(0,Z.jsx)(vt,{schemas:S,schemasResolved:m(n),schemaPath:r,depth:i+1}),(0,Z.jsx)(bt,{tables:n.tables,tablesResolved:k(n),searchValue:s,tableIndentRem:at(i),columnIndentRem:ot(i),sqlTableContext:ht(a,{schema:n.name,schemaPath:r})})]}),t[30]=S,t[31]=i,t[32]=u,t[33]=n,t[34]=r,t[35]=s,t[36]=a,t[37]=P):P=t[37];let F;return t[38]!==N||t[39]!==P?(F=(0,Z.jsxs)(Z.Fragment,{children:[N,P]}),t[38]=N,t[39]=P,t[40]=F):F=t[40],F},bt=e=>{let t=(0,Y.c)(31),{tables:n,sqlTableContext:r,searchValue:i,tablesResolved:a,tableIndentRem:o,columnIndentRem:s}=e,c=a===void 0||a,{addTableList:l}=h(),[u,d]=X.useState(!1),f;t[0]!==l||t[1]!==r||t[2]!==c?(f=async()=>{if(!c&&r){d(!0);let{engine:e,database:t,schema:n,schemaPath:i}=r,a=await z.request({engine:e,database:t,schema:n,schemaPath:i??[]});if(!a?.tables)throw d(!1),Error(`No tables available`);l({tables:a.tables,sqlTableContext:r}),d(!1)}},t[0]=l,t[1]=r,t[2]=c,t[3]=f):f=t[3];let p;t[4]!==r||t[5]!==c?(p=[c,r],t[4]=r,t[5]=c,t[6]=p):p=t[6];let{isPending:m,error:g}=Pe(f,p),_=o??Q.tableLoading,v;t[7]===_?v=t[8]:(v=$(_),t[7]=_,t[8]=v);let y=v;if(m||u){let e;return t[9]===y?e=t[10]:(e=(0,Z.jsx)(oe,{message:`Loading tables...`,style:y}),t[9]=y,t[10]=e),e}if(g){let e;return t[11]!==g||t[12]!==y?(e=(0,Z.jsx)(ce,{error:g,style:y}),t[11]=g,t[12]=y,t[13]=e):e=t[13],e}if(n.length===0){let e;return t[14]===y?e=t[15]:(e=(0,Z.jsx)(le,{content:`No tables found`,style:y}),t[14]=y,t[15]=e),e}let b;if(t[16]!==s||t[17]!==i||t[18]!==r||t[19]!==o||t[20]!==n){let e;t[22]===i?e=t[23]:(e=e=>!i||e.name.toLowerCase().includes(i.toLowerCase()),t[22]=i,t[23]=e);let a=n.filter(e),c;t[24]!==s||t[25]!==i||t[26]!==r||t[27]!==o?(c=e=>(0,Z.jsx)(xt,{table:e,sqlTableContext:r,isSearching:!!i,tableIndentRem:o,columnIndentRem:s},e.name),t[24]=s,t[25]=i,t[26]=r,t[27]=o,t[28]=c):c=t[28],b=a.map(c),t[16]=s,t[17]=i,t[18]=r,t[19]=o,t[20]=n,t[21]=b}else b=t[21];let x;return t[29]===b?x=t[30]:(x=(0,Z.jsx)(Z.Fragment,{children:b}),t[29]=b,t[30]=x),x},xt=e=>{let t=(0,Y.c)(69),{table:n,sqlTableContext:i,isSearching:a,tableIndentRem:o,columnIndentRem:s}=e,{addTable:c}=h(),[u,f]=X.useState(!1),p=n.columns.length>0,m;t[0]!==c||t[1]!==u||t[2]!==i||t[3]!==n.name||t[4]!==p?(m=async()=>{if(u&&!p&&i){let{engine:e,database:t,schema:r,schemaPath:a}=i,o=await v.request({engine:e,database:t,schema:r,tableName:n.name,schemaPath:a??[]});if(!o?.table)throw Error(`No table details available`);c({table:o.table,sqlTableContext:i})}},t[0]=c,t[1]=u,t[2]=i,t[3]=n.name,t[4]=p,t[5]=m):m=t[5];let g;t[6]!==u||t[7]!==p?(g=[u,p],t[6]=u,t[7]=p,t[8]=g):g=t[8];let{isFetching:_,isPending:y,error:b}=Pe(m,g),x=r(re),S=E(),{createNewCell:C}=d(),w=We(),T;t[9]!==w||t[10]!==x||t[11]!==C||t[12]!==S||t[13]!==i||t[14]!==n?(T=()=>{l({autoInstantiate:x,createNewCell:C,fromCellId:S}),w((()=>{if(n.source_type===`catalog`){let e=i?.database?[i.database,...i.schemaPath??[],n.name].join(`.`):n.name;return`${n.engine}.load_table("${e}")`}if(i)return j({table:n,columnName:`*`,sqlTableContext:i});switch(n.source_type){case`local`:return`mo.ui.table(${n.name})`;case`duckdb`:case`connection`:return j({table:n,columnName:`*`,sqlTableContext:i});default:return je(n.source_type),``}})())},t[9]=w,t[10]=x,t[11]=C,t[12]=S,t[13]=i,t[14]=n,t[15]=T):T=t[15];let D=T,k;t[16]!==n.num_columns||t[17]!==n.num_rows?(k=()=>{let e=[];return n.num_rows!=null&&e.push(`${n.num_rows} rows`),n.num_columns!=null&&e.push(`${n.num_columns} columns`),e.length===0?null:(0,Z.jsx)(`div`,{className:`flex flex-row gap-2 items-center pl-6 group-hover:hidden`,children:(0,Z.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:e.join(`, `)})})},t[16]=n.num_columns,t[17]=n.num_rows,t[18]=k):k=t[18];let M=k,N;t[19]!==s||t[20]!==b||t[21]!==_||t[22]!==y||t[23]!==i||t[24]!==n?(N=()=>{let e=$(s??Q.tableLoading);if(y||_)return(0,Z.jsx)(oe,{message:`Loading columns...`,style:e});if(b)return(0,Z.jsx)(ce,{error:b,style:e});let t=n.columns;return t.length===0?(0,Z.jsx)(le,{content:`No columns found`,style:e}):t.map(e=>(0,Z.jsx)(St,{table:n,column:e,sqlTableContext:i,columnIndentRem:s},e.name))},t[19]=s,t[20]=b,t[21]=_,t[22]=y,t[23]=i,t[24]=n,t[25]=N):N=t[25];let P=N,F;t[26]!==u||t[27]!==a||t[28]!==n.source_type||t[29]!==n.type?(F=()=>{if(n.source_type===`local`)return;let e=n.type===`table`?O:te;return(0,Z.jsx)(e,{className:`h-3 w-3`,strokeWidth:u||a?2.5:void 0})},t[26]=u,t[27]=a,t[28]=n.source_type,t[29]=n.type,t[30]=F):F=t[30];let I=F,L;t[31]!==i||t[32]!==n.name?(L=A(i,n.name),t[31]=i,t[32]=n.name,t[33]=L):L=t[33];let R=L,z=o??(i?Q.tableSchemaless:0),ne=(u||a)&&`font-semibold`,B;t[34]===ne?B=t[35]:(B=ie(`rounded-none group h-8 cursor-pointer`,ne),t[34]=ne,t[35]=B);let V;t[36]===z?V=t[37]:(V=$(z),t[36]=z,t[37]=V);let H;t[38]===u?H=t[39]:(H=()=>f(!u),t[38]=u,t[39]=H);let U;t[40]===I?U=t[41]:(U=I(),t[40]=I,t[41]=U);let W;t[42]===n.name?W=t[43]:(W=(0,Z.jsx)(`span`,{className:`text-sm`,children:n.name}),t[42]=n.name,t[43]=W);let G;t[44]!==U||t[45]!==W?(G=(0,Z.jsxs)(`div`,{className:`flex gap-2 items-center flex-1 pl-1`,children:[U,W]}),t[44]=U,t[45]=W,t[46]=G):G=t[46];let K;t[47]===M?K=t[48]:(K=M(),t[47]=M,t[48]=K);let q;t[49]===D?q=t[50]:(q=ve.stopPropagation(()=>D()),t[49]=D,t[50]=q);let ae;t[51]===Symbol.for(`react.memo_cache_sentinel`)?(ae=(0,Z.jsx)(De,{className:`h-3 w-3`}),t[51]=ae):ae=t[51];let J;t[52]===q?J=t[53]:(J=(0,Z.jsx)(_e,{content:`Add table to notebook`,delayDuration:400,children:(0,Z.jsx)(ye,{className:`group-hover:inline-flex hidden`,variant:`text`,size:`icon`,onClick:q,children:ae})}),t[52]=q,t[53]=J);let se;t[54]!==u||t[55]!==V||t[56]!==H||t[57]!==G||t[58]!==K||t[59]!==J||t[60]!==B||t[61]!==R?(se=(0,Z.jsxs)(ee,{className:B,style:V,value:R,"aria-selected":u,forceMount:!0,onSelect:H,children:[G,K,J]}),t[54]=u,t[55]=V,t[56]=H,t[57]=G,t[58]=K,t[59]=J,t[60]=B,t[61]=R,t[62]=se):se=t[62];let ue;t[63]!==u||t[64]!==P?(ue=u&&P(),t[63]=u,t[64]=P,t[65]=ue):ue=t[65];let de;return t[66]!==se||t[67]!==ue?(de=(0,Z.jsxs)(Z.Fragment,{children:[se,ue]}),t[66]=se,t[67]=ue,t[68]=de):de=t[68],de},St=e=>{let t=(0,Y.c)(51),{table:n,column:a,sqlTableContext:o,columnIndentRem:s}=e,[l,u]=X.useState(!1),d=r(y),f=i(U);d&&l&&u(!1),f(l?e=>new Set([...e,`${n.name}:${a.name}`]):e=>(e.delete(`${n.name}:${a.name}`),new Set(e)));let p=We(),{columnsPreviews:m}=c(),h;t[0]!==a.name||t[1]!==n.primary_keys?(h=n.primary_keys?.includes(a.name)||!1,t[0]=a.name,t[1]=n.primary_keys,t[2]=h):h=t[2];let g=h,_;t[3]!==a.name||t[4]!==n.indexes?(_=n.indexes?.includes(a.name)||!1,t[3]=a.name,t[4]=n.indexes,t[5]=_):_=t[5];let v=_,b;t[6]===p?b=t[7]:(b=e=>{p(e)},t[6]=p,t[7]=b);let x=b,S=Ct,C=l?`font-semibold`:``,w;t[8]!==a.name||t[9]!==C?(w=(0,Z.jsx)(`span`,{className:C,children:a.name}),t[8]=a.name,t[9]=C,t[10]=w):w=t[10];let T=w,E=`${n.name}.${a.name}`,D=`${n.name}.${a.name}`,O;t[11]===l?O=t[12]:(O=()=>u(!l),t[11]=l,t[12]=O);let k;t[13]!==s||t[14]!==o?(k=s??(o?ot(0):Q.columnLocal),t[13]=s,t[14]=o,t[15]=k):k=t[15];let A;t[16]===k?A=t[17]:(A=$(k),t[16]=k,t[17]=A);let j;t[18]!==a.type||t[19]!==T?(j=(0,Z.jsx)(se,{columnName:T,dataType:a.type}),t[18]=a.type,t[19]=T,t[20]=j):j=t[20];let M;t[21]===g?M=t[22]:(M=g&&S({tooltipContent:`Primary key`,content:`PK`}),t[21]=g,t[22]=M);let N;t[23]===v?N=t[24]:(N=v&&S({tooltipContent:`Indexed`,content:`IDX`}),t[23]=v,t[24]=N);let P;t[25]!==A||t[26]!==j||t[27]!==M||t[28]!==N?(P=(0,Z.jsxs)(`div`,{className:`flex flex-row gap-2 items-center flex-1`,style:A,children:[j,M,N]}),t[25]=A,t[26]=j,t[27]=M,t[28]=N,t[29]=P):P=t[29];let F;t[30]===a.name?F=t[31]:(F=(0,Z.jsx)(_e,{content:`Copy column name`,delayDuration:400,children:(0,Z.jsx)(ye,{variant:`text`,size:`icon`,className:`group-hover:opacity-100 opacity-0 hover:bg-muted text-muted-foreground hover:text-foreground`,children:(0,Z.jsx)(ke,{tooltip:!1,value:a.name,className:`h-3 w-3`})})}),t[30]=a.name,t[31]=F);let I;t[32]===a.external_type?I=t[33]:(I=(0,Z.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:a.external_type}),t[32]=a.external_type,t[33]=I);let L;t[34]!==P||t[35]!==F||t[36]!==I||t[37]!==E||t[38]!==D||t[39]!==O?(L=(0,Z.jsxs)(ee,{className:`rounded-none py-1 group cursor-pointer`,value:D,onSelect:O,children:[P,F,I]},E),t[34]=P,t[35]=F,t[36]=I,t[37]=E,t[38]=D,t[39]=O,t[40]=L):L=t[40];let R;t[41]!==a||t[42]!==m||t[43]!==x||t[44]!==l||t[45]!==o||t[46]!==n?(R=l&&(0,Z.jsx)(`div`,{className:`pr-2 py-2 bg-(--slate-1) shadow-inner border-b`,style:$(Q.columnPreview),children:(0,Z.jsx)(K,{children:(0,Z.jsx)(Ee,{table:n,column:a,onAddColumnChart:x,preview:m.get(o?`${o.database}.${o.schema}.${n.name}:${a.name}`:`${n.name}:${a.name}`),sqlTableContext:o})})}),t[41]=a,t[42]=m,t[43]=x,t[44]=l,t[45]=o,t[46]=n,t[47]=R):R=t[47];let z;return t[48]!==L||t[49]!==R?(z=(0,Z.jsxs)(Z.Fragment,{children:[L,R]}),t[48]=L,t[49]=R,t[50]=z):z=t[50],z};function Ct(e){let{tooltipContent:t,content:n}=e;return(0,Z.jsx)(_e,{content:t,delayDuration:100,children:(0,Z.jsx)(`span`,{className:`text-xs text-black bg-gray-100 dark:invert rounded px-1`,children:n})})}function wt(e){return e}var Tt={name:`name`,type:`type-value`,defs:`defs-refs`},Et=[wt({id:Tt.name,accessorFn:e=>[e.name,e.declaredBy],enableSorting:!0,sortingFn:`alphanumeric`,header:({column:e})=>(0,Z.jsx)(he,{header:`Name`,column:e}),cell:({getValue:e})=>{let[t,n]=e();return(0,Z.jsx)(qe,{name:t,declaredBy:n})}}),wt({id:Tt.type,accessorFn:e=>[e.dataType,e.value],enableSorting:!0,sortingFn:`alphanumeric`,header:({column:e})=>(0,Z.jsx)(he,{header:(0,Z.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Z.jsx)(`span`,{children:`Type`}),(0,Z.jsx)(`span`,{children:`Value`})]}),column:e}),cell:({getValue:e})=>{let[t,n]=e();return(0,Z.jsxs)(`div`,{className:`max-w-[150px]`,children:[(0,Z.jsx)(`div`,{className:`text-ellipsis overflow-hidden whitespace-nowrap text-muted-foreground font-mono text-xs`,children:t}),(0,Z.jsx)(`div`,{className:`text-ellipsis overflow-hidden whitespace-nowrap`,title:n??``,children:n})]})}}),wt({id:Tt.defs,accessorFn:e=>[e.declaredBy,e.usedBy,e.name,e.declaredByNames,e.usedByNames],enableSorting:!0,sortingFn:`basic`,header:({column:e})=>(0,Z.jsx)(he,{header:(0,Z.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Z.jsx)(`span`,{children:`Declared By`}),(0,Z.jsx)(`span`,{children:`Used By`})]}),column:e}),cell:({getValue:e})=>{let[t,n,r]=e(),i=e=>{let t=N(e);t&&V(t,r)};return(0,Z.jsxs)(`div`,{className:`flex flex-col gap-1 py-1`,children:[(0,Z.jsxs)(`div`,{className:`flex flex-row overflow-auto gap-2 items-center`,children:[(0,Z.jsx)(`span`,{title:`Declared by`,children:(0,Z.jsx)(nt,{className:`w-3.5 h-3.5 text-muted-foreground`})}),t.length===1?(0,Z.jsx)(Fe,{variant:`focus`,cellId:t[0],skipScroll:!0,onClick:()=>i(t[0])}):(0,Z.jsx)(`div`,{className:`text-destructive flex flex-row gap-2`,children:t.slice(0,3).map((e,n)=>(0,Z.jsxs)(`span`,{className:`flex`,children:[(0,Z.jsx)(Fe,{variant:`focus`,cellId:e,skipScroll:!0,className:`whitespace-nowrap text-destructive`,onClick:()=>i(e)},e),n<t.length-1&&`, `]},e))})]}),(0,Z.jsxs)(`div`,{className:`flex flex-row overflow-auto gap-2 items-baseline`,children:[(0,Z.jsx)(`span`,{title:`Used by`,children:(0,Z.jsx)(Oe,{className:`w-3.5 h-3.5 text-muted-foreground`})}),(0,Z.jsx)(Ke,{maxCount:3,cellIds:n,skipScroll:!0,onClick:i})]})]})}})];function Dt({variables:e,sort:t,cellIdToIndex:n}){t||={id:Tt.defs,desc:!1};let r=[];switch(t.id){case Tt.name:r=Ae(e,e=>e.name);break;case Tt.type:r=Ae(e,e=>e.dataType);break;case Tt.defs:r=Ae(e,e=>n.get(e.declaredBy[0]))}return t.desc?r.toReversed():r}var Ot=(0,X.memo)(({className:e,cellIds:t,variables:n})=>{let[r,i]=X.useState([]),[a,o]=X.useState(``),s=S(),{locale:c}=Ne(),l=(0,X.useMemo)(()=>{let e=e=>{let n=s[e];return T(n)?`cell-${t.indexOf(e)}`:n??`cell-${t.indexOf(e)}`};return Object.values(n).map(t=>({...t,declaredByNames:t.declaredBy.map(e),usedByNames:t.usedBy.map(e)}))},[n,s,t]),u=(0,X.useMemo)(()=>{let e=new Map;return t.forEach((t,n)=>e.set(t,n)),Dt({variables:l,sort:r[0],cellIdToIndex:e})},[l,r,t]),d=me({data:u,columns:Et,getCoreRowModel:ue(),onGlobalFilterChange:o,getFilteredRowModel:J(),enableFilters:!0,enableGlobalFilter:!0,enableColumnPinning:!1,getColumnCanGlobalFilter(e){return e.columnDef.enableGlobalFilter??!0},globalFilterFn:`auto`,manualSorting:!0,locale:c,onSortingChange:i,getSortedRowModel:pe(),state:{sorting:r,globalFilter:a}});return(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(Te,{className:`w-full`,placeholder:`Search`,value:a,onChange:e=>o(e.target.value)}),(0,Z.jsxs)(Ve,{className:ie(`w-full text-sm flex-1 border-separate border-spacing-0`,e),children:[(0,Z.jsx)(Ie,{children:(0,Z.jsx)(ze,{className:`whitespace-nowrap text-xs`,children:d.getFlatHeaders().map(e=>(0,Z.jsx)(Le,{className:`sticky top-0 bg-background border-b`,children:fe(e.column.columnDef.header,e.getContext())},e.id))})}),(0,Z.jsx)(Re,{children:d.getRowModel().rows.map(e=>(0,Z.jsx)(ze,{className:`hover:bg-accent`,children:e.getVisibleCells().map(e=>(0,Z.jsx)(Be,{className:`border-b`,children:fe(e.column.columnDef.cell,e.getContext())},e.id))},e.id))})]})]})});Ot.displayName=`VariableTable`;var kt=()=>{let e=(0,Y.c)(30),n=o(),i=b(),a=r(w),s=r(x),c=H(`database`),[l,u]=t(tt),d=a.length+s.length,f;e[0]!==d||e[1]!==l.hasUserInteracted||e[2]!==l.openSections?(f=!l.hasUserInteracted&&d>0?[...new Set([...l.openSections,`datasources`])]:l.openSections,e[0]=d,e[1]=l.hasUserInteracted,e[2]=l.openSections,e[3]=f):f=e[3];let m=f,h;e[4]===u?h=e[5]:(h=e=>{u({openSections:e,hasUserInteracted:!0})},e[4]=u,e[5]=h);let g=h,_;e[6]===m?_=e[7]:(_=m.includes(`datasources`),e[6]=m,e[7]=_);let v=!_&&d>0,y=c.length>0,S;e[8]===Symbol.for(`react.memo_cache_sentinel`)?(S=(0,Z.jsx)(xe,{className:`w-4 h-4`}),e[8]=S):S=e[8];let C;e[9]!==d||e[10]!==v?(C=v&&(0,Z.jsx)(Je,{children:d}),e[9]=d,e[10]=v,e[11]=C):C=e[11];let T;e[12]!==c.length||e[13]!==y?(T=y&&(0,Z.jsx)(et,{count:c.length,type:`database`}),e[12]=c.length,e[13]=y,e[14]=T):T=e[14];let E;e[15]!==C||e[16]!==T?(E=(0,Z.jsxs)(Ye,{children:[S,`Data sources`,C,T]}),e[15]=C,e[16]=T,e[17]=E):E=e[17];let D;e[18]===Symbol.for(`react.memo_cache_sentinel`)?(D=(0,Z.jsx)(Xe,{children:(0,Z.jsx)(dt,{})}),e[18]=D):D=e[18];let O;e[19]===E?O=e[20]:(O=(0,Z.jsxs)(Qe,{value:`datasources`,children:[E,D]}),e[19]=E,e[20]=O);let k;e[21]===Symbol.for(`react.memo_cache_sentinel`)?(k=(0,Z.jsxs)(Ye,{children:[(0,Z.jsx)(p,{className:`w-4 h-4`}),`Variables`]}),e[21]=k):k=e[21];let A;e[22]!==i||e[23]!==n?(A=(0,Z.jsxs)(Qe,{value:`variables`,lastItem:!0,children:[k,(0,Z.jsx)(Xe,{children:Object.keys(n).length===0?(0,Z.jsx)(`div`,{className:`px-3 py-4 text-sm text-muted-foreground`,children:`No variables defined`}):(0,Z.jsx)(Ot,{cellIds:i.inOrderIds,variables:n})})]}),e[22]=i,e[23]=n,e[24]=A):A=e[24];let j;return e[25]!==g||e[26]!==m||e[27]!==A||e[28]!==O?(j=(0,Z.jsxs)(ae,{type:`multiple`,value:m,onValueChange:g,className:`flex flex-col h-full overflow-auto`,children:[O,A]}),e[25]=g,e[26]=m,e[27]=A,e[28]=O,e[29]=j):j=e[29],j};export{kt as default};
1
+ import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{c as t,f as n,l as r,u as i}from"./useEvent-Dc9HkKI2.js";import{t as a}from"./react-CUdNIagt.js";import{$r as o,Ai as s,Bi as c,Bt as l,Cn as u,D as d,Gn as f,Ha as p,Hi as m,Ii as h,Ji as g,Ki as _,Kn as v,Li as y,M as b,Mi as x,P as S,Qr as C,Ri as w,Rn as T,Rt as E,Ui as D,Wa as O,Wi as k,Xi as A,Yi as j,Zi as M,_n as ee,c as N,fn as P,gn as F,i as I,jn as L,qi as R,qn as z,ro as te,ti as ne,to as B,yr as V,yt as H,zi as U}from"./cells-Bboj_mzH.js";import{t as W}from"./compiler-runtime-BQ9S8nyo.js";import{s as re}from"./config-BdH5RvM0.js";import{O as G}from"./config-VEBoxYs0.js";import{t as K}from"./ErrorBoundary-B0A5dBH2.js";import{t as ie}from"./cn-ldLVeaqm.js";import{t as q}from"./jsx-runtime-B74pBk57.js";import{r as ae}from"./config-2Nts63h2.js";import{_ as oe,at as J,f as se,g as ce,h as le,it as ue,m as de,nt as fe,ot as pe,rt as me,tt as he,v as ge}from"./JsonOutput-Cx3AQC7R.js";import{t as _e}from"./tooltip-CamoSiGF.js";import{r as ve,t as ye}from"./button-qFeU84ax.js";import{t as be}from"./createLucideIcon-rHn2EdoM.js";import{i as xe}from"./paths-CzfpItSz.js";import{r as Se}from"./useNumberFormatter-C4-_TnkF.js";import{a as Ce,r as we}from"./tree-actions-gTQxtJX8.js";import{a as Te}from"./input-D4bMj5Nb.js";import{n as Ee,o as De}from"./column-preview-B_HNw6Xa.js";import{t as Oe}from"./workflow-nBi9HGeO.js";import{t as ke}from"./copy-icon-DQuttmjH.js";import{l as Ae}from"./arrays-BqUx5USx.js";import{i as je}from"./strings-LjhpYwmx.js";import{r as Me}from"./requests-yTHMxhVa.js";import{t as Ne}from"./context-BFOBKCJB.js";import{n as Pe}from"./useAsyncData-DucTwMkf.js";import{t as Fe}from"./cell-link-BFoYN4G4.js";import{a as Ie,i as Le,n as Re,o as ze,r as Be,t as Ve}from"./table-Dg1KxH-q.js";import{n as He}from"./icons-CVdkfEA3.js";import{t as Ue}from"./useDeepCompareMemoize-DSlTt6u_.js";import{t as We}from"./useAddCell-Cz3QoshN.js";import{t as Ge}from"./empty-state-CzxjZqGW.js";import{n as Ke,t as qe}from"./common-CAoKKAj9.js";import{a as Je,i as Ye,n as Xe,o as Ze,r as Qe,s as $e,t as et}from"./components-Scfns93C.js";import{r as tt}from"./panel-accordion-state-XgB7A-Pf.js";var nt=be(`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`}]]),Y=W(),X=e(a(),1),Z=q(),rt=1;function it(e){return 1.75+e*rt}function at(e){return 3+e*rt}function ot(e){return 3.25+e*rt}var Q={engineEmpty:.75,engine:.75,database:1,tableLoading:2.75,tableSchemaless:2,columnLocal:1.25,columnPreview:2.5};function $(e){return{paddingLeft:`${e}rem`}}var st=n(e=>{let t=e(w),n=e(ne),r=e(I);return Ae(t,e=>{if(!e.variable_name)return-1;let t=Object.values(n).find(t=>t.name===e.variable_name);if(!t)return 0;let i=r.inOrderIds.indexOf(t.declaredBy[0]);return i===-1?0:i})}),ct=G(`marimo:datasources:hideEmpty`,!1,C,{getOnInit:!0});function lt(e){let t=!1,n=[];for(let r of e){if(!k(r)||!m(r)){n.push(r);continue}let e=r.child_schemas??[],i=lt(e);if(r.tables.length===0&&i.length===0){t=!0;continue}if(i===e){n.push(r);continue}t=!0,n.push({...r,child_schemas:i})}return t?n:e}function ut(e){let t=!1,n=[];for(let r of e){if(D(r)&&r.schemas.length===0){t=!0;continue}if(r.schemas.length===0){n.push(r);continue}let e=lt(r.schemas);if(e.length===0){t=!0;continue}if(e===r.schemas){n.push(r);continue}t=!0,n.push({...r,schemas:e})}return t?n:e}var dt=()=>{let e=(0,Y.c)(42),[n,a]=X.useState(``),[o,s]=t(ct),c=i(y),l=r(st),d=r(x),f;bb0:{if(!o){f=d;break bb0}let t,n;e[0]===d?(t=e[1],n=e[2]):(t=!1,n=d.map(e=>{let n=ut(e.databases);return n===e.databases?e:(t=!0,{...e,databases:n})}),e[0]=d,e[1]=t,e[2]=n),f=t?n:d}let p=f;if(l.length===0&&p.length===0){let t;return e[3]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,Z.jsx)(Ge,{title:`No tables found`,description:`Any datasets/dataframes in the global scope will be shown here.`,action:(0,Z.jsx)(Ze,{group:`database`,label:`Add database or catalog`,variant:`outline`,size:`sm`}),icon:(0,Z.jsx)(xe,{})}),e[3]=t):t=e[3],t}let m;e[4]===n?m=e[5]:(m=n.trim(),e[4]=n,e[5]=m);let h=!!m,g;e[6]===c?g=e[7]:(g=e=>{c(e.length>0),a(e)},e[6]=c,e[7]=g);let _;e[8]!==n||e[9]!==g?(_=(0,Z.jsx)(F,{placeholder:`Search tables...`,className:`h-6 m-1`,value:n,onValueChange:g,rootClassName:`flex-1 border-r border-b-0`}),e[8]=n,e[9]=g,e[10]=_):_=e[10];let v;e[11]===h?v=e[12]:(v=h&&(0,Z.jsx)(`button`,{type:`button`,className:`float-right border-b px-2 m-0 h-full hover:bg-accent hover:text-accent-foreground`,onClick:()=>a(``),children:(0,Z.jsx)(Se,{className:`h-4 w-4`})}),e[11]=h,e[12]=v);let b=!o,S;e[13]!==o||e[14]!==s?(S=()=>s(!o),e[13]=o,e[14]=s,e[15]=S):S=e[15];let C;e[16]!==b||e[17]!==S?(C=(0,Z.jsx)(Ce,{"data-testid":`datasources-hide-empty-button`,isVisible:b,onToggle:S,showTooltip:`Show empty schemas and databases`,hideTooltip:`Hide empty schemas and databases`,size:`sm`,className:`px-2 rounded-none focus-visible:outline-hidden`}),e[16]=b,e[17]=S,e[18]=C):C=e[18];let w;e[19]===Symbol.for(`react.memo_cache_sentinel`)?(w=(0,Z.jsx)(Ze,{group:`database`,label:`Add database or catalog`,compact:!0,variant:`ghost`,size:`sm`,className:`px-2 rounded-none focus-visible:outline-hidden`}),e[19]=w):w=e[19];let T;e[20]!==_||e[21]!==v||e[22]!==C?(T=(0,Z.jsxs)(`div`,{className:`flex items-center w-full border-b`,children:[_,v,C,w]}),e[20]=_,e[21]=v,e[22]=C,e[23]=T):T=e[23];let E;if(e[24]!==p||e[25]!==n){let t;e[27]===n?t=e[28]:(t=e=>(0,Z.jsx)(ft,{connection:e,hasChildren:e.databases.length>0,children:e.databases.map(t=>(0,Z.jsx)(gt,{connection:e,database:t,searchValue:n},t.name))},e.name),e[27]=n,e[28]=t),E=p.map(t),e[24]=p,e[25]=n,e[26]=E}else E=e[26];let D;e[29]!==p.length||e[30]!==l.length?(D=p.length>0&&l.length>0&&(0,Z.jsxs)(de,{className:`pr-2`,style:$(Q.engine),children:[(0,Z.jsx)(He,{className:`h-4 w-4 text-muted-foreground`}),(0,Z.jsx)(`span`,{className:`text-xs`,children:`Python`})]}),e[29]=p.length,e[30]=l.length,e[31]=D):D=e[31];let O;e[32]!==n||e[33]!==l?(O=l.length>0&&(0,Z.jsx)(bt,{tables:l,searchValue:n}),e[32]=n,e[33]=l,e[34]=O):O=e[34];let k;e[35]!==E||e[36]!==D||e[37]!==O?(k=(0,Z.jsxs)(u,{className:`flex flex-col`,children:[E,D,O]}),e[35]=E,e[36]=D,e[37]=O,e[38]=k):k=e[38];let A;return e[39]!==k||e[40]!==T?(A=(0,Z.jsxs)(P,{className:`border-b bg-background rounded-none h-full pb-10 overflow-auto outline-hidden`,shouldFilter:!1,children:[T,k]}),e[39]=k,e[40]=T,e[41]=A):A=e[41],A},ft=e=>{let t=(0,Y.c)(26),{connection:n,children:r,hasChildren:i}=e,a=n.name===M,o=a?`In-Memory`:n.name,{previewDataSourceConnection:c}=Me(),l;t[0]!==n.name||t[1]!==c?(l=async()=>{await c({engine:n.name})},t[0]=n.name,t[1]=c,t[2]=l):l=t[2];let u=l,d;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(d=$(Q.engine),t[3]=d):d=t[3];let f;t[4]===n.dialect?f=t[5]:(f=(0,Z.jsx)(L,{className:`h-4 w-4 text-muted-foreground`,name:n.dialect}),t[4]=n.dialect,t[5]=f);let p;t[6]===n.dialect?p=t[7]:(p=s(n.dialect),t[6]=n.dialect,t[7]=p);let m;t[8]===p?m=t[9]:(m=(0,Z.jsx)(`span`,{className:`text-xs`,children:p}),t[8]=p,t[9]=m);let h=o,g;t[10]===h?g=t[11]:(g=(0,Z.jsxs)(`span`,{className:`text-xs text-muted-foreground`,children:[`(`,(0,Z.jsx)($e,{variableName:h}),`)`]}),t[10]=h,t[11]=g);let _;t[12]!==u||t[13]!==a?(_=!a&&(0,Z.jsx)(we,{onClick:u,tooltip:`Refresh connection`,className:`ml-auto h-4 p-0`,iconClassName:`h-3.5 w-3.5`}),t[12]=u,t[13]=a,t[14]=_):_=t[14];let v;t[15]!==f||t[16]!==m||t[17]!==g||t[18]!==_?(v=(0,Z.jsxs)(de,{className:`pr-2`,style:d,children:[f,m,g,_]}),t[15]=f,t[16]=m,t[17]=g,t[18]=_,t[19]=v):v=t[19];let y;t[20]!==r||t[21]!==i?(y=i?r:(0,Z.jsx)(le,{content:`No databases available`,style:$(Q.engineEmpty)}),t[20]=r,t[21]=i,t[22]=y):y=t[22];let b;return t[23]!==y||t[24]!==v?(b=(0,Z.jsxs)(Z.Fragment,{children:[v,y]}),t[23]=y,t[24]=v,t[25]=b):b=t[25],b},pt=X.createContext(null);function mt(){let e=X.useContext(pt);if(e==null)throw Error(`useDataSourceTree must be used within a DataSourceTreeContext.Provider`);return e}function ht(e,{schema:t,schemaPath:n}){return{engine:e.engineName,database:e.databaseName,schema:t,schemaPath:n,defaultSchema:e.defaultSchema,defaultDatabase:e.defaultDatabase,dialect:e.dialect}}var gt=e=>{let t=(0,Y.c)(21),{connection:n,database:r,searchValue:i}=e,a;t[0]!==n.default_database||t[1]!==n.default_schema||t[2]!==n.dialect||t[3]!==n.name||t[4]!==r.name||t[5]!==i?(a={engineName:n.name,databaseName:r.name,dialect:n.dialect,defaultSchema:n.default_schema,defaultDatabase:n.default_database,searchValue:i},t[0]=n.default_database,t[1]=n.default_schema,t[2]=n.dialect,t[3]=n.name,t[4]=r.name,t[5]=i,t[6]=a):a=t[6];let o=a,s=n.name,c=r.schemas,l;t[7]===r?l=t[8]:(l=D(r),t[7]=r,t[8]=l);let u;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(u=[],t[9]=u):u=t[9];let d;t[10]!==r.schemas||t[11]!==l?(d=(0,Z.jsx)(vt,{schemas:c,schemasResolved:l,schemaPath:u,depth:0}),t[10]=r.schemas,t[11]=l,t[12]=d):d=t[12];let f;t[13]!==d||t[14]!==o?(f=(0,Z.jsx)(pt.Provider,{value:o,children:d}),t[13]=d,t[14]=o,t[15]=f):f=t[15];let p;return t[16]!==n.name||t[17]!==r||t[18]!==i||t[19]!==f?(p=(0,Z.jsx)(_t,{engineName:s,database:r,searchValue:i,children:f}),t[16]=n.name,t[17]=r,t[18]=i,t[19]=f,t[20]=p):p=t[20],p},_t=e=>{let t=(0,Y.c)(29),{searchValue:n,engineName:r,database:i,children:a}=e,o;t[0]!==i||t[1]!==n?(o=g(i,n),t[0]=i,t[1]=n,t[2]=o):o=t[2];let s=o,[c,l]=X.useState(s),[u,d]=X.useState(!1),[f,p]=X.useState(n),[m,h]=X.useState(s);(f!==n||m!==s)&&(p(n),h(s),l(s));let _;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(_=$(Q.database),t[3]=_):_=t[3];let v;t[4]!==c||t[5]!==u?(v=()=>{l(!c),d(!u)},t[4]=c,t[5]=u,t[6]=v):v=t[6];let y=`${r}:${i.name}`,b;t[7]===c?b=t[8]:(b=(0,Z.jsx)(ge,{isExpanded:c}),t[7]=c,t[8]=b);let x=u&&c?`text-foreground`:`text-muted-foreground`,S;t[9]===x?S=t[10]:(S=ie(`h-4 w-4`,x),t[9]=x,t[10]=S);let C;t[11]===S?C=t[12]:(C=(0,Z.jsx)(xe,{className:S}),t[11]=S,t[12]=C);let w=u&&c&&`font-semibold`,T;t[13]===w?T=t[14]:(T=ie(w),t[13]=w,t[14]=T);let E;t[15]===i.name?E=t[16]:(E=i.name===``?(0,Z.jsx)(`i`,{children:`Not connected`}):i.name,t[15]=i.name,t[16]=E);let D;t[17]!==T||t[18]!==E?(D=(0,Z.jsx)(`span`,{className:T,children:E}),t[17]=T,t[18]=E,t[19]=D):D=t[19];let O;t[20]!==D||t[21]!==v||t[22]!==y||t[23]!==b||t[24]!==C?(O=(0,Z.jsxs)(ee,{className:`text-sm flex flex-row gap-1 items-center cursor-pointer rounded-none`,style:_,onSelect:v,value:y,children:[b,C,D]}),t[20]=D,t[21]=v,t[22]=y,t[23]=b,t[24]=C,t[25]=O):O=t[25];let k=c&&a,A;return t[26]!==O||t[27]!==k?(A=(0,Z.jsxs)(Z.Fragment,{children:[O,k]}),t[26]=O,t[27]=k,t[28]=A):A=t[28],A},vt=e=>{let{schemas:t,schemasResolved:n,depth:r}=e,i=mt(),{engineName:a,databaseName:o,searchValue:s}=i,{addSchemaList:c}=h(),l=Ue(e.schemaPath),[u,d]=X.useState(!1),{isPending:p,error:m}=Pe(async()=>{if(!n&&a){d(!0);try{let e=await f.request({engine:a,database:o,schemaPath:l});c({schemas:e.schemas??[],sqlSchemaContext:{engine:a,database:o,schemaPath:l}})}finally{d(!1)}}},[n,a,o,l]),g=$(it(r));return p||u?(0,Z.jsx)(oe,{message:`Loading schemas...`,style:g}):m?(0,Z.jsx)(ce,{error:m,style:g}):t.length===0?(0,Z.jsx)(le,{content:`No schemas available`,style:g}):(0,Z.jsx)(Z.Fragment,{children:t.map(e=>_(e.name)?(0,Z.jsx)(bt,{tables:e.tables,tablesResolved:k(e),searchValue:s,sqlTableContext:ht(i,{schema:e.name,schemaPath:l})},e.name):(0,Z.jsx)(yt,{schema:e,schemaPath:[...l,e.name],depth:r},e.name))})},yt=e=>{let t=(0,Y.c)(41),{schema:n,schemaPath:r,depth:i}=e,a=mt(),{databaseName:o,searchValue:s}=a,c;t[0]!==n||t[1]!==s?(c=R(n,s),t[0]=n,t[1]=s,t[2]=c):c=t[2];let l=c,[u,d]=X.useState(l),[f,p]=X.useState(!1),[h,g]=X.useState(s),[_,v]=X.useState(l),y;t[3]===r?y=t[4]:(y=r.join(`.`),t[3]=r,t[4]=y);let b=`${o}:${y}`,x;t[5]===n.child_schemas?x=t[6]:(x=n.child_schemas??[],t[5]=n.child_schemas,t[6]=x);let S=x;(h!==s||_!==l)&&(g(s),v(l),d(l));let C;t[7]===i?C=t[8]:(C=$(it(i)),t[7]=i,t[8]=C);let w;t[9]!==u||t[10]!==f?(w=()=>{d(!u),p(!f)},t[9]=u,t[10]=f,t[11]=w):w=t[11];let T;t[12]===u?T=t[13]:(T=(0,Z.jsx)(ge,{isExpanded:u}),t[12]=u,t[13]=T);let E=f&&u&&`text-foreground`,D;t[14]===E?D=t[15]:(D=ie(`h-4 w-4 text-muted-foreground`,E),t[14]=E,t[15]=D);let O;t[16]===D?O=t[17]:(O=(0,Z.jsx)(B,{className:D}),t[16]=D,t[17]=O);let A=f&&u&&`font-semibold`,j;t[18]===A?j=t[19]:(j=ie(A),t[18]=A,t[19]=j);let M;t[20]!==n.name||t[21]!==j?(M=(0,Z.jsx)(`span`,{className:j,children:n.name}),t[20]=n.name,t[21]=j,t[22]=M):M=t[22];let N;t[23]!==M||t[24]!==C||t[25]!==w||t[26]!==T||t[27]!==O||t[28]!==b?(N=(0,Z.jsxs)(ee,{className:`text-sm flex flex-row gap-1 items-center cursor-pointer rounded-none`,style:C,onSelect:w,value:b,children:[T,O,M]}),t[23]=M,t[24]=C,t[25]=w,t[26]=T,t[27]=O,t[28]=b,t[29]=N):N=t[29];let P;t[30]!==S||t[31]!==i||t[32]!==u||t[33]!==n||t[34]!==r||t[35]!==s||t[36]!==a?(P=u&&(0,Z.jsxs)(Z.Fragment,{children:[(S.length>0||!m(n))&&(0,Z.jsx)(vt,{schemas:S,schemasResolved:m(n),schemaPath:r,depth:i+1}),(0,Z.jsx)(bt,{tables:n.tables,tablesResolved:k(n),searchValue:s,tableIndentRem:at(i),columnIndentRem:ot(i),sqlTableContext:ht(a,{schema:n.name,schemaPath:r})})]}),t[30]=S,t[31]=i,t[32]=u,t[33]=n,t[34]=r,t[35]=s,t[36]=a,t[37]=P):P=t[37];let F;return t[38]!==N||t[39]!==P?(F=(0,Z.jsxs)(Z.Fragment,{children:[N,P]}),t[38]=N,t[39]=P,t[40]=F):F=t[40],F},bt=e=>{let t=(0,Y.c)(31),{tables:n,sqlTableContext:r,searchValue:i,tablesResolved:a,tableIndentRem:o,columnIndentRem:s}=e,c=a===void 0||a,{addTableList:l}=h(),[u,d]=X.useState(!1),f;t[0]!==l||t[1]!==r||t[2]!==c?(f=async()=>{if(!c&&r){d(!0);let{engine:e,database:t,schema:n,schemaPath:i}=r,a=await z.request({engine:e,database:t,schema:n,schemaPath:i??[]});if(!a?.tables)throw d(!1),Error(`No tables available`);l({tables:a.tables,sqlTableContext:r}),d(!1)}},t[0]=l,t[1]=r,t[2]=c,t[3]=f):f=t[3];let p;t[4]!==r||t[5]!==c?(p=[c,r],t[4]=r,t[5]=c,t[6]=p):p=t[6];let{isPending:m,error:g}=Pe(f,p),_=o??Q.tableLoading,v;t[7]===_?v=t[8]:(v=$(_),t[7]=_,t[8]=v);let y=v;if(m||u){let e;return t[9]===y?e=t[10]:(e=(0,Z.jsx)(oe,{message:`Loading tables...`,style:y}),t[9]=y,t[10]=e),e}if(g){let e;return t[11]!==g||t[12]!==y?(e=(0,Z.jsx)(ce,{error:g,style:y}),t[11]=g,t[12]=y,t[13]=e):e=t[13],e}if(n.length===0){let e;return t[14]===y?e=t[15]:(e=(0,Z.jsx)(le,{content:`No tables found`,style:y}),t[14]=y,t[15]=e),e}let b;if(t[16]!==s||t[17]!==i||t[18]!==r||t[19]!==o||t[20]!==n){let e;t[22]===i?e=t[23]:(e=e=>!i||e.name.toLowerCase().includes(i.toLowerCase()),t[22]=i,t[23]=e);let a=n.filter(e),c;t[24]!==s||t[25]!==i||t[26]!==r||t[27]!==o?(c=e=>(0,Z.jsx)(xt,{table:e,sqlTableContext:r,isSearching:!!i,tableIndentRem:o,columnIndentRem:s},e.name),t[24]=s,t[25]=i,t[26]=r,t[27]=o,t[28]=c):c=t[28],b=a.map(c),t[16]=s,t[17]=i,t[18]=r,t[19]=o,t[20]=n,t[21]=b}else b=t[21];let x;return t[29]===b?x=t[30]:(x=(0,Z.jsx)(Z.Fragment,{children:b}),t[29]=b,t[30]=x),x},xt=e=>{let t=(0,Y.c)(69),{table:n,sqlTableContext:i,isSearching:a,tableIndentRem:o,columnIndentRem:s}=e,{addTable:c}=h(),[u,f]=X.useState(!1),p=n.columns.length>0,m;t[0]!==c||t[1]!==u||t[2]!==i||t[3]!==n.name||t[4]!==p?(m=async()=>{if(u&&!p&&i){let{engine:e,database:t,schema:r,schemaPath:a}=i,o=await v.request({engine:e,database:t,schema:r,tableName:n.name,schemaPath:a??[]});if(!o?.table)throw Error(`No table details available`);c({table:o.table,sqlTableContext:i})}},t[0]=c,t[1]=u,t[2]=i,t[3]=n.name,t[4]=p,t[5]=m):m=t[5];let g;t[6]!==u||t[7]!==p?(g=[u,p],t[6]=u,t[7]=p,t[8]=g):g=t[8];let{isFetching:_,isPending:y,error:b}=Pe(m,g),x=r(re),S=E(),{createNewCell:C}=d(),w=We(),T;t[9]!==w||t[10]!==x||t[11]!==C||t[12]!==S||t[13]!==i||t[14]!==n?(T=()=>{l({autoInstantiate:x,createNewCell:C,fromCellId:S}),w((()=>{if(n.source_type===`catalog`){let e=i?.database?[i.database,...i.schemaPath??[],n.name].join(`.`):n.name;return`${n.engine}.load_table("${e}")`}if(i)return j({table:n,columnName:`*`,sqlTableContext:i});switch(n.source_type){case`local`:return`mo.ui.table(${n.name})`;case`duckdb`:case`connection`:return j({table:n,columnName:`*`,sqlTableContext:i});default:return je(n.source_type),``}})())},t[9]=w,t[10]=x,t[11]=C,t[12]=S,t[13]=i,t[14]=n,t[15]=T):T=t[15];let D=T,k;t[16]!==n.num_columns||t[17]!==n.num_rows?(k=()=>{let e=[];return n.num_rows!=null&&e.push(`${n.num_rows} rows`),n.num_columns!=null&&e.push(`${n.num_columns} columns`),e.length===0?null:(0,Z.jsx)(`div`,{className:`flex flex-row gap-2 items-center pl-6 group-hover:hidden`,children:(0,Z.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:e.join(`, `)})})},t[16]=n.num_columns,t[17]=n.num_rows,t[18]=k):k=t[18];let M=k,N;t[19]!==s||t[20]!==b||t[21]!==_||t[22]!==y||t[23]!==i||t[24]!==n?(N=()=>{let e=$(s??Q.tableLoading);if(y||_)return(0,Z.jsx)(oe,{message:`Loading columns...`,style:e});if(b)return(0,Z.jsx)(ce,{error:b,style:e});let t=n.columns;return t.length===0?(0,Z.jsx)(le,{content:`No columns found`,style:e}):t.map(e=>(0,Z.jsx)(St,{table:n,column:e,sqlTableContext:i,columnIndentRem:s},e.name))},t[19]=s,t[20]=b,t[21]=_,t[22]=y,t[23]=i,t[24]=n,t[25]=N):N=t[25];let P=N,F;t[26]!==u||t[27]!==a||t[28]!==n.source_type||t[29]!==n.type?(F=()=>{if(n.source_type===`local`)return;let e=n.type===`table`?O:te;return(0,Z.jsx)(e,{className:`h-3 w-3`,strokeWidth:u||a?2.5:void 0})},t[26]=u,t[27]=a,t[28]=n.source_type,t[29]=n.type,t[30]=F):F=t[30];let I=F,L;t[31]!==i||t[32]!==n.name?(L=A(i,n.name),t[31]=i,t[32]=n.name,t[33]=L):L=t[33];let R=L,z=o??(i?Q.tableSchemaless:0),ne=(u||a)&&`font-semibold`,B;t[34]===ne?B=t[35]:(B=ie(`rounded-none group h-8 cursor-pointer`,ne),t[34]=ne,t[35]=B);let V;t[36]===z?V=t[37]:(V=$(z),t[36]=z,t[37]=V);let H;t[38]===u?H=t[39]:(H=()=>f(!u),t[38]=u,t[39]=H);let U;t[40]===I?U=t[41]:(U=I(),t[40]=I,t[41]=U);let W;t[42]===n.name?W=t[43]:(W=(0,Z.jsx)(`span`,{className:`text-sm`,children:n.name}),t[42]=n.name,t[43]=W);let G;t[44]!==U||t[45]!==W?(G=(0,Z.jsxs)(`div`,{className:`flex gap-2 items-center flex-1 pl-1`,children:[U,W]}),t[44]=U,t[45]=W,t[46]=G):G=t[46];let K;t[47]===M?K=t[48]:(K=M(),t[47]=M,t[48]=K);let q;t[49]===D?q=t[50]:(q=ve.stopPropagation(()=>D()),t[49]=D,t[50]=q);let ae;t[51]===Symbol.for(`react.memo_cache_sentinel`)?(ae=(0,Z.jsx)(De,{className:`h-3 w-3`}),t[51]=ae):ae=t[51];let J;t[52]===q?J=t[53]:(J=(0,Z.jsx)(_e,{content:`Add table to notebook`,delayDuration:400,children:(0,Z.jsx)(ye,{className:`group-hover:inline-flex hidden`,variant:`text`,size:`icon`,onClick:q,children:ae})}),t[52]=q,t[53]=J);let se;t[54]!==u||t[55]!==V||t[56]!==H||t[57]!==G||t[58]!==K||t[59]!==J||t[60]!==B||t[61]!==R?(se=(0,Z.jsxs)(ee,{className:B,style:V,value:R,"aria-selected":u,forceMount:!0,onSelect:H,children:[G,K,J]}),t[54]=u,t[55]=V,t[56]=H,t[57]=G,t[58]=K,t[59]=J,t[60]=B,t[61]=R,t[62]=se):se=t[62];let ue;t[63]!==u||t[64]!==P?(ue=u&&P(),t[63]=u,t[64]=P,t[65]=ue):ue=t[65];let de;return t[66]!==se||t[67]!==ue?(de=(0,Z.jsxs)(Z.Fragment,{children:[se,ue]}),t[66]=se,t[67]=ue,t[68]=de):de=t[68],de},St=e=>{let t=(0,Y.c)(51),{table:n,column:a,sqlTableContext:o,columnIndentRem:s}=e,[l,u]=X.useState(!1),d=r(y),f=i(U);d&&l&&u(!1),f(l?e=>new Set([...e,`${n.name}:${a.name}`]):e=>(e.delete(`${n.name}:${a.name}`),new Set(e)));let p=We(),{columnsPreviews:m}=c(),h;t[0]!==a.name||t[1]!==n.primary_keys?(h=n.primary_keys?.includes(a.name)||!1,t[0]=a.name,t[1]=n.primary_keys,t[2]=h):h=t[2];let g=h,_;t[3]!==a.name||t[4]!==n.indexes?(_=n.indexes?.includes(a.name)||!1,t[3]=a.name,t[4]=n.indexes,t[5]=_):_=t[5];let v=_,b;t[6]===p?b=t[7]:(b=e=>{p(e)},t[6]=p,t[7]=b);let x=b,S=Ct,C=l?`font-semibold`:``,w;t[8]!==a.name||t[9]!==C?(w=(0,Z.jsx)(`span`,{className:C,children:a.name}),t[8]=a.name,t[9]=C,t[10]=w):w=t[10];let T=w,E=`${n.name}.${a.name}`,D=`${n.name}.${a.name}`,O;t[11]===l?O=t[12]:(O=()=>u(!l),t[11]=l,t[12]=O);let k;t[13]!==s||t[14]!==o?(k=s??(o?ot(0):Q.columnLocal),t[13]=s,t[14]=o,t[15]=k):k=t[15];let A;t[16]===k?A=t[17]:(A=$(k),t[16]=k,t[17]=A);let j;t[18]!==a.type||t[19]!==T?(j=(0,Z.jsx)(se,{columnName:T,dataType:a.type}),t[18]=a.type,t[19]=T,t[20]=j):j=t[20];let M;t[21]===g?M=t[22]:(M=g&&S({tooltipContent:`Primary key`,content:`PK`}),t[21]=g,t[22]=M);let N;t[23]===v?N=t[24]:(N=v&&S({tooltipContent:`Indexed`,content:`IDX`}),t[23]=v,t[24]=N);let P;t[25]!==A||t[26]!==j||t[27]!==M||t[28]!==N?(P=(0,Z.jsxs)(`div`,{className:`flex flex-row gap-2 items-center flex-1`,style:A,children:[j,M,N]}),t[25]=A,t[26]=j,t[27]=M,t[28]=N,t[29]=P):P=t[29];let F;t[30]===a.name?F=t[31]:(F=(0,Z.jsx)(_e,{content:`Copy column name`,delayDuration:400,children:(0,Z.jsx)(ye,{variant:`text`,size:`icon`,className:`group-hover:opacity-100 opacity-0 hover:bg-muted text-muted-foreground hover:text-foreground`,children:(0,Z.jsx)(ke,{tooltip:!1,value:a.name,className:`h-3 w-3`})})}),t[30]=a.name,t[31]=F);let I;t[32]===a.external_type?I=t[33]:(I=(0,Z.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:a.external_type}),t[32]=a.external_type,t[33]=I);let L;t[34]!==P||t[35]!==F||t[36]!==I||t[37]!==E||t[38]!==D||t[39]!==O?(L=(0,Z.jsxs)(ee,{className:`rounded-none py-1 group cursor-pointer`,value:D,onSelect:O,children:[P,F,I]},E),t[34]=P,t[35]=F,t[36]=I,t[37]=E,t[38]=D,t[39]=O,t[40]=L):L=t[40];let R;t[41]!==a||t[42]!==m||t[43]!==x||t[44]!==l||t[45]!==o||t[46]!==n?(R=l&&(0,Z.jsx)(`div`,{className:`pr-2 py-2 bg-(--slate-1) shadow-inner border-b`,style:$(Q.columnPreview),children:(0,Z.jsx)(K,{children:(0,Z.jsx)(Ee,{table:n,column:a,onAddColumnChart:x,preview:m.get(o?`${o.database}.${o.schema}.${n.name}:${a.name}`:`${n.name}:${a.name}`),sqlTableContext:o})})}),t[41]=a,t[42]=m,t[43]=x,t[44]=l,t[45]=o,t[46]=n,t[47]=R):R=t[47];let z;return t[48]!==L||t[49]!==R?(z=(0,Z.jsxs)(Z.Fragment,{children:[L,R]}),t[48]=L,t[49]=R,t[50]=z):z=t[50],z};function Ct(e){let{tooltipContent:t,content:n}=e;return(0,Z.jsx)(_e,{content:t,delayDuration:100,children:(0,Z.jsx)(`span`,{className:`text-xs text-black bg-gray-100 dark:invert rounded px-1`,children:n})})}function wt(e){return e}var Tt={name:`name`,type:`type-value`,defs:`defs-refs`},Et=[wt({id:Tt.name,accessorFn:e=>[e.name,e.declaredBy],enableSorting:!0,sortingFn:`alphanumeric`,header:({column:e})=>(0,Z.jsx)(he,{header:`Name`,column:e}),cell:({getValue:e})=>{let[t,n]=e();return(0,Z.jsx)(qe,{name:t,declaredBy:n})}}),wt({id:Tt.type,accessorFn:e=>[e.dataType,e.value],enableSorting:!0,sortingFn:`alphanumeric`,header:({column:e})=>(0,Z.jsx)(he,{header:(0,Z.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Z.jsx)(`span`,{children:`Type`}),(0,Z.jsx)(`span`,{children:`Value`})]}),column:e}),cell:({getValue:e})=>{let[t,n]=e();return(0,Z.jsxs)(`div`,{className:`max-w-[150px]`,children:[(0,Z.jsx)(`div`,{className:`text-ellipsis overflow-hidden whitespace-nowrap text-muted-foreground font-mono text-xs`,children:t}),(0,Z.jsx)(`div`,{className:`text-ellipsis overflow-hidden whitespace-nowrap`,title:n??``,children:n})]})}}),wt({id:Tt.defs,accessorFn:e=>[e.declaredBy,e.usedBy,e.name,e.declaredByNames,e.usedByNames],enableSorting:!0,sortingFn:`basic`,header:({column:e})=>(0,Z.jsx)(he,{header:(0,Z.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Z.jsx)(`span`,{children:`Declared By`}),(0,Z.jsx)(`span`,{children:`Used By`})]}),column:e}),cell:({getValue:e})=>{let[t,n,r]=e(),i=e=>{let t=N(e);t&&V(t,r)};return(0,Z.jsxs)(`div`,{className:`flex flex-col gap-1 py-1`,children:[(0,Z.jsxs)(`div`,{className:`flex flex-row overflow-auto gap-2 items-center`,children:[(0,Z.jsx)(`span`,{title:`Declared by`,children:(0,Z.jsx)(nt,{className:`w-3.5 h-3.5 text-muted-foreground`})}),t.length===1?(0,Z.jsx)(Fe,{variant:`focus`,cellId:t[0],skipScroll:!0,onClick:()=>i(t[0])}):(0,Z.jsx)(`div`,{className:`text-destructive flex flex-row gap-2`,children:t.slice(0,3).map((e,n)=>(0,Z.jsxs)(`span`,{className:`flex`,children:[(0,Z.jsx)(Fe,{variant:`focus`,cellId:e,skipScroll:!0,className:`whitespace-nowrap text-destructive`,onClick:()=>i(e)},e),n<t.length-1&&`, `]},e))})]}),(0,Z.jsxs)(`div`,{className:`flex flex-row overflow-auto gap-2 items-baseline`,children:[(0,Z.jsx)(`span`,{title:`Used by`,children:(0,Z.jsx)(Oe,{className:`w-3.5 h-3.5 text-muted-foreground`})}),(0,Z.jsx)(Ke,{maxCount:3,cellIds:n,skipScroll:!0,onClick:i})]})]})}})];function Dt({variables:e,sort:t,cellIdToIndex:n}){t||={id:Tt.defs,desc:!1};let r=[];switch(t.id){case Tt.name:r=Ae(e,e=>e.name);break;case Tt.type:r=Ae(e,e=>e.dataType);break;case Tt.defs:r=Ae(e,e=>n.get(e.declaredBy[0]))}return t.desc?r.toReversed():r}var Ot=(0,X.memo)(({className:e,cellIds:t,variables:n})=>{let[r,i]=X.useState([]),[a,o]=X.useState(``),s=S(),{locale:c}=Ne(),l=(0,X.useMemo)(()=>{let e=e=>{let n=s[e];return T(n)?`cell-${t.indexOf(e)}`:n??`cell-${t.indexOf(e)}`};return Object.values(n).map(t=>({...t,declaredByNames:t.declaredBy.map(e),usedByNames:t.usedBy.map(e)}))},[n,s,t]),u=(0,X.useMemo)(()=>{let e=new Map;return t.forEach((t,n)=>e.set(t,n)),Dt({variables:l,sort:r[0],cellIdToIndex:e})},[l,r,t]),d=me({data:u,columns:Et,getCoreRowModel:ue(),onGlobalFilterChange:o,getFilteredRowModel:J(),enableFilters:!0,enableGlobalFilter:!0,enableColumnPinning:!1,getColumnCanGlobalFilter(e){return e.columnDef.enableGlobalFilter??!0},globalFilterFn:`auto`,manualSorting:!0,locale:c,onSortingChange:i,getSortedRowModel:pe(),state:{sorting:r,globalFilter:a}});return(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(Te,{className:`w-full`,placeholder:`Search`,value:a,onChange:e=>o(e.target.value)}),(0,Z.jsxs)(Ve,{className:ie(`w-full text-sm flex-1 border-separate border-spacing-0`,e),children:[(0,Z.jsx)(Ie,{children:(0,Z.jsx)(ze,{className:`whitespace-nowrap text-xs`,children:d.getFlatHeaders().map(e=>(0,Z.jsx)(Le,{className:`sticky top-0 bg-background border-b`,children:fe(e.column.columnDef.header,e.getContext())},e.id))})}),(0,Z.jsx)(Re,{children:d.getRowModel().rows.map(e=>(0,Z.jsx)(ze,{className:`hover:bg-accent`,children:e.getVisibleCells().map(e=>(0,Z.jsx)(Be,{className:`border-b`,children:fe(e.column.columnDef.cell,e.getContext())},e.id))},e.id))})]})]})});Ot.displayName=`VariableTable`;var kt=()=>{let e=(0,Y.c)(30),n=o(),i=b(),a=r(w),s=r(x),c=H(`database`),[l,u]=t(tt),d=a.length+s.length,f;e[0]!==d||e[1]!==l.hasUserInteracted||e[2]!==l.openSections?(f=!l.hasUserInteracted&&d>0?[...new Set([...l.openSections,`datasources`])]:l.openSections,e[0]=d,e[1]=l.hasUserInteracted,e[2]=l.openSections,e[3]=f):f=e[3];let m=f,h;e[4]===u?h=e[5]:(h=e=>{u({openSections:e,hasUserInteracted:!0})},e[4]=u,e[5]=h);let g=h,_;e[6]===m?_=e[7]:(_=m.includes(`datasources`),e[6]=m,e[7]=_);let v=!_&&d>0,y=c.length>0,S;e[8]===Symbol.for(`react.memo_cache_sentinel`)?(S=(0,Z.jsx)(xe,{className:`w-4 h-4`}),e[8]=S):S=e[8];let C;e[9]!==d||e[10]!==v?(C=v&&(0,Z.jsx)(Je,{children:d}),e[9]=d,e[10]=v,e[11]=C):C=e[11];let T;e[12]!==c.length||e[13]!==y?(T=y&&(0,Z.jsx)(et,{count:c.length,type:`database`}),e[12]=c.length,e[13]=y,e[14]=T):T=e[14];let E;e[15]!==C||e[16]!==T?(E=(0,Z.jsxs)(Ye,{children:[S,`Data sources`,C,T]}),e[15]=C,e[16]=T,e[17]=E):E=e[17];let D;e[18]===Symbol.for(`react.memo_cache_sentinel`)?(D=(0,Z.jsx)(Xe,{children:(0,Z.jsx)(dt,{})}),e[18]=D):D=e[18];let O;e[19]===E?O=e[20]:(O=(0,Z.jsxs)(Qe,{value:`datasources`,children:[E,D]}),e[19]=E,e[20]=O);let k;e[21]===Symbol.for(`react.memo_cache_sentinel`)?(k=(0,Z.jsxs)(Ye,{children:[(0,Z.jsx)(p,{className:`w-4 h-4`}),`Variables`]}),e[21]=k):k=e[21];let A;e[22]!==i||e[23]!==n?(A=(0,Z.jsxs)(Qe,{value:`variables`,lastItem:!0,children:[k,(0,Z.jsx)(Xe,{children:Object.keys(n).length===0?(0,Z.jsx)(`div`,{className:`px-3 py-4 text-sm text-muted-foreground`,children:`No variables defined`}):(0,Z.jsx)(Ot,{cellIds:i.inOrderIds,variables:n})})]}),e[22]=i,e[23]=n,e[24]=A):A=e[24];let j;return e[25]!==g||e[26]!==m||e[27]!==A||e[28]!==O?(j=(0,Z.jsxs)(ae,{type:`multiple`,value:m,onValueChange:g,className:`flex flex-col h-full overflow-auto`,children:[O,A]}),e[25]=g,e[26]=m,e[27]=A,e[28]=O,e[29]=j):j=e[29],j};export{kt as default};
@@ -1 +1 @@
1
- import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{t}from"./react-CUdNIagt.js";import{Cn as n,D as r,Rt as i,_n as a,fn as o,gn as s,mn as c}from"./cells-DIjn-wIE.js";import{t as l}from"./compiler-runtime-BQ9S8nyo.js";import{n as u}from"./useEventListener-CUPWI_1X.js";import{r as d}from"./utils-B4K466FK.js";import{t as f}from"./cn-ldLVeaqm.js";import{t as p}from"./jsx-runtime-B74pBk57.js";import{t as m}from"./tooltip-CamoSiGF.js";import{t as h}from"./button-qFeU84ax.js";import{n as g,t as _}from"./LazyAnyLanguageCodeMirror-91eGNw7v.js";import{r as v}from"./useNumberFormatter-C4-_TnkF.js";import{b as y}from"./write-secret-modal-wFgr-1dA.js";import{t as b}from"./spinner-CGdRKCnw.js";import{t as x}from"./plus-gbN72xHe.js";import{Gt as S,Kt as C,Wt as w,Xt as T,qt as E}from"./input-D4bMj5Nb.js";import{st as D}from"./dist-Cny7_yZb.js";import{r as O}from"./requests-yTHMxhVa.js";import{r as k}from"./useTheme-CnWB5G1X.js";import{n as A}from"./useAsyncData-DucTwMkf.js";import{t as j}from"./RenderHTML-ClrDrx3F.js";import{n as M}from"./error-banner-EjYF86IQ.js";import{n as N,r as P,t as F}from"./react-resizable-panels.browser.esm-BL2E7f5c.js";import{t as I}from"./empty-state-CzxjZqGW.js";import{n as L,r as R}from"./panel-context-BPaQeOuV.js";import{t as z}from"./readonly-code-display-DVP0M5ji.js";import{t as B}from"./kiosk-mode-Cvh6wszH.js";var V=e(t(),1),H=l(),U=p(),W=u,G=e=>{let t=(0,H.c)(6),{children:n}=e,{openModal:r,closeModal:i}=y(),a;t[0]!==i||t[1]!==r?(a=()=>r((0,U.jsx)(K,{onClose:i})),t[0]=i,t[1]=r,t[2]=a):a=t[2];let o;return t[3]!==n||t[4]!==a?(o=(0,U.jsx)(W,{onClick:a,children:n}),t[3]=n,t[4]=a,t[5]=o):o=t[5],o},K=e=>{let t=(0,H.c)(4),{onClose:n}=e,r;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,U.jsx)(T,{children:`Contribute a Snippet`}),t[0]=r):r=t[0];let i;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,U.jsxs)(E,{children:[r,(0,U.jsxs)(S,{children:[`Have a useful snippet you want to share with the community? Make a pull request`,` `,(0,U.jsx)(`a`,{href:d.githubPage,target:`_blank`,rel:`noreferrer`,className:`underline`,children:`on GitHub`}),`.`]})]}),t[1]=i):i=t[1];let a;return t[2]===n?a=t[3]:(a=(0,U.jsxs)(w,{className:`max-w-md`,children:[i,(0,U.jsx)(C,{children:(0,U.jsx)(h,{"data-testid":`snippet-close-button`,variant:`default`,onClick:n,children:`Close`})})]}),t[2]=n,t[3]=a),a},q=[D.lineWrapping],J=()=>{let e=(0,H.c)(24),{readSnippets:t}=O(),[n,r]=V.useState(),i=L(),a=R(),l;e[0]===t?l=e[1]:(l=()=>t(),e[0]=t,e[1]=l);let u;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(u=[],e[2]=u):u=e[2];let{data:d,error:p,isPending:m}=A(l,u);if(p){let t;return e[3]===p?t=e[4]:(t=(0,U.jsx)(M,{error:p}),e[3]=p,e[4]=t),t}if(m||!d){let t;return e[5]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,U.jsx)(b,{size:`medium`,centered:!0}),e[5]=t):t=e[5],t}let h=i===`vertical`,g;e[6]===Symbol.for(`react.memo_cache_sentinel`)?(g=(0,U.jsx)(s,{placeholder:`Search snippets...`,className:`h-6 m-1`,rootClassName:`flex-1 border-r`}),e[6]=g):g=e[6];let _,v;e[7]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,U.jsxs)(`div`,{className:`flex items-center w-full border-b`,children:[g,(0,U.jsx)(G,{children:(0,U.jsx)(`button`,{className:`float-right px-2 m-0 h-full hover:bg-accent hover:text-accent-foreground`,children:(0,U.jsx)(x,{className:`h-4 w-4`})})})]}),v=(0,U.jsx)(c,{children:`No results`}),e[7]=_,e[8]=v):(_=e[7],v=e[8]);let y;e[9]===Symbol.for(`react.memo_cache_sentinel`)?(y=e=>r(e),e[9]=y):y=e[9];let S;e[10]===d.snippets?S=e[11]:(S=(0,U.jsx)(F,{defaultSize:40,minSize:20,maxSize:70,children:(0,U.jsxs)(o,{className:`h-full rounded-none`,children:[_,v,(0,U.jsx)(X,{onSelect:y,snippets:d.snippets})]})}),e[10]=d.snippets,e[11]=S);let C=h?`h-1`:`w-1`,w;e[12]===C?w=e[13]:(w=f(`bg-border hover:bg-primary/50 transition-colors`,C),e[12]=C,e[13]=w);let T;e[14]===w?T=e[15]:(T=(0,U.jsx)(P,{className:w}),e[14]=w,e[15]=T);let E;e[16]===n?E=e[17]:(E=(0,U.jsx)(F,{defaultSize:60,minSize:20,children:(0,U.jsx)(V.Suspense,{children:(0,U.jsx)(`div`,{className:`h-full snippet-viewer flex flex-col overflow-hidden`,children:n?(0,U.jsx)(Y,{snippet:n,onClose:()=>r(void 0)},n.title):(0,U.jsx)(I,{title:``,description:`Click on a snippet to view its content.`})})})}),e[16]=n,e[17]=E);let D;return e[18]!==i||e[19]!==a||e[20]!==E||e[21]!==S||e[22]!==T?(D=(0,U.jsx)(`div`,{className:`flex-1 overflow-hidden h-full`,children:(0,U.jsxs)(N,{direction:i,className:`h-full`,children:[S,T,E]},a)}),e[18]=i,e[19]=a,e[20]=E,e[21]=S,e[22]=T,e[23]=D):D=e[23],D},Y=e=>{let t=(0,H.c)(33),{snippet:n,onClose:a}=e,{theme:o}=k(),{createNewCell:s}=r(),c=i(),l;t[0]!==s||t[1]!==c||t[2]!==n.sections?(l=()=>{for(let e of n.sections.toReversed())e.code&&s({code:e.code,before:!1,cellId:c??`__end__`,skipIfCodeExists:!0})},t[0]=s,t[1]=c,t[2]=n.sections,t[3]=l):l=t[3];let u=l,d;t[4]!==s||t[5]!==c?(d=e=>{s({code:e,before:!1,cellId:c??`__end__`})},t[4]=s,t[5]=c,t[6]=d):d=t[6];let f=d,p;t[7]===n.title?p=t[8]:(p=(0,U.jsx)(`span`,{children:n.title}),t[7]=n.title,t[8]=p);let y;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(y=(0,U.jsx)(v,{className:`h-4 w-4`}),t[9]=y):y=t[9];let b;t[10]===a?b=t[11]:(b=(0,U.jsx)(h,{size:`sm`,variant:`ghost`,onClick:a,className:`h-6 w-6 p-0 hover:bg-muted-foreground/10`,children:y}),t[10]=a,t[11]=b);let x;t[12]!==p||t[13]!==b?(x=(0,U.jsxs)(`div`,{className:`text-sm font-semibold bg-muted border-y px-2 py-1 flex justify-between items-center`,children:[p,b]}),t[12]=p,t[13]=b,t[14]=x):x=t[14];let S;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(S=(0,U.jsx)(g,{className:`ml-2 h-4 w-4`}),t[15]=S):S=t[15];let C;t[16]===u?C=t[17]:(C=(0,U.jsx)(`div`,{className:`flex justify-end`,children:(0,U.jsx)(B,{children:(0,U.jsxs)(h,{className:`float-right`,size:`xs`,variant:`outline`,onClick:u,children:[`Insert snippet`,S]})})}),t[16]=u,t[17]=C);let w;if(t[18]!==f||t[19]!==n.sections||t[20]!==n.title||t[21]!==o){let e;t[23]!==f||t[24]!==n.title||t[25]!==o?(e=e=>{let{code:t,html:r,id:i}=e;if(r)return(0,U.jsx)(`div`,{children:j({html:r})},`${n.title}-${i}`);if(!t)return null;let{language:a,code:s}=z(t);return(0,U.jsxs)(`div`,{className:`relative hover-actions-parent pr-2`,children:[(0,U.jsx)(B,{children:(0,U.jsx)(m,{content:`Insert snippet`,children:(0,U.jsx)(h,{className:`absolute -top-2 -right-1 z-10 hover-action px-2 bg-background`,size:`sm`,variant:`outline`,onClick:()=>{f(t)},children:(0,U.jsx)(g,{className:`h-5 w-5`})})})}),(0,U.jsx)(V.Suspense,{children:(0,U.jsx)(_,{theme:o===`dark`?`dark`:`light`,language:a,className:`cm border rounded overflow-hidden`,extensions:q,value:s,readOnly:!0},`${n.title}-${i}`)})]},`${n.title}-${i}`)},t[23]=f,t[24]=n.title,t[25]=o,t[26]=e):e=t[26],w=n.sections.map(e),t[18]=f,t[19]=n.sections,t[20]=n.title,t[21]=o,t[22]=w}else w=t[22];let T;t[27]!==C||t[28]!==w?(T=(0,U.jsxs)(`div`,{className:`px-2 py-2 space-y-4 overflow-auto flex-1`,children:[C,w]}),t[27]=C,t[28]=w,t[29]=T):T=t[29];let E;return t[30]!==T||t[31]!==x?(E=(0,U.jsxs)(U.Fragment,{children:[x,T]}),t[30]=T,t[31]=x,t[32]=E):E=t[32],E},X=e=>{let t=(0,H.c)(7),{snippets:r,onSelect:i}=e,o;if(t[0]!==i||t[1]!==r){let e;t[3]===i?e=t[4]:(e=e=>(0,U.jsx)(a,{className:`rounded-none`,onSelect:()=>i(e),children:(0,U.jsx)(`div`,{className:`flex flex-row gap-2 items-center`,children:(0,U.jsx)(`span`,{className:`mt-1 text-accent-foreground`,children:e.title})})},e.title),t[3]=i,t[4]=e),o=r.map(e),t[0]=i,t[1]=r,t[2]=o}else o=t[2];let s;return t[5]===o?s=t[6]:(s=(0,U.jsx)(n,{className:`flex flex-col overflow-auto`,children:o}),t[5]=o,t[6]=s),s};export{J as default};
1
+ import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{t}from"./react-CUdNIagt.js";import{Cn as n,D as r,Rt as i,_n as a,fn as o,gn as s,mn as c}from"./cells-Bboj_mzH.js";import{t as l}from"./compiler-runtime-BQ9S8nyo.js";import{n as u}from"./useEventListener-CUPWI_1X.js";import{r as d}from"./utils-B4K466FK.js";import{t as f}from"./cn-ldLVeaqm.js";import{t as p}from"./jsx-runtime-B74pBk57.js";import{t as m}from"./tooltip-CamoSiGF.js";import{t as h}from"./button-qFeU84ax.js";import{n as g,t as _}from"./LazyAnyLanguageCodeMirror-91eGNw7v.js";import{r as v}from"./useNumberFormatter-C4-_TnkF.js";import{b as y}from"./write-secret-modal-wFgr-1dA.js";import{t as b}from"./spinner-CGdRKCnw.js";import{t as x}from"./plus-gbN72xHe.js";import{Gt as S,Kt as C,Wt as w,Xt as T,qt as E}from"./input-D4bMj5Nb.js";import{st as D}from"./dist-Cny7_yZb.js";import{r as O}from"./requests-yTHMxhVa.js";import{r as k}from"./useTheme-CnWB5G1X.js";import{n as A}from"./useAsyncData-DucTwMkf.js";import{t as j}from"./RenderHTML-DjS-DdUL.js";import{n as M}from"./error-banner-EjYF86IQ.js";import{n as N,r as P,t as F}from"./react-resizable-panels.browser.esm-BL2E7f5c.js";import{t as I}from"./empty-state-CzxjZqGW.js";import{n as L,r as R}from"./panel-context-BPaQeOuV.js";import{t as z}from"./readonly-code-display-DykeAqVP.js";import{t as B}from"./kiosk-mode-CEKB1dXx.js";var V=e(t(),1),H=l(),U=p(),W=u,G=e=>{let t=(0,H.c)(6),{children:n}=e,{openModal:r,closeModal:i}=y(),a;t[0]!==i||t[1]!==r?(a=()=>r((0,U.jsx)(K,{onClose:i})),t[0]=i,t[1]=r,t[2]=a):a=t[2];let o;return t[3]!==n||t[4]!==a?(o=(0,U.jsx)(W,{onClick:a,children:n}),t[3]=n,t[4]=a,t[5]=o):o=t[5],o},K=e=>{let t=(0,H.c)(4),{onClose:n}=e,r;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,U.jsx)(T,{children:`Contribute a Snippet`}),t[0]=r):r=t[0];let i;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,U.jsxs)(E,{children:[r,(0,U.jsxs)(S,{children:[`Have a useful snippet you want to share with the community? Make a pull request`,` `,(0,U.jsx)(`a`,{href:d.githubPage,target:`_blank`,rel:`noreferrer`,className:`underline`,children:`on GitHub`}),`.`]})]}),t[1]=i):i=t[1];let a;return t[2]===n?a=t[3]:(a=(0,U.jsxs)(w,{className:`max-w-md`,children:[i,(0,U.jsx)(C,{children:(0,U.jsx)(h,{"data-testid":`snippet-close-button`,variant:`default`,onClick:n,children:`Close`})})]}),t[2]=n,t[3]=a),a},q=[D.lineWrapping],J=()=>{let e=(0,H.c)(24),{readSnippets:t}=O(),[n,r]=V.useState(),i=L(),a=R(),l;e[0]===t?l=e[1]:(l=()=>t(),e[0]=t,e[1]=l);let u;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(u=[],e[2]=u):u=e[2];let{data:d,error:p,isPending:m}=A(l,u);if(p){let t;return e[3]===p?t=e[4]:(t=(0,U.jsx)(M,{error:p}),e[3]=p,e[4]=t),t}if(m||!d){let t;return e[5]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,U.jsx)(b,{size:`medium`,centered:!0}),e[5]=t):t=e[5],t}let h=i===`vertical`,g;e[6]===Symbol.for(`react.memo_cache_sentinel`)?(g=(0,U.jsx)(s,{placeholder:`Search snippets...`,className:`h-6 m-1`,rootClassName:`flex-1 border-r`}),e[6]=g):g=e[6];let _,v;e[7]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,U.jsxs)(`div`,{className:`flex items-center w-full border-b`,children:[g,(0,U.jsx)(G,{children:(0,U.jsx)(`button`,{className:`float-right px-2 m-0 h-full hover:bg-accent hover:text-accent-foreground`,children:(0,U.jsx)(x,{className:`h-4 w-4`})})})]}),v=(0,U.jsx)(c,{children:`No results`}),e[7]=_,e[8]=v):(_=e[7],v=e[8]);let y;e[9]===Symbol.for(`react.memo_cache_sentinel`)?(y=e=>r(e),e[9]=y):y=e[9];let S;e[10]===d.snippets?S=e[11]:(S=(0,U.jsx)(F,{defaultSize:40,minSize:20,maxSize:70,children:(0,U.jsxs)(o,{className:`h-full rounded-none`,children:[_,v,(0,U.jsx)(X,{onSelect:y,snippets:d.snippets})]})}),e[10]=d.snippets,e[11]=S);let C=h?`h-1`:`w-1`,w;e[12]===C?w=e[13]:(w=f(`bg-border hover:bg-primary/50 transition-colors`,C),e[12]=C,e[13]=w);let T;e[14]===w?T=e[15]:(T=(0,U.jsx)(P,{className:w}),e[14]=w,e[15]=T);let E;e[16]===n?E=e[17]:(E=(0,U.jsx)(F,{defaultSize:60,minSize:20,children:(0,U.jsx)(V.Suspense,{children:(0,U.jsx)(`div`,{className:`h-full snippet-viewer flex flex-col overflow-hidden`,children:n?(0,U.jsx)(Y,{snippet:n,onClose:()=>r(void 0)},n.title):(0,U.jsx)(I,{title:``,description:`Click on a snippet to view its content.`})})})}),e[16]=n,e[17]=E);let D;return e[18]!==i||e[19]!==a||e[20]!==E||e[21]!==S||e[22]!==T?(D=(0,U.jsx)(`div`,{className:`flex-1 overflow-hidden h-full`,children:(0,U.jsxs)(N,{direction:i,className:`h-full`,children:[S,T,E]},a)}),e[18]=i,e[19]=a,e[20]=E,e[21]=S,e[22]=T,e[23]=D):D=e[23],D},Y=e=>{let t=(0,H.c)(33),{snippet:n,onClose:a}=e,{theme:o}=k(),{createNewCell:s}=r(),c=i(),l;t[0]!==s||t[1]!==c||t[2]!==n.sections?(l=()=>{for(let e of n.sections.toReversed())e.code&&s({code:e.code,before:!1,cellId:c??`__end__`,skipIfCodeExists:!0})},t[0]=s,t[1]=c,t[2]=n.sections,t[3]=l):l=t[3];let u=l,d;t[4]!==s||t[5]!==c?(d=e=>{s({code:e,before:!1,cellId:c??`__end__`})},t[4]=s,t[5]=c,t[6]=d):d=t[6];let f=d,p;t[7]===n.title?p=t[8]:(p=(0,U.jsx)(`span`,{children:n.title}),t[7]=n.title,t[8]=p);let y;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(y=(0,U.jsx)(v,{className:`h-4 w-4`}),t[9]=y):y=t[9];let b;t[10]===a?b=t[11]:(b=(0,U.jsx)(h,{size:`sm`,variant:`ghost`,onClick:a,className:`h-6 w-6 p-0 hover:bg-muted-foreground/10`,children:y}),t[10]=a,t[11]=b);let x;t[12]!==p||t[13]!==b?(x=(0,U.jsxs)(`div`,{className:`text-sm font-semibold bg-muted border-y px-2 py-1 flex justify-between items-center`,children:[p,b]}),t[12]=p,t[13]=b,t[14]=x):x=t[14];let S;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(S=(0,U.jsx)(g,{className:`ml-2 h-4 w-4`}),t[15]=S):S=t[15];let C;t[16]===u?C=t[17]:(C=(0,U.jsx)(`div`,{className:`flex justify-end`,children:(0,U.jsx)(B,{children:(0,U.jsxs)(h,{className:`float-right`,size:`xs`,variant:`outline`,onClick:u,children:[`Insert snippet`,S]})})}),t[16]=u,t[17]=C);let w;if(t[18]!==f||t[19]!==n.sections||t[20]!==n.title||t[21]!==o){let e;t[23]!==f||t[24]!==n.title||t[25]!==o?(e=e=>{let{code:t,html:r,id:i}=e;if(r)return(0,U.jsx)(`div`,{children:j({html:r})},`${n.title}-${i}`);if(!t)return null;let{language:a,code:s}=z(t);return(0,U.jsxs)(`div`,{className:`relative hover-actions-parent pr-2`,children:[(0,U.jsx)(B,{children:(0,U.jsx)(m,{content:`Insert snippet`,children:(0,U.jsx)(h,{className:`absolute -top-2 -right-1 z-10 hover-action px-2 bg-background`,size:`sm`,variant:`outline`,onClick:()=>{f(t)},children:(0,U.jsx)(g,{className:`h-5 w-5`})})})}),(0,U.jsx)(V.Suspense,{children:(0,U.jsx)(_,{theme:o===`dark`?`dark`:`light`,language:a,className:`cm border rounded overflow-hidden`,extensions:q,value:s,readOnly:!0},`${n.title}-${i}`)})]},`${n.title}-${i}`)},t[23]=f,t[24]=n.title,t[25]=o,t[26]=e):e=t[26],w=n.sections.map(e),t[18]=f,t[19]=n.sections,t[20]=n.title,t[21]=o,t[22]=w}else w=t[22];let T;t[27]!==C||t[28]!==w?(T=(0,U.jsxs)(`div`,{className:`px-2 py-2 space-y-4 overflow-auto flex-1`,children:[C,w]}),t[27]=C,t[28]=w,t[29]=T):T=t[29];let E;return t[30]!==T||t[31]!==x?(E=(0,U.jsxs)(U.Fragment,{children:[x,T]}),t[30]=T,t[31]=x,t[32]=E):E=t[32],E},X=e=>{let t=(0,H.c)(7),{snippets:r,onSelect:i}=e,o;if(t[0]!==i||t[1]!==r){let e;t[3]===i?e=t[4]:(e=e=>(0,U.jsx)(a,{className:`rounded-none`,onSelect:()=>i(e),children:(0,U.jsx)(`div`,{className:`flex flex-row gap-2 items-center`,children:(0,U.jsx)(`span`,{className:`mt-1 text-accent-foreground`,children:e.title})})},e.title),t[3]=i,t[4]=e),o=r.map(e),t[0]=i,t[1]=r,t[2]=o}else o=t[2];let s;return t[5]===o?s=t[6]:(s=(0,U.jsx)(n,{className:`flex flex-col overflow-auto`,children:o}),t[5]=o,t[6]=s),s};export{J as default};
@@ -1 +1 @@
1
- import{f as e}from"./useEvent-Dc9HkKI2.js";import{Qr as t,Zr as n}from"./cells-DIjn-wIE.js";import{O as r}from"./config-D7CP5wR5.js";import{d as i}from"./arrays-BqUx5USx.js";var a=`marimo:ai:chatState:v5`,o=e(null),s=e(null),c=r(`marimo:ai:chatOptions`,{webSearch:!1},t),l=r(`marimo:ai:includeOtherCells`,!0,t);function u(e){let t=new Map;for(let[n,r]of e.entries()){if(r.messages.length===0)continue;let e=i(r.messages,e=>e.id);t.set(n,{...r,messages:e})}return t}var d=r(a,{chats:new Map,activeChatId:null},n({toSerializable:e=>({chats:[...u(e.chats).entries()],activeChatId:e.activeChatId}),fromSerializable:e=>({chats:new Map(e.chats),activeChatId:e.activeChatId})})),f=e(e=>{let t=e(d);return t.activeChatId?t.chats.get(t.activeChatId):null},(e,t,n)=>{t(d,e=>({...e,activeChatId:n}))});export{l as a,d as i,o as n,s as o,c as r,f as t};
1
+ import{f as e}from"./useEvent-Dc9HkKI2.js";import{Qr as t,Zr as n}from"./cells-Bboj_mzH.js";import{O as r}from"./config-VEBoxYs0.js";import{d as i}from"./arrays-BqUx5USx.js";var a=`marimo:ai:chatState:v5`,o=e(null),s=e(null),c=r(`marimo:ai:chatOptions`,{webSearch:!1},t),l=r(`marimo:ai:includeOtherCells`,!0,t);function u(e){let t=new Map;for(let[n,r]of e.entries()){if(r.messages.length===0)continue;let e=i(r.messages,e=>e.id);t.set(n,{...r,messages:e})}return t}var d=r(a,{chats:new Map,activeChatId:null},n({toSerializable:e=>({chats:[...u(e.chats).entries()],activeChatId:e.activeChatId}),fromSerializable:e=>({chats:new Map(e.chats),activeChatId:e.activeChatId})})),f=e(e=>{let t=e(d);return t.activeChatId?t.chats.get(t.activeChatId):null},(e,t,n)=>{t(d,e=>({...e,activeChatId:n}))});export{l as a,d as i,o as n,s as o,c as r,f as t};
@@ -1,3 +1,3 @@
1
- import{r as e}from"./useEvent-Dc9HkKI2.js";import{$n as t,La as n,Pa as r,Qn as i,_o as a,oi as o,vo as s,x as c,za as l}from"./cells-DIjn-wIE.js";import{t as u}from"./get-DjNf4SIX.js";import{t as d}from"./debounce-aFmHgJZY.js";import{E as f}from"./config-BdH5RvM0.js";import{t as p}from"./_baseSet-Bpdo9AvU.js";import{g as m,v as h}from"./useEventListener-CUPWI_1X.js";import{t as g}from"./invariant-Ci2dTZ72.js";import{_,u as v}from"./session-ztCnZJHI.js";import{D as y,M as b,c as x,l as S,n as ee}from"./config-D7CP5wR5.js";import{c as te,o as C}from"./state-BsVxWYGT.js";import{c as w,o as T}from"./markdown-renderer-DT34-_9e.js";import{w as ne}from"./write-secret-modal-wFgr-1dA.js";import{t as re}from"./use-toast-CC89xOwH.js";import{t as ie}from"./preload-helper-uBIymjUX.js";import{r as ae}from"./strings-LjhpYwmx.js";import{t as E}from"./requests-yTHMxhVa.js";import{t as oe}from"./Deferred-CrTnjj37.js";import{t as se}from"./uuid-k9DpjH68.js";import{n as ce}from"./RenderHTML-ClrDrx3F.js";import{t as le}from"./useRunCells-k0IpRLOw.js";import{r as ue,t as de}from"./blob-BKNVs7hM.js";import{f as fe}from"./useInstallPackage-DO1N1lCX.js";import{t as pe}from"./api-C5RyTgDk.js";import{n as me,t as he}from"./share-BZW3tzEX.js";import{i as D,r as ge,t as _e}from"./events-CbeVJ6OD.js";function O(e,t,n){return e==null?e:p(e,t,n)}function k(e,t){if(e.origin===globalThis.origin)return new Worker(e.href,{...t,type:`module`});let n=`import ${JSON.stringify(e.href)}`,r=globalThis.origin===`null`?`data:application/javascript,${encodeURIComponent(n)}`:URL.createObjectURL(new Blob([n],{type:`application/javascript`}));try{return new Worker(r,{...t,type:`module`})}finally{r.startsWith(`blob:`)&&URL.revokeObjectURL(r)}}function A(e){return e.assetUrl,e}var j=class{subscriptions=new Map;addSubscription(e,t){this.subscriptions.has(e)||this.subscriptions.set(e,new Set),this.subscriptions.get(e)?.add(t)}removeSubscription(e,t){this.subscriptions.get(e)?.delete(t)}notify(e,t){for(let n of this.subscriptions.get(e)??[])n(t)}},M=class e{subscriptions=new j;producer;static withProducerCallback(t){return new e(t)}static empty(){return new e}constructor(e){this.producer=e}startProducer(){this.producer&&this.producer(e=>{this.subscriptions.notify(`message`,e)})}connect(){return new Promise(e=>setTimeout(e,0)).then(()=>{this.subscriptions.notify(`open`,new Event(`open`))})}get readyState(){return WebSocket.OPEN}reconnect(e,t){this.close(),this.connect()}close(){this.subscriptions.notify(`close`,new Event(`close`))}send(e){return this.subscriptions.notify(`message`,new MessageEvent(`message`,{data:e})),Promise.resolve()}addEventListener(e,t){this.subscriptions.addSubscription(e,t),e===`open`&&t(new Event(`open`)),e===`message`&&this.startProducer()}removeEventListener(e,t){this.subscriptions.removeSubscription(e,t)}},ve=1e10,ye=1e3;function N(e,t){let n=e.map(e=>`"${e}"`).join(`, `);return Error(`This RPC instance cannot ${t} because the transport did not provide one or more of these methods: ${n}`)}function be(e={}){let t={};function n(e){t=e}let r={};function i(e){r.unregisterHandler&&r.unregisterHandler(),r=e,r.registerHandler?.(S)}let a;function o(e){if(typeof e==`function`){a=e;return}a=(t,n)=>{let r=e[t];if(r)return r(n);let i=e._;if(!i)throw Error(`The requested method has no handler: ${t}`);return i(t,n)}}let{maxRequestTime:s=ye}=e;e.transport&&i(e.transport),e.requestHandler&&o(e.requestHandler),e._debugHooks&&n(e._debugHooks);let c=0;function l(){return c<=ve?++c:c=0}let u=new Map,d=new Map;function f(e,...n){let i=n[0];return new Promise((n,a)=>{if(!r.send)throw N([`send`],`make requests`);let o=l(),c={type:`request`,id:o,method:e,params:i};u.set(o,{resolve:n,reject:a}),s!==1/0&&d.set(o,setTimeout(()=>{d.delete(o),a(Error(`RPC request timed out.`))},s)),t.onSend?.(c),r.send(c)})}let p=new Proxy(f,{get:(e,t,n)=>t in e?Reflect.get(e,t,n):e=>f(t,e)}),m=p;function h(e,...n){let i=n[0];if(!r.send)throw N([`send`],`send messages`);let a={type:`message`,id:e,payload:i};t.onSend?.(a),r.send(a)}let g=new Proxy(h,{get:(e,t,n)=>t in e?Reflect.get(e,t,n):e=>h(t,e)}),_=g,v=new Map,y=new Set;function b(e,t){if(!r.registerHandler)throw N([`registerHandler`],`register message listeners`);if(e===`*`){y.add(t);return}v.has(e)||v.set(e,new Set),v.get(e)?.add(t)}function x(e,t){if(e===`*`){y.delete(t);return}v.get(e)?.delete(t),v.get(e)?.size===0&&v.delete(e)}async function S(e){if(t.onReceive?.(e),!(`type`in e))throw Error(`Message does not contain a type.`);if(e.type===`request`){if(!r.send||!a)throw N([`send`,`requestHandler`],`handle requests`);let{id:n,method:i,params:o}=e,s;try{s={type:`response`,id:n,success:!0,payload:await a(i,o)}}catch(e){if(!(e instanceof Error))throw e;s={type:`response`,id:n,success:!1,error:e.message}}t.onSend?.(s),r.send(s);return}if(e.type===`response`){let t=d.get(e.id);t!=null&&clearTimeout(t);let{resolve:n,reject:r}=u.get(e.id)??{};e.success?n?.(e.payload):r?.(Error(e.error));return}if(e.type===`message`){for(let t of y)t(e.id,e.payload);let t=v.get(e.id);if(!t)return;for(let n of t)n(e.payload);return}throw Error(`Unexpected RPC message type: ${e.type}`)}return{setTransport:i,setRequestHandler:o,request:p,requestProxy:m,send:g,sendProxy:_,addMessageListener:b,removeMessageListener:x,proxy:{send:_,request:m},_setDebugHooks:n}}function xe(e){return be(e)}var P=`[transport-id]`;function Se(e,t){let{transportId:n}=t;return n==null?e:{[P]:n,data:e}}function Ce(e,t){let{transportId:n,filter:r}=t,i=r?.();if(n!=null&&i!=null)throw Error("Cannot use both `transportId` and `filter` at the same time");let a=e;if(n){if(e[P]!==n)return[!0];a=e.data}return i===!1?[!0]:[!1,a]}function we(e,t={}){let{transportId:n,filter:r,remotePort:i}=t,a=e,o=i??e,s;return{send(e){o.postMessage(Se(e,{transportId:n}))},registerHandler(e){s=t=>{let i=t.data,[a,o]=Ce(i,{transportId:n,filter:()=>r?.(t)});a||e(o)},a.addEventListener(`message`,s)},unregisterHandler(){s&&a.removeEventListener(`message`,s)}}}function Te(e,t){return we(e,t)}var Ee=`::controller`,De=`marimo-transport`;function F(e){return xe({transport:Te(e,{transportId:De}),maxRequestTime:2e4,_debugHooks:{onSend:e=>{m.debug(`[rpc] Parent -> Worker`,e)},onReceive:e=>{m.debug(`[rpc] Worker -> Parent`,e)}}})}function I(){let e=document.querySelector(`marimo-wasm`),t=e=>{try{return e?new URL(e,document.baseURI).href:void 0}catch{return}};return{version:te(),pyodideIndexUrl:t(e?.dataset.pyodideIndexUrl),pyodideLockfileUrl:t(e?.dataset.pyodideLockfileUrl),pypiIndexUrl:t(e?.dataset.pypiIndexUrl)?.replaceAll(`%7Bpackage_name%7D`,`{package_name}`)}}var L=me(),R=`marimo:file`,z=new r(null),Oe={saveFile(e){z.set(R,e)},readFile(){return z.get(R)}},ke={saveFile(e){s.setCodeForHash((0,L.compressToEncodedURIComponent)(e))},readFile(){let e=s.getCodeFromHash()||s.getCodeFromSearchParam();return e?(0,L.decompressFromEncodedURIComponent)(e):null}},Ae={saveFile(e){},readFile(){let e=document.querySelector(`marimo-code`);return e?decodeURIComponent(e.textContent||``).trim():null}},je={saveFile(e){},readFile(){if(window.location.hostname!==`marimo.app`)return null;let e=new URL(`export_demos/wasm-intro.py`,document.baseURI);return fetch(e.toString()).then(e=>e.ok?e.text():null).catch(()=>null)}},Me={saveFile(e){},readFile(){return e.get(n)??null}},Ne={saveFile(e){},readFile(){return[`import marimo`,`app = marimo.App()`,``,`@app.cell`,`def __():`,` return`,``,`if __name__ == "__main__":`,` app.run()`].join(`
2
- `)}},B=class{stores;constructor(e){this.stores=e}insert(e,t){this.stores.splice(e,0,t)}saveFile(e){this.stores.forEach(t=>t.saveFile(e))}readFile(){for(let e of this.stores){let t=e.readFile();if(t)return t}return null}},V=new B([Me,Ae,ke]),H=new B([Oe,je,Ne]),Pe=new URL(`save-worker-C880NC3o.js`,import.meta.url).href,Fe=new URL(`worker-B5tVfGoh.js`,import.meta.url).href,U=class t{static get INSTANCE(){let e=`_marimo_private_PyodideBridge`;return window[e]||(window[e]=new t),window[e]}rpc;saveRpc;pendingSessionSave=Promise.resolve();interruptBuffer;messageConsumer;initialized=new oe;getSaveWorker(){if(v()===`read`)return m.debug(`Using partially disabled SaveWorker in read-mode`),{readFile:h,readNotebook:async()=>await V.readFile()??``,saveNotebook:h};let e=I(),t=F(k(new URL(Pe,import.meta.url),{name:Le()}));return t.send.bootstrap(e),t.proxy.request}constructor(){if(!b())return;let t=I(),n=k(new URL(Fe,import.meta.url),{name:Le()});this.rpc=F(n),this.rpc.send.bootstrap(t),this.rpc.addMessageListener(`ready`,()=>{this.startSession()}),this.rpc.addMessageListener(`initialized`,()=>{this.saveRpc=this.getSaveWorker(),this.setInterruptBuffer(),e.set(C,{kind:`ready`}),this.initialized.resolve()}),this.rpc.addMessageListener(`initializingMessage`,({message:t})=>{e.get(C).kind===`loading`&&e.set(C,{kind:`loading`,message:t})}),this.rpc.addMessageListener(`initializedError`,({error:t})=>{if(this.initialized.status===`resolved`){m.error(t),re({title:`Error initializing`,description:t,variant:`danger`});return}e.set(C,{kind:`error`,message:t}),this.initialized.reject(Error(t))}),this.rpc.addMessageListener(`kernelMessage`,({message:e})=>{this.messageConsumer?.(new MessageEvent(`message`,{data:e}))})}async startSession(){let t=await V.readFile(),n=await H.readFile(),r=e.get(l)??s.getFilename(),i=e.get(f),a={},o=new URLSearchParams(window.location.search);for(let e of o.keys()){let t=o.getAll(e);a[e]=t.length===1?t[0]:t}await this.rpc.proxy.request.startSession({queryParameters:a,code:t||n||``,filename:r,userConfig:{...i,runtime:{...i.runtime,auto_instantiate:v()===`read`||i.runtime.auto_instantiate}}})}setInterruptBuffer(){crossOriginIsolated?(this.interruptBuffer=new Uint8Array(new SharedArrayBuffer(1)),this.rpc.proxy.request.setInterruptBuffer(this.interruptBuffer)):m.warn(`Not running in a secure context; interrupts are not available.`)}attachMessageConsumer(e){this.messageConsumer=e,this.rpc.proxy.send.consumerReady({})}sendRename=async({filename:e})=>e===null?null:(s.setFilename(e),await this.rpc.proxy.request.bridge({functionName:`rename_file`,payload:e}),null);sendSave=async e=>{if(!this.saveRpc)return m.warn(`Save RPC not initialized`),null;let t=this.saveRpc.saveNotebook(e);this.pendingSessionSave=this.pendingSessionSave.catch(()=>void 0).then(async()=>{await t,await this.rpc.proxy.request.saveNotebook(e)}),this.pendingSessionSave.catch(e=>{m.error(e)}),await t;let n=await this.readCode();return n.contents&&(V.saveFile(n.contents),H.saveFile(n.contents)),null};sendCopy=async()=>{h()};sendStdin=async e=>(await this.rpc.proxy.request.bridge({functionName:`put_input`,payload:e.text}),null);sendPdb=async()=>{h()};sendSetBreakpoints=async()=>{h()};sendRun=async e=>(await this.rpc.proxy.request.loadPackages(e.codes.join(`
3
- `)),await this.putControlRequest({type:`execute-cells`,...e}),null);sendRunScratchpad=async e=>(await this.rpc.proxy.request.loadPackages(e.code),await this.putControlRequest({type:`execute-scratchpad`,...e}),null);sendInterrupt=async()=>(this.interruptBuffer!==void 0&&(this.interruptBuffer[0]=2),null);sendShutdown=async()=>(window.close(),null);sendFormat=async e=>await this.rpc.proxy.request.bridge({functionName:`format`,payload:e});sendDeleteCell=async e=>(await this.putControlRequest({type:`delete-cell`,...e}),null);sendInstallMissingPackages=async e=>(this.putControlRequest({type:`install-packages`,...e}),null);sendCodeCompletionRequest=async t=>(e.get(c)||await this.rpc.proxy.request.bridge({functionName:`code_complete`,payload:t}),null);saveUserConfig=async e=>(await this.rpc.proxy.request.bridge({functionName:`save_user_config`,payload:e}),pe.post(`/kernel/save_user_config`,e,{baseUrl:`/`}).catch(e=>(m.error(e),null)));saveAppConfig=async e=>(await this.rpc.proxy.request.bridge({functionName:`save_app_config`,payload:e}),null);saveCellConfig=async e=>(await this.putControlRequest({type:`update-cell-config`,...e}),null);sendRestart=async()=>{let e=await this.readCode();return e.contents&&(V.saveFile(e.contents),H.saveFile(e.contents)),fe(),null};readCode=async()=>this.saveRpc?{contents:await this.saveRpc.readNotebook()}:(m.warn(`Save RPC not initialized`),{contents:``});readSnippets=async()=>await this.rpc.proxy.request.bridge({functionName:`read_snippets`,payload:void 0});openFile=async({path:e})=>{let t=he({code:null,baseUrl:window.location.origin});return window.open(t,`_blank`),null};sendListFiles=async e=>await this.rpc.proxy.request.bridge({functionName:`list_files`,payload:e});getFileRoots=async()=>await this.rpc.proxy.request.bridge({functionName:`file_roots`,payload:void 0});sendSearchFiles=async e=>await this.rpc.proxy.request.bridge({functionName:`search_files`,payload:e});sendComponentValues=async e=>(await this.putControlRequest({type:`update-ui-element`,...e,token:se()}),null);sendInstantiate=async e=>null;sendFunctionRequest=async e=>(await this.putControlRequest({type:`invoke-function`,...e}),null);sendCreateFileOrFolder=async e=>{let t=null;return e.file&&(t=(await ue(e.file)).split(`,`)[1]??``),await this.rpc.proxy.request.bridge({functionName:`create_file_or_directory`,payload:{path:e.path,type:e.type,name:e.name,contents:t}})};sendDeleteFileOrFolder=async e=>await this.rpc.proxy.request.bridge({functionName:`delete_file_or_directory`,payload:e});sendCopyFileOrFolder=async e=>await this.rpc.proxy.request.bridge({functionName:`copy_file_or_directory`,payload:e});sendRenameFileOrFolder=async e=>await this.rpc.proxy.request.bridge({functionName:`move_file_or_directory`,payload:e});sendUpdateFile=async e=>await this.rpc.proxy.request.bridge({functionName:`update_file`,payload:e});sendFileDetails=async e=>await this.rpc.proxy.request.bridge({functionName:`file_details`,payload:e});exportAsHTML=async e=>(await this.pendingSessionSave,await this.rpc.proxy.request.bridge({functionName:`export_html`,payload:A(e)}));exportAsMarkdown=async e=>(await this.pendingSessionSave,await this.rpc.proxy.request.bridge({functionName:`export_markdown`,payload:e}));exportAsScript=async e=>(await this.pendingSessionSave,await this.rpc.proxy.request.bridge({functionName:`export_script`,payload:e}));previewDatasetColumn=async e=>(await this.putControlRequest({type:`preview-dataset-column`,...e}),null);previewSQLTable=async e=>(await this.putControlRequest({type:`preview-sql-table`,...e}),null);previewSQLTableList=async e=>(await this.putControlRequest({type:`list-sql-tables`,...e}),null);previewSQLSchemaList=async e=>(await this.putControlRequest({type:`list-sql-schemas`,...e}),null);previewDataSourceConnection=async e=>(await this.putControlRequest({type:`list-data-source-connection`,...e}),null);validateSQL=async e=>(await this.putControlRequest({type:`validate-sql`,...e}),null);sendModelValue=async e=>(await this.putControlRequest({type:`model`,...e}),null);sendDocumentTransaction=()=>Promise.resolve(null);addPackage=async e=>this.rpc.proxy.request.addPackage(e);removePackage=async e=>this.rpc.proxy.request.removePackage(e);getPackageList=async()=>await this.rpc.proxy.request.listPackages();getSandbox=async()=>({backend:null,manifest:null,filename:null});updateManifest=async()=>{throw Error(`Sandboxes are not supported in WebAssembly`)};syncSandbox=async()=>{throw Error(`Sandboxes are not supported in WebAssembly`)};getDependencyTree=async()=>({tree:{dependencies:[],name:``,tags:[],version:null},context:{kind:`package-manager`,name:`micropip`}});listSecretKeys=async e=>(await this.putControlRequest({type:`list-secret-keys`,...e}),null);discoverDataSources=async e=>(await this.putControlRequest({type:`discover-data-sources`,...e}),null);getUsageStats=h;getEnvironmentInfo=async()=>await this.rpc.proxy.request.bridge({functionName:`get_environment_info`,payload:void 0});openTutorial=h;getRecentFiles=h;getWorkspaceFiles=h;getRunningNotebooks=h;shutdownSession=h;getExportAvailability=h;installExportRequirements=h;exportAsIPYNB=h;exportAsPDF=h;autoExportAsHTML=h;autoExportAsMarkdown=h;autoExportAsIPYNB=h;updateCellOutputs=h;writeSecret=h;invokeAiTool=h;clearCache=h;getCacheInfo=h;listStorageEntries=h;downloadStorage=h;async putControlRequest(e){await this.rpc.proxy.request.bridge({functionName:`put_control_request`,payload:e})}};function Ie(){return M.withProducerCallback(e=>{U.INSTANCE.attachMessageConsumer(e)})}function Le(){return`marimo${typeof window<`u`&&window.__MARIMO_HAS_WASM_CONTROLLER__===!0?Ee:``}`}function Re(e=x()){let t=window.fetch;return window.fetch=async(n,r)=>{let i=n instanceof Request?n.url:n.toString();if(i.startsWith(`data:`))return t(n,r);try{let a=W(i,e);if(a){let e=await(await t(a)).arrayBuffer();return new Response(e,{headers:{"Content-Type":ze(i)}})}return t(n,r)}catch(e){return m.error(`Error parsing URL`,e),t(n,r)}},()=>{window.fetch=t}}function ze(e){return e.endsWith(`.csv`)?`text/csv`:e.endsWith(`.json`)?`application/json`:e.endsWith(`.txt`)?`text/plain`:`application/octet-stream`}function Be(e,t=x()){let n=e.http.bind(e),r=e.load.bind(e);return e.http=async e=>{let r=W(e,t);if(r)return await window.fetch(r).then(e=>e.text());try{return await n(e)}catch(t){if(e.startsWith(`data:`))return await window.fetch(e).then(e=>e.text());throw t}},e.load=async e=>{let n=W(e,t);if(n)return await window.fetch(n).then(e=>e.text());try{return await r(e)}catch(t){if(e.startsWith(`data:`))return await window.fetch(e).then(e=>e.text());throw t}},()=>{e.http=n,e.load=r}}function Ve(e){return e.startsWith(`.`)?e.slice(1):e}function He(e,t=x()){let n=W(e,t);if(!n)return e;let r=de(n);return URL.createObjectURL(r)}function W(e,t){let n=document.baseURI;n.startsWith(`blob:`)&&(n=n.replace(`blob:`,``));let r=new URL(e,n).pathname,i=Ue(e),a=Ue(r);return t[e]||t[Ve(e)]||t[r]||t[Ve(r)]||i&&t[i]||a&&t[a]}function Ue(e){let t=e.indexOf(`/@file/`);return t===-1?null:e.slice(t)}function G(e,t){return{get(t){return e.get(t)},set(t,n){e.set(t,n)},save_changes(){e.save_changes()},send:e.send.bind(e),on(n,r){t.aborted||(e.on(n,r),t.addEventListener(`abort`,()=>e.off(n,r),{once:!0}))},off(t,n){e.off(t??null,n??null)},widget_manager:{async get_model(n){return G(await e.widget_manager.get_model(n),t)}}}}function K(e){return typeof e==`string`&&e.length>0}function We(e){if(typeof e==`string`&&e.startsWith(`anywidget:`)){let t=e.slice(10);if(K(t))return t}throw Error(`[anywidget] Invalid widget reference: ${JSON.stringify(e)}`)}function Ge(e,t){return{async getModel(n){let r=We(n);return G(await e.getModel(r),t)},async getWidget(n){let r=We(n),i=await e.getWidget(r);return{exports:i.exports,async render({el:e,signal:n}){await i.render({el:e,signal:n??t})}}}}}var Ke=Symbol(`marimo`);function q(e){return e[Ke]}var qe=class e{#e=`change`;#t;#n;#r;#i={};static _modelManager;constructor(e,t,n){this.#n=e,this.#r=t,this.#t=new Set,n&&n.addEventListener(`abort`,()=>{m.debug(`[Model] Signal aborted, clearing all listeners`),this.#i={}})}[Ke]={updateAndEmitDiffs:e=>this.#o(e),emitCustomMessage:(e,t)=>this.#s(e,t)};off(e,t){if(!e){this.#i={};return}if(!t){this.#i[e]=new Set;return}this.#i[e]?.delete(t)}send(e,t,n){let r=(n??[]).map(e=>e instanceof ArrayBuffer?new DataView(e):new DataView(e.buffer,e.byteOffset,e.byteLength));return this.#r.sendCustomMessage(e,r).then(()=>t?.())}widget_manager={async get_model(t){let n=await e._modelManager.getModel(t);if(!n)throw Error(`Model not found with id: ${t}. This is likely because the model was not registered.`);return n}};get(e){return this.#n[e]}set(e,t){this.#n={...this.#n,[e]:t},this.#t.add(e),this.#a(`change:${e}`,t),this.#c()}save_changes(){if(this.#t.size===0)return;let e=Object.fromEntries([...this.#t].map(e=>[e,this.#n[e]]));this.#t.clear(),this.#r.sendUpdate(e)}on(e,t,n){let r=n?.signal;r?.aborted||(this.#i[e]||(this.#i[e]=new Set),this.#i[e].add(t),r?.addEventListener(`abort`,()=>this.off(e,t),{once:!0}))}#a(e,t){let n=this.#i[e];if(n)for(let e of[...n])try{e(t)}catch(e){m.error(`Error emitting event`,e)}}#o(e){e!=null&&Object.keys(e).forEach(t=>{let n=t;this.#t.delete(n),this.#n[n]!==e[n]&&(this.#n={...this.#n,[n]:e[n]},this.#a(`change:${n}`,e[n]),this.#c())})}#s(e,t=[]){let n=this.#i[`msg:custom`];if(n)for(let r of[...n])try{r(e.content,t)}catch(e){m.error(`Error emitting event`,e)}}#c=d(()=>{let e=this.#i[this.#e];if(e)for(let t of[...e])try{t()}catch(e){m.error(`Error emitting event`,e)}},0)};function Je(e){return typeof e==`function`}function Ye(e){return typeof e==`function`}function Xe(e){return t(e)&&(Je(e.render)||Ye(e.initialize))}function Ze(e){return typeof e==`function`||Xe(e)}function Qe(e){return t(e)&&Ze(e.default)}var $e=new Set,et=new WeakMap;function tt(e,n){if(Qe(e))return e.default;if(!t(e)||e.default!==void 0)return null;let r=Je(e.render)?e.render:void 0,i=Ye(e.initialize)?e.initialize:void 0;if(r===void 0&&i===void 0)return null;let a=et.get(e);if(a)return a;$e.has(n)||($e.add(n),m.warn(`Anywidget module at ${n} uses deprecated top-level named exports (\`render\`/\`initialize\`). Per the AFM spec, use a default export instead: \`export default { render }\`. See https://anywidget.dev/en/afm/`));let o={render:r,initialize:i};return et.set(e,o),o}function nt(e,n){let r=`https://anywidget.dev/en/afm/`,a=t(e)&&i(e,`render`),o=t(e)&&i(e,`initialize`);if(t(e)&&e.default!==void 0)return Error(`Anywidget module at ${n} has an invalid default export. Expected a factory function or an object with \`render\` or \`initialize\`. See ${r}`);if(a||o){let e=[a?"`render`":null,o?"`initialize`":null].filter(Boolean).join(` and `),t=[a?`render`:null,o?`initialize`:null].filter(e=>e!==null),i=`export default { ${t.join(`, `)} }`,s=t.length===1?`export function ${t[0]}`:`named export function ...`;return Error(`Anywidget module at ${n} uses named exports (${e}). Per the AFM spec, use a default export instead: \`${i}\` (not \`${s}\`). See ${r}`)}return Error(`Anywidget module at ${n} is missing a default export. Per the AFM spec, use \`export default { render }\` or \`export default async () => ({ render })\`. See ${r}`)}function rt(e){return typeof e!=`string`||e.length===0?!1:!!(/^(\.?\/)?@file\/[^?#]+$/.test(e)||at(e))}function it(){return e.get(le)||ce()}function at(e){return e.startsWith(`data:text/javascript;base64,`)||e.startsWith(`data:application/javascript;base64,`)||e.startsWith(`data:text/css;base64,`)?it():!1}var ot={invoke:async()=>{let e=`anywidget.invoke not supported in marimo. Please file an issue at https://github.com/marimo-team/marimo/issues`;throw m.warn(e),Error(e)}};function st(e){if(typeof AbortSignal.any==`function`)return AbortSignal.any(e);let t=new AbortController;for(let n of e){if(n.aborted)return t.abort(n.reason),t.signal;n.addEventListener(`abort`,()=>t.abort(n.reason),{once:!0})}return t.signal}var ct=class{#e=new Map;getModule(e){let{jsUrl:t,jsHash:n,kernelAuthored:r=!1}=e,i=this.#e.get(n);if(i)return i;let a=this.#t(t,{kernelAuthored:r}).catch(e=>{throw this.#e.delete(n),e});return this.#e.set(n,a),a}invalidate(e){this.#e.delete(e)}async#t(e,t={}){if(!(rt(e)||t.kernelAuthored===!0&&/^(https?:|data:)/.test(e)))throw Error(`Refusing to load anywidget module from untrusted URL: ${String(e)}`);let n=ee(e).toString();return S()&&(n=He(n)),ie(()=>import(n),[],import.meta.url)}};function J(e){return typeof e==`function`}async function Y(e,t){try{await e()}catch(e){m.warn(`[WidgetBinding] ${t} cleanup failed`,e)}}var lt=class e{#e;#t;#n;#r;#i;#a=new Set;#o=new Set;constructor(e){this.#t=e.widget,this.#n=e.model,this.#r=e.exports,this.#e=e.controller,this.#i=e.createHost}static async create({widgetDef:t,model:n,createHost:r,controller:i=new AbortController}){let a=i.signal,o=typeof t==`function`?await t():t,s=Promise.resolve(o.initialize?.({model:G(n,a),experimental:ot,signal:a}));s.then(async e=>{a.aborted&&J(e)&&await Y(e,`late initialize`)}).catch(()=>void 0);let c=await Promise.race([s,new Promise((e,t)=>{let n=()=>t(Error(`[anywidget] binding destroyed`));if(a.aborted){n();return}a.addEventListener(`abort`,n,{once:!0})})]);if(a.aborted)throw Error(`[anywidget] binding destroyed`);let l,u;J(c)?(u=c,l=void 0):l=typeof c==`object`&&c?c:void 0;let d=new e({widget:o,model:n,exports:l,controller:i,createHost:r});return u&&a.addEventListener(`abort`,()=>void d.#c(u,`initialize`),{once:!0}),d}get exports(){return this.#r}async createView(e,t){let n=this.#s(e,t);this.#o.add(n);try{await n}finally{this.#o.delete(n)}}async#s(e,t){let n=this.#t;if(!n.render)return;let r=st([t.signal,this.#e.signal]);if(r.aborted)return;e.el.innerHTML=``;let i=this.#i(r),a=await n.render({model:G(this.#n,r),el:e.el,experimental:ot,signal:r,host:i});if(J(a)){let e=()=>{let e=t.signal.aborted?`view unmount`:`binding destroyed`;return m.debug(`[WidgetBinding] Render cleanup triggered (reason: ${e})`),this.#c(a,`render`)};if(r.aborted){await e();return}r.addEventListener(`abort`,()=>void e(),{once:!0})}}#c(e,t){let n=Y(e,t);return this.#a.add(n),n.finally(()=>this.#a.delete(n)),n}async destroy(){for(m.debug(`[WidgetBinding] Destroying binding generation`),this.#e.abort(),await Promise.allSettled(this.#o);this.#a.size>0;)await Promise.all(this.#a)}},ut=new ct,dt=class{#e;#t;#n;#r;#i;#a=new AbortController;#o=new oe;#s=new Set;#c=new Map;#l;#u;#d;#f=Promise.resolve();#p=``;constructor(e,t){this.#e=e,this.#t=t.timeout,this.#n=t.isEditMode,this.#r=t.createHost,this.#i=t.onModelTimeout}getModel(){return this.#o.status===`pending`&&!this.#l&&(this.#l=setTimeout(()=>{this.#o.status===`pending`&&(this.#l=void 0,this.#o.reject(Error(`Model not found for key: ${this.#e}`)),this.#i())},this.#t)),this.#o.promise}getModelSync(){return this.#o.status===`resolved`?this.#o.value:void 0}createModel(e){this.#o.status===`pending`&&this.#m(e(this.#a.signal))}setModel(e){this.#o.status===`pending`&&this.#m(e)}#m(e){this.#l&&=(clearTimeout(this.#l),void 0),this.#o.resolve(e);let t=e.get(`_css`);this.#p=typeof t==`string`?t:``,e.on(`change:_css`,e=>{this.#p=typeof e==`string`?e:``;for(let e of this.#c.values())e.update(this.#p)},{signal:this.#a.signal})}setSpec(e){if(!this.#u){this.#u=e;return}this.#n()&&(this.#u=e,this.#d&&this.#d.hash!==e.hash&&this.#v(e))}async getWidget(){return{exports:(await this.#h()).exports,render:async({el:e,signal:t})=>{await this.createView({el:e,signal:t??this.#a.signal})}}}async createView(e){if(e.signal.aborted||this.#a.signal.aborted)return;let t={el:e.el,signal:e.signal};this.#s.add(t),this.#x(t),e.signal.addEventListener(`abort`,()=>this.#s.delete(t),{once:!0}),await this.#b(t)}async#h(){for(;!this.#a.signal.aborted;){let e=await this.getModel(),t=this.#d;if(!t){let n=this.#u;if(!n)throw Error(`[anywidget] No ESM spec for model ${this.#e}: nothing ever provided this widget's code`);t=this.#_(n,e)}try{let e=await t.promise;if(t===this.#d)return e}catch(e){if(!this.#d||t===this.#d)throw e}}throw Error(`[anywidget] widget runtime destroyed`)}async#g(e){let{spec:t,model:n,controller:r}=e,i=await ut.getModule({jsUrl:t.url,jsHash:t.hash,kernelAuthored:!0}),a=tt(i,t.url);if(!a)throw ut.invalidate(t.hash),nt(i,t.url);return lt.create({widgetDef:a,model:n,createHost:this.#r,controller:r})}#_(e,t){let n=new AbortController,r={hash:e.hash,controller:n,promise:this.#g({spec:e,model:t,controller:n})};return r.promise.catch(()=>{this.#d===r&&(this.#d=void 0)}),this.#d=r,r}#v(e){let t=this.#d;if(!t)return;m.debug(`[WidgetRuntime] Hot-swapping generation for model=${this.#e}`);let n=this.#y(t),r=this.getModelSync();if(!r)return;let i=this.#_(e,r);for(let e of this.#s)e.generation=void 0,n.then(()=>this.#b(e,i)).catch(e=>{m.error(`[WidgetRuntime] Error replacing widget view`,e)})}#y(e){e.controller.abort();let t=this.#f.then(async()=>{try{await(await e.promise).destroy()}catch{}});return this.#f=t,t}async#b(e,t){if(e.signal.aborted||this.#a.signal.aborted)return;let n=t??this.#d,r=n?await n.promise:await this.#h(),i=this.#d;if(!(!i||i!==(n??i))&&e.generation!==i){e.generation=i;try{await r.createView({el:e.el},{signal:e.signal})}catch(t){if(i!==this.#d){e.generation=void 0;return}throw t}}}#x(e){let t=e.el.getRootNode();if(!X(t)&&!ft(t))return;let n=this.#c.get(t);n||(n=pt(t,this.#p),this.#c.set(t,n)),n.references+=1;let r=!1;e.signal.addEventListener(`abort`,()=>{if(r)return;r=!0;let e=this.#c.get(t);e&&(--e.references,e.references===0&&(e.dispose(),this.#c.delete(t)))},{once:!0})}dispose(){if(!this.#a.signal.aborted){m.debug(`[WidgetRuntime] Disposing model=${this.#e}`),this.#l&&=(clearTimeout(this.#l),void 0),this.#o.status===`pending`&&(this.#o.promise.catch(()=>void 0),this.#o.reject(Error(`[anywidget] widget runtime destroyed`))),this.#d&&this.#y(this.#d),this.#a.abort(),this.#s.clear();for(let e of this.#c.values())e.dispose();this.#c.clear()}}};function X(e){return e.nodeType===Node.DOCUMENT_NODE}function ft(e){return e.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&`host`in e}function pt(e,t){let n=X(e)?e:e.ownerDocument??document,r=n.defaultView??window;if(`adoptedStyleSheets`in e&&r.CSSStyleSheet!==void 0&&typeof r.CSSStyleSheet.prototype.replaceSync==`function`)try{let n=new r.CSSStyleSheet;return n.replaceSync(t),e.adoptedStyleSheets=[...e.adoptedStyleSheets,n],{references:0,update(e){n.replaceSync(e)},dispose(){e.adoptedStyleSheets=e.adoptedStyleSheets.filter(e=>e!==n)}}}catch{}let i=n.createElement(`style`);return i.textContent=t,X(e)?n.head.append(i):e.append(i),{references:0,update(e){i.textContent=e},dispose(){i.remove()}}}function Z(e,t=[]){let n=[];if(e instanceof DataView)n.push(t);else if(Array.isArray(e))for(let[r,i]of e.entries())n.push(...Z(i,[...t,r]));else if(typeof e==`object`&&e)for(let[r,i]of Object.entries(e))n.push(...Z(i,[...t,r]));return n}function mt(e){let t=Z(e);if(t.length===0)return{state:e,buffers:[],bufferPaths:[]};let n=structuredClone(e),r=[],i=[];for(let a of t){let t=u(e,a);if(t instanceof DataView){let e=w(t);r.push(e),i.push(a),O(n,a,e)}}return{state:n,buffers:r,bufferPaths:i}}function ht(e){let{state:t,bufferPaths:n,buffers:r}=e;if(!n||n.length===0)return t;r&&g(r.length===n.length,`Buffers and buffer paths not the same length`);let i=t;for(let[e,t]of n.entries()){let n=r?.[e];if(n==null){m.warn(`[anywidget] Could not find buffer at path`,t);continue}typeof n==`string`?O(i,t,T(n)):O(i,t,n)}return i}function gt(){let t=e.get(_).mode;return t===`edit`||t===`present`}var Q=new class{#e=new Map;#t;#n;constructor(e=1e4,t=gt){this.#t=e,this.#n=t}#r(e){let t=this.#e.get(e);if(!t){let n=new dt(e,{timeout:this.#t,isEditMode:this.#n,createHost:e=>Ge(this,e),onModelTimeout:()=>{this.#e.get(e)===n&&(n.dispose(),this.#e.delete(e))}});t=n,this.#e.set(e,t)}return t}getModel(e){return this.#r(e).getModel()}getModelSync(e){return this.#e.get(e)?.getModelSync()}createModel(e,t){this.#r(e).createModel(t)}setModel(e,t){this.#r(e).setModel(t)}setSpec(e,t){this.#r(e).setSpec(t)}getWidget(e){return this.#r(e).getWidget()}createView(e){return this.#r(e.modelId).createView(e)}delete(e){let t=this.#e.get(e);t&&(t.dispose(),this.#e.delete(e))}};qe._modelManager=Q;async function _t(e,t){let n=t.model_id;if(!K(n))throw Error(`[anywidget] Invalid model id: ${String(n)}`);let r=t.message,i=(`buffers`in r?r.buffers:[]).map(T);switch(r.method){case`open`:{let{state:t,buffer_paths:a=[]}=r;r.esm_spec&&e.setSpec(n,r.esm_spec);let o=ht({state:t,bufferPaths:a,buffers:i}),s=e.getModelSync(n);if(s){q(s).updateAndEmitDiffs(o);return}e.createModel(n,e=>{let t=S()?{sendUpdate:async()=>void 0,sendCustomMessage:async()=>void 0}:{async sendUpdate(t){if(e.aborted){m.debug(`[Model] sendUpdate suppressed for model=${n} (signal aborted)`);return}let{state:r,buffers:i,bufferPaths:a}=mt(t);await E().sendModelValue({modelId:n,message:{method:`update`,state:r,bufferPaths:a},buffers:i})},async sendCustomMessage(t,r){if(e.aborted){m.debug(`[Model] sendCustomMessage suppressed for model=${n} (signal aborted)`);return}await E().sendModelValue({modelId:n,message:{method:`custom`,content:t},buffers:r.map(w)})}};return new qe(o,t,e)});return}case`custom`:q(await e.getModel(n)).emitCustomMessage({method:`custom`,content:r.content},i);return;case`close`:e.delete(n);return;case`update`:{let{state:t,buffer_paths:a=[]}=r;r.esm_spec&&e.setSpec(n,r.esm_spec);let o=ht({state:t,bufferPaths:a,buffers:i});q(await e.getModel(n)).updateAndEmitDiffs(o);return}default:ae(r)}}o(Q,`WIDGET_REGISTRY`);function vt(e){return typeof e!=`object`||!e?!1:`type`in e&&e.type===`marimo-ui-value-update`}var $=class e{entries;static get INSTANCE(){let t=`_marimo_private_UIElementRegistry`;return window[t]||(window[t]=new e),window[t]}constructor(){this.entries=new Map}has(e){return this.entries.has(e)}set(e,t){this.entries.has(e)&&m.debug(`UIElementRegistry overwriting entry for objectId.`,e),this.entries.set(e,{objectId:e,value:t,elements:new Set})}registerInstance(e,t){let n=this.entries.get(e);n===void 0?this.entries.set(e,{objectId:e,value:a(t,this),elements:new Set([t])}):n.elements.add(t)}removeInstance(e,t){let n=this.entries.get(e);n?.elements.has(t)&&n.elements.delete(t)}removeElementsByCell(e){[...this.entries.keys()].filter(t=>t.startsWith(`${e}-`)).forEach(e=>{this.entries.delete(e)})}lookupValue(e){let t=this.entries.get(e);return t===void 0?void 0:t.value}broadcastMessage(e,t,n){let r=this.entries.get(e);if(r===void 0){m.warn(`UIElementRegistry missing entry`,e);return}if(vt(t)){r.value=t.value,r.elements.forEach(e=>{e.dispatchEvent(D.create({bubbles:!1,composed:!0,detail:{value:t.value,element:e}}))});return}r.elements.forEach(r=>{r.dispatchEvent(_e.create({bubbles:!1,composed:!0,detail:{objectId:e,message:t,buffers:n}}))})}broadcastValueUpdate(e,t,n){let r=this.entries.get(t);r===void 0?m.warn(`UIElementRegistry missing entry`,t):(r.value=n,r.elements.forEach(t=>{t!==e&&t.dispatchEvent(D.create({bubbles:!1,composed:!0,detail:{value:n,element:t}}))}),document.dispatchEvent(ge.create({bubbles:!0,composed:!0,detail:{objectId:t}})))}},yt=$.INSTANCE,bt=new ne(`function-call-result`,async(e,t)=>{await E().sendFunctionRequest({functionCallId:e,...t})}),xt=`68px`,St=`288px`,Ct=e=>e?/^\d+$/.test(e)?`${e}px`:e:St,wt=y({isOpen:!0},(e,t)=>{if(!t)return e;switch(t.type){case`toggle`:return{...e,isOpen:t.isOpen??e.isOpen};case`setWidth`:return{...e,width:t.width};default:return e}});export{j as _,$ as a,_t as c,Re as d,Be as f,M as g,V as h,bt as i,rt as l,Ie as m,Ct as n,yt as o,U as p,wt as r,Q as s,xt as t,K as u,A as v,O as y};
1
+ import{r as e}from"./useEvent-Dc9HkKI2.js";import{$n as t,La as n,Pa as r,Qn as i,_o as a,oi as o,vo as s,x as c,za as l}from"./cells-Bboj_mzH.js";import{t as u}from"./get-DjNf4SIX.js";import{t as d}from"./debounce-aFmHgJZY.js";import{E as f}from"./config-BdH5RvM0.js";import{t as p}from"./_baseSet-Bpdo9AvU.js";import{g as m,v as h}from"./useEventListener-CUPWI_1X.js";import{t as g}from"./invariant-Ci2dTZ72.js";import{d as _,v}from"./session-D7QkhMHj.js";import{D as y,M as b,c as x,l as S,n as ee}from"./config-VEBoxYs0.js";import{c as te,o as C}from"./state-BsVxWYGT.js";import{c as w,o as T}from"./markdown-renderer-BCB0NTfn.js";import{w as ne}from"./write-secret-modal-wFgr-1dA.js";import{t as re}from"./use-toast-CC89xOwH.js";import{t as ie}from"./preload-helper-uBIymjUX.js";import{r as ae}from"./strings-LjhpYwmx.js";import{t as E}from"./requests-yTHMxhVa.js";import{t as oe}from"./Deferred-CrTnjj37.js";import{t as se}from"./uuid-k9DpjH68.js";import{n as ce}from"./RenderHTML-DjS-DdUL.js";import{t as le}from"./useRunCells-BtJbnrtV.js";import{r as ue,t as de}from"./blob-mVTRazkn.js";import{f as fe}from"./useInstallPackage-DsbNVe8R.js";import{t as pe}from"./api-DMoBWmQT.js";import{n as me,t as he}from"./share-BZW3tzEX.js";import{i as D,r as ge,t as _e}from"./events-CbeVJ6OD.js";function O(e,t,n){return e==null?e:p(e,t,n)}function k(e,t){if(e.origin===globalThis.origin)return new Worker(e.href,{...t,type:`module`});let n=`import ${JSON.stringify(e.href)}`,r=globalThis.origin===`null`?`data:application/javascript,${encodeURIComponent(n)}`:URL.createObjectURL(new Blob([n],{type:`application/javascript`}));try{return new Worker(r,{...t,type:`module`})}finally{r.startsWith(`blob:`)&&URL.revokeObjectURL(r)}}function A(e){return e.assetUrl,e}var j=class{subscriptions=new Map;addSubscription(e,t){this.subscriptions.has(e)||this.subscriptions.set(e,new Set),this.subscriptions.get(e)?.add(t)}removeSubscription(e,t){this.subscriptions.get(e)?.delete(t)}notify(e,t){for(let n of this.subscriptions.get(e)??[])n(t)}},M=class e{subscriptions=new j;producer;static withProducerCallback(t){return new e(t)}static empty(){return new e}constructor(e){this.producer=e}startProducer(){this.producer&&this.producer(e=>{this.subscriptions.notify(`message`,e)})}connect(){return new Promise(e=>setTimeout(e,0)).then(()=>{this.subscriptions.notify(`open`,new Event(`open`))})}get readyState(){return WebSocket.OPEN}reconnect(e,t){this.close(),this.connect()}close(){this.subscriptions.notify(`close`,new Event(`close`))}send(e){return this.subscriptions.notify(`message`,new MessageEvent(`message`,{data:e})),Promise.resolve()}addEventListener(e,t){this.subscriptions.addSubscription(e,t),e===`open`&&t(new Event(`open`)),e===`message`&&this.startProducer()}removeEventListener(e,t){this.subscriptions.removeSubscription(e,t)}},ve=1e10,ye=1e3;function N(e,t){let n=e.map(e=>`"${e}"`).join(`, `);return Error(`This RPC instance cannot ${t} because the transport did not provide one or more of these methods: ${n}`)}function be(e={}){let t={};function n(e){t=e}let r={};function i(e){r.unregisterHandler&&r.unregisterHandler(),r=e,r.registerHandler?.(S)}let a;function o(e){if(typeof e==`function`){a=e;return}a=(t,n)=>{let r=e[t];if(r)return r(n);let i=e._;if(!i)throw Error(`The requested method has no handler: ${t}`);return i(t,n)}}let{maxRequestTime:s=ye}=e;e.transport&&i(e.transport),e.requestHandler&&o(e.requestHandler),e._debugHooks&&n(e._debugHooks);let c=0;function l(){return c<=ve?++c:c=0}let u=new Map,d=new Map;function f(e,...n){let i=n[0];return new Promise((n,a)=>{if(!r.send)throw N([`send`],`make requests`);let o=l(),c={type:`request`,id:o,method:e,params:i};u.set(o,{resolve:n,reject:a}),s!==1/0&&d.set(o,setTimeout(()=>{d.delete(o),a(Error(`RPC request timed out.`))},s)),t.onSend?.(c),r.send(c)})}let p=new Proxy(f,{get:(e,t,n)=>t in e?Reflect.get(e,t,n):e=>f(t,e)}),m=p;function h(e,...n){let i=n[0];if(!r.send)throw N([`send`],`send messages`);let a={type:`message`,id:e,payload:i};t.onSend?.(a),r.send(a)}let g=new Proxy(h,{get:(e,t,n)=>t in e?Reflect.get(e,t,n):e=>h(t,e)}),_=g,v=new Map,y=new Set;function b(e,t){if(!r.registerHandler)throw N([`registerHandler`],`register message listeners`);if(e===`*`){y.add(t);return}v.has(e)||v.set(e,new Set),v.get(e)?.add(t)}function x(e,t){if(e===`*`){y.delete(t);return}v.get(e)?.delete(t),v.get(e)?.size===0&&v.delete(e)}async function S(e){if(t.onReceive?.(e),!(`type`in e))throw Error(`Message does not contain a type.`);if(e.type===`request`){if(!r.send||!a)throw N([`send`,`requestHandler`],`handle requests`);let{id:n,method:i,params:o}=e,s;try{s={type:`response`,id:n,success:!0,payload:await a(i,o)}}catch(e){if(!(e instanceof Error))throw e;s={type:`response`,id:n,success:!1,error:e.message}}t.onSend?.(s),r.send(s);return}if(e.type===`response`){let t=d.get(e.id);t!=null&&clearTimeout(t);let{resolve:n,reject:r}=u.get(e.id)??{};e.success?n?.(e.payload):r?.(Error(e.error));return}if(e.type===`message`){for(let t of y)t(e.id,e.payload);let t=v.get(e.id);if(!t)return;for(let n of t)n(e.payload);return}throw Error(`Unexpected RPC message type: ${e.type}`)}return{setTransport:i,setRequestHandler:o,request:p,requestProxy:m,send:g,sendProxy:_,addMessageListener:b,removeMessageListener:x,proxy:{send:_,request:m},_setDebugHooks:n}}function xe(e){return be(e)}var P=`[transport-id]`;function Se(e,t){let{transportId:n}=t;return n==null?e:{[P]:n,data:e}}function Ce(e,t){let{transportId:n,filter:r}=t,i=r?.();if(n!=null&&i!=null)throw Error("Cannot use both `transportId` and `filter` at the same time");let a=e;if(n){if(e[P]!==n)return[!0];a=e.data}return i===!1?[!0]:[!1,a]}function we(e,t={}){let{transportId:n,filter:r,remotePort:i}=t,a=e,o=i??e,s;return{send(e){o.postMessage(Se(e,{transportId:n}))},registerHandler(e){s=t=>{let i=t.data,[a,o]=Ce(i,{transportId:n,filter:()=>r?.(t)});a||e(o)},a.addEventListener(`message`,s)},unregisterHandler(){s&&a.removeEventListener(`message`,s)}}}function Te(e,t){return we(e,t)}var Ee=`::controller`,De=`marimo-transport`;function F(e){return xe({transport:Te(e,{transportId:De}),maxRequestTime:2e4,_debugHooks:{onSend:e=>{m.debug(`[rpc] Parent -> Worker`,e)},onReceive:e=>{m.debug(`[rpc] Worker -> Parent`,e)}}})}function I(){let e=document.querySelector(`marimo-wasm`),t=e=>{try{return e?new URL(e,document.baseURI).href:void 0}catch{return}};return{version:te(),pyodideIndexUrl:t(e?.dataset.pyodideIndexUrl),pyodideLockfileUrl:t(e?.dataset.pyodideLockfileUrl),pypiIndexUrl:t(e?.dataset.pypiIndexUrl)?.replaceAll(`%7Bpackage_name%7D`,`{package_name}`)}}var L=me(),R=`marimo:file`,z=new r(null),Oe={saveFile(e){z.set(R,e)},readFile(){return z.get(R)}},ke={saveFile(e){s.setCodeForHash((0,L.compressToEncodedURIComponent)(e))},readFile(){let e=s.getCodeFromHash()||s.getCodeFromSearchParam();return e?(0,L.decompressFromEncodedURIComponent)(e):null}},Ae={saveFile(e){},readFile(){let e=document.querySelector(`marimo-code`);return e?decodeURIComponent(e.textContent||``).trim():null}},je={saveFile(e){},readFile(){if(window.location.hostname!==`marimo.app`)return null;let e=new URL(`export_demos/wasm-intro.py`,document.baseURI);return fetch(e.toString()).then(e=>e.ok?e.text():null).catch(()=>null)}},Me={saveFile(e){},readFile(){return e.get(n)??null}},Ne={saveFile(e){},readFile(){return[`import marimo`,`app = marimo.App()`,``,`@app.cell`,`def __():`,` return`,``,`if __name__ == "__main__":`,` app.run()`].join(`
2
+ `)}},B=class{stores;constructor(e){this.stores=e}insert(e,t){this.stores.splice(e,0,t)}saveFile(e){this.stores.forEach(t=>t.saveFile(e))}readFile(){for(let e of this.stores){let t=e.readFile();if(t)return t}return null}},V=new B([Me,Ae,ke]),H=new B([Oe,je,Ne]),Pe=new URL(`save-worker-C880NC3o.js`,import.meta.url).href,Fe=new URL(`worker-B5tVfGoh.js`,import.meta.url).href,U=class t{static get INSTANCE(){let e=`_marimo_private_PyodideBridge`;return window[e]||(window[e]=new t),window[e]}rpc;saveRpc;pendingSessionSave=Promise.resolve();interruptBuffer;messageConsumer;initialized=new oe;getSaveWorker(){if(_()===`read`)return m.debug(`Using partially disabled SaveWorker in read-mode`),{readFile:h,readNotebook:async()=>await V.readFile()??``,saveNotebook:h};let e=I(),t=F(k(new URL(Pe,import.meta.url),{name:Le()}));return t.send.bootstrap(e),t.proxy.request}constructor(){if(!b())return;let t=I(),n=k(new URL(Fe,import.meta.url),{name:Le()});this.rpc=F(n),this.rpc.send.bootstrap(t),this.rpc.addMessageListener(`ready`,()=>{this.startSession()}),this.rpc.addMessageListener(`initialized`,()=>{this.saveRpc=this.getSaveWorker(),this.setInterruptBuffer(),e.set(C,{kind:`ready`}),this.initialized.resolve()}),this.rpc.addMessageListener(`initializingMessage`,({message:t})=>{e.get(C).kind===`loading`&&e.set(C,{kind:`loading`,message:t})}),this.rpc.addMessageListener(`initializedError`,({error:t})=>{if(this.initialized.status===`resolved`){m.error(t),re({title:`Error initializing`,description:t,variant:`danger`});return}e.set(C,{kind:`error`,message:t}),this.initialized.reject(Error(t))}),this.rpc.addMessageListener(`kernelMessage`,({message:e})=>{this.messageConsumer?.(new MessageEvent(`message`,{data:e}))})}async startSession(){let t=await V.readFile(),n=await H.readFile(),r=e.get(l)??s.getFilename(),i=e.get(f),a={},o=new URLSearchParams(window.location.search);for(let e of o.keys()){let t=o.getAll(e);a[e]=t.length===1?t[0]:t}await this.rpc.proxy.request.startSession({queryParameters:a,code:t||n||``,filename:r,userConfig:{...i,runtime:{...i.runtime,auto_instantiate:_()===`read`||i.runtime.auto_instantiate}}})}setInterruptBuffer(){crossOriginIsolated?(this.interruptBuffer=new Uint8Array(new SharedArrayBuffer(1)),this.rpc.proxy.request.setInterruptBuffer(this.interruptBuffer)):m.warn(`Not running in a secure context; interrupts are not available.`)}attachMessageConsumer(e){this.messageConsumer=e,this.rpc.proxy.send.consumerReady({})}sendRename=async({filename:e})=>e===null?null:(s.setFilename(e),await this.rpc.proxy.request.bridge({functionName:`rename_file`,payload:e}),null);sendSave=async e=>{if(!this.saveRpc)return m.warn(`Save RPC not initialized`),null;let t=this.saveRpc.saveNotebook(e);this.pendingSessionSave=this.pendingSessionSave.catch(()=>void 0).then(async()=>{await t,await this.rpc.proxy.request.saveNotebook(e)}),this.pendingSessionSave.catch(e=>{m.error(e)}),await t;let n=await this.readCode();return n.contents&&(V.saveFile(n.contents),H.saveFile(n.contents)),null};sendCopy=async()=>{h()};sendStdin=async e=>(await this.rpc.proxy.request.bridge({functionName:`put_input`,payload:e.text}),null);sendPdb=async()=>{h()};sendSetBreakpoints=async()=>{h()};sendRun=async e=>(await this.rpc.proxy.request.loadPackages(e.codes.join(`
3
+ `)),await this.putControlRequest({type:`execute-cells`,...e}),null);sendRunScratchpad=async e=>(await this.rpc.proxy.request.loadPackages(e.code),await this.putControlRequest({type:`execute-scratchpad`,...e}),null);sendInterrupt=async()=>(this.interruptBuffer!==void 0&&(this.interruptBuffer[0]=2),null);sendShutdown=async()=>(window.close(),null);sendFormat=async e=>await this.rpc.proxy.request.bridge({functionName:`format`,payload:e});sendDeleteCell=async e=>(await this.putControlRequest({type:`delete-cell`,...e}),null);sendInstallMissingPackages=async e=>(this.putControlRequest({type:`install-packages`,...e}),null);sendCodeCompletionRequest=async t=>(e.get(c)||await this.rpc.proxy.request.bridge({functionName:`code_complete`,payload:t}),null);saveUserConfig=async e=>(await this.rpc.proxy.request.bridge({functionName:`save_user_config`,payload:e}),pe.post(`/kernel/save_user_config`,e,{baseUrl:`/`}).catch(e=>(m.error(e),null)));saveAppConfig=async e=>(await this.rpc.proxy.request.bridge({functionName:`save_app_config`,payload:e}),null);saveCellConfig=async e=>(await this.putControlRequest({type:`update-cell-config`,...e}),null);sendRestart=async()=>{let e=await this.readCode();return e.contents&&(V.saveFile(e.contents),H.saveFile(e.contents)),fe(),null};readCode=async()=>this.saveRpc?{contents:await this.saveRpc.readNotebook()}:(m.warn(`Save RPC not initialized`),{contents:``});readSnippets=async()=>await this.rpc.proxy.request.bridge({functionName:`read_snippets`,payload:void 0});openFile=async({path:e})=>{let t=he({code:null,baseUrl:window.location.origin});return window.open(t,`_blank`),null};sendListFiles=async e=>await this.rpc.proxy.request.bridge({functionName:`list_files`,payload:e});getFileRoots=async()=>await this.rpc.proxy.request.bridge({functionName:`file_roots`,payload:void 0});sendSearchFiles=async e=>await this.rpc.proxy.request.bridge({functionName:`search_files`,payload:e});sendComponentValues=async e=>(await this.putControlRequest({type:`update-ui-element`,...e,token:se()}),null);sendInstantiate=async e=>null;sendFunctionRequest=async e=>(await this.putControlRequest({type:`invoke-function`,...e}),null);sendCreateFileOrFolder=async e=>{let t=null;return e.file&&(t=(await ue(e.file)).split(`,`)[1]??``),await this.rpc.proxy.request.bridge({functionName:`create_file_or_directory`,payload:{path:e.path,type:e.type,name:e.name,contents:t}})};sendDeleteFileOrFolder=async e=>await this.rpc.proxy.request.bridge({functionName:`delete_file_or_directory`,payload:e});sendCopyFileOrFolder=async e=>await this.rpc.proxy.request.bridge({functionName:`copy_file_or_directory`,payload:e});sendRenameFileOrFolder=async e=>await this.rpc.proxy.request.bridge({functionName:`move_file_or_directory`,payload:e});sendUpdateFile=async e=>await this.rpc.proxy.request.bridge({functionName:`update_file`,payload:e});sendFileDetails=async e=>await this.rpc.proxy.request.bridge({functionName:`file_details`,payload:e});exportAsHTML=async e=>(await this.pendingSessionSave,await this.rpc.proxy.request.bridge({functionName:`export_html`,payload:A(e)}));exportAsMarkdown=async e=>(await this.pendingSessionSave,await this.rpc.proxy.request.bridge({functionName:`export_markdown`,payload:e}));exportAsScript=async e=>(await this.pendingSessionSave,await this.rpc.proxy.request.bridge({functionName:`export_script`,payload:e}));previewDatasetColumn=async e=>(await this.putControlRequest({type:`preview-dataset-column`,...e}),null);previewSQLTable=async e=>(await this.putControlRequest({type:`preview-sql-table`,...e}),null);previewSQLTableList=async e=>(await this.putControlRequest({type:`list-sql-tables`,...e}),null);previewSQLSchemaList=async e=>(await this.putControlRequest({type:`list-sql-schemas`,...e}),null);previewDataSourceConnection=async e=>(await this.putControlRequest({type:`list-data-source-connection`,...e}),null);validateSQL=async e=>(await this.putControlRequest({type:`validate-sql`,...e}),null);sendModelValue=async e=>(await this.putControlRequest({type:`model`,...e}),null);sendDocumentTransaction=()=>Promise.resolve(null);addPackage=async e=>this.rpc.proxy.request.addPackage(e);removePackage=async e=>this.rpc.proxy.request.removePackage(e);getPackageList=async()=>await this.rpc.proxy.request.listPackages();getSandbox=async()=>({backend:null,manifest:null,filename:null});updateManifest=async()=>{throw Error(`Sandboxes are not supported in WebAssembly`)};syncSandbox=async()=>{throw Error(`Sandboxes are not supported in WebAssembly`)};getDependencyTree=async()=>({tree:{dependencies:[],name:``,tags:[],version:null},context:{kind:`package-manager`,name:`micropip`}});listSecretKeys=async e=>(await this.putControlRequest({type:`list-secret-keys`,...e}),null);discoverDataSources=async e=>(await this.putControlRequest({type:`discover-data-sources`,...e}),null);getUsageStats=h;getEnvironmentInfo=async()=>await this.rpc.proxy.request.bridge({functionName:`get_environment_info`,payload:void 0});openTutorial=h;getRecentFiles=h;getWorkspaceFiles=h;getRunningNotebooks=h;shutdownSession=h;getExportAvailability=h;installExportRequirements=h;exportAsIPYNB=h;exportAsPDF=h;autoExportAsHTML=h;autoExportAsMarkdown=h;autoExportAsIPYNB=h;updateCellOutputs=h;writeSecret=h;invokeAiTool=h;clearCache=h;getCacheInfo=h;listStorageEntries=h;downloadStorage=h;async putControlRequest(e){await this.rpc.proxy.request.bridge({functionName:`put_control_request`,payload:e})}};function Ie(){return M.withProducerCallback(e=>{U.INSTANCE.attachMessageConsumer(e)})}function Le(){return`marimo${typeof window<`u`&&window.__MARIMO_HAS_WASM_CONTROLLER__===!0?Ee:``}`}function Re(e=x()){let t=window.fetch;return window.fetch=async(n,r)=>{let i=n instanceof Request?n.url:n.toString();if(i.startsWith(`data:`))return t(n,r);try{let a=W(i,e);if(a){let e=await(await t(a)).arrayBuffer();return new Response(e,{headers:{"Content-Type":ze(i)}})}return t(n,r)}catch(e){return m.error(`Error parsing URL`,e),t(n,r)}},()=>{window.fetch=t}}function ze(e){return e.endsWith(`.csv`)?`text/csv`:e.endsWith(`.json`)?`application/json`:e.endsWith(`.txt`)?`text/plain`:`application/octet-stream`}function Be(e,t=x()){let n=e.http.bind(e),r=e.load.bind(e);return e.http=async e=>{let r=W(e,t);if(r)return await window.fetch(r).then(e=>e.text());try{return await n(e)}catch(t){if(e.startsWith(`data:`))return await window.fetch(e).then(e=>e.text());throw t}},e.load=async e=>{let n=W(e,t);if(n)return await window.fetch(n).then(e=>e.text());try{return await r(e)}catch(t){if(e.startsWith(`data:`))return await window.fetch(e).then(e=>e.text());throw t}},()=>{e.http=n,e.load=r}}function Ve(e){return e.startsWith(`.`)?e.slice(1):e}function He(e,t=x()){let n=W(e,t);if(!n)return e;let r=de(n);return URL.createObjectURL(r)}function W(e,t){let n=document.baseURI;n.startsWith(`blob:`)&&(n=n.replace(`blob:`,``));let r=new URL(e,n).pathname,i=Ue(e),a=Ue(r);return t[e]||t[Ve(e)]||t[r]||t[Ve(r)]||i&&t[i]||a&&t[a]}function Ue(e){let t=e.indexOf(`/@file/`);return t===-1?null:e.slice(t)}function G(e,t){return{get(t){return e.get(t)},set(t,n){e.set(t,n)},save_changes(){e.save_changes()},send:e.send.bind(e),on(n,r){t.aborted||(e.on(n,r),t.addEventListener(`abort`,()=>e.off(n,r),{once:!0}))},off(t,n){e.off(t??null,n??null)},widget_manager:{async get_model(n){return G(await e.widget_manager.get_model(n),t)}}}}function K(e){return typeof e==`string`&&e.length>0}function We(e){if(typeof e==`string`&&e.startsWith(`anywidget:`)){let t=e.slice(10);if(K(t))return t}throw Error(`[anywidget] Invalid widget reference: ${JSON.stringify(e)}`)}function Ge(e,t){return{async getModel(n){let r=We(n);return G(await e.getModel(r),t)},async getWidget(n){let r=We(n),i=await e.getWidget(r);return{exports:i.exports,async render({el:e,signal:n}){await i.render({el:e,signal:n??t})}}}}}var Ke=Symbol(`marimo`);function q(e){return e[Ke]}var qe=class e{#e=`change`;#t;#n;#r;#i={};static _modelManager;constructor(e,t,n){this.#n=e,this.#r=t,this.#t=new Set,n&&n.addEventListener(`abort`,()=>{m.debug(`[Model] Signal aborted, clearing all listeners`),this.#i={}})}[Ke]={updateAndEmitDiffs:e=>this.#o(e),emitCustomMessage:(e,t)=>this.#s(e,t)};off(e,t){if(!e){this.#i={};return}if(!t){this.#i[e]=new Set;return}this.#i[e]?.delete(t)}send(e,t,n){let r=(n??[]).map(e=>e instanceof ArrayBuffer?new DataView(e):new DataView(e.buffer,e.byteOffset,e.byteLength));return this.#r.sendCustomMessage(e,r).then(()=>t?.())}widget_manager={async get_model(t){let n=await e._modelManager.getModel(t);if(!n)throw Error(`Model not found with id: ${t}. This is likely because the model was not registered.`);return n}};get(e){return this.#n[e]}set(e,t){this.#n={...this.#n,[e]:t},this.#t.add(e),this.#a(`change:${e}`,t),this.#c()}save_changes(){if(this.#t.size===0)return;let e=Object.fromEntries([...this.#t].map(e=>[e,this.#n[e]]));this.#t.clear(),this.#r.sendUpdate(e)}on(e,t,n){let r=n?.signal;r?.aborted||(this.#i[e]||(this.#i[e]=new Set),this.#i[e].add(t),r?.addEventListener(`abort`,()=>this.off(e,t),{once:!0}))}#a(e,t){let n=this.#i[e];if(n)for(let e of[...n])try{e(t)}catch(e){m.error(`Error emitting event`,e)}}#o(e){e!=null&&Object.keys(e).forEach(t=>{let n=t;this.#t.delete(n),this.#n[n]!==e[n]&&(this.#n={...this.#n,[n]:e[n]},this.#a(`change:${n}`,e[n]),this.#c())})}#s(e,t=[]){let n=this.#i[`msg:custom`];if(n)for(let r of[...n])try{r(e.content,t)}catch(e){m.error(`Error emitting event`,e)}}#c=d(()=>{let e=this.#i[this.#e];if(e)for(let t of[...e])try{t()}catch(e){m.error(`Error emitting event`,e)}},0)};function Je(e){return typeof e==`function`}function Ye(e){return typeof e==`function`}function Xe(e){return t(e)&&(Je(e.render)||Ye(e.initialize))}function Ze(e){return typeof e==`function`||Xe(e)}function Qe(e){return t(e)&&Ze(e.default)}var $e=new Set,et=new WeakMap;function tt(e,n){if(Qe(e))return e.default;if(!t(e)||e.default!==void 0)return null;let r=Je(e.render)?e.render:void 0,i=Ye(e.initialize)?e.initialize:void 0;if(r===void 0&&i===void 0)return null;let a=et.get(e);if(a)return a;$e.has(n)||($e.add(n),m.warn(`Anywidget module at ${n} uses deprecated top-level named exports (\`render\`/\`initialize\`). Per the AFM spec, use a default export instead: \`export default { render }\`. See https://anywidget.dev/en/afm/`));let o={render:r,initialize:i};return et.set(e,o),o}function nt(e,n){let r=`https://anywidget.dev/en/afm/`,a=t(e)&&i(e,`render`),o=t(e)&&i(e,`initialize`);if(t(e)&&e.default!==void 0)return Error(`Anywidget module at ${n} has an invalid default export. Expected a factory function or an object with \`render\` or \`initialize\`. See ${r}`);if(a||o){let e=[a?"`render`":null,o?"`initialize`":null].filter(Boolean).join(` and `),t=[a?`render`:null,o?`initialize`:null].filter(e=>e!==null),i=`export default { ${t.join(`, `)} }`,s=t.length===1?`export function ${t[0]}`:`named export function ...`;return Error(`Anywidget module at ${n} uses named exports (${e}). Per the AFM spec, use a default export instead: \`${i}\` (not \`${s}\`). See ${r}`)}return Error(`Anywidget module at ${n} is missing a default export. Per the AFM spec, use \`export default { render }\` or \`export default async () => ({ render })\`. See ${r}`)}function rt(e){return typeof e!=`string`||e.length===0?!1:!!(/^(\.?\/)?@file\/[^?#]+$/.test(e)||at(e))}function it(){return e.get(le)||ce()}function at(e){return e.startsWith(`data:text/javascript;base64,`)||e.startsWith(`data:application/javascript;base64,`)||e.startsWith(`data:text/css;base64,`)?it():!1}var ot={invoke:async()=>{let e=`anywidget.invoke not supported in marimo. Please file an issue at https://github.com/marimo-team/marimo/issues`;throw m.warn(e),Error(e)}};function st(e){if(typeof AbortSignal.any==`function`)return AbortSignal.any(e);let t=new AbortController;for(let n of e){if(n.aborted)return t.abort(n.reason),t.signal;n.addEventListener(`abort`,()=>t.abort(n.reason),{once:!0})}return t.signal}var ct=class{#e=new Map;getModule(e){let{jsUrl:t,jsHash:n,kernelAuthored:r=!1}=e,i=this.#e.get(n);if(i)return i;let a=this.#t(t,{kernelAuthored:r}).catch(e=>{throw this.#e.delete(n),e});return this.#e.set(n,a),a}invalidate(e){this.#e.delete(e)}async#t(e,t={}){if(!(rt(e)||t.kernelAuthored===!0&&/^(https?:|data:)/.test(e)))throw Error(`Refusing to load anywidget module from untrusted URL: ${String(e)}`);let n=ee(e).toString();return S()&&(n=He(n)),ie(()=>import(n),[],import.meta.url)}};function J(e){return typeof e==`function`}async function Y(e,t){try{await e()}catch(e){m.warn(`[WidgetBinding] ${t} cleanup failed`,e)}}var lt=class e{#e;#t;#n;#r;#i;#a=new Set;#o=new Set;constructor(e){this.#t=e.widget,this.#n=e.model,this.#r=e.exports,this.#e=e.controller,this.#i=e.createHost}static async create({widgetDef:t,model:n,createHost:r,controller:i=new AbortController}){let a=i.signal,o=typeof t==`function`?await t():t,s=Promise.resolve(o.initialize?.({model:G(n,a),experimental:ot,signal:a}));s.then(async e=>{a.aborted&&J(e)&&await Y(e,`late initialize`)}).catch(()=>void 0);let c=await Promise.race([s,new Promise((e,t)=>{let n=()=>t(Error(`[anywidget] binding destroyed`));if(a.aborted){n();return}a.addEventListener(`abort`,n,{once:!0})})]);if(a.aborted)throw Error(`[anywidget] binding destroyed`);let l,u;J(c)?(u=c,l=void 0):l=typeof c==`object`&&c?c:void 0;let d=new e({widget:o,model:n,exports:l,controller:i,createHost:r});return u&&a.addEventListener(`abort`,()=>void d.#c(u,`initialize`),{once:!0}),d}get exports(){return this.#r}async createView(e,t){let n=this.#s(e,t);this.#o.add(n);try{await n}finally{this.#o.delete(n)}}async#s(e,t){let n=this.#t;if(!n.render)return;let r=st([t.signal,this.#e.signal]);if(r.aborted)return;e.el.innerHTML=``;let i=this.#i(r),a=await n.render({model:G(this.#n,r),el:e.el,experimental:ot,signal:r,host:i});if(J(a)){let e=()=>{let e=t.signal.aborted?`view unmount`:`binding destroyed`;return m.debug(`[WidgetBinding] Render cleanup triggered (reason: ${e})`),this.#c(a,`render`)};if(r.aborted){await e();return}r.addEventListener(`abort`,()=>void e(),{once:!0})}}#c(e,t){let n=Y(e,t);return this.#a.add(n),n.finally(()=>this.#a.delete(n)),n}async destroy(){for(m.debug(`[WidgetBinding] Destroying binding generation`),this.#e.abort(),await Promise.allSettled(this.#o);this.#a.size>0;)await Promise.all(this.#a)}},ut=new ct,dt=class{#e;#t;#n;#r;#i;#a=new AbortController;#o=new oe;#s=new Set;#c=new Map;#l;#u;#d;#f=Promise.resolve();#p=``;constructor(e,t){this.#e=e,this.#t=t.timeout,this.#n=t.isEditMode,this.#r=t.createHost,this.#i=t.onModelTimeout}getModel(){return this.#o.status===`pending`&&!this.#l&&(this.#l=setTimeout(()=>{this.#o.status===`pending`&&(this.#l=void 0,this.#o.reject(Error(`Model not found for key: ${this.#e}`)),this.#i())},this.#t)),this.#o.promise}getModelSync(){return this.#o.status===`resolved`?this.#o.value:void 0}createModel(e){this.#o.status===`pending`&&this.#m(e(this.#a.signal))}setModel(e){this.#o.status===`pending`&&this.#m(e)}#m(e){this.#l&&=(clearTimeout(this.#l),void 0),this.#o.resolve(e);let t=e.get(`_css`);this.#p=typeof t==`string`?t:``,e.on(`change:_css`,e=>{this.#p=typeof e==`string`?e:``;for(let e of this.#c.values())e.update(this.#p)},{signal:this.#a.signal})}setSpec(e){if(!this.#u){this.#u=e;return}this.#n()&&(this.#u=e,this.#d&&this.#d.hash!==e.hash&&this.#v(e))}async getWidget(){return{exports:(await this.#h()).exports,render:async({el:e,signal:t})=>{await this.createView({el:e,signal:t??this.#a.signal})}}}async createView(e){if(e.signal.aborted||this.#a.signal.aborted)return;let t={el:e.el,signal:e.signal};this.#s.add(t),this.#x(t),e.signal.addEventListener(`abort`,()=>this.#s.delete(t),{once:!0}),await this.#b(t)}async#h(){for(;!this.#a.signal.aborted;){let e=await this.getModel(),t=this.#d;if(!t){let n=this.#u;if(!n)throw Error(`[anywidget] No ESM spec for model ${this.#e}: nothing ever provided this widget's code`);t=this.#_(n,e)}try{let e=await t.promise;if(t===this.#d)return e}catch(e){if(!this.#d||t===this.#d)throw e}}throw Error(`[anywidget] widget runtime destroyed`)}async#g(e){let{spec:t,model:n,controller:r}=e,i=await ut.getModule({jsUrl:t.url,jsHash:t.hash,kernelAuthored:!0}),a=tt(i,t.url);if(!a)throw ut.invalidate(t.hash),nt(i,t.url);return lt.create({widgetDef:a,model:n,createHost:this.#r,controller:r})}#_(e,t){let n=new AbortController,r={hash:e.hash,controller:n,promise:this.#g({spec:e,model:t,controller:n})};return r.promise.catch(()=>{this.#d===r&&(this.#d=void 0)}),this.#d=r,r}#v(e){let t=this.#d;if(!t)return;m.debug(`[WidgetRuntime] Hot-swapping generation for model=${this.#e}`);let n=this.#y(t),r=this.getModelSync();if(!r)return;let i=this.#_(e,r);for(let e of this.#s)e.generation=void 0,n.then(()=>this.#b(e,i)).catch(e=>{m.error(`[WidgetRuntime] Error replacing widget view`,e)})}#y(e){e.controller.abort();let t=this.#f.then(async()=>{try{await(await e.promise).destroy()}catch{}});return this.#f=t,t}async#b(e,t){if(e.signal.aborted||this.#a.signal.aborted)return;let n=t??this.#d,r=n?await n.promise:await this.#h(),i=this.#d;if(!(!i||i!==(n??i))&&e.generation!==i){e.generation=i;try{await r.createView({el:e.el},{signal:e.signal})}catch(t){if(i!==this.#d){e.generation=void 0;return}throw t}}}#x(e){let t=e.el.getRootNode();if(!X(t)&&!ft(t))return;let n=this.#c.get(t);n||(n=pt(t,this.#p),this.#c.set(t,n)),n.references+=1;let r=!1;e.signal.addEventListener(`abort`,()=>{if(r)return;r=!0;let e=this.#c.get(t);e&&(--e.references,e.references===0&&(e.dispose(),this.#c.delete(t)))},{once:!0})}dispose(){if(!this.#a.signal.aborted){m.debug(`[WidgetRuntime] Disposing model=${this.#e}`),this.#l&&=(clearTimeout(this.#l),void 0),this.#o.status===`pending`&&(this.#o.promise.catch(()=>void 0),this.#o.reject(Error(`[anywidget] widget runtime destroyed`))),this.#d&&this.#y(this.#d),this.#a.abort(),this.#s.clear();for(let e of this.#c.values())e.dispose();this.#c.clear()}}};function X(e){return e.nodeType===Node.DOCUMENT_NODE}function ft(e){return e.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&`host`in e}function pt(e,t){let n=X(e)?e:e.ownerDocument??document,r=n.defaultView??window;if(`adoptedStyleSheets`in e&&r.CSSStyleSheet!==void 0&&typeof r.CSSStyleSheet.prototype.replaceSync==`function`)try{let n=new r.CSSStyleSheet;return n.replaceSync(t),e.adoptedStyleSheets=[...e.adoptedStyleSheets,n],{references:0,update(e){n.replaceSync(e)},dispose(){e.adoptedStyleSheets=e.adoptedStyleSheets.filter(e=>e!==n)}}}catch{}let i=n.createElement(`style`);return i.textContent=t,X(e)?n.head.append(i):e.append(i),{references:0,update(e){i.textContent=e},dispose(){i.remove()}}}function Z(e,t=[]){let n=[];if(e instanceof DataView)n.push(t);else if(Array.isArray(e))for(let[r,i]of e.entries())n.push(...Z(i,[...t,r]));else if(typeof e==`object`&&e)for(let[r,i]of Object.entries(e))n.push(...Z(i,[...t,r]));return n}function mt(e){let t=Z(e);if(t.length===0)return{state:e,buffers:[],bufferPaths:[]};let n=structuredClone(e),r=[],i=[];for(let a of t){let t=u(e,a);if(t instanceof DataView){let e=w(t);r.push(e),i.push(a),O(n,a,e)}}return{state:n,buffers:r,bufferPaths:i}}function ht(e){let{state:t,bufferPaths:n,buffers:r}=e;if(!n||n.length===0)return t;r&&g(r.length===n.length,`Buffers and buffer paths not the same length`);let i=t;for(let[e,t]of n.entries()){let n=r?.[e];if(n==null){m.warn(`[anywidget] Could not find buffer at path`,t);continue}typeof n==`string`?O(i,t,T(n)):O(i,t,n)}return i}function gt(){let t=e.get(v).mode;return t===`edit`||t===`present`}var Q=new class{#e=new Map;#t;#n;constructor(e=1e4,t=gt){this.#t=e,this.#n=t}#r(e){let t=this.#e.get(e);if(!t){let n=new dt(e,{timeout:this.#t,isEditMode:this.#n,createHost:e=>Ge(this,e),onModelTimeout:()=>{this.#e.get(e)===n&&(n.dispose(),this.#e.delete(e))}});t=n,this.#e.set(e,t)}return t}getModel(e){return this.#r(e).getModel()}getModelSync(e){return this.#e.get(e)?.getModelSync()}createModel(e,t){this.#r(e).createModel(t)}setModel(e,t){this.#r(e).setModel(t)}setSpec(e,t){this.#r(e).setSpec(t)}getWidget(e){return this.#r(e).getWidget()}createView(e){return this.#r(e.modelId).createView(e)}delete(e){let t=this.#e.get(e);t&&(t.dispose(),this.#e.delete(e))}};qe._modelManager=Q;async function _t(e,t){let n=t.model_id;if(!K(n))throw Error(`[anywidget] Invalid model id: ${String(n)}`);let r=t.message,i=(`buffers`in r?r.buffers:[]).map(T);switch(r.method){case`open`:{let{state:t,buffer_paths:a=[]}=r;r.esm_spec&&e.setSpec(n,r.esm_spec);let o=ht({state:t,bufferPaths:a,buffers:i}),s=e.getModelSync(n);if(s){q(s).updateAndEmitDiffs(o);return}e.createModel(n,e=>{let t=S()?{sendUpdate:async()=>void 0,sendCustomMessage:async()=>void 0}:{async sendUpdate(t){if(e.aborted){m.debug(`[Model] sendUpdate suppressed for model=${n} (signal aborted)`);return}let{state:r,buffers:i,bufferPaths:a}=mt(t);await E().sendModelValue({modelId:n,message:{method:`update`,state:r,bufferPaths:a},buffers:i})},async sendCustomMessage(t,r){if(e.aborted){m.debug(`[Model] sendCustomMessage suppressed for model=${n} (signal aborted)`);return}await E().sendModelValue({modelId:n,message:{method:`custom`,content:t},buffers:r.map(w)})}};return new qe(o,t,e)});return}case`custom`:q(await e.getModel(n)).emitCustomMessage({method:`custom`,content:r.content},i);return;case`close`:e.delete(n);return;case`update`:{let{state:t,buffer_paths:a=[]}=r;r.esm_spec&&e.setSpec(n,r.esm_spec);let o=ht({state:t,bufferPaths:a,buffers:i});q(await e.getModel(n)).updateAndEmitDiffs(o);return}default:ae(r)}}o(Q,`WIDGET_REGISTRY`);function vt(e){return typeof e!=`object`||!e?!1:`type`in e&&e.type===`marimo-ui-value-update`}var $=class e{entries;static get INSTANCE(){let t=`_marimo_private_UIElementRegistry`;return window[t]||(window[t]=new e),window[t]}constructor(){this.entries=new Map}has(e){return this.entries.has(e)}set(e,t){this.entries.has(e)&&m.debug(`UIElementRegistry overwriting entry for objectId.`,e),this.entries.set(e,{objectId:e,value:t,elements:new Set})}registerInstance(e,t){let n=this.entries.get(e);n===void 0?this.entries.set(e,{objectId:e,value:a(t,this),elements:new Set([t])}):n.elements.add(t)}removeInstance(e,t){let n=this.entries.get(e);n?.elements.has(t)&&n.elements.delete(t)}removeElementsByCell(e){[...this.entries.keys()].filter(t=>t.startsWith(`${e}-`)).forEach(e=>{this.entries.delete(e)})}lookupValue(e){let t=this.entries.get(e);return t===void 0?void 0:t.value}broadcastMessage(e,t,n){let r=this.entries.get(e);if(r===void 0){m.warn(`UIElementRegistry missing entry`,e);return}if(vt(t)){r.value=t.value,r.elements.forEach(e=>{e.dispatchEvent(D.create({bubbles:!1,composed:!0,detail:{value:t.value,element:e}}))});return}r.elements.forEach(r=>{r.dispatchEvent(_e.create({bubbles:!1,composed:!0,detail:{objectId:e,message:t,buffers:n}}))})}broadcastValueUpdate(e,t,n){let r=this.entries.get(t);r===void 0?m.warn(`UIElementRegistry missing entry`,t):(r.value=n,r.elements.forEach(t=>{t!==e&&t.dispatchEvent(D.create({bubbles:!1,composed:!0,detail:{value:n,element:t}}))}),document.dispatchEvent(ge.create({bubbles:!0,composed:!0,detail:{objectId:t}})))}},yt=$.INSTANCE,bt=new ne(`function-call-result`,async(e,t)=>{await E().sendFunctionRequest({functionCallId:e,...t})}),xt=`68px`,St=`288px`,Ct=e=>e?/^\d+$/.test(e)?`${e}px`:e:St,wt=y({isOpen:!0},(e,t)=>{if(!t)return e;switch(t.type){case`toggle`:return{...e,isOpen:t.isOpen??e.isOpen};case`setWidth`:return{...e,width:t.width};default:return e}});export{j as _,$ as a,_t as c,Re as d,Be as f,M as g,V as h,bt as i,rt as l,Ie as m,Ct as n,yt as o,U as p,wt as r,Q as s,xt as t,K as u,A as v,O as y};