@marimo-team/frontend 0.25.3-dev10 → 0.25.3-dev101
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-fK4n2NPc.js +1 -0
- package/dist/assets/{ConnectedDataExplorerComponent-t8fH_TNc.js → ConnectedDataExplorerComponent-Dft8R6l5.js} +1 -1
- package/dist/assets/{ErrorBoundary-B4n9EnHB.js → ErrorBoundary-CAEGdoFW.js} +2 -2
- package/dist/assets/JsonOutput-CyAKmZDD.js +11 -0
- package/dist/assets/{LazyAnyLanguageCodeMirror-CKcCbG2G.js → LazyAnyLanguageCodeMirror-BPYE76jR.js} +2 -2
- package/dist/assets/MarimoErrorOutput-CgZvP0p0.js +10 -0
- package/dist/assets/{RenderHTML-9bMgbYmo.js → RenderHTML-DQvxDDNS.js} +1 -1
- package/dist/assets/RunButton-BBDnDL6G.js +1 -0
- package/dist/assets/__vite-browser-external-8vDMR0Kk.js +1 -0
- package/dist/assets/__vite-browser-external-mKcnhO20.js +1 -0
- package/dist/assets/{add-cell-with-ai-f_MnLCwI.js → add-cell-with-ai-Clg5FELx.js} +7 -7
- package/dist/assets/{add-connection-dialog-CoE_PhuD.js → add-connection-dialog-BqdWmD-7.js} +2 -2
- package/dist/assets/{agent-panel-BWZz24jK.js → agent-panel-5RxG5Y82.js} +3 -3
- package/dist/assets/ai-model-dropdown-Bvl1ktQq.js +13 -0
- package/dist/assets/{alert-dialog-BaPGzeOK.js → alert-dialog-C-sWmKva.js} +1 -1
- package/dist/assets/any-language-editor-DUMe1UCk.js +1 -0
- package/dist/assets/{app-config-button-BhU0ulYs.js → app-config-button-0QTeQ2Mv.js} +1 -1
- package/dist/assets/arrays-0R2reF2y.js +1 -0
- package/dist/assets/{blob-iOBwGaP9.js → blob-5VcB8K_t.js} +1 -1
- package/dist/assets/{button-COI-NGrx.js → button-D8gVKwe-.js} +1 -1
- package/dist/assets/{cache-panel-DTY1dqvi.js → cache-panel-BV-c7ed0.js} +1 -1
- package/dist/assets/{capabilities-BJvf-MD4.js → capabilities-Pq1YNPlK.js} +1 -1
- package/dist/assets/cell-editor-Byw5y-oI.js +42 -0
- package/dist/assets/cell-link-C5yYyzuF.js +1 -0
- package/dist/assets/{cells-rA_jsZCj.js → cells-D_11MjVB.js} +60 -60
- package/dist/assets/{chat-display-BmEPmhDP.js → chat-display-BCR_ySiV.js} +1 -1
- package/dist/assets/chat-panel-RPRvBsaU.js +4 -0
- package/dist/assets/chat-ui-CGviVaRA.js +4 -0
- package/dist/assets/{circle-DXf-VWZG.js → circle-B6D_6D8w.js} +1 -1
- package/dist/assets/code-visibility-DYDagVy7.js +1 -0
- package/dist/assets/coerce-DWjFeXOY.js +1 -0
- package/dist/assets/column-preview-xe533-Cn.js +1 -0
- package/dist/assets/command-palette-BB9bWdWp.js +1 -0
- package/dist/assets/{common-lisZ0l6a.js → common-CaeItbcI.js} +1 -1
- package/dist/assets/components-CBE8cOLK.js +1 -0
- package/dist/assets/{components-CP_UoFtT.js → components-DCo7mAWO.js} +1 -1
- package/dist/assets/{components-Dvd1GnD6.js → components-G6frbw0c.js} +1 -1
- package/dist/assets/config-CD1IuZFJ.js +1 -0
- package/dist/assets/{config-DJLAC21v.js → config-DMz7oN0r.js} +1 -1
- package/dist/assets/config-DpY86_Yq.js +1 -0
- package/dist/assets/{copy-D8O_CYCG.js → copy-KlhazlhB.js} +1 -1
- package/dist/assets/{copy-icon-BIiRXh_3.js → copy-icon-8-a5vovc.js} +1 -1
- package/dist/assets/{createReducer-DgRODTW6.js → createReducer-CaI_Oa0v.js} +1 -1
- package/dist/assets/{datasource-Dr1xNKUn.js → datasource-deuXnlU-.js} +1 -1
- package/dist/assets/{dates-CfmdTL6B.js → dates-CQMwFko2.js} +1 -1
- package/dist/assets/{dependency-graph-panel-B0uP-_id.js → dependency-graph-panel-CIykLnJe.js} +2 -2
- package/dist/assets/{dist-iaThVDkA.js → dist-jlhMTKo_.js} +1 -1
- package/dist/assets/{documentation-panel-DVl_ebWy.js → documentation-panel-2PQ8kQLa.js} +1 -1
- package/dist/assets/{download-Bx55LMki.js → download-dK52bLxZ.js} +1 -1
- package/dist/assets/{dropdown-menu-C1rnl-0o.js → dropdown-menu-DS6umAnH.js} +1 -1
- package/dist/assets/edit-page-DrElzw10.js +9 -0
- package/dist/assets/{error-banner-Cd69vvyX.js → error-banner-B5kzVf_0.js} +1 -1
- package/dist/assets/{error-entries-DOWpdGvI.js → error-entries-3GVk2KjS.js} +1 -1
- package/dist/assets/{error-panel-DpbNKSLs.js → error-panel-CzDRGPeC.js} +1 -1
- package/dist/assets/{errors-DCrsa1nH.js → errors-CNsgAw6m.js} +1 -1
- package/dist/assets/{es-Cqst59WX.js → es-N9SHpmG7.js} +1 -1
- package/dist/assets/{feedback-button-B99ThNJW.js → feedback-button-C5NgWpFg.js} +2 -2
- package/dist/assets/feedback-button-CONwLFpw.js +1 -0
- package/dist/assets/file-explorer-panel-B50xDnTZ.js +1 -0
- package/dist/assets/{file-name-input-ChnBsDE_.js → file-name-input-DqwMSgGU.js} +1 -1
- package/dist/assets/{floating-outline-MYqQW4Vp.js → floating-outline-ChmAuvxz.js} +1 -1
- package/dist/assets/{formats-yZ06h1Pl.js → formats-zylfwejq.js} +1 -1
- package/dist/assets/{formatting-BqrP-n49.js → formatting-uom1es4b.js} +1 -1
- package/dist/assets/{fullscreen-B9tHcfpV.js → fullscreen-BWTs8pYZ.js} +1 -1
- package/dist/assets/{gallery-page-DSL0J4md.js → gallery-page-CiL8aMS1.js} +1 -1
- package/dist/assets/{ganttDiagram-EL5Y4UJY-2n7Ig5Jm.js → ganttDiagram-EL5Y4UJY-CYqkCfFG.js} +1 -1
- package/dist/assets/{glide-data-editor-B1MWlKeM.js → glide-data-editor-CqRclBkp.js} +2 -2
- package/dist/assets/{glide-utils-CIrAxdjv.js → glide-utils-HFqhvWHI.js} +2 -2
- package/dist/assets/home-page-BgZVl4dP.js +1 -0
- package/dist/assets/{hooks-BIogTGCr.js → hooks-DM5n7Osw.js} +1 -1
- package/dist/assets/{html-to-image-DK9Zl1lU.js → html-to-image-D_0rd3_B.js} +1 -1
- package/dist/assets/index-BnhSnwvB.css +2 -0
- package/dist/assets/index-EG2n8Oht.js +30 -0
- package/dist/assets/{input-BoBxR50a.js → input-DmHMEZGh.js} +1 -1
- package/dist/assets/kiosk-mode-DFS6HopF.js +1 -0
- package/dist/assets/layout-BpP8nTjb.js +9 -0
- package/dist/assets/linear-Bma8J3iM.js +1 -0
- package/dist/assets/links-DX2w97N9.js +1 -0
- package/dist/assets/{logs-panel-y0XnfulJ.js → logs-panel-B5eVAZtH.js} +1 -1
- package/dist/assets/{markdown-renderer-Q5AhbRU3.js → markdown-renderer-BWUzqkJM.js} +1 -1
- package/dist/assets/{menu-items-BrwnTgyK.js → menu-items-BgUyNUpu.js} +1 -1
- package/dist/assets/{mermaid-a3xYymTy.js → mermaid-BKXlWk4F.js} +2 -2
- package/dist/assets/{name-cell-input-BNOnF6-0.js → name-cell-input-DXW68gRW.js} +1 -1
- package/dist/assets/numbers-CsZVw3Dc.js +1 -0
- package/dist/assets/{objects-snlMn4yk.js → objects-rLPlQ3X_.js} +1 -1
- package/dist/assets/{once-Haz_uxEL.js → once-6KNTRW0u.js} +1 -1
- package/dist/assets/{outline-panel-Be7stWwv.js → outline-panel-DPxJhJ_A.js} +1 -1
- package/dist/assets/{package-data-dv4FBHxR.js → package-data-CKPmBDtg.js} +1 -1
- package/dist/assets/packages-panel-gBE2FWQr.js +1 -0
- package/dist/assets/{panel-accordion-state-GeMEdCPw.js → panel-accordion-state-CCF5Gxnc.js} +1 -1
- package/dist/assets/panels-Dr6qMCvU.js +105 -0
- package/dist/assets/precisionRound-BxlUs8G4.js +1 -0
- package/dist/assets/process-output-Cw9IDcKQ.js +1 -0
- package/dist/assets/{quadrantDiagram-AXDQQJYC-yBhCDI7E.js → quadrantDiagram-AXDQQJYC-D9KH5Zge.js} +1 -1
- package/dist/assets/react-vega-BTNeboR2.js +189 -0
- package/dist/assets/{readonly-code-display-YULOXf4h.js → readonly-code-display-DYcZQ28T.js} +1 -1
- package/dist/assets/{readonly-python-code-CadgXgRu.js → readonly-python-code-RFuQP50v.js} +1 -1
- package/dist/assets/{renderShortcut-BkVJQ_Zh.js → renderShortcut-rUwGqKgC.js} +1 -1
- package/dist/assets/{requests-lt0JK8Jt.js → requests-BIFR-h4M.js} +1 -1
- package/dist/assets/requests-DuLJN9Tf.js +1 -0
- package/dist/assets/{reveal-component-BVAR7ayZ.js → reveal-component-yRrDmCQz.js} +37 -37
- package/dist/assets/run-page-B69M4-zE.js +1 -0
- package/dist/assets/{runs-BLp5jezv.js → runs-C49hleBy.js} +1 -1
- package/dist/assets/{runtime-details-state-DuChzsA6.js → runtime-details-state-pobtu6TO.js} +1 -1
- package/dist/assets/{save-worker-BbUSwZRG.js → save-worker-pCkSHhuz.js} +1 -1
- package/dist/assets/{schemas-Dv42wLFq.js → schemas-ChRqMOTL.js} +1 -1
- package/dist/assets/scratchpad-panel-H44_pvb_.js +1 -0
- package/dist/assets/{scroll-to-bottom-button-1FyowpWV.js → scroll-to-bottom-button-CIkON2WJ.js} +1 -1
- package/dist/assets/{secrets-panel-Bctbtkrp.js → secrets-panel-bcfEKxRx.js} +1 -1
- package/dist/assets/{select-DTBn5eTb.js → select-3CVGlYrC.js} +1 -1
- package/dist/assets/{session-DqoWmb7X.js → session-CMLIzZKw.js} +1 -1
- package/dist/assets/session-panel-Bnd1iXkO.js +1 -0
- package/dist/assets/{snippets-panel-CQ1dn3lA.js → snippets-panel-DKApxKx9.js} +1 -1
- package/dist/assets/{spec-BfSBcO5B.js → spec-uCpVvaAR.js} +1 -1
- package/dist/assets/{state-uwRvJLb8.js → state-3mcyTS9q.js} +1 -1
- package/dist/assets/state-B_MCKzBL.js +1 -0
- package/dist/assets/state-Bl9BiY_s.js +3 -0
- package/dist/assets/{state-C3oDoyFe.js → state-C5WAeuTu.js} +1 -1
- package/dist/assets/{state-DxQnC_1I.js → state-Cv2JW3l9.js} +1 -1
- package/dist/assets/{state-Bfh_2SLl.js → state-Dv059B3A.js} +1 -1
- package/dist/assets/{strings-B2vv-ENv.js → strings-C25fhMR_.js} +1 -1
- package/dist/assets/{swiper-component-a07domrZ.js → swiper-component-CRGRy5_O.js} +1 -1
- package/dist/assets/{switch-CTaiAjrz.js → switch-DYjBfpNJ.js} +1 -1
- package/dist/assets/{tabs-BuQlZFbt.js → tabs-CY8E4r9U.js} +1 -1
- package/dist/assets/{terminal-Ck_vK-34.js → terminal-Ca-kubKb.js} +1 -1
- package/dist/assets/{time-MgToa8VM.js → time-DswSXBDk.js} +1 -1
- package/dist/assets/{toast-BGzLGnvw.js → toast-Gzxi-le_.js} +1 -1
- package/dist/assets/tooltip-Brya4Ghn.js +61 -0
- package/dist/assets/{tooltip-C9TuY18o.js → tooltip-CkGm8X7m.js} +1 -1
- package/dist/assets/tracing-Clwy4SlW.js +1 -0
- package/dist/assets/tracing-panel-BwjLG_aC.js +2 -0
- package/dist/assets/{tree-actions-DAd80MbP.js → tree-actions-BZNTQ12N.js} +1 -1
- package/dist/assets/{use-restore-focus-BxEGwIbk.js → use-restore-focus-DdS7Tl0F.js} +1 -1
- package/dist/assets/{useAddCell-DGstJK0S.js → useAddCell-Cjuqk2YR.js} +1 -1
- package/dist/assets/useAsyncData-qvoPYHtx.js +1 -0
- package/dist/assets/useBoolean-Dd2nWXFJ.js +1 -0
- package/dist/assets/useCellActionButton-MoWLvuGe.js +1 -0
- package/dist/assets/useDebounce-DwTQ_1Pu.js +1 -0
- package/dist/assets/{useDeepCompareMemoize-DFIVN9dn.js → useDeepCompareMemoize-B2DVK2De.js} +1 -1
- package/dist/assets/useDelayElapsed-BlsDT4TV.js +1 -0
- package/dist/assets/{useDeleteCell-DFBGlSQk.js → useDeleteCell-BC-MW7d1.js} +1 -1
- package/dist/assets/{useDependencyPanelTab-DydxsE5d.js → useDependencyPanelTab-CZU7i-B3.js} +1 -1
- package/dist/assets/{useEvent-Dfcbgjhg.js → useEvent-BDjgaBtz.js} +1 -1
- package/dist/assets/{useEventListener-D9cftcHj.js → useEventListener-CjDeLqFC.js} +1 -1
- package/dist/assets/{useIframeCapabilities-CwTkczVN.js → useIframeCapabilities-Czr9e4uG.js} +1 -1
- package/dist/assets/{useInstallPackage-iX1eufdl.js → useInstallPackage-wcDq9hYT.js} +1 -1
- package/dist/assets/{useInterval--x3s1VpI.js → useInterval-DJdQmXnq.js} +1 -1
- package/dist/assets/useNotebookActions-wFxVdRXQ.js +1 -0
- package/dist/assets/{useRunCells-BFjFX3hz.js → useRunCells-ByaWxoIt.js} +1 -1
- package/dist/assets/{useSplitCell-Tqv5pPtL.js → useSplitCell-YJIystwv.js} +1 -1
- package/dist/assets/useStateForKey-CGMJQT8x.js +1 -0
- package/dist/assets/{useTheme-COhSHkCj.js → useTheme-BAA27lh7.js} +1 -1
- package/dist/assets/{utils-CaQYvazl.js → utils-DfElfBpz.js} +1 -1
- package/dist/assets/vega-component-BeyxAJad.js +1 -0
- package/dist/assets/{vega-embed-container-DJPNkHPb.js → vega-embed-container-DtArSJz1.js} +1 -1
- package/dist/assets/vega-loader.browser-Bu25TKax.js +6 -0
- package/dist/assets/{worker-DTQ7oH2A.js → worker-bSCjCvwz.js} +1 -1
- package/dist/assets/{write-secret-modal-DzKAInL2.js → write-secret-modal-BEx-EUlh.js} +1 -1
- package/dist/assets/{xychartDiagram-S5SC5T6Z-KbGzG6-u.js → xychartDiagram-S5SC5T6Z-CeRnBS5e.js} +1 -1
- package/dist/index.html +80 -78
- package/package.json +7 -7
- package/src/__tests__/host-imports.test.ts +1 -0
- package/src/components/app-config/ai-config.tsx +7 -2
- package/src/components/chat/__tests__/message-queue.test.tsx +17 -0
- package/src/components/chat/acp/__tests__/state.test.ts +2 -2
- package/src/components/chat/acp/blocks.tsx +2 -2
- package/src/components/chat/chat-components.tsx +2 -0
- package/src/components/chat/chat-panel.tsx +9 -8
- package/src/components/chat/chat-utils.ts +4 -8
- package/src/components/data-table/__tests__/column-explorer.test.tsx +27 -1
- package/src/components/data-table/__tests__/columns.test.tsx +105 -0
- package/src/components/data-table/__tests__/context-menu-interaction.test.tsx +130 -0
- package/src/components/data-table/__tests__/date-popover.test.tsx +72 -0
- package/src/components/data-table/__tests__/export-actions.test.tsx +105 -0
- package/src/components/data-table/__tests__/search-highlight.test.tsx +109 -0
- package/src/components/data-table/__tests__/url-detector.test.tsx +74 -0
- package/src/components/data-table/cell-selection/feature.ts +2 -2
- package/src/components/data-table/cell-selection/types.ts +2 -2
- package/src/components/data-table/charts/__tests__/chart-panel.test.tsx +74 -1
- package/src/components/data-table/charts/__tests__/storage.test.ts +4 -1
- package/src/components/data-table/charts/charts.tsx +35 -25
- package/src/components/data-table/charts/storage.ts +16 -5
- package/src/components/data-table/column-explorer-panel/column-explorer.tsx +1 -1
- package/src/components/data-table/column-summary/column-summary.tsx +2 -4
- package/src/components/data-table/column-visibility-dropdown.tsx +8 -13
- package/src/components/data-table/columns.tsx +45 -46
- package/src/components/data-table/context-menu.tsx +36 -20
- package/src/components/data-table/data-table.tsx +7 -1
- package/src/components/data-table/date-popover.tsx +6 -4
- package/src/components/data-table/export-actions.tsx +76 -48
- package/src/components/data-table/row-viewer-panel/row-viewer.tsx +2 -2
- package/src/components/data-table/search-highlight.tsx +79 -0
- package/src/components/data-table/types.ts +1 -0
- package/src/components/data-table/url-detector.tsx +49 -9
- package/src/components/datasources/__tests__/column-actions.test.tsx +97 -0
- package/src/components/datasources/__tests__/column-preview.test.tsx +63 -2
- package/src/components/datasources/__tests__/table-list.test.tsx +118 -0
- package/src/components/datasources/column-preview.tsx +8 -2
- package/src/components/datasources/datasources.tsx +47 -35
- package/src/components/debugger/debugger-code.tsx +5 -0
- package/src/components/dependency-graph/panels.tsx +2 -1
- package/src/components/editor/SortableCell.tsx +1 -3
- package/src/components/editor/__tests__/dynamic-favicon.test.tsx +111 -18
- package/src/components/editor/actions/__tests__/pair-with-agent-modal.test.tsx +24 -0
- package/src/components/editor/actions/pair-with-agent-modal.tsx +18 -15
- package/src/components/editor/ai/add-cell-with-ai.tsx +3 -3
- package/src/components/editor/ai/ai-completion-editor.tsx +1 -0
- package/src/components/editor/alerts/startup-logs-alert.tsx +1 -0
- package/src/components/editor/cell/CreateCellButton.tsx +8 -10
- package/src/components/editor/cell/DeleteButton.tsx +1 -0
- package/src/components/editor/cell/__tests__/useShouldShowInterrupt.test.ts +39 -0
- package/src/components/editor/cell/code/__tests__/language-toggle.test.tsx +54 -0
- package/src/components/editor/cell/code/cell-editor.tsx +1 -1
- package/src/components/editor/cell/code/language-toggle.tsx +8 -7
- package/src/components/editor/cell/useShouldShowInterrupt.ts +2 -12
- package/src/components/editor/chrome/panels/__tests__/packages-panel.test.tsx +30 -1
- package/src/components/editor/chrome/panels/cache-panel.tsx +1 -0
- package/src/components/editor/chrome/panels/packages-panel.tsx +4 -7
- package/src/components/editor/chrome/wrapper/__tests__/attachment-status.test.tsx +12 -18
- package/src/components/editor/chrome/wrapper/__tests__/pending-ai-cells.test.tsx +58 -1
- package/src/components/editor/chrome/wrapper/footer-items/runtime-settings.tsx +1 -7
- package/src/components/editor/chrome/wrapper/pending-ai-cells.tsx +12 -2
- package/src/components/editor/chrome/wrapper/storage.ts +1 -1
- package/src/components/editor/connections/components.tsx +1 -1
- package/src/components/editor/controls/__tests__/command-palette.test.tsx +53 -0
- package/src/components/editor/controls/command-palette.tsx +22 -10
- package/src/components/editor/dynamic-favicon.tsx +21 -40
- package/src/components/editor/errors/__tests__/send-error-report-button.test.tsx +12 -23
- package/src/components/editor/file-tree/__tests__/file-explorer-interactions.test.tsx +6 -0
- package/src/components/editor/file-tree/__tests__/use-file-search.test.tsx +91 -0
- package/src/components/editor/file-tree/file-explorer.tsx +10 -5
- package/src/components/editor/file-tree/file-viewer.tsx +4 -2
- package/src/components/editor/file-tree/use-file-search.ts +35 -21
- package/src/components/editor/notebook-banner.tsx +1 -0
- package/src/components/editor/output/MarimoTracebackOutput.tsx +2 -2
- package/src/components/editor/output/ansi-reduce.ts +6 -0
- package/src/components/editor/output/console/ConsoleOutput.tsx +19 -25
- package/src/components/editor/package-alert.tsx +6 -4
- package/src/components/editor/renderers/vertical-layout/sidebar/toggle.tsx +7 -1
- package/src/components/home/components.tsx +17 -31
- package/src/components/icons/__tests__/large-spinner.test.tsx +39 -0
- package/src/components/icons/large-spinner.tsx +3 -14
- package/src/components/icons/spinner.tsx +1 -1
- package/src/components/mcp/mcp-status-indicator.tsx +1 -1
- package/src/components/pages/__tests__/home-page.test.tsx +116 -0
- package/src/components/pages/home-page.tsx +164 -91
- package/src/components/scratchpad/scratchpad.tsx +2 -2
- package/src/components/slides/reveal-component.tsx +4 -2
- package/src/components/slides/slide-cell-view.tsx +1 -1
- package/src/components/slides/slide-form.tsx +1 -0
- package/src/components/tracing/tracing.tsx +2 -2
- package/src/components/ui/alert-dialog.tsx +1 -1
- package/src/core/ai/context/providers/datasource.ts +6 -2
- package/src/core/attachments/state.ts +5 -8
- package/src/core/cells/__tests__/__snapshots__/cells.test.ts.snap +4 -0
- package/src/core/cells/__tests__/cell.test.ts +39 -0
- package/src/core/cells/__tests__/cells.test.ts +3 -1
- package/src/core/cells/__tests__/collapseConsoleOutputs.test.ts +54 -0
- package/src/core/cells/__tests__/notebook-outline.test.ts +113 -0
- package/src/core/cells/cell.ts +14 -3
- package/src/core/cells/cells.ts +3 -1
- package/src/core/cells/pending-delete-service.ts +2 -6
- package/src/core/cells/session.ts +1 -1
- package/src/core/cells/types.ts +10 -1
- package/src/core/codemirror/__tests__/setup.test.ts +1 -1
- package/src/core/codemirror/keymaps/vim.ts +2 -6
- package/src/core/codemirror/language/languages/markdown.ts +1 -1
- package/src/core/codemirror/language/languages/python.ts +3 -3
- package/src/core/codemirror/language/panel/panel.tsx +1 -0
- package/src/core/datasets/__tests__/data-source-discovery.test.ts +4 -4
- package/src/core/datasets/data-source-discovery.ts +4 -6
- package/src/core/document/__tests__/draft.test.ts +322 -0
- package/src/core/document/__tests__/fixtures.ts +92 -0
- package/src/core/document/__tests__/lifecycle-scenarios.test.ts +61 -0
- package/src/core/document/__tests__/model.test.ts +158 -0
- package/src/core/document/__tests__/protocol-fixtures.ts +38 -0
- package/src/core/document/__tests__/recovery-scenarios.test.ts +230 -0
- package/src/core/document/__tests__/scenario-fixture.ts +42 -0
- package/src/core/document/__tests__/scenarios.test.ts +205 -0
- package/src/core/document/__tests__/state.test.ts +446 -0
- package/src/core/document/__tests__/submission.test.ts +201 -0
- package/src/core/document/__tests__/test-host.test.ts +92 -0
- package/src/core/document/__tests__/test-host.ts +247 -0
- package/src/core/document/__tests__/test-notebook.ts +139 -0
- package/src/core/document/__tests__/user.ts +61 -0
- package/src/core/document/draft.ts +472 -0
- package/src/core/document/index.ts +10 -0
- package/src/core/document/model.ts +53 -0
- package/src/core/document/state.ts +401 -0
- package/src/core/document/sync.ts +359 -0
- package/src/core/edit-app.tsx +2 -2
- package/src/core/host/AGENTS.md +12 -2
- package/src/core/host/__tests__/attachments.test.ts +56 -0
- package/src/core/host/__tests__/document.test.ts +126 -0
- package/src/core/host/__tests__/fixtures.ts +41 -0
- package/src/core/host/__tests__/notebook-client.test.ts +570 -0
- package/src/core/host/connection.ts +42 -0
- package/src/core/host/notebook-client.ts +297 -0
- package/src/core/host/resources/attachments.ts +22 -0
- package/src/core/host/resources/document.ts +101 -0
- package/src/core/hotkeys/actions.ts +2 -4
- package/src/core/islands/__tests__/bootstrap.test.ts +0 -26
- package/src/core/islands/bootstrap.ts +0 -1
- package/src/core/kernel/__tests__/RuntimeState.test.ts +1 -1
- package/src/core/network/connection.ts +4 -2
- package/src/core/network/useConnectionNotice.ts +8 -2
- package/src/core/run-app.tsx +2 -2
- package/src/core/runtime/__tests__/createWsUrl.test.ts +77 -7
- package/src/core/runtime/__tests__/runtime.test.ts +18 -17
- package/src/core/runtime/runtime.ts +26 -30
- package/src/core/state/__tests__/jotai.test.tsx +108 -0
- package/src/core/state/jotai.ts +1 -1
- package/src/core/static/files.ts +2 -0
- package/src/core/wasm/bridge.ts +2 -10
- package/src/core/wasm/store.ts +3 -3
- package/src/core/wasm/worker/bootstrap.ts +1 -1
- package/src/core/wasm/worker/getMarimoWheel.ts +1 -1
- package/src/core/websocket/__tests__/{useMarimoKernelConnection.test.ts → connection-state.test.ts} +15 -29
- package/src/core/websocket/__tests__/useNotebookClient.hook.test.tsx +223 -0
- package/src/core/websocket/__tests__/useNotebookSession.hook.test.tsx +606 -0
- package/src/core/websocket/connection-state.ts +60 -0
- package/src/core/websocket/state.ts +7 -0
- package/src/core/websocket/transports/__tests__/notebook.test.ts +502 -0
- package/src/core/websocket/transports/notebook.ts +213 -0
- package/src/core/websocket/types.ts +9 -39
- package/src/core/websocket/useNotebookClient.ts +89 -0
- package/src/core/websocket/{useMarimoKernelConnection.tsx → useNotebookSession.tsx} +53 -233
- package/src/css/globals.css +5 -0
- package/src/hooks/__tests__/useAsyncData.test.tsx +148 -0
- package/src/hooks/__tests__/useDebounce.test.tsx +51 -0
- package/src/hooks/__tests__/useDeepCompareMemoize.test.tsx +39 -0
- package/src/hooks/__tests__/useDelayElapsed.test.tsx +28 -0
- package/src/hooks/__tests__/useInternalStateWithSync.test.tsx +20 -0
- package/src/hooks/__tests__/useScript.test.tsx +77 -0
- package/src/hooks/__tests__/useStateForKey.test.tsx +257 -0
- package/src/hooks/useAsyncData.ts +3 -3
- package/src/hooks/useDataSourceDiscovery.ts +6 -4
- package/src/hooks/useDebounce.ts +5 -8
- package/src/hooks/useDeepCompareMemoize.ts +1 -1
- package/src/hooks/useDelayElapsed.ts +14 -10
- package/src/hooks/useElapsedTime.ts +3 -3
- package/src/hooks/useInputHistory.ts +4 -7
- package/src/hooks/useInternalStateWithSync.ts +6 -6
- package/src/hooks/useResizeObserver.ts +4 -7
- package/src/hooks/useScript.ts +67 -70
- package/src/hooks/useStateForKey.ts +93 -0
- package/src/plugins/core/registerReactComponent.tsx +1 -1
- package/src/plugins/impl/CodeEditorPlugin.tsx +1 -1
- package/src/plugins/impl/DataTablePlugin.tsx +14 -15
- package/src/plugins/impl/DropdownPlugin.tsx +2 -6
- package/src/plugins/impl/FileBrowserPlugin.tsx +4 -16
- package/src/plugins/impl/FormPlugin.tsx +1 -1
- package/src/plugins/impl/RangeSliderPlugin.tsx +0 -1
- package/src/plugins/impl/RefreshPlugin.tsx +1 -0
- package/src/plugins/impl/SliderPlugin.tsx +6 -8
- package/src/plugins/impl/__tests__/DataTablePlugin.test.tsx +117 -1
- package/src/plugins/impl/__tests__/FileBrowserPlugin.test.tsx +45 -0
- package/src/plugins/impl/__tests__/SliderPlugin.test.tsx +24 -3
- package/src/plugins/impl/anywidget/__tests__/registry.test.ts +2 -0
- package/src/plugins/impl/anywidget/__tests__/widget-binding.test.ts +241 -2
- package/src/plugins/impl/anywidget/runtime.ts +21 -9
- package/src/plugins/impl/anywidget/widget-binding.ts +160 -82
- package/src/plugins/impl/chat/__tests__/chat-prompts.test.tsx +93 -0
- package/src/plugins/impl/chat/chat-ui.tsx +12 -10
- package/src/plugins/impl/code/any-language-editor.tsx +2 -2
- package/src/plugins/impl/data-editor/glide-data-editor.tsx +8 -5
- package/src/plugins/impl/data-editor/glide-utils.ts +3 -1
- package/src/plugins/impl/data-explorer/ConnectedDataExplorerComponent.tsx +1 -1
- package/src/plugins/impl/data-explorer/state/reducer.ts +1 -1
- package/src/plugins/impl/data-frames/DataFramePlugin.tsx +0 -1
- package/src/plugins/impl/mpl-interactive/MplInteractivePlugin.tsx +5 -3
- package/src/plugins/impl/panel/PanelPlugin.tsx +16 -17
- package/src/plugins/impl/panel/__tests__/utils.test.ts +39 -1
- package/src/plugins/impl/panel/utils.ts +17 -0
- package/src/plugins/impl/vega/make-selectable.ts +4 -7
- package/src/plugins/layout/RoutesPlugin.tsx +1 -1
- package/src/stories/__tests__/editor-story.test.tsx +33 -0
- package/src/stories/button.stories.tsx +1 -0
- package/src/stories/editor.stories.tsx +24 -17
- package/src/stories/form-wrapper.stories.tsx +2 -2
- package/src/stories/select.stories.tsx +2 -2
- package/src/stories/switchable-multi-select.stories.tsx +1 -1
- package/src/utils/__tests__/arrays.test.ts +35 -0
- package/src/utils/__tests__/batch-requests.test.ts +3 -3
- package/src/utils/__tests__/numbers.test.ts +48 -1
- package/src/utils/__tests__/objects.test.ts +21 -0
- package/src/utils/arrays.ts +10 -0
- package/src/utils/blob.ts +1 -1
- package/src/utils/numbers.ts +28 -17
- package/src/utils/objects.ts +3 -7
- package/src/utils/once.ts +19 -19
- package/src/utils/zod-utils.ts +1 -3
- package/dist/assets/CellStatus-nZpuDkm7.js +0 -1
- package/dist/assets/JsonOutput-BxB0NL8w.js +0 -11
- package/dist/assets/MarimoErrorOutput-BTy4MOzX.js +0 -10
- package/dist/assets/RunButton-CFQUNN5c.js +0 -1
- package/dist/assets/__vite-browser-external-CYO_P3S8.js +0 -1
- package/dist/assets/__vite-browser-external-FeDVGZU8.js +0 -1
- package/dist/assets/ai-model-dropdown-zm-2fXzf.js +0 -13
- package/dist/assets/any-language-editor-BLCAD3yx.js +0 -1
- package/dist/assets/arrays-BqUx5USx.js +0 -1
- package/dist/assets/cell-editor-CAj1UKxx.js +0 -21
- package/dist/assets/cell-link-1CynTVGQ.js +0 -1
- package/dist/assets/chat-panel-Ce2Xh7dM.js +0 -4
- package/dist/assets/chat-ui-DTy98rP3.js +0 -4
- package/dist/assets/circle-play-CYIb0qT6.js +0 -1
- package/dist/assets/code-visibility-B-_GvwR5.js +0 -1
- package/dist/assets/coerce-CpE6kUdX.js +0 -1
- package/dist/assets/column-preview-DU6dT80y.js +0 -1
- package/dist/assets/command-palette-BMqFKXVr.js +0 -1
- package/dist/assets/components-CXfO-F47.js +0 -1
- package/dist/assets/config-DX8Y2WbJ.js +0 -1
- package/dist/assets/config-VPSq73n8.js +0 -1
- package/dist/assets/edit-page-DlfCLUaq.js +0 -9
- package/dist/assets/feedback-button-DlqZkJwz.js +0 -1
- package/dist/assets/file-explorer-panel-Bo9eN3rW.js +0 -1
- package/dist/assets/home-page-KrhQ55Vg.js +0 -4
- package/dist/assets/index-6b4mf8Ai.css +0 -2
- package/dist/assets/index-B3fcrmuf.js +0 -30
- package/dist/assets/kiosk-mode-BZECfg9k.js +0 -1
- package/dist/assets/layout-DOpdUwym.js +0 -9
- package/dist/assets/linear-0eij_aAG.js +0 -1
- package/dist/assets/link-NuFVR7G9.js +0 -1
- package/dist/assets/links-DkkL9DVa.js +0 -1
- package/dist/assets/numbers-Mk3-CcoU.js +0 -1
- package/dist/assets/packages-panel-ClxOAEGy.js +0 -1
- package/dist/assets/panels-DfCmzLtT.js +0 -4
- package/dist/assets/precisionRound-Bq_nmf5u.js +0 -1
- package/dist/assets/process-output-DNFKMODr.js +0 -1
- package/dist/assets/react-vega-C3rYGtP6.js +0 -189
- package/dist/assets/requests-CgSY1X4a.js +0 -1
- package/dist/assets/run-page-Cxu1yV8Q.js +0 -1
- package/dist/assets/scratchpad-panel-By-ybhjg.js +0 -1
- package/dist/assets/session-panel-BmW6PH4z.js +0 -1
- package/dist/assets/state-BAJYRhmO.js +0 -1
- package/dist/assets/state-z3dlofZB.js +0 -3
- package/dist/assets/tooltip-mT3CGest.js +0 -61
- package/dist/assets/tracing-BARlJ_Dk.js +0 -1
- package/dist/assets/tracing-panel-dgnr2fIN.js +0 -2
- package/dist/assets/useAsyncData-C7aJJz0Y.js +0 -1
- package/dist/assets/useBoolean-BDD6_xQQ.js +0 -1
- package/dist/assets/useCellActionButton-DY9RlJTb.js +0 -1
- package/dist/assets/useDebounce-B_ccBZTp.js +0 -1
- package/dist/assets/useNotebookActions-DfvB7RD_.js +0 -1
- package/dist/assets/vega-component-CnadTgoE.js +0 -1
- package/dist/assets/vega-loader.browser-CLRkNgm7.js +0 -6
- package/dist/assets/ws-BXWY541V.js +0 -22
- package/src/core/host/__tests__/protocol.test.ts +0 -214
- package/src/core/host/protocol.ts +0 -1943
- package/src/core/state/__tests__/jotai.test.ts +0 -25
- package/src/core/websocket/__tests__/useMarimoKernelConnection.hook.test.tsx +0 -789
- package/src/core/websocket/__tests__/useWebSocket.test.ts +0 -49
- package/src/core/websocket/transports/__tests__/basic.test.ts +0 -275
- package/src/core/websocket/transports/__tests__/sse.test.ts +0 -338
- package/src/core/websocket/transports/__tests__/transport.test.ts +0 -308
- package/src/core/websocket/transports/__tests__/ws.test.ts +0 -125
- package/src/core/websocket/transports/basic.ts +0 -102
- package/src/core/websocket/transports/sse.ts +0 -308
- package/src/core/websocket/transports/transport.ts +0 -61
- package/src/core/websocket/transports/ws.ts +0 -98
- package/src/core/websocket/useWebSocket.tsx +0 -88
package/dist/assets/{LazyAnyLanguageCodeMirror-CKcCbG2G.js → LazyAnyLanguageCodeMirror-BPYE76jR.js}
RENAMED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./any-language-editor-
|
|
2
|
-
import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{t}from"./react-DVplv7_D.js";import{t as n}from"./createLucideIcon-DfJ2oMlA.js";import{t as r}from"./preload-helper-uBIymjUX.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-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./any-language-editor-DUMe1UCk.js","./rolldown-runtime-B0Z9INg1.js","./react-DVplv7_D.js","./compiler-runtime-BrajqUja.js","./useEventListener-CjDeLqFC.js","./objects-rLPlQ3X_.js","./jsx-runtime-B74pBk57.js","./copy-icon-8-a5vovc.js","./cn-ldLVeaqm.js","./clsx-DB0hHKMi.js","./tooltip-CkGm8X7m.js","./fullscreen-BWTs8pYZ.js","./react-dom-_LrxgvjW.js","./dist-jlhMTKo_.js","./button-D8gVKwe-.js","./check-BQNapYaf.js","./createLucideIcon-DfJ2oMlA.js","./copy-Djr5m5ac.js","./copy-KlhazlhB.js","./use-toast-Wu434mLr.js","./error-banner-B5kzVf_0.js","./alert-dialog-C-sWmKva.js","./use-restore-focus-DdS7Tl0F.js","./errors-CNsgAw6m.js","./schemas-ChRqMOTL.js","./esm-CI_o7NhW.js","./dist-Cny7_yZb.js","./dist-DBMV4gqt.js","./dist-qhAY4L2r.js","./extends-CvVTau-c.js","./objectWithoutPropertiesLoose-Do6ywDBO.js","./esm-CQuf--zt.js","./dist-BOfh4hMd.js","./dist-LSsCJjA3.js","./dist-1tmpVXyz.js","./dist-DtH-7lot.js","./dist-BmExfiwX.js","./dist-DusFODSa.js","./stex-Dc5bKD4z.js","./dist-DDpltFEG.js","./dist-DOsgOC8X.js","./dist-DF6q90J2.js","./dist-CWcX5iL_.js","./dist-COseLvbK.js","./dist-uBfhY3mF.js","./dist-CdpiHIsZ.js","./dist-Ceg_d-nu.js","./dist-C08rfu50.js","./dist-CJ4Ekjf-.js","./dist-C9ULdZil.js","./dist-DmUAWIff.js","./dist-BCteMNTR.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-DWBX_aOH.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-CKIsIBWn.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-mPh3sAH5.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{t}from"./react-DVplv7_D.js";import{t as n}from"./createLucideIcon-DfJ2oMlA.js";import{t as r}from"./preload-helper-uBIymjUX.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-DUMe1UCk.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,134,135]),import.meta.url));export{i as n,a as t};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{c as t,d as n,f as r,l as i,r as a,t as o,u as s}from"./useEvent-BDjgaBtz.js";import{t as c}from"./react-DVplv7_D.js";import{Ao as l,D as u,Kr as d,Oa as f,Q as p,Qr as m,Z as h,Za as g,ai as _,b as v,ka as y,no as b,qa as x,ut as S}from"./cells-D_11MjVB.js";import{t as C}from"./compiler-runtime-BrajqUja.js";import{i as w,r as T,x as E}from"./config-DpY86_Yq.js";import{g as D,p as O}from"./useEventListener-CjDeLqFC.js";import{t as k}from"./invariant-Ci2dTZ72.js";import{a as A,i as j,o as M,p as ee,r as te,s as N,t as P}from"./config-DMz7oN0r.js";import{r as F,v as ne}from"./session-CMLIzZKw.js";import{O as I}from"./config-CD1IuZFJ.js";import{t as re}from"./cn-ldLVeaqm.js";import{t as ie}from"./jsx-runtime-B74pBk57.js";import{a as ae,p as oe,r as se,t as ce}from"./dropdown-menu-DS6umAnH.js";import{t as L}from"./tooltip-CkGm8X7m.js";import{r as le,t as R}from"./button-D8gVKwe-.js";import{t as z}from"./createLucideIcon-DfJ2oMlA.js";import{t as ue}from"./check-BQNapYaf.js";import{a as de}from"./useNumberFormatter-D7O_26UI.js";import{t as fe}from"./chevron-right-eAtVhbNZ.js";import{t as pe}from"./hat-glasses-C8RhSVii.js";import{p as B}from"./write-secret-modal-BEx-EUlh.js";import{t as me}from"./package-GSoSTiIK.js";import{l as he,r as ge}from"./datasource-deuXnlU-.js";import{t as _e}from"./use-toast-Wu434mLr.js";import{n as ve}from"./strings-C25fhMR_.js";import{a as ye}from"./dist-DusFODSa.js";import{t as be}from"./uuid-k9DpjH68.js";import{t as xe}from"./RenderHTML-DQvxDDNS.js";import{t as Se,u as Ce}from"./useInstallPackage-wcDq9hYT.js";import{a as we,r as Te}from"./errors-CNsgAw6m.js";import{t as Ee}from"./kbd-pdKBv96t.js";import{t as De}from"./error-entries-3GVk2KjS.js";import{r as Oe,t as ke}from"./alert-DTaqCu_d.js";import{n as Ae,o as je}from"./state-Dv059B3A.js";import{n as V}from"./cell-link-C5yYyzuF.js";var Me=z(`send`,[[`path`,{d:`M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z`,key:`1ffxy3`}],[`path`,{d:`m21.854 2.147-10.94 10.939`,key:`12cjpa`}]]),H=z(`square-arrow-out-up-right`,[[`path`,{d:`M21 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h6`,key:`y09zxi`}],[`path`,{d:`m21 3-9 9`,key:`mpx6sq`}],[`path`,{d:`M15 3h6v6`,key:`1q9fwt`}]]),Ne=z(`terminal`,[[`path`,{d:`M12 19h8`,key:`baeox8`}],[`path`,{d:`m4 17 6-6-6-6`,key:`1yngyt`}]]),U=e(c(),1),W=C(),Pe=`Fix this notebook error.`;function Fe(e,t){let n,r;return`errors`in t?(n=t.errors.map(De).join(`
|
|
2
|
+
`),r=t.errors.flatMap(e=>`traceback`in e&&e.traceback?[h(S(e.traceback))]:[]).join(`
|
|
3
|
+
|
|
4
|
+
`)):(r=t.tracebackFormat===`html`?h(S(t.traceback)):t.traceback,n=r.split(`
|
|
5
|
+
`).findLast(e=>e.length>0)??``),{type:`cell-output`,cell_id:e,output:{type:`error`,instructions:Pe,message:n,...r?{traceback:r}:{}},...t.code===void 0?{}:{code:t.code}}}var Ie=String.raw`_cell_([^\W_][\w-]*?)(_\w*)`,Le=String.raw`(?<!_)${Ie}`;RegExp(`^${Ie}$`);var Re=new RegExp(Le),G=new RegExp(Le,`g`);function ze(e){let t=[];G.lastIndex=0;let n=0,r=G.exec(e);for(;r!==null;)r.index>n&&t.push(e.slice(n,r.index)),t.push({cellId:r[1],name:r[2]}),n=r.index+r[0].length,r=G.exec(e);return n<e.length&&t.push(e.slice(n)),t}function Be(e){return Re.test(e)}function Ve(e){let t=null,n=e.cursor();do n.name===`ExpressionStatement`&&(t=n.node);while(n.next());return t}function He(e){let t=e.split(`
|
|
6
|
+
`),n=` `,r=Ve(ye.parse(e));if(!r)return[`def _():`,...K(t,n),`${n}return`,``,``,`_()`].join(`
|
|
7
|
+
`);let i=e.slice(0,r.from).trim(),a=e.slice(r.from).trim(),o=i.split(`
|
|
8
|
+
`),s=a.split(`
|
|
9
|
+
`);return[`def _():`,...K(o,n),`${n}return ${s[0]}`,...K(s.slice(1),n),``,``,`_()`].join(`
|
|
10
|
+
`)}function K(e,t){if(e.length===1&&e[0]===``)return[];let n=[];for(let r of e)r===``?n.push(``):n.push(t+r);return n}function Ue(e,t){if(e.type===`multiple-defs`)return[{title:`Fix: Wrap in a function`,description:`Make this cell's variables local by wrapping the cell in a function.`,fixType:`manual`,onFix:async e=>{k(e.editor,`Editor is null`);let t=He(e.editor.state.doc.toString());e.editor.dispatch({changes:{from:0,to:e.editor.state.doc.length,insert:t}})}}];if(e.type===`exception`&&e.exception_type===`NameError`){let t=e.msg.match(/name '(.+)' is not defined/)?.[1];if(!t||!(t in Ge))return[];let n=We(t);return[{title:`Fix: Add '${n}'`,description:`Add a new cell for the missing import`,fixType:`manual`,onFix:async e=>{e.addCodeBelow(n)}}]}return e.type===`sql-error`&&t.aiEnabled?[{title:`Fix with AI`,description:`Fix the SQL statement`,fixType:`ai`,onFix:async t=>{let n=ge(t.cellId,a),r=`Fix the SQL statement: ${e.msg}.`;n&&(r+=`\nDatabase schema: ${n}`),t.aiFix?.setAiCompletionCell({cellId:t.cellId,initialPrompt:r,triggerImmediately:t.aiFix.triggerFix})}}]:[]}function We(e){let t=Ge[e];return t===e?`import ${t}`:`import ${t} as ${e}`}var Ge={mo:`marimo`,alt:`altair`,bokeh:`bokeh`,dask:`dask`,np:`numpy`,pd:`pandas`,pl:`polars`,plotly:`plotly`,plt:`matplotlib.pyplot`,px:`plotly.express`,scipy:`scipy`,sk:`sklearn`,sns:`seaborn`,stats:`scipy.stats`,tf:`tensorflow`,torch:`torch`,xr:`xarray`,dt:`datetime`,json:`json`,math:`math`,os:`os`,re:`re`,sys:`sys`},q=I(`marimo:acp:sessions:v1`,{sessions:[],activeTabId:null},m),Ke=r(e=>{let t=e(q);return t.activeTabId&&t.sessions.find(e=>e.tabId===t.activeTabId)||null},(e,t,n)=>{t(q,e=>({...e,activeTabId:n}))});function qe(){return`tab_${be()}`}function Je(e,t=20){return e.length<=t?e:`${e.slice(0,t-3)}...`}function Ye(e,t){let n=rt(t.agentId),r=Date.now(),i=t.firstMessage?Je(t.firstMessage.trim()):`New ${t.agentId} session`,a=qe();if(n===`single`){let n=e.sessions.filter(e=>e.agentId===t.agentId),a=e.sessions.filter(e=>e.agentId!==t.agentId);if(n.length>0){let o=n[0],s={agentId:t.agentId,title:i,createdAt:r,lastUsedAt:r,tabId:o.tabId,externalAgentSessionId:null,selectedModel:t.model??o.selectedModel??null};return{...e,sessions:[...a.slice(0,0),s],activeTabId:s.tabId}}}return{...e,sessions:[...e.sessions.slice(0,0),{agentId:t.agentId,tabId:a,title:i,createdAt:r,lastUsedAt:r,externalAgentSessionId:null,selectedModel:t.model??null}],activeTabId:a}}function Xe(e,t){let n=e.sessions.filter(e=>e.tabId!==t);return{sessions:n,activeTabId:e.activeTabId===t?n.length>0?n[n.length-1].tabId:null:e.activeTabId}}function Ze(e,t){let n=e.activeTabId;return n?{...e,sessions:e.sessions.map(e=>e.tabId===n?{...e,title:Je(t)}:e)}:e}function Qe(e,t){return{...e,sessions:e.sessions.map(e=>e.tabId===t?{...e,lastUsedAt:Date.now()}:e)}}function $e(e,t){let n=e.activeTabId;return n?{...e,sessions:e.sessions.map(e=>e.tabId===n?{...e,externalAgentSessionId:t,lastUsedAt:Date.now()}:e)}:e}function et(){return[`claude`,`gemini`,`codex`,`opencode`,`cursor`]}function tt(e){return ve(e)}function nt(e){let t=J[e].port,n=window.location.hostname;return`${window.location.protocol===`https:`?`wss:`:`ws:`}//${n}:${t}/message`}var J={claude:{port:3017,command:`npx @agentclientprotocol/claude-agent-acp`,sessionSupport:`single`},gemini:{port:3019,command:`npx @google/gemini-cli --experimental-acp`,sessionSupport:`single`},codex:{port:3021,command:`npx @zed-industries/codex-acp`,sessionSupport:`single`},opencode:{port:3023,command:`npx opencode-ai acp`,sessionSupport:`single`},cursor:{port:3025,command:`agent acp`,sessionSupport:`single`}};function rt(e){return J[e].sessionSupport}function it(e){let t=J[e].port,n=J[e].command;return`npx stdio-to-ws "${O()?`cmd /c ${n}`:n}" --port ${t}`}var at=I(`marimo:chrome:ai-panel-tab`,`chat`,m);function ot(){let e=(0,W.c)(3),[n,r]=t(at),i;return e[0]!==n||e[1]!==r?(i={aiPanelTab:n,setAiPanelTab:r},e[0]=n,e[1]=r,e[2]=i):i=e[2],i}var st=`code_mode`;function ct(e,t){return e||(_(`external_agents`)?t:`chat`)}function lt(){let e=(0,W.c)(6),{openApplication:t}=d(),{setAiPanelTab:r}=ot(),{saveModeChange:i}=P(),a=s(je),c=n(),l;return e[0]!==t||e[1]!==i||e[2]!==r||e[3]!==a||e[4]!==c?(l=async e=>{let n=ct(e.panel,c.get(at)),o=c.get(w),s=_(`external_agents`)&&c.get(q).sessions.length>0;if(!(n===`agents`?s:o)){_e({title:n===`agents`?`No agent session`:`AI not configured`,description:n===`agents`?`Start an agent session or switch to the chat panel.`:`Configure an AI provider and chat model to fix with AI.`,variant:`danger`});return}e.panel&&r(e.panel),n===`chat`&&await i(st).catch(ut),a({prompt:e.prompt,submit:e.submit??!1}),t(`ai`)},e[0]=t,e[1]=i,e[2]=r,e[3]=a,e[4]=c,e[5]=l):l=e[5],o(l)}function ut(){return D.error(`Failed to save mode change`)}var dt=I(`marimo:ai-autofix-mode`,`autofix`,m);function ft(){let e=(0,W.c)(3),[n,r]=t(dt),i;return e[0]!==n||e[1]!==r?(i={fixMode:n,setFixMode:r},e[0]=n,e[1]=r,e[2]=i):i=e[2],i}var Y=ie();function pt(e,t){if(e!=null)return`@error://${e}\n\nPlease fix this error.`;let n=t?.trim();return n?`My code gives the following error. Please fix it:\n\n${n}`:`Please fix this error.`}var X=e=>{let t=(0,W.c)(25),{errors:r,cellId:a,className:o}=e,c=n(),{createNewCell:l}=u(),d=i(T),f;if(t[0]!==d||t[1]!==r){let e;t[3]===d?e=t[4]:(e=e=>Ue(e,{aiEnabled:d}),t[3]=d,t[4]=e),f=r.flatMap(e),t[0]=d,t[1]=r,t[2]=f}else f=t[2];let p=f,m=s(Ae),h=lt();if(p.length===0)return null;let g=p[0],_;t[5]!==a||t[6]!==l||t[7]!==g||t[8]!==m||t[9]!==c?(_=e=>{let t=c.get(v).cellHandles[a].current?.editorView;g.onFix({addCodeBelow:e=>{l({cellId:a,autoFocus:!1,before:!1,code:e})},editor:t,cellId:a,aiFix:{setAiCompletionCell:m,triggerFix:e}}),t?.focus()},t[5]=a,t[6]=l,t[7]=g,t[8]=m,t[9]=c,t[10]=_):_=t[10];let y=_,b;t[11]!==a||t[12]!==h?(b=()=>{h({prompt:pt(a)})},t[11]=a,t[12]=h,t[13]=b):b=t[13];let x=b,S;t[14]===o?S=t[15]:(S=re(`my-2`,o),t[14]=o,t[15]=S);let C;t[16]!==g.description||t[17]!==g.fixType||t[18]!==g.title||t[19]!==y||t[20]!==x?(C=g.fixType===`ai`?(0,Y.jsx)(gt,{tooltip:g.description,openPrompt:()=>y(!1),applyAutofix:()=>y(!0),openChat:x}):(0,Y.jsx)(L,{content:g.description,align:`start`,children:(0,Y.jsxs)(R,{size:`xs`,variant:`outline`,className:`font-normal`,onClick:()=>y(!1),children:[(0,Y.jsx)(he,{className:`h-3 w-3 mr-2`}),g.title]})}),t[16]=g.description,t[17]=g.fixType,t[18]=g.title,t[19]=y,t[20]=x,t[21]=C):C=t[21];let w;return t[22]!==S||t[23]!==C?(w=(0,Y.jsx)(`div`,{className:S,children:C}),t[22]=S,t[23]=C,t[24]=w):w=t[24],w},mt={autofix:{Icon:he,title:`Inline AI Fix`,description:`Apply AI fixes inline in the cell`},chat:{Icon:pe,title:`Fix with AI assistant`,description:`Open the AI sidebar to fix`},prompt:{Icon:x,title:`Suggest a prompt`,description:`Edit the prompt before applying`}},ht=[`autofix`,`prompt`,`chat`],gt=e=>{let t=(0,W.c)(18),{tooltip:n,openPrompt:r,applyAutofix:i,openChat:a}=e,{fixMode:o,setFixMode:s}=ft(),c=r;o===`chat`?c=a:o===`autofix`&&(c=i);let{Icon:l,title:u}=mt[o],d;t[0]===l?d=t[1]:(d=(0,Y.jsx)(l,{className:`h-3 w-3 mr-2 mb-0.5`}),t[0]=l,t[1]=d);let f;t[2]!==c||t[3]!==d||t[4]!==u?(f=(0,Y.jsxs)(R,{size:`xs`,variant:`outline`,className:`font-normal rounded-r-none border-r-0`,onClick:c,children:[d,u]}),t[2]=c,t[3]=d,t[4]=u,t[5]=f):f=t[5];let p;t[6]!==f||t[7]!==n?(p=(0,Y.jsx)(L,{content:n,align:`start`,children:f}),t[6]=f,t[7]=n,t[8]=p):p=t[8];let m;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(m=(0,Y.jsx)(oe,{asChild:!0,children:(0,Y.jsx)(R,{size:`xs`,variant:`outline`,className:`rounded-l-none px-2`,"aria-label":`Fix options`,children:(0,Y.jsx)(de,{className:`h-3 w-3`})})}),t[9]=m):m=t[9];let h;t[10]!==o||t[11]!==s?(h=ht.map(e=>(0,Y.jsx)(ae,{className:`flex items-center gap-2`,onClick:()=>s(e),children:(0,Y.jsx)(_t,{mode:e,selected:e===o})},e)),t[10]=o,t[11]=s,t[12]=h):h=t[12];let g;t[13]===h?g=t[14]:(g=(0,Y.jsxs)(ce,{children:[m,(0,Y.jsx)(se,{align:`end`,className:`w-56`,children:h})]}),t[13]=h,t[14]=g);let _;return t[15]!==p||t[16]!==g?(_=(0,Y.jsxs)(`div`,{className:`flex`,children:[p,g]}),t[15]=p,t[16]=g,t[17]=_):_=t[17],_},_t=e=>{let t=(0,W.c)(15),{mode:n,selected:r}=e,{Icon:i,title:a,description:o}=mt[n],s;t[0]===i?s=t[1]:(s=(0,Y.jsx)(i,{className:`h-4 w-4 shrink-0`}),t[0]=i,t[1]=s);let c;t[2]===a?c=t[3]:(c=(0,Y.jsx)(`span`,{className:`font-medium`,children:a}),t[2]=a,t[3]=c);let l;t[4]===o?l=t[5]:(l=(0,Y.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:o}),t[4]=o,t[5]=l);let u;t[6]!==c||t[7]!==l?(u=(0,Y.jsxs)(`div`,{className:`flex flex-col`,children:[c,l]}),t[6]=c,t[7]=l,t[8]=u):u=t[8];let d;t[9]===r?d=t[10]:(d=r&&(0,Y.jsx)(ue,{className:`h-4 w-4 ml-auto shrink-0`}),t[9]=r,t[10]=d);let f;return t[11]!==s||t[12]!==u||t[13]!==d?(f=(0,Y.jsxs)(`div`,{className:`flex items-center gap-2 w-full`,children:[s,u,d]}),t[11]=s,t[12]=u,t[13]=d,t[14]=f):f=t[14],f},vt=e=>{let t=(0,W.c)(12),{local:n}=e,r;t[0]===n.name?r=t[1]:(r=(0,Y.jsx)(`span`,{className:`font-code`,children:n.name}),t[0]=n.name,t[1]=r);let i;t[2]===n.cellId?i=t[3]:(i=(0,Y.jsx)(V,{cellId:n.cellId}),t[2]=n.cellId,t[3]=i);let a;t[4]!==r||t[5]!==i?(a=(0,Y.jsxs)(`div`,{className:`max-w-xs`,children:[`Local variable `,r,` in cell`,` `,i,`.`]}),t[4]=r,t[5]=i,t[6]=a):a=t[6];let o=a,s;t[7]===n.name?s=t[8]:(s=(0,Y.jsx)(`span`,{className:`font-code cursor-help`,children:n.name}),t[7]=n.name,t[8]=s);let c;return t[9]!==s||t[10]!==o?(c=(0,Y.jsx)(L,{content:o,children:s}),t[9]=s,t[10]=o,t[11]=c):c=t[11],c},yt=e=>{let t=(0,W.c)(4),{segments:n}=e,r;t[0]===n?r=t[1]:(r=n.map(bt),t[0]=n,t[1]=r);let i;return t[2]===r?i=t[3]:(i=(0,Y.jsx)(Y.Fragment,{children:r}),t[2]=r,t[3]=i),i};function bt(e,t){return typeof e==`string`?(0,Y.jsx)(`span`,{children:e},t):(0,Y.jsx)(vt,{local:e},t)}var xt=r(null),St=r(e=>{let t=e(xt);return(t?e(t.attachmentsAtom):[]).filter(e=>e.kind===`agent`)});function Ct(e){return e.name||`Agent`}function Z(e){let t=e.variant===`danger`?5e3:3e3,{dismiss:n}=_e({...e,duration:t});window.setTimeout(n,t)}function wt({getContent:e}){let t=i(ee)?.hostEnabled,n=i(St),r=i(F),[a,o]=(0,U.useState)(!1);return t?(0,Y.jsxs)(R,{size:`xs`,variant:`outline`,disabled:a||n.length===0||!r,onClick:async()=>{if(!(a||n.length===0||!r)){o(!0);try{await N.post(`/pair/notebooks/${encodeURIComponent(r)}/messages`,e()),Z({title:`Sent to ${n.map(Ct).join(`, `)}`})}catch(e){Z({variant:`danger`,title:e instanceof Te&&e.status===409?`No agent attached`:`Could not send error`,description:we(e)})}finally{o(!1)}}},children:[(0,Y.jsx)(Me,{className:`h-3 w-3 mr-2`}),`Send error to agent`]}):null}var Tt=new p,Et=e=>{let t=RegExp(`\x1B\\[[0-9;]*m`,`g`);return e.replaceAll(t,``)},Dt=/(pip\s+install|uv\s+add|uv\s+pip\s+install)\s+/gi;function Ot(e){Dt.lastIndex=0;let t=Dt.exec(e);if(!t)return null;let n=t.index+t[0].length,r=e.slice(n).split(/\s+/),i=``,a=0;for(let e of r){let t=e.trim();if(!t)continue;if(t.startsWith(`-`)){a+=t.length+1;continue}let n=t.match(/^[\w,.[\]-]+/);if(n){i=n[0];break}break}if(!i)return null;let o=n+a+i.length;return{package:i,endIndex:o}}function Q(e,t=``){if(!e)return null;if(!/https?:\/\//.test(e))return e;let n=l(e);return n.length===1&&n[0].type===`text`?e:(0,Y.jsx)(Y.Fragment,{children:n.map((e,n)=>{let r=t?`${t}-${n}`:n;if(e.type===`url`){let t=Et(e.url);return(0,Y.jsx)(`a`,{href:t,target:`_blank`,rel:`noopener noreferrer`,onClick:le.stopPropagation(),className:`text-link hover:underline`,children:t},r)}if(e.type===`image`){let t=Et(e.url);return(0,Y.jsx)(`a`,{href:t,target:`_blank`,rel:`noopener noreferrer`,onClick:le.stopPropagation(),className:`text-link hover:underline`,children:t},r)}return(0,Y.jsx)(U.Fragment,{children:e.value},r)})})}var kt=e=>{let t=(0,W.c)(6),{packages:n,children:r}=e,{handleInstallPackages:i}=Se(),a;t[0]!==i||t[1]!==n?(a=e=>{i(n),e.preventDefault()},t[0]=i,t[1]=n,t[2]=a):a=t[2];let o;return t[3]!==r||t[4]!==a?(o=(0,Y.jsx)(`button`,{onClick:a,className:`text-link hover:underline`,type:`button`,children:r}),t[3]=r,t[4]=a,t[5]=o):o=t[5],o},At=e=>{if(!(e instanceof y.Text))return;let t=Et(e.data);if(!/(pip\s+install|uv\s+add|uv\s+pip\s+install)/i.test(t))return;let n=[],r=/(pip\s+install|uv\s+add|uv\s+pip\s+install)\s+/gi,i;for(;(i=r.exec(t))!==null;){let e=i.index,r=Ot(t.slice(e));r&&n.push({match:i,result:r})}if(n.length===0)return;let a=[],o=0;if(n.forEach((e,n)=>{let{match:r,result:i}=e,s=r.index,c=s+i.endIndex;if(o<s){let e=t.slice(o,s);a.push((0,Y.jsx)(U.Fragment,{children:Q(e,`before-${n}`)},`before-${n}`))}let l=t.slice(s,c);a.push((0,Y.jsx)(kt,{packages:[i.package],children:l},`install-${n}`)),o=c}),o<t.length){let e=t.slice(o);a.push((0,Y.jsx)(U.Fragment,{children:Q(e,`after`)},`after`))}return(0,Y.jsx)(Y.Fragment,{children:a})},jt=e=>{if(!(e instanceof y.Text))return;let t=e.data;if(!/https?:\/\//.test(t))return;let n=Q(t);if(typeof n!=`string`)return(0,Y.jsx)(Y.Fragment,{children:n})},Mt=(...e)=>t=>{for(let n of e){let e=n(t);if(e!==void 0)return e}},Nt=(e,t)=>{let n=Tt.ansi_to_html(e),r=f(n,{replace:e=>t(e)});return(0,Y.jsx)(`span`,{children:r})},Pt=e=>{let t=(0,W.c)(2),{text:n}=e,r;return t[0]===n?r=t[1]:(r=Nt(n,Mt(At,jt)),t[0]=n,t[1]=r),r},Ft=e=>{let t=(0,W.c)(16),{traceback:n}=e,[r,i]=(0,U.useState)(!0),a;t[0]===r?a=t[1]:(a=()=>i(!r),t[0]=r,t[1]=a);let o=r?`Collapse traceback`:`Expand traceback`,s;t[2]===r?s=t[3]:(s=r?(0,Y.jsx)(de,{className:`h-3 w-3`}):(0,Y.jsx)(fe,{className:`h-3 w-3`}),t[2]=r,t[3]=s);let c;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,Y.jsx)(`span`,{className:`text-[0.6875rem] uppercase tracking-wider`,children:`Traceback`}),t[4]=c):c=t[4];let l;t[5]!==r||t[6]!==a||t[7]!==o||t[8]!==s?(l=(0,Y.jsxs)(`button`,{type:`button`,onClick:a,"aria-expanded":r,"aria-label":o,className:`flex items-center gap-1 text-muted-foreground/70 hover:text-muted-foreground transition-colors`,children:[s,c]}),t[5]=r,t[6]=a,t[7]=o,t[8]=s,t[9]=l):l=t[9];let u;t[10]!==r||t[11]!==n?(u=r&&(0,Y.jsx)(`div`,{className:`font-code text-sm mt-1 p-3 bg-muted rounded border overflow-auto max-h-[50vh] cursor-text select-text`,children:xe({html:n})}),t[10]=r,t[11]=n,t[12]=u):u=t[12];let d;return t[13]!==l||t[14]!==u?(d=(0,Y.jsxs)(`div`,{className:`mt-2`,children:[l,u]}),t[13]=l,t[14]=u,t[15]=d):d=t[15],d},$=e=>{let t=(0,W.c)(10),n=e.title??`Tip`,r;t[0]===n?r=t[1]:(r=(0,Y.jsx)(M,{className:`pt-2 pb-0 font-normal`,children:n}),t[0]=n,t[1]=r);let i;t[2]===e.children?i=t[3]:(i=(0,Y.jsx)(j,{className:`mr-24 text-[0.84375rem]`,wrapperClassName:`pt-0 pb-2`,children:e.children}),t[2]=e.children,t[3]=i);let a;t[4]!==r||t[5]!==i?(a=(0,Y.jsxs)(A,{value:`item-1`,className:`text-muted-foreground`,children:[r,i]}),t[4]=r,t[5]=i,t[6]=a):a=t[6];let o;return t[7]!==e.className||t[8]!==a?(o=(0,Y.jsx)(te,{type:`single`,collapsible:!0,className:e.className,children:a}),t[7]=e.className,t[8]=a,t[9]=o):o=t[9],o},It=e=>{let t=(0,W.c)(44),{errors:n,cellId:r,code:a,className:o}=e,s=d(),c=i(E).display.cell_output===`above`,l=i(ne).mode!==`edit`,u=`This cell wasn't run because it has errors`,f=`destructive`,p=`text-error`,m=null;if(n.some(Lt))u=`Interrupted`;else if(n.some(Rt))u=`An internal error occurred`;else if(n.some(zt))u=`Ancestor prevented from running`,f=`default`,p=`text-secondary-foreground`;else if(n.some(Bt))u=`Ancestor stopped`,f=`default`,p=`text-secondary-foreground`;else if(n.some(Vt))u=`SQL error`;else if(n.some(Ht))u=null,m=`Cell not run`;else{let e;t[0]===n?e=t[1]:(e=n.find(Ut),t[0]=n,t[1]=e);let r=e;r&&`exception_type`in r&&(u=r.exception_type)}let h,_,v,y,x,S;if(t[2]!==f||t[3]!==r||t[4]!==s||t[5]!==o||t[6]!==n||t[7]!==c||t[8]!==l||t[9]!==m||t[10]!==p||t[11]!==u){let e=n.filter(Wt),i=n.filter(Gt),a=n.filter(Kt),d=n.filter(qt),C=n.filter(Jt),w=n.filter(Yt),T=n.filter(Xt),E=n.filter(Zt),D=n.filter(Qt),O=n.filter($t),k=n.filter(en),A=n.filter(tn),j=n.filter(nn),M;t[18]===s?M=t[19]:(M=()=>{s.openApplication(`scratchpad`)},t[18]=s,t[19]=M);let ee=M,te=()=>{let t=[];if(k.length>0||A.length>0){let e=k.some(rn),n=!e&&k.some(an);t.push((0,Y.jsxs)(`div`,{children:[k.map(on),A.map(sn),e&&(0,Y.jsxs)(R,{size:`xs`,variant:`outline`,className:`mt-2 font-normal`,onClick:()=>Ce(s),children:[(0,Y.jsx)(me,{className:`h-3.5 w-3.5 mr-1.5 mb-0.5`}),(0,Y.jsx)(`span`,{children:`Open package manager`})]}),n&&(0,Y.jsxs)(R,{size:`xs`,variant:`outline`,className:`mt-2 font-normal`,onClick:()=>s.openApplication(`terminal`),children:[(0,Y.jsx)(Ne,{className:`h-3.5 w-3.5 mr-1.5`}),(0,Y.jsx)(`span`,{children:`Open terminal`})]}),r&&(0,Y.jsx)(X,{errors:[...k,...A],cellId:r})]},`syntax-unknown`))}if(e.length>0&&t.push((0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(`p`,{className:`text-muted-foreground font-medium`,children:`The setup cell cannot be run because it has references.`}),(0,Y.jsx)(`ul`,{className:`list-disc`,children:e.flatMap(cn)}),r&&(0,Y.jsx)(X,{errors:e,cellId:r}),(0,Y.jsxs)($,{title:`Why can't the setup cell have references?`,className:`mb-2`,children:[(0,Y.jsx)(`p`,{className:`pb-2`,children:`The setup cell contains logic that must be run before any other cell runs, including top-level imports used by top-level functions. For this reason, it can't refer to other cells' variables.`}),(0,Y.jsx)(`p`,{className:`py-2`,children:`Try simplifying the setup cell to only contain only necessary variables.`}),(0,Y.jsxs)(`p`,{className:`py-2`,children:[(0,Y.jsxs)(B,{href:`https://links.marimo.app/errors-setup`,children:[`Learn more at our docs`,` `,(0,Y.jsx)(H,{size:`0.75rem`,className:`inline`})]}),`.`]})]})]},`setup-refs`)),i.length>0&&t.push((0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(`p`,{className:`text-muted-foreground font-medium`,children:`This cell is in a cycle.`}),(0,Y.jsx)(`ul`,{className:`list-disc`,children:i.flatMap(ln)}),r&&(0,Y.jsx)(X,{errors:i,cellId:r}),(0,Y.jsxs)($,{title:`What are cycles and how do I resolve them?`,className:`mb-2`,children:[(0,Y.jsx)(`p`,{className:`pb-2`,children:`An example of a cycle is if one cell declares a variable 'a' and reads 'b', and another cell declares 'b' and and reads 'a'. Cycles like this make it impossible for marimo to know how to run your cells, and generally suggest that your code has a bug.`}),(0,Y.jsx)(`p`,{className:`py-2`,children:`Try merging these cells into a single cell to eliminate the cycle.`}),(0,Y.jsxs)(`p`,{className:`py-2`,children:[(0,Y.jsxs)(B,{href:`https://links.marimo.app/errors-cycles`,children:[`Learn more at our docs`,` `,(0,Y.jsx)(H,{size:`0.75rem`,className:`inline`})]}),`.`]})]})]},`cycle`)),a.length>0){let e=a[0].name;t.push((0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(`p`,{className:`text-muted-foreground font-medium`,children:`This cell redefines variables from other cells.`}),a.map(dn),r&&(0,Y.jsx)(X,{errors:a,cellId:r}),(0,Y.jsxs)($,{title:`Why can't I redefine variables?`,children:[(0,Y.jsx)(`p`,{className:`pb-2`,children:`marimo requires that each variable is defined in just one cell. This constraint enables reactive and reproducible execution, arbitrary cell reordering, seamless UI elements, execution as a script, and more.`}),(0,Y.jsxs)(`p`,{className:`py-2`,children:[`Try merging this cell with the mentioned cells or wrapping it in a function. Alternatively, prefix variables with an underscore (e.g., `,(0,Y.jsxs)(Ee,{className:`inline`,children:[`_`,e]}),`). to make them private to this cell.`]}),(0,Y.jsxs)(`p`,{className:`py-2`,children:[(0,Y.jsxs)(B,{href:`https://links.marimo.app/errors-multiple-definitions`,children:[`Learn more at our docs`,` `,(0,Y.jsx)(H,{size:`0.75rem`,className:`inline`})]}),`.`]})]}),(0,Y.jsx)($,{title:`Need a scratchpad?`,children:(0,Y.jsxs)(`div`,{className:`flex flex-row gap-2 items-center`,children:[(0,Y.jsxs)(R,{size:`xs`,variant:`link`,className:`my-2 font-normal mx-0 px-0`,onClick:ee,children:[(0,Y.jsx)(g,{className:`h-3`}),(0,Y.jsx)(`span`,{children:`Try the scratchpad`})]}),(0,Y.jsx)(`span`,{children:`to experiment without restrictions on variable names.`})]})})]},`multiple-defs`))}return d.length>0&&t.push((0,Y.jsxs)(`div`,{children:[d.map(fn),r&&(0,Y.jsx)(X,{errors:d,cellId:r}),(0,Y.jsxs)($,{title:"Why can't I use `import *`?",children:[(0,Y.jsx)(`p`,{className:`pb-2`,children:`Star imports are incompatible with marimo's git-friendly file format and reproducible reactive execution.`}),(0,Y.jsx)(`p`,{className:`py-2`,children:"marimo's Python file format stores code in functions, so notebooks can be imported as regular Python modules without executing all their code. But Python disallows `import *` everywhere except at the top-level of a module."}),(0,Y.jsx)(`p`,{className:`py-2`,children:`Star imports would also silently add names to globals, which would be incompatible with reactive execution.`}),(0,Y.jsxs)(`p`,{className:`py-2`,children:[(0,Y.jsxs)(B,{href:`https://links.marimo.app/errors-import-star`,children:[`Learn more at our docs`,` `,(0,Y.jsx)(H,{size:`0.75rem`,className:`inline`})]}),`.`]})]})]},`import-star`)),C.length>0&&t.push((0,Y.jsxs)(`div`,{children:[C.map(pn),r&&(0,Y.jsx)(X,{errors:C,cellId:r})]},`interruption`)),w.length>0&&t.push((0,Y.jsxs)(`ul`,{children:[w.map((e,t)=>{if(e.exception_type===`NameError`&&e.msg.startsWith(`name 'mo'`))return(0,Y.jsx)(`li`,{className:`my-2`,children:(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(`p`,{className:`text-muted-foreground`,children:`name 'mo' is not defined.`}),(0,Y.jsxs)(`p`,{className:`text-muted-foreground mt-2`,children:[`The marimo module (imported as`,` `,(0,Y.jsx)(Ee,{className:`inline`,children:`mo`}),`) is required for Markdown, SQL, and UI elements.`]})]})},`exception-${t}`);if(e.exception_type===`NameError`&&e.msg.startsWith(`name '_`)){let n=ze(e.msg);return(0,Y.jsx)(`li`,{className:`my-2`,children:(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(`p`,{className:`text-muted-foreground`,children:(0,Y.jsx)(yt,{segments:n})}),(0,Y.jsxs)(`p`,{className:`text-muted-foreground mt-2`,children:[`Variables prefixed with an underscore are local to a cell`,` `,`(`,(0,Y.jsxs)(B,{href:`https://links.marimo.app/local-variables`,children:[`docs`,` `,(0,Y.jsx)(H,{size:`0.75rem`,className:`inline`})]}),`).`]}),c&&(0,Y.jsx)(`div`,{className:`text-muted-foreground mt-2`,children:`See the console area for a traceback.`})]})},`exception-${t}`)}return(0,Y.jsx)(`li`,{className:`my-2`,children:e.raising_cell==null?(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(`p`,{className:`text-muted-foreground`,children:Q(e.msg,`exception-${t}`)}),l&&`traceback`in e&&e.traceback?(0,Y.jsx)(Ft,{traceback:e.traceback}):c&&(0,Y.jsx)(`div`,{className:`text-muted-foreground mt-2`,children:`See the console area for a traceback.`})]}):(0,Y.jsxs)(`div`,{children:[Q(e.msg,`exception-${t}`),(0,Y.jsx)(V,{cellId:e.raising_cell}),l&&`traceback`in e&&e.traceback&&(0,Y.jsx)(Ft,{traceback:e.traceback})]})},`exception-${t}`)}),w.some(mn)&&(0,Y.jsx)($,{children:`Fix the error in the mentioned cells, or handle the exceptions with try/except blocks.`}),r&&(0,Y.jsx)(X,{errors:w,cellId:r})]},`exception`)),T.length>0&&t.push((0,Y.jsxs)(`ul`,{children:[T.map(hn),r&&(0,Y.jsx)(X,{errors:T,cellId:r}),(0,Y.jsx)($,{children:T.some(gn)?`Ensure that the referenced cells define the required variables, or turn off strict execution.`:`Something is wrong with your declarations. Fix any discrepancies, or turn off strict execution.`})]},`strict-exception`)),E.length>0&&t.push((0,Y.jsxs)(`div`,{children:[E.map(_n),r&&(0,Y.jsx)(X,{errors:E,cellId:r})]},`internal`)),D.length>0&&t.push((0,Y.jsxs)(`div`,{children:[D.map(vn),r&&(0,Y.jsx)(X,{errors:D,cellId:r})]},`ancestor-prevented`)),O.length>0&&t.push((0,Y.jsxs)(`div`,{children:[O.map(yn),r&&(0,Y.jsx)(X,{errors:O,cellId:r})]},`ancestor-stopped`)),j.length>0&&t.push((0,Y.jsxs)(`div`,{children:[j.map(bn),r&&(0,Y.jsx)(X,{errors:j,cellId:r,className:`mt-2.5`})]},`sql-errors`)),t},N;t[20]===m?N=t[21]:(N=m&&(0,Y.jsxs)(`div`,{className:`flex items-center gap-1 font-code text-[0.6875rem] uppercase tracking-wider text-muted-foreground/70`,children:[m,(0,Y.jsx)(L,{content:`marimo didn't run this cell because it detected an error.`,delayDuration:200,children:(0,Y.jsx)(b,{className:`size-3 cursor-help`})})]}),t[20]=m,t[21]=N);let P;t[22]!==p||t[23]!==u?(P=u&&(0,Y.jsx)(Oe,{className:`font-code font-medium ${p}`,children:u}),t[22]=p,t[23]=u,t[24]=P):P=t[24];let F;t[25]!==N||t[26]!==P?(F=(0,Y.jsxs)(`div`,{className:`space-y-0.5`,children:[N,P]}),t[25]=N,t[26]=P,t[27]=F):F=t[27];let ne=F;h=ke,y=f,t[28]===o?x=t[29]:(x=re(`border-none font-code text-sm text-[0.84375rem] p-0 text-muted-foreground normal has-[svg]:pl-0 space-y-2`,o),t[28]=o,t[29]=x),S=ne,_=`flex flex-col gap-4`,v=te(),t[2]=f,t[3]=r,t[4]=s,t[5]=o,t[6]=n,t[7]=c,t[8]=l,t[9]=m,t[10]=p,t[11]=u,t[12]=h,t[13]=_,t[14]=v,t[15]=y,t[16]=x,t[17]=S}else h=t[12],_=t[13],v=t[14],y=t[15],x=t[16],S=t[17];let C;t[30]!==_||t[31]!==v?(C=(0,Y.jsx)(`div`,{className:_,children:v}),t[30]=_,t[31]=v,t[32]=C):C=t[32];let w;t[33]!==r||t[34]!==a||t[35]!==n?(w=r&&n.length>0&&(0,Y.jsx)(wt,{getContent:()=>Fe(r,{code:a,errors:n})}),t[33]=r,t[34]=a,t[35]=n,t[36]=w):w=t[36];let T;return t[37]!==h||t[38]!==y||t[39]!==x||t[40]!==S||t[41]!==C||t[42]!==w?(T=(0,Y.jsxs)(h,{variant:y,className:x,children:[S,C,w]}),t[37]=h,t[38]=y,t[39]=x,t[40]=S,t[41]=C,t[42]=w,t[43]=T):T=t[43],T};function Lt(e){return e.type===`interruption`}function Rt(e){return e.type===`internal`}function zt(e){return e.type===`ancestor-prevented`}function Bt(e){return e.type===`ancestor-stopped`}function Vt(e){return e.type===`sql-error`}function Ht(e){return e.type===`multiple-defs`||e.type===`cycle`||e.type===`setup-refs`||e.type===`import-star`}function Ut(e){return e.type===`exception`}function Wt(e){return e.type===`setup-refs`}function Gt(e){return e.type===`cycle`}function Kt(e){return e.type===`multiple-defs`}function qt(e){return e.type===`import-star`}function Jt(e){return e.type===`interruption`}function Yt(e){return e.type===`exception`}function Xt(e){return e.type===`strict-exception`}function Zt(e){return e.type===`internal`}function Qt(e){return e.type===`ancestor-prevented`}function $t(e){return e.type===`ancestor-stopped`}function en(e){return e.type===`syntax`}function tn(e){return e.type===`unknown`}function nn(e){return e.type===`sql-error`}function rn(e){return e.msg.includes(`!pip`)}function an(e){return e.msg.includes(`use os.subprocess`)}function on(e,t){return(0,Y.jsx)(`pre`,{children:Q(e.msg,`syntax-${t}`)},`syntax-${t}`)}function sn(e,t){return(0,Y.jsx)(`pre`,{children:Q(e.msg,`unknown-${t}`)},`unknown-${t}`)}function cn(e,t){return e.edges_with_vars.map((e,n)=>(0,Y.jsxs)(`li`,{className:`my-0.5 ml-8 text-muted-foreground/40`,children:[(0,Y.jsx)(V,{cellId:e[0]}),(0,Y.jsxs)(`span`,{className:`text-muted-foreground`,children:[`: `,` `,e[1].length===1?e[1][0]:e[1].join(`, `)]})]},`setup-refs-${t}-${n}`))}function ln(e,t){return e.edges_with_vars.map((e,n)=>(0,Y.jsxs)(`li`,{className:`my-0.5 ml-8 text-muted-foreground/40`,children:[(0,Y.jsx)(V,{cellId:e[0]}),(0,Y.jsxs)(`span`,{className:`text-muted-foreground`,children:[` -> `,e[1].length===1?e[1][0]:e[1].join(`, `),` -> `]}),(0,Y.jsx)(V,{cellId:e[2]})]},`cycle-${t}-${n}`))}function un(e,t){return(0,Y.jsx)(`li`,{className:`my-0.5 ml-8 text-muted-foreground/40`,children:(0,Y.jsx)(V,{cellId:e})},`cell-${t}`)}function dn(e,t){return(0,Y.jsxs)(U.Fragment,{children:[(0,Y.jsx)(`p`,{className:`text-muted-foreground mt-2`,children:`'${e.name}' was also defined by:`}),(0,Y.jsx)(`ul`,{className:`list-disc`,children:e.cells.map(un)})]},`multiple-defs-${t}`)}function fn(e,t){return(0,Y.jsx)(`p`,{className:`text-muted-foreground`,children:e.msg},`import-star-${t}`)}function pn(e,t){return(0,Y.jsx)(`p`,{children:`This cell was interrupted and needs to be re-run.`},`interruption-${t}`)}function mn(e){return e.raising_cell!=null}function hn(e,t){return(0,Y.jsx)(`li`,{className:`my-2`,children:e.blamed_cell==null?(0,Y.jsx)(`p`,{children:e.msg}):(0,Y.jsxs)(`div`,{children:[e.msg,(0,Y.jsx)(V,{cellId:e.blamed_cell})]})},`strict-exception-${t}`)}function gn(e){return e.blamed_cell!=null}function _n(e,t){return(0,Y.jsx)(`p`,{children:e.msg},`internal-${t}`)}function vn(e,t){return(0,Y.jsxs)(`div`,{children:[e.msg,e.blamed_cell==null?(0,Y.jsxs)(`span`,{children:[`(`,(0,Y.jsx)(V,{cellId:e.raising_cell}),`)`]}):(0,Y.jsxs)(`span`,{children:[`(`,(0,Y.jsx)(V,{cellId:e.raising_cell}),`\xA0blames\xA0`,(0,Y.jsx)(V,{cellId:e.blamed_cell}),`)`]})]},`ancestor-prevented-${t}`)}function yn(e,t){return(0,Y.jsxs)(`div`,{children:[e.msg,(0,Y.jsx)(V,{cellId:e.raising_cell})]},`ancestor-stopped-${t}`)}function bn(e,t){return(0,Y.jsx)(`div`,{className:`space-y-2 mt-2`,children:(0,Y.jsx)(`p`,{className:`text-muted-foreground whitespace-pre-wrap`,children:e.msg})},`sql-error-${t}`)}export{Qe as C,Fe as D,ze as E,Ne as O,$e as S,Be as T,rt as _,St as a,Xe as b,yt as c,lt as d,ot as f,tt as g,it as h,Z as i,gt as l,q as m,Pt as n,Ct as o,Ye as p,wt as r,xt as s,It as t,pt as u,nt as v,Ze as w,Ke as x,et as y};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{f as t,l as n,r}from"./useEvent-
|
|
1
|
+
import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{f as t,l as n,r}from"./useEvent-BDjgaBtz.js";import{t as i}from"./react-DVplv7_D.js";import{Mr as a,Oa as o,Vr as s,ka as c,m as l,ut as u}from"./cells-D_11MjVB.js";import{t as d}from"./compiler-runtime-BrajqUja.js";import{s as f}from"./config-DpY86_Yq.js";import{g as p}from"./useEventListener-CjDeLqFC.js";import{d as m}from"./session-CMLIzZKw.js";import{t as h}from"./jsx-runtime-B74pBk57.js";import{t as g}from"./tooltip-CkGm8X7m.js";import{L as _}from"./input-DmHMEZGh.js";import{t as v}from"./copy-icon-8-a5vovc.js";import{r as y}from"./useDebounce-DwTQ_1Pu.js";import{t as b}from"./useRunCells-ByaWxoIt.js";var x=d(),S=e(i(),1),C=h(),w=e=>{let t=(0,x.c)(16),n,r,i;t[0]===e?(n=t[1],r=t[2],i=t[3]):({href:r,children:n,...i}=e,t[0]=e,t[1]=n,t[2]=r,t[3]=i);let a=(0,S.useRef)(null),o;t[4]===r?o=t[5]:(o=()=>{let e=new URL(globalThis.location.href);e.hash=r,globalThis.history.pushState({},``,e.toString()),globalThis.dispatchEvent(new HashChangeEvent(`hashchange`));let t=r.slice(1),n=document.getElementById(t);n&&n.scrollIntoView({behavior:`smooth`,block:`start`})},t[4]=r,t[5]=o);let s=o,c;t[6]===s?c=t[7]:(c={onPress:()=>{s()}},t[6]=s,t[7]=c);let{pressProps:l}=_(c),u;t[8]===s?u=t[9]:(u=e=>{e.preventDefault(),s()},t[8]=s,t[9]=u);let d=u,f;return t[10]!==n||t[11]!==d||t[12]!==r||t[13]!==l||t[14]!==i?(f=(0,C.jsx)(`a`,{ref:a,href:r,...l,onClick:d,...i,children:n}),t[10]=n,t[11]=d,t[12]=r,t[13]=l,t[14]=i,t[15]=f):f=t[15],f};async function T(e){let t=l().inOrderIds.at(0);if(t)try{let n=await a.request({document:e,cellId:t});if(!n||n.options.length===0)return;let i=e.split(`.`).pop()??e,o=n.options[0],c=n.options.find(e=>e.name===i)??o;c?.completion_info&&r.set(s,{documentation:c.completion_info})}catch(t){p.debug(`Doc lookup failed for "${e}"`,t)}}var E=e=>{let t=(0,x.c)(8),{qualifiedName:n,children:r}=e,i;t[0]===n?i=t[1]:(i=()=>{T(n)},t[0]=n,t[1]=i);let a=y(i,100),o;t[2]===a?o=t[3]:(o=()=>a.cancel(),t[2]=a,t[3]=o);let s;return t[4]!==r||t[5]!==a||t[6]!==o?(s=(0,C.jsx)(`span`,{onMouseEnter:a,onMouseLeave:o,children:r}),t[4]=r,t[5]=a,t[6]=o,t[7]=s):s=t[7],s};function D(e){if(typeof e!=`object`||!e)return!1;let t=e;return!(t.trusted!==!0||t.notebookCode!==void 0&&typeof t.notebookCode!=`string`)}function O(){let e=window?.__MARIMO_EXPORT_CONTEXT__;return D(e)?e:void 0}function k(){return O()?.trusted===!0}function A(){if(r.get(b)||k()||r.get(f))return!0;try{if(m()===`read`)return!0}catch{}return!1}var j=t(e=>{let t=e(b),n=e(f);if(t||n||k())return!1;let r=!0;try{r=m()===`read`}catch{return!0}return!r});function M(){return n(j)}var N=[],P=e=>{if(e instanceof c.Element&&!/^[A-Za-z][\w-]*$/.test(e.name))return S.createElement(S.Fragment)},F=(e,t)=>{if(t instanceof c.Element&&t.name===`body`){if((0,S.isValidElement)(e)&&`props`in e){let t=e.props.children;return(0,C.jsx)(C.Fragment,{children:t})}return}},I=(e,t)=>{if(t instanceof c.Element&&t.name===`html`){if((0,S.isValidElement)(e)&&`props`in e){let t=e.props.children;return(0,C.jsx)(C.Fragment,{children:t})}return}},L=e=>{if(e instanceof c.Element&&e.attribs&&e.name===`iframe`){let t=document.createElement(`iframe`);return Object.entries(e.attribs).forEach(([e,n])=>{e.startsWith(`"`)&&e.endsWith(`"`)&&(e=e.slice(1,-1)),t.setAttribute(e,n)}),(0,C.jsx)(`div`,{dangerouslySetInnerHTML:{__html:t.outerHTML}})}},R=e=>{if(e instanceof c.Element&&e.name===`script`){let t=e.attribs.src;if(!t)return;if(!A())return p.warn(`[RenderHTML] refusing <script src> in untrusted context: ${t}`),(0,C.jsx)(C.Fragment,{});if(![...document.querySelectorAll(`script[src]`)].some(e=>e.getAttribute(`src`)===t)){let e=document.createElement(`script`);e.src=t,document.head.append(e)}return(0,C.jsx)(C.Fragment,{})}},z=(e,t)=>{if(t instanceof c.Element&&t.name===`a`){let n=t.attribs.href;if(n?.startsWith(`#`)&&!n.startsWith(`#code/`)){let r=null;return(0,S.isValidElement)(e)&&`props`in e&&(r=e.props.children),(0,C.jsx)(w,{href:n,...t.attribs,children:r})}}},B=(e,t,n)=>{if(t instanceof c.Element&&t.name===`div`&&t.attribs?.class?.includes(`codehilite`))return(0,C.jsx)(G,{children:e},n)},V=(e,t,n)=>{if(!(t instanceof c.Element)||t.name!==`img`)return;let r=t.attribs?.src;if(!(!r||!(0,S.isValidElement)(e))&&!/^data:/i.test(r))return(0,S.cloneElement)(e,{key:`${r}-${n}`})},H=(e,t,n)=>{if(!(t instanceof c.Element)||t.name!==`input`||t.attribs?.type!==`checkbox`||!(0,S.isValidElement)(e))return;let r=`checked`in t.attribs;return(0,S.cloneElement)(e,{key:`checkbox-${n}-${r}`})},U=(e,t)=>{if(t instanceof c.Element&&t.attribs?.[`data-marimo-doc`]){let n=t.attribs[`data-marimo-doc`];return(0,C.jsx)(E,{qualifiedName:n,children:e})}},W=(e,t)=>{if(t instanceof c.Element&&t.attribs?.[`data-tooltip`]){if((t.name?.toLowerCase()??``).startsWith(`marimo-`))return;let n=t.attribs[`data-tooltip`].replace(/^[\r\n]+|[\r\n]+$/g,``);return(0,C.jsx)(g,{content:n.includes(`
|
|
2
2
|
`)?(0,C.jsx)(`span`,{className:`whitespace-pre-wrap`,children:n.split(/\r?\n/).map((e,t)=>(0,C.jsxs)(S.Fragment,{children:[t>0&&(0,C.jsx)(`br`,{}),e]},t))}):n,children:e})}},G=e=>{let t=(0,x.c)(3),{children:n}=e,r=(0,S.useRef)(null),i;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,C.jsx)(`div`,{className:`absolute top-2 right-2 opacity-0 group-hover:opacity-100 transition-opacity`,children:(0,C.jsx)(v,{tooltip:!1,className:`p-1`,value:()=>{let e=r.current?.firstChild;return e&&e.textContent||``}})}),t[0]=i):i=t[0];let a;return t[1]===n?a=t[2]:(a=(0,C.jsxs)(`div`,{className:`relative group codehilite-wrapper`,ref:r,children:[n,i]}),t[1]=n,t[2]=a),a},K=({html:e,additionalReplacements:t=N,alwaysSanitizeHtml:n=!0})=>(0,C.jsx)(q,{html:e,alwaysSanitizeHtml:n,additionalReplacements:t}),q=e=>{let t=(0,x.c)(5),{html:n,additionalReplacements:r,alwaysSanitizeHtml:i}=e,a=r===void 0?N:r,o=M(),s;bb0:{if(i||o){let e;t[0]===n?e=t[1]:(e=u(n),t[0]=n,t[1]=e),s=e;break bb0}s=n}let c=s,l;return t[2]!==a||t[3]!==c?(l=J({html:c,additionalReplacements:a}),t[2]=a,t[3]=c,t[4]=l):l=t[4],l};function J({html:e,additionalReplacements:t=N}){let n=[P,L,R,...t],r=[B,z,U,W,F,I],i=[V,H];return o(e,{replace:(e,t)=>{for(let r of n){let n=r(e,t);if(n)return n}return e},transform:(e,t,n)=>{let a=e;for(let e of r){let r=e(a,t,n);if(r){a=r;break}}for(let e of i){let r=e(a,t,n);r&&(a=r)}return a}})}export{k as n,K as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{t}from"./react-DVplv7_D.js";import{t as n}from"./compiler-runtime-BrajqUja.js";import{_ as r}from"./useEventListener-CjDeLqFC.js";import{m as i,u as a}from"./config-CD1IuZFJ.js";import{n as o,t as s}from"./cn-ldLVeaqm.js";import{t as c}from"./jsx-runtime-B74pBk57.js";import{o as l}from"./switch-DYjBfpNJ.js";import{t as u}from"./tooltip-CkGm8X7m.js";import{r as d}from"./button-D8gVKwe-.js";import{t as f}from"./createLucideIcon-DfJ2oMlA.js";import{i as p}from"./useDeleteCell-BC-MW7d1.js";import{Et as m,Ft as h,Kt as g,Pt as _,St as v,Ut as y,V as b,wt as x,zt as S}from"./input-DmHMEZGh.js";import{t as C}from"./square-BPmgQFnh.js";import{r as w}from"./requests-BIFR-h4M.js";import{t as T}from"./I18nProvider-Cg2I_s1_.js";import{a as E}from"./renderShortcut-rUwGqKgC.js";import{t as D}from"./useDelayElapsed-BlsDT4TV.js";var O=f(`hard-drive-download`,[[`path`,{d:`M12 2v8`,key:`1q4o3n`}],[`path`,{d:`m16 6-4 4-4-4`,key:`6wukr`}],[`rect`,{width:`20`,height:`8`,x:`2`,y:`14`,rx:`2`,key:`w68u3i`}],[`path`,{d:`M6 18h.01`,key:`uhywen`}],[`path`,{d:`M10 18h.01`,key:`h775k`}]]),k=e(t(),1);function A(e,t){let{"aria-label":n,"aria-labelledby":r,orientation:i=`horizontal`}=e,[a,o]=(0,k.useState)(!1);g(()=>{o(!!(t.current&&t.current.parentElement?.closest(`[role="toolbar"]`)))});let{direction:s}=T(),c=s===`rtl`&&i===`horizontal`,u=l(t),d=e=>{if(v(e.currentTarget,m(e))){if(i===`horizontal`&&e.key===`ArrowRight`||i===`vertical`&&e.key===`ArrowDown`)c?u.focusPrevious():u.focusNext();else if(i===`horizontal`&&e.key===`ArrowLeft`||i===`vertical`&&e.key===`ArrowUp`)c?u.focusNext():u.focusPrevious();else if(e.key===`Tab`){f.current=x(),e.shiftKey?u.focusFirst():u.focusLast();return}else return;e.stopPropagation(),e.preventDefault()}},f=(0,k.useRef)(null),p=e=>{!v(e.currentTarget,e.relatedTarget)&&!f.current&&(f.current=m(e))},h=e=>{f.current&&!v(e.currentTarget,e.relatedTarget)&&v(t.current,m(e))&&(f.current?.focus(),f.current=null)};return{toolbarProps:{...b(e,{labelable:!0}),role:a?`group`:`toolbar`,"aria-orientation":i,"aria-label":n,"aria-labelledby":n==null?r:void 0,onKeyDownCapture:a?void 0:d,onFocusCapture:a?void 0:h,onBlurCapture:a?void 0:p}}}var j=(0,k.createContext)({}),M=(0,k.forwardRef)(function(e,t){[e,t]=_(e,t,j);let{toolbarProps:n}=A(e,t),r=h({...e,values:{orientation:e.orientation||`horizontal`},defaultClassName:`react-aria-Toolbar`}),i=b(e,{global:!0});return delete i.id,k.createElement(S.div,{...y(i,r,n),ref:t,slot:e.slot||void 0,"data-orientation":e.orientation||`horizontal`},r.children)}),N=n(),P=c(),F=200;function I(e){let t=D(e?F:0);return e&&t}var L=o(`rounded-full shadow-xs-solid border p-[5px] transition-colors focus:outline-hidden focus:ring-2 focus:ring-ring focus:ring-offset-2 [&>svg]:size-3 active:shadow-none bg-background`,{variants:{variant:{default:`hover:bg-accent hover:text-accent-foreground`,stale:`bg-(--yellow-3) hover:bg-(--yellow-4) text-(--yellow-11)`,green:`hover:bg-(--grass-2) hover:text-(--grass-11) hover:border-[var(--grass-7)],`,disabled:`opacity-50 cursor-not-allowed`,danger:`hover:bg-(--red-3) hover:text-(--red-11)`}},defaultVariants:{variant:`default`}}),R=e=>{let t=(0,N.c)(22),n,r,i,a,o,c,l,f,p;if(t[0]!==e){let{children:u,tooltip:m,disabled:h,variant:g,..._}=e;n=u,p=m;let v=h!==void 0&&h;r=`button`,i=v,a=_,o=e=>{!d.hasModifier(e)&&(e.key===`Enter`||e.key===` `)&&e.stopPropagation(),_.onKeyDown?.(e)},c=e=>{v||_.onClick?.(e)},l=d.preventFocus,f=s(L({variant:g}),_.className),t[0]=e,t[1]=n,t[2]=r,t[3]=i,t[4]=a,t[5]=o,t[6]=c,t[7]=l,t[8]=f,t[9]=p}else n=t[1],r=t[2],i=t[3],a=t[4],o=t[5],c=t[6],l=t[7],f=t[8],p=t[9];let m;t[10]!==n||t[11]!==r||t[12]!==i||t[13]!==a||t[14]!==o||t[15]!==c||t[16]!==l||t[17]!==f?(m=(0,P.jsx)(`button`,{type:r,disabled:i,...a,onKeyDown:o,onClick:c,onMouseDown:l,className:f,children:n}),t[10]=n,t[11]=r,t[12]=i,t[13]=a,t[14]=o,t[15]=c,t[16]=l,t[17]=f,t[18]=m):m=t[18];let h=m;if(p){let e;return t[19]!==h||t[20]!==p?(e=(0,P.jsx)(u,{content:p,side:`top`,delayDuration:200,usePortal:!1,children:h}),t[19]=h,t[20]=p,t[21]=e):e=t[21],e}return h},z=e=>{let t=(0,N.c)(5),{children:n,className:r}=e,i;t[0]===r?i=t[1]:(i=s(`flex items-center gap-1 bg-background m-[2px] rounded-full`,r),t[0]=r,t[1]=i);let a;return t[2]!==n||t[3]!==i?(a=(0,P.jsx)(M,{className:i,children:n}),t[2]=n,t[3]=i,t[4]=a):a=t[4],a},B=e=>{let t=(0,N.c)(9),{connectionState:n,status:a}=e,{sendInterrupt:o}=w(),s=I(a===`running`),c;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(c=E(`global.interrupt`),t[0]=c):c=t[0];let l;t[1]!==n||t[2]!==s?(l=i(n)||!s,t[1]=n,t[2]=s,t[3]=l):l=t[3];let u=s?o:r.NOOP,d=s?`stale`:`disabled`,f;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,P.jsx)(C,{strokeWidth:1.5}),t[4]=f):f=t[4];let p;return t[5]!==l||t[6]!==u||t[7]!==d?(p=(0,P.jsx)(R,{tooltip:c,disabled:l,onClick:u,variant:d,"data-testid":`run-button`,children:f}),t[5]=l,t[6]=u,t[7]=d,t[8]=p):p=t[8],p};function V({connectionState:e,needsRun:t,loading:n,inactive:r}){return i(e)?`disabled`:t&&!n?`stale`:n||r?`disabled`:`green`}var H=e=>{let t=(0,N.c)(27),{onClick:n,connectionState:r,needsRun:o,status:s,config:c,edited:l}=e,u=s===`disabled-transitively`,d=s===`running`||s===`queued`,f,m;t[0]!==u||t[1]!==c.disabled||t[2]!==r||t[3]!==l||t[4]!==d||t[5]!==o?(f=i(r)||d||!c.disabled&&u&&!l,m=V({connectionState:r,needsRun:o,loading:d,inactive:f}),t[0]=u,t[1]=c.disabled,t[2]=r,t[3]=l,t[4]=d,t[5]=o,t[6]=f,t[7]=m):(f=t[6],m=t[7]);let h=m;if(c.disabled){let e;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,P.jsx)(O,{}),t[8]=e):e=t[8];let r;return t[9]!==f||t[10]!==n||t[11]!==h?(r=(0,P.jsx)(R,{tooltip:`Add code to notebook`,disabled:f,onClick:n,variant:h,"data-testid":`run-button`,children:e}),t[9]=f,t[10]=n,t[11]=h,t[12]=r):r=t[12],r}if(!c.disabled&&u&&!l){let e;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,P.jsx)(p,{strokeWidth:1.2}),t[13]=e):e=t[13];let r;return t[14]!==f||t[15]!==n||t[16]!==h?(r=(0,P.jsx)(R,{disabled:f,tooltip:`This cell can't be run because it has a disabled ancestor`,onClick:n,variant:h,"data-testid":`run-button`,children:e}),t[14]=f,t[15]=n,t[16]=h,t[17]=r):r=t[17],r}let g;if(i(r)){let e;t[18]===r?e=t[19]:(e=a(r),t[18]=r,t[19]=e),g=e}else if(s===`queued`)g=`This cell is already queued to run`;else if(s===`running`)g=`This cell is already running.`;else{let e;t[20]===Symbol.for(`react.memo_cache_sentinel`)?(e=E(`cell.run`),t[20]=e):e=t[20],g=e}let _;t[21]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,P.jsx)(p,{strokeWidth:1.2}),t[21]=_):_=t[21];let v;return t[22]!==f||t[23]!==n||t[24]!==g||t[25]!==h?(v=(0,P.jsx)(R,{tooltip:g,disabled:f,onClick:n,variant:h,"data-testid":`run-button`,children:_}),t[22]=f,t[23]=n,t[24]=g,t[25]=h,t[26]=v):v=t[26],v};export{I as a,R as i,B as n,z as r,H as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./save-worker-pCkSHhuz.js";var t=e(((e,t)=>{t.exports={}}));export default t();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./worker-bSCjCvwz.js";var t=e(((e,t)=>{t.exports={}}));export default t();
|