@marimo-team/frontend 0.25.3-dev4 → 0.25.3-dev42

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (286) hide show
  1. package/dist/assets/CellStatus-BpOBz-8m.js +1 -0
  2. package/dist/assets/{ConnectedDataExplorerComponent-t8fH_TNc.js → ConnectedDataExplorerComponent-D9UK8o9A.js} +1 -1
  3. package/dist/assets/{ErrorBoundary-Gl5nCA8C.js → ErrorBoundary-DmXl4Nre.js} +2 -2
  4. package/dist/assets/JsonOutput-BJraU9kp.js +11 -0
  5. package/dist/assets/{LazyAnyLanguageCodeMirror-CKcCbG2G.js → LazyAnyLanguageCodeMirror-BPYE76jR.js} +2 -2
  6. package/dist/assets/MarimoErrorOutput-DVjK8RgY.js +10 -0
  7. package/dist/assets/{RenderHTML-BbOqmHy3.js → RenderHTML-BFaztTR0.js} +1 -1
  8. package/dist/assets/{RunButton-CK3LhnP5.js → RunButton-B44xE_d5.js} +1 -1
  9. package/dist/assets/{add-cell-with-ai-8UBC0xwR.js → add-cell-with-ai-CkjslziO.js} +13 -13
  10. package/dist/assets/{add-connection-dialog-DXQnd6eB.js → add-connection-dialog-CWLLVKju.js} +2 -2
  11. package/dist/assets/{agent-panel-DdkVL-Kx.js → agent-panel-DYdQ_2pp.js} +5 -5
  12. package/dist/assets/ai-model-dropdown-F3mm17Wa.js +13 -0
  13. package/dist/assets/{alert-dialog-BaPGzeOK.js → alert-dialog-C-sWmKva.js} +1 -1
  14. package/dist/assets/any-language-editor-DUMe1UCk.js +1 -0
  15. package/dist/assets/{app-config-button-BKEG4x9u.js → app-config-button-D0uDs5nC.js} +1 -1
  16. package/dist/assets/arrays-0R2reF2y.js +1 -0
  17. package/dist/assets/{blob-D5nfNHOo.js → blob-BSfsdCNF.js} +1 -1
  18. package/dist/assets/{button-COI-NGrx.js → button-D8gVKwe-.js} +1 -1
  19. package/dist/assets/{cache-panel-DTY1dqvi.js → cache-panel-Byolv2ht.js} +1 -1
  20. package/dist/assets/{capabilities-BJvf-MD4.js → capabilities-Pq1YNPlK.js} +1 -1
  21. package/dist/assets/{cell-editor-32lVhib7.js → cell-editor-DzvvHs9g.js} +9 -9
  22. package/dist/assets/{cell-link-LSth_8hT.js → cell-link-DFPHORAO.js} +1 -1
  23. package/dist/assets/{cells-BRkCaSsh.js → cells-BdgzY0of.js} +31 -31
  24. package/dist/assets/{chat-display-Dnagy4Nv.js → chat-display-BrcwdhKJ.js} +1 -1
  25. package/dist/assets/{chat-panel-DN9vsbgS.js → chat-panel-C__3iSyI.js} +2 -2
  26. package/dist/assets/{chat-ui-Df8Vcj6n.js → chat-ui-NlBK3kK6.js} +1 -1
  27. package/dist/assets/{circle-DXf-VWZG.js → circle-B6D_6D8w.js} +1 -1
  28. package/dist/assets/code-visibility-Cs-Vv3jV.js +1 -0
  29. package/dist/assets/coerce-DWjFeXOY.js +1 -0
  30. package/dist/assets/{column-preview-CHK_DNrs.js → column-preview-ivm1b-GY.js} +1 -1
  31. package/dist/assets/command-palette-TgwswwvD.js +1 -0
  32. package/dist/assets/{common-Cu6CDbuw.js → common-BcEY1yDS.js} +1 -1
  33. package/dist/assets/{components-CP_UoFtT.js → components-DrU8dOzy.js} +1 -1
  34. package/dist/assets/{components-CXfO-F47.js → components-lDm0qi2t.js} +1 -1
  35. package/dist/assets/{components-CGw16R_N.js → components-lkCfd2vy.js} +1 -1
  36. package/dist/assets/config-BwHT0yGp.js +104 -0
  37. package/dist/assets/config-DGX7JYor.js +1 -0
  38. package/dist/assets/config-DXjnAwtL.js +1 -0
  39. package/dist/assets/{copy-D8O_CYCG.js → copy-KlhazlhB.js} +1 -1
  40. package/dist/assets/{copy-icon-BIiRXh_3.js → copy-icon-8-a5vovc.js} +1 -1
  41. package/dist/assets/{createReducer-DgRODTW6.js → createReducer-HKXUbqyz.js} +1 -1
  42. package/dist/assets/{datasource-Cq6x_5ML.js → datasource-dKk3JHSQ.js} +1 -1
  43. package/dist/assets/{dates-CfmdTL6B.js → dates-CQMwFko2.js} +1 -1
  44. package/dist/assets/{dependency-graph-panel--Kgtktcw.js → dependency-graph-panel-BaisS9Zt.js} +1 -1
  45. package/dist/assets/{dist-iaThVDkA.js → dist-jlhMTKo_.js} +1 -1
  46. package/dist/assets/{documentation-panel-BHmbeznw.js → documentation-panel-CpSUoM8r.js} +1 -1
  47. package/dist/assets/{download-DCJXy66H.js → download-RV4i1fWI.js} +1 -1
  48. package/dist/assets/{dropdown-menu-C1rnl-0o.js → dropdown-menu-DS6umAnH.js} +1 -1
  49. package/dist/assets/edit-page-C8RUVAaO.js +9 -0
  50. package/dist/assets/{error-banner-Cd69vvyX.js → error-banner-B5kzVf_0.js} +1 -1
  51. package/dist/assets/{error-entries-Dk3VZ-OK.js → error-entries-CJS0gOId.js} +1 -1
  52. package/dist/assets/{error-panel-BPRYmC5J.js → error-panel-BxCKpZtN.js} +1 -1
  53. package/dist/assets/{errors-DCrsa1nH.js → errors-CNsgAw6m.js} +1 -1
  54. package/dist/assets/{es-Cqst59WX.js → es-N9SHpmG7.js} +1 -1
  55. package/dist/assets/feedback-button-BLvwvndE.js +1 -0
  56. package/dist/assets/{feedback-button-Bik2-e33.js → feedback-button-DYjae3_b.js} +2 -2
  57. package/dist/assets/{file-explorer-panel-BmekFu7T.js → file-explorer-panel-BmjAJusg.js} +1 -1
  58. package/dist/assets/{file-name-input-Cdc-TVqO.js → file-name-input-BpfSzvEB.js} +1 -1
  59. package/dist/assets/{floating-outline-XD9FAV-f.js → floating-outline-CrWdiNQ2.js} +1 -1
  60. package/dist/assets/{formats-yZ06h1Pl.js → formats-zylfwejq.js} +1 -1
  61. package/dist/assets/{formatting-BqrP-n49.js → formatting-uom1es4b.js} +1 -1
  62. package/dist/assets/{fullscreen-B9tHcfpV.js → fullscreen-BWTs8pYZ.js} +1 -1
  63. package/dist/assets/{gallery-page-Dm6mGwBi.js → gallery-page-W_b-XWq6.js} +1 -1
  64. package/dist/assets/{ganttDiagram-EL5Y4UJY-2n7Ig5Jm.js → ganttDiagram-EL5Y4UJY-CYqkCfFG.js} +1 -1
  65. package/dist/assets/{glide-data-editor-J9CAb70d.js → glide-data-editor-C_bIL30J.js} +2 -2
  66. package/dist/assets/{glide-utils-CIrAxdjv.js → glide-utils-HFqhvWHI.js} +2 -2
  67. package/dist/assets/{home-page-s3LUizSn.js → home-page-D1teQDdF.js} +3 -3
  68. package/dist/assets/hooks-CZF85I2f.js +1 -0
  69. package/dist/assets/{html-to-image-DK9Zl1lU.js → html-to-image-D_0rd3_B.js} +1 -1
  70. package/dist/assets/index-4Nwpioic.js +30 -0
  71. package/dist/assets/index-ChfDZJzP.css +2 -0
  72. package/dist/assets/{input-BoBxR50a.js → input-ByHt6aoV.js} +1 -1
  73. package/dist/assets/{kiosk-mode-BZECfg9k.js → kiosk-mode-BGmMSc7A.js} +1 -1
  74. package/dist/assets/{layout-B_GMOySr.js → layout-ByZveRPN.js} +5 -5
  75. package/dist/assets/linear-Bma8J3iM.js +1 -0
  76. package/dist/assets/links-CXcpNIM0.js +1 -0
  77. package/dist/assets/{logs-panel-ABM16htT.js → logs-panel-DVSgfMgv.js} +1 -1
  78. package/dist/assets/{markdown-renderer-BG3sp2rs.js → markdown-renderer-DX2O5YiE.js} +1 -1
  79. package/dist/assets/{menu-items-BrwnTgyK.js → menu-items-BgUyNUpu.js} +1 -1
  80. package/dist/assets/{mermaid-a3xYymTy.js → mermaid-B6mqMm5_.js} +2 -2
  81. package/dist/assets/{name-cell-input-BgEBmqyL.js → name-cell-input-DL1i8Mj0.js} +1 -1
  82. package/dist/assets/numbers-CsZVw3Dc.js +1 -0
  83. package/dist/assets/{objects-snlMn4yk.js → objects-rLPlQ3X_.js} +1 -1
  84. package/dist/assets/{once-Haz_uxEL.js → once-6KNTRW0u.js} +1 -1
  85. package/dist/assets/{outline-panel-DCXQ3_F6.js → outline-panel-DPKPT2eg.js} +1 -1
  86. package/dist/assets/{packages-panel-BMGOmZkR.js → packages-panel-CZZwD9YV.js} +1 -1
  87. package/dist/assets/{panel-accordion-state-C1sdPp0m.js → panel-accordion-state-C7vvsYz1.js} +1 -1
  88. package/dist/assets/panels-BT2oosq8.js +4 -0
  89. package/dist/assets/precisionRound-BxlUs8G4.js +1 -0
  90. package/dist/assets/process-output-BKhybJBb.js +1 -0
  91. package/dist/assets/{quadrantDiagram-AXDQQJYC-yBhCDI7E.js → quadrantDiagram-AXDQQJYC-D9KH5Zge.js} +1 -1
  92. package/dist/assets/react-vega-BTNeboR2.js +189 -0
  93. package/dist/assets/{readonly-code-display-Do50PHI8.js → readonly-code-display-9QrSm_7D.js} +1 -1
  94. package/dist/assets/{readonly-python-code-DCSMIsTX.js → readonly-python-code-BLotL3XP.js} +1 -1
  95. package/dist/assets/{renderShortcut-BkVJQ_Zh.js → renderShortcut-H60uiHBp.js} +1 -1
  96. package/dist/assets/{reveal-component-CLE6vB1Z.js → reveal-component-2QaMbLNx.js} +3 -3
  97. package/dist/assets/{run-page-Depd6lEE.js → run-page-DyZ8JFKU.js} +1 -1
  98. package/dist/assets/{runs-BLp5jezv.js → runs-6lJxKV1w.js} +1 -1
  99. package/dist/assets/{runtime-details-state-CSPobEdR.js → runtime-details-state-B25uM-Ps.js} +1 -1
  100. package/dist/assets/{schemas-Dv42wLFq.js → schemas-ChRqMOTL.js} +1 -1
  101. package/dist/assets/{scratchpad-panel-lc6jmpjv.js → scratchpad-panel-Dt83MaaA.js} +1 -1
  102. package/dist/assets/{scroll-to-bottom-button-1FyowpWV.js → scroll-to-bottom-button-CIkON2WJ.js} +1 -1
  103. package/dist/assets/{secrets-panel-Bctbtkrp.js → secrets-panel-CmLZsNfp.js} +1 -1
  104. package/dist/assets/{select-DTBn5eTb.js → select-3CVGlYrC.js} +1 -1
  105. package/dist/assets/{session-DqoWmb7X.js → session-B8Y-GJnS.js} +1 -1
  106. package/dist/assets/session-panel-xVWVwa1U.js +1 -0
  107. package/dist/assets/{snippets-panel-Bh1oTw4m.js → snippets-panel-IxIxfxNc.js} +1 -1
  108. package/dist/assets/{spec-BfSBcO5B.js → spec-uCpVvaAR.js} +1 -1
  109. package/dist/assets/state-BHuYDaxs.js +3 -0
  110. package/dist/assets/{state-uwRvJLb8.js → state-BY4_P6ko.js} +1 -1
  111. package/dist/assets/{state-BAJYRhmO.js → state-C0irhlOZ.js} +1 -1
  112. package/dist/assets/{state-XsPO8hNi.js → state-CVgqwwCU.js} +1 -1
  113. package/dist/assets/{state-DxQnC_1I.js → state-Ck7FMD5A.js} +1 -1
  114. package/dist/assets/{state-C3oDoyFe.js → state-DaWgt-rn.js} +1 -1
  115. package/dist/assets/{strings-B2vv-ENv.js → strings-C25fhMR_.js} +1 -1
  116. package/dist/assets/{swiper-component-a07domrZ.js → swiper-component-CRGRy5_O.js} +1 -1
  117. package/dist/assets/{switch-CTaiAjrz.js → switch-1h011wlH.js} +1 -1
  118. package/dist/assets/{tabs-BuQlZFbt.js → tabs-CY8E4r9U.js} +1 -1
  119. package/dist/assets/{terminal-Ck_vK-34.js → terminal-CjvCrRrA.js} +3 -3
  120. package/dist/assets/{time-MgToa8VM.js → time-DswSXBDk.js} +1 -1
  121. package/dist/assets/{toast-BGzLGnvw.js → toast-Gzxi-le_.js} +1 -1
  122. package/dist/assets/tooltip-Brya4Ghn.js +61 -0
  123. package/dist/assets/{tooltip-C9TuY18o.js → tooltip-CkGm8X7m.js} +1 -1
  124. package/dist/assets/tracing-V5zejPsw.js +1 -0
  125. package/dist/assets/{tracing-panel-PeRXHD8_.js → tracing-panel-DLS3iwK6.js} +2 -2
  126. package/dist/assets/{tree-actions-GM5E_bUs.js → tree-actions-Be_mzC1C.js} +1 -1
  127. package/dist/assets/{use-restore-focus-BxEGwIbk.js → use-restore-focus-DdS7Tl0F.js} +1 -1
  128. package/dist/assets/{useAddCell-GR7eEQrT.js → useAddCell-DK79W1vA.js} +1 -1
  129. package/dist/assets/useAsyncData-DhhdOGGd.js +1 -0
  130. package/dist/assets/{useBoolean-BDD6_xQQ.js → useBoolean-j0qHaJxu.js} +1 -1
  131. package/dist/assets/{useCellActionButton-B-9eG5z_.js → useCellActionButton-Cw9Ob12j.js} +1 -1
  132. package/dist/assets/{useDeleteCell-2_bMClHd.js → useDeleteCell-BNqX6PPu.js} +1 -1
  133. package/dist/assets/{useDependencyPanelTab-k3C3M18S.js → useDependencyPanelTab-GnTnqKJo.js} +1 -1
  134. package/dist/assets/{useEventListener-D9cftcHj.js → useEventListener-CjDeLqFC.js} +1 -1
  135. package/dist/assets/{useIframeCapabilities-CwTkczVN.js → useIframeCapabilities-Czr9e4uG.js} +1 -1
  136. package/dist/assets/{useInstallPackage-iX1eufdl.js → useInstallPackage-CVItDn1e.js} +1 -1
  137. package/dist/assets/{useInterval--x3s1VpI.js → useInterval-DJdQmXnq.js} +1 -1
  138. package/dist/assets/useNotebookActions-_qJ1Sjtj.js +1 -0
  139. package/dist/assets/{useRunCells-B2vUhREg.js → useRunCells-DP09DHT6.js} +1 -1
  140. package/dist/assets/{useSplitCell-DEb03htp.js → useSplitCell-IfumZ4sm.js} +1 -1
  141. package/dist/assets/{useTheme-COhSHkCj.js → useTheme-DLtPc-39.js} +1 -1
  142. package/dist/assets/{utils-CaQYvazl.js → utils-DfElfBpz.js} +1 -1
  143. package/dist/assets/vega-component-CMn031HF.js +1 -0
  144. package/dist/assets/{vega-embed-container-DJPNkHPb.js → vega-embed-container-DtArSJz1.js} +1 -1
  145. package/dist/assets/vega-loader.browser-Bu25TKax.js +6 -0
  146. package/dist/assets/{write-secret-modal-DzKAInL2.js → write-secret-modal-usRSi1bb.js} +1 -1
  147. package/dist/assets/{xychartDiagram-S5SC5T6Z-KbGzG6-u.js → xychartDiagram-S5SC5T6Z-CeRnBS5e.js} +1 -1
  148. package/dist/index.html +76 -77
  149. package/package.json +4 -4
  150. package/src/__tests__/fixtures/{pair-preview.ts → pair-config.ts} +3 -2
  151. package/src/__tests__/host-imports.test.ts +1 -0
  152. package/src/__tests__/mount.test.ts +28 -8
  153. package/src/components/app-config/ai-config.tsx +5 -1
  154. package/src/components/data-table/__tests__/date-popover.test.tsx +72 -0
  155. package/src/components/data-table/__tests__/export-actions.test.tsx +329 -6
  156. package/src/components/data-table/column-visibility-dropdown.tsx +8 -13
  157. package/src/components/data-table/columns.tsx +2 -1
  158. package/src/components/data-table/date-popover.tsx +6 -4
  159. package/src/components/data-table/export-actions.tsx +192 -116
  160. package/src/components/data-table/row-viewer-panel/row-viewer.tsx +2 -2
  161. package/src/components/data-table/schemas.ts +14 -36
  162. package/src/components/editor/Output.tsx +9 -2
  163. package/src/components/editor/__tests__/dynamic-favicon.test.tsx +111 -18
  164. package/src/components/editor/actions/__tests__/pair-with-agent-commands.test.ts +80 -252
  165. package/src/components/editor/actions/__tests__/pair-with-agent-modal.test.tsx +186 -34
  166. package/src/components/editor/actions/pair-with-agent-commands.ts +42 -51
  167. package/src/components/editor/actions/pair-with-agent-modal.tsx +96 -36
  168. package/src/components/editor/ai/add-cell-with-ai.tsx +3 -3
  169. package/src/components/editor/chrome/panels/error-panel.tsx +1 -0
  170. package/src/components/editor/chrome/wrapper/__tests__/attachment-status.test.tsx +366 -0
  171. package/src/components/editor/chrome/wrapper/footer-item.tsx +32 -24
  172. package/src/components/editor/chrome/wrapper/footer-items/attachment-status.tsx +237 -0
  173. package/src/components/editor/chrome/wrapper/footer.tsx +2 -0
  174. package/src/components/editor/connections/components.tsx +1 -1
  175. package/src/components/editor/controls/__tests__/command-palette.test.tsx +53 -0
  176. package/src/components/editor/controls/command-palette.tsx +22 -10
  177. package/src/components/editor/dynamic-favicon.tsx +21 -40
  178. package/src/components/editor/errors/__tests__/send-error-report-button.test.tsx +537 -0
  179. package/src/components/editor/errors/send-error-report-button.tsx +69 -0
  180. package/src/components/editor/output/MarimoErrorOutput.tsx +21 -5
  181. package/src/components/editor/output/MarimoTracebackOutput.tsx +36 -21
  182. package/src/components/editor/output/__tests__/ansi-reduce.test.ts +18 -0
  183. package/src/components/editor/output/ansi-reduce.ts +6 -0
  184. package/src/components/pages/home-page.tsx +4 -4
  185. package/src/components/tracing/tracing.tsx +2 -2
  186. package/src/core/attachments/__tests__/toast.test.tsx +58 -0
  187. package/src/core/attachments/state.ts +18 -0
  188. package/src/core/attachments/toast.ts +15 -0
  189. package/src/core/cells/__tests__/cells.test.ts +52 -0
  190. package/src/core/cells/__tests__/error-report.test.ts +139 -0
  191. package/src/core/cells/__tests__/notebook-outline.test.ts +113 -0
  192. package/src/core/cells/__tests__/session.test.ts +50 -1
  193. package/src/core/cells/cells.ts +2 -1
  194. package/src/core/cells/error-report.ts +63 -0
  195. package/src/core/cells/pending-delete-service.ts +2 -6
  196. package/src/core/cells/session.ts +28 -1
  197. package/src/core/config/pair.ts +5 -3
  198. package/src/core/datasets/__tests__/data-source-discovery.test.ts +4 -4
  199. package/src/core/datasets/data-source-discovery.ts +4 -6
  200. package/src/core/edit-app.tsx +2 -2
  201. package/src/core/host/AGENTS.md +11 -2
  202. package/src/core/host/__tests__/attachments.test.ts +56 -0
  203. package/src/core/host/__tests__/document.test.ts +126 -0
  204. package/src/core/host/__tests__/events.test.ts +49 -0
  205. package/src/core/host/__tests__/fixtures.ts +41 -0
  206. package/src/core/host/__tests__/notebook-client.test.ts +433 -0
  207. package/src/core/host/connection.ts +81 -0
  208. package/src/core/host/events.ts +77 -0
  209. package/src/core/host/notebook-client.ts +323 -0
  210. package/src/core/host/resources/attachments.ts +19 -0
  211. package/src/core/host/resources/document.ts +101 -0
  212. package/src/core/hotkeys/actions.ts +2 -4
  213. package/src/core/network/connection.ts +4 -2
  214. package/src/core/run-app.tsx +2 -2
  215. package/src/core/runtime/__tests__/runtime.test.ts +55 -11
  216. package/src/core/runtime/runtime.ts +18 -5
  217. package/src/core/runtime/types.ts +2 -0
  218. package/src/core/websocket/__tests__/{useMarimoKernelConnection.test.ts → connection-state.test.ts} +15 -17
  219. package/src/core/websocket/__tests__/{useWebSocket.test.ts → createConnectionTransport.test.ts} +1 -1
  220. package/src/core/websocket/__tests__/useNotebookClient.hook.test.tsx +170 -0
  221. package/src/core/websocket/__tests__/{useMarimoKernelConnection.hook.test.tsx → useNotebookSession.hook.test.tsx} +181 -65
  222. package/src/core/websocket/connection-state.ts +70 -0
  223. package/src/core/websocket/state.ts +7 -0
  224. package/src/core/websocket/transports/__tests__/sse.test.ts +1 -4
  225. package/src/core/websocket/transports/create.ts +31 -0
  226. package/src/core/websocket/transports/transport.ts +12 -23
  227. package/src/core/websocket/types.ts +9 -39
  228. package/src/core/websocket/useNotebookClient.ts +88 -0
  229. package/src/core/websocket/{useMarimoKernelConnection.tsx → useNotebookSession.tsx} +59 -225
  230. package/src/hooks/__tests__/useAsyncData.test.tsx +148 -0
  231. package/src/hooks/useAsyncData.ts +3 -3
  232. package/src/hooks/useDataSourceDiscovery.ts +6 -4
  233. package/src/hooks/useElapsedTime.ts +3 -3
  234. package/src/mount.tsx +7 -3
  235. package/src/plugins/core/registerReactComponent.tsx +1 -1
  236. package/src/plugins/impl/DropdownPlugin.tsx +2 -6
  237. package/src/plugins/impl/FormPlugin.tsx +1 -1
  238. package/src/plugins/impl/__tests__/DataTablePlugin.test.tsx +84 -0
  239. package/src/plugins/impl/code/any-language-editor.tsx +2 -2
  240. package/src/plugins/impl/data-editor/glide-data-editor.tsx +8 -5
  241. package/src/plugins/impl/data-editor/glide-utils.ts +3 -1
  242. package/src/plugins/impl/vega/make-selectable.ts +3 -6
  243. package/src/utils/__tests__/arrays.test.ts +35 -0
  244. package/src/utils/__tests__/numbers.test.ts +48 -1
  245. package/src/utils/__tests__/objects.test.ts +21 -0
  246. package/src/utils/arrays.ts +10 -0
  247. package/src/utils/numbers.ts +28 -17
  248. package/src/utils/objects.ts +3 -7
  249. package/src/utils/once.ts +19 -19
  250. package/dist/assets/CellStatus-BP2mavAq.js +0 -1
  251. package/dist/assets/JsonOutput-DxHKOpPG.js +0 -11
  252. package/dist/assets/MarimoErrorOutput-D60XkCny.js +0 -6
  253. package/dist/assets/ai-model-dropdown-B0z6-zhp.js +0 -5
  254. package/dist/assets/any-language-editor-BLCAD3yx.js +0 -1
  255. package/dist/assets/api-BeC_VSGv.js +0 -1
  256. package/dist/assets/arrays-BqUx5USx.js +0 -1
  257. package/dist/assets/code-visibility-B-_GvwR5.js +0 -1
  258. package/dist/assets/coerce-CpE6kUdX.js +0 -1
  259. package/dist/assets/command-palette-Cf7WX-nr.js +0 -1
  260. package/dist/assets/config-BOKzA3tF.js +0 -1
  261. package/dist/assets/config-DX8Y2WbJ.js +0 -1
  262. package/dist/assets/config-VPSq73n8.js +0 -1
  263. package/dist/assets/edit-page-BT74CF4G.js +0 -9
  264. package/dist/assets/feedback-button-B2gKC5cn.js +0 -1
  265. package/dist/assets/hooks-RnjuFmEx.js +0 -1
  266. package/dist/assets/index-Bcdzex-3.css +0 -2
  267. package/dist/assets/index-D-kY3FU1.js +0 -29
  268. package/dist/assets/linear-0eij_aAG.js +0 -1
  269. package/dist/assets/links-DkkL9DVa.js +0 -1
  270. package/dist/assets/numbers-Mk3-CcoU.js +0 -1
  271. package/dist/assets/pair-CaQyK6En.js +0 -1
  272. package/dist/assets/panels-Dn59o8ay.js +0 -4
  273. package/dist/assets/precisionRound-Bq_nmf5u.js +0 -1
  274. package/dist/assets/process-output-D0KGq04R.js +0 -1
  275. package/dist/assets/react-vega-C3rYGtP6.js +0 -189
  276. package/dist/assets/session-panel-BxS5hiG2.js +0 -1
  277. package/dist/assets/state-_Qai_QyX.js +0 -3
  278. package/dist/assets/tooltip-mT3CGest.js +0 -61
  279. package/dist/assets/tracing-Di6pUmX8.js +0 -1
  280. package/dist/assets/useAsyncData-C7aJJz0Y.js +0 -1
  281. package/dist/assets/useNotebookActions-DIc4xTzY.js +0 -1
  282. package/dist/assets/vega-component-CnadTgoE.js +0 -1
  283. package/dist/assets/vega-loader.browser-CLRkNgm7.js +0 -6
  284. package/src/core/host/__tests__/protocol.test.ts +0 -214
  285. package/src/core/host/protocol.ts +0 -1943
  286. package/src/core/websocket/useWebSocket.tsx +0 -88
