@marimo-team/islands 0.25.3-dev267 → 0.25.3-dev269
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.
- package/dist/{ConnectedDataExplorerComponent-C4yCN38h.js → ConnectedDataExplorerComponent-eLHPh6uu.js} +8 -8
- package/dist/{ErrorBoundary-CewXPyL5.js → ErrorBoundary-DCtynjHZ.js} +4 -4
- package/dist/{abnfDiagram-VCTEODGH-o6Ay6Q63.js → abnfDiagram-VCTEODGH-hqd0IBtX.js} +2 -2
- package/dist/{architectureDiagram-5GKGNRK7-BhiwwlVg.js → architectureDiagram-5GKGNRK7-BzLAFcc0.js} +1 -1
- package/dist/{strings-BCKpLFNU.js → assertNever-DIU3JJbt.js} +14 -14
- package/dist/{chat-ui-CbgR5ivy.js → chat-ui-BWIkve2R.js} +17 -17
- package/dist/{chunk-IMKFNOWR-WMSMf4Nj.js → chunk-IMKFNOWR-DOeVvuyE.js} +1 -1
- package/dist/{chunk-SHT3W25Y-BRfADrzD.js → chunk-SHT3W25Y-DZoFI8wR.js} +1 -1
- package/dist/{chunk-SVP7TREG-CuK5QFre.js → chunk-SVP7TREG-CWu86PSW.js} +1 -1
- package/dist/{chunk-TICWLB2K-Bcun_jhJ.js → chunk-TICWLB2K-BrM0GoP3.js} +1 -1
- package/dist/{classDiagram-ZZMXUADV-CgWDbUDT.js → classDiagram-ZZMXUADV-DYi4V2bB.js} +2 -2
- package/dist/{classDiagram-v2-VYDZK3BY-DYmc9SFU.js → classDiagram-v2-VYDZK3BY-tN7FIk-m.js} +2 -2
- package/dist/{code-visibility-BKBl9Rh6.js → code-visibility-CMF5tcNj.js} +44 -47
- package/dist/{common-N3Jd_6m9.js → common-DYAjQ1bK.js} +4866 -4857
- package/dist/{config-CmeG_Pb6.js → config-BsPruWMR.js} +2 -2
- package/dist/{createReducer-C_syF8Td.js → createReducer-DdtT_7ji.js} +1 -1
- package/dist/{cynefinDiagram-5FMLGOSQ-PPKWipjT.js → cynefinDiagram-5FMLGOSQ-D5nCnDc-.js} +1 -1
- package/dist/{dagre-GXQ25YYZ-niRBZh--.js → dagre-GXQ25YYZ-BHkd7f_i.js} +1 -1
- package/dist/{data-grid-overlay-editor-Cp59CrqZ.js → data-grid-overlay-editor-B6oND8pX.js} +1 -1
- package/dist/{diagram-S7CK7UJ4-DPiP9rot.js → diagram-S7CK7UJ4-D1ALppT2.js} +1 -1
- package/dist/{diagram-UQ7AKVKN-B0WZuaxV.js → diagram-UQ7AKVKN-DLv0b83L.js} +1 -1
- package/dist/{diagram-VX7I27RA-Rn42WBuN.js → diagram-VX7I27RA-7XJ7J6qg.js} +1 -1
- package/dist/{diagram-Z3DM3KII-BB93--ry.js → diagram-Z3DM3KII-7M7zbHp_.js} +1 -1
- package/dist/{dialog-BtprQCUw.js → dialog-DzCj1qQv.js} +1 -1
- package/dist/{dropdown-menu-BpImEfn3.js → dropdown-menu-CdXE15an.js} +3 -3
- package/dist/{ebnfDiagram-PWID7BFC-V4t5h6mZ.js → ebnfDiagram-PWID7BFC-DHH1qlmV.js} +2 -2
- package/dist/{erDiagram-RLTQ6QDP-C1MsAKXd.js → erDiagram-RLTQ6QDP-fI_0dGef.js} +1 -1
- package/dist/{error-entries-CJGdD2ky.js → error-entries-CxN-Nq3V.js} +519 -458
- package/dist/{feedback-button-Qc1f9iPq.js → feedback-button-BelKx6R5.js} +22 -22
- package/dist/{flowDiagram-HODETNUW-DHjeJP96.js → flowDiagram-HODETNUW-Brg9MA6i.js} +2 -2
- package/dist/{formats-gGospKWJ.js → formats-DbSvAPY-.js} +1 -1
- package/dist/{glide-data-editor-hCq3K0sd.js → glide-data-editor-CMZ-kv0S.js} +11 -11
- package/dist/{glide-utils-DC3sk6EX.js → glide-utils-BSw3SSHF.js} +1 -1
- package/dist/{globals-B2_uMYDY.js → globals-DV77npCG.js} +2 -2
- package/dist/{html-to-image-S7spRQCi.js → html-to-image-Bc2AvXHG.js} +5121 -5121
- package/dist/{infoDiagram-27XIBGKW-Dovv6iKx.js → infoDiagram-27XIBGKW-E9e403YT.js} +1 -1
- package/dist/{ishikawaDiagram-5VMMS53U-D2nyygsc.js → ishikawaDiagram-5VMMS53U-C-RlYDRo.js} +1 -1
- package/dist/{kanban-definition-UXKFOSKX-KyVx0uTY.js → kanban-definition-UXKFOSKX-CLFl_uqK.js} +1 -1
- package/dist/main.js +5972 -6003
- package/dist/{mermaid-B-jKSwGt.js → mermaid-rd09e1JL.js} +34 -34
- package/dist/{mindmap-definition-YA3MSWOX-Bz9tKQFl.js → mindmap-definition-YA3MSWOX-BQ8TWtyB.js} +1 -1
- package/dist/{number-overlay-editor-CfNYvbdz.js → number-overlay-editor-CFTuKnrY.js} +1 -1
- package/dist/{pegDiagram-XKGWAZYB-C_qpq6Tv.js → pegDiagram-XKGWAZYB-CN8UHFPi.js} +2 -2
- package/dist/{pieDiagram-E7YTZNPT-Bp9ucgI4.js → pieDiagram-E7YTZNPT-DGuJ0EBd.js} +1 -1
- package/dist/{process-output-f34bkXTm.js → process-output-qecD7Dk8.js} +3 -3
- package/dist/{railroadDiagram-O6MQD6OU-tq-VEH6j.js → railroadDiagram-O6MQD6OU-BPDA8wy8.js} +2 -2
- package/dist/{requirementDiagram-BXWQKSXE-DW-vHadb.js → requirementDiagram-BXWQKSXE-ChzLGbGW.js} +1 -1
- package/dist/{reveal-component-CUxv-kkP.js → reveal-component-Doix35eL.js} +1094 -1094
- package/dist/{select-C33FVPPN.js → select-OxgozOC8.js} +1 -1
- package/dist/{sequenceDiagram-WJ2MYXX4-Dv9U9qRP.js → sequenceDiagram-WJ2MYXX4-DFX-bE6O.js} +1 -1
- package/dist/{spec-DH1lmF7Q.js → spec-oJn0RhpQ.js} +2 -2
- package/dist/{stateDiagram-D77RDMKH-DTmPQ0EB.js → stateDiagram-D77RDMKH-BR7cI3wK.js} +2 -2
- package/dist/{stateDiagram-v2-MP3YSRHH-CkCif0Iw.js → stateDiagram-v2-MP3YSRHH-oGqB5UDI.js} +2 -2
- package/dist/{static-state-BldGd99T.js → static-state-CuV6Pc3a.js} +1 -1
- package/dist/{swimlanes-42K2YHIH-21kCq6l8.js → swimlanes-42K2YHIH-DwSZl1yC.js} +1 -1
- package/dist/{swimlanesDiagram-VR7AAH4N-BpRJP6KU.js → swimlanesDiagram-VR7AAH4N-BHlcd-Ri.js} +2 -2
- package/dist/{timeline-definition-24CTP7MA-Ckgh4lS4.js → timeline-definition-24CTP7MA-DMmP-G2O.js} +1 -1
- package/dist/{toast-DpczUryP.js → toast-DbBHmxmB.js} +1 -1
- package/dist/{useAsyncData-DsZMvNXn.js → useAsyncData-BYIAoMqn.js} +1 -1
- package/dist/{useDateFormatter-Dk_xFci4.js → useDateFormatter-ButWkdcK.js} +1 -1
- package/dist/{useDeepCompareMemoize-KMBBux8C.js → useDeepCompareMemoize-Bz0c5GN6.js} +1 -1
- package/dist/{useTheme-BZ2GGLgm.js → useTheme-DPLobSFs.js} +7 -7
- package/dist/{utils-DXkj82sK.js → utils-EBklsC5R.js} +31 -31
- package/dist/{vega-component-CF9kI6C4.js → vega-component-rxIxAAh9.js} +6 -6
- package/dist/{vennDiagram-4TSXK5OY-CDei2Bt3.js → vennDiagram-4TSXK5OY-Db8GtH1G.js} +1 -1
- package/dist/{wardleyDiagram-VM6X3IG4-CXavT601.js → wardleyDiagram-VM6X3IG4-DmIiC3FU.js} +1 -1
- package/dist/{xychartDiagram-S5SC5T6Z-CvJhcZri.js → xychartDiagram-S5SC5T6Z-DS9OPrNq.js} +1 -1
- package/package.json +1 -1
- package/src/__mocks__/executions.ts +195 -0
- package/src/__mocks__/notebook.ts +0 -1
- package/src/__tests__/CellStatus.test.tsx +19 -20
- package/src/components/dependency-graph/minimap-content.tsx +3 -2
- package/src/components/editor/__tests__/data-attributes.test.tsx +0 -7
- package/src/components/editor/__tests__/output-persistence.test.tsx +2 -2
- package/src/components/editor/actions/__tests__/useCellActionButton.test.tsx +1 -0
- package/src/components/editor/actions/useCellActionButton.tsx +7 -3
- package/src/components/editor/alerts/stdin-blocking-alert.tsx +3 -1
- package/src/components/editor/cell/CellStatus.tsx +23 -19
- package/src/components/editor/cell/RunButton.tsx +16 -6
- package/src/components/editor/cell/__tests__/useRunCells.test.ts +45 -0
- package/src/components/editor/cell/cell-context-menu.tsx +4 -1
- package/src/components/editor/cell/code/cell-editor.tsx +7 -5
- package/src/components/editor/cell/collapse.tsx +4 -0
- package/src/components/editor/cell/useRunCells.ts +18 -3
- package/src/components/editor/chrome/wrapper/sidebar.tsx +2 -4
- package/src/components/editor/header/status.tsx +4 -2
- package/src/components/editor/navigation/navigation.ts +3 -2
- package/src/components/editor/notebook-cell.tsx +82 -83
- package/src/components/editor/renderers/grid-layout/__tests__/grid-layout.test.tsx +75 -0
- package/src/components/editor/renderers/grid-layout/grid-layout.tsx +22 -16
- package/src/components/editor/renderers/slides-layout/__tests__/plugin.test.ts +0 -1
- package/src/components/editor/renderers/vertical-layout/vertical-layout.tsx +12 -33
- package/src/components/editor/stdin-blocking-alert.tsx +3 -1
- package/src/components/scratchpad/scratchpad.tsx +4 -1
- package/src/components/slides/minimap.tsx +4 -2
- package/src/components/slides/reveal-component.tsx +14 -10
- package/src/components/slides/slide-cell-view.tsx +28 -24
- package/src/components/slides/slide.tsx +3 -4
- package/src/core/cells/__tests__/__snapshots__/cells.test.ts.snap +0 -389
- package/src/core/cells/__tests__/cell.test.ts +49 -154
- package/src/core/cells/__tests__/cells.test.ts +18 -127
- package/src/core/cells/__tests__/pending-delete-service.test.tsx +11 -20
- package/src/core/cells/__tests__/utils.test.ts +75 -247
- package/src/core/cells/actions.ts +5 -2
- package/src/core/cells/cell.ts +31 -133
- package/src/core/cells/cells.ts +14 -29
- package/src/core/cells/document.ts +3 -3
- package/src/core/cells/focus.ts +27 -6
- package/src/core/cells/layout.ts +1 -1
- package/src/core/cells/pending-delete-service.ts +5 -7
- package/src/core/cells/types.ts +13 -36
- package/src/core/cells/utils.ts +37 -68
- package/src/core/edit-app.tsx +2 -1
- package/src/core/executions/__tests__/atoms.test.ts +99 -0
- package/src/core/executions/__tests__/select.test.ts +268 -0
- package/src/core/executions/atoms.ts +206 -0
- package/src/core/executions/hooks.ts +31 -0
- package/src/core/executions/index.ts +31 -0
- package/src/core/executions/select.ts +175 -0
- package/src/core/export/__tests__/hooks.test.ts +0 -5
- package/src/core/islands/bootstrap.ts +4 -1
- package/src/core/islands/components/output-wrapper.tsx +5 -5
- package/src/core/kernel/handlers.ts +2 -11
- package/src/core/kernel/state.ts +0 -15
- package/src/core/lifecycle/render-policy.ts +12 -26
- package/src/core/network/__tests__/requests-lazy.test.ts +5 -5
- package/src/core/network/requests-lazy.ts +3 -3
- package/src/core/notebook/operations.ts +1 -1
- package/src/core/run-app.tsx +2 -1
- package/src/core/runtime/__tests__/adapter.test.ts +3 -3
- package/src/core/runtime/adapter.ts +4 -4
- package/src/core/session/useNotebookSession.tsx +3 -3
- package/src/core/wasm/bridge.ts +1 -1
- package/src/plugins/core/RenderHTML.tsx +3 -5
- package/src/plugins/core/__test__/RenderHTML-copy.test.tsx +60 -0
- package/src/plugins/core/registerReactComponent.tsx +4 -13
- package/src/stories/cell-status.stories.tsx +17 -10
- package/src/stories/cell.stories.tsx +0 -31
- package/src/stories/layout/vertical/one-column.stories.tsx +0 -9
- package/src/utils/time.ts +10 -0
|
@@ -24,9 +24,9 @@ import ReactDOM, { type Root } from "react-dom/client";
|
|
|
24
24
|
import useEvent from "react-use-event-hook";
|
|
25
25
|
import { type ZodSchema, z } from "zod";
|
|
26
26
|
import { TooltipProvider } from "@/components/ui/tooltip";
|
|
27
|
-
import { notebookAtom } from "@/core/cells/cells.ts";
|
|
28
27
|
import { HTMLCellId } from "@/core/cells/ids.ts";
|
|
29
28
|
import { isUninstantiated } from "@/core/cells/utils";
|
|
29
|
+
import { cellExecutionInputsAtom, cellExecutionView } from "@/core/executions";
|
|
30
30
|
import { createInputEvent, MarimoValueUpdateEvent } from "@/core/dom/events";
|
|
31
31
|
import { getUIElementObjectId } from "@/core/dom/ui-element";
|
|
32
32
|
import { UIElementRegistry } from "@/core/dom/uiregistry";
|
|
@@ -205,18 +205,9 @@ function PluginSlotInternal<T>(
|
|
|
205
205
|
if (cellId && !isStatic) {
|
|
206
206
|
// If the cell is not initialized, throw an error
|
|
207
207
|
// Continue if the cell is static, so we can propagate a clearer error message.
|
|
208
|
-
const
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
const cellNotInitialized = isUninstantiated({
|
|
213
|
-
executionTime:
|
|
214
|
-
cellRuntime.runElapsedTimeMs ?? cellData.lastExecutionTime,
|
|
215
|
-
status: cellRuntime.status,
|
|
216
|
-
errored: cellRuntime.errored,
|
|
217
|
-
interrupted: cellRuntime.interrupted,
|
|
218
|
-
stopped: cellRuntime.stopped,
|
|
219
|
-
});
|
|
208
|
+
const cellNotInitialized = isUninstantiated(
|
|
209
|
+
cellExecutionView(store.get(cellExecutionInputsAtom), cellId),
|
|
210
|
+
);
|
|
220
211
|
|
|
221
212
|
if (cellNotInitialized) {
|
|
222
213
|
throw new CellNotInitializedError();
|
|
@@ -5,6 +5,7 @@ import {
|
|
|
5
5
|
type CellStatusComponentProps,
|
|
6
6
|
} from "@/components/editor/cell/CellStatus";
|
|
7
7
|
import { TooltipProvider } from "@/components/ui/tooltip";
|
|
8
|
+
import type { Milliseconds } from "@/utils/time";
|
|
8
9
|
|
|
9
10
|
const meta: Meta<typeof CellStatusComponent> = {
|
|
10
11
|
title: "CellStatusComponent",
|
|
@@ -39,7 +40,7 @@ Edited.args = {
|
|
|
39
40
|
edited: true,
|
|
40
41
|
interrupted: false,
|
|
41
42
|
disabled: false,
|
|
42
|
-
elapsedTime: 100,
|
|
43
|
+
elapsedTime: 100 as Milliseconds,
|
|
43
44
|
};
|
|
44
45
|
|
|
45
46
|
export const Interrupted = Template.bind({});
|
|
@@ -49,7 +50,7 @@ Interrupted.args = {
|
|
|
49
50
|
edited: false,
|
|
50
51
|
interrupted: true,
|
|
51
52
|
disabled: false,
|
|
52
|
-
elapsedTime: 50,
|
|
53
|
+
elapsedTime: 50 as Milliseconds,
|
|
53
54
|
};
|
|
54
55
|
|
|
55
56
|
export const Running = Template.bind({});
|
|
@@ -59,7 +60,7 @@ Running.args = {
|
|
|
59
60
|
edited: false,
|
|
60
61
|
interrupted: true,
|
|
61
62
|
disabled: false,
|
|
62
|
-
elapsedTime: 50,
|
|
63
|
+
elapsedTime: 50 as Milliseconds,
|
|
63
64
|
};
|
|
64
65
|
|
|
65
66
|
export const Queued = Template.bind({});
|
|
@@ -69,7 +70,7 @@ Queued.args = {
|
|
|
69
70
|
edited: false,
|
|
70
71
|
interrupted: true,
|
|
71
72
|
disabled: false,
|
|
72
|
-
elapsedTime: 50,
|
|
73
|
+
elapsedTime: 50 as Milliseconds,
|
|
73
74
|
};
|
|
74
75
|
|
|
75
76
|
export const Disabled = Template.bind({});
|
|
@@ -85,7 +86,8 @@ Disabled.args = {
|
|
|
85
86
|
export const DisabledTransitively = Template.bind({});
|
|
86
87
|
DisabledTransitively.args = {
|
|
87
88
|
editing: true,
|
|
88
|
-
status: "
|
|
89
|
+
status: "idle",
|
|
90
|
+
blocked: true,
|
|
89
91
|
edited: false,
|
|
90
92
|
interrupted: false,
|
|
91
93
|
disabled: false,
|
|
@@ -95,7 +97,8 @@ DisabledTransitively.args = {
|
|
|
95
97
|
export const DisabledTransitivelyAndEdited = Template.bind({});
|
|
96
98
|
DisabledTransitivelyAndEdited.args = {
|
|
97
99
|
editing: true,
|
|
98
|
-
status: "
|
|
100
|
+
status: "idle",
|
|
101
|
+
blocked: true,
|
|
99
102
|
edited: true,
|
|
100
103
|
interrupted: false,
|
|
101
104
|
disabled: false,
|
|
@@ -105,7 +108,8 @@ DisabledTransitivelyAndEdited.args = {
|
|
|
105
108
|
export const Stale = Template.bind({});
|
|
106
109
|
Stale.args = {
|
|
107
110
|
editing: true,
|
|
108
|
-
status: "
|
|
111
|
+
status: "idle",
|
|
112
|
+
blocked: true,
|
|
109
113
|
staleInputs: true,
|
|
110
114
|
edited: false,
|
|
111
115
|
interrupted: false,
|
|
@@ -116,7 +120,8 @@ Stale.args = {
|
|
|
116
120
|
export const StaleAndDisabled = Template.bind({});
|
|
117
121
|
StaleAndDisabled.args = {
|
|
118
122
|
editing: true,
|
|
119
|
-
status: "
|
|
123
|
+
status: "idle",
|
|
124
|
+
blocked: true,
|
|
120
125
|
staleInputs: true,
|
|
121
126
|
edited: false,
|
|
122
127
|
interrupted: false,
|
|
@@ -127,7 +132,8 @@ StaleAndDisabled.args = {
|
|
|
127
132
|
export const EditedStaleAndDisabled = Template.bind({});
|
|
128
133
|
EditedStaleAndDisabled.args = {
|
|
129
134
|
editing: true,
|
|
130
|
-
status: "
|
|
135
|
+
status: "idle",
|
|
136
|
+
blocked: true,
|
|
131
137
|
staleInputs: true,
|
|
132
138
|
interrupted: false,
|
|
133
139
|
disabled: true,
|
|
@@ -137,7 +143,8 @@ EditedStaleAndDisabled.args = {
|
|
|
137
143
|
export const EditedAndStale = Template.bind({});
|
|
138
144
|
EditedAndStale.args = {
|
|
139
145
|
editing: true,
|
|
140
|
-
status: "
|
|
146
|
+
status: "idle",
|
|
147
|
+
blocked: true,
|
|
141
148
|
edited: true,
|
|
142
149
|
interrupted: false,
|
|
143
150
|
disabled: false,
|
|
@@ -15,19 +15,14 @@ import { requestClientAtom } from "@/core/network/requests";
|
|
|
15
15
|
import { resolveRequestClient } from "@/core/network/resolve";
|
|
16
16
|
import type { CellConfig } from "@/core/network/types";
|
|
17
17
|
import { ConnectionState } from "@/core/session/types";
|
|
18
|
-
import type { Milliseconds, Seconds } from "@/utils/time";
|
|
19
18
|
import { Cell as EditorCell } from "../components/editor/notebook-cell";
|
|
20
19
|
import { TooltipProvider } from "../components/ui/tooltip";
|
|
21
20
|
|
|
22
21
|
type Story = StoryObj<typeof Cell>;
|
|
23
22
|
|
|
24
23
|
interface CellOverrides {
|
|
25
|
-
runElapsedTimeMs?: Milliseconds;
|
|
26
24
|
output?: CellRuntimeState["output"];
|
|
27
25
|
edited?: boolean;
|
|
28
|
-
interrupted?: boolean;
|
|
29
|
-
errored?: boolean;
|
|
30
|
-
status?: CellRuntimeState["status"];
|
|
31
26
|
staleInputs?: boolean;
|
|
32
27
|
config?: CellConfig;
|
|
33
28
|
}
|
|
@@ -51,22 +46,14 @@ const Cell: React.FC<{
|
|
|
51
46
|
column: null,
|
|
52
47
|
},
|
|
53
48
|
lastCodeRun: null,
|
|
54
|
-
lastExecutionTime: null,
|
|
55
49
|
},
|
|
56
50
|
},
|
|
57
51
|
cellIds: [cid],
|
|
58
52
|
cellRuntime: {
|
|
59
53
|
[cid]: createCellRuntimeState({
|
|
60
54
|
output: overrides.output ?? null,
|
|
61
|
-
runElapsedTimeMs: overrides.runElapsedTimeMs ?? (10 as Milliseconds),
|
|
62
|
-
status: overrides.status ?? "idle",
|
|
63
55
|
consoleOutputs: [],
|
|
64
|
-
interrupted: overrides.interrupted ?? false,
|
|
65
|
-
errored: overrides.errored ?? false,
|
|
66
|
-
stopped: false,
|
|
67
56
|
staleInputs: overrides.staleInputs ?? false,
|
|
68
|
-
runStartTimestamp: 0 as Seconds,
|
|
69
|
-
lastRunStartTimestamp: 0 as Seconds,
|
|
70
57
|
debuggerActive: false,
|
|
71
58
|
outline: null,
|
|
72
59
|
}),
|
|
@@ -121,7 +108,6 @@ export const WithOutput: Story = {
|
|
|
121
108
|
<div className="p-20 max-w-4xl">
|
|
122
109
|
<Cell
|
|
123
110
|
overrides={{
|
|
124
|
-
runElapsedTimeMs: 20 as Milliseconds,
|
|
125
111
|
output: {
|
|
126
112
|
channel: "output",
|
|
127
113
|
data: "<span class='markdown'><h1>Layout</h1>\n<p><code>marimo</code> provides functions to help you lay out your output, such as\nin rows and columns, accordions, tabs, and callouts. This tutorial\nshows some examples.</p></span>",
|
|
@@ -139,7 +125,6 @@ export const WithLargeOutput: Story = {
|
|
|
139
125
|
<div className="p-20 max-w-4xl">
|
|
140
126
|
<Cell
|
|
141
127
|
overrides={{
|
|
142
|
-
runElapsedTimeMs: 20 as Milliseconds,
|
|
143
128
|
output: {
|
|
144
129
|
channel: "output",
|
|
145
130
|
data: "<span class='markdown'><h1>Layout</h1>\n<p><code>marimo</code> provides functions to help you lay out your output, such as\nin rows and columns, accordions, tabs, and callouts. This tutorial\nshows some examples.</p></span>".repeat(
|
|
@@ -160,7 +145,6 @@ export const UnsavedEditsOutput: Story = {
|
|
|
160
145
|
<TooltipProvider>
|
|
161
146
|
<Cell
|
|
162
147
|
overrides={{
|
|
163
|
-
runElapsedTimeMs: 20 as Milliseconds,
|
|
164
148
|
edited: true,
|
|
165
149
|
output: {
|
|
166
150
|
channel: "output",
|
|
@@ -181,8 +165,6 @@ export const InterruptedOutput: Story = {
|
|
|
181
165
|
<TooltipProvider>
|
|
182
166
|
<Cell
|
|
183
167
|
overrides={{
|
|
184
|
-
runElapsedTimeMs: 20 as Milliseconds,
|
|
185
|
-
interrupted: true,
|
|
186
168
|
output: {
|
|
187
169
|
channel: "output",
|
|
188
170
|
data: "<span class='markdown'><h1>Layout</h1>\n<p><code>marimo</code> provides functions to help you lay out your output, such as\nin rows and columns, accordions, tabs, and callouts. This tutorial\nshows some examples.</p></span>",
|
|
@@ -201,8 +183,6 @@ export const WithError: Story = {
|
|
|
201
183
|
<div className="p-20 max-w-4xl">
|
|
202
184
|
<Cell
|
|
203
185
|
overrides={{
|
|
204
|
-
runElapsedTimeMs: 20 as Milliseconds,
|
|
205
|
-
errored: true,
|
|
206
186
|
output: {
|
|
207
187
|
channel: "output",
|
|
208
188
|
data: "<span class='markdown'><h1>Layout</h1>\n<p><code>marimo</code> provides functions to help you lay out your output, such as\nin rows and columns, accordions, tabs, and callouts. This tutorial\nshows some examples.</p></span>",
|
|
@@ -220,7 +200,6 @@ export const Disabled: Story = {
|
|
|
220
200
|
<div className="p-20 max-w-4xl">
|
|
221
201
|
<Cell
|
|
222
202
|
overrides={{
|
|
223
|
-
runElapsedTimeMs: 20 as Milliseconds,
|
|
224
203
|
config: {
|
|
225
204
|
disabled: true,
|
|
226
205
|
hide_code: false,
|
|
@@ -243,8 +222,6 @@ export const DisabledTransitively: Story = {
|
|
|
243
222
|
<div className="p-20 max-w-4xl">
|
|
244
223
|
<Cell
|
|
245
224
|
overrides={{
|
|
246
|
-
runElapsedTimeMs: 20 as Milliseconds,
|
|
247
|
-
status: "disabled-transitively",
|
|
248
225
|
output: {
|
|
249
226
|
channel: "output",
|
|
250
227
|
data: "This data is stale because a parent is disabled",
|
|
@@ -262,8 +239,6 @@ export const StaleStatus: Story = {
|
|
|
262
239
|
<div className="p-20 max-w-4xl">
|
|
263
240
|
<Cell
|
|
264
241
|
overrides={{
|
|
265
|
-
runElapsedTimeMs: 20 as Milliseconds,
|
|
266
|
-
status: "disabled-transitively",
|
|
267
242
|
staleInputs: true,
|
|
268
243
|
output: {
|
|
269
244
|
channel: "output",
|
|
@@ -282,8 +257,6 @@ export const StaleAndEditedStatus: Story = {
|
|
|
282
257
|
<div className="p-20 max-w-4xl">
|
|
283
258
|
<Cell
|
|
284
259
|
overrides={{
|
|
285
|
-
runElapsedTimeMs: 20 as Milliseconds,
|
|
286
|
-
status: "disabled-transitively",
|
|
287
260
|
staleInputs: true,
|
|
288
261
|
edited: true,
|
|
289
262
|
output: {
|
|
@@ -303,13 +276,11 @@ export const DisabledAndStaleStatus: Story = {
|
|
|
303
276
|
<div className="p-20 max-w-4xl">
|
|
304
277
|
<Cell
|
|
305
278
|
overrides={{
|
|
306
|
-
runElapsedTimeMs: 20 as Milliseconds,
|
|
307
279
|
config: {
|
|
308
280
|
column: null,
|
|
309
281
|
disabled: true,
|
|
310
282
|
hide_code: false,
|
|
311
283
|
},
|
|
312
|
-
status: "disabled-transitively",
|
|
313
284
|
staleInputs: true,
|
|
314
285
|
output: {
|
|
315
286
|
channel: "output",
|
|
@@ -328,8 +299,6 @@ export const Running: Story = {
|
|
|
328
299
|
<div className="p-20 max-w-4xl">
|
|
329
300
|
<Cell
|
|
330
301
|
overrides={{
|
|
331
|
-
runElapsedTimeMs: 20 as Milliseconds,
|
|
332
|
-
status: "running",
|
|
333
302
|
output: {
|
|
334
303
|
channel: "output",
|
|
335
304
|
data: "<span class='markdown'><h1>Layout</h1>\n<p><code>marimo</code> provides functions to help you lay out your output, such as\nin rows and columns, accordions, tabs, and callouts. This tutorial\nshows some examples.</p></span>",
|
|
@@ -14,7 +14,6 @@ import { connectionAtom } from "@/core/network/connection";
|
|
|
14
14
|
import { requestClientAtom } from "@/core/network/requests";
|
|
15
15
|
import { resolveRequestClient } from "@/core/network/resolve";
|
|
16
16
|
import { ConnectionState } from "@/core/session/types";
|
|
17
|
-
import type { Milliseconds, Seconds } from "@/utils/time";
|
|
18
17
|
import { CellArray } from "../../../components/editor/renderers/cell-array";
|
|
19
18
|
import { CellsRenderer } from "../../../components/editor/renderers/cells-renderer";
|
|
20
19
|
import { TooltipProvider } from "../../../components/ui/tooltip";
|
|
@@ -50,7 +49,6 @@ LongReprA()`,
|
|
|
50
49
|
|
|
51
50
|
print('hello')
|
|
52
51
|
LongReprA()`,
|
|
53
|
-
lastExecutionTime: null,
|
|
54
52
|
},
|
|
55
53
|
},
|
|
56
54
|
cellIds: [cellId],
|
|
@@ -62,8 +60,6 @@ LongReprA()`,
|
|
|
62
60
|
mimetype: "text/plain",
|
|
63
61
|
timestamp: 1_686_863_710,
|
|
64
62
|
},
|
|
65
|
-
runElapsedTimeMs: 8 as Milliseconds,
|
|
66
|
-
status: "idle",
|
|
67
63
|
consoleOutputs: [
|
|
68
64
|
{
|
|
69
65
|
channel: "stdout",
|
|
@@ -72,12 +68,7 @@ LongReprA()`,
|
|
|
72
68
|
timestamp: 1_686_863_705,
|
|
73
69
|
},
|
|
74
70
|
],
|
|
75
|
-
interrupted: false,
|
|
76
|
-
errored: false,
|
|
77
|
-
stopped: false,
|
|
78
71
|
staleInputs: false,
|
|
79
|
-
runStartTimestamp: 0 as Seconds,
|
|
80
|
-
lastRunStartTimestamp: 0 as Seconds,
|
|
81
72
|
debuggerActive: false,
|
|
82
73
|
outline: null,
|
|
83
74
|
}),
|
package/src/utils/time.ts
CHANGED
|
@@ -31,6 +31,11 @@ export class Time {
|
|
|
31
31
|
return new Time(Date.now() as Milliseconds);
|
|
32
32
|
}
|
|
33
33
|
|
|
34
|
+
/** The instant an ISO 8601 timestamp names. */
|
|
35
|
+
public static parse(iso: string): Time {
|
|
36
|
+
return new Time(Date.parse(iso) as Milliseconds);
|
|
37
|
+
}
|
|
38
|
+
|
|
34
39
|
private constructor(ms: Milliseconds) {
|
|
35
40
|
this.ms = ms;
|
|
36
41
|
}
|
|
@@ -39,6 +44,11 @@ export class Time {
|
|
|
39
44
|
return this.ms;
|
|
40
45
|
}
|
|
41
46
|
|
|
47
|
+
/** How long after `start` this instant is. */
|
|
48
|
+
public since(start: Time): Milliseconds {
|
|
49
|
+
return (this.ms - start.ms) as Milliseconds;
|
|
50
|
+
}
|
|
51
|
+
|
|
42
52
|
public toSeconds(): Seconds {
|
|
43
53
|
return (this.ms / 1000) as Seconds;
|
|
44
54
|
}
|