@marimo-team/islands 0.17.0 → 0.17.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (616) hide show
  1. package/dist/{fullscreen-blsKUrtN.js → Combination-De9yoNY5.js} +132 -69
  2. package/dist/{ConnectedDataExplorerComponent-DJEUH6Bb.js → ConnectedDataExplorerComponent-DuvpJOKp.js} +45 -44
  3. package/dist/{ImageComparisonComponent-D4Tv9QzJ.js → ImageComparisonComponent--etUl2pp.js} +2 -2
  4. package/dist/{_baseIsEqual-CN4oFUZ4.js → _baseIsEqual-BFlyFUxC.js} +1 -1
  5. package/dist/{_basePickBy-CzSvE_-f.js → _basePickBy-gCCvtjgp.js} +3 -3
  6. package/dist/{_baseProperty-DbbUiyUD.js → _baseProperty-BuqBC0Ie.js} +5 -5
  7. package/dist/{_baseUniq-DwoC-LVO.js → _baseUniq-CKN9mEDq.js} +5 -5
  8. package/dist/any-language-editor-Du2Q_6IK.js +156 -0
  9. package/dist/apl-CUm2DGqh.js +4 -0
  10. package/dist/{arc-B1iVbHTB.js → arc-C_O2hc-b.js} +2 -2
  11. package/dist/architecture-O4VJ6CD3-PFw3eFBY.js +21 -0
  12. package/dist/{architectureDiagram-W76B3OCA-CoBORy6u.js → architectureDiagram-W76B3OCA-CrK99pJi.js} +38 -37
  13. package/dist/asciiarmor-lqJ78U01.js +4 -0
  14. package/dist/asn1-CjwpSTlW.js +4 -0
  15. package/dist/assets/__vite-browser-external-DHoMWs4M.js +1 -0
  16. package/dist/assets/{worker-vPn7gxWj.js → worker-B6tH8gPO.js} +3 -3
  17. package/dist/{blockDiagram-QIGZ2CNN-0yzoLIar.js → blockDiagram-QIGZ2CNN-BJOEyO6w.js} +47 -46
  18. package/dist/brainfuck-ClvDI1dq.js +4 -0
  19. package/dist/{button-DcnBVpVa.js → button-ADXOb_gX.js} +27 -27
  20. package/dist/{c4Diagram-FPNF74CW-CKsIA_DD.js → c4Diagram-FPNF74CW-7Pz_X9wF.js} +12 -11
  21. package/dist/{channel-3LVvQZcD.js → channel-X-wRUxX6.js} +1 -1
  22. package/dist/{check-D7ifz5op.js → check-COlaG7Ss.js} +1 -1
  23. package/dist/{chunk-3AY6CYHV-B2C-aVc3.js → chunk-3AY6CYHV-BQH2fFpA.js} +10 -10
  24. package/dist/{chunk-4BX2VUAB-DEd4VI9L.js → chunk-4BX2VUAB-D-QtDCKM.js} +1 -1
  25. package/dist/{chunk-4KMFLZZN-DnvP3O4K.js → chunk-4KMFLZZN-BirZvvJS.js} +13 -13
  26. package/dist/{chunk-55IACEB6-BcCzwOOl.js → chunk-55IACEB6-DjtPYZKs.js} +1 -1
  27. package/dist/{chunk-6OXUPJBA-eNAAfJ3Q.js → chunk-6OXUPJBA-CTnnqlzw.js} +7 -7
  28. package/dist/{chunk-7GE3RBXV-CSAeQvLz.js → chunk-7GE3RBXV-CT47hCrL.js} +1 -1
  29. package/dist/{chunk-ABZYJK2D-CZcb_1iM.js → chunk-ABZYJK2D-B6ZsU6SR.js} +484 -1039
  30. package/dist/{chunk-BN7GFLIU-pBc5O5Rh.js → chunk-BN7GFLIU-DYWEsrG4.js} +1 -1
  31. package/dist/{chunk-CVBHYZKI-CivHZg9P.js → chunk-CVBHYZKI-BuzDGXz0.js} +1 -1
  32. package/dist/{chunk-CXMOBAN2-Dd0E6qb0.js → chunk-CXMOBAN2-Bas2S5w1.js} +6 -6
  33. package/dist/{chunk-EXTU4WIE-GQ2ZWfJo.js → chunk-EXTU4WIE-DXwNSukz.js} +2 -2
  34. package/dist/{chunk-FMBD7UC4-C6YcisV6.js → chunk-FMBD7UC4-CYKEpuPr.js} +1 -1
  35. package/dist/{chunk-JA3XYJ7Z-DYeQaT57.js → chunk-JA3XYJ7Z-DcxfkcDC.js} +4 -4
  36. package/dist/{chunk-JEIROHC2-B-EZMP4V.js → chunk-JEIROHC2-C01ZIcIG.js} +1 -1
  37. package/dist/{chunk-K7UQS3LO-DENzlS-M.js → chunk-K7UQS3LO-CmbT97MV.js} +7 -7
  38. package/dist/{chunk-KMC2YHZD-SckhHdEh.js → chunk-KMC2YHZD-D64m-1E1.js} +1 -1
  39. package/dist/{chunk-QN33PNHL-Cjq5b604.js → chunk-QN33PNHL-DjB0j8Dr.js} +2 -2
  40. package/dist/{chunk-QYVHNE3D-CNUuivie.js → chunk-QYVHNE3D-VA4W4oxG.js} +2 -2
  41. package/dist/{chunk-QZHKN3VN-DugEU_bA.js → chunk-QZHKN3VN-KT0fl3Em.js} +1 -1
  42. package/dist/{chunk-S3R3BYOJ-itCT6Vif.js → chunk-S3R3BYOJ-C5zmcMvn.js} +6 -6
  43. package/dist/{chunk-T44TD3VJ-BLdfTX8J.js → chunk-T44TD3VJ-BMOgu-Hk.js} +1 -1
  44. package/dist/{chunk-TVAH2DTR-BOnwF9d8.js → chunk-TVAH2DTR-eKm8SKnH.js} +6 -6
  45. package/dist/{chunk-TZMSLE5B-DGs66AlL.js → chunk-TZMSLE5B-CQxFRiI2.js} +3 -3
  46. package/dist/{chunk-WFRQ32O7-CPsipkmJ.js → chunk-WFRQ32O7-Dg51o277.js} +1 -1
  47. package/dist/{chunk-WFWHJNB7-Cmed18Pk.js → chunk-WFWHJNB7-DVLO98ge.js} +1 -1
  48. package/dist/{chunk-XRWGC2XP-DH5GDaY8.js → chunk-XRWGC2XP-UNFKdWQh.js} +1 -1
  49. package/dist/{chunk-ZPAFE4SF-DPDwaqZm.js → chunk-ZPAFE4SF-DbCSwfLK.js} +1 -1
  50. package/dist/classDiagram-KNZD7YFC-HUFFxNdk.js +40 -0
  51. package/dist/classDiagram-v2-RKCZMP56-Dw7Acmuf.js +40 -0
  52. package/dist/{click-outside-container-CL_FkgGY.js → click-outside-container-2BH589Bq.js} +2 -2
  53. package/dist/{clike-DYfRWWXk.js → clike-CytFO-kN.js} +1 -1
  54. package/dist/clojure-8GefCgPe.js +4 -0
  55. package/dist/{clone-Msbhmn2a.js → clone-CCgVUJ6x.js} +1 -1
  56. package/dist/cmake-yAhT9H0F.js +4 -0
  57. package/dist/cobol-BmltueOY.js +4 -0
  58. package/dist/coffeescript-C7KEQBcH.js +4 -0
  59. package/dist/commonlisp-CNbiJRU-.js +4 -0
  60. package/dist/{constants-BCOEQoEQ.js → constants-BaCMVd12.js} +3 -3
  61. package/dist/{copy-BkZ8PkBM.js → copy-GNcK40wy.js} +2 -2
  62. package/dist/{cose-bilkent-S5V4N54A-BZnbwyVD.js → cose-bilkent-S5V4N54A-BnvuJG6Y.js} +3 -3
  63. package/dist/crystal-OdjZZ8bc.js +4 -0
  64. package/dist/css-DhTxMmL_.js +5 -0
  65. package/dist/cypher-CgN8E3YI.js +4 -0
  66. package/dist/d-g41sJcBC.js +4 -0
  67. package/dist/{dagre-5GWH7T2D-BGaiSZZO.js → dagre-5GWH7T2D-rn7tZYaQ.js} +37 -36
  68. package/dist/{dagre-pyfDIOWJ.js → dagre-Bghq6VKO.js} +13 -13
  69. package/dist/{data-grid-overlay-editor-867aBz0Y.js → data-grid-overlay-editor-B4_Caieu.js} +4 -4
  70. package/dist/{diagram-N5W7TBWH-CzLE0jZB.js → diagram-N5W7TBWH-lbF94o-g.js} +41 -40
  71. package/dist/{diagram-QEK2KX5R-AGS60xEZ.js → diagram-QEK2KX5R-CKBhSzsO.js} +35 -34
  72. package/dist/{diagram-S2PKOQOG-BxRoG6yW.js → diagram-S2PKOQOG-161_1f53.js} +35 -34
  73. package/dist/diff-ViRYYhhg.js +4 -0
  74. package/dist/{dist-PGgOcwbF.js → dist-28HYzERB.js} +2 -2
  75. package/dist/{dist-CfQHSIQC.js → dist-4dtbqf8A.js} +3 -3
  76. package/dist/{dist-CYhQCVru.js → dist-71jYYbWP.js} +2 -2
  77. package/dist/{dist-Cacac5HV.js → dist-B8Pbw5ln.js} +2 -2
  78. package/dist/{dist-z_iuDES7.js → dist-BAqp4Vtl.js} +1 -1
  79. package/dist/{dist-RwqAqkpG.js → dist-BBhmkni2.js} +1 -1
  80. package/dist/{dist-DMxl6Qbu.js → dist-BNRdMfJH.js} +2 -2
  81. package/dist/{dist-Doiq_KIP.js → dist-BSyYM1Gi.js} +6 -6
  82. package/dist/{dist-NUdHX0XE.js → dist-BYHiiJB-.js} +2 -2
  83. package/dist/{dist-B0YD1aXi.js → dist-B_wjJqqS.js} +2 -2
  84. package/dist/{dist-DBhEu3-F.js → dist-BaPjLM6s.js} +1 -1
  85. package/dist/dist-BfJO8Bm9.js +12 -0
  86. package/dist/{dist-BFkr6kAQ.js → dist-BqdQPWpQ.js} +2 -2
  87. package/dist/{dist-DlHkZUnY.js → dist-C2IEc8og.js} +5 -5
  88. package/dist/{dist-DS6nuHYK.js → dist-C9-uHBqC.js} +1 -1
  89. package/dist/{dist-B1Dv8Sdk.js → dist-CJb8EiFO.js} +3 -3
  90. package/dist/dist-CLuF3AtO.js +6 -0
  91. package/dist/{dist-CId4IPXu.js → dist-CNAkUyxv.js} +1 -1
  92. package/dist/{dist-RdxOJbBw.js → dist-CNvMOZu9.js} +2 -2
  93. package/dist/{dist-C7zhQ7K0.js → dist-CPNnKuPh.js} +1 -1
  94. package/dist/{dist-ivwkJchV.js → dist-CTIyD_KU.js} +3 -3
  95. package/dist/dist-CU04U4NL.js +10 -0
  96. package/dist/{dist-D-3fICwh.js → dist-CWh5ZwcC.js} +2 -2
  97. package/dist/{dist-d5NxvX2s.js → dist-CWqB4bg8.js} +3 -3
  98. package/dist/{dist-biZ846D9.js → dist-CtOeHDJp.js} +5 -5
  99. package/dist/{dist-BL2DSY0P.js → dist-Cw0F6l-7.js} +1 -1
  100. package/dist/{dist-wHVprCkn.js → dist-CwZcC4om.js} +1 -1
  101. package/dist/dist-DNUT6b47.js +6 -0
  102. package/dist/{dist-CZq5-ZyD.js → dist-Da046MhT.js} +1 -1
  103. package/dist/{dist-reo2kYlN.js → dist-DaTVdKJa.js} +2 -2
  104. package/dist/dist-DbAb2sY7.js +6 -0
  105. package/dist/dist-DiDFQ2Rk.js +6 -0
  106. package/dist/{dist-BpzZrRd6.js → dist-DlK420ke.js} +1 -1
  107. package/dist/{dist-CvyfRaIr.js → dist-Drf3cyIW.js} +3 -3
  108. package/dist/{dist-2Ne-33Xy.js → dist-DxESp2-T.js} +3 -3
  109. package/dist/{dist-CkvGMBAS.js → dist-DzJem5xc.js} +1 -1
  110. package/dist/{dist-y8uoXYaE.js → dist-O0zVziwn.js} +3 -3
  111. package/dist/dist-SNAyAOJ-.js +6 -0
  112. package/dist/{dist-BhVFggab.js → dist-_4cudra1.js} +3 -3
  113. package/dist/dist-cbW5xJNV.js +6 -0
  114. package/dist/dist-h8eGLSbK.js +10 -0
  115. package/dist/{dist-CBhnQKQ4.js → dist-xLN9qCAp.js} +3 -3
  116. package/dist/{dockerfile-sZMPcXVY.js → dockerfile-Cmlcqk35.js} +1 -1
  117. package/dist/dtd-RplB6hDg.js +4 -0
  118. package/dist/dylan-BX8KJufP.js +4 -0
  119. package/dist/ecl-CWtLaNMH.js +4 -0
  120. package/dist/eiffel-C-mlZPMn.js +4 -0
  121. package/dist/elm-CWp06vcb.js +4 -0
  122. package/dist/{erDiagram-AWTI2OKA-CTxzb-U8.js → erDiagram-AWTI2OKA-BU7Qig7n.js} +30 -29
  123. package/dist/erlang-pfp22AZM.js +4 -0
  124. package/dist/error-banner-BAWlXn49.js +1012 -0
  125. package/dist/{esm-CAWW9sum.js → esm-AtKNNGYO.js} +1 -1
  126. package/dist/esm-B2pocBPL.js +26 -0
  127. package/dist/{esm-BdiY4QsX.js → esm-Oo8OvZ6m.js} +110 -110
  128. package/dist/{esm-YY5zh7KV.js → esm-YVnxJqkD.js} +20 -20
  129. package/dist/{factor-CRFTmP_a.js → factor-BZnBK3CG.js} +1 -1
  130. package/dist/factor-CEn53jua.js +5 -0
  131. package/dist/{flowDiagram-PVAE7QVJ-Dck2hiJe.js → flowDiagram-PVAE7QVJ-JKJebWeY.js} +39 -38
  132. package/dist/{formats-BnqXUb1V.js → formats-DOEuF6TR.js} +8 -8
  133. package/dist/forth-CL8vu_y8.js +4 -0
  134. package/dist/fortran-DsmXkYtE.js +4 -0
  135. package/dist/{ganttDiagram-OWAHRB6G-AWzfzpup.js → ganttDiagram-OWAHRB6G-BvWRfg05.js} +17 -16
  136. package/dist/gas-mYt9Rtlx.js +4 -0
  137. package/dist/gherkin-DHNCKBNj.js +4 -0
  138. package/dist/gitGraph-ZV4HHKMB-Cpd6k0O8.js +21 -0
  139. package/dist/{gitGraphDiagram-NY62KEGX-GyNboWSV.js → gitGraphDiagram-NY62KEGX-VEJJBf5L.js} +35 -34
  140. package/dist/{glide-data-editor-DHuN8kQ8.js → glide-data-editor-Bne10icG.js} +87 -85
  141. package/dist/{graphlib-hb3zmtVD.js → graphlib-DRS8CrjA.js} +5 -5
  142. package/dist/groovy-DzRtOS5a.js +4 -0
  143. package/dist/haskell-Bl9iT_Mp.js +4 -0
  144. package/dist/haxe-DqA0ED6k.js +5 -0
  145. package/dist/{hotkeys-Ct2T3e9O.js → hotkeys-DVxFjl2s.js} +12 -0
  146. package/dist/idl-WU2hil4i.js +4 -0
  147. package/dist/info-63CPKGFF-CG-xzUJo.js +21 -0
  148. package/dist/infoDiagram-STP46IZ2-zoRBGoup.js +45 -0
  149. package/dist/invariant-D3JoRb4I.js +6 -0
  150. package/dist/{isEmpty--odfYjh1.js → isEmpty-Do_v2sls.js} +2 -2
  151. package/dist/{isSymbol-Cb1f2HgO.js → isSymbol-CtkA8Y0a.js} +1 -1
  152. package/dist/javascript-QY2BGJeV.js +5 -0
  153. package/dist/jinja2-Czleq7Sk.js +4 -0
  154. package/dist/{journeyDiagram-BIP6EPQ6-TmXYCUbT.js → journeyDiagram-BIP6EPQ6-CsgEQgxh.js} +10 -9
  155. package/dist/julia-Dru3Qi0y.js +4 -0
  156. package/dist/{kanban-definition-6OIFK2YF-B6ozleHo.js → kanban-definition-6OIFK2YF-Bi8Ete2P.js} +42 -41
  157. package/dist/{katex-mPzRsXEy.js → katex-C-g3rKKt.js} +1 -1
  158. package/dist/{label-VVRKZmrP.js → label-BiVIU_wb.js} +245 -243
  159. package/dist/{line-C6-zz71o.js → line-B7-GoF1m.js} +3 -3
  160. package/dist/{linear-iebAbJVD.js → linear-DeGGALuc.js} +4 -4
  161. package/dist/livescript-Dxqi_HLT.js +4 -0
  162. package/dist/{loader-CM0VALo9.js → loader-BBqwtZWj.js} +3 -3
  163. package/dist/lua-ByH1cUQZ.js +4 -0
  164. package/dist/main.js +11785 -11529
  165. package/dist/mathematica-CWJIFuES.js +4 -0
  166. package/dist/mbox-qhPIGaUI.js +4 -0
  167. package/dist/{memoize-DYoRBSLn.js → memoize-D7eDkf3R.js} +1 -1
  168. package/dist/{merge-BjuR6j_w.js → merge-C_6cGM6o.js} +1 -1
  169. package/dist/{mermaid-YPPMBmhk.js → mermaid-BmtvsZ2m.js} +323 -321
  170. package/dist/{mermaid-parser.core-BLkyTSZj.js → mermaid-parser.core-geyG_6o0.js} +8 -8
  171. package/dist/{mhchem-Dw7wvXtr.js → mhchem-OhAaJ0fA.js} +1 -1
  172. package/dist/{min-B_i2ahn4.js → min-Dwa_NbP6.js} +7 -7
  173. package/dist/{mindmap-definition-Q6HEUPPD-F6-JnXwq.js → mindmap-definition-Q6HEUPPD-B-wmX1oG.js} +29 -28
  174. package/dist/mirc-yYcXhXBY.js +4 -0
  175. package/dist/mllike-BfT_Nl9x.js +6 -0
  176. package/dist/modelica-lVDtz1Rm.js +4 -0
  177. package/dist/mscgen-DvwdD1QJ.js +6 -0
  178. package/dist/mumps-BiY3GwKd.js +4 -0
  179. package/dist/{now-CwRqw0nS.js → now-DumxsrcX.js} +1 -1
  180. package/dist/{nsis-BWJEeUyS.js → nsis-D4bLR_Y1.js} +1 -1
  181. package/dist/nsis-Dk18Sq_4.js +5 -0
  182. package/dist/ntriples-Cj-8VqKF.js +4 -0
  183. package/dist/{number-overlay-editor-CeyruAX4.js → number-overlay-editor-D6r-48ka.js} +2 -2
  184. package/dist/octave-BgFAaYjU.js +4 -0
  185. package/dist/once-3OSMKEsL.js +74 -0
  186. package/dist/{ordinal-BXk5xAj2.js → ordinal-DpEbSVPc.js} +1 -1
  187. package/dist/oz-IsEG1I1m.js +4 -0
  188. package/dist/packet-HUATNLJX-Cafuo3IG.js +21 -0
  189. package/dist/pascal-BVf7FtIE.js +4 -0
  190. package/dist/perl-BM0-y4mZ.js +4 -0
  191. package/dist/pie-WTHONI2E-BE0pHBwB.js +21 -0
  192. package/dist/{pieDiagram-ADFJNKIX-C5dSQVCn.js → pieDiagram-ADFJNKIX-C3GvPNUL.js} +40 -39
  193. package/dist/pig-CLBjzQmc.js +4 -0
  194. package/dist/powershell-B_qvE33J.js +4 -0
  195. package/dist/{precisionRound-DbP73hkf.js → precisionRound-7YYJq2rW.js} +1 -1
  196. package/dist/properties-CUTpsH2y.js +4 -0
  197. package/dist/protobuf-DqCP8a-0.js +4 -0
  198. package/dist/pug-BvexKkw4.js +5 -0
  199. package/dist/{pug-PJh82u1M.js → pug-Dv3gE36O.js} +1 -1
  200. package/dist/puppet-CoIi0R3f.js +4 -0
  201. package/dist/purify.es-CrfFzTyi.js +536 -0
  202. package/dist/python-C-11-YMh.js +5 -0
  203. package/dist/q-CCVgEip7.js +4 -0
  204. package/dist/{quadrantDiagram-LMRXKWRM-DlahxNiy.js → quadrantDiagram-LMRXKWRM-DPXwGNVa.js} +8 -7
  205. package/dist/r-CIdR0Sfs.js +4 -0
  206. package/dist/radar-NJJJXTRR-0adgjw0u.js +21 -0
  207. package/dist/{range-DxfkexCE.js → range-CIbLpsrs.js} +3 -3
  208. package/dist/{react-plotly-D_IAfR8f.js → react-plotly-DYyvxcRD.js} +1 -1
  209. package/dist/{requirementDiagram-4UW4RH46-DTkinyvU.js → requirementDiagram-4UW4RH46-Cs3Hqnm0.js} +24 -23
  210. package/dist/rpm-Dwvm039g.js +5 -0
  211. package/dist/ruby-DpTnO5gb.js +4 -0
  212. package/dist/{sankeyDiagram-GR3RE2ED-CsLnEnnq.js → sankeyDiagram-GR3RE2ED-Be1d_Xf7.js} +7 -6
  213. package/dist/sas-CK9boxgv.js +4 -0
  214. package/dist/scheme-Y1aYL-Qq.js +4 -0
  215. package/dist/{sequenceDiagram-C3RYC4MD-BdEOR6SC.js → sequenceDiagram-C3RYC4MD-lbtovKTa.js} +14 -13
  216. package/dist/shell-D3eXGsHd.js +4 -0
  217. package/dist/sieve-BdwSFdWJ.js +4 -0
  218. package/dist/{slides-component-2bbal1YJ.js → slides-component-BoeQU7-s.js} +999 -998
  219. package/dist/smalltalk-BTYJquCm.js +4 -0
  220. package/dist/sparql-CYF0g4Cc.js +4 -0
  221. package/dist/{src-DZkaBUmt.js → src-BTqT1mA1.js} +1 -1
  222. package/dist/{stateDiagram-KXAO66HF-DQLH2jhP.js → stateDiagram-KXAO66HF-BmbR-Rol.js} +40 -39
  223. package/dist/stateDiagram-v2-UMBNRL4Z-DdJ7qVWc.js +39 -0
  224. package/dist/{step-IHYrujTc.js → step-2RJrMSSG.js} +1 -1
  225. package/dist/stex-CyWhoWHt.js +5 -0
  226. package/dist/style.css +1 -1
  227. package/dist/stylus-BBiKaI2h.js +4 -0
  228. package/dist/swift-COb15qFR.js +4 -0
  229. package/dist/tcl-Jik1LXu9.js +4 -0
  230. package/dist/textile-BFHPD3wr.js +4 -0
  231. package/dist/{time-CFkXkVrt.js → time-BB30r1tK.js} +4 -4
  232. package/dist/{timeline-definition-XQNQX7LJ-bToVq14i.js → timeline-definition-XQNQX7LJ-1mv5caPW.js} +16 -15
  233. package/dist/{toNumber-EFF1Z9T1.js → toNumber-D3Ystr3y.js} +2 -2
  234. package/dist/{toString-C2mCkasT.js → toString-CbuxCRDG.js} +2 -2
  235. package/dist/toml-Brp9fBXs.js +4 -0
  236. package/dist/treemap-75Q7IDZK-CyBT8_Wh.js +21 -0
  237. package/dist/troff-CcZRW4vg.js +4 -0
  238. package/dist/ttcn-Bz_6ifRd.js +4 -0
  239. package/dist/ttcn-cfg-v-yi2rKc.js +4 -0
  240. package/dist/turtle-CDOsZYhB.js +4 -0
  241. package/dist/{types-CRXV0KD5.js → types-BPohCsA7.js} +141 -210
  242. package/dist/{useAsyncData-uMVTsDI9.js → useAsyncData-DHBqeb9a.js} +3 -2
  243. package/dist/{useDateFormatter-Dcz7jstn.js → useDateFormatter-BkbjKw83.js} +9 -9
  244. package/dist/useIframeCapabilities-BEvvwlwt.js +46 -0
  245. package/dist/{useTheme-NbEx-ZNV.js → useTheme-CnMbo-iq.js} +23 -23
  246. package/dist/vb-CL7fRwRw.js +4 -0
  247. package/dist/vbscript-CR2xfxpw.js +4 -0
  248. package/dist/{vega-component-hegVmfuS.js → vega-component-BfFcXZxw.js} +40 -39
  249. package/dist/{vega-loader.browser.module-DcW8jnKp.js → vega-loader.browser.module-CFMtdrNw.js} +3 -3
  250. package/dist/velocity-CfuZoxPt.js +4 -0
  251. package/dist/verilog-CySTkzw_.js +4 -0
  252. package/dist/vhdl-Dvcd8KHW.js +4 -0
  253. package/dist/webidl-tbJt7sKk.js +4 -0
  254. package/dist/xquery-DJQVztyc.js +4 -0
  255. package/dist/{xychartDiagram-6GGTOJPD-C7Bhm_yt.js → xychartDiagram-6GGTOJPD-njc-naaw.js} +23 -22
  256. package/dist/yacas-BbgBReEH.js +4 -0
  257. package/dist/z80-DPyb8VGz.js +4 -0
  258. package/package.json +10 -6
  259. package/src/components/app-config/ai-config.tsx +1 -3
  260. package/src/components/app-config/common.tsx +14 -0
  261. package/src/components/app-config/data-form.tsx +282 -0
  262. package/src/components/app-config/user-config-form.tsx +36 -223
  263. package/src/components/chat/acp/__tests__/state.test.ts +75 -2
  264. package/src/components/chat/acp/agent-panel.tsx +143 -89
  265. package/src/components/chat/acp/blocks.tsx +77 -34
  266. package/src/components/chat/acp/state.ts +5 -1
  267. package/src/components/chat/acp/thread.tsx +12 -1
  268. package/src/components/chat/chat-panel.tsx +38 -5
  269. package/src/components/chat/chat-utils.ts +5 -1
  270. package/src/components/chat/markdown-renderer.css +1 -0
  271. package/src/components/chat/tool-call-accordion.tsx +7 -1
  272. package/src/components/data-table/charts/__tests__/storage.test.ts +12 -6
  273. package/src/components/data-table/charts/charts.tsx +8 -2
  274. package/src/components/data-table/charts/storage.ts +1 -1
  275. package/src/components/data-table/column-wrapping/feature.ts +2 -0
  276. package/src/components/data-table/columns.tsx +10 -2
  277. package/src/components/data-table/renderers.tsx +3 -2
  278. package/src/components/editor/Output.tsx +28 -24
  279. package/src/components/editor/actions/useCellActionButton.tsx +20 -4
  280. package/src/components/editor/ai/add-cell-with-ai.tsx +17 -3
  281. package/src/components/editor/ai/ai-completion-editor.tsx +79 -32
  282. package/src/components/editor/ai/completion-handlers.tsx +26 -7
  283. package/src/components/editor/cell/StagedAICell.tsx +81 -12
  284. package/src/components/editor/cell/code/cell-editor.tsx +2 -3
  285. package/src/components/editor/cell/useRunCells.ts +62 -30
  286. package/src/components/editor/chrome/panels/cache-panel.tsx +2 -2
  287. package/src/components/editor/chrome/panels/packages-panel.tsx +1 -1
  288. package/src/components/editor/chrome/state.ts +1 -1
  289. package/src/components/editor/chrome/wrapper/app-chrome.tsx +2 -0
  290. package/src/components/editor/chrome/wrapper/minimap.tsx +2 -0
  291. package/src/components/editor/chrome/wrapper/pending-ai-cells.tsx +108 -0
  292. package/src/components/editor/chrome/wrapper/sidebar.tsx +1 -1
  293. package/src/components/editor/code/readonly-diff.tsx +49 -0
  294. package/src/components/editor/columns/storage.ts +1 -1
  295. package/src/components/editor/errors/fix-mode.ts +6 -1
  296. package/src/components/editor/inputs/Inputs.styles.ts +1 -1
  297. package/src/components/editor/output/CalloutOutput.tsx +1 -1
  298. package/src/components/editor/output/HtmlOutput.tsx +3 -2
  299. package/src/components/editor/output/JsonOutput.tsx +6 -1
  300. package/src/components/editor/output/MarimoTracebackOutput.tsx +59 -45
  301. package/src/components/editor/output/__tests__/HtmlOutput.test.tsx +134 -0
  302. package/src/components/editor/output/__tests__/traceback.test.tsx +8 -1
  303. package/src/components/editor/output/useWrapText.ts +6 -1
  304. package/src/components/editor/package-alert.tsx +34 -32
  305. package/src/components/editor/renderers/vertical-layout/vertical-layout-wrapper.tsx +5 -2
  306. package/src/components/home/state.ts +3 -2
  307. package/src/components/scratchpad/scratchpad-history.ts +6 -1
  308. package/src/components/slides/slides-component.tsx +25 -21
  309. package/src/components/ui/confirmation-button.tsx +1 -1
  310. package/src/components/ui/context-menu.tsx +14 -4
  311. package/src/components/ui/dropdown-menu.tsx +14 -4
  312. package/src/components/ui/fullscreen.tsx +115 -1
  313. package/src/components/ui/popover.tsx +11 -3
  314. package/src/components/ui/range-slider.tsx +1 -1
  315. package/src/components/ui/select.tsx +7 -3
  316. package/src/components/ui/slider.tsx +1 -1
  317. package/src/components/ui/tooltip.tsx +10 -3
  318. package/src/core/ai/__tests__/staged-cells.test.ts +189 -64
  319. package/src/core/ai/config.ts +6 -2
  320. package/src/core/ai/context/providers/__tests__/__snapshots__/cell-output.test.ts.snap +17 -0
  321. package/src/core/ai/context/providers/__tests__/cell-output.test.ts +194 -10
  322. package/src/core/ai/context/providers/cell-output.ts +170 -112
  323. package/src/core/ai/context/providers/tables.ts +2 -2
  324. package/src/core/ai/staged-cells.ts +32 -16
  325. package/src/core/ai/state.ts +2 -1
  326. package/src/core/ai/tools/__tests__/edit-notebook-tool.test.ts +556 -0
  327. package/src/core/ai/tools/__tests__/registry.test.ts +12 -4
  328. package/src/core/ai/tools/__tests__/run-cells-tool.test.ts +450 -0
  329. package/src/core/ai/tools/__tests__/utils.test.ts +87 -0
  330. package/src/core/ai/tools/base.ts +31 -8
  331. package/src/core/ai/tools/edit-notebook-tool.ts +239 -0
  332. package/src/core/ai/tools/registry.ts +13 -6
  333. package/src/core/ai/tools/run-cells-tool.ts +233 -0
  334. package/src/core/ai/tools/sample-tool.ts +10 -8
  335. package/src/core/ai/tools/utils.ts +23 -0
  336. package/src/core/cells/__tests__/cells.test.ts +19 -1
  337. package/src/core/cells/__tests__/session.test.ts +20 -3
  338. package/src/core/cells/cells.ts +12 -7
  339. package/src/core/cells/session.ts +1 -1
  340. package/src/core/codemirror/ai/resources.ts +13 -2
  341. package/src/core/codemirror/copilot/state.ts +4 -2
  342. package/src/core/codemirror/language/__tests__/extension.test.ts +10 -2
  343. package/src/core/codemirror/language/languages/markdown.ts +16 -153
  344. package/src/core/codemirror/language/languages/python.ts +12 -7
  345. package/src/core/codemirror/language/languages/sql/sql-mode.ts +6 -1
  346. package/src/core/codemirror/language/languages/sql/sql.ts +20 -293
  347. package/src/core/codemirror/language/panel/markdown.tsx +2 -1
  348. package/src/core/codemirror/language/panel/panel.tsx +1 -1
  349. package/src/core/codemirror/lsp/federated-lsp.ts +1 -1
  350. package/src/core/codemirror/lsp/transports.ts +7 -13
  351. package/src/core/config/config-schema.ts +4 -1
  352. package/src/core/hotkeys/hotkeys.ts +12 -0
  353. package/src/core/lsp/__tests__/transport.test.ts +233 -0
  354. package/src/core/lsp/transport.ts +139 -0
  355. package/src/core/rtc/state.ts +6 -1
  356. package/src/core/vscode/is-in-vscode.ts +9 -0
  357. package/src/core/wasm/store.ts +1 -1
  358. package/src/css/app/Cell.css +31 -0
  359. package/src/css/globals.css +5 -0
  360. package/src/hooks/useIframeCapabilities.ts +14 -0
  361. package/src/hooks/useLocalStorage.ts +1 -1
  362. package/src/plugins/core/RenderHTML.tsx +65 -5
  363. package/src/plugins/core/__test__/RenderHTML.test.ts +25 -23
  364. package/src/plugins/core/__test__/renderHTML-sanitization.test.tsx +131 -0
  365. package/src/plugins/core/__test__/sanitize.test.ts +465 -0
  366. package/src/plugins/core/registerReactComponent.tsx +14 -1
  367. package/src/plugins/core/sanitize.ts +76 -0
  368. package/src/plugins/impl/DataTablePlugin.tsx +1 -0
  369. package/src/plugins/impl/FileBrowserPlugin.tsx +1 -3
  370. package/src/plugins/impl/FileUploadPlugin.tsx +1 -3
  371. package/src/plugins/impl/__tests__/DateTimePickerPlugin.test.tsx +8 -1
  372. package/src/plugins/impl/__tests__/DropdownPlugin.test.tsx +6 -0
  373. package/src/plugins/impl/__tests__/MultiSelectPlugin.test.ts +8 -1
  374. package/src/plugins/impl/__tests__/NumberPlugin.test.tsx +3 -0
  375. package/src/plugins/impl/plotly/PlotlyPlugin.tsx +9 -2
  376. package/src/plugins/impl/plotly/parse-from-template.ts +1 -1
  377. package/src/utils/__tests__/arrays.test.ts +42 -0
  378. package/src/utils/__tests__/capabilities.test.ts +453 -0
  379. package/src/utils/__tests__/formatting.test.ts +13 -13
  380. package/src/utils/__tests__/local-storage.test.ts +1 -1
  381. package/src/utils/__tests__/storage.test.ts +21 -21
  382. package/src/utils/arrays.ts +25 -0
  383. package/src/utils/capabilities.ts +114 -0
  384. package/src/utils/numbers.ts +2 -2
  385. package/src/utils/{storage.ts → storage/jotai.ts} +16 -4
  386. package/src/utils/storage/storage.ts +57 -0
  387. package/src/utils/{localStorage.ts → storage/typed.ts} +22 -12
  388. package/dist/any-language-editor-CEXn1vFs.js +0 -156
  389. package/dist/apl-DuVfHsPc.js +0 -4
  390. package/dist/architecture-O4VJ6CD3-lp-opOaL.js +0 -21
  391. package/dist/asciiarmor-qIVWsi4F.js +0 -4
  392. package/dist/asn1-BjPqARr7.js +0 -4
  393. package/dist/assets/__vite-browser-external-lX-sn9m2.js +0 -1
  394. package/dist/brainfuck-DPGTVfkE.js +0 -4
  395. package/dist/classDiagram-KNZD7YFC-azuS_99k.js +0 -39
  396. package/dist/classDiagram-v2-RKCZMP56-CQpyQQOR.js +0 -39
  397. package/dist/clojure-ATksAecl.js +0 -4
  398. package/dist/cmake-CWylaz2C.js +0 -4
  399. package/dist/cobol-BiLLCZIQ.js +0 -4
  400. package/dist/coffeescript-Ca4jipi8.js +0 -4
  401. package/dist/commonlisp-BwFjyEC7.js +0 -4
  402. package/dist/crystal-BhUsQHbh.js +0 -4
  403. package/dist/css-Cf4wlIyV.js +0 -5
  404. package/dist/cypher-Dj8Hzgxa.js +0 -4
  405. package/dist/d-DZI7tbTy.js +0 -4
  406. package/dist/diff-WQISUHG5.js +0 -4
  407. package/dist/dist-BawZu0ix.js +0 -10
  408. package/dist/dist-BiOF7987.js +0 -6
  409. package/dist/dist-Cs3McXEj.js +0 -6
  410. package/dist/dist-D3aaithT.js +0 -6
  411. package/dist/dist-DELcMSpJ.js +0 -6
  412. package/dist/dist-Dgts3WXd.js +0 -6
  413. package/dist/dist-DtpUiDG_.js +0 -6
  414. package/dist/dist-ZjnJq_jD.js +0 -10
  415. package/dist/dist-mof3iuBu.js +0 -12
  416. package/dist/dtd-B2M8dhfC.js +0 -4
  417. package/dist/dylan-CU3Vt8SC.js +0 -4
  418. package/dist/ecl-B8ESAVq4.js +0 -4
  419. package/dist/eiffel-DDfMIKeA.js +0 -4
  420. package/dist/elm-Bj6rj8jf.js +0 -4
  421. package/dist/erlang-BxyshZUq.js +0 -4
  422. package/dist/error-banner-npbEfanI.js +0 -1012
  423. package/dist/esm-svAVli9f.js +0 -26
  424. package/dist/factor-CYk6XT8r.js +0 -5
  425. package/dist/forth-fcoJkd-f.js +0 -4
  426. package/dist/fortran-IxZHu4wc.js +0 -4
  427. package/dist/gas-B8rmKcim.js +0 -4
  428. package/dist/gherkin-BTm-jIdJ.js +0 -4
  429. package/dist/gitGraph-ZV4HHKMB-DFg_OLQb.js +0 -21
  430. package/dist/groovy-01kRHFMD.js +0 -4
  431. package/dist/haskell-B3PhE05w.js +0 -4
  432. package/dist/haxe-DEoAm8oA.js +0 -5
  433. package/dist/idl-DsDJU9cV.js +0 -4
  434. package/dist/info-63CPKGFF-D3DZmDBa.js +0 -21
  435. package/dist/infoDiagram-STP46IZ2-ec08vi_U.js +0 -44
  436. package/dist/javascript-gwczVhuU.js +0 -5
  437. package/dist/jinja2-AkZRdFk3.js +0 -4
  438. package/dist/julia-_s6qe3bf.js +0 -4
  439. package/dist/livescript-CwPHQdv5.js +0 -4
  440. package/dist/lua-s7nRxkCP.js +0 -4
  441. package/dist/mathematica-Ci36yd1q.js +0 -4
  442. package/dist/mbox-DbOYMNCO.js +0 -4
  443. package/dist/mirc-VmNe8AwF.js +0 -4
  444. package/dist/mllike-BdD7SJEa.js +0 -6
  445. package/dist/modelica-BA4VqzC3.js +0 -4
  446. package/dist/mscgen-DF-5WHJm.js +0 -6
  447. package/dist/mumps-c_Uia_QN.js +0 -4
  448. package/dist/nsis-BAANGODV.js +0 -5
  449. package/dist/ntriples-Bslqh2Ki.js +0 -4
  450. package/dist/octave-DYn5ltia.js +0 -4
  451. package/dist/oz-B_N-StZq.js +0 -4
  452. package/dist/packet-HUATNLJX-CkqjFdAv.js +0 -21
  453. package/dist/pascal-DU4CtAUu.js +0 -4
  454. package/dist/perl-Bae6k32u.js +0 -4
  455. package/dist/pie-WTHONI2E-D0rWwX5P.js +0 -21
  456. package/dist/pig-DSIxUEgX.js +0 -4
  457. package/dist/powershell-31lcPgIF.js +0 -4
  458. package/dist/properties-lmYbntDG.js +0 -4
  459. package/dist/protobuf-BTYoCEpV.js +0 -4
  460. package/dist/pug-DMFM7zzO.js +0 -5
  461. package/dist/puppet-B0ub07d-.js +0 -4
  462. package/dist/python-C4jT87Nt.js +0 -5
  463. package/dist/q-YbPYlqRI.js +0 -4
  464. package/dist/r-OfNu6HAI.js +0 -4
  465. package/dist/radar-NJJJXTRR-Bxqv4O5a.js +0 -21
  466. package/dist/rpm-D_3b5peD.js +0 -5
  467. package/dist/ruby-CehsJy_T.js +0 -4
  468. package/dist/sas-DwQHzPoF.js +0 -4
  469. package/dist/scheme-B6ArxiQu.js +0 -4
  470. package/dist/shell-AHmQgDfc.js +0 -4
  471. package/dist/sieve-CgodKOcx.js +0 -4
  472. package/dist/smalltalk-BeFzDkbo.js +0 -4
  473. package/dist/sparql-BWxq-Lnx.js +0 -4
  474. package/dist/stateDiagram-v2-UMBNRL4Z-D9v8fKjF.js +0 -38
  475. package/dist/stex-Dvaq0qsm.js +0 -5
  476. package/dist/stylus-Ge0ofWlZ.js +0 -4
  477. package/dist/swift-CjQfbVxV.js +0 -4
  478. package/dist/tcl-CAGDF11K.js +0 -4
  479. package/dist/textile-CrXreJtf.js +0 -4
  480. package/dist/toml-AdLXKwEi.js +0 -4
  481. package/dist/treemap-75Q7IDZK-Da9Jv6a_.js +0 -21
  482. package/dist/troff-C-LaM2ex.js +0 -4
  483. package/dist/ttcn-DTclUi6T.js +0 -4
  484. package/dist/ttcn-cfg-BtBPbmLX.js +0 -4
  485. package/dist/turtle-BODDDg5O.js +0 -4
  486. package/dist/vb-Cb1HQHii.js +0 -4
  487. package/dist/vbscript-CpXOP4wZ.js +0 -4
  488. package/dist/velocity-Dz0rBQIk.js +0 -4
  489. package/dist/verilog-6Di9aLKw.js +0 -4
  490. package/dist/vhdl-BRNesXYc.js +0 -4
  491. package/dist/webidl-BpRNYIYn.js +0 -4
  492. package/dist/xquery-DXWcJ7b6.js +0 -4
  493. package/dist/yacas-DbSARPz4.js +0 -4
  494. package/dist/z80-DzslPj_l.js +0 -4
  495. package/src/core/codemirror/language/__tests__/ast.test.ts +0 -124
  496. package/src/core/codemirror/language/utils/ast.ts +0 -84
  497. package/src/core/codemirror/language/utils/quotes.ts +0 -18
  498. /package/dist/{_arrayReduce-CVwxyrBP.js → _arrayReduce-Cd9xQjbl.js} +0 -0
  499. /package/dist/{_baseSlice-OgpvpOOJ.js → _baseSlice-CE9WsQZm.js} +0 -0
  500. /package/dist/{_hasUnicode-BgIggCqE.js → _hasUnicode-DkEebvtD.js} +0 -0
  501. /package/dist/{apl-CEHentF4.js → apl-aGhy11IM.js} +0 -0
  502. /package/dist/{array-aAxy08hN.js → array-DYSXIreg.js} +0 -0
  503. /package/dist/{asciiarmor-DURYiCS0.js → asciiarmor-DJKJ3Gkn.js} +0 -0
  504. /package/dist/{asn1-ETAiEoXY.js → asn1-C6f5IeNs.js} +0 -0
  505. /package/dist/{asterisk-DTpbbXPb.js → asterisk-DB1poX9_.js} +0 -0
  506. /package/dist/{brainfuck-BWQep-SA.js → brainfuck-Ch9vjun0.js} +0 -0
  507. /package/dist/{chunk-57QY23SG-0TxCfmy_.js → chunk-57QY23SG-BpXU7ph4.js} +0 -0
  508. /package/dist/{clike-bzZTreP4.js → clike-Bc2PZzZQ.js} +0 -0
  509. /package/dist/{clojure-BzFapDkA.js → clojure-B_lpr3zt.js} +0 -0
  510. /package/dist/{cmake-DvlbIC8x.js → cmake-DaocNF4I.js} +0 -0
  511. /package/dist/{cobol-BrEI4cPR.js → cobol-suTPtt7c.js} +0 -0
  512. /package/dist/{coffeescript-B6cvu8mO.js → coffeescript-CPLIvtqJ.js} +0 -0
  513. /package/dist/{colors-Cr_mZ2aH.js → colors-BXlG8Lmz.js} +0 -0
  514. /package/dist/{common-keywords-WqQm7W8t.js → common-keywords-Bhll7O3b.js} +0 -0
  515. /package/dist/{commonlisp-BIT8PQqi.js → commonlisp-BqM3qFK7.js} +0 -0
  516. /package/dist/{crystal-B_UcPArT.js → crystal-AsSFu4ke.js} +0 -0
  517. /package/dist/{css-dHbnt_zl.js → css-Df7Sdeyh.js} +0 -0
  518. /package/dist/{cypher-Dh3FOpL7.js → cypher-CaVKL6Gu.js} +0 -0
  519. /package/dist/{cytoscape.esm-BTpRoPd2.js → cytoscape.esm-BFEMljQI.js} +0 -0
  520. /package/dist/{d-CQD1IHee.js → d-DCGWK7NQ.js} +0 -0
  521. /package/dist/{defaultLocale-BAgEOGks.js → defaultLocale-CYgZlqDF.js} +0 -0
  522. /package/dist/{defaultLocale-471SYAPk.js → defaultLocale-Cto8YOmX.js} +0 -0
  523. /package/dist/{diff-CpF_IDx0.js → diff-CsxOM4Tr.js} +0 -0
  524. /package/dist/{dist-CK8Gj3GX.js → dist-C76MUPD3.js} +0 -0
  525. /package/dist/{dtd-DYoNpy6c.js → dtd-Dwr0Jmks.js} +0 -0
  526. /package/dist/{duckdb-keywords-CdIsl9L0.js → duckdb-keywords-7wAWf848.js} +0 -0
  527. /package/dist/{dylan-Bc_2G1E-.js → dylan-A7-ZBSey.js} +0 -0
  528. /package/dist/{ebnf-jGVT_YpN.js → ebnf-9_SaGDUz.js} +0 -0
  529. /package/dist/{ecl-UIU-P-Ar.js → ecl-BzJVIQDc.js} +0 -0
  530. /package/dist/{eiffel-C90Oyuix.js → eiffel-CO9eC_Op.js} +0 -0
  531. /package/dist/{elm-B9fWSySj.js → elm-CVAWj8SB.js} +0 -0
  532. /package/dist/{emotion-is-prop-valid.esm-BHMWayAG.js → emotion-is-prop-valid.esm-C3Yi5GQt.js} +0 -0
  533. /package/dist/{erlang-Ccff0UAn.js → erlang-DWbZP546.js} +0 -0
  534. /package/dist/{fcl-CGR8NxAg.js → fcl-CM9t2iay.js} +0 -0
  535. /package/dist/{forth-U1ROGcBY.js → forth-BTYqUuu3.js} +0 -0
  536. /package/dist/{fortran-3nOkjDmc.js → fortran-DgAjHcCq.js} +0 -0
  537. /package/dist/{gas-B_4H5FzV.js → gas-BjDSWPZd.js} +0 -0
  538. /package/dist/{gherkin-B0eru5Uz.js → gherkin-ClRqqpKv.js} +0 -0
  539. /package/dist/{groovy-dqjtZUVf.js → groovy-BzNjnc8x.js} +0 -0
  540. /package/dist/{haskell-DFzCCQzo.js → haskell-DLdk34Jq.js} +0 -0
  541. /package/dist/{haxe-Da8Pj5RT.js → haxe-l6gaY_IS.js} +0 -0
  542. /package/dist/{http-1HACL_9s.js → http-6Qg7z_h2.js} +0 -0
  543. /package/dist/{idl-D3NXs5iM.js → idl-hlWT4D26.js} +0 -0
  544. /package/dist/{init-D6eDd7H0.js → init-tZ42Torz.js} +0 -0
  545. /package/dist/{isArrayLikeObject-BlvK28do.js → isArrayLikeObject-DU5MCuQM.js} +0 -0
  546. /package/dist/{javascript-BfCTmOnk.js → javascript-DGukg1sB.js} +0 -0
  547. /package/dist/{jinja2-gBHAxUdF.js → jinja2-DI5k_Er3.js} +0 -0
  548. /package/dist/{julia-bG-6nJ-_.js → julia-BvDZDiIT.js} +0 -0
  549. /package/dist/{katex-mkWmhPUh.js → katex-DgfMWJY9.js} +0 -0
  550. /package/dist/{livescript-BlsRC8UJ.js → livescript-2YMQfkfI.js} +0 -0
  551. /package/dist/{lua-BbDC0_5w.js → lua-DIUrQRfA.js} +0 -0
  552. /package/dist/{main-Czi9-LVy.js → main-BMTpe7M0.js} +0 -0
  553. /package/dist/{marked.esm-DJM8la36.js → marked.esm-DkVwEwtO.js} +0 -0
  554. /package/dist/{math-C7wLpe9K.js → math-qsHyz2Eo.js} +0 -0
  555. /package/dist/{mathematica-YZTe3-PF.js → mathematica-Dqmg_BwL.js} +0 -0
  556. /package/dist/{mbox-CY5idp08.js → mbox-Cng-P-F1.js} +0 -0
  557. /package/dist/{mirc-CbQuFZKk.js → mirc-CNDqOVhQ.js} +0 -0
  558. /package/dist/{mllike-DsbHMX-5.js → mllike-C1n2UDyX.js} +0 -0
  559. /package/dist/{modelica-CQuvsOQk.js → modelica-QqQC2pFj.js} +0 -0
  560. /package/dist/{mscgen-LIpBP9VR.js → mscgen-C3fl8uhp.js} +0 -0
  561. /package/dist/{mumps-Ct5NXoaG.js → mumps-BeCUbMej.js} +0 -0
  562. /package/dist/{nginx-Dvc62C8z.js → nginx-ejv7DsBz.js} +0 -0
  563. /package/dist/{node-sql-parser-BqKV-TpL.js → node-sql-parser-CoPWN4hn.js} +0 -0
  564. /package/dist/{ntriples-jVkxWUuv.js → ntriples-CUgUpcma.js} +0 -0
  565. /package/dist/{octave-jGOImUB0.js → octave-BD652tGl.js} +0 -0
  566. /package/dist/{oz-Y0FKDMS2.js → oz-DrRsFa0K.js} +0 -0
  567. /package/dist/{pascal-BaLtPWWB.js → pascal-hpcx9sVn.js} +0 -0
  568. /package/dist/{path-VDkDgx1I.js → path-Bbv2tLY1.js} +0 -0
  569. /package/dist/{perl-CjfE0JLo.js → perl-DW8XHeFc.js} +0 -0
  570. /package/dist/{pig-DE4epV99.js → pig-Cv7Nxbfo.js} +0 -0
  571. /package/dist/{powershell-BZx53Ujw.js → powershell-Dr7WZMDU.js} +0 -0
  572. /package/dist/{prop-types-0wNc-99T.js → prop-types-Bd16OEUP.js} +0 -0
  573. /package/dist/{properties-CLyCG5C-.js → properties-D-qJDXAM.js} +0 -0
  574. /package/dist/{protobuf-BjBBs_V4.js → protobuf-B48QZbd3.js} +0 -0
  575. /package/dist/{puppet-ZImLuomA.js → puppet-15JDyiY2.js} +0 -0
  576. /package/dist/{python-C9YN71pR.js → python-DWkQA94h.js} +0 -0
  577. /package/dist/{q-CMoUHJ5Q.js → q-BzRpKgfd.js} +0 -0
  578. /package/dist/{r-DILmKWWW.js → r-dcNRe_Q8.js} +0 -0
  579. /package/dist/{range-PcytnUSJ.js → range-CQvYp_qE.js} +0 -0
  580. /package/dist/{rpm-fpIsm1Kr.js → rpm-Djl3Dsf1.js} +0 -0
  581. /package/dist/{ruby-BuiQI41h.js → ruby-Dd2CZTip.js} +0 -0
  582. /package/dist/{sas-C76sJ1zF.js → sas-DYF5_Iqu.js} +0 -0
  583. /package/dist/{scheme-DHjM-txv.js → scheme-YtWcji1H.js} +0 -0
  584. /package/dist/{shell--7NmGJ9p.js → shell-C3uC3Y0Z.js} +0 -0
  585. /package/dist/{sieve-DaPvBv1M.js → sieve-DHB17sQG.js} +0 -0
  586. /package/dist/{simple-mode-BP3Jd4vf.js → simple-mode-BMmwP_vI.js} +0 -0
  587. /package/dist/{smalltalk-KPvwrjCs.js → smalltalk-Y5v1Np3H.js} +0 -0
  588. /package/dist/{solr-PvZUtEDb.js → solr-DvRJLlRD.js} +0 -0
  589. /package/dist/{sparql-CXSUIQer.js → sparql-BEt3GJwM.js} +0 -0
  590. /package/dist/{spreadsheet-DPJdGPkx.js → spreadsheet-Dp4B9_rc.js} +0 -0
  591. /package/dist/{sql-Dp4ZLSIa.js → sql-DBsUs8nQ.js} +0 -0
  592. /package/dist/{stex-CeXW4zzk.js → stex-C6-x52ei.js} +0 -0
  593. /package/dist/{stylus-BXcmrg9w.js → stylus-DroA8via.js} +0 -0
  594. /package/dist/{swift-DD8I7hKP.js → swift-DR0x1ESK.js} +0 -0
  595. /package/dist/{tcl-B9Lp4GtA.js → tcl-BeuTFc_c.js} +0 -0
  596. /package/dist/{textile-qdiY0teq.js → textile-C0ikhHN3.js} +0 -0
  597. /package/dist/{tiddlywiki-t32lkubq.js → tiddlywiki-C_2Nvsgu.js} +0 -0
  598. /package/dist/{tiki-B0qKrSMl.js → tiki-CKQlhmQQ.js} +0 -0
  599. /package/dist/{timer-CzOhIJuk.js → timer-CcUhugb0.js} +0 -0
  600. /package/dist/{toml-eSl4PUAH.js → toml-BqNUJWRI.js} +0 -0
  601. /package/dist/{treemap-BpgMKHv-.js → treemap-BYLUKIzA.js} +0 -0
  602. /package/dist/{troff-105XJOEu.js → troff-DkK0f2ZH.js} +0 -0
  603. /package/dist/{tslib.es6-DofFyd9S.js → tslib.es6-3ZL768sZ.js} +0 -0
  604. /package/dist/{ttcn-1_BxDcM8.js → ttcn-Bf8vrg-_.js} +0 -0
  605. /package/dist/{ttcn-cfg-Cn_XgXiw.js → ttcn-cfg-DjCKzd95.js} +0 -0
  606. /package/dist/{turtle-BI6LyfEu.js → turtle-SSc84S9m.js} +0 -0
  607. /package/dist/{vb-BecoBfmr.js → vb-CQ6DC3cL.js} +0 -0
  608. /package/dist/{vbscript-De-zpA4i.js → vbscript-Dw0gFssg.js} +0 -0
  609. /package/dist/{velocity-DhlYJTrD.js → velocity-BvJQyBmj.js} +0 -0
  610. /package/dist/{verilog-BDZgxDOW.js → verilog-CKGAvQjj.js} +0 -0
  611. /package/dist/{vhdl-CV0OKTbp.js → vhdl-B40_x6fM.js} +0 -0
  612. /package/dist/{webidl-BOM1Fs0O.js → webidl-Bi9hczCv.js} +0 -0
  613. /package/dist/{xquery-CltP_CGh.js → xquery-DwWUXvP3.js} +0 -0
  614. /package/dist/{yacas-Dch4E2Dg.js → yacas-ClUs0mmH.js} +0 -0
  615. /package/dist/{z80-B5Yly27o.js → z80-DPC4UGzR.js} +0 -0
  616. /package/dist/{zod-ChY6miG5.js → zod-mAEs2ITo.js} +0 -0