package/dist/index.html CHANGED
@@ -66,68 +66,68 @@
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-D-kY3FU1.js"></script>
69
+ <script type="module" crossorigin src="./assets/index-4Nwpioic.js"></script>
70
70
  <link rel="modulepreload" crossorigin href="./assets/rolldown-runtime-B0Z9INg1.js">
71
71
  <link rel="modulepreload" crossorigin href="./assets/react-DVplv7_D.js">
72
72
  <link rel="modulepreload" crossorigin href="./assets/compiler-runtime-BrajqUja.js">
73
73
  <link rel="modulepreload" crossorigin href="./assets/useEvent-Dfcbgjhg.js">
74
74
  <link rel="modulepreload" crossorigin href="./assets/react-dom-_LrxgvjW.js">
75
- <link rel="modulepreload" crossorigin href="./assets/schemas-Dv42wLFq.js">
75
+ <link rel="modulepreload" crossorigin href="./assets/schemas-ChRqMOTL.js">
76
+ <link rel="modulepreload" crossorigin href="./assets/objects-rLPlQ3X_.js">
77
+ <link rel="modulepreload" crossorigin href="./assets/useEventListener-CjDeLqFC.js">
78
+ <link rel="modulepreload" crossorigin href="./assets/invariant-Ci2dTZ72.js">
79
+ <link rel="modulepreload" crossorigin href="./assets/utils-B4K466FK.js">
80
+ <link rel="modulepreload" crossorigin href="./assets/session-B8Y-GJnS.js">
81
+ <link rel="modulepreload" crossorigin href="./assets/Deferred-CrTnjj37.js">
82
+ <link rel="modulepreload" crossorigin href="./assets/config-BwHT0yGp.js">
76
83
  <link rel="modulepreload" crossorigin href="./assets/isObject-BCaOs5rp.js">
