@marimo-team/frontend 0.25.3-dev96 → 0.25.3-dev98

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 (90) hide show
  1. package/dist/assets/{CellStatus-Dc8AR1al.js → CellStatus-fK4n2NPc.js} +1 -1
  2. package/dist/assets/{ErrorBoundary-DBQW23V4.js → ErrorBoundary-CAEGdoFW.js} +2 -2
  3. package/dist/assets/{JsonOutput-nLzWQ-0V.js → JsonOutput-CyAKmZDD.js} +1 -1
  4. package/dist/assets/{MarimoErrorOutput-DAFgeK_G.js → MarimoErrorOutput-CgZvP0p0.js} +1 -1
  5. package/dist/assets/{RenderHTML-DwolbpuI.js → RenderHTML-DQvxDDNS.js} +1 -1
  6. package/dist/assets/{RunButton-BN3_mnoU.js → RunButton-BBDnDL6G.js} +1 -1
  7. package/dist/assets/{add-cell-with-ai-CRbG5cTT.js → add-cell-with-ai-Clg5FELx.js} +1 -1
  8. package/dist/assets/{add-connection-dialog-CzCmVM_b.js → add-connection-dialog-BqdWmD-7.js} +1 -1
  9. package/dist/assets/{agent-panel-zpTxANfi.js → agent-panel-5RxG5Y82.js} +3 -3
  10. package/dist/assets/{ai-model-dropdown-DL56ImUU.js → ai-model-dropdown-Bvl1ktQq.js} +1 -1
  11. package/dist/assets/{app-config-button-BRBtaFi_.js → app-config-button-0QTeQ2Mv.js} +1 -1
  12. package/dist/assets/{blob-CuL-H1JC.js → blob-5VcB8K_t.js} +1 -1
  13. package/dist/assets/{cell-editor-C6QIY1Q-.js → cell-editor-Byw5y-oI.js} +1 -1
  14. package/dist/assets/{cell-link-C9tkvy6x.js → cell-link-C5yYyzuF.js} +1 -1
  15. package/dist/assets/{cells-B23_t5uX.js → cells-D_11MjVB.js} +13 -13
  16. package/dist/assets/{chat-display-DSezZ1qo.js → chat-display-BCR_ySiV.js} +1 -1
  17. package/dist/assets/{chat-panel-CocbwA2Q.js → chat-panel-RPRvBsaU.js} +1 -1
  18. package/dist/assets/{chat-ui-DXvDBccG.js → chat-ui-CGviVaRA.js} +2 -2
  19. package/dist/assets/{column-preview-BUQ_YMaE.js → column-preview-xe533-Cn.js} +1 -1
  20. package/dist/assets/{command-palette-HbIlNTLD.js → command-palette-BB9bWdWp.js} +1 -1
  21. package/dist/assets/{common-XXWicvmo.js → common-CaeItbcI.js} +1 -1
  22. package/dist/assets/{components-D1a5GeNf.js → components-G6frbw0c.js} +1 -1
  23. package/dist/assets/{datasource-Qo_t5PqI.js → datasource-deuXnlU-.js} +1 -1
  24. package/dist/assets/{dependency-graph-panel-DHrm4LUL.js → dependency-graph-panel-CIykLnJe.js} +1 -1
  25. package/dist/assets/{documentation-panel-BoNI3vXT.js → documentation-panel-2PQ8kQLa.js} +1 -1
  26. package/dist/assets/{download-Cm3InGht.js → download-dK52bLxZ.js} +1 -1
  27. package/dist/assets/{edit-page-BVkC2MyU.js → edit-page-C2phWLKH.js} +5 -5
  28. package/dist/assets/{error-entries-DEkB-8EY.js → error-entries-3GVk2KjS.js} +1 -1
  29. package/dist/assets/{error-panel-D7GInT--.js → error-panel-CzDRGPeC.js} +1 -1
  30. package/dist/assets/{feedback-button-sC38i-D1.js → feedback-button-C5NgWpFg.js} +1 -1
  31. package/dist/assets/feedback-button-CONwLFpw.js +1 -0
  32. package/dist/assets/{file-explorer-panel-2XFMubVM.js → file-explorer-panel-B50xDnTZ.js} +1 -1
  33. package/dist/assets/{file-name-input-DPs3KKM-.js → file-name-input-DqwMSgGU.js} +1 -1
  34. package/dist/assets/{floating-outline-C7MSAu6q.js → floating-outline-ChmAuvxz.js} +1 -1
  35. package/dist/assets/{gallery-page-B3fJlerH.js → gallery-page-CiL8aMS1.js} +1 -1
  36. package/dist/assets/{glide-data-editor-DrhzXms_.js → glide-data-editor-CqRclBkp.js} +1 -1
  37. package/dist/assets/{home-page-CajAhF9Q.js → home-page-BgZVl4dP.js} +1 -1
  38. package/dist/assets/{hooks-DteA-neM.js → hooks-DM5n7Osw.js} +1 -1
  39. package/dist/assets/{index-YQHSwyF3.js → index-vCxv6WVQ.js} +18 -18
  40. package/dist/assets/{layout-DEFRD3k3.js → layout-BpP8nTjb.js} +4 -4
  41. package/dist/assets/{logs-panel-BpM3pLdf.js → logs-panel-B5eVAZtH.js} +1 -1
  42. package/dist/assets/{markdown-renderer-C5aIPuRT.js → markdown-renderer-BWUzqkJM.js} +1 -1
  43. package/dist/assets/{name-cell-input-Dd8oSXnd.js → name-cell-input-DXW68gRW.js} +1 -1
  44. package/dist/assets/{outline-panel-kFr3Fo2d.js → outline-panel-DPxJhJ_A.js} +1 -1
  45. package/dist/assets/{packages-panel-Ce_wBuIJ.js → packages-panel-gBE2FWQr.js} +1 -1
  46. package/dist/assets/{panel-accordion-state-BO2rN4A5.js → panel-accordion-state-CCF5Gxnc.js} +1 -1
  47. package/dist/assets/{panels-Cy18qaTN.js → panels-BQYMF6p_.js} +1 -1
  48. package/dist/assets/{process-output-CDhnnF3f.js → process-output-Cw9IDcKQ.js} +1 -1
  49. package/dist/assets/{readonly-code-display-ChOK6mhE.js → readonly-code-display-DYcZQ28T.js} +1 -1
  50. package/dist/assets/{readonly-python-code-CVwB1OHZ.js → readonly-python-code-RFuQP50v.js} +1 -1
  51. package/dist/assets/{reveal-component-DE-4w0ik.js → reveal-component-yRrDmCQz.js} +2 -2
  52. package/dist/assets/{run-page-C6qwGqj6.js → run-page-CY65WUOu.js} +1 -1
  53. package/dist/assets/{runtime-details-state-BRSVs8um.js → runtime-details-state-pobtu6TO.js} +1 -1
  54. package/dist/assets/scratchpad-panel-H44_pvb_.js +1 -0
  55. package/dist/assets/{session-panel-B0CkZ3wl.js → session-panel-Bnd1iXkO.js} +1 -1
  56. package/dist/assets/{snippets-panel-CN-U1niV.js → snippets-panel-DKApxKx9.js} +1 -1
  57. package/dist/assets/{state-BRL89qqy.js → state-Bl9BiY_s.js} +1 -1
  58. package/dist/assets/{state-BoRCcWOg.js → state-Dv059B3A.js} +1 -1
  59. package/dist/assets/{tracing-CqxmObxN.js → tracing-Clwy4SlW.js} +1 -1
  60. package/dist/assets/{tracing-panel-Bn8xJSPi.js → tracing-panel-BwjLG_aC.js} +2 -2
  61. package/dist/assets/{tree-actions-DoPCJTpj.js → tree-actions-BZNTQ12N.js} +1 -1
  62. package/dist/assets/{useAddCell-DKb7o70l.js → useAddCell-Cjuqk2YR.js} +1 -1
  63. package/dist/assets/{useCellActionButton-CSNFulkR.js → useCellActionButton-MoWLvuGe.js} +1 -1
  64. package/dist/assets/{useDeleteCell-BPQ6Xcbj.js → useDeleteCell-BC-MW7d1.js} +1 -1
  65. package/dist/assets/{useDependencyPanelTab-4SMlwjEg.js → useDependencyPanelTab-CZU7i-B3.js} +1 -1
  66. package/dist/assets/{useNotebookActions-B4kq9-P4.js → useNotebookActions-wFxVdRXQ.js} +1 -1
  67. package/dist/assets/{useRunCells-BV6nl_Ok.js → useRunCells-ByaWxoIt.js} +1 -1
  68. package/dist/assets/{useSplitCell-Ca364Rrx.js → useSplitCell-YJIystwv.js} +1 -1
  69. package/dist/index.html +20 -20
  70. package/package.json +1 -1
  71. package/src/components/chat/acp/blocks.tsx +2 -2
  72. package/src/components/data-table/charts/__tests__/chart-panel.test.tsx +74 -1
  73. package/src/components/data-table/charts/__tests__/storage.test.ts +4 -1
  74. package/src/components/data-table/charts/charts.tsx +21 -6
  75. package/src/components/data-table/charts/storage.ts +16 -5
  76. package/src/components/editor/output/ansi-reduce.ts +6 -0
  77. package/src/components/editor/output/console/ConsoleOutput.tsx +11 -7
  78. package/src/components/editor/package-alert.tsx +4 -4
  79. package/src/components/scratchpad/scratchpad.tsx +2 -2
  80. package/src/components/slides/reveal-component.tsx +4 -2
  81. package/src/core/cells/__tests__/__snapshots__/cells.test.ts.snap +4 -0
  82. package/src/core/cells/__tests__/cell.test.ts +39 -0
  83. package/src/core/cells/__tests__/cells.test.ts +3 -1
  84. package/src/core/cells/__tests__/collapseConsoleOutputs.test.ts +54 -0
  85. package/src/core/cells/cell.ts +14 -3
  86. package/src/core/cells/cells.ts +1 -0
  87. package/src/core/cells/types.ts +10 -1
  88. package/src/plugins/impl/chat/chat-ui.tsx +1 -1
  89. package/dist/assets/feedback-button-Cz9BdS49.js +0 -1
  90. package/dist/assets/scratchpad-panel--SxH2dnk.js +0 -1
