@marimo-team/frontend 0.23.6-dev30 → 0.23.6-dev32

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 (76) hide show
  1. package/dist/assets/{CellStatus-BWdBmgXp.js → CellStatus-DXu3ucl7.js} +1 -1
  2. package/dist/assets/{JsonOutput-DyvRuemf.js → JsonOutput-J02aK2i8.js} +1 -1
  3. package/dist/assets/{MarimoErrorOutput-CTbMr92N.js → MarimoErrorOutput-IiY4RajQ.js} +1 -1
  4. package/dist/assets/{RenderHTML-BKLJDmuZ.js → RenderHTML-CZ0QfVg-.js} +1 -1
  5. package/dist/assets/{add-cell-with-ai-DMh3huz_.js → add-cell-with-ai-DIq2bBlj.js} +1 -1
  6. package/dist/assets/{add-connection-dialog-BHeJmqed.js → add-connection-dialog-Brml2tu_.js} +1 -1
  7. package/dist/assets/{agent-panel-1dKGIFrL.js → agent-panel-jsore4C9.js} +1 -1
  8. package/dist/assets/{ai-model-dropdown-B43T4OtX.js → ai-model-dropdown-ll1QMFU0.js} +1 -1
  9. package/dist/assets/{app-config-button-zkywKUHo.js → app-config-button-BhrXC9Rv.js} +1 -1
  10. package/dist/assets/{cell-editor-DeLJbSpO.js → cell-editor-CbSSobD0.js} +1 -1
  11. package/dist/assets/{cell-link-CpZw-906.js → cell-link-3OOv6O0A.js} +1 -1
  12. package/dist/assets/{cells-Wp62mkuO.js → cells-B624w_H9.js} +1 -1
  13. package/dist/assets/{chat-display-DdLRA8c9.js → chat-display-CiGYiUeC.js} +1 -1
  14. package/dist/assets/{chat-panel-BtE3Gbsz.js → chat-panel-BpXi6wLN.js} +1 -1
  15. package/dist/assets/{chat-ui-D0gV9UvE.js → chat-ui-hqB1xArH.js} +1 -1
  16. package/dist/assets/{column-preview-ChsQq9WG.js → column-preview-OXbDw0oD.js} +1 -1
  17. package/dist/assets/{command-palette-DaR28lR1.js → command-palette-CNoC1EEa.js} +1 -1
  18. package/dist/assets/{common-DUia6qYH.js → common-CUEJ0oC5.js} +1 -1
  19. package/dist/assets/{components-C4kBzZ8D.js → components-7_DKmd61.js} +1 -1
  20. package/dist/assets/{components-B6c-34E2.js → components-DgNHASCr.js} +1 -1
  21. package/dist/assets/{datasource-DA33QXqs.js → datasource-Bj6Y4avn.js} +1 -1
  22. package/dist/assets/{dependency-graph-panel-CW_F18M2.js → dependency-graph-panel-CvROuamu.js} +1 -1
  23. package/dist/assets/{documentation-panel-Bc2upDjI.js → documentation-panel-DQOJStuZ.js} +1 -1
  24. package/dist/assets/{download-DeMXY7lE.js → download-B6QfSAZf.js} +1 -1
  25. package/dist/assets/{edit-page-DW_zAyGK.js → edit-page-id422nMg.js} +6 -6
  26. package/dist/assets/{error-panel-BUdyn3Qm.js → error-panel-ggEwal7u.js} +1 -1
  27. package/dist/assets/{file-explorer-panel-CsE0pVjY.js → file-explorer-panel-_wljWuvm.js} +1 -1
  28. package/dist/assets/{file-icons-BB3Rj-wm.js → file-icons-D4rVuS1i.js} +1 -1
  29. package/dist/assets/{floating-outline-CjjOJghP.js → floating-outline-COhbcAxa.js} +1 -1
  30. package/dist/assets/{focus-Cg3dLaBY.js → focus-B4X28BCE.js} +1 -1
  31. package/dist/assets/{form-MPkf1K-U.js → form-CLvvnp1J.js} +1 -1
  32. package/dist/assets/{home-page-CSWFfl1W.js → home-page-Ct-nqlW_.js} +1 -1
  33. package/dist/assets/{hooks-CWL7vReb.js → hooks-KQ_ubW6k.js} +1 -1
  34. package/dist/assets/{html-to-image-BZTmy2-K.js → html-to-image-C4B8YBxt.js} +1 -1
  35. package/dist/assets/{index-DASUIN17.js → index-x-IUopDi.js} +5 -5
  36. package/dist/assets/{kiosk-mode-CYRe-uR-.js → kiosk-mode-D1eVr9QD.js} +1 -1
  37. package/dist/assets/{layout-BSDV2zsQ.js → layout-BUGeEeY7.js} +3 -3
  38. package/dist/assets/{logs-panel-B4Ue007a.js → logs-panel-CLx6lve0.js} +1 -1
  39. package/dist/assets/{markdown-renderer-DjjwLrVA.js → markdown-renderer-ju9oyUcG.js} +1 -1
  40. package/dist/assets/{name-cell-input-6Jz5ePv7.js → name-cell-input-NuoWsYBh.js} +1 -1
  41. package/dist/assets/{outline-panel-jSt_ihdt.js → outline-panel-CT1GOJsz.js} +1 -1
  42. package/dist/assets/{packages-panel--bk9esFB.js → packages-panel-_dRad3SR.js} +1 -1
  43. package/dist/assets/panels-ChMBmhqS.js +1 -0
  44. package/dist/assets/{process-output-DJ0w0E8U.js → process-output-DdrJ5wa5.js} +1 -1
  45. package/dist/assets/{radio-group-DxGLcDMI.js → radio-group-y3RioKfP.js} +1 -1
  46. package/dist/assets/{readonly-python-code-CANM2Z9C.js → readonly-python-code-DEZDJr2S.js} +1 -1
  47. package/dist/assets/{reveal-component-CokId0wF.js → reveal-component-D2oLiVuo.js} +1 -1
  48. package/dist/assets/run-page-B8Wkp4Pf.js +1 -0
  49. package/dist/assets/{scratchpad-panel-DQYP_LcQ.js → scratchpad-panel-CEPThmzJ.js} +1 -1
  50. package/dist/assets/{session-panel-D4iAyuL8.js → session-panel-C9IDU4Lk.js} +1 -1
  51. package/dist/assets/{snippets-panel-C_DQv440.js → snippets-panel-Dy6YyoYZ.js} +1 -1
  52. package/dist/assets/state-C9cwwKqw.js +3 -0
  53. package/dist/assets/{state-CxczBoEs.js → state-rNkOi6pv.js} +1 -1
  54. package/dist/assets/{textarea-CS5kXjyn.js → textarea-B3F_BjoD.js} +1 -1
  55. package/dist/assets/{tracing-DDRlYHms.js → tracing-CMVD83Zd.js} +1 -1
  56. package/dist/assets/{tracing-panel-Ck40sYAm.js → tracing-panel-Bt2oldyX.js} +2 -2
  57. package/dist/assets/{useCellActionButton-CWXrE9kV.js → useCellActionButton-C2rTlNjR.js} +1 -1
  58. package/dist/assets/{useDeleteCell-QZgst2RC.js → useDeleteCell-Dg0kcRv1.js} +1 -1
  59. package/dist/assets/{useDependencyPanelTab-C7jwIzJS.js → useDependencyPanelTab-BO6vMwMu.js} +1 -1
  60. package/dist/assets/{useNotebookActions-BsPckLW3.js → useNotebookActions-KZdyZZhM.js} +1 -1
  61. package/dist/assets/{useRunCells-CA51wX-c.js → useRunCells-BZHmiKaL.js} +1 -1
  62. package/dist/assets/{useSplitCell-C8vIjR4-.js → useSplitCell-DwxRK5WQ.js} +1 -1
  63. package/dist/index.html +22 -22
  64. package/package.json +1 -1
  65. package/src/components/editor/chrome/wrapper/footer-items/pyodide-status.tsx +47 -0
  66. package/src/components/editor/chrome/wrapper/footer.tsx +2 -0
  67. package/src/core/codemirror/markdown/__tests__/commands.test.ts +36 -0
  68. package/src/core/codemirror/markdown/commands.ts +4 -1
  69. package/src/core/run-app.tsx +9 -2
  70. package/src/core/wasm/PyodideLoader.tsx +54 -16
  71. package/src/core/wasm/__tests__/PyodideLoader.test.ts +72 -0
  72. package/src/core/wasm/bridge.ts +6 -2
  73. package/src/core/wasm/state.ts +3 -0
  74. package/dist/assets/panels-DsAghTc4.js +0 -1
  75. package/dist/assets/run-page-71bH-JPO.js +0 -1
  76. package/dist/assets/state-CBfVA1Zd.js +0 -3
@@ -3,13 +3,18 @@
3
3
  import { useAtomValue } from "jotai";
4
4
  import type React from "react";
5
5
  import type { PropsWithChildren } from "react";
6
+ import { useEffect, useRef } from "react";
6
7
  import { LargeSpinner } from "@/components/icons/large-spinner";
8
+ import { toast } from "@/components/ui/use-toast";
9
+ import { hasCellsAtom } from "@/core/cells/cells";
7
10
  import { showCodeInRunModeAtom } from "@/core/meta/state";
8
11
  import { store } from "@/core/state/jotai";
9
12
  import { useAsyncData } from "@/hooks/useAsyncData";
13
+ import { prettyError } from "@/utils/errors";
14
+ import { Logger } from "@/utils/Logger";
10
15
  import { hasQueryParam } from "@/utils/urls";
11
16
  import { KnownQueryParams } from "../constants";
12
- import { getInitialAppMode } from "../mode";
17
+ import { type AppMode, getInitialAppMode } from "../mode";
13
18
  import { PyodideBridge } from "./bridge";
14
19
  import { hasAnyOutputAtom, wasmInitializationAtom } from "./state";
15
20
  import { isWasm } from "./utils";
@@ -26,30 +31,44 @@ export const PyodideLoader: React.FC<PropsWithChildren> = ({ children }) => {
26
31
  };
27
32
 