77
84
  <link rel="modulepreload" crossorigin href="./assets/isSymbol-oX0TOjjx.js">
78
85
  <link rel="modulepreload" crossorigin href="./assets/now-Cmx0b_zA.js">
79
86
  <link rel="modulepreload" crossorigin href="./assets/debounce-aFmHgJZY.js">
80
87
  <link rel="modulepreload" crossorigin href="./assets/isArrayLikeObject-DnwgSs_Z.js">
81
88
  <link rel="modulepreload" crossorigin href="./assets/_baseMerge-CQpUq7ep.js">
82
- <link rel="modulepreload" crossorigin href="./assets/objects-snlMn4yk.js">
83
- <link rel="modulepreload" crossorigin href="./assets/useEventListener-D9cftcHj.js">
84
- <link rel="modulepreload" crossorigin href="./assets/invariant-Ci2dTZ72.js">
85
- <link rel="modulepreload" crossorigin href="./assets/config-VPSq73n8.js">
86
- <link rel="modulepreload" crossorigin href="./assets/utils-B4K466FK.js">
87
- <link rel="modulepreload" crossorigin href="./assets/session-DqoWmb7X.js">
88
- <link rel="modulepreload" crossorigin href="./assets/Deferred-CrTnjj37.js">
89
- <link rel="modulepreload" crossorigin href="./assets/config-DX8Y2WbJ.js">
89
+ <link rel="modulepreload" crossorigin href="./assets/config-DGX7JYor.js">
90
90
  <link rel="modulepreload" crossorigin href="./assets/clsx-DB0hHKMi.js">
