@marimo-team/frontend 0.23.2-dev8 → 0.23.3-dev1
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-Dtymd7Mw.js +1 -0
- package/dist/assets/ConnectedDataExplorerComponent-ChNjqWW0.js +1 -0
- package/dist/assets/DeferredRequestRegistry-C2V-hXrK.js +1 -0
- package/dist/assets/ErrorBoundary-DzYV_VeY.js +1 -0
- package/dist/assets/ImageComparisonComponent-BDf80c-c.js +1 -0
- package/dist/assets/ImperativeModal-CAFE3UV7.js +1 -0
- package/dist/assets/Inputs-kqHYE7dL.js +1 -0
- package/dist/assets/JsonOutput-sWUD3O5F.js +49 -0
- package/dist/assets/LazyAnyLanguageCodeMirror-BYkSpfWg.js +2 -0
- package/dist/assets/MarimoErrorOutput-CUkxKVSp.js +7 -0
- package/dist/assets/Plot-Dw2rpqfa.js +3789 -0
- package/dist/assets/RSPContexts-CrATdGvz.js +1 -0
- package/dist/assets/RenderHTML-aOmkRy0R.js +1 -0
- package/dist/assets/__vite-browser-external-DgbEhFq1.js +1 -0
- package/dist/assets/_baseFor-DKD1r8uL.js +1 -0
- package/dist/assets/_baseSet-CxV9N1bc.js +1 -0
- package/dist/assets/_baseUniq-CbY8vx1e.js +1 -0
- package/dist/assets/add-cell-with-ai-apfqz2QF.js +92 -0
- package/dist/assets/add-connection-dialog-D6XFTnTb.js +167 -0
- package/dist/assets/agent-panel-D7n2noTX.js +287 -0
- package/dist/assets/ai-model-dropdown-CMNpHk5I.js +5 -0
- package/dist/assets/alert-DD-RU0QZ.js +1 -0
- package/dist/assets/alert-dialog-BGBdrcqJ.js +11 -0
- package/dist/assets/any-language-editor-CFmH0GoP.js +1 -0
- package/dist/assets/apl-ezh0ScS-.js +1 -0
- package/dist/assets/app-config-button-CXAAPUFL.js +1 -0
- package/dist/assets/architecture-7HQA4BMR-CKjkd5Dl.js +1 -0
- package/dist/assets/architectureDiagram-VXUJARFQ-x1tfs-Zy.js +36 -0
- package/dist/assets/arrays-DYDL-3-i.js +1 -0
- package/dist/assets/asciiarmor-DBqyln4y.js +1 -0
- package/dist/assets/asn1-C9Hie9a5.js +1 -0
- package/dist/assets/badge-IqsYSyWB.js +1 -0
- package/dist/assets/blockDiagram-VD42YOAC-DsnHpCid.js +122 -0
- package/dist/assets/bot-message-square-DrbHk31W.js +1 -0
- package/dist/assets/brainfuck-BDNU41Mw.js +1 -0
- package/dist/assets/button-D9nb17Rw.js +1 -0
- package/dist/assets/c4Diagram-YG6GDRKO-D32cjsO5.js +10 -0
- package/dist/assets/cache-panel-_zalrRwf.js +1 -0
- package/dist/assets/capabilities-C_FLIcjP.js +1 -0
- package/dist/assets/card-DaCTzD6y.js +1 -0
- package/dist/assets/cell-editor-BUrhiKcX.js +22 -0
- package/dist/assets/cell-link-owqfXuA4.js +1 -0
- package/dist/assets/cells-BA9ZN5Xy.js +229 -0
- package/dist/assets/channel-esN5troS.js +1 -0
- package/dist/assets/chart-no-axes-column-nqk474t8.js +1 -0
- package/dist/assets/chat-display-AB-C2j6p.js +1 -0
- package/dist/assets/chat-panel-C1Evz8wb.js +3 -0
- package/dist/assets/chat-ui-CcArYoMw.js +4 -0
- package/dist/assets/check-BH35Ndha.js +1 -0
- package/dist/assets/chevron-right-CG5QYXYk.js +1 -0
- package/dist/assets/chunk-4F5CHEZ2-CiW94ehv.js +1 -0
- package/dist/assets/chunk-55IACEB6-C_BE0X2F.js +1 -0
- package/dist/assets/chunk-5FQGJX7Z-wbiBygI_.js +113 -0
- package/dist/assets/chunk-ABZYJK2D-CSzcbtsR.js +80 -0
- package/dist/assets/chunk-ATLVNIR6-BGYBu2zE.js +1 -0
- package/dist/assets/chunk-B2363JML-Dj_BsGfX.js +1 -0
- package/dist/assets/chunk-B4BG7PRW-S78japIA.js +165 -0
- package/dist/assets/chunk-DI55MBZ5-B1Vz0MTl.js +220 -0
- package/dist/assets/chunk-EXTU4WIE-D-Spa6rW.js +1 -0
- package/dist/assets/chunk-FRFDVMJY-BB5sTbw6.js +1 -0
- package/dist/assets/chunk-JA3XYJ7Z-BJGCDHDS.js +70 -0
- package/dist/assets/chunk-JZLCHNYA-lm1LBIfJ.js +54 -0
- package/dist/assets/chunk-N4CR4FBY-BQWUF0Ly.js +2 -0
- package/dist/assets/chunk-PL6DKKU2-BVOKRgy0.js +1 -0
- package/dist/assets/chunk-QN33PNHL-Buv0c3y8.js +1 -0
- package/dist/assets/chunk-QXUST7PY-tI3bGlcO.js +7 -0
- package/dist/assets/chunk-S3R3BYOJ-BwE-T8-d.js +2 -0
- package/dist/assets/chunk-SJTYNZTY-BY2Gu6VM.js +1 -0
- package/dist/assets/chunk-TCCFYFTB-ClOYb5MI.js +125 -0
- package/dist/assets/chunk-TQ3KTPDO-BXqsqDoM.js +1 -0
- package/dist/assets/chunk-TZMSLE5B-zQ3MzIy5.js +1 -0
- package/dist/assets/chunk-UMXZTB3W-2RQe-UTW.js +1 -0
- package/dist/assets/circle-check-C17zXg7L.js +1 -0
- package/dist/assets/circle-play-CYXX2xu3.js +1 -0
- package/dist/assets/circle-plus-BdiiIXu5.js +1 -0
- package/dist/assets/classDiagram-2ON5EDUG-BSpbvL3e.js +1 -0
- package/dist/assets/classDiagram-v2-WZHVMYZB-CQ49gdZV.js +1 -0
- package/dist/assets/clear-button-hXGBrmNq.js +1 -0
- package/dist/assets/clike-B5Yp94w5.js +1 -0
- package/dist/assets/clipboard-paste-BPjPPEqD.js +1 -0
- package/dist/assets/clojure-DnkK3bSc.js +1 -0
- package/dist/assets/clone-wB3InSdt.js +1 -0
- package/dist/assets/cmake-BnWrJdTV.js +1 -0
- package/dist/assets/cn-DCUzRj2J.js +1 -0
- package/dist/assets/cobol-HBrO1JaF.js +1 -0
- package/dist/assets/code-block-37QAKDTI-Bf-3UT2Z.js +2 -0
- package/dist/assets/code-xml-CZN6vNxu.js +1 -0
- package/dist/assets/coffeescript-CRPuDhgD.js +1 -0
- package/dist/assets/column-preview-BbSZl4gC.js +1 -0
- package/dist/assets/command-DQS2IzwJ.js +1 -0
- package/dist/assets/command-palette-Cc7XXZHG.js +1 -0
- package/dist/assets/common-CakcoJKZ.js +1 -0
- package/dist/assets/commonlisp-Da4KcekY.js +1 -0
- package/dist/assets/components-DVzYtTDe.js +1 -0
- package/dist/assets/components-eaRIBPb2.js +1 -0
- package/dist/assets/config-Calf6e81.js +1 -0
- package/dist/assets/constants-DMpttj8Q.js +1 -0
- package/dist/assets/context-BrNoqz7t.js +1 -0
- package/dist/assets/copy-BnK_ki61.js +1 -0
- package/dist/assets/copy-BwrPA9zQ.js +1 -0
- package/dist/assets/copy-icon-D189KR4Z.js +1 -0
- package/dist/assets/cose-bilkent-S5V4N54A-DT_V8ZfF.js +1 -0
- package/dist/assets/createReducer-1ePoj7v6.js +1 -0
- package/dist/assets/crystal-DSapLTsa.js +1 -0
- package/dist/assets/css-B68S0me4.js +1 -0
- package/dist/assets/cypher-xFGoEou9.js +1 -0
- package/dist/assets/d-DgvhEIBQ.js +1 -0
- package/dist/assets/dagre-6UL2VRFP-DGYXMu3i.js +4 -0
- package/dist/assets/dagre-DhAJ2E-3.js +1 -0
- package/dist/assets/data-grid-overlay-editor-CD6KDhh4.js +1 -0
- package/dist/assets/database-zap-kIkTfzTX.js +1 -0
- package/dist/assets/datasource-BZ77nRPA.js +3 -0
- package/dist/assets/dates-CtmdgiVR.js +1 -0
- package/dist/assets/debounce-DhnxH9Rh.js +1 -0
- package/dist/assets/dependency-graph-panel-DJodxi-n.js +5 -0
- package/dist/assets/diagram-PSM6KHXK-Df7m0-Bk.js +24 -0
- package/dist/assets/diagram-QEK2KX5R-BC5JXjfp.js +43 -0
- package/dist/assets/diagram-S2PKOQOG-D6E97R3h.js +24 -0
- package/dist/assets/dialog-CqE8CV1Y.js +1 -0
- package/dist/assets/diff-_ncWAuCI.js +1 -0
- package/dist/assets/dist-B5ONF0fx.js +1 -0
- package/dist/assets/dist-B804XDz9.js +1 -0
- package/dist/assets/dist-BOBxlWRU.js +1 -0
- package/dist/assets/dist-BZX17NA8.js +1 -0
- package/dist/assets/dist-Bgd1ZX49.js +1 -0
- package/dist/assets/dist-BiQrY0m-.js +1 -0
- package/dist/assets/dist-BoOh2kN5.js +1 -0
- package/dist/assets/dist-BrR4M-k3.js +13 -0
- package/dist/assets/dist-BuSjuYCJ.js +1 -0
- package/dist/assets/dist-BvefCWaz.js +1 -0
- package/dist/assets/dist-BvpmHCI2.js +1 -0
- package/dist/assets/dist-BwejP-9J.js +6 -0
- package/dist/assets/dist-C2akIBaE.js +1 -0
- package/dist/assets/dist-C5pbZROJ.js +1 -0
- package/dist/assets/dist-C9ZB41s2.js +2 -0
- package/dist/assets/dist-C9byx33H.js +1 -0
- package/dist/assets/dist-CAjNwSwp.js +1 -0
- package/dist/assets/dist-CD7-c8A4.js +1 -0
- package/dist/assets/dist-CHcznzB-.js +2 -0
- package/dist/assets/dist-CM2zL7eu.js +1 -0
- package/dist/assets/dist-CSLszKKS.js +1 -0
- package/dist/assets/dist-Cb9wJQiu.js +1 -0
- package/dist/assets/dist-CdAQ8eZ9.js +1 -0
- package/dist/assets/dist-ChEIZSwD.js +1 -0
- package/dist/assets/dist-CpbLJKXc.js +3 -0
- package/dist/assets/dist-Ct7BBGwl.js +1 -0
- package/dist/assets/dist-D8d8D49Y.js +1 -0
- package/dist/assets/dist-D8llshvP.js +1 -0
- package/dist/assets/dist-D8mC0RLm.js +1 -0
- package/dist/assets/dist-D9brkCnf.js +1 -0
- package/dist/assets/dist-DDWNnRcK.js +7 -0
- package/dist/assets/dist-DEsgb6r0.js +1 -0
- package/dist/assets/dist-DK65leDK.js +1 -0
- package/dist/assets/dist-DMIdeanR.js +1 -0
- package/dist/assets/dist-DSv2WUkf.js +1 -0
- package/dist/assets/dist-DX-ejWLY.js +1 -0
- package/dist/assets/dist-DfWgLTCQ.js +13 -0
- package/dist/assets/dist-Dg3CCt0r.js +3 -0
- package/dist/assets/dist-DlFpiRHv.js +1 -0
- package/dist/assets/dist-G3xLh7ZX.js +1 -0
- package/dist/assets/dist-G8rBPeDP.js +1 -0
- package/dist/assets/dist-H-P6qorM.js +1 -0
- package/dist/assets/dist-HIpA48xV.js +7 -0
- package/dist/assets/dist-HlsDto3K.js +1 -0
- package/dist/assets/dist-a6hqEAyw.js +1 -0
- package/dist/assets/dist-fKK_jBk2.js +1 -0
- package/dist/assets/dist-idZNafp8.js +1 -0
- package/dist/assets/dist-vhQjV8kg.js +1 -0
- package/dist/assets/dockerfile-COvjaTvv.js +1 -0
- package/dist/assets/documentation-panel-DMXEUS7v.js +1 -0
- package/dist/assets/download-rCRPD7IF.js +9 -0
- package/dist/assets/dropdown-menu-D1A3cFC8.js +1 -0
- package/dist/assets/dtd-BnBIn3kr.js +1 -0
- package/dist/assets/dylan-CkGqQmFw.js +1 -0
- package/dist/assets/ecl-CFTIHpsV.js +1 -0
- package/dist/assets/edit-page-CK943x81.js +9 -0
- package/dist/assets/eiffel-DqSKoxJh.js +1 -0
- package/dist/assets/ellipsis-KAhMaCIV.js +1 -0
- package/dist/assets/ellipsis-vertical-CkwWkOQL.js +1 -0
- package/dist/assets/elm-dL9c1n0U.js +1 -0
- package/dist/assets/empty-state-CrP10sqm.js +1 -0
- package/dist/assets/en-US-B8TXLgVt.js +1 -0
- package/dist/assets/erDiagram-Q2GNP2WA-AvxewI5H.js +60 -0
- package/dist/assets/erlang-ZIYI48gw.js +1 -0
- package/dist/assets/error-banner-BxlXxssi.js +1 -0
- package/dist/assets/error-panel-4rKxybFL.js +1 -0
- package/dist/assets/es-CjWf0wU3.js +5 -0
- package/dist/assets/esm-CcSYdGmP.js +1 -0
- package/dist/assets/esm-jhgLTcf6.js +1 -0
- package/dist/assets/eye-off-n1Li95bE.js +1 -0
- package/dist/assets/factor-CDbckATe.js +1 -0
- package/dist/assets/factor-PbpmJuj6.js +1 -0
- package/dist/assets/field-Dpiu3eud.js +1 -0
- package/dist/assets/file-BrdxGLRX.js +1 -0
- package/dist/assets/file-explorer-panel-B5sFxYu1.js +26 -0
- package/dist/assets/file-headphone-BrQspHac.js +1 -0
- package/dist/assets/file-icons-CSF7UWQn.js +1 -0
- package/dist/assets/fileToBase64-Bzn96tYq.js +1 -0
- package/dist/assets/flatten-Dl4V1ub3.js +1 -0
- package/dist/assets/floating-outline-DzcyDJwQ.js +1 -0
- package/dist/assets/flowDiagram-NV44I4VS-BqW0suiP.js +162 -0
- package/dist/assets/focus-BRfyPUhi.js +1 -0
- package/dist/assets/form-BUVFJb5I.js +2 -0
- package/dist/assets/formats-CQbVJYLi.js +1 -0
- package/dist/assets/formatting-CbFi9xG8.js +1 -0
- package/dist/assets/forth-ClT6YoKq.js +1 -0
- package/dist/assets/fortran-D3wR_E-8.js +1 -0
- package/dist/assets/fullscreen-BDxedMYP.js +41 -0
- package/dist/assets/gallery-page-ClCkynuR.js +1 -0
- package/dist/assets/ganttDiagram-JELNMOA3-CeCvJWgC.js +267 -0
- package/dist/assets/gas-_ShnzaTM.js +1 -0
- package/dist/assets/get-C-qh_et5.js +1 -0
- package/dist/assets/gherkin-LsHtc0Ns.js +1 -0
- package/dist/assets/gitGraph-G5XIXVHT-nrZ-BMna.js +1 -0
- package/dist/assets/gitGraphDiagram-V2S2FVAM-Dn1AbOWu.js +65 -0
- package/dist/assets/github-BKS_2Qwn.js +1 -0
- package/dist/assets/glide-data-editor-CKiZFI5U.js +132 -0
- package/dist/assets/globals-DY_dRKpv.js +1 -0
- package/dist/assets/graphlib-CRNG9rUk.js +1 -0
- package/dist/assets/groovy-D_Yv0Fac.js +1 -0
- package/dist/assets/hasIn-DiS_ryrS.js +1 -0
- package/dist/assets/haskell-qhM1HAIB.js +1 -0
- package/dist/assets/haxe-Bi62PpIr.js +1 -0
- package/dist/assets/home-page-BvfssQ5c.js +4 -0
- package/dist/assets/hooks-CK1ac3iV.js +1 -0
- package/dist/assets/html-to-image-BOWUS6J2.js +2 -0
- package/dist/assets/icons-C66kZH_4.js +1 -0
- package/dist/assets/idl-CI42bOaI.js +1 -0
- package/dist/assets/image-HpSc22eh.js +1 -0
- package/dist/assets/index-BuOIqA8d.css +2 -0
- package/dist/assets/index-DCq7udug.js +42 -0
- package/dist/assets/info-VBDWY6EO-Bn_7XCeN.js +1 -0
- package/dist/assets/infoDiagram-HS3SLOUP-DTO3Z6Cg.js +2 -0
- package/dist/assets/input-2egRGOhT.js +1 -0
- package/dist/assets/isEmpty-CXeoXbuc.js +1 -0
- package/dist/assets/isValid-KoNx_uxe.js +1 -0
- package/dist/assets/javascript-BNZ5YnSy.js +1 -0
- package/dist/assets/journeyDiagram-XKPGCS4Q-BQL61Vfo.js +139 -0
- package/dist/assets/julia-dpVUKOp6.js +1 -0
- package/dist/assets/kanban-definition-3W4ZIXB7-CMoUF4Qw.js +89 -0
- package/dist/assets/kbd-DSY6_TYl.js +1 -0
- package/dist/assets/kiosk-mode-BJNsfVZJ.js +1 -0
- package/dist/assets/label-DTR8T0AE.js +1 -0
- package/dist/assets/layout-0Xp7ABJw.js +9 -0
- package/dist/assets/linear-DxS7NPzz.js +1 -0
- package/dist/assets/link-DlqtQzll.js +1 -0
- package/dist/assets/links-D-VMsA11.js +1 -0
- package/dist/assets/links-DhwG_EVu.js +1 -0
- package/dist/assets/livescript-BDwSUbUd.js +1 -0
- package/dist/assets/logs-panel-bp6XOaLO.js +1 -0
- package/dist/assets/loro_wasm_bg-DpX928kr.js +1 -0
- package/dist/assets/lua-cGUKNtb5.js +1 -0
- package/dist/assets/maps-C48Oksn0.js +1 -0
- package/dist/assets/marimo-icons-Ce24dQVN.js +1 -0
- package/dist/assets/markdown-renderer-3M2UXZOE.js +5 -0
- package/dist/assets/mathematica-D4XScfvP.js +1 -0
- package/dist/assets/mbox-COnP75oc.js +1 -0
- package/dist/assets/memoize-Tp7rARFe.js +1 -0
- package/dist/assets/menu-items-CwUpDHG7.js +1 -0
- package/dist/assets/merge-_9WLTEyt.js +1 -0
- package/dist/assets/mermaid-4DMBBIKO-D-U6KmKa.js +1 -0
- package/dist/assets/mermaid-CI6k86rB.js +11 -0
- package/dist/assets/mermaid-parser.core-B0EhnNjP.js +4 -0
- package/dist/assets/message-circle-QFYtD-Lc.js +1 -0
- package/dist/assets/min-12WNOJ9e.js +1 -0
- package/dist/assets/mindmap-definition-VGOIOE7T-C0BN8YhO.js +68 -0
- package/dist/assets/mirc-DXskkW6M.js +1 -0
- package/dist/assets/mllike-B3ebn_fS.js +1 -0
- package/dist/assets/modelica-Df8_BOFz.js +1 -0
- package/dist/assets/mscgen-ugK6iLdl.js +1 -0
- package/dist/assets/multi-icon-nJMmVh2f.js +1 -0
- package/dist/assets/multi-map-rafH3cg3.js +1 -0
- package/dist/assets/mumps-Qes0D9Sq.js +1 -0
- package/dist/assets/name-cell-input-CUkoykAD.js +1 -0
- package/dist/assets/now-CsYTPAhW.js +1 -0
- package/dist/assets/nsis-BbDlITQ-.js +1 -0
- package/dist/assets/nsis-CvTk2ElD.js +1 -0
- package/dist/assets/ntriples-BrWSHgAl.js +1 -0
- package/dist/assets/number-overlay-editor-DJEXT_Ye.js +9 -0
- package/dist/assets/numbers-epUg4eUW.js +1 -0
- package/dist/assets/octave--UXUC2au.js +1 -0
- package/dist/assets/once-DRroIaBz.js +1 -0
- package/dist/assets/outline-panel-s7vxHE_P.js +1 -0
- package/dist/assets/oz-SCICUQnB.js +1 -0
- package/dist/assets/packages-panel-CDb4sauq.js +1 -0
- package/dist/assets/packet-DYOGHKS2-B53MIhbR.js +1 -0
- package/dist/assets/panel-context-DgIiEtMa.js +1 -0
- package/dist/assets/panels-s8gQr6G_.js +1 -0
- package/dist/assets/pascal-BZRIRN0Y.js +1 -0
- package/dist/assets/perl-BJBf_VRX.js +1 -0
- package/dist/assets/pick-DqWUNly1.js +1 -0
- package/dist/assets/pie-VRWISCQL-CsQYRyI_.js +1 -0
- package/dist/assets/pieDiagram-ADFJNKIX-CZ1pBex_.js +30 -0
- package/dist/assets/pig-8VtGvtGP.js +1 -0
- package/dist/assets/play-CEytussU.js +1 -0
- package/dist/assets/plus-BueqiM86.js +1 -0
- package/dist/assets/popover-UExmgBsf.js +1 -0
- package/dist/assets/powershell-MUdKU-yo.js +1 -0
- package/dist/assets/precisionRound-BMPhtTJQ.js +1 -0
- package/dist/assets/process-output-C6_eNZv8.js +1 -0
- package/dist/assets/properties-B_YTP79K.js +1 -0
- package/dist/assets/protobuf-BjqtN1d3.js +1 -0
- package/dist/assets/pug-B2p6efPp.js +1 -0
- package/dist/assets/pug-pCMDyY3V.js +1 -0
- package/dist/assets/puppet-ByNusmmY.js +1 -0
- package/dist/assets/purify.es-Cg0r2qW-.js +2 -0
- package/dist/assets/python-CeK7Mdg6.js +1 -0
- package/dist/assets/q-BPLn3RjU.js +1 -0
- package/dist/assets/quadrantDiagram-AYHSOK5B-D6LNQBr8.js +7 -0
- package/dist/assets/r-C6hL19P_.js +1 -0
- package/dist/assets/radar-ZZBFDIW7-DixuyYGz.js +1 -0
- package/dist/assets/react-vega-B2Q2ObPu.js +1 -0
- package/dist/assets/react-vega-D3GJC5Ll.js +190 -0
- package/dist/assets/readonly-python-code-BBLUUIbP.js +1 -0
- package/dist/assets/refresh-ccw-BuMhEaS9.js +1 -0
- package/dist/assets/refresh-cw-BmiNHssk.js +1 -0
- package/dist/assets/renderShortcut-B-72v1dC.js +1 -0
- package/dist/assets/request-registry-yZbbPZkh.js +1 -0
- package/dist/assets/requests-DIwGYs0l.js +1 -0
- package/dist/assets/requirementDiagram-UZGBJVZJ-BQCIkW22.js +64 -0
- package/dist/assets/reveal-component-CT2scTNG.js +91 -0
- package/dist/assets/reveal-component-DlPTFz1w.css +1 -0
- package/dist/assets/rotate-ccw-Bwso-5RT.js +1 -0
- package/dist/assets/rpm-Cepx5AK5.js +1 -0
- package/dist/assets/ruby-8a_JNJtC.js +1 -0
- package/dist/assets/run-page-BebSJHhp.js +1 -0
- package/dist/assets/runs-BBFoea9K.js +1 -0
- package/dist/assets/sankeyDiagram-TZEHDZUN-WXVSVZRc.js +10 -0
- package/dist/assets/sas-DRXu6Kkn.js +1 -0
- package/dist/assets/save-B_q9ApPf.js +1 -0
- package/dist/assets/scheme-DaBlDkbO.js +1 -0
- package/dist/assets/scratchpad-panel-CPn_yM49.js +1 -0
- package/dist/assets/secrets-panel-B6HrST_M.js +1 -0
- package/dist/assets/select-5i7URBEn.js +1 -0
- package/dist/assets/sequenceDiagram-WL72ISMW-FSYTKWFS.js +145 -0
- package/dist/assets/session-DdhIEena.js +1 -0
- package/dist/assets/session-panel-CfLYfSX2.js +1 -0
- package/dist/assets/settings-C_KZ1Eue.js +1 -0
- package/dist/assets/share-CJEPnWjm.js +1 -0
- package/dist/assets/shell-CEmng-T5.js +1 -0
- package/dist/assets/sieve-CTG31Wbe.js +1 -0
- package/dist/assets/slide-CdqatvaH.js +1 -0
- package/dist/assets/slides-BVvo79ll.css +1 -0
- package/dist/assets/smalltalk-DlBjAIRH.js +1 -0
- package/dist/assets/snippets-panel-tfceTIEM.js +1 -0
- package/dist/assets/sparkles-BRTQ46qC.js +1 -0
- package/dist/assets/sparql-D8XQtNgL.js +1 -0
- package/dist/assets/spec-6oUobewY.js +1 -0
- package/dist/assets/spinner-jEqwgi_c.js +1 -0
- package/dist/assets/square-function-DN3RwIjj.js +1 -0
- package/dist/assets/square-k2WwJdZy.js +1 -0
- package/dist/assets/src-COk1uIaa.js +1 -0
- package/dist/assets/state-BFFSWzNE.js +3 -0
- package/dist/assets/state-Dlj7aAV2.js +1 -0
- package/dist/assets/state-INwBo8-b.js +1 -0
- package/dist/assets/state-SzKMGrBW.js +1 -0
- package/dist/assets/stateDiagram-FKZM4ZOC-NXeF8b27.js +1 -0
- package/dist/assets/stateDiagram-v2-4FDKWEC3-co6cLoce.js +1 -0
- package/dist/assets/stex-CXcPf-7C.js +1 -0
- package/dist/assets/strings-md4mFbOQ.js +2 -0
- package/dist/assets/stylus-DpfM4Y-0.js +1 -0
- package/dist/assets/swift-Bevjlmsx.js +1 -0
- package/dist/assets/swiper-component-BIp7oQxt.js +1 -0
- package/dist/assets/swiper-component-a65-SW8d.css +1 -0
- package/dist/assets/switch-CqJGGLBT.js +1 -0
- package/dist/assets/table-6NxtGaCm.js +1 -0
- package/dist/assets/table-CZ3rujd6.js +1 -0
- package/dist/assets/tcl-CWB1W9St.js +1 -0
- package/dist/assets/terminal-6UFUAGzf.js +62 -0
- package/dist/assets/textarea-D2liylO5.js +1 -0
- package/dist/assets/textile-DrGyKlBQ.js +1 -0
- package/dist/assets/time-hqD5bg84.js +1 -0
- package/dist/assets/timeline-definition-IT6M3QCI-B3aCCYAY.js +61 -0
- package/dist/assets/toDate-B5A0DFEz.js +1 -0
- package/dist/assets/toml-CF49H3Gs.js +1 -0
- package/dist/assets/tooltip-Gcwqb_SK.js +1 -0
- package/dist/assets/tracing-BUxVK-Z_.js +1 -0
- package/dist/assets/tracing-panel-BZQdh8Uh.js +2 -0
- package/dist/assets/trash-2-C5AzNaHr.js +1 -0
- package/dist/assets/trash-BUseJO4n.js +1 -0
- package/dist/assets/tree-Dtn4o2IZ.js +3 -0
- package/dist/assets/treemap-GDKQZRPO-C7ssVrVz.js +1 -0
- package/dist/assets/triangle-alert-CBEvAwaa.js +1 -0
- package/dist/assets/troff-DS9glUnj.js +1 -0
- package/dist/assets/ttcn-cfg-D8JUANmi.js +1 -0
- package/dist/assets/ttcn-iXXxBDpr.js +1 -0
- package/dist/assets/turtle-IsYxGpD1.js +1 -0
- package/dist/assets/types-Bpx1EWqM.js +1 -0
- package/dist/assets/useAddCell-xtQoaf-X.js +1 -0
- package/dist/assets/useAsyncData-BRNkjHs1.js +1 -0
- package/dist/assets/useBoolean-D2Wc5G49.js +1 -0
- package/dist/assets/useCellActionButton-DXgH5B4A.js +1 -0
- package/dist/assets/useDateFormatter-_XK-fjTQ.js +1 -0
- package/dist/assets/useDebounce-BxKDvvzN.js +1 -0
- package/dist/assets/useDeleteCell-C1_f7lEy.js +1 -0
- package/dist/assets/useDependencyPanelTab-PKhgm9-V.js +1 -0
- package/dist/assets/useEventListener-BR0C1MaI.js +1 -0
- package/dist/assets/useHotkey-j1wCvjNq.js +1 -0
- package/dist/assets/useIframeCapabilities-Bqipv_jK.js +1 -0
- package/dist/assets/useInstallPackage-BHZ1EjqC.js +1 -0
- package/dist/assets/useInterval-BePSL0QQ.js +1 -0
- package/dist/assets/useLifecycle-DieWOfXE.js +1 -0
- package/dist/assets/useNotebookActions-BPt4w3KQ.js +1 -0
- package/dist/assets/useNumberFormatter-D_mZTdYK.js +1 -0
- package/dist/assets/usePress-Cj1lHaxt.js +7 -0
- package/dist/assets/useRunCells-cIxqHRwZ.js +1 -0
- package/dist/assets/useSplitCell-B0qjEpW1.js +1 -0
- package/dist/assets/useTheme-AmxLvSQ5.js +1 -0
- package/dist/assets/utils-DIGrmLDO.js +1 -0
- package/dist/assets/utils-DVodi8oQ.js +61 -0
- package/dist/assets/vb-CJBc18Ui.js +1 -0
- package/dist/assets/vbscript-f-536WNP.js +1 -0
- package/dist/assets/vega-component-Dh_sdcAu.js +1 -0
- package/dist/assets/vega-loader.browser-CRZ52CKf.js +6 -0
- package/dist/assets/velocity-BKcC2FIu.js +1 -0
- package/dist/assets/verilog-BwwsdDY5.js +1 -0
- package/dist/assets/vhdl-BG8PfJd8.js +1 -0
- package/dist/assets/webidl-BHBWV-F6.js +1 -0
- package/dist/assets/worker-ztl1wuLb.js +120 -0
- package/dist/assets/workflow-ktgLxNKJ.js +1 -0
- package/dist/assets/write-secret-modal-DNCTT09O.js +1 -0
- package/dist/assets/x-C-6liIBr.js +1 -0
- package/dist/assets/xquery-BSuR2Wlv.js +1 -0
- package/dist/assets/xychartDiagram-PRI3JC2R-eSL2LfH9.js +7 -0
- package/dist/assets/yacas-DdJ1FiXV.js +1 -0
- package/dist/assets/youtube-CXGBiuia.js +1 -0
- package/dist/assets/z80-BWehJ3ot.js +1 -0
- package/dist/index.html +167 -170
- package/package.json +4 -2
- package/src/__mocks__/requests.ts +1 -0
- package/src/components/data-table/TableBottomBar.tsx +5 -1
- package/src/components/data-table/__tests__/chart-spec-model.test.ts +14 -14
- package/src/components/data-table/__tests__/columns.test.tsx +104 -0
- package/src/components/data-table/__tests__/filters.test.ts +304 -0
- package/src/components/data-table/__tests__/pagination.test.tsx +46 -132
- package/src/components/data-table/__tests__/sentinel-cell.test.tsx +171 -0
- package/src/components/data-table/__tests__/types.test.ts +34 -1
- package/src/components/data-table/__tests__/utils.test.ts +227 -0
- package/src/components/data-table/column-explorer-panel/column-explorer.tsx +1 -1
- package/src/components/data-table/column-header.tsx +11 -2
- package/src/components/data-table/column-summary/chart-spec-model.tsx +6 -3
- package/src/components/data-table/column-summary/column-summary.tsx +1 -1
- package/src/components/data-table/columns.tsx +48 -5
- package/src/components/data-table/export-actions.tsx +62 -23
- package/src/components/data-table/filters.ts +87 -33
- package/src/components/data-table/pagination.tsx +189 -76
- package/src/components/data-table/schemas.ts +8 -1
- package/src/components/data-table/sentinel-cell.tsx +118 -0
- package/src/components/data-table/types.ts +32 -11
- package/src/components/data-table/utils.ts +119 -1
- package/src/components/datasources/__tests__/missing-package-prompt.test.tsx +103 -0
- package/src/components/datasources/missing-package-prompt.tsx +49 -0
- package/src/components/editor/actions/useNotebookActions.tsx +12 -0
- package/src/components/editor/cell/code/cell-editor.tsx +1 -0
- package/src/components/editor/file-tree/__tests__/requesting-tree.test.ts +33 -0
- package/src/components/editor/file-tree/file-explorer.tsx +8 -33
- package/src/components/editor/file-tree/requesting-tree.tsx +41 -0
- package/src/components/editor/file-tree/state.tsx +1 -0
- package/src/components/editor/renderers/slides-layout/slides-layout.tsx +9 -17
- package/src/components/home/components.tsx +7 -0
- package/src/components/slides/reveal-component.tsx +109 -0
- package/src/components/slides/reveal-slides.css +42 -0
- package/src/components/slides/slides.css +0 -65
- package/src/components/slides/swiper-component.tsx +159 -0
- package/src/components/slides/swiper-slides.css +64 -0
- package/src/components/static-html/static-banner.tsx +23 -14
- package/src/components/ui/toast.tsx +16 -7
- package/src/core/cells/__tests__/apply-transaction.test.ts +483 -0
- package/src/core/cells/__tests__/cells.test.ts +110 -0
- package/src/core/cells/__tests__/logs.test.ts +101 -0
- package/src/core/cells/cells.ts +18 -0
- package/src/core/cells/document-changes.ts +34 -1
- package/src/core/cells/logs.ts +9 -1
- package/src/core/codemirror/__tests__/__snapshots__/setup.test.ts.snap +4 -14
- package/src/core/codemirror/cells/extensions.ts +0 -4
- package/src/core/codemirror/keymaps/keymaps.ts +69 -2
- package/src/core/constants.ts +1 -0
- package/src/core/islands/bridge.ts +1 -0
- package/src/core/mode.ts +10 -1
- package/src/core/network/requests-lazy.ts +1 -0
- package/src/core/network/requests-network.ts +8 -0
- package/src/core/network/requests-static.ts +1 -0
- package/src/core/network/requests-toasting.tsx +1 -0
- package/src/core/network/types.ts +3 -0
- package/src/core/wasm/__tests__/bridge.test.ts +113 -0
- package/src/core/wasm/bridge.ts +13 -2
- package/src/core/wasm/worker/types.ts +3 -0
- package/src/core/wasm/worker/worker.ts +1 -0
- package/src/plugins/core/__test__/trusted-url.test.ts +45 -1
- package/src/plugins/core/trusted-url.ts +27 -2
- package/src/plugins/impl/DataEditorPlugin.tsx +7 -3
- package/src/plugins/impl/DataTablePlugin.tsx +7 -20
- package/src/plugins/impl/FileBrowserPlugin.tsx +81 -81
- package/src/plugins/impl/TabsPlugin.tsx +18 -12
- package/src/plugins/impl/data-editor/__tests__/data-utils.test.ts +147 -149
- package/src/plugins/impl/data-editor/data-utils.ts +12 -11
- package/src/plugins/impl/data-editor/glide-data-editor.tsx +4 -4
- package/src/plugins/impl/data-frames/DataFramePlugin.tsx +4 -4
- package/src/plugins/impl/data-frames/schema.ts +41 -9
- package/src/plugins/impl/data-frames/utils/operators.ts +2 -0
- package/src/plugins/impl/matplotlib/matplotlib-renderer.ts +16 -0
- package/src/plugins/layout/carousel/CarouselPlugin.tsx +3 -1
- package/dist/assets/CellStatus-Bwtcvgko.js +0 -1
- package/dist/assets/ConnectedDataExplorerComponent-B0Mh-Jhz.js +0 -1
- package/dist/assets/DeferredRequestRegistry-BLWK1eKa.js +0 -1
- package/dist/assets/ErrorBoundary-CxTq44MI.js +0 -1
- package/dist/assets/ImageComparisonComponent-DKZ20H-k.js +0 -1
- package/dist/assets/ImperativeModal-hsPVDTG-.js +0 -1
- package/dist/assets/Inputs-6ni2iCdV.js +0 -1
- package/dist/assets/JsonOutput-ZBMYDZ3q.js +0 -49
- package/dist/assets/LazyAnyLanguageCodeMirror-CsrwfW0n.js +0 -2
- package/dist/assets/MarimoErrorOutput-DLREr23s.js +0 -7
- package/dist/assets/Plot-DHwg76ki.js +0 -3789
- package/dist/assets/RSPContexts-DzigvqmT.js +0 -1
- package/dist/assets/RenderHTML-5FjN3OZH.js +0 -1
- package/dist/assets/__vite-browser-external-DT1nudb6.js +0 -1
- package/dist/assets/_basePickBy-C0EPK3Lm.js +0 -1
- package/dist/assets/_baseSet-49dbm-yb.js +0 -1
- package/dist/assets/_baseUniq-Mbsklgl4.js +0 -1
- package/dist/assets/add-cell-with-ai-DbPkyXyg.js +0 -92
- package/dist/assets/add-connection-dialog-sNnLlFNN.js +0 -167
- package/dist/assets/agent-panel-DMb4Q9pS.js +0 -287
- package/dist/assets/ai-model-dropdown-CZB8Xt_D.js +0 -5
- package/dist/assets/alert-DF3HbVtk.js +0 -1
- package/dist/assets/alert-dialog-C2mTH3GM.js +0 -11
- package/dist/assets/any-language-editor-DkEDDsUJ.js +0 -1
- package/dist/assets/apl-CuOurP-c.js +0 -1
- package/dist/assets/app-config-button-b2p8_NdZ.js +0 -1
- package/dist/assets/architecture-7HQA4BMR-Ch3DQout.js +0 -1
- package/dist/assets/architectureDiagram-VXUJARFQ-AnnUUivr.js +0 -36
- package/dist/assets/arrays-DAC2orgH.js +0 -1
- package/dist/assets/asciiarmor-C4q0KAuh.js +0 -1
- package/dist/assets/asn1-gmsDz0li.js +0 -1
- package/dist/assets/badge-CwbVR_sO.js +0 -1
- package/dist/assets/blockDiagram-VD42YOAC-BSbV1P7v.js +0 -122
- package/dist/assets/bot-message-square-BbnE8Q1J.js +0 -1
- package/dist/assets/brainfuck-RlYwG6Xx.js +0 -1
- package/dist/assets/button-COIw2x9i.js +0 -1
- package/dist/assets/c4Diagram-YG6GDRKO-mvY8KdgG.js +0 -10
- package/dist/assets/cache-panel-C3V9UubH.js +0 -1
- package/dist/assets/capabilities-BmGdj50E.js +0 -1
- package/dist/assets/card-DCTJ4k_v.js +0 -1
- package/dist/assets/cell-editor-BhmiBBOV.js +0 -22
- package/dist/assets/cell-link-DMyOfytV.js +0 -1
- package/dist/assets/cells-CAft_y9h.js +0 -229
- package/dist/assets/channel-QWYayEtd.js +0 -1
- package/dist/assets/chart-no-axes-column-CsXoiEZx.js +0 -1
- package/dist/assets/chat-display-CnlcyHaA.js +0 -1
- package/dist/assets/chat-panel-DujR1b5z.js +0 -3
- package/dist/assets/chat-ui-D-qk0TXi.js +0 -4
- package/dist/assets/check-B-sKate2.js +0 -1
- package/dist/assets/chevron-right-CgvDWFE3.js +0 -1
- package/dist/assets/chunk-4F5CHEZ2-BXUyRfDO.js +0 -1
- package/dist/assets/chunk-55IACEB6-CRnvfQlo.js +0 -1
- package/dist/assets/chunk-5FQGJX7Z-Cyc7d5AB.js +0 -113
- package/dist/assets/chunk-ABZYJK2D-C6__zbIg.js +0 -80
- package/dist/assets/chunk-ATLVNIR6-DioUoCL-.js +0 -1
- package/dist/assets/chunk-B2363JML-CY6QiDyK.js +0 -1
- package/dist/assets/chunk-B4BG7PRW-DO-H9cDE.js +0 -165
- package/dist/assets/chunk-DI55MBZ5-DWj-L2ic.js +0 -220
- package/dist/assets/chunk-EXTU4WIE-B_Um-dIN.js +0 -1
- package/dist/assets/chunk-FRFDVMJY-CjptiqNO.js +0 -1
- package/dist/assets/chunk-JA3XYJ7Z-WVXBR9gk.js +0 -70
- package/dist/assets/chunk-JZLCHNYA-D6hMv1Qk.js +0 -54
- package/dist/assets/chunk-N4CR4FBY-DEy2vl_t.js +0 -2
- package/dist/assets/chunk-PL6DKKU2-BdoRD2nE.js +0 -1
- package/dist/assets/chunk-QN33PNHL-CC2wokMI.js +0 -1
- package/dist/assets/chunk-QXUST7PY-B7IiJgbH.js +0 -7
- package/dist/assets/chunk-S3R3BYOJ-QzFziHq0.js +0 -2
- package/dist/assets/chunk-SJTYNZTY-rJzTNWIe.js +0 -1
- package/dist/assets/chunk-TCCFYFTB-ByQR3Ftq.js +0 -125
- package/dist/assets/chunk-TQ3KTPDO-CURFAmMV.js +0 -1
- package/dist/assets/chunk-TZMSLE5B-D1IHu2ux.js +0 -1
- package/dist/assets/chunk-UMXZTB3W-C4miLMVf.js +0 -1
- package/dist/assets/circle-check-DlWaawuO.js +0 -1
- package/dist/assets/circle-play-Ddna5GuC.js +0 -1
- package/dist/assets/circle-plus-ifSmVHqa.js +0 -1
- package/dist/assets/classDiagram-2ON5EDUG-BANhktcu.js +0 -1
- package/dist/assets/classDiagram-v2-WZHVMYZB-D9c1d8Pg.js +0 -1
- package/dist/assets/clear-button-DpuufuDm.js +0 -1
- package/dist/assets/clike-0Uxq7Mmj.js +0 -1
- package/dist/assets/clipboard-paste-Br9mwBe9.js +0 -1
- package/dist/assets/clojure-DaWCBM5I.js +0 -1
- package/dist/assets/clone-DrGu00U8.js +0 -1
- package/dist/assets/cmake-Nobmxv0n.js +0 -1
- package/dist/assets/cn-DYvqRARy.js +0 -1
- package/dist/assets/cobol--NmnvDWE.js +0 -1
- package/dist/assets/code-block-37QAKDTI-Cfn-cGs0.js +0 -2
- package/dist/assets/code-xml-DxxzgVgU.js +0 -1
- package/dist/assets/coffeescript-Cv1Wf46X.js +0 -1
- package/dist/assets/column-preview-D2B6qQUU.js +0 -1
- package/dist/assets/command-DnzBp4l4.js +0 -1
- package/dist/assets/command-palette-eS5sJOYR.js +0 -1
- package/dist/assets/common-BK4i6reD.js +0 -1
- package/dist/assets/commonlisp-8PbUodZQ.js +0 -1
- package/dist/assets/components-CviIANwr.js +0 -1
- package/dist/assets/components-Dta3XEEY.js +0 -1
- package/dist/assets/config-DoZCLcOb.js +0 -1
- package/dist/assets/constants-tOPFFcLZ.js +0 -1
- package/dist/assets/context-DGqo1TbK.js +0 -1
- package/dist/assets/copy-Bizk-4hH.js +0 -1
- package/dist/assets/copy-DFMsQ6MJ.js +0 -1
- package/dist/assets/copy-icon-Ci08KCdY.js +0 -1
- package/dist/assets/cose-bilkent-S5V4N54A-BpHOyjit.js +0 -1
- package/dist/assets/createReducer-CYlwteGD.js +0 -1
- package/dist/assets/crystal-DOOJCjhq.js +0 -1
- package/dist/assets/css-vLkD8PfS.js +0 -1
- package/dist/assets/cypher-Aazxis5r.js +0 -1
- package/dist/assets/d-B-5Jnu40.js +0 -1
- package/dist/assets/dagre-6UL2VRFP-BHbCmhc1.js +0 -4
- package/dist/assets/dagre-BhaTummv.js +0 -1
- package/dist/assets/data-grid-overlay-editor-B6BRn3Yh.js +0 -1
- package/dist/assets/database-zap-BxfYZ6ML.js +0 -1
- package/dist/assets/datasource-C1kSlT4s.js +0 -3
- package/dist/assets/dates-stqTIkXD.js +0 -1
- package/dist/assets/debounce-BbSyBDA8.js +0 -1
- package/dist/assets/dependency-graph-panel-CMZnqwyn.js +0 -5
- package/dist/assets/diagram-PSM6KHXK-UdiW7QQb.js +0 -24
- package/dist/assets/diagram-QEK2KX5R-3ZxYNJPR.js +0 -43
- package/dist/assets/diagram-S2PKOQOG-C5dLQnUR.js +0 -24
- package/dist/assets/dialog-H-hXtEOq.js +0 -1
- package/dist/assets/diff-8GFZiZ2V.js +0 -1
- package/dist/assets/dist-04hxiWlB.js +0 -1
- package/dist/assets/dist-4lB-oR9j.js +0 -1
- package/dist/assets/dist-B1XdVflW.js +0 -1
- package/dist/assets/dist-B6i4q8vX.js +0 -1
- package/dist/assets/dist-BNTOYRCs.js +0 -1
- package/dist/assets/dist-BPkOpnKv.js +0 -2
- package/dist/assets/dist-BQuOw7vA.js +0 -1
- package/dist/assets/dist-BYHplnRv.js +0 -1
- package/dist/assets/dist-BZIkwcpM.js +0 -1
- package/dist/assets/dist-BaQhtL0H.js +0 -1
- package/dist/assets/dist-BrK3C3Mc.js +0 -1
- package/dist/assets/dist-BrR2nUId.js +0 -1
- package/dist/assets/dist-BuHKsU8Z.js +0 -7
- package/dist/assets/dist-BvlMLwcr.js +0 -6
- package/dist/assets/dist-ByWFdhfz.js +0 -7
- package/dist/assets/dist-C0ZJnmgG.js +0 -1
- package/dist/assets/dist-C80Ed7Y5.js +0 -3
- package/dist/assets/dist-CHgkfE72.js +0 -1
- package/dist/assets/dist-CJDjz8TY.js +0 -1
- package/dist/assets/dist-CQvRfEJt.js +0 -1
- package/dist/assets/dist-CWLNI6B7.js +0 -1
- package/dist/assets/dist-CaQ_ONVt.js +0 -1
- package/dist/assets/dist-CgYlATe-.js +0 -3
- package/dist/assets/dist-CsTHFGvB.js +0 -1
- package/dist/assets/dist-CxquLoAZ.js +0 -1
- package/dist/assets/dist-D281cBMB.js +0 -1
- package/dist/assets/dist-D797J-u_.js +0 -1
- package/dist/assets/dist-DDiNOVwA.js +0 -1
- package/dist/assets/dist-DW-_Bd4t.js +0 -1
- package/dist/assets/dist-DZJfxwLb.js +0 -2
- package/dist/assets/dist-D_Lhmjyi.js +0 -1
- package/dist/assets/dist-DjS0QmS_.js +0 -1
- package/dist/assets/dist-Dl90TzK0.js +0 -1
- package/dist/assets/dist-DlC_MlJ3.js +0 -1
- package/dist/assets/dist-Dnlw22ji.js +0 -13
- package/dist/assets/dist-Dz1-lL07.js +0 -1
- package/dist/assets/dist-Gx6Yy96j.js +0 -1
- package/dist/assets/dist-Hgde9xRP.js +0 -1
- package/dist/assets/dist-IBCCX0qd.js +0 -1
- package/dist/assets/dist-VwkX7yeV.js +0 -13
- package/dist/assets/dist-Yk16cgLk.js +0 -1
- package/dist/assets/dist-ZzjYvfSN.js +0 -1
- package/dist/assets/dist-aDPblQOY.js +0 -1
- package/dist/assets/dist-bOlBcn5A.js +0 -1
- package/dist/assets/dist-eH2iPs-V.js +0 -1
- package/dist/assets/dist-fPjTlo0F.js +0 -1
- package/dist/assets/dist-sZgjGm4S.js +0 -1
- package/dist/assets/dist-umvL589W.js +0 -1
- package/dist/assets/dockerfile-CmMwYXtW.js +0 -1
- package/dist/assets/documentation-panel-D9WN55Gq.js +0 -1
- package/dist/assets/download-COyB8G-Y.js +0 -9
- package/dist/assets/dropdown-menu-DrHAuMTb.js +0 -1
- package/dist/assets/dtd-DbhDFQ4b.js +0 -1
- package/dist/assets/dylan-4K5wZgOx.js +0 -1
- package/dist/assets/ecl-BCQ-LzuG.js +0 -1
- package/dist/assets/edit-page-DlRqSgY9.js +0 -9
- package/dist/assets/eiffel-DjgNAio4.js +0 -1
- package/dist/assets/ellipsis-DidENKDy.js +0 -1
- package/dist/assets/ellipsis-vertical-DEH0lwkn.js +0 -1
- package/dist/assets/elm-BJzUTgDF.js +0 -1
- package/dist/assets/empty-state-BbLVXQU7.js +0 -1
- package/dist/assets/en-US-JRtp5zfw.js +0 -1
- package/dist/assets/erDiagram-Q2GNP2WA-CZOjIM5c.js +0 -60
- package/dist/assets/erlang-BMwCh1Tz.js +0 -1
- package/dist/assets/error-banner-frvr6JXK.js +0 -1
- package/dist/assets/error-panel-5I4mWGfs.js +0 -1
- package/dist/assets/es-ISEb5HNL.js +0 -5
- package/dist/assets/esm-BqofWdD5.js +0 -1
- package/dist/assets/esm-D1fwWXHg.js +0 -1
- package/dist/assets/eye-off-DgRJ-xBZ.js +0 -1
- package/dist/assets/factor-B-0VZGQP.js +0 -1
- package/dist/assets/factor-DuQK79vi.js +0 -1
- package/dist/assets/field-DaQqUJ5I.js +0 -1
- package/dist/assets/file-explorer-panel-B86r63YC.js +0 -26
- package/dist/assets/file-headphone-5_PGMxRL.js +0 -1
- package/dist/assets/file-icons-CRsc39Ny.js +0 -1
- package/dist/assets/file-l37OnSN4.js +0 -1
- package/dist/assets/fileToBase64-D7Ur9Qxq.js +0 -1
- package/dist/assets/floating-outline-Cj9Gdjkf.js +0 -1
- package/dist/assets/flowDiagram-NV44I4VS-D_6XQmDF.js +0 -162
- package/dist/assets/focus-BtOH5aLt.js +0 -1
- package/dist/assets/form-Dd-gRdD5.js +0 -2
- package/dist/assets/formats-BQHP_yQk.js +0 -1
- package/dist/assets/formatting-BCAZDWQ0.js +0 -1
- package/dist/assets/forth-CN0H2hBb.js +0 -1
- package/dist/assets/fortran-D-JaE1fl.js +0 -1
- package/dist/assets/fullscreen-k58KVlT-.js +0 -41
- package/dist/assets/gallery-page-BDI9wEUZ.js +0 -1
- package/dist/assets/ganttDiagram-JELNMOA3-KWj06bYC.js +0 -267
- package/dist/assets/gas-B-bID6UX.js +0 -1
- package/dist/assets/get-D7jeR2wg.js +0 -1
- package/dist/assets/gherkin-JGxOpXhU.js +0 -1
- package/dist/assets/gitGraph-G5XIXVHT-DhmryHL1.js +0 -1
- package/dist/assets/gitGraphDiagram-V2S2FVAM-B3wFQI4T.js +0 -65
- package/dist/assets/github-C3N4cuN4.js +0 -1
- package/dist/assets/glide-data-editor-QI6B6uKw.js +0 -132
- package/dist/assets/globals-Bu6OEURn.js +0 -1
- package/dist/assets/graphlib-V7iwZMUS.js +0 -1
- package/dist/assets/groovy-BHPB9Hfx.js +0 -1
- package/dist/assets/hasIn-DafhTYio.js +0 -1
- package/dist/assets/haskell-By6RbCCv.js +0 -1
- package/dist/assets/haxe-HQiVsOCF.js +0 -1
- package/dist/assets/home-page-B320ImBG.js +0 -4
- package/dist/assets/hooks-B5RY2sms.js +0 -1
- package/dist/assets/html-to-image-WCAzCguU.js +0 -2
- package/dist/assets/icons-DlzgV4KY.js +0 -1
- package/dist/assets/idl-B2iocbwq.js +0 -1
- package/dist/assets/image-BgkzrnsX.js +0 -1
- package/dist/assets/index-BjVgEJVi.js +0 -42
- package/dist/assets/index-CKRn_SiB.css +0 -2
- package/dist/assets/info-VBDWY6EO-DrmKMqYO.js +0 -1
- package/dist/assets/infoDiagram-HS3SLOUP-DihiLNx1.js +0 -2
- package/dist/assets/input-DNCT6U6R.js +0 -1
- package/dist/assets/isArrayLikeObject-ODovYgPQ.js +0 -1
- package/dist/assets/isEmpty-Do0cOI51.js +0 -1
- package/dist/assets/isValid-U-UFA9KI.js +0 -1
- package/dist/assets/javascript-CTjlnOSz.js +0 -1
- package/dist/assets/journeyDiagram-XKPGCS4Q-CyzBM2zk.js +0 -139
- package/dist/assets/julia-BiUkdI9P.js +0 -1
- package/dist/assets/kanban-definition-3W4ZIXB7-9wLZ4rew.js +0 -89
- package/dist/assets/kbd-BUtlbGdu.js +0 -1
- package/dist/assets/kiosk-mode-CJ7p0kAg.js +0 -1
- package/dist/assets/label-C89F4v17.js +0 -1
- package/dist/assets/layout-CnhRBcnG.js +0 -9
- package/dist/assets/linear-BICTUQLW.js +0 -1
- package/dist/assets/link-dU_vDDSR.js +0 -1
- package/dist/assets/links-C19POYUQ.js +0 -1
- package/dist/assets/links-DOybeRem.js +0 -1
- package/dist/assets/livescript-uNIpKRlq.js +0 -1
- package/dist/assets/logs-panel-DG3RlQaY.js +0 -1
- package/dist/assets/loro_wasm_bg-BQvuJIS2.js +0 -1
- package/dist/assets/lua-CMIwWFMm.js +0 -1
- package/dist/assets/maps-B4xARV9R.js +0 -1
- package/dist/assets/marimo-icons-Dp8wmdDL.js +0 -1
- package/dist/assets/markdown-renderer-BDdzHOwK.js +0 -5
- package/dist/assets/mathematica-eDJrChdG.js +0 -1
- package/dist/assets/mbox-zqvBlhy3.js +0 -1
- package/dist/assets/memoize-BwAF2XN5.js +0 -1
- package/dist/assets/menu-items-Dtw5N98_.js +0 -1
- package/dist/assets/merge-BOaDhCTH.js +0 -1
- package/dist/assets/mermaid-4DMBBIKO--O9SSBwI.js +0 -1
- package/dist/assets/mermaid-BPufPrIN.js +0 -11
- package/dist/assets/mermaid-parser.core-CvPV98yl.js +0 -4
- package/dist/assets/message-circle-DiHwtSG8.js +0 -1
- package/dist/assets/min-DWLDRnm3.js +0 -1
- package/dist/assets/mindmap-definition-VGOIOE7T-B5l11lp6.js +0 -68
- package/dist/assets/mirc-DA5aApOX.js +0 -1
- package/dist/assets/mllike-bIsNpdn1.js +0 -1
- package/dist/assets/modelica-0mx6heI0.js +0 -1
- package/dist/assets/mscgen-BKLWiiDn.js +0 -1
- package/dist/assets/multi-icon-CGRsWmew.js +0 -1
- package/dist/assets/multi-map-MSuUqmbC.js +0 -1
- package/dist/assets/mumps-5_kXgafg.js +0 -1
- package/dist/assets/name-cell-input-68gHDuvg.js +0 -1
- package/dist/assets/now-DNX1lT2d.js +0 -1
- package/dist/assets/nsis-DGDbP9K4.js +0 -1
- package/dist/assets/nsis-DOhuqhNG.js +0 -1
- package/dist/assets/ntriples-BWf6tqTo.js +0 -1
- package/dist/assets/number-overlay-editor-cvUhY9ie.js +0 -9
- package/dist/assets/numbers--nDjbAPa.js +0 -1
- package/dist/assets/octave-DmFvn7Va.js +0 -1
- package/dist/assets/once-hq2TLzOp.js +0 -1
- package/dist/assets/outline-panel-Dr0105mz.js +0 -1
- package/dist/assets/oz-TIwA1cRs.js +0 -1
- package/dist/assets/packages-panel-CZHZDUXZ.js +0 -1
- package/dist/assets/packet-DYOGHKS2-CwDZ6UjC.js +0 -1
- package/dist/assets/panel-context-aIZ10ULn.js +0 -1
- package/dist/assets/panels-DkMIu1eO.js +0 -1
- package/dist/assets/pascal-BFfHjByI.js +0 -1
- package/dist/assets/perl-iyEBGoKl.js +0 -1
- package/dist/assets/pick-neNJUP_8.js +0 -1
- package/dist/assets/pie-VRWISCQL-OxD1_FlH.js +0 -1
- package/dist/assets/pieDiagram-ADFJNKIX-ixj1Ihpk.js +0 -30
- package/dist/assets/pig-Du8JEd9u.js +0 -1
- package/dist/assets/play-BdC4C3dp.js +0 -1
- package/dist/assets/plus-BYq_Btg-.js +0 -1
- package/dist/assets/popover-AtoFZ7i4.js +0 -1
- package/dist/assets/powershell-rJPOSwVp.js +0 -1
- package/dist/assets/precisionRound-CU2C3Vxx.js +0 -1
- package/dist/assets/process-output-CGSREMph.js +0 -1
- package/dist/assets/properties-B7p1o35g.js +0 -1
- package/dist/assets/protobuf-DSVPm4uR.js +0 -1
- package/dist/assets/pug-5wW7Sn9S.js +0 -1
- package/dist/assets/pug-BBnJinJ-.js +0 -1
- package/dist/assets/puppet-CvB_7oA0.js +0 -1
- package/dist/assets/purify.es-BFDc-_i_.js +0 -2
- package/dist/assets/python-D-LGD-zO.js +0 -1
- package/dist/assets/q-s96Dgstm.js +0 -1
- package/dist/assets/quadrantDiagram-AYHSOK5B-DAgQxEHI.js +0 -7
- package/dist/assets/r-DCKN0Q_M.js +0 -1
- package/dist/assets/radar-ZZBFDIW7-DJSwOnYp.js +0 -1
- package/dist/assets/range-D-0CV4c0.js +0 -1
- package/dist/assets/react-vega-BVBnH7ue.js +0 -190
- package/dist/assets/react-vega-BfEZWy9T.js +0 -1
- package/dist/assets/readonly-python-code-3lQBDicq.js +0 -1
- package/dist/assets/refresh-ccw-CfYqAbmq.js +0 -1
- package/dist/assets/refresh-cw-CiOe0azG.js +0 -1
- package/dist/assets/renderShortcut-DrDh2657.js +0 -1
- package/dist/assets/request-registry-1QRLEb_0.js +0 -1
- package/dist/assets/requests-9-v2bhoi.js +0 -1
- package/dist/assets/requirementDiagram-UZGBJVZJ-DC0CM6P-.js +0 -64
- package/dist/assets/rotate-ccw-JPx2hOFZ.js +0 -1
- package/dist/assets/rpm-DKF6hj80.js +0 -1
- package/dist/assets/ruby-DrHWYpO-.js +0 -1
- package/dist/assets/run-page-DX60GJ1i.js +0 -1
- package/dist/assets/runs-Qc-nusQ0.js +0 -1
- package/dist/assets/sankeyDiagram-TZEHDZUN-DAWWzAvZ.js +0 -10
- package/dist/assets/sas-Bf--oEyw.js +0 -1
- package/dist/assets/save-bKSHuTCo.js +0 -1
- package/dist/assets/scheme-BZSq5_CL.js +0 -1
- package/dist/assets/scratchpad-panel-DxI-sH1n.js +0 -1
- package/dist/assets/secrets-panel-DWMqzwkS.js +0 -1
- package/dist/assets/select-BwwUWhww.js +0 -1
- package/dist/assets/sequenceDiagram-WL72ISMW-Dmh7vbtw.js +0 -145
- package/dist/assets/session-DdnWW30b.js +0 -1
- package/dist/assets/session-panel-DxZNtbiE.js +0 -1
- package/dist/assets/settings-C1bg8A2T.js +0 -1
- package/dist/assets/share-0LPgOyiW.js +0 -1
- package/dist/assets/shell-C5LsobAY.js +0 -1
- package/dist/assets/sieve-B6cTRfjv.js +0 -1
- package/dist/assets/slides-component-BZCkobYT.css +0 -1
- package/dist/assets/slides-component-ncUJNz7U.js +0 -1
- package/dist/assets/smalltalk-B-ZeF8oP.js +0 -1
- package/dist/assets/snippets-panel-CFXjJW29.js +0 -1
- package/dist/assets/sparkles-B79Qf6ma.js +0 -1
- package/dist/assets/sparql-hKgXdTt3.js +0 -1
- package/dist/assets/spec-DqqZbNbU.js +0 -1
- package/dist/assets/spinner-C5wIpWgQ.js +0 -1
- package/dist/assets/square-COtNnHUC.js +0 -1
- package/dist/assets/square-function-BecUoMho.js +0 -1
- package/dist/assets/src-lJewPvdk.js +0 -1
- package/dist/assets/state-BFn0AerH.js +0 -3
- package/dist/assets/state-BZaEj59U.js +0 -1
- package/dist/assets/state-BgrGQPFs.js +0 -1
- package/dist/assets/state-CDUQVvOe.js +0 -1
- package/dist/assets/stateDiagram-FKZM4ZOC-D9krI4Nw.js +0 -1
- package/dist/assets/stateDiagram-v2-4FDKWEC3-CbPEQmLi.js +0 -1
- package/dist/assets/stex-Dn4qnyVB.js +0 -1
- package/dist/assets/strings-pfr2N700.js +0 -2
- package/dist/assets/stylus-MJ5VouuS.js +0 -1
- package/dist/assets/swift-jqL65uqK.js +0 -1
- package/dist/assets/switch-YkPg_CVc.js +0 -1
- package/dist/assets/table-B03CpBmt.js +0 -1
- package/dist/assets/table-qC3alE1r.js +0 -1
- package/dist/assets/tcl-D9FDKTky.js +0 -1
- package/dist/assets/terminal-BEaHyVIQ.js +0 -62
- package/dist/assets/textarea-CWy4stSy.js +0 -1
- package/dist/assets/textile-Ne1MkNjB.js +0 -1
- package/dist/assets/time-DLcLlk0u.js +0 -1
- package/dist/assets/timeline-definition-IT6M3QCI-DknnNgba.js +0 -61
- package/dist/assets/toDate-BGIVWsZ9.js +0 -1
- package/dist/assets/toFinite-2vTWYoIX.js +0 -1
- package/dist/assets/toNumber-BvwE1TMv.js +0 -1
- package/dist/assets/toml-Ba1TjbvG.js +0 -1
- package/dist/assets/tooltip-DmqhBBs6.js +0 -1
- package/dist/assets/tracing-CIygWG5q.js +0 -1
- package/dist/assets/tracing-panel-Dk7FE-7H.js +0 -2
- package/dist/assets/trash-2-DunI72kV.js +0 -1
- package/dist/assets/trash-9_cXnavq.js +0 -1
- package/dist/assets/tree-B2IkUHDB.js +0 -3
- package/dist/assets/treemap-GDKQZRPO-DQhwLg1W.js +0 -1
- package/dist/assets/triangle-alert-DJ8dAd4j.js +0 -1
- package/dist/assets/troff-ClRZFpM8.js +0 -1
- package/dist/assets/ttcn-JOxk9-wl.js +0 -1
- package/dist/assets/ttcn-cfg-D-oWP0t7.js +0 -1
- package/dist/assets/turtle-CfJStbTs.js +0 -1
- package/dist/assets/types-BteCqkNg.js +0 -1
- package/dist/assets/useAddCell-BZ5oFC7U.js +0 -1
- package/dist/assets/useAsyncData-aCoWDe-l.js +0 -1
- package/dist/assets/useBoolean-Dk1Mb_so.js +0 -1
- package/dist/assets/useCellActionButton-Dd3hgOb6.js +0 -1
- package/dist/assets/useDateFormatter-BEz9SEXo.js +0 -1
- package/dist/assets/useDebounce-LVL1r3-M.js +0 -1
- package/dist/assets/useDeleteCell-BHcPGuXL.js +0 -1
- package/dist/assets/useDependencyPanelTab-B94SJnJl.js +0 -1
- package/dist/assets/useEventListener-DGjKht0c.js +0 -1
- package/dist/assets/useHotkey-DALUNe8I.js +0 -1
- package/dist/assets/useIframeCapabilities-C8jvQ1Lj.js +0 -1
- package/dist/assets/useInstallPackage-CeM6oPsT.js +0 -1
- package/dist/assets/useInterval-BTxxJQ7C.js +0 -1
- package/dist/assets/useLifecycle-N3bfh_O1.js +0 -1
- package/dist/assets/useNotebookActions-PmHNCN16.js +0 -1
- package/dist/assets/useNumberFormatter-wQU1z0W_.js +0 -1
- package/dist/assets/usePress-BXMIcLWP.js +0 -7
- package/dist/assets/useRunCells-BJn5ZEb6.js +0 -1
- package/dist/assets/useSplitCell-Bfb8riCm.js +0 -1
- package/dist/assets/useTheme-DCDmxPD0.js +0 -1
- package/dist/assets/utils-8btzWeZg.js +0 -1
- package/dist/assets/utils-BZwMGX81.js +0 -61
- package/dist/assets/vb-DtMAcbIy.js +0 -1
- package/dist/assets/vbscript-CUB17r-X.js +0 -1
- package/dist/assets/vega-component-DtSTT5wO.js +0 -1
- package/dist/assets/vega-loader.browser-DXARUlxo.js +0 -6
- package/dist/assets/velocity-Dwo66olV.js +0 -1
- package/dist/assets/verilog-DuexQCyX.js +0 -1
- package/dist/assets/vhdl-Mgyyw75F.js +0 -1
- package/dist/assets/webidl-DZaOA0mR.js +0 -1
- package/dist/assets/worker-BPV9SmHz.js +0 -120
- package/dist/assets/workflow-BAgKBPlq.js +0 -1
- package/dist/assets/write-secret-modal-CInxHVWJ.js +0 -1
- package/dist/assets/x-Bv2rCglF.js +0 -1
- package/dist/assets/xquery-DpQixCSm.js +0 -1
- package/dist/assets/xychartDiagram-PRI3JC2R-DgjhbmH4.js +0 -7
- package/dist/assets/yacas-B1gHpHXz.js +0 -1
- package/dist/assets/youtube-D6LtMx2w.js +0 -1
- package/dist/assets/z80-IF9HkI5m.js +0 -1
- package/src/components/slides/slides-component.tsx +0 -158
- /package/dist/assets/{Deferred-DxQeE5uh.js → Deferred-Bk0r4KDZ.js} +0 -0
- /package/dist/assets/{SSRProvider-D3zWcDme.js → SSRProvider-1sSrgJwI.js} +0 -0
- /package/dist/assets/{apl-CArdF_Ee.js → apl-BYqtBlld.js} +0 -0
- /package/dist/assets/{asciiarmor-rf6n_8YZ.js → asciiarmor-DUW0Iozu.js} +0 -0
- /package/dist/assets/{asn1-Bl4vlAxN.js → asn1-ClnHsHDP.js} +0 -0
- /package/dist/assets/{azure-C2phEgLq.js → azure-BGC9_IAe.js} +0 -0
- /package/dist/assets/{blob-CTort_or.js → blob-CpeNXBj-.js} +0 -0
- /package/dist/assets/{brainfuck-CWRjg_-2.js → brainfuck-FB_E90sw.js} +0 -0
- /package/dist/assets/{bundle.esm-BIoPrMH_.js → bundle.esm-sq57iaa5.js} +0 -0
- /package/dist/assets/{cjs-D5tzp-Y6.js → cjs-BRGiG41H.js} +0 -0
- /package/dist/assets/{clike-B4xEkWXN.js → clike-B7PZCnaI.js} +0 -0
- /package/dist/assets/{clojure-04C6o-hL.js → clojure-DtLrahuY.js} +0 -0
- /package/dist/assets/{clsx-XrBBnd7s.js → clsx-Dz_KRrWq.js} +0 -0
- /package/dist/assets/{cmake-Dh64a3j4.js → cmake-DGfhkTv5.js} +0 -0
- /package/dist/assets/{cobol-B24ofC4q.js → cobol-Cpbk-vCU.js} +0 -0
- /package/dist/assets/{coffeescript-B0i0O-b-.js → coffeescript-BATQF8kE.js} +0 -0
- /package/dist/assets/{commonlisp-NXg-Bye5.js → commonlisp-C9N48zGs.js} +0 -0
- /package/dist/assets/{createLucideIcon-w-Qo9n0R.js → createLucideIcon-D5guW7EU.js} +0 -0
- /package/dist/assets/{crystal-BOjNTZjx.js → crystal-D2nrZv1k.js} +0 -0
- /package/dist/assets/{css-C_vknI7E.js → css-DNoZFvlx.js} +0 -0
- /package/dist/assets/{cypher-DwQoZmH9.js → cypher-6TFCZzgE.js} +0 -0
- /package/dist/assets/{d-xedQGhmO.js → d-DHH1X7PS.js} +0 -0
- /package/dist/assets/{defaultLocale-BLne0bXb.js → defaultLocale-C92Rrpmf.js} +0 -0
- /package/dist/assets/{defaultLocale-JieDVWC_.js → defaultLocale-D_rSvXvJ.js} +0 -0
- /package/dist/assets/{diff-ChFnp8JW.js → diff-DNDp4fOd.js} +0 -0
- /package/dist/assets/{dtd-KbDPyUs4.js → dtd-BYdB19UC.js} +0 -0
- /package/dist/assets/{dylan-0KH4Nowk.js → dylan-3sqQfqPE.js} +0 -0
- /package/dist/assets/{ecl-B5iM_b7s.js → ecl-79y60Sdt.js} +0 -0
- /package/dist/assets/{eiffel-sVM1STl5.js → eiffel-Cy1qkCDz.js} +0 -0
- /package/dist/assets/{elm-BlNENVB6.js → elm-DrRzHEES.js} +0 -0
- /package/dist/assets/{emotion-is-prop-valid.esm-DYxi7n2b.js → emotion-is-prop-valid.esm-UWgehH47.js} +0 -0
- /package/dist/assets/{erlang-C0uOSFok.js → erlang-D3BTE-y0.js} +0 -0
- /package/dist/assets/{errors-CZb6hI2x.js → errors-DVkmLSXX.js} +0 -0
- /package/dist/assets/{events-Qeh-bHlj.js → events-CWUex2qo.js} +0 -0
- /package/dist/assets/{extends-Co37_JfG.js → extends-q1GgI0Ag.js} +0 -0
- /package/dist/assets/{forth-Dkvgp5v0.js → forth-DGce5eRS.js} +0 -0
- /package/dist/assets/{fortran-DWGt9NN5.js → fortran-CS97oQQW.js} +0 -0
- /package/dist/assets/{gas-ucVnXY28.js → gas-7e_zvN4u.js} +0 -0
- /package/dist/assets/{gherkin-BRjIORXo.js → gherkin-3f1nzx4Y.js} +0 -0
- /package/dist/assets/{groovy-BwyAyRPC.js → groovy-Bn1MvSId.js} +0 -0
- /package/dist/assets/{haskell-Cs-Andhs.js → haskell-qtyafuM6.js} +0 -0
- /package/dist/assets/{haxe-BW46cyaq.js → haxe-CQwWk_Ht.js} +0 -0
- /package/dist/assets/{idl-BGiQ18ct.js → idl-BnUby_AK.js} +0 -0
- /package/dist/assets/{invariant-CkiqGLcK.js → invariant-BUdrueMv.js} +0 -0
- /package/dist/assets/{javascript-I9_Q-6Fg.js → javascript-BFKHKHDt.js} +0 -0
- /package/dist/assets/{jsx-runtime-Blw4afVn.js → jsx-runtime-BqBOg78p.js} +0 -0
- /package/dist/assets/{julia-Wfay9brY.js → julia-BZeLe6be.js} +0 -0
- /package/dist/assets/{livescript-J6EnSQWw.js → livescript-LB6oZdgV.js} +0 -0
- /package/dist/assets/{loro_wasm_bg-B_AVgvOe.js → loro_wasm_bg-DSqjo7Pf.js} +0 -0
- /package/dist/assets/{lua-BO_knq_Q.js → lua-D73MeF_d.js} +0 -0
- /package/dist/assets/{main-BNL5rxQw.js → main-B0OX4z33.js} +0 -0
- /package/dist/assets/{mathematica-DU8ikXHk.js → mathematica-SckqhulL.js} +0 -0
- /package/dist/assets/{mbox-Dzzw6MxI.js → mbox-DpdjYR8y.js} +0 -0
- /package/dist/assets/{micromark-factory-space-DzSMahmM.js → micromark-factory-space-8Uk-uN5W.js} +0 -0
- /package/dist/assets/{mirc-82uLLidC.js → mirc-9Mp8ii_5.js} +0 -0
- /package/dist/assets/{mllike-WTbu2PGL.js → mllike-CteazA5r.js} +0 -0
- /package/dist/assets/{modelica-w4uKZrXu.js → modelica-DruS-uJ8.js} +0 -0
- /package/dist/assets/{mscgen-Bf7m7BDT.js → mscgen-Dqm6ZJyo.js} +0 -0
- /package/dist/assets/{mumps-Bicgf-gh.js → mumps-DAwJeUn4.js} +0 -0
- /package/dist/assets/{ntriples-CyotCBD4.js → ntriples-D5_p8srT.js} +0 -0
- /package/dist/assets/{objectWithoutPropertiesLoose-smPWkHxB.js → objectWithoutPropertiesLoose-BQlZis3f.js} +0 -0
- /package/dist/assets/{octave-BP7UuRZ-.js → octave-StxXX2kg.js} +0 -0
- /package/dist/assets/{ordinal-DuTuuUgV.js → ordinal-DTOdb5Da.js} +0 -0
- /package/dist/assets/{oz-C9dsRBsA.js → oz-CZcv8Gut.js} +0 -0
- /package/dist/assets/{pascal-Do-HizJs.js → pascal-BTSTYf7j.js} +0 -0
- /package/dist/assets/{paths-BzSgteR-.js → paths-DsQUzvvb.js} +0 -0
- /package/dist/assets/{perl-DkWjygEp.js → perl-D3WNCnWS.js} +0 -0
- /package/dist/assets/{pig-C5cO5Lzu.js → pig-m1LfHx7X.js} +0 -0
- /package/dist/assets/{powershell-B7iMkhi7.js → powershell-C7evXFhK.js} +0 -0
- /package/dist/assets/{preload-helper-D2MJg03u.js → preload-helper-BFv3hW2s.js} +0 -0
- /package/dist/assets/{prop-types-BFRDxSKF.js → prop-types-D9vVr8W2.js} +0 -0
- /package/dist/assets/{properties-BojS2wNP.js → properties-CX3A241c.js} +0 -0
- /package/dist/assets/{protobuf-C3jQLUT4.js → protobuf-CEqDY4vo.js} +0 -0
- /package/dist/assets/{puppet-BIu7yw7Q.js → puppet-DlFBPmUd.js} +0 -0
- /package/dist/assets/{python-BvK-LeGt.js → python-kNH0316T.js} +0 -0
- /package/dist/assets/{q-DxTFD_3l.js → q-KQ_N2MXi.js} +0 -0
- /package/dist/assets/{r-D9kMb9Pl.js → r-Dj_WdT8c.js} +0 -0
- /package/dist/assets/{range-1DwpgXvM.js → range-Bc7-zhbC.js} +0 -0
- /package/dist/assets/{react-icons.esm-BUYTQ32a.js → react-icons.esm-B8rtE4cC.js} +0 -0
- /package/dist/assets/{react-resizable-panels.browser.esm-BUNcfKXO.js → react-resizable-panels.browser.esm-xQHRvEag.js} +0 -0
- /package/dist/assets/{requests-CsNnmup3.js → requests-DdU2Ap88.js} +0 -0
- /package/dist/assets/{rpm-DMBmptJ_.js → rpm-C3VyCeYo.js} +0 -0
- /package/dist/assets/{ruby-Bi66LQBu.js → ruby-9RpAFOsP.js} +0 -0
- /package/dist/assets/{sas-DDMCLlZz.js → sas-CFBIkOrK.js} +0 -0
- /package/dist/assets/{scheme-MngEI34z.js → scheme-n4WmsRUQ.js} +0 -0
- /package/dist/assets/{shell-BSVgrHzY.js → shell-BDAgpmgp.js} +0 -0
- /package/dist/assets/{sieve-DvUWNrPv.js → sieve-BVNIn7Yz.js} +0 -0
- /package/dist/assets/{simple-mode-DxeVZov3.js → simple-mode-C-nP-kAb.js} +0 -0
- /package/dist/assets/{smalltalk-CeZ66qpG.js → smalltalk-C7nE9dmX.js} +0 -0
- /package/dist/assets/{sparql-oFx_t7AO.js → sparql-DPFIzZM3.js} +0 -0
- /package/dist/assets/{stex-jWatZkll.js → stex--zUcZkER.js} +0 -0
- /package/dist/assets/{stylus-KE-9LQSK.js → stylus-DGcebGVS.js} +0 -0
- /package/dist/assets/{swift-A-ZhZWU8.js → swift-DiAJo7C6.js} +0 -0
- /package/dist/assets/{tcl-CREXWwrr.js → tcl-DpD837eJ.js} +0 -0
- /package/dist/assets/{textile-Cj8L4qVJ.js → textile-DEqOicm6.js} +0 -0
- /package/dist/assets/{timer-DBQ_H0G1.js → timer-DwQQMK5T.js} +0 -0
- /package/dist/assets/{toml-BwSlV2Pt.js → toml-BdA-7EhB.js} +0 -0
- /package/dist/assets/{troff-DWonWT6V.js → troff-iGRgQHLe.js} +0 -0
- /package/dist/assets/{ttcn--CHQduBW.js → ttcn-CLQ1c3XL.js} +0 -0
- /package/dist/assets/{ttcn-cfg-Cei3Mnk3.js → ttcn-cfg-BFj90pgD.js} +0 -0
- /package/dist/assets/{turtle-BaGuNPTf.js → turtle-DwFVq6UC.js} +0 -0
- /package/dist/assets/{types-DOdUT9LT.js → types-D8yP89N6.js} +0 -0
- /package/dist/assets/{use-toast-BDYuj3zG.js → use-toast-PYIpV284.js} +0 -0
- /package/dist/assets/{useDeepCompareMemoize-D0WTlCXt.js → useDeepCompareMemoize-pHFuC8FJ.js} +0 -0
- /package/dist/assets/{useNonce-CbdaHKzX.js → useNonce-DfoVjkkH.js} +0 -0
- /package/dist/assets/{uuid-DXdzqzcr.js → uuid-CCkGk34L.js} +0 -0
- /package/dist/assets/{vb-DQgwufRi.js → vb-gm5P9Pn5.js} +0 -0
- /package/dist/assets/{vbscript-B66XhQhu.js → vbscript-gQvKiDdU.js} +0 -0
- /package/dist/assets/{velocity-D7CxwqhZ.js → velocity-CkfRmD_d.js} +0 -0
- /package/dist/assets/{verilog-SCT9zECa.js → verilog-D3b05tu1.js} +0 -0
- /package/dist/assets/{vhdl-Bz6d75os.js → vhdl-DRo1SU3e.js} +0 -0
- /package/dist/assets/{webidl-B7LbwCfy.js → webidl-DFtmGFay.js} +0 -0
- /package/dist/assets/{ws-BApgRfsy.js → ws-BV-4clkP.js} +0 -0
- /package/dist/assets/{xquery-BOMK2ySj.js → xquery-CzUikajR.js} +0 -0
- /package/dist/assets/{yacas-Yk74VuuD.js → yacas-BqvQWbYq.js} +0 -0
- /package/dist/assets/{z80-BQKQ7DhX.js → z80-CQqkYd-2.js} +0 -0
|
@@ -5,6 +5,11 @@ import { cellId } from "@/__tests__/branded";
|
|
|
5
5
|
import type { CellMessage } from "../../kernel/messages";
|
|
6
6
|
import { formatLogTimestamp, getCellLogsForMessage } from "../logs";
|
|
7
7
|
|
|
8
|
+
// Stable mock reference so every (re)import of use-toast sees the same spy,
|
|
9
|
+
// even after vi.resetModules() clears the module cache between tests.
|
|
10
|
+
const { toastMock } = vi.hoisted(() => ({ toastMock: vi.fn() }));
|
|
11
|
+
vi.mock("@/components/ui/use-toast", () => ({ toast: toastMock }));
|
|
12
|
+
|
|
8
13
|
describe("getCellLogsForMessage", () => {
|
|
9
14
|
beforeEach(() => {
|
|
10
15
|
// Mock console.log to avoid cluttering test output
|
|
@@ -324,6 +329,102 @@ describe("getCellLogsForMessage", () => {
|
|
|
324
329
|
});
|
|
325
330
|
});
|
|
326
331
|
|
|
332
|
+
describe("getCellLogsForMessage - internal error toast", () => {
|
|
333
|
+
// Re-imported per test after vi.resetModules() so the module-level
|
|
334
|
+
// `didAlreadyToastError` flag starts fresh and all jotai atom references
|
|
335
|
+
// (initialModeAtom, etc.) match the versions used by the reset logs.ts.
|
|
336
|
+
let getLogs: typeof import("../logs").getCellLogsForMessage;
|
|
337
|
+
let store: typeof import("@/core/state/jotai").store;
|
|
338
|
+
let initialModeAtom: typeof import("@/core/mode").initialModeAtom;
|
|
339
|
+
|
|
340
|
+
beforeEach(async () => {
|
|
341
|
+
vi.spyOn(console, "log").mockImplementation(() => {
|
|
342
|
+
// no-op
|
|
343
|
+
});
|
|
344
|
+
vi.resetModules();
|
|
345
|
+
({ getCellLogsForMessage: getLogs } = await import("../logs"));
|
|
346
|
+
({ store } = await import("@/core/state/jotai"));
|
|
347
|
+
({ initialModeAtom } = await import("@/core/mode"));
|
|
348
|
+
});
|
|
349
|
+
|
|
350
|
+
afterEach(() => {
|
|
351
|
+
vi.restoreAllMocks();
|
|
352
|
+
vi.clearAllMocks();
|
|
353
|
+
});
|
|
354
|
+
|
|
355
|
+
const makeErrorCellMessage = (id: CellMessage["cell_id"]): CellMessage => ({
|
|
356
|
+
cell_id: id,
|
|
357
|
+
console: [],
|
|
358
|
+
output: {
|
|
359
|
+
mimetype: "application/vnd.marimo+error",
|
|
360
|
+
data: [
|
|
361
|
+
{
|
|
362
|
+
type: "exception",
|
|
363
|
+
exception_type: "ValueError",
|
|
364
|
+
msg: "something exploded",
|
|
365
|
+
traceback: ["File foo.py, line 1", "ValueError: something exploded"],
|
|
366
|
+
},
|
|
367
|
+
],
|
|
368
|
+
channel: "marimo-error",
|
|
369
|
+
timestamp: 0,
|
|
370
|
+
} as unknown as CellMessage["output"],
|
|
371
|
+
status: "idle",
|
|
372
|
+
stale_inputs: null,
|
|
373
|
+
timestamp: 0,
|
|
374
|
+
});
|
|
375
|
+
|
|
376
|
+
test("shows toast for internal errors in app (read) mode", () => {
|
|
377
|
+
store.set(initialModeAtom, "read");
|
|
378
|
+
|
|
379
|
+
getLogs(makeErrorCellMessage(cellId("cell-err-1")));
|
|
380
|
+
|
|
381
|
+
expect(toastMock).toHaveBeenCalledTimes(1);
|
|
382
|
+
expect(toastMock).toHaveBeenCalledWith(
|
|
383
|
+
expect.objectContaining({
|
|
384
|
+
title: "An internal error occurred",
|
|
385
|
+
variant: "danger",
|
|
386
|
+
}),
|
|
387
|
+
);
|
|
388
|
+
});
|
|
389
|
+
|
|
390
|
+
test("does not show toast for internal errors in edit mode", () => {
|
|
391
|
+
store.set(initialModeAtom, "edit");
|
|
392
|
+
|
|
393
|
+
getLogs(makeErrorCellMessage(cellId("cell-err-2")));
|
|
394
|
+
|
|
395
|
+
expect(toastMock).not.toHaveBeenCalled();
|
|
396
|
+
});
|
|
397
|
+
|
|
398
|
+
test("edit-mode errors do not consume the once-per-session toast slot", () => {
|
|
399
|
+
// Errors received while in edit mode should be silently skipped...
|
|
400
|
+
store.set(initialModeAtom, "edit");
|
|
401
|
+
getLogs(makeErrorCellMessage(cellId("cell-err-3")));
|
|
402
|
+
expect(toastMock).not.toHaveBeenCalled();
|
|
403
|
+
|
|
404
|
+
// ...and a subsequent error in app mode should still toast.
|
|
405
|
+
store.set(initialModeAtom, "read");
|
|
406
|
+
getLogs(makeErrorCellMessage(cellId("cell-err-4")));
|
|
407
|
+
expect(toastMock).toHaveBeenCalledTimes(1);
|
|
408
|
+
});
|
|
409
|
+
|
|
410
|
+
test("toast only fires once across multiple app-mode errors", () => {
|
|
411
|
+
store.set(initialModeAtom, "read");
|
|
412
|
+
|
|
413
|
+
getLogs(makeErrorCellMessage(cellId("cell-err-5")));
|
|
414
|
+
getLogs(makeErrorCellMessage(cellId("cell-err-6")));
|
|
415
|
+
|
|
416
|
+
expect(toastMock).toHaveBeenCalledTimes(1);
|
|
417
|
+
});
|
|
418
|
+
|
|
419
|
+
test("suppresses toast when initial mode has not been set", () => {
|
|
420
|
+
// Leave initialModeAtom at its default (undefined); getInitialAppMode
|
|
421
|
+
// will throw and the logic should swallow it without toasting.
|
|
422
|
+
getLogs(makeErrorCellMessage(cellId("cell-err-7")));
|
|
423
|
+
|
|
424
|
+
expect(toastMock).not.toHaveBeenCalled();
|
|
425
|
+
});
|
|
426
|
+
});
|
|
427
|
+
|
|
327
428
|
describe("formatLogTimestamp", () => {
|
|
328
429
|
test("formats unix timestamp correctly", () => {
|
|
329
430
|
// January 1, 2024, 12:00:00 PM UTC
|
package/src/core/cells/cells.ts
CHANGED
|
@@ -874,6 +874,24 @@ const {
|
|
|
874
874
|
cellHandles: nextCellHandles,
|
|
875
875
|
};
|
|
876
876
|
},
|
|
877
|
+
/**
|
|
878
|
+
* Rebuild the MultiColumn tree using each cell's `config.column` value.
|
|
879
|
+
*
|
|
880
|
+
* Used after a transaction whose `set-config` changes updated cells'
|
|
881
|
+
* column metadata without physically moving them in the tree. Cells with
|
|
882
|
+
* `config.column == null` inherit the column of the previous cell in the
|
|
883
|
+
* given order (see `MultiColumn.fromIdsAndColumns`), which lets the server
|
|
884
|
+
* send column changes only at column boundaries.
|
|
885
|
+
*/
|
|
886
|
+
rebuildCellColumns: (state, action: { cellIds: CellId[] }) => {
|
|
887
|
+
const newCellIds = MultiColumn.fromIdsAndColumns(
|
|
888
|
+
action.cellIds.map((id) => [
|
|
889
|
+
id,
|
|
890
|
+
state.cellData[id]?.config.column ?? null,
|
|
891
|
+
]),
|
|
892
|
+
);
|
|
893
|
+
return { ...state, cellIds: newCellIds };
|
|
894
|
+
},
|
|
877
895
|
setCellCodes: (
|
|
878
896
|
state,
|
|
879
897
|
action: {
|
|
@@ -349,6 +349,7 @@ export function toDocumentChanges(
|
|
|
349
349
|
case "prepareForRun":
|
|
350
350
|
case "handleCellMessage":
|
|
351
351
|
case "setCellIds":
|
|
352
|
+
case "rebuildCellColumns":
|
|
352
353
|
case "setCellCodes":
|
|
353
354
|
case "setCells":
|
|
354
355
|
case "setStdinResponse":
|
|
@@ -624,7 +625,24 @@ export function applyTransactionChanges(
|
|
|
624
625
|
): void {
|
|
625
626
|
const cancelled = cancelledCellIds(changes);
|
|
626
627
|
|
|
627
|
-
|
|
628
|
+
// Process set-config changes after everything else. The tree must be fully
|
|
629
|
+
// restructured (create-cell, delete-cell, reorder-cells, move-cell) before
|
|
630
|
+
// we start applying column metadata, since the follow-up rebuildCellColumns
|
|
631
|
+
// step interprets each cell's config.column against the *final* flat order.
|
|
632
|
+
// Sorting is stable within each group.
|
|
633
|
+
const sortedChanges: TransactionChange[] = [
|
|
634
|
+
...changes.filter((c) => c.type !== "set-config"),
|
|
635
|
+
...changes.filter((c) => c.type === "set-config"),
|
|
636
|
+
];
|
|
637
|
+
|
|
638
|
+
// Track whether any change updated a cell's column, and remember the final
|
|
639
|
+
// flat order produced by a reorder-cells change (if any). After all changes
|
|
640
|
+
// are applied, these are used to rebuild the MultiColumn tree so that cells
|
|
641
|
+
// physically move to the column their metadata says they belong in.
|
|
642
|
+
let hasColumnChange = false;
|
|
643
|
+
let reorderOrder: CellId[] | null = null;
|
|
644
|
+
|
|
645
|
+
for (const change of sortedChanges) {
|
|
628
646
|
if (
|
|
629
647
|
cancelled.size > 0 &&
|
|
630
648
|
"cellId" in change &&
|
|
@@ -632,11 +650,26 @@ export function applyTransactionChanges(
|
|
|
632
650
|
) {
|
|
633
651
|
continue;
|
|
634
652
|
}
|
|
653
|
+
if (change.type === "set-config" && change.column != null) {
|
|
654
|
+
hasColumnChange = true;
|
|
655
|
+
}
|
|
656
|
+
if (change.type === "create-cell" && change.config?.column != null) {
|
|
657
|
+
hasColumnChange = true;
|
|
658
|
+
}
|
|
659
|
+
if (change.type === "reorder-cells") {
|
|
660
|
+
reorderOrder = change.cellIds as CellId[];
|
|
661
|
+
}
|
|
635
662
|
for (const action of fromDocumentChanges([change], getCurrentCellIds)) {
|
|
636
663
|
// @ts-expect-error - TypeScript is not smart enough to know we have correctly mapped type -> payload
|
|
637
664
|
actions[action.type](action.payload);
|
|
638
665
|
}
|
|
639
666
|
}
|
|
667
|
+
|
|
668
|
+
if (hasColumnChange) {
|
|
669
|
+
actions.rebuildCellColumns({
|
|
670
|
+
cellIds: reorderOrder ?? getCurrentCellIds(),
|
|
671
|
+
});
|
|
672
|
+
}
|
|
640
673
|
}
|
|
641
674
|
|
|
642
675
|
// ---------------------------------------------------------------------------
|
package/src/core/cells/logs.ts
CHANGED
|
@@ -7,6 +7,7 @@ import { Strings } from "@/utils/strings";
|
|
|
7
7
|
import type { CellMessage, OutputMessage } from "../kernel/messages";
|
|
8
8
|
import { isErrorMime } from "../mime";
|
|
9
9
|
import type { CellId } from "./ids";
|
|
10
|
+
import { initialModeAtom } from "../mode";
|
|
10
11
|
import { store } from "../state/jotai";
|
|
11
12
|
import { tracebackModalAtom } from "../errors/traceback-atom";
|
|
12
13
|
import React from "react";
|
|
@@ -83,7 +84,14 @@ export function getCellLogsForMessage(cell: CellMessage): CellLog[] {
|
|
|
83
84
|
error.type === "internal",
|
|
84
85
|
);
|
|
85
86
|
|
|
86
|
-
|
|
87
|
+
// Only show the toast in app mode: edit mode already surfaces errors in
|
|
88
|
+
// the cell UI, so toasting there would be noisy and duplicative. Read the
|
|
89
|
+
// atom directly so an unset initial mode (e.g. in tests/islands) simply
|
|
90
|
+
// returns undefined instead of throwing and masking real errors.
|
|
91
|
+
const isAppMode = store.get(initialModeAtom) === "read";
|
|
92
|
+
|
|
93
|
+
// Only show toast once, and only in app mode
|
|
94
|
+
if (exceptionErrors.length > 0 && !didAlreadyToastError && isAppMode) {
|
|
87
95
|
didAlreadyToastError = true;
|
|
88
96
|
|
|
89
97
|
// Find first error with a traceback
|
|
@@ -9,9 +9,7 @@ exports[`snapshot all duplicate keymaps > default keymaps 2`] = `
|
|
|
9
9
|
},
|
|
10
10
|
{
|
|
11
11
|
"key": "ArrowDown",
|
|
12
|
-
"preventDefault": true,
|
|
13
12
|
"run": "run",
|
|
14
|
-
"stopPropagation": true,
|
|
15
13
|
},
|
|
16
14
|
{
|
|
17
15
|
"key": "ArrowDown",
|
|
@@ -27,9 +25,7 @@ exports[`snapshot all duplicate keymaps > default keymaps 2`] = `
|
|
|
27
25
|
},
|
|
28
26
|
{
|
|
29
27
|
"key": "ArrowUp",
|
|
30
|
-
"preventDefault": true,
|
|
31
28
|
"run": "run",
|
|
32
|
-
"stopPropagation": true,
|
|
33
29
|
},
|
|
34
30
|
{
|
|
35
31
|
"key": "ArrowUp",
|
|
@@ -118,15 +114,12 @@ exports[`snapshot all duplicate keymaps > vim keymaps 2`] = `
|
|
|
118
114
|
},
|
|
119
115
|
{
|
|
120
116
|
"key": "ArrowDown",
|
|
121
|
-
"preventDefault": true,
|
|
122
117
|
"run": "run",
|
|
123
|
-
"stopPropagation": true,
|
|
124
118
|
},
|
|
125
119
|
{
|
|
126
120
|
"key": "ArrowDown",
|
|
127
|
-
"
|
|
128
|
-
"
|
|
129
|
-
"shift": "selectLineDown",
|
|
121
|
+
"run": "<no name>",
|
|
122
|
+
"shift": "<no name>",
|
|
130
123
|
},
|
|
131
124
|
],
|
|
132
125
|
"ArrowUp": [
|
|
@@ -136,15 +129,12 @@ exports[`snapshot all duplicate keymaps > vim keymaps 2`] = `
|
|
|
136
129
|
},
|
|
137
130
|
{
|
|
138
131
|
"key": "ArrowUp",
|
|
139
|
-
"preventDefault": true,
|
|
140
132
|
"run": "run",
|
|
141
|
-
"stopPropagation": true,
|
|
142
133
|
},
|
|
143
134
|
{
|
|
144
135
|
"key": "ArrowUp",
|
|
145
|
-
"
|
|
146
|
-
"
|
|
147
|
-
"shift": "selectLineUp",
|
|
136
|
+
"run": "<no name>",
|
|
137
|
+
"shift": "<no name>",
|
|
148
138
|
},
|
|
149
139
|
],
|
|
150
140
|
"Backspace": [
|
|
@@ -169,8 +169,6 @@ function cellKeymaps({
|
|
|
169
169
|
},
|
|
170
170
|
{
|
|
171
171
|
key: "ArrowUp",
|
|
172
|
-
preventDefault: true,
|
|
173
|
-
stopPropagation: true,
|
|
174
172
|
run: (ev) => {
|
|
175
173
|
// Skip if we are in the middle of an autocompletion
|
|
176
174
|
const hasAutocomplete = completionStatus(ev.state);
|
|
@@ -188,8 +186,6 @@ function cellKeymaps({
|
|
|
188
186
|
},
|
|
189
187
|
{
|
|
190
188
|
key: "ArrowDown",
|
|
191
|
-
preventDefault: true,
|
|
192
|
-
stopPropagation: true,
|
|
193
189
|
run: (ev) => {
|
|
194
190
|
// Skip if we are in the middle of an autocompletion
|
|
195
191
|
const hasAutocomplete = completionStatus(ev.state);
|
|
@@ -1,8 +1,16 @@
|
|
|
1
1
|
/* Copyright 2026 Marimo. All rights reserved. */
|
|
2
2
|
|
|
3
3
|
import {
|
|
4
|
+
cursorCharLeft,
|
|
5
|
+
cursorCharRight,
|
|
6
|
+
cursorLineDown,
|
|
7
|
+
cursorLineUp,
|
|
4
8
|
insertNewlineAndIndent,
|
|
5
9
|
defaultKeymap as originalDefaultKeymap,
|
|
10
|
+
selectCharLeft,
|
|
11
|
+
selectCharRight,
|
|
12
|
+
selectLineDown,
|
|
13
|
+
selectLineUp,
|
|
6
14
|
toggleBlockComment,
|
|
7
15
|
toggleComment,
|
|
8
16
|
} from "@codemirror/commands";
|
|
@@ -13,7 +21,7 @@ import {
|
|
|
13
21
|
type KeyBinding,
|
|
14
22
|
keymap,
|
|
15
23
|
} from "@codemirror/view";
|
|
16
|
-
import { getCM, vim } from "@replit/codemirror-vim";
|
|
24
|
+
import { type CodeMirror, getCM, vim } from "@replit/codemirror-vim";
|
|
17
25
|
import type { KeymapConfig } from "@/core/config/config-schema";
|
|
18
26
|
import type { HotkeyProvider } from "@/core/hotkeys/hotkeys";
|
|
19
27
|
import { logNever } from "@/utils/assertNever";
|
|
@@ -62,6 +70,12 @@ export function keymapBundle(
|
|
|
62
70
|
},
|
|
63
71
|
),
|
|
64
72
|
),
|
|
73
|
+
// Arrow keys: use CodeMirror's cursor movement except in vim visual
|
|
74
|
+
// mode, where vim must handle them to maintain selection.
|
|
75
|
+
// The original cursorLineUp/Down bindings from the default keymap are
|
|
76
|
+
// filtered out (see defaultVimKeymap) because their preventDefault
|
|
77
|
+
// flag blocks vim's handler even when their run function returns false.
|
|
78
|
+
keymap.of(vimVisualModeArrowKeyBindings()),
|
|
65
79
|
// Base vim mode
|
|
66
80
|
vim({ status: false }),
|
|
67
81
|
// Custom vim keymaps for cell navigation
|
|
@@ -101,12 +115,22 @@ const overrideKeymap = (keymap: HotkeyProvider): readonly KeyBinding[] => {
|
|
|
101
115
|
};
|
|
102
116
|
|
|
103
117
|
const defaultVimKeymap = once(() => {
|
|
104
|
-
const toRemove = new Set([
|
|
118
|
+
const toRemove = new Set([
|
|
119
|
+
"Enter",
|
|
120
|
+
"Ctrl-v",
|
|
121
|
+
"ArrowUp",
|
|
122
|
+
"ArrowDown",
|
|
123
|
+
"ArrowLeft",
|
|
124
|
+
"ArrowRight",
|
|
125
|
+
]);
|
|
105
126
|
// Remove conflicting keys from the keymap
|
|
106
127
|
// Enter (<CR>) adds a new line
|
|
107
128
|
// - it should just go to the next line
|
|
108
129
|
// Ctrl-v goes to the bottom of the cell
|
|
109
130
|
// - should enter blockwise visual mode
|
|
131
|
+
// ArrowUp/ArrowDown (cursorLineUp/Down) always handle the event and have
|
|
132
|
+
// preventDefault, which blocks vim's handler from processing arrow keys.
|
|
133
|
+
// Replaced with visual-mode-aware wrappers in keymapBundle.
|
|
110
134
|
return defaultKeymap().filter(
|
|
111
135
|
(k) => !toRemove.has(k.key || k.mac || k.linux || k.win || ""),
|
|
112
136
|
);
|
|
@@ -155,6 +179,49 @@ function doubleCharacterListener(
|
|
|
155
179
|
]);
|
|
156
180
|
}
|
|
157
181
|
|
|
182
|
+
function isInVimVisualMode(cm: CodeMirror | undefined | null): boolean {
|
|
183
|
+
return cm?.state.vim?.visualMode === true;
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
/**
|
|
187
|
+
* In vim visual mode, arrow keys must be handled by vim to maintain selection.
|
|
188
|
+
* Wrap each arrow key's run and shift so they defer to vim in visual mode,
|
|
189
|
+
* but use CodeMirror's cursor commands in all other modes.
|
|
190
|
+
*/
|
|
191
|
+
function vimVisualModeArrowKeyBindings(): KeyBinding[] {
|
|
192
|
+
const wrap =
|
|
193
|
+
(cmd: Command): Command =>
|
|
194
|
+
(view) => {
|
|
195
|
+
if (isInVimVisualMode(getCM(view))) {
|
|
196
|
+
return false;
|
|
197
|
+
}
|
|
198
|
+
return cmd(view);
|
|
199
|
+
};
|
|
200
|
+
|
|
201
|
+
return [
|
|
202
|
+
{
|
|
203
|
+
key: "ArrowDown",
|
|
204
|
+
run: wrap(cursorLineDown),
|
|
205
|
+
shift: wrap(selectLineDown),
|
|
206
|
+
},
|
|
207
|
+
{
|
|
208
|
+
key: "ArrowUp",
|
|
209
|
+
run: wrap(cursorLineUp),
|
|
210
|
+
shift: wrap(selectLineUp),
|
|
211
|
+
},
|
|
212
|
+
{
|
|
213
|
+
key: "ArrowLeft",
|
|
214
|
+
run: wrap(cursorCharLeft),
|
|
215
|
+
shift: wrap(selectCharLeft),
|
|
216
|
+
},
|
|
217
|
+
{
|
|
218
|
+
key: "ArrowRight",
|
|
219
|
+
run: wrap(cursorCharRight),
|
|
220
|
+
shift: wrap(selectCharRight),
|
|
221
|
+
},
|
|
222
|
+
];
|
|
223
|
+
}
|
|
224
|
+
|
|
158
225
|
export const visibleForTesting = {
|
|
159
226
|
defaultKeymap,
|
|
160
227
|
defaultVimKeymap,
|
package/src/core/constants.ts
CHANGED
|
@@ -237,6 +237,7 @@ export class IslandsPyodideBridge implements RunRequests, EditRequests {
|
|
|
237
237
|
sendPdb = throwNotImplemented;
|
|
238
238
|
sendCreateFileOrFolder = throwNotImplemented;
|
|
239
239
|
sendDeleteFileOrFolder = throwNotImplemented;
|
|
240
|
+
sendCopyFileOrFolder = throwNotImplemented;
|
|
240
241
|
sendRenameFileOrFolder = throwNotImplemented;
|
|
241
242
|
sendUpdateFile = throwNotImplemented;
|
|
242
243
|
sendFileDetails = throwNotImplemented;
|
package/src/core/mode.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/* Copyright 2026 Marimo. All rights reserved. */
|
|
2
2
|
|
|
3
|
-
import { atom } from "jotai";
|
|
3
|
+
import { atom, useAtomValue } from "jotai";
|
|
4
4
|
import { isIslands } from "@/core/islands/utils";
|
|
5
5
|
import { assertExists } from "@/utils/assertExists";
|
|
6
6
|
import { invariant } from "@/utils/invariant";
|
|
@@ -79,3 +79,12 @@ export const viewStateAtom = atom<ViewState>({
|
|
|
79
79
|
export const initialModeAtom = atom<AppMode | undefined>(undefined);
|
|
80
80
|
|
|
81
81
|
export const kioskModeAtom = atom<boolean>(false);
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* Whether installing packages is allowed in the current view. False in read
|
|
85
|
+
* mode, since end-users of a deployed notebook cannot mutate its environment.
|
|
86
|
+
*/
|
|
87
|
+
export function useInstallAllowed(): boolean {
|
|
88
|
+
const { mode } = useAtomValue(viewStateAtom);
|
|
89
|
+
return mode !== "read";
|
|
90
|
+
}
|
|
@@ -90,6 +90,7 @@ const ACTIONS: Record<keyof AllRequests, Action> = {
|
|
|
90
90
|
sendSearchFiles: "startConnection",
|
|
91
91
|
sendCreateFileOrFolder: "throwError",
|
|
92
92
|
sendDeleteFileOrFolder: "throwError",
|
|
93
|
+
sendCopyFileOrFolder: "throwError",
|
|
93
94
|
sendRenameFileOrFolder: "throwError",
|
|
94
95
|
sendUpdateFile: "throwError",
|
|
95
96
|
sendFileDetails: "throwError",
|
|
@@ -312,6 +312,14 @@ export function createNetworkRequests(): EditRequests & RunRequests {
|
|
|
312
312
|
})
|
|
313
313
|
.then(handleResponse);
|
|
314
314
|
},
|
|
315
|
+
sendCopyFileOrFolder: async (request) => {
|
|
316
|
+
await waitForConnectionOpen();
|
|
317
|
+
return getClient()
|
|
318
|
+
.POST("/api/files/copy", {
|
|
319
|
+
body: request,
|
|
320
|
+
})
|
|
321
|
+
.then(handleResponse);
|
|
322
|
+
},
|
|
315
323
|
sendRenameFileOrFolder: async (request) => {
|
|
316
324
|
await waitForConnectionOpen();
|
|
317
325
|
return getClient()
|
|
@@ -66,6 +66,7 @@ export function createStaticRequests(): EditRequests & RunRequests {
|
|
|
66
66
|
sendPdb: throwNotInEditMode,
|
|
67
67
|
sendCreateFileOrFolder: throwNotInEditMode,
|
|
68
68
|
sendDeleteFileOrFolder: throwNotInEditMode,
|
|
69
|
+
sendCopyFileOrFolder: throwNotInEditMode,
|
|
69
70
|
sendRenameFileOrFolder: throwNotInEditMode,
|
|
70
71
|
sendUpdateFile: throwNotInEditMode,
|
|
71
72
|
sendFileDetails: throwNotInEditMode,
|
|
@@ -51,6 +51,7 @@ export function createErrorToastingRequests(
|
|
|
51
51
|
sendPdb: "Failed to start debug session",
|
|
52
52
|
sendCreateFileOrFolder: "Failed to create file or folder",
|
|
53
53
|
sendDeleteFileOrFolder: "Failed to delete file or folder",
|
|
54
|
+
sendCopyFileOrFolder: "Failed to duplicate file or folder",
|
|
54
55
|
sendRenameFileOrFolder: "Failed to rename file or folder",
|
|
55
56
|
sendUpdateFile: "Failed to update file",
|
|
56
57
|
sendFileDetails: "Failed to get file details",
|
|
@@ -23,6 +23,8 @@ export type ExportAsIPYNBRequest = schemas["ExportAsIPYNBRequest"];
|
|
|
23
23
|
export type ExportAsScriptRequest = schemas["ExportAsScriptRequest"];
|
|
24
24
|
export type ExportAsPDFRequest = schemas["ExportAsPDFRequest"];
|
|
25
25
|
export type UpdateCellOutputsRequest = schemas["UpdateCellOutputsRequest"];
|
|
26
|
+
export type FileCopyRequest = schemas["FileCopyRequest"];
|
|
27
|
+
export type FileCopyResponse = schemas["FileCopyResponse"];
|
|
26
28
|
export type FileCreateRequest = schemas["FileCreateRequest"];
|
|
27
29
|
export type FileCreateResponse = schemas["FileCreateResponse"];
|
|
28
30
|
export type FileDeleteRequest = schemas["FileDeleteRequest"];
|
|
@@ -168,6 +170,7 @@ export interface EditRequests {
|
|
|
168
170
|
sendDeleteFileOrFolder: (
|
|
169
171
|
request: FileDeleteRequest,
|
|
170
172
|
) => Promise<FileDeleteResponse>;
|
|
173
|
+
sendCopyFileOrFolder: (request: FileCopyRequest) => Promise<FileCopyResponse>;
|
|
171
174
|
sendRenameFileOrFolder: (
|
|
172
175
|
request: FileMoveRequest,
|
|
173
176
|
) => Promise<FileMoveResponse>;
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
/* Copyright 2026 Marimo. All rights reserved. */
|
|
2
|
+
|
|
3
|
+
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
|
|
4
|
+
|
|
5
|
+
const { mockNotebookReadFile, rpcListeners } = vi.hoisted(() => ({
|
|
6
|
+
mockNotebookReadFile: vi.fn(),
|
|
7
|
+
rpcListeners: {} as Record<string, () => void>,
|
|
8
|
+
}));
|
|
9
|
+
|
|
10
|
+
// Mock browser globals before any imports
|
|
11
|
+
vi.stubGlobal("crossOriginIsolated", false);
|
|
12
|
+
vi.stubGlobal(
|
|
13
|
+
"Worker",
|
|
14
|
+
vi.fn(() => ({
|
|
15
|
+
addEventListener: vi.fn(),
|
|
16
|
+
postMessage: vi.fn(),
|
|
17
|
+
terminate: vi.fn(),
|
|
18
|
+
})),
|
|
19
|
+
);
|
|
20
|
+
|
|
21
|
+
class MockURL extends URL {
|
|
22
|
+
static override createObjectURL = vi.fn(() => "blob:mock-url");
|
|
23
|
+
static override revokeObjectURL = vi.fn();
|
|
24
|
+
}
|
|
25
|
+
vi.stubGlobal("URL", MockURL);
|
|
26
|
+
|
|
27
|
+
vi.mock("@/core/wasm/rpc", () => ({
|
|
28
|
+
getWorkerRPC: () => ({
|
|
29
|
+
proxy: {
|
|
30
|
+
request: {
|
|
31
|
+
bridge: vi.fn(),
|
|
32
|
+
startSession: vi.fn(),
|
|
33
|
+
readFile: vi.fn(),
|
|
34
|
+
readNotebook: vi.fn(),
|
|
35
|
+
saveNotebook: vi.fn(),
|
|
36
|
+
},
|
|
37
|
+
send: { consumerReady: vi.fn() },
|
|
38
|
+
},
|
|
39
|
+
addMessageListener: (event: string, cb: () => void) => {
|
|
40
|
+
rpcListeners[event] = cb;
|
|
41
|
+
},
|
|
42
|
+
}),
|
|
43
|
+
}));
|
|
44
|
+
|
|
45
|
+
vi.mock("@/core/meta/globals", () => ({
|
|
46
|
+
getMarimoVersion: () => "0.0.0-test",
|
|
47
|
+
}));
|
|
48
|
+
|
|
49
|
+
vi.mock("@/core/wasm/utils", () => ({
|
|
50
|
+
isWasm: () => true,
|
|
51
|
+
}));
|
|
52
|
+
|
|
53
|
+
vi.mock("@/core/wasm/store", () => ({
|
|
54
|
+
fallbackFileStore: { readFile: vi.fn(), saveFile: vi.fn() },
|
|
55
|
+
notebookFileStore: { readFile: mockNotebookReadFile, saveFile: vi.fn() },
|
|
56
|
+
}));
|
|
57
|
+
|
|
58
|
+
// Import after all mocks are set up
|
|
59
|
+
import { store } from "@/core/state/jotai";
|
|
60
|
+
import { initialModeAtom } from "@/core/mode";
|
|
61
|
+
import { PyodideBridge } from "../bridge";
|
|
62
|
+
|
|
63
|
+
// Access INSTANCE once at module level so the constructor runs (and
|
|
64
|
+
// addMessageListener populates rpcListeners) before any test executes.
|
|
65
|
+
void PyodideBridge.INSTANCE;
|
|
66
|
+
|
|
67
|
+
describe("PyodideBridge.readCode", () => {
|
|
68
|
+
beforeEach(() => {
|
|
69
|
+
vi.clearAllMocks();
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
afterEach(() => {
|
|
73
|
+
store.set(initialModeAtom, undefined);
|
|
74
|
+
});
|
|
75
|
+
|
|
76
|
+
it("reads from notebookFileStore in read mode", async () => {
|
|
77
|
+
store.set(initialModeAtom, "read");
|
|
78
|
+
// Trigger getSaveWorker — it reads the current mode and returns a stub
|
|
79
|
+
// whose readNotebook delegates to notebookFileStore.
|
|
80
|
+
rpcListeners.initialized();
|
|
81
|
+
mockNotebookReadFile.mockResolvedValue(
|
|
82
|
+
"import numpy as np\nprint(np.__version__)",
|
|
83
|
+
);
|
|
84
|
+
|
|
85
|
+
const result = await PyodideBridge.INSTANCE.readCode();
|
|
86
|
+
|
|
87
|
+
expect(result).toEqual({
|
|
88
|
+
contents: "import numpy as np\nprint(np.__version__)",
|
|
89
|
+
});
|
|
90
|
+
expect(mockNotebookReadFile).toHaveBeenCalledTimes(1);
|
|
91
|
+
});
|
|
92
|
+
|
|
93
|
+
it("returns empty string when notebookFileStore has no code in read mode", async () => {
|
|
94
|
+
store.set(initialModeAtom, "read");
|
|
95
|
+
rpcListeners.initialized();
|
|
96
|
+
mockNotebookReadFile.mockResolvedValue(null);
|
|
97
|
+
|
|
98
|
+
const result = await PyodideBridge.INSTANCE.readCode();
|
|
99
|
+
|
|
100
|
+
expect(result).toEqual({ contents: "" });
|
|
101
|
+
});
|
|
102
|
+
|
|
103
|
+
it("does not call notebookFileStore in edit mode", async () => {
|
|
104
|
+
store.set(initialModeAtom, "edit");
|
|
105
|
+
// getSaveWorker in edit mode creates a real worker (mocked); readNotebook
|
|
106
|
+
// goes to the RPC proxy, not notebookFileStore.
|
|
107
|
+
rpcListeners.initialized();
|
|
108
|
+
|
|
109
|
+
await PyodideBridge.INSTANCE.readCode();
|
|
110
|
+
|
|
111
|
+
expect(mockNotebookReadFile).not.toHaveBeenCalled();
|
|
112
|
+
});
|
|
113
|
+
});
|
package/src/core/wasm/bridge.ts
CHANGED
|
@@ -17,6 +17,7 @@ import type {
|
|
|
17
17
|
EditRequests,
|
|
18
18
|
ExportAsHTMLRequest,
|
|
19
19
|
ExportAsMarkdownRequest,
|
|
20
|
+
FileCopyResponse,
|
|
20
21
|
FileCreateResponse,
|
|
21
22
|
FileDeleteResponse,
|
|
22
23
|
FileDetailsResponse,
|
|
@@ -66,10 +67,10 @@ export class PyodideBridge implements RunRequests, EditRequests {
|
|
|
66
67
|
|
|
67
68
|
private getSaveWorker(): SaveWorker {
|
|
68
69
|
if (getInitialAppMode() === "read") {
|
|
69
|
-
Logger.debug("
|
|
70
|
+
Logger.debug("Using partially disabled SaveWorker in read-mode");
|
|
70
71
|
return {
|
|
71
72
|
readFile: throwNotImplemented,
|
|
72
|
-
readNotebook:
|
|
73
|
+
readNotebook: async () => (await notebookFileStore.readFile()) ?? "",
|
|
73
74
|
saveNotebook: throwNotImplemented,
|
|
74
75
|
};
|
|
75
76
|
}
|
|
@@ -443,6 +444,16 @@ export class PyodideBridge implements RunRequests, EditRequests {
|
|
|
443
444
|
return response as FileDeleteResponse;
|
|
444
445
|
};
|
|
445
446
|
|
|
447
|
+
sendCopyFileOrFolder: EditRequests["sendCopyFileOrFolder"] = async (
|
|
448
|
+
request,
|
|
449
|
+
) => {
|
|
450
|
+
const response = await this.rpc.proxy.request.bridge({
|
|
451
|
+
functionName: "copy_file_or_directory",
|
|
452
|
+
payload: request,
|
|
453
|
+
});
|
|
454
|
+
return response as FileCopyResponse;
|
|
455
|
+
};
|
|
456
|
+
|
|
446
457
|
sendRenameFileOrFolder: EditRequests["sendRenameFileOrFolder"] = async (
|
|
447
458
|
request,
|
|
448
459
|
) => {
|
|
@@ -11,6 +11,8 @@ import type {
|
|
|
11
11
|
CopyNotebookRequest,
|
|
12
12
|
ExportAsHTMLRequest,
|
|
13
13
|
ExportAsMarkdownRequest,
|
|
14
|
+
FileCopyRequest,
|
|
15
|
+
FileCopyResponse,
|
|
14
16
|
FileCreateRequest,
|
|
15
17
|
FileCreateResponse,
|
|
16
18
|
FileDeleteRequest,
|
|
@@ -86,6 +88,7 @@ export interface RawBridge {
|
|
|
86
88
|
delete_file_or_directory(
|
|
87
89
|
request: FileDeleteRequest,
|
|
88
90
|
): Promise<FileDeleteResponse>;
|
|
91
|
+
copy_file_or_directory(request: FileCopyRequest): Promise<FileCopyResponse>;
|
|
89
92
|
move_file_or_directory(request: FileMoveRequest): Promise<FileMoveResponse>;
|
|
90
93
|
update_file(request: FileUpdateRequest): Promise<FileUpdateResponse>;
|
|
91
94
|
load_packages(request: string): Promise<string>;
|