@marimo-team/islands 0.16.4 → 0.17.0
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/{ConnectedDataExplorerComponent-CCjhPKMy.js → ConnectedDataExplorerComponent-DJEUH6Bb.js} +78 -100
- package/dist/{_baseIsEqual-oN7pRNcM.js → _baseIsEqual-CN4oFUZ4.js} +20 -20
- package/dist/{_basePickBy-CYvzhRjy.js → _basePickBy-CzSvE_-f.js} +3 -3
- package/dist/{_baseProperty-DGUdIBuu.js → _baseProperty-DbbUiyUD.js} +5 -5
- package/dist/{_baseUniq-B5gfSl8S.js → _baseUniq-DwoC-LVO.js} +4 -4
- package/dist/any-language-editor-CEXn1vFs.js +156 -0
- package/dist/apl-DuVfHsPc.js +4 -0
- package/dist/architecture-O4VJ6CD3-lp-opOaL.js +21 -0
- package/dist/{architectureDiagram-W76B3OCA-DkEhipkW.js → architectureDiagram-W76B3OCA-CoBORy6u.js} +34 -34
- package/dist/asciiarmor-qIVWsi4F.js +4 -0
- package/dist/asn1-BjPqARr7.js +4 -0
- package/dist/assets/__vite-browser-external-lX-sn9m2.js +1 -0
- package/dist/assets/worker-vPn7gxWj.js +54 -0
- package/dist/{blockDiagram-QIGZ2CNN-DZOqLMYa.js → blockDiagram-QIGZ2CNN-0yzoLIar.js} +75 -86
- package/dist/brainfuck-DPGTVfkE.js +4 -0
- package/dist/{button-CEcjneWG.js → button-DcnBVpVa.js} +11 -14
- package/dist/{c4Diagram-FPNF74CW-DVaR7c9q.js → c4Diagram-FPNF74CW-CKsIA_DD.js} +27 -51
- package/dist/{channel-Uh0KpgGW.js → channel-3LVvQZcD.js} +1 -1
- package/dist/{check-BK9zDfQk.js → check-D7ifz5op.js} +1 -1
- package/dist/{chunk-3AY6CYHV-Dk2R2-S1.js → chunk-3AY6CYHV-B2C-aVc3.js} +35 -35
- package/dist/{chunk-4BX2VUAB-CqO6zUIz.js → chunk-4BX2VUAB-DEd4VI9L.js} +1 -1
- package/dist/{chunk-4KMFLZZN-CloTfTwP.js → chunk-4KMFLZZN-DnvP3O4K.js} +216 -325
- package/dist/{chunk-55IACEB6-I0rmqTua.js → chunk-55IACEB6-BcCzwOOl.js} +1 -1
- package/dist/{chunk-6OXUPJBA-BuROSTmo.js → chunk-6OXUPJBA-eNAAfJ3Q.js} +7 -7
- package/dist/{chunk-7GE3RBXV-B1-tsIPP.js → chunk-7GE3RBXV-CSAeQvLz.js} +1 -1
- package/dist/{chunk-ABZYJK2D-CLlso8tj.js → chunk-ABZYJK2D-CZcb_1iM.js} +16 -20
- package/dist/{chunk-BN7GFLIU-Db2-FjLn.js → chunk-BN7GFLIU-pBc5O5Rh.js} +1 -1
- package/dist/{chunk-CVBHYZKI-BONeiloK.js → chunk-CVBHYZKI-CivHZg9P.js} +3 -3
- package/dist/{chunk-CXMOBAN2-U9GJSP1d.js → chunk-CXMOBAN2-Dd0E6qb0.js} +46 -54
- package/dist/chunk-EXTU4WIE-GQ2ZWfJo.js +10 -0
- package/dist/{chunk-FMBD7UC4-DyV3BR_I.js → chunk-FMBD7UC4-C6YcisV6.js} +1 -1
- package/dist/{chunk-JA3XYJ7Z-C9A1076P.js → chunk-JA3XYJ7Z-DYeQaT57.js} +21 -25
- package/dist/{chunk-JEIROHC2-BGnFkSVq.js → chunk-JEIROHC2-B-EZMP4V.js} +1 -1
- package/dist/{chunk-K7UQS3LO-033LOsjK.js → chunk-K7UQS3LO-DENzlS-M.js} +7 -7
- package/dist/{chunk-KMC2YHZD-DT4Sq4Ld.js → chunk-KMC2YHZD-SckhHdEh.js} +1 -1
- package/dist/{chunk-QN33PNHL-gs44MZla.js → chunk-QN33PNHL-Cjq5b604.js} +2 -2
- package/dist/{chunk-QYVHNE3D-B8BO1AnT.js → chunk-QYVHNE3D-CNUuivie.js} +3 -4
- package/dist/{chunk-QZHKN3VN-CeN_GkU6.js → chunk-QZHKN3VN-DugEU_bA.js} +1 -1
- package/dist/chunk-S3R3BYOJ-itCT6Vif.js +380 -0
- package/dist/{chunk-T44TD3VJ-BwzD6YE0.js → chunk-T44TD3VJ-BLdfTX8J.js} +1 -1
- package/dist/{chunk-TVAH2DTR-Bi6jpQJQ.js → chunk-TVAH2DTR-BOnwF9d8.js} +7 -8
- package/dist/{chunk-TZMSLE5B-D8klz2H_.js → chunk-TZMSLE5B-DGs66AlL.js} +4 -5
- package/dist/{chunk-WFRQ32O7-CzSwSlN0.js → chunk-WFRQ32O7-CPsipkmJ.js} +1 -1
- package/dist/{chunk-WFWHJNB7-DN_cavM6.js → chunk-WFWHJNB7-Cmed18Pk.js} +1 -1
- package/dist/{chunk-XRWGC2XP-Bb5eGNM2.js → chunk-XRWGC2XP-DH5GDaY8.js} +1 -1
- package/dist/{chunk-ZPAFE4SF-S5UYNb0V.js → chunk-ZPAFE4SF-DPDwaqZm.js} +22 -22
- package/dist/classDiagram-KNZD7YFC-azuS_99k.js +39 -0
- package/dist/classDiagram-v2-RKCZMP56-CQpyQQOR.js +39 -0
- package/dist/{click-outside-container-DE4e7p1p.js → click-outside-container-CL_FkgGY.js} +7 -12
- package/dist/{clike-CxAz4p9E.js → clike-DYfRWWXk.js} +1 -1
- package/dist/{clike-Cg_DBrJ0.js → clike-bzZTreP4.js} +1 -1
- package/dist/clojure-ATksAecl.js +4 -0
- package/dist/{clone-Dk4FkKH0.js → clone-Msbhmn2a.js} +1 -1
- package/dist/cmake-CWylaz2C.js +4 -0
- package/dist/cobol-BiLLCZIQ.js +4 -0
- package/dist/coffeescript-Ca4jipi8.js +4 -0
- package/dist/commonlisp-BwFjyEC7.js +4 -0
- package/dist/{constants-Cjd_3kwd.js → constants-BCOEQoEQ.js} +3 -3
- package/dist/{copy-C5RFg7ok.js → copy-BkZ8PkBM.js} +6 -2
- package/dist/{cose-bilkent-S5V4N54A-B3iOTGu5.js → cose-bilkent-S5V4N54A-BZnbwyVD.js} +20 -20
- package/dist/crystal-BhUsQHbh.js +4 -0
- package/dist/css-Cf4wlIyV.js +5 -0
- package/dist/cypher-Dj8Hzgxa.js +4 -0
- package/dist/{cytoscape.esm-DTDV0Nbj.js → cytoscape.esm-BTpRoPd2.js} +586 -661
- package/dist/d-DZI7tbTy.js +4 -0
- package/dist/{dagre-5GWH7T2D-KM4Z11yT.js → dagre-5GWH7T2D-BGaiSZZO.js} +32 -37
- package/dist/{dagre-B0u1urxE.js → dagre-pyfDIOWJ.js} +57 -76
- package/dist/data-grid-overlay-editor-867aBz0Y.js +133 -0
- package/dist/{diagram-N5W7TBWH-CtO7az4G.js → diagram-N5W7TBWH-CzLE0jZB.js} +35 -51
- package/dist/diagram-QEK2KX5R-AGS60xEZ.js +245 -0
- package/dist/{diagram-S2PKOQOG-CiXElLNQ.js → diagram-S2PKOQOG-BxRoG6yW.js} +28 -28
- package/dist/diff-WQISUHG5.js +4 -0
- package/dist/{dist-CdE2C2In.js → dist-2Ne-33Xy.js} +15 -20
- package/dist/{dist-DKFaZRVk.js → dist-B0YD1aXi.js} +2 -2
- package/dist/{dist-DBhzmFyH.js → dist-B1Dv8Sdk.js} +3 -3
- package/dist/{dist-CGIZPq3J.js → dist-BFkr6kAQ.js} +2 -2
- package/dist/{dist-DL_ci7Yc.js → dist-BL2DSY0P.js} +1 -1
- package/dist/dist-BawZu0ix.js +10 -0
- package/dist/{dist-Bar1QnNM.js → dist-BhVFggab.js} +3 -3
- package/dist/{textile-Cy55fYGC.js → dist-BiOF7987.js} +4 -2
- package/dist/{dist-BQmQQqFH.js → dist-BpzZrRd6.js} +1 -1
- package/dist/{dist-CxD5E6Sh.js → dist-C7zhQ7K0.js} +24 -22
- package/dist/{dist-BqgkUnEN.js → dist-CBhnQKQ4.js} +3 -3
- package/dist/{dist-Dzk1C8l5.js → dist-CId4IPXu.js} +10 -13
- package/dist/{dist-CUnh_3Ii.js → dist-CYhQCVru.js} +2 -2
- package/dist/{dist-BBlFk9ki.js → dist-CZq5-ZyD.js} +1 -1
- package/dist/{dist-elblfNXO.js → dist-Cacac5HV.js} +2 -2
- package/dist/{dist-CChOkSUg.js → dist-CfQHSIQC.js} +3 -3
- package/dist/{dist-JCAky9ND.js → dist-CkvGMBAS.js} +17 -22
- package/dist/dist-Cs3McXEj.js +6 -0
- package/dist/{dist-o7fhJC7U.js → dist-CvyfRaIr.js} +3 -3
- package/dist/{dist-CZfRM7pE.js → dist-D-3fICwh.js} +2 -2
- package/dist/dist-D3aaithT.js +6 -0
- package/dist/{dist-CutXTm8t.js → dist-DBhEu3-F.js} +1 -1
- package/dist/dist-DELcMSpJ.js +6 -0
- package/dist/{dist-C7ASiFxI.js → dist-DMxl6Qbu.js} +273 -263
- package/dist/{dist-CLvpViod.js → dist-DS6nuHYK.js} +2 -3
- package/dist/dist-Dgts3WXd.js +6 -0
- package/dist/{dist--I6Htnlv.js → dist-DlHkZUnY.js} +5 -5
- package/dist/dist-Doiq_KIP.js +15 -0
- package/dist/dist-DtpUiDG_.js +6 -0
- package/dist/{dist-DzOpMdwb.js → dist-NUdHX0XE.js} +4 -4
- package/dist/{dist-C3WYsf4K.js → dist-PGgOcwbF.js} +4 -10
- package/dist/{dist-DNnYAdRE.js → dist-RdxOJbBw.js} +2 -2
- package/dist/{dist-BEvIw5Nh.js → dist-RwqAqkpG.js} +1 -1
- package/dist/dist-ZjnJq_jD.js +10 -0
- package/dist/{dist-CbRkrKrP.js → dist-biZ846D9.js} +5 -5
- package/dist/{dist-DW9er3Zq.js → dist-d5NxvX2s.js} +44 -23
- package/dist/{dist-C3QUag__.js → dist-ivwkJchV.js} +3 -3
- package/dist/dist-mof3iuBu.js +12 -0
- package/dist/{dist-Cib4sGDA.js → dist-reo2kYlN.js} +2 -2
- package/dist/{dist-BZBitvuL.js → dist-wHVprCkn.js} +1 -1
- package/dist/{dist-C5zMs_n5.js → dist-y8uoXYaE.js} +3 -3
- package/dist/{dist-DPF5TTUg.js → dist-z_iuDES7.js} +126 -115
- package/dist/{dockerfile-Dum_1b-5.js → dockerfile-sZMPcXVY.js} +1 -1
- package/dist/dtd-B2M8dhfC.js +4 -0
- package/dist/dylan-CU3Vt8SC.js +4 -0
- package/dist/ecl-B8ESAVq4.js +4 -0
- package/dist/eiffel-DDfMIKeA.js +4 -0
- package/dist/elm-Bj6rj8jf.js +4 -0
- package/dist/{erDiagram-AWTI2OKA-ZTIl9iQO.js → erDiagram-AWTI2OKA-CTxzb-U8.js} +20 -20
- package/dist/erlang-BxyshZUq.js +4 -0
- package/dist/{error-banner-OQIGTqFR.js → error-banner-npbEfanI.js} +13 -13
- package/dist/{esm-DxFkg7a6.js → esm-BdiY4QsX.js} +1528 -1492
- package/dist/{esm-d0g2RsOH.js → esm-CAWW9sum.js} +6 -8
- package/dist/{esm-1_Mp6VD2.js → esm-YY5zh7KV.js} +324 -395
- package/dist/{esm-BO9n_s6u.js → esm-svAVli9f.js} +5 -5
- package/dist/{factor-CdgiDGiu.js → factor-CRFTmP_a.js} +1 -1
- package/dist/factor-CYk6XT8r.js +5 -0
- package/dist/{flowDiagram-PVAE7QVJ-DsbofOzu.js → flowDiagram-PVAE7QVJ-Dck2hiJe.js} +22 -22
- package/dist/{formats-D5C6JAJf.js → formats-BnqXUb1V.js} +13 -17
- package/dist/forth-fcoJkd-f.js +4 -0
- package/dist/fortran-IxZHu4wc.js +4 -0
- package/dist/{fullscreen-D1yTiBlu.js → fullscreen-blsKUrtN.js} +741 -744
- package/dist/{ganttDiagram-OWAHRB6G-FnCH1Yj3.js → ganttDiagram-OWAHRB6G-AWzfzpup.js} +9 -9
- package/dist/gas-B8rmKcim.js +4 -0
- package/dist/gherkin-BTm-jIdJ.js +4 -0
- package/dist/gitGraph-ZV4HHKMB-DFg_OLQb.js +21 -0
- package/dist/{gitGraphDiagram-NY62KEGX-B0wvMNqU.js → gitGraphDiagram-NY62KEGX-GyNboWSV.js} +31 -34
- package/dist/{glide-data-editor-CYfKmSNp.js → glide-data-editor-DHuN8kQ8.js} +1701 -1771
- package/dist/{graphlib-BGmr7CYF.js → graphlib-hb3zmtVD.js} +5 -5
- package/dist/groovy-01kRHFMD.js +4 -0
- package/dist/haskell-B3PhE05w.js +4 -0
- package/dist/haxe-DEoAm8oA.js +5 -0
- package/dist/{hotkeys-yFrUwyJK.js → hotkeys-Ct2T3e9O.js} +4 -7
- package/dist/idl-DsDJU9cV.js +4 -0
- package/dist/info-63CPKGFF-D3DZmDBa.js +21 -0
- package/dist/infoDiagram-STP46IZ2-ec08vi_U.js +44 -0
- package/dist/{isArrayLikeObject-DiDsNamC.js → isArrayLikeObject-BlvK28do.js} +3 -5
- package/dist/{isEmpty-BBG-u1GM.js → isEmpty--odfYjh1.js} +2 -2
- package/dist/{isSymbol-BxF-_8BA.js → isSymbol-Cb1f2HgO.js} +1 -1
- package/dist/{javascript-Dfq1qI35.js → javascript-BfCTmOnk.js} +2 -2
- package/dist/javascript-gwczVhuU.js +5 -0
- package/dist/jinja2-AkZRdFk3.js +4 -0
- package/dist/{journeyDiagram-BIP6EPQ6-B3PotfAW.js → journeyDiagram-BIP6EPQ6-TmXYCUbT.js} +23 -24
- package/dist/julia-_s6qe3bf.js +4 -0
- package/dist/{kanban-definition-6OIFK2YF-BTrQZ3LN.js → kanban-definition-6OIFK2YF-B6ozleHo.js} +15 -15
- package/dist/{katex-dN__NFdn.js → katex-mPzRsXEy.js} +1 -1
- package/dist/{katex-BE4xflfm.js → katex-mkWmhPUh.js} +149 -173
- package/dist/{label-BinTsX-u.js → label-VVRKZmrP.js} +21 -24
- package/dist/{linear-DyTdUIqX.js → linear-iebAbJVD.js} +1 -1
- package/dist/livescript-CwPHQdv5.js +4 -0
- package/dist/{loader-Dijti3y4.js → loader-CM0VALo9.js} +19 -26
- package/dist/lua-s7nRxkCP.js +4 -0
- package/dist/main.js +8234 -8633
- package/dist/{marked.esm-3RjvXPoO.js → marked.esm-DJM8la36.js} +5 -5
- package/dist/mathematica-Ci36yd1q.js +4 -0
- package/dist/mbox-DbOYMNCO.js +4 -0
- package/dist/{memoize-Dq87l1O_.js → memoize-DYoRBSLn.js} +1 -1
- package/dist/{merge-BPDCIm8P.js → merge-BjuR6j_w.js} +1 -1
- package/dist/{mermaid-BlJDcO4M.js → mermaid-YPPMBmhk.js} +58 -76
- package/dist/{mermaid-parser.core-CSFx6MQ7.js → mermaid-parser.core-BLkyTSZj.js} +8 -8
- package/dist/{mhchem-DZ68WS0G.js → mhchem-Dw7wvXtr.js} +1 -1
- package/dist/{min-BzhKOmZo.js → min-B_i2ahn4.js} +7 -7
- package/dist/{mindmap-definition-Q6HEUPPD-9hhnrO1k.js → mindmap-definition-Q6HEUPPD-F6-JnXwq.js} +17 -17
- package/dist/mirc-VmNe8AwF.js +4 -0
- package/dist/mllike-BdD7SJEa.js +6 -0
- package/dist/modelica-BA4VqzC3.js +4 -0
- package/dist/mscgen-DF-5WHJm.js +6 -0
- package/dist/mumps-c_Uia_QN.js +4 -0
- package/dist/{node-sql-parser-13oju30e.js → node-sql-parser-BqKV-TpL.js} +14343 -14351
- package/dist/{now-DVBcRCoE.js → now-CwRqw0nS.js} +1 -1
- package/dist/nsis-BAANGODV.js +5 -0
- package/dist/{nsis-BW6_XagK.js → nsis-BWJEeUyS.js} +1 -1
- package/dist/ntriples-Bslqh2Ki.js +4 -0
- package/dist/{number-overlay-editor-D1YdiOrm.js → number-overlay-editor-CeyruAX4.js} +17 -23
- package/dist/octave-DYn5ltia.js +4 -0
- package/dist/oz-B_N-StZq.js +4 -0
- package/dist/packet-HUATNLJX-CkqjFdAv.js +21 -0
- package/dist/pascal-DU4CtAUu.js +4 -0
- package/dist/perl-Bae6k32u.js +4 -0
- package/dist/pie-WTHONI2E-D0rWwX5P.js +21 -0
- package/dist/{pieDiagram-ADFJNKIX-CSBC0ZgF.js → pieDiagram-ADFJNKIX-C5dSQVCn.js} +28 -28
- package/dist/pig-DSIxUEgX.js +4 -0
- package/dist/powershell-31lcPgIF.js +4 -0
- package/dist/powershell-BZx53Ujw.js +236 -0
- package/dist/properties-lmYbntDG.js +4 -0
- package/dist/protobuf-BTYoCEpV.js +4 -0
- package/dist/pug-DMFM7zzO.js +5 -0
- package/dist/{pug-Bmups_z0.js → pug-PJh82u1M.js} +1 -1
- package/dist/puppet-B0ub07d-.js +4 -0
- package/dist/python-C4jT87Nt.js +5 -0
- package/dist/{q-BzWcnVri.js → q-CMoUHJ5Q.js} +3 -2
- package/dist/q-YbPYlqRI.js +4 -0
- package/dist/{quadrantDiagram-LMRXKWRM-h7nHf8xG.js → quadrantDiagram-LMRXKWRM-DlahxNiy.js} +7 -7
- package/dist/r-OfNu6HAI.js +4 -0
- package/dist/radar-NJJJXTRR-Bxqv4O5a.js +21 -0
- package/dist/{range-CgK0-PEw.js → range-DxfkexCE.js} +3 -3
- package/dist/{react-plotly-BZakcxdv.js → react-plotly-D_IAfR8f.js} +4364 -4705
- package/dist/{requirementDiagram-4UW4RH46-BGEurQYq.js → requirementDiagram-4UW4RH46-DTkinyvU.js} +17 -17
- package/dist/rpm-D_3b5peD.js +5 -0
- package/dist/ruby-CehsJy_T.js +4 -0
- package/dist/{sankeyDiagram-GR3RE2ED-CxeJ_jfl.js → sankeyDiagram-GR3RE2ED-CsLnEnnq.js} +3 -3
- package/dist/sas-DwQHzPoF.js +4 -0
- package/dist/scheme-B6ArxiQu.js +4 -0
- package/dist/{sequenceDiagram-C3RYC4MD-CbFxwyr_.js → sequenceDiagram-C3RYC4MD-BdEOR6SC.js} +20 -30
- package/dist/shell-AHmQgDfc.js +4 -0
- package/dist/sieve-CgodKOcx.js +4 -0
- package/dist/{simple-mode-Cgyya8F-.js → simple-mode-BP3Jd4vf.js} +1 -1
- package/dist/{slides-component-BEyG25AH.js → slides-component-2bbal1YJ.js} +24 -46
- package/dist/smalltalk-BeFzDkbo.js +4 -0
- package/dist/sparql-BWxq-Lnx.js +4 -0
- package/dist/{src-BNNJRxz3.js → src-DZkaBUmt.js} +6 -6
- package/dist/{stateDiagram-KXAO66HF-A61bMf29.js → stateDiagram-KXAO66HF-DQLH2jhP.js} +39 -41
- package/dist/stateDiagram-v2-UMBNRL4Z-D9v8fKjF.js +38 -0
- package/dist/stex-Dvaq0qsm.js +5 -0
- package/dist/style.css +1 -1
- package/dist/stylus-Ge0ofWlZ.js +4 -0
- package/dist/swift-CjQfbVxV.js +4 -0
- package/dist/tcl-CAGDF11K.js +4 -0
- package/dist/textile-CrXreJtf.js +4 -0
- package/dist/{time-D3tzCqJ6.js → time-CFkXkVrt.js} +1 -1
- package/dist/{timeline-definition-XQNQX7LJ-BwdsB7CR.js → timeline-definition-XQNQX7LJ-bToVq14i.js} +4 -5
- package/dist/{timer-D3Zlu9ow.js → timer-CzOhIJuk.js} +2 -2
- package/dist/{toNumber-efKT08hh.js → toNumber-EFF1Z9T1.js} +2 -2
- package/dist/{toString-BvCd3yJc.js → toString-C2mCkasT.js} +2 -2
- package/dist/toml-AdLXKwEi.js +4 -0
- package/dist/{toml-CIUkU1CP.js → toml-eSl4PUAH.js} +6 -2
- package/dist/treemap-75Q7IDZK-Da9Jv6a_.js +21 -0
- package/dist/troff-C-LaM2ex.js +4 -0
- package/dist/ttcn-DTclUi6T.js +4 -0
- package/dist/ttcn-cfg-BtBPbmLX.js +4 -0
- package/dist/turtle-BODDDg5O.js +4 -0
- package/dist/{types-Dcb1hf55.js → types-CRXV0KD5.js} +385 -252
- package/dist/{useAsyncData-DAtPzJzP.js → useAsyncData-uMVTsDI9.js} +1 -1
- package/dist/{useDateFormatter-CiUlIu7v.js → useDateFormatter-Dcz7jstn.js} +6 -6
- package/dist/{useTheme-CmsvrO5o.js → useTheme-NbEx-ZNV.js} +14 -10
- package/dist/vb-Cb1HQHii.js +4 -0
- package/dist/vbscript-CpXOP4wZ.js +4 -0
- package/dist/{vega-component-B3LA6qbm.js → vega-component-hegVmfuS.js} +21 -21
- package/dist/{vega-loader.browser.module-Bi3ttvdj.js → vega-loader.browser.module-DcW8jnKp.js} +1 -2
- package/dist/velocity-Dz0rBQIk.js +4 -0
- package/dist/verilog-6Di9aLKw.js +4 -0
- package/dist/vhdl-BRNesXYc.js +4 -0
- package/dist/webidl-BpRNYIYn.js +4 -0
- package/dist/xquery-DXWcJ7b6.js +4 -0
- package/dist/{xychartDiagram-6GGTOJPD-BJRRi5HC.js → xychartDiagram-6GGTOJPD-C7Bhm_yt.js} +12 -13
- package/dist/yacas-DbSARPz4.js +4 -0
- package/dist/z80-DzslPj_l.js +4 -0
- package/dist/{zod-UPQf9SGn.js → zod-ChY6miG5.js} +71 -81
- package/package.json +12 -12
- package/src/__mocks__/requests.ts +2 -0
- package/src/__tests__/chat-history.test.ts +123 -0
- package/src/components/app-config/ai-config.tsx +23 -0
- package/src/components/app-config/mcp-config.tsx +42 -2
- package/src/components/app-config/user-config-form.tsx +29 -49
- package/src/components/chat/acp/__tests__/context-utils.test.ts +1 -1
- package/src/components/chat/acp/agent-panel.tsx +1 -1
- package/src/components/chat/acp/blocks.tsx +46 -53
- package/src/components/chat/acp/common.tsx +1 -1
- package/src/components/chat/acp/context-utils.ts +1 -1
- package/src/components/chat/acp/session-tabs.tsx +1 -1
- package/src/components/chat/chat-history-popover.tsx +125 -0
- package/src/components/chat/chat-history-utils.ts +69 -0
- package/src/components/chat/chat-panel.tsx +9 -57
- package/src/components/chat/chat-utils.ts +11 -4
- package/src/components/data-table/__tests__/header-items.test.tsx +117 -0
- package/src/components/data-table/column-header.tsx +4 -2
- package/src/components/data-table/columns.tsx +2 -1
- package/src/components/data-table/data-table.tsx +7 -2
- package/src/components/data-table/header-items.tsx +63 -10
- package/src/components/dependency-graph/custom-node.tsx +11 -11
- package/src/components/dependency-graph/elements.ts +9 -4
- package/src/components/dependency-graph/panels.tsx +6 -4
- package/src/components/editor/Output.tsx +6 -1
- package/src/components/editor/__tests__/data-attributes.test.tsx +1 -1
- package/src/components/editor/actions/useNotebookActions.tsx +2 -4
- package/src/components/editor/ai/__tests__/completion-utils.test.ts +23 -31
- package/src/components/editor/ai/ai-completion-editor.tsx +135 -5
- package/src/components/editor/ai/completion-handlers.tsx +106 -22
- package/src/components/editor/cell/CreateCellButton.tsx +14 -2
- package/src/components/editor/cell/code/cell-editor.tsx +6 -0
- package/src/components/editor/chrome/panels/cache-panel.tsx +216 -0
- package/src/components/editor/chrome/panels/empty-state.tsx +3 -1
- package/src/components/editor/chrome/types.ts +66 -22
- package/src/components/editor/chrome/wrapper/app-chrome.tsx +2 -0
- package/src/components/editor/database/schemas.ts +2 -10
- package/src/components/editor/errors/auto-fix.tsx +138 -32
- package/src/components/editor/errors/fix-mode.ts +15 -0
- package/src/components/editor/navigation/__tests__/clipboard.test.ts +0 -5
- package/src/components/editor/navigation/clipboard.ts +2 -1
- package/src/components/editor/{Cell.tsx → notebook-cell.tsx} +25 -8
- package/src/components/editor/output/ConsoleOutput.tsx +27 -33
- package/src/components/editor/output/JsonOutput.tsx +9 -0
- package/src/components/editor/output/MarimoErrorOutput.tsx +4 -34
- package/src/components/editor/output/MarimoTracebackOutput.tsx +10 -7
- package/src/components/editor/output/__tests__/json-output.test.ts +43 -0
- package/src/components/editor/package-alert.tsx +3 -0
- package/src/components/editor/renderers/{CellArray.tsx → cell-array.tsx} +1 -1
- package/src/components/forms/__tests__/form-utils.test.ts +6 -4
- package/src/components/icons/copy-icon.tsx +11 -5
- package/src/components/mcp/hooks.ts +48 -0
- package/src/components/mcp/mcp-status-indicator.tsx +144 -0
- package/src/components/shortcuts/renderShortcut.tsx +3 -1
- package/src/components/ui/button.tsx +2 -0
- package/src/components/ui/confirmation-button.tsx +85 -0
- package/src/components/ui/number-field.tsx +4 -1
- package/src/components/ui/switch.tsx +2 -0
- package/src/core/ai/context/providers/__tests__/__snapshots__/tables.test.ts.snap +13 -19
- package/src/core/ai/context/providers/__tests__/cell-output.test.ts +0 -1
- package/src/core/ai/context/providers/__tests__/datasource.test.ts +14 -7
- package/src/core/ai/context/providers/__tests__/error.test.ts +24 -15
- package/src/core/ai/context/providers/cell-output.ts +5 -5
- package/src/core/ai/context/providers/common.ts +13 -4
- package/src/core/ai/context/providers/datasource.ts +56 -21
- package/src/core/ai/context/providers/error.ts +3 -4
- package/src/core/ai/context/providers/file.ts +2 -2
- package/src/core/ai/context/providers/tables.ts +36 -8
- package/src/core/ai/context/providers/variable.ts +2 -3
- package/src/core/ai/state.ts +6 -3
- package/src/core/ai/tools/__tests__/registry.test.ts +33 -8
- package/src/core/ai/tools/base.ts +81 -1
- package/src/core/ai/tools/registry.ts +36 -10
- package/src/core/ai/tools/sample-tool.ts +44 -8
- package/src/core/cache/requests.ts +5 -0
- package/src/core/cells/__tests__/cells.test.ts +6 -6
- package/src/core/cells/cells.ts +13 -14
- package/src/core/cells/scrollCellIntoView.ts +1 -1
- package/src/core/codemirror/__tests__/__snapshots__/setup.test.ts.snap +2 -0
- package/src/core/codemirror/__tests__/replace-editor-content.test.ts +336 -0
- package/src/core/codemirror/__tests__/setup.test.ts +1 -0
- package/src/core/codemirror/cm.ts +3 -2
- package/src/core/codemirror/find-replace/navigate.ts +2 -2
- package/src/core/codemirror/format.ts +2 -9
- package/src/core/codemirror/language/__tests__/sql.test.ts +24 -6
- package/src/core/codemirror/language/languages/python.ts +1 -3
- package/src/core/codemirror/language/languages/sql/sql.ts +23 -13
- package/src/core/codemirror/language/panel/panel.tsx +1 -6
- package/src/core/codemirror/language/utils.ts +3 -8
- package/src/core/codemirror/lsp/__tests__/notebook-lsp.test.ts +21 -14
- package/src/core/codemirror/lsp/federated-lsp.ts +20 -9
- package/src/core/codemirror/lsp/notebook-lsp.ts +35 -29
- package/src/core/codemirror/lsp/types.ts +0 -13
- package/src/core/codemirror/replace-editor-content.ts +87 -0
- package/src/core/config/__tests__/config-schema.test.ts +5 -0
- package/src/core/config/config-schema.ts +10 -0
- package/src/core/config/feature-flag.tsx +2 -6
- package/src/core/edit-app.tsx +1 -1
- package/src/core/errors/__tests__/errors.test.ts +1 -0
- package/src/core/errors/errors.ts +20 -6
- package/src/core/islands/bridge.ts +2 -0
- package/src/core/islands/main.ts +4 -0
- package/src/core/kernel/messages.ts +1 -0
- package/src/core/network/CachingRequestRegistry.ts +2 -2
- package/src/core/network/requests-network.ts +14 -0
- package/src/core/network/requests-static.ts +2 -0
- package/src/core/network/requests-toasting.ts +2 -0
- package/src/core/network/types.ts +5 -0
- package/src/core/saving/save-component.tsx +43 -36
- package/src/core/wasm/bridge.ts +2 -0
- package/src/core/websocket/useMarimoWebSocket.tsx +8 -0
- package/src/css/app/codemirror-completions.css +1 -1
- package/src/custom.d.ts +2 -0
- package/src/plugins/core/registerReactComponent.tsx +5 -1
- package/src/plugins/impl/DataTablePlugin.tsx +19 -19
- package/src/plugins/impl/__tests__/DateTimePickerPlugin.test.tsx +32 -0
- package/src/plugins/impl/chat/ChatPlugin.tsx +1 -1
- package/src/plugins/impl/chat/chat-ui.tsx +17 -2
- package/src/plugins/impl/chat/types.ts +1 -1
- package/src/plugins/impl/data-frames/DataFramePlugin.tsx +7 -2
- package/src/plugins/impl/plotly/__tests__/parse-from-template.test.ts +17 -0
- package/src/plugins/impl/plotly/parse-from-template.ts +2 -1
- package/src/stories/cell.stories.tsx +1 -1
- package/src/stories/layout/vertical/one-column.stories.tsx +1 -1
- package/src/utils/__tests__/formatting.test.ts +107 -0
- package/src/utils/__tests__/json-parser.test.ts +13 -0
- package/src/utils/copy.ts +6 -0
- package/src/utils/formatting.ts +51 -0
- package/src/utils/json/json-parser.ts +28 -3
- package/src/utils/numbers.ts +24 -1
- package/dist/any-language-editor-CVFQlioK.js +0 -156
- package/dist/apl-ChlaBfxB.js +0 -4
- package/dist/architecture-O4VJ6CD3-BVeaxUcM.js +0 -21
- package/dist/asciiarmor-CcJmm3l_.js +0 -4
- package/dist/asn1-ThRYxoBE.js +0 -4
- package/dist/assets/__vite-browser-external-BeNtI_tJ.js +0 -1
- package/dist/assets/worker-DnuXpGWN.js +0 -54
- package/dist/brainfuck-CEM0JgDn.js +0 -4
- package/dist/chunk-EXTU4WIE-DECT9AAK.js +0 -14
- package/dist/chunk-S3R3BYOJ-DMQ1yeyq.js +0 -386
- package/dist/classDiagram-KNZD7YFC-BG53O6Jt.js +0 -39
- package/dist/classDiagram-v2-RKCZMP56-BmKILsGU.js +0 -39
- package/dist/clojure-B7RHyE9t.js +0 -4
- package/dist/cmake-TeTMP4I5.js +0 -4
- package/dist/cobol-DI-mxUER.js +0 -4
- package/dist/coffeescript-DHUFLqWp.js +0 -4
- package/dist/commonlisp-SLiUrh1m.js +0 -4
- package/dist/crystal-B4fY1ZfJ.js +0 -4
- package/dist/css-Bdoq3TzK.js +0 -5
- package/dist/cypher-CBU182fp.js +0 -4
- package/dist/d-D8myDZeH.js +0 -4
- package/dist/data-grid-overlay-editor-qNmJk2x0.js +0 -135
- package/dist/diagram-QEK2KX5R-fu8Noi3H.js +0 -245
- package/dist/diff-DJF_UB7H.js +0 -4
- package/dist/dist-52-_pKoy.js +0 -6
- package/dist/dist-6DOMStFn.js +0 -6
- package/dist/dist-B334aW7p.js +0 -10
- package/dist/dist-BOI9lUz-.js +0 -12
- package/dist/dist-C06uhBzF.js +0 -6
- package/dist/dist-CGkpguCB.js +0 -6
- package/dist/dist-CrApzUED.js +0 -6
- package/dist/dist-Dp2GLdCl.js +0 -14
- package/dist/dist-WHFsbMDr.js +0 -6
- package/dist/dist-hyKcTPG9.js +0 -10
- package/dist/dtd-DY8q65lC.js +0 -4
- package/dist/dylan-CBLcjWCi.js +0 -4
- package/dist/ecl-BSXPNfOw.js +0 -4
- package/dist/eiffel-BJf0PQX-.js +0 -4
- package/dist/elm-DWQwPCZS.js +0 -4
- package/dist/erlang-BWBaGZ5e.js +0 -4
- package/dist/factor-DT1-MBPl.js +0 -5
- package/dist/forth-D9GDt3FB.js +0 -4
- package/dist/fortran-DHkRhDWw.js +0 -4
- package/dist/gas-7lQEOM0H.js +0 -4
- package/dist/gherkin-BLLyroYi.js +0 -4
- package/dist/gitGraph-ZV4HHKMB-z2v_cInC.js +0 -21
- package/dist/groovy-C-wabwj0.js +0 -4
- package/dist/haskell-DaxVQ_d1.js +0 -4
- package/dist/haxe-C2yLoC7h.js +0 -5
- package/dist/idl-DQBP8i7k.js +0 -4
- package/dist/info-63CPKGFF-GS4w6pCB.js +0 -21
- package/dist/infoDiagram-STP46IZ2-DE9YYPFg.js +0 -44
- package/dist/javascript-DRwFV9r5.js +0 -5
- package/dist/jinja2-CNoIpVmN.js +0 -4
- package/dist/julia-DXDf-GhP.js +0 -4
- package/dist/livescript-S2uhJQx7.js +0 -4
- package/dist/lua-Bvgs0y2G.js +0 -4
- package/dist/mathematica-D2zqfwIg.js +0 -4
- package/dist/mbox-SBcPaDuZ.js +0 -4
- package/dist/mirc-hkQc7sVF.js +0 -4
- package/dist/mllike-DRWPBlr9.js +0 -6
- package/dist/modelica-CO2ROGlP.js +0 -4
- package/dist/mscgen-BpX61bO6.js +0 -6
- package/dist/mumps-BCnFeIn6.js +0 -4
- package/dist/nsis-BaTOxlD1.js +0 -5
- package/dist/ntriples-zEo5BWjr.js +0 -4
- package/dist/octave-BE0RnCM9.js +0 -4
- package/dist/oz-C4_2Ttul.js +0 -4
- package/dist/packet-HUATNLJX-CjHqJIqk.js +0 -21
- package/dist/pascal-Q3jJucpw.js +0 -4
- package/dist/perl-DkXZIWHF.js +0 -4
- package/dist/pie-WTHONI2E-D67gLWtR.js +0 -21
- package/dist/pig-DCgEHdsu.js +0 -4
- package/dist/powershell-3rK_nRRJ.js +0 -236
- package/dist/powershell-Eo2-7MoM.js +0 -4
- package/dist/properties-C0IOX8WR.js +0 -4
- package/dist/protobuf--lGQUSRO.js +0 -4
- package/dist/pug-Cf8AQHMJ.js +0 -5
- package/dist/puppet-D7Z3dTJn.js +0 -4
- package/dist/python-FHIx_i8Y.js +0 -5
- package/dist/q-B7UA1feM.js +0 -4
- package/dist/r-Cc9R2A7N.js +0 -4
- package/dist/radar-NJJJXTRR-C-AZP_Te.js +0 -21
- package/dist/rpm-vhJNlrQ6.js +0 -5
- package/dist/ruby-CVluPY0M.js +0 -4
- package/dist/sas-A8DL8oy3.js +0 -4
- package/dist/scheme-6xHHcSXC.js +0 -4
- package/dist/shell-DHN-e5rf.js +0 -4
- package/dist/sieve-BuQwLY02.js +0 -4
- package/dist/smalltalk-BA4HPg2H.js +0 -4
- package/dist/sparql-Bf4yCuy3.js +0 -4
- package/dist/stateDiagram-v2-UMBNRL4Z-C_0FUzzk.js +0 -38
- package/dist/stex-D-I1cYeE.js +0 -5
- package/dist/stylus-BMeped2l.js +0 -4
- package/dist/swift-lwEdlZoC.js +0 -4
- package/dist/tcl-B03ipeqv.js +0 -4
- package/dist/toml-BLgrVtfu.js +0 -4
- package/dist/treemap-75Q7IDZK-DTvwfpWt.js +0 -21
- package/dist/troff-g6EjN2O2.js +0 -4
- package/dist/ttcn-Dzvba8jK.js +0 -4
- package/dist/ttcn-cfg-CadG0p1K.js +0 -4
- package/dist/turtle-DkXAMWo9.js +0 -4
- package/dist/vb-C5dCiel8.js +0 -4
- package/dist/vbscript-I4bDEQln.js +0 -4
- package/dist/velocity-mt0fDwFH.js +0 -4
- package/dist/verilog-Dxq3KJkc.js +0 -4
- package/dist/vhdl-Km0QUlV-.js +0 -4
- package/dist/webidl-B3lJ2MRL.js +0 -4
- package/dist/xquery-CcIxNPEe.js +0 -4
- package/dist/yacas-oMa-f-tN.js +0 -4
- package/dist/z80-D03Nvn6l.js +0 -4
- /package/dist/{apl-DZqo8Elt.js → apl-CEHentF4.js} +0 -0
- /package/dist/{asciiarmor-DTzHAIeX.js → asciiarmor-DURYiCS0.js} +0 -0
- /package/dist/{asn1-DrAXKsZH.js → asn1-ETAiEoXY.js} +0 -0
- /package/dist/{asterisk-oF4U3h48.js → asterisk-DTpbbXPb.js} +0 -0
- /package/dist/{brainfuck-BYgLey30.js → brainfuck-BWQep-SA.js} +0 -0
- /package/dist/{clojure-Bs2M3OUY.js → clojure-BzFapDkA.js} +0 -0
- /package/dist/{cmake-DpI8vxJN.js → cmake-DvlbIC8x.js} +0 -0
- /package/dist/{cobol-BQyrWo72.js → cobol-BrEI4cPR.js} +0 -0
- /package/dist/{coffeescript-9ke9UHmw.js → coffeescript-B6cvu8mO.js} +0 -0
- /package/dist/{common-keywords-BzgeAvH1.js → common-keywords-WqQm7W8t.js} +0 -0
- /package/dist/{commonlisp-DghUdrUH.js → commonlisp-BIT8PQqi.js} +0 -0
- /package/dist/{crystal-DEf_SInh.js → crystal-B_UcPArT.js} +0 -0
- /package/dist/{css-BzTU9lNO.js → css-dHbnt_zl.js} +0 -0
- /package/dist/{cypher-a2v0c11S.js → cypher-Dh3FOpL7.js} +0 -0
- /package/dist/{d-SAswny-M.js → d-CQD1IHee.js} +0 -0
- /package/dist/{diff-OJ-xLXcG.js → diff-CpF_IDx0.js} +0 -0
- /package/dist/{dtd-BsUf-rer.js → dtd-DYoNpy6c.js} +0 -0
- /package/dist/{duckdb-keywords-B0NOra5o.js → duckdb-keywords-CdIsl9L0.js} +0 -0
- /package/dist/{dylan-C0ZYngjn.js → dylan-Bc_2G1E-.js} +0 -0
- /package/dist/{ebnf-DF1xx0b_.js → ebnf-jGVT_YpN.js} +0 -0
- /package/dist/{ecl-Bsuvoouq.js → ecl-UIU-P-Ar.js} +0 -0
- /package/dist/{eiffel-DgfSpLi-.js → eiffel-C90Oyuix.js} +0 -0
- /package/dist/{elm-GNxDj-5E.js → elm-B9fWSySj.js} +0 -0
- /package/dist/{erlang-Ds3uY1kL.js → erlang-Ccff0UAn.js} +0 -0
- /package/dist/{fcl-CqBgSioc.js → fcl-CGR8NxAg.js} +0 -0
- /package/dist/{forth-JCaLysGk.js → forth-U1ROGcBY.js} +0 -0
- /package/dist/{fortran-Dc2AoKAl.js → fortran-3nOkjDmc.js} +0 -0
- /package/dist/{gas-Q4Uz82YW.js → gas-B_4H5FzV.js} +0 -0
- /package/dist/{gherkin-Dpxe49sQ.js → gherkin-B0eru5Uz.js} +0 -0
- /package/dist/{groovy-D8mTRCu6.js → groovy-dqjtZUVf.js} +0 -0
- /package/dist/{haskell-2_8cC4wY.js → haskell-DFzCCQzo.js} +0 -0
- /package/dist/{haxe-Bl9zkZlz.js → haxe-Da8Pj5RT.js} +0 -0
- /package/dist/{http-DKCqY6yS.js → http-1HACL_9s.js} +0 -0
- /package/dist/{idl-Dn-HNfGW.js → idl-D3NXs5iM.js} +0 -0
- /package/dist/{jinja2-JjFiAGKk.js → jinja2-gBHAxUdF.js} +0 -0
- /package/dist/{julia-R5wne8eu.js → julia-bG-6nJ-_.js} +0 -0
- /package/dist/{livescript-DSwokrYj.js → livescript-BlsRC8UJ.js} +0 -0
- /package/dist/{lua-CgXfrp2-.js → lua-BbDC0_5w.js} +0 -0
- /package/dist/{mathematica-BVli92MR.js → mathematica-YZTe3-PF.js} +0 -0
- /package/dist/{mbox-CMFlocdS.js → mbox-CY5idp08.js} +0 -0
- /package/dist/{mirc-BkW04Zpc.js → mirc-CbQuFZKk.js} +0 -0
- /package/dist/{mllike-DEjvHvNV.js → mllike-DsbHMX-5.js} +0 -0
- /package/dist/{modelica-CxDn-oje.js → modelica-CQuvsOQk.js} +0 -0
- /package/dist/{mscgen-D78wmE-w.js → mscgen-LIpBP9VR.js} +0 -0
- /package/dist/{mumps-Bi0IvPOV.js → mumps-Ct5NXoaG.js} +0 -0
- /package/dist/{nginx-DErPZFhX.js → nginx-Dvc62C8z.js} +0 -0
- /package/dist/{ntriples-Btyp6wRL.js → ntriples-jVkxWUuv.js} +0 -0
- /package/dist/{octave-CZA6-2F8.js → octave-jGOImUB0.js} +0 -0
- /package/dist/{oz-Bm6LSNfE.js → oz-Y0FKDMS2.js} +0 -0
- /package/dist/{pascal-B4J6a9BH.js → pascal-BaLtPWWB.js} +0 -0
- /package/dist/{perl-CzVqxS08.js → perl-CjfE0JLo.js} +0 -0
- /package/dist/{pig-Clh03cnn.js → pig-DE4epV99.js} +0 -0
- /package/dist/{properties-D7ch1Wyb.js → properties-CLyCG5C-.js} +0 -0
- /package/dist/{protobuf-DrkdrMPK.js → protobuf-BjBBs_V4.js} +0 -0
- /package/dist/{puppet-BtZG8zdO.js → puppet-ZImLuomA.js} +0 -0
- /package/dist/{python-B6FKOVIv.js → python-C9YN71pR.js} +0 -0
- /package/dist/{r-Dnvo5-96.js → r-DILmKWWW.js} +0 -0
- /package/dist/{rpm-B1DrgfnX.js → rpm-fpIsm1Kr.js} +0 -0
- /package/dist/{ruby-CelfUg17.js → ruby-BuiQI41h.js} +0 -0
- /package/dist/{sas-DfSQFMWG.js → sas-C76sJ1zF.js} +0 -0
- /package/dist/{scheme-BplhaWuO.js → scheme-DHjM-txv.js} +0 -0
- /package/dist/{shell-DqU5OS2c.js → shell--7NmGJ9p.js} +0 -0
- /package/dist/{sieve-BE4_IyGa.js → sieve-DaPvBv1M.js} +0 -0
- /package/dist/{smalltalk-B_WPL8Nx.js → smalltalk-KPvwrjCs.js} +0 -0
- /package/dist/{solr-DlJFg7H5.js → solr-PvZUtEDb.js} +0 -0
- /package/dist/{sparql-7XIlcOgW.js → sparql-CXSUIQer.js} +0 -0
- /package/dist/{spreadsheet-BdZSVwVp.js → spreadsheet-DPJdGPkx.js} +0 -0
- /package/dist/{sql-CCrq7lfJ.js → sql-Dp4ZLSIa.js} +0 -0
- /package/dist/{stex-BiFc8QAu.js → stex-CeXW4zzk.js} +0 -0
- /package/dist/{stylus-DlSH9xpH.js → stylus-BXcmrg9w.js} +0 -0
- /package/dist/{swift-e3tMTZgJ.js → swift-DD8I7hKP.js} +0 -0
- /package/dist/{tcl-DfZMC20G.js → tcl-B9Lp4GtA.js} +0 -0
- /package/dist/{textile-DaSeca5U.js → textile-qdiY0teq.js} +0 -0
- /package/dist/{tiddlywiki-dfoiz8pS.js → tiddlywiki-t32lkubq.js} +0 -0
- /package/dist/{tiki-yJbQzhma.js → tiki-B0qKrSMl.js} +0 -0
- /package/dist/{troff-FN_FrCXR.js → troff-105XJOEu.js} +0 -0
- /package/dist/{ttcn-7_i4HlyB.js → ttcn-1_BxDcM8.js} +0 -0
- /package/dist/{ttcn-cfg-B46AlBUV.js → ttcn-cfg-Cn_XgXiw.js} +0 -0
- /package/dist/{turtle-QQfeFveR.js → turtle-BI6LyfEu.js} +0 -0
- /package/dist/{vb-DToPVnLa.js → vb-BecoBfmr.js} +0 -0
- /package/dist/{vbscript-CtsNaTz4.js → vbscript-De-zpA4i.js} +0 -0
- /package/dist/{velocity-CAoNe6ns.js → velocity-DhlYJTrD.js} +0 -0
- /package/dist/{verilog-DrDOMiJq.js → verilog-BDZgxDOW.js} +0 -0
- /package/dist/{vhdl-DnO0OEPh.js → vhdl-CV0OKTbp.js} +0 -0
- /package/dist/{webidl-Or6d1ZfA.js → webidl-BOM1Fs0O.js} +0 -0
- /package/dist/{xquery-CEp_Mcpr.js → xquery-CltP_CGh.js} +0 -0
- /package/dist/{yacas-DgnYrSlp.js → yacas-Dch4E2Dg.js} +0 -0
- /package/dist/{z80-DlG_kyeB.js → z80-B5Yly27o.js} +0 -0
|
@@ -1,21 +1,26 @@
|
|
|
1
1
|
/* Copyright 2024 Marimo. All rights reserved. */
|
|
2
2
|
import type { EditorView } from "@codemirror/view";
|
|
3
3
|
import { invariant } from "@/utils/invariant";
|
|
4
|
+
import { getDatasourceContext } from "../ai/context/providers/datasource";
|
|
5
|
+
import type { AiCompletionCell } from "../ai/state";
|
|
4
6
|
import type { CellId } from "../cells/ids";
|
|
5
7
|
import type { MarimoError } from "../kernel/messages";
|
|
6
8
|
import { wrapInFunction } from "./utils";
|
|
7
9
|
|
|
10
|
+
interface AIFix {
|
|
11
|
+
setAiCompletionCell: (opts: AiCompletionCell) => void;
|
|
12
|
+
triggerFix: boolean;
|
|
13
|
+
}
|
|
14
|
+
|
|
8
15
|
export interface AutoFix {
|
|
9
16
|
title: string;
|
|
10
17
|
description: string;
|
|
18
|
+
fixType: "manual" | "ai";
|
|
11
19
|
onFix: (ctx: {
|
|
12
20
|
addCodeBelow: (code: string) => void;
|
|
13
21
|
editor: EditorView | undefined;
|
|
14
22
|
cellId: CellId;
|
|
15
|
-
|
|
16
|
-
cellId: CellId;
|
|
17
|
-
initialPrompt?: string;
|
|
18
|
-
}) => void;
|
|
23
|
+
aiFix?: AIFix;
|
|
19
24
|
}) => Promise<void>;
|
|
20
25
|
}
|
|
21
26
|
|
|
@@ -31,6 +36,7 @@ export function getAutoFixes(
|
|
|
31
36
|
title: "Fix: Wrap in a function",
|
|
32
37
|
description:
|
|
33
38
|
"Make this cell's variables local by wrapping the cell in a function.",
|
|
39
|
+
fixType: "manual",
|
|
34
40
|
onFix: async (ctx) => {
|
|
35
41
|
invariant(ctx.editor, "Editor is null");
|
|
36
42
|
const code = wrapInFunction(ctx.editor.state.doc.toString());
|
|
@@ -59,6 +65,7 @@ export function getAutoFixes(
|
|
|
59
65
|
{
|
|
60
66
|
title: `Fix: Add '${cellCode}'`,
|
|
61
67
|
description: "Add a new cell for the missing import",
|
|
68
|
+
fixType: "manual",
|
|
62
69
|
onFix: async (ctx) => {
|
|
63
70
|
ctx.addCodeBelow(cellCode);
|
|
64
71
|
},
|
|
@@ -75,10 +82,17 @@ export function getAutoFixes(
|
|
|
75
82
|
{
|
|
76
83
|
title: "Fix with AI",
|
|
77
84
|
description: "Fix the SQL statement",
|
|
85
|
+
fixType: "ai",
|
|
78
86
|
onFix: async (ctx) => {
|
|
79
|
-
ctx.
|
|
87
|
+
const datasourceContext = getDatasourceContext(ctx.cellId);
|
|
88
|
+
let initialPrompt = `Fix the SQL statement: ${error.msg}.`;
|
|
89
|
+
if (datasourceContext) {
|
|
90
|
+
initialPrompt += `\nDatabase schema: ${datasourceContext}`;
|
|
91
|
+
}
|
|
92
|
+
ctx.aiFix?.setAiCompletionCell({
|
|
80
93
|
cellId: ctx.cellId,
|
|
81
|
-
initialPrompt:
|
|
94
|
+
initialPrompt: initialPrompt,
|
|
95
|
+
triggerImmediately: ctx.aiFix.triggerFix,
|
|
82
96
|
});
|
|
83
97
|
},
|
|
84
98
|
},
|
|
@@ -180,6 +180,8 @@ export class IslandsPyodideBridge implements RunRequests, EditRequests {
|
|
|
180
180
|
listSecretKeys = throwNotImplemented;
|
|
181
181
|
writeSecret = throwNotImplemented;
|
|
182
182
|
invokeAiTool = throwNotImplemented;
|
|
183
|
+
clearCache = throwNotImplemented;
|
|
184
|
+
getCacheInfo = throwNotImplemented;
|
|
183
185
|
|
|
184
186
|
private async putControlRequest(operation: object) {
|
|
185
187
|
await this.rpc.proxy.request.bridge({
|
package/src/core/islands/main.ts
CHANGED
|
@@ -43,6 +43,7 @@ export type SecretKeysResult = OperationMessageData<"secret-keys-result">;
|
|
|
43
43
|
export type StartupLogs = OperationMessageData<"startup-logs">;
|
|
44
44
|
export type CellMessage = OperationMessageData<"cell-op">;
|
|
45
45
|
export type Capabilities = OperationMessageData<"kernel-ready">["capabilities"];
|
|
46
|
+
export type CacheInfoFetched = OperationMessageData<"cache-info-fetched">;
|
|
46
47
|
|
|
47
48
|
export type MessageOperationUnion = schemas["KnownUnions"]["operation"];
|
|
48
49
|
|
|
@@ -56,9 +56,9 @@ export class CachingRequestRegistry<REQ, RES> {
|
|
|
56
56
|
|
|
57
57
|
const promise = this.delegate.request(req);
|
|
58
58
|
this.cache.set(key, promise);
|
|
59
|
-
return promise.catch((
|
|
59
|
+
return promise.catch((error) => {
|
|
60
60
|
this.cache.delete(key);
|
|
61
|
-
throw
|
|
61
|
+
throw error;
|
|
62
62
|
});
|
|
63
63
|
}
|
|
64
64
|
|
|
@@ -409,5 +409,19 @@ export function createNetworkRequests(): EditRequests & RunRequests {
|
|
|
409
409
|
})
|
|
410
410
|
.then(handleResponse);
|
|
411
411
|
},
|
|
412
|
+
clearCache: async () => {
|
|
413
|
+
return getClient()
|
|
414
|
+
.POST("/api/cache/clear", {
|
|
415
|
+
body: {},
|
|
416
|
+
})
|
|
417
|
+
.then(handleResponseReturnNull);
|
|
418
|
+
},
|
|
419
|
+
getCacheInfo: async () => {
|
|
420
|
+
return getClient()
|
|
421
|
+
.POST("/api/cache/info", {
|
|
422
|
+
body: {},
|
|
423
|
+
})
|
|
424
|
+
.then(handleResponseReturnNull);
|
|
425
|
+
},
|
|
412
426
|
};
|
|
413
427
|
}
|
|
@@ -86,5 +86,7 @@ export function createStaticRequests(): EditRequests & RunRequests {
|
|
|
86
86
|
listSecretKeys: throwNotInEditMode,
|
|
87
87
|
writeSecret: throwNotInEditMode,
|
|
88
88
|
invokeAiTool: throwNotInEditMode,
|
|
89
|
+
clearCache: throwNotInEditMode,
|
|
90
|
+
getCacheInfo: throwNotInEditMode,
|
|
89
91
|
};
|
|
90
92
|
}
|
|
@@ -64,6 +64,8 @@ export function createErrorToastingRequests(
|
|
|
64
64
|
listSecretKeys: "Failed to fetch secrets",
|
|
65
65
|
writeSecret: "Failed to write secret",
|
|
66
66
|
invokeAiTool: "Failed to invoke AI tool",
|
|
67
|
+
clearCache: "Failed to clear cache",
|
|
68
|
+
getCacheInfo: "", // No toast
|
|
67
69
|
};
|
|
68
70
|
|
|
69
71
|
const handlers = {} as EditRequests & RunRequests;
|
|
@@ -99,6 +99,8 @@ export type OpenTutorialRequest = schemas["OpenTutorialRequest"];
|
|
|
99
99
|
export type TutorialId = OpenTutorialRequest["tutorialId"];
|
|
100
100
|
export type InvokeAiToolRequest = schemas["InvokeAiToolRequest"];
|
|
101
101
|
export type InvokeAiToolResponse = schemas["InvokeAiToolResponse"];
|
|
102
|
+
export type ClearCacheRequest = schemas["ClearCacheRequest"];
|
|
103
|
+
export type GetCacheInfoRequest = schemas["GetCacheInfoRequest"];
|
|
102
104
|
|
|
103
105
|
/**
|
|
104
106
|
* Requests sent to the BE during run/edit mode.
|
|
@@ -188,6 +190,9 @@ export interface EditRequests {
|
|
|
188
190
|
writeSecret: (request: CreateSecretRequest) => Promise<null>;
|
|
189
191
|
// AI Tool requests
|
|
190
192
|
invokeAiTool: (request: InvokeAiToolRequest) => Promise<InvokeAiToolResponse>;
|
|
193
|
+
// Cache requests
|
|
194
|
+
clearCache: () => Promise<null>;
|
|
195
|
+
getCacheInfo: () => Promise<null>;
|
|
191
196
|
}
|
|
192
197
|
|
|
193
198
|
export type RequestKey = keyof (EditRequests & RunRequests);
|
|
@@ -96,54 +96,61 @@ export function useSaveNotebook() {
|
|
|
96
96
|
const store = useStore();
|
|
97
97
|
|
|
98
98
|
// Save the notebook with the given filename
|
|
99
|
-
const saveNotebook = useEvent(
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
const cellNames = cells.map((cell) => cell.name);
|
|
105
|
-
const configs = getCellConfigs(notebook);
|
|
106
|
-
const connection = store.get(connectionAtom);
|
|
107
|
-
const autoSaveConfig = store.get(autoSaveConfigAtom);
|
|
108
|
-
const layout = store.get(layoutStateAtom);
|
|
109
|
-
const kioskMode = store.get(kioskModeAtom);
|
|
99
|
+
const saveNotebook = useEvent(
|
|
100
|
+
async (filename: string, userInitiated: boolean) => {
|
|
101
|
+
const connection = store.get(connectionAtom);
|
|
102
|
+
const autoSaveConfig = store.get(autoSaveConfigAtom);
|
|
103
|
+
const kioskMode = store.get(kioskModeAtom);
|
|
110
104
|
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
105
|
+
if (kioskMode) {
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
114
108
|
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
109
|
+
// Don't save if we are not connected to a kernel
|
|
110
|
+
if (connection.state !== WebSocketState.OPEN) {
|
|
111
|
+
openAlert("Failed to save notebook: not connected to a kernel.");
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
119
114
|
|
|
120
|
-
|
|
121
|
-
if (connection.state !== WebSocketState.OPEN) {
|
|
122
|
-
openAlert("Failed to save notebook: not connected to a kernel.");
|
|
123
|
-
return;
|
|
124
|
-
}
|
|
115
|
+
Logger.log("saving to ", filename);
|
|
125
116
|
|
|
126
|
-
Logger.log("saving to ", filename);
|
|
127
|
-
sendSave({
|
|
128
|
-
cellIds: cellIds,
|
|
129
|
-
codes,
|
|
130
|
-
names: cellNames,
|
|
131
|
-
filename,
|
|
132
|
-
configs,
|
|
133
|
-
layout: getSerializedLayout(),
|
|
134
|
-
persist: true,
|
|
135
|
-
}).then(() => {
|
|
136
117
|
if (userInitiated && autoSaveConfig.format_on_save) {
|
|
137
|
-
|
|
118
|
+
Logger.log("formatting notebook (onSave)");
|
|
119
|
+
await formatAll();
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
// Grab the latest notebook state, after formatting
|
|
123
|
+
const notebook = getNotebook();
|
|
124
|
+
const cells = notebookCells(notebook);
|
|
125
|
+
const cellIds = cells.map((cell) => cell.id);
|
|
126
|
+
const codes = cells.map((cell) => cell.code);
|
|
127
|
+
const cellNames = cells.map((cell) => cell.name);
|
|
128
|
+
const configs = getCellConfigs(notebook);
|
|
129
|
+
const layout = store.get(layoutStateAtom);
|
|
130
|
+
|
|
131
|
+
// Don't save if there are no cells
|
|
132
|
+
if (codes.length === 0) {
|
|
133
|
+
return;
|
|
138
134
|
}
|
|
135
|
+
|
|
136
|
+
await sendSave({
|
|
137
|
+
cellIds: cellIds,
|
|
138
|
+
codes,
|
|
139
|
+
names: cellNames,
|
|
140
|
+
filename,
|
|
141
|
+
configs,
|
|
142
|
+
layout: getSerializedLayout(),
|
|
143
|
+
persist: true,
|
|
144
|
+
});
|
|
145
|
+
|
|
139
146
|
setLastSavedNotebook({
|
|
140
147
|
names: cellNames,
|
|
141
148
|
codes,
|
|
142
149
|
configs,
|
|
143
150
|
layout,
|
|
144
151
|
});
|
|
145
|
-
}
|
|
146
|
-
|
|
152
|
+
},
|
|
153
|
+
);
|
|
147
154
|
|
|
148
155
|
// Save the notebook with the current filename, only if the filename exists
|
|
149
156
|
const saveIfNotebookIsPersistent = useEvent((userInitiated = false) => {
|
package/src/core/wasm/bridge.ts
CHANGED
|
@@ -551,6 +551,8 @@ export class PyodideBridge implements RunRequests, EditRequests {
|
|
|
551
551
|
};
|
|
552
552
|
|
|
553
553
|
invokeAiTool = throwNotImplemented;
|
|
554
|
+
clearCache = throwNotImplemented;
|
|
555
|
+
getCacheInfo = throwNotImplemented;
|
|
554
556
|
|
|
555
557
|
private async putControlRequest(operation: object) {
|
|
556
558
|
await this.rpc.proxy.request.bridge({
|
|
@@ -24,6 +24,7 @@ import { jsonParseWithSpecialChar } from "@/utils/json/json-parser";
|
|
|
24
24
|
import { Logger } from "@/utils/Logger";
|
|
25
25
|
import { reloadSafe } from "@/utils/reload-safe";
|
|
26
26
|
import { useAlertActions } from "../alerts/state";
|
|
27
|
+
import { cacheInfoAtom } from "../cache/requests";
|
|
27
28
|
import type { CellId, UIElementId } from "../cells/ids";
|
|
28
29
|
import { useRunsActions } from "../cells/runs";
|
|
29
30
|
import { focusAndScrollCellOutputIntoView } from "../cells/scrollCellIntoView";
|
|
@@ -87,6 +88,7 @@ export function useMarimoWebSocket(opts: {
|
|
|
87
88
|
const setKioskMode = useSetAtom(kioskModeAtom);
|
|
88
89
|
const setCapabilities = useSetAtom(capabilitiesAtom);
|
|
89
90
|
const runtimeManager = useRuntimeManager();
|
|
91
|
+
const setCacheInfo = useSetAtom(cacheInfoAtom);
|
|
90
92
|
|
|
91
93
|
const handleMessage = (e: MessageEvent<JsonString<OperationMessage>>) => {
|
|
92
94
|
const msg = jsonParseWithSpecialChar(e.data);
|
|
@@ -248,6 +250,12 @@ export function useMarimoWebSocket(opts: {
|
|
|
248
250
|
case "secret-keys-result":
|
|
249
251
|
SECRETS_REGISTRY.resolve(msg.data.request_id as RequestId, msg.data);
|
|
250
252
|
return;
|
|
253
|
+
case "cache-info-fetched":
|
|
254
|
+
setCacheInfo(msg.data);
|
|
255
|
+
return;
|
|
256
|
+
case "cache-cleared":
|
|
257
|
+
// Cache cleared, could refresh cache info if needed
|
|
258
|
+
return;
|
|
251
259
|
case "data-source-connections":
|
|
252
260
|
addDataSourceConnection({
|
|
253
261
|
connections: msg.data.connections.map((conn) => ({
|
package/src/custom.d.ts
CHANGED
|
@@ -32,6 +32,7 @@ import { UIElementRegistry } from "@/core/dom/uiregistry";
|
|
|
32
32
|
import { FUNCTIONS_REGISTRY } from "@/core/functions/FunctionRegistry";
|
|
33
33
|
import { LocaleProvider } from "@/core/i18n/locale-provider";
|
|
34
34
|
import { store } from "@/core/state/jotai";
|
|
35
|
+
import { isStaticNotebook } from "@/core/static/static-state";
|
|
35
36
|
import {
|
|
36
37
|
type HTMLElementNotDerivedFromRef,
|
|
37
38
|
useEventListener,
|
|
@@ -182,10 +183,13 @@ function PluginSlotInternal<T>(
|
|
|
182
183
|
const objectId = getUIElementObjectId(hostElement);
|
|
183
184
|
invariant(objectId, "Object ID should exist");
|
|
184
185
|
|
|
186
|
+
const isStatic = isStaticNotebook();
|
|
187
|
+
|
|
185
188
|
const htmlId = HTMLCellId.findElementThroughShadowDOMs(hostElement)?.id;
|
|
186
189
|
const cellId = htmlId ? HTMLCellId.parse(htmlId) : null;
|
|
187
|
-
if (cellId) {
|
|
190
|
+
if (cellId && !isStatic) {
|
|
188
191
|
// If the cell is not initialized, throw an error
|
|
192
|
+
// Continue if the cell is static, so we can propagate a clearer error message.
|
|
189
193
|
const notebookState = store.get(notebookAtom);
|
|
190
194
|
const cellRuntime = notebookState.cellRuntime[cellId];
|
|
191
195
|
const cellData = notebookState.cellData[cellId];
|
|
@@ -205,7 +205,7 @@ type DataTableFunctions = {
|
|
|
205
205
|
sort?: {
|
|
206
206
|
by: string;
|
|
207
207
|
descending: boolean;
|
|
208
|
-
};
|
|
208
|
+
}[];
|
|
209
209
|
query?: string;
|
|
210
210
|
filters?: ConditionType[];
|
|
211
211
|
page_number: number;
|
|
@@ -298,7 +298,12 @@ export const DataTablePlugin = createPlugin<S>("marimo-table")
|
|
|
298
298
|
.input(
|
|
299
299
|
z.object({
|
|
300
300
|
sort: z
|
|
301
|
-
.
|
|
301
|
+
.array(
|
|
302
|
+
z.object({
|
|
303
|
+
by: z.string(),
|
|
304
|
+
descending: z.boolean(),
|
|
305
|
+
}),
|
|
306
|
+
)
|
|
302
307
|
.optional(),
|
|
303
308
|
query: z.string().optional(),
|
|
304
309
|
filters: z.array(ConditionSchema).optional(),
|
|
@@ -501,19 +506,15 @@ export const LoadingDataTableComponent = memo(
|
|
|
501
506
|
!props.lazy &&
|
|
502
507
|
!pageSizeChanged;
|
|
503
508
|
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
509
|
+
// Convert sorting state to API format
|
|
510
|
+
const sortArgs =
|
|
511
|
+
sorting.length > 0
|
|
512
|
+
? sorting.map((s) => ({ by: s.id, descending: s.desc }))
|
|
513
|
+
: undefined;
|
|
507
514
|
|
|
508
515
|
// If we have sort/search/filter, use the search function
|
|
509
516
|
const searchResultsPromise = search<T>({
|
|
510
|
-
sort:
|
|
511
|
-
sorting.length > 0
|
|
512
|
-
? {
|
|
513
|
-
by: sorting[0].id,
|
|
514
|
-
descending: sorting[0].desc,
|
|
515
|
-
}
|
|
516
|
-
: undefined,
|
|
517
|
+
sort: sortArgs,
|
|
517
518
|
query: searchQuery,
|
|
518
519
|
page_number: paginationState.pageIndex,
|
|
519
520
|
page_size: paginationState.pageSize,
|
|
@@ -563,16 +564,15 @@ export const LoadingDataTableComponent = memo(
|
|
|
563
564
|
|
|
564
565
|
const getRow = useCallback(
|
|
565
566
|
async (rowId: number) => {
|
|
567
|
+
const sortArgs =
|
|
568
|
+
sorting.length > 0
|
|
569
|
+
? sorting.map((s) => ({ by: s.id, descending: s.desc }))
|
|
570
|
+
: undefined;
|
|
571
|
+
|
|
566
572
|
const result = await search<T>({
|
|
567
573
|
page_number: rowId,
|
|
568
574
|
page_size: 1,
|
|
569
|
-
sort:
|
|
570
|
-
sorting.length > 0
|
|
571
|
-
? {
|
|
572
|
-
by: sorting[0].id,
|
|
573
|
-
descending: sorting[0].desc,
|
|
574
|
-
}
|
|
575
|
-
: undefined,
|
|
575
|
+
sort: sortArgs,
|
|
576
576
|
query: searchQuery,
|
|
577
577
|
filters: filters.flatMap((filter) => {
|
|
578
578
|
return filterToFilterCondition(
|
|
@@ -42,4 +42,36 @@ describe("DateTimePickerPlugin", () => {
|
|
|
42
42
|
const datePicker = container.querySelector('[class*="group"]');
|
|
43
43
|
expect(datePicker).not.toBeNull();
|
|
44
44
|
});
|
|
45
|
+
|
|
46
|
+
it("should render with datetime.min and datetime.max edge cases", () => {
|
|
47
|
+
// Regression test for issue #6700
|
|
48
|
+
// Ensure the component can handle edge case dates like datetime.min
|
|
49
|
+
const plugin = new DateTimePickerPlugin();
|
|
50
|
+
const host = document.createElement("div");
|
|
51
|
+
const props: IPluginProps<string, DateTimeData> = {
|
|
52
|
+
host,
|
|
53
|
+
value: "2024-01-01T12:00:00",
|
|
54
|
+
setValue: (valueOrFn) => {
|
|
55
|
+
if (typeof valueOrFn === "function") {
|
|
56
|
+
valueOrFn("2024-01-01T12:00:00");
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
data: {
|
|
60
|
+
label: null,
|
|
61
|
+
// These are the exact values that datetime.min and datetime.max produce
|
|
62
|
+
start: "0001-01-01T00:00:00",
|
|
63
|
+
stop: "9999-12-31T23:59:59",
|
|
64
|
+
fullWidth: false,
|
|
65
|
+
},
|
|
66
|
+
functions: {},
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
// This should not throw an error
|
|
70
|
+
const { container } = render(plugin.render(props));
|
|
71
|
+
|
|
72
|
+
// Check if the component renders successfully
|
|
73
|
+
expect(container.innerHTML).not.toBe("");
|
|
74
|
+
const datePicker = container.querySelector('[class*="group"]');
|
|
75
|
+
expect(datePicker).not.toBeNull();
|
|
76
|
+
});
|
|
45
77
|
});
|
|
@@ -253,6 +253,20 @@ export const Chatbot: React.FC<Props> = (props) => {
|
|
|
253
253
|
});
|
|
254
254
|
}, [messages.length, scrollContainerRef]);
|
|
255
255
|
|
|
256
|
+
const codemirrorView = codeMirrorInputRef.current?.view;
|
|
257
|
+
|
|
258
|
+
const resetInput = () => {
|
|
259
|
+
// Clear input immediately by directly manipulating the editor
|
|
260
|
+
// There is some delay if we use setInput("") only
|
|
261
|
+
if (codemirrorView) {
|
|
262
|
+
const docLength = codemirrorView.state.doc.length;
|
|
263
|
+
codemirrorView.dispatch({
|
|
264
|
+
changes: { from: 0, to: docLength, insert: "" },
|
|
265
|
+
});
|
|
266
|
+
}
|
|
267
|
+
setInput("");
|
|
268
|
+
};
|
|
269
|
+
|
|
256
270
|
return (
|
|
257
271
|
<div
|
|
258
272
|
className="flex flex-col h-full bg-(--slate-1) rounded-lg shadow border border-(--slate-6) overflow-hidden relative"
|
|
@@ -367,6 +381,7 @@ export const Chatbot: React.FC<Props> = (props) => {
|
|
|
367
381
|
role: "user",
|
|
368
382
|
parts: [{ type: "text", text: input }, ...(fileParts ?? [])],
|
|
369
383
|
});
|
|
384
|
+
resetInput();
|
|
370
385
|
}}
|
|
371
386
|
ref={formRef}
|
|
372
387
|
className="flex w-full border-t border-(--slate-6) px-2 py-1 items-center"
|
|
@@ -380,8 +395,8 @@ export const Chatbot: React.FC<Props> = (props) => {
|
|
|
380
395
|
onSelect={(prompt) => {
|
|
381
396
|
setInput(prompt);
|
|
382
397
|
requestAnimationFrame(() => {
|
|
383
|
-
|
|
384
|
-
moveToEndOfEditor(
|
|
398
|
+
codemirrorView?.focus();
|
|
399
|
+
moveToEndOfEditor(codemirrorView);
|
|
385
400
|
});
|
|
386
401
|
}}
|
|
387
402
|
/>
|
|
@@ -7,7 +7,7 @@ export type ChatRole = "system" | "user" | "assistant";
|
|
|
7
7
|
export interface ChatMessage {
|
|
8
8
|
role: ChatRole;
|
|
9
9
|
content: string; // TODO: Deprecate content
|
|
10
|
-
parts: UIMessage["parts"];
|
|
10
|
+
parts: UIMessage["parts"] | null;
|
|
11
11
|
}
|
|
12
12
|
|
|
13
13
|
export interface SendMessageRequest {
|
|
@@ -63,7 +63,7 @@ type PluginFunctions = {
|
|
|
63
63
|
sort?: {
|
|
64
64
|
by: string;
|
|
65
65
|
descending: boolean;
|
|
66
|
-
};
|
|
66
|
+
}[];
|
|
67
67
|
query?: string;
|
|
68
68
|
filters?: ConditionType[];
|
|
69
69
|
page_number: number;
|
|
@@ -117,7 +117,12 @@ export const DataFramePlugin = createPlugin<S>("marimo-dataframe")
|
|
|
117
117
|
.input(
|
|
118
118
|
z.object({
|
|
119
119
|
sort: z
|
|
120
|
-
.
|
|
120
|
+
.array(
|
|
121
|
+
z.object({
|
|
122
|
+
by: z.string(),
|
|
123
|
+
descending: z.boolean(),
|
|
124
|
+
}),
|
|
125
|
+
)
|
|
121
126
|
.optional(),
|
|
122
127
|
query: z.string().optional(),
|
|
123
128
|
filters: z.array(ConditionSchema).optional(),
|
|
@@ -70,4 +70,21 @@ describe("createParser", () => {
|
|
|
70
70
|
Year: "1964",
|
|
71
71
|
});
|
|
72
72
|
});
|
|
73
|
+
|
|
74
|
+
it("should handle labels with special characters (brackets, parentheses, spaces)", () => {
|
|
75
|
+
const hovertemplate =
|
|
76
|
+
"Horsepower [ps]=%{x}<br>Miles per Gallon=%{y}<br>Weight (lbs)=%{marker.size}<extra></extra>";
|
|
77
|
+
const parser = createParser(hovertemplate);
|
|
78
|
+
const data = {
|
|
79
|
+
x: "110",
|
|
80
|
+
y: "20.6",
|
|
81
|
+
"marker.size": "3000",
|
|
82
|
+
} as unknown as Plotly.PlotDatum;
|
|
83
|
+
const result = parser.parse(data);
|
|
84
|
+
expect(result).toEqual({
|
|
85
|
+
"Horsepower [ps]": "110",
|
|
86
|
+
"Miles per Gallon": "20.6",
|
|
87
|
+
"Weight (lbs)": "3000",
|
|
88
|
+
});
|
|
89
|
+
});
|
|
73
90
|
});
|
|
@@ -24,7 +24,8 @@ export interface PlotlyTemplateParser {
|
|
|
24
24
|
*/
|
|
25
25
|
export function createParser(hovertemplate: string): PlotlyTemplateParser {
|
|
26
26
|
// Regular expression to match the pattern key=%{selector}
|
|
27
|
-
|
|
27
|
+
// Match any characters except = for the key (non-greedy to avoid capturing previous content)
|
|
28
|
+
const regex = /([^=<>]+)=%{([^}]+)}/g;
|
|
28
29
|
|
|
29
30
|
// Create an object to hold the key-selector pairs
|
|
30
31
|
const keySelectorPairs: Record<string, string> = {};
|
|
@@ -16,7 +16,7 @@ import type { CellConfig } from "@/core/network/types";
|
|
|
16
16
|
import { WebSocketState } from "@/core/websocket/types";
|
|
17
17
|
import { MultiColumn } from "@/utils/id-tree";
|
|
18
18
|
import type { Milliseconds, Seconds } from "@/utils/time";
|
|
19
|
-
import { Cell as EditorCell } from "../components/editor/
|
|
19
|
+
import { Cell as EditorCell } from "../components/editor/notebook-cell";
|
|
20
20
|
import { TooltipProvider } from "../components/ui/tooltip";
|
|
21
21
|
import type { CellId } from "../core/cells/ids";
|
|
22
22
|
|
|
@@ -13,7 +13,7 @@ import { resolveRequestClient } from "@/core/network/resolve";
|
|
|
13
13
|
import { WebSocketState } from "@/core/websocket/types";
|
|
14
14
|
import { MultiColumn } from "@/utils/id-tree";
|
|
15
15
|
import type { Milliseconds, Seconds } from "@/utils/time";
|
|
16
|
-
import { CellArray } from "../../../components/editor/renderers/
|
|
16
|
+
import { CellArray } from "../../../components/editor/renderers/cell-array";
|
|
17
17
|
import { CellsRenderer } from "../../../components/editor/renderers/cells-renderer";
|
|
18
18
|
import { TooltipProvider } from "../../../components/ui/tooltip";
|
|
19
19
|
import type { CellId } from "../../../core/cells/ids";
|