@marimo-team/frontend 0.24.3-dev1 → 0.24.3-dev13
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-LoTwk7fR.js → CellStatus-LChlPuPv.js} +1 -1
- package/dist/assets/{ConnectedDataExplorerComponent-DW6cJ-Lr.js → ConnectedDataExplorerComponent-DiXd-oqU.js} +1 -1
- package/dist/assets/JsonOutput-DCgOfk7t.js +50 -0
- package/dist/assets/LazyAnyLanguageCodeMirror-C_cwGmDg.js +2 -0
- package/dist/assets/{MarimoErrorOutput-DqpoYOvw.js → MarimoErrorOutput-DwGwWsxV.js} +2 -2
- package/dist/assets/{RenderHTML-DwhMAd9l.js → RenderHTML-B73ExmWb.js} +1 -1
- package/dist/assets/{RunButton-BlpbweyH.js → RunButton-iPopny2V.js} +1 -1
- package/dist/assets/add-cell-with-ai-DkDJWJF6.js +76 -0
- package/dist/assets/{add-connection-dialog-BGfpw5lC.js → add-connection-dialog-1fPdJRRj.js} +73 -73
- package/dist/assets/agent-panel-0drx16i_.js +286 -0
- package/dist/assets/ai-model-dropdown-B3zoJxvO.js +3 -0
- package/dist/assets/{any-language-editor-DflLjPSQ.js → any-language-editor-pGZDaSqz.js} +1 -1
- package/dist/assets/app-config-button-DlhlZpGg.js +1 -0
- package/dist/assets/{blob-B2d_dHwI.js → blob-B6ayJpoQ.js} +1 -1
- package/dist/assets/cell-editor-DHWK9sPz.js +21 -0
- package/dist/assets/cell-link-B7ZVGcSl.js +1 -0
- package/dist/assets/{cells-Cp-G34Rz.js → cells-CMLP1Dld.js} +25 -25
- package/dist/assets/chat-display-MSmOss6B.js +1 -0
- package/dist/assets/{chat-panel-BlUwNY5j.js → chat-panel-g8moS06Y.js} +2 -2
- package/dist/assets/{chat-ui-DGiVDzNh.js → chat-ui-CBqyOE_p.js} +4 -4
- package/dist/assets/{column-preview-riSXbYe_.js → column-preview-oex3TMfq.js} +1 -1
- package/dist/assets/{command-palette-CCVzJcyf.js → command-palette-D0CXuYgO.js} +1 -1
- package/dist/assets/{common-CHR7w7aQ.js → common-BN-k-WsU.js} +1 -1
- package/dist/assets/components-BPyy3wXe.js +1 -0
- package/dist/assets/components-DWwMSfV5.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-DrODSIs0.js → datasource-DDYaCFxh.js} +2 -2
- package/dist/assets/{dependency-graph-panel-AY5BEVH2.js → dependency-graph-panel-XotpvJGU.js} +3 -3
- package/dist/assets/dist-0lSCnrrf.js +1 -0
- package/dist/assets/dist-CLXTUtr2.js +1 -0
- package/dist/assets/{documentation-panel-CaJF7e-j.js → documentation-panel-pxfRAT4P.js} +1 -1
- package/dist/assets/{download-DMxOzI7b.js → download-BRrPmrl5.js} +1 -1
- package/dist/assets/dropdown-menu-DnvwbPho.js +1 -0
- package/dist/assets/edit-page-BopkEdmt.js +9 -0
- package/dist/assets/{error-entries-Cv2m1yhc.js → error-entries-Bc5lubx5.js} +1 -1
- package/dist/assets/{error-panel-Bhlvt6_H.js → error-panel-n7jAw6zx.js} +1 -1
- package/dist/assets/file-explorer-panel-BOBUXkRd.js +1 -0
- package/dist/assets/file-icons-wArFRwmS.js +1 -0
- package/dist/assets/{file-name-input-K4MKESI_.js → file-name-input-Brf4MYj_.js} +3 -3
- package/dist/assets/{floating-outline-DaUHnl_e.js → floating-outline-CG-zTB22.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-CB-Br4zp.js +4 -0
- package/dist/assets/index-C2Qgy_xA.js +29 -0
- package/dist/assets/{kiosk-mode-mxgb5lWf.js → kiosk-mode-m6yKu6eh.js} +1 -1
- package/dist/assets/{layout-DWnrxIo2.js → layout-YlSl0c7f.js} +5 -5
- package/dist/assets/logs-panel-Dpw-vNvJ.js +1 -0
- package/dist/assets/{markdown-renderer-BZKlbm2Q.js → markdown-renderer-C_dn-F0h.js} +1 -1
- package/dist/assets/{name-cell-input-BMCdK-el.js → name-cell-input-DQ1AN_b1.js} +1 -1
- package/dist/assets/{outline-panel-Dr5u73V6.js → outline-panel-CANEwLJ7.js} +1 -1
- package/dist/assets/packages-panel-l2uEMqBg.js +1 -0
- package/dist/assets/{pair-with-agent-modal-CbUFKJHP.js → pair-with-agent-modal-DYvcjx3q.js} +1 -1
- package/dist/assets/panel-accordion-state-CJxJh72n.js +1 -0
- package/dist/assets/panels-CU5fmJJo.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-DTlZ_jDn.js +1 -0
- package/dist/assets/readonly-code-display-DWORkymT.js +1 -0
- package/dist/assets/{readonly-python-code-DpIyjHqY.js → readonly-python-code-Cvz_-5Jh.js} +1 -1
- package/dist/assets/{renderShortcut-X-CJUSM8.js → renderShortcut-BE8QI9Yi.js} +1 -1
- package/dist/assets/{reveal-component-nZIAapoD.js → reveal-component-B6FIsdxS.js} +2 -2
- package/dist/assets/rotate-cw-CESctpLh.js +1 -0
- package/dist/assets/run-page-DpA2Hz2h.js +1 -0
- package/dist/assets/{scratchpad-panel-BleGt2KM.js → scratchpad-panel-FahrbepP.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-2w7efICk.js +1 -0
- package/dist/assets/share-BZW3tzEX.js +1 -0
- package/dist/assets/{skeleton-BKeh8hf3.js → skeleton-CLUBZ15q.js} +1 -1
- package/dist/assets/{snippets-panel-D5yy7kj0.js → snippets-panel-CvdCemOl.js} +1 -1
- package/dist/assets/{state-B6AklCzD.js → state-CJnYkzhz.js} +1 -1
- package/dist/assets/state-DuyHh3Fk.js +3 -0
- 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-CnQSHm2x.js +1 -0
- package/dist/assets/tracing-panel-BZHx8nXa.js +2 -0
- package/dist/assets/tree-actions-5rg4Zqxe.js +1 -0
- package/dist/assets/{useAddCell-DdB_uBif.js → useAddCell-4vmbxGw5.js} +1 -1
- package/dist/assets/{useBoolean-BXC4CItZ.js → useBoolean-zcg-oxnj.js} +1 -1
- package/dist/assets/useCellActionButton-BQY2nyr_.js +1 -0
- package/dist/assets/{useDeleteCell-Bz49_cFj.js → useDeleteCell-CM1QzkEs.js} +1 -1
- package/dist/assets/useDependencyPanelTab-BsALWNfv.js +1 -0
- package/dist/assets/useInstallPackage-Cr0TevQm.js +1 -0
- package/dist/assets/useNotebookActions-BxNtZieS.js +10 -0
- package/dist/assets/{useRunCells-CX7oW5zy.js → useRunCells-C2e26LhV.js} +1 -1
- package/dist/assets/{useSplitCell-Dy2_DmJR.js → useSplitCell-CJ8nGq_h.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 +36 -35
- package/package.json +1 -1
- package/src/__mocks__/requests.ts +7 -2
- package/src/components/data-table/column-explorer-panel/column-explorer.tsx +2 -6
- package/src/components/data-table/column-visibility-dropdown.tsx +9 -3
- package/src/components/datasources/components.tsx +4 -2
- package/src/components/editor/chrome/components/feedback-button.tsx +10 -9
- package/src/components/editor/chrome/panels/__tests__/packages-panel.test.tsx +143 -0
- package/src/components/editor/chrome/panels/packages-panel.tsx +145 -51
- package/src/components/editor/code/__tests__/readonly-diff.test.tsx +65 -0
- package/src/components/editor/code/readonly-diff.tsx +1 -1
- package/src/components/editor/file-tree/__tests__/tree-actions.test.tsx +54 -0
- package/src/components/editor/file-tree/tree-actions.tsx +11 -14
- package/src/components/editor/package-alert.tsx +25 -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/cells/pending-delete-service.ts +12 -16
- package/src/core/codemirror/language/__tests__/sql.test.ts +70 -2
- package/src/core/codemirror/language/languages/sql/sql.ts +16 -1
- package/src/core/datasets/__tests__/data-source.test.ts +2 -0
- package/src/core/datasets/data-source-connections.ts +15 -10
- package/src/core/islands/__tests__/parse.test.ts +140 -7
- package/src/core/islands/parse.ts +20 -0
- package/src/core/packages/__tests__/useInstallPackage.test.tsx +47 -1
- package/src/core/packages/toast-components.tsx +26 -0
- package/src/core/packages/useInstallPackage.ts +7 -2
- package/src/core/runtime/__tests__/runtime.test.ts +11 -0
- package/src/core/runtime/runtime.ts +7 -2
- package/src/core/wasm/bridge.ts +1 -0
- package/src/plugins/layout/AccordionPlugin.tsx +7 -2
- package/src/plugins/layout/__test__/AccordionPlugin.test.tsx +66 -0
- package/dist/assets/JsonOutput-CzIGPEZQ.js +0 -50
- package/dist/assets/LazyAnyLanguageCodeMirror-LboTfNDv.js +0 -2
- package/dist/assets/add-cell-with-ai-R-3DS79K.js +0 -76
- package/dist/assets/agent-panel-Cgt_K0tD.js +0 -286
- package/dist/assets/ai-model-dropdown-DCmiuk7x.js +0 -3
- package/dist/assets/app-config-button-DUJC6b6x.js +0 -1
- package/dist/assets/cell-editor-Dw09J9yD.js +0 -21
- package/dist/assets/cell-link-6burT2XF.js +0 -1
- package/dist/assets/chat-display-Bu405iyc.js +0 -1
- package/dist/assets/components-C7mWrmXr.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-xlMlcLnI.js +0 -9
- package/dist/assets/file-explorer-panel-s0ohSG_L.js +0 -1
- package/dist/assets/file-icons-DdGYuADJ.js +0 -1
- package/dist/assets/gallery-page-C3pBpHlY.js +0 -1
- package/dist/assets/home-page-BLd6rnbk.js +0 -4
- package/dist/assets/index-4n22QjCD.js +0 -29
- package/dist/assets/logs-panel-BGS2v3ba.js +0 -1
- package/dist/assets/packages-panel-BdpRg9tX.js +0 -1
- package/dist/assets/panel-accordion-state-DjUTN7i5.js +0 -1
- package/dist/assets/panels-CWn0Yh1D.js +0 -4
- package/dist/assets/paths-zcL04qUW.js +0 -1
- package/dist/assets/process-output-Ck7-P_xp.js +0 -1
- package/dist/assets/readonly-code-display--S2daDa6.js +0 -1
- package/dist/assets/run-page-9pl8qhQR.js +0 -1
- package/dist/assets/select-nLt2y0Sw.js +0 -1
- package/dist/assets/session-panel-DRGPlL5J.js +0 -1
- package/dist/assets/share-CPtBiNgr.js +0 -1
- package/dist/assets/state-Di9TbuV9.js +0 -3
- package/dist/assets/switch-DjXr9Y9D.js +0 -1
- package/dist/assets/tooltip-BUtPzKB4.js +0 -1
- package/dist/assets/tracing-DNk3gmWv.js +0 -1
- package/dist/assets/tracing-panel-Yqazr6w_.js +0 -2
- package/dist/assets/tree-actions-CG5g7aUQ.js +0 -1
- package/dist/assets/useCellActionButton-B31neI3m.js +0 -1
- package/dist/assets/useDependencyPanelTab-C_ps0r--.js +0 -1
- package/dist/assets/useInstallPackage-DsD08SLK.js +0 -1
- package/dist/assets/useNotebookActions-CQtbk9CB.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-C2Qgy_xA.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-CMLP1Dld.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-4vmbxGw5.js">
|
|
156
|
+
<link rel="modulepreload" crossorigin href="./assets/readonly-python-code-Cvz_-5Jh.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-
|
|
164
|
-
<link rel="modulepreload" crossorigin href="./assets/
|
|
160
|
+
<link rel="modulepreload" crossorigin href="./assets/markdown-renderer-C_dn-F0h.js">
|
|
161
|
+
<link rel="modulepreload" crossorigin href="./assets/copy-icon-BUOcnUgJ.js">
|
|
162
|
+
<link rel="modulepreload" crossorigin href="./assets/useRunCells-C2e26LhV.js">
|
|
163
|
+
<link rel="modulepreload" crossorigin href="./assets/RenderHTML-B73ExmWb.js">
|
|
164
|
+
<link rel="modulepreload" crossorigin href="./assets/blob-B6ayJpoQ.js">
|
|
165
|
+
<link rel="modulepreload" crossorigin href="./assets/kbd-Cwh96ZBE.js">
|
|
166
|
+
<link rel="modulepreload" crossorigin href="./assets/useInstallPackage-Cr0TevQm.js">
|
|
167
|
+
<link rel="modulepreload" crossorigin href="./assets/share-BZW3tzEX.js">
|
|
165
168
|
<link rel="modulepreload" crossorigin href="./assets/events-CbeVJ6OD.js">
|
|
166
|
-
<link rel="modulepreload" crossorigin href="./assets/state-
|
|
169
|
+
<link rel="modulepreload" crossorigin href="./assets/state-DuyHh3Fk.js">
|
|
167
170
|
<link rel="modulepreload" crossorigin href="./assets/ErrorBoundary-CDVGFYfr.js">
|
|
168
171
|
<link rel="modulepreload" crossorigin href="./assets/config-B-r81uZ6.js">
|
|
169
172
|
<link rel="modulepreload" crossorigin href="./assets/tabs-Cy1qXLzH.js">
|
|
170
173
|
<link rel="modulepreload" crossorigin href="./assets/chevron-right-CKA5zVsM.js">
|
|
171
|
-
<link rel="modulepreload" crossorigin href="./assets/dropdown-menu-
|
|
174
|
+
<link rel="modulepreload" crossorigin href="./assets/dropdown-menu-DnvwbPho.js">
|
|
172
175
|
<link rel="modulepreload" crossorigin href="./assets/html-to-image-D6GUC5q6.js">
|
|
173
|
-
<link rel="modulepreload" crossorigin href="./assets/download-
|
|
176
|
+
<link rel="modulepreload" crossorigin href="./assets/download-BRrPmrl5.js">
|
|
174
177
|
<link rel="modulepreload" crossorigin href="./assets/table-CUK1W5bI.js">
|
|
175
178
|
<link rel="modulepreload" crossorigin href="./assets/refresh-cw-Bf-rx_aV.js">
|
|
176
|
-
<link rel="modulepreload" crossorigin href="./assets/tree-actions-
|
|
179
|
+
<link rel="modulepreload" crossorigin href="./assets/tree-actions-5rg4Zqxe.js">
|
|
177
180
|
<link rel="modulepreload" crossorigin href="./assets/ellipsis-Dfik_tuW.js">
|
|
178
181
|
<link rel="modulepreload" crossorigin href="./assets/external-link-Bp3BxyRA.js">
|
|
179
182
|
<link rel="modulepreload" crossorigin href="./assets/spinner-Ck-Hgfvj.js">
|
|
180
183
|
<link rel="modulepreload" crossorigin href="./assets/message-circle-BQB1AIAg.js">
|
|
181
184
|
<link rel="modulepreload" crossorigin href="./assets/hat-glasses-C8LSY3HT.js">
|
|
182
185
|
<link rel="modulepreload" crossorigin href="./assets/package-DPlscLzt.js">
|
|
183
|
-
<link rel="modulepreload" crossorigin href="./assets/datasource-
|
|
184
|
-
<link rel="modulepreload" crossorigin href="./assets/kbd-Cwh96ZBE.js">
|
|
186
|
+
<link rel="modulepreload" crossorigin href="./assets/datasource-DDYaCFxh.js">
|
|
185
187
|
<link rel="modulepreload" crossorigin href="./assets/alert-dmKwNsrp.js">
|
|
186
|
-
<link rel="modulepreload" crossorigin href="./assets/
|
|
187
|
-
<link rel="modulepreload" crossorigin href="./assets/
|
|
188
|
-
<link rel="modulepreload" crossorigin href="./assets/
|
|
189
|
-
<link rel="modulepreload" crossorigin href="./assets/MarimoErrorOutput-DqpoYOvw.js">
|
|
188
|
+
<link rel="modulepreload" crossorigin href="./assets/state-CJnYkzhz.js">
|
|
189
|
+
<link rel="modulepreload" crossorigin href="./assets/cell-link-B7ZVGcSl.js">
|
|
190
|
+
<link rel="modulepreload" crossorigin href="./assets/MarimoErrorOutput-DwGwWsxV.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-DCgOfk7t.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-oex3TMfq.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-CG-zTB22.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
|
@@ -136,8 +136,13 @@ export const MockRequestClient = {
|
|
|
136
136
|
updateCellOutputs: vi.fn().mockResolvedValue({}),
|
|
137
137
|
addPackage: vi.fn().mockResolvedValue({}),
|
|
138
138
|
removePackage: vi.fn().mockResolvedValue({}),
|
|
139
|
-
getPackageList: vi.fn().mockResolvedValue({
|
|
140
|
-
|
|
139
|
+
getPackageList: vi.fn().mockResolvedValue({
|
|
140
|
+
packages: [],
|
|
141
|
+
}),
|
|
142
|
+
getDependencyTree: vi.fn().mockResolvedValue({
|
|
143
|
+
tree: null,
|
|
144
|
+
context: { kind: "package-manager", name: "pip" },
|
|
145
|
+
}),
|
|
141
146
|
listSecretKeys: vi.fn().mockResolvedValue({ keys: [] }),
|
|
142
147
|
writeSecret: vi.fn().mockResolvedValue({}),
|
|
143
148
|
invokeAiTool: vi.fn().mockResolvedValue({}),
|
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
EyeIcon,
|
|
11
11
|
EyeOffIcon,
|
|
12
12
|
} from "lucide-react";
|
|
13
|
-
import {
|
|
13
|
+
import { useState } from "react";
|
|
14
14
|
import { useLocale } from "react-aria";
|
|
15
15
|
import {
|
|
16
16
|
AddDataframeChart,
|
|
@@ -98,11 +98,7 @@ export function ColumnExplorerPanel<TData>({
|
|
|
98
98
|
hiddenColumns: hiddenColumnCount,
|
|
99
99
|
} = getColumnCountForDisplay(table, totalColumns);
|
|
100
100
|
const { visible: visibleColumnCount } = getUserColumnVisibilityCounts(table);
|
|
101
|
-
const
|
|
102
|
-
const showOnlyColumnState = useMemo(
|
|
103
|
-
() => getShowOnlyColumnState(table),
|
|
104
|
-
[table, columnVisibility],
|
|
105
|
-
);
|
|
101
|
+
const showOnlyColumnState = getShowOnlyColumnState(table);
|
|
106
102
|
|
|
107
103
|
const { rowsAndColumns, hiddenSuffix } = prettifyRowColumnCount({
|
|
108
104
|
numRows: totalRows,
|
|
@@ -215,6 +215,11 @@ export const ColumnVisibilityDropdown = <TData,>({
|
|
|
215
215
|
index === list.pinnedCount &&
|
|
216
216
|
list.pinnedCount > 0 &&
|
|
217
217
|
list.pinnedCount < list.visibleOptions.length;
|
|
218
|
+
const label = (
|
|
219
|
+
<span className="truncate" title={option.label}>
|
|
220
|
+
{option.label}
|
|
221
|
+
</span>
|
|
222
|
+
);
|
|
218
223
|
return (
|
|
219
224
|
<React.Fragment key={option.value}>
|
|
220
225
|
{isSectionBoundary && <CommandSeparator />}
|
|
@@ -225,15 +230,16 @@ export const ColumnVisibilityDropdown = <TData,>({
|
|
|
225
230
|
className="flex items-center gap-1.5 cursor-pointer"
|
|
226
231
|
>
|
|
227
232
|
{dataType === undefined ? (
|
|
228
|
-
|
|
233
|
+
label
|
|
229
234
|
) : (
|
|
230
235
|
<ColumnName
|
|
231
|
-
|
|
236
|
+
className="min-w-0"
|
|
237
|
+
columnName={label}
|
|
232
238
|
dataType={dataType}
|
|
233
239
|
/>
|
|
234
240
|
)}
|
|
235
241
|
{!option.disabled && (
|
|
236
|
-
<span className="ml-auto flex items-center gap-0.5">
|
|
242
|
+
<span className="ml-auto flex shrink-0 items-center gap-0.5">
|
|
237
243
|
<ShowOnlyColumnButton
|
|
238
244
|
table={table}
|
|
239
245
|
columnIds={[option.value]}
|
|
@@ -101,18 +101,20 @@ export const ColumnPreviewContainer: React.FC<{
|
|
|
101
101
|
export const ColumnName = ({
|
|
102
102
|
columnName,
|
|
103
103
|
dataType,
|
|
104
|
+
className,
|
|
104
105
|
}: {
|
|
105
106
|
columnName: React.ReactNode;
|
|
106
107
|
dataType: DataType;
|
|
108
|
+
className?: string;
|
|
107
109
|
}) => {
|
|
108
110
|
const resolvedDataType = resolveDataType(dataType);
|
|
109
111
|
const Icon = DATA_TYPE_ICON[resolvedDataType];
|
|
110
112
|
const color = getDataTypeColor(resolvedDataType);
|
|
111
113
|
|
|
112
114
|
return (
|
|
113
|
-
<div className="flex flex-row items-center gap-1.5">
|
|
115
|
+
<div className={cn("flex flex-row items-center gap-1.5", className)}>
|
|
114
116
|
<Icon
|
|
115
|
-
className={`w-4 h-4 p-0.5 rounded-sm stroke-card-foreground ${color}`}
|
|
117
|
+
className={`w-4 h-4 shrink-0 p-0.5 rounded-sm stroke-card-foreground ${color}`}
|
|
116
118
|
/>
|
|
117
119
|
{columnName}
|
|
118
120
|
</div>
|
|
@@ -6,7 +6,7 @@ const Slot = SlotPrimitive.Slot;
|
|
|
6
6
|
|
|
7
7
|
import { useAtomValue } from "jotai";
|
|
8
8
|
import { ExternalLinkIcon, TriangleAlertIcon } from "lucide-react";
|
|
9
|
-
import React, { type PropsWithChildren,
|
|
9
|
+
import React, { type PropsWithChildren, useState } from "react";
|
|
10
10
|
import { CopyClipboardIcon } from "@/components/icons/copy-icon";
|
|
11
11
|
import { useImperativeModal } from "@/components/modal/ImperativeModal";
|
|
12
12
|
import { Button } from "@/components/ui/button";
|
|
@@ -94,8 +94,7 @@ export const FeedbackModal: React.FC<{
|
|
|
94
94
|
);
|
|
95
95
|
|
|
96
96
|
const notebook = useAtomValue(notebookAtom);
|
|
97
|
-
|
|
98
|
-
const errors = useMemo(() => getCellErrorEntries(store), [notebook]);
|
|
97
|
+
const errors = getCellErrorEntries(store);
|
|
99
98
|
|
|
100
99
|
const cells = notebook.cellIds.inOrderIds.map(
|
|
101
100
|
(cellId) => notebook.cellData[cellId],
|
|
@@ -145,10 +144,9 @@ export const FeedbackModal: React.FC<{
|
|
|
145
144
|
return contents;
|
|
146
145
|
}, [includeCode, notebookSourceAvailable, readCode]);
|
|
147
146
|
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
}
|
|
147
|
+
let githubIssueUrl = Constants.bugReportUrl;
|
|
148
|
+
let omitted: string[] = [];
|
|
149
|
+
if (environment) {
|
|
152
150
|
const fields: Record<string, string> = {
|
|
153
151
|
env: formatEnvironmentSection(environment),
|
|
154
152
|
};
|
|
@@ -158,8 +156,11 @@ export const FeedbackModal: React.FC<{
|
|
|
158
156
|
if (includeCode && codeRequest.data) {
|
|
159
157
|
fields["reproduction-code"] = formatCodeSection(codeRequest.data);
|
|
160
158
|
}
|
|
161
|
-
|
|
162
|
-
|
|
159
|
+
({ url: githubIssueUrl, omitted } = buildBugReportUrl(
|
|
160
|
+
Constants.bugReportUrl,
|
|
161
|
+
fields,
|
|
162
|
+
));
|
|
163
|
+
}
|
|
163
164
|
|
|
164
165
|
const omittedLabels = omitted
|
|
165
166
|
.map((field) =>
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
/* Copyright 2026 Marimo. All rights reserved. */
|
|
2
|
+
|
|
3
|
+
import { fireEvent, render, screen } from "@testing-library/react";
|
|
4
|
+
import { Provider } from "jotai";
|
|
5
|
+
import { beforeEach, describe, expect, it, vi } from "vitest";
|
|
6
|
+
import { MockRequestClient } from "@/__mocks__/requests";
|
|
7
|
+
import { TooltipProvider } from "@/components/ui/tooltip";
|
|
8
|
+
import { requestClientAtom } from "@/core/network/requests";
|
|
9
|
+
import type {
|
|
10
|
+
DependencyTreeNode,
|
|
11
|
+
DependencyTreeResponse,
|
|
12
|
+
} from "@/core/network/types";
|
|
13
|
+
import { store } from "@/core/state/jotai";
|
|
14
|
+
import PackagesPanel from "../packages-panel";
|
|
15
|
+
|
|
16
|
+
const { openSettings } = vi.hoisted(() => ({
|
|
17
|
+
openSettings: vi.fn(),
|
|
18
|
+
}));
|
|
19
|
+
|
|
20
|
+
vi.mock("@/components/app-config/state", () => ({
|
|
21
|
+
useOpenSettingsToTab: () => ({ handleClick: openSettings }),
|
|
22
|
+
}));
|
|
23
|
+
|
|
24
|
+
const emptyTree: DependencyTreeNode = {
|
|
25
|
+
name: "<root>",
|
|
26
|
+
version: null,
|
|
27
|
+
tags: [],
|
|
28
|
+
dependencies: [],
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
const populatedTree: DependencyTreeNode = {
|
|
32
|
+
...emptyTree,
|
|
33
|
+
dependencies: [
|
|
34
|
+
{
|
|
35
|
+
name: "polars",
|
|
36
|
+
version: "1.44.1",
|
|
37
|
+
tags: [],
|
|
38
|
+
dependencies: [
|
|
39
|
+
{
|
|
40
|
+
name: "numpy",
|
|
41
|
+
version: "2.5.2",
|
|
42
|
+
tags: [{ kind: "dedupe", value: "true" }],
|
|
43
|
+
dependencies: [],
|
|
44
|
+
},
|
|
45
|
+
],
|
|
46
|
+
},
|
|
47
|
+
],
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
function renderPanel(
|
|
51
|
+
context: DependencyTreeResponse["context"],
|
|
52
|
+
tree: DependencyTreeNode = emptyTree,
|
|
53
|
+
) {
|
|
54
|
+
const getPackageList = vi.fn().mockResolvedValue({ packages: [] });
|
|
55
|
+
store.set(
|
|
56
|
+
requestClientAtom,
|
|
57
|
+
MockRequestClient.create({
|
|
58
|
+
getPackageList,
|
|
59
|
+
getDependencyTree: vi.fn().mockResolvedValue({ tree, context }),
|
|
60
|
+
}),
|
|
61
|
+
);
|
|
62
|
+
|
|
63
|
+
return {
|
|
64
|
+
getPackageList,
|
|
65
|
+
...render(
|
|
66
|
+
<Provider store={store}>
|
|
67
|
+
<TooltipProvider>
|
|
68
|
+
<PackagesPanel />
|
|
69
|
+
</TooltipProvider>
|
|
70
|
+
</Provider>,
|
|
71
|
+
),
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
describe("PackagesPanel", () => {
|
|
76
|
+
beforeEach(() => {
|
|
77
|
+
vi.clearAllMocks();
|
|
78
|
+
});
|
|
79
|
+
|
|
80
|
+
it.each(["pixi", "uv"] as const)(
|
|
81
|
+
"shows the effective %s sandbox backend as a fixed context",
|
|
82
|
+
async (backend) => {
|
|
83
|
+
const { getPackageList } = renderPanel({ kind: "sandbox", backend });
|
|
84
|
+
|
|
85
|
+
expect(
|
|
86
|
+
await screen.findByPlaceholderText(
|
|
87
|
+
`Add packages to ${backend} sandbox...`,
|
|
88
|
+
),
|
|
89
|
+
).toBeInTheDocument();
|
|
90
|
+
expect(screen.getByText(`${backend} sandbox`)).toBeInTheDocument();
|
|
91
|
+
expect(
|
|
92
|
+
screen.queryByRole("button", { name: "Change package manager" }),
|
|
93
|
+
).not.toBeInTheDocument();
|
|
94
|
+
expect(
|
|
95
|
+
screen.queryByRole("button", { name: "List" }),
|
|
96
|
+
).not.toBeInTheDocument();
|
|
97
|
+
expect(
|
|
98
|
+
screen.queryByRole("button", { name: "Tree" }),
|
|
99
|
+
).not.toBeInTheDocument();
|
|
100
|
+
expect(getPackageList).not.toHaveBeenCalled();
|
|
101
|
+
},
|
|
102
|
+
);
|
|
103
|
+
|
|
104
|
+
it("explains the filtered empty state for a Pixi sandbox", async () => {
|
|
105
|
+
renderPanel({ kind: "sandbox", backend: "pixi" });
|
|
106
|
+
|
|
107
|
+
expect(await screen.findByText("No PyPI dependencies")).toBeInTheDocument();
|
|
108
|
+
expect(
|
|
109
|
+
screen.getByText("Conda dependencies are not shown in this panel."),
|
|
110
|
+
).toBeInTheDocument();
|
|
111
|
+
});
|
|
112
|
+
|
|
113
|
+
it("labels a dependency whose subtree was already displayed", async () => {
|
|
114
|
+
renderPanel({ kind: "sandbox", backend: "pixi" }, populatedTree);
|
|
115
|
+
|
|
116
|
+
fireEvent.click(await screen.findByRole("treeitem", { name: /polars/ }));
|
|
117
|
+
|
|
118
|
+
expect(screen.getByText("already in tree")).toBeInTheDocument();
|
|
119
|
+
expect(screen.queryByText("cycle")).not.toBeInTheDocument();
|
|
120
|
+
});
|
|
121
|
+
|
|
122
|
+
it("keeps the configured package manager changeable outside a sandbox", async () => {
|
|
123
|
+
const { getPackageList } = renderPanel({
|
|
124
|
+
kind: "package-manager",
|
|
125
|
+
name: "pip",
|
|
126
|
+
});
|
|
127
|
+
|
|
128
|
+
expect(
|
|
129
|
+
await screen.findByPlaceholderText("Install packages with pip..."),
|
|
130
|
+
).toBeInTheDocument();
|
|
131
|
+
const changeManager = screen.getByRole("button", {
|
|
132
|
+
name: "Change package manager",
|
|
133
|
+
});
|
|
134
|
+
|
|
135
|
+
fireEvent.click(changeManager);
|
|
136
|
+
|
|
137
|
+
expect(openSettings).toHaveBeenCalledWith("packageManagementAndData");
|
|
138
|
+
expect(screen.getByText("environment")).toBeInTheDocument();
|
|
139
|
+
expect(screen.getByRole("button", { name: "List" })).toBeInTheDocument();
|
|
140
|
+
expect(screen.getByRole("button", { name: "Tree" })).toBeInTheDocument();
|
|
141
|
+
expect(getPackageList).toHaveBeenCalledOnce();
|
|
142
|
+
});
|
|
143
|
+
});
|