@marimo-team/frontend 0.24.3-dev5 → 0.24.3-dev9
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/assets/{CellStatus-0QNZS4By.js → CellStatus-DXkwkuL9.js} +1 -1
- package/dist/assets/{ConnectedDataExplorerComponent-DW6cJ-Lr.js → ConnectedDataExplorerComponent-DiXd-oqU.js} +1 -1
- package/dist/assets/{JsonOutput-IMJ8FIQ2.js → JsonOutput-izmGhjov.js} +9 -9
- package/dist/assets/LazyAnyLanguageCodeMirror-C_cwGmDg.js +2 -0
- package/dist/assets/{MarimoErrorOutput-BlmIJ9WY.js → MarimoErrorOutput-CdmP3ZHL.js} +2 -2
- package/dist/assets/{RenderHTML-DnPB4qpJ.js → RenderHTML-DlYXvh8D.js} +1 -1
- package/dist/assets/{RunButton-C7TxE07w.js → RunButton-Bieadi9w.js} +1 -1
- package/dist/assets/add-cell-with-ai-ZpV9L4qe.js +76 -0
- package/dist/assets/{add-connection-dialog-MTOC2ycO.js → add-connection-dialog-a8mkIeXa.js} +3 -3
- package/dist/assets/agent-panel-rVtDSi07.js +286 -0
- package/dist/assets/{ai-model-dropdown-CmJEEhSC.js → ai-model-dropdown-C8IztRe2.js} +3 -3
- package/dist/assets/{any-language-editor-DflLjPSQ.js → any-language-editor-pGZDaSqz.js} +1 -1
- package/dist/assets/{app-config-button-W8Pytgb5.js → app-config-button-DLr-6jwI.js} +1 -1
- package/dist/assets/{blob-BrVH7IJp.js → blob-B2Qs47Zi.js} +1 -1
- package/dist/assets/{cell-editor-ihu-XgeK.js → cell-editor-3VpJI5EQ.js} +9 -9
- package/dist/assets/cell-link-DEXHmwy1.js +1 -0
- package/dist/assets/{cells-BBhW3FXj.js → cells--Hh9voS5.js} +25 -25
- package/dist/assets/chat-display-DtQ0tOGK.js +1 -0
- package/dist/assets/{chat-panel-CK3X_KPy.js → chat-panel-DLgUUTdo.js} +1 -1
- package/dist/assets/{chat-ui-BJwtx1SR.js → chat-ui-DIXDoCsM.js} +3 -3
- package/dist/assets/{column-preview-B7Njeb3V.js → column-preview-H8rmRiii.js} +1 -1
- package/dist/assets/{command-palette-C35FLuO7.js → command-palette-Pmg3QxZ0.js} +1 -1
- package/dist/assets/{common-KqtqJsml.js → common-CrhvbKbI.js} +1 -1
- package/dist/assets/components-DWwMSfV5.js +1 -0
- package/dist/assets/components-rCVlCccf.js +1 -0
- package/dist/assets/{config-BlNM0caL.js → config-BuGkUPaK.js} +1 -1
- package/dist/assets/{copy-icon-z8fuTE3w.js → copy-icon-BUOcnUgJ.js} +1 -1
- package/dist/assets/{datasource-B3qF2oaW.js → datasource-DgkQfSw3.js} +2 -2
- package/dist/assets/{dependency-graph-panel-Av1CMZ61.js → dependency-graph-panel-D1BZdQJH.js} +1 -1
- package/dist/assets/dist-0lSCnrrf.js +1 -0
- package/dist/assets/dist-CLXTUtr2.js +1 -0
- package/dist/assets/{documentation-panel-BEz3Hjfu.js → documentation-panel-DzNGB1Zx.js} +1 -1
- package/dist/assets/{download-BgO9EN-W.js → download-DtQweFN1.js} +1 -1
- package/dist/assets/dropdown-menu-DnvwbPho.js +1 -0
- package/dist/assets/edit-page-fb5fV9UA.js +9 -0
- package/dist/assets/error-entries-CMsalXvZ.js +5 -0
- package/dist/assets/{error-panel-BtLTJDUq.js → error-panel-D6kqFA9f.js} +1 -1
- package/dist/assets/file-explorer-panel-D3APtOiy.js +1 -0
- package/dist/assets/file-icons-wArFRwmS.js +1 -0
- package/dist/assets/{file-name-input-CH-hNP6F.js → file-name-input-CdDGwb85.js} +3 -3
- package/dist/assets/{floating-outline-Cmk3XDJi.js → floating-outline-D2WpILR-.js} +1 -1
- package/dist/assets/gallery-page-B39w2KuX.js +1 -0
- package/dist/assets/{glide-data-editor-sICUMEhk.js → glide-data-editor-BufxOYjB.js} +1 -1
- package/dist/assets/home-page-BXgJYrZ5.js +4 -0
- package/dist/assets/index-B4Fq20-p.js +29 -0
- package/dist/assets/{kiosk-mode-mxgb5lWf.js → kiosk-mode-m6yKu6eh.js} +1 -1
- package/dist/assets/{layout-BQRKnzbu.js → layout-VgriO3Ll.js} +4 -4
- package/dist/assets/logs-panel-DsbX3K3h.js +1 -0
- package/dist/assets/{markdown-renderer-751VNlrQ.js → markdown-renderer-DD7ui8RW.js} +1 -1
- package/dist/assets/{name-cell-input-DexJ7ZIH.js → name-cell-input-EjA-eGvA.js} +1 -1
- package/dist/assets/{outline-panel-QU3nj1VW.js → outline-panel-DeDFCw9s.js} +1 -1
- package/dist/assets/{packages-panel-D7oDuI6v.js → packages-panel-B__MaP9u.js} +1 -1
- package/dist/assets/{pair-with-agent-modal-CbUFKJHP.js → pair-with-agent-modal-DYvcjx3q.js} +1 -1
- package/dist/assets/{panel-accordion-state-Dl0VcB79.js → panel-accordion-state-CwLKISCL.js} +1 -1
- package/dist/assets/panels-c3iYYVuV.js +4 -0
- package/dist/assets/{pathUtils-Cryrlpma.js → pathUtils-D7lk2rYQ.js} +1 -1
- package/dist/assets/paths-ClYq6Exe.js +1 -0
- package/dist/assets/{process-output-CPUOlFhp.js → process-output-DQoLxPra.js} +1 -1
- package/dist/assets/{readonly-code-display-DP7DxRA1.js → readonly-code-display-DuFy8860.js} +1 -1
- package/dist/assets/{readonly-python-code-CAYyabaV.js → readonly-python-code-yR65TOiM.js} +1 -1
- package/dist/assets/{renderShortcut-X-CJUSM8.js → renderShortcut-BE8QI9Yi.js} +1 -1
- package/dist/assets/{reveal-component-DHL5PmeS.js → reveal-component-CgskYNVn.js} +2 -2
- package/dist/assets/run-page-C_mciAdT.js +1 -0
- package/dist/assets/{scratchpad-panel-Zopa4QrH.js → scratchpad-panel-Bj4yxnuS.js} +1 -1
- package/dist/assets/{secrets-panel-D3BpDIgg.js → secrets-panel-Cf-U5wY0.js} +1 -1
- package/dist/assets/select-C1IYgK48.js +1 -0
- package/dist/assets/session-panel-NQyDQouJ.js +1 -0
- package/dist/assets/{skeleton-CM3CedS6.js → skeleton-CUFHwpIk.js} +1 -1
- package/dist/assets/{snippets-panel-AdjuR23O.js → snippets-panel-Bx2wFck8.js} +1 -1
- package/dist/assets/{state-DOrY1Jyf.js → state-CdjswcRf.js} +1 -1
- package/dist/assets/{state-DQHafeTV.js → state-CiPrV156.js} +3 -3
- package/dist/assets/switch-DhPDzMo3.js +1 -0
- package/dist/assets/{terminal-CQAFGBfN.js → terminal-DH54UV0y.js} +2 -2
- package/dist/assets/tooltip-BvU0ko_d.js +1 -0
- package/dist/assets/tracing-Qjfb3Qm1.js +1 -0
- package/dist/assets/tracing-panel-Cj_-LD2X.js +2 -0
- package/dist/assets/{tree-actions-mfuAcK1x.js → tree-actions-CmY9PFuu.js} +1 -1
- package/dist/assets/{useAddCell-BR8kYnb6.js → useAddCell-Bvb-C_H5.js} +1 -1
- package/dist/assets/{useBoolean-BXC4CItZ.js → useBoolean-zcg-oxnj.js} +1 -1
- package/dist/assets/useCellActionButton-Df4qSnWR.js +1 -0
- package/dist/assets/{useDeleteCell-DwaN6KAw.js → useDeleteCell-eNMTvg8D.js} +1 -1
- package/dist/assets/{useDependencyPanelTab-I-7B78cW.js → useDependencyPanelTab-BusYWoB8.js} +1 -1
- package/dist/assets/{useInstallPackage-IUt497GC.js → useInstallPackage-ClaR_nYb.js} +1 -1
- package/dist/assets/useNotebookActions-bWJW4dS_.js +10 -0
- package/dist/assets/{useRunCells-BMQuitYY.js → useRunCells-D8B7UNsg.js} +1 -1
- package/dist/assets/{useSplitCell-B7AvHoya.js → useSplitCell-Cy7fCcQW.js} +1 -1
- package/dist/assets/{vega-component-C7TCzyaU.js → vega-component-Z8mt9AUF.js} +1 -1
- package/dist/assets/{write-secret-modal-D6zoZgLY.js → write-secret-modal-CSWlDX_Z.js} +1 -1
- package/dist/index.html +34 -33
- package/package.json +1 -1
- package/src/components/home/components.tsx +17 -0
- package/src/components/pages/gallery-page.tsx +2 -4
- package/src/components/pages/home-page.tsx +2 -4
- package/src/components/terminal/terminal.tsx +4 -4
- package/src/core/islands/__tests__/parse.test.ts +140 -7
- package/src/core/islands/parse.ts +20 -0
- package/src/core/runtime/__tests__/runtime.test.ts +11 -0
- package/src/core/runtime/runtime.ts +7 -2
- package/dist/assets/LazyAnyLanguageCodeMirror-LboTfNDv.js +0 -2
- package/dist/assets/add-cell-with-ai-OQ4sSXg4.js +0 -76
- package/dist/assets/agent-panel-6r8l1meH.js +0 -286
- package/dist/assets/cell-link-CbHXmrt8.js +0 -1
- package/dist/assets/chat-display-CIpYPLlF.js +0 -1
- package/dist/assets/components-Cpv2z-yV.js +0 -1
- package/dist/assets/dist-DzCQtGkt.js +0 -1
- package/dist/assets/dropdown-menu-C40jM9o4.js +0 -1
- package/dist/assets/edit-page-CzXHQ0SZ.js +0 -9
- package/dist/assets/error-entries-BFzSRy80.js +0 -5
- package/dist/assets/file-explorer-panel-BwsDzVF5.js +0 -1
- package/dist/assets/file-icons-BhotQqrU.js +0 -1
- package/dist/assets/gallery-page-C3pBpHlY.js +0 -1
- package/dist/assets/home-page-CUBuu5Go.js +0 -4
- package/dist/assets/index-6fSEyMiG.js +0 -29
- package/dist/assets/logs-panel-BV4VZ_uH.js +0 -1
- package/dist/assets/panels-BeaNzK_g.js +0 -4
- package/dist/assets/paths-zcL04qUW.js +0 -1
- package/dist/assets/run-page-B_ml_Z6H.js +0 -1
- package/dist/assets/select-nLt2y0Sw.js +0 -1
- package/dist/assets/session-panel-Dgoo-7Nl.js +0 -1
- package/dist/assets/switch-DjXr9Y9D.js +0 -1
- package/dist/assets/tooltip-BUtPzKB4.js +0 -1
- package/dist/assets/tracing-CUlvXr_H.js +0 -1
- package/dist/assets/tracing-panel-CjyayE-l.js +0 -2
- package/dist/assets/useCellActionButton-BhREXvvn.js +0 -1
- package/dist/assets/useNotebookActions-klQNnzPU.js +0 -10
package/dist/index.html
CHANGED
|
@@ -66,7 +66,7 @@
|
|
|
66
66
|
<marimo-server-token data-token="{{ server_token }}" hidden></marimo-server-token>
|
|
67
67
|
<!-- /TODO -->
|
|
68
68
|
<title>{{ title }}</title>
|
|
69
|
-
<script type="module" crossorigin src="./assets/index-
|
|
69
|
+
<script type="module" crossorigin src="./assets/index-B4Fq20-p.js"></script>
|
|
70
70
|
<link rel="modulepreload" crossorigin href="./assets/rolldown-runtime-B0Z9INg1.js">
|
|
71
71
|
<link rel="modulepreload" crossorigin href="./assets/react-CBDbhulC.js">
|
|
72
72
|
<link rel="modulepreload" crossorigin href="./assets/compiler-runtime-CYIjoINj.js">
|
|
@@ -88,21 +88,22 @@
|
|
|
88
88
|
<link rel="modulepreload" crossorigin href="./assets/constants-BDbGiS7O.js">
|
|
89
89
|
<link rel="modulepreload" crossorigin href="./assets/Deferred-CrTnjj37.js">
|
|
90
90
|
<link rel="modulepreload" crossorigin href="./assets/session-Sz5nSFku.js">
|
|
91
|
-
<link rel="modulepreload" crossorigin href="./assets/config-
|
|
91
|
+
<link rel="modulepreload" crossorigin href="./assets/config-BuGkUPaK.js">
|
|
92
92
|
<link rel="modulepreload" crossorigin href="./assets/clsx-DB0hHKMi.js">
|
|
93
93
|
<link rel="modulepreload" crossorigin href="./assets/cn-ldLVeaqm.js">
|
|
94
94
|
<link rel="modulepreload" crossorigin href="./assets/fullscreen-BH2jz-F4.js">
|
|
95
|
-
<link rel="modulepreload" crossorigin href="./assets/dist-
|
|
95
|
+
<link rel="modulepreload" crossorigin href="./assets/dist-CLXTUtr2.js">
|
|
96
96
|
<link rel="modulepreload" crossorigin href="./assets/menu-items-BSRA2YI9.js">
|
|
97
97
|
<link rel="modulepreload" crossorigin href="./assets/button-Dh8EwhsF.js">
|
|
98
98
|
<link rel="modulepreload" crossorigin href="./assets/alert-dialog-CA-2mBs3.js">
|
|
99
|
+
<link rel="modulepreload" crossorigin href="./assets/dist-0lSCnrrf.js">
|
|
99
100
|
<link rel="modulepreload" crossorigin href="./assets/createLucideIcon-B7HeEoG2.js">
|
|
100
101
|
<link rel="modulepreload" crossorigin href="./assets/check-BoA6XBpj.js">
|
|
101
102
|
<link rel="modulepreload" crossorigin href="./assets/context-Do8M9TDF.js">
|
|
102
103
|
<link rel="modulepreload" crossorigin href="./assets/useNumberFormatter-DHJ9s6Vk.js">
|
|
103
|
-
<link rel="modulepreload" crossorigin href="./assets/select-
|
|
104
|
+
<link rel="modulepreload" crossorigin href="./assets/select-C1IYgK48.js">
|
|
104
105
|
<link rel="modulepreload" crossorigin href="./assets/circle-ByJdIf5p.js">
|
|
105
|
-
<link rel="modulepreload" crossorigin href="./assets/tooltip-
|
|
106
|
+
<link rel="modulepreload" crossorigin href="./assets/tooltip-BvU0ko_d.js">
|
|
106
107
|
<link rel="modulepreload" crossorigin href="./assets/dist-BtC9ym6k.js">
|
|
107
108
|
<link rel="modulepreload" crossorigin href="./assets/dist-CZNULd6Z.js">
|
|
108
109
|
<link rel="modulepreload" crossorigin href="./assets/arrays-BqUx5USx.js">
|
|
@@ -115,6 +116,7 @@
|
|
|
115
116
|
<link rel="modulepreload" crossorigin href="./assets/strings-CReV1AYG.js">
|
|
116
117
|
<link rel="modulepreload" crossorigin href="./assets/requests-C6_IaFh7.js">
|
|
117
118
|
<link rel="modulepreload" crossorigin href="./assets/dist-B8pdsUrS.js">
|
|
119
|
+
<link rel="modulepreload" crossorigin href="./assets/paths-ClYq6Exe.js">
|
|
118
120
|
<link rel="modulepreload" crossorigin href="./assets/useLifecycle-BUaJcygz.js">
|
|
119
121
|
<link rel="modulepreload" crossorigin href="./assets/toDate-hGYJX0Ha.js">
|
|
120
122
|
<link rel="modulepreload" crossorigin href="./assets/database-zap-CloO6gbw.js">
|
|
@@ -123,7 +125,7 @@
|
|
|
123
125
|
<link rel="modulepreload" crossorigin href="./assets/input-DEbY281O.js">
|
|
124
126
|
<link rel="modulepreload" crossorigin href="./assets/uuid-k9DpjH68.js">
|
|
125
127
|
<link rel="modulepreload" crossorigin href="./assets/use-toast-DpWHUGuF.js">
|
|
126
|
-
<link rel="modulepreload" crossorigin href="./assets/write-secret-modal-
|
|
128
|
+
<link rel="modulepreload" crossorigin href="./assets/write-secret-modal-CSWlDX_Z.js">
|
|
127
129
|
<link rel="modulepreload" crossorigin href="./assets/plus-C4J9gIE1.js">
|
|
128
130
|
<link rel="modulepreload" crossorigin href="./assets/trash-2-D_HX-0qx.js">
|
|
129
131
|
<link rel="modulepreload" crossorigin href="./assets/badge-BSgtkC2e.js">
|
|
@@ -134,59 +136,58 @@
|
|
|
134
136
|
<link rel="modulepreload" crossorigin href="./assets/dist-Cx4BE7jC.js">
|
|
135
137
|
<link rel="modulepreload" crossorigin href="./assets/dist-CKUpxYGQ.js">
|
|
136
138
|
<link rel="modulepreload" crossorigin href="./assets/stex-Dc5bKD4z.js">
|
|
137
|
-
<link rel="modulepreload" crossorigin href="./assets/paths-zcL04qUW.js">
|
|
138
139
|
<link rel="modulepreload" crossorigin href="./assets/useTheme-C-ri8BtY.js">
|
|
139
140
|
<link rel="modulepreload" crossorigin href="./assets/useAsyncData-Buhk-UgR.js">
|
|
140
141
|
<link rel="modulepreload" crossorigin href="./assets/purify.es-DrVcFY1Q.js">
|
|
141
|
-
<link rel="modulepreload" crossorigin href="./assets/cells
|
|
142
|
+
<link rel="modulepreload" crossorigin href="./assets/cells--Hh9voS5.js">
|
|
142
143
|
<link rel="modulepreload" crossorigin href="./assets/get-DjNf4SIX.js">
|
|
143
144
|
<link rel="modulepreload" crossorigin href="./assets/_hasPath-BmRQipI0.js">
|
|
144
145
|
<link rel="modulepreload" crossorigin href="./assets/hasIn-yw4sIeJR.js">
|
|
145
146
|
<link rel="modulepreload" crossorigin href="./assets/_baseSet-gX6o3Pih.js">
|
|
146
147
|
<link rel="modulepreload" crossorigin href="./assets/pick-Bs4cJfJU.js">
|
|
147
148
|
<link rel="modulepreload" crossorigin href="./assets/errors-DzO-nXy-.js">
|
|
148
|
-
<link rel="modulepreload" crossorigin href="./assets/switch-
|
|
149
|
+
<link rel="modulepreload" crossorigin href="./assets/switch-DhPDzMo3.js">
|
|
149
150
|
<link rel="modulepreload" crossorigin href="./assets/copy-BMXKNElG.js">
|
|
150
151
|
<link rel="modulepreload" crossorigin href="./assets/eye-off-CFuPxa9F.js">
|
|
151
152
|
<link rel="modulepreload" crossorigin href="./assets/copy-DlEomWzI.js">
|
|
152
153
|
<link rel="modulepreload" crossorigin href="./assets/extends-CvVTau-c.js">
|
|
153
154
|
<link rel="modulepreload" crossorigin href="./assets/esm-BHMOvJzM.js">
|
|
154
|
-
<link rel="modulepreload" crossorigin href="./assets/useAddCell-
|
|
155
|
-
<link rel="modulepreload" crossorigin href="./assets/readonly-python-code-
|
|
156
|
-
<link rel="modulepreload" crossorigin href="./assets/LazyAnyLanguageCodeMirror-
|
|
155
|
+
<link rel="modulepreload" crossorigin href="./assets/useAddCell-Bvb-C_H5.js">
|
|
156
|
+
<link rel="modulepreload" crossorigin href="./assets/readonly-python-code-yR65TOiM.js">
|
|
157
|
+
<link rel="modulepreload" crossorigin href="./assets/LazyAnyLanguageCodeMirror-C_cwGmDg.js">
|
|
157
158
|
<link rel="modulepreload" crossorigin href="./assets/micromark-factory-space-D9Dr-k4J.js">
|
|
158
159
|
<link rel="modulepreload" crossorigin href="./assets/chunk-5FQGJX7Z-CRg4xQWg.js">
|
|
159
|
-
<link rel="modulepreload" crossorigin href="./assets/markdown-renderer-
|
|
160
|
-
<link rel="modulepreload" crossorigin href="./assets/copy-icon-
|
|
161
|
-
<link rel="modulepreload" crossorigin href="./assets/useRunCells-
|
|
162
|
-
<link rel="modulepreload" crossorigin href="./assets/RenderHTML-
|
|
163
|
-
<link rel="modulepreload" crossorigin href="./assets/blob-
|
|
160
|
+
<link rel="modulepreload" crossorigin href="./assets/markdown-renderer-DD7ui8RW.js">
|
|
161
|
+
<link rel="modulepreload" crossorigin href="./assets/copy-icon-BUOcnUgJ.js">
|
|
162
|
+
<link rel="modulepreload" crossorigin href="./assets/useRunCells-D8B7UNsg.js">
|
|
163
|
+
<link rel="modulepreload" crossorigin href="./assets/RenderHTML-DlYXvh8D.js">
|
|
164
|
+
<link rel="modulepreload" crossorigin href="./assets/blob-B2Qs47Zi.js">
|
|
164
165
|
<link rel="modulepreload" crossorigin href="./assets/kbd-Cwh96ZBE.js">
|
|
165
|
-
<link rel="modulepreload" crossorigin href="./assets/useInstallPackage-
|
|
166
|
+
<link rel="modulepreload" crossorigin href="./assets/useInstallPackage-ClaR_nYb.js">
|
|
166
167
|
<link rel="modulepreload" crossorigin href="./assets/share-BZW3tzEX.js">
|
|
167
168
|
<link rel="modulepreload" crossorigin href="./assets/events-CbeVJ6OD.js">
|
|
168
|
-
<link rel="modulepreload" crossorigin href="./assets/state-
|
|
169
|
+
<link rel="modulepreload" crossorigin href="./assets/state-CiPrV156.js">
|
|
169
170
|
<link rel="modulepreload" crossorigin href="./assets/ErrorBoundary-CDVGFYfr.js">
|
|
170
171
|
<link rel="modulepreload" crossorigin href="./assets/config-B-r81uZ6.js">
|
|
171
172
|
<link rel="modulepreload" crossorigin href="./assets/tabs-Cy1qXLzH.js">
|
|
172
173
|
<link rel="modulepreload" crossorigin href="./assets/chevron-right-CKA5zVsM.js">
|
|
173
|
-
<link rel="modulepreload" crossorigin href="./assets/dropdown-menu-
|
|
174
|
+
<link rel="modulepreload" crossorigin href="./assets/dropdown-menu-DnvwbPho.js">
|
|
174
175
|
<link rel="modulepreload" crossorigin href="./assets/html-to-image-D6GUC5q6.js">
|
|
175
|
-
<link rel="modulepreload" crossorigin href="./assets/download-
|
|
176
|
+
<link rel="modulepreload" crossorigin href="./assets/download-DtQweFN1.js">
|
|
176
177
|
<link rel="modulepreload" crossorigin href="./assets/table-CUK1W5bI.js">
|
|
177
178
|
<link rel="modulepreload" crossorigin href="./assets/refresh-cw-Bf-rx_aV.js">
|
|
178
|
-
<link rel="modulepreload" crossorigin href="./assets/tree-actions-
|
|
179
|
+
<link rel="modulepreload" crossorigin href="./assets/tree-actions-CmY9PFuu.js">
|
|
179
180
|
<link rel="modulepreload" crossorigin href="./assets/ellipsis-Dfik_tuW.js">
|
|
180
181
|
<link rel="modulepreload" crossorigin href="./assets/external-link-Bp3BxyRA.js">
|
|
181
182
|
<link rel="modulepreload" crossorigin href="./assets/spinner-Ck-Hgfvj.js">
|
|
182
183
|
<link rel="modulepreload" crossorigin href="./assets/message-circle-BQB1AIAg.js">
|
|
183
184
|
<link rel="modulepreload" crossorigin href="./assets/hat-glasses-C8LSY3HT.js">
|
|
184
185
|
<link rel="modulepreload" crossorigin href="./assets/package-DPlscLzt.js">
|
|
185
|
-
<link rel="modulepreload" crossorigin href="./assets/datasource-
|
|
186
|
+
<link rel="modulepreload" crossorigin href="./assets/datasource-DgkQfSw3.js">
|
|
186
187
|
<link rel="modulepreload" crossorigin href="./assets/alert-dmKwNsrp.js">
|
|
187
|
-
<link rel="modulepreload" crossorigin href="./assets/state-
|
|
188
|
-
<link rel="modulepreload" crossorigin href="./assets/cell-link-
|
|
189
|
-
<link rel="modulepreload" crossorigin href="./assets/MarimoErrorOutput-
|
|
188
|
+
<link rel="modulepreload" crossorigin href="./assets/state-CdjswcRf.js">
|
|
189
|
+
<link rel="modulepreload" crossorigin href="./assets/cell-link-DEXHmwy1.js">
|
|
190
|
+
<link rel="modulepreload" crossorigin href="./assets/MarimoErrorOutput-CdmP3ZHL.js">
|
|
190
191
|
<link rel="modulepreload" crossorigin href="./assets/VisuallyHidden-CBMDmozt.js">
|
|
191
192
|
<link rel="modulepreload" crossorigin href="./assets/useDateFormatter-BiqAQ-zI.js">
|
|
192
193
|
<link rel="modulepreload" crossorigin href="./assets/en-US-yTIMUO13.js">
|
|
@@ -205,33 +206,33 @@
|
|
|
205
206
|
<link rel="modulepreload" crossorigin href="./assets/formats-C6s96nu2.js">
|
|
206
207
|
<link rel="modulepreload" crossorigin href="./assets/table-DmqOOjfe.js">
|
|
207
208
|
<link rel="modulepreload" crossorigin href="./assets/react-resizable-panels.browser.esm-BSRAHC4P.js">
|
|
208
|
-
<link rel="modulepreload" crossorigin href="./assets/JsonOutput-
|
|
209
|
+
<link rel="modulepreload" crossorigin href="./assets/JsonOutput-izmGhjov.js">
|
|
209
210
|
<link rel="modulepreload" crossorigin href="./assets/chart-no-axes-column-ChZdjJhj.js">
|
|
210
211
|
<link rel="modulepreload" crossorigin href="./assets/square-function-DkZweMAs.js">
|
|
211
212
|
<link rel="modulepreload" crossorigin href="./assets/spec-DKsAmLTi.js">
|
|
212
213
|
<link rel="modulepreload" crossorigin href="./assets/semaphore-BjoL5P0h.js">
|
|
213
214
|
<link rel="modulepreload" crossorigin href="./assets/fileToBase64-NhpNrK5l.js">
|
|
214
|
-
<link rel="modulepreload" crossorigin href="./assets/useBoolean-
|
|
215
|
+
<link rel="modulepreload" crossorigin href="./assets/useBoolean-zcg-oxnj.js">
|
|
215
216
|
<link rel="modulepreload" crossorigin href="./assets/code-xml-B7x62Eeh.js">
|
|
216
217
|
<link rel="modulepreload" crossorigin href="./assets/file-headphone-rFCxFRI8.js">
|
|
217
218
|
<link rel="modulepreload" crossorigin href="./assets/file-DF8n85RA.js">
|
|
218
219
|
<link rel="modulepreload" crossorigin href="./assets/image-ab13yGv4.js">
|
|
219
|
-
<link rel="modulepreload" crossorigin href="./assets/file-icons-
|
|
220
|
+
<link rel="modulepreload" crossorigin href="./assets/file-icons-wArFRwmS.js">
|
|
220
221
|
<link rel="modulepreload" crossorigin href="./assets/globe-BQf75qV_.js">
|
|
221
222
|
<link rel="modulepreload" crossorigin href="./assets/markdown-export-0rLbaq8b.js">
|
|
222
223
|
<link rel="modulepreload" crossorigin href="./assets/data-grid-types-DgHVN_Zz.js">
|
|
223
224
|
<link rel="modulepreload" crossorigin href="./assets/glide-utils-UGsrRHYj.js">
|
|
224
|
-
<link rel="modulepreload" crossorigin href="./assets/column-preview-
|
|
225
|
+
<link rel="modulepreload" crossorigin href="./assets/column-preview-H8rmRiii.js">
|
|
225
226
|
<link rel="modulepreload" crossorigin href="./assets/square-B58Ib8Ir.js">
|
|
226
227
|
<link rel="modulepreload" crossorigin href="./assets/triangle-alert-MihykDYG.js">
|
|
227
228
|
<link rel="modulepreload" crossorigin href="./assets/prop-types-Djf4O40e.js">
|
|
228
229
|
<link rel="modulepreload" crossorigin href="./assets/es-CrFhA96G.js">
|
|
229
|
-
<link rel="modulepreload" crossorigin href="./assets/renderShortcut-
|
|
230
|
+
<link rel="modulepreload" crossorigin href="./assets/renderShortcut-BE8QI9Yi.js">
|
|
230
231
|
<link rel="modulepreload" crossorigin href="./assets/bundle.esm-DzY74mzC.js">
|
|
231
232
|
<link rel="modulepreload" crossorigin href="./assets/icons-CjLa9BiH.js">
|
|
232
233
|
<link rel="modulepreload" crossorigin href="./assets/useDeepCompareMemoize-CLytDdMl.js">
|
|
233
|
-
<link rel="modulepreload" crossorigin href="./assets/pathUtils-
|
|
234
|
-
<link rel="modulepreload" crossorigin href="./assets/floating-outline-
|
|
234
|
+
<link rel="modulepreload" crossorigin href="./assets/pathUtils-D7lk2rYQ.js">
|
|
235
|
+
<link rel="modulepreload" crossorigin href="./assets/floating-outline-D2WpILR-.js">
|
|
235
236
|
<link rel="stylesheet" crossorigin href="./assets/cells-D-c15Ks-.css">
|
|
236
237
|
<link rel="stylesheet" crossorigin href="./assets/markdown-renderer-B7zTpxjS.css">
|
|
237
238
|
<link rel="stylesheet" crossorigin href="./assets/JsonOutput-BQtz7-np.css">
|
package/package.json
CHANGED
|
@@ -31,6 +31,7 @@ import {
|
|
|
31
31
|
import { Constants } from "@/core/constants";
|
|
32
32
|
import { useRequestClient } from "@/core/network/requests";
|
|
33
33
|
import type { TutorialId } from "@/core/network/types";
|
|
34
|
+
import { Banner } from "@/plugins/impl/common/error-banner";
|
|
34
35
|
import { openNotebook } from "@/utils/links";
|
|
35
36
|
import { Objects } from "@/utils/objects";
|
|
36
37
|
import { MarimoPlusIcon } from "../icons/marimo-icons";
|
|
@@ -186,6 +187,22 @@ export const ResourceLinks: React.FC = () => {
|
|
|
186
187
|
);
|
|
187
188
|
};
|
|
188
189
|
|
|
190
|
+
/**
|
|
191
|
+
* Shown when the workspace scan stopped early, so the file list the user is
|
|
192
|
+
* looking at is missing files and folders.
|
|
193
|
+
*/
|
|
194
|
+
export const TruncatedWorkspaceBanner: React.FC<{
|
|
195
|
+
fileCount: number | undefined;
|
|
196
|
+
}> = ({ fileCount }) => {
|
|
197
|
+
return (
|
|
198
|
+
<Banner kind="warn" className="rounded p-4">
|
|
199
|
+
Showing {fileCount} files. Some files and folders were skipped because
|
|
200
|
+
your workspace is large or deeply nested. Start marimo from a subfolder to
|
|
201
|
+
see them.
|
|
202
|
+
</Banner>
|
|
203
|
+
);
|
|
204
|
+
};
|
|
205
|
+
|
|
189
206
|
export const Header: React.FC<{
|
|
190
207
|
Icon: React.FC<React.SVGProps<SVGSVGElement>>;
|
|
191
208
|
control?: React.ReactNode;
|
|
@@ -4,6 +4,7 @@ import { SearchIcon } from "lucide-react";
|
|
|
4
4
|
import type React from "react";
|
|
5
5
|
import { Suspense, useMemo, useState } from "react";
|
|
6
6
|
import { ErrorBoundary } from "@/components/editor/boundary/ErrorBoundary";
|
|
7
|
+
import { TruncatedWorkspaceBanner } from "@/components/home/components";
|
|
7
8
|
import { Spinner } from "@/components/icons/spinner";
|
|
8
9
|
import { Card, CardContent } from "@/components/ui/card";
|
|
9
10
|
import { Input } from "@/components/ui/input";
|
|
@@ -119,10 +120,7 @@ const GalleryPage: React.FC = () => {
|
|
|
119
120
|
<ErrorBoundary>
|
|
120
121
|
<div className="flex flex-col gap-2">
|
|
121
122
|
{workspace.hasMore && (
|
|
122
|
-
<
|
|
123
|
-
Showing first {workspace.fileCount} files. Your workspace has
|
|
124
|
-
more files.
|
|
125
|
-
</Banner>
|
|
123
|
+
<TruncatedWorkspaceBanner fileCount={workspace.fileCount} />
|
|
126
124
|
)}
|
|
127
125
|
{formattedFiles.length > SEARCH_THRESHOLD && (
|
|
128
126
|
<Input
|
|
@@ -67,6 +67,7 @@ import {
|
|
|
67
67
|
Header,
|
|
68
68
|
OpenTutorialDropDown,
|
|
69
69
|
ResourceLinks,
|
|
70
|
+
TruncatedWorkspaceBanner,
|
|
70
71
|
} from "../home/components";
|
|
71
72
|
import {
|
|
72
73
|
expandedFoldersAtom,
|
|
@@ -196,10 +197,7 @@ const WorkspaceNotebooks: React.FC<{ onRefreshRecents: () => void }> = ({
|
|
|
196
197
|
<WorkspaceContext value={workspaceContextValue}>
|
|
197
198
|
<div className="flex flex-col gap-2">
|
|
198
199
|
{workspace.hasMore && (
|
|
199
|
-
<
|
|
200
|
-
Showing first {workspace.fileCount} files. Your workspace has more
|
|
201
|
-
files.
|
|
202
|
-
</Banner>
|
|
200
|
+
<TruncatedWorkspaceBanner fileCount={workspace.fileCount} />
|
|
203
201
|
)}
|
|
204
202
|
<Header
|
|
205
203
|
Icon={BookTextIcon}
|
|
@@ -254,7 +254,9 @@ const TerminalComponent: React.FC<TerminalComponentProps> = ({
|
|
|
254
254
|
try {
|
|
255
255
|
await waitForConnectionOpen();
|
|
256
256
|
|
|
257
|
-
|
|
257
|
+
// Size the PTY before the shell draws its first prompt.
|
|
258
|
+
fitAddon.fit();
|
|
259
|
+
const socket = new WebSocket(runtimeManager.getTerminalWsURL(terminal));
|
|
258
260
|
const attachAddon = new AttachAddon(socket);
|
|
259
261
|
terminal.loadAddon(attachAddon);
|
|
260
262
|
wsRef.current = socket;
|
|
@@ -270,9 +272,7 @@ const TerminalComponent: React.FC<TerminalComponentProps> = ({
|
|
|
270
272
|
|
|
271
273
|
const handleOpen = () => {
|
|
272
274
|
updateReadyState();
|
|
273
|
-
//
|
|
274
|
-
// before the WS was OPEN, dropping the resize message and leaving
|
|
275
|
-
// the PTY at its default 0x0 winsize.
|
|
275
|
+
// The container may have resized while the connection was opening.
|
|
276
276
|
fitAddon.fit();
|
|
277
277
|
if (terminal.cols > 0 && terminal.rows > 0) {
|
|
278
278
|
socket.send(
|
|
@@ -19,6 +19,13 @@ import {
|
|
|
19
19
|
} from "../parse";
|
|
20
20
|
import { createMockIslandElement, createMockIslands } from "./test-utils.tsx";
|
|
21
21
|
|
|
22
|
+
function islandSnapshotPath(filename: string): string {
|
|
23
|
+
return new URL(
|
|
24
|
+
`../../../../../tests/_islands/snapshots/${filename}`,
|
|
25
|
+
import.meta.url,
|
|
26
|
+
).pathname.replace(/^\/@fs/, "");
|
|
27
|
+
}
|
|
28
|
+
|
|
22
29
|
function createPayloadCell(
|
|
23
30
|
overrides: Partial<{
|
|
24
31
|
cellId: string;
|
|
@@ -47,6 +54,7 @@ function appendPayload(
|
|
|
47
54
|
payload: {
|
|
48
55
|
schemaVersion: number;
|
|
49
56
|
appId: string;
|
|
57
|
+
dependencies?: unknown;
|
|
50
58
|
cells: ReturnType<typeof createPayloadCell>[];
|
|
51
59
|
},
|
|
52
60
|
) {
|
|
@@ -58,6 +66,33 @@ function appendPayload(
|
|
|
58
66
|
}
|
|
59
67
|
|
|
60
68
|
describe("createMarimoFile", () => {
|
|
69
|
+
it("should serialize dependencies as top-level script metadata", () => {
|
|
70
|
+
const file = createMarimoFile({
|
|
71
|
+
dependencies: ['cowsay==6.1; sys_platform == "emscripten"'],
|
|
72
|
+
cells: [{ code: "import cowsay" }],
|
|
73
|
+
});
|
|
74
|
+
expect(file).toBe(
|
|
75
|
+
[
|
|
76
|
+
"# /// script",
|
|
77
|
+
'# dependencies = ["cowsay==6.1; sys_platform == \\"emscripten\\""]',
|
|
78
|
+
"# ///",
|
|
79
|
+
"import marimo",
|
|
80
|
+
"app = marimo.App()",
|
|
81
|
+
"@app.cell",
|
|
82
|
+
"def __():",
|
|
83
|
+
" import cowsay",
|
|
84
|
+
" return",
|
|
85
|
+
].join("\n"),
|
|
86
|
+
);
|
|
87
|
+
});
|
|
88
|
+
|
|
89
|
+
it("should omit metadata for empty dependencies", () => {
|
|
90
|
+
const cells = [{ code: "import cowsay" }];
|
|
91
|
+
expect(createMarimoFile({ cells, dependencies: [] })).toBe(
|
|
92
|
+
createMarimoFile({ cells }),
|
|
93
|
+
);
|
|
94
|
+
});
|
|
95
|
+
|
|
61
96
|
it("should return a string", () => {
|
|
62
97
|
const app = {
|
|
63
98
|
cells: [
|
|
@@ -736,13 +771,7 @@ describe("parseMarimoIslandApps", () => {
|
|
|
736
771
|
});
|
|
737
772
|
|
|
738
773
|
it("should parse Python-generated island payload snapshots", () => {
|
|
739
|
-
const html = readFileSync(
|
|
740
|
-
new URL(
|
|
741
|
-
"../../../../../tests/_islands/snapshots/html-payload.txt",
|
|
742
|
-
import.meta.url,
|
|
743
|
-
).pathname.replace(/^\/@fs/, ""),
|
|
744
|
-
"utf8",
|
|
745
|
-
);
|
|
774
|
+
const html = readFileSync(islandSnapshotPath("html-payload.txt"), "utf8");
|
|
746
775
|
container.innerHTML = html;
|
|
747
776
|
|
|
748
777
|
const result = parseMarimoIslandApps(container);
|
|
@@ -775,6 +804,108 @@ describe("parseMarimoIslandApps", () => {
|
|
|
775
804
|
expect(islands[2].getAttribute(ISLAND_DATA_ATTRIBUTES.CELL_IDX)).toBe("1");
|
|
776
805
|
});
|
|
777
806
|
|
|
807
|
+
it("should restore metadata from a Python-generated dependency payload", () => {
|
|
808
|
+
container.innerHTML = readFileSync(
|
|
809
|
+
islandSnapshotPath("body-dependencies.txt"),
|
|
810
|
+
"utf8",
|
|
811
|
+
);
|
|
812
|
+
|
|
813
|
+
const probed = parseMarimoIslandApps(container, { materialize: false });
|
|
814
|
+
const apps = parseMarimoIslandApps(container);
|
|
815
|
+
|
|
816
|
+
expect(probed).toEqual(apps);
|
|
817
|
+
expect(apps).toEqual([
|
|
818
|
+
{
|
|
819
|
+
id: "main",
|
|
820
|
+
payloadBacked: true,
|
|
821
|
+
dependencies: [
|
|
822
|
+
'cowsay==6.1; sys_platform == "emscripten"',
|
|
823
|
+
"rich[jupyter]>=13",
|
|
824
|
+
"desktop; sys_platform != 'emscripten'",
|
|
825
|
+
"older-python; python_version < '3.13'",
|
|
826
|
+
"newer-python; python_version >= '3.13'",
|
|
827
|
+
],
|
|
828
|
+
cells: [{ cellId: "Hbol", code: "import cowsay", output: "", idx: 0 }],
|
|
829
|
+
},
|
|
830
|
+
]);
|
|
831
|
+
// The Python Pyodide test reads this file with the real metadata parser.
|
|
832
|
+
expect(createMarimoFile(apps[0])).toBe(
|
|
833
|
+
readFileSync(islandSnapshotPath("notebook-dependencies.txt"), "utf8"),
|
|
834
|
+
);
|
|
835
|
+
});
|
|
836
|
+
|
|
837
|
+
it("should carry dependencies from payloads into each generated notebook", () => {
|
|
838
|
+
for (const [appId, dependencies] of [
|
|
839
|
+
["app1", ["cowsay==6.1"]],
|
|
840
|
+
["app2", ["rich[jupyter]>=13"]],
|
|
841
|
+
] as const) {
|
|
842
|
+
container.appendChild(
|
|
843
|
+
createMockIslandElement({ appId, cellId: "cell-1" }),
|
|
844
|
+
);
|
|
845
|
+
appendPayload(container, {
|
|
846
|
+
schemaVersion: 1,
|
|
847
|
+
appId,
|
|
848
|
+
dependencies,
|
|
849
|
+
cells: [createPayloadCell()],
|
|
850
|
+
});
|
|
851
|
+
}
|
|
852
|
+
|
|
853
|
+
const apps = parseMarimoIslandApps(container);
|
|
854
|
+
expect(apps.map((app) => [app.id, app.dependencies])).toEqual([
|
|
855
|
+
["app1", ["cowsay==6.1"]],
|
|
856
|
+
["app2", ["rich[jupyter]>=13"]],
|
|
857
|
+
]);
|
|
858
|
+
expect(createMarimoFile(apps[0])).toContain(
|
|
859
|
+
'# /// script\n# dependencies = ["cowsay==6.1"]\n# ///\n',
|
|
860
|
+
);
|
|
861
|
+
});
|
|
862
|
+
|
|
863
|
+
it.each([null, "cowsay", [123], ["cowsay", null]])(
|
|
864
|
+
"should ignore payloads with malformed dependencies: %j",
|
|
865
|
+
(dependencies) => {
|
|
866
|
+
const island = createMockIslandElement({
|
|
867
|
+
appId: "app1",
|
|
868
|
+
cellId: "cell-1",
|
|
869
|
+
code: "import cowsay",
|
|
870
|
+
innerHTML: "<div>dom</div>",
|
|
871
|
+
});
|
|
872
|
+
island.setAttribute(ISLAND_DATA_ATTRIBUTES.REACTIVE, "true");
|
|
873
|
+
container.appendChild(island);
|
|
874
|
+
appendPayload(container, {
|
|
875
|
+
schemaVersion: 1,
|
|
876
|
+
appId: "app1",
|
|
877
|
+
dependencies,
|
|
878
|
+
cells: [createPayloadCell()],
|
|
879
|
+
});
|
|
880
|
+
|
|
881
|
+
expect(parseMarimoIslandApps(container)).toEqual([
|
|
882
|
+
{
|
|
883
|
+
id: "app1",
|
|
884
|
+
cells: [{ code: "import cowsay", output: "<div>dom</div>", idx: 0 }],
|
|
885
|
+
},
|
|
886
|
+
]);
|
|
887
|
+
},
|
|
888
|
+
);
|
|
889
|
+
|
|
890
|
+
it("should merge dependencies from payloads belonging to the same app", () => {
|
|
891
|
+
for (const [cellId, dependencies] of [
|
|
892
|
+
["cell-1", ["cowsay"]],
|
|
893
|
+
["cell-2", ["cowsay", "rich"]],
|
|
894
|
+
] as const) {
|
|
895
|
+
container.appendChild(createMockIslandElement({ appId: "app1", cellId }));
|
|
896
|
+
appendPayload(container, {
|
|
897
|
+
schemaVersion: 1,
|
|
898
|
+
appId: "app1",
|
|
899
|
+
dependencies,
|
|
900
|
+
cells: [createPayloadCell({ cellId })],
|
|
901
|
+
});
|
|
902
|
+
}
|
|
903
|
+
|
|
904
|
+
expect(
|
|
905
|
+
parseMarimoIslandApps(container).map((app) => app.dependencies),
|
|
906
|
+
).toEqual([["cowsay", "rich"]]);
|
|
907
|
+
});
|
|
908
|
+
|
|
778
909
|
it("should fall back to DOM islands for unsupported payload versions", () => {
|
|
779
910
|
const island = createMockIslandElement({
|
|
780
911
|
appId: "app1",
|
|
@@ -990,6 +1121,7 @@ describe("parseMarimoIslandApps", () => {
|
|
|
990
1121
|
outputHtml: "<div>payload only</div>",
|
|
991
1122
|
}),
|
|
992
1123
|
],
|
|
1124
|
+
dependencies: ["cowsay"],
|
|
993
1125
|
});
|
|
994
1126
|
|
|
995
1127
|
const result = parseMarimoIslandApps(container);
|
|
@@ -1076,6 +1208,7 @@ describe("parseMarimoIslandApps", () => {
|
|
|
1076
1208
|
reactive: false,
|
|
1077
1209
|
}),
|
|
1078
1210
|
],
|
|
1211
|
+
dependencies: ["cowsay"],
|
|
1079
1212
|
});
|
|
1080
1213
|
|
|
1081
1214
|
const result = parseMarimoIslandApps(container);
|
|
@@ -30,6 +30,8 @@ export interface MarimoIslandApp {
|
|
|
30
30
|
* Whether cells came from a supported JSON payload instead of DOM parsing.
|
|
31
31
|
*/
|
|
32
32
|
payloadBacked?: boolean;
|
|
33
|
+
/** Explicit notebook dependencies to install before starting the app. */
|
|
34
|
+
dependencies?: string[];
|
|
33
35
|
/**
|
|
34
36
|
* Cells in the app.
|
|
35
37
|
*/
|
|
@@ -62,6 +64,7 @@ interface MarimoIslandCell {
|
|
|
62
64
|
interface MarimoIslandPayload {
|
|
63
65
|
schemaVersion: 1;
|
|
64
66
|
appId: string;
|
|
67
|
+
dependencies?: string[];
|
|
65
68
|
cells: MarimoIslandPayloadCell[];
|
|
66
69
|
}
|
|
67
70
|
|
|
@@ -235,6 +238,12 @@ function parsePayloadBackedApps({
|
|
|
235
238
|
embed?.setAttribute(ISLAND_DATA_ATTRIBUTES.CELL_IDX, idx.toString());
|
|
236
239
|
}
|
|
237
240
|
}
|
|
241
|
+
const app = apps.get(payload.appId);
|
|
242
|
+
if (app && payload.dependencies?.length) {
|
|
243
|
+
app.dependencies = [
|
|
244
|
+
...new Set([...(app.dependencies ?? []), ...payload.dependencies]),
|
|
245
|
+
];
|
|
246
|
+
}
|
|
238
247
|
}
|
|
239
248
|
|
|
240
249
|
// A supported payload is the runtime source for its app. Extra same-app DOM
|
|
@@ -371,6 +380,7 @@ export function parseIslandElement(
|
|
|
371
380
|
|
|
372
381
|
export function createMarimoFile(app: {
|
|
373
382
|
cells: { code: string; disabled?: boolean }[];
|
|
383
|
+
dependencies?: string[];
|
|
374
384
|
}): string {
|
|
375
385
|
const lines = [
|
|
376
386
|
"import marimo",
|
|
@@ -402,6 +412,13 @@ export function createMarimoFile(app: {
|
|
|
402
412
|
.join("\n"),
|
|
403
413
|
];
|
|
404
414
|
|
|
415
|
+
if (app.dependencies?.length) {
|
|
416
|
+
lines.unshift(
|
|
417
|
+
"# /// script",
|
|
418
|
+
`# dependencies = ${JSON.stringify(app.dependencies)}`,
|
|
419
|
+
"# ///",
|
|
420
|
+
);
|
|
421
|
+
}
|
|
405
422
|
return lines.join("\n");
|
|
406
423
|
}
|
|
407
424
|
|
|
@@ -507,6 +524,9 @@ function isMarimoIslandPayload(
|
|
|
507
524
|
return (
|
|
508
525
|
payload.schemaVersion === 1 &&
|
|
509
526
|
typeof payload.appId === "string" &&
|
|
527
|
+
(payload.dependencies === undefined ||
|
|
528
|
+
(Array.isArray(payload.dependencies) &&
|
|
529
|
+
payload.dependencies.every((dep) => typeof dep === "string"))) &&
|
|
510
530
|
Array.isArray(payload.cells) &&
|
|
511
531
|
payload.cells.every(isMarimoIslandPayloadCell)
|
|
512
532
|
);
|
|
@@ -276,6 +276,17 @@ describe("RuntimeManager", () => {
|
|
|
276
276
|
});
|
|
277
277
|
|
|
278
278
|
describe("getTerminalWsURL", () => {
|
|
279
|
+
it("should include dimensions in the terminal handshake", () => {
|
|
280
|
+
const runtime = new RuntimeManager(mockConfig);
|
|
281
|
+
const url = runtime.getTerminalWsURL({ rows: 30, cols: 140 });
|
|
282
|
+
|
|
283
|
+
expect(Object.fromEntries(url.searchParams)).toEqual({
|
|
284
|
+
access_token: "test-token",
|
|
285
|
+
rows: "30",
|
|
286
|
+
cols: "140",
|
|
287
|
+
});
|
|
288
|
+
});
|
|
289
|
+
|
|
279
290
|
it("should return terminal WebSocket URL", () => {
|
|
280
291
|
const runtime = new RuntimeManager(mockConfig);
|
|
281
292
|
const url = runtime.getTerminalWsURL();
|
|
@@ -183,8 +183,13 @@ export class RuntimeManager {
|
|
|
183
183
|
/**
|
|
184
184
|
* The WebSocket URL of the terminal.
|
|
185
185
|
*/
|
|
186
|
-
getTerminalWsURL(): URL {
|
|
187
|
-
|
|
186
|
+
getTerminalWsURL(size?: { rows: number; cols: number }): URL {
|
|
187
|
+
const url = this.formatWsURL("/terminal/ws");
|
|
188
|
+
if (size) {
|
|
189
|
+
url.searchParams.set("rows", String(size.rows));
|
|
190
|
+
url.searchParams.set("cols", String(size.cols));
|
|
191
|
+
}
|
|
192
|
+
return url;
|
|
188
193
|
}
|
|
189
194
|
|
|
190
195
|
/**
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./any-language-editor-DflLjPSQ.js","./rolldown-runtime-B0Z9INg1.js","./react-CBDbhulC.js","./compiler-runtime-CYIjoINj.js","./useEventListener-92uWqz-P.js","./objects-snlMn4yk.js","./jsx-runtime-B74pBk57.js","./copy-icon-z8fuTE3w.js","./cn-ldLVeaqm.js","./clsx-DB0hHKMi.js","./tooltip-BUtPzKB4.js","./fullscreen-BH2jz-F4.js","./react-dom-BQrReHnR.js","./dist-DzCQtGkt.js","./button-Dh8EwhsF.js","./check-BoA6XBpj.js","./createLucideIcon-B7HeEoG2.js","./copy-BMXKNElG.js","./use-toast-DpWHUGuF.js","./copy-DlEomWzI.js","./esm-BHMOvJzM.js","./dist-BtC9ym6k.js","./dist-CZNULd6Z.js","./dist-DiYjQAhI.js","./extends-CvVTau-c.js","./error-banner-Dw5YY9wq.js","./alert-dialog-CA-2mBs3.js","./errors-DzO-nXy-.js","./schemas-aTUejmFi.js","./esm-DmqQGMel.js","./dist-B8pdsUrS.js","./dist-Cx4BE7jC.js","./dist-B0RXffUm.js","./dist-DkPPv0FB.js","./dist-Dw9YRsCU.js","./dist-CKUpxYGQ.js","./stex-Dc5bKD4z.js","./dist-BF7Lrekv.js","./dist-BaRNSaca.js","./dist-qvk3g06H.js","./dist-C--ZICxQ.js","./dist-DmGtPaVM.js","./dist-CmImLjus.js","./dist-DPoYlxSC.js","./dist-DJOWOALB.js","./dist-Db-HC93w.js","./dist-kaLvV_d4.js","./dist-gELFCfHH.js","./dist-Cq8NOszX.js","./dist-Bsu3h9O7.js","./apl-CYIAEF37.js","./asciiarmor-CF6FHpQl.js","./asn1-CmtZ6NID.js","./brainfuck-vE42J6oQ.js","./cobol-ttQu-eUm.js","./clike-Bo1_pR8B.js","./clojure-1zb6N0Kd.js","./css-aD3t-znF.js","./cmake-DSEb40G9.js","./coffeescript-CcHmp8ZW.js","./commonlisp-DHrixoxv.js","./cypher-q6-coHOK.js","./python-C4CVWZ7v.js","./crystal-fOwNIMzy.js","./d-Drt6ZXrF.js","./diff-CYBnW6ZU.js","./dtd-DqGG8R4P.js","./dylan-BTCYgsmh.js","./ecl-BPsxRGqR.js","./eiffel-BCguJEP-.js","./elm-DnNeI1M2.js","./erlang-DkHPV6ru.js","./factor-ZZBBZpXK.js","./simple-mode-DXiLM1-G.js","./forth-DUDizG3o.js","./fortran-BarbOvgW.js","./mllike-BKN6OcTc.js","./gas-mybzrfIH.js","./gherkin-BlnXaZZf.js","./groovy-cYuFC_ot.js","./haskell-CuLp9g3a.js","./haxe-CiIUZbdX.js","./idl-BHq7WyPV.js","./javascript-D-FtdkNC.js","./julia-CoYYMTcZ.js","./livescript-C1gEZ5Hk.js","./lua-DXBxhmso.js","./mirc-CTGUd79I.js","./mathematica-CwlrU_TQ.js","./modelica-DZs5SjV_.js","./mumps-BNg2Yq-1.js","./mbox-skR0V6cu.js","./nsis-8kQdxo7f.js","./ntriples-Ck5rp6GE.js","./octave-BRpd3hBF.js","./oz-BUEZmvHT.js","./pascal-DBfxUwpj.js","./perl-v9vsztCj.js","./pig-CrKTIB-m.js","./powershell-89xdb5K_.js","./properties-DaUFoXFR.js","./protobuf-Ci5XvpF4.js","./pug-DPY-Ajan.js","./puppet-Da8ZxG7z.js","./q-BjtI5Irp.js","./r-vSi6pWDr.js","./rpm-Cv5HmAkX.js","./ruby-UyKn0rKt.js","./sas-D3-6PWmJ.js","./scheme-DqTb0ELD.js","./shell-DySzVBqR.js","./sieve-CoBbN2aF.js","./smalltalk-CJJAzHnb.js","./sparql-CjwbV0fX.js","./stylus-uh0Gd-Iz.js","./swift-D5IK5OrP.js","./verilog-DPWRmpYS.js","./tcl-BvqzOD3a.js","./textile--JQHE1pJ.js","./toml-lWmHdWv5.js","./troff-r7W702V9.js","./ttcn-1CwPIugQ.js","./ttcn-cfg-CHYEAF6D.js","./turtle-D_5eCUwg.js","./webidl-CNY2gQL0.js","./vb-Vd6lTutg.js","./vbscript-CcW6E3ma.js","./velocity-CuSicjhq.js","./vhdl-sLYad3YP.js","./xquery-d3Qdoigy.js","./yacas-BjDXhrkW.js","./z80-z4BkVl0y.js","./mscgen-Bo5N9WUj.js","./dist-Bv0S1RlZ.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{t}from"./react-CBDbhulC.js";import{t as n}from"./createLucideIcon-B7HeEoG2.js";import{t as r}from"./preload-helper-HclGiUj8.js";var i=n(`between-horizontal-start`,[[`rect`,{width:`13`,height:`7`,x:`8`,y:`3`,rx:`1`,key:`pkso9a`}],[`path`,{d:`m2 9 3 3-3 3`,key:`1agib5`}],[`rect`,{width:`13`,height:`7`,x:`8`,y:`14`,rx:`1`,key:`1q5fc1`}]]),a=(0,e(t(),1).lazy)(()=>r(()=>import(`./any-language-editor-DflLjPSQ.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133]),import.meta.url));export{i as n,a as t};
|