@marimo-team/frontend 0.25.3-dev10 → 0.25.3-dev12

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 (123) hide show
  1. package/dist/assets/{CellStatus-nZpuDkm7.js → CellStatus-DVOHpdeJ.js} +1 -1
  2. package/dist/assets/{ConnectedDataExplorerComponent-t8fH_TNc.js → ConnectedDataExplorerComponent-TprnxZeJ.js} +1 -1
  3. package/dist/assets/{ErrorBoundary-B4n9EnHB.js → ErrorBoundary-CM13wrd8.js} +2 -2
  4. package/dist/assets/{JsonOutput-BxB0NL8w.js → JsonOutput-Cx1iyibB.js} +1 -1
  5. package/dist/assets/{LazyAnyLanguageCodeMirror-CKcCbG2G.js → LazyAnyLanguageCodeMirror-B4fCknq1.js} +2 -2
  6. package/dist/assets/{MarimoErrorOutput-BTy4MOzX.js → MarimoErrorOutput-s_5GOX8k.js} +1 -1
  7. package/dist/assets/{RenderHTML-9bMgbYmo.js → RenderHTML-DX6i99Op.js} +1 -1
  8. package/dist/assets/{RunButton-CFQUNN5c.js → RunButton-BKoh0zYG.js} +1 -1
  9. package/dist/assets/{add-cell-with-ai-f_MnLCwI.js → add-cell-with-ai-BpD_790A.js} +6 -6
  10. package/dist/assets/{add-connection-dialog-CoE_PhuD.js → add-connection-dialog-B1BXCjex.js} +2 -2
  11. package/dist/assets/{agent-panel-BWZz24jK.js → agent-panel-CDFUc1uu.js} +1 -1
  12. package/dist/assets/{ai-model-dropdown-zm-2fXzf.js → ai-model-dropdown-i1vfGeVi.js} +2 -2
  13. package/dist/assets/{any-language-editor-BLCAD3yx.js → any-language-editor-BdTWdMCI.js} +1 -1
  14. package/dist/assets/{app-config-button-BhU0ulYs.js → app-config-button-AdV-QDD7.js} +1 -1
  15. package/dist/assets/{blob-iOBwGaP9.js → blob-BG8yoQmx.js} +1 -1
  16. package/dist/assets/{cell-editor-CAj1UKxx.js → cell-editor-BKJ06H5F.js} +5 -5
  17. package/dist/assets/cell-link-8Auigi8P.js +1 -0
  18. package/dist/assets/{cells-rA_jsZCj.js → cells-C6YGYGdi.js} +56 -56
  19. package/dist/assets/{chat-display-BmEPmhDP.js → chat-display-DhgI2MS9.js} +1 -1
  20. package/dist/assets/{chat-panel-Ce2Xh7dM.js → chat-panel-Cau71Ygr.js} +1 -1
  21. package/dist/assets/{chat-ui-DTy98rP3.js → chat-ui-C5ql1Up-.js} +1 -1
  22. package/dist/assets/code-visibility-BJImdpDi.js +1 -0
  23. package/dist/assets/coerce-DWjFeXOY.js +1 -0
  24. package/dist/assets/{column-preview-DU6dT80y.js → column-preview-BZ_iNhtJ.js} +1 -1
  25. package/dist/assets/{command-palette-BMqFKXVr.js → command-palette-DDC3kBet.js} +1 -1
  26. package/dist/assets/{common-lisZ0l6a.js → common-Sl3uthjg.js} +1 -1
  27. package/dist/assets/{components-Dvd1GnD6.js → components-3cou6Mka.js} +1 -1
  28. package/dist/assets/{components-CP_UoFtT.js → components-CskjK6xZ.js} +1 -1
  29. package/dist/assets/{components-CXfO-F47.js → components-YBmtV0p6.js} +1 -1
  30. package/dist/assets/{config-VPSq73n8.js → config-CA1V-wjh.js} +1 -1
  31. package/dist/assets/{config-DJLAC21v.js → config-DRIpOKqh.js} +1 -1
  32. package/dist/assets/config-Dy28fDwn.js +1 -0
  33. package/dist/assets/{datasource-Dr1xNKUn.js → datasource-DfbNb83e.js} +1 -1
  34. package/dist/assets/{dependency-graph-panel-B0uP-_id.js → dependency-graph-panel-L5cBE5sl.js} +1 -1
  35. package/dist/assets/{documentation-panel-DVl_ebWy.js → documentation-panel-D7S8JIc2.js} +1 -1
  36. package/dist/assets/{download-Bx55LMki.js → download-C03FOElq.js} +1 -1
  37. package/dist/assets/{edit-page-DlfCLUaq.js → edit-page-D_Rg0gQO.js} +6 -6
  38. package/dist/assets/{error-banner-Cd69vvyX.js → error-banner-COZ7SfYV.js} +1 -1
  39. package/dist/assets/{error-entries-DOWpdGvI.js → error-entries-CLnPDv7b.js} +1 -1
  40. package/dist/assets/{error-panel-DpbNKSLs.js → error-panel-D2xrYLue.js} +1 -1
  41. package/dist/assets/{errors-DCrsa1nH.js → errors-CNsgAw6m.js} +1 -1
  42. package/dist/assets/{feedback-button-B99ThNJW.js → feedback-button-DzPunIqU.js} +2 -2
  43. package/dist/assets/feedback-button-Kla7i5RT.js +1 -0
  44. package/dist/assets/{file-explorer-panel-Bo9eN3rW.js → file-explorer-panel-Uk4_QIJQ.js} +1 -1
  45. package/dist/assets/{file-name-input-ChnBsDE_.js → file-name-input-B4fRaQkI.js} +1 -1
  46. package/dist/assets/{floating-outline-MYqQW4Vp.js → floating-outline-B5MaM1JS.js} +1 -1
  47. package/dist/assets/{gallery-page-DSL0J4md.js → gallery-page-BefvdsM7.js} +1 -1
  48. package/dist/assets/{glide-data-editor-B1MWlKeM.js → glide-data-editor-C3eaYlXg.js} +1 -1
  49. package/dist/assets/{home-page-KrhQ55Vg.js → home-page-hmvKlc1w.js} +1 -1
  50. package/dist/assets/{hooks-BIogTGCr.js → hooks-DzML9nez.js} +1 -1
  51. package/dist/assets/index-ptK1gxmo.js +30 -0
  52. package/dist/assets/{layout-DOpdUwym.js → layout-Ck1RoL1B.js} +5 -5
  53. package/dist/assets/{logs-panel-y0XnfulJ.js → logs-panel-BRytaWaO.js} +1 -1
  54. package/dist/assets/{markdown-renderer-Q5AhbRU3.js → markdown-renderer-DX0Xrrfy.js} +1 -1
  55. package/dist/assets/{mermaid-a3xYymTy.js → mermaid-C4EiVqcd.js} +1 -1
  56. package/dist/assets/{name-cell-input-BNOnF6-0.js → name-cell-input-DlpTvPLa.js} +1 -1
  57. package/dist/assets/{outline-panel-Be7stWwv.js → outline-panel-B2WIpz-1.js} +1 -1
  58. package/dist/assets/{packages-panel-ClxOAEGy.js → packages-panel-CI5ff9b-.js} +1 -1
  59. package/dist/assets/{panel-accordion-state-GeMEdCPw.js → panel-accordion-state-BqSH5ttk.js} +1 -1
  60. package/dist/assets/panels-BCcZ_yLK.js +107 -0
  61. package/dist/assets/{process-output-DNFKMODr.js → process-output-f3C3PD0Z.js} +1 -1
  62. package/dist/assets/{readonly-code-display-YULOXf4h.js → readonly-code-display-MnMEoYW5.js} +1 -1
  63. package/dist/assets/{readonly-python-code-CadgXgRu.js → readonly-python-code-ggs4hAzC.js} +1 -1
  64. package/dist/assets/{renderShortcut-BkVJQ_Zh.js → renderShortcut-C1JwYcqW.js} +1 -1
  65. package/dist/assets/{reveal-component-BVAR7ayZ.js → reveal-component-PiV1eQk9.js} +1 -1
  66. package/dist/assets/run-page-AfZhtEh1.js +1 -0
  67. package/dist/assets/{runtime-details-state-DuChzsA6.js → runtime-details-state-CoL-p0MC.js} +1 -1
  68. package/dist/assets/{schemas-Dv42wLFq.js → schemas-ChRqMOTL.js} +1 -1
  69. package/dist/assets/{scratchpad-panel-By-ybhjg.js → scratchpad-panel-D2rWg4k8.js} +1 -1
  70. package/dist/assets/{secrets-panel-Bctbtkrp.js → secrets-panel-D7KN4tVs.js} +1 -1
  71. package/dist/assets/{session-panel-BmW6PH4z.js → session-panel-CnANhcTo.js} +1 -1
  72. package/dist/assets/{snippets-panel-CQ1dn3lA.js → snippets-panel-ClGHtEKQ.js} +1 -1
  73. package/dist/assets/{state-z3dlofZB.js → state-CbjBtkdd.js} +3 -3
  74. package/dist/assets/{state-Bfh_2SLl.js → state-DtGB7xeJ.js} +1 -1
  75. package/dist/assets/{terminal-Ck_vK-34.js → terminal-wnSHYT8N.js} +1 -1
  76. package/dist/assets/{tracing-BARlJ_Dk.js → tracing-Dz2rYOFL.js} +1 -1
  77. package/dist/assets/{tracing-panel-dgnr2fIN.js → tracing-panel-DqQY9V91.js} +2 -2
  78. package/dist/assets/{tree-actions-DAd80MbP.js → tree-actions-DnUokmva.js} +1 -1
  79. package/dist/assets/{useAddCell-DGstJK0S.js → useAddCell-IN24thff.js} +1 -1
  80. package/dist/assets/{useBoolean-BDD6_xQQ.js → useBoolean-d0Tty94N.js} +1 -1
  81. package/dist/assets/{useCellActionButton-DY9RlJTb.js → useCellActionButton-DmaFZ4oF.js} +1 -1
  82. package/dist/assets/{useDeleteCell-DFBGlSQk.js → useDeleteCell-fQlM46Y2.js} +1 -1
  83. package/dist/assets/{useDependencyPanelTab-DydxsE5d.js → useDependencyPanelTab-ImXYINm_.js} +1 -1
  84. package/dist/assets/{useInstallPackage-iX1eufdl.js → useInstallPackage-BW06eter.js} +1 -1
  85. package/dist/assets/{useNotebookActions-DfvB7RD_.js → useNotebookActions-DHt3s-ia.js} +1 -1
  86. package/dist/assets/{useRunCells-BFjFX3hz.js → useRunCells-DSJPXE-j.js} +1 -1
  87. package/dist/assets/{useSplitCell-Tqv5pPtL.js → useSplitCell-DQyMF5gd.js} +1 -1
  88. package/dist/assets/{useTheme-COhSHkCj.js → useTheme-n8Dj1zH7.js} +1 -1
  89. package/dist/assets/{vega-component-CnadTgoE.js → vega-component-IouMe13t.js} +1 -1
  90. package/dist/index.html +32 -32
  91. package/package.json +1 -1
  92. package/src/__tests__/mount.test.ts +20 -0
  93. package/src/core/edit-app.tsx +2 -2
  94. package/src/core/host/__tests__/events.test.ts +46 -0
  95. package/src/core/host/__tests__/notebook-client.test.ts +191 -0
  96. package/src/core/host/connection.ts +81 -0
  97. package/src/core/host/events.ts +60 -0
  98. package/src/core/host/notebook-client.ts +226 -0
  99. package/src/core/run-app.tsx +2 -2
  100. package/src/core/runtime/__tests__/runtime.test.ts +55 -11
  101. package/src/core/runtime/runtime.ts +14 -1
  102. package/src/core/runtime/types.ts +2 -0
  103. package/src/core/websocket/__tests__/{useMarimoKernelConnection.test.ts → connection-state.test.ts} +15 -17
  104. package/src/core/websocket/__tests__/{useWebSocket.test.ts → createConnectionTransport.test.ts} +1 -1
  105. package/src/core/websocket/__tests__/useNotebookClient.hook.test.tsx +140 -0
  106. package/src/core/websocket/__tests__/{useMarimoKernelConnection.hook.test.tsx → useNotebookSession.hook.test.tsx} +227 -133
  107. package/src/core/websocket/connection-state.ts +70 -0
  108. package/src/core/websocket/transports/__tests__/sse.test.ts +1 -4
  109. package/src/core/websocket/transports/create.ts +31 -0
  110. package/src/core/websocket/transports/transport.ts +12 -23
  111. package/src/core/websocket/types.ts +9 -39
  112. package/src/core/websocket/useNotebookClient.ts +80 -0
  113. package/src/core/websocket/{useMarimoKernelConnection.tsx → useNotebookSession.tsx} +64 -231
  114. package/src/mount.tsx +4 -0
  115. package/dist/assets/cell-link-1CynTVGQ.js +0 -1
  116. package/dist/assets/code-visibility-B-_GvwR5.js +0 -1
  117. package/dist/assets/coerce-CpE6kUdX.js +0 -1
  118. package/dist/assets/config-DX8Y2WbJ.js +0 -1
  119. package/dist/assets/feedback-button-DlqZkJwz.js +0 -1
  120. package/dist/assets/index-B3fcrmuf.js +0 -30
  121. package/dist/assets/panels-DfCmzLtT.js +0 -4
  122. package/dist/assets/run-page-Cxu1yV8Q.js +0 -1
  123. package/src/core/websocket/useWebSocket.tsx +0 -88