@@ -1579,7 +1579,9 @@ describe("cell reducer", () => {
1579
1579
  response: secret,
1580
1580
  });
1581
1581
 
1582
- expect(cells[0].consoleOutputs).toEqual([{ ...prompt, response: "" }]);
1582
+ expect(cells[0].consoleOutputs).toEqual([
1583
+ { ...prompt, id: 1, response: "" },
1584
+ ]);
1583
1585
  expect(JSON.stringify(cells[0].consoleOutputs)).not.toContain(secret);
1584
1586
  });
1585
1587
 
@@ -2,6 +2,7 @@
2
2
 
3
3
  import { describe, expect, it } from "vitest";
4
4
  import { StatefulOutputMessage } from "@/components/editor/output/ansi-reduce";
5
+ import type { ConsoleOutputMessage } from "@/core/cells/types";
5
6
  import type { OutputMessage } from "@/core/kernel/messages";
6
7
  import {
7
8
  collapseConsoleOutputs,
@@ -279,6 +280,59 @@ describe("collapseConsoleOutputs", () => {
279
280
  expect(result[0].data).toContain("Streaming output truncated");
280
281
  });
281
282
 
283
+ it("keeps the first id when collapsing outputs", () => {
284
+ const consoleOutputs = [
285
+ {
286
+ mimetype: "text/plain",
287
+ channel: "output",
288
+ data: "Hello ",
289
+ timestamp: 0,
290
+ id: 7,
291
+ },
292
+ {
293
+ mimetype: "text/plain",
294
+ channel: "output",
295
+ data: "World",
296
+ timestamp: 0,
297
+ id: 8,
298
+ },
299
+ ] satisfies ConsoleOutputMessage[];
300
+ const result = collapseConsoleOutputs(consoleOutputs);
301
+ expect(result).toHaveLength(1);
302
+ expect(result[0].data).toBe("Hello World");
303
+ expect((result[0] as ConsoleOutputMessage).id).toBe(7);
304
+ });
305
+
306
+ it("keeps ids on outputs that survive truncation", () => {
307
+ const consoleOutputs = [
308
+ {
309
+ mimetype: "text/plain",
310
+ channel: "output",
311
+ data: "one\ntwo",
312
+ timestamp: 0,
313
+ id: 1,
314
+ },
315
+ {
316
+ mimetype: "text/plain",
317
+ channel: "stderr",
318
+ data: "three\nfour",
319
+ timestamp: 0,
320
+ id: 2,
321
+ },
322
+ {
323
+ mimetype: "text/plain",
324
+ channel: "output",
325
+ data: "five",
326
+ timestamp: 0,
327
+ id: 3,
328
+ },
329
+ ] satisfies ConsoleOutputMessage[];
330
+ const result = collapseConsoleOutputs(consoleOutputs, 3);
331
+ const ids = result.map((output) => (output as ConsoleOutputMessage).id);
332
+ expect(result[0].data).toContain("Streaming output truncated");
333
+ expect(ids).toEqual([undefined, 2, 3]);
334
+ });
335
+
282
336
  describe("ANSI escape sequences", () => {
283
337
  it("should handle cursor movement with collapse", () => {
284
338
  const consoleOutputs: OutputMessage[] = [
@@ -7,7 +7,12 @@ import { parseOutline } from "../dom/outline";
7
7
  import type { CellMessage, OutputMessage } from "../kernel/messages";
8
8
  import type { RuntimeState } from "../network/types";
9
9
  import { collapseConsoleOutputs } from "./collapseConsoleOutputs";
10
- import type { CellRuntimeState } from "./types";
10
+ import type { CellRuntimeState, ConsoleOutputMessage } from "./types";
11
+
12
+ // Ids increase with position, so the last output holds the maximum.
13
+ function nextConsoleOutputId(outputs: ConsoleOutputMessage[]): number {
14
+ return (outputs.at(-1)?.id ?? 0) + 1;
15
+ }
11
16
 
12
17
  export function transitionCell(
13
18
  cell: CellRuntimeState,
@@ -133,6 +138,7 @@ export function transitionCell(
133
138
  mimetype: output.mimetype,
134
139
  data: output.data,
135
140
  timestamp: output.timestamp,
141
+ id: output.id,
136
142
  response: output.response ?? "",
137
143
  };
138
144
  }
@@ -146,8 +152,13 @@ export function transitionCell(
146
152
  // messageConsole is an output that needs to be appended to the
147
153
  // existing console outputs.
148
154
  consoleOutputs = Array.isArray(messageConsole)
149
- ? collapseConsoleOutputs(messageConsole)
150
- : collapseConsoleOutputs([...consoleOutputs, messageConsole]);
155
+ ? collapseConsoleOutputs(
156
+ messageConsole.map((output, i) => ({ ...output, id: i + 1 })),
157
+ )
158
+ : collapseConsoleOutputs([
159
+ ...consoleOutputs,
160
+ { ...messageConsole, id: nextConsoleOutputId(consoleOutputs) },
161
+ ]);
151
162
  }
152
163
  nextCell.consoleOutputs = consoleOutputs;
153
164
  // Derive outline from output
@@ -1114,6 +1114,7 @@ const {
1114
1114
  mimetype: stdinOutput.mimetype,
1115
1115
  data: stdinOutput.data,
1116
1116
  timestamp: stdinOutput.timestamp,
1117
+ id: stdinOutput.id,
1117
1118
  // An empty response resolves the prompt without retaining the secret.
1118
1119
  response: stdinOutput.mimetype === "text/password" ? "" : response,
1119
1120
  };
@@ -95,7 +95,7 @@ export interface CellRuntimeState {
95
95
  /** TOC outline */
96
96
  outline: Outline | null;
97
97
  /** messages encoding the cell's console outputs. */
98
- consoleOutputs: WithResponse<OutputMessage>[];
98
+ consoleOutputs: ConsoleOutputMessage[];
99
99
  /** current status of the cell */
100
100
  status: RuntimeState;
101
101
  /** whether the cell has stale inputs*/
@@ -130,3 +130,12 @@ export type WithResponse<T> = T & {
130
130
  */
131
131
  response?: string;
132
132
  };
133
+
134
+ /**
135
+ * A console output as held by the frontend. The id is assigned when the
136
+ * output arrives and never changes, so it can identify the output while
137
+ * neighboring outputs collapse, truncate, or receive a stdin response.
138
+ */
139
+ export type ConsoleOutputMessage = WithResponse<OutputMessage> & {
140
+ id?: number;
141
+ };
@@ -472,7 +472,7 @@ export const Chatbot: React.FC<Props> = (props) => {
472
472
 
473
473
  return (
474
474
  <div
475
- key={`${message.id}-${index}`}
475
+ key={message.id}
476
476
  className={cn(
477
477
  "flex flex-col group gap-2",
478
478
  message.role === "user" ? "items-end" : "items-start",
@@ -1 +0,0 @@
1
- import{n as e}from"./feedback-button-sC38i-D1.js";export{e as FeedbackModal};
@@ -1 +0,0 @@
1
- import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{c as t,f as n,l as ee,t as r,u as te}from"./useEvent-BDjgaBtz.js";import{t as i}from"./react-DVplv7_D.js";import{D as ne,I as re,Qr as a,Rt as ie,So as o,xo as ae}from"./cells-B23_t5uX.js";import{t as s}from"./compiler-runtime-BrajqUja.js";import{C as oe}from"./config-DpY86_Yq.js";import{_ as se}from"./useEventListener-CjDeLqFC.js";import{n as ce}from"./utils-B4K466FK.js";import{O as c}from"./config-CD1IuZFJ.js";import{t as le}from"./cn-ldLVeaqm.js";import{t as l}from"./jsx-runtime-B74pBk57.js";import{n as ue}from"./JsonOutput-nLzWQ-0V.js";import{t as u}from"./tooltip-CkGm8X7m.js";import{t as d}from"./button-D8gVKwe-.js";import{t as f}from"./createLucideIcon-DfJ2oMlA.js";import{l as de}from"./layout-DEFRD3k3.js";import{n as fe,t as pe}from"./LazyAnyLanguageCodeMirror-BPYE76jR.js";import{s as me}from"./toDate-DOj9Q6uC.js";import{t as he}from"./cell-editor-C6QIY1Q-.js";import{t as ge}from"./spinner-DyNE-o8o.js";import{i as _e}from"./useDeleteCell-BPQ6Xcbj.js";import{r as ve}from"./requests-BIFR-h4M.js";import{r as ye}from"./useTheme-BAA27lh7.js";import{n as be,r as xe,t as Se}from"./react-resizable-panels.browser.esm-Dbe0MrFr.js";import{a as Ce}from"./renderShortcut-rUwGqKgC.js";import{n as we,r as Te}from"./panel-context-C2QXpKfx.js";import{t as Ee}from"./kiosk-mode-DFS6HopF.js";var De=f(`eraser`,[[`path`,{d:`M21 21H8a2 2 0 0 1-1.42-.587l-3.994-3.999a2 2 0 0 1 0-2.828l10-10a2 2 0 0 1 2.829 0l5.999 6a2 2 0 0 1 0 2.828L12.834 21`,key:`g5wo59`}],[`path`,{d:`m5.082 11.09 8.828 8.828`,key:`1wx5vj`}]]),Oe=f(`history`,[[`path`,{d:`M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8`,key:`1357e3`}],[`path`,{d:`M3 3v5h5`,key:`1xhq8a`}],[`path`,{d:`M12 7v5l4 2`,key:`1fdv2h`}]]),p=e(i(),1),ke=s(),m=15,h=c(`marimo:scratchpadHistory:v1`,[],a),Ae=n(!1),je=n(null,(e,t,n)=>{if(n=n.trim(),!n)return;let ee=e(h);t(h,[n,...ee.filter(e=>e!==n)].slice(0,m))}),g=l(),Me={hide_code:!1,disabled:!1},_=()=>{let e=(0,ke.c)(60),n=re(),[i]=oe(),{theme:a}=ye(),s=(0,p.useRef)(null),c=ie(),{createNewCell:l,updateCellCode:f}=ne(),{sendRunScratchpad:m}=ve(),_=we(),v=Te(),y=n.cellRuntime[o],b=y?.output,x=y?.status,S=y?.consoleOutputs,C=n.cellData.__scratch__?.code??``,w=te(je),[T,E]=t(Ae),D=ee(h),O;e[0]!==w||e[1]!==C||e[2]!==m?(O=()=>{m({code:C}),w(C)},e[0]=w,e[1]=C,e[2]=m,e[3]=O):O=e[3];let k=r(O),A;e[4]!==C||e[5]!==l||e[6]!==c?(A=()=>{C.trim()&&l({code:C,before:!1,cellId:c??`__end__`})},e[4]=C,e[5]=l,e[6]=c,e[7]=A):A=e[7];let j=r(A),M;e[8]!==m||e[9]!==f?(M=()=>{f({cellId:o,code:``,formattingChange:!1}),m({code:``});let e=s.current;e&&e.dispatch({changes:{from:0,to:e.state.doc.length,insert:``}})},e[8]=m,e[9]=f,e[10]=M):M=e[10];let N=r(M),P;e[11]!==E||e[12]!==f?(P=e=>{E(!1),f({cellId:o,code:e,formattingChange:!1});let t=s.current;t&&t.dispatch({changes:{from:0,to:t.state.doc.length,insert:e}})},e[11]=E,e[12]=f,e[13]=P):P=e[13];let F=r(P),[I,Ne]=(0,p.useState)(),L;e[14]!==F||e[15]!==D||e[16]!==T||e[17]!==a?(L=()=>T?(0,g.jsx)(`div`,{className:`absolute inset-0 z-100 bg-background p-3 border-none overflow-auto`,children:(0,g.jsx)(`div`,{className:`overflow-auto flex flex-col gap-3`,children:D.map((e,t)=>(0,g.jsx)(`div`,{className:`border rounded-md hover:shadow-sm cursor-pointer hover:border-input overflow-hidden`,onClick:()=>F(e),children:(0,g.jsx)(p.Suspense,{children:(0,g.jsx)(pe,{language:`python`,theme:a,basicSetup:{highlightActiveLine:!1,highlightActiveLineGutter:!1},value:e.trim(),editable:!1,readOnly:!0})})},t))})}):null,e[14]=F,e[15]=D,e[16]=T,e[17]=a,e[18]=L):L=e[18];let R=L,z;e[19]!==N||e[20]!==j||e[21]!==k||e[22]!==D.length||e[23]!==T||e[24]!==E||e[25]!==x?(z=()=>(0,g.jsxs)(`div`,{className:`flex items-center shrink-0 border-b`,children:[(0,g.jsx)(u,{content:Ce(`cell.run`),children:(0,g.jsx)(d,{"data-testid":`scratchpad-run-button`,onClick:k,disabled:T,variant:`text`,size:`xs`,children:(0,g.jsx)(_e,{color:`var(--grass-11)`,size:16})})}),(0,g.jsx)(u,{content:`Clear code and outputs`,children:(0,g.jsx)(d,{disabled:T,size:`xs`,variant:`text`,onClick:N,children:(0,g.jsx)(De,{size:16})})}),(0,g.jsx)(Ee,{children:(0,g.jsx)(u,{content:`Insert code`,children:(0,g.jsx)(d,{disabled:T,size:`xs`,variant:`text`,onClick:j,children:(0,g.jsx)(fe,{size:16})})})}),(x===`running`||x===`queued`)&&(0,g.jsx)(ge,{className:`inline`,size:`small`}),(0,g.jsx)(`div`,{className:`flex-1`}),(0,g.jsx)(u,{content:`Toggle history`,children:(0,g.jsx)(d,{size:`xs`,variant:`text`,className:le(T&&`bg-(--sky-3) rounded-none`),onClick:()=>E(!T),disabled:D.length===0,children:(0,g.jsx)(Oe,{size:16})})}),(0,g.jsx)(u,{content:(0,g.jsx)(`span`,{className:`block max-w-prose`,children:`Use this scratchpad to experiment with code without restrictions on variable names. Variables defined here aren't saved to notebook memory, and the code is not saved in the notebook file.`}),children:(0,g.jsx)(d,{size:`xs`,variant:`text`,children:(0,g.jsx)(me,{size:16})})})]}),e[19]=N,e[20]=j,e[21]=k,e[22]=D.length,e[23]=T,e[24]=E,e[25]=x,e[26]=z):z=e[26];let B=z,Pe=_===`vertical`,V;e[27]===Symbol.for(`react.memo_cache_sentinel`)?(V=ae.create(o),e[27]=V):V=e[27];let H;e[28]===B?H=e[29]:(H=B(),e[28]=B,e[29]=H);let U;e[30]===Symbol.for(`react.memo_cache_sentinel`)?(U=e=>{s.current=e},e[30]=U):U=e[30];let W;e[31]!==C||e[32]!==k||e[33]!==I||e[34]!==a||e[35]!==i?(W=(0,g.jsx)(`div`,{className:`flex-1 overflow-auto`,children:(0,g.jsx)(he,{theme:a,showPlaceholder:!1,id:o,code:C,config:Me,status:`idle`,serializedEditorState:null,runCell:k,userConfig:i,editorViewRef:s,setEditorView:U,hidden:!1,showHiddenCode:se.NOOP,languageAdapter:I,setLanguageAdapter:Ne})}),e[31]=C,e[32]=k,e[33]=I,e[34]=a,e[35]=i,e[36]=W):W=e[36];let G;e[37]===R?G=e[38]:(G=R(),e[37]=R,e[38]=G);let K;e[39]!==G||e[40]!==H||e[41]!==W?(K=(0,g.jsx)(Se,{defaultSize:40,minSize:20,maxSize:70,children:(0,g.jsxs)(`div`,{className:`h-full flex flex-col overflow-hidden relative`,children:[H,W,G]})}),e[39]=G,e[40]=H,e[41]=W,e[42]=K):K=e[42];let q=Pe?`h-1`:`w-1`,J;e[43]===q?J=e[44]:(J=le(`bg-border hover:bg-primary/50 transition-colors`,q),e[43]=q,e[44]=J);let Y;e[45]===J?Y=e[46]:(Y=(0,g.jsx)(xe,{className:J}),e[45]=J,e[46]=Y);let X;e[47]===b?X=e[48]:(X=(0,g.jsx)(`div`,{className:`flex-1 overflow-auto`,children:(0,g.jsx)(ue,{allowExpand:!1,output:b,className:ce.outputArea,cellId:o,stale:!1,loading:!1})}),e[47]=b,e[48]=X);let Z;e[49]===S?Z=e[50]:(Z=(0,g.jsx)(`div`,{className:`overflow-auto shrink-0 max-h-[50%]`,children:(0,g.jsx)(de,{consoleOutputs:S,className:`overflow-auto`,stale:!1,interrupted:!1,cellName:`_`,onSubmitDebugger:se.NOOP,cellId:o,debuggerActive:!1})}),e[49]=S,e[50]=Z);let Q;e[51]!==X||e[52]!==Z?(Q=(0,g.jsx)(Se,{defaultSize:60,minSize:20,children:(0,g.jsxs)(`div`,{className:`h-full flex flex-col divide-y overflow-hidden`,children:[X,Z]})}),e[51]=X,e[52]=Z,e[53]=Q):Q=e[53];let $;return e[54]!==_||e[55]!==v||e[56]!==K||e[57]!==Y||e[58]!==Q?($=(0,g.jsx)(`div`,{className:`flex flex-col h-full overflow-hidden`,id:V,children:(0,g.jsxs)(be,{direction:_,className:`h-full`,children:[K,Y,Q]},v)}),e[54]=_,e[55]=v,e[56]=K,e[57]=Y,e[58]=Q,e[59]=$):$=e[59],$},v=()=>{let e=(0,ke.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,g.jsx)(_,{}),e[0]=t):t=e[0],t};export{v as default};