91
91
  <link rel="modulepreload" crossorigin href="./assets/cn-ldLVeaqm.js">
92
92
  <link rel="modulepreload" crossorigin href="./assets/jsx-runtime-B74pBk57.js">
93
- <link rel="modulepreload" crossorigin href="./assets/fullscreen-B9tHcfpV.js">
94
- <link rel="modulepreload" crossorigin href="./assets/dist-iaThVDkA.js">
95
- <link rel="modulepreload" crossorigin href="./assets/menu-items-BrwnTgyK.js">
96
- <link rel="modulepreload" crossorigin href="./assets/use-restore-focus-BxEGwIbk.js">
93
+ <link rel="modulepreload" crossorigin href="./assets/fullscreen-BWTs8pYZ.js">
94
+ <link rel="modulepreload" crossorigin href="./assets/dist-jlhMTKo_.js">
95
+ <link rel="modulepreload" crossorigin href="./assets/menu-items-BgUyNUpu.js">
96
+ <link rel="modulepreload" crossorigin href="./assets/use-restore-focus-DdS7Tl0F.js">
97
97
  <link rel="modulepreload" crossorigin href="./assets/createLucideIcon-DfJ2oMlA.js">
98
- <link rel="modulepreload" crossorigin href="./assets/circle-DXf-VWZG.js">
99
- <link rel="modulepreload" crossorigin href="./assets/button-COI-NGrx.js">
98
+ <link rel="modulepreload" crossorigin href="./assets/circle-B6D_6D8w.js">
99
+ <link rel="modulepreload" crossorigin href="./assets/button-D8gVKwe-.js">
100
100
  <link rel="modulepreload" crossorigin href="./assets/check-BQNapYaf.js">
