@marimo-team/frontend 0.19.8-dev9 → 0.19.9-dev0
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-DbwQRhK0.js → CellStatus-CZlcjSUO.js} +1 -1
- package/dist/assets/{ConnectedDataExplorerComponent-B098edeX.js → ConnectedDataExplorerComponent-HbY4uSsv.js} +1 -1
- package/dist/assets/Deferred-DxQeE5uh.js +1 -0
- package/dist/assets/{DeferredRequestRegistry-tv0PqJZ0.js → DeferredRequestRegistry-CMf25YiV.js} +1 -1
- package/dist/assets/{ImperativeModal-DZr52ffu.js → ImperativeModal-BNN1HA7x.js} +1 -1
- package/dist/assets/{JsonOutput-BTXiwFjF.js → JsonOutput-PE5ko4gi.js} +11 -11
- package/dist/assets/LazyAnyLanguageCodeMirror-DgZ8iknE.js +2 -0
- package/dist/assets/MarimoErrorOutput-Lf9P8Fhl.js +7 -0
- package/dist/assets/{RenderHTML-hMZtS42w.js → RenderHTML-D-of_-s7.js} +1 -1
- package/dist/assets/__vite-browser-external-DT1nudb6.js +1 -0
- package/dist/assets/add-cell-with-ai-e_HMl7UU.js +90 -0
- package/dist/assets/{add-database-form-CUZKNC1e.js → add-database-form-DvnhmpaG.js} +3 -3
- package/dist/assets/agent-panel-bOQya9ER.js +287 -0
- package/dist/assets/{ai-model-dropdown-C_Fhvna-.js → ai-model-dropdown-Dk2SdB3C.js} +4 -4
- package/dist/assets/{alert-dialog-Ctz24SMn.js → alert-dialog-BW4srmS0.js} +1 -1
- package/dist/assets/{any-language-editor-B1WBkbF4.js → any-language-editor-BODEG_5g.js} +1 -1
- package/dist/assets/apl-CaYjM5u2.js +1 -0
- package/dist/assets/{app-config-button-BqV8GA-q.js → app-config-button-DMsJtN9b.js} +1 -1
- package/dist/assets/{arc-xh3ZebK_.js → arc-D1owqr0z.js} +1 -1
- package/dist/assets/{architecture-U656AL7Q-DQB1ihe9.js → architecture-U656AL7Q-DENTsr7c.js} +1 -1
- package/dist/assets/{architectureDiagram-VXUJARFQ-BsTgqTsh.js → architectureDiagram-VXUJARFQ-CDeVogFv.js} +1 -1
- package/dist/assets/asciiarmor-D2cJUKTq.js +1 -0
- package/dist/assets/asn1-CZDBKivQ.js +1 -0
- package/dist/assets/blob-D-eV0cU3.js +1 -0
- package/dist/assets/{blockDiagram-VD42YOAC-CeZonq9z.js → blockDiagram-VD42YOAC-Bol-uwBO.js} +1 -1
- package/dist/assets/bot-message-square-B2ThzDUZ.js +1 -0
- package/dist/assets/brainfuck-D5O26WTe.js +1 -0
- package/dist/assets/{c4Diagram-YG6GDRKO-CDPGRzUd.js → c4Diagram-YG6GDRKO-C-eNQ40H.js} +1 -1
- package/dist/assets/{cache-panel-gTIhwBeU.js → cache-panel-D07YsKqa.js} +1 -1
- package/dist/assets/cell-editor-BW4w46wt.js +23 -0
- package/dist/assets/cell-link-B9b7J8QK.js +1 -0
- package/dist/assets/{cells-DdLMh4kY.js → cells-DPp5cDaO.js} +49 -49
- package/dist/assets/channel-CdzZX-OR.js +1 -0
- package/dist/assets/chat-display--jAB7huF.js +1 -0
- package/dist/assets/chat-panel-DzMwk8Wu.js +3 -0
- package/dist/assets/{chunk-4BX2VUAB-BP-RGZn9.js → chunk-4BX2VUAB-KawmK-5L.js} +1 -1
- package/dist/assets/chunk-55IACEB6-njZIr50E.js +1 -0
- package/dist/assets/{chunk-5FQGJX7Z-CwvgJCug.js → chunk-5FQGJX7Z-DPlx2kjA.js} +3 -3
- package/dist/assets/{chunk-ABZYJK2D-CtRGq-db.js → chunk-ABZYJK2D-0jga8uiE.js} +1 -1
- package/dist/assets/{chunk-ATLVNIR6-CXEe2jMF.js → chunk-ATLVNIR6-B17dg7Ry.js} +1 -1
- package/dist/assets/{chunk-B4BG7PRW-BVqt-NSK.js → chunk-B4BG7PRW-DoVbcCDm.js} +1 -1
- package/dist/assets/{chunk-CVBHYZKI-Brsoob-W.js → chunk-CVBHYZKI-DU48rJVu.js} +1 -1
- package/dist/assets/{chunk-DI55MBZ5-C_mlVJmb.js → chunk-DI55MBZ5-rLpl7joX.js} +1 -1
- package/dist/assets/{chunk-EXTU4WIE-CN3BqsR0.js → chunk-EXTU4WIE-Dmu97ZvI.js} +1 -1
- package/dist/assets/{chunk-FMBD7UC4-kejklSRQ.js → chunk-FMBD7UC4-CHJv683r.js} +1 -1
- package/dist/assets/{chunk-HN2XXSSU-BBxJMYrA.js → chunk-HN2XXSSU-Bdbi3Mns.js} +1 -1
- package/dist/assets/{chunk-JA3XYJ7Z-B5-JYmoA.js → chunk-JA3XYJ7Z-DOm8KfKa.js} +1 -1
- package/dist/assets/{chunk-JZLCHNYA-UFlatyc1.js → chunk-JZLCHNYA-48QVgmR4.js} +1 -1
- package/dist/assets/{chunk-MI3HLSF2-D6we5Ftb.js → chunk-MI3HLSF2-n3vxgSbN.js} +1 -1
- package/dist/assets/{chunk-N4CR4FBY-BFF_Z7sG.js → chunk-N4CR4FBY-BNoQB557.js} +2 -2
- package/dist/assets/{chunk-QN33PNHL-DOgXIePg.js → chunk-QN33PNHL-BOQncxfy.js} +1 -1
- package/dist/assets/{chunk-QXUST7PY-CbBaWlhv.js → chunk-QXUST7PY-DkCIa8tJ.js} +1 -1
- package/dist/assets/{chunk-QZHKN3VN-DCq7JxLD.js → chunk-QZHKN3VN-Cp_TxrNJ.js} +1 -1
- package/dist/assets/{chunk-S3R3BYOJ-CM-pQ0EF.js → chunk-S3R3BYOJ-8loRaCFh.js} +1 -1
- package/dist/assets/{chunk-TZMSLE5B-Bs5ERkTF.js → chunk-TZMSLE5B-CPHBPwrM.js} +1 -1
- package/dist/assets/classDiagram-2ON5EDUG-CUlU7OLD.js +1 -0
- package/dist/assets/classDiagram-v2-WZHVMYZB-DAwrDtTO.js +1 -0
- package/dist/assets/{clike-wo4CVrJj.js → clike-TwxwxEw_.js} +1 -1
- package/dist/assets/clojure-B8dfjAV6.js +1 -0
- package/dist/assets/cmake-D3vlGJdL.js +1 -0
- package/dist/assets/cobol-S-4I_F1W.js +1 -0
- package/dist/assets/{code-block-37QAKDTI-CT7W9knZ.js → code-block-37QAKDTI-DnnrjIZy.js} +1 -1
- package/dist/assets/coffeescript-DG-Oj54u.js +1 -0
- package/dist/assets/{column-preview-t0CyBVJf.js → column-preview-CXjSXUhP.js} +1 -1
- package/dist/assets/{command-cs3Dd1TU.js → command-2ElA5IkO.js} +1 -1
- package/dist/assets/{command-palette-DJg1FMo6.js → command-palette-DrD2qhGV.js} +1 -1
- package/dist/assets/{common-VAE3DrnP.js → common-DSlhalAu.js} +1 -1
- package/dist/assets/commonlisp-CWlOS49U.js +1 -0
- package/dist/assets/{config-D2-Bw6QC.js → config-Q0O7_stz.js} +1 -1
- package/dist/assets/{context-Ga_vV5mE.js → context-BfYAMNLF.js} +1 -1
- package/dist/assets/{copy-icon-B9w72gBC.js → copy-icon-v8ME_JKB.js} +1 -1
- package/dist/assets/{cose-bilkent-S5V4N54A-vYRNxW8r.js → cose-bilkent-S5V4N54A-tFAvjCRW.js} +1 -1
- package/dist/assets/crystal-CD-LQ3E-.js +1 -0
- package/dist/assets/{css-BJsW3aHa.js → css-sdrF9ahV.js} +1 -1
- package/dist/assets/cypher-oiVTIRlU.js +1 -0
- package/dist/assets/d-KaoGirPa.js +1 -0
- package/dist/assets/{dagre-6UL2VRFP-UK8bracd.js → dagre-6UL2VRFP-DOB6anec.js} +1 -1
- package/dist/assets/{data-grid-overlay-editor-2vr_zUfM.js → data-grid-overlay-editor-D8lE4fym.js} +1 -1
- package/dist/assets/{datasource-BBMMxrje.js → datasource-CtyqtITR.js} +2 -2
- package/dist/assets/{dates-CT5PUuFo.js → dates-CrvjILe3.js} +1 -1
- package/dist/assets/{dependency-graph-panel-D16tZkyM.js → dependency-graph-panel-Cbke_QgZ.js} +4 -4
- package/dist/assets/{diagram-PSM6KHXK-7QiPU-26.js → diagram-PSM6KHXK-DpuCiAS7.js} +1 -1
- package/dist/assets/{diagram-QEK2KX5R-BbZsWUC4.js → diagram-QEK2KX5R-IlkvvuKX.js} +1 -1
- package/dist/assets/{diagram-S2PKOQOG-SZ-twU4B.js → diagram-S2PKOQOG-DJt_T1Gq.js} +1 -1
- package/dist/assets/{dialog-tQELcltn.js → dialog-eb-NieZw.js} +1 -1
- package/dist/assets/diff-Df1QxxZl.js +1 -0
- package/dist/assets/dist-4mAhUzty.js +1 -0
- package/dist/assets/dist-5CXgzdUa.js +1 -0
- package/dist/assets/{dist-DGPkGdD2.js → dist-8kKeYgOg.js} +1 -1
- package/dist/assets/dist-B27MCO52.js +1 -0
- package/dist/assets/{dist-SpkGM8op.js → dist-BXnpRw3d.js} +1 -1
- package/dist/assets/dist-Bc7uxGRW.js +1 -0
- package/dist/assets/{dist-BSxIk2Vq.js → dist-BtJZmWkg.js} +1 -1
- package/dist/assets/{dist-TiFCI16_.js → dist-Btv5Rh1v.js} +1 -1
- package/dist/assets/{dist-BwcKpTZt.js → dist-ByjGU_ag.js} +1 -1
- package/dist/assets/{dist-2qScxWoK.js → dist-C-V6lvxH.js} +1 -1
- package/dist/assets/dist-C6SivM7z.js +1 -0
- package/dist/assets/dist-C9k2RMmO.js +1 -0
- package/dist/assets/{dist-C0QU3Oay.js → dist-CEEqzIVj.js} +1 -1
- package/dist/assets/{dist-BtUqLXS9.js → dist-CEaOyZOW.js} +1 -1
- package/dist/assets/{dist-BcotcL0h.js → dist-CLc5WXWw.js} +1 -1
- package/dist/assets/{dist-B1CD4nG7.js → dist-CRjEDsfC.js} +1 -1
- package/dist/assets/{dist-DstaRs6N.js → dist-CsRJPnA9.js} +1 -1
- package/dist/assets/dist-Cx8mOJOB.js +1 -0
- package/dist/assets/{dist-CNknMFYG.js → dist-DLgWirXg.js} +1 -1
- package/dist/assets/{dist-B407S7D_.js → dist-DOZ8nmkC.js} +1 -1
- package/dist/assets/{dist-h7FGpi6W.js → dist-DUlOLsKi.js} +1 -1
- package/dist/assets/{dist-GCDTTvNx.js → dist-Dv0MupEh.js} +1 -1
- package/dist/assets/{dist-DDGMbl6p.js → dist-DwV58Fb1.js} +1 -1
- package/dist/assets/{dist-Cip4Ndtd.js → dist-OlCHPNfN.js} +1 -1
- package/dist/assets/{dist-Cayq-K1c.js → dist-bBwmhqty.js} +1 -1
- package/dist/assets/dist-fO1a06Tp.js +1 -0
- package/dist/assets/dist-iXB2pOUD.js +1 -0
- package/dist/assets/dist-lTwzYaMX.js +1 -0
- package/dist/assets/{dist-DXT0W0hS.js → dist-wS1s8MYb.js} +1 -1
- package/dist/assets/{dockerfile-BPCA7-hu.js → dockerfile-BmwSYxi2.js} +1 -1
- package/dist/assets/{documentation-panel-0BCnCatP.js → documentation-panel-BDQNa1xE.js} +1 -1
- package/dist/assets/{download-BodpSpiQ.js → download-os8QlW6l.js} +1 -1
- package/dist/assets/{dropdown-menu-BUgFWmX1.js → dropdown-menu-ldcmQvIV.js} +1 -1
- package/dist/assets/dtd-Aj5m459l.js +1 -0
- package/dist/assets/dylan-CdSB1nh8.js +1 -0
- package/dist/assets/ecl-CvwsCfi6.js +1 -0
- package/dist/assets/{edit-page-1kpZH_Tj.js → edit-page-BpIuEeU6.js} +7 -7
- package/dist/assets/eiffel-Bws25dAs.js +1 -0
- package/dist/assets/elm--WkcLZ1a.js +1 -0
- package/dist/assets/{erDiagram-Q2GNP2WA-BSmVh3Kt.js → erDiagram-Q2GNP2WA-CekwCx1v.js} +1 -1
- package/dist/assets/erlang-Ct30wW1o.js +1 -0
- package/dist/assets/{error-banner-Dlrzo_Ay.js → error-banner-B9ts0mNl.js} +1 -1
- package/dist/assets/{error-panel-D7CVHSby.js → error-panel-B_234Lt3.js} +1 -1
- package/dist/assets/{es-CerBf9Z6.js → es-BYgU_srD.js} +1 -1
- package/dist/assets/{esm-BmQh-C2G.js → esm-D82gQH1f.js} +1 -1
- package/dist/assets/{factor-Ccw_GUUV.js → factor-B3fhZG6W.js} +1 -1
- package/dist/assets/factor-DbSpQa-0.js +1 -0
- package/dist/assets/{field-D9jE8HEt.js → field-CySaBlkz.js} +1 -1
- package/dist/assets/{file-explorer-panel-d9LDZt_k.js → file-explorer-panel-T3oL7Bzx.js} +1 -1
- package/dist/assets/{floating-outline-C8UBGhNL.js → floating-outline-BtdqbkUq.js} +1 -1
- package/dist/assets/{flowDiagram-NV44I4VS-2nYUYKvI.js → flowDiagram-NV44I4VS-BhCyaqwV.js} +1 -1
- package/dist/assets/{focus-Bd_p77qK.js → focus-C1YokgL7.js} +1 -1
- package/dist/assets/{form-D23zs2fF.js → form-BidPUZUn.js} +2 -2
- package/dist/assets/forth-BP0pXyoR.js +1 -0
- package/dist/assets/fortran-DpX_2iww.js +1 -0
- package/dist/assets/gallery-page-D5ulMArd.js +1 -0
- package/dist/assets/{ganttDiagram-JELNMOA3-B77PnMPw.js → ganttDiagram-JELNMOA3-Ct2B_ci4.js} +1 -1
- package/dist/assets/gas-CiUR6fHB.js +1 -0
- package/dist/assets/gherkin-C9v48C48.js +1 -0
- package/dist/assets/{gitGraph-F6HP7TQM-ULnyMCh9.js → gitGraph-F6HP7TQM-BwJPuiCH.js} +1 -1
- package/dist/assets/{gitGraphDiagram-NY62KEGX-B-3aRelz.js → gitGraphDiagram-NY62KEGX-DOBPUqeq.js} +1 -1
- package/dist/assets/{glide-data-editor-B5UMCoFz.js → glide-data-editor-D1ZoJKPr.js} +4 -4
- package/dist/assets/{globals-BgJBhxFI.js → globals-BgACvYmr.js} +1 -1
- package/dist/assets/groovy-psUnKwK-.js +1 -0
- package/dist/assets/haskell-DZHQAKUV.js +1 -0
- package/dist/assets/haxe-AOvPCF-w.js +1 -0
- package/dist/assets/{home-page-DXMa3CyZ.js → home-page-DUMF8ZY4.js} +1 -1
- package/dist/assets/{hooks-jQB62wos.js → hooks-BGeojgid.js} +1 -1
- package/dist/assets/{html-to-image-Bc6qDa9c.js → html-to-image-CIQqSu-S.js} +1 -1
- package/dist/assets/idl-CSA8C1ck.js +1 -0
- package/dist/assets/index-CeUwN_0i.css +2 -0
- package/dist/assets/{index-BL9e2vk6.js → index-DFrkvKWf.js} +21 -21
- package/dist/assets/{info-NVLQJR56-gsco60Pt.js → info-NVLQJR56-Ccg18Lpe.js} +1 -1
- package/dist/assets/infoDiagram-WHAUD3N6-Cytag0-K.js +2 -0
- package/dist/assets/{input-DHHmNa19.js → input-DUrq2DiR.js} +1 -1
- package/dist/assets/javascript-XMYUq5-t.js +1 -0
- package/dist/assets/{journeyDiagram-XKPGCS4Q-CkD6eopP.js → journeyDiagram-XKPGCS4Q-CPDnALH5.js} +1 -1
- package/dist/assets/julia-oON8zLDW.js +1 -0
- package/dist/assets/{kanban-definition-3W4ZIXB7-kX5aL9Ug.js → kanban-definition-3W4ZIXB7-D0-Tthpw.js} +1 -1
- package/dist/assets/{kiosk-mode-BlAqMmYG.js → kiosk-mode-WmM7aFkh.js} +1 -1
- package/dist/assets/{layout-BztBqV-1.js → layout-_O8thjaV.js} +4 -4
- package/dist/assets/{line-VKarCWVL.js → line-BA7eTS55.js} +1 -1
- package/dist/assets/{linear-BxhToEEF.js → linear-BWciPXnd.js} +1 -1
- package/dist/assets/links-DWIqY1l5.js +1 -0
- package/dist/assets/livescript--BxQO5G_.js +1 -0
- package/dist/assets/{logs-panel-B3aMPrwV.js → logs-panel-C3cavnFO.js} +1 -1
- package/dist/assets/{loro_wasm_bg-aCueZs8k.js → loro_wasm_bg-C3Vl7VMX.js} +1 -1
- package/dist/assets/lua-CUyaVUOv.js +1 -0
- package/dist/assets/markdown-renderer-DJy8ww5d.js +10 -0
- package/dist/assets/mathematica-ONd8izyd.js +1 -0
- package/dist/assets/mbox-kjl3g9N-.js +1 -0
- package/dist/assets/{menu-items-vwmjPhjW.js → menu-items-BMjcEb2j.js} +1 -1
- package/dist/assets/mermaid-4DMBBIKO-DyygmIT8.js +1 -0
- package/dist/assets/{mermaid-parser.core-D237JwYN.js → mermaid-parser.core-BLHYb13y.js} +2 -2
- package/dist/assets/{mermaid-Caj4ROsO.js → mermaid-y-IBDpJK.js} +3 -3
- package/dist/assets/{mindmap-definition-VGOIOE7T-BJ9zWUqW.js → mindmap-definition-VGOIOE7T-BflEJS3A.js} +1 -1
- package/dist/assets/mirc-BZ6TyuOO.js +1 -0
- package/dist/assets/mllike-Dxt2U6MQ.js +1 -0
- package/dist/assets/{mode-BfhhQnCm.js → mode-Bn7pdJvO.js} +1 -1
- package/dist/assets/modelica-B9sdhdtj.js +1 -0
- package/dist/assets/mscgen-5e5Z5trn.js +1 -0
- package/dist/assets/{multi-map-t2yhdp8D.js → multi-map-DxdLNTBd.js} +1 -1
- package/dist/assets/mumps-BUfWDrRe.js +1 -0
- package/dist/assets/{name-cell-input-DvFZv__e.js → name-cell-input-Bc7geMVf.js} +1 -1
- package/dist/assets/nsis-Dq7T79DJ.js +1 -0
- package/dist/assets/{nsis-CzZqoCdu.js → nsis-QuE155sg.js} +1 -1
- package/dist/assets/ntriples-Dqzi7kwu.js +1 -0
- package/dist/assets/{number-overlay-editor-DIy8e1ST.js → number-overlay-editor-Dylprn80.js} +1 -1
- package/dist/assets/octave-v4IgjFm5.js +1 -0
- package/dist/assets/{ordinal-C93T4L8H.js → ordinal-DG_POl79.js} +1 -1
- package/dist/assets/{outline-panel-DH2X9Yaa.js → outline-panel-Bxt_JABC.js} +1 -1
- package/dist/assets/oz-BtUsXhbc.js +1 -0
- package/dist/assets/packages-panel-yEp7rAYf.js +1 -0
- package/dist/assets/{packet-BFZMPI3H-CnHEXEVi.js → packet-BFZMPI3H-C_EwQwCX.js} +1 -1
- package/dist/assets/panels-IsIZwIow.js +1 -0
- package/dist/assets/pascal-DV7k6vJ0.js +1 -0
- package/dist/assets/perl-Bz7YaP_R.js +1 -0
- package/dist/assets/{pie-7BOR55EZ-C5Sp4r8f.js → pie-7BOR55EZ-B2NFlNeo.js} +1 -1
- package/dist/assets/{pieDiagram-ADFJNKIX-Mf2FMnt9.js → pieDiagram-ADFJNKIX-DXRnX2TS.js} +1 -1
- package/dist/assets/pig-BQWmcOEQ.js +1 -0
- package/dist/assets/{popover-B-131r4d.js → popover-CH1FzjxU.js} +1 -1
- package/dist/assets/powershell-CmIFs71i.js +1 -0
- package/dist/assets/{process-output-CHXcfo-X.js → process-output-ByfLnk6j.js} +1 -1
- package/dist/assets/properties-D7F2Eomu.js +1 -0
- package/dist/assets/protobuf-BMELuvny.js +1 -0
- package/dist/assets/pug-C2KbP_v3.js +1 -0
- package/dist/assets/{pug-BqLMXh-D.js → pug-NA-6TsNe.js} +1 -1
- package/dist/assets/puppet-C7MviiPj.js +1 -0
- package/dist/assets/python-BUl8uFIl.js +1 -0
- package/dist/assets/q-B5bIbNKB.js +1 -0
- package/dist/assets/{quadrantDiagram-AYHSOK5B-B04U71uV.js → quadrantDiagram-AYHSOK5B-e3OVACTV.js} +1 -1
- package/dist/assets/r-B0lU_x8o.js +1 -0
- package/dist/assets/{radar-NHE76QYJ-DAElyE_r.js → radar-NHE76QYJ-C3XGuwbG.js} +1 -1
- package/dist/assets/{react-vega-CqegDZRQ.js → react-vega-BL1HBBjq.js} +1 -1
- package/dist/assets/{react-vega-CP7NqbRQ.js → react-vega-gERE3HQc.js} +1 -1
- package/dist/assets/readonly-python-code-WjTf6Pdd.js +1 -0
- package/dist/assets/{renderShortcut-B1jzzLJw.js → renderShortcut-BckyRbYt.js} +1 -1
- package/dist/assets/{request-registry-BWqkV683.js → request-registry-C5_pVc8Y.js} +1 -1
- package/dist/assets/{requirementDiagram-UZGBJVZJ-oJlPs172.js → requirementDiagram-UZGBJVZJ-DMbzgjKI.js} +1 -1
- package/dist/assets/rpm-BqQ3VFpY.js +1 -0
- package/dist/assets/ruby-AFh8QoqR.js +1 -0
- package/dist/assets/run-page-_7E2SCeQ.js +1 -0
- package/dist/assets/{sankeyDiagram-TZEHDZUN-aplEbaHE.js → sankeyDiagram-TZEHDZUN-B90PTMUW.js} +1 -1
- package/dist/assets/sas-CeRTI9sn.js +1 -0
- package/dist/assets/scheme-D0VcE_o1.js +1 -0
- package/dist/assets/{scratchpad-panel-BFFeceHa.js → scratchpad-panel-C6thsU6k.js} +1 -1
- package/dist/assets/{secrets-panel-vKKBtc8G.js → secrets-panel-Db_JucCn.js} +1 -1
- package/dist/assets/{select-B7bfltkI.js → select-BVdzZKAh.js} +1 -1
- package/dist/assets/{sequenceDiagram-WL72ISMW-WAUwGkkd.js → sequenceDiagram-WL72ISMW-DKFGl_80.js} +1 -1
- package/dist/assets/{session-panel-IeLEqwsB.js → session-panel-3zs_-lnF.js} +1 -1
- package/dist/assets/{share-rXkgGlhr.js → share-ipf2hrOh.js} +1 -1
- package/dist/assets/shell-BBh9RTgS.js +1 -0
- package/dist/assets/sieve-BSX0MHaT.js +1 -0
- package/dist/assets/smalltalk-PvrpLgKW.js +1 -0
- package/dist/assets/{snippets-panel-nld0VX-j.js → snippets-panel-Bbk7MFBI.js} +1 -1
- package/dist/assets/sparql-CXsmb8zq.js +1 -0
- package/dist/assets/{house-BI81AWSn.js → square-CuJ72M8f.js} +1 -1
- package/dist/assets/{src-DJ8ZKoFs.js → src-CvyFXpBy.js} +1 -1
- package/dist/assets/{state-DAl4qLSi.js → state-BrMfOLl1.js} +1 -1
- package/dist/assets/{state-yRkQ_uSW.js → state-D4T75eZb.js} +1 -1
- package/dist/assets/{stateDiagram-FKZM4ZOC-DUDhr_Gg.js → stateDiagram-FKZM4ZOC-Czf6mxbq.js} +1 -1
- package/dist/assets/stateDiagram-v2-4FDKWEC3-DT577w6p.js +1 -0
- package/dist/assets/{step-DGkZosD0.js → step-CVy5FnKg.js} +1 -1
- package/dist/assets/stex-Dn4qnyVB.js +1 -0
- package/dist/assets/stylus-B60bUBy2.js +1 -0
- package/dist/assets/swift-BwnHGvoR.js +1 -0
- package/dist/assets/{switch-D-TxHKpg.js → switch-dWLWbbtg.js} +1 -1
- package/dist/assets/tcl-Bj8phnhq.js +1 -0
- package/dist/assets/{terminal-CF-esPMT.js → terminal-CjhjkmtR.js} +1 -1
- package/dist/assets/{textarea-BFfMAEaQ.js → textarea-CRI7xDBj.js} +1 -1
- package/dist/assets/textile-WPCmEeGb.js +1 -0
- package/dist/assets/{time-EL4bnqqQ.js → time-DkuObi5n.js} +1 -1
- package/dist/assets/{timeline-definition-IT6M3QCI-D93LYpWp.js → timeline-definition-IT6M3QCI-Cr57imdX.js} +1 -1
- package/dist/assets/{toggle-CriARMQK.js → toggle-zVW4FXNz.js} +1 -1
- package/dist/assets/toml-Cdfp0vaG.js +1 -0
- package/dist/assets/{tooltip-C_WgOOcZ.js → tooltip-CMQz28hC.js} +1 -1
- package/dist/assets/{tracing-DB7ckaG0.js → tracing-U3RlLbPJ.js} +1 -1
- package/dist/assets/tracing-panel-D6GhZuLA.js +2 -0
- package/dist/assets/{tree-B8r7cwRm.js → tree-B--q0-tu.js} +1 -1
- package/dist/assets/{treemap-KMMF4GRG-Bf9yeA5X.js → treemap-KMMF4GRG-CQXdJ2ER.js} +1 -1
- package/dist/assets/troff-D4suUzlg.js +1 -0
- package/dist/assets/ttcn-CvD_6RGm.js +1 -0
- package/dist/assets/ttcn-cfg-BX59kgnW.js +1 -0
- package/dist/assets/turtle-midFOTTV.js +1 -0
- package/dist/assets/{types-D-xsoOE8.js → types-BRfQN3HL.js} +1 -1
- package/dist/assets/{useAddCell-Bc2_jloT.js → useAddCell-CmuX2hOk.js} +1 -1
- package/dist/assets/{useBoolean-IZsSX_XF.js → useBoolean-Ck_unDZw.js} +1 -1
- package/dist/assets/useCellActionButton-DUDHPTmq.js +1 -0
- package/dist/assets/{useDateFormatter-CieT0-H-.js → useDateFormatter-CqhdUl2n.js} +1 -1
- package/dist/assets/{useDeleteCell-6jBNYEDG.js → useDeleteCell-DdRX94yC.js} +1 -1
- package/dist/assets/{useDependencyPanelTab-Dq7NTXk8.js → useDependencyPanelTab-CeDmKn0Z.js} +1 -1
- package/dist/assets/{useInstallPackage-xrG_Tm9T.js → useInstallPackage-D4fX0Ee_.js} +1 -1
- package/dist/assets/useNotebookActions-BFGSBiOA.js +1 -0
- package/dist/assets/{useNumberFormatter-BX4DTYtT.js → useNumberFormatter-Db6Vjve5.js} +1 -1
- package/dist/assets/{usePress-3CRs0fQg.js → usePress-C__vuri5.js} +1 -1
- package/dist/assets/useRunCells-D2HBb4DB.js +1 -0
- package/dist/assets/{useSplitCell-DE71CDKv.js → useSplitCell-C4khe6eU.js} +1 -1
- package/dist/assets/utilities.esm-MA1QpjVT.js +3 -0
- package/dist/assets/vb-CSNH0UHQ.js +1 -0
- package/dist/assets/vbscript-DTgXfl5y.js +1 -0
- package/dist/assets/{vega-component-D4ZTpyiq.js → vega-component-D4L27L4Y.js} +1 -1
- package/dist/assets/velocity-CKgzALh9.js +1 -0
- package/dist/assets/verilog-NDqaS3bW.js +1 -0
- package/dist/assets/vhdl-BibQgFNM.js +1 -0
- package/dist/assets/webidl-BjqVurO-.js +1 -0
- package/dist/assets/worker-BPV9SmHz.js +120 -0
- package/dist/assets/{write-secret-modal-BodBOJkR.js → write-secret-modal-1fGKmd5H.js} +1 -1
- package/dist/assets/xquery-DQLXMdMd.js +1 -0
- package/dist/assets/{xychartDiagram-PRI3JC2R-C8jV7uCC.js → xychartDiagram-PRI3JC2R-DtYN6-1-.js} +1 -1
- package/dist/assets/yacas-DlkZlCdY.js +1 -0
- package/dist/assets/z80-YKwwCjvZ.js +1 -0
- package/dist/index.html +94 -95
- package/package.json +2 -2
- package/src/components/app-config/ai-config.tsx +11 -2
- package/src/components/app-config/optional-features.tsx +1 -1
- package/src/components/app-config/user-config-form.tsx +0 -54
- package/src/components/chat/__tests__/useFileState.test.tsx +93 -0
- package/src/components/chat/acp/__tests__/state.test.ts +69 -0
- package/src/components/chat/acp/agent-panel.tsx +26 -77
- package/src/components/chat/acp/state.ts +6 -6
- package/src/components/chat/chat-components.tsx +114 -1
- package/src/components/chat/chat-panel.tsx +79 -134
- package/src/components/chat/chat-utils.ts +42 -0
- package/src/components/editor/actions/useCellActionButton.tsx +14 -1
- package/src/components/editor/ai/add-cell-with-ai.tsx +85 -53
- package/src/components/editor/ai/ai-completion-editor.tsx +15 -38
- package/src/components/editor/cell/CreateCellButton.tsx +2 -1
- package/src/components/editor/cell/code/cell-editor.tsx +12 -0
- package/src/components/editor/chrome/panels/packages-panel.tsx +12 -9
- package/src/components/editor/database/__tests__/__snapshots__/as-code.test.ts.snap +15 -0
- package/src/components/editor/database/__tests__/as-code.test.ts +8 -0
- package/src/components/editor/database/as-code.ts +3 -0
- package/src/components/editor/database/schemas.ts +9 -0
- package/src/components/editor/renderers/cell-array.tsx +2 -1
- package/src/components/editor/renderers/vertical-layout/vertical-layout.tsx +12 -0
- package/src/components/pages/gallery-page.tsx +37 -6
- package/src/core/ai/context/providers/file.ts +1 -1
- package/src/core/cells/__tests__/cells.test.ts +120 -0
- package/src/core/cells/__tests__/session.test.ts +37 -1
- package/src/core/cells/cells.ts +14 -0
- package/src/core/cells/session.ts +20 -8
- package/src/core/codemirror/language/languages/markdown.ts +7 -0
- package/src/core/config/feature-flag.tsx +0 -4
- package/src/core/dom/uiregistry.ts +4 -1
- package/src/core/islands/__tests__/bridge.test.ts +7 -2
- package/src/core/islands/bridge.ts +1 -1
- package/src/core/islands/main.ts +7 -0
- package/src/core/network/types.ts +2 -2
- package/src/core/run-app.tsx +11 -4
- package/src/core/static/__tests__/files.test.ts +195 -1
- package/src/core/static/files.ts +39 -9
- package/src/core/wasm/bridge.ts +1 -1
- package/src/core/websocket/useMarimoKernelConnection.tsx +5 -15
- package/src/plugins/impl/anywidget/AnyWidgetPlugin.tsx +93 -168
- package/src/plugins/impl/anywidget/__tests__/AnyWidgetPlugin.test.tsx +37 -123
- package/src/plugins/impl/anywidget/__tests__/model.test.ts +128 -122
- package/src/{utils/__tests__/data-views.test.ts → plugins/impl/anywidget/__tests__/serialization.test.ts} +42 -96
- package/src/plugins/impl/anywidget/model.ts +348 -223
- package/src/plugins/impl/anywidget/schemas.ts +32 -0
- package/src/{utils/data-views.ts → plugins/impl/anywidget/serialization.ts} +13 -36
- package/src/plugins/impl/anywidget/types.ts +27 -0
- package/src/plugins/impl/chat/chat-ui.tsx +22 -20
- package/src/utils/Deferred.ts +21 -0
- package/src/utils/__tests__/blob.test.ts +3 -3
- package/src/utils/__tests__/id-tree.test.ts +22 -7
- package/src/utils/__tests__/url-parser.test.ts +22 -0
- package/src/utils/blob.ts +14 -27
- package/src/utils/id-tree.tsx +11 -19
- package/src/utils/json/base64.ts +38 -8
- package/src/utils/url-parser.ts +1 -1
- package/dist/assets/Deferred-CrO5-0RA.js +0 -1
- package/dist/assets/LazyAnyLanguageCodeMirror-CQP8KZWO.js +0 -2
- package/dist/assets/MarimoErrorOutput-lr6vqAph.js +0 -7
- package/dist/assets/__vite-browser-external-DBckR0WR.js +0 -1
- package/dist/assets/add-cell-with-ai-DdyvzMmu.js +0 -90
- package/dist/assets/agent-panel-CCs3ktma.js +0 -287
- package/dist/assets/apl-DpOiWl6J.js +0 -1
- package/dist/assets/asciiarmor-DVIuYySe.js +0 -1
- package/dist/assets/asn1-CWHjZJq6.js +0 -1
- package/dist/assets/blob-t6qcPM7K.js +0 -1
- package/dist/assets/brainfuck-CIKJewgG.js +0 -1
- package/dist/assets/cell-editor-COnUMHxW.js +0 -23
- package/dist/assets/cell-link-OwIbBa8Q.js +0 -1
- package/dist/assets/channel-CUmF6tDU.js +0 -1
- package/dist/assets/chat-components-jnrAy95o.js +0 -1
- package/dist/assets/chat-display-rXqWwmbx.js +0 -1
- package/dist/assets/chat-panel-ims98I-K.js +0 -3
- package/dist/assets/chunk-55IACEB6-NZRDKuqH.js +0 -1
- package/dist/assets/classDiagram-2ON5EDUG-DLI68D-F.js +0 -1
- package/dist/assets/classDiagram-v2-WZHVMYZB-yfw4NTdf.js +0 -1
- package/dist/assets/clojure-CTxjMkBI.js +0 -1
- package/dist/assets/cmake-aJ0aGjat.js +0 -1
- package/dist/assets/cobol-Dw9T4cw-.js +0 -1
- package/dist/assets/coffeescript-B5HCKl_0.js +0 -1
- package/dist/assets/commonlisp-C578hhl1.js +0 -1
- package/dist/assets/crystal-D84c1nzD.js +0 -1
- package/dist/assets/cypher-DBO3MHmN.js +0 -1
- package/dist/assets/d-KvHiAR3H.js +0 -1
- package/dist/assets/diff-BmUpKGx-.js +0 -1
- package/dist/assets/dist-1nstYXhq.js +0 -1
- package/dist/assets/dist-8LCoAaYJ.js +0 -1
- package/dist/assets/dist-B6bNYRJb.js +0 -1
- package/dist/assets/dist-BKMynip3.js +0 -1
- package/dist/assets/dist-BP1tfplb.js +0 -1
- package/dist/assets/dist-BuwU3nUf.js +0 -1
- package/dist/assets/dist-DrFRlZJz.js +0 -1
- package/dist/assets/dist-DzjeKTWA.js +0 -1
- package/dist/assets/dist-QPLTo43F.js +0 -1
- package/dist/assets/dist-YQMqR1ri.js +0 -1
- package/dist/assets/dtd-Dwf-AbUl.js +0 -1
- package/dist/assets/dylan-VHUB-7ez.js +0 -1
- package/dist/assets/ecl-DvGrObaA.js +0 -1
- package/dist/assets/eiffel-CUYga93e.js +0 -1
- package/dist/assets/elm-BhMhmEP6.js +0 -1
- package/dist/assets/erlang-D4xbdJFD.js +0 -1
- package/dist/assets/factor-C0grrWrC.js +0 -1
- package/dist/assets/forth-CSTdXn4A.js +0 -1
- package/dist/assets/fortran-fENQO2l9.js +0 -1
- package/dist/assets/gallery-page-Yq7Go5FK.js +0 -1
- package/dist/assets/gas-CPJMP4zj.js +0 -1
- package/dist/assets/gherkin-CiUmN4EE.js +0 -1
- package/dist/assets/groovy-DMooZA1X.js +0 -1
- package/dist/assets/haskell-sDlThg6u.js +0 -1
- package/dist/assets/haxe-Do80ITri.js +0 -1
- package/dist/assets/idl-DFPg6k4F.js +0 -1
- package/dist/assets/index-CikhHYAB.css +0 -2
- package/dist/assets/infoDiagram-WHAUD3N6-_vys04Gc.js +0 -2
- package/dist/assets/javascript-BGc4iHiT.js +0 -1
- package/dist/assets/julia-BHNHVraD.js +0 -1
- package/dist/assets/links-DgZx-VxW.js +0 -1
- package/dist/assets/livescript-Bv2FpOTI.js +0 -1
- package/dist/assets/lua-BysKHKPZ.js +0 -1
- package/dist/assets/markdown-renderer-Dy-FX527.js +0 -10
- package/dist/assets/mathematica-BBTHoTvM.js +0 -1
- package/dist/assets/mbox-DeT9_lvk.js +0 -1
- package/dist/assets/mermaid-4DMBBIKO-DQz_QvBC.js +0 -1
- package/dist/assets/mirc-D5fMSrXQ.js +0 -1
- package/dist/assets/mllike-BtxCpmpf.js +0 -1
- package/dist/assets/modelica-CRQcZpK6.js +0 -1
- package/dist/assets/mscgen-BfscU11q.js +0 -1
- package/dist/assets/mumps-g7ooySbl.js +0 -1
- package/dist/assets/nsis-BtyCmCHZ.js +0 -1
- package/dist/assets/ntriples-DLyxF-NO.js +0 -1
- package/dist/assets/octave-CFXP_zzr.js +0 -1
- package/dist/assets/oz-CrQbC0N_.js +0 -1
- package/dist/assets/packages-panel-BWx1vxzx.js +0 -1
- package/dist/assets/panels-vsOIbBB6.js +0 -1
- package/dist/assets/pascal-CCSZgYZH.js +0 -1
- package/dist/assets/perl-Bc1MycMl.js +0 -1
- package/dist/assets/pig-CDr04RdE.js +0 -1
- package/dist/assets/powershell-DcvrUwmh.js +0 -1
- package/dist/assets/properties-Y8OgFJMt.js +0 -1
- package/dist/assets/protobuf-Dyx-ENis.js +0 -1
- package/dist/assets/pug-T7qjkmFh.js +0 -1
- package/dist/assets/puppet-BzYSg90u.js +0 -1
- package/dist/assets/python-D4S7tVrv.js +0 -1
- package/dist/assets/q-YpqabiSl.js +0 -1
- package/dist/assets/r-DzpuVbmQ.js +0 -1
- package/dist/assets/readonly-python-code-Drm-iT2o.js +0 -1
- package/dist/assets/rpm-DlmAEsH3.js +0 -1
- package/dist/assets/ruby-BHSBK3B4.js +0 -1
- package/dist/assets/run-page-nX90i6hX.js +0 -1
- package/dist/assets/sas-DmQmrPAn.js +0 -1
- package/dist/assets/scheme-CZHvt0eC.js +0 -1
- package/dist/assets/shell-BJzvpTMz.js +0 -1
- package/dist/assets/sieve-DGjPhm-6.js +0 -1
- package/dist/assets/smalltalk-DaG60CSr.js +0 -1
- package/dist/assets/sparql-CN49rXKB.js +0 -1
- package/dist/assets/square-DPZjfUaq.js +0 -1
- package/dist/assets/stateDiagram-v2-4FDKWEC3-yH9Rugj-.js +0 -1
- package/dist/assets/stex-D6sqtveI.js +0 -1
- package/dist/assets/stylus-CzHZ_0CL.js +0 -1
- package/dist/assets/swift-5fr5bTbW.js +0 -1
- package/dist/assets/tcl-D5oaR_GS.js +0 -1
- package/dist/assets/textile-CJ5e8-7o.js +0 -1
- package/dist/assets/toml-D9QwsDZO.js +0 -1
- package/dist/assets/tracing-panel-CxTR1RYC.js +0 -2
- package/dist/assets/troff-DlwQJbfr.js +0 -1
- package/dist/assets/ttcn-DUvoO9Vo.js +0 -1
- package/dist/assets/ttcn-cfg-Cj-t-B3M.js +0 -1
- package/dist/assets/turtle-DzvxCIjc.js +0 -1
- package/dist/assets/useCellActionButton-DUpWwYW8.js +0 -1
- package/dist/assets/useNotebookActions-DRVyh52j.js +0 -1
- package/dist/assets/useRunCells-CmbQTUeO.js +0 -1
- package/dist/assets/utilities.esm-8Diy8be3.js +0 -3
- package/dist/assets/vb-Caf126uo.js +0 -1
- package/dist/assets/vbscript-BgRl-LR8.js +0 -1
- package/dist/assets/velocity-CpvfwasF.js +0 -1
- package/dist/assets/verilog-hsHogyKv.js +0 -1
- package/dist/assets/vhdl-FciHazR1.js +0 -1
- package/dist/assets/webidl-CqjZNx5V.js +0 -1
- package/dist/assets/worker-CyCdlLVf.js +0 -120
- package/dist/assets/xquery-DpTaL2IT.js +0 -1
- package/dist/assets/yacas-D6bbkHsk.js +0 -1
- package/dist/assets/z80-MlujNizn.js +0 -1
- /package/dist/assets/{Combination-izwufzWe.js → Combination-BAEdC-rz.js} +0 -0
- /package/dist/assets/{ImageComparisonComponent-BVXYpigZ.js → ImageComparisonComponent-BmIQwrIS.js} +0 -0
- /package/dist/assets/{Inputs-CbenuziM.js → Inputs-GV-aQbOR.js} +0 -0
- /package/dist/assets/{SSRProvider-DrpctNAg.js → SSRProvider-BIDQNg9Q.js} +0 -0
- /package/dist/assets/{apl-CpVTW0fY.js → apl-DHQPYmx2.js} +0 -0
- /package/dist/assets/{array-BKCdRGCR.js → array-Cf4PUXPA.js} +0 -0
- /package/dist/assets/{asciiarmor-qDK46YPd.js → asciiarmor-fnQAw8T8.js} +0 -0
- /package/dist/assets/{asn1-s2ZJql-T.js → asn1-5lb7I37s.js} +0 -0
- /package/dist/assets/{asterisk-Cy-53Fu-.js → asterisk-B04IJwAt.js} +0 -0
- /package/dist/assets/{badge-D4keL3YC.js → badge-DX6CQ6PA.js} +0 -0
- /package/dist/assets/{brainfuck-5fD7ZBSv.js → brainfuck-D30bRgvC.js} +0 -0
- /package/dist/assets/{bundle.esm-CBAPjfrh.js → bundle.esm-i_UbZC0w.js} +0 -0
- /package/dist/assets/{card-DdlNjkEA.js → card-OlSjYhmd.js} +0 -0
- /package/dist/assets/{chunk-76Q3JFCE-B261Xkae.js → chunk-76Q3JFCE-BAZ3z-Fu.js} +0 -0
- /package/dist/assets/{chunk-FWNWRKHM-C0b0DIG0.js → chunk-FWNWRKHM-DzIkWreD.js} +0 -0
- /package/dist/assets/{chunk-LBM3YZW2-D3uTpSOd.js → chunk-LBM3YZW2-BRBe7ZaP.js} +0 -0
- /package/dist/assets/{chunk-LHMN2FUI-2FK1AIwU.js → chunk-LHMN2FUI-C4onQD9F.js} +0 -0
- /package/dist/assets/{chunk-O7ZBX7Z2-DoE29Zoe.js → chunk-O7ZBX7Z2-CFqB9i7k.js} +0 -0
- /package/dist/assets/{chunk-S6J4BHB3-Cvr0itXK.js → chunk-S6J4BHB3-C4KwSfr_.js} +0 -0
- /package/dist/assets/{chunk-T53DSG4Q-C7bPrBIt.js → chunk-T53DSG4Q-Bhd043Cg.js} +0 -0
- /package/dist/assets/{chunk-XAJISQIX-TwS9jXHm.js → chunk-XAJISQIX-0gvwv13B.js} +0 -0
- /package/dist/assets/{clear-button-DI7_bdOB.js → clear-button-DMZhBF9S.js} +0 -0
- /package/dist/assets/{click-outside-container-Npdlddni.js → click-outside-container-BXzp0MYr.js} +0 -0
- /package/dist/assets/{clike-D58k-9vu.js → clike-jZeb2kFn.js} +0 -0
- /package/dist/assets/{clojure-Dkfjc-Fr.js → clojure-C0pkR8m2.js} +0 -0
- /package/dist/assets/{cmake-ffkxaUPf.js → cmake-DlvFtk_M.js} +0 -0
- /package/dist/assets/{cobol-CKARYRbQ.js → cobol-C_yb45mr.js} +0 -0
- /package/dist/assets/{coffeescript-Dz_r13Pd.js → coffeescript-DBK0AeMT.js} +0 -0
- /package/dist/assets/{colors-CUF0x3zZ.js → colors-DUsH-HF1.js} +0 -0
- /package/dist/assets/{common-keywords-CU-S2Vqm.js → common-keywords-D6ImdZX8.js} +0 -0
- /package/dist/assets/{commonlisp-EavL1_-N.js → commonlisp-Bo8hOdn-.js} +0 -0
- /package/dist/assets/{crystal-BQ8grXRY.js → crystal-DYrQEMVi.js} +0 -0
- /package/dist/assets/{css-Bmqfl4iE.js → css-zh47N2UC.js} +0 -0
- /package/dist/assets/{cypher-BKXIqXpT.js → cypher-BWPAHm69.js} +0 -0
- /package/dist/assets/{cytoscape.esm-BihqZ2_-.js → cytoscape.esm-BauVghWH.js} +0 -0
- /package/dist/assets/{d-DRfFJaS4.js → d-CMuL95tt.js} +0 -0
- /package/dist/assets/{diff-BWk1g4qN.js → diff-oor_HZ51.js} +0 -0
- /package/dist/assets/{dist-qIIHXwC_.js → dist-B62Xo7-b.js} +0 -0
- /package/dist/assets/{dist-Bx6F_B1m.js → dist-B83wRp_v.js} +0 -0
- /package/dist/assets/{dist-DY1C8dgM.js → dist-BZP3Xxma.js} +0 -0
- /package/dist/assets/{dist-DLCy1STk.js → dist-BZWmfQbq.js} +0 -0
- /package/dist/assets/{dist-OZngTf6n.js → dist-BpuNldXk.js} +0 -0
- /package/dist/assets/{dist-DxxvVPQH.js → dist-C1VXabOr.js} +0 -0
- /package/dist/assets/{dist-Bpsss9Eu.js → dist-C5H5qIvq.js} +0 -0
- /package/dist/assets/{dist-DsxhNXOv.js → dist-CF4gkF4y.js} +0 -0
- /package/dist/assets/{dist-rT8uZk_k.js → dist-CNW1zLeq.js} +0 -0
- /package/dist/assets/{dist-BYyu59D8.js → dist-CoCQUAeM.js} +0 -0
- /package/dist/assets/{dist-Dj9zNHXU.js → dist-CtrmRz20.js} +0 -0
- /package/dist/assets/{dist-BIKFl48f.js → dist-Dcqqg9UU.js} +0 -0
- /package/dist/assets/{dist-B0VqT_4z.js → dist-sMh6mJ2d.js} +0 -0
- /package/dist/assets/{dist-BZe-2kC9.js → dist-tLOz534J.js} +0 -0
- /package/dist/assets/{dtd-C1gvGnbI.js → dtd-Fe_Eikw6.js} +0 -0
- /package/dist/assets/{duckdb-keywords-CR9f4wu5.js → duckdb-keywords-5i8us9ML.js} +0 -0
- /package/dist/assets/{dylan-D26gjyBo.js → dylan-DjUZAjRK.js} +0 -0
- /package/dist/assets/{ebnf-BdwTqLUx.js → ebnf--2SLsnbd.js} +0 -0
- /package/dist/assets/{ecl-D_pghsRW.js → ecl-qgyT1LqI.js} +0 -0
- /package/dist/assets/{eiffel-CQeRT5l7.js → eiffel-Dgulx8rf.js} +0 -0
- /package/dist/assets/{elm-BMJejWwJ.js → elm-BvFY4GJb.js} +0 -0
- /package/dist/assets/{empty-state-DrmGF88A.js → empty-state-B8Cxr9nj.js} +0 -0
- /package/dist/assets/{en-US-DU2jJCpg.js → en-US-CCVfmA-q.js} +0 -0
- /package/dist/assets/{erlang-DTDt7sE1.js → erlang-Ba0XOLlj.js} +0 -0
- /package/dist/assets/{errors-CPlNr33a.js → errors-TZBmrJmc.js} +0 -0
- /package/dist/assets/{esm-C-53tlK5.js → esm-Bmu2DhPy.js} +0 -0
- /package/dist/assets/{esm-DvGqZhsW.js → esm-vpVfqVb3.js} +0 -0
- /package/dist/assets/{fcl-BFWIADMy.js → fcl-CcJxrJDr.js} +0 -0
- /package/dist/assets/{forth-DLug1Uos.js → forth-gbBFxz8f.js} +0 -0
- /package/dist/assets/{fortran-CfPd9x83.js → fortran-CXijpPbh.js} +0 -0
- /package/dist/assets/{gas-C1vwqe1-.js → gas-CnHGSLCd.js} +0 -0
- /package/dist/assets/{gherkin-DxFhlJYL.js → gherkin-DfEZpSxY.js} +0 -0
- /package/dist/assets/{groovy-AqjvKzmp.js → groovy-9JiNA9gq.js} +0 -0
- /package/dist/assets/{haskell-B9BMJXS_.js → haskell-CKr_RZFK.js} +0 -0
- /package/dist/assets/{haxe-CFd4aFZH.js → haxe-DsAAHfaR.js} +0 -0
- /package/dist/assets/{http-CgzOAOXj.js → http-BBXW5Cu0.js} +0 -0
- /package/dist/assets/{icon-32x32-XIbzzdoo.js → icon-32x32-DH9kM4Sh.js} +0 -0
- /package/dist/assets/{icons-DjR3qLG_.js → icons-CCHmxi8d.js} +0 -0
- /package/dist/assets/{idl-DKlFwAHI.js → idl-Djz72z1a.js} +0 -0
- /package/dist/assets/{init-DZpk0tdu.js → init-DRQmrFIb.js} +0 -0
- /package/dist/assets/{isValid-DpSSOU5z.js → isValid-DDt9wNjK.js} +0 -0
- /package/dist/assets/{javascript-BMuus-3E.js → javascript-CsBr0q2-.js} +0 -0
- /package/dist/assets/{julia-DGv2rboF.js → julia-BCYfl68O.js} +0 -0
- /package/dist/assets/{label-C9wP7Kp2.js → label-E64zk6_7.js} +0 -0
- /package/dist/assets/{livescript-51GCvdcX.js → livescript-BEw7FNJP.js} +0 -0
- /package/dist/assets/{loro_wasm_bg-CdafknAX.js → loro_wasm_bg-DzFUi5p_.js} +0 -0
- /package/dist/assets/{lua-BwsAaftY.js → lua-DqxHXOsz.js} +0 -0
- /package/dist/assets/{math-PgJy15ir.js → math-BJjKGmt3.js} +0 -0
- /package/dist/assets/{mathematica-Du4amQ2X.js → mathematica-Do-octY0.js} +0 -0
- /package/dist/assets/{mbox-DKL-l6mb.js → mbox-VgrgGytk.js} +0 -0
- /package/dist/assets/{mhchem-CJmb5HsA.js → mhchem-ICopO0mb.js} +0 -0
- /package/dist/assets/{mirc-CvS1f8zr.js → mirc-DkD5mNIp.js} +0 -0
- /package/dist/assets/{mllike-VhUq11ot.js → mllike-C8Ah4kKN.js} +0 -0
- /package/dist/assets/{modelica-CjlHUZat.js → modelica-2q7w6nLE.js} +0 -0
- /package/dist/assets/{mscgen-26STiUsc.js → mscgen-BRqvO7u4.js} +0 -0
- /package/dist/assets/{multi-icon-BWLbAXq5.js → multi-icon-jM74Rbvg.js} +0 -0
- /package/dist/assets/{mumps-4o8IRFVU.js → mumps-CjtiTT1a.js} +0 -0
- /package/dist/assets/{nginx-CFpObAqg.js → nginx-CiiHaY6Q.js} +0 -0
- /package/dist/assets/{node-sql-parser-UQ9Ur_LP.js → node-sql-parser-Bzh-sm1v.js} +0 -0
- /package/dist/assets/{ntriples-D0zMsGJ-.js → ntriples-4lauqsM6.js} +0 -0
- /package/dist/assets/{numbers-UHLm3mA-.js → numbers-D7O23mOZ.js} +0 -0
- /package/dist/assets/{octave-CpJ40RVG.js → octave-A2kFK0nR.js} +0 -0
- /package/dist/assets/{oz-W9l5CbXg.js → oz-CvXDMSbl.js} +0 -0
- /package/dist/assets/{panel-context-2mVKaSYm.js → panel-context-HhzMRtZm.js} +0 -0
- /package/dist/assets/{pascal-BZtdYBm4.js → pascal-6Jinj26u.js} +0 -0
- /package/dist/assets/{path-dqkZlAhR.js → path-D7fidI_g.js} +0 -0
- /package/dist/assets/{paths-Dfii2bN8.js → paths-BzSgteR-.js} +0 -0
- /package/dist/assets/{perl-Q79ziUtd.js → perl-CXauYQdN.js} +0 -0
- /package/dist/assets/{pig-Dn9ueYxG.js → pig-Dl0QLQI6.js} +0 -0
- /package/dist/assets/{powershell-DfXPJ56g.js → powershell-6bdy_rHW.js} +0 -0
- /package/dist/assets/{preload-helper-DItdS47A.js → preload-helper-D2MJg03u.js} +0 -0
- /package/dist/assets/{properties-DRrw--9g.js → properties-p1rx3aF7.js} +0 -0
- /package/dist/assets/{protobuf-5jBh6Y7Q.js → protobuf-BZ6p9Xh_.js} +0 -0
- /package/dist/assets/{puppet-Bql5dDjm.js → puppet-CjdIRV7D.js} +0 -0
- /package/dist/assets/{python-C7HNB5A8.js → python-uzyJYIWU.js} +0 -0
- /package/dist/assets/{q-CW9lnZXb.js → q-CfD3i9uI.js} +0 -0
- /package/dist/assets/{r-DmuxMz9j.js → r-JyJdYHQB.js} +0 -0
- /package/dist/assets/{react-plotly-D4UaXGJL.js → react-plotly-kw5W3sN8.js} +0 -0
- /package/dist/assets/{react-resizable-panels.browser.esm-Mq45xjWt.js → react-resizable-panels.browser.esm-Da3ksQXL.js} +0 -0
- /package/dist/assets/{requests-BQkjRazP.js → requests-De5yEBc8.js} +0 -0
- /package/dist/assets/{rpm-2BQZRXYJ.js → rpm-DuGPfDyX.js} +0 -0
- /package/dist/assets/{ruby-B-FyRKB2.js → ruby-CA1TzLxZ.js} +0 -0
- /package/dist/assets/{runs-DyBOFmAK.js → runs-YUGrkyfE.js} +0 -0
- /package/dist/assets/{sas-Q-94el51.js → sas-BJPWZC7M.js} +0 -0
- /package/dist/assets/{scheme-By445Ne_.js → scheme-IRagAY3r.js} +0 -0
- /package/dist/assets/{session-fBtIbMpB.js → session-BOFn9QrD.js} +0 -0
- /package/dist/assets/{shell-CezKrT5T.js → shell-BVpF3W_J.js} +0 -0
- /package/dist/assets/{sieve-MRWdUbX3.js → sieve-BSfPMeZl.js} +0 -0
- /package/dist/assets/{simple-mode-BtxX-F6Z.js → simple-mode-BmS_AmGQ.js} +0 -0
- /package/dist/assets/{slides-component-CeMnlG8H.js → slides-component-JYH8kck6.js} +0 -0
- /package/dist/assets/{smalltalk-C0KZrhPl.js → smalltalk-CkHVehky.js} +0 -0
- /package/dist/assets/{solr-BkyoAXqg.js → solr-DYYuHZ7Q.js} +0 -0
- /package/dist/assets/{sparql-CIMoBhOL.js → sparql-CmKKjr-f.js} +0 -0
- /package/dist/assets/{spreadsheet-7FZkhkVo.js → spreadsheet-hVThRh5Z.js} +0 -0
- /package/dist/assets/{sql-BNnXxKXA.js → sql-DG1AJQLP.js} +0 -0
- /package/dist/assets/{src-CmKhyEBC.js → src-CsZby044.js} +0 -0
- /package/dist/assets/{stex-CtmkcLz7.js → stex-jWatZkll.js} +0 -0
- /package/dist/assets/{stylus-BxV1gbJN.js → stylus-D28PuRsm.js} +0 -0
- /package/dist/assets/{swift-C7ozIpB2.js → swift-D-jfpPuv.js} +0 -0
- /package/dist/assets/{tcl-D9BrnXdg.js → tcl-BrQdCDVA.js} +0 -0
- /package/dist/assets/{textile-8cDJUs1C.js → textile-DXBc8HMq.js} +0 -0
- /package/dist/assets/{tiddlywiki-DE5lnTl3.js → tiddlywiki-Dc8c_QaF.js} +0 -0
- /package/dist/assets/{tiki-Dt9oCY2i.js → tiki-CwGnGueS.js} +0 -0
- /package/dist/assets/{timer-DXL2Iyk5.js → timer-B6DpdVnC.js} +0 -0
- /package/dist/assets/{toml-Dtc3-sql.js → toml-ClSouHPE.js} +0 -0
- /package/dist/assets/{trash-2-B8SQYdQq.js → trash-2-DDsWrxuJ.js} +0 -0
- /package/dist/assets/{trash-Cv0yH8fs.js → trash-DCF6Krvi.js} +0 -0
- /package/dist/assets/{treemap-8bMgVaTX.js → treemap-CZF0Enj1.js} +0 -0
- /package/dist/assets/{triangle-alert-U93NZYDl.js → triangle-alert-CebQ7XwA.js} +0 -0
- /package/dist/assets/{troff-CxUT34rC.js → troff-BGDyQn9x.js} +0 -0
- /package/dist/assets/{ttcn-BiVwbsr5.js → ttcn-De1OdISX.js} +0 -0
- /package/dist/assets/{ttcn-cfg-BLBfLtVM.js → ttcn-cfg-CQMSrhCz.js} +0 -0
- /package/dist/assets/{turtle-DqTQI7WU.js → turtle-DNhfxysg.js} +0 -0
- /package/dist/assets/{types-DZmRsGZN.js → types-iYXk7c05.js} +0 -0
- /package/dist/assets/{use-toast-T0_cQDma.js → use-toast-BDYuj3zG.js} +0 -0
- /package/dist/assets/{useDebounce-B28kFfrM.js → useDebounce-7iEVSqwM.js} +0 -0
- /package/dist/assets/{useDeepCompareMemoize-ChxLMT9E.js → useDeepCompareMemoize-5OUgerQ3.js} +0 -0
- /package/dist/assets/{useInterval-BNfubus2.js → useInterval-B-PjgTm9.js} +0 -0
- /package/dist/assets/{useTheme-CTORu22_.js → useTheme-DQozhcp1.js} +0 -0
- /package/dist/assets/{uuid-DercMavo.js → uuid-DXdzqzcr.js} +0 -0
- /package/dist/assets/{vb-D-mN5USJ.js → vb-BX7-Md9G.js} +0 -0
- /package/dist/assets/{vbscript-BHlqX42l.js → vbscript-DNMzJOTU.js} +0 -0
- /package/dist/assets/{velocity-BX6395is.js → velocity-viirwPm7.js} +0 -0
- /package/dist/assets/{verilog-CixbCKyb.js → verilog-CZguTLBV.js} +0 -0
- /package/dist/assets/{vhdl-CofOR-02.js → vhdl-CAEhCBOl.js} +0 -0
- /package/dist/assets/{web-vitals-Br9feh_D.js → web-vitals-CUbDLLN1.js} +0 -0
- /package/dist/assets/{webidl-DAqkXtNt.js → webidl-BNJg_7gX.js} +0 -0
- /package/dist/assets/{workflow-B12dAR4X.js → workflow-BphwJiK3.js} +0 -0
- /package/dist/assets/{ws-DQY2KwIl.js → ws-DcVtI9Wj.js} +0 -0
- /package/dist/assets/{xquery-wPbfv0-o.js → xquery-CGV_r322.js} +0 -0
- /package/dist/assets/{yacas-B5Zk1avC.js → yacas-uRzw7z7m.js} +0 -0
- /package/dist/assets/{z80-C0HuDTqd.js → z80-CBK8t-9T.js} +0 -0
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/* Copyright 2026 Marimo. All rights reserved. */
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
|
|
4
|
+
const BufferPathSchema = z.array(z.array(z.union([z.string(), z.number()])));
|
|
5
|
+
const StateSchema = z.record(z.string(), z.any());
|
|
6
|
+
|
|
7
|
+
export const AnyWidgetMessageSchema = z.discriminatedUnion("method", [
|
|
8
|
+
z.object({
|
|
9
|
+
method: z.literal("open"),
|
|
10
|
+
state: StateSchema,
|
|
11
|
+
buffer_paths: BufferPathSchema.optional(),
|
|
12
|
+
}),
|
|
13
|
+
z.object({
|
|
14
|
+
method: z.literal("update"),
|
|
15
|
+
state: StateSchema,
|
|
16
|
+
buffer_paths: BufferPathSchema.optional(),
|
|
17
|
+
}),
|
|
18
|
+
z.object({
|
|
19
|
+
method: z.literal("custom"),
|
|
20
|
+
content: z.any(),
|
|
21
|
+
}),
|
|
22
|
+
z.object({
|
|
23
|
+
method: z.literal("echo_update"),
|
|
24
|
+
buffer_paths: BufferPathSchema,
|
|
25
|
+
state: StateSchema,
|
|
26
|
+
}),
|
|
27
|
+
z.object({
|
|
28
|
+
method: z.literal("close"),
|
|
29
|
+
}),
|
|
30
|
+
]);
|
|
31
|
+
|
|
32
|
+
export type AnyWidgetMessage = z.infer<typeof AnyWidgetMessageSchema>;
|
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
/* Copyright 2026 Marimo. All rights reserved. */
|
|
2
2
|
import { get, set } from "lodash-es";
|
|
3
|
-
import { invariant } from "
|
|
3
|
+
import { invariant } from "../../../utils/invariant";
|
|
4
4
|
import {
|
|
5
5
|
type Base64String,
|
|
6
6
|
base64ToDataView,
|
|
7
7
|
dataViewToBase64,
|
|
8
|
-
} from "
|
|
9
|
-
import { Logger } from "
|
|
8
|
+
} from "../../../utils/json/base64";
|
|
9
|
+
import { Logger } from "../../../utils/Logger";
|
|
10
|
+
import type { WireFormat } from "./types";
|
|
11
|
+
|
|
12
|
+
type Path = (string | number)[];
|
|
10
13
|
|
|
11
14
|
/**
|
|
12
15
|
* Recursively find all DataViews in an object and return their paths.
|
|
13
16
|
*
|
|
14
17
|
* This mirrors ipywidgets' _separate_buffers logic.
|
|
15
18
|
*/
|
|
16
|
-
function findDataViewPaths(
|
|
17
|
-
|
|
18
|
-
currentPath: (string | number)[] = [],
|
|
19
|
-
): (string | number)[][] {
|
|
20
|
-
const paths: (string | number)[][] = [];
|
|
19
|
+
function findDataViewPaths(obj: unknown, currentPath: Path = []): Path[] {
|
|
20
|
+
const paths: Path[] = [];
|
|
21
21
|
|
|
22
22
|
if (obj instanceof DataView) {
|
|
23
23
|
paths.push(currentPath);
|
|
@@ -51,7 +51,7 @@ export function serializeBuffersToBase64<T extends Record<string, unknown>>(
|
|
|
51
51
|
|
|
52
52
|
const state = structuredClone(inputObject);
|
|
53
53
|
const buffers: Base64String[] = [];
|
|
54
|
-
const bufferPaths:
|
|
54
|
+
const bufferPaths: Path[] = [];
|
|
55
55
|
|
|
56
56
|
for (const bufferPath of dataViewPaths) {
|
|
57
57
|
const dataView = get(inputObject, bufferPath);
|
|
@@ -66,31 +66,6 @@ export function serializeBuffersToBase64<T extends Record<string, unknown>>(
|
|
|
66
66
|
return { state, buffers, bufferPaths };
|
|
67
67
|
}
|
|
68
68
|
|
|
69
|
-
/**
|
|
70
|
-
* Wire format for anywidget state with binary data.
|
|
71
|
-
* Buffers can be either base64 strings (from network) or DataViews (in-memory).
|
|
72
|
-
*/
|
|
73
|
-
export interface WireFormat<T = Record<string, unknown>> {
|
|
74
|
-
state: T;
|
|
75
|
-
bufferPaths: (string | number)[][];
|
|
76
|
-
buffers: Base64String[];
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
/**
|
|
80
|
-
* Check if an object is in wire format.
|
|
81
|
-
*/
|
|
82
|
-
export function isWireFormat<T = Record<string, unknown>>(
|
|
83
|
-
obj: unknown,
|
|
84
|
-
): obj is WireFormat<T> {
|
|
85
|
-
return (
|
|
86
|
-
obj !== null &&
|
|
87
|
-
typeof obj === "object" &&
|
|
88
|
-
"state" in obj &&
|
|
89
|
-
"bufferPaths" in obj &&
|
|
90
|
-
"buffers" in obj
|
|
91
|
-
);
|
|
92
|
-
}
|
|
93
|
-
|
|
94
69
|
/**
|
|
95
70
|
* Decode wire format or insert DataViews at specified paths.
|
|
96
71
|
*
|
|
@@ -103,7 +78,7 @@ export function isWireFormat<T = Record<string, unknown>>(
|
|
|
103
78
|
*/
|
|
104
79
|
export function decodeFromWire<T extends Record<string, unknown>>(input: {
|
|
105
80
|
state: T;
|
|
106
|
-
bufferPaths?:
|
|
81
|
+
bufferPaths?: Path[];
|
|
107
82
|
buffers?: readonly (DataView | Base64String)[];
|
|
108
83
|
}): T {
|
|
109
84
|
const { state, bufferPaths, buffers } = input;
|
|
@@ -121,7 +96,9 @@ export function decodeFromWire<T extends Record<string, unknown>>(input: {
|
|
|
121
96
|
);
|
|
122
97
|
}
|
|
123
98
|
|
|
124
|
-
|
|
99
|
+
// We should avoid using structuredClone if possible since
|
|
100
|
+
// it can be very slow. If mutability is a concern, we should use a different approach.
|
|
101
|
+
const out = state;
|
|
125
102
|
|
|
126
103
|
for (const [i, bufferPath] of bufferPaths.entries()) {
|
|
127
104
|
const buffer = buffers?.[i];
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/* Copyright 2026 Marimo. All rights reserved. */
|
|
2
|
+
import type { Base64String } from "@/utils/json/base64";
|
|
3
|
+
import type { TypedString } from "@/utils/typed";
|
|
4
|
+
|
|
5
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
6
|
+
export type EventHandler = (...args: any[]) => void;
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Type-safe widget model id.
|
|
10
|
+
*/
|
|
11
|
+
export type WidgetModelId = TypedString<"WidgetModelId">;
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* AnyWidget model state with buffers.
|
|
15
|
+
*/
|
|
16
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
17
|
+
export type ModelState = Record<string | number, any>;
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Wire format for anywidget state with binary data.
|
|
21
|
+
* Buffers can be either base64 strings (from network) or DataViews (in-memory).
|
|
22
|
+
*/
|
|
23
|
+
export interface WireFormat<T = Record<string, unknown>> {
|
|
24
|
+
state: T;
|
|
25
|
+
bufferPaths: (string | number)[][];
|
|
26
|
+
buffers: Base64String[];
|
|
27
|
+
}
|
|
@@ -16,12 +16,13 @@ import {
|
|
|
16
16
|
HelpCircleIcon,
|
|
17
17
|
PaperclipIcon,
|
|
18
18
|
RotateCwIcon,
|
|
19
|
-
|
|
19
|
+
SendHorizontalIcon,
|
|
20
20
|
SettingsIcon,
|
|
21
21
|
Trash2Icon,
|
|
22
22
|
X,
|
|
23
23
|
} from "lucide-react";
|
|
24
24
|
import React, { useEffect, useRef, useState } from "react";
|
|
25
|
+
import { z } from "zod";
|
|
25
26
|
import { renderUIMessage } from "@/components/chat/chat-display";
|
|
26
27
|
import { convertToFileUIPart } from "@/components/chat/chat-utils";
|
|
27
28
|
import {
|
|
@@ -71,6 +72,16 @@ interface Props extends PluginFunctions {
|
|
|
71
72
|
host: HTMLElement;
|
|
72
73
|
}
|
|
73
74
|
|
|
75
|
+
const ChatMessageIncomingSchema = z.object({
|
|
76
|
+
type: z.literal("stream_chunk"),
|
|
77
|
+
message_id: z.string(),
|
|
78
|
+
content: z
|
|
79
|
+
.any()
|
|
80
|
+
.nullable()
|
|
81
|
+
.transform((val) => val as UIMessageChunk | null),
|
|
82
|
+
is_final: z.boolean().optional(),
|
|
83
|
+
});
|
|
84
|
+
|
|
74
85
|
export const Chatbot: React.FC<Props> = (props) => {
|
|
75
86
|
const [input, setInput] = useState("");
|
|
76
87
|
const [config, setConfig] = useState<ChatConfig>(props.config);
|
|
@@ -252,15 +263,13 @@ export const Chatbot: React.FC<Props> = (props) => {
|
|
|
252
263
|
props.host as HTMLElementNotDerivedFromRef,
|
|
253
264
|
MarimoIncomingMessageEvent.TYPE,
|
|
254
265
|
(e) => {
|
|
255
|
-
const
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
!("type" in message) ||
|
|
260
|
-
message.type !== "stream_chunk"
|
|
261
|
-
) {
|
|
266
|
+
const parsedMessage = ChatMessageIncomingSchema.safeParse(
|
|
267
|
+
e.detail.message,
|
|
268
|
+
);
|
|
269
|
+
if (!parsedMessage.success) {
|
|
262
270
|
return;
|
|
263
271
|
}
|
|
272
|
+
const message = parsedMessage.data;
|
|
264
273
|
|
|
265
274
|
// Push to the stream for useChat to process
|
|
266
275
|
const controller = frontendStreamControllerRef.current;
|
|
@@ -268,17 +277,10 @@ export const Chatbot: React.FC<Props> = (props) => {
|
|
|
268
277
|
return;
|
|
269
278
|
}
|
|
270
279
|
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
message_id: string;
|
|
274
|
-
content?: UIMessageChunk;
|
|
275
|
-
is_final?: boolean;
|
|
276
|
-
};
|
|
277
|
-
|
|
278
|
-
if (frontendMessage.content) {
|
|
279
|
-
controller.enqueue(frontendMessage.content);
|
|
280
|
+
if (message.content) {
|
|
281
|
+
controller.enqueue(message.content);
|
|
280
282
|
}
|
|
281
|
-
if (
|
|
283
|
+
if (message.is_final) {
|
|
282
284
|
controller.close();
|
|
283
285
|
frontendStreamControllerRef.current = null;
|
|
284
286
|
}
|
|
@@ -559,10 +561,10 @@ export const Chatbot: React.FC<Props> = (props) => {
|
|
|
559
561
|
type="submit"
|
|
560
562
|
disabled={isLoading || !input}
|
|
561
563
|
variant="outline"
|
|
562
|
-
size="
|
|
564
|
+
size="xs"
|
|
563
565
|
className="text-(--slate-11)"
|
|
564
566
|
>
|
|
565
|
-
<
|
|
567
|
+
<SendHorizontalIcon className="h-4 w-4" />
|
|
566
568
|
</Button>
|
|
567
569
|
</form>
|
|
568
570
|
</div>
|
package/src/utils/Deferred.ts
CHANGED
|
@@ -1,9 +1,17 @@
|
|
|
1
1
|
/* Copyright 2026 Marimo. All rights reserved. */
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* A deferred promise that can be resolved or rejected externally.
|
|
5
|
+
*
|
|
6
|
+
* Provides synchronous access to status and resolved value, useful for
|
|
7
|
+
* cases where you need to check if a promise has settled without awaiting it.
|
|
8
|
+
*/
|
|
2
9
|
export class Deferred<T> {
|
|
3
10
|
promise: Promise<T>;
|
|
4
11
|
resolve!: (value: T | PromiseLike<T>) => void;
|
|
5
12
|
reject!: (reason?: unknown) => void;
|
|
6
13
|
status: "pending" | "resolved" | "rejected" = "pending";
|
|
14
|
+
value: T | undefined = undefined;
|
|
7
15
|
|
|
8
16
|
constructor() {
|
|
9
17
|
this.promise = new Promise<T>((resolve, reject) => {
|
|
@@ -13,8 +21,21 @@ export class Deferred<T> {
|
|
|
13
21
|
};
|
|
14
22
|
this.resolve = (value) => {
|
|
15
23
|
this.status = "resolved";
|
|
24
|
+
// Store the value for synchronous access
|
|
25
|
+
if (!isPromiseLike(value)) {
|
|
26
|
+
this.value = value;
|
|
27
|
+
}
|
|
16
28
|
resolve(value);
|
|
17
29
|
};
|
|
18
30
|
});
|
|
19
31
|
}
|
|
20
32
|
}
|
|
33
|
+
|
|
34
|
+
function isPromiseLike(value: unknown): value is PromiseLike<unknown> {
|
|
35
|
+
return (
|
|
36
|
+
typeof value === "object" &&
|
|
37
|
+
value !== null &&
|
|
38
|
+
"then" in value &&
|
|
39
|
+
typeof value.then === "function"
|
|
40
|
+
);
|
|
41
|
+
}
|
|
@@ -20,7 +20,7 @@ describe("Blob serialization and deserialization", () => {
|
|
|
20
20
|
|
|
21
21
|
test("deserializeBlob should deserialize a base64 string to a Blob", async () => {
|
|
22
22
|
const serialized = await serializeBlob(testBlob);
|
|
23
|
-
const deserialized =
|
|
23
|
+
const deserialized = deserializeBlob(serialized);
|
|
24
24
|
expect(deserialized).toBeDefined();
|
|
25
25
|
expect(deserialized.size).toBe(testBlob.size);
|
|
26
26
|
expect(deserialized.type).toBe(testBlob.type);
|
|
@@ -28,7 +28,7 @@ describe("Blob serialization and deserialization", () => {
|
|
|
28
28
|
|
|
29
29
|
test("deserialized Blob should contain the original content", async () => {
|
|
30
30
|
const serialized = await serializeBlob(testBlob);
|
|
31
|
-
const deserialized =
|
|
31
|
+
const deserialized = deserializeBlob(serialized);
|
|
32
32
|
const reader = new FileReader();
|
|
33
33
|
// eslint-disable-next-line unicorn/prefer-blob-reading-methods
|
|
34
34
|
reader.readAsText(deserialized);
|
|
@@ -45,7 +45,7 @@ describe("Blob serialization and deserialization", () => {
|
|
|
45
45
|
type: "image/png",
|
|
46
46
|
});
|
|
47
47
|
const serialized = await serializeBlob(imageBlob);
|
|
48
|
-
const deserialized =
|
|
48
|
+
const deserialized = deserializeBlob(serialized);
|
|
49
49
|
expect(deserialized).toBeDefined();
|
|
50
50
|
expect(deserialized.size).toBe(imageBlob.size);
|
|
51
51
|
expect(deserialized.type).toBe(imageBlob.type);
|
|
@@ -214,16 +214,19 @@ describe("CollapsibleTree", () => {
|
|
|
214
214
|
`);
|
|
215
215
|
});
|
|
216
216
|
|
|
217
|
-
it("fails to expand", () => {
|
|
217
|
+
it("fails to expand when node not found", () => {
|
|
218
218
|
expect(() => tree.expand("five")).toThrowErrorMatchingInlineSnapshot(
|
|
219
219
|
"[Error: Node five not found in tree. Valid ids: one,two,three,four]",
|
|
220
220
|
);
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
);
|
|
221
|
+
});
|
|
222
|
+
|
|
223
|
+
it("expand on already expanded node is a no-op", () => {
|
|
224
|
+
// Expanding an already expanded node should return the same tree (no-op)
|
|
225
|
+
const result = tree.expand("one");
|
|
226
|
+
expect(result).toBe(tree);
|
|
227
|
+
// Can call multiple times without error
|
|
228
|
+
const result2 = tree.expand("one");
|
|
229
|
+
expect(result2).toBe(tree);
|
|
227
230
|
});
|
|
228
231
|
|
|
229
232
|
it("moves nodes correctly", () => {
|
|
@@ -378,6 +381,18 @@ describe("CollapsibleTree", () => {
|
|
|
378
381
|
`);
|
|
379
382
|
});
|
|
380
383
|
|
|
384
|
+
it("can delete non-collapsed nodes without throwing", () => {
|
|
385
|
+
// Deleting a non-collapsed node should not throw
|
|
386
|
+
// (previously this would throw "Node is already expanded" internally)
|
|
387
|
+
const result = tree.deleteAtIndex(1);
|
|
388
|
+
expect(result.toString()).toMatchInlineSnapshot(`
|
|
389
|
+
"one
|
|
390
|
+
three
|
|
391
|
+
four
|
|
392
|
+
"
|
|
393
|
+
`);
|
|
394
|
+
});
|
|
395
|
+
|
|
381
396
|
it("fails to delete nodes", () => {
|
|
382
397
|
expect(() => tree.deleteAtIndex(5)).toThrowErrorMatchingInlineSnapshot(
|
|
383
398
|
"[Error: Node at index 5 not found in tree]",
|
|
@@ -76,4 +76,26 @@ describe("parseContent", () => {
|
|
|
76
76
|
url: "https://avatars.githubusercontent.com/u/123",
|
|
77
77
|
});
|
|
78
78
|
});
|
|
79
|
+
|
|
80
|
+
it("preserves newlines between URLs", () => {
|
|
81
|
+
const parts = parseContent("https://marimo.io\nhttps://github.com\n");
|
|
82
|
+
expect(parts).toEqual([
|
|
83
|
+
{ type: "url", url: "https://marimo.io" },
|
|
84
|
+
{ type: "text", value: "\n" },
|
|
85
|
+
{ type: "url", url: "https://github.com" },
|
|
86
|
+
{ type: "text", value: "\n" },
|
|
87
|
+
]);
|
|
88
|
+
});
|
|
89
|
+
|
|
90
|
+
it("preserves whitespace in mixed content", () => {
|
|
91
|
+
const parts = parseContent(
|
|
92
|
+
"Line 1: https://marimo.io\nLine 2: https://github.com",
|
|
93
|
+
);
|
|
94
|
+
expect(parts).toEqual([
|
|
95
|
+
{ type: "text", value: "Line 1: " },
|
|
96
|
+
{ type: "url", url: "https://marimo.io" },
|
|
97
|
+
{ type: "text", value: "\nLine 2: " },
|
|
98
|
+
{ type: "url", url: "https://github.com" },
|
|
99
|
+
]);
|
|
100
|
+
});
|
|
79
101
|
});
|
package/src/utils/blob.ts
CHANGED
|
@@ -14,32 +14,19 @@ export function serializeBlob<T>(blob: Blob): Promise<DataURLString> {
|
|
|
14
14
|
});
|
|
15
15
|
}
|
|
16
16
|
|
|
17
|
-
export function deserializeBlob(serializedBlob: DataURLString):
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
for (let i = 0; i < len; i++) {
|
|
29
|
-
bytes[i] = binaryString.charCodeAt(i);
|
|
30
|
-
}
|
|
31
|
-
// Create a new Blob from the array buffer
|
|
32
|
-
const blob = new Blob([bytes], { type: mimeType });
|
|
33
|
-
resolve(blob);
|
|
34
|
-
} catch (error) {
|
|
35
|
-
reject(ensureError(error));
|
|
36
|
-
}
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
function ensureError(error: unknown): Error {
|
|
41
|
-
if (error instanceof Error) {
|
|
42
|
-
return error;
|
|
17
|
+
export function deserializeBlob(serializedBlob: DataURLString): Blob {
|
|
18
|
+
// Extract the base64 data from the data URL
|
|
19
|
+
const [prefix, base64Data] = serializedBlob.split(",", 2);
|
|
20
|
+
const mimeType = /^data:(.+);base64$/.exec(prefix)?.[1];
|
|
21
|
+
// Decode the base64 string
|
|
22
|
+
const binaryString = atob(base64Data);
|
|
23
|
+
// Convert the binary string to an array buffer
|
|
24
|
+
const len = binaryString.length;
|
|
25
|
+
const bytes = new Uint8Array(len);
|
|
26
|
+
for (let i = 0; i < len; i++) {
|
|
27
|
+
bytes[i] = binaryString.charCodeAt(i);
|
|
43
28
|
}
|
|
44
|
-
|
|
29
|
+
// Create a new Blob from the array buffer
|
|
30
|
+
const blob = new Blob([bytes], { type: mimeType });
|
|
31
|
+
return blob;
|
|
45
32
|
}
|
package/src/utils/id-tree.tsx
CHANGED
|
@@ -360,7 +360,8 @@ export class CollapsibleTree<T> {
|
|
|
360
360
|
}
|
|
361
361
|
|
|
362
362
|
/**
|
|
363
|
-
* Expand a node and all of its children
|
|
363
|
+
* Expand a node and all of its children.
|
|
364
|
+
* If the node is already expanded, returns the same tree (no-op).
|
|
364
365
|
*/
|
|
365
366
|
expand(id: T): CollapsibleTree<T> {
|
|
366
367
|
const nodeIndex = this.nodes.findIndex((n) => n.value === id);
|
|
@@ -373,7 +374,8 @@ export class CollapsibleTree<T> {
|
|
|
373
374
|
let nodes = [...this.nodes];
|
|
374
375
|
const node = nodes[nodeIndex];
|
|
375
376
|
if (!node.isCollapsed) {
|
|
376
|
-
|
|
377
|
+
// Already expanded, no-op
|
|
378
|
+
return this;
|
|
377
379
|
}
|
|
378
380
|
|
|
379
381
|
nodes[nodeIndex] = new TreeNode(node.value, false, []);
|
|
@@ -495,13 +497,9 @@ export class CollapsibleTree<T> {
|
|
|
495
497
|
*/
|
|
496
498
|
deleteAtIndex(idx: number): CollapsibleTree<T> {
|
|
497
499
|
const id = this.atOrThrow(idx);
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
} catch {
|
|
502
|
-
// Don't care if its not expanded
|
|
503
|
-
}
|
|
504
|
-
return this.withNodes(arrayDelete(tree.nodes, idx));
|
|
500
|
+
// Expand the node first (if collapsed) to bring children back to top level
|
|
501
|
+
const tree = this.expand(id);
|
|
502
|
+
return tree.withNodes(arrayDelete(tree.nodes, idx));
|
|
505
503
|
}
|
|
506
504
|
|
|
507
505
|
delete(id: T): CollapsibleTree<T> {
|
|
@@ -524,16 +522,10 @@ export class CollapsibleTree<T> {
|
|
|
524
522
|
if (found.length === 0) {
|
|
525
523
|
return this;
|
|
526
524
|
}
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
} catch {
|
|
532
|
-
// Don't care if its the last node and its not expanded
|
|
533
|
-
}
|
|
534
|
-
}
|
|
535
|
-
|
|
536
|
-
return result;
|
|
525
|
+
return found.reduce<CollapsibleTree<T>>(
|
|
526
|
+
(acc, node) => acc.expand(node),
|
|
527
|
+
this,
|
|
528
|
+
);
|
|
537
529
|
}
|
|
538
530
|
|
|
539
531
|
/**
|
package/src/utils/json/base64.ts
CHANGED
|
@@ -52,13 +52,27 @@ export function extractBase64FromDataURL(str: DataURLString): Base64String {
|
|
|
52
52
|
}
|
|
53
53
|
|
|
54
54
|
/**
|
|
55
|
-
* Convert a base64 string to a Uint8Array.
|
|
55
|
+
* Convert a base64 string to a Uint8Array (fallback implementation).
|
|
56
|
+
* See benchmarks/base64-conversion.bench.ts for why we use a manual loop.
|
|
56
57
|
*/
|
|
57
|
-
|
|
58
|
-
const binary =
|
|
59
|
-
|
|
58
|
+
function base64ToUint8ArrayFallback(bytes: string): Uint8Array {
|
|
59
|
+
const binary = globalThis.atob(bytes);
|
|
60
|
+
const len = binary.length;
|
|
61
|
+
const uint8Array = new Uint8Array(len);
|
|
62
|
+
for (let i = 0; i < len; i++) {
|
|
63
|
+
uint8Array[i] = binary.charCodeAt(i);
|
|
64
|
+
}
|
|
65
|
+
return uint8Array;
|
|
60
66
|
}
|
|
61
67
|
|
|
68
|
+
/**
|
|
69
|
+
* Convert a base64 string to a Uint8Array.
|
|
70
|
+
* Uses native Uint8Array.fromBase64 if available, otherwise falls back to manual implementation.
|
|
71
|
+
*/
|
|
72
|
+
export const base64ToUint8Array: (bytes: Base64String) => Uint8Array =
|
|
73
|
+
// @ts-expect-error - Uint8Array.fromBase64 types coming in TypeScript 5.10+
|
|
74
|
+
Uint8Array.fromBase64 ?? base64ToUint8ArrayFallback;
|
|
75
|
+
|
|
62
76
|
/**
|
|
63
77
|
* Convert a base64 string to a DataView.
|
|
64
78
|
*/
|
|
@@ -68,13 +82,29 @@ export function base64ToDataView(bytes: Base64String): DataView {
|
|
|
68
82
|
}
|
|
69
83
|
|
|
70
84
|
/**
|
|
71
|
-
* Convert a Uint8Array to a base64 string.
|
|
85
|
+
* Convert a Uint8Array to a base64 string (fallback implementation).
|
|
86
|
+
* See benchmarks/uint8array-to-base64.bench.ts for why we use a manual loop.
|
|
72
87
|
*/
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
88
|
+
function uint8ArrayToBase64Fallback(binary: Uint8Array): Base64String {
|
|
89
|
+
let binaryString = "";
|
|
90
|
+
const len = binary.length;
|
|
91
|
+
for (let i = 0; i < len; i++) {
|
|
92
|
+
binaryString += String.fromCharCode(binary[i]);
|
|
93
|
+
}
|
|
94
|
+
return globalThis.btoa(binaryString) as Base64String;
|
|
76
95
|
}
|
|
77
96
|
|
|
97
|
+
/**
|
|
98
|
+
* Convert a Uint8Array to a base64 string.
|
|
99
|
+
* Uses native Uint8Array.prototype.toBase64 if available, otherwise falls back to manual implementation.
|
|
100
|
+
*/
|
|
101
|
+
export const uint8ArrayToBase64: (binary: Uint8Array) => Base64String =
|
|
102
|
+
// @ts-expect-error - Uint8Array.prototype.toBase64 types coming in TypeScript 5.10+
|
|
103
|
+
Uint8Array.prototype.toBase64
|
|
104
|
+
? // @ts-expect-error - Uint8Array.prototype.toBase64 types coming in TypeScript 5.10+
|
|
105
|
+
(binary) => binary.toBase64()
|
|
106
|
+
: uint8ArrayToBase64Fallback;
|
|
107
|
+
|
|
78
108
|
/**
|
|
79
109
|
* Convert a DataView to a base64 string.
|
|
80
110
|
*/
|
package/src/utils/url-parser.ts
CHANGED
|
@@ -19,7 +19,7 @@ export function parseContent(text: string): ContentPart[] {
|
|
|
19
19
|
return [{ type: "image", url: text }];
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
-
const parts = text.split(urlRegex).filter((part) => part
|
|
22
|
+
const parts = text.split(urlRegex).filter((part) => part !== "");
|
|
23
23
|
return parts.map((part) => {
|
|
24
24
|
const isUrl = urlRegex.test(part);
|
|
25
25
|
if (isUrl) {
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var i=Object.defineProperty;var o=(e,s,t)=>s in e?i(e,s,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[s]=t;var r=(e,s,t)=>o(e,typeof s!="symbol"?s+"":s,t);var a=class{constructor(){r(this,"status","pending");this.promise=new Promise((e,s)=>{this.reject=t=>{this.status="rejected",s(t)},this.resolve=t=>{this.status="resolved",e(t)}})}};export{a as t};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./any-language-editor-B1WBkbF4.js","./copy-icon-B9w72gBC.js","./button-CZ3Cs4qb.js","./hotkeys-BHHWjLlp.js","./useEventListener-Cb-RVVEn.js","./compiler-runtime-B3qBwwSJ.js","./react-Bj1aDYRI.js","./chunk-LvLJmgfZ.js","./cn-BKtXLv3a.js","./clsx-D8GwTfvk.js","./jsx-runtime-ZmTK25f3.js","./tooltip-C_WgOOcZ.js","./Combination-izwufzWe.js","./react-dom-CSu739Rf.js","./dist-DDGMbl6p.js","./use-toast-T0_cQDma.js","./copy-DHrHayPa.js","./check-Dr3SxUsb.js","./createLucideIcon-BCdY6lG5.js","./copy-D-8y6iMN.js","./error-banner-Dlrzo_Ay.js","./alert-dialog-Ctz24SMn.js","./errors-CPlNr33a.js","./zod-H_cgTO0M.js","./dist-BZe-2kC9.js","./dist-DBwNzi3C.js","./dist-BIKFl48f.js","./dist-Bpsss9Eu.js","./dist-ChS0Dc_R.js","./dist-TiFCI16_.js","./dist-B0VqT_4z.js","./dist-qIIHXwC_.js","./dist-OZngTf6n.js","./dist-Cayq-K1c.js","./dist-DGPkGdD2.js","./dist-BYyu59D8.js","./dist-DLCy1STk.js","./dist-CNknMFYG.js","./dist-DsxhNXOv.js","./dist-rT8uZk_k.js","./esm-C-53tlK5.js","./extends-BiFDv3jB.js","./objectWithoutPropertiesLoose-DfWeGRFv.js","./dist-CtsanegT.js","./esm-BmQh-C2G.js","./dist-BcotcL0h.js","./dist-B1CD4nG7.js","./dist-BtUqLXS9.js","./dist-Gqv0jSNr.js","./dist-GCDTTvNx.js","./dist-Bx6F_B1m.js","./apl-CpVTW0fY.js","./asciiarmor-qDK46YPd.js","./asn1-s2ZJql-T.js","./brainfuck-5fD7ZBSv.js","./clike-D58k-9vu.js","./clojure-Dkfjc-Fr.js","./cmake-ffkxaUPf.js","./cobol-CKARYRbQ.js","./coffeescript-Dz_r13Pd.js","./commonlisp-EavL1_-N.js","./crystal-BQ8grXRY.js","./css-Bmqfl4iE.js","./cypher-BKXIqXpT.js","./d-DRfFJaS4.js","./diff-BWk1g4qN.js","./dtd-C1gvGnbI.js","./dylan-D26gjyBo.js","./ecl-D_pghsRW.js","./eiffel-CQeRT5l7.js","./elm-BMJejWwJ.js","./erlang-DTDt7sE1.js","./factor-Ccw_GUUV.js","./simple-mode-BtxX-F6Z.js","./forth-DLug1Uos.js","./fortran-CfPd9x83.js","./gas-C1vwqe1-.js","./gherkin-DxFhlJYL.js","./groovy-AqjvKzmp.js","./haskell-B9BMJXS_.js","./haxe-CFd4aFZH.js","./idl-DKlFwAHI.js","./javascript-BMuus-3E.js","./julia-DGv2rboF.js","./livescript-51GCvdcX.js","./lua-BwsAaftY.js","./mathematica-Du4amQ2X.js","./mbox-DKL-l6mb.js","./mirc-CvS1f8zr.js","./mllike-VhUq11ot.js","./modelica-CjlHUZat.js","./mscgen-26STiUsc.js","./mumps-4o8IRFVU.js","./nsis-CzZqoCdu.js","./ntriples-D0zMsGJ-.js","./octave-CpJ40RVG.js","./oz-W9l5CbXg.js","./pascal-BZtdYBm4.js","./perl-Q79ziUtd.js","./pig-Dn9ueYxG.js","./powershell-DfXPJ56g.js","./properties-DRrw--9g.js","./protobuf-5jBh6Y7Q.js","./pug-BqLMXh-D.js","./puppet-Bql5dDjm.js","./python-C7HNB5A8.js","./q-CW9lnZXb.js","./r-DmuxMz9j.js","./rpm-2BQZRXYJ.js","./ruby-B-FyRKB2.js","./sas-Q-94el51.js","./scheme-By445Ne_.js","./shell-CezKrT5T.js","./sieve-MRWdUbX3.js","./smalltalk-C0KZrhPl.js","./sparql-CIMoBhOL.js","./stex-CtmkcLz7.js","./stylus-BxV1gbJN.js","./swift-C7ozIpB2.js","./tcl-D9BrnXdg.js","./textile-8cDJUs1C.js","./toml-Dtc3-sql.js","./troff-CxUT34rC.js","./ttcn-cfg-BLBfLtVM.js","./ttcn-BiVwbsr5.js","./turtle-DqTQI7WU.js","./vb-D-mN5USJ.js","./vbscript-BHlqX42l.js","./velocity-BX6395is.js","./verilog-CixbCKyb.js","./vhdl-CofOR-02.js","./webidl-DAqkXtNt.js","./xquery-wPbfv0-o.js","./yacas-B5Zk1avC.js","./z80-C0HuDTqd.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{s as e}from"./chunk-LvLJmgfZ.js";import{t as i}from"./react-Bj1aDYRI.js";import{t as o}from"./createLucideIcon-BCdY6lG5.js";import{t as m}from"./preload-helper-DItdS47A.js";let r,a,s=(async()=>{r=o("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(i(),1).lazy)(()=>m(()=>import("./any-language-editor-B1WBkbF4.js").then(async t=>(await t.__tla,t)),__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]),import.meta.url))})();export{s as __tla,r as n,a as t};
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import{s as Y}from"./chunk-LvLJmgfZ.js";import{d as ye,f as ve,l as Ne,u as be}from"./useEvent-BhXAndur.js";import{t as we}from"./react-Bj1aDYRI.js";import{J as ke,Ln as Ie,Lr as $e,Rr as G,Yr as _e,hn as Fe,sn as Ae,w as Te,y as Ce}from"./cells-DdLMh4kY.js";import{t as E}from"./compiler-runtime-B3qBwwSJ.js";import{t as Se}from"./invariant-CAG_dYON.js";import{r as Me}from"./utils-YqBXNpsM.js";import{t as ze}from"./jsx-runtime-ZmTK25f3.js";import{r as K,t as $}from"./button-CZ3Cs4qb.js";import{t as X}from"./cn-BKtXLv3a.js";import{t as H}from"./createLucideIcon-BCdY6lG5.js";import{r as qe}from"./x-ZP5cObgf.js";import{a as Ee,p as Le,r as Pe,t as We}from"./dropdown-menu-BUgFWmX1.js";import{a as Ve,n as Be}from"./state-yRkQ_uSW.js";import{c as Z,n as Qe}from"./datasource-BBMMxrje.js";import{a as De}from"./dist-BYyu59D8.js";import{t as ee}from"./tooltip-C_WgOOcZ.js";import{a as Oe,i as He,n as Re,r as Ue}from"./multi-map-t2yhdp8D.js";import{t as te}from"./kbd-Cm6Ba9qg.js";import{t as A}from"./links-7AQBmdyV.js";import{r as Je,t as Ye}from"./alert-BOoN6gJ1.js";import{o as Ge,t as Ke}from"./useInstallPackage-xrG_Tm9T.js";import{n as b}from"./cell-link-OwIbBa8Q.js";var Xe=H("package",[["path",{d:"M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z",key:"1a0edw"}],["path",{d:"M12 22V12",key:"d0xqtd"}],["polyline",{points:"3.29 7 12 12 20.71 7",key:"ousv84"}],["path",{d:"m7.5 4.27 9 5.15",key:"1c824w"}]]),T=H("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"}]]),re=H("terminal",[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]]);function Ze(r){let e=null,s=r.cursor();do s.name==="ExpressionStatement"&&(e=s.node);while(s.next());return e}function et(r){let e=r.split(`
|
|
2
|
-
`),s=" ",n=Ze(De.parse(r));if(!n)return["def _():",...R(e,s),`${s}return`,"","","_()"].join(`
|
|
3
|
-
`);let i=r.slice(0,n.from).trim(),l=r.slice(n.from).trim(),a=i.split(`
|
|
4
|
-
`),c=l.split(`
|
|
5
|
-
`);return["def _():",...R(a,s),`${s}return ${c[0]}`,...R(c.slice(1),s),"","","_()"].join(`
|
|
6
|
-
`)}function R(r,e){if(r.length===1&&r[0]==="")return[];let s=[];for(let n of r)n===""?s.push(""):s.push(e+n);return s}function tt(r,e){var s;if(r.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 n=>{Se(n.editor,"Editor is null");let i=et(n.editor.state.doc.toString());n.editor.dispatch({changes:{from:0,to:n.editor.state.doc.length,insert:i}})}}];if(r.type==="exception"&&r.exception_type==="NameError"){let n=(s=r.msg.match(/name '(.+)' is not defined/))==null?void 0:s[1];if(!n||!(n in se))return[];let i=rt(n);return[{title:`Fix: Add '${i}'`,description:"Add a new cell for the missing import",fixType:"manual",onFix:async l=>{l.addCodeBelow(i)}}]}return r.type==="sql-error"&&e.aiEnabled?[{title:"Fix with AI",description:"Fix the SQL statement",fixType:"ai",onFix:async n=>{var a;let i=Qe(n.cellId),l=`Fix the SQL statement: ${r.msg}.`;i&&(l+=`
|
|
7
|
-
Database schema: ${i}`),(a=n.aiFix)==null||a.setAiCompletionCell({cellId:n.cellId,initialPrompt:l,triggerImmediately:n.aiFix.triggerFix})}}]:[]}function rt(r){let e=se[r];return e===r?`import ${e}`:`import ${e} as ${r}`}var se={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"},st=E(),nt=_e("marimo:ai-autofix-mode","autofix",Fe);function lt(){let r=(0,st.c)(3),[e,s]=Ne(nt),n;return r[0]!==e||r[1]!==s?(n={fixMode:e,setFixMode:s},r[0]=e,r[1]=s,r[2]=n):n=r[2],n}var U=E(),t=Y(ze(),1);const N=r=>{let e=(0,U.c)(21),{errors:s,cellId:n,className:i}=r,l=ve(),{createNewCell:a}=Te(),c=be(Me),o;if(e[0]!==c||e[1]!==s){let x;e[3]===c?x=e[4]:(x=y=>tt(y,{aiEnabled:c}),e[3]=c,e[4]=x),o=s.flatMap(x),e[0]=c,e[1]=s,e[2]=o}else o=e[2];let m=o,p=ye(Be);if(m.length===0)return null;let d=m[0],f;e[5]!==n||e[6]!==a||e[7]!==d||e[8]!==p||e[9]!==l?(f=x=>{var w;let y=(w=l.get(Ce).cellHandles[n].current)==null?void 0:w.editorView;d.onFix({addCodeBelow:_=>{a({cellId:n,autoFocus:!1,before:!1,code:_})},editor:y,cellId:n,aiFix:{setAiCompletionCell:p,triggerFix:x}}),y==null||y.focus()},e[5]=n,e[6]=a,e[7]=d,e[8]=p,e[9]=l,e[10]=f):f=e[10];let u=f,j;e[11]===i?j=e[12]:(j=X("my-2",i),e[11]=i,e[12]=j);let h;e[13]!==d.description||e[14]!==d.fixType||e[15]!==d.title||e[16]!==u?(h=d.fixType==="ai"?(0,t.jsx)(oe,{tooltip:d.description,openPrompt:()=>u(!1),applyAutofix:()=>u(!0)}):(0,t.jsx)(ee,{content:d.description,align:"start",children:(0,t.jsxs)($,{size:"xs",variant:"outline",className:"font-normal",onClick:()=>u(!1),children:[(0,t.jsx)(Z,{className:"h-3 w-3 mr-2"}),d.title]})}),e[13]=d.description,e[14]=d.fixType,e[15]=d.title,e[16]=u,e[17]=h):h=e[17];let g;return e[18]!==j||e[19]!==h?(g=(0,t.jsx)("div",{className:j,children:h}),e[18]=j,e[19]=h,e[20]=g):g=e[20],g};var ne=Ve,le=Z,ie="Suggest a prompt",ae="Fix with AI";const oe=r=>{let e=(0,U.c)(21),{tooltip:s,openPrompt:n,applyAutofix:i}=r,{fixMode:l,setFixMode:a}=lt(),c=l==="prompt"?n:i,o;e[0]===l?o=e[1]:(o=l==="prompt"?(0,t.jsx)(ne,{className:"h-3 w-3 mr-2 mb-0.5"}):(0,t.jsx)(le,{className:"h-3 w-3 mr-2 mb-0.5"}),e[0]=l,e[1]=o);let m=l==="prompt"?ie:ae,p;e[2]!==c||e[3]!==o||e[4]!==m?(p=(0,t.jsxs)($,{size:"xs",variant:"outline",className:"font-normal rounded-r-none border-r-0",onClick:c,children:[o,m]}),e[2]=c,e[3]=o,e[4]=m,e[5]=p):p=e[5];let d;e[6]!==p||e[7]!==s?(d=(0,t.jsx)(ee,{content:s,align:"start",children:p}),e[6]=p,e[7]=s,e[8]=d):d=e[8];let f;e[9]===Symbol.for("react.memo_cache_sentinel")?(f=(0,t.jsx)(Le,{asChild:!0,children:(0,t.jsx)($,{size:"xs",variant:"outline",className:"rounded-l-none px-2","aria-label":"Fix options",children:(0,t.jsx)(qe,{className:"h-3 w-3"})})}),e[9]=f):f=e[9];let u;e[10]!==l||e[11]!==a?(u=()=>{a(l==="prompt"?"autofix":"prompt")},e[10]=l,e[11]=a,e[12]=u):u=e[12];let j=l==="prompt"?"autofix":"prompt",h;e[13]===j?h=e[14]:(h=(0,t.jsx)(it,{mode:j}),e[13]=j,e[14]=h);let g;e[15]!==u||e[16]!==h?(g=(0,t.jsxs)(We,{children:[f,(0,t.jsx)(Pe,{align:"end",className:"w-56",children:(0,t.jsx)(Ee,{className:"flex items-center gap-2",onClick:u,children:h})})]}),e[15]=u,e[16]=h,e[17]=g):g=e[17];let x;return e[18]!==g||e[19]!==d?(x=(0,t.jsxs)("div",{className:"flex",children:[d,g]}),e[18]=g,e[19]=d,e[20]=x):x=e[20],x};var it=r=>{let e=(0,U.c)(12),{mode:s}=r,n;e[0]===s?n=e[1]:(n=s==="prompt"?(0,t.jsx)(ne,{className:"h-4 w-4"}):(0,t.jsx)(le,{className:"h-4 w-4"}),e[0]=s,e[1]=n);let i=n,l=s==="prompt"?ie:ae,a=s==="prompt"?"Edit the prompt before applying":"Apply AI fixes automatically",c;e[2]===l?c=e[3]:(c=(0,t.jsx)("span",{className:"font-medium",children:l}),e[2]=l,e[3]=c);let o;e[4]===a?o=e[5]:(o=(0,t.jsx)("span",{className:"text-xs text-muted-foreground",children:a}),e[4]=a,e[5]=o);let m;e[6]!==c||e[7]!==o?(m=(0,t.jsxs)("div",{className:"flex flex-col",children:[c,o]}),e[6]=c,e[7]=o,e[8]=m):m=e[8];let p;return e[9]!==i||e[10]!==m?(p=(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[i,m]}),e[9]=i,e[10]=m,e[11]=p):p=e[11],p},ce=/(https?:\/\/\S+)/,at=/\.(png|jpe?g|gif|webp|svg|ico)(\?.*)?$/i,de=/^data:image\//i,ot=["avatars.githubusercontent.com"];function me(r){return de.test(r)?[{type:"image",url:r}]:r.split(ce).filter(e=>e.trim()!=="").map(e=>ce.test(e)?at.test(e)||de.test(e)||ot.some(s=>e.includes(s))?{type:"image",url:e}:{type:"url",url:e}:{type:"text",value:e})}var pe=E(),L=Y(we(),1),ct=new ke;const J=r=>{let e=RegExp("\x1B\\[[0-9;]*m","g");return r.replaceAll(e,"")};var ue=/(pip\s+install|uv\s+add|uv\s+pip\s+install)\s+/gi;function dt(r){ue.lastIndex=0;let e=ue.exec(r);if(!e)return null;let s=e.index+e[0].length,n=r.slice(s).split(/\s+/),i="",l=0;for(let c of n){let o=c.trim();if(!o)continue;if(o.startsWith("-")){l+=o.length+1;continue}let m=o.match(/^[\w,.[\]-]+/);if(m){i=m[0];break}break}if(!i)return null;let a=s+l+i.length;return{package:i,endIndex:a}}function k(r,e=""){if(!r)return null;if(!/https?:\/\//.test(r))return r;let s=me(r);return s.length===1&&s[0].type==="text"?r:(0,t.jsx)(t.Fragment,{children:s.map((n,i)=>{let l=e?`${e}-${i}`:i;if(n.type==="url"){let a=J(n.url);return(0,t.jsx)("a",{href:a,target:"_blank",rel:"noopener noreferrer",onClick:K.stopPropagation(),className:"text-link hover:underline",children:a},l)}if(n.type==="image"){let a=J(n.url);return(0,t.jsx)("a",{href:a,target:"_blank",rel:"noopener noreferrer",onClick:K.stopPropagation(),className:"text-link hover:underline",children:a},l)}return(0,t.jsx)(L.Fragment,{children:n.value},l)})})}var mt=r=>{let e=(0,pe.c)(6),{packages:s,children:n}=r,{handleInstallPackages:i}=Ke(),l;e[0]!==i||e[1]!==s?(l=c=>{i(s),c.preventDefault()},e[0]=i,e[1]=s,e[2]=l):l=e[2];let a;return e[3]!==n||e[4]!==l?(a=(0,t.jsx)("button",{onClick:l,className:"text-link hover:underline",type:"button",children:n}),e[3]=n,e[4]=l,e[5]=a):a=e[5],a};const pt=r=>{if(!(r instanceof G.Text))return;let e=J(r.data);if(!/(pip\s+install|uv\s+add|uv\s+pip\s+install)/i.test(e))return;let s=[],n=/(pip\s+install|uv\s+add|uv\s+pip\s+install)\s+/gi,i;for(;(i=n.exec(e))!==null;){let c=i.index,o=dt(e.slice(c));o&&s.push({match:i,result:o})}if(s.length===0)return;let l=[],a=0;if(s.forEach((c,o)=>{let{match:m,result:p}=c,d=m.index,f=d+p.endIndex;if(a<d){let j=e.slice(a,d);l.push((0,t.jsx)(L.Fragment,{children:k(j,`before-${o}`)},`before-${o}`))}let u=e.slice(d,f);l.push((0,t.jsx)(mt,{packages:[p.package],children:u},`install-${o}`)),a=f}),a<e.length){let c=e.slice(a);l.push((0,t.jsx)(L.Fragment,{children:k(c,"after")},"after"))}return(0,t.jsx)(t.Fragment,{children:l})},ut=r=>{if(!(r instanceof G.Text))return;let e=r.data;if(!/https?:\/\//.test(e))return;let s=k(e);if(typeof s!="string")return(0,t.jsx)(t.Fragment,{children:s})},ht=(...r)=>e=>{for(let s of r){let n=s(e);if(n!==void 0)return n}},xt=(r,e)=>(0,t.jsx)("span",{children:$e(ct.ansi_to_html(r),{replace:s=>e(s)})}),ft=r=>{let e=(0,pe.c)(4),{text:s}=r,n;e[0]===s?n=e[1]:(n=xt(s,ht(pt,ut)),e[0]=s,e[1]=n);let i=n,l;return e[2]===i?l=e[3]:(l=(0,t.jsx)(t.Fragment,{children:i}),e[2]=i,e[3]=l),l};var he=E(),I=r=>{let e=(0,he.c)(10),s=r.title??"Tip",n;e[0]===s?n=e[1]:(n=(0,t.jsx)(Oe,{className:"pt-2 pb-2 font-normal",children:s}),e[0]=s,e[1]=n);let i;e[2]===r.children?i=e[3]:(i=(0,t.jsx)(Ue,{className:"mr-24 text-[0.84375rem]",children:r.children}),e[2]=r.children,e[3]=i);let l;e[4]!==n||e[5]!==i?(l=(0,t.jsxs)(He,{value:"item-1",className:"text-muted-foreground",children:[n,i]}),e[4]=n,e[5]=i,e[6]=l):l=e[6];let a;return e[7]!==r.className||e[8]!==l?(a=(0,t.jsx)(Re,{type:"single",collapsible:!0,className:r.className,children:l}),e[7]=r.className,e[8]=l,e[9]=a):a=e[9],a};const jt=r=>{let e=(0,he.c)(31),{errors:s,cellId:n,className:i}=r,l=Ae(),a="This cell wasn't run because it has errors",c="destructive",o="text-error";if(s.some(gt))a="Interrupted";else if(s.some(yt))a="An internal error occurred";else if(s.some(vt))a="Ancestor prevented from running",c="default",o="text-secondary-foreground";else if(s.some(Nt))a="Ancestor stopped",c="default",o="text-secondary-foreground";else if(s.some(bt))a="SQL error";else{let x;e[0]===s?x=e[1]:(x=s.find(wt),e[0]=s,e[1]=x);let y=x;y&&"exception_type"in y&&(a=y.exception_type)}let m,p,d,f,u,j;if(e[2]!==c||e[3]!==n||e[4]!==l||e[5]!==i||e[6]!==s||e[7]!==o||e[8]!==a){let x=s.filter(kt),y=s.filter(It),w=s.filter($t),_=s.filter(_t),P=s.filter(Ft),C=s.filter(At),S=s.filter(Tt),W=s.filter(Ct),V=s.filter(St),B=s.filter(Mt),F=s.filter(zt),Q=s.filter(qt),D=s.filter(Et),M;e[15]===l?M=e[16]:(M=()=>{l.openApplication("scratchpad")},e[15]=l,e[16]=M);let xe=M,fe=()=>{let v=[];if(F.length>0||Q.length>0){let q=F.some(Lt),ge=!q&&F.some(Pt);v.push((0,t.jsxs)("div",{children:[F.map(Wt),Q.map(Vt),q&&(0,t.jsxs)($,{size:"xs",variant:"outline",className:"mt-2 font-normal",onClick:()=>Ge(l),children:[(0,t.jsx)(Xe,{className:"h-3.5 w-3.5 mr-1.5 mb-0.5"}),(0,t.jsx)("span",{children:"Open package manager"})]}),ge&&(0,t.jsxs)($,{size:"xs",variant:"outline",className:"mt-2 font-normal",onClick:()=>l.openApplication("terminal"),children:[(0,t.jsx)(re,{className:"h-3.5 w-3.5 mr-1.5"}),(0,t.jsx)("span",{children:"Open terminal"})]}),n&&(0,t.jsx)(N,{errors:[...F,...Q],cellId:n})]},"syntax-unknown"))}if(x.length>0&&v.push((0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"text-muted-foreground font-medium",children:"The setup cell cannot be run because it has references."}),(0,t.jsx)("ul",{className:"list-disc",children:x.flatMap(Bt)}),n&&(0,t.jsx)(N,{errors:x,cellId:n}),(0,t.jsxs)(I,{title:"Why can't the setup cell have references?",className:"mb-2",children:[(0,t.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,t.jsx)("p",{className:"py-2",children:"Try simplifying the setup cell to only contain only necessary variables."}),(0,t.jsxs)("p",{className:"py-2",children:[(0,t.jsxs)(A,{href:"https://links.marimo.app/errors-setup",children:["Learn more at our docs"," ",(0,t.jsx)(T,{size:"0.75rem",className:"inline"})]}),"."]})]})]},"setup-refs")),y.length>0&&v.push((0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"text-muted-foreground font-medium",children:"This cell is in a cycle."}),(0,t.jsx)("ul",{className:"list-disc",children:y.flatMap(Qt)}),n&&(0,t.jsx)(N,{errors:y,cellId:n}),(0,t.jsxs)(I,{title:"What are cycles and how do I resolve them?",className:"mb-2",children:[(0,t.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,t.jsx)("p",{className:"py-2",children:"Try merging these cells into a single cell to eliminate the cycle."}),(0,t.jsxs)("p",{className:"py-2",children:[(0,t.jsxs)(A,{href:"https://links.marimo.app/errors-cycles",children:["Learn more at our docs"," ",(0,t.jsx)(T,{size:"0.75rem",className:"inline"})]}),"."]})]})]},"cycle")),w.length>0){let q=w[0].name;v.push((0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"text-muted-foreground font-medium",children:"This cell redefines variables from other cells."}),w.map(Ot),n&&(0,t.jsx)(N,{errors:w,cellId:n}),(0,t.jsxs)(I,{title:"Why can't I redefine variables?",children:[(0,t.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,t.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,t.jsxs)(te,{className:"inline",children:["_",q]}),"). to make them private to this cell."]}),(0,t.jsxs)("p",{className:"py-2",children:[(0,t.jsxs)(A,{href:"https://links.marimo.app/errors-multiple-definitions",children:["Learn more at our docs"," ",(0,t.jsx)(T,{size:"0.75rem",className:"inline"})]}),"."]})]}),(0,t.jsx)(I,{title:"Need a scratchpad?",children:(0,t.jsxs)("div",{className:"flex flex-row gap-2 items-center",children:[(0,t.jsxs)($,{size:"xs",variant:"link",className:"my-2 font-normal mx-0 px-0",onClick:xe,children:[(0,t.jsx)(Ie,{className:"h-3"}),(0,t.jsx)("span",{children:"Try the scratchpad"})]}),(0,t.jsx)("span",{children:"to experiment without restrictions on variable names."})]})})]},"multiple-defs"))}return _.length>0&&v.push((0,t.jsxs)("div",{children:[_.map(Ht),n&&(0,t.jsx)(N,{errors:_,cellId:n}),(0,t.jsxs)(I,{title:"Why can't I use `import *`?",children:[(0,t.jsx)("p",{className:"pb-2",children:"Star imports are incompatible with marimo's git-friendly file format and reproducible reactive execution."}),(0,t.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,t.jsx)("p",{className:"py-2",children:"Star imports would also silently add names to globals, which would be incompatible with reactive execution."}),(0,t.jsxs)("p",{className:"py-2",children:[(0,t.jsxs)(A,{href:"https://links.marimo.app/errors-import-star",children:["Learn more at our docs"," ",(0,t.jsx)(T,{size:"0.75rem",className:"inline"})]}),"."]})]})]},"import-star")),P.length>0&&v.push((0,t.jsxs)("div",{children:[P.map(Rt),n&&(0,t.jsx)(N,{errors:P,cellId:n})]},"interruption")),C.length>0&&v.push((0,t.jsxs)("ul",{children:[C.map(Ut),C.some(Jt)&&(0,t.jsx)(I,{children:"Fix the error in the mentioned cells, or handle the exceptions with try/except blocks."}),n&&(0,t.jsx)(N,{errors:C,cellId:n})]},"exception")),S.length>0&&v.push((0,t.jsxs)("ul",{children:[S.map(Yt),n&&(0,t.jsx)(N,{errors:S,cellId:n}),(0,t.jsx)(I,{children:S.some(Gt)?"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")),W.length>0&&v.push((0,t.jsxs)("div",{children:[W.map(Kt),n&&(0,t.jsx)(N,{errors:W,cellId:n})]},"internal")),V.length>0&&v.push((0,t.jsxs)("div",{children:[V.map(Xt),n&&(0,t.jsx)(N,{errors:V,cellId:n})]},"ancestor-prevented")),B.length>0&&v.push((0,t.jsxs)("div",{children:[B.map(Zt),n&&(0,t.jsx)(N,{errors:B,cellId:n})]},"ancestor-stopped")),D.length>0&&v.push((0,t.jsxs)("div",{children:[D.map(er),n&&(0,t.jsx)(N,{errors:D,cellId:n,className:"mt-2.5"})]},"sql-errors")),v},O=`font-code font-medium tracking-wide ${o}`,z;e[17]!==O||e[18]!==a?(z=(0,t.jsx)(Je,{className:O,children:a}),e[17]=O,e[18]=a,e[19]=z):z=e[19];let je=z;m=Ye,f=c,e[20]===i?u=e[21]:(u=X("border-none font-code text-sm text-[0.84375rem] px-0 text-muted-foreground normal [&:has(svg)]:pl-0 space-y-4",i),e[20]=i,e[21]=u),j=je,p="flex flex-col gap-8",d=fe(),e[2]=c,e[3]=n,e[4]=l,e[5]=i,e[6]=s,e[7]=o,e[8]=a,e[9]=m,e[10]=p,e[11]=d,e[12]=f,e[13]=u,e[14]=j}else m=e[9],p=e[10],d=e[11],f=e[12],u=e[13],j=e[14];let h;e[22]!==p||e[23]!==d?(h=(0,t.jsx)("div",{children:(0,t.jsx)("div",{className:p,children:d})}),e[22]=p,e[23]=d,e[24]=h):h=e[24];let g;return e[25]!==m||e[26]!==f||e[27]!==u||e[28]!==j||e[29]!==h?(g=(0,t.jsxs)(m,{variant:f,className:u,children:[j,h]}),e[25]=m,e[26]=f,e[27]=u,e[28]=j,e[29]=h,e[30]=g):g=e[30],g};function gt(r){return r.type==="interruption"}function yt(r){return r.type==="internal"}function vt(r){return r.type==="ancestor-prevented"}function Nt(r){return r.type==="ancestor-stopped"}function bt(r){return r.type==="sql-error"}function wt(r){return r.type==="exception"}function kt(r){return r.type==="setup-refs"}function It(r){return r.type==="cycle"}function $t(r){return r.type==="multiple-defs"}function _t(r){return r.type==="import-star"}function Ft(r){return r.type==="interruption"}function At(r){return r.type==="exception"}function Tt(r){return r.type==="strict-exception"}function Ct(r){return r.type==="internal"}function St(r){return r.type==="ancestor-prevented"}function Mt(r){return r.type==="ancestor-stopped"}function zt(r){return r.type==="syntax"}function qt(r){return r.type==="unknown"}function Et(r){return r.type==="sql-error"}function Lt(r){return r.msg.includes("!pip")}function Pt(r){return r.msg.includes("use os.subprocess")}function Wt(r,e){return(0,t.jsx)("pre",{children:k(r.msg,`syntax-${e}`)},`syntax-${e}`)}function Vt(r,e){return(0,t.jsx)("pre",{children:k(r.msg,`unknown-${e}`)},`unknown-${e}`)}function Bt(r,e){return r.edges_with_vars.map((s,n)=>(0,t.jsxs)("li",{className:"my-0.5 ml-8 text-muted-foreground/40",children:[(0,t.jsx)(b,{cellId:s[0]}),(0,t.jsxs)("span",{className:"text-muted-foreground",children:[": "," ",s[1].length===1?s[1][0]:s[1].join(", ")]})]},`setup-refs-${e}-${n}`))}function Qt(r,e){return r.edges_with_vars.map((s,n)=>(0,t.jsxs)("li",{className:"my-0.5 ml-8 text-muted-foreground/40",children:[(0,t.jsx)(b,{cellId:s[0]}),(0,t.jsxs)("span",{className:"text-muted-foreground",children:[" -> ",s[1].length===1?s[1][0]:s[1].join(", ")," -> "]}),(0,t.jsx)(b,{cellId:s[2]})]},`cycle-${e}-${n}`))}function Dt(r,e){return(0,t.jsx)("li",{className:"my-0.5 ml-8 text-muted-foreground/40",children:(0,t.jsx)(b,{cellId:r})},`cell-${e}`)}function Ot(r,e){return(0,t.jsxs)(L.Fragment,{children:[(0,t.jsx)("p",{className:"text-muted-foreground mt-2",children:`'${r.name}' was also defined by:`}),(0,t.jsx)("ul",{className:"list-disc",children:r.cells.map(Dt)})]},`multiple-defs-${e}`)}function Ht(r,e){return(0,t.jsx)("p",{className:"text-muted-foreground",children:r.msg},`import-star-${e}`)}function Rt(r,e){return(0,t.jsx)("p",{children:"This cell was interrupted and needs to be re-run."},`interruption-${e}`)}function Ut(r,e){return r.exception_type==="NameError"&&r.msg.startsWith("name 'mo'")?(0,t.jsx)("li",{className:"my-2",children:(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"text-muted-foreground",children:"name 'mo' is not defined."}),(0,t.jsxs)("p",{className:"text-muted-foreground mt-2",children:["The marimo module (imported as"," ",(0,t.jsx)(te,{className:"inline",children:"mo"}),") is required for Markdown, SQL, and UI elements."]})]})},`exception-${e}`):r.exception_type==="NameError"&&r.msg.startsWith("name '_")?(0,t.jsx)("li",{className:"my-2",children:(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"text-muted-foreground",children:r.msg}),(0,t.jsxs)("p",{className:"text-muted-foreground mt-2",children:["Variables prefixed with an underscore are local to a cell"," ","(",(0,t.jsxs)(A,{href:"https://links.marimo.app/local-variables",children:["docs"," ",(0,t.jsx)(T,{size:"0.75rem",className:"inline"})]}),")."]}),(0,t.jsx)("div",{className:"text-muted-foreground mt-2",children:"See the console area for a traceback."})]})},`exception-${e}`):(0,t.jsx)("li",{className:"my-2",children:r.raising_cell==null?(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"text-muted-foreground",children:k(r.msg,`exception-${e}`)}),(0,t.jsx)("div",{className:"text-muted-foreground mt-2",children:"See the console area for a traceback."})]}):(0,t.jsxs)("div",{children:[k(r.msg,`exception-${e}`),(0,t.jsx)(b,{cellId:r.raising_cell})]})},`exception-${e}`)}function Jt(r){return r.raising_cell!=null}function Yt(r,e){return(0,t.jsx)("li",{className:"my-2",children:r.blamed_cell==null?(0,t.jsx)("p",{children:r.msg}):(0,t.jsxs)("div",{children:[r.msg,(0,t.jsx)(b,{cellId:r.blamed_cell})]})},`strict-exception-${e}`)}function Gt(r){return r.blamed_cell!=null}function Kt(r,e){return(0,t.jsx)("p",{children:r.msg},`internal-${e}`)}function Xt(r,e){return(0,t.jsxs)("div",{children:[r.msg,r.blamed_cell==null?(0,t.jsxs)("span",{children:["(",(0,t.jsx)(b,{cellId:r.raising_cell}),")"]}):(0,t.jsxs)("span",{children:["(",(0,t.jsx)(b,{cellId:r.raising_cell}),"\xA0blames\xA0",(0,t.jsx)(b,{cellId:r.blamed_cell}),")"]})]},`ancestor-prevented-${e}`)}function Zt(r,e){return(0,t.jsxs)("div",{children:[r.msg,(0,t.jsx)(b,{cellId:r.raising_cell})]},`ancestor-stopped-${e}`)}function er(r,e){return(0,t.jsx)("div",{className:"space-y-2 mt-2",children:(0,t.jsx)("p",{className:"text-muted-foreground whitespace-pre-wrap",children:r.msg})},`sql-error-${e}`)}export{re as a,oe as i,ft as n,me as r,jt as t};
|