@@ -3,7 +3,7 @@
3
3
  import type { Completion } from "@codemirror/autocomplete";
4
4
  import type { FileUIPart } from "ai";
5
5
  import { toPng } from "html-to-image";
6
- import { notebookAtom } from "@/core/cells/cells";
6
+ import { type NotebookState, notebookAtom } from "@/core/cells/cells";
7
7
  import { type CellId, CellOutputId } from "@/core/cells/ids";
8
8
  import { displayCellName } from "@/core/cells/names";
9
9
  import { isOutputEmpty } from "@/core/cells/outputs";
@@ -15,18 +15,33 @@ import { type AIContextItem, AIContextProvider } from "../registry";
15
15
  import { contextToXml } from "../utils";
16
16
  import { Boosts, Sections } from "./common";
17
17
 
18
+ export interface BaseOutput {
19
+ processedContent?: string;
20
+ imageUrl?: string;
21
+ shouldDownloadImage?: boolean;
22
+ output: OutputMessage;
23
+ outputType: "text" | "media";
24
+ }
25
+
26
+ export interface CellOutputData {
27
+ cellId: CellId;
28
+ cellName: string;
29
+ cellCode: string;
30
+ cellOutput?: BaseOutput;
31
+ consoleOutputs?: BaseOutput[];
32
+ }
33
+
34
+ // For the context provider
35
+ // Currently, we enforce that cellOutput is present.
36
+ interface CellOutputContextData
37
+ extends CellOutputData,
38
+ Record<string, unknown> {
39
+ cellOutput: BaseOutput;
40
+ }
41
+
18
42
  export interface CellOutputContextItem extends AIContextItem {
19
43
  type: "cell-output";
20
- data: {
21
- cellId: CellId;
22
- cellName: string;
23
- cellCode: string;
24
- output: OutputMessage;
25
- outputType: "text" | "media";
26
- processedContent?: string;
27
- imageUrl?: string;
28
- shouldDownloadImage?: boolean;
29
- };
44
+ data: CellOutputContextData;
30
45
  }