@@ -1,4 +0,0 @@
1
- import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{c as t,f as n,l as r,r as i,u as a}from"./useEvent-Dfcbgjhg.js";import{t as o}from"./react-DVplv7_D.js";import{$ as s,A as c,B as l,D as u,Dt as d,Et as f,Gn as p,Hr as m,I as h,Ii as g,Jn as ee,Kn as te,Mr as ne,Oo as re,Ot as ie,R as ae,So as oe,St as se,T as _,Vi as ce,Wn as le,b as v,ei as ue,g as y,h as de,l as fe,mr as pe,pr as me,qn as he}from"./cells-rA_jsZCj.js";import{t as b}from"./compiler-runtime-BrajqUja.js";import{D as ge,d as _e,w as ve}from"./config-VPSq73n8.js";import{_ as x,c as ye,g as be,i as xe,m as Se,n as Ce,o as S,p as we,r as Te,s as Ee,t as De}from"./state-z3dlofZB.js";import{g as C,t as Oe}from"./useEventListener-D9cftcHj.js";import{t as ke}from"./objects-snlMn4yk.js";import{i as w}from"./utils-B4K466FK.js";import{a as T,f as E,m as Ae,r as je,v as D}from"./session-DqoWmb7X.js";import{M as Me,T as O,_ as Ne,l as Pe,o as Fe,w as k,x as Ie}from"./config-DX8Y2WbJ.js";import{r as A}from"./state-BAJYRhmO.js";import{i as Le,o as j,r as Re}from"./state-C3oDoyFe.js";import{r as ze}from"./ErrorBoundary-B4n9EnHB.js";import{n as M,t as N}from"./cn-ldLVeaqm.js";import{t as P}from"./jsx-runtime-B74pBk57.js";import{i as F,s as Be}from"./fullscreen-B9tHcfpV.js";import{a as I,c as L,i as R,l as z,n as Ve,o as B,r as He,s as Ue}from"./use-restore-focus-BxEGwIbk.js";import{Dt as V,Ot as We,St as Ge}from"./JsonOutput-BxB0NL8w.js";import{p as Ke}from"./download-Bx55LMki.js";import{t as H}from"./tooltip-C9TuY18o.js";import{t as U}from"./button-COI-NGrx.js";import{t as W}from"./createLucideIcon-DfJ2oMlA.js";import{P as G,a as K,c as q,i as J,n as Y}from"./layout-DOpdUwym.js";import{d as qe,n as Je}from"./markdown-renderer-Q5AhbRU3.js";import{v as Ye}from"./write-secret-modal-DzKAInL2.js";import{n as Xe}from"./spinner-DyNE-o8o.js";import{c as Ze,l as Qe,s as $e}from"./readonly-python-code-CadgXgRu.js";import{s as et}from"./MarimoErrorOutput-BTy4MOzX.js";import{t as tt}from"./use-toast-Wu434mLr.js";import{i as nt}from"./strings-B2vv-ENv.js";import{t as rt}from"./requests-lt0JK8Jt.js";import{n as it}from"./useAsyncData-C7aJJz0Y.js";import{t as at}from"./RenderHTML-9bMgbYmo.js";import{t as ot}from"./package-data-dv4FBHxR.js";import{f as st}from"./useInstallPackage-iX1eufdl.js";import{a as ct}from"./errors-DCrsa1nH.js";import{s as lt}from"./react-icons.esm-D6tfmvq8.js";import{r as ut}from"./events-CbeVJ6OD.js";import{i as dt}from"./cell-link-1CynTVGQ.js";import{t as ft}from"./requests-CgSY1X4a.js";import{r as pt,s as mt,t as ht}from"./state-DxQnC_1I.js";import{t as gt}from"./ws-BXWY541V.js";import{n as _t}from"./runs-BLp5jezv.js";var vt=W(`hourglass`,[[`path`,{d:`M5 22h14`,key:`ehvnwv`}],[`path`,{d:`M5 2h14`,key:`pdyrp9`}],[`path`,{d:`M17 22v-4.172a2 2 0 0 0-.586-1.414L12 12l-4.414 4.414A2 2 0 0 0 7 17.828V22`,key:`1d314k`}],[`path`,{d:`M7 2v4.172a2 2 0 0 0 .586 1.414L12 12l4.414-4.414A2 2 0 0 0 17 6.172V2`,key:`1vvvr6`}]]),yt=W(`menu`,[[`path`,{d:`M4 5h16`,key:`1tepv9`}],[`path`,{d:`M4 12h16`,key:`1lakjw`}],[`path`,{d:`M4 19h16`,key:`1djgab`}]]),bt=W(`unlink`,[[`path`,{d:`m18.84 12.25 1.72-1.71h-.02a5.004 5.004 0 0 0-.12-7.07 5.006 5.006 0 0 0-6.95 0l-1.72 1.71`,key:`yqzxt4`}],[`path`,{d:`m5.17 11.75-1.71 1.71a5.004 5.004 0 0 0 .12 7.07 5.006 5.006 0 0 0 6.95 0l1.71-1.71`,key:`4qinb0`}],[`line`,{x1:`8`,x2:`8`,y1:`2`,y2:`5`,key:`1041cp`}],[`line`,{x1:`2`,x2:`5`,y1:`8`,y2:`8`,key:`14m1p5`}],[`line`,{x1:`16`,x2:`16`,y1:`19`,y2:`22`,key:`rzdirn`}],[`line`,{x1:`19`,x2:`22`,y1:`16`,y2:`16`,key:`ox905f`}]]),X=P(),Z=b(),Q=e(o(),1);function xt(e){let t=(0,Z.c)(3),[n,r]=(0,Q.useState)(e<=0),i,a;return t[0]===e?(i=t[1],a=t[2]):(i=()=>{if(e<=0){r(!0);return}r(!1);let t=setTimeout(()=>r(!0),e);return()=>clearTimeout(t)},a=[e],t[0]=e,t[1]=i,t[2]=a),(0,Q.useLayoutEffect)(i,a),n}var St=e=>{let{requires:t,fallback:n,delay:i,children:a}=e,o=n===void 0?null:n,s=i===void 0?0:i,c=r(t),l=xt(c?0:s);return c?a:l?o:null},Ct=e=>{let t=(0,Z.c)(10),{title:n}=e,[r,i]=(0,Q.useState)(n),[a,o]=(0,Q.useState)(!0),s,c;t[0]!==r||t[1]!==n?(s=()=>{if(n!==r){o(!1);let e=setTimeout(()=>{i(n),o(!0)},300);return()=>clearTimeout(e)}},c=[n,r],t[0]=r,t[1]=n,t[2]=s,t[3]=c):(s=t[2],c=t[3]),(0,Q.useEffect)(s,c);let l;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,X.jsx)(Xe,{className:`size-20 animate-spin text-primary`,"data-testid":`large-spinner`,strokeWidth:1}),t[4]=l):l=t[4];let u=a?`opacity-100`:`opacity-0`,d;t[5]===u?d=t[6]:(d=N(`mt-2 text-muted-foreground font-semibold text-lg transition-opacity duration-300`,u),t[5]=u,t[6]=d);let f;return t[7]!==r||t[8]!==d?(f=(0,X.jsxs)(`div`,{className:`flex flex-col h-full flex-1 items-center justify-center p-4`,children:[l,(0,X.jsx)(`div`,{className:d,children:r})]}),t[7]=r,t[8]=d,t[9]=f):f=t[9],f};function wt(e,t){return e===`edit`||e===`home`||e===`gallery`?!0:e===`present`||T(w.includeCode,`false`)||T(w.showCode,`false`)?!1:T(w.showCode,`true`)?!0:t}function Tt(e){let t=wt(e.mode,e.showAppCode),n=e.hasCells&&e.hasCachedOutputs;return{showCode:t,showCachedOutputs:n,canPaint:e.hasCells&&(t||n||e.allCellsIdle)}}var Et=n(e=>{let t=!1,n=!0;for(let r of Object.values(e(v).cellRuntime))Je(r.output)||(t=!0),r.status!==`idle`&&(n=!1);return{hasCachedOutputs:t,allCellsIdle:n}}),Dt=n(e=>e(Et).hasCachedOutputs),Ot=n(e=>e(Et).allCellsIdle),kt=n(e=>Tt({mode:e(E),showAppCode:e(A),hasCells:e(y),hasCachedOutputs:e(Dt),allCellsIdle:e(Ot)})),At=n(e=>e(kt).canPaint),jt=e=>{let t=(0,Z.c)(2),{children:n}=e;if(!Me())return n;let r;return t[0]===n?r=t[1]:(r=(0,X.jsx)(Mt,{children:n}),t[0]=n,t[1]=r),r},Mt=e=>{let t=(0,Z.c)(8),{children:n}=e,i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=[],t[0]=i):i=t[0];let{error:a}=it(Pt,i),o=r(At),s=(0,Q.useRef)(!1),c,l;if(t[1]!==o||t[2]!==a?(c=()=>{a&&o&&!s.current&&(s.current=!0,C.error(`Pyodide failed to initialize`,a),tt({title:`Failed to start the notebook runtime`,description:ct(a),variant:`danger`}))},l=[a,o],t[1]=o,t[2]=a,t[3]=c,t[4]=l):(c=t[3],l=t[4]),(0,Q.useEffect)(c,l),a&&!o)throw a;let u;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,X.jsx)(Nt,{}),t[5]=u):u=t[5];let d;return t[6]===n?d=t[7]:(d=(0,X.jsx)(St,{requires:At,fallback:u,children:n}),t[6]=n,t[7]=d),d},Nt=()=>{let e=(0,Z.c)(2),t=r(j),n=t.kind===`loading`?t.message:`Loading…`,i;return e[0]===n?i=e[1]:(i=(0,X.jsx)(Ct,{title:n}),e[0]=n,e[1]=i),i};async function Pt(){return await we.INSTANCE.initialized.promise,!0}var Ft={idle:`./favicon.ico`,success:`data:image/x-icon;base64,AAABAAEAMDAAAAEACACoDgAAFgAAACgAAAAwAAAAYAAAAAEACAAAAAAAAAkAAAAAAAAAAAAAAAEAAAABAAAAAAAAXXQAAFd3AwBWeAQAVngEAFd4AwBXeAQAVnkEAFh3AwBXdwQAVXcGAFd4BQBXeAQAWHgEAFd6AwBXeAMAVnkEAFZ5AwBXdwQAV3cFAFd4BABYeAQAV3gEAFh4BABXeAQA////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAgMEBQYYGAYFBAMCAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgcYGBgYGBgYGBgYGBgYGAcCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgJGBgYGBgYGBgYGBgYGBgYGBgYCQgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKBBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgECgAAAAAAAAAAAAAAAAAAAAAAAAAAAAsYGBgYGBgYDA0OChkZGRkKDg0MGBgYGBgYGAsAAAAAAAAAAAAAAAAAAAAAAAAAAxgYGBgYGA8QGRkZGRkZGRkZGRkZEA8YGBgYGBgDAAAAAAAAAAAAAAAAAAAAAAARGBgYGBgSChkZGRkZGRkZGRkZGRkZGRkKEhgYGBgYEQAAAAAAAAAAAAAAAAAAAAMYGBgYGBMZGRkZGRkZGRkZGRkZGRkZGRkZGRMYGBgYGAMAAAAAAAAAAAAAAAAACxgYGBgUEBkZGRkZGRkZGRkZGRkZGRkZGRkZGRkQFBgYGBgLAAAAAAAAAAAAAAAKGBgYGBQKGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZChQYGBgYCgAAAAAAAAAAAAAEGBgYGBAZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRAYGBgYBAAAAAAAAAAAAAgYGBgYExkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkTGBgYGAgAAAAAAAAAAAkYGBgSGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZEhgYGAkAAAAAAAAAAhgYGBgKGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZChgYGBgCAAAAAAAABxgYGA8ZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGQ8YGBgHAAAAAAABGBgYGBAZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRAYGBgYAQAAAAACGBgYDBkZGRkZGRkZGRkZGRkXFhYVGRkZGRkZGRkZGRkZGRkZGRkMGBgYAgAAAAADGBgYDRkZGRkZGRkZGRkZGRcYGBgYFxkZGRkZGRkZGRkZGRkZGRkNGBgYAwAAAAAEGBgYDhkZGRkZGRkZGRkZFxgYGBgYGBcZGRkZGRkZGRkZGRkZGRkOGBgYBAAAAAAFGBgYChkZGRkZGRkZGRkXGBgYGBgYGBgXGRkZGRkZGRkZGRkZGRkKGBgYBQAAAAAGGBgYGRkZGRkZGRkZGRUYGBgYGBgYGBgYFxkZGRkZGRkZGRkZGRkZGBgYBgAAAAAYGBgYGRkZGRkZGRkZGRYYGBgYFxcYGBgYGBcZGRkZGRkZGRkZGRkZGBgYGAAAAAAYGBgYGRkZGRkZGRkZGRYYGBgXGRkXGBgYGBgXGRkZGRkZGRkZGRkZGBgYGAAAAAAGGBgYGRkZGRkZGRkZGRUWFhcZGRkZFxgYGBgYFxkZGRkZGRkZGRkZGBgYBgAAAAAFGBgYChkZGRkZGRkZGRkZGRkZGRkZGRcYGBgYGBcZGRkZGRkZGRkKGBgYBQAAAAAEGBgYDhkZGRkZGRkZGRkZGRkZGRkZGRkXGBgYGBYZGRkZGRkZGRkOGBgYBAAAAAADGBgYDRkZGRkZGRkZGRkZGRkZGRkZGRkZFxgYGBYZGRkZGRkZGRkNGBgYAwAAAAACGBgYDBkZGRkZGRkZGRkZGRkZGRkZGRkZGRUWFhUZGRkZGRkZGRkMGBgYAgAAAAABGBgYGBAZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRAYGBgYAQAAAAAABxgYGA8ZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGQ8YGBgHAAAAAAAAAhgYGBgKGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZChgYGBgCAAAAAAAAAAkYGBgSGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZEhgYGAkAAAAAAAAAAAgYGBgYExkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkTGBgYGAgAAAAAAAAAAAAEGBgYGBAZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRAYGBgYBAAAAAAAAAAAAAAKGBgYGBQKGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZChQYGBgYCgAAAAAAAAAAAAAACxgYGBgUEBkZGRkZGRkZGRkZGRkZGRkZGRkZGRkQFBgYGBgLAAAAAAAAAAAAAAAAAAMYGBgYGBMZGRkZGRkZGRkZGRkZGRkZGRkZGRMYGBgYGAMAAAAAAAAAAAAAAAAAAAARGBgYGBgSChkZGRkZGRkZGRkZGRkZGRkKEhgYGBgYEQAAAAAAAAAAAAAAAAAAAAAAAxgYGBgYGA8QGRkZGRkZGRkZGRkZEA8YGBgYGBgDAAAAAAAAAAAAAAAAAAAAAAAAAAsYGBgYGBgYDA0OChkZGRkKDg0MGBgYGBgYGAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAKBBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgECgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgJGBgYGBgYGBgYGBgYGBgYGBgYCQgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgcYGBgYGBgYGBgYGBgYGAcCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAgMEBQYYGAYFBAMCAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////////AAD///////8AAP//gAH//wAA//4AAH//AAD/+AAAH/8AAP/gAAAH/wAA/8AAAAP/AAD/gAAAAf8AAP8AAAAA/wAA/gAAAAB/AAD8AAAAAD8AAPgAAAAAHwAA+AAAAAAfAADwAAAAAA8AAPAAAAAADwAA4AAAAAAHAADgAAAAAAcAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADgAAAAAAcAAOAAAAAABwAA8AAAAAAPAADwAAAAAA8AAPgAAAAAHwAA+AAAAAAfAAD8AAAAAD8AAP4AAAAAfwAA/wAAAAD/AAD/gAAAAf8AAP/AAAAD/wAA/+AAAAf/AAD/+AAAH/8AAP/+AAB//wAA//+AAf//AAD///////8AAP///////wAA`,running:`data:image/x-icon;base64,AAABAAEAMDAAAAEACACoDgAAFgAAACgAAAAwAAAAYAAAAAEACAAAAAAAAAkAAAAAAAAAAAAAAAEAAAABAAAAAAAA0YsAAMWEAwDHgwIAx4QBAMeEAgDGhAIAyIUBAMaFAwDGhAIAxoIAAMaFAgDHhAIAx4QCAMiFAwDHhAIAx4YAAMaFAgDHhQEAxoMCAMeEAgDHgwQAx4QDAMeDAgDHhAIA////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAgMEBQYYGAYFBAMCAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgcYGBgYGBgYGBgYGBgYGAcCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgJGBgYGBgYGBgYGBgYGBgYGBgYCQgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKBBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgECgAAAAAAAAAAAAAAAAAAAAAAAAAAAAsYGBgYGBgYDA0OChkZGRkKDg0MGBgYGBgYGAsAAAAAAAAAAAAAAAAAAAAAAAAAAxgYGBgYGA8QGRkZGRkZGRkZGRkZEA8YGBgYGBgDAAAAAAAAAAAAAAAAAAAAAAARGBgYGBgSChkZGRkZGRkZGRkZGRkZGRkKEhgYGBgYEQAAAAAAAAAAAAAAAAAAAAMYGBgYGBMZGRkZGRkZGRkZGRkZGRkZGRkZGRMYGBgYGAMAAAAAAAAAAAAAAAAACxgYGBgUEBkZGRkZGRkZGRkZGRkZGRkZGRkZGRkQFBgYGBgLAAAAAAAAAAAAAAAKGBgYGBQKGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZChQYGBgYCgAAAAAAAAAAAAAEGBgYGBAZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRAYGBgYBAAAAAAAAAAAAAgYGBgYExkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkTGBgYGAgAAAAAAAAAAAkYGBgSGRkZGRkZGRkZFRgWFxkZGRkZGRkZGRkZGRkZGRkZEhgYGAkAAAAAAAAAAhgYGBgKGRkZGRkZGRkZFhgYGBYVGRkZGRkZGRkZGRkZGRkZChgYGBgCAAAAAAAABxgYGA8ZGRkZGRkZGRkZGBgYGBgYFxkZGRkZGRkZGRkZGRkZGQ8YGBgHAAAAAAABGBgYGBAZGRkZGRkZGRkZGBgYGBgYGBYVGRkZGRkZGRkZGRkZGRAYGBgYAQAAAAACGBgYDBkZGRkZGRkZGRkZGBgYGBgYGBgYFxkZGRkZGRkZGRkZGRkMGBgYAgAAAAADGBgYDRkZGRkZGRkZGRkZGBgYGBgYGBgYGBYVGRkZGRkZGRkZGRkNGBgYAwAAAAAEGBgYDhkZGRkZGRkZGRkZGBgYGBUWGBgYGBgYFxkZGRkZGRkZGRkOGBgYBAAAAAAFGBgYChkZGRkZGRkZGRkZGBgYGBkZFxgYGBgYGBYVGRkZGRkZGRkKGBgYBQAAAAAGGBgYGRkZGRkZGRkZGRkZGBgYGBkZGRUWGBgYGBgYFxkZGRkZGRkZGBgYBgAAAAAYGBgYGRkZGRkZGRkZGRkZGBgYGBkZGRkZFxgYGBgYFxkZGRkZGRkZGBgYGAAAAAAYGBgYGRkZGRkZGRkZGRkZGBgYGBkZGRkZFxgYGBgYFhkZGRkZGRkZGBgYGAAAAAAGGBgYGRkZGRkZGRkZGRkZGBgYGBkZGRkXGBgYGBgYFRkZGRkZGRkZGBgYBgAAAAAFGBgYChkZGRkZGRkZGRkZGBgYGBkZFxgYGBgYGBcZGRkZGRkZGRkKGBgYBQAAAAAEGBgYDhkZGRkZGRkZGRkZGBgYGBkXGBgYGBgYFxkZGRkZGRkZGRkOGBgYBAAAAAADGBgYDRkZGRkZGRkZGRkZGBgYGBgYGBgYGBcZGRkZGRkZGRkZGRkNGBgYAwAAAAACGBgYDBkZGRkZGRkZGRkZGBgYGBgYGBgYFxkZGRkZGRkZGRkZGRkMGBgYAgAAAAABGBgYGBAZGRkZGRkZGRkZGBgYGBgYGBcZGRkZGRkZGRkZGRkZGRAYGBgYAQAAAAAABxgYGA8ZGRkZGRkZGRkZGBgYGBgYFxkZGRkZGRkZGRkZGRkZGQ8YGBgHAAAAAAAAAhgYGBgKGRkZGRkZGRkZFhgYGBcZGRkZGRkZGRkZGRkZGRkZChgYGBgCAAAAAAAAAAkYGBgSGRkZGRkZGRkZFRYWFxkZGRkZGRkZGRkZGRkZGRkZEhgYGAkAAAAAAAAAAAgYGBgYExkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkTGBgYGAgAAAAAAAAAAAAEGBgYGBAZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRAYGBgYBAAAAAAAAAAAAAAKGBgYGBQKGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZChQYGBgYCgAAAAAAAAAAAAAACxgYGBgUEBkZGRkZGRkZGRkZGRkZGRkZGRkZGRkQFBgYGBgLAAAAAAAAAAAAAAAAAAMYGBgYGBMZGRkZGRkZGRkZGRkZGRkZGRkZGRMYGBgYGAMAAAAAAAAAAAAAAAAAAAARGBgYGBgSChkZGRkZGRkZGRkZGRkZGRkKEhgYGBgYEQAAAAAAAAAAAAAAAAAAAAAAAxgYGBgYGA8QGRkZGRkZGRkZGRkZEA8YGBgYGBgDAAAAAAAAAAAAAAAAAAAAAAAAAAsYGBgYGBgYDA0OChkZGRkKDg0MGBgYGBgYGAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAKBBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgECgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgJGBgYGBgYGBgYGBgYGBgYGBgYCQgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgcYGBgYGBgYGBgYGBgYGAcCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAgMEBQYYGAYFBAMCAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////////AAD///////8AAP//gAH//wAA//4AAH//AAD/+AAAH/8AAP/gAAAH/wAA/8AAAAP/AAD/gAAAAf8AAP8AAAAA/wAA/gAAAAB/AAD8AAAAAD8AAPgAAAAAHwAA+AAAAAAfAADwAAAAAA8AAPAAAAAADwAA4AAAAAAHAADgAAAAAAcAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADgAAAAAAcAAOAAAAAABwAA8AAAAAAPAADwAAAAAA8AAPgAAAAAHwAA+AAAAAAfAAD8AAAAAD8AAP4AAAAAfwAA/wAAAAD/AAD/gAAAAf8AAP/AAAAD/wAA/+AAAAf/AAD/+AAAH/8AAP/+AAB//wAA//+AAf//AAD///////8AAP///////wAA`,error:`data:image/x-icon;base64,AAABAAEAMDAAAAEACACoDgAAFgAAACgAAAAwAAAAYAAAAAEACAAAAAAAAAkAAAAAAAAAAAAAAAEAAAABAAAAAAAALi7oACcn2wAlJdsAJibcACYm3AAmJtsAJyfdACUl3QAmJtsAKCjdACUl3AAmJtwAJyfcACYm3AAoKNcAJibcACcn3AAmJt0AJibcACUl3AAmJtwAKCjbACcn3AAmJtsAJibcAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAgMEBQYZGQYFBAMCAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgcZGRkZGRkZGRkZGRkZGQcCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgJGRkZGRkZGRkZGRkZGRkZGRkZCQgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKBBkZGRkZGRkZGRkZGRkZGRkZGRkZGRkECgAAAAAAAAAAAAAAAAAAAAAAAAAAAAsZGRkZGRkZDA0ODxoaGhoPDg0MGRkZGRkZGQsAAAAAAAAAAAAAAAAAAAAAAAAAAxkZGRkZGRARGhoaGhoaGhoaGhoaERAZGRkZGRkDAAAAAAAAAAAAAAAAAAAAAAASGRkZGRkTDxoaGhoaGhoaGhoaGhoaGhoPExkZGRkZEgAAAAAAAAAAAAAAAAAAAAMZGRkZGRQaGhoaGhoaGhoaGhoaGhoaGhoaGhQZGRkZGQMAAAAAAAAAAAAAAAAACxkZGRkVERoaGhoaGhoaGhoaGhoaGhoaGhoaGhoRFRkZGRkLAAAAAAAAAAAAAAAKGRkZGRUPGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaDxUZGRkZCgAAAAAAAAAAAAAEGRkZGREaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhEZGRkZBAAAAAAAAAAAAAgZGRkZFBoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoUGRkZGQgAAAAAAAAAAAkZGRkTGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaExkZGQkAAAAAAAAAAhkZGRkPGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaDxkZGRkCAAAAAAAABxkZGRAaGhoaGhoaGhYXFxYaGhoaGhoaGhgXFxYaGhoaGhoaGhAZGRkHAAAAAAABGRkZGREaGhoaGhoaGhcZGRkYGhoaGhoaGBkZGRcaGhoaGhoaGhEZGRkZAQAAAAACGRkZDBoaGhoaGhoaGhcZGRkZGBoaGhoYGRkZGRcaGhoaGhoaGhoMGRkZAgAAAAADGRkZDRoaGhoaGhoaGhgZGRkZGRgaGhgZGRkZGRYaGhoaGhoaGhoNGRkZAwAAAAAEGRkZDhoaGhoaGhoaGhoYGRkZGRkYGBkZGRkZGBoaGhoaGhoaGhoOGRkZBAAAAAAFGRkZDxoaGhoaGhoaGhoaGBkZGRkZGRkZGRkYGhoaGhoaGhoaGhoPGRkZBQAAAAAGGRkZGhoaGhoaGhoaGhoaGhgZGRkZGRkZGRgaGhoaGhoaGhoaGhoaGRkZBgAAAAAZGRkZGhoaGhoaGhoaGhoaGhoYGRkZGRkZGBoaGhoaGhoaGhoaGhoaGRkZGQAAAAAZGRkZGhoaGhoaGhoaGhoaGhoYGRkZGRkZGBoaGhoaGhoaGhoaGhoaGRkZGQAAAAAGGRkZGhoaGhoaGhoaGhoaGhgZGRkZGRkZGRgaGhoaGhoaGhoaGhoaGRkZBgAAAAAFGRkZDxoaGhoaGhoaGhoaGBkZGRkZGRkZGRkYGhoaGhoaGhoaGhoPGRkZBQAAAAAEGRkZDhoaGhoaGhoaGhoYGRkZGRkYGBkZGRkZGBoaGhoaGhoaGhoOGRkZBAAAAAADGRkZDRoaGhoaGhoaGhYZGRkZGRgaGhgZGRkZGRgaGhoaGhoaGhoNGRkZAwAAAAACGRkZDBoaGhoaGhoaGhcZGRkZGBoaGhoYGRkZGRcaGhoaGhoaGhoMGRkZAgAAAAABGRkZGREaGhoaGhoaGhcZGRkYGhoaGhoaGBkZGRcaGhoaGhoaGhEZGRkZAQAAAAAABxkZGRAaGhoaGhoaGhYXFxgaGhoaGhoaGhYXFxYaGhoaGhoaGhAZGRkHAAAAAAAAAhkZGRkPGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaDxkZGRkCAAAAAAAAAAkZGRkTGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaExkZGQkAAAAAAAAAAAgZGRkZFBoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoUGRkZGQgAAAAAAAAAAAAEGRkZGREaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhEZGRkZBAAAAAAAAAAAAAAKGRkZGRUPGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaDxUZGRkZCgAAAAAAAAAAAAAACxkZGRkVERoaGhoaGhoaGhoaGhoaGhoaGhoaGhoRFRkZGRkLAAAAAAAAAAAAAAAAAAMZGRkZGRQaGhoaGhoaGhoaGhoaGhoaGhoaGhQZGRkZGQMAAAAAAAAAAAAAAAAAAAASGRkZGRkTDxoaGhoaGhoaGhoaGhoaGhoPExkZGRkZEgAAAAAAAAAAAAAAAAAAAAAAAxkZGRkZGRARGhoaGhoaGhoaGhoaERAZGRkZGRkDAAAAAAAAAAAAAAAAAAAAAAAAAAsZGRkZGRkZDA0ODxoaGhoPDg0MGRkZGRkZGQsAAAAAAAAAAAAAAAAAAAAAAAAAAAAKBBkZGRkZGRkZGRkZGRkZGRkZGRkZGRkECgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgJGRkZGRkZGRkZGRkZGRkZGRkZCQgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgcZGRkZGRkZGRkZGRkZGQcCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAgMEBQYZGQYFBAMCAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////////AAD///////8AAP//gAH//wAA//4AAH//AAD/+AAAH/8AAP/gAAAH/wAA/8AAAAP/AAD/gAAAAf8AAP8AAAAA/wAA/gAAAAB/AAD8AAAAAD8AAPgAAAAAHwAA+AAAAAAfAADwAAAAAA8AAPAAAAAADwAA4AAAAAAHAADgAAAAAAcAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADgAAAAAAcAAOAAAAAABwAA8AAAAAAPAADwAAAAAA8AAPgAAAAAHwAA+AAAAAAfAAD8AAAAAD8AAP4AAAAAfwAA/wAAAAD/AAD/gAAAAf8AAP/AAAAD/wAA/+AAAAf/AAD/+AAAH/8AAP/+AAB//wAA//+AAf//AAD///////8AAP///////wAA`};async function $(e){return Ft[e]}function It(){let e=document.querySelector(`link[rel~='icon']`);if(e)return e;let t=document.createElement(`link`);return t.rel=`icon`,document.head.append(t),t}function Lt(e){if(document.visibilityState===`visible`)return;let t=async()=>{e===0?new Notification(`Execution completed`,{body:`Your notebook run completed successfully.`,icon:await $(`success`)}):new Notification(`Execution failed`,{body:`Your notebook run encountered ${e} error(s).`,icon:await $(`error`)})};!(`Notification`in window)||Notification.permission===`denied`||(Notification.permission===`granted`?t():Notification.permission==="default"&&Notification.requestPermission().then(e=>{e===`granted`&&t()}))}var Rt=e=>{let t=(0,Z.c)(11),{isRunning:n}=e,r=c(),i,a;t[0]!==r||t[1]!==n?(i=()=>{let e=It();!n&&e.href.includes(`favicon`)||(async()=>{let t;if(t=n?`running`:r.length===0?`success`:`error`,e.href=await $(t),!document.hasFocus())return;let i=setTimeout(async()=>{e.href=await $(`idle`)},3e3);return()=>clearTimeout(i)})()},a=[n,r],t[0]=r,t[1]=n,t[2]=i,t[3]=a):(i=t[2],a=t[3]),(0,Q.useEffect)(i,a);let o=G(n)??n,s,l;t[4]!==r||t[5]!==n||t[6]!==o?(s=()=>{o&&!n&&Lt(r.length)},l=[r,o,n],t[4]=r,t[5]=n,t[6]=o,t[7]=s,t[8]=l):(s=t[7],l=t[8]),(0,Q.useEffect)(s,l);let u;return t[9]===n?u=t[10]:(u=async e=>{if(!n){let e=It();e.href=await $(`idle`)}},t[9]=n,t[10]=u),Oe(window,`focus`,u),null};function zt(){let{cellIds:e,cellRuntime:t}=i.get(v),n=e.inOrderIds.find(e=>t[e]?.status===`running`);n&&dt(n,`focus`)}var Bt=e=>{let t=(0,Z.c)(18),{connection:n,isRunning:i,onReconnect:a}=e,{mode:o}=r(D),s=n.state===k.CLOSED&&(o===`read`||n.code!==O.KERNEL_STARTUP_ERROR),c=n.state===k.OPEN,l=s&&n.code===O.KERNEL_DISCONNECTED,u;t[0]===s?u=t[1]:(u=s&&(0,X.jsx)(Wt,{}),t[0]=s,t[1]=u);let d=o===`read`?`fixed`:`absolute`,f;t[2]===d?f=t[3]:(f=N(`z-50 top-4 left-4`,d),t[2]=d,t[3]=f);let p;t[4]!==c||t[5]!==i?(p=c&&i&&(0,X.jsx)(Ut,{}),t[4]=c,t[5]=i,t[6]=p):p=t[6];let m;t[7]!==l||t[8]!==s||t[9]!==a?(m=s&&(0,X.jsx)(Ht,{onReconnect:l?a:void 0}),t[7]=l,t[8]=s,t[9]=a,t[10]=m):m=t[10];let h;t[11]!==f||t[12]!==p||t[13]!==m?(h=(0,X.jsxs)(`div`,{className:f,children:[p,m]}),t[11]=f,t[12]=p,t[13]=m,t[14]=h):h=t[14];let g;return t[15]!==u||t[16]!==h?(g=(0,X.jsxs)(X.Fragment,{children:[u,h]}),t[15]=u,t[16]=h,t[17]=g):g=t[17],g},Vt=`print:hidden pointer-events-auto hover:cursor-pointer`,Ht=e=>{let t=(0,Z.c)(12),{onReconnect:n}=e,r=!n,i=r?`App disconnected`:`App disconnected — click to reconnect`,a=r?0:-1,o;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(o=N(Vt,`bg-transparent border-0 p-0`),t[0]=o):o=t[0];let s=r?`App disconnected`:`Reconnect to app`,c;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,X.jsx)(bt,{className:`w-[25px] h-[25px] text-(--red-11)`}),t[1]=c):c=t[1];let l;t[2]!==r||t[3]!==n||t[4]!==s?(l=(0,X.jsx)(`button`,{type:`button`,className:o,"aria-label":s,"data-testid":`disconnected-indicator`,onClick:n,disabled:r,children:c}),t[2]=r,t[3]=n,t[4]=s,t[5]=l):l=t[5];let u;t[6]!==a||t[7]!==l?(u=(0,X.jsx)(`span`,{tabIndex:a,children:l}),t[6]=a,t[7]=l,t[8]=u):u=t[8];let d;return t[9]!==i||t[10]!==u?(d=(0,X.jsx)(H,{content:i,children:u}),t[9]=i,t[10]=u,t[11]=d):d=t[11],d},Ut=()=>{let e=(0,Z.c)(6),t=r(_),n=t?`Scratchpad is running`:`Jump to running cell`,i=t?void 0:zt,a;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,X.jsx)(vt,{className:`running-app-icon`,size:30,strokeWidth:1}),e[0]=a):a=e[0];let o;e[1]===i?o=e[2]:(o=(0,X.jsx)(`div`,{className:Vt,"data-testid":`loading-indicator`,onClick:i,children:a}),e[1]=i,e[2]=o);let s;return e[3]!==o||e[4]!==n?(s=(0,X.jsx)(H,{content:n,side:`right`,children:o}),e[3]=o,e[4]=n,e[5]=s):s=e[5],s},Wt=()=>{let e=(0,Z.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(`div`,{className:`noise`}),(0,X.jsx)(`div`,{className:`disconnected-gradient`})]}),e[0]=t):t=e[0],t},Gt=Ve,Kt=z,qt=F(Ue),Jt=Q.forwardRef((e,t)=>{let n=(0,Z.c)(9),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let a;n[3]===r?a=n[4]:(a=N(`fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0`,r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,X.jsx)(B,{className:a,...i,ref:t}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});Jt.displayName=B.displayName;var Yt=M(`fixed z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:duration-500`,{variants:{side:{top:`inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top`,bottom:`inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom`,left:`inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm`,right:`inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm`}},defaultVariants:{side:`right`}}),Xt=Q.forwardRef((e,t)=>{let n=(0,Z.c)(15),r,i,a,o;n[0]===e?(r=n[1],i=n[2],a=n[3],o=n[4]):({side:o,className:i,children:r,...a}=e,n[0]=e,n[1]=r,n[2]=i,n[3]=a,n[4]=o);let s=o===void 0?`right`:o,c;n[5]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,X.jsx)(Jt,{}),n[5]=c):c=n[5];let l;n[6]!==i||n[7]!==s?(l=N(Yt({side:s}),i),n[6]=i,n[7]=s,n[8]=l):l=n[8];let u;n[9]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,X.jsxs)(He,{className:`absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary`,children:[(0,X.jsx)(lt,{className:`h-4 w-4`}),(0,X.jsx)(`span`,{className:`sr-only`,children:`Close`})]}),n[9]=u):u=n[9];let d;return n[10]!==r||n[11]!==a||n[12]!==t||n[13]!==l?(d=(0,X.jsx)(qt,{children:(0,X.jsxs)(Be,{children:[c,(0,X.jsxs)(R,{ref:t,className:l,...a,children:[r,u]})]})}),n[10]=r,n[11]=a,n[12]=t,n[13]=l,n[14]=d):d=n[14],d});Xt.displayName=R.displayName;var Zt=Q.forwardRef((e,t)=>{let n=(0,Z.c)(9),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let a;n[3]===r?a=n[4]:(a=N(`text-lg font-semibold text-foreground`,r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,X.jsx)(L,{ref:t,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});Zt.displayName=L.displayName;var Qt=Q.forwardRef((e,t)=>{let n=(0,Z.c)(9),r,i;n[0]===e?(r=n[1],i=n[2]):({className:r,...i}=e,n[0]=e,n[1]=r,n[2]=i);let a;n[3]===r?a=n[4]:(a=N(`text-sm text-muted-foreground`,r),n[3]=r,n[4]=a);let o;return n[5]!==i||n[6]!==t||n[7]!==a?(o=(0,X.jsx)(I,{ref:t,className:a,...i}),n[5]=i,n[6]=t,n[7]=a,n[8]=o):o=n[8],o});Qt.displayName=I.displayName;var $t=(0,Q.memo)(()=>{let e=(0,Z.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,X.jsx)(V,{name:Ge.SIDEBAR}),e[0]=t):t=e[0],t});$t.displayName=`SidebarSlot`;var en=e=>{let t=(0,Z.c)(6),{openWidth:n}=e,r;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,X.jsx)(Kt,{className:`lg:hidden`,asChild:!0,children:(0,X.jsx)(U,{variant:`ghost`,className:`bg-background`,children:(0,X.jsx)(yt,{className:`w-5 h-5`})})}),t[0]=r):r=t[0];let i;t[1]===n?i=t[2]:(i={maxWidth:n},t[1]=n,t[2]=i);let a;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,X.jsx)($t,{}),t[3]=a):a=t[3];let o;return t[4]===i?o=t[5]:(o=(0,X.jsxs)(Gt,{children:[r,(0,X.jsx)(Xt,{className:`w-full px-3 h-full flex flex-col overflow-y-auto`,style:i,side:`left`,children:a})]}),t[4]=i,t[5]=o),o},tn=e=>{let t=(0,Z.c)(7),{isOpen:n,toggle:r}=e,i=n?`rotate-0`:`rotate-180`,a;t[0]===i?a=t[1]:(a=N(`h-5 w-5 transition-transform ease-in-out duration-700`,i),t[0]=i,t[1]=a);let o;t[2]===a?o=t[3]:(o=(0,X.jsx)(Ke,{className:a}),t[2]=a,t[3]=o);let s;return t[4]!==o||t[5]!==r?(s=(0,X.jsx)(`div`,{className:`invisible lg:visible absolute top-[12px] right-[16px] z-20`,children:(0,X.jsx)(U,{onClick:r,className:`w-10 h-8`,variant:`ghost`,size:`icon`,children:o})}),t[4]=o,t[5]=r,t[6]=s):s=t[6],s},nn=e=>{let t=(0,Z.c)(11),{isOpen:n,toggle:r,width:i}=e,a=n?i:De,o;t[0]===a?o=t[1]:(o={width:a},t[0]=a,t[1]=o);let s;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(s=N(`app-sidebar auto-collapse-nav`,`top-0 left-0 z-20 h-full hidden lg:block relative transition-[width] ease-in-out duration-300`),t[2]=s):s=t[2];let c;t[3]!==n||t[4]!==r?(c=(0,X.jsx)(tn,{isOpen:n,toggle:r}),t[3]=n,t[4]=r,t[5]=c):c=t[5];let l;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,X.jsx)(`div`,{className:`relative h-full flex flex-col px-3 pb-16 pt-14 overflow-y-auto shadow-sm border-l`,children:(0,X.jsx)($t,{})}),t[6]=l):l=t[6];let u;return t[7]!==n||t[8]!==o||t[9]!==c?(u=(0,X.jsxs)(`aside`,{"data-expanded":n,style:o,className:s,children:[c,l]}),t[7]=n,t[8]=o,t[9]=c,t[10]=u):u=t[10],u},rn=e=>{let n=(0,Z.c)(15),{children:r}=e,[i,a]=t(Te),{isOpen:o,width:s}=i;if(We(Ge.SIDEBAR).length===0)return r;let c;n[0]===s?c=n[1]:(c=Ce(s),n[0]=s,n[1]=c);let l=c,u;n[2]!==a||n[3]!==o?(u=()=>a({type:`toggle`,isOpen:!o}),n[2]=a,n[3]=o,n[4]=u):u=n[4];let d;n[5]!==o||n[6]!==l||n[7]!==u?(d=(0,X.jsx)(nn,{isOpen:o,width:l,toggle:u}),n[5]=o,n[6]=l,n[7]=u,n[8]=d):d=n[8];let f;n[9]===l?f=n[10]:(f=(0,X.jsx)(`div`,{className:`absolute top-3 left-4 flex items-center z-50`,children:(0,X.jsx)(en,{openWidth:l})}),n[9]=l,n[10]=f);let p;return n[11]!==r||n[12]!==d||n[13]!==f?(p=(0,X.jsxs)(`div`,{className:`inset-0 absolute flex`,children:[d,f,r]}),n[11]=r,n[12]=d,n[13]=f,n[14]=p):p=n[14],p},an=e=>{let t=(0,Z.c)(19),{width:n,connection:r,isRunning:i,children:a,onReconnect:o}=e,s=r.state,c;t[0]===i?c=t[1]:(c=(0,X.jsx)(Rt,{isRunning:i}),t[0]=i,t[1]=c);let l;t[2]!==r||t[3]!==i||t[4]!==o?(l=(0,X.jsx)(Bt,{connection:r,isRunning:i,onReconnect:o}),t[2]=r,t[3]=i,t[4]=o,t[5]=l):l=t[5];let u=r.state===k.CLOSED&&r.code!==O.KERNEL_STARTUP_ERROR&&`disconnected`,d=n===`full`&&`config-width-full`,f=n===`columns`?`overflow-x-auto`:`overflow-x-auto sm:overflow-x-hidden`,p;t[6]!==u||t[7]!==d||t[8]!==f?(p=N(`mathjax_ignore`,u,`bg-background w-full h-full text-textColor`,`flex flex-col overflow-y-auto`,d,f,`print:height-fit`),t[6]=u,t[7]=d,t[8]=f,t[9]=p):p=t[9];let m;t[10]!==a||t[11]!==s||t[12]!==p||t[13]!==n?(m=(0,X.jsx)(jt,{children:(0,X.jsx)(rn,{children:(0,X.jsx)(`div`,{id:`App`,"data-config-width":n,"data-connection-state":s,className:p,children:a})})}),t[10]=a,t[11]=s,t[12]=p,t[13]=n,t[14]=m):m=t[14];let h;return t[15]!==c||t[16]!==l||t[17]!==m?(h=(0,X.jsxs)(X.Fragment,{children:[c,l,m]}),t[15]=c,t[16]=l,t[17]=m,t[18]=h):h=t[18],h},on=(0,Q.memo)(e=>{let t=(0,Z.c)(9),{appConfig:n,mode:i,children:a}=e,{selectedLayout:o}=Qe();if(!r(Ae)&&(i===`edit`||i===`present`&&o===`vertical`))return a;let s=i===`read`,c;t[0]!==o||t[1]!==s?(c=$e({selectedLayout:o,isReading:s,searchParams:new URLSearchParams(window.location.search)}),t[0]=o,t[1]=s,t[2]=c):c=t[2];let l=c,u;t[3]===l?u=t[4]:(u=K.find(e=>e.type===l),t[3]=l,t[4]=u);let d=u;if(!d)return a;let f;return t[5]!==n||t[6]!==i||t[7]!==d?(f=(0,X.jsx)(sn,{appConfig:n,mode:i,plugin:d}),t[5]=n,t[6]=i,t[7]=d,t[8]=f):f=t[8],f});on.displayName=`CellsRenderer`;var sn=e=>{let t=(0,Z.c)(12),{appConfig:n,mode:r,plugin:i}=e,a=Qe(),o=h(),{setCurrentLayoutData:s}=Ze(),c,l;t[0]!==a||t[1]!==o||t[2]!==i?(c=fe(o),l=J({state:a,plugin:i,cells:c}),t[0]=a,t[1]=o,t[2]=i,t[3]=c,t[4]=l):(c=t[3],l=t[4]);let u=l,d=i.Component,f;return t[5]!==d||t[6]!==n||t[7]!==c||t[8]!==u||t[9]!==r||t[10]!==s?(f=(0,X.jsx)(d,{appConfig:n,mode:r,cells:c,layout:u,setLayout:s}),t[5]=d,t[6]=n,t[7]=c,t[8]=u,t[9]=r,t[10]=s,t[11]=f):f=t[11],f},cn=class e{hasStarted=!1;static get INSTANCE(){let t=`_marimo_private_RuntimeState`;return window[t]||(window[t]=new e(S)),window[t]}_sendComponentValues;uiElementRegistry;constructor(e){this.uiElementRegistry=e}get sendComponentValues(){if(!this._sendComponentValues)throw Error(`sendComponentValues is not set`);return this._sendComponentValues}start(e){if(this.hasStarted){C.warn(`RuntimeState already started`);return}this._sendComponentValues=e,document.addEventListener(ut.TYPE,this.handleReadyEvent),this.hasStarted=!0}stop(){if(!this.hasStarted){C.warn(`RuntimeState already stopped`);return}document.removeEventListener(ut.TYPE,this.handleReadyEvent),this.hasStarted=!1}handleReadyEvent=e=>{let t=e.detail.objectId;if(!this.uiElementRegistry.has(t))return;let n=this.uiElementRegistry.lookupValue(t);n!==void 0&&this.sendComponentValues({objectIds:[t],values:[n]}).catch(e=>{C.warn(e)})}},ln=`MARIMO_TRANSPORT_EXHAUSTED`,un=class{inner;closeWrappers=new WeakMap;constructor(e){this.inner=new gt(e,void 0,{maxRetries:10,debug:!1,startClosed:!0,connectionTimeout:1e4})}get readyState(){return this.inner.readyState}reconnect(e,t){this.inner.reconnect(e,t)}close(){this.inner.close()}send(e){this.inner.send(e)}addEventListener(e,t){if(e===`close`){let e=t;if(this.closeWrappers.has(e))return;let n=t=>{this.inner.retryCount>=10?e(new CloseEvent(`close`,{code:t.code,reason:ln,wasClean:t.wasClean})):e(t)};this.closeWrappers.set(e,n),this.inner.addEventListener(`close`,n);return}this.inner.addEventListener(e,t)}removeEventListener(e,t){if(e===`close`){let e=t,n=this.closeWrappers.get(e);n&&(this.closeWrappers.delete(e),this.inner.removeEventListener(`close`,n));return}this.inner.removeEventListener(e,t)}},dn=1e4,fn=1e3,pn=1e4,mn=1.3,hn=1006,gn=class{subscriptions=new x;urlProvider;headersProvider;abortController=null;retryTimer=null;retryCount=0;userClosed=!1;state=WebSocket.CLOSED;constructor(e,t=()=>({})){this.urlProvider=e,this.headersProvider=t}get readyState(){return this.state}reconnect(e,t){this.userClosed=!1,this.retryCount=0,this.clearRetryTimer(),this.abortController?.abort(),this.connect()}close(){this.userClosed=!0,this.clearRetryTimer(),this.state=WebSocket.CLOSED,this.abortController?.abort(),this.abortController=null}send(e){C.warn(`SseTransport does not support send(); dropping message`)}addEventListener(e,t){this.subscriptions.addSubscription(e,t)}removeEventListener(e,t){this.subscriptions.removeSubscription(e,t)}connect(){this.state=WebSocket.CONNECTING,this.run()}async run(){let e=new AbortController;this.abortController=e;let t=setTimeout(()=>e.abort(),dn),n=null;try{let r=await fetch(this.urlProvider(),{headers:{...this.headersProvider(),Accept:`text/event-stream`},signal:e.signal});if(clearTimeout(t),!r.ok||r.body===null)throw Error(`Unexpected SSE response: ${r.status}`);this.state=WebSocket.OPEN,this.subscriptions.notify(`open`,new Event(`open`)),n=await this.readEvents(r.body)}catch(n){if(clearTimeout(t),this.isSuperseded(e))return;C.warn(`SSE connection failed`,n),this.subscriptions.notify(`error`,new Event(`error`))}if(this.isSuperseded(e))return;e.abort(),this.state=WebSocket.CLOSED,this.retryCount+=1;let r=this.retryCount>=10;this.subscriptions.notify(`close`,new CloseEvent(`close`,{code:n?.code??hn,reason:r?ln:n?.reason??``,wasClean:n!==null})),!(r||this.isSuperseded(e))&&this.scheduleRetry()}isSuperseded(e){return this.userClosed||this.abortController!==e}scheduleRetry(){this.clearRetryTimer(),this.state=WebSocket.CONNECTING;let e=Math.min(fn*mn**this.retryCount,pn);this.retryTimer=setTimeout(()=>{this.retryTimer=null,this.connect()},e)}clearRetryTimer(){this.retryTimer!==null&&(clearTimeout(this.retryTimer),this.retryTimer=null)}async readEvents(e){let t=e.getReader(),n=new TextDecoder,r=``,i=null,a=[],o=()=>{if(a.length===0)return i=null,null;let e=a.join(`
2
- `),t=i;return i=null,a=[],t===`close`?_n(e):(this.retryCount=0,this.subscriptions.notify(`message`,new MessageEvent(`message`,{data:e})),null)};for(;;){let{done:e,value:s}=await t.read();if(e)return null;r+=n.decode(s,{stream:!0});let c=0,l=r.indexOf(`
3
- `,c);for(;l!==-1;){let e=r.slice(c,l);if(c=l+1,l=r.indexOf(`
4
- `,c),e.endsWith(`\r`)&&(e=e.slice(0,-1)),e===``){let e=o();if(e!==null)return e;continue}if(e.startsWith(`:`))continue;let t=e.indexOf(`:`),n=t===-1?e:e.slice(0,t),s=t===-1?``:e.slice(t+1);s.startsWith(` `)&&(s=s.slice(1)),n===`data`?a.push(s):n===`event`&&(i=s)}c>0&&(r=r.slice(c))}}};function _n(e){try{let t=JSON.parse(e);return{code:typeof t.code==`number`?t.code:1e3,reason:typeof t.reason==`string`?t.reason:``}}catch{return C.warn(`Failed to parse SSE close event`,e),{code:1e3,reason:``}}}function vn(e){return e.static?be.empty():Me()?Se():e.transportType===`sse`?new gn(e.url,e.headers):new un(e.url)}function yn(e){let{onOpen:t,onMessage:n,onClose:r,onError:i,waitToConnect:a}=e,[o]=(0,Q.useState)(()=>{let a=vn(e);return a.addEventListener(`open`,t),a.addEventListener(`close`,r),a.addEventListener(`error`,i),a.addEventListener(`message`,n),a});return(0,Q.useEffect)(()=>(o.readyState===WebSocket.CLOSED&&a().then(()=>o.reconnect()).catch(e=>{C.error(`Healthy connection never made`,e),o.close()}),()=>{C.warn(`useConnectionTransport is unmounting. This likely means there is a bug.`),o.close(),o.removeEventListener(`open`,t),o.removeEventListener(`close`,r),o.removeEventListener(`error`,i),o.removeEventListener(`message`,n)}),[o]),o}function bn(e){let{codes:t,names:n,configs:r,cell_ids:i,last_executed_code:a,last_execution_time:o}=e,s=a||{},c=o||{};return t.map((e,t)=>{let a=i[t],o=s[a];return ae({id:a,code:e,edited:o?o!==e:!1,name:n[t],lastCodeRun:s[a]??null,lastExecutionTime:c[a]??null,config:r[t]})})}function xn(e,t,n){let{layout:r}=e,i=Y(r,t);return r&&r.type===i.selectedLayout&&n({layoutView:i.selectedLayout,data:i.layoutData[i.selectedLayout]}),i}function Sn(){let e=[],t=[];return S.entries.forEach((n,r)=>{e.push(r),t.push(n.value)}),{objectIds:e,values:t}}function Cn(e,t){let{existingCells:n,autoInstantiate:r,setCells:i,setLayoutData:a,setAppConfig:o,setCapabilities:s,setKernelState:c,onError:l}=t,{resumed:u,ui_values:d,app_config:f,capabilities:p,auto_instantiated:m}=e,h=n&&n.length>0,g=h&&!u?n:bn(e);i(g,xn(e,g,a));let ee=ge.safeParse(f);if(ee.success?o(ee.data):C.error(`Failed to parse app config`,ee.error),s(p),m)return;if(u){for(let[e,t]of ke.entries(d||{})){let n=e;S.set(n,t)}return}let{objectIds:te,values:ne}=Sn(),re=h?Object.fromEntries(n.map(e=>[e.id,e.code])):void 0;rt().sendInstantiate({objectIds:te,values:ne,autoRun:r,codes:re}).then(()=>{c({isInstantiated:!0,error:null})}).catch(e=>{c({isInstantiated:!1,error:e}),l(Error(`Failed to instantiate`,{cause:e}))})}function wn(e){let t=e.cell_id;S.removeElementsByCell(t),q.INSTANCE.removeForCellId(t)}function Tn(e,t){t(e),q.INSTANCE.track(e)}var En={append:e=>{let t=new URL(window.location.href);t.searchParams.append(e.key,e.value),window.history.pushState({},``,`${t.pathname}${t.search}`)},set:e=>{let t=new URL(window.location.href);Array.isArray(e.value)?(t.searchParams.delete(e.key),e.value.forEach(n=>t.searchParams.append(e.key,n))):t.searchParams.set(e.key,e.value),window.history.pushState({},``,`${t.pathname}${t.search}`)},delete:e=>{let t=new URL(window.location.href);e.value==null?t.searchParams.delete(e.key):t.searchParams.delete(e.key,e.value),window.history.pushState({},``,`${t.pathname}${t.search}`)},clear:()=>{let e=new URL(window.location.href);e.search=``,window.history.pushState({},``,`${e.pathname}${e.search}`)}};function Dn(e){switch(e.reason){case ln:return{kind:`gave-up`,status:{state:k.CLOSED,code:O.KERNEL_DISCONNECTED,reason:`kernel not found`}};case`MARIMO_NO_FILE_KEY`:case`MARIMO_NO_SESSION_ID`:case`MARIMO_NO_SESSION`:case`MARIMO_SHUTDOWN`:return{kind:`terminal`,status:{state:k.CLOSED,code:O.KERNEL_DISCONNECTED,reason:`kernel not found`},closeTransport:!0};case`MARIMO_UNAUTHORIZED`:return{kind:`terminal`,status:{state:k.CLOSED,code:O.KERNEL_DISCONNECTED,reason:`not authorized`},closeTransport:!0};case`MARIMO_KIOSK_NOT_ALLOWED`:return{kind:`terminal`,status:{state:k.CLOSED,code:O.KERNEL_DISCONNECTED,reason:`kiosk mode is not available for this session`},closeTransport:!0};case`MARIMO_KERNEL_STARTUP_ERROR`:return{kind:`terminal`,status:{state:k.CLOSED,code:O.KERNEL_STARTUP_ERROR,reason:`Failed to start kernel sandbox`},closeTransport:!0};default:e.reason&&nt(e.reason)}return{kind:`retry`,status:{state:k.CONNECTING}}}function On(){return Object.values(de().cellData).filter(e=>e.id!==oe)}function kn(e){let n=(0,Z.c)(53),i=(0,Q.useRef)(!0),{autoInstantiate:o,sessionId:c,setCells:h}=e,{showBoundary:ae}=ze(),{handleCellMessage:oe}=u(),_;n[0]===Symbol.for(`react.memo_cache_sentinel`)?(_={skipMiddleware:!0},n[0]=_):_=n[0];let v=u(_),y;n[1]===v?y=n[2]:(y=e=>{s(e.changes,v,Pn)},n[1]=v,n[2]=y);let fe=y,{addCellNotification:b}=_t(),ge=a(Le),x=a(Re),be=ve(),{setVariables:Se,setMetadata:Ce}=ue(),{addColumnPreview:we}=ce(),{addDatasets:Te,filterDatasetsFromVariables:De}=ce(),{addDataSourceConnection:Oe,filterDataSourcesFromVariables:ke}=g(),{setLayoutData:w}=Ze(),[T,E]=t(Ne),D=a(Ie),{addBanner:A}=pt(),{addMissingPackageAlert:j,updateEnvironment:M,setEnvironment:N,addStartupLog:P}=mt(),F=a(Ae),Be=a(je),I=a(et),L=a(m),R=Fe(),z=r(_e),Ve=a(ft),B=a(ht),{setNamespaces:He,filterFromVariables:Ue}=se(),V;n[3]!==A||n[4]!==b||n[5]!==we||n[6]!==Oe||n[7]!==Te||n[8]!==j||n[9]!==P||n[10]!==o||n[11]!==ke||n[12]!==De||n[13]!==Ue||n[14]!==oe||n[15]!==fe||n[16]!==be||n[17]!==I||n[18]!==Ve||n[19]!==L||n[20]!==h||n[21]!==E||n[22]!==N||n[23]!==x||n[24]!==B||n[25]!==ge||n[26]!==F||n[27]!==w||n[28]!==Ce||n[29]!==Be||n[30]!==He||n[31]!==Se||n[32]!==ae||n[33]!==M||n[34]!==D?(V=e=>{let t=re(e.data);switch(t.data.op){case`reload`:st();return;case`attachments`:I(t.data.attachments);return;case`startup-progress`:{let{phase:e}=t.data;D(t.data),E(t=>t.state===k.OPEN||t.state===k.CONNECTING&&t.phase===e?t:{state:k.CONNECTING,phase:e});return}case`kernel-ready`:{B(null),E({state:k.OPEN}),x(!!(t.data.resumed||t.data.auto_instantiated));let e=On();Cn(t.data,{autoInstantiate:o,setCells:h,setLayoutData:w,setAppConfig:be,setCapabilities:L,setKernelState:ge,onError:ae,existingCells:e}),t.data.resumed||(I([]),ie()),F(t.data.kiosk),Be(t.data.stable_session_id??null),pe(null),me();return}case`completed-run`:x(!0);return;case`execution`:return;case`interrupted`:return;case`kernel-startup-error`:B(t.data.error);return;case`send-ui-element-message`:{let e=t.data.ui_element;if(e){let n=qe(t.data);S.broadcastMessage(e,t.data.message,n)}return}case`model-lifecycle`:ye(Ee,t.data);return;case`remove-ui-elements`:wn(t.data);return;case`completion-result`:ne.resolve(t.data.completion_id,t.data);return;case`function-call-result`:xe.resolve(t.data.function_call_id,t.data);return;case`cell-op`:{Tn(t.data,oe);let e=de().cellData[t.data.cell_id];if(!e)return;b({cellNotification:t.data,code:e.code});return}case`variables`:{let e=t.data.variables.map(Nn);Se(t.data.variables.map(Mn)),De(e),ke(e),Ue(e);return}case`variable-values`:Ce(t.data.variables.map(jn));return;case`alert`:tt({title:t.data.title,description:at({html:t.data.description}),variant:t.data.variant});return;case`banner`:A(t.data);return;case`missing-package-alert`:j({...t.data,kind:`missing`});return;case`environment-operation`:t.data.source===`kernel`&&t.data.status.kind!==`running`&&ot(),M(t.data);return;case`environment-state`:N(t.data),t.data.source===`kernel`&&ot();return;case`startup-logs`:P({content:t.data.content,status:t.data.status});return;case`query-params-append`:En.append(t.data);return;case`query-params-set`:En.set(t.data);return;case`query-params-delete`:En.delete(t.data);return;case`query-params-clear`:En.clear();return;case`datasets`:Te(t.data);return;case`data-column-preview`:we(t.data);return;case`sql-table-preview`:te.resolve(t.data.request_id,t.data);return;case`sql-table-list-preview`:he.resolve(t.data.request_id,t.data);return;case`sql-schema-list-preview`:p.resolve(t.data.request_id,t.data);return;case`validate-sql-result`:ee.resolve(t.data.request_id,t.data);return;case`data-source-discovery-result`:le.resolve(t.data.request_id,t.data);return;case`secret-keys-result`:Ye.resolve(t.data.request_id,t.data);return;case`cache-info`:Ve(t.data);return;case`cache-cleared`:return;case`data-source-connections`:Oe({connections:t.data.connections.map(An)});return;case`storage-namespaces`:He(t.data);return;case`storage-entries`:d.resolve(t.data.request_id,t.data);return;case`storage-download-ready`:f.resolve(t.data.request_id,t.data);return;case`reconnected`:B(null),E({state:k.OPEN});return;case`focus-cell`:l(t.data.cell_id);return;case`active-line`:pe(t.data.line==null?null:{cellId:t.data.cell_id,line:t.data.line});return;case`notebook-document-transaction`:fe(t.data.transaction);return;case`consumer-capabilities`:F(!t.data.consumer_capabilities.edit);return;default:nt(t.data)}},n[3]=A,n[4]=b,n[5]=we,n[6]=Oe,n[7]=Te,n[8]=j,n[9]=P,n[10]=o,n[11]=ke,n[12]=De,n[13]=Ue,n[14]=oe,n[15]=fe,n[16]=be,n[17]=I,n[18]=Ve,n[19]=L,n[20]=h,n[21]=E,n[22]=N,n[23]=x,n[24]=B,n[25]=ge,n[26]=F,n[27]=w,n[28]=Ce,n[29]=Be,n[30]=He,n[31]=Se,n[32]=ae,n[33]=M,n[34]=D,n[35]=V):V=n[35];let We=V,Ge=(e,t)=>{i.current&&(i.current=!1,J.reconnect(e,t))},Ke=async()=>{if(J.readyState!==WebSocket.OPEN&&J.readyState!==WebSocket.CONNECTING){if(i.current=!0,B(null),E({state:k.CONNECTING}),!await R.reconcileFromHealth()){i.current=!1,E({state:k.CLOSED,code:O.KERNEL_DISCONNECTED,reason:`kernel not found`});return}J.reconnect()}},H;n[36]===Symbol.for(`react.memo_cache_sentinel`)?(H=Pe(),n[36]=H):H=n[36];let U;n[37]!==R||n[38]!==c||n[39]!==z?(U=()=>z===`sse`?R.getSseURL(c).toString():R.getWsURL(c).toString(),n[37]=R,n[38]=c,n[39]=z,n[40]=U):U=n[40];let W;n[41]===R?W=n[42]:(W=()=>R.headers(),n[41]=R,n[42]=W);let G;n[43]!==I||n[44]!==D?(G=async()=>{D(null),I([]),i.current=!0},n[43]=I,n[44]=D,n[45]=G):G=n[45];let K;n[46]===R?K=n[47]:(K=async()=>{Pe()||Me()||R.isSameOrigin||await R.waitForHealthy()},n[46]=R,n[47]=K);let q;n[48]===We?q=n[49]:(q=e=>{try{We(e)}catch(t){let n=t;C.error(`Failed to handle message`,e.data,n),tt({title:`Failed to handle message`,description:ct(n),variant:`danger`})}},n[48]=We,n[49]=q);let J=yn({static:H,transportType:z,url:U,headers:W,onOpen:G,waitToConnect:K,onMessage:q,onClose:e=>{C.warn(`WebSocket closed`,e.code,e.reason),I([]);let t=Dn(e);if(E(e=>{let n=t.status;return n.state===k.CLOSED&&n.code===O.KERNEL_STARTUP_ERROR&&(e.state===k.CONNECTING||e.state===k.CLOSED)?{...n,phase:e.phase}:n.state===k.CONNECTING&&(e.state===k.OPEN||e.state===k.CONNECTING&&e.phase===`reconnecting`)?{...n,phase:`reconnecting`}:n}),t.kind===`terminal`&&t.closeTransport){J.close();return}t.kind===`retry`&&Ge(e.code,e.reason)},onError:e=>{C.warn(`WebSocket error`,e),I([]),E({state:k.CLOSED,code:O.KERNEL_DISCONNECTED,reason:`kernel not found`}),Ge()}}),Y;return n[50]!==T||n[51]!==Ke?(Y={connection:T,reconnect:Ke},n[50]=T,n[51]=Ke,n[52]=Y):Y=n[52],Y}function An(e){return{...e,name:e.name}}function jn(e){return{name:e.name,dataType:e.datatype,value:e.value}}function Mn(e){return{name:e.name,declaredBy:e.declared_by,usedBy:e.used_by}}function Nn(e){return e.name}function Pn(){return de().cellIds.inOrderIds}var Fn=e=>{let t=(0,Z.c)(2),{children:n}=e,r;return t[0]===n?r=t[1]:(r=(0,X.jsx)(`div`,{"data-testid":`chrome-wrapper`,className:`flex flex-col flex-1 overflow-hidden absolute inset-0 print:relative`,children:n}),t[0]=n,t[1]=r),r};export{an as a,yt as c,on as i,kn as n,St as o,cn as r,xt as s,Fn as t};
@@ -1 +0,0 @@
1
- import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{c as t,f as n,l as r}from"./useEvent-Dfcbgjhg.js";import{t as i}from"./react-DVplv7_D.js";import{D as a,La as o,g as s,oo as c,x as l}from"./cells-rA_jsZCj.js";import{t as u}from"./compiler-runtime-BrajqUja.js";import{C as d}from"./config-VPSq73n8.js";import{r as f}from"./utils-B4K466FK.js";import{t as p}from"./session-DqoWmb7X.js";import{_ as m,l as h,p as g,w as _}from"./config-DX8Y2WbJ.js";import{t as v}from"./cn-ldLVeaqm.js";import{t as y}from"./jsx-runtime-B74pBk57.js";import{a as b,c as x,i as S,l as C,n as w,s as T,t as E}from"./alert-dialog-BaPGzeOK.js";import{I as D,It as ee}from"./JsonOutput-BxB0NL8w.js";import{n as te}from"./download-Bx55LMki.js";import{i as O,n as k,r as ne,t as re}from"./tabs-BuQlZFbt.js";import{n as A,t as j}from"./button-COI-NGrx.js";import{n as ie}from"./paths-bkIFVj8h.js";import{t as M}from"./arrow-left-BaPN-xbg.js";import{t as N}from"./copy-Djr5m5ac.js";import{a as P,i as F,n as I,o as L,r as R,t as ae}from"./panels-DfCmzLtT.js";import{t as oe}from"./house-CpsMWsLL.js";import{t as z}from"./spinner-DyNE-o8o.js";import{l as B,s as V}from"./readonly-python-code-CadgXgRu.js";import{Jt as H,Qt as U,Xt as W,Yt as G,nn as K,tn as q}from"./input-BoBxR50a.js";import{n as J}from"./copy-D8O_CYCG.js";import{t as Y}from"./use-toast-Wu434mLr.js";import{r as se}from"./requests-lt0JK8Jt.js";import{t as ce}from"./shell-Fj8a65ii.js";import{t as le}from"./share-BZW3tzEX.js";import{a as ue}from"./cell-link-1CynTVGQ.js";import{n as de,t as fe}from"./react-resizable-panels.browser.esm-Dbe0MrFr.js";import{n as pe}from"./code-visibility-B-_GvwR5.js";import{n as me,t as he}from"./marimo-icons-CqliHyTr.js";import{t as ge}from"./state-DxQnC_1I.js";var _e=e(i(),1),X=u(),Z=y(),ve=()=>{let e=(0,X.c)(25),[n,r]=t(ge);if(n===null)return null;let i;e[0]===n?i=e[1]:(i=async()=>{try{await navigator.clipboard.writeText(n),Y({title:`Copied to clipboard`,description:`Error details have been copied to your clipboard.`})}catch{Y({title:`Failed to copy`,description:`Could not copy to clipboard.`,variant:`danger`})}},e[0]=n,e[1]=i);let a=i,o;e[2]===r?o=e[3]:(o=()=>{r(null)},e[2]=r,e[3]=o);let s=o,l=ye,u;e[4]===s?u=e[5]:(u=e=>!e&&s(),e[4]=s,e[5]=u);let d;e[6]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,Z.jsxs)(x,{children:[(0,Z.jsxs)(C,{className:`flex items-center gap-2 text-destructive`,children:[(0,Z.jsx)(c,{className:`h-5 w-5`}),`Kernel Startup Failed`]}),(0,Z.jsx)(b,{children:`The kernel failed to start. This usually happens when the package manager can't install your notebook's dependencies.`})]}),e[6]=d):d=e[6];let f;e[7]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,Z.jsx)(`span`,{className:`text-sm font-medium text-muted-foreground`,children:`Error Details`}),e[7]=f):f=e[7];let p;e[8]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,Z.jsx)(N,{className:`h-3 w-3`}),e[8]=p):p=e[8];let m;e[9]===a?m=e[10]:(m=(0,Z.jsxs)(`div`,{className:`flex items-center justify-between mb-2`,children:[f,(0,Z.jsxs)(j,{variant:`outline`,size:`xs`,onClick:a,className:`flex items-center gap-1`,children:[p,`Copy`]})]}),e[9]=a,e[10]=m);let h;e[11]===n?h=e[12]:(h=(0,Z.jsx)(`pre`,{className:`bg-muted p-4 rounded-md text-sm font-mono overflow-auto max-h-80`,children:n}),e[11]=n,e[12]=h);let g;e[13]!==m||e[14]!==h?(g=(0,Z.jsxs)(`div`,{className:`my-4 overflow-hidden`,children:[m,h]}),e[13]=m,e[14]=h,e[15]=g):g=e[15];let _;e[16]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,Z.jsxs)(j,{variant:`outline`,onClick:l,className:`flex items-center gap-2`,children:[(0,Z.jsx)(oe,{className:`h-4 w-4`}),`Return to Home`]}),e[16]=_):_=e[16];let v;e[17]===s?v=e[18]:(v=(0,Z.jsxs)(T,{children:[_,(0,Z.jsx)(w,{onClick:s,children:`Dismiss`})]}),e[17]=s,e[18]=v);let y;e[19]!==v||e[20]!==g?(y=(0,Z.jsxs)(S,{className:`max-w-2xl`,children:[d,g,v]}),e[19]=v,e[20]=g,e[21]=y):y=e[21];let D;return e[22]!==y||e[23]!==u?(D=(0,Z.jsx)(E,{open:!0,onOpenChange:u,children:y}),e[22]=y,e[23]=u,e[24]=D):D=e[24],D};function ye(){let e=document.baseURI.split(`?`)[0];window.open(e,`_self`)}var be=e=>{let t=(0,X.c)(2),{reason:n}=e,r;return t[0]===n?r=t[1]:(r=(0,Z.jsx)(`div`,{className:`font-mono text-center text-base text-(--red-11)`,children:(0,Z.jsx)(`p`,{children:n})}),t[0]=n,t[1]=r),r},xe=e=>{let t=(0,X.c)(7),{connection:n,className:r,children:i}=e,a;t[0]!==n.reason||t[1]!==n.state?(a=n.state===_.CLOSED&&(0,Z.jsx)(be,{reason:n.reason}),t[0]=n.reason,t[1]=n.state,t[2]=a):a=t[2];let o;return t[3]!==i||t[4]!==r||t[5]!==a?(o=(0,Z.jsxs)(`div`,{className:r,children:[i,a]}),t[3]=i,t[4]=r,t[5]=a,t[6]=o):o=t[6],o},Q=n(e=>e(s)||!g(e(m).state)),Se=e=>{let t=(0,X.c)(22),{appConfig:n,hideHeader:i}=e,{setCells:o}=a(),{sendComponentValues:s}=se(),c;t[0]===s?c=t[1]:(c=()=>(R.INSTANCE.start(s),Ce),t[0]=s,t[1]=c);let u;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(u=[],t[2]=u):u=t[2],(0,_e.useEffect)(c,u);let d;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(d=p(),t[3]=d):d=t[3];let f;t[4]===o?f=t[5]:(f={autoInstantiate:!0,setCells:o,sessionId:d},t[4]=o,t[5]=f);let{connection:m,reconnect:h}=I(f),g=r(l),_;if(t[6]===Symbol.for(`react.memo_cache_sentinel`)){bb0:{if(typeof window>`u`){_=null;break bb0}let e=new URL(window.location.href);if(!e.searchParams.has(`file`)){_=null;break bb0}e.searchParams.delete(`file`);let t=e.searchParams.toString();_=t?`${e.pathname}?${t}`:e.pathname}t[6]=_}else _=t[6];let y=_,b;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(b=(0,Z.jsx)(ve,{}),t[7]=b):b=t[7];let x=i?`hidden`:`sm:pt-8`,S;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(S=y&&(0,Z.jsx)(`div`,{className:`flex items-center px-6 pt-4 sm:-mt-8`,children:(0,Z.jsxs)(`a`,{href:y,"aria-label":`Back to gallery`,className:v(A({variant:`text`,size:`sm`}),`gap-2 px-0 text-muted-foreground hover:text-foreground`),children:[(0,Z.jsx)(M,{className:`size-4`,"aria-hidden":!0}),(0,Z.jsx)(`span`,{children:`Back`})]})}),t[8]=S):S=t[8];let C;t[9]!==m||t[10]!==x?(C=(0,Z.jsx)(xe,{connection:m,className:x,children:S}),t[9]=m,t[10]=x,t[11]=C):C=t[11];let w;t[12]===Symbol.for(`react.memo_cache_sentinel`)?(w=(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(z,{className:`mx-auto`}),(0,Z.jsx)(`p`,{className:`text-center text-sm text-muted-foreground mt-2`,children:`Connecting...`})]}),t[12]=w):w=t[12];let T;t[13]===n?T=t[14]:(T=(0,Z.jsx)(L,{requires:Q,delay:2e3,fallback:w,children:(0,Z.jsx)(F,{appConfig:n,mode:`read`})}),t[13]=n,t[14]=T);let E;return t[15]!==n.width||t[16]!==m||t[17]!==g||t[18]!==h||t[19]!==T||t[20]!==C?(E=(0,Z.jsxs)(P,{connection:m,isRunning:g,width:n.width,onReconnect:h,children:[b,C,T]}),t[15]=n.width,t[16]=m,t[17]=g,t[18]=h,t[19]=T,t[20]=C,t[21]=E):E=t[21],E};function Ce(){R.INSTANCE.stop()}var we=()=>{let e=(0,X.c)(3),t=r(o);if(!h()||!t)return null;let n;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,Z.jsxs)(`span`,{children:[`Static`,` `,(0,Z.jsx)(`a`,{href:f.githubPage,target:`_blank`,rel:`noreferrer`,className:`text-(--sky-11) font-medium underline`,children:`marimo`}),` `,`notebook - Run or edit for full interactivity`]}),e[0]=n):n=e[0];let i;return e[1]===t?i=e[2]:(i=(0,Z.jsxs)(`div`,{className:`px-4 py-2 bg-(--sky-2) border-b border-(--sky-7) text-(--sky-11) flex justify-between items-center gap-4 print:hidden text-sm`,"data-testid":`static-notebook-banner`,children:[n,(0,Z.jsx)(`span`,{className:`shrink-0`,children:(0,Z.jsx)(Te,{code:t})})]}),e[1]=t,e[2]=i),i},Te=e=>{let t=(0,X.c)(44),{code:n}=e,r=ie.basename(ue()||`notebook.py`),[i]=d(),a=i.sharing?.molab??!0,o=Ee(window.location.href,r),s=o!==r,c=ce(o),l;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,Z.jsx)(K,{asChild:!0,children:(0,Z.jsx)(j,{"data-testid":`static-notebook-dialog-trigger`,variant:`outline`,size:`xs`,children:`Run or Edit`})}),t[0]=l):l=t[0];let u;t[1]===r?u=t[2]:(u=(0,Z.jsx)(q,{children:r}),t[1]=r,t[2]=u);let p;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,Z.jsx)(`a`,{href:f.githubPage,target:`_blank`,rel:`noreferrer`,className:`text-(--sky-11) hover:underline font-medium`,children:`marimo`}),t[3]=p):p=t[3];let m=s?`Run it`:`Download it, then run it`,h;t[4]===m?h=t[5]:(h=(0,Z.jsxs)(`p`,{children:[`This is a static`,` `,p,` `,`notebook. `,m,` `,`locally for full interactivity.`]}),t[4]=m,t[5]=h);let g;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(g=(0,Z.jsxs)(ne,{"aria-label":`Package manager`,children:[(0,Z.jsx)(O,{value:`uv`,children:`uv`}),(0,Z.jsx)(O,{value:`pip`,children:`pip`}),(0,Z.jsx)(O,{value:`conda`,children:`conda`})]}),t[6]=g):g=t[6];let _=`uvx marimo edit --sandbox ${c}`,v;t[7]===_?v=t[8]:(v=(0,Z.jsx)(k,{value:`uv`,children:(0,Z.jsx)($,{command:_})}),t[7]=_,t[8]=v);let y=`pip install marimo\nmarimo edit ${c}`,b;t[9]===y?b=t[10]:(b=(0,Z.jsx)(k,{value:`pip`,children:(0,Z.jsx)($,{command:y})}),t[9]=y,t[10]=b);let x=`conda install -c conda-forge marimo\nmarimo edit ${c}`,S;t[11]===x?S=t[12]:(S=(0,Z.jsx)(k,{value:`conda`,children:(0,Z.jsx)($,{command:x})}),t[11]=x,t[12]=S);let C;t[13]!==b||t[14]!==S||t[15]!==v?(C=(0,Z.jsxs)(re,{defaultValue:`uv`,children:[g,v,b,S]}),t[13]=b,t[14]=S,t[15]=v,t[16]=C):C=t[16];let w;t[17]!==n||t[18]!==a?(w=a&&(0,Z.jsx)(De,{code:n}),t[17]=n,t[18]=a,t[19]=w):w=t[19];let T;t[20]!==C||t[21]!==w||t[22]!==h?(T=(0,Z.jsx)(W,{asChild:!0,children:(0,Z.jsxs)(`div`,{className:`pt-3 text-left space-y-3`,children:[h,C,w]})}),t[20]=C,t[21]=w,t[22]=h,t[23]=T):T=t[23];let E;t[24]!==T||t[25]!==u?(E=(0,Z.jsxs)(U,{children:[u,T]}),t[24]=T,t[25]=u,t[26]=E):E=t[26];let D;t[27]===n?D=t[28]:(D=async()=>{await J(n),Y({title:`Copied to clipboard`})},t[27]=n,t[28]=D);let A;t[29]===Symbol.for(`react.memo_cache_sentinel`)?(A=(0,Z.jsx)(N,{className:`w-3 h-3 mr-2`}),t[29]=A):A=t[29];let M;t[30]===D?M=t[31]:(M=(0,Z.jsxs)(j,{"data-testid":`copy-static-notebook-dialog-button`,variant:`outline`,size:`sm`,onClick:D,children:[A,`Copy code`]}),t[30]=D,t[31]=M);let P;t[32]!==n||t[33]!==r?(P=()=>{te(new Blob([n],{type:`text/plain`}),r)},t[32]=n,t[33]=r,t[34]=P):P=t[34];let F;t[35]===Symbol.for(`react.memo_cache_sentinel`)?(F=(0,Z.jsx)(ee,{className:`w-3 h-3 mr-2`}),t[35]=F):F=t[35];let I;t[36]===P?I=t[37]:(I=(0,Z.jsxs)(j,{"data-testid":`download-static-notebook-dialog-button`,variant:`outline`,size:`sm`,onClick:P,children:[F,`Download`]}),t[36]=P,t[37]=I);let L;t[38]!==M||t[39]!==I?(L=(0,Z.jsxs)(`div`,{className:`flex gap-3 pt-2`,children:[M,I]}),t[38]=M,t[39]=I,t[40]=L):L=t[40];let R;return t[41]!==E||t[42]!==L?(R=(0,Z.jsxs)(H,{children:[l,(0,Z.jsxs)(G,{children:[E,L]})]}),t[41]=E,t[42]=L,t[43]=R):R=t[43],R};function Ee(e,t){let n=new URL(e);if(n.protocol!==`http:`&&n.protocol!==`https:`)return t;let r=n.pathname.endsWith(`.html`)&&n.search===``,i=n.protocol===`https:`&&(n.hostname===`marimo.app`||n.hostname===`links.marimo.app`||n.hostname===`static.marimo.app`&&n.pathname.startsWith(`/static`)||n.pathname.includes(`/notebooks/nb`));return!r&&!i?t:(n.hash=``,n.href)}var $=e=>{let t=(0,X.c)(10),{command:n}=e,r;t[0]===n?r=t[1]:(r=(0,Z.jsx)(`pre`,{className:`p-3 pr-10 font-mono text-(--sky-11) leading-relaxed whitespace-pre-wrap break-all`,children:n}),t[0]=n,t[1]=r);let i;t[2]===n?i=t[3]:(i=async()=>{await J(n),Y({title:`Command copied to clipboard`})},t[2]=n,t[3]=i);let a;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,Z.jsx)(N,{className:`w-3.5 h-3.5`}),t[4]=a):a=t[4];let o;t[5]===i?o=t[6]:(o=(0,Z.jsx)(j,{"aria-label":`Copy command`,className:`absolute right-2 top-2`,variant:`ghost`,size:`icon`,onClick:i,children:a}),t[5]=i,t[6]=o);let s;return t[7]!==r||t[8]!==o?(s=(0,Z.jsxs)(`div`,{className:`relative rounded-lg border bg-(--sky-2) border-(--sky-7)`,children:[r,o]}),t[7]=r,t[8]=o,t[9]=s):s=t[9],s},De=e=>{let t=(0,X.c)(8),{code:n}=e,r;t[0]===n?r=t[1]:(r=le({code:n,baseUrl:`${f.molab}/new`}),t[0]=n,t[1]=r);let i=r,a;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,Z.jsx)(me,{size:12,strokeWidth:1.5,className:`mr-1.5 mt-px text-(--grass-11)`}),t[2]=a):a=t[2];let o;t[3]===i?o=t[4]:(o=(0,Z.jsx)(j,{asChild:!0,variant:`outline`,size:`xs`,className:`shrink-0`,children:(0,Z.jsxs)(`a`,{href:i,target:`_blank`,rel:`noopener noreferrer`,children:[a,`Open in molab`]})}),t[3]=i,t[4]=o);let s;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,Z.jsxs)(`p`,{className:`text-sm text-(--sky-12)`,children:[`Run this notebook in `,(0,Z.jsx)(`span`,{className:`font-semibold`,children:`molab`}),`, marimo's cloud-hosted notebook platform.`]}),t[5]=s):s=t[5];let c;return t[6]===o?c=t[7]:(c=(0,Z.jsxs)(`div`,{className:`pt-3 border-t flex gap-2 items-center`,children:[o,s]}),t[6]=o,t[7]=c),c},Oe=e=>{let t=(0,X.c)(17),n=r(pe).kind,i=n===`static`||n===`wasm`,{selectedLayout:a}=B(),o;t[0]===a?o=t[1]:(o=V({selectedLayout:a,isReading:!0,searchParams:new URLSearchParams(window.location.search)}),t[0]=a,t[1]=o);let s=i&&o===`slides`,c;t[2]===s?c=t[3]:(c=!s&&(0,Z.jsx)(we,{}),t[2]=s,t[3]=c);let l;t[4]!==s||t[5]!==e.appConfig?(l=(0,Z.jsx)(Se,{appConfig:e.appConfig,hideHeader:s}),t[4]=s,t[5]=e.appConfig,t[6]=l):l=t[6];let u;t[7]!==i||t[8]!==s?(u=i&&!s&&(0,Z.jsx)(ke,{}),t[7]=i,t[8]=s,t[9]=u):u=t[9];let d;t[10]!==c||t[11]!==l||t[12]!==u?(d=(0,Z.jsxs)(fe,{children:[c,l,u]}),t[10]=c,t[11]=l,t[12]=u,t[13]=d):d=t[13];let f;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,Z.jsx)(D,{}),t[14]=f):f=t[14];let p;return t[15]===d?p=t[16]:(p=(0,Z.jsx)(ae,{children:(0,Z.jsxs)(de,{direction:`horizontal`,autoSaveId:`marimo:chrome:v1:run1`,children:[d,f]})}),t[15]=d,t[16]=p),p},ke=()=>{let e=(0,X.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,Z.jsx)(`div`,{className:`fixed bottom-0 right-0 z-50 print:hidden`,"data-testid":`watermark`,children:(0,Z.jsxs)(`a`,{href:f.githubPage,target:`_blank`,rel:`noreferrer`,className:`text-sm text-(--grass-11) font-bold tracking-wide transition-colors bg-(--grass-4) hover:bg-(--grass-5) border-t border-l border-(--grass-8) px-3 py-1 rounded-tl-md flex items-center gap-2`,children:[(0,Z.jsx)(`span`,{children:`made with marimo`}),(0,Z.jsx)(he,{className:`h-4 w-auto`})]})}),e[0]=t):t=e[0],t};export{Oe as default};
@@ -1,88 +0,0 @@
1
- /* Copyright 2026 Marimo. All rights reserved. */
2
-
3
- import { useEffect, useState } from "react";
4
- import { Logger } from "@/utils/Logger";
5
- import { createPyodideConnection } from "../wasm/bridge";
6
- import { isWasm } from "../wasm/utils";
7
- import { BasicTransport } from "./transports/basic";
8
- import { SseTransport } from "./transports/sse";
9
- import { WsTransport } from "./transports/ws";
10
- import type { IConnectionTransport } from "./transports/transport";
11
-
12
- interface UseConnectionTransportOptions {
13
- url: () => string;
14
- static: boolean;
15
- transportType: "websocket" | "sse";
16
- /** Request headers for the SSE transport (auth); unused by WebSockets. */
17
- headers: () => Record<string, string>;
18
- waitToConnect: () => Promise<void>;
19
- onOpen: (event: WebSocketEventMap["open"]) => void;
20
- onMessage: (event: WebSocketEventMap["message"]) => void;
21
- onClose: (event: WebSocketEventMap["close"]) => void;
22
- onError: (event: WebSocketEventMap["error"]) => void;
23
- }
24
-
25
- export function createConnectionTransport(
26
- options: Pick<
27
- UseConnectionTransportOptions,
28
- "url" | "static" | "transportType" | "headers"
29
- >,
30
- ): IConnectionTransport {
31
- if (options.static) {
32
- return BasicTransport.empty();
33
- }
34
- if (isWasm()) {
35
- return createPyodideConnection();
36
- }
37
- // urlProvider is passed lazily; it may change after a runtime redirect.
38
- if (options.transportType === "sse") {
39
- return new SseTransport(options.url, options.headers);
40
- }
41
- return new WsTransport(options.url);
42
- }
43
-
44
- /**
45
- * A hook for creating a connection transport with React.
46
- */
47
- export function useConnectionTransport(options: UseConnectionTransportOptions) {
48
- const { onOpen, onMessage, onClose, onError, waitToConnect } = options;
49
-
50
- // oxlint-disable-next-line react/hook-use-state
51
- const [transport] = useState<IConnectionTransport>(() => {
52
- const socket = createConnectionTransport(options);
53
-
54
- socket.addEventListener("open", onOpen);
55
- socket.addEventListener("close", onClose);
56
- socket.addEventListener("error", onError);
57
- socket.addEventListener("message", onMessage);
58
-
59
- return socket;
60
- });
61
-
62
- useEffect(() => {
63
- // If it's closed, reconnect
64
- // This starts closed, so we need to connect for the first time
65
- if (transport.readyState === WebSocket.CLOSED) {
66
- void waitToConnect()
67
- .then(() => transport.reconnect())
68
- .catch((error) => {
69
- Logger.error("Healthy connection never made", error);
70
- transport.close();
71
- });
72
- }
73
-
74
- return () => {
75
- Logger.warn(
76
- "useConnectionTransport is unmounting. This likely means there is a bug.",
77
- );
78
- transport.close();
79
- transport.removeEventListener("open", onOpen);
80
- transport.removeEventListener("close", onClose);
81
- transport.removeEventListener("error", onError);
82
- transport.removeEventListener("message", onMessage);
83
- };
84
- // oxlint-disable-next-line react-hooks/exhaustive-deps
85
- }, [transport]);
86
-
87
- return transport;
88
- }