101
101
  <link rel="modulepreload" crossorigin href="./assets/I18nProvider-Cg2I_s1_.js">
102
102
  <link rel="modulepreload" crossorigin href="./assets/useNumberFormatter-D7O_26UI.js">
103
- <link rel="modulepreload" crossorigin href="./assets/select-DTBn5eTb.js">
104
- <link rel="modulepreload" crossorigin href="./assets/toast-BGzLGnvw.js">
105
- <link rel="modulepreload" crossorigin href="./assets/tooltip-C9TuY18o.js">
103
+ <link rel="modulepreload" crossorigin href="./assets/select-3CVGlYrC.js">
104
+ <link rel="modulepreload" crossorigin href="./assets/toast-Gzxi-le_.js">
105
+ <link rel="modulepreload" crossorigin href="./assets/tooltip-CkGm8X7m.js">
106
106
  <link rel="modulepreload" crossorigin href="./assets/paths-bkIFVj8h.js">
107
107
  <link rel="modulepreload" crossorigin href="./assets/useLifecycle-Mq4gc5kS.js">
108
108
  <link rel="modulepreload" crossorigin href="./assets/toDate-DOj9Q6uC.js">
109
109
  <link rel="modulepreload" crossorigin href="./assets/database-zap-B_PMVg8T.js">
110
- <link rel="modulepreload" crossorigin href="./assets/alert-dialog-BaPGzeOK.js">
111
- <link rel="modulepreload" crossorigin href="./assets/arrays-BqUx5USx.js">
112
- <link rel="modulepreload" crossorigin href="./assets/once-Haz_uxEL.js">
113
- <link rel="modulepreload" crossorigin href="./assets/numbers-Mk3-CcoU.js">
110
+ <link rel="modulepreload" crossorigin href="./assets/alert-dialog-C-sWmKva.js">
111
+ <link rel="modulepreload" crossorigin href="./assets/arrays-0R2reF2y.js">
112
+ <link rel="modulepreload" crossorigin href="./assets/once-6KNTRW0u.js">
113
+ <link rel="modulepreload" crossorigin href="./assets/numbers-CsZVw3Dc.js">
114
114
  <link rel="modulepreload" crossorigin href="./assets/useDebounce-B_ccBZTp.js">
115
- <link rel="modulepreload" crossorigin href="./assets/input-BoBxR50a.js">
115
+ <link rel="modulepreload" crossorigin href="./assets/input-ByHt6aoV.js">
116
116
  <link rel="modulepreload" crossorigin href="./assets/use-toast-Wu434mLr.js">
117
117
  <link rel="modulepreload" crossorigin href="./assets/requests-lt0JK8Jt.js">
118
118
  <link rel="modulepreload" crossorigin href="./assets/uuid-k9DpjH68.js">
119
- <link rel="modulepreload" crossorigin href="./assets/write-secret-modal-DzKAInL2.js">
119
+ <link rel="modulepreload" crossorigin href="./assets/write-secret-modal-usRSi1bb.js">
120
120
  <link rel="modulepreload" crossorigin href="./assets/plus-C5silF6g.js">
121
121
  <link rel="modulepreload" crossorigin href="./assets/trash-2-DcgaW8fn.js">
122
122
  <link rel="modulepreload" crossorigin href="./assets/preload-helper-uBIymjUX.js">
123
123
  <link rel="modulepreload" crossorigin href="./assets/dist-Cny7_yZb.js">
124
124
  <link rel="modulepreload" crossorigin href="./assets/dist-DBMV4gqt.js">
125
- <link rel="modulepreload" crossorigin href="./assets/capabilities-BJvf-MD4.js">
125
+ <link rel="modulepreload" crossorigin href="./assets/capabilities-Pq1YNPlK.js">
126
126
  <link rel="modulepreload" crossorigin href="./assets/cjs-C49f7GXV.js">
127
- <link rel="modulepreload" crossorigin href="./assets/createReducer-DgRODTW6.js">
127
+ <link rel="modulepreload" crossorigin href="./assets/createReducer-HKXUbqyz.js">
128
128
  <link rel="modulepreload" crossorigin href="./assets/dist-qhAY4L2r.js">
129
129
  <link rel="modulepreload" crossorigin href="./assets/marked.esm-B_3iMIUq.js">
130
- <link rel="modulepreload" crossorigin href="./assets/strings-B2vv-ENv.js">
130
+ <link rel="modulepreload" crossorigin href="./assets/strings-C25fhMR_.js">
131
131
  <link rel="modulepreload" crossorigin href="./assets/dist-BOfh4hMd.js">
132
132
  <link rel="modulepreload" crossorigin href="./assets/badge-crT3E0Rm.js">
133
133
  <link rel="modulepreload" crossorigin href="./assets/dist-DtH-7lot.js">
@@ -136,84 +136,83 @@
136
136
  <link rel="modulepreload" crossorigin href="./assets/dist-LSsCJjA3.js">
137
137
  <link rel="modulepreload" crossorigin href="./assets/dist-DusFODSa.js">
138
138
  <link rel="modulepreload" crossorigin href="./assets/stex-Dc5bKD4z.js">
139
- <link rel="modulepreload" crossorigin href="./assets/useTheme-COhSHkCj.js">
140
- <link rel="modulepreload" crossorigin href="./assets/useAsyncData-C7aJJz0Y.js">
139
+ <link rel="modulepreload" crossorigin href="./assets/useTheme-DLtPc-39.js">
140
+ <link rel="modulepreload" crossorigin href="./assets/useAsyncData-DhhdOGGd.js">
141
141
  <link rel="modulepreload" crossorigin href="./assets/purify.es--06brOip.js">
142
- <link rel="modulepreload" crossorigin href="./assets/cells-BRkCaSsh.js">
143
- <link rel="modulepreload" crossorigin href="./assets/coerce-CpE6kUdX.js">
142
+ <link rel="modulepreload" crossorigin href="./assets/cells-BdgzY0of.js">
143
+ <link rel="modulepreload" crossorigin href="./assets/coerce-DWjFeXOY.js">
144
144
  <link rel="modulepreload" crossorigin href="./assets/get-DjNf4SIX.js">
145
145
  <link rel="modulepreload" crossorigin href="./assets/_hasPath-BmRQipI0.js">
146
146
  <link rel="modulepreload" crossorigin href="./assets/hasIn-yw4sIeJR.js">
147
147
  <link rel="modulepreload" crossorigin href="./assets/_baseSet-Bpdo9AvU.js">
148
148
  <link rel="modulepreload" crossorigin href="./assets/pick-DKIID_Mo.js">
149
- <link rel="modulepreload" crossorigin href="./assets/state-BAJYRhmO.js">
150
- <link rel="modulepreload" crossorigin href="./assets/state-C3oDoyFe.js">
151
- <link rel="modulepreload" crossorigin href="./assets/LazyAnyLanguageCodeMirror-CKcCbG2G.js">
152
- <link rel="modulepreload" crossorigin href="./assets/copy-D8O_CYCG.js">
149
+ <link rel="modulepreload" crossorigin href="./assets/errors-CNsgAw6m.js">
150
+ <link rel="modulepreload" crossorigin href="./assets/config-DXjnAwtL.js">
151
+ <link rel="modulepreload" crossorigin href="./assets/state-C0irhlOZ.js">
152
+ <link rel="modulepreload" crossorigin href="./assets/state-DaWgt-rn.js">
153
+ <link rel="modulepreload" crossorigin href="./assets/LazyAnyLanguageCodeMirror-BPYE76jR.js">
154
+ <link rel="modulepreload" crossorigin href="./assets/copy-KlhazlhB.js">
153
155
  <link rel="modulepreload" crossorigin href="./assets/micromark-factory-space-D9Dr-k4J.js">