31
46
 
32
47
  function isMediaMimetype(
@@ -79,69 +94,23 @@ export class CellOutputContextProvider extends AIContextProvider<CellOutputConte
79
94
  const notebook = this.store.get(notebookAtom);
80
95
  const items: CellOutputContextItem[] = [];
81
96
 
82
- for (const [cellIndex, cellId] of notebook.cellIds.inOrderIds.entries()) {
83
- const cellRuntime = notebook.cellRuntime[cellId];
97
+ for (const cellId of notebook.cellIds.inOrderIds) {
98
+ const cellContextData = getCellContextData(cellId, notebook);
99
+ const cellOutput = cellContextData.cellOutput;
84
100
 
85
- // Filter to only cells with output
86
- if (!cellRuntime?.output || isOutputEmpty(cellRuntime.output)) {
101
+ // Skip cells with no output
102
+ if (!cellOutput) {
87
103
  continue;
88
104
  }
89
105
 
90
- const cellData = notebook.cellData[cellId];
91
- const output = cellRuntime.output;
92
- const mimetype = output.mimetype;
93
-
94
- // Determine output type
95
- const isMedia = isMediaMimetype(mimetype, String(output.data));
96
- const outputType = isMedia ? "media" : "text";
97
-
98
- const cellName = displayCellName(cellData.name, cellIndex);
99
-
100
- let processedContent: string | undefined;
101
- let imageUrl: string | undefined;
102
- let shouldDownloadImage = false;
103
-
104
- // Process text content
105
- if (outputType === "text" && typeof output.data === "string") {
106
- processedContent =
107
- mimetype === "text/html"
108
- ? parseHtmlContent(output.data)
109
- : output.data;
110
- }
111
-
112
- // Process media content - for now, we'll just note that it's media
113
- if (outputType === "media") {
114
- if (
115
- typeof output.data === "string" &&
116
- output.data.startsWith("data:")
117
- ) {
118
- imageUrl = output.data; // Data URL
119
- } else if (
120
- typeof output.data === "string" &&
121
- output.data.startsWith("http")
122
- ) {
123
- imageUrl = output.data; // External URL
124
- } else {
125
- // Download the image from the DOM element
126
- shouldDownloadImage = true;
127
- }
128
- }
106
+ const mimetype = cellOutput.output.mimetype || "unknown";
129
107
 
130
108
  items.push({
131
109
  uri: this.asURI(cellId),
132
- name: cellName,
110
+ name: cellContextData.cellName,
133
111
  type: this.contextType,
134
- description: `Cell output (${mimetype || "unknown"})`,
135
- data: {
136
- cellId,
137
- cellName,
138
- cellCode: cellData?.code || "",
139
- output,
140
- outputType,
141
- processedContent,
142
- imageUrl,
143
- shouldDownloadImage,
144
- },
112
+ description: `Cell output (${mimetype})`,
113
+ data: { ...cellContextData, cellOutput },
145
114
  });
146
115
  }
147
116
 
@@ -149,16 +118,16 @@ export class CellOutputContextProvider extends AIContextProvider<CellOutputConte
149
118
  }
150
119
 
151
120
  formatCompletion(item: CellOutputContextItem): Completion {
152
- const { data } = item;
121
+ const { cellOutput: data, cellName, cellCode } = item.data;
153
122
 
154
123
  return {
155
- label: `@${data.cellName}`,
156
- displayLabel: data.cellName,
124
+ label: `@${cellName}`,
125
+ displayLabel: cellName,
157
126
  detail: `${data.outputType} output`,
158
127
  boost: data.outputType === "media" ? Boosts.HIGH : Boosts.MEDIUM,
159
128
  type: this.contextType,
160
129
  section: Sections.CELL_OUTPUT,
161
- apply: `@${data.cellName}`,
130
+ apply: `@${cellName}`,
162
131
  info: () => {
163
132
  const infoContainer = document.createElement("div");
164
133
  infoContainer.classList.add(
@@ -176,7 +145,7 @@ export class CellOutputContextProvider extends AIContextProvider<CellOutputConte
176
145
 
177
146
  const nameDiv = document.createElement("div");
178
147
  nameDiv.classList.add("font-bold", "text-base");
179
- nameDiv.textContent = data.cellName;
148
+ nameDiv.textContent = cellName;
180
149
  headerDiv.append(nameDiv);
181
150
 
182
151
  const descriptionDiv = document.createElement("div");
@@ -186,7 +155,7 @@ export class CellOutputContextProvider extends AIContextProvider<CellOutputConte
186
155
  infoContainer.append(headerDiv);
187
156
 
188
157
  // Show cell code preview
189
- if (data.cellCode) {
158
+ if (cellCode) {
190
159
  const codeHeaderDiv = document.createElement("div");
191
160
  codeHeaderDiv.classList.add(
192
161
  "text-xs",
@@ -207,8 +176,7 @@ export class CellOutputContextProvider extends AIContextProvider<CellOutputConte
207
176
  "overflow-y-auto",
208
177
  );
209
178
  codeDiv.textContent =
210
- data.cellCode.slice(0, 200) +
211
- (data.cellCode.length > 200 ? "..." : "");
179
+ cellCode.slice(0, 200) + (cellCode.length > 200 ? "..." : "");
212
180
  infoContainer.append(codeDiv);
213
181
  }
214
182
 
@@ -258,16 +226,16 @@ export class CellOutputContextProvider extends AIContextProvider<CellOutputConte
258
226
  }
259
227
 
260
228
  formatContext(item: CellOutputContextItem): string {
261
- const { data } = item;
229
+ const { cellOutput: data, cellName, cellId, cellCode } = item.data;
262
230
 
263
231
  const contextData = {
264
- name: data.cellName,
265
- cellId: data.cellId,
232
+ name: cellName,
233
+ cellId: cellId,
266
234
  outputType: data.outputType,
267
235
  mimetype: data.output.mimetype,
268
236
  } as const;
269
237
 
270
- let details = `Cell Code:\n${data.cellCode}\n\n`;
238
+ let details = `Cell Code:\n${cellCode}\n\n`;
271
239
 
272
240
  if (data.outputType === "text" && data.processedContent) {
273
241
  details += `Output:\n${data.processedContent}`;
@@ -289,45 +257,135 @@ export class CellOutputContextProvider extends AIContextProvider<CellOutputConte
289
257
  override async getAttachments(
290
258
  items: CellOutputContextItem[],
291
259
  ): Promise<FileUIPart[]> {
292
- // Filter items that need image downloading
293
- const itemsNeedingDownload = items.filter(
294
- (item) =>
295
- item.data.shouldDownloadImage && item.data.outputType === "media",
296
- );
260
+ const cellId = items[0].data.cellId;
261
+ const cellName = items[0].data.cellName;
262
+ const cellOutputs = items.map((item) => item.data.cellOutput);
297
263
 
298
- if (itemsNeedingDownload.length === 0) {
264
+ return getAttachmentsForOutputs(cellOutputs, cellId, cellName);
265
+ }
266
+ }
267
+
268
+ export async function getAttachmentsForOutputs(
269
+ data: BaseOutput[],
270
+ cellId: CellId,
271
+ cellName: string,
272
+ ): Promise<FileUIPart[]> {
273
+ // Filter items that need image downloading
274
+ const itemsNeedingDownload = data.filter(
275
+ (item) => item.shouldDownloadImage && item.outputType === "media",
276
+ );
277
+
278
+ if (itemsNeedingDownload.length === 0) {
279
+ return [];
280
+ }
281
+
282
+ // Prepare download requests
283
+ const downloadRequests = itemsNeedingDownload.flatMap((item) => {
284
+ const outputElement = document.getElementById(CellOutputId.create(cellId));
285
+ if (!outputElement) {
286
+ Logger.warn(`Output element not found for cell ${cellId}`);
299
287
  return [];
300
288
  }
289
+ return {
290
+ cellId: cellId,
291
+ cellName: cellName,
292
+ mimetype: item.output.mimetype,
293
+ element: outputElement,
294
+ };
295
+ });
296
+
297
+ try {
298
+ return await Promise.all(
299
+ downloadRequests.map(async (item) => ({
300
+ type: "file",
301
+ filename: `${cellName}-output-screenshot`,
302
+ mediaType: "image/png",
303
+ url: await toPng(item.element),
304
+ })),
305
+ );
306
+ } catch (error) {
307
+ Logger.error("Error downloading cell output images:", error);
308
+ return [];
309
+ }
310
+ }
301
311
 
302
- // Prepare download requests
303
- const downloadRequests = itemsNeedingDownload.flatMap((item) => {
304
- const outputElement = document.getElementById(
305
- CellOutputId.create(item.data.cellId),
306
- );
307
- if (!outputElement) {
308
- Logger.warn(`Output element not found for cell ${item.data.cellId}`);
309
- return [];
310
- }
311
- return {
312
- cellId: item.data.cellId,
313
- cellName: item.data.cellName,
314
- mimetype: item.data.output.mimetype,
315
- element: outputElement,
316
- };
317
- });
312
+ function getBaseOutput(output: OutputMessage): BaseOutput | null {
313
+ if (isOutputEmpty(output)) {
314
+ return null;
315
+ }
318
316
 
319
- try {
320
- return await Promise.all(
321
- downloadRequests.map(async (item) => ({
322
- type: "file",
323
- filename: `${item.cellName}-output-screenshot`,
324
- mediaType: "image/png",
325
- url: await toPng(item.element),
326
- })),
327
- );
328
- } catch (error) {
329
- Logger.error("Error downloading cell output images:", error);
330
- return [];
317
+ const mimetype = output.mimetype;
318
+
319
+ // Determine output type
320
+ const isMedia = isMediaMimetype(mimetype, String(output.data));
321
+ const outputType = isMedia ? "media" : "text";
322
+
323
+ let processedContent: string | undefined;
324
+ let imageUrl: string | undefined;
325
+ let shouldDownloadImage = false;
326
+
327
+ // Process text content
328
+ if (outputType === "text" && typeof output.data === "string") {
329
+ processedContent =
330
+ mimetype === "text/html" ? parseHtmlContent(output.data) : output.data;
331
+ }
332
+
333
+ // Process media content - for now, we'll just note that it's media
334
+ if (outputType === "media") {
335
+ if (typeof output.data === "string" && output.data.startsWith("data:")) {
336
+ imageUrl = output.data; // Data URL
337
+ } else if (
338
+ typeof output.data === "string" &&
339
+ output.data.startsWith("http")
340
+ ) {
341
+ imageUrl = output.data; // External URL
342
+ } else {
343
+ // Download the image from the DOM element
344
+ shouldDownloadImage = true;
331
345
  }
332
346
  }
347
+
348
+ return {
349
+ processedContent,
350
+ imageUrl,
351
+ shouldDownloadImage,
352
+ outputType,
353
+ output,
354
+ };
355
+ }
356
+
357
+ export function getCellContextData(
358
+ cellId: CellId,
359
+ notebook: NotebookState,
360
+ opts?: {
361
+ includeConsoleOutput: boolean;
362
+ },
363
+ ): CellOutputData {
364
+ const { includeConsoleOutput = false } = opts || {};
365
+ const cellRuntime = notebook.cellRuntime[cellId];
366
+
367
+ const cellData = notebook.cellData[cellId];
368
+ const cellIndex = notebook.cellIds.inOrderIds.indexOf(cellId);
369
+ const cellName = displayCellName(cellData.name, cellIndex);
370
+
371
+ let consoleOutputs: BaseOutput[] | undefined;
372
+ if (includeConsoleOutput) {
373
+ consoleOutputs = cellRuntime.consoleOutputs
374
+ .map((output) => getBaseOutput(output))
375
+ .filter((output) => output !== null);
376
+ }
377
+
378
+ let cellOutput: BaseOutput | undefined;
379
+ const rawCellOutput = cellRuntime.output;
380
+ if (rawCellOutput && !isOutputEmpty(rawCellOutput)) {
381
+ cellOutput = getBaseOutput(rawCellOutput) ?? undefined;
382
+ }
383
+
384
+ return {
385
+ cellId,
386
+ cellName,
387
+ cellCode: cellData.code,
388
+ cellOutput,
389
+ consoleOutputs,
390
+ };
333
391
  }
@@ -43,8 +43,8 @@ export class TableContextProvider extends AIContextProvider<TableContextItem> {
43
43
 
44
44
  // Build shape information
45
45
  const shape = [
46
- num_rows != null ? `${num_rows} rows` : undefined,
47
- num_columns != null ? `${num_columns} columns` : undefined,
46
+ num_rows == null ? undefined : `${num_rows} rows`,
47
+ num_columns == null ? undefined : `${num_columns} columns`,
48
48
  ]
49
49
  .filter(Boolean)
50
50
  .join(", ");
@@ -13,21 +13,30 @@ import { Logger } from "@/utils/Logger";
13
13
  import { maybeAddMarimoImport } from "../cells/add-missing-import";
14
14
  import {
15
15
  type CreateNewCellAction,
16
- cellHandleAtom,
16
+ getCellEditorView,
17
17
  useCellActions,
18
18
  } from "../cells/cells";
19
19
  import type { LanguageAdapterType } from "../codemirror/language/types";
20
20
  import { updateEditorCodeFromPython } from "../codemirror/language/utils";
21
21
  import type { JotaiStore } from "../state/jotai";
22
+ import type { EditType } from "./tools/edit-notebook-tool";
22
23
 
23
24
  /**
24
25
  * Cells that are staged for AI completion
25
- * They function similarly to cells in the notebook, but they can be deleted or accepted by the user.
26
- * We only track one set of staged cells at a time.
26
+ * They function similarly to cells in the notebook, but they can be accepted or rejected by the user.
27
+ * We track edited, new and deleted cells.
28
+ * And we only track one set of staged cells at a time.
27
29
  */
28
30
 
29
- const initialState = (): Set<CellId> => {
30
- return new Set();
31
+ export type Edit =
32
+ | { type: Extract<EditType, "update_cell">; previousCode: string }
33
+ | { type: Extract<EditType, "add_cell"> }
34
+ | { type: Extract<EditType, "delete_cell">; previousCode: string };
35
+
36
+ export type StagedAICells = Map<CellId, Edit>;
37
+
38
+ const initialState = (): StagedAICells => {
39
+ return new Map();
31
40
  };
32
41
 
33
42
  const {
@@ -36,18 +45,26 @@ const {
36
45
  createActions,
37
46
  reducer,
38
47
  } = createReducerAndAtoms(initialState, {
39
- addStagedCell: (state, action: { cellId: CellId }) => {
40
- const { cellId } = action;
41
- return new Set([...state, cellId]);
48
+ addStagedCell: (state, action: { cellId: CellId; edit: Edit }) => {
49
+ const { cellId, edit } = action;
50
+ return new Map([...state, [cellId, edit]]);
42
51
  },
43
52
  removeStagedCell: (state, cellId: CellId) => {
44
- return new Set([...state].filter((id) => id !== cellId));
53
+ const newState = new Map(state);
54
+ newState.delete(cellId);
55
+ return newState;
45
56
  },
46
57
  clearStagedCells: () => {
47
58
  return initialState();
48
59
  },
49
60
  });
50
61
 
62
+ export {
63
+ useStagedAICellsActions,
64
+ createActions as createStagedAICellsActions,
65
+ reducer as stagedAICellsReducer,
66
+ };
67
+
51
68
  interface UpdateStagedCellAction {
52
69
  cellId: CellId;
53
70
  code: string;
@@ -67,7 +84,7 @@ export function useStagedCells(store: JotaiStore) {
67
84
 
68
85
  const createStagedCell = (code: string): CellId => {
69
86
  const newCellId = CellId.create();
70
- addStagedCell({ cellId: newCellId });
87
+ addStagedCell({ cellId: newCellId, edit: { type: "add_cell" } });
71
88
  createNewCell({
72
89
  cellId: "__end__",
73
90
  code,
@@ -86,8 +103,7 @@ export function useStagedCells(store: JotaiStore) {
86
103
  return;
87
104
  }
88
105
 
89
- const cellHandle = store.get(cellHandleAtom(cellId));
90
- const editorView = cellHandle?.current?.editorViewOrNull;
106
+ const editorView = getCellEditorView(cellId);
91
107
  if (!editorView) {
92
108
  Logger.error("Editor for this cell not found", { cellId });
93
109
  return;
@@ -105,7 +121,7 @@ export function useStagedCells(store: JotaiStore) {
105
121
  // Delete all staged cells and the corresponding cells in the notebook.
106
122
  const deleteAllStagedCells = () => {
107
123
  const stagedAICells = store.get(stagedAICellsAtom);
108
- for (const cellId of stagedAICells) {
124
+ for (const cellId of stagedAICells.keys()) {
109
125
  deleteCellCallback({ cellId });
110
126
  }
111
127
  clearStagedCells();
@@ -175,14 +191,14 @@ class CellCreationStream {
175
191
 
176
192
  private onCreateCell: (code: string) => CellId;
177
193
  private onUpdateCell: (opts: UpdateStagedCellAction) => void;
178
- private addStagedCell: (payload: { cellId: CellId }) => void;
194
+ private addStagedCell: (payload: { cellId: CellId; edit: Edit }) => void;
179
195
  private createNewCell: (opts: CreateNewCellAction) => void;
180
196
  private hasMarimoImport = false;
181
197
 
182
198
  constructor(
183
199
  onCreateCell: (code: string) => CellId,
184
200
  onUpdateCell: (opts: UpdateStagedCellAction) => void,
185
- addStagedCell: (payload: { cellId: CellId }) => void,
201
+ addStagedCell: (payload: { cellId: CellId; edit: Edit }) => void,
186
202
  createNewCell: (opts: CreateNewCellAction) => void,
187
203
  ) {
188
204
  this.onCreateCell = onCreateCell;
@@ -229,7 +245,7 @@ class CellCreationStream {
229
245
  before: true,
230
246
  });
231
247
  if (cellId) {
232
- this.addStagedCell({ cellId });
248
+ this.addStagedCell({ cellId, edit: { type: "add_cell" } });
233
249
  }
234
250
  this.hasMarimoImport = true;
235
251
  }
@@ -5,7 +5,7 @@ import type { FileUIPart } from "ai";
5
5
  import { atom } from "jotai";
6
6
  import { atomWithStorage } from "jotai/utils";
7
7
  import { uniqueBy } from "@/utils/arrays";
8
- import { adaptForLocalStorage } from "@/utils/storage";
8
+ import { adaptForLocalStorage, jotaiJsonStorage } from "@/utils/storage/jotai";
9
9
  import type { TypedString } from "@/utils/typed";
10
10
  import type { CellId } from "../cells/ids";
11
11
 
@@ -25,6 +25,7 @@ const INCLUDE_OTHER_CELLS_KEY = "marimo:ai:includeOtherCells";
25
25
  export const includeOtherCellsAtom = atomWithStorage<boolean>(
26
26
  INCLUDE_OTHER_CELLS_KEY,
27
27
  true,
28
+ jotaiJsonStorage,
28
29
  );
29
30
 
30
31
  export interface Message {