28
33
  const PyodideLoaderInner: React.FC<PropsWithChildren> = ({ children }) => {
29
- // isPyodide() is constant, so this is safe
30
- const { isPending, error } = useAsyncData(async () => {
34
+ // Don't block render on Pyodide: a hydrated snapshot can paint immediately
35
+ // while Pyodide downloads in the background.
36
+ const { error } = useAsyncData(async () => {
31
37
  await PyodideBridge.INSTANCE.initialized.promise;
32
38
  return true;
33
39
  }, []);
34
40
 
41
+ const hasCells = useAtomValue(hasCellsAtom);
35
42
  const hasOutput = useAtomValue(hasAnyOutputAtom);
43
+ const nothingToShow = shouldShowSpinner({
44
+ hasCells,
45
+ hasOutput,
46
+ mode: getInitialAppMode(),
47
+ codeHidden: isCodeHidden(),
48
+ });
36
49
 
37
- if (isPending) {
38
- return <WasmSpinner />;
39
- }
50
+ const didToastErrorRef = useRef(false);
51
+ useEffect(() => {
52
+ // With snapshot content on-screen, toast instead of throwing so the
53
+ // snapshot stays readable. The ref ensures we only toast once even if
54
+ // nothingToShow toggles later.
55
+ if (error && !nothingToShow && !didToastErrorRef.current) {
56
+ didToastErrorRef.current = true;
57
+ Logger.error("Pyodide failed to initialize", error);
58
+ toast({
59
+ title: "Failed to start the notebook runtime",
60
+ description: prettyError(error),
61
+ variant: "danger",
62
+ });
63
+ }
64
+ }, [error, nothingToShow]);
40
65
 
41
- // If ALL are true:
42
- // - are in read mode
43
- // - we are not showing the code
44
- // - and there is no output
45
- // then show the spinner
46
- if (!hasOutput && getInitialAppMode() === "read" && isCodeHidden()) {
47
- return <WasmSpinner />;
66
+ if (error && nothingToShow) {
67
+ throw error;
48
68
  }
49
69
 
50
- // Propagate back up to our error boundary
51
- if (error) {
52
- throw error;
70
+ if (nothingToShow) {
71
+ return <WasmSpinner />;
53
72
  }
54
73
 
55
74
  return children;
@@ -65,6 +84,25 @@ function isCodeHidden() {
65
84
  );
66
85
  }
67
86
 
87
+ /**
88
+ * Pure predicate: should the WASM loader render a spinner instead of its
89
+ * children? We block render only when nothing user-visible would appear:
90
+ * - no cells have been hydrated (Pyodide hasn't parsed the notebook), or
91
+ * - we are in headless run mode (code hidden) with no outputs to display.
92
+ */
93
+ export function shouldShowSpinner(input: {
94
+ hasCells: boolean;
95
+ hasOutput: boolean;
96
+ mode: AppMode;
97
+ codeHidden: boolean;
98
+ }): boolean {
99
+ const { hasCells, hasOutput, mode, codeHidden } = input;
100
+ if (!hasCells) {
101
+ return true;
102
+ }
103
+ return !hasOutput && mode === "read" && codeHidden;
104
+ }
105
+
68
106
  export const WasmSpinner: React.FC<PropsWithChildren> = ({ children }) => {
69
107
  const wasmInitialization = useAtomValue(wasmInitializationAtom);
70
108
 
@@ -0,0 +1,72 @@
1
+ /* Copyright 2026 Marimo. All rights reserved. */
2
+
3
+ import { describe, expect, it } from "vitest";
4
+ import { shouldShowSpinner } from "../PyodideLoader";
5
+
6
+ describe("shouldShowSpinner", () => {
7
+ it("shows the spinner when there are no cells yet (Pyodide hasn't parsed)", () => {
8
+ expect(
9
+ shouldShowSpinner({
10
+ hasCells: false,
11
+ hasOutput: false,
12
+ mode: "read",
13
+ codeHidden: false,
14
+ }),
15
+ ).toBe(true);
16
+
17
+ expect(
18
+ shouldShowSpinner({
19
+ hasCells: false,
20
+ hasOutput: true,
21
+ mode: "edit",
22
+ codeHidden: false,
23
+ }),
24
+ ).toBe(true);
25
+ });
26
+
27
+ it("renders children once cells exist with code visible", () => {
28
+ // run mode, code visible, no outputs yet — the user can read the code
29
+ expect(
30
+ shouldShowSpinner({
31
+ hasCells: true,
32
+ hasOutput: false,
33
+ mode: "read",
34
+ codeHidden: false,
35
+ }),
36
+ ).toBe(false);
37
+ });
38
+
39
+ it("renders children once cells exist with cached outputs (snapshot case)", () => {
40
+ expect(
41
+ shouldShowSpinner({
42
+ hasCells: true,
43
+ hasOutput: true,
44
+ mode: "read",
45
+ codeHidden: true,
46
+ }),
47
+ ).toBe(false);
48
+ });
49
+
50
+ it("keeps the spinner up in headless run mode with no outputs", () => {
51
+ // read mode + code hidden + no outputs = nothing visible to render
52
+ expect(
53
+ shouldShowSpinner({
54
+ hasCells: true,
55
+ hasOutput: false,
56
+ mode: "read",
57
+ codeHidden: true,
58
+ }),
59
+ ).toBe(true);
60
+ });
61
+
62
+ it("never blocks edit mode once cells exist", () => {
63
+ expect(
64
+ shouldShowSpinner({
65
+ hasCells: true,
66
+ hasOutput: false,
67
+ mode: "edit",
68
+ codeHidden: true,
69
+ }),
70
+ ).toBe(false);
71
+ });
72
+ });
@@ -37,7 +37,7 @@ import type { IConnectionTransport } from "../websocket/transports/transport";
37
37
  import { PyodideRouter } from "./router";
38
38
  import { getWorkerRPC } from "./rpc";
39
39
  import { createShareableLink } from "./share";
40
- import { wasmInitializationAtom } from "./state";
40
+ import { wasmInitializationAtom, wasmInitStatusAtom } from "./state";
41
41
  import { fallbackFileStore, notebookFileStore } from "./store";
42
42
  import { isWasm } from "./utils";
43
43
  import type { SaveWorkerSchema } from "./worker/save-worker";
@@ -119,13 +119,15 @@ export class PyodideBridge implements RunRequests, EditRequests {
119
119
  // By initializing after, we get hits on cached network requests
120
120
  this.saveRpc = this.getSaveWorker();
121
121
  this.setInterruptBuffer();
122
+ store.set(wasmInitStatusAtom, "ready");
122
123
  this.initialized.resolve();
123
124
  });
124
125
  this.rpc.addMessageListener("initializingMessage", ({ message }) => {
125
126
  store.set(wasmInitializationAtom, message);
126
127
  });
127
128
  this.rpc.addMessageListener("initializedError", ({ error }) => {
128
- // If already resolved, show a toast
129
+ // If already initialized, surface as a toast and leave the deferred /
130
+ // init status alone — the worker is healthy, this is a runtime error.
129
131
  if (this.initialized.status === "resolved") {
130
132
  Logger.error(error);
131
133
  toast({
@@ -133,7 +135,9 @@ export class PyodideBridge implements RunRequests, EditRequests {
133
135
  description: error,
134
136
  variant: "danger",
135
137
  });
138
+ return;
136
139
  }
140
+ store.set(wasmInitStatusAtom, "error");
137
141
  this.initialized.reject(new Error(error));
138
142
  });
139
143
  this.rpc.addMessageListener("kernelMessage", ({ message }) => {
@@ -5,6 +5,9 @@ import { isOutputEmpty } from "../cells/outputs";
5
5
 
6
6
  export const wasmInitializationAtom = atom<string>("Initializing...");
7
7
 
8
+ export type WasmInitStatus = "loading" | "ready" | "error";
9
+ export const wasmInitStatusAtom = atom<WasmInitStatus>("loading");
10
+
8
11
  export const hasAnyOutputAtom = atom<boolean>((get) => {
9
12
  const notebook = get(notebookAtom);
10
13
  const runtimeStates = Object.values(notebook.cellRuntime);
@@ -1 +0,0 @@
1
- var VA=Object.defineProperty;var qA=(a,A,e)=>A in a?VA(a,A,{enumerable:!0,configurable:!0,writable:!0,value:e}):a[A]=e;var nA=(a,A,e)=>qA(a,typeof A!="symbol"?A+"":A,e);import{s as uA}from"./chunk-LvLJmgfZ.js";import{d as S,i as mA,l as YA,u as C}from"./useEvent-D91BmmQi.js";import{t as WA}from"./react-Bj1aDYRI.js";import{Cn as XA,Dr as JA,E as fA,F as zA,Gt as $A,In as Ae,Kt as ee,L as ae,Li as te,Mr as pA,T as Ge,Ut as oe,Wt as se,b as re,h as kA,it as ne,ji as ke,k as ie,l as Re,lt as le,ot as xA,rt as Ze,vn as ce,z as ge}from"./cells-Wp62mkuO.js";import{t as d}from"./compiler-runtime-B3qBwwSJ.js";import{S as he,_ as de,b as Be,c as ue,h as me,i as Ye,m as fe,n as pe,o as Q,r as xe,s as we,t as De,v as ve,y as Ee}from"./state-CBfVA1Zd.js";import{_ as D,d as wA,t as ye}from"./useEventListener-BR0C1MaI.js";import{C as Ce,b as be}from"./utils-BrXijSdZ.js";import{r as iA}from"./constants-DMpttj8Q.js";import{C as P,T as RA,d as Me,l as DA,o as Ne,v as _e,w as p}from"./config-B2jNjodW.js";import{n as je,o as Fe}from"./switch-DZyZgphf.js";import{n as Se}from"./ErrorBoundary-DzYV_VeY.js";import{n as Qe,t as Y}from"./cn-DCUzRj2J.js";import{t as Pe}from"./jsx-runtime-BqBOg78p.js";import{a as Le,n as Oe}from"./fullscreen-BDxedMYP.js";import{_ as Te,f as Ie,g as Ke,h as vA,m as EA,p as yA,v as CA,y as He}from"./alert-dialog-BGBdrcqJ.js";import{dt as Ue,ft as Ve,st as bA}from"./JsonOutput-DyvRuemf.js";import{h as qe}from"./download-DeMXY7lE.js";import{t as lA}from"./tooltip-Gcwqb_SK.js";import{t as ZA}from"./button-D9nb17Rw.js";import{t as We}from"./createReducer-1ePoj7v6.js";import{i as Xe}from"./strings-md4mFbOQ.js";import{t as Je}from"./requests-DIwGYs0l.js";import{t as J}from"./createLucideIcon-D5guW7EU.js";import{N as ze,P as MA,a as $e,i as NA,n as Aa,o as ea,s as aa}from"./layout-BSDV2zsQ.js";import{o as ta,r as Ga,s as oa}from"./state-B34hXjp9.js";import{c as sa}from"./markdown-renderer-DjjwLrVA.js";import{n as ra}from"./spinner-Bhir8k53.js";import{i as na,n as ka}from"./readonly-python-code-CANM2Z9C.js";import{t as ia}from"./uuid-DercMavo.js";import{t as cA}from"./use-toast-T0_cQDma.js";import{i as Ra}from"./session-VtovaFBS.js";import{t as la}from"./RenderHTML-BKLJDmuZ.js";import{r as _A}from"./share-DIVpiHPe.js";import{r as jA}from"./errors-TZBmrJmc.js";import{s as Za}from"./react-icons.esm-D9xfKaPZ.js";import{r as FA}from"./events-BRAWQiYK.js";import{i as ca}from"./cell-link-CpZw-906.js";import{t as ga}from"./error-banner-C6aBa98y.js";import{n as ha}from"./useAsyncData-BFC6lWG9.js";import{t as da}from"./requests-BqcqF00P.js";import{t as Ba}from"./request-registry-BwzANGxx.js";import{t as ua}from"./ws-CtTwmdal.js";import{n as ma}from"./types-z6Sk3JCV.js";import{n as Ya}from"./runs-5odJFrfi.js";var fa=J("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"}]]),SA=J("menu",[["path",{d:"M4 5h16",key:"1tepv9"}],["path",{d:"M4 12h16",key:"1lakjw"}],["path",{d:"M4 19h16",key:"1djgab"}]]),pa=J("square-arrow-right",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M8 12h8",key:"1wcyev"}],["path",{d:"m12 16 4-4-4-4",key:"1i9zcv"}]]),xa=J("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"}]]),wa=d(),n=uA(Pe(),1);const Da=a=>{let A=(0,wa.c)(10),{reason:e,canTakeover:t}=a,o=t===void 0?!1:t,G=va;if(o){let k;A[0]===Symbol.for("react.memo_cache_sentinel")?(k=(0,n.jsx)("div",{className:"flex justify-between",children:(0,n.jsx)("span",{className:"font-bold text-xl flex items-center mb-2",children:"Notebook already connected"})}),A[0]=k):k=A[0];let r;A[1]===e?r=A[2]:(r=(0,n.jsx)("span",{children:e}),A[1]=e,A[2]=r);let i;A[3]===o?i=A[4]:(i=o&&(0,n.jsxs)(ZA,{onClick:G,variant:"outline","data-testid":"takeover-button",className:"shrink-0",children:[(0,n.jsx)(pa,{className:"w-4 h-4 mr-2"}),"Take over session"]}),A[3]=o,A[4]=i);let R;return A[5]!==r||A[6]!==i?(R=(0,n.jsx)("div",{className:"flex justify-center",children:(0,n.jsxs)(ga,{kind:"info",className:"mt-10 flex flex-col rounded p-3 max-w-[800px] mx-4",children:[k,(0,n.jsxs)("div",{className:"flex justify-between items-end text-base gap-20",children:[r,i]})]})}),A[5]=r,A[6]=i,A[7]=R):R=A[7],R}let s;return A[8]===e?s=A[9]:(s=(0,n.jsx)("div",{className:"font-mono text-center text-base text-(--red-11)",children:(0,n.jsx)("p",{children:e})}),A[8]=e,A[9]=s),s};async function va(){try{let a=new URL(window.location.href).searchParams;await je.post(`/kernel/takeover?${a.toString()}`,{}),_A()}catch(a){cA({title:"Failed to take over session",description:jA(a),variant:"danger"})}}var Ea=d(),u=uA(WA(),1);const ya=a=>{let A=(0,Ea.c)(8),{connection:e,className:t,children:o}=a,G;A[0]!==e.canTakeover||A[1]!==e.reason||A[2]!==e.state?(G=e.state===p.CLOSED&&(0,n.jsx)(Da,{reason:e.reason,canTakeover:e.canTakeover}),A[0]=e.canTakeover,A[1]=e.reason,A[2]=e.state,A[3]=G):G=A[3];let s;return A[4]!==o||A[5]!==t||A[6]!==G?(s=(0,n.jsxs)("div",{className:t,children:[o,G]}),A[4]=o,A[5]=t,A[6]=G,A[7]=s):s=A[7],s};var Ca=d();const ba=a=>{let A=(0,Ca.c)(10),{title:e}=a,[t,o]=(0,u.useState)(e),[G,s]=(0,u.useState)(!0),k,r;A[0]!==t||A[1]!==e?(k=()=>{if(e!==t){s(!1);let g=setTimeout(()=>{o(e),s(!0)},300);return()=>clearTimeout(g)}},r=[e,t],A[0]=t,A[1]=e,A[2]=k,A[3]=r):(k=A[2],r=A[3]),(0,u.useEffect)(k,r);let i;A[4]===Symbol.for("react.memo_cache_sentinel")?(i=(0,n.jsx)(ra,{className:"size-20 animate-spin text-primary","data-testid":"large-spinner",strokeWidth:1}),A[4]=i):i=A[4];let R=G?"opacity-100":"opacity-0",l;A[5]===R?l=A[6]:(l=Y("mt-2 text-muted-foreground font-semibold text-lg transition-opacity duration-300",R),A[5]=R,A[6]=l);let c;return A[7]!==t||A[8]!==l?(c=(0,n.jsxs)("div",{className:"flex flex-col h-full flex-1 items-center justify-center p-4",children:[i,(0,n.jsx)("div",{className:l,children:t})]}),A[7]=t,A[8]=l,A[9]=c):c=A[9],c};var gA=d();const Ma=a=>{let A=(0,gA.c)(2),{children:e}=a;if(!RA())return e;let t;return A[0]===e?t=A[1]:(t=(0,n.jsx)(Na,{children:e}),A[0]=e,A[1]=t),t};var Na=a=>{let A=(0,gA.c)(3),{children:e}=a,t;A[0]===Symbol.for("react.memo_cache_sentinel")?(t=[],A[0]=t):t=A[0];let{isPending:o,error:G}=ha(ja,t),s=C(de);if(o){let k;return A[1]===Symbol.for("react.memo_cache_sentinel")?(k=(0,n.jsx)(QA,{}),A[1]=k):k=A[1],k}if(!s&&ne()==="read"&&_a()){let k;return A[2]===Symbol.for("react.memo_cache_sentinel")?(k=(0,n.jsx)(QA,{}),A[2]=k):k=A[2],k}if(G)throw G;return e};function _a(){return Ra(iA.showCode,"false")||!mA.get(Fe)}const QA=a=>{let A=(0,gA.c)(2),e=C(ve),t;return A[0]===e?t=A[1]:(t=(0,n.jsx)(ba,{title:e}),A[0]=e,A[1]=t),t};async function ja(){return await fe.INSTANCE.initialized.promise,!0}var Fa={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 L(a){return Fa[a]}function Sa(a){if(document.visibilityState==="visible")return;let A=async()=>{a===0?new Notification("Execution completed",{body:"Your notebook run completed successfully.",icon:await L("success")}):new Notification("Execution failed",{body:`Your notebook run encountered ${a} error(s).`,icon:await L("error")})};!("Notification"in window)||Notification.permission==="denied"||(Notification.permission==="granted"?A():Notification.permission==="default"&&Notification.requestPermission().then(e=>{e==="granted"&&A()}))}const Qa=a=>{let{isRunning:A}=a,e=ie(),t=document.querySelector("link[rel~='icon']");t||(t=document.createElement("link"),t.rel="icon",document.getElementsByTagName("head")[0].append(t)),(0,u.useEffect)(()=>{!A&&t.href.includes("favicon")||(async()=>{let G;if(G=A?"running":e.length===0?"success":"error",t.href=await L(G),!document.hasFocus())return;let s=setTimeout(async()=>{t.href=await L("idle")},3e3);return()=>clearTimeout(s)})()},[A,e,t]);let o=ze(A)??A;return(0,u.useEffect)(()=>{o&&!A&&Sa(e.length)},[e,o,A]),ye(window,"focus",async G=>{A||(t.href=await L("idle"))}),null};function Pa(){let{cellRuntime:a}=mA.get(re),A=wA.entries(a).find(([e,t])=>t.status==="running");A&&ca(A[0],"focus")}var O=d();const La=a=>{let A=(0,O.c)(22),{connection:e,isRunning:t}=a,{mode:o}=C(le),G=e.state===p.CLOSED,s=e.state===p.OPEN,k;A[0]!==e.canTakeover||A[1]!==G?(k=G&&!e.canTakeover&&(0,n.jsx)(Ka,{}),A[0]=e.canTakeover,A[1]=G,A[2]=k):k=A[2];let r=o==="read"?"fixed":"absolute",i;A[3]===r?i=A[4]:(i=Y("z-50 top-4 left-4",r),A[3]=r,A[4]=i);let R;A[5]!==s||A[6]!==t?(R=s&&t&&(0,n.jsx)(Ia,{}),A[5]=s,A[6]=t,A[7]=R):R=A[7];let l;A[8]!==e.canTakeover||A[9]!==G?(l=G&&!e.canTakeover&&(0,n.jsx)(Oa,{}),A[8]=e.canTakeover,A[9]=G,A[10]=l):l=A[10];let c;A[11]!==e.canTakeover||A[12]!==G?(c=G&&e.canTakeover&&(0,n.jsx)(Ta,{}),A[11]=e.canTakeover,A[12]=G,A[13]=c):c=A[13];let g;A[14]!==i||A[15]!==R||A[16]!==l||A[17]!==c?(g=(0,n.jsxs)("div",{className:i,children:[R,l,c]}),A[14]=i,A[15]=R,A[16]=l,A[17]=c,A[18]=g):g=A[18];let B;return A[19]!==k||A[20]!==g?(B=(0,n.jsxs)(n.Fragment,{children:[k,g]}),A[19]=k,A[20]=g,A[21]=B):B=A[21],B};var hA="print:hidden pointer-events-auto hover:cursor-pointer",Oa=()=>{let a=(0,O.c)(1),A;return a[0]===Symbol.for("react.memo_cache_sentinel")?(A=(0,n.jsx)(lA,{content:"App disconnected",children:(0,n.jsx)("div",{className:hA,children:(0,n.jsx)(xa,{className:"w-[25px] h-[25px] text-(--red-11)"})})}),a[0]=A):A=a[0],A},Ta=()=>{let a=(0,O.c)(1),A;return a[0]===Symbol.for("react.memo_cache_sentinel")?(A=(0,n.jsx)(lA,{content:"Notebook locked",children:(0,n.jsx)("div",{className:hA,children:(0,n.jsx)(na,{className:"w-[25px] h-[25px] text-(--blue-11)"})})}),a[0]=A):A=a[0],A},Ia=()=>{let a=(0,O.c)(6),A=C(Ge),e=A?"Scratchpad is running":"Jump to running cell",t=A?void 0:Pa,o;a[0]===Symbol.for("react.memo_cache_sentinel")?(o=(0,n.jsx)(fa,{className:"running-app-icon",size:30,strokeWidth:1}),a[0]=o):o=a[0];let G;a[1]===t?G=a[2]:(G=(0,n.jsx)("div",{className:hA,"data-testid":"loading-indicator",onClick:t,children:o}),a[1]=t,a[2]=G);let s;return a[3]!==G||a[4]!==e?(s=(0,n.jsx)(lA,{content:e,side:"right",children:G}),a[3]=G,a[4]=e,a[5]=s):s=a[5],s},Ka=()=>{let a=(0,O.c)(1),A;return a[0]===Symbol.for("react.memo_cache_sentinel")?(A=(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{className:"noise"}),(0,n.jsx)("div",{className:"disconnected-gradient"})]}),a[0]=A):A=a[0],A},b=d(),Ha=Te,Ua=He,Va=Oe(Ke),PA=u.forwardRef((a,A)=>{let e=(0,b.c)(9),t,o;e[0]===a?(t=e[1],o=e[2]):({className:t,...o}=a,e[0]=a,e[1]=t,e[2]=o);let G;e[3]===t?G=e[4]:(G=Y("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",t),e[3]=t,e[4]=G);let s;return e[5]!==o||e[6]!==A||e[7]!==G?(s=(0,n.jsx)(vA,{className:G,...o,ref:A}),e[5]=o,e[6]=A,e[7]=G,e[8]=s):s=e[8],s});PA.displayName=vA.displayName;var qa=Qe("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"}}),LA=u.forwardRef((a,A)=>{let e=(0,b.c)(15),t,o,G,s;e[0]===a?(t=e[1],o=e[2],G=e[3],s=e[4]):({side:s,className:o,children:t,...G}=a,e[0]=a,e[1]=t,e[2]=o,e[3]=G,e[4]=s);let k=s===void 0?"right":s,r;e[5]===Symbol.for("react.memo_cache_sentinel")?(r=(0,n.jsx)(PA,{}),e[5]=r):r=e[5];let i;e[6]!==o||e[7]!==k?(i=Y(qa({side:k}),o),e[6]=o,e[7]=k,e[8]=i):i=e[8];let R;e[9]===Symbol.for("react.memo_cache_sentinel")?(R=(0,n.jsxs)(Ie,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-hidden focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary",children:[(0,n.jsx)(Za,{className:"h-4 w-4"}),(0,n.jsx)("span",{className:"sr-only",children:"Close"})]}),e[9]=R):R=e[9];let l;return e[10]!==t||e[11]!==G||e[12]!==A||e[13]!==i?(l=(0,n.jsx)(Va,{children:(0,n.jsxs)(Le,{children:[r,(0,n.jsxs)(yA,{ref:A,className:i,...G,children:[t,R]})]})}),e[10]=t,e[11]=G,e[12]=A,e[13]=i,e[14]=l):l=e[14],l});LA.displayName=yA.displayName;var Wa=a=>{let A=(0,b.c)(8),e,t;A[0]===a?(e=A[1],t=A[2]):({className:e,...t}=a,A[0]=a,A[1]=e,A[2]=t);let o;A[3]===e?o=A[4]:(o=Y("flex flex-col space-y-2 text-center sm:text-left",e),A[3]=e,A[4]=o);let G;return A[5]!==t||A[6]!==o?(G=(0,n.jsx)("div",{className:o,...t}),A[5]=t,A[6]=o,A[7]=G):G=A[7],G};Wa.displayName="SheetHeader";var Xa=a=>{let A=(0,b.c)(8),e,t;A[0]===a?(e=A[1],t=A[2]):({className:e,...t}=a,A[0]=a,A[1]=e,A[2]=t);let o;A[3]===e?o=A[4]:(o=Y("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",e),A[3]=e,A[4]=o);let G;return A[5]!==t||A[6]!==o?(G=(0,n.jsx)("div",{className:o,...t}),A[5]=t,A[6]=o,A[7]=G):G=A[7],G};Xa.displayName="SheetFooter";var Ja=u.forwardRef((a,A)=>{let e=(0,b.c)(9),t,o;e[0]===a?(t=e[1],o=e[2]):({className:t,...o}=a,e[0]=a,e[1]=t,e[2]=o);let G;e[3]===t?G=e[4]:(G=Y("text-lg font-semibold text-foreground",t),e[3]=t,e[4]=G);let s;return e[5]!==o||e[6]!==A||e[7]!==G?(s=(0,n.jsx)(CA,{ref:A,className:G,...o}),e[5]=o,e[6]=A,e[7]=G,e[8]=s):s=e[8],s});Ja.displayName=CA.displayName;var za=u.forwardRef((a,A)=>{let e=(0,b.c)(9),t,o;e[0]===a?(t=e[1],o=e[2]):({className:t,...o}=a,e[0]=a,e[1]=t,e[2]=o);let G;e[3]===t?G=e[4]:(G=Y("text-sm text-muted-foreground",t),e[3]=t,e[4]=G);let s;return e[5]!==o||e[6]!==A||e[7]!==G?(s=(0,n.jsx)(EA,{ref:A,className:G,...o}),e[5]=o,e[6]=A,e[7]=G,e[8]=s):s=e[8],s});za.displayName=EA.displayName;var $a=d();const dA=(0,u.memo)(()=>{let a=(0,$a.c)(1),A;return a[0]===Symbol.for("react.memo_cache_sentinel")?(A=(0,n.jsx)(Ue,{name:bA.SIDEBAR}),a[0]=A):A=a[0],A});dA.displayName="SidebarSlot";var At=d();const et=a=>{let A=(0,At.c)(6),{openWidth:e}=a,t;A[0]===Symbol.for("react.memo_cache_sentinel")?(t=(0,n.jsx)(Ua,{className:"lg:hidden",asChild:!0,children:(0,n.jsx)(ZA,{variant:"ghost",className:"bg-background",children:(0,n.jsx)(SA,{className:"w-5 h-5"})})}),A[0]=t):t=A[0];let o;A[1]===e?o=A[2]:(o={maxWidth:e},A[1]=e,A[2]=o);let G;A[3]===Symbol.for("react.memo_cache_sentinel")?(G=(0,n.jsx)(dA,{}),A[3]=G):G=A[3];let s;return A[4]===o?s=A[5]:(s=(0,n.jsxs)(Ha,{children:[t,(0,n.jsx)(LA,{className:"w-full px-3 h-full flex flex-col overflow-y-auto",style:o,side:"left",children:G})]}),A[4]=o,A[5]=s),s};var at=d();const tt=a=>{let A=(0,at.c)(7),{isOpen:e,toggle:t}=a,o=e?"rotate-0":"rotate-180",G;A[0]===o?G=A[1]:(G=Y("h-5 w-5 transition-transform ease-in-out duration-700",o),A[0]=o,A[1]=G);let s;A[2]===G?s=A[3]:(s=(0,n.jsx)(qe,{className:G}),A[2]=G,A[3]=s);let k;return A[4]!==s||A[5]!==t?(k=(0,n.jsx)("div",{className:"invisible lg:visible absolute top-[12px] right-[16px] z-20",children:(0,n.jsx)(ZA,{onClick:t,className:"w-10 h-8",variant:"ghost",size:"icon",children:s})}),A[4]=s,A[5]=t,A[6]=k):k=A[6],k};var Gt=d();const ot=a=>{let A=(0,Gt.c)(11),{isOpen:e,toggle:t,width:o}=a,G=e?o:De,s;A[0]===G?s=A[1]:(s={width:G},A[0]=G,A[1]=s);let k;A[2]===Symbol.for("react.memo_cache_sentinel")?(k=Y("app-sidebar auto-collapse-nav","top-0 left-0 z-20 h-full hidden lg:block relative transition-[width] ease-in-out duration-300"),A[2]=k):k=A[2];let r;A[3]!==e||A[4]!==t?(r=(0,n.jsx)(tt,{isOpen:e,toggle:t}),A[3]=e,A[4]=t,A[5]=r):r=A[5];let i;A[6]===Symbol.for("react.memo_cache_sentinel")?(i=(0,n.jsx)("div",{className:"relative h-full flex flex-col px-3 pb-16 pt-14 overflow-y-auto shadow-sm border-l",children:(0,n.jsx)(dA,{})}),A[6]=i):i=A[6];let R;return A[7]!==e||A[8]!==s||A[9]!==r?(R=(0,n.jsxs)("aside",{"data-expanded":e,style:s,className:k,children:[r,i]}),A[7]=e,A[8]=s,A[9]=r,A[10]=R):R=A[10],R};var st=d();const rt=a=>{let A=(0,st.c)(15),{children:e}=a,[t,o]=YA(xe),{isOpen:G,width:s}=t;if(Ve(bA.SIDEBAR).length===0)return e;let k;A[0]===s?k=A[1]:(k=pe(s),A[0]=s,A[1]=k);let r=k,i;A[2]!==o||A[3]!==G?(i=()=>o({type:"toggle",isOpen:!G}),A[2]=o,A[3]=G,A[4]=i):i=A[4];let R;A[5]!==G||A[6]!==r||A[7]!==i?(R=(0,n.jsx)(ot,{isOpen:G,width:r,toggle:i}),A[5]=G,A[6]=r,A[7]=i,A[8]=R):R=A[8];let l;A[9]===r?l=A[10]:(l=(0,n.jsx)("div",{className:"absolute top-3 left-4 flex items-center z-50",children:(0,n.jsx)(et,{openWidth:r})}),A[9]=r,A[10]=l);let c;return A[11]!==e||A[12]!==R||A[13]!==l?(c=(0,n.jsxs)("div",{className:"inset-0 absolute flex",children:[R,l,e]}),A[11]=e,A[12]=R,A[13]=l,A[14]=c):c=A[14],c};var nt=d();const kt=a=>{let A=(0,nt.c)(17),{width:e,connection:t,isRunning:o,children:G}=a,s=t.state,k;A[0]===o?k=A[1]:(k=(0,n.jsx)(Qa,{isRunning:o}),A[0]=o,A[1]=k);let r;A[2]!==t||A[3]!==o?(r=(0,n.jsx)(La,{connection:t,isRunning:o}),A[2]=t,A[3]=o,A[4]=r):r=A[4];let i;A[5]!==s||A[6]!==e?(i=Y("mathjax_ignore",Me(s)&&"disconnected","bg-background w-full h-full text-textColor","flex flex-col overflow-y-auto",e==="full"&&"config-width-full",e==="columns"?"overflow-x-auto":"overflow-x-hidden","print:height-fit"),A[5]=s,A[6]=e,A[7]=i):i=A[7];let R;A[8]!==G||A[9]!==s||A[10]!==i||A[11]!==e?(R=(0,n.jsx)(Ma,{children:(0,n.jsx)(rt,{children:(0,n.jsx)("div",{id:"App","data-config-width":e,"data-connection-state":s,className:i,children:G})})}),A[8]=G,A[9]=s,A[10]=i,A[11]=e,A[12]=R):R=A[12];let l;return A[13]!==k||A[14]!==r||A[15]!==R?(l=(0,n.jsxs)(n.Fragment,{children:[k,r,R]}),A[13]=k,A[14]=r,A[15]=R,A[16]=l):l=A[16],l};function it(a){return a.kind==="missing"}function OA(a){return a.kind==="installing"}var{valueAtom:Rt,useActions:lt}=We(()=>({packageAlert:null,startupLogsAlert:null,packageLogs:{}}),{addPackageAlert:(a,A)=>{var o;let e={...a.packageLogs};if(OA(A)&&A.logs&&A.log_status)for(let[G,s]of Object.entries(A.logs))switch(A.log_status){case"start":e[G]=s;break;case"append":e[G]=(e[G]||"")+s;break;case"done":e[G]=(e[G]||"")+s;break}let t=((o=a.packageAlert)==null?void 0:o.id)||ia();return{...a,packageAlert:{id:t,...A},packageLogs:e}},clearPackageAlert:(a,A)=>a.packageAlert!==null&&a.packageAlert.id===A?{...a,packageAlert:null,packageLogs:{}}:a,addStartupLog:(a,A)=>{var t;let e=((t=a.startupLogsAlert)==null?void 0:t.content)||"";return{...a,startupLogsAlert:{...a.startupLogsAlert,content:e+A.content,status:A.status}}},clearStartupLogsAlert:a=>({...a,startupLogsAlert:null})});const Zt=()=>C(Rt);function TA(){return lt()}var IA=d();const KA=(0,u.memo)(a=>{let A=(0,IA.c)(11),{appConfig:e,mode:t,children:o}=a,{selectedLayout:G,layoutData:s}=$e(),k=C(xA);if(t==="edit"&&!k)return o;let r;if(A[0]!==t||A[1]!==G){r=G;let c=new URLSearchParams(window.location.search);if(t==="read"&&c.has(iA.viewAs)){let g=c.get(iA.viewAs);ma.includes(g)&&(r=g)}A[0]=t,A[1]=G,A[2]=r}else r=A[2];let i;A[3]===r?i=A[4]:(i=ea.find(c=>c.type===r),A[3]=r,A[4]=i);let R=i;if(!R)return o;let l;return A[5]!==e||A[6]!==r||A[7]!==s||A[8]!==t||A[9]!==R?(l=(0,n.jsx)(ct,{appConfig:e,mode:t,plugin:R,layoutData:s,finalLayout:r}),A[5]=e,A[6]=r,A[7]=s,A[8]=t,A[9]=R,A[10]=l):l=A[10],l});KA.displayName="CellsRenderer";const ct=a=>{let A=(0,IA.c)(18),{appConfig:e,mode:t,plugin:o,layoutData:G,finalLayout:s}=a,k=zA(),{setCurrentLayoutData:r}=NA(),i,R,l,c,g;if(A[0]!==e||A[1]!==s||A[2]!==G||A[3]!==t||A[4]!==k||A[5]!==o){let x=Re(k);i=o.Component,R=e,l=t,c=x,g=G[s]||o.getInitialLayout(x),A[0]=e,A[1]=s,A[2]=G,A[3]=t,A[4]=k,A[5]=o,A[6]=i,A[7]=R,A[8]=l,A[9]=c,A[10]=g}else i=A[6],R=A[7],l=A[8],c=A[9],g=A[10];let B;return A[11]!==i||A[12]!==r||A[13]!==R||A[14]!==l||A[15]!==c||A[16]!==g?(B=(0,n.jsx)(i,{appConfig:R,mode:l,cells:c,layout:g,setLayout:r}),A[11]=i,A[12]=r,A[13]=R,A[14]=l,A[15]=c,A[16]=g,A[17]=B):B=A[17],B};var gt=class HA{constructor(A){nA(this,"hasStarted",!1);nA(this,"handleReadyEvent",A=>{let e=A.detail.objectId;if(!this.uiElementRegistry.has(e))return;let t=this.uiElementRegistry.lookupValue(e);t!==void 0&&this.sendComponentValues({objectIds:[e],values:[t]}).catch(o=>{D.warn(o)})});this.uiElementRegistry=A}static get INSTANCE(){let A="_marimo_private_RuntimeState";return window[A]||(window[A]=new HA(Q)),window[A]}get sendComponentValues(){if(!this._sendComponentValues)throw Error("sendComponentValues is not set");return this._sendComponentValues}start(A){if(this.hasStarted){D.warn("RuntimeState already started");return}this._sendComponentValues=A,document.addEventListener(FA.TYPE,this.handleReadyEvent),this.hasStarted=!0}stop(){if(!this.hasStarted){D.warn("RuntimeState already stopped");return}document.removeEventListener(FA.TYPE,this.handleReadyEvent),this.hasStarted=!1}},ht=d();function dt(a){if(a.static)return Ee.empty();if(RA())return me();let A=a.url;return new ua(A,void 0,{maxRetries:10,debug:!1,startClosed:!0,connectionTimeout:1e4})}function Bt(a){let A=(0,ht.c)(15),{onOpen:e,onMessage:t,onClose:o,onError:G,waitToConnect:s}=a,k;A[0]!==o||A[1]!==G||A[2]!==t||A[3]!==e||A[4]!==a?(k=()=>{let l=dt(a);return l.addEventListener("open",e),l.addEventListener("close",o),l.addEventListener("error",G),l.addEventListener("message",t),l},A[0]=o,A[1]=G,A[2]=t,A[3]=e,A[4]=a,A[5]=k):k=A[5];let[r]=(0,u.useState)(k),i;A[6]!==o||A[7]!==G||A[8]!==t||A[9]!==e||A[10]!==r||A[11]!==s?(i=()=>(r.readyState===WebSocket.CLOSED&&s().then(()=>r.reconnect()).catch(l=>{D.error("Healthy connection never made",l),r.close()}),()=>{D.warn("useConnectionTransport is unmounting. This likely means there is a bug."),r.close(),r.removeEventListener("open",e),r.removeEventListener("close",o),r.removeEventListener("error",G),r.removeEventListener("message",t)}),A[6]=o,A[7]=G,A[8]=t,A[9]=e,A[10]=r,A[11]=s,A[12]=i):i=A[12];let R;return A[13]===r?R=A[14]:(R=[r],A[13]=r,A[14]=R),(0,u.useEffect)(i,R),r}function ut(a){let{codes:A,names:e,configs:t,cell_ids:o,last_executed_code:G,last_execution_time:s}=a,k=G||{},r=s||{};return A.map((i,R)=>{let l=o[R],c=k[l];return ae({id:l,code:i,edited:c?c!==i:!1,name:e[R],lastCodeRun:k[l]??null,lastExecutionTime:r[l]??null,config:t[R]})})}function mt(a,A,e){let t=Aa(),{layout:o}=a;if(o){let G=o.type,s=aa({type:G,data:o.data,cells:A});t.selectedLayout=G,t.layoutData[G]=s,e({layoutView:G,data:s})}return t}function Yt(){let a=[],A=[];return Q.entries.forEach((e,t)=>{a.push(t),A.push(e.value)}),{objectIds:a,values:A}}function ft(a,A){let{existingCells:e,autoInstantiate:t,setCells:o,setLayoutData:G,setAppConfig:s,setCapabilities:k,setKernelState:r,onError:i}=A,{resumed:R,ui_values:l,app_config:c,capabilities:g,auto_instantiated:B}=a,x=e&&e.length>0,y=x&&!R?e:ut(a);o(y,mt(a,y,G));let v=Ce.safeParse(c);if(v.success?s(v.data):D.error("Failed to parse app config",v.error),k(g),B)return;if(R){for(let[m,j]of wA.entries(l||{})){let F=m;Q.set(F,j)}return}let{objectIds:M,values:N}=Yt(),_=x?Object.fromEntries(e.map(m=>[m.id,m.code])):void 0;Je().sendInstantiate({objectIds:M,values:N,autoRun:t,codes:_}).then(()=>{r({isInstantiated:!0,error:null})}).catch(m=>{r({isInstantiated:!1,error:m}),i(Error("Failed to instantiate",{cause:m}))})}function pt(a){let A=a.cell_id;Q.removeElementsByCell(A),MA.INSTANCE.removeForCellId(A)}function xt(a,A){A(a),MA.INSTANCE.track(a)}const z={append:a=>{let A=new URL(window.location.href);A.searchParams.append(a.key,a.value),window.history.pushState({},"",`${A.pathname}${A.search}`)},set:a=>{let A=new URL(window.location.href);Array.isArray(a.value)?(A.searchParams.delete(a.key),a.value.forEach(e=>A.searchParams.append(a.key,e))):A.searchParams.set(a.key,a.value),window.history.pushState({},"",`${A.pathname}${A.search}`)},delete:a=>{let A=new URL(window.location.href);a.value==null?A.searchParams.delete(a.key):A.searchParams.delete(a.key,a.value),window.history.pushState({},"",`${A.pathname}${A.search}`)},clear:()=>{let a=new URL(window.location.href);a.search="",window.history.pushState({},"",`${a.pathname}${a.search}`)}};var wt=d();function Dt(){return Object.values(kA().cellData).filter(a=>a.id!==ke)}function vt(a){let A=(0,wt.c)(41),e=(0,u.useRef)(!0),{autoInstantiate:t,sessionId:o,setCells:G}=a,{showBoundary:s}=Se(),{handleCellMessage:k}=fA(),r;A[0]===Symbol.for("react.memo_cache_sentinel")?(r={skipMiddleware:!0},A[0]=r):r=A[0];let i=fA(r),R;A[1]===i?R=A[2]:(R=h=>{Ze(h.changes,i,_t)},A[1]=i,A[2]=R);let l=R,{addCellNotification:c}=Ya(),g=S(ka),B=be(),{setVariables:x,setMetadata:y}=Ae(),{addColumnPreview:v}=pA(),{addDatasets:M,filterDatasetsFromVariables:N}=pA(),{addDataSourceConnection:_,filterDataSourcesFromVariables:m}=JA(),{setLayoutData:j}=NA(),[F,w]=YA(_e),{addBanner:$}=he(),{addPackageAlert:T,addStartupLog:AA}=TA(),eA=S(xA),aA=S(XA),E=Ne(),tA=S(da),GA=S(Be),{setNamespaces:oA,filterFromVariables:sA}=Ga(),I;A[3]!==$||A[4]!==c||A[5]!==v||A[6]!==_||A[7]!==M||A[8]!==T||A[9]!==AA||A[10]!==t||A[11]!==m||A[12]!==N||A[13]!==sA||A[14]!==k||A[15]!==l||A[16]!==B||A[17]!==tA||A[18]!==aA||A[19]!==G||A[20]!==GA||A[21]!==g||A[22]!==eA||A[23]!==j||A[24]!==y||A[25]!==oA||A[26]!==x||A[27]!==s?(I=h=>{let Z=te(h.data);switch(Z.data.op){case"reload":_A();return;case"kernel-ready":{let f=Dt();ft(Z.data,{autoInstantiate:t,setCells:G,setLayoutData:j,setAppConfig:B,setCapabilities:aA,setKernelState:g,onError:s,existingCells:f}),eA(Z.data.kiosk);return}case"completed-run":return;case"interrupted":return;case"kernel-startup-error":GA(Z.data.error);return;case"send-ui-element-message":{let f=Z.data.ui_element;if(f){let UA=sa(Z.data);Q.broadcastMessage(f,Z.data.message,UA)}return}case"model-lifecycle":ue(we,Z.data);return;case"remove-ui-elements":pt(Z.data);return;case"completion-result":ce.resolve(Z.data.completion_id,Z.data);return;case"function-call-result":Ye.resolve(Z.data.function_call_id,Z.data);return;case"cell-op":{xt(Z.data,k);let f=kA().cellData[Z.data.cell_id];if(!f)return;c({cellNotification:Z.data,code:f.code});return}case"variables":x(Z.data.variables.map(Nt)),N(Z.data.variables.map(Mt)),m(Z.data.variables.map(bt)),sA(Z.data.variables.map(Ct));return;case"variable-values":y(Z.data.variables.map(yt));return;case"alert":cA({title:Z.data.title,description:la({html:Z.data.description}),variant:Z.data.variant});return;case"banner":$(Z.data);return;case"missing-package-alert":T({...Z.data,kind:"missing"});return;case"installing-package-alert":T({...Z.data,kind:"installing"});return;case"startup-logs":AA({content:Z.data.content,status:Z.data.status});return;case"query-params-append":z.append(Z.data);return;case"query-params-set":z.set(Z.data);return;case"query-params-delete":z.delete(Z.data);return;case"query-params-clear":z.clear();return;case"datasets":M(Z.data);return;case"data-column-preview":v(Z.data);return;case"sql-table-preview":se.resolve(Z.data.request_id,Z.data);return;case"sql-table-list-preview":$A.resolve(Z.data.request_id,Z.data);return;case"sql-schema-list-preview":oe.resolve(Z.data.request_id,Z.data);return;case"validate-sql-result":ee.resolve(Z.data.request_id,Z.data);return;case"secret-keys-result":Ba.resolve(Z.data.request_id,Z.data);return;case"cache-info":tA(Z.data);return;case"cache-cleared":return;case"data-source-connections":_({connections:Z.data.connections.map(Et)});return;case"storage-namespaces":oA(Z.data);return;case"storage-entries":oa.resolve(Z.data.request_id,Z.data);return;case"storage-download-ready":ta.resolve(Z.data.request_id,Z.data);return;case"reconnected":return;case"focus-cell":ge(Z.data.cell_id);return;case"notebook-document-transaction":l(Z.data.transaction);return;default:Xe(Z.data)}},A[3]=$,A[4]=c,A[5]=v,A[6]=_,A[7]=M,A[8]=T,A[9]=AA,A[10]=t,A[11]=m,A[12]=N,A[13]=sA,A[14]=k,A[15]=l,A[16]=B,A[17]=tA,A[18]=aA,A[19]=G,A[20]=GA,A[21]=g,A[22]=eA,A[23]=j,A[24]=y,A[25]=oA,A[26]=x,A[27]=s,A[28]=I):I=A[28];let rA=I,BA=(h,Z)=>{e.current&&(e.current=!1,W.reconnect(h,Z))},K;A[29]===Symbol.for("react.memo_cache_sentinel")?(K=DA(),A[29]=K):K=A[29];let H;A[30]!==E||A[31]!==o?(H=()=>E.getWsURL(o).toString(),A[30]=E,A[31]=o,A[32]=H):H=A[32];let U;A[33]===w?U=A[34]:(U=async()=>{e.current=!0,w({state:p.OPEN})},A[33]=w,A[34]=U);let V;A[35]===E?V=A[36]:(V=async()=>{DA()||RA()||E.isSameOrigin||await E.waitForHealthy()},A[35]=E,A[36]=V);let q;A[37]===rA?q=A[38]:(q=h=>{try{rA(h)}catch(Z){let f=Z;D.error("Failed to handle message",h.data,f),cA({title:"Failed to handle message",description:jA(f),variant:"danger"})}},A[37]=rA,A[38]=q);let W=Bt({static:K,url:H,onOpen:U,waitToConnect:V,onMessage:q,onClose:h=>{switch(D.warn("WebSocket closed",h.code,h.reason),h.reason){case"MARIMO_ALREADY_CONNECTED":w({state:p.CLOSED,code:P.ALREADY_RUNNING,reason:"another browser tab is already connected to the kernel",canTakeover:!0}),W.close();return;case"MARIMO_WRONG_KERNEL_ID":case"MARIMO_NO_FILE_KEY":case"MARIMO_NO_SESSION_ID":case"MARIMO_NO_SESSION":case"MARIMO_SHUTDOWN":w({state:p.CLOSED,code:P.KERNEL_DISCONNECTED,reason:"kernel not found"}),W.close();return;case"MARIMO_MALFORMED_QUERY":w({state:p.CLOSED,code:P.MALFORMED_QUERY,reason:"the kernel did not recognize a request; please file a bug with marimo"});return;default:if(h.reason==="MARIMO_KERNEL_STARTUP_ERROR"){w({state:p.CLOSED,code:P.KERNEL_STARTUP_ERROR,reason:"Failed to start kernel sandbox"}),W.close();return}w({state:p.CONNECTING}),BA(h.code,h.reason)}},onError:h=>{D.warn("WebSocket error",h),w({state:p.CLOSED,code:P.KERNEL_DISCONNECTED,reason:"kernel not found"}),BA()}}),X;return A[39]===F?X=A[40]:(X={connection:F},A[39]=F,A[40]=X),X}function Et(a){return{...a,name:a.name}}function yt(a){return{name:a.name,dataType:a.datatype,value:a.value}}function Ct(a){return a.name}function bt(a){return a.name}function Mt(a){return a.name}function Nt(a){return{name:a.name,declaredBy:a.declared_by,usedBy:a.used_by}}function _t(){return kA().cellIds.inOrderIds}var jt=d();const Ft=a=>{let A=(0,jt.c)(2),{children:e}=a,t;return A[0]===e?t=A[1]:(t=(0,n.jsx)("div",{className:"flex flex-col flex-1 overflow-hidden absolute inset-0 print:relative",children:e}),A[0]=e,A[1]=t),t};export{OA as a,Zt as c,SA as d,KA as i,kt as l,vt as n,it as o,gt as r,TA as s,Ft as t,ya as u};
@@ -1 +0,0 @@
1
- import{s as R}from"./chunk-LvLJmgfZ.js";import{u as T}from"./useEvent-D91BmmQi.js";import{t as L}from"./react-Bj1aDYRI.js";import{E as $,gi as D,x as V}from"./cells-Wp62mkuO.js";import"./react-dom-CSu739Rf.js";import{t as P}from"./compiler-runtime-B3qBwwSJ.js";import{n as I}from"./constants-DMpttj8Q.js";import{T as W,l as B,m as F}from"./config-B2jNjodW.js";import{t as M}from"./cn-DCUzRj2J.js";import{t as q}from"./jsx-runtime-BqBOg78p.js";import"./fullscreen-BDxedMYP.js";import"./popover-UExmgBsf.js";import{I as G,_t as H,b as J}from"./JsonOutput-DyvRuemf.js";import{r as K}from"./download-DeMXY7lE.js";import{n as Q,t as E}from"./button-D9nb17Rw.js";import"./dist-BrR4M-k3.js";import"./cjs-BRGiG41H.js";import"./main-B0OX4z33.js";import"./useNonce-DfoVjkkH.js";import{r as X}from"./requests-DIwGYs0l.js";import"./layout-BSDV2zsQ.js";import{c as Y}from"./state-B34hXjp9.js";import"./markdown-renderer-DjjwLrVA.js";import{t as Z}from"./copy-BwrPA9zQ.js";import{i as ee,l as te,n as re,r as O,t as se,u as oe}from"./panels-DsAghTc4.js";import{t as ae}from"./spinner-Bhir8k53.js";import"./dist-DQOq2Tf-.js";import"./dist-DBiqbYe-.js";import"./dist-VjDnmGCZ.js";import"./dist-E6ttb8td.js";import"./dist-B324sPca.js";import{t as ie}from"./use-toast-T0_cQDma.js";import{t as le}from"./session-VtovaFBS.js";import"./purify.es-DBmVz-Wl.js";import"./dates-CAlnO9QB.js";import{n as me}from"./copy-BCF-tANo.js";import{a as ne,c as ce,l as de,n as pe,r as he,t as fe}from"./dialog-Dj0qTFnG.js";import{t as xe}from"./share-DIVpiHPe.js";import"./utils-CGtUbqcR.js";import"./vega-loader.browser-BegSZk0G.js";import"./defaultLocale-YteS-k_t.js";import"./defaultLocale-B6z1Qyqt.js";import{a as be}from"./cell-link-CpZw-906.js";import"./chunk-5FQGJX7Z-e_arGD4o.js";import"./html-to-image-BZTmy2-K.js";import{n as je,t as ue}from"./react-resizable-panels.browser.esm-BUNcfKXO.js";import"./esm-BmrwxxCo.js";import"./name-cell-input-6Jz5ePv7.js";import{n as ge,t as ye}from"./marimo-icons-BSB-Z_W3.js";import"./ws-CtTwmdal.js";import"./dist-DS5RCKZO.js";import"./dist-9g-_Ln9y.js";import"./dist-DBBYmRY4.js";import"./dist-DggusHaA.js";import"./dist-CGDn0y-i.js";import"./dist-CsEqrZxx.js";import"./dist-_XomGjg6.js";import"./dist-ooLAQ9IK.js";import"./dist-HW7R98td.js";import"./esm-BRNC35J6.js";var ke=P(),_e=R(L(),1),t=R(q(),1);const Ne=o=>{let e=(0,ke.c)(25),{appConfig:s}=o,{setCells:r}=$(),{sendComponentValues:h}=X(),m;e[0]===h?m=e[1]:(m=()=>(O.INSTANCE.start(h),ve),e[0]=h,e[1]=m);let l;e[2]===Symbol.for("react.memo_cache_sentinel")?(l=[],e[2]=l):l=e[2],(0,_e.useEffect)(m,l);let n;e[3]===Symbol.for("react.memo_cache_sentinel")?(n=le(),e[3]=n):n=e[3];let j;e[4]===r?j=e[5]:(j={autoInstantiate:!0,setCells:r,sessionId:n},e[4]=r,e[5]=j);let{connection:a}=re(j),k=T(V),u;e[6]===a.state?u=e[7]:(u=F(a.state),e[6]=a.state,e[7]=u);let b=u,g;e[8]!==s||e[9]!==b?(g=()=>b?(0,t.jsxs)(G,{milliseconds:2e3,fallback:null,children:[(0,t.jsx)(ae,{className:"mx-auto"}),(0,t.jsx)("p",{className:"text-center text-sm text-muted-foreground mt-2",children:"Connecting..."})]}):(0,t.jsx)(ee,{appConfig:s,mode:"read"}),e[8]=s,e[9]=b,e[10]=g):g=e[10];let _=g,c;e:{if(typeof window>"u"){c=null;break e}let x,i;if(e[11]===Symbol.for("react.memo_cache_sentinel")){if(i=new URL(window.location.href),!i.searchParams.has("file")){c=null;break e}i.searchParams.delete("file"),x=i.searchParams.toString(),e[11]=x,e[12]=i,e[13]=c}else x=e[11],i=e[12],c=e[13];let w=x;c=w?`${i.pathname}?${w}`:i.pathname}let v=c,N=s.width,f;e[14]===Symbol.for("react.memo_cache_sentinel")?(f=v&&(0,t.jsx)("div",{className:"flex items-center px-6 pt-4 sm:-mt-8",children:(0,t.jsxs)("a",{href:v,"aria-label":"Back to gallery",className:M(Q({variant:"text",size:"sm"}),"gap-2 px-0 text-muted-foreground hover:text-foreground"),children:[(0,t.jsx)(Y,{className:"size-4","aria-hidden":!0}),(0,t.jsx)("span",{children:"Back"})]})}),e[14]=f):f=e[14];let d;e[15]===a?d=e[16]:(d=(0,t.jsx)(oe,{connection:a,className:"sm:pt-8",children:f}),e[15]=a,e[16]=d);let p;e[17]===_?p=e[18]:(p=_(),e[17]=_,e[18]=p);let y;return e[19]!==s.width||e[20]!==a||e[21]!==k||e[22]!==d||e[23]!==p?(y=(0,t.jsxs)(te,{connection:a,isRunning:k,width:N,children:[d,p]}),e[19]=s.width,e[20]=a,e[21]=k,e[22]=d,e[23]=p,e[24]=y):y=e[24],y};function ve(){O.INSTANCE.stop()}var U=P();const we=()=>{let o=(0,U.c)(3),e=T(D);if(!B()||!e)return null;let s;o[0]===Symbol.for("react.memo_cache_sentinel")?(s=(0,t.jsxs)("span",{children:["Static"," ",(0,t.jsx)("a",{href:I.githubPage,target:"_blank",className:"text-(--sky-11) font-medium underline",children:"marimo"})," ","notebook - Run or edit for full interactivity"]}),o[0]=s):s=o[0];let r;return o[1]===e?r=o[2]:(r=(0,t.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:[s,(0,t.jsx)("span",{className:"shrink-0",children:(0,t.jsx)(Se,{code:e})})]}),o[1]=e,o[2]=r),r};var Se=o=>{let e=(0,U.c)(39),{code:s}=o,r=be()||"notebook.py",h=r.lastIndexOf("/");h!==-1&&(r=r.slice(h+1));let m=window.location.href,l;e[0]===s?l=e[1]:(l=xe({code:s,baseUrl:`${I.molab}/new`}),e[0]=s,e[1]=l);let n=l,j;e[2]===Symbol.for("react.memo_cache_sentinel")?(j=(0,t.jsx)(de,{asChild:!0,children:(0,t.jsx)(E,{"data-testid":"static-notebook-dialog-trigger",variant:"outline",size:"xs",children:"Run or Edit"})}),e[2]=j):j=e[2];let a;e[3]===r?a=e[4]:(a=(0,t.jsx)(ce,{children:r}),e[3]=r,e[4]=a);let k;e[5]===Symbol.for("react.memo_cache_sentinel")?(k=(0,t.jsxs)("p",{children:["This is a static"," ",(0,t.jsx)("a",{href:I.githubPage,target:"_blank",className:"text-(--sky-11) hover:underline font-medium",children:"marimo"})," ","notebook. To run interactively:"]}),e[5]=k):k=e[5];let u;e[6]===Symbol.for("react.memo_cache_sentinel")?(u=(0,t.jsx)("br",{}),e[6]=u):u=e[6];let b;e[7]===r?b=e[8]:(b=(0,t.jsx)("div",{className:"rounded-lg p-3 border bg-(--sky-2) border-(--sky-7)",children:(0,t.jsxs)("div",{className:"font-mono text-(--sky-11) leading-relaxed",children:["pip install marimo",u,"marimo edit ",r]})}),e[7]=r,e[8]=b);let g;e[9]===Symbol.for("react.memo_cache_sentinel")?(g=!m.endsWith(".html")&&(0,t.jsxs)("div",{className:"rounded-lg p-3 border bg-(--sky-2) border-(--sky-7)",children:[(0,t.jsx)("div",{className:"text-sm text-(--sky-12) mb-1",children:"Or run directly from URL:"}),(0,t.jsxs)("div",{className:"font-mono text-(--sky-11) break-all",children:["marimo edit ",window.location.href]})]}),e[9]=g):g=e[9];let _;e[10]===Symbol.for("react.memo_cache_sentinel")?(_=(0,t.jsx)(ge,{size:12,strokeWidth:1.5,className:"mr-1.5 mt-px text-(--grass-11)"}),e[10]=_):_=e[10];let c;e[11]===n?c=e[12]:(c=(0,t.jsx)(E,{asChild:!0,variant:"outline",size:"xs",className:"shrink-0",children:(0,t.jsxs)("a",{href:n,target:"_blank",rel:"noopener noreferrer",children:[_,"Open in molab"]})}),e[11]=n,e[12]=c);let v;e[13]===Symbol.for("react.memo_cache_sentinel")?(v=(0,t.jsxs)("p",{className:"text-sm text-(--sky-12)",children:["Run this notebook in"," ",(0,t.jsx)("span",{className:"font-semibold",children:"molab"}),", marimo's cloud-hosted notebook platform."]}),e[13]=v):v=e[13];let N;e[14]===c?N=e[15]:(N=(0,t.jsxs)("div",{className:"pt-3 border-t flex gap-2 items-center",children:[c,v]}),e[14]=c,e[15]=N);let f;e[16]!==N||e[17]!==b?(f=(0,t.jsxs)(he,{className:"pt-3 text-left space-y-3",children:[k,b,g,N]}),e[16]=N,e[17]=b,e[18]=f):f=e[18];let d;e[19]!==f||e[20]!==a?(d=(0,t.jsxs)(ne,{children:[a,f]}),e[19]=f,e[20]=a,e[21]=d):d=e[21];let p;e[22]===s?p=e[23]:(p=async()=>{await me(s),ie({title:"Copied to clipboard"})},e[22]=s,e[23]=p);let y;e[24]===Symbol.for("react.memo_cache_sentinel")?(y=(0,t.jsx)(Z,{className:"w-3 h-3 mr-2"}),e[24]=y):y=e[24];let x;e[25]===p?x=e[26]:(x=(0,t.jsxs)(E,{"data-testid":"copy-static-notebook-dialog-button",variant:"outline",size:"sm",onClick:p,children:[y,"Copy code"]}),e[25]=p,e[26]=x);let i;e[27]!==s||e[28]!==r?(i=()=>{K(new Blob([s],{type:"text/plain"}),r)},e[27]=s,e[28]=r,e[29]=i):i=e[29];let w;e[30]===Symbol.for("react.memo_cache_sentinel")?(w=(0,t.jsx)(H,{className:"w-3 h-3 mr-2"}),e[30]=w):w=e[30];let S;e[31]===i?S=e[32]:(S=(0,t.jsxs)(E,{"data-testid":"download-static-notebook-dialog-button",variant:"outline",size:"sm",onClick:i,children:[w,"Download"]}),e[31]=i,e[32]=S);let C;e[33]!==x||e[34]!==S?(C=(0,t.jsxs)("div",{className:"flex gap-3 pt-2",children:[x,S]}),e[33]=x,e[34]=S,e[35]=C):C=e[35];let z;return e[36]!==d||e[37]!==C?(z=(0,t.jsxs)(fe,{children:[j,(0,t.jsxs)(pe,{children:[d,C]})]}),e[36]=d,e[37]=C,e[38]=z):z=e[38],z},A=P(),Ce=W()||B(),ze=o=>{let e=(0,A.c)(9),s;e[0]===Symbol.for("react.memo_cache_sentinel")?(s=(0,t.jsx)(we,{}),e[0]=s):s=e[0];let r;e[1]===o.appConfig?r=e[2]:(r=(0,t.jsx)(Ne,{appConfig:o.appConfig}),e[1]=o.appConfig,e[2]=r);let h;e[3]===Symbol.for("react.memo_cache_sentinel")?(h=Ce&&(0,t.jsx)(Ie,{}),e[3]=h):h=e[3];let m;e[4]===r?m=e[5]:(m=(0,t.jsxs)(ue,{children:[s,r,h]}),e[4]=r,e[5]=m);let l;e[6]===Symbol.for("react.memo_cache_sentinel")?(l=(0,t.jsx)(J,{}),e[6]=l):l=e[6];let n;return e[7]===m?n=e[8]:(n=(0,t.jsx)(se,{children:(0,t.jsxs)(je,{direction:"horizontal",autoSaveId:"marimo:chrome:v1:run1",children:[m,l]})}),e[7]=m,e[8]=n),n},Ie=()=>{let o=(0,A.c)(1),e;return o[0]===Symbol.for("react.memo_cache_sentinel")?(e=(0,t.jsx)("div",{className:"fixed bottom-0 right-0 z-50","data-testid":"watermark",children:(0,t.jsxs)("a",{href:I.githubPage,target:"_blank",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,t.jsx)("span",{children:"made with marimo"}),(0,t.jsx)(ye,{className:"h-4 w-auto"})]})}),o[0]=e):e=o[0],e},Ee=ze;export{Ee as default};
@@ -1,3 +0,0 @@
1
- var zt=Object.defineProperty;var He=f=>{throw TypeError(f)};var Vt=(f,h,y)=>h in f?zt(f,h,{enumerable:!0,configurable:!0,writable:!0,value:y}):f[h]=y;var n=(f,h,y)=>Vt(f,typeof h!="symbol"?h+"":h,y),ue=(f,h,y)=>h.has(f)||He("Cannot "+y);var o=(f,h,y)=>(ue(f,h,"read from private field"),y?y.call(f):h.get(f)),_=(f,h,y)=>h.has(f)?He("Cannot add the same private member more than once"):h instanceof WeakSet?h.add(f):h.set(f,y),C=(f,h,y,Q)=>(ue(f,h,"write to private field"),Q?Q.call(f,y):h.set(f,y),y),A=(f,h,y)=>(ue(f,h,"access private method"),y);import{i as z,p as de,u as Qt}from"./useEvent-D91BmmQi.js";import{Di as G,Ei as Yt,Mn as Gt,b as Jt,gi as Kt,it as $e,pi as Xt,vi as Zt,x as er,xi as tr,__tla as rr}from"./cells-Wp62mkuO.js";import{t as sr}from"./get-C-qh_et5.js";import{t as nr}from"./debounce-DhnxH9Rh.js";import{t as ar}from"./_baseSet-CxV9N1bc.js";import{_ as p,y as g}from"./useEventListener-BR0C1MaI.js";import{t as ir}from"./invariant-BUdrueMv.js";import{S as or}from"./utils-BrXijSdZ.js";import{T as lr,c as ce,l as ze,n as ur}from"./config-B2jNjodW.js";import{n as dr}from"./switch-DZyZgphf.js";import{n as cr}from"./globals-BS0Ia3-E.js";import{t as pr}from"./createReducer-1ePoj7v6.js";import{r as fr}from"./strings-md4mFbOQ.js";import{t as pe}from"./requests-DIwGYs0l.js";import{a as Ve,l as hr,r as Qe,__tla as mr}from"./markdown-renderer-DjjwLrVA.js";import{t as gr}from"./DeferredRequestRegistry-CUzZ0y7K.js";import{t as yr}from"./preload-helper-DItdS47A.js";import{t as Ye}from"./Deferred-DMWKlZOV.js";import{t as Ge}from"./uuid-DercMavo.js";import{t as wr}from"./use-toast-T0_cQDma.js";import{n as br}from"./RenderHTML-BKLJDmuZ.js";import{t as vr}from"./useRunCells-CA51wX-c.js";import{n as _r,r as Cr,t as Rr}from"./share-DIVpiHPe.js";import{t as xr}from"./blob-D-eV0cU3.js";import{i as Je,r as qr,t as Er}from"./events-BRAWQiYK.js";let J,Ke,Xe,fe,Ze,et,he,tt,V,rt,st,me,ge,nt,at,it,ot,ne,lt,ut,ye,dt,we,Sr=Promise.all([(()=>{try{return rr}catch{}})(),(()=>{try{return mr}catch{}})()]).then(async()=>{var U,ee,pt,Ne,k,T,S,Ae,P,Ue,F,Y,D,ae,Te,We,te,I,L,B,R,W,N,ft,ht,mt,re;function f(t,e,r){return t==null?t:ar(t,e,r)}J=f,Ze=de(null);var{valueAtom:h,useActions:y}=pr(()=>({banners:[]}),{addBanner:(t,e)=>({...t,banners:[...t.banners,{...e,id:Ge()}]}),removeBanner:(t,e)=>({...t,banners:t.banners.filter(r=>r.id!==e)}),clearBanners:t=>({...t,banners:[]})});dt=()=>Qt(h),Ke=function(){return y()};let Q,ve,_e;Q=class{constructor(){n(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)}},we=class be{constructor(e){n(this,"subscriptions",new Q);this.producer=e}static withProducerCallback(e){return new be(e)}static empty(){return new be}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)}},ve=1e10,_e=1e3;function K(t,e){let r=t.map(s=>`"${s}"`).join(", ");return Error(`This RPC instance cannot ${e} because the transport did not provide one or more of these methods: ${r}`)}function yt(t={}){let e={};function r(l){e=l}let s={};function a(l){var c;s.unregisterHandler&&s.unregisterHandler(),s=l,(c=s.registerHandler)==null||c.call(s,$t)}let i;function u(l){if(typeof l=="function"){i=l;return}i=(c,w)=>{let m=l[c];if(m)return m(w);let b=l._;if(!b)throw Error(`The requested method has no handler: ${c}`);return b(c,w)}}let{maxRequestTime:d=_e}=t;t.transport&&a(t.transport),t.requestHandler&&u(t.requestHandler),t._debugHooks&&r(t._debugHooks);let v=0;function x(){return v<=ve?++v:v=0}let q=new Map,E=new Map;function H(l,...c){let w=c[0];return new Promise((m,b)=>{var $;if(!s.send)throw K(["send"],"make requests");let M=x(),O={type:"request",id:M,method:l,params:w};q.set(M,{resolve:m,reject:b}),d!==1/0&&E.set(M,setTimeout(()=>{E.delete(M),b(Error("RPC request timed out."))},d)),($=e.onSend)==null||$.call(e,O),s.send(O)})}let se=new Proxy(H,{get:(l,c,w)=>c in l?Reflect.get(l,c,w):m=>H(c,m)}),je=se;function Oe(l,...c){var b;let w=c[0];if(!s.send)throw K(["send"],"send messages");let m={type:"message",id:l,payload:w};(b=e.onSend)==null||b.call(e,m),s.send(m)}let De=new Proxy(Oe,{get:(l,c,w)=>c in l?Reflect.get(l,c,w):m=>Oe(c,m)}),Be=De,j=new Map,le=new Set;function Bt(l,c){var w;if(!s.registerHandler)throw K(["registerHandler"],"register message listeners");if(l==="*"){le.add(c);return}j.has(l)||j.set(l,new Set),(w=j.get(l))==null||w.add(c)}function Ht(l,c){var w,m;if(l==="*"){le.delete(c);return}(w=j.get(l))==null||w.delete(c),((m=j.get(l))==null?void 0:m.size)===0&&j.delete(l)}async function $t(l){var c,w;if((c=e.onReceive)==null||c.call(e,l),!("type"in l))throw Error("Message does not contain a type.");if(l.type==="request"){if(!s.send||!i)throw K(["send","requestHandler"],"handle requests");let{id:m,method:b,params:M}=l,O;try{O={type:"response",id:m,success:!0,payload:await i(b,M)}}catch($){if(!($ instanceof Error))throw $;O={type:"response",id:m,success:!1,error:$.message}}(w=e.onSend)==null||w.call(e,O),s.send(O);return}if(l.type==="response"){let m=E.get(l.id);m!=null&&clearTimeout(m);let{resolve:b,reject:M}=q.get(l.id)??{};l.success?b==null||b(l.payload):M==null||M(Error(l.error));return}if(l.type==="message"){for(let b of le)b(l.id,l.payload);let m=j.get(l.id);if(!m)return;for(let b of m)b(l.payload);return}throw Error(`Unexpected RPC message type: ${l.type}`)}return{setTransport:a,setRequestHandler:u,request:se,requestProxy:je,send:De,sendProxy:Be,addMessageListener:Bt,removeMessageListener:Ht,proxy:{send:Be,request:je},_setDebugHooks:r}}function wt(t){return yt(t)}var Ce="[transport-id]";function bt(t,e){let{transportId:r}=e;return r==null?t:{[Ce]:r,data:t}}function vt(t,e){let{transportId:r,filter:s}=e,a=s==null?void 0:s();if(r!=null&&a!=null)throw Error("Cannot use both `transportId` and `filter` at the same time");let i=t;if(r){if(t[Ce]!==r)return[!0];i=t.data}return a===!1?[!0]:[!1,i]}function _t(t,e={}){let{transportId:r,filter:s,remotePort:a}=e,i=t,u=a??t,d;return{send(v){u.postMessage(bt(v,{transportId:r}))},registerHandler(v){d=x=>{let q=x.data,[E,H]=vt(q,{transportId:r,filter:()=>s==null?void 0:s(x)});E||v(H)},i.addEventListener("message",d)},unregisterHandler(){d&&i.removeEventListener("message",d)}}}function Ct(t,e){return _t(t,e)}function Re(t){return wt({transport:Ct(t,{transportId:"marimo-transport"}),maxRequestTime:2e4,_debugHooks:{onSend:e=>{p.debug("[rpc] Parent -> Worker",e)},onReceive:e=>{p.debug("[rpc] Worker -> Parent",e)}}})}ye=de("Initializing..."),Xe=de(t=>{let e=t(Jt),r=Object.values(e.cellRuntime);return r.some(s=>!hr(s.output))?!0:r.every(s=>s.status==="idle")});var xe=_r(),qe="marimo:file",Ee=new Xt(null);const Rt={saveFile(t){Ee.set(qe,t)},readFile(){return Ee.get(qe)}};var xt={saveFile(t){G.setCodeForHash((0,xe.compressToEncodedURIComponent)(t))},readFile(){let t=G.getCodeFromHash()||G.getCodeFromSearchParam();return t?(0,xe.decompressFromEncodedURIComponent)(t):null}};const qt={saveFile(t){},readFile(){let t=document.querySelector("marimo-code");return t?decodeURIComponent(t.textContent||"").trim():null}};var Et={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 St={saveFile(t){},readFile(){return z.get(Kt)??null}};var Mt={saveFile(t){},readFile(){return["import marimo","app = marimo.App()","","@app.cell","def __():"," return","",'if __name__ == "__main__":'," app.run()"].join(`
2
- `)}},Se=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 X;V=new Se([St,qt,xt]),X=new Se([Rt,Et,Mt]),ge=class ct{constructor(){n(this,"initialized",new Ye);n(this,"sendRename",async({filename:e})=>(e===null||(G.setFilename(e),await this.rpc.proxy.request.bridge({functionName:"rename_file",payload:e})),null));n(this,"sendSave",async e=>{if(!this.saveRpc)return p.warn("Save RPC not initialized"),null;await this.saveRpc.saveNotebook(e);let r=await this.readCode();return r.contents&&(V.saveFile(r.contents),X.saveFile(r.contents)),this.rpc.proxy.request.saveNotebook(e).catch(s=>{p.error(s)}),null});n(this,"sendCopy",async()=>{g()});n(this,"sendStdin",async e=>(await this.rpc.proxy.request.bridge({functionName:"put_input",payload:e.text}),null));n(this,"sendPdb",async()=>{g()});n(this,"sendRun",async e=>(await this.rpc.proxy.request.loadPackages(e.codes.join(`
3
- `)),await this.putControlRequest({type:"execute-cells",...e}),null));n(this,"sendRunScratchpad",async e=>(await this.rpc.proxy.request.loadPackages(e.code),await this.putControlRequest({type:"execute-scratchpad",...e}),null));n(this,"sendInterrupt",async()=>(this.interruptBuffer!==void 0&&(this.interruptBuffer[0]=2),null));n(this,"sendShutdown",async()=>(window.close(),null));n(this,"sendFormat",async e=>await this.rpc.proxy.request.bridge({functionName:"format",payload:e}));n(this,"sendDeleteCell",async e=>(await this.putControlRequest({type:"delete-cell",...e}),null));n(this,"sendInstallMissingPackages",async e=>(this.putControlRequest({type:"install-packages",...e}),null));n(this,"sendCodeCompletionRequest",async e=>(z.get(er)||await this.rpc.proxy.request.bridge({functionName:"code_complete",payload:e}),null));n(this,"saveUserConfig",async e=>(await this.rpc.proxy.request.bridge({functionName:"save_user_config",payload:e}),dr.post("/kernel/save_user_config",e,{baseUrl:"/"}).catch(r=>(p.error(r),null))));n(this,"saveAppConfig",async e=>(await this.rpc.proxy.request.bridge({functionName:"save_app_config",payload:e}),null));n(this,"saveCellConfig",async e=>(await this.putControlRequest({type:"update-cell-config",...e}),null));n(this,"sendRestart",async()=>{let e=await this.readCode();return e.contents&&(V.saveFile(e.contents),X.saveFile(e.contents)),Cr(),null});n(this,"readCode",async()=>this.saveRpc?{contents:await this.saveRpc.readNotebook()}:(p.warn("Save RPC not initialized"),{contents:""}));n(this,"readSnippets",async()=>await this.rpc.proxy.request.bridge({functionName:"read_snippets",payload:void 0}));n(this,"openFile",async({path:e})=>{let r=Rr({code:null,baseUrl:window.location.origin});return window.open(r,"_blank"),null});n(this,"sendListFiles",async e=>await this.rpc.proxy.request.bridge({functionName:"list_files",payload:e}));n(this,"sendSearchFiles",async e=>await this.rpc.proxy.request.bridge({functionName:"search_files",payload:e}));n(this,"sendComponentValues",async e=>(await this.putControlRequest({type:"update-ui-element",...e,token:Ge()}),null));n(this,"sendInstantiate",async e=>null);n(this,"sendFunctionRequest",async e=>(await this.putControlRequest({type:"invoke-function",...e}),null));n(this,"sendCreateFileOrFolder",async e=>await this.rpc.proxy.request.bridge({functionName:"create_file_or_directory",payload:e}));n(this,"sendDeleteFileOrFolder",async e=>await this.rpc.proxy.request.bridge({functionName:"delete_file_or_directory",payload:e}));n(this,"sendCopyFileOrFolder",async e=>await this.rpc.proxy.request.bridge({functionName:"copy_file_or_directory",payload:e}));n(this,"sendRenameFileOrFolder",async e=>await this.rpc.proxy.request.bridge({functionName:"move_file_or_directory",payload:e}));n(this,"sendUpdateFile",async e=>await this.rpc.proxy.request.bridge({functionName:"update_file",payload:e}));n(this,"sendFileDetails",async e=>await this.rpc.proxy.request.bridge({functionName:"file_details",payload:e}));n(this,"exportAsHTML",async e=>await this.rpc.proxy.request.bridge({functionName:"export_html",payload:e}));n(this,"exportAsMarkdown",async e=>await this.rpc.proxy.request.bridge({functionName:"export_markdown",payload:e}));n(this,"previewDatasetColumn",async e=>(await this.putControlRequest({type:"preview-dataset-column",...e}),null));n(this,"previewSQLTable",async e=>(await this.putControlRequest({type:"preview-sql-table",...e}),null));n(this,"previewSQLTableList",async e=>(await this.putControlRequest({type:"list-sql-tables",...e}),null));n(this,"previewSQLSchemaList",async e=>(await this.putControlRequest({type:"list-sql-schemas",...e}),null));n(this,"previewDataSourceConnection",async e=>(await this.putControlRequest({type:"list-data-source-connection",...e}),null));n(this,"validateSQL",async e=>(await this.putControlRequest({type:"validate-sql",...e}),null));n(this,"sendModelValue",async e=>(await this.putControlRequest({type:"model",...e}),null));n(this,"sendDocumentTransaction",()=>Promise.resolve(null));n(this,"addPackage",async e=>this.rpc.proxy.request.addPackage(e));n(this,"removePackage",async e=>this.rpc.proxy.request.removePackage(e));n(this,"getPackageList",async()=>await this.rpc.proxy.request.listPackages());n(this,"getDependencyTree",async()=>({tree:{dependencies:[],name:"",tags:[],version:null}}));n(this,"listSecretKeys",async e=>(await this.putControlRequest({type:"list-secret-keys",...e}),null));n(this,"getUsageStats",g);n(this,"openTutorial",g);n(this,"getRecentFiles",g);n(this,"getWorkspaceFiles",g);n(this,"getRunningNotebooks",g);n(this,"shutdownSession",g);n(this,"exportAsIPYNB",g);n(this,"exportAsPDF",g);n(this,"autoExportAsHTML",g);n(this,"autoExportAsMarkdown",g);n(this,"autoExportAsIPYNB",g);n(this,"updateCellOutputs",g);n(this,"writeSecret",g);n(this,"invokeAiTool",g);n(this,"clearCache",g);n(this,"getCacheInfo",g);n(this,"listStorageEntries",g);n(this,"downloadStorage",g);lr()&&(this.rpc=Re(new Worker(new URL(""+new URL("worker-CF8V9c2V.js",import.meta.url).href,""+import.meta.url),{type:"module",name:Me()})),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})=>{z.set(ye,e)}),this.rpc.addMessageListener("initializedError",({error:e})=>{this.initialized.status==="resolved"&&(p.error(e),wr({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 ct),window[e]}getSaveWorker(){return $e()==="read"?(p.debug("Using partially disabled SaveWorker in read-mode"),{readFile:g,readNotebook:async()=>await V.readFile()??"",saveNotebook:g}):Re(new Worker(new URL(""+new URL("save-worker-CvbUHJh7.js",import.meta.url).href,""+import.meta.url),{type:"module",name:Me()})).proxy.request}async startSession(){let e=await V.readFile(),r=await X.readFile(),s=z.get(Zt)??G.getFilename(),a=z.get(or),i={},u=new URLSearchParams(window.location.search);for(let d of u.keys()){let v=u.getAll(d);i[d]=v.length===1?v[0]:v}await this.rpc.proxy.request.startSession({queryParameters:i,code:e||r||"",filename:s,userConfig:{...a,runtime:{...a.runtime,auto_instantiate:$e()==="read"?!0:a.runtime.auto_instantiate}}})}setInterruptBuffer(){crossOriginIsolated?(this.interruptBuffer=new Uint8Array(new SharedArrayBuffer(1)),this.rpc.proxy.request.setInterruptBuffer(this.interruptBuffer)):p.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})}},rt=function(){return we.withProducerCallback(t=>{ge.INSTANCE.attachMessageConsumer(t)})};function Me(){let t=typeof window<"u"&&window.__MARIMO_HAS_WASM_CONTROLLER__===!0;return cr()+(t?"::controller":"")}tt=function(t=ce()){let e=window.fetch;return window.fetch=async(r,s)=>{let a=r instanceof Request?r.url:r.toString();if(a.startsWith("data:"))return e(r,s);try{let i=Z(a,t);if(i){let u=await(await e(i)).arrayBuffer();return new Response(u,{headers:{"Content-Type":kt(a)}})}return e(r,s)}catch(i){return p.error("Error parsing URL",i),e(r,s)}},()=>{window.fetch=e}};function kt(t){return t.endsWith(".csv")?"text/csv":t.endsWith(".json")?"application/json":t.endsWith(".txt")?"text/plain":"application/octet-stream"}it=function(t,e=ce()){let r=t.http.bind(t),s=t.load.bind(t);return t.http=async a=>{let i=Z(a,e);if(i)return await window.fetch(i).then(u=>u.text());try{return await r(a)}catch(u){if(a.startsWith("data:"))return await window.fetch(a).then(d=>d.text());throw u}},t.load=async a=>{let i=Z(a,e);if(i)return await window.fetch(i).then(u=>u.text());try{return await s(a)}catch(u){if(a.startsWith("data:"))return await window.fetch(a).then(d=>d.text());throw u}},()=>{t.http=r,t.load=s}};function ke(t){return t.startsWith(".")?t.slice(1):t}function Ft(t,e=ce()){let r=Z(t,e);if(!r)return t;let s=xr(r);return URL.createObjectURL(s)}function Z(t,e){let r=document.baseURI;r.startsWith("blob:")&&(r=r.replace("blob:",""));let s=new URL(t,r).pathname,a=Fe(t),i=Fe(s);return e[t]||e[ke(t)]||e[s]||e[ke(s)]||a&&e[a]||i&&e[i]}function Fe(t){let e=t.indexOf("/@file/");return e===-1?null:t.slice(e)}function ie(t,e=[]){let r=[];if(t instanceof DataView)r.push(e);else if(Array.isArray(t))for(let[s,a]of t.entries())r.push(...ie(a,[...e,s]));else if(typeof t=="object"&&t)for(let[s,a]of Object.entries(t))r.push(...ie(a,[...e,s]));return r}function Pt(t){let e=ie(t);if(e.length===0)return{state:t,buffers:[],bufferPaths:[]};let r=structuredClone(t),s=[],a=[];for(let i of e){let u=sr(t,i);if(u instanceof DataView){let d=Ve(u);s.push(d),a.push(i),J(r,i,d)}}return{state:r,buffers:s,bufferPaths:a}}function Pe(t){let{state:e,bufferPaths:r,buffers:s}=t;if(!r||r.length===0)return e;s&&ir(s.length===r.length,"Buffers and buffer paths not the same length");let a=e;for(let[i,u]of r.entries()){let d=s==null?void 0:s[i];if(d==null){p.warn("[anywidget] Could not find buffer at path",u);continue}typeof d=="string"?J(a,u,Qe(d)):J(a,u,d)}return a}he=function(t){return typeof t!="string"||t.length===0?!1:!!(/^(\.?\/)?@file\/[^?#]+$/.test(t)||Lt(t))};function It(){return z.get(vr)||br()}function Lt(t){return t.startsWith("data:text/javascript;base64,")||t.startsWith("data:application/javascript;base64,")||t.startsWith("data:text/css;base64,")?It():!1}const Ie={invoke:async()=>{let t="anywidget.invoke not supported in marimo. Please file an issue at https://github.com/marimo-team/marimo/issues";throw p.warn(t),Error(t)}};function Nt(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 At=(Ne=class{constructor(){_(this,ee);_(this,U,new Map)}getModule(t,e){let r=o(this,U).get(e);if(r)return r;let s=A(this,ee,pt).call(this,t).catch(a=>{throw o(this,U).delete(e),a});return o(this,U).set(e,s),s}invalidate(t){p.debug(`[WidgetDefRegistry] Invalidating module cache for hash=${t}`),o(this,U).delete(t)}},U=new WeakMap,ee=new WeakSet,pt=async function(t){if(!he(t))throw Error(`Refusing to load anywidget module from untrusted URL: ${String(t)}`);let e=ur(t).toString();return ze()&&(e=Ft(e)),yr(()=>import(e).then(async r=>(await r.__tla,r)),[],import.meta.url)},Ne),Ut=(Ae=class{constructor(){_(this,k);_(this,T);_(this,S)}async bind(t,e){var i,u;if(o(this,S)&&o(this,T)===t)return o(this,S);o(this,S)&&o(this,T)!==t&&(p.debug("[WidgetBinding] Hot-reload detected, aborting previous binding"),(i=o(this,k))==null||i.abort(),C(this,k,void 0),C(this,S,void 0)),C(this,T,t),C(this,k,new AbortController);let r=o(this,k).signal,s=typeof t=="function"?await t():t,a=await((u=s.initialize)==null?void 0:u.call(s,{model:e,experimental:Ie}));return a&&r.addEventListener("abort",a),C(this,S,async(d,v)=>{var q;let x=await((q=s.render)==null?void 0:q.call(s,{model:e,el:d,experimental:Ie}));x&&Nt([v,r]).addEventListener("abort",()=>{let E=v.aborted?"view unmount":"binding destroyed";p.debug(`[WidgetBinding] Render cleanup triggered (reason: ${E})`),x()})}),o(this,S)}destroy(){var t;p.debug("[WidgetBinding] Destroying binding, aborting initialize lifecycle"),(t=o(this,k))==null||t.abort(),C(this,k,void 0),C(this,T,void 0),C(this,S,void 0)}},k=new WeakMap,T=new WeakMap,S=new WeakMap,Ae),Tt=(Ue=class{constructor(){_(this,P,new Map)}getOrCreate(t){let e=o(this,P).get(t);return e||(e=new Ut,o(this,P).set(t,e)),e}destroy(t){let e=o(this,P).get(t);e&&(p.debug(`[BindingManager] Destroying binding for model=${t}`),e.destroy(),o(this,P).delete(t))}has(t){return o(this,P).has(t)}},P=new WeakMap,Ue);ut=new At,me=new Tt;var Wt=(Te=class{constructor(t=1e4){_(this,D);_(this,F,new Map);_(this,Y);C(this,Y,t)}get(t){let e=A(this,D,ae).call(this,t);return e.deferred.status==="pending"&&setTimeout(()=>{e.deferred.status==="pending"&&(e.deferred.reject(Error(`Model not found for key: ${t}`)),o(this,F).delete(t))},o(this,Y)),e.deferred.promise}create(t,e){let r=A(this,D,ae).call(this,t);r.deferred.resolve(e(r.controller.signal))}set(t,e){A(this,D,ae).call(this,t).deferred.resolve(e)}getSync(t){let e=o(this,F).get(t);if(e&&e.deferred.status==="resolved")return e.deferred.value}delete(t){var e;p.debug(`[ModelManager] Deleting model=${t}, aborting lifecycle signal`),(e=o(this,F).get(t))==null||e.controller.abort(),o(this,F).delete(t)}},F=new WeakMap,Y=new WeakMap,D=new WeakSet,ae=function(t){let e=o(this,F).get(t);return e||(e={deferred:new Ye,controller:new AbortController},o(this,F).set(t,e)),e},Te),Le=Symbol("marimo");function oe(t){return t[Le]}ne=new Wt;var jt=(We=Le,W=class{constructor(e,r,s){_(this,N);_(this,te,"change");_(this,I);_(this,L);_(this,B);_(this,R,{});n(this,We,{updateAndEmitDiffs:e=>A(this,N,ht).call(this,e),emitCustomMessage:(e,r)=>A(this,N,mt).call(this,e,r)});n(this,"widget_manager",{async get_model(e){let r=await W._modelManager.get(e);if(!r)throw Error(`Model not found with id: ${e}. This is likely because the model was not registered.`);return r}});_(this,re,nr(()=>{let e=o(this,R)[o(this,te)];if(e)for(let r of e)try{r()}catch(s){p.error("Error emitting event",s)}},0));C(this,L,e),C(this,B,r),C(this,I,new Map),s&&s.addEventListener("abort",()=>{p.debug("[Model] Signal aborted, clearing all listeners"),C(this,R,{})})}off(e,r){var s;if(!e){C(this,R,{});return}if(!r){o(this,R)[e]=new Set;return}(s=o(this,R)[e])==null||s.delete(r)}send(e,r,s){let a=(s??[]).map(i=>i instanceof ArrayBuffer?new DataView(i):new DataView(i.buffer,i.byteOffset,i.byteLength));return o(this,B).sendCustomMessage(e,a).then(()=>r==null?void 0:r())}get(e){return o(this,L)[e]}set(e,r){C(this,L,{...o(this,L),[e]:r}),o(this,I).set(e,r),A(this,N,ft).call(this,`change:${e}`,r),o(this,re).call(this)}save_changes(){if(o(this,I).size===0)return;let e=Object.fromEntries(o(this,I).entries());o(this,I).clear(),o(this,B).sendUpdate(e)}on(e,r){o(this,R)[e]||(o(this,R)[e]=new Set),o(this,R)[e].add(r)}},te=new WeakMap,I=new WeakMap,L=new WeakMap,B=new WeakMap,R=new WeakMap,N=new WeakSet,ft=function(e,r){if(!o(this,R)[e])return;let s=o(this,R)[e];for(let a of s)try{a(r)}catch(i){p.error("Error emitting event",i)}},ht=function(e){e!=null&&Object.keys(e).forEach(r=>{let s=r;o(this,L)[s]!==e[s]&&this.set(s,e[s])})},mt=function(e,r=[]){let s=o(this,R)["msg:custom"];if(s)for(let a of s)try{a(e.content,r)}catch(i){p.error("Error emitting event",i)}},re=new WeakMap,n(W,"_modelManager",ne),W);et=async function(t,e){let r=e.model_id,s=e.message,a=("buffers"in s?s.buffers:[]).map(Qe);switch(s.method){case"open":{let{state:i,buffer_paths:u=[]}=s,d=Pe({state:i,bufferPaths:u,buffers:a}),v=t.getSync(r);if(v){oe(v).updateAndEmitDiffs(d);return}t.create(r,x=>new jt(d,ze()?{sendUpdate:async()=>{},sendCustomMessage:async()=>{}}:{async sendUpdate(q){if(x.aborted){p.debug(`[Model] sendUpdate suppressed for model=${r} (signal aborted)`);return}let{state:E,buffers:H,bufferPaths:se}=Pt(q);await pe().sendModelValue({modelId:r,message:{method:"update",state:E,bufferPaths:se},buffers:H})},async sendCustomMessage(q,E){if(x.aborted){p.debug(`[Model] sendCustomMessage suppressed for model=${r} (signal aborted)`);return}await pe().sendModelValue({modelId:r,message:{method:"custom",content:q},buffers:E.map(Ve)})}},x));return}case"custom":oe(await t.get(r)).emitCustomMessage({method:"custom",content:s.content},a);return;case"close":me.destroy(r),t.delete(r);return;case"update":{let{state:i,buffer_paths:u=[]}=s,d=Pe({state:i,bufferPaths:u,buffers:a});oe(await t.get(r)).updateAndEmitDiffs(d);return}default:fr(s)}},Gt(ne,"MODEL_MANAGER");function Ot(t){return typeof t!="object"||!t?!1:"type"in t&&t.type==="marimo-ui-value-update"}fe=class gt{static get INSTANCE(){let e="_marimo_private_UIElementRegistry";return window[e]||(window[e]=new gt),window[e]}constructor(){this.entries=new Map}has(e){return this.entries.has(e)}set(e,r){this.entries.has(e)&&p.debug("UIElementRegistry overwriting entry for objectId.",e),this.entries.set(e,{objectId:e,value:r,elements:new Set})}registerInstance(e,r){let s=this.entries.get(e);s===void 0?this.entries.set(e,{objectId:e,value:Yt(r,this),elements:new Set([r])}):s.elements.add(r)}removeInstance(e,r){let s=this.entries.get(e);s!=null&&s.elements.has(r)&&s.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,s){let a=this.entries.get(e);if(a===void 0){p.warn("UIElementRegistry missing entry",e);return}if(Ot(r)){a.value=r.value,a.elements.forEach(i=>{i.dispatchEvent(Je.create({bubbles:!1,composed:!0,detail:{value:r.value,element:i}}))});return}a.elements.forEach(i=>{i.dispatchEvent(Er.create({bubbles:!1,composed:!0,detail:{objectId:e,message:r,buffers:s}}))})}broadcastValueUpdate(e,r,s){let a=this.entries.get(r);a===void 0?p.warn("UIElementRegistry missing entry",r):(a.value=s,a.elements.forEach(i=>{i!==e&&i.dispatchEvent(Je.create({bubbles:!1,composed:!0,detail:{value:s,element:i}}))}),document.dispatchEvent(qr.create({bubbles:!0,composed:!0,detail:{objectId:r}})))}},at=fe.INSTANCE,st=new gr("function-call-result",async(t,e)=>{await pe().sendFunctionRequest({functionCallId:t,...e})}),lt="68px";var Dt="288px";nt=t=>t?/^\d+$/.test(t)?`${t}px`:t:Dt,ot=tr({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}})});export{J as C,Ke as S,Xe as _,Sr as __tla,fe as a,Ze as b,et as c,he as d,tt as f,V as g,rt as h,st as i,me as l,ge as m,nt as n,at as o,it as p,ot as r,ne as s,lt as t,ut as u,ye as v,dt as x,we as y};