154
156
  <link rel="modulepreload" crossorigin href="./assets/chunk-YOKDWASO-BIpRENEC.js">
155
- <link rel="modulepreload" crossorigin href="./assets/markdown-renderer-BG3sp2rs.js">
157
+ <link rel="modulepreload" crossorigin href="./assets/markdown-renderer-DX2O5YiE.js">
156
158
  <link rel="modulepreload" crossorigin href="./assets/copy-Djr5m5ac.js">
157
- <link rel="modulepreload" crossorigin href="./assets/copy-icon-BIiRXh_3.js">
158
- <link rel="modulepreload" crossorigin href="./assets/useRunCells-B2vUhREg.js">
159
- <link rel="modulepreload" crossorigin href="./assets/RenderHTML-BbOqmHy3.js">
160
- <link rel="modulepreload" crossorigin href="./assets/blob-D5nfNHOo.js">
159
+ <link rel="modulepreload" crossorigin href="./assets/copy-icon-8-a5vovc.js">
160
+ <link rel="modulepreload" crossorigin href="./assets/useRunCells-DP09DHT6.js">
161
+ <link rel="modulepreload" crossorigin href="./assets/RenderHTML-BFaztTR0.js">
162
+ <link rel="modulepreload" crossorigin href="./assets/blob-BSfsdCNF.js">
161
163
  <link rel="modulepreload" crossorigin href="./assets/kbd-pdKBv96t.js">
162
- <link rel="modulepreload" crossorigin href="./assets/useInstallPackage-iX1eufdl.js">
163
- <link rel="modulepreload" crossorigin href="./assets/errors-DCrsa1nH.js">
164
- <link rel="modulepreload" crossorigin href="./assets/api-BeC_VSGv.js">
164
+ <link rel="modulepreload" crossorigin href="./assets/useInstallPackage-CVItDn1e.js">
165
165
  <link rel="modulepreload" crossorigin href="./assets/share-BZW3tzEX.js">
166
166
  <link rel="modulepreload" crossorigin href="./assets/events-CbeVJ6OD.js">
167
- <link rel="modulepreload" crossorigin href="./assets/state-_Qai_QyX.js">
168
- <link rel="modulepreload" crossorigin href="./assets/pair-CaQyK6En.js">
169
- <link rel="modulepreload" crossorigin href="./assets/ErrorBoundary-Gl5nCA8C.js">
170
- <link rel="modulepreload" crossorigin href="./assets/config-BOKzA3tF.js">
167
+ <link rel="modulepreload" crossorigin href="./assets/state-BHuYDaxs.js">
168
+ <link rel="modulepreload" crossorigin href="./assets/ErrorBoundary-DmXl4Nre.js">
171
169
  <link rel="modulepreload" crossorigin href="./assets/chevron-right-eAtVhbNZ.js">
172
- <link rel="modulepreload" crossorigin href="./assets/dropdown-menu-C1rnl-0o.js">
173
- <link rel="modulepreload" crossorigin href="./assets/html-to-image-DK9Zl1lU.js">
174
- <link rel="modulepreload" crossorigin href="./assets/download-DCJXy66H.js">
175
- <link rel="modulepreload" crossorigin href="./assets/switch-CTaiAjrz.js">
176
- <link rel="modulepreload" crossorigin href="./assets/tabs-BuQlZFbt.js">
170
+ <link rel="modulepreload" crossorigin href="./assets/dropdown-menu-DS6umAnH.js">
171
+ <link rel="modulepreload" crossorigin href="./assets/html-to-image-D_0rd3_B.js">
172
+ <link rel="modulepreload" crossorigin href="./assets/download-RV4i1fWI.js">
173
+ <link rel="modulepreload" crossorigin href="./assets/switch-1h011wlH.js">
174
+ <link rel="modulepreload" crossorigin href="./assets/tabs-CY8E4r9U.js">
177
175
  <link rel="modulepreload" crossorigin href="./assets/table-DG7Ap4H4.js">
178
176
  <link rel="modulepreload" crossorigin href="./assets/eye-off-CxVozGAC.js">
179
177
  <link rel="modulepreload" crossorigin href="./assets/refresh-cw-Qw1f8Jhy.js">
180
- <link rel="modulepreload" crossorigin href="./assets/tree-actions-GM5E_bUs.js">
178
+ <link rel="modulepreload" crossorigin href="./assets/tree-actions-Be_mzC1C.js">
181
179
  <link rel="modulepreload" crossorigin href="./assets/ellipsis-63DyBLHQ.js">
182
180
  <link rel="modulepreload" crossorigin href="./assets/external-link-UrX9KO36.js">
183
181
  <link rel="modulepreload" crossorigin href="./assets/spinner-DyNE-o8o.js">
184
182
  <link rel="modulepreload" crossorigin href="./assets/message-circle-C3rKm8_a.js">
185
183
  <link rel="modulepreload" crossorigin href="./assets/hat-glasses-C8RhSVii.js">
186
184
  <link rel="modulepreload" crossorigin href="./assets/package-GSoSTiIK.js">
187
- <link rel="modulepreload" crossorigin href="./assets/datasource-Cq6x_5ML.js">
185
+ <link rel="modulepreload" crossorigin href="./assets/datasource-dKk3JHSQ.js">
186
+ <link rel="modulepreload" crossorigin href="./assets/error-entries-CJS0gOId.js">
188
187
  <link rel="modulepreload" crossorigin href="./assets/alert-DTaqCu_d.js">
189
- <link rel="modulepreload" crossorigin href="./assets/state-XsPO8hNi.js">
190
- <link rel="modulepreload" crossorigin href="./assets/cell-link-LSth_8hT.js">
191
- <link rel="modulepreload" crossorigin href="./assets/MarimoErrorOutput-D60XkCny.js">
188
+ <link rel="modulepreload" crossorigin href="./assets/state-CVgqwwCU.js">
189
+ <link rel="modulepreload" crossorigin href="./assets/cell-link-DFPHORAO.js">
190
+ <link rel="modulepreload" crossorigin href="./assets/MarimoErrorOutput-DVjK8RgY.js">
192
191
  <link rel="modulepreload" crossorigin href="./assets/useDateFormatter-DA-62E-Y.js">
193
192
  <link rel="modulepreload" crossorigin href="./assets/en-US-Buu61juQ.js">
194
193
  <link rel="modulepreload" crossorigin href="./assets/isValid-q_Ad80ug.js">
195
- <link rel="modulepreload" crossorigin href="./assets/dates-CfmdTL6B.js">
194
+ <link rel="modulepreload" crossorigin href="./assets/dates-CQMwFko2.js">
196
195
  <link rel="modulepreload" crossorigin href="./assets/defaultLocale-CNPGWpMu.js">
197
- <link rel="modulepreload" crossorigin href="./assets/precisionRound-Bq_nmf5u.js">
196
+ <link rel="modulepreload" crossorigin href="./assets/precisionRound-BxlUs8G4.js">
198
197
  <link rel="modulepreload" crossorigin href="./assets/defaultLocale-D5bOh7g6.js">
199
- <link rel="modulepreload" crossorigin href="./assets/vega-loader.browser-CLRkNgm7.js">
200
- <link rel="modulepreload" crossorigin href="./assets/tooltip-mT3CGest.js">
198
+ <link rel="modulepreload" crossorigin href="./assets/vega-loader.browser-Bu25TKax.js">
199
+ <link rel="modulepreload" crossorigin href="./assets/tooltip-Brya4Ghn.js">
201
200
  <link rel="modulepreload" crossorigin href="./assets/react-icons.esm-D6tfmvq8.js">
202
201
  <link rel="modulepreload" crossorigin href="./assets/extends-CvVTau-c.js">
203
202
  <link rel="modulepreload" crossorigin href="./assets/objectWithoutPropertiesLoose-Do6ywDBO.js">
