@marimo-team/frontend 0.21.2-dev3 → 0.21.2-dev31

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 (102) hide show
  1. package/dist/assets/{CellStatus-CDSBsjjF.js → CellStatus-B2zz_FmA.js} +1 -1
  2. package/dist/assets/JsonOutput-BKsCyU13.js +46 -0
  3. package/dist/assets/{LazyAnyLanguageCodeMirror-m8w66E4s.js → LazyAnyLanguageCodeMirror-Dmh6kfiy.js} +2 -2
  4. package/dist/assets/{MarimoErrorOutput-az74f3Mp.js → MarimoErrorOutput-CuRqjiUs.js} +1 -1
  5. package/dist/assets/{RenderHTML-DJ8khuob.js → RenderHTML-D_zT74Lq.js} +1 -1
  6. package/dist/assets/{add-cell-with-ai-DUn4LN4W.js → add-cell-with-ai-mTm-dtan.js} +1 -1
  7. package/dist/assets/{add-connection-dialog-CBz0AUVX.js → add-connection-dialog-D-YPxf1v.js} +1 -1
  8. package/dist/assets/{agent-panel-u83dsDsM.js → agent-panel-B33uC899.js} +4 -4
  9. package/dist/assets/ai-model-dropdown-aWQwR5QF.js +5 -0
  10. package/dist/assets/{any-language-editor-DwQMnAM3.js → any-language-editor-C4OP3txB.js} +1 -1
  11. package/dist/assets/{app-config-button-rDu-lCIB.js → app-config-button-BPvtPnFO.js} +1 -1
  12. package/dist/assets/{azure-BTXHztTw.js → azure-B4I1bDnQ.js} +1 -1
  13. package/dist/assets/{cell-editor-DX7IcqNr.js → cell-editor-CphJ_7RI.js} +1 -1
  14. package/dist/assets/{cell-link-Q_UEP94Z.js → cell-link-DFqw-p8a.js} +1 -1
  15. package/dist/assets/{cells-fq1RMGX_.js → cells-Bg7-G3QJ.js} +53 -53
  16. package/dist/assets/{chat-display-D_Fuuy6r.js → chat-display-B6a8fK7j.js} +1 -1
  17. package/dist/assets/{chat-panel-BO-JoQSp.js → chat-panel-B247iLHO.js} +1 -1
  18. package/dist/assets/{column-preview-WsubyItX.js → column-preview-CtAbPvyW.js} +1 -1
  19. package/dist/assets/{command-rfxSsiHU.js → command-Bb5BQ9IQ.js} +1 -1
  20. package/dist/assets/{command-palette-Bez4BqJF.js → command-palette-Ba8b6UXV.js} +1 -1
  21. package/dist/assets/{common-BYwO983A.js → common-DrrPhv3x.js} +1 -1
  22. package/dist/assets/{components-Ozq0825a.js → components-B4UeUHl_.js} +1 -1
  23. package/dist/assets/{components-Bpgzv_5_.js → components-DREyNirk.js} +1 -1
  24. package/dist/assets/{context-aware-panel-CfsfBlhO.js → context-aware-panel-91O6JrAw.js} +3 -3
  25. package/dist/assets/copy-CA4fP28I.js +1 -0
  26. package/dist/assets/{copy-icon-BgmMM9Zg.js → copy-icon-C6n2vWSW.js} +1 -1
  27. package/dist/assets/{datasource-F9sJtuof.js → datasource-nFaOdZWT.js} +1 -1
  28. package/dist/assets/{dependency-graph-panel-AOBcX2tP.js → dependency-graph-panel-BHHmugpa.js} +1 -1
  29. package/dist/assets/{documentation-panel-D28MpqbI.js → documentation-panel-C0LXfz0P.js} +1 -1
  30. package/dist/assets/{download-B9_ToVd4.js → download-hacnp18J.js} +4 -4
  31. package/dist/assets/{edit-page-otS-QvnC.js → edit-page-DrMpMRcp.js} +3 -3
  32. package/dist/assets/{error-panel-RRoj_iOR.js → error-panel-D_jyOp9O.js} +1 -1
  33. package/dist/assets/{file-explorer-panel-CB8vF5ob.js → file-explorer-panel-BS6bXHdR.js} +1 -1
  34. package/dist/assets/{file-icons-CWLHDa1J.js → file-icons-DWJwqnd-.js} +1 -1
  35. package/dist/assets/{floating-outline-BvQKiC0F.js → floating-outline-D466s5lB.js} +1 -1
  36. package/dist/assets/{focus-DYwTiH9-.js → focus-DKnBT1ji.js} +1 -1
  37. package/dist/assets/{form-CrQYrsUC.js → form-DRz7hUP9.js} +1 -1
  38. package/dist/assets/{glide-data-editor-xt5xNZeV.js → glide-data-editor-CoE8cs_o.js} +1 -1
  39. package/dist/assets/{globals-BsV5fVR-.js → globals-ByNi1JTJ.js} +1 -1
  40. package/dist/assets/{home-page-itW0tRmv.js → home-page-D7Z_Tlyv.js} +1 -1
  41. package/dist/assets/{hooks-CHx5dUUq.js → hooks-3nahTPnh.js} +1 -1
  42. package/dist/assets/html-to-image-CN0roffg.js +2 -0
  43. package/dist/assets/index-CIk_2P5O.js +38 -0
  44. package/dist/assets/{index-GjXovVsl.css → index-D3rIJiKM.css} +1 -1
  45. package/dist/assets/{kiosk-mode-DNjEnIWb.js → kiosk-mode-BRjlh6JD.js} +1 -1
  46. package/dist/assets/{layout-CwFtCyW8.js → layout-fT20kG4_.js} +3 -3
  47. package/dist/assets/{logs-panel-BU1tNEVc.js → logs-panel-Bs9VL6Hy.js} +1 -1
  48. package/dist/assets/{markdown-renderer-MR9df58W.js → markdown-renderer-A3Ed0cjI.js} +1 -1
  49. package/dist/assets/{mode-AcL8c6qH.js → mode-CdFYvrq5.js} +1 -1
  50. package/dist/assets/{name-cell-input-DVFEv_aO.js → name-cell-input-l9v5UNrY.js} +1 -1
  51. package/dist/assets/{outline-panel-CP0oIuiU.js → outline-panel-YCGxMYb6.js} +1 -1
  52. package/dist/assets/{packages-panel-CzRELimG.js → packages-panel-BU9XDexQ.js} +1 -1
  53. package/dist/assets/{panels-wTweRyIv.js → panels-BQFJvWY0.js} +1 -1
  54. package/dist/assets/{process-output-CTVsT--B.js → process-output-CwDI4Cei.js} +1 -1
  55. package/dist/assets/{readonly-python-code-DH-1xZGq.js → readonly-python-code-i_LeNopW.js} +1 -1
  56. package/dist/assets/{run-page-FCvGnICa.js → run-page-DRNJCJFp.js} +1 -1
  57. package/dist/assets/{scratchpad-panel-k9lrm-rC.js → scratchpad-panel-DlQ1e62a.js} +1 -1
  58. package/dist/assets/{secrets-panel-B1Z-6dmz.js → secrets-panel-CfWyTaso.js} +1 -1
  59. package/dist/assets/{session-panel-WhN0qilM.js → session-panel-B1yjHqHu.js} +1 -1
  60. package/dist/assets/{snippets-panel-BCDHUuku.js → snippets-panel-Dk7Ka2Gd.js} +1 -1
  61. package/dist/assets/{state-3V5UxC3B.js → state-CXu3CC70.js} +1 -1
  62. package/dist/assets/{switch-CVKxYu_0.js → switch-DhfF9ECb.js} +1 -1
  63. package/dist/assets/{terminal-Cr7wbEjz.js → terminal-BZZqbl0D.js} +1 -1
  64. package/dist/assets/{tracing-DUVd0jtl.js → tracing-6mcSpkGK.js} +1 -1
  65. package/dist/assets/{tracing-panel-CuTxPn_x.js → tracing-panel-QfWW4RrJ.js} +2 -2
  66. package/dist/assets/{useAddCell-YC7rpcmD.js → useAddCell-rz5hgq-s.js} +1 -1
  67. package/dist/assets/{useBoolean-m1e6E3Ao.js → useBoolean-BYlCXj8U.js} +1 -1
  68. package/dist/assets/{useCellActionButton-GUb2fXU8.js → useCellActionButton-D-FPtHfb.js} +1 -1
  69. package/dist/assets/{useDeleteCell-DRUDRiy0.js → useDeleteCell-DSrWT4rB.js} +1 -1
  70. package/dist/assets/{useDependencyPanelTab-nFVMlEx0.js → useDependencyPanelTab-CYwz2tNi.js} +1 -1
  71. package/dist/assets/{useNotebookActions-ChLHy-0O.js → useNotebookActions-BeK3aC7s.js} +1 -1
  72. package/dist/assets/{useRunCells-5m6jCnyo.js → useRunCells-RUEojcb5.js} +1 -1
  73. package/dist/assets/{useSplitCell-DGD9smMq.js → useSplitCell-Ct0VLOTS.js} +1 -1
  74. package/dist/index.html +36 -36
  75. package/package.json +1 -1
  76. package/src/components/app-config/user-config-form.tsx +5 -4
  77. package/src/components/data-table/__tests__/utils.test.ts +138 -1
  78. package/src/components/data-table/context-menu.tsx +9 -5
  79. package/src/components/data-table/data-table.tsx +3 -0
  80. package/src/components/data-table/range-focus/__tests__/atoms.test.ts +8 -2
  81. package/src/components/data-table/range-focus/__tests__/test-utils.ts +2 -0
  82. package/src/components/data-table/range-focus/__tests__/utils.test.ts +82 -8
  83. package/src/components/data-table/range-focus/atoms.ts +2 -2
  84. package/src/components/data-table/range-focus/utils.ts +50 -12
  85. package/src/components/data-table/types.ts +7 -0
  86. package/src/components/data-table/utils.ts +87 -0
  87. package/src/components/ui/range-slider.tsx +108 -1
  88. package/src/core/codemirror/lsp/notebook-lsp.ts +28 -2
  89. package/src/css/md.css +7 -0
  90. package/src/plugins/core/sanitize-html.ts +25 -18
  91. package/src/plugins/impl/DataTablePlugin.tsx +23 -2
  92. package/src/plugins/impl/SliderPlugin.tsx +1 -3
  93. package/src/plugins/impl/__tests__/SliderPlugin.test.tsx +120 -0
  94. package/src/utils/__tests__/download.test.tsx +2 -2
  95. package/src/utils/copy.ts +18 -5
  96. package/src/utils/download.ts +4 -3
  97. package/src/utils/html-to-image.ts +6 -0
  98. package/dist/assets/JsonOutput-DKXKGKvX.js +0 -46
  99. package/dist/assets/ai-model-dropdown-DPTa_EpU.js +0 -5
  100. package/dist/assets/copy-YwM0Pd7v.js +0 -1
  101. package/dist/assets/html-to-image-BnSc-Wa0.js +0 -2
  102. package/dist/assets/index-0n92c_W7.js +0 -38