204
- <link rel="modulepreload" crossorigin href="./assets/useIframeCapabilities-CwTkczVN.js">
205
- <link rel="modulepreload" crossorigin href="./assets/error-banner-Cd69vvyX.js">
206
- <link rel="modulepreload" crossorigin href="./assets/utils-CaQYvazl.js">
207
- <link rel="modulepreload" crossorigin href="./assets/formats-yZ06h1Pl.js">
203
+ <link rel="modulepreload" crossorigin href="./assets/useIframeCapabilities-Czr9e4uG.js">
204
+ <link rel="modulepreload" crossorigin href="./assets/error-banner-B5kzVf_0.js">
205
+ <link rel="modulepreload" crossorigin href="./assets/utils-DfElfBpz.js">
206
+ <link rel="modulepreload" crossorigin href="./assets/formats-zylfwejq.js">
208
207
  <link rel="modulepreload" crossorigin href="./assets/table-vrvqpuKJ.js">
209
208
  <link rel="modulepreload" crossorigin href="./assets/react-resizable-panels.browser.esm-Dbe0MrFr.js">
210
- <link rel="modulepreload" crossorigin href="./assets/JsonOutput-DxHKOpPG.js">
209
+ <link rel="modulepreload" crossorigin href="./assets/JsonOutput-BJraU9kp.js">
211
210
  <link rel="modulepreload" crossorigin href="./assets/chart-no-axes-column-C4_v6fQW.js">
212
211
  <link rel="modulepreload" crossorigin href="./assets/square-function-_W_Lo0P4.js">
213
- <link rel="modulepreload" crossorigin href="./assets/spec-BfSBcO5B.js">
212
+ <link rel="modulepreload" crossorigin href="./assets/spec-uCpVvaAR.js">
214
213
  <link rel="modulepreload" crossorigin href="./assets/semaphore-BjoL5P0h.js">
215
214
  <link rel="modulepreload" crossorigin href="./assets/fileToBase64-BgBraYAr.js">
216
- <link rel="modulepreload" crossorigin href="./assets/useBoolean-BDD6_xQQ.js">
215
+ <link rel="modulepreload" crossorigin href="./assets/useBoolean-j0qHaJxu.js">
217
216
  <link rel="modulepreload" crossorigin href="./assets/code-xml-SQaZqvcO.js">
218
217
  <link rel="modulepreload" crossorigin href="./assets/file-headphone-Dl35U6h3.js">
219
218
  <link rel="modulepreload" crossorigin href="./assets/file-BPBVl9pl.js">
@@ -221,27 +220,27 @@
221
220
  <link rel="modulepreload" crossorigin href="./assets/file-icons-CdJgUy-I.js">
222
221
  <link rel="modulepreload" crossorigin href="./assets/globe-UdPdIbF7.js">
223
222
  <link rel="modulepreload" crossorigin href="./assets/esm-CI_o7NhW.js">
224
- <link rel="modulepreload" crossorigin href="./assets/useAddCell-GR7eEQrT.js">
225
- <link rel="modulepreload" crossorigin href="./assets/readonly-python-code-DCSMIsTX.js">
223
+ <link rel="modulepreload" crossorigin href="./assets/useAddCell-DK79W1vA.js">
224
+ <link rel="modulepreload" crossorigin href="./assets/readonly-python-code-BLotL3XP.js">
226
225
  <link rel="modulepreload" crossorigin href="./assets/data-grid-types-DgHVN_Zz.js">
227
- <link rel="modulepreload" crossorigin href="./assets/glide-utils-CIrAxdjv.js">
228
- <link rel="modulepreload" crossorigin href="./assets/column-preview-CHK_DNrs.js">
226
+ <link rel="modulepreload" crossorigin href="./assets/glide-utils-HFqhvWHI.js">
227
+ <link rel="modulepreload" crossorigin href="./assets/column-preview-ivm1b-GY.js">
229
228
  <link rel="modulepreload" crossorigin href="./assets/square-BPmgQFnh.js">
230
229
  <link rel="modulepreload" crossorigin href="./assets/triangle-alert-DmIqR8sY.js">
231
230
  <link rel="modulepreload" crossorigin href="./assets/prop-types-Djf4O40e.js">
232
- <link rel="modulepreload" crossorigin href="./assets/es-Cqst59WX.js">
231
+ <link rel="modulepreload" crossorigin href="./assets/es-N9SHpmG7.js">
233
232
  <link rel="modulepreload" crossorigin href="./assets/package-data-dv4FBHxR.js">
234
233
  <link rel="modulepreload" crossorigin href="./assets/markdown-export-DzhB1FrN.js">
235
- <link rel="modulepreload" crossorigin href="./assets/renderShortcut-BkVJQ_Zh.js">
234
+ <link rel="modulepreload" crossorigin href="./assets/renderShortcut-H60uiHBp.js">
236
235
  <link rel="modulepreload" crossorigin href="./assets/bundle.esm-D3tw5rqW.js">
237
236
  <link rel="modulepreload" crossorigin href="./assets/icons-CiZ_8zS-.js">
238
237
  <link rel="modulepreload" crossorigin href="./assets/useDeepCompareMemoize-DFIVN9dn.js">
239
238
  <link rel="modulepreload" crossorigin href="./assets/pathUtils-DPmlLd-r.js">
240
- <link rel="modulepreload" crossorigin href="./assets/floating-outline-XD9FAV-f.js">
239
+ <link rel="modulepreload" crossorigin href="./assets/floating-outline-CrWdiNQ2.js">
241
240
  <link rel="stylesheet" crossorigin href="./assets/cells-0PFKL3SH.css">
242
241
  <link rel="stylesheet" crossorigin href="./assets/markdown-renderer-DjIHoF9Z.css">
243
242
  <link rel="stylesheet" crossorigin href="./assets/JsonOutput-B0GmlMnR.css">
244
- <link rel="stylesheet" crossorigin href="./assets/index-Bcdzex-3.css">
243
+ <link rel="stylesheet" crossorigin href="./assets/index-ChfDZJzP.css">
245
244
  </head>
246
245
  <body>
247
246
  <div id="root"></div>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@marimo-team/frontend",
3
- "version": "0.25.3-dev4",
3
+ "version": "0.25.3-dev42",
4
4
  "main": "dist/main.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "type": "module",
@@ -57,6 +57,7 @@
57
57
  "@marimo-team/codemirror-mcp": "^0.1.7",
58
58
  "@marimo-team/codemirror-sql": "^0.3.0",
59
59
  "@marimo-team/llm-info": "workspace:*",
60
+ "@marimo-team/client": "workspace:*",
60
61
  "@marimo-team/marimo-api": "workspace:*",
61
62
  "@marimo-team/react-slotz": "^0.2.0",
62
63
  "@marimo-team/smart-cells": "workspace:*",
@@ -152,6 +153,7 @@
152
153
  "typescript-memoize": "^1.1.1",
153
154
  "use-acp": "0.2.6",
154
155
  "use-resize-observer": "^9.1.0",
156
+ "vega": "6.2.0",
155
157
  "vega-lite": "6.4.3",
156
158
  "vega-loader": "^5.1.3",
157
159
  "vega-parser": "^7.1.3",
@@ -184,8 +186,7 @@
184
186
  "storybook": "storybook dev -p 6006",
185
187
  "build-storybook": "storybook build",
186
188
  "sync-katex-css": "node --experimental-strip-types scripts/sync-katex-css.ts",
187
- "codegen": "node --experimental-strip-types scripts/generate-host-protocol.ts",
188
- "codegen:check": "node --experimental-strip-types scripts/generate-host-protocol.ts --check"
189
+ "doctor": "npx react-doctor@latest"
189
190
  },
190
191
  "peerDependencies": {
191
192
  "react": "^17 || ^18 || ^19",
@@ -214,7 +215,6 @@
214
215
  "jsdom": "^24.1.3",
215
216
  "msw": "^2.15.0",
216
217
  "npm-run-all2": "^6.2.6",
217
- "orval": "8.40.0",
218
218
  "oxc-transform-react": "0.145.0",
219
219
  "oxfmt": "^0.68.0",
220
220
  "oxlint": "^1.83.0",
@@ -2,11 +2,12 @@
2
2
 
3
3
  import { readFileSync } from "node:fs";
4
4
  import path from "node:path";
5
- import { pairPreviewSchema } from "@/core/config/pair";
5
+ import { pairConfigSchema } from "@/core/config/pair";
6
6
 
7
7
  // Read the Python-owned resource only in tests to check the shared contract.
8
- export const PAIR_PREVIEW = pairPreviewSchema.parse({
8
+ export const PAIR_CONFIG = pairConfigSchema.parse({
9
9
  command: "uvx marimo@latest",
10
+ hostEnabled: true,
10
11
  templates: JSON.parse(
11
12
  readFileSync(
12
13
  path.resolve(
@@ -19,6 +19,7 @@ it("enforces host dependencies for runtime and type imports", () => {
19
19
  "src/core/host/allowed.ts": `
20
20
  import { atom } from "jotai/vanilla";
21
21
  import { z } from "zod";
22
+ import * as Protocol from "@marimo-team/client/protocol";
22
23
  import { Logger } from "@/utils/Logger";
23
24
  import type { Document } from "./document";
24
25
  export * from "@/core/host/events";
@@ -6,10 +6,11 @@ import { initialLayoutState, layoutStateAtom } from "@/core/layout/state";
6
6
  import { kioskModeAtom } from "@/core/mode";
7
7
  import { connectionAtom } from "@/core/network/connection";
8
8
  import { store } from "@/core/state/jotai";
9
+ import { runtimeConfigAtom } from "@/core/runtime/config";
9
10
  import { isStaticNotebook } from "@/core/static/static-state";
10
11
  import { ConnectionState } from "@/core/websocket/types";
11
- import { pairPreviewAtom } from "@/core/config/pair";
12
- import { PAIR_PREVIEW } from "./fixtures/pair-preview";
12
+ import { pairConfigAtom } from "@/core/config/pair";
13
+ import { PAIR_CONFIG } from "./fixtures/pair-config";
13
14
  import { mount, visibleForTesting } from "../mount";
14
15
 
15
16
  // Mock React DOM
@@ -84,23 +85,42 @@ describe("mount", () => {
84
85
  mockElement,
85
86
  );
86
87
 
87
- it("hydrates the server's Pair preview configuration", () => {
88
- const error = mountRead({ pairPreview: PAIR_PREVIEW });
88
+ it("hydrates the server's Pair configuration", () => {
89
+ const error = mountRead({ pairConfig: PAIR_CONFIG });
89
90
 
90
91
  expect(error).toBeUndefined();
91
- expect(store.get(pairPreviewAtom)).toEqual(PAIR_PREVIEW);
92
+ expect(store.get(pairConfigAtom)).toEqual(PAIR_CONFIG);
92
93
  });
93
94
 
94
- it("uses legacy Pair behavior when the host omits preview configuration", () => {
95
- store.set(pairPreviewAtom, PAIR_PREVIEW);
95
+ it("clears Pair configuration when the server omits it", () => {
96
+ store.set(pairConfigAtom, PAIR_CONFIG);
96
97
 
97
98
  const error = mountRead();
98
99
 
99
100
  expect(error).toBeUndefined();
100
- expect(store.get(pairPreviewAtom)).toBeUndefined();
101
+ expect(store.get(pairConfigAtom)).toBeUndefined();
101
102
  });
102
103
 
103
104
  describe("connection state initialization", () => {
105
+ it("passes the host notebook identity to the local runtime", () => {
106
+ mount({ ...baseOptions, notebookId: "nb_local" }, mockElement);
107
+ expect(store.get(runtimeConfigAtom).notebookId).toBe("nb_local");
108
+ });
109
+
110
+ it("uses a remote runtime's own notebook identity", () => {
111
+ mount(
112
+ {
113
+ ...baseOptions,
114
+ notebookId: "nb_local",
115
+ runtimeConfig: [
116
+ { url: "https://remote.example", notebookId: "nb_remote" },
117
+ ],
118
+ },
119
+ mockElement,
120
+ );
121
+ expect(store.get(runtimeConfigAtom).notebookId).toBe("nb_remote");
122
+ });
123
+
104
124
  it("should set connection to CONNECTING when runtimeConfig has lazy=false", () => {
105
125
  mount(
106
126
  {
@@ -48,6 +48,7 @@ import { DEFAULT_AI_MODEL, type UserConfig } from "@/core/config/config-schema";
48
48
  import { isWasm } from "@/core/wasm/utils";
49
49
  import { cn } from "@/utils/cn";
50
50
  import { Events } from "@/utils/events";
51
+ import { Objects } from "@/utils/objects";
51
52
  import { Strings } from "@/utils/strings";
52
53
  import { AIModelDropdown, getProviderLabel } from "../ai/ai-model-dropdown";
53
54
  import {
@@ -681,7 +682,10 @@ export const CustomProvidersConfig: React.FC<AiConfigProps> = ({
681
682
  };
682
683
 
683
684
  const removeProvider = (providerName: string) => {
684
- const { [providerName]: _, ...rest } = customProviders;
685
+ const rest = Objects.filter(
686
+ customProviders,
687
+ (_, name) => name !== providerName,
688
+ );
685
689
  // Reset to clear nested dirty state, then set new value
686
690
  form.resetField("ai.custom_providers");
687
691
  form.setValue("ai.custom_providers", rest, { shouldDirty: true });
@@ -0,0 +1,72 @@
1
+ /* Copyright 2026 Marimo. All rights reserved. */
2
+ import { render, screen } from "@testing-library/react";
3
+ import type { ReactNode } from "react";
4
+ import { I18nProvider } from "react-aria";
5
+ import { afterEach, describe, expect, it, vi } from "vitest";
6
+ import { DatePopover } from "../date-popover";
7
+
8
+ vi.mock("@/components/ui/tooltip", () => ({
9
+ Tooltip: ({ content }: { content: ReactNode }) => content,
10
+ }));
11
+
12
+ afterEach(() => {
13
+ vi.restoreAllMocks();
14
+ });
15
+
16
+ describe("DatePopover", () => {
17
+ it.each([0, 123])(
18
+ "updates the local timezone and time on rerender with %i milliseconds",
19
+ (milliseconds) => {
20
+ const NativeDateTimeFormat = Intl.DateTimeFormat;
21
+ let systemTimezone = "America/Los_Angeles";
22
+ vi.spyOn(Intl, "DateTimeFormat").mockImplementation(
23
+ function (locales, options) {
24
+ return new NativeDateTimeFormat(locales, {
25
+ ...options,
26
+ timeZone: options?.timeZone ?? systemTimezone,
27
+ });
28
+ },
29
+ );
30
+
31
+ const date = new Date("2026-01-15T12:00:00Z");
32
+ date.setUTCMilliseconds(milliseconds);
33
+ const content = () => (
34
+ <I18nProvider locale="en-US">
35
+ <DatePopover date={date} type="datetime">
36
+ timestamp
37
+ </DatePopover>
38
+ </I18nProvider>
39
+ );
40
+ const { rerender } = render(content());
41
+ const previousTime =
42
+ screen.getByText(systemTimezone).nextElementSibling?.textContent;
43
+ const utcTime = screen.getByText("UTC").nextElementSibling?.textContent;
44
+
45
+ systemTimezone = "Asia/Tokyo";
46
+ rerender(content());
47
+
48
+ const expected = new NativeDateTimeFormat("en-US", {
49
+ timeZone: systemTimezone,
50
+ ...(milliseconds
51
+ ? {
52
+ year: "numeric",
53
+ month: "2-digit",
54
+ day: "2-digit",
55
+ hour: "2-digit",
56
+ minute: "2-digit",
57
+ second: "2-digit",
58
+ fractionalSecondDigits: 3,
59
+ }
60
+ : { dateStyle: "long", timeStyle: "medium" }),
61
+ }).format(date);
62
+ expect(screen.queryByText("America/Los_Angeles")).toBeNull();
63
+ expect(
64
+ screen.getByText(systemTimezone).nextElementSibling?.textContent,
65
+ ).toBe(expected);
66
+ expect(expected).not.toBe(previousTime);
67
+ expect(screen.getByText("UTC").nextElementSibling?.textContent).toBe(
68
+ utcTime,
69
+ );
70
+ },
71
+ );
72
+ });