@@ -1,3 +1,3 @@
1
- var Ar=Object.defineProperty;var mt=g=>{throw TypeError(g)};var Lr=(g,y,E)=>y in g?Ar(g,y,{enumerable:!0,configurable:!0,writable:!0,value:E}):g[y]=E;var a=(g,y,E)=>Lr(g,typeof y!="symbol"?y+"":y,E),Ce=(g,y,E)=>y.has(g)||mt("Cannot "+E);var l=(g,y,E)=>(Ce(g,y,"read from private field"),E?E.call(g):y.get(g)),F=(g,y,E)=>y.has(g)?mt("Cannot add the same private member more than once"):y instanceof WeakSet?y.add(g):y.set(g,E),N=(g,y,E,de)=>(Ce(g,y,"write to private field"),de?de.call(g,E):y.set(g,E),E),$=(g,y,E)=>(Ce(g,y,"access private method"),E);import{s as pt}from"./chunk-LvLJmgfZ.js";import{i as se,l as ye,p as V,u as Ir}from"./useEvent-O0nX5vok.js";import{t as Ur}from"./react-Bj1aDYRI.js";import{G as ft,Qr as Tr,Xr as zr,_n as Wr,ai as Or,b as Dr,ei as Br,oi as ie,qr as Hr,x as $r,__tla as Vr}from"./cells-fq1RMGX_.js";import{t as gt}from"./compiler-runtime-B3qBwwSJ.js";import{t as Xr}from"./get-DBdMgUNq.js";import{t as Yr}from"./assertNever-DWSyoPEi.js";import{t as Qr}from"./debounce-DS_VtWMt.js";import{t as Gr}from"./_baseSet-D5BgdrnX.js";import{g as v,m as f}from"./useEventListener-Dy81QR4n.js";import{t as Jr}from"./invariant-CQUIhlu2.js";import{S as Kr}from"./utils-tNbLd14P.js";import{S as Zr,n as en}from"./config-3Aq84phF.js";import{a as tn}from"./switch-CVKxYu_0.js";import{n as yt}from"./globals-BsV5fVR-.js";import{t as bt}from"./ErrorBoundary-Ba0LbbH4.js";import{t as rn}from"./jsx-runtime-icT_Ltz2.js";import{t as nn}from"./button-Ej3vmCIF.js";import{t as sn}from"./cn-BoaCR37F.js";import{J as Re,Y as wt,Z as an,__tla as on}from"./JsonOutput-DKXKGKvX.js";import{t as ln}from"./createReducer-Drh7NmIR.js";import{t as Se}from"./requests-Bgjtqo_1.js";import{t as vt}from"./createLucideIcon-Cm-Z7dYr.js";import{t as dn}from"./x-BI1M8X_v.js";import{a as xt,l as un,r as _t}from"./markdown-renderer-MR9df58W.js";import{t as cn}from"./DeferredRequestRegistry-O6RDJKs0.js";import{t as hn}from"./preload-helper-BW0IMuFq.js";import{t as Et}from"./Deferred-BMfCOLaw.js";import{t as Ct}from"./uuid-ClFZlR7U.js";import{t as mn}from"./use-toast-Hc8CXlvz.js";import{t as Rt}from"./tooltip-D9723Brr.js";import{t as St}from"./mode-AcL8c6qH.js";import{n as pn,r as fn,t as gn}from"./share-BdH_5I58.js";import{t as yn}from"./blob-CObhN-9g.js";import{r as bn,t as wn}from"./react-resizable-panels.browser.esm-DDRqG5ui.js";import{t as Ft}from"./toggle-RCwU-rnE.js";let Fe,ae,Nt,kt,Ne,qt,Mt,Pt,oe,jt,le,At,ke,qe,Lt,Me,Pe,be,je,It,Ut,Ae,Le,Ie,Ue,Tt,zt,Wt,Ot,Te,ze,We,Dt,Bt,Ht,Oe,$t,Vt,Xt,we,vn=Promise.all([(()=>{try{return Vr}catch{}})(),(()=>{try{return on}catch{}})()]).then(async()=>{var X,pe,Qt,lt,T,Y,I,dt,W,ut,z,te,J,ve,ct,ht,fe,O,D,K,k,Q,B,Gt,Jt,Kt,ge;function g(t,e,r){return t==null?t:Gr(t,e,r)}let y,E;ae=g,y=vt("crosshair",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"22",x2:"18",y1:"12",y2:"12",key:"l9bcsi"}],["line",{x1:"6",x2:"2",y1:"12",y2:"12",key:"13hhkx"}],["line",{x1:"12",x2:"12",y1:"6",y2:"2",key:"10w3f3"}],["line",{x1:"12",x2:"12",y1:"22",y2:"18",key:"15g9kq"}]]),E=vt("pin",[["path",{d:"M12 17v5",key:"bb1du9"}],["path",{d:"M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H8a2 2 0 0 0 0 4 1 1 0 0 1 1 1z",key:"1nkz8b"}]]);function de(t){return{all:t||(t=new Map),on:function(e,r){var n=t.get(e);n?n.push(r):t.set(e,[r])},off:function(e,r){var n=t.get(e);n&&(r?n.splice(n.indexOf(r)>>>0,1):t.set(e,[]))},emit:function(e,r){var n=t.get(e);n&&n.slice().map(function(s){s(r)}),(n=t.get("*"))&&n.slice().map(function(s){s(e,r)})}}}var R=pt(Ur(),1),xe=(0,R.createContext)(null),er=t=>{let{controller:e}=(0,R.useContext)(xe),r=R.useRef(Symbol("fill"));return(0,R.useEffect)(()=>(e.mount({name:t.name,ref:r.current,children:t.children}),()=>{e.unmount({name:t.name,ref:r.current})}),[]),(0,R.useEffect)(()=>{e.update({name:t.name,ref:r.current,children:t.children})}),null},tr=Object.defineProperty,rr=(t,e,r)=>e in t?tr(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Be=(t,e,r)=>(rr(t,typeof e=="symbol"?e:e+"",r),r),He=console,nr=class{constructor(t){Be(this,"_bus"),Be(this,"_db"),this._bus=t,this.handleFillMount=this.handleFillMount.bind(this),this.handleFillUpdated=this.handleFillUpdated.bind(this),this.handleFillUnmount=this.handleFillUnmount.bind(this),this._db={byName:new Map,byFill:new Map}}mount(){this._bus.on("fill-mount",this.handleFillMount),this._bus.on("fill-updated",this.handleFillUpdated),this._bus.on("fill-unmount",this.handleFillUnmount)}unmount(){this._bus.off("fill-mount",this.handleFillMount),this._bus.off("fill-updated",this.handleFillUpdated),this._bus.off("fill-unmount",this.handleFillUnmount)}handleFillMount({fill:t}){let e=R.Children.toArray(t.children),r=t.name,n={fill:t,children:e,name:r},s=this._db.byName.get(r);s?(s.components.push(n),s.listeners.forEach(i=>i([...s.components]))):this._db.byName.set(r,{listeners:[],components:[n]}),this._db.byFill.set(t.ref,n)}handleFillUpdated({fill:t}){let e=this._db.byFill.get(t.ref),r=R.Children.toArray(t.children);if(e){e.children=r;let n=this._db.byName.get(e.name);if(n)n.listeners.forEach(s=>s([...n.components]));else throw Error("registration was expected to be defined")}else{He.error("[handleFillUpdated] component was expected to be defined");return}}handleFillUnmount({fill:t}){let e=this._db.byFill.get(t.ref);if(!e){He.error("[handleFillUnmount] component was expected to be defined");return}let r=e.name,n=this._db.byName.get(r);if(!n)throw Error("registration was expected to be defined");n.components=n.components.filter(s=>s!==e),this._db.byFill.delete(t.ref),n.listeners.length===0&&n.components.length===0?this._db.byName.delete(r):n.listeners.forEach(s=>s([...n.components]))}onComponentsChange(t,e){let r=this._db.byName.get(t);r?(r.listeners.push(e),e(r.components)):(this._db.byName.set(t,{listeners:[e],components:[]}),e([]))}getFillsByName(t){let e=this._db.byName.get(t);return e?e.components.map(r=>r.fill):[]}getChildrenByName(t){let e=this._db.byName.get(t);return e?e.components.map(r=>r.children).reduce((r,n)=>r.concat(n),[]):[]}removeOnComponentsChange(t,e){let r=this._db.byName.get(t);if(!r)throw Error("expected registration to be defined");let n=r.listeners;n.splice(n.indexOf(e),1)}},sr=Object.defineProperty,ir=(t,e,r)=>e in t?sr(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,ar=(t,e,r)=>(ir(t,typeof e=="symbol"?e:e+"",r),r),$e=class{constructor(){ar(this,"bus",de())}mount(t){this.bus.emit("fill-mount",{fill:t})}unmount(t){this.bus.emit("fill-unmount",{fill:t})}update(t){this.bus.emit("fill-updated",{fill:t})}};function or(t){let e=t||new $e;return{controller:e,manager:new nr(e.bus)}}Pt=({controller:t,children:e})=>{let[r]=R.useState(()=>{let n=or(t);return n.manager.mount(),n});return R.useEffect(()=>()=>{r.manager.unmount()},[]),R.createElement(xe.Provider,{value:r},e)},we=function(t,e){let[r,n]=(0,R.useState)([]),{manager:s}=(0,R.useContext)(xe);return(0,R.useEffect)(()=>(s.onComponentsChange(t,n),()=>{s.removeOnComponentsChange(t,n)}),[t]),r.flatMap((i,u)=>{let{children:d}=i;return d.map((p,b)=>{if(typeof p=="number"||typeof p=="string")throw Error("Only element children will work here");return R.cloneElement(p,{key:u.toString()+b.toString(),...e})})})},ke=t=>{let e=we(t.name,t.childProps);if(typeof t.children=="function"){let r=t.children(e);if(R.isValidElement(r)||r===null)return r;throw Error("Slot rendered with function must return a valid React Element.")}return e},At=V(null);var{valueAtom:lr,useActions:dr}=ln(()=>({banners:[]}),{addBanner:(t,e)=>({...t,banners:[...t.banners,{...e,id:Ct()}]}),removeBanner:(t,e)=>({...t,banners:t.banners.filter(r=>r.id!==e)}),clearBanners:t=>({...t,banners:[]})});qt=()=>Ir(lr),Mt=function(){return dr()},jt=new $e,oe={SIDEBAR:"sidebar",CONTEXT_AWARE_PANEL:"context-aware-panel"};let Ve,Xe,Ye;Ve=class{constructor(){a(this,"subscriptions",new Map)}addSubscription(t,e){var r;this.subscriptions.has(t)||this.subscriptions.set(t,new Set),(r=this.subscriptions.get(t))==null||r.add(e)}removeSubscription(t,e){var r;(r=this.subscriptions.get(t))==null||r.delete(e)}notify(t,e){for(let r of this.subscriptions.get(t)??[])r(e)}},Ue=class De{constructor(e){a(this,"subscriptions",new Ve);this.producer=e}static withProducerCallback(e){return new De(e)}static empty(){return new De}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,r){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,r){this.subscriptions.addSubscription(e,r),e==="open"&&r(new Event("open")),e==="message"&&this.startProducer()}removeEventListener(e,r){this.subscriptions.removeSubscription(e,r)}},Xe=1e10,Ye=1e3;function ue(t,e){let r=t.map(n=>`"${n}"`).join(", ");return Error(`This RPC instance cannot ${e} because the transport did not provide one or more of these methods: ${r}`)}function ur(t={}){let e={};function r(o){e=o}let n={};function s(o){var m;n.unregisterHandler&&n.unregisterHandler(),n=o,(m=n.registerHandler)==null||m.call(n,ne)}let i;function u(o){if(typeof o=="function"){i=o;return}i=(m,x)=>{let c=o[m];if(c)return c(x);let w=o._;if(!w)throw Error(`The requested method has no handler: ${m}`);return w(m,x)}}let{maxRequestTime:d=Ye}=t;t.transport&&s(t.transport),t.requestHandler&&u(t.requestHandler),t._debugHooks&&r(t._debugHooks);let p=0;function b(){return p<=Xe?++p:p=0}let C=new Map,_=new Map;function q(o,...m){let x=m[0];return new Promise((c,w)=>{var ee;if(!n.send)throw ue(["send"],"make requests");let U=b(),G={type:"request",id:U,method:o,params:x};C.set(U,{resolve:c,reject:w}),d!==1/0&&_.set(U,setTimeout(()=>{_.delete(U),w(Error("RPC request timed out."))},d)),(ee=e.onSend)==null||ee.call(e,G),n.send(G)})}let M=new Proxy(q,{get:(o,m,x)=>m in o?Reflect.get(o,m,x):c=>q(m,c)}),P=M;function j(o,...m){var w;let x=m[0];if(!n.send)throw ue(["send"],"send messages");let c={type:"message",id:o,payload:x};(w=e.onSend)==null||w.call(e,c),n.send(c)}let A=new Proxy(j,{get:(o,m,x)=>m in o?Reflect.get(o,m,x):c=>j(m,c)}),S=A,L=new Map,H=new Set;function Z(o,m){var x;if(!n.registerHandler)throw ue(["registerHandler"],"register message listeners");if(o==="*"){H.add(m);return}L.has(o)||L.set(o,new Set),(x=L.get(o))==null||x.add(m)}function re(o,m){var x,c;if(o==="*"){H.delete(m);return}(x=L.get(o))==null||x.delete(m),((c=L.get(o))==null?void 0:c.size)===0&&L.delete(o)}async function ne(o){var m,x;if((m=e.onReceive)==null||m.call(e,o),!("type"in o))throw Error("Message does not contain a type.");if(o.type==="request"){if(!n.send||!i)throw ue(["send","requestHandler"],"handle requests");let{id:c,method:w,params:U}=o,G;try{G={type:"response",id:c,success:!0,payload:await i(w,U)}}catch(ee){if(!(ee instanceof Error))throw ee;G={type:"response",id:c,success:!1,error:ee.message}}(x=e.onSend)==null||x.call(e,G),n.send(G);return}if(o.type==="response"){let c=_.get(o.id);c!=null&&clearTimeout(c);let{resolve:w,reject:U}=C.get(o.id)??{};o.success?w==null||w(o.payload):U==null||U(Error(o.error));return}if(o.type==="message"){for(let w of H)w(o.id,o.payload);let c=L.get(o.id);if(!c)return;for(let w of c)w(o.payload);return}throw Error(`Unexpected RPC message type: ${o.type}`)}return{setTransport:s,setRequestHandler:u,request:M,requestProxy:P,send:A,sendProxy:S,addMessageListener:Z,removeMessageListener:re,proxy:{send:S,request:P},_setDebugHooks:r}}function cr(t){return ur(t)}var Qe="[transport-id]";function hr(t,e){let{transportId:r}=e;return r==null?t:{[Qe]:r,data:t}}function mr(t,e){let{transportId:r,filter:n}=e,s=n==null?void 0:n();if(r!=null&&s!=null)throw Error("Cannot use both `transportId` and `filter` at the same time");let i=t;if(r){if(t[Qe]!==r)return[!0];i=t.data}return s===!1?[!0]:[!1,i]}function pr(t,e={}){let{transportId:r,filter:n,remotePort:s}=e,i=t,u=s??t,d;return{send(p){u.postMessage(hr(p,{transportId:r}))},registerHandler(p){d=b=>{let C=b.data,[_,q]=mr(C,{transportId:r,filter:()=>n==null?void 0:n(b)});_||p(q)},i.addEventListener("message",d)},unregisterHandler(){d&&i.removeEventListener("message",d)}}}function fr(t,e){return pr(t,e)}function Ge(t){return cr({transport:fr(t,{transportId:"marimo-transport"}),maxRequestTime:2e4,_debugHooks:{onSend:e=>{f.debug("[rpc] Parent -> Worker",e)},onReceive:e=>{f.debug("[rpc] Worker -> Parent",e)}}})}Fe=V("Initializing..."),Tt=V(t=>{let e=t(Dr),r=Object.values(e.cellRuntime);return r.some(n=>!un(n.output))?!0:r.every(n=>n.status==="idle")});var Je=pn(),Ke="marimo:file",Ze=new Hr(null);const gr={saveFile(t){Ze.set(Ke,t)},readFile(){return Ze.get(Ke)}};var yr={saveFile(t){ie.setCodeForHash((0,Je.compressToEncodedURIComponent)(t))},readFile(){let t=ie.getCodeFromHash()||ie.getCodeFromSearchParam();return t?(0,Je.decompressFromEncodedURIComponent)(t):null}};const br={saveFile(t){},readFile(){let t=document.querySelector("marimo-code");return t?decodeURIComponent(t.textContent||"").trim():null}};var wr={saveFile(t){},readFile(){if(window.location.hostname!=="marimo.app")return null;let t=new URL("files/wasm-intro.py",document.baseURI);return fetch(t.toString()).then(e=>e.ok?e.text():null).catch(()=>null)}};const vr={saveFile(t){},readFile(){return se.get(zr)??null}};var xr={saveFile(t){},readFile(){return["import marimo","app = marimo.App()","","@app.cell","def __():"," return","",'if __name__ == "__main__":'," app.run()"].join(`
2
- `)}},et=class{constructor(t){this.stores=t}insert(t,e){this.stores.splice(t,0,e)}saveFile(t){this.stores.forEach(e=>e.saveFile(t))}readFile(){for(let t of this.stores){let e=t.readFile();if(e)return e}return null}};let ce;le=new et([vr,br,yr]),ce=new et([gr,wr,xr]),Ne=class Yt{constructor(){a(this,"initialized",new Et);a(this,"sendRename",async({filename:e})=>(e===null||(ie.setFilename(e),await this.rpc.proxy.request.bridge({functionName:"rename_file",payload:e})),null));a(this,"sendSave",async e=>{if(!this.saveRpc)return f.warn("Save RPC not initialized"),null;await this.saveRpc.saveNotebook(e);let r=await this.readCode();return r.contents&&(le.saveFile(r.contents),ce.saveFile(r.contents)),this.rpc.proxy.request.saveNotebook(e).catch(n=>{f.error(n)}),null});a(this,"sendCopy",async()=>{v()});a(this,"sendStdin",async e=>(await this.rpc.proxy.request.bridge({functionName:"put_input",payload:e.text}),null));a(this,"sendPdb",async()=>{v()});a(this,"sendRun",async e=>(await this.rpc.proxy.request.loadPackages(e.codes.join(`
3
- `)),await this.putControlRequest({type:"execute-cells",...e}),null));a(this,"sendRunScratchpad",async e=>(await this.rpc.proxy.request.loadPackages(e.code),await this.putControlRequest({type:"execute-scratchpad",...e}),null));a(this,"sendInterrupt",async()=>(this.interruptBuffer!==void 0&&(this.interruptBuffer[0]=2),null));a(this,"sendShutdown",async()=>(window.close(),null));a(this,"sendFormat",async e=>await this.rpc.proxy.request.bridge({functionName:"format",payload:e}));a(this,"sendDeleteCell",async e=>(await this.putControlRequest({type:"delete-cell",...e}),null));a(this,"sendInstallMissingPackages",async e=>(this.putControlRequest({type:"install-packages",...e}),null));a(this,"sendCodeCompletionRequest",async e=>(se.get($r)||await this.rpc.proxy.request.bridge({functionName:"code_complete",payload:e}),null));a(this,"saveUserConfig",async e=>(await this.rpc.proxy.request.bridge({functionName:"save_user_config",payload:e}),tn.post("/kernel/save_user_config",e,{baseUrl:"/"}).catch(r=>(f.error(r),null))));a(this,"saveAppConfig",async e=>(await this.rpc.proxy.request.bridge({functionName:"save_app_config",payload:e}),null));a(this,"saveCellConfig",async e=>(await this.putControlRequest({type:"update-cell-config",...e}),null));a(this,"sendRestart",async()=>{let e=await this.readCode();return e.contents&&(le.saveFile(e.contents),ce.saveFile(e.contents)),fn(),null});a(this,"readCode",async()=>this.saveRpc?{contents:await this.saveRpc.readNotebook()}:(f.warn("Save RPC not initialized"),{contents:""}));a(this,"readSnippets",async()=>await this.rpc.proxy.request.bridge({functionName:"read_snippets",payload:void 0}));a(this,"openFile",async({path:e})=>{let r=gn({code:null,baseUrl:window.location.origin});return window.open(r,"_blank"),null});a(this,"sendListFiles",async e=>await this.rpc.proxy.request.bridge({functionName:"list_files",payload:e}));a(this,"sendSearchFiles",async e=>await this.rpc.proxy.request.bridge({functionName:"search_files",payload:e}));a(this,"sendComponentValues",async e=>(await this.putControlRequest({type:"update-ui-element",...e,token:Ct()}),null));a(this,"sendInstantiate",async e=>null);a(this,"sendFunctionRequest",async e=>(await this.putControlRequest({type:"invoke-function",...e}),null));a(this,"sendCreateFileOrFolder",async e=>await this.rpc.proxy.request.bridge({functionName:"create_file_or_directory",payload:e}));a(this,"sendDeleteFileOrFolder",async e=>await this.rpc.proxy.request.bridge({functionName:"delete_file_or_directory",payload:e}));a(this,"sendRenameFileOrFolder",async e=>await this.rpc.proxy.request.bridge({functionName:"move_file_or_directory",payload:e}));a(this,"sendUpdateFile",async e=>await this.rpc.proxy.request.bridge({functionName:"update_file",payload:e}));a(this,"sendFileDetails",async e=>await this.rpc.proxy.request.bridge({functionName:"file_details",payload:e}));a(this,"exportAsHTML",async e=>await this.rpc.proxy.request.bridge({functionName:"export_html",payload:e}));a(this,"exportAsMarkdown",async e=>await this.rpc.proxy.request.bridge({functionName:"export_markdown",payload:e}));a(this,"previewDatasetColumn",async e=>(await this.putControlRequest({type:"preview-dataset-column",...e}),null));a(this,"previewSQLTable",async e=>(await this.putControlRequest({type:"preview-sql-table",...e}),null));a(this,"previewSQLTableList",async e=>(await this.putControlRequest({type:"list-sql-tables",...e}),null));a(this,"previewDataSourceConnection",async e=>(await this.putControlRequest({type:"list-data-source-connection",...e}),null));a(this,"validateSQL",async e=>(await this.putControlRequest({type:"validate-sql",...e}),null));a(this,"sendModelValue",async e=>(await this.putControlRequest({type:"model",...e}),null));a(this,"syncCellIds",()=>Promise.resolve(null));a(this,"addPackage",async e=>this.rpc.proxy.request.addPackage(e));a(this,"removePackage",async e=>this.rpc.proxy.request.removePackage(e));a(this,"getPackageList",async()=>await this.rpc.proxy.request.listPackages());a(this,"getDependencyTree",async()=>({tree:{dependencies:[],name:"",tags:[],version:null}}));a(this,"listSecretKeys",async e=>(await this.putControlRequest({type:"list-secret-keys",...e}),null));a(this,"getUsageStats",v);a(this,"openTutorial",v);a(this,"getRecentFiles",v);a(this,"getWorkspaceFiles",v);a(this,"getRunningNotebooks",v);a(this,"shutdownSession",v);a(this,"exportAsIPYNB",v);a(this,"exportAsPDF",v);a(this,"autoExportAsHTML",v);a(this,"autoExportAsMarkdown",v);a(this,"autoExportAsIPYNB",v);a(this,"updateCellOutputs",v);a(this,"writeSecret",v);a(this,"invokeAiTool",v);a(this,"clearCache",v);a(this,"getCacheInfo",v);a(this,"listStorageEntries",v);a(this,"downloadStorage",v);Zr()&&(this.rpc=Ge(new Worker(new URL(""+new URL("worker-BPV9SmHz.js",import.meta.url).href,""+import.meta.url),{type:"module",name:yt()})),this.rpc.addMessageListener("ready",()=>{this.startSession()}),this.rpc.addMessageListener("initialized",()=>{this.saveRpc=this.getSaveWorker(),this.setInterruptBuffer(),this.initialized.resolve()}),this.rpc.addMessageListener("initializingMessage",({message:e})=>{se.set(Fe,e)}),this.rpc.addMessageListener("initializedError",({error:e})=>{this.initialized.status==="resolved"&&(f.error(e),mn({title:"Error initializing",description:e,variant:"danger"})),this.initialized.reject(Error(e))}),this.rpc.addMessageListener("kernelMessage",({message:e})=>{var r;(r=this.messageConsumer)==null||r.call(this,new MessageEvent("message",{data:e}))}))}static get INSTANCE(){let e="_marimo_private_PyodideBridge";return window[e]||(window[e]=new Yt),window[e]}getSaveWorker(){return St()==="read"?(f.debug("Skipping SaveWorker in read-mode"),{readFile:v,readNotebook:v,saveNotebook:v}):Ge(new Worker(new URL(""+new URL("save-worker-CtJsIYIM.js",import.meta.url).href,""+import.meta.url),{type:"module",name:yt()})).proxy.request}async startSession(){let e=await le.readFile(),r=await ce.readFile(),n=se.get(Tr)??ie.getFilename(),s=se.get(Kr),i={},u=new URLSearchParams(window.location.search);for(let d of u.keys()){let p=u.getAll(d);i[d]=p.length===1?p[0]:p}await this.rpc.proxy.request.startSession({queryParameters:i,code:e||r||"",filename:n,userConfig:{...s,runtime:{...s.runtime,auto_instantiate:St()==="read"?!0:s.runtime.auto_instantiate}}})}setInterruptBuffer(){crossOriginIsolated?(this.interruptBuffer=new Uint8Array(new SharedArrayBuffer(1)),this.rpc.proxy.request.setInterruptBuffer(this.interruptBuffer)):f.warn("Not running in a secure context; interrupts are not available.")}attachMessageConsumer(e){this.messageConsumer=e,this.rpc.proxy.send.consumerReady({})}async putControlRequest(e){await this.rpc.proxy.request.bridge({functionName:"put_control_request",payload:e})}},kt=function(){return Ue.withProducerCallback(t=>{Ne.INSTANCE.attachMessageConsumer(t)})},$t=function(t=Re()){let e=window.fetch;return window.fetch=async(r,n)=>{let s=r instanceof Request?r.url:r.toString();if(s.startsWith("data:"))return e(r,n);try{let i=he(s,t);if(i){let u=await(await e(i)).arrayBuffer();return new Response(u,{headers:{"Content-Type":_r(s)}})}return e(r,n)}catch(i){return f.error("Error parsing URL",i),e(r,n)}},()=>{window.fetch=e}};function _r(t){return t.endsWith(".csv")?"text/csv":t.endsWith(".json")?"application/json":t.endsWith(".txt")?"text/plain":"application/octet-stream"}Lt=function(t,e=Re()){let r=t.http.bind(t),n=t.load.bind(t);return t.http=async s=>{let i=he(s,e);if(i)return await window.fetch(i).then(u=>u.text());try{return await r(s)}catch(u){if(s.startsWith("data:"))return await window.fetch(s).then(d=>d.text());throw u}},t.load=async s=>{let i=he(s,e);if(i)return await window.fetch(i).then(u=>u.text());try{return await n(s)}catch(u){if(s.startsWith("data:"))return await window.fetch(s).then(d=>d.text());throw u}},()=>{t.http=r,t.load=n}};function tt(t){return t.startsWith(".")?t.slice(1):t}function Er(t,e=Re()){let r=he(t,e);if(!r)return t;let n=yn(r);return URL.createObjectURL(n)}function he(t,e){let r=document.baseURI;r.startsWith("blob:")&&(r=r.replace("blob:",""));let n=new URL(t,r).pathname,s=rt(t),i=rt(n);return e[t]||e[tt(t)]||e[n]||e[tt(n)]||s&&e[s]||i&&e[i]}function rt(t){let e=t.indexOf("/@file/");return e===-1?null:t.slice(e)}function _e(t,e=[]){let r=[];if(t instanceof DataView)r.push(e);else if(Array.isArray(t))for(let[n,s]of t.entries())r.push(..._e(s,[...e,n]));else if(typeof t=="object"&&t)for(let[n,s]of Object.entries(t))r.push(..._e(s,[...e,n]));return r}function Cr(t){let e=_e(t);if(e.length===0)return{state:t,buffers:[],bufferPaths:[]};let r=structuredClone(t),n=[],s=[];for(let i of e){let u=Xr(t,i);if(u instanceof DataView){let d=xt(u);n.push(d),s.push(i),ae(r,i,d)}}return{state:r,buffers:n,bufferPaths:s}}function nt(t){let{state:e,bufferPaths:r,buffers:n}=t;if(!r||r.length===0)return e;n&&Jr(n.length===r.length,"Buffers and buffer paths not the same length");let s=e;for(let[i,u]of r.entries()){let d=n==null?void 0:n[i];if(d==null){f.warn("[anywidget] Could not find buffer at path",u);continue}typeof d=="string"?ae(s,u,_t(d)):ae(s,u,d)}return s}const st={invoke:async()=>{let t="anywidget.invoke not supported in marimo. Please file an issue at https://github.com/marimo-team/marimo/issues";throw f.warn(t),Error(t)}};function Rr(t){if(typeof AbortSignal.any=="function")return AbortSignal.any(t);let e=new AbortController;for(let r of t){if(r.aborted)return e.abort(r.reason),e.signal;r.addEventListener("abort",()=>e.abort(r.reason),{once:!0})}return e.signal}var Sr=(lt=class{constructor(){F(this,pe);F(this,X,new Map)}getModule(t,e){let r=l(this,X).get(e);if(r)return r;let n=$(this,pe,Qt).call(this,t).catch(s=>{throw l(this,X).delete(e),s});return l(this,X).set(e,n),n}invalidate(t){f.debug(`[WidgetDefRegistry] Invalidating module cache for hash=${t}`),l(this,X).delete(t)}},X=new WeakMap,pe=new WeakSet,Qt=async function(t){let e=en(t).toString();return wt()&&(e=Er(e)),hn(()=>import(e).then(async r=>(await r.__tla,r)),[],import.meta.url)},lt),Fr=(dt=class{constructor(){F(this,T);F(this,Y);F(this,I)}async bind(t,e){var i,u;if(l(this,I)&&l(this,Y)===t)return l(this,I);l(this,I)&&l(this,Y)!==t&&(f.debug("[WidgetBinding] Hot-reload detected, aborting previous binding"),(i=l(this,T))==null||i.abort(),N(this,T,void 0),N(this,I,void 0)),N(this,Y,t),N(this,T,new AbortController);let r=l(this,T).signal,n=typeof t=="function"?await t():t,s=await((u=n.initialize)==null?void 0:u.call(n,{model:e,experimental:st}));return s&&r.addEventListener("abort",s),N(this,I,async(d,p)=>{var C;let b=await((C=n.render)==null?void 0:C.call(n,{model:e,el:d,experimental:st}));b&&Rr([p,r]).addEventListener("abort",()=>{let _=p.aborted?"view unmount":"binding destroyed";f.debug(`[WidgetBinding] Render cleanup triggered (reason: ${_})`),b()})}),l(this,I)}destroy(){var t;f.debug("[WidgetBinding] Destroying binding, aborting initialize lifecycle"),(t=l(this,T))==null||t.abort(),N(this,T,void 0),N(this,Y,void 0),N(this,I,void 0)}},T=new WeakMap,Y=new WeakMap,I=new WeakMap,dt),Nr=(ut=class{constructor(){F(this,W,new Map)}getOrCreate(t){let e=l(this,W).get(t);return e||(e=new Fr,l(this,W).set(t,e)),e}destroy(t){let e=l(this,W).get(t);e&&(f.debug(`[BindingManager] Destroying binding for model=${t}`),e.destroy(),l(this,W).delete(t))}has(t){return l(this,W).has(t)}},W=new WeakMap,ut);Nt=new Sr,qe=new Nr;var kr=(ct=class{constructor(t=1e4){F(this,J);F(this,z,new Map);F(this,te);N(this,te,t)}get(t){let e=$(this,J,ve).call(this,t);return e.deferred.status==="pending"&&setTimeout(()=>{e.deferred.status==="pending"&&(e.deferred.reject(Error(`Model not found for key: ${t}`)),l(this,z).delete(t))},l(this,te)),e.deferred.promise}create(t,e){let r=$(this,J,ve).call(this,t);r.deferred.resolve(e(r.controller.signal))}set(t,e){$(this,J,ve).call(this,t).deferred.resolve(e)}getSync(t){let e=l(this,z).get(t);if(e&&e.deferred.status==="resolved")return e.deferred.value}delete(t){var e;f.debug(`[ModelManager] Deleting model=${t}, aborting lifecycle signal`),(e=l(this,z).get(t))==null||e.controller.abort(),l(this,z).delete(t)}},z=new WeakMap,te=new WeakMap,J=new WeakSet,ve=function(t){let e=l(this,z).get(t);return e||(e={deferred:new Et,controller:new AbortController},l(this,z).set(t,e)),e},ct),it=Symbol("marimo");function Ee(t){return t[it]}be=new kr;var qr=(ht=it,Q=class{constructor(e,r,n){F(this,B);F(this,fe,"change");F(this,O);F(this,D);F(this,K);F(this,k,{});a(this,ht,{updateAndEmitDiffs:e=>$(this,B,Jt).call(this,e),emitCustomMessage:(e,r)=>$(this,B,Kt).call(this,e,r)});a(this,"widget_manager",{async get_model(e){let r=await Q._modelManager.get(e);if(!r)throw Error(`Model not found with id: ${e}. This is likely because the model was not registered.`);return r}});F(this,ge,Qr(()=>{let e=l(this,k)[l(this,fe)];if(e)for(let r of e)try{r()}catch(n){f.error("Error emitting event",n)}},0));N(this,D,e),N(this,K,r),N(this,O,new Map),n&&n.addEventListener("abort",()=>{f.debug("[Model] Signal aborted, clearing all listeners"),N(this,k,{})})}off(e,r){var n;if(!e){N(this,k,{});return}if(!r){l(this,k)[e]=new Set;return}(n=l(this,k)[e])==null||n.delete(r)}send(e,r,n){let s=(n??[]).map(i=>i instanceof ArrayBuffer?new DataView(i):new DataView(i.buffer,i.byteOffset,i.byteLength));return l(this,K).sendCustomMessage(e,s).then(()=>r==null?void 0:r())}get(e){return l(this,D)[e]}set(e,r){N(this,D,{...l(this,D),[e]:r}),l(this,O).set(e,r),$(this,B,Gt).call(this,`change:${e}`,r),l(this,ge).call(this)}save_changes(){if(l(this,O).size===0)return;let e=Object.fromEntries(l(this,O).entries());l(this,O).clear(),l(this,K).sendUpdate(e)}on(e,r){l(this,k)[e]||(l(this,k)[e]=new Set),l(this,k)[e].add(r)}},fe=new WeakMap,O=new WeakMap,D=new WeakMap,K=new WeakMap,k=new WeakMap,B=new WeakSet,Gt=function(e,r){if(!l(this,k)[e])return;let n=l(this,k)[e];for(let s of n)try{s(r)}catch(i){f.error("Error emitting event",i)}},Jt=function(e){e!=null&&Object.keys(e).forEach(r=>{let n=r;l(this,D)[n]!==e[n]&&this.set(n,e[n])})},Kt=function(e,r=[]){let n=l(this,k)["msg:custom"];if(n)for(let s of n)try{s(e.content,r)}catch(i){f.error("Error emitting event",i)}},ge=new WeakMap,a(Q,"_modelManager",be),Q);Vt=async function(t,e){let r=e.model_id,n=e.message,s=("buffers"in n?n.buffers:[]).map(_t);switch(n.method){case"open":{let{state:i,buffer_paths:u=[]}=n,d=nt({state:i,bufferPaths:u,buffers:s}),p=t.getSync(r);if(p){Ee(p).updateAndEmitDiffs(d);return}t.create(r,b=>new qr(d,wt()?{sendUpdate:async()=>{},sendCustomMessage:async()=>{}}:{async sendUpdate(C){if(b.aborted){f.debug(`[Model] sendUpdate suppressed for model=${r} (signal aborted)`);return}let{state:_,buffers:q,bufferPaths:M}=Cr(C);await Se().sendModelValue({modelId:r,message:{method:"update",state:_,bufferPaths:M},buffers:q})},async sendCustomMessage(C,_){if(b.aborted){f.debug(`[Model] sendCustomMessage suppressed for model=${r} (signal aborted)`);return}await Se().sendModelValue({modelId:r,message:{method:"custom",content:C},buffers:_.map(xt)})}},b));return}case"custom":Ee(await t.get(r)).emitCustomMessage({method:"custom",content:n.content},s);return;case"close":qe.destroy(r),t.delete(r);return;case"update":{let{state:i,buffer_paths:u=[]}=n,d=nt({state:i,bufferPaths:u,buffers:s});Ee(await t.get(r)).updateAndEmitDiffs(d);return}default:Yr(n)}},Wr(be,"MODEL_MANAGER");function me(t){return()=>({TYPE:t,is(e){return e.type===t},create(e){return new CustomEvent(t,e)}})}Ae=me("marimo-value-input")(),Oe=me("marimo-value-update")(),Me=me("marimo-value-ready")(),Le=me("marimo-incoming-message")(),Xt=function(t,e){return Ae.create({bubbles:!0,composed:!0,detail:{value:t,element:e}})},ze=class Zt{static get INSTANCE(){let e="_marimo_private_UIElementRegistry";return window[e]||(window[e]=new Zt),window[e]}constructor(){this.entries=new Map}has(e){return this.entries.has(e)}set(e,r){this.entries.has(e)&&f.debug("UIElementRegistry overwriting entry for objectId.",e),this.entries.set(e,{objectId:e,value:r,elements:new Set})}registerInstance(e,r){let n=this.entries.get(e);n===void 0?this.entries.set(e,{objectId:e,value:Or(r,this),elements:new Set([r])}):n.elements.add(r)}removeInstance(e,r){let n=this.entries.get(e);n!=null&&n.elements.has(r)&&n.elements.delete(r)}removeElementsByCell(e){[...this.entries.keys()].filter(r=>r.startsWith(`${e}-`)).forEach(r=>{this.entries.delete(r)})}lookupValue(e){let r=this.entries.get(e);return r===void 0?void 0:r.value}broadcastMessage(e,r,n){let s=this.entries.get(e);s===void 0?f.warn("UIElementRegistry missing entry",e):s.elements.forEach(i=>{i.dispatchEvent(Le.create({bubbles:!1,composed:!0,detail:{objectId:e,message:r,buffers:n}}))})}broadcastValueUpdate(e,r,n){let s=this.entries.get(r);s===void 0?f.warn("UIElementRegistry missing entry",r):(s.value=n,s.elements.forEach(i=>{i!==e&&i.dispatchEvent(Oe.create({bubbles:!1,composed:!0,detail:{value:n,element:i}}))}),document.dispatchEvent(Me.create({bubbles:!0,composed:!0,detail:{objectId:r}})))}},Wt=ze.INSTANCE,Ut=new cn("function-call-result",async(t,e)=>{await Se().sendFunctionRequest({functionCallId:t,...e})}),zt="68px";var Mr="288px";let at;Ht=t=>t?/^\d+$/.test(t)?`${t}px`:t:Mr,It=Br({isOpen:!0},(t,e)=>{if(!e)return t;switch(e.type){case"toggle":return{...t,isOpen:e.isOpen??t.isOpen};case"setWidth":return{...t,width:e.width};default:return t}}),Te=V(null),Dt=V(null),Pe=V(!1),at=V(!1),je=V(!1);var Pr=gt();Ie=t=>{let e=(0,Pr.c)(8),{onResize:r,startingWidth:n,minWidth:s,maxWidth:i}=t,u=(0,R.useRef)(null),d=(0,R.useRef)(null),p=(0,R.useRef)(null),b,C;e[0]!==i||e[1]!==s||e[2]!==r?(b=()=>{let P=u.current,j=d.current,A=p.current;if(!P||!j&&!A)return;let S=Number.parseInt(window.getComputedStyle(P).width,10),L=0,H=!1,Z=null,re=c=>{if(!P||!H||!Z)return;let w=c.clientX-L;L=c.clientX,S=Z==="left"?S-w:S+w,s&&(S=Math.max(s,S)),i&&(S=Math.min(i,S)),P.style.width=`${S}px`},ne=()=>{H&&(r==null||r(S),H=!1,Z=null),document.removeEventListener("mousemove",re),document.removeEventListener("mouseup",ne)},o=(c,w)=>{c.preventDefault(),H=!0,Z=w,L=c.clientX,document.addEventListener("mousemove",re),document.addEventListener("mouseup",ne)},m=c=>o(c,"left"),x=c=>o(c,"right");return j&&j.addEventListener("mousedown",m),A&&A.addEventListener("mousedown",x),()=>{j&&j.removeEventListener("mousedown",m),A&&A.removeEventListener("mousedown",x),document.removeEventListener("mousemove",re),document.removeEventListener("mouseup",ne)}},C=[s,i,r],e[0]=i,e[1]=s,e[2]=r,e[3]=b,e[4]=C):(b=e[3],C=e[4]),(0,R.useEffect)(b,C);let _;e[5]===Symbol.for("react.memo_cache_sentinel")?(_={left:d,right:p},e[5]=_):_=e[5];let q=n==="contentWidth"?"var(--content-width-medium)":`${n}px`,M;return e[6]===q?M=e[7]:(M={resizableDivRef:u,handleRefs:_,style:{width:q}},e[6]=q,e[7]=M),M},We=function(t){t||ft(()=>{window.dispatchEvent(new Event("resize"))})};var ot=gt(),h=pt(rn(),1);Bt=()=>{let t=(0,ot.c)(16),[e,r]=ye(Te),[n,s]=ye(Pe),[i,u]=ye(at),[d,p]=ye(je),b;t[0]!==s||t[1]!==r?(b=()=>{r(null),s(!1)},t[0]=s,t[1]=r,t[2]=b):b=t[2];let C=b;if(we(oe.CONTEXT_AWARE_PANEL).length===0||!e||!n)return null;let _;t[3]!==d||t[4]!==i||t[5]!==p||t[6]!==u?(_=()=>(0,h.jsxs)("div",{className:"flex flex-row items-center gap-3",children:[(0,h.jsx)(Rt,{content:i?"Unpin panel":"Pin panel",children:(0,h.jsx)(Ft,{size:"xs",onPressedChange:()=>u(!i),pressed:i,"aria-label":i?"Unpin panel":"Pin panel",children:i?(0,h.jsx)(E,{className:"w-4 h-4"}):(0,h.jsx)(an,{className:"w-4 h-4"})})}),(0,h.jsx)(Rt,{content:d?(0,h.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,h.jsx)("span",{children:"Follow focused table"}),(0,h.jsx)("span",{className:"text-xs text-muted-foreground w-64",children:"The panel updates as cells that output tables are focused. Click to fix to the current cell."})]}):(0,h.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,h.jsx)("span",{children:"Focus on current table"}),(0,h.jsx)("span",{className:"text-xs text-muted-foreground w-64",children:"The panel is focused on the current table. Click to update based on which cell is focused."})]}),children:(0,h.jsx)(Ft,{size:"xs",onPressedChange:()=>p(!d),pressed:d,"aria-label":d?"Follow focused cell":"Fixed",children:(0,h.jsx)(y,{className:sn("w-4 h-4",d&&"text-primary")})})})]}),t[3]=d,t[4]=i,t[5]=p,t[6]=u,t[7]=_):_=t[7];let q=_,M;t[8]!==C||t[9]!==q?(M=()=>(0,h.jsxs)("div",{className:"mt-2 pb-7 mb-4 h-full overflow-auto",children:[(0,h.jsxs)("div",{className:"flex flex-row justify-between items-center mx-2",children:[q(),(0,h.jsx)(nn,{variant:"linkDestructive",size:"icon",onClick:C,"aria-label":"Close selection panel",children:(0,h.jsx)(dn,{className:"w-4 h-4"})})]}),(0,h.jsx)(bt,{children:(0,h.jsx)(ke,{name:oe.CONTEXT_AWARE_PANEL})})]}),t[8]=C,t[9]=q,t[10]=M):M=t[10];let P=M;if(!i){let S;return t[11]===P?S=t[12]:(S=(0,h.jsx)(jr,{children:P()}),t[11]=P,t[12]=S),S}let j;t[13]===Symbol.for("react.memo_cache_sentinel")?(j=(0,h.jsx)(bn,{onDragging:We,className:"resize-handle border-border z-20 print:hidden border-l"}),t[13]=j):j=t[13];let A;return t[14]===P?A=t[15]:(A=(0,h.jsxs)(h.Fragment,{children:[j,(0,h.jsx)(wn,{defaultSize:20,minSize:15,maxSize:80,children:P()})]}),t[14]=P,t[15]=A),A},Ot=t=>{let e=(0,ot.c)(2),{children:r}=t,n;return e[0]===r?n=e[1]:(n=(0,h.jsx)(bt,{children:(0,h.jsx)(er,{name:oe.CONTEXT_AWARE_PANEL,children:r})}),e[0]=r,e[1]=n),n};var jr=({children:t})=>{let{resizableDivRef:e,handleRefs:r,style:n}=Ie({startingWidth:400,minWidth:300,maxWidth:1500,onResize:()=>{ft(()=>{window.dispatchEvent(new Event("resize"))})}});return(0,h.jsxs)("div",{className:"absolute z-40 right-0 h-full bg-background flex flex-row",children:[(0,h.jsx)("div",{ref:r.left,className:"w-1 h-full cursor-col-resize border-l"}),(0,h.jsx)("div",{ref:e,style:n,children:t})]})}});export{Fe as A,ae as B,Nt as C,kt as D,Ne as E,qt as F,Mt as I,Pt as L,oe as M,jt as N,le as O,At as P,ke as R,qe as S,Lt as T,Me as _,vn as __tla,Pe as a,be as b,je as c,It as d,Ut as f,Ae as g,Le as h,Ie as i,Ue as j,Tt as k,zt as l,Wt as m,Ot as n,Te as o,ze as p,We as r,Dt as s,Bt as t,Ht as u,Oe as v,$t as w,Vt as x,Xt as y,we as z};
1
+ var Ar=Object.defineProperty;var mt=g=>{throw TypeError(g)};var Lr=(g,y,E)=>y in g?Ar(g,y,{enumerable:!0,configurable:!0,writable:!0,value:E}):g[y]=E;var a=(g,y,E)=>Lr(g,typeof y!="symbol"?y+"":y,E),Ce=(g,y,E)=>y.has(g)||mt("Cannot "+E);var l=(g,y,E)=>(Ce(g,y,"read from private field"),E?E.call(g):y.get(g)),F=(g,y,E)=>y.has(g)?mt("Cannot add the same private member more than once"):y instanceof WeakSet?y.add(g):y.set(g,E),N=(g,y,E,de)=>(Ce(g,y,"write to private field"),de?de.call(g,E):y.set(g,E),E),$=(g,y,E)=>(Ce(g,y,"access private method"),E);import{s as pt}from"./chunk-LvLJmgfZ.js";import{i as se,l as ye,p as V,u as Ir}from"./useEvent-O0nX5vok.js";import{t as Ur}from"./react-Bj1aDYRI.js";import{G as ft,Qr as Tr,Xr as zr,_n as Wr,ai as Or,b as Dr,ei as Br,oi as ie,qr as Hr,x as $r,__tla as Vr}from"./cells-Bg7-G3QJ.js";import{t as gt}from"./compiler-runtime-B3qBwwSJ.js";import{t as Xr}from"./get-DBdMgUNq.js";import{t as Qr}from"./assertNever-DWSyoPEi.js";import{t as Yr}from"./debounce-DS_VtWMt.js";import{t as Gr}from"./_baseSet-D5BgdrnX.js";import{g as v,m as f}from"./useEventListener-Dy81QR4n.js";import{t as Jr}from"./invariant-CQUIhlu2.js";import{S as Kr}from"./utils-tNbLd14P.js";import{S as Zr,n as en}from"./config-3Aq84phF.js";import{a as tn}from"./switch-DhfF9ECb.js";import{n as yt}from"./globals-ByNi1JTJ.js";import{t as bt}from"./ErrorBoundary-Ba0LbbH4.js";import{t as rn}from"./jsx-runtime-icT_Ltz2.js";import{t as nn}from"./button-Ej3vmCIF.js";import{t as sn}from"./cn-BoaCR37F.js";import{Q as an,X as wt,Y as Re,__tla as on}from"./JsonOutput-BKsCyU13.js";import{t as ln}from"./createReducer-Drh7NmIR.js";import{t as Se}from"./requests-Bgjtqo_1.js";import{t as vt}from"./createLucideIcon-Cm-Z7dYr.js";import{t as dn}from"./x-BI1M8X_v.js";import{a as xt,l as un,r as _t}from"./markdown-renderer-A3Ed0cjI.js";import{t as cn}from"./DeferredRequestRegistry-O6RDJKs0.js";import{t as hn}from"./preload-helper-BW0IMuFq.js";import{t as Et}from"./Deferred-BMfCOLaw.js";import{t as Ct}from"./uuid-ClFZlR7U.js";import{t as mn}from"./use-toast-Hc8CXlvz.js";import{t as Rt}from"./tooltip-D9723Brr.js";import{t as St}from"./mode-CdFYvrq5.js";import{n as pn,r as fn,t as gn}from"./share-BdH_5I58.js";import{t as yn}from"./blob-CObhN-9g.js";import{r as bn,t as wn}from"./react-resizable-panels.browser.esm-DDRqG5ui.js";import{t as Ft}from"./toggle-RCwU-rnE.js";let Fe,ae,Nt,kt,Ne,qt,Mt,Pt,oe,jt,le,At,ke,qe,Lt,Me,Pe,be,je,It,Ut,Ae,Le,Ie,Ue,Tt,zt,Wt,Ot,Te,ze,We,Dt,Bt,Ht,Oe,$t,Vt,Xt,we,vn=Promise.all([(()=>{try{return Vr}catch{}})(),(()=>{try{return on}catch{}})()]).then(async()=>{var X,pe,Yt,lt,T,Q,I,dt,W,ut,z,te,J,ve,ct,ht,fe,O,D,K,k,Y,B,Gt,Jt,Kt,ge;function g(t,e,r){return t==null?t:Gr(t,e,r)}let y,E;ae=g,y=vt("crosshair",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"22",x2:"18",y1:"12",y2:"12",key:"l9bcsi"}],["line",{x1:"6",x2:"2",y1:"12",y2:"12",key:"13hhkx"}],["line",{x1:"12",x2:"12",y1:"6",y2:"2",key:"10w3f3"}],["line",{x1:"12",x2:"12",y1:"22",y2:"18",key:"15g9kq"}]]),E=vt("pin",[["path",{d:"M12 17v5",key:"bb1du9"}],["path",{d:"M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H8a2 2 0 0 0 0 4 1 1 0 0 1 1 1z",key:"1nkz8b"}]]);function de(t){return{all:t||(t=new Map),on:function(e,r){var n=t.get(e);n?n.push(r):t.set(e,[r])},off:function(e,r){var n=t.get(e);n&&(r?n.splice(n.indexOf(r)>>>0,1):t.set(e,[]))},emit:function(e,r){var n=t.get(e);n&&n.slice().map(function(s){s(r)}),(n=t.get("*"))&&n.slice().map(function(s){s(e,r)})}}}var R=pt(Ur(),1),xe=(0,R.createContext)(null),er=t=>{let{controller:e}=(0,R.useContext)(xe),r=R.useRef(Symbol("fill"));return(0,R.useEffect)(()=>(e.mount({name:t.name,ref:r.current,children:t.children}),()=>{e.unmount({name:t.name,ref:r.current})}),[]),(0,R.useEffect)(()=>{e.update({name:t.name,ref:r.current,children:t.children})}),null},tr=Object.defineProperty,rr=(t,e,r)=>e in t?tr(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,Be=(t,e,r)=>(rr(t,typeof e=="symbol"?e:e+"",r),r),He=console,nr=class{constructor(t){Be(this,"_bus"),Be(this,"_db"),this._bus=t,this.handleFillMount=this.handleFillMount.bind(this),this.handleFillUpdated=this.handleFillUpdated.bind(this),this.handleFillUnmount=this.handleFillUnmount.bind(this),this._db={byName:new Map,byFill:new Map}}mount(){this._bus.on("fill-mount",this.handleFillMount),this._bus.on("fill-updated",this.handleFillUpdated),this._bus.on("fill-unmount",this.handleFillUnmount)}unmount(){this._bus.off("fill-mount",this.handleFillMount),this._bus.off("fill-updated",this.handleFillUpdated),this._bus.off("fill-unmount",this.handleFillUnmount)}handleFillMount({fill:t}){let e=R.Children.toArray(t.children),r=t.name,n={fill:t,children:e,name:r},s=this._db.byName.get(r);s?(s.components.push(n),s.listeners.forEach(i=>i([...s.components]))):this._db.byName.set(r,{listeners:[],components:[n]}),this._db.byFill.set(t.ref,n)}handleFillUpdated({fill:t}){let e=this._db.byFill.get(t.ref),r=R.Children.toArray(t.children);if(e){e.children=r;let n=this._db.byName.get(e.name);if(n)n.listeners.forEach(s=>s([...n.components]));else throw Error("registration was expected to be defined")}else{He.error("[handleFillUpdated] component was expected to be defined");return}}handleFillUnmount({fill:t}){let e=this._db.byFill.get(t.ref);if(!e){He.error("[handleFillUnmount] component was expected to be defined");return}let r=e.name,n=this._db.byName.get(r);if(!n)throw Error("registration was expected to be defined");n.components=n.components.filter(s=>s!==e),this._db.byFill.delete(t.ref),n.listeners.length===0&&n.components.length===0?this._db.byName.delete(r):n.listeners.forEach(s=>s([...n.components]))}onComponentsChange(t,e){let r=this._db.byName.get(t);r?(r.listeners.push(e),e(r.components)):(this._db.byName.set(t,{listeners:[e],components:[]}),e([]))}getFillsByName(t){let e=this._db.byName.get(t);return e?e.components.map(r=>r.fill):[]}getChildrenByName(t){let e=this._db.byName.get(t);return e?e.components.map(r=>r.children).reduce((r,n)=>r.concat(n),[]):[]}removeOnComponentsChange(t,e){let r=this._db.byName.get(t);if(!r)throw Error("expected registration to be defined");let n=r.listeners;n.splice(n.indexOf(e),1)}},sr=Object.defineProperty,ir=(t,e,r)=>e in t?sr(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,ar=(t,e,r)=>(ir(t,typeof e=="symbol"?e:e+"",r),r),$e=class{constructor(){ar(this,"bus",de())}mount(t){this.bus.emit("fill-mount",{fill:t})}unmount(t){this.bus.emit("fill-unmount",{fill:t})}update(t){this.bus.emit("fill-updated",{fill:t})}};function or(t){let e=t||new $e;return{controller:e,manager:new nr(e.bus)}}Pt=({controller:t,children:e})=>{let[r]=R.useState(()=>{let n=or(t);return n.manager.mount(),n});return R.useEffect(()=>()=>{r.manager.unmount()},[]),R.createElement(xe.Provider,{value:r},e)},we=function(t,e){let[r,n]=(0,R.useState)([]),{manager:s}=(0,R.useContext)(xe);return(0,R.useEffect)(()=>(s.onComponentsChange(t,n),()=>{s.removeOnComponentsChange(t,n)}),[t]),r.flatMap((i,u)=>{let{children:d}=i;return d.map((p,b)=>{if(typeof p=="number"||typeof p=="string")throw Error("Only element children will work here");return R.cloneElement(p,{key:u.toString()+b.toString(),...e})})})},ke=t=>{let e=we(t.name,t.childProps);if(typeof t.children=="function"){let r=t.children(e);if(R.isValidElement(r)||r===null)return r;throw Error("Slot rendered with function must return a valid React Element.")}return e},At=V(null);var{valueAtom:lr,useActions:dr}=ln(()=>({banners:[]}),{addBanner:(t,e)=>({...t,banners:[...t.banners,{...e,id:Ct()}]}),removeBanner:(t,e)=>({...t,banners:t.banners.filter(r=>r.id!==e)}),clearBanners:t=>({...t,banners:[]})});qt=()=>Ir(lr),Mt=function(){return dr()},jt=new $e,oe={SIDEBAR:"sidebar",CONTEXT_AWARE_PANEL:"context-aware-panel"};let Ve,Xe,Qe;Ve=class{constructor(){a(this,"subscriptions",new Map)}addSubscription(t,e){var r;this.subscriptions.has(t)||this.subscriptions.set(t,new Set),(r=this.subscriptions.get(t))==null||r.add(e)}removeSubscription(t,e){var r;(r=this.subscriptions.get(t))==null||r.delete(e)}notify(t,e){for(let r of this.subscriptions.get(t)??[])r(e)}},Ue=class De{constructor(e){a(this,"subscriptions",new Ve);this.producer=e}static withProducerCallback(e){return new De(e)}static empty(){return new De}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,r){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,r){this.subscriptions.addSubscription(e,r),e==="open"&&r(new Event("open")),e==="message"&&this.startProducer()}removeEventListener(e,r){this.subscriptions.removeSubscription(e,r)}},Xe=1e10,Qe=1e3;function ue(t,e){let r=t.map(n=>`"${n}"`).join(", ");return Error(`This RPC instance cannot ${e} because the transport did not provide one or more of these methods: ${r}`)}function ur(t={}){let e={};function r(o){e=o}let n={};function s(o){var m;n.unregisterHandler&&n.unregisterHandler(),n=o,(m=n.registerHandler)==null||m.call(n,ne)}let i;function u(o){if(typeof o=="function"){i=o;return}i=(m,x)=>{let c=o[m];if(c)return c(x);let w=o._;if(!w)throw Error(`The requested method has no handler: ${m}`);return w(m,x)}}let{maxRequestTime:d=Qe}=t;t.transport&&s(t.transport),t.requestHandler&&u(t.requestHandler),t._debugHooks&&r(t._debugHooks);let p=0;function b(){return p<=Xe?++p:p=0}let C=new Map,_=new Map;function q(o,...m){let x=m[0];return new Promise((c,w)=>{var ee;if(!n.send)throw ue(["send"],"make requests");let U=b(),G={type:"request",id:U,method:o,params:x};C.set(U,{resolve:c,reject:w}),d!==1/0&&_.set(U,setTimeout(()=>{_.delete(U),w(Error("RPC request timed out."))},d)),(ee=e.onSend)==null||ee.call(e,G),n.send(G)})}let M=new Proxy(q,{get:(o,m,x)=>m in o?Reflect.get(o,m,x):c=>q(m,c)}),P=M;function j(o,...m){var w;let x=m[0];if(!n.send)throw ue(["send"],"send messages");let c={type:"message",id:o,payload:x};(w=e.onSend)==null||w.call(e,c),n.send(c)}let A=new Proxy(j,{get:(o,m,x)=>m in o?Reflect.get(o,m,x):c=>j(m,c)}),S=A,L=new Map,H=new Set;function Z(o,m){var x;if(!n.registerHandler)throw ue(["registerHandler"],"register message listeners");if(o==="*"){H.add(m);return}L.has(o)||L.set(o,new Set),(x=L.get(o))==null||x.add(m)}function re(o,m){var x,c;if(o==="*"){H.delete(m);return}(x=L.get(o))==null||x.delete(m),((c=L.get(o))==null?void 0:c.size)===0&&L.delete(o)}async function ne(o){var m,x;if((m=e.onReceive)==null||m.call(e,o),!("type"in o))throw Error("Message does not contain a type.");if(o.type==="request"){if(!n.send||!i)throw ue(["send","requestHandler"],"handle requests");let{id:c,method:w,params:U}=o,G;try{G={type:"response",id:c,success:!0,payload:await i(w,U)}}catch(ee){if(!(ee instanceof Error))throw ee;G={type:"response",id:c,success:!1,error:ee.message}}(x=e.onSend)==null||x.call(e,G),n.send(G);return}if(o.type==="response"){let c=_.get(o.id);c!=null&&clearTimeout(c);let{resolve:w,reject:U}=C.get(o.id)??{};o.success?w==null||w(o.payload):U==null||U(Error(o.error));return}if(o.type==="message"){for(let w of H)w(o.id,o.payload);let c=L.get(o.id);if(!c)return;for(let w of c)w(o.payload);return}throw Error(`Unexpected RPC message type: ${o.type}`)}return{setTransport:s,setRequestHandler:u,request:M,requestProxy:P,send:A,sendProxy:S,addMessageListener:Z,removeMessageListener:re,proxy:{send:S,request:P},_setDebugHooks:r}}function cr(t){return ur(t)}var Ye="[transport-id]";function hr(t,e){let{transportId:r}=e;return r==null?t:{[Ye]:r,data:t}}function mr(t,e){let{transportId:r,filter:n}=e,s=n==null?void 0:n();if(r!=null&&s!=null)throw Error("Cannot use both `transportId` and `filter` at the same time");let i=t;if(r){if(t[Ye]!==r)return[!0];i=t.data}return s===!1?[!0]:[!1,i]}function pr(t,e={}){let{transportId:r,filter:n,remotePort:s}=e,i=t,u=s??t,d;return{send(p){u.postMessage(hr(p,{transportId:r}))},registerHandler(p){d=b=>{let C=b.data,[_,q]=mr(C,{transportId:r,filter:()=>n==null?void 0:n(b)});_||p(q)},i.addEventListener("message",d)},unregisterHandler(){d&&i.removeEventListener("message",d)}}}function fr(t,e){return pr(t,e)}function Ge(t){return cr({transport:fr(t,{transportId:"marimo-transport"}),maxRequestTime:2e4,_debugHooks:{onSend:e=>{f.debug("[rpc] Parent -> Worker",e)},onReceive:e=>{f.debug("[rpc] Worker -> Parent",e)}}})}Fe=V("Initializing..."),Tt=V(t=>{let e=t(Dr),r=Object.values(e.cellRuntime);return r.some(n=>!un(n.output))?!0:r.every(n=>n.status==="idle")});var Je=pn(),Ke="marimo:file",Ze=new Hr(null);const gr={saveFile(t){Ze.set(Ke,t)},readFile(){return Ze.get(Ke)}};var yr={saveFile(t){ie.setCodeForHash((0,Je.compressToEncodedURIComponent)(t))},readFile(){let t=ie.getCodeFromHash()||ie.getCodeFromSearchParam();return t?(0,Je.decompressFromEncodedURIComponent)(t):null}};const br={saveFile(t){},readFile(){let t=document.querySelector("marimo-code");return t?decodeURIComponent(t.textContent||"").trim():null}};var wr={saveFile(t){},readFile(){if(window.location.hostname!=="marimo.app")return null;let t=new URL("files/wasm-intro.py",document.baseURI);return fetch(t.toString()).then(e=>e.ok?e.text():null).catch(()=>null)}};const vr={saveFile(t){},readFile(){return se.get(zr)??null}};var xr={saveFile(t){},readFile(){return["import marimo","app = marimo.App()","","@app.cell","def __():"," return","",'if __name__ == "__main__":'," app.run()"].join(`
2
+ `)}},et=class{constructor(t){this.stores=t}insert(t,e){this.stores.splice(t,0,e)}saveFile(t){this.stores.forEach(e=>e.saveFile(t))}readFile(){for(let t of this.stores){let e=t.readFile();if(e)return e}return null}};let ce;le=new et([vr,br,yr]),ce=new et([gr,wr,xr]),Ne=class Qt{constructor(){a(this,"initialized",new Et);a(this,"sendRename",async({filename:e})=>(e===null||(ie.setFilename(e),await this.rpc.proxy.request.bridge({functionName:"rename_file",payload:e})),null));a(this,"sendSave",async e=>{if(!this.saveRpc)return f.warn("Save RPC not initialized"),null;await this.saveRpc.saveNotebook(e);let r=await this.readCode();return r.contents&&(le.saveFile(r.contents),ce.saveFile(r.contents)),this.rpc.proxy.request.saveNotebook(e).catch(n=>{f.error(n)}),null});a(this,"sendCopy",async()=>{v()});a(this,"sendStdin",async e=>(await this.rpc.proxy.request.bridge({functionName:"put_input",payload:e.text}),null));a(this,"sendPdb",async()=>{v()});a(this,"sendRun",async e=>(await this.rpc.proxy.request.loadPackages(e.codes.join(`
3
+ `)),await this.putControlRequest({type:"execute-cells",...e}),null));a(this,"sendRunScratchpad",async e=>(await this.rpc.proxy.request.loadPackages(e.code),await this.putControlRequest({type:"execute-scratchpad",...e}),null));a(this,"sendInterrupt",async()=>(this.interruptBuffer!==void 0&&(this.interruptBuffer[0]=2),null));a(this,"sendShutdown",async()=>(window.close(),null));a(this,"sendFormat",async e=>await this.rpc.proxy.request.bridge({functionName:"format",payload:e}));a(this,"sendDeleteCell",async e=>(await this.putControlRequest({type:"delete-cell",...e}),null));a(this,"sendInstallMissingPackages",async e=>(this.putControlRequest({type:"install-packages",...e}),null));a(this,"sendCodeCompletionRequest",async e=>(se.get($r)||await this.rpc.proxy.request.bridge({functionName:"code_complete",payload:e}),null));a(this,"saveUserConfig",async e=>(await this.rpc.proxy.request.bridge({functionName:"save_user_config",payload:e}),tn.post("/kernel/save_user_config",e,{baseUrl:"/"}).catch(r=>(f.error(r),null))));a(this,"saveAppConfig",async e=>(await this.rpc.proxy.request.bridge({functionName:"save_app_config",payload:e}),null));a(this,"saveCellConfig",async e=>(await this.putControlRequest({type:"update-cell-config",...e}),null));a(this,"sendRestart",async()=>{let e=await this.readCode();return e.contents&&(le.saveFile(e.contents),ce.saveFile(e.contents)),fn(),null});a(this,"readCode",async()=>this.saveRpc?{contents:await this.saveRpc.readNotebook()}:(f.warn("Save RPC not initialized"),{contents:""}));a(this,"readSnippets",async()=>await this.rpc.proxy.request.bridge({functionName:"read_snippets",payload:void 0}));a(this,"openFile",async({path:e})=>{let r=gn({code:null,baseUrl:window.location.origin});return window.open(r,"_blank"),null});a(this,"sendListFiles",async e=>await this.rpc.proxy.request.bridge({functionName:"list_files",payload:e}));a(this,"sendSearchFiles",async e=>await this.rpc.proxy.request.bridge({functionName:"search_files",payload:e}));a(this,"sendComponentValues",async e=>(await this.putControlRequest({type:"update-ui-element",...e,token:Ct()}),null));a(this,"sendInstantiate",async e=>null);a(this,"sendFunctionRequest",async e=>(await this.putControlRequest({type:"invoke-function",...e}),null));a(this,"sendCreateFileOrFolder",async e=>await this.rpc.proxy.request.bridge({functionName:"create_file_or_directory",payload:e}));a(this,"sendDeleteFileOrFolder",async e=>await this.rpc.proxy.request.bridge({functionName:"delete_file_or_directory",payload:e}));a(this,"sendRenameFileOrFolder",async e=>await this.rpc.proxy.request.bridge({functionName:"move_file_or_directory",payload:e}));a(this,"sendUpdateFile",async e=>await this.rpc.proxy.request.bridge({functionName:"update_file",payload:e}));a(this,"sendFileDetails",async e=>await this.rpc.proxy.request.bridge({functionName:"file_details",payload:e}));a(this,"exportAsHTML",async e=>await this.rpc.proxy.request.bridge({functionName:"export_html",payload:e}));a(this,"exportAsMarkdown",async e=>await this.rpc.proxy.request.bridge({functionName:"export_markdown",payload:e}));a(this,"previewDatasetColumn",async e=>(await this.putControlRequest({type:"preview-dataset-column",...e}),null));a(this,"previewSQLTable",async e=>(await this.putControlRequest({type:"preview-sql-table",...e}),null));a(this,"previewSQLTableList",async e=>(await this.putControlRequest({type:"list-sql-tables",...e}),null));a(this,"previewDataSourceConnection",async e=>(await this.putControlRequest({type:"list-data-source-connection",...e}),null));a(this,"validateSQL",async e=>(await this.putControlRequest({type:"validate-sql",...e}),null));a(this,"sendModelValue",async e=>(await this.putControlRequest({type:"model",...e}),null));a(this,"syncCellIds",()=>Promise.resolve(null));a(this,"addPackage",async e=>this.rpc.proxy.request.addPackage(e));a(this,"removePackage",async e=>this.rpc.proxy.request.removePackage(e));a(this,"getPackageList",async()=>await this.rpc.proxy.request.listPackages());a(this,"getDependencyTree",async()=>({tree:{dependencies:[],name:"",tags:[],version:null}}));a(this,"listSecretKeys",async e=>(await this.putControlRequest({type:"list-secret-keys",...e}),null));a(this,"getUsageStats",v);a(this,"openTutorial",v);a(this,"getRecentFiles",v);a(this,"getWorkspaceFiles",v);a(this,"getRunningNotebooks",v);a(this,"shutdownSession",v);a(this,"exportAsIPYNB",v);a(this,"exportAsPDF",v);a(this,"autoExportAsHTML",v);a(this,"autoExportAsMarkdown",v);a(this,"autoExportAsIPYNB",v);a(this,"updateCellOutputs",v);a(this,"writeSecret",v);a(this,"invokeAiTool",v);a(this,"clearCache",v);a(this,"getCacheInfo",v);a(this,"listStorageEntries",v);a(this,"downloadStorage",v);Zr()&&(this.rpc=Ge(new Worker(new URL(""+new URL("worker-BPV9SmHz.js",import.meta.url).href,""+import.meta.url),{type:"module",name:yt()})),this.rpc.addMessageListener("ready",()=>{this.startSession()}),this.rpc.addMessageListener("initialized",()=>{this.saveRpc=this.getSaveWorker(),this.setInterruptBuffer(),this.initialized.resolve()}),this.rpc.addMessageListener("initializingMessage",({message:e})=>{se.set(Fe,e)}),this.rpc.addMessageListener("initializedError",({error:e})=>{this.initialized.status==="resolved"&&(f.error(e),mn({title:"Error initializing",description:e,variant:"danger"})),this.initialized.reject(Error(e))}),this.rpc.addMessageListener("kernelMessage",({message:e})=>{var r;(r=this.messageConsumer)==null||r.call(this,new MessageEvent("message",{data:e}))}))}static get INSTANCE(){let e="_marimo_private_PyodideBridge";return window[e]||(window[e]=new Qt),window[e]}getSaveWorker(){return St()==="read"?(f.debug("Skipping SaveWorker in read-mode"),{readFile:v,readNotebook:v,saveNotebook:v}):Ge(new Worker(new URL(""+new URL("save-worker-CtJsIYIM.js",import.meta.url).href,""+import.meta.url),{type:"module",name:yt()})).proxy.request}async startSession(){let e=await le.readFile(),r=await ce.readFile(),n=se.get(Tr)??ie.getFilename(),s=se.get(Kr),i={},u=new URLSearchParams(window.location.search);for(let d of u.keys()){let p=u.getAll(d);i[d]=p.length===1?p[0]:p}await this.rpc.proxy.request.startSession({queryParameters:i,code:e||r||"",filename:n,userConfig:{...s,runtime:{...s.runtime,auto_instantiate:St()==="read"?!0:s.runtime.auto_instantiate}}})}setInterruptBuffer(){crossOriginIsolated?(this.interruptBuffer=new Uint8Array(new SharedArrayBuffer(1)),this.rpc.proxy.request.setInterruptBuffer(this.interruptBuffer)):f.warn("Not running in a secure context; interrupts are not available.")}attachMessageConsumer(e){this.messageConsumer=e,this.rpc.proxy.send.consumerReady({})}async putControlRequest(e){await this.rpc.proxy.request.bridge({functionName:"put_control_request",payload:e})}},kt=function(){return Ue.withProducerCallback(t=>{Ne.INSTANCE.attachMessageConsumer(t)})},$t=function(t=Re()){let e=window.fetch;return window.fetch=async(r,n)=>{let s=r instanceof Request?r.url:r.toString();if(s.startsWith("data:"))return e(r,n);try{let i=he(s,t);if(i){let u=await(await e(i)).arrayBuffer();return new Response(u,{headers:{"Content-Type":_r(s)}})}return e(r,n)}catch(i){return f.error("Error parsing URL",i),e(r,n)}},()=>{window.fetch=e}};function _r(t){return t.endsWith(".csv")?"text/csv":t.endsWith(".json")?"application/json":t.endsWith(".txt")?"text/plain":"application/octet-stream"}Lt=function(t,e=Re()){let r=t.http.bind(t),n=t.load.bind(t);return t.http=async s=>{let i=he(s,e);if(i)return await window.fetch(i).then(u=>u.text());try{return await r(s)}catch(u){if(s.startsWith("data:"))return await window.fetch(s).then(d=>d.text());throw u}},t.load=async s=>{let i=he(s,e);if(i)return await window.fetch(i).then(u=>u.text());try{return await n(s)}catch(u){if(s.startsWith("data:"))return await window.fetch(s).then(d=>d.text());throw u}},()=>{t.http=r,t.load=n}};function tt(t){return t.startsWith(".")?t.slice(1):t}function Er(t,e=Re()){let r=he(t,e);if(!r)return t;let n=yn(r);return URL.createObjectURL(n)}function he(t,e){let r=document.baseURI;r.startsWith("blob:")&&(r=r.replace("blob:",""));let n=new URL(t,r).pathname,s=rt(t),i=rt(n);return e[t]||e[tt(t)]||e[n]||e[tt(n)]||s&&e[s]||i&&e[i]}function rt(t){let e=t.indexOf("/@file/");return e===-1?null:t.slice(e)}function _e(t,e=[]){let r=[];if(t instanceof DataView)r.push(e);else if(Array.isArray(t))for(let[n,s]of t.entries())r.push(..._e(s,[...e,n]));else if(typeof t=="object"&&t)for(let[n,s]of Object.entries(t))r.push(..._e(s,[...e,n]));return r}function Cr(t){let e=_e(t);if(e.length===0)return{state:t,buffers:[],bufferPaths:[]};let r=structuredClone(t),n=[],s=[];for(let i of e){let u=Xr(t,i);if(u instanceof DataView){let d=xt(u);n.push(d),s.push(i),ae(r,i,d)}}return{state:r,buffers:n,bufferPaths:s}}function nt(t){let{state:e,bufferPaths:r,buffers:n}=t;if(!r||r.length===0)return e;n&&Jr(n.length===r.length,"Buffers and buffer paths not the same length");let s=e;for(let[i,u]of r.entries()){let d=n==null?void 0:n[i];if(d==null){f.warn("[anywidget] Could not find buffer at path",u);continue}typeof d=="string"?ae(s,u,_t(d)):ae(s,u,d)}return s}const st={invoke:async()=>{let t="anywidget.invoke not supported in marimo. Please file an issue at https://github.com/marimo-team/marimo/issues";throw f.warn(t),Error(t)}};function Rr(t){if(typeof AbortSignal.any=="function")return AbortSignal.any(t);let e=new AbortController;for(let r of t){if(r.aborted)return e.abort(r.reason),e.signal;r.addEventListener("abort",()=>e.abort(r.reason),{once:!0})}return e.signal}var Sr=(lt=class{constructor(){F(this,pe);F(this,X,new Map)}getModule(t,e){let r=l(this,X).get(e);if(r)return r;let n=$(this,pe,Yt).call(this,t).catch(s=>{throw l(this,X).delete(e),s});return l(this,X).set(e,n),n}invalidate(t){f.debug(`[WidgetDefRegistry] Invalidating module cache for hash=${t}`),l(this,X).delete(t)}},X=new WeakMap,pe=new WeakSet,Yt=async function(t){let e=en(t).toString();return wt()&&(e=Er(e)),hn(()=>import(e).then(async r=>(await r.__tla,r)),[],import.meta.url)},lt),Fr=(dt=class{constructor(){F(this,T);F(this,Q);F(this,I)}async bind(t,e){var i,u;if(l(this,I)&&l(this,Q)===t)return l(this,I);l(this,I)&&l(this,Q)!==t&&(f.debug("[WidgetBinding] Hot-reload detected, aborting previous binding"),(i=l(this,T))==null||i.abort(),N(this,T,void 0),N(this,I,void 0)),N(this,Q,t),N(this,T,new AbortController);let r=l(this,T).signal,n=typeof t=="function"?await t():t,s=await((u=n.initialize)==null?void 0:u.call(n,{model:e,experimental:st}));return s&&r.addEventListener("abort",s),N(this,I,async(d,p)=>{var C;let b=await((C=n.render)==null?void 0:C.call(n,{model:e,el:d,experimental:st}));b&&Rr([p,r]).addEventListener("abort",()=>{let _=p.aborted?"view unmount":"binding destroyed";f.debug(`[WidgetBinding] Render cleanup triggered (reason: ${_})`),b()})}),l(this,I)}destroy(){var t;f.debug("[WidgetBinding] Destroying binding, aborting initialize lifecycle"),(t=l(this,T))==null||t.abort(),N(this,T,void 0),N(this,Q,void 0),N(this,I,void 0)}},T=new WeakMap,Q=new WeakMap,I=new WeakMap,dt),Nr=(ut=class{constructor(){F(this,W,new Map)}getOrCreate(t){let e=l(this,W).get(t);return e||(e=new Fr,l(this,W).set(t,e)),e}destroy(t){let e=l(this,W).get(t);e&&(f.debug(`[BindingManager] Destroying binding for model=${t}`),e.destroy(),l(this,W).delete(t))}has(t){return l(this,W).has(t)}},W=new WeakMap,ut);Nt=new Sr,qe=new Nr;var kr=(ct=class{constructor(t=1e4){F(this,J);F(this,z,new Map);F(this,te);N(this,te,t)}get(t){let e=$(this,J,ve).call(this,t);return e.deferred.status==="pending"&&setTimeout(()=>{e.deferred.status==="pending"&&(e.deferred.reject(Error(`Model not found for key: ${t}`)),l(this,z).delete(t))},l(this,te)),e.deferred.promise}create(t,e){let r=$(this,J,ve).call(this,t);r.deferred.resolve(e(r.controller.signal))}set(t,e){$(this,J,ve).call(this,t).deferred.resolve(e)}getSync(t){let e=l(this,z).get(t);if(e&&e.deferred.status==="resolved")return e.deferred.value}delete(t){var e;f.debug(`[ModelManager] Deleting model=${t}, aborting lifecycle signal`),(e=l(this,z).get(t))==null||e.controller.abort(),l(this,z).delete(t)}},z=new WeakMap,te=new WeakMap,J=new WeakSet,ve=function(t){let e=l(this,z).get(t);return e||(e={deferred:new Et,controller:new AbortController},l(this,z).set(t,e)),e},ct),it=Symbol("marimo");function Ee(t){return t[it]}be=new kr;var qr=(ht=it,Y=class{constructor(e,r,n){F(this,B);F(this,fe,"change");F(this,O);F(this,D);F(this,K);F(this,k,{});a(this,ht,{updateAndEmitDiffs:e=>$(this,B,Jt).call(this,e),emitCustomMessage:(e,r)=>$(this,B,Kt).call(this,e,r)});a(this,"widget_manager",{async get_model(e){let r=await Y._modelManager.get(e);if(!r)throw Error(`Model not found with id: ${e}. This is likely because the model was not registered.`);return r}});F(this,ge,Yr(()=>{let e=l(this,k)[l(this,fe)];if(e)for(let r of e)try{r()}catch(n){f.error("Error emitting event",n)}},0));N(this,D,e),N(this,K,r),N(this,O,new Map),n&&n.addEventListener("abort",()=>{f.debug("[Model] Signal aborted, clearing all listeners"),N(this,k,{})})}off(e,r){var n;if(!e){N(this,k,{});return}if(!r){l(this,k)[e]=new Set;return}(n=l(this,k)[e])==null||n.delete(r)}send(e,r,n){let s=(n??[]).map(i=>i instanceof ArrayBuffer?new DataView(i):new DataView(i.buffer,i.byteOffset,i.byteLength));return l(this,K).sendCustomMessage(e,s).then(()=>r==null?void 0:r())}get(e){return l(this,D)[e]}set(e,r){N(this,D,{...l(this,D),[e]:r}),l(this,O).set(e,r),$(this,B,Gt).call(this,`change:${e}`,r),l(this,ge).call(this)}save_changes(){if(l(this,O).size===0)return;let e=Object.fromEntries(l(this,O).entries());l(this,O).clear(),l(this,K).sendUpdate(e)}on(e,r){l(this,k)[e]||(l(this,k)[e]=new Set),l(this,k)[e].add(r)}},fe=new WeakMap,O=new WeakMap,D=new WeakMap,K=new WeakMap,k=new WeakMap,B=new WeakSet,Gt=function(e,r){if(!l(this,k)[e])return;let n=l(this,k)[e];for(let s of n)try{s(r)}catch(i){f.error("Error emitting event",i)}},Jt=function(e){e!=null&&Object.keys(e).forEach(r=>{let n=r;l(this,D)[n]!==e[n]&&this.set(n,e[n])})},Kt=function(e,r=[]){let n=l(this,k)["msg:custom"];if(n)for(let s of n)try{s(e.content,r)}catch(i){f.error("Error emitting event",i)}},ge=new WeakMap,a(Y,"_modelManager",be),Y);Vt=async function(t,e){let r=e.model_id,n=e.message,s=("buffers"in n?n.buffers:[]).map(_t);switch(n.method){case"open":{let{state:i,buffer_paths:u=[]}=n,d=nt({state:i,bufferPaths:u,buffers:s}),p=t.getSync(r);if(p){Ee(p).updateAndEmitDiffs(d);return}t.create(r,b=>new qr(d,wt()?{sendUpdate:async()=>{},sendCustomMessage:async()=>{}}:{async sendUpdate(C){if(b.aborted){f.debug(`[Model] sendUpdate suppressed for model=${r} (signal aborted)`);return}let{state:_,buffers:q,bufferPaths:M}=Cr(C);await Se().sendModelValue({modelId:r,message:{method:"update",state:_,bufferPaths:M},buffers:q})},async sendCustomMessage(C,_){if(b.aborted){f.debug(`[Model] sendCustomMessage suppressed for model=${r} (signal aborted)`);return}await Se().sendModelValue({modelId:r,message:{method:"custom",content:C},buffers:_.map(xt)})}},b));return}case"custom":Ee(await t.get(r)).emitCustomMessage({method:"custom",content:n.content},s);return;case"close":qe.destroy(r),t.delete(r);return;case"update":{let{state:i,buffer_paths:u=[]}=n,d=nt({state:i,bufferPaths:u,buffers:s});Ee(await t.get(r)).updateAndEmitDiffs(d);return}default:Qr(n)}},Wr(be,"MODEL_MANAGER");function me(t){return()=>({TYPE:t,is(e){return e.type===t},create(e){return new CustomEvent(t,e)}})}Ae=me("marimo-value-input")(),Oe=me("marimo-value-update")(),Me=me("marimo-value-ready")(),Le=me("marimo-incoming-message")(),Xt=function(t,e){return Ae.create({bubbles:!0,composed:!0,detail:{value:t,element:e}})},ze=class Zt{static get INSTANCE(){let e="_marimo_private_UIElementRegistry";return window[e]||(window[e]=new Zt),window[e]}constructor(){this.entries=new Map}has(e){return this.entries.has(e)}set(e,r){this.entries.has(e)&&f.debug("UIElementRegistry overwriting entry for objectId.",e),this.entries.set(e,{objectId:e,value:r,elements:new Set})}registerInstance(e,r){let n=this.entries.get(e);n===void 0?this.entries.set(e,{objectId:e,value:Or(r,this),elements:new Set([r])}):n.elements.add(r)}removeInstance(e,r){let n=this.entries.get(e);n!=null&&n.elements.has(r)&&n.elements.delete(r)}removeElementsByCell(e){[...this.entries.keys()].filter(r=>r.startsWith(`${e}-`)).forEach(r=>{this.entries.delete(r)})}lookupValue(e){let r=this.entries.get(e);return r===void 0?void 0:r.value}broadcastMessage(e,r,n){let s=this.entries.get(e);s===void 0?f.warn("UIElementRegistry missing entry",e):s.elements.forEach(i=>{i.dispatchEvent(Le.create({bubbles:!1,composed:!0,detail:{objectId:e,message:r,buffers:n}}))})}broadcastValueUpdate(e,r,n){let s=this.entries.get(r);s===void 0?f.warn("UIElementRegistry missing entry",r):(s.value=n,s.elements.forEach(i=>{i!==e&&i.dispatchEvent(Oe.create({bubbles:!1,composed:!0,detail:{value:n,element:i}}))}),document.dispatchEvent(Me.create({bubbles:!0,composed:!0,detail:{objectId:r}})))}},Wt=ze.INSTANCE,Ut=new cn("function-call-result",async(t,e)=>{await Se().sendFunctionRequest({functionCallId:t,...e})}),zt="68px";var Mr="288px";let at;Ht=t=>t?/^\d+$/.test(t)?`${t}px`:t:Mr,It=Br({isOpen:!0},(t,e)=>{if(!e)return t;switch(e.type){case"toggle":return{...t,isOpen:e.isOpen??t.isOpen};case"setWidth":return{...t,width:e.width};default:return t}}),Te=V(null),Dt=V(null),Pe=V(!1),at=V(!1),je=V(!1);var Pr=gt();Ie=t=>{let e=(0,Pr.c)(8),{onResize:r,startingWidth:n,minWidth:s,maxWidth:i}=t,u=(0,R.useRef)(null),d=(0,R.useRef)(null),p=(0,R.useRef)(null),b,C;e[0]!==i||e[1]!==s||e[2]!==r?(b=()=>{let P=u.current,j=d.current,A=p.current;if(!P||!j&&!A)return;let S=Number.parseInt(window.getComputedStyle(P).width,10),L=0,H=!1,Z=null,re=c=>{if(!P||!H||!Z)return;let w=c.clientX-L;L=c.clientX,S=Z==="left"?S-w:S+w,s&&(S=Math.max(s,S)),i&&(S=Math.min(i,S)),P.style.width=`${S}px`},ne=()=>{H&&(r==null||r(S),H=!1,Z=null),document.removeEventListener("mousemove",re),document.removeEventListener("mouseup",ne)},o=(c,w)=>{c.preventDefault(),H=!0,Z=w,L=c.clientX,document.addEventListener("mousemove",re),document.addEventListener("mouseup",ne)},m=c=>o(c,"left"),x=c=>o(c,"right");return j&&j.addEventListener("mousedown",m),A&&A.addEventListener("mousedown",x),()=>{j&&j.removeEventListener("mousedown",m),A&&A.removeEventListener("mousedown",x),document.removeEventListener("mousemove",re),document.removeEventListener("mouseup",ne)}},C=[s,i,r],e[0]=i,e[1]=s,e[2]=r,e[3]=b,e[4]=C):(b=e[3],C=e[4]),(0,R.useEffect)(b,C);let _;e[5]===Symbol.for("react.memo_cache_sentinel")?(_={left:d,right:p},e[5]=_):_=e[5];let q=n==="contentWidth"?"var(--content-width-medium)":`${n}px`,M;return e[6]===q?M=e[7]:(M={resizableDivRef:u,handleRefs:_,style:{width:q}},e[6]=q,e[7]=M),M},We=function(t){t||ft(()=>{window.dispatchEvent(new Event("resize"))})};var ot=gt(),h=pt(rn(),1);Bt=()=>{let t=(0,ot.c)(16),[e,r]=ye(Te),[n,s]=ye(Pe),[i,u]=ye(at),[d,p]=ye(je),b;t[0]!==s||t[1]!==r?(b=()=>{r(null),s(!1)},t[0]=s,t[1]=r,t[2]=b):b=t[2];let C=b;if(we(oe.CONTEXT_AWARE_PANEL).length===0||!e||!n)return null;let _;t[3]!==d||t[4]!==i||t[5]!==p||t[6]!==u?(_=()=>(0,h.jsxs)("div",{className:"flex flex-row items-center gap-3",children:[(0,h.jsx)(Rt,{content:i?"Unpin panel":"Pin panel",children:(0,h.jsx)(Ft,{size:"xs",onPressedChange:()=>u(!i),pressed:i,"aria-label":i?"Unpin panel":"Pin panel",children:i?(0,h.jsx)(E,{className:"w-4 h-4"}):(0,h.jsx)(an,{className:"w-4 h-4"})})}),(0,h.jsx)(Rt,{content:d?(0,h.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,h.jsx)("span",{children:"Follow focused table"}),(0,h.jsx)("span",{className:"text-xs text-muted-foreground w-64",children:"The panel updates as cells that output tables are focused. Click to fix to the current cell."})]}):(0,h.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,h.jsx)("span",{children:"Focus on current table"}),(0,h.jsx)("span",{className:"text-xs text-muted-foreground w-64",children:"The panel is focused on the current table. Click to update based on which cell is focused."})]}),children:(0,h.jsx)(Ft,{size:"xs",onPressedChange:()=>p(!d),pressed:d,"aria-label":d?"Follow focused cell":"Fixed",children:(0,h.jsx)(y,{className:sn("w-4 h-4",d&&"text-primary")})})})]}),t[3]=d,t[4]=i,t[5]=p,t[6]=u,t[7]=_):_=t[7];let q=_,M;t[8]!==C||t[9]!==q?(M=()=>(0,h.jsxs)("div",{className:"mt-2 pb-7 mb-4 h-full overflow-auto",children:[(0,h.jsxs)("div",{className:"flex flex-row justify-between items-center mx-2",children:[q(),(0,h.jsx)(nn,{variant:"linkDestructive",size:"icon",onClick:C,"aria-label":"Close selection panel",children:(0,h.jsx)(dn,{className:"w-4 h-4"})})]}),(0,h.jsx)(bt,{children:(0,h.jsx)(ke,{name:oe.CONTEXT_AWARE_PANEL})})]}),t[8]=C,t[9]=q,t[10]=M):M=t[10];let P=M;if(!i){let S;return t[11]===P?S=t[12]:(S=(0,h.jsx)(jr,{children:P()}),t[11]=P,t[12]=S),S}let j;t[13]===Symbol.for("react.memo_cache_sentinel")?(j=(0,h.jsx)(bn,{onDragging:We,className:"resize-handle border-border z-20 print:hidden border-l"}),t[13]=j):j=t[13];let A;return t[14]===P?A=t[15]:(A=(0,h.jsxs)(h.Fragment,{children:[j,(0,h.jsx)(wn,{defaultSize:20,minSize:15,maxSize:80,children:P()})]}),t[14]=P,t[15]=A),A},Ot=t=>{let e=(0,ot.c)(2),{children:r}=t,n;return e[0]===r?n=e[1]:(n=(0,h.jsx)(bt,{children:(0,h.jsx)(er,{name:oe.CONTEXT_AWARE_PANEL,children:r})}),e[0]=r,e[1]=n),n};var jr=({children:t})=>{let{resizableDivRef:e,handleRefs:r,style:n}=Ie({startingWidth:400,minWidth:300,maxWidth:1500,onResize:()=>{ft(()=>{window.dispatchEvent(new Event("resize"))})}});return(0,h.jsxs)("div",{className:"absolute z-40 right-0 h-full bg-background flex flex-row",children:[(0,h.jsx)("div",{ref:r.left,className:"w-1 h-full cursor-col-resize border-l"}),(0,h.jsx)("div",{ref:e,style:n,children:t})]})}});export{Fe as A,ae as B,Nt as C,kt as D,Ne as E,qt as F,Mt as I,Pt as L,oe as M,jt as N,le as O,At as P,ke as R,qe as S,Lt as T,Me as _,vn as __tla,Pe as a,be as b,je as c,It as d,Ut as f,Ae as g,Le as h,Ie as i,Ue as j,Tt as k,zt as l,Wt as m,Ot as n,Te as o,ze as p,We as r,Dt as s,Bt as t,Ht as u,Oe as v,$t as w,Vt as x,Xt as y,we as z};
@@ -0,0 +1 @@
1
+ import{m as o}from"./useEventListener-Dy81QR4n.js";async function r(t,a){if(navigator.clipboard===void 0){o.warn("navigator.clipboard is not supported"),window.prompt("Copy to clipboard: Ctrl+C, Enter",t);return}if(a&&navigator.clipboard.write)try{let i=new ClipboardItem({"text/html":new Blob([a],{type:"text/html"}),"text/plain":new Blob([t],{type:"text/plain"})});await navigator.clipboard.write([i]);return}catch{o.warn("Failed to write rich text, falling back to plain text")}await navigator.clipboard.writeText(t).catch(()=>{o.warn("Failed to copy to clipboard using navigator.clipboard"),window.prompt("Copy to clipboard: Ctrl+C, Enter",t)})}function e(){let t=navigator.userAgent;return/safari/i.test(t)&&!/chrome|chromium|crios|fxios|edgios|opios/i.test(t)}async function n(t){let a;if(e())a=new ClipboardItem({"image/png":fetch(t).then(i=>i.blob())});else{let i=await(await fetch(t)).blob();a=new ClipboardItem({[i.type]:i})}await navigator.clipboard.write([a])}export{r as n,n as t};
@@ -1 +1 @@
1
- import{s as y}from"./chunk-LvLJmgfZ.js";import{t as j}from"./react-Bj1aDYRI.js";import{t as g}from"./compiler-runtime-B3qBwwSJ.js";import{t as v}from"./jsx-runtime-icT_Ltz2.js";import{r as T}from"./button-Ej3vmCIF.js";import{t as w}from"./cn-BoaCR37F.js";import{t as D}from"./check-BE0hEwVo.js";import{t as S}from"./copy-CkudG0Ej.js";import{t as k}from"./use-toast-Hc8CXlvz.js";import{t as E}from"./tooltip-D9723Brr.js";import{n as L}from"./copy-YwM0Pd7v.js";var P=g(),_=y(j(),1),n=y(v(),1);const q=C=>{let t=(0,P.c)(14),{value:a,className:r,buttonClassName:c,tooltip:d,toastTitle:s,ariaLabel:N}=C,[e,x]=(0,_.useState)(!1),m;t[0]!==s||t[1]!==a?(m=T.stopPropagation(async h=>{await L(typeof a=="function"?a(h):a).then(()=>{x(!0),setTimeout(()=>x(!1),2e3),s&&k({title:s})})}),t[0]=s,t[1]=a,t[2]=m):m=t[2];let f=m,u=N??"Copy to clipboard",o;t[3]!==r||t[4]!==e?(o=e?(0,n.jsx)(D,{className:w(r,"text-(--grass-11)")}):(0,n.jsx)(S,{className:r}),t[3]=r,t[4]=e,t[5]=o):o=t[5];let i;t[6]!==c||t[7]!==f||t[8]!==u||t[9]!==o?(i=(0,n.jsx)("button",{type:"button",onClick:f,"aria-label":u,className:c,children:o}),t[6]=c,t[7]=f,t[8]=u,t[9]=o,t[10]=i):i=t[10];let l=i;if(d===!1)return l;let b=e?"Copied!":d??"Copy to clipboard",p;return t[11]!==l||t[12]!==b?(p=(0,n.jsx)(E,{content:b,delayDuration:400,children:l}),t[11]=l,t[12]=b,t[13]=p):p=t[13],p};export{q as t};
1
+ import{s as y}from"./chunk-LvLJmgfZ.js";import{t as j}from"./react-Bj1aDYRI.js";import{t as g}from"./compiler-runtime-B3qBwwSJ.js";import{t as v}from"./jsx-runtime-icT_Ltz2.js";import{r as T}from"./button-Ej3vmCIF.js";import{t as w}from"./cn-BoaCR37F.js";import{t as D}from"./check-BE0hEwVo.js";import{t as S}from"./copy-CkudG0Ej.js";import{t as k}from"./use-toast-Hc8CXlvz.js";import{t as E}from"./tooltip-D9723Brr.js";import{n as L}from"./copy-CA4fP28I.js";var P=g(),_=y(j(),1),n=y(v(),1);const q=C=>{let t=(0,P.c)(14),{value:a,className:r,buttonClassName:c,tooltip:d,toastTitle:s,ariaLabel:N}=C,[e,x]=(0,_.useState)(!1),m;t[0]!==s||t[1]!==a?(m=T.stopPropagation(async h=>{await L(typeof a=="function"?a(h):a).then(()=>{x(!0),setTimeout(()=>x(!1),2e3),s&&k({title:s})})}),t[0]=s,t[1]=a,t[2]=m):m=t[2];let f=m,u=N??"Copy to clipboard",o;t[3]!==r||t[4]!==e?(o=e?(0,n.jsx)(D,{className:w(r,"text-(--grass-11)")}):(0,n.jsx)(S,{className:r}),t[3]=r,t[4]=e,t[5]=o):o=t[5];let i;t[6]!==c||t[7]!==f||t[8]!==u||t[9]!==o?(i=(0,n.jsx)("button",{type:"button",onClick:f,"aria-label":u,className:c,children:o}),t[6]=c,t[7]=f,t[8]=u,t[9]=o,t[10]=i):i=t[10];let l=i;if(d===!1)return l;let b=e?"Copied!":d??"Copy to clipboard",p;return t[11]!==l||t[12]!==b?(p=(0,n.jsx)(E,{content:b,delayDuration:400,children:l}),t[11]=l,t[12]=b,t[13]=p):p=t[13],p};export{q as t};
@@ -1,3 +1,3 @@
1
- var x=Object.defineProperty;var A=(r,e,n)=>e in r?x(r,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):r[e]=n;var l=(r,e,n)=>A(r,typeof e!="symbol"?e+"":e,n);import{i as m}from"./useEvent-O0nX5vok.js";import{$r as I,Et as E,In as T,br as p,cr as C,jn as w,n as L,sr as M,xi as O}from"./cells-fq1RMGX_.js";import{m as $}from"./useEventListener-Dy81QR4n.js";import{t as P}from"./createLucideIcon-Cm-Z7dYr.js";import{t as R}from"./multi-map-Pp1P2DOX.js";var S=P("wrench",[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z",key:"1ngwbx"}]]),u,c;function U(r,e,n,a,i){var t={};return Object.keys(a).forEach(function(s){t[s]=a[s]}),t.enumerable=!!t.enumerable,t.configurable=!!t.configurable,("value"in t||t.initializer)&&(t.writable=!0),t=n.slice().reverse().reduce(function(s,o){return o(r,e,s)||s},t),i&&t.initializer!==void 0&&(t.value=t.initializer?t.initializer.call(i):void 0,t.initializer=void 0),t.initializer===void 0?(Object.defineProperty(r,e,t),null):t}var d=class{async getAttachments(r){return[]}asURI(r){return`${this.contextType}://${r}`}parseContextIds(r){let e=RegExp(`${this.mentionPrefix}([\\w-]+):\\/\\/([\\w./-]+)`,"g"),n=[...r.matchAll(e)],a=t=>t.slice(1),i=n.filter(([,t])=>t===this.contextType).map(([t])=>a(t));return[...new Set(i)]}createBasicCompletion(r,e){return{label:`${this.mentionPrefix}${r.uri.split("://")[1]}`,displayLabel:r.name,detail:(e==null?void 0:e.detail)||r.description,boost:(e==null?void 0:e.boost)||1,type:(e==null?void 0:e.type)||this.contextType,apply:`${this.mentionPrefix}${r.uri}`,section:(e==null?void 0:e.section)||this.title}}};let D=(u=I(),c=class{constructor(){l(this,"providers",new Set)}register(r){return this.providers.add(r),this}getProviders(){return this.providers}getProvider(r){return[...this.providers].find(e=>e.contextType===r)}getAllItems(){return[...this.providers].flatMap(r=>r.getItems())}parseAllContextIds(r){return[...this.providers].flatMap(e=>e.parseContextIds(r))}getContextInfo(r){let e=[],n=new Map(this.getAllItems().map(a=>[a.uri,a]));for(let a of r){let i=n.get(a);i&&e.push(i)}return e}formatContextForAI(r){let e=new Map(this.getAllItems().map(a=>[a.uri,a])),n=[];for(let a of r){let i=e.get(a);i&&n.push(i)}return n.length===0?"":n.map(a=>{var i;return((i=this.getProvider(a.type))==null?void 0:i.formatContext(a))||""}).join(`
1
+ var x=Object.defineProperty;var A=(r,e,n)=>e in r?x(r,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):r[e]=n;var l=(r,e,n)=>A(r,typeof e!="symbol"?e+"":e,n);import{i as m}from"./useEvent-O0nX5vok.js";import{$r as I,Et as E,In as T,br as p,cr as C,jn as w,n as L,sr as M,xi as O}from"./cells-Bg7-G3QJ.js";import{m as $}from"./useEventListener-Dy81QR4n.js";import{t as P}from"./createLucideIcon-Cm-Z7dYr.js";import{t as R}from"./multi-map-Pp1P2DOX.js";var S=P("wrench",[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z",key:"1ngwbx"}]]),u,c;function U(r,e,n,a,i){var t={};return Object.keys(a).forEach(function(s){t[s]=a[s]}),t.enumerable=!!t.enumerable,t.configurable=!!t.configurable,("value"in t||t.initializer)&&(t.writable=!0),t=n.slice().reverse().reduce(function(s,o){return o(r,e,s)||s},t),i&&t.initializer!==void 0&&(t.value=t.initializer?t.initializer.call(i):void 0,t.initializer=void 0),t.initializer===void 0?(Object.defineProperty(r,e,t),null):t}var d=class{async getAttachments(r){return[]}asURI(r){return`${this.contextType}://${r}`}parseContextIds(r){let e=RegExp(`${this.mentionPrefix}([\\w-]+):\\/\\/([\\w./-]+)`,"g"),n=[...r.matchAll(e)],a=t=>t.slice(1),i=n.filter(([,t])=>t===this.contextType).map(([t])=>a(t));return[...new Set(i)]}createBasicCompletion(r,e){return{label:`${this.mentionPrefix}${r.uri.split("://")[1]}`,displayLabel:r.name,detail:(e==null?void 0:e.detail)||r.description,boost:(e==null?void 0:e.boost)||1,type:(e==null?void 0:e.type)||this.contextType,apply:`${this.mentionPrefix}${r.uri}`,section:(e==null?void 0:e.section)||this.title}}};let D=(u=I(),c=class{constructor(){l(this,"providers",new Set)}register(r){return this.providers.add(r),this}getProviders(){return this.providers}getProvider(r){return[...this.providers].find(e=>e.contextType===r)}getAllItems(){return[...this.providers].flatMap(r=>r.getItems())}parseAllContextIds(r){return[...this.providers].flatMap(e=>e.parseContextIds(r))}getContextInfo(r){let e=[],n=new Map(this.getAllItems().map(a=>[a.uri,a]));for(let a of r){let i=n.get(a);i&&e.push(i)}return e}formatContextForAI(r){let e=new Map(this.getAllItems().map(a=>[a.uri,a])),n=[];for(let a of r){let i=e.get(a);i&&n.push(i)}return n.length===0?"":n.map(a=>{var i;return((i=this.getProvider(a.type))==null?void 0:i.formatContext(a))||""}).join(`
2
2
 
3
3
  `)}async getAttachmentsForContext(r){let e=new Map(this.getAllItems().map(t=>[t.uri,t])),n=[];for(let t of r){let s=e.get(t);s&&n.push(s)}if(n.length===0)return[];let a=new R;for(let t of n){let s=t.type;a.add(s,t)}let i=[...a.entries()].map(async([t,s])=>{let o=this.getProvider(t);if(!o)return[];try{return await o.getAttachments(s)}catch(v){return $.error("Error getting attachments from provider",v),[]}});return(await Promise.all(i)).flat()}},U(c.prototype,"getAllItems",[u],Object.getOwnPropertyDescriptor(c.prototype,"getAllItems"),c.prototype),c);function f(r){return r.replaceAll("<","&lt;").replaceAll(">","&gt;")}function h(r){let{type:e,data:n,details:a}=r,i=`<${e}`;for(let[t,s]of Object.entries(n))if(s!==void 0){let o=f(typeof s=="object"&&s?JSON.stringify(s):String(s));i+=` ${t}="${o}"`}return i+=">",a&&(i+=f(a)),i+=`</${e}>`,i}const g={LOCAL_TABLE:7,REMOTE_TABLE:5,HIGH:4,MEDIUM:3,CELL_OUTPUT:2,LOW:2},y={ERROR:{name:"Error",rank:1},TABLE:{name:"Table",rank:2},DATA_SOURCES:{name:"Data Sources",rank:3},VARIABLE:{name:"Variable",rank:4},CELL_OUTPUT:{name:"Cell Output",rank:5},FILE:{name:"File",rank:6}};var _=O(),b="datasource",k=class extends d{constructor(e,n){super();l(this,"title","Datasource");l(this,"mentionPrefix","@");l(this,"contextType",b);this.connectionsMap=e,this.dataframes=[...n.values()].filter(a=>C(a)==="dataframe")}getItems(){return[...this.connectionsMap.values()].map(e=>{var i;let n="Database schema.",a={connection:e};return p.has(e.name)&&(a.tables=this.dataframes,n="Database schema and the dataframes that can be queried"),e.databases.length===0&&(((i=a.tables)==null?void 0:i.length)??0)===0?null:{uri:this.asURI(e.name),name:e.name,description:n,type:this.contextType,data:a}}).filter(Boolean)}formatContext(e){let n=e.data,{name:a,display_name:i,source:t,...s}=n.connection,o=s;return p.has(a)||(o={...s,engine_name:a}),h({type:this.contextType,data:{connection:o,tables:n.tables}})}formatCompletion(e){let n=e.data,a=n.connection,i=n.tables,t=a.name;return p.has(a.name)&&(t="In-Memory"),{label:`@${t}`,displayLabel:t,detail:T(a.dialect),boost:g.MEDIUM,type:this.contextType,section:y.DATA_SOURCES,info:()=>{let s=document.createElement("div");return s.classList.add("mo-cm-tooltip","docs-documentation"),(0,_.createRoot)(s).render(w(a,i)),s}}}};function j(r){var s;let e=(s=m.get(L(r)))==null?void 0:s.code;if(!e||e.trim()==="")return null;let[n,a,i]=E.sql.transformIn(e),t=m.get(M).connectionsMap.get(i.engine);return t?`@${b}://${t.name}`:null}export{h as a,S as c,y as i,j as n,d as o,g as r,D as